From 3b678428bee9576be1d1cee12ceadcff24f8a3b0 Mon Sep 17 00:00:00 2001
From: James Frink <jfrin001@gold.ac.uk>
Date: Tue, 21 Nov 2017 01:12:40 +0000
Subject: [PATCH] add start of Bitalino example

---
 .../Bitalino.xcodeproj/project.pbxproj        |  1798 +++
 .../contents.xcworkspacedata                  |     7 +
 .../xcschemes/Bitalino Debug.xcscheme         |    86 +
 .../xcschemes/Bitalino Release.xcscheme       |    86 +
 examples/ofx/Bitalino_rapidmix/Makefile       |    13 +
 .../ofx/Bitalino_rapidmix/Project.xcconfig    |    17 +
 examples/ofx/Bitalino_rapidmix/addons.make    |     3 +
 .../ofx/Bitalino_rapidmix/bin/data/.gitkeep   |     0
 examples/ofx/Bitalino_rapidmix/config.make    |   142 +
 .../dependencies/GVF/GVF.cpp                  |  1375 ++
 .../Bitalino_rapidmix/dependencies/GVF/GVF.h  |   487 +
 .../dependencies/GVF/GVFGesture.h             |   240 +
 .../dependencies/GVF/GVFUtils.h               |   309 +
 .../dependencies/GVF/LICENSE                  |   165 +
 .../dependencies/json/json-forwards.h         |   324 +
 .../RapidLib/dependencies/json/json.h         |  2140 +++
 .../RapidLib/dependencies/jsoncpp.cpp         |  5290 ++++++++
 .../RapidLib/dependencies/libsvm/libsvm.cpp   |  3184 +++++
 .../RapidLib/dependencies/libsvm/libsvm.h     |   108 +
 .../dependencies/RapidLib/src/baseModel.h     |    47 +
 .../RapidLib/src/classification.cpp           |   107 +
 .../RapidLib/src/classification.h             |    57 +
 .../dependencies/RapidLib/src/dtw.cpp         |   153 +
 .../dependencies/RapidLib/src/dtw.h           |    38 +
 .../src/emscripten/classificationEmbindings.h |    34 +
 .../RapidLib/src/emscripten/knnEmbindings.h   |    45 +
 .../src/emscripten/modelSetEmbindings.h       |    26 +
 .../RapidLib/src/emscripten/nnEmbindings.h    |    26 +
 .../RapidLib/src/emscripten/nodeEnv.js        |     7 +
 .../RapidLib/src/emscripten/rapidLibPost.js   |   629 +
 .../src/emscripten/rapidStreamEmbindings.h    |    38 +
 .../src/emscripten/regressionEmbindings.h     |    29 +
 .../seriesClassificationEmbindings.h          |    28 +
 .../RapidLib/src/emscripten/svmEmbindings.h   |    26 +
 .../dependencies/RapidLib/src/fastDTW.cpp     |    75 +
 .../dependencies/RapidLib/src/fastDTW.h       |    61 +
 .../RapidLib/src/knnClassification.cpp        |   171 +
 .../RapidLib/src/knnClassification.h          |    93 +
 .../dependencies/RapidLib/src/modelSet.cpp    |   242 +
 .../dependencies/RapidLib/src/modelSet.h      |    60 +
 .../RapidLib/src/neuralNetwork.cpp            |   448 +
 .../dependencies/RapidLib/src/neuralNetwork.h |   151 +
 .../dependencies/RapidLib/src/rapidStream.cpp |   186 +
 .../dependencies/RapidLib/src/rapidStream.h   |   108 +
 .../dependencies/RapidLib/src/regression.cpp  |   133 +
 .../dependencies/RapidLib/src/regression.h    |    55 +
 .../RapidLib/src/searchWindow.cpp             |   190 +
 .../dependencies/RapidLib/src/searchWindow.h  |    36 +
 .../RapidLib/src/seriesClassification.cpp     |   201 +
 .../RapidLib/src/seriesClassification.h       |   112 +
 .../RapidLib/src/svmClassification.cpp        |   269 +
 .../RapidLib/src/svmClassification.h          |   133 +
 .../RapidLib/src/trainingExample.h            |    38 +
 .../dependencies/RapidLib/src/warpPath.cpp    |    18 +
 .../dependencies/RapidLib/src/warpPath.h      |    37 +
 .../dependencies/pipo/.gitignore              |    14 +
 .../dependencies/pipo/README.md               |   103 +
 .../dependencies/pipo/bin/osx/libpipo.a       |   Bin 0 -> 5204528 bytes
 .../bayesfilter/BayesianFilter.cpp            |   155 +
 .../dependencies/bayesfilter/BayesianFilter.h |   183 +
 .../bayesfilter/filter_utilities.cpp          |   200 +
 .../bayesfilter/filter_utilities.h            |   138 +
 .../finitedifferences/finitedifferences.c     |   265 +
 .../finitedifferences/finitedifferences.h     |   167 +
 .../src/dependencies/lpcformants/bbpr.cpp     |   352 +
 .../pipo/src/dependencies/lpcformants/bbpr.h  |    22 +
 .../src/dependencies/lpcformants/rpoly.cpp    |   766 ++
 .../pipo/src/dependencies/lpcformants/rpoly.h |    40 +
 .../pipo/src/dependencies/rta/common/rta.h    |    47 +
 .../src/dependencies/rta/common/rta_bpf.c     |    94 +
 .../src/dependencies/rta/common/rta_bpf.h     |    86 +
 .../src/dependencies/rta/common/rta_complex.h |   299 +
 .../src/dependencies/rta/common/rta_float.h   |    95 +
 .../src/dependencies/rta/common/rta_int.c     |    80 +
 .../src/dependencies/rta/common/rta_int.h     |    94 +
 .../src/dependencies/rta/common/rta_math.h    |   250 +
 .../src/dependencies/rta/common/rta_stdio.h   |    51 +
 .../src/dependencies/rta/common/rta_stdlib.h  |    74 +
 .../src/dependencies/rta/common/rta_types.h   |    71 +
 .../src/dependencies/rta/common/rta_util.c    |   100 +
 .../src/dependencies/rta/common/rta_util.h    |   108 +
 .../src/dependencies/rta/misc/rta_bands.c     |   391 +
 .../src/dependencies/rta/misc/rta_bands.h     |   276 +
 .../src/dependencies/rta/misc/rta_biquad.c    |   768 ++
 .../src/dependencies/rta/misc/rta_biquad.h    |   727 +
 .../dependencies/rta/misc/rta_correlation.c   |   326 +
 .../dependencies/rta/misc/rta_correlation.h   |   372 +
 .../src/dependencies/rta/misc/rta_cubic.c     |    58 +
 .../src/dependencies/rta/misc/rta_cubic.h     |   149 +
 .../pipo/src/dependencies/rta/misc/rta_dct.c  |   320 +
 .../pipo/src/dependencies/rta/misc/rta_dct.h  |   188 +
 .../src/dependencies/rta/misc/rta_delta.c     |   193 +
 .../src/dependencies/rta/misc/rta_delta.h     |   209 +
 .../pipo/src/dependencies/rta/misc/rta_fft.c  |  1595 +++
 .../pipo/src/dependencies/rta/misc/rta_fft.h  |   316 +
 .../src/dependencies/rta/misc/rta_filter.h    |    67 +
 .../src/dependencies/rta/misc/rta_lifter.c    |   165 +
 .../src/dependencies/rta/misc/rta_lifter.h    |   190 +
 .../pipo/src/dependencies/rta/misc/rta_lpc.c  |   209 +
 .../pipo/src/dependencies/rta/misc/rta_lpc.h  |   173 +
 .../dependencies/rta/misc/rta_mean_variance.c |   309 +
 .../dependencies/rta/misc/rta_mean_variance.h |   219 +
 .../pipo/src/dependencies/rta/misc/rta_mel.c  |   113 +
 .../pipo/src/dependencies/rta/misc/rta_mel.h  |   124 +
 .../src/dependencies/rta/misc/rta_moments.c   |   324 +
 .../src/dependencies/rta/misc/rta_moments.h   |   396 +
 .../src/dependencies/rta/misc/rta_onepole.c   |   123 +
 .../src/dependencies/rta/misc/rta_onepole.h   |   163 +
 .../dependencies/rta/misc/rta_preemphasis.c   |   104 +
 .../dependencies/rta/misc/rta_preemphasis.h   |    99 +
 .../src/dependencies/rta/misc/rta_resample.c  |   363 +
 .../src/dependencies/rta/misc/rta_resample.h  |   147 +
 .../src/dependencies/rta/misc/rta_selection.c |   294 +
 .../src/dependencies/rta/misc/rta_selection.h |   116 +
 .../pipo/src/dependencies/rta/misc/rta_svd.c  |  1286 ++
 .../pipo/src/dependencies/rta/misc/rta_svd.h  |   186 +
 .../src/dependencies/rta/misc/rta_window.c    |   300 +
 .../src/dependencies/rta/misc/rta_window.h    |   379 +
 .../src/dependencies/rta/rta_configuration.h  |    64 +
 .../pipo/src/host/PiPoCollection.cpp          |   187 +
 .../pipo/src/host/PiPoCollection.h            |   109 +
 .../dependencies/pipo/src/host/PiPoGraph.h    |   495 +
 .../dependencies/pipo/src/host/PiPoHost.h     |   409 +
 .../dependencies/pipo/src/host/PiPoModule.h   |    52 +
 .../dependencies/pipo/src/host/mimo_host.h    |    63 +
 .../dependencies/pipo/src/include/PiPo.h      |  1463 ++
 .../pipo/src/include/PiPoParallel.h           |   363 +
 .../pipo/src/include/PiPoSequence.h           |   263 +
 .../pipo/src/include/RingBuffer.h             |   121 +
 .../dependencies/pipo/src/include/mimo.h      |   144 +
 .../dependencies/pipo/src/modules/PiPoBands.h |   356 +
 .../pipo/src/modules/PiPoBayesFilter.h        |   149 +
 .../pipo/src/modules/PiPoBiquad.h             |   306 +
 .../dependencies/pipo/src/modules/PiPoChop.h  |   246 +
 .../dependencies/pipo/src/modules/PiPoConst.h |   184 +
 .../dependencies/pipo/src/modules/PiPoDct.h   |   145 +
 .../dependencies/pipo/src/modules/PiPoDelta.h |   203 +
 .../dependencies/pipo/src/modules/PiPoFft.h   |   496 +
 .../pipo/src/modules/PiPoFiniteDif.h          |   474 +
 .../dependencies/pipo/src/modules/PiPoGate.h  |   294 +
 .../dependencies/pipo/src/modules/PiPoLpc.h   |   159 +
 .../pipo/src/modules/PiPoLpcFormants.h        |   212 +
 .../pipo/src/modules/PiPoMeanStddev.h         |   126 +
 .../pipo/src/modules/PiPoMedian.h             |   215 +
 .../dependencies/pipo/src/modules/PiPoMel.h   |    75 +
 .../dependencies/pipo/src/modules/PiPoMfcc.h  |    79 +
 .../pipo/src/modules/PiPoMinMax.h             |   115 +
 .../pipo/src/modules/PiPoMoments.h            |   240 +
 .../pipo/src/modules/PiPoMvavrg.h             |   211 +
 .../dependencies/pipo/src/modules/PiPoOnseg.h |   451 +
 .../dependencies/pipo/src/modules/PiPoPeaks.h |   284 +
 .../dependencies/pipo/src/modules/PiPoRms.h   |   111 +
 .../dependencies/pipo/src/modules/PiPoScale.h |   420 +
 .../pipo/src/modules/PiPoSelect.h             |   300 +
 .../dependencies/pipo/src/modules/PiPoSlice.h |   389 +
 .../dependencies/pipo/src/modules/PiPoSum.h   |    99 +
 .../dependencies/pipo/src/modules/TempMod.h   |   303 +
 .../pipo/src/modules/mimo/mimo_stats.h        |   306 +
 .../third_party/catch/LICENSE_1_0.txt         |    23 +
 .../dependencies/third_party/catch/catch.hpp  | 11069 ++++++++++++++++
 .../third_party/json/json-forwards.h          |   324 +
 .../dependencies/third_party/json/json.h      |  2140 +++
 .../dependencies/third_party/jsoncpp.cpp      |  5290 ++++++++
 .../dependencies/third_party/libsvm/LICENSE   |    31 +
 .../third_party/libsvm/libsvm.cpp             |  3184 +++++
 .../dependencies/third_party/libsvm/libsvm.h  |   108 +
 .../dependencies/xmm/.gitignore               |    27 +
 .../dependencies/xmm/CMakeLists.txt           |   111 +
 .../dependencies/xmm/LICENSE                  |   675 +
 .../xmm/dependencies/catch/catch.hpp          |  9427 +++++++++++++
 .../xmm/dependencies/jsoncpp/LICENSE          |    55 +
 .../dependencies/jsoncpp/include/assertions.h |    54 +
 .../dependencies/jsoncpp/include/autolink.h   |    25 +
 .../xmm/dependencies/jsoncpp/include/config.h |   138 +
 .../dependencies/jsoncpp/include/forwards.h   |    37 +
 .../jsoncpp/include/json-features.h           |    57 +
 .../xmm/dependencies/jsoncpp/include/json.h   |    15 +
 .../xmm/dependencies/jsoncpp/include/reader.h |   402 +
 .../xmm/dependencies/jsoncpp/include/value.h  |   849 ++
 .../dependencies/jsoncpp/include/version.h    |    13 +
 .../xmm/dependencies/jsoncpp/include/writer.h |   331 +
 .../dependencies/jsoncpp/src/json_reader.cpp  |  2032 +++
 .../xmm/dependencies/jsoncpp/src/json_tool.h  |    87 +
 .../dependencies/jsoncpp/src/json_value.cpp   |  1541 +++
 .../jsoncpp/src/json_valueiterator.inl        |   167 +
 .../dependencies/jsoncpp/src/json_writer.cpp  |  1214 ++
 .../dependencies/xmm/doc/Doxyfile             |  2401 ++++
 .../dependencies/xmm/doc/Doxyfile-dot         |  2434 ++++
 .../xmm/doc/doc-misc/QuickStart_Python.html   |  2086 +++
 .../xmm/doc/doc-misc/XmmDoxygenLayout.xml     |   184 +
 .../dependencies/xmm/doc/doc-misc/footer.html |     3 +
 .../dependencies/xmm/doc/doc-misc/header.html |    37 +
 .../xmm/doc/doc-misc/jdoxygen.css             |  1199 ++
 .../dependencies/xmm/doc/doc-misc/jtabs.css   |    59 +
 .../xmm/doc/doc-misc/python_example.py        |    47 +
 .../xmm/doc/doc-misc/xmm_architecture.jpg     |   Bin 0 -> 87034 bytes
 .../xmm/doc/doc-misc/xmm_featured.jpg         |   Bin 0 -> 778523 bytes
 .../xmm/doc/doc-misc/xmm_featured_.jpg        |   Bin 0 -> 620105 bytes
 .../xmm/doc/doc-misc/xmm_models.jpg           |   Bin 0 -> 164164 bytes
 .../dependencies/xmm/readme.md                |    55 +
 .../xmm/src/core/common/xmmAttribute.cpp      |   108 +
 .../xmm/src/core/common/xmmAttribute.hpp      |   644 +
 .../xmm/src/core/common/xmmCircularbuffer.hpp |   195 +
 .../xmm/src/core/common/xmmEvents.hpp         |   113 +
 .../xmm/src/core/common/xmmJson.cpp           |   133 +
 .../xmm/src/core/common/xmmJson.hpp           |   323 +
 .../xmm/src/core/common/xmmMatrix.hpp         |   359 +
 .../distributions/xmmGaussianDistribution.cpp |   717 +
 .../distributions/xmmGaussianDistribution.hpp |   376 +
 .../xmm/src/core/model/xmmModel.hpp           |   633 +
 .../src/core/model/xmmModelConfiguration.hpp  |   226 +
 .../xmm/src/core/model/xmmModelParameters.hpp |    80 +
 .../xmm/src/core/model/xmmModelResults.hpp    |   125 +
 .../core/model/xmmModelSharedParameters.cpp   |   162 +
 .../core/model/xmmModelSharedParameters.hpp   |   160 +
 .../src/core/model/xmmModelSingleClass.cpp    |   238 +
 .../src/core/model/xmmModelSingleClass.hpp    |   372 +
 .../xmm/src/core/trainingset/xmmPhrase.cpp    |   582 +
 .../xmm/src/core/trainingset/xmmPhrase.hpp    |   542 +
 .../src/core/trainingset/xmmTrainingSet.cpp   |   436 +
 .../src/core/trainingset/xmmTrainingSet.hpp   |   357 +
 .../xmm/src/models/gmm/xmmGmm.cpp             |   271 +
 .../xmm/src/models/gmm/xmmGmm.hpp             |   158 +
 .../xmm/src/models/gmm/xmmGmmParameters.cpp   |   132 +
 .../xmm/src/models/gmm/xmmGmmParameters.hpp   |   132 +
 .../xmm/src/models/gmm/xmmGmmSingleClass.cpp  |   641 +
 .../xmm/src/models/gmm/xmmGmmSingleClass.hpp  |   343 +
 .../xmm/src/models/hmm/xmmHierarchicalHmm.cpp |   634 +
 .../xmm/src/models/hmm/xmmHierarchicalHmm.hpp |   313 +
 .../xmm/src/models/hmm/xmmHmmParameters.cpp   |   199 +
 .../xmm/src/models/hmm/xmmHmmParameters.hpp   |   208 +
 .../xmm/src/models/hmm/xmmHmmResults.hpp      |    93 +
 .../xmm/src/models/hmm/xmmHmmSingleClass.cpp  |  1480 +++
 .../xmm/src/models/hmm/xmmHmmSingleClass.hpp  |   527 +
 .../xmm/src/models/kmeans/xmmKMeans.cpp       |   284 +
 .../xmm/src/models/kmeans/xmmKMeans.hpp       |   179 +
 .../src/models/kmeans/xmmKMeansParameters.cpp |   108 +
 .../src/models/kmeans/xmmKMeansParameters.hpp |   127 +
 .../src/models/kmeans/xmmKMeansResults.hpp    |    57 +
 .../dependencies/xmm/src/xmm.h                |   450 +
 .../ofx/Bitalino_rapidmix/libRAPID-MIX_API.a  |   Bin 0 -> 2254136 bytes
 .../openFrameworks-Info.plist                 |    22 +
 .../ofx/Bitalino_rapidmix/rapid-mix/LICENSE   |    29 +
 .../machineLearning/machineLearning.cpp       |    91 +
 .../machineLearning/machineLearning.h         |   113 +
 .../machineLearning/rapidGVF/rapidGVF.cpp     |    86 +
 .../machineLearning/rapidGVF/rapidGVF.h       |    37 +
 .../machineLearning/rapidXMM/rapidXMM.cpp     |   208 +
 .../machineLearning/rapidXMM/rapidXMM.h       |   296 +
 .../machineLearning/trainingData.cpp          |   207 +
 .../rapid-mix/machineLearning/trainingData.h  |   114 +
 .../Bitalino_rapidmix/rapid-mix/rapidmix.h    |    48 +
 .../rapidPiPoTools/rapidPiPoHost.cpp          |   764 ++
 .../rapidPiPoTools/rapidPiPoHost.h            |   249 +
 .../rapidPiPoTools/rapidPiPoTools.h           |     9 +
 .../signalProcessing/signalProcessing.h       |    36 +
 .../Bitalino_rapidmix/src/BitalinoThread.h    |   145 +
 .../Bitalino_rapidmix/src/RapidBitalino.cpp   |   138 +
 .../ofx/Bitalino_rapidmix/src/RapidBitalino.h |    69 +
 .../Bitalino_rapidmix/src/RapidMixThread.h    |    98 +
 .../ofx/Bitalino_rapidmix/src/RingBuffer.hpp  |   222 +
 .../Bitalino_rapidmix/src/ThreadedProcess.h   |    74 +
 .../ofx/Bitalino_rapidmix/src/bitalino.cpp    |   799 ++
 examples/ofx/Bitalino_rapidmix/src/bitalino.h |   319 +
 examples/ofx/Bitalino_rapidmix/src/main.cpp   |    13 +
 examples/ofx/Bitalino_rapidmix/src/ofApp.cpp  |   111 +
 examples/ofx/Bitalino_rapidmix/src/ofApp.h    |    29 +
 267 files changed, 111627 insertions(+)
 create mode 100644 examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.pbxproj
 create mode 100644 examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 create mode 100644 examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Debug.xcscheme
 create mode 100644 examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Release.xcscheme
 create mode 100644 examples/ofx/Bitalino_rapidmix/Makefile
 create mode 100644 examples/ofx/Bitalino_rapidmix/Project.xcconfig
 create mode 100644 examples/ofx/Bitalino_rapidmix/addons.make
 create mode 100644 examples/ofx/Bitalino_rapidmix/bin/data/.gitkeep
 create mode 100644 examples/ofx/Bitalino_rapidmix/config.make
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.cpp
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFGesture.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFUtils.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/GVF/LICENSE
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json-forwards.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/jsoncpp.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/baseModel.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/classificationEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/knnEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/modelSetEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nnEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nodeEnv.js
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidLibPost.js
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidStreamEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/regressionEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/seriesClassificationEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/svmEmbindings.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/trainingExample.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/.gitignore
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/README.md
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/bin/osx/libpipo.a
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_complex.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_float.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_math.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdio.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdlib.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_types.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_filter.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.c
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/rta_configuration.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoGraph.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoHost.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoModule.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/mimo_host.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPo.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoParallel.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoSequence.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/RingBuffer.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/mimo.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBands.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBayesFilter.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBiquad.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoChop.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoConst.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDct.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDelta.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFft.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFiniteDif.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoGate.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpc.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpcFormants.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMeanStddev.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMedian.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMel.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMfcc.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMinMax.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMoments.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMvavrg.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoOnseg.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoPeaks.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoRms.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoScale.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSelect.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSlice.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSum.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/TempMod.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/mimo/mimo_stats.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/LICENSE_1_0.txt
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/catch.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json-forwards.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/jsoncpp.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/LICENSE
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/.gitignore
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/CMakeLists.txt
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/LICENSE
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/catch/catch.hpp
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/LICENSE
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/assertions.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/autolink.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/config.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/forwards.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json-features.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/reader.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/value.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/version.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/writer.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_reader.cpp
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_tool.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_value.cpp
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_valueiterator.inl
 create mode 100755 examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_writer.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile-dot
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/QuickStart_Python.html
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/XmmDoxygenLayout.xml
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/footer.html
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/header.html
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jdoxygen.css
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jtabs.css
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/python_example.py
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_architecture.jpg
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured.jpg
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured_.jpg
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_models.jpg
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/readme.md
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmCircularbuffer.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmEvents.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmMatrix.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModel.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelConfiguration.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelParameters.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelResults.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmResults.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansResults.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/xmm.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/libRAPID-MIX_API.a
 create mode 100644 examples/ofx/Bitalino_rapidmix/openFrameworks-Info.plist
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/LICENSE
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/rapidmix.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoTools.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/signalProcessing.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/BitalinoThread.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/RapidBitalino.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/RapidBitalino.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/RapidMixThread.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/RingBuffer.hpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/ThreadedProcess.h
 create mode 100755 examples/ofx/Bitalino_rapidmix/src/bitalino.cpp
 create mode 100755 examples/ofx/Bitalino_rapidmix/src/bitalino.h
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/main.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/ofApp.cpp
 create mode 100644 examples/ofx/Bitalino_rapidmix/src/ofApp.h

diff --git a/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.pbxproj b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..d5f0946
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.pbxproj
@@ -0,0 +1,1798 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		0289606657F3E1B14D87F2BC /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E661ACAA5BEC5B96FD2F6532 /* ofxSliderGroup.cpp */; };
+		06B42CCB73078EB0E8E265EE /* IpEndpointName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 552D90E7024A93518E711979 /* IpEndpointName.cpp */; };
+		0B9EEAF6D1EBB25B81373273 /* OscReceivedElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 333B161A45E42EF09ADEC7A5 /* OscReceivedElements.cpp */; };
+		10C531C84875D2C829391B4E /* maxiGrains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 300B4DCCFFECBD546568227A /* maxiGrains.cpp */; };
+		1A04D8C41FC31D0E00D725DC /* RapidBitalino.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A04D8C31FC31D0E00D725DC /* RapidBitalino.cpp */; };
+		1A04D8D81FC38F3700D725DC /* libRAPID-MIX_API.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A04D8D71FC38F3700D725DC /* libRAPID-MIX_API.a */; };
+		1A7329231FC304D0001E730B /* machineLearning.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A0030991FC3043900E02B93 /* machineLearning.cpp */; };
+		1A7329241FC304D0001E730B /* rapidGVF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A00309C1FC3043900E02B93 /* rapidGVF.cpp */; };
+		1A7329251FC304D0001E730B /* rapidXMM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A00309F1FC3043900E02B93 /* rapidXMM.cpp */; };
+		1A7329261FC304D0001E730B /* trainingData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A0030A11FC3043900E02B93 /* trainingData.cpp */; };
+		1A73293D1FC304D5001E730B /* rapidPiPoHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A0030A61FC3043900E02B93 /* rapidPiPoHost.cpp */; };
+		1A732F4E1FC30565001E730B /* GVF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7329411FC30563001E730B /* GVF.cpp */; };
+		1A732FC91FC30566001E730B /* libpipo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A732B001FC30563001E730B /* libpipo.a */; };
+		1A732FCF1FC30566001E730B /* README.md in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B301FC30563001E730B /* README.md */; };
+		1A732FD01FC30566001E730B /* BayesianFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B341FC30563001E730B /* BayesianFilter.cpp */; };
+		1A732FD11FC30566001E730B /* filter_utilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B361FC30563001E730B /* filter_utilities.cpp */; };
+		1A732FD21FC30566001E730B /* finitedifferences.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B391FC30563001E730B /* finitedifferences.c */; };
+		1A732FD31FC30566001E730B /* bbpr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B3C1FC30563001E730B /* bbpr.cpp */; };
+		1A732FD41FC30566001E730B /* rpoly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B3E1FC30563001E730B /* rpoly.cpp */; };
+		1A732FD51FC30566001E730B /* rta_bpf.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B431FC30563001E730B /* rta_bpf.c */; };
+		1A732FD61FC30566001E730B /* rta_int.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B471FC30563001E730B /* rta_int.c */; };
+		1A732FD71FC30566001E730B /* rta_util.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B4D1FC30563001E730B /* rta_util.c */; };
+		1A732FD81FC30566001E730B /* rta_bands.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B501FC30563001E730B /* rta_bands.c */; };
+		1A732FD91FC30566001E730B /* rta_biquad.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B521FC30563001E730B /* rta_biquad.c */; };
+		1A732FDA1FC30566001E730B /* rta_correlation.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B541FC30563001E730B /* rta_correlation.c */; };
+		1A732FDB1FC30566001E730B /* rta_cubic.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B561FC30563001E730B /* rta_cubic.c */; };
+		1A732FDC1FC30566001E730B /* rta_dct.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B581FC30563001E730B /* rta_dct.c */; };
+		1A732FDD1FC30566001E730B /* rta_delta.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B5A1FC30563001E730B /* rta_delta.c */; };
+		1A732FDE1FC30566001E730B /* rta_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B5C1FC30563001E730B /* rta_fft.c */; };
+		1A732FDF1FC30566001E730B /* rta_lifter.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B5F1FC30563001E730B /* rta_lifter.c */; };
+		1A732FE01FC30566001E730B /* rta_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B611FC30563001E730B /* rta_lpc.c */; };
+		1A732FE11FC30566001E730B /* rta_mean_variance.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B631FC30563001E730B /* rta_mean_variance.c */; };
+		1A732FE21FC30566001E730B /* rta_mel.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B651FC30563001E730B /* rta_mel.c */; };
+		1A732FE31FC30566001E730B /* rta_moments.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B671FC30563001E730B /* rta_moments.c */; };
+		1A732FE41FC30566001E730B /* rta_onepole.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B691FC30563001E730B /* rta_onepole.c */; };
+		1A732FE51FC30566001E730B /* rta_preemphasis.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B6B1FC30563001E730B /* rta_preemphasis.c */; };
+		1A732FE61FC30566001E730B /* rta_resample.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B6D1FC30563001E730B /* rta_resample.c */; };
+		1A732FE71FC30566001E730B /* rta_selection.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B6F1FC30563001E730B /* rta_selection.c */; };
+		1A732FE81FC30566001E730B /* rta_svd.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B711FC30563001E730B /* rta_svd.c */; };
+		1A732FE91FC30566001E730B /* rta_window.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B731FC30563001E730B /* rta_window.c */; };
+		1A732FEA1FC30566001E730B /* PiPoCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732B781FC30563001E730B /* PiPoCollection.cpp */; };
+		1A732FF41FC30566001E730B /* libsvm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732BB51FC30563001E730B /* libsvm.cpp */; };
+		1A7330041FC30566001E730B /* classification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E881FC30565001E730B /* classification.cpp */; };
+		1A7330051FC30566001E730B /* dtw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E8A1FC30565001E730B /* dtw.cpp */; };
+		1A7330061FC30566001E730B /* fastDTW.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E971FC30565001E730B /* fastDTW.cpp */; };
+		1A7330071FC30566001E730B /* knnClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E991FC30565001E730B /* knnClassification.cpp */; };
+		1A7330081FC30566001E730B /* modelSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E9B1FC30565001E730B /* modelSet.cpp */; };
+		1A7330091FC30566001E730B /* neuralNetwork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E9D1FC30565001E730B /* neuralNetwork.cpp */; };
+		1A73300A1FC30566001E730B /* rapidStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732E9F1FC30565001E730B /* rapidStream.cpp */; };
+		1A73300B1FC30566001E730B /* regression.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EA11FC30565001E730B /* regression.cpp */; };
+		1A73300C1FC30566001E730B /* searchWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EA31FC30565001E730B /* searchWindow.cpp */; };
+		1A73300D1FC30566001E730B /* seriesClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EA51FC30565001E730B /* seriesClassification.cpp */; };
+		1A73300E1FC30566001E730B /* svmClassification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EA71FC30565001E730B /* svmClassification.cpp */; };
+		1A73300F1FC30566001E730B /* warpPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EAA1FC30565001E730B /* warpPath.cpp */; };
+		1A7330141FC30566001E730B /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732EC71FC30565001E730B /* jsoncpp.cpp */; };
+		1A73301B1FC30566001E730B /* readme.md in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F121FC30565001E730B /* readme.md */; };
+		1A73301C1FC30566001E730B /* xmmAttribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F161FC30565001E730B /* xmmAttribute.cpp */; };
+		1A73301D1FC30566001E730B /* xmmJson.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F1A1FC30565001E730B /* xmmJson.cpp */; };
+		1A73301E1FC30566001E730B /* xmmGaussianDistribution.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F1E1FC30565001E730B /* xmmGaussianDistribution.cpp */; };
+		1A73301F1FC30566001E730B /* xmmModelSharedParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F251FC30565001E730B /* xmmModelSharedParameters.cpp */; };
+		1A7330201FC30566001E730B /* xmmModelSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F271FC30565001E730B /* xmmModelSingleClass.cpp */; };
+		1A7330211FC30566001E730B /* xmmPhrase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F2A1FC30565001E730B /* xmmPhrase.cpp */; };
+		1A7330221FC30566001E730B /* xmmTrainingSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F2C1FC30565001E730B /* xmmTrainingSet.cpp */; };
+		1A7330231FC30566001E730B /* xmmGmm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F301FC30565001E730B /* xmmGmm.cpp */; };
+		1A7330241FC30566001E730B /* xmmGmmParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F321FC30565001E730B /* xmmGmmParameters.cpp */; };
+		1A7330251FC30566001E730B /* xmmGmmSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F341FC30565001E730B /* xmmGmmSingleClass.cpp */; };
+		1A7330261FC30566001E730B /* xmmHierarchicalHmm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F371FC30565001E730B /* xmmHierarchicalHmm.cpp */; };
+		1A7330271FC30566001E730B /* xmmHmmParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F391FC30565001E730B /* xmmHmmParameters.cpp */; };
+		1A7330281FC30566001E730B /* xmmHmmSingleClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F3C1FC30565001E730B /* xmmHmmSingleClass.cpp */; };
+		1A7330291FC30566001E730B /* xmmKMeans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F3F1FC30565001E730B /* xmmKMeans.cpp */; };
+		1A73302A1FC30566001E730B /* xmmKMeansParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A732F411FC30565001E730B /* xmmKMeansParameters.cpp */; };
+		1AF8F4F41FBFBA56007845B3 /* bitalino.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AF8F4F21FBFBA56007845B3 /* bitalino.cpp */; };
+		1F4CACB1B7D09B43508A7EC3 /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E76982C6091099847AF4A689 /* ofxButton.cpp */; };
+		230128348F328F3A83D41798 /* UdpSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 138DE2396984C9C63DA7FDD6 /* UdpSocket.cpp */; };
+		39B159E39B6636BFC65B0F2A /* NetworkingUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 54C5AF569662A8351667313E /* NetworkingUtils.cpp */; };
+		460809B55AD9FA35FEEF18E9 /* maxiBark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E79D78A192005C0D7FDA98C0 /* maxiBark.cpp */; };
+		617ACA40B63357D76A9595A8 /* ofxOscReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F5FFC9C08A87AE48EA5E66C /* ofxOscReceiver.cpp */; };
+		638D65104AC275AFCB576B80 /* OscPrintReceivedElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EFE170390703388444A995C /* OscPrintReceivedElements.cpp */; };
+		66078BCDF7C6B8F85391BD78 /* OscTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E87C4F253FACA6BBF714AD99 /* OscTypes.cpp */; };
+		6DEA5ACAF78C6AE7BB6BFDCF /* stb_vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 8DC5D79A78655BF028FBDE30 /* stb_vorbis.c */; };
+		77C1DBAB01757716D71545F7 /* maximilian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FEC22E5BFC33148A93E906A /* maximilian.cpp */; };
+		7BF363788124DFB219FEA2D9 /* ofxOscBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1661CDE0EE45AC19EF11DA8E /* ofxOscBundle.cpp */; };
+		821FDA0B1E4F7BB6AF683071 /* maxiFFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D7D4C890B7E7E86CF67EDE9 /* maxiFFT.cpp */; };
+		83944CBA55088BC6E0CB8655 /* ofxOscMessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D39514497AFC9A4AAE903696 /* ofxOscMessage.cpp */; };
+		982961365190FE97577EC25D /* maxiMFCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C590EAED7C04204257DE2745 /* maxiMFCC.cpp */; };
+		9B232A695C4183B7E9D6DE6B /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 161030033DD4104A32E68FA8 /* ofxGuiGroup.cpp */; };
+		9DB59557693F5AF1C3B86978 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C85AEC4A09E7407508E41723 /* ofxLabel.cpp */; };
+		A22B63CBE8E52759908258DF /* OscOutboundPacketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 16F2E6A76B43CC86E0875826 /* OscOutboundPacketStream.cpp */; };
+		A6B3D68D6CAF91615E79B729 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3646FFD002EE9FED0DD367F3 /* ofxPanel.cpp */; };
+		AE5D0283C3A439F21F24D146 /* maxiAtoms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21080C6D8829F198543F568E /* maxiAtoms.cpp */; };
+		BE5879D980EF1A321B38BDED /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5BA6903E0287C0B3CBF81989 /* ofxToggle.cpp */; };
+		C061F0FB55B94C461FF5D520 /* ofxOscParameterSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DCB987CA7BF7FB3A39EF3514 /* ofxOscParameterSync.cpp */; };
+		C0A43D1F56B1198FC5EE7031 /* ofxOscSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AEC6D21EB03AE1B72B35D0D9 /* ofxOscSender.cpp */; };
+		C1CCEDB5321AA5A832D215F0 /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 951C54CCCD72A0FFC773653F /* ofxSlider.cpp */; };
+		CBF1E66610EC3ED02B8E7810 /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DC8DE4E32DB58B5849214F05 /* fft.cpp */; };
+		E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
+		E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
+		E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; };
+		E6E8C6BA7D5DD18D84DCE6B9 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 283D3449127FCD4AE5F47F88 /* ofxBaseGui.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = E4B27C1510CBEB8E00536013;
+			remoteInfo = openFrameworks;
+		};
+		E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = E4B27C1410CBEB8E00536013;
+			remoteInfo = openFrameworks;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		008629CF1C50CAC655956424 /* maximilian.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maximilian.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maximilian.h; sourceTree = SOURCE_ROOT; };
+		0972B751F7A633CC3CCD4C70 /* TimerListener.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = TimerListener.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/TimerListener.h; sourceTree = SOURCE_ROOT; };
+		09AEC4E5ECE805EAD349DBCE /* PacketListener.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = PacketListener.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/PacketListener.h; sourceTree = SOURCE_ROOT; };
+		0D0D8D193987B4296465A319 /* ofxOscReceiver.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscReceiver.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscReceiver.h; sourceTree = SOURCE_ROOT; };
+		0FEC22E5BFC33148A93E906A /* maximilian.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maximilian.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maximilian.cpp; sourceTree = SOURCE_ROOT; };
+		138DE2396984C9C63DA7FDD6 /* UdpSocket.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = UdpSocket.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix/UdpSocket.cpp; sourceTree = SOURCE_ROOT; };
+		161030033DD4104A32E68FA8 /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxGuiGroup.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxGuiGroup.cpp; sourceTree = SOURCE_ROOT; };
+		1661CDE0EE45AC19EF11DA8E /* ofxOscBundle.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxOscBundle.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscBundle.cpp; sourceTree = SOURCE_ROOT; };
+		16F2E6A76B43CC86E0875826 /* OscOutboundPacketStream.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OscOutboundPacketStream.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscOutboundPacketStream.cpp; sourceTree = SOURCE_ROOT; };
+		1A0030971FC3043900E02B93 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
+		1A0030991FC3043900E02B93 /* machineLearning.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = machineLearning.cpp; sourceTree = "<group>"; };
+		1A00309A1FC3043900E02B93 /* machineLearning.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = machineLearning.h; sourceTree = "<group>"; };
+		1A00309C1FC3043900E02B93 /* rapidGVF.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rapidGVF.cpp; sourceTree = "<group>"; };
+		1A00309D1FC3043900E02B93 /* rapidGVF.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rapidGVF.h; sourceTree = "<group>"; };
+		1A00309F1FC3043900E02B93 /* rapidXMM.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rapidXMM.cpp; sourceTree = "<group>"; };
+		1A0030A01FC3043900E02B93 /* rapidXMM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rapidXMM.h; sourceTree = "<group>"; };
+		1A0030A11FC3043900E02B93 /* trainingData.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = trainingData.cpp; sourceTree = "<group>"; };
+		1A0030A21FC3043900E02B93 /* trainingData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = trainingData.h; sourceTree = "<group>"; };
+		1A0030A31FC3043900E02B93 /* rapidmix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rapidmix.h; sourceTree = "<group>"; };
+		1A0030A61FC3043900E02B93 /* rapidPiPoHost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rapidPiPoHost.cpp; sourceTree = "<group>"; };
+		1A0030A71FC3043900E02B93 /* rapidPiPoHost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rapidPiPoHost.h; sourceTree = "<group>"; };
+		1A0030A81FC3043900E02B93 /* rapidPiPoTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rapidPiPoTools.h; sourceTree = "<group>"; };
+		1A0030A91FC3043900E02B93 /* signalProcessing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = signalProcessing.h; sourceTree = "<group>"; };
+		1A04D8C21FC31C0000D725DC /* RapidBitalino.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RapidBitalino.h; sourceTree = "<group>"; };
+		1A04D8C31FC31D0E00D725DC /* RapidBitalino.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RapidBitalino.cpp; sourceTree = "<group>"; };
+		1A04D8D71FC38F3700D725DC /* libRAPID-MIX_API.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libRAPID-MIX_API.a"; sourceTree = "<group>"; };
+		1A7329411FC30563001E730B /* GVF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GVF.cpp; sourceTree = "<group>"; };
+		1A7329421FC30563001E730B /* GVF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GVF.h; sourceTree = "<group>"; };
+		1A7329431FC30563001E730B /* GVFGesture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GVFGesture.h; sourceTree = "<group>"; };
+		1A7329441FC30563001E730B /* GVFUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GVFUtils.h; sourceTree = "<group>"; };
+		1A7329451FC30563001E730B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
+		1A732AFD1FC30563001E730B /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
+		1A732B001FC30563001E730B /* libpipo.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libpipo.a; sourceTree = "<group>"; };
+		1A732B301FC30563001E730B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
+		1A732B341FC30563001E730B /* BayesianFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BayesianFilter.cpp; sourceTree = "<group>"; };
+		1A732B351FC30563001E730B /* BayesianFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BayesianFilter.h; sourceTree = "<group>"; };
+		1A732B361FC30563001E730B /* filter_utilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = filter_utilities.cpp; sourceTree = "<group>"; };
+		1A732B371FC30563001E730B /* filter_utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter_utilities.h; sourceTree = "<group>"; };
+		1A732B391FC30563001E730B /* finitedifferences.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = finitedifferences.c; sourceTree = "<group>"; };
+		1A732B3A1FC30563001E730B /* finitedifferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = finitedifferences.h; sourceTree = "<group>"; };
+		1A732B3C1FC30563001E730B /* bbpr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bbpr.cpp; sourceTree = "<group>"; };
+		1A732B3D1FC30563001E730B /* bbpr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bbpr.h; sourceTree = "<group>"; };
+		1A732B3E1FC30563001E730B /* rpoly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rpoly.cpp; sourceTree = "<group>"; };
+		1A732B3F1FC30563001E730B /* rpoly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rpoly.h; sourceTree = "<group>"; };
+		1A732B421FC30563001E730B /* rta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta.h; sourceTree = "<group>"; };
+		1A732B431FC30563001E730B /* rta_bpf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_bpf.c; sourceTree = "<group>"; };
+		1A732B441FC30563001E730B /* rta_bpf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_bpf.h; sourceTree = "<group>"; };
+		1A732B451FC30563001E730B /* rta_complex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_complex.h; sourceTree = "<group>"; };
+		1A732B461FC30563001E730B /* rta_float.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_float.h; sourceTree = "<group>"; };
+		1A732B471FC30563001E730B /* rta_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_int.c; sourceTree = "<group>"; };
+		1A732B481FC30563001E730B /* rta_int.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_int.h; sourceTree = "<group>"; };
+		1A732B491FC30563001E730B /* rta_math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_math.h; sourceTree = "<group>"; };
+		1A732B4A1FC30563001E730B /* rta_stdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_stdio.h; sourceTree = "<group>"; };
+		1A732B4B1FC30563001E730B /* rta_stdlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_stdlib.h; sourceTree = "<group>"; };
+		1A732B4C1FC30563001E730B /* rta_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_types.h; sourceTree = "<group>"; };
+		1A732B4D1FC30563001E730B /* rta_util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_util.c; sourceTree = "<group>"; };
+		1A732B4E1FC30563001E730B /* rta_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_util.h; sourceTree = "<group>"; };
+		1A732B501FC30563001E730B /* rta_bands.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_bands.c; sourceTree = "<group>"; };
+		1A732B511FC30563001E730B /* rta_bands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_bands.h; sourceTree = "<group>"; };
+		1A732B521FC30563001E730B /* rta_biquad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_biquad.c; sourceTree = "<group>"; };
+		1A732B531FC30563001E730B /* rta_biquad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_biquad.h; sourceTree = "<group>"; };
+		1A732B541FC30563001E730B /* rta_correlation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_correlation.c; sourceTree = "<group>"; };
+		1A732B551FC30563001E730B /* rta_correlation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_correlation.h; sourceTree = "<group>"; };
+		1A732B561FC30563001E730B /* rta_cubic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_cubic.c; sourceTree = "<group>"; };
+		1A732B571FC30563001E730B /* rta_cubic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_cubic.h; sourceTree = "<group>"; };
+		1A732B581FC30563001E730B /* rta_dct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_dct.c; sourceTree = "<group>"; };
+		1A732B591FC30563001E730B /* rta_dct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_dct.h; sourceTree = "<group>"; };
+		1A732B5A1FC30563001E730B /* rta_delta.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_delta.c; sourceTree = "<group>"; };
+		1A732B5B1FC30563001E730B /* rta_delta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_delta.h; sourceTree = "<group>"; };
+		1A732B5C1FC30563001E730B /* rta_fft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_fft.c; sourceTree = "<group>"; };
+		1A732B5D1FC30563001E730B /* rta_fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_fft.h; sourceTree = "<group>"; };
+		1A732B5E1FC30563001E730B /* rta_filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_filter.h; sourceTree = "<group>"; };
+		1A732B5F1FC30563001E730B /* rta_lifter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_lifter.c; sourceTree = "<group>"; };
+		1A732B601FC30563001E730B /* rta_lifter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_lifter.h; sourceTree = "<group>"; };
+		1A732B611FC30563001E730B /* rta_lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_lpc.c; sourceTree = "<group>"; };
+		1A732B621FC30563001E730B /* rta_lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_lpc.h; sourceTree = "<group>"; };
+		1A732B631FC30563001E730B /* rta_mean_variance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_mean_variance.c; sourceTree = "<group>"; };
+		1A732B641FC30563001E730B /* rta_mean_variance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_mean_variance.h; sourceTree = "<group>"; };
+		1A732B651FC30563001E730B /* rta_mel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_mel.c; sourceTree = "<group>"; };
+		1A732B661FC30563001E730B /* rta_mel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_mel.h; sourceTree = "<group>"; };
+		1A732B671FC30563001E730B /* rta_moments.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_moments.c; sourceTree = "<group>"; };
+		1A732B681FC30563001E730B /* rta_moments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_moments.h; sourceTree = "<group>"; };
+		1A732B691FC30563001E730B /* rta_onepole.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_onepole.c; sourceTree = "<group>"; };
+		1A732B6A1FC30563001E730B /* rta_onepole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_onepole.h; sourceTree = "<group>"; };
+		1A732B6B1FC30563001E730B /* rta_preemphasis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_preemphasis.c; sourceTree = "<group>"; };
+		1A732B6C1FC30563001E730B /* rta_preemphasis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_preemphasis.h; sourceTree = "<group>"; };
+		1A732B6D1FC30563001E730B /* rta_resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_resample.c; sourceTree = "<group>"; };
+		1A732B6E1FC30563001E730B /* rta_resample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_resample.h; sourceTree = "<group>"; };
+		1A732B6F1FC30563001E730B /* rta_selection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_selection.c; sourceTree = "<group>"; };
+		1A732B701FC30563001E730B /* rta_selection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_selection.h; sourceTree = "<group>"; };
+		1A732B711FC30563001E730B /* rta_svd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_svd.c; sourceTree = "<group>"; };
+		1A732B721FC30563001E730B /* rta_svd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_svd.h; sourceTree = "<group>"; };
+		1A732B731FC30563001E730B /* rta_window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rta_window.c; sourceTree = "<group>"; };
+		1A732B741FC30563001E730B /* rta_window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_window.h; sourceTree = "<group>"; };
+		1A732B751FC30563001E730B /* rta_configuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rta_configuration.h; sourceTree = "<group>"; };
+		1A732B771FC30563001E730B /* mimo_host.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mimo_host.h; sourceTree = "<group>"; };
+		1A732B781FC30563001E730B /* PiPoCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PiPoCollection.cpp; sourceTree = "<group>"; };
+		1A732B791FC30563001E730B /* PiPoCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoCollection.h; sourceTree = "<group>"; };
+		1A732B7A1FC30563001E730B /* PiPoGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoGraph.h; sourceTree = "<group>"; };
+		1A732B7B1FC30563001E730B /* PiPoHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoHost.h; sourceTree = "<group>"; };
+		1A732B7C1FC30563001E730B /* PiPoModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoModule.h; sourceTree = "<group>"; };
+		1A732B7E1FC30563001E730B /* mimo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mimo.h; sourceTree = "<group>"; };
+		1A732B7F1FC30563001E730B /* PiPo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPo.h; sourceTree = "<group>"; };
+		1A732B801FC30563001E730B /* PiPoParallel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoParallel.h; sourceTree = "<group>"; };
+		1A732B811FC30563001E730B /* PiPoSequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoSequence.h; sourceTree = "<group>"; };
+		1A732B821FC30563001E730B /* RingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RingBuffer.h; sourceTree = "<group>"; };
+		1A732B851FC30563001E730B /* mimo_stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mimo_stats.h; sourceTree = "<group>"; };
+		1A732B861FC30563001E730B /* PiPoBands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoBands.h; sourceTree = "<group>"; };
+		1A732B871FC30563001E730B /* PiPoBayesFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoBayesFilter.h; sourceTree = "<group>"; };
+		1A732B881FC30563001E730B /* PiPoBiquad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoBiquad.h; sourceTree = "<group>"; };
+		1A732B891FC30563001E730B /* PiPoChop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoChop.h; sourceTree = "<group>"; };
+		1A732B8A1FC30563001E730B /* PiPoConst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoConst.h; sourceTree = "<group>"; };
+		1A732B8B1FC30563001E730B /* PiPoDct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoDct.h; sourceTree = "<group>"; };
+		1A732B8C1FC30563001E730B /* PiPoDelta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoDelta.h; sourceTree = "<group>"; };
+		1A732B8D1FC30563001E730B /* PiPoFft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoFft.h; sourceTree = "<group>"; };
+		1A732B8E1FC30563001E730B /* PiPoFiniteDif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoFiniteDif.h; sourceTree = "<group>"; };
+		1A732B8F1FC30563001E730B /* PiPoGate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoGate.h; sourceTree = "<group>"; };
+		1A732B901FC30563001E730B /* PiPoLpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoLpc.h; sourceTree = "<group>"; };
+		1A732B911FC30563001E730B /* PiPoLpcFormants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoLpcFormants.h; sourceTree = "<group>"; };
+		1A732B921FC30563001E730B /* PiPoMeanStddev.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMeanStddev.h; sourceTree = "<group>"; };
+		1A732B931FC30563001E730B /* PiPoMedian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMedian.h; sourceTree = "<group>"; };
+		1A732B941FC30563001E730B /* PiPoMel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMel.h; sourceTree = "<group>"; };
+		1A732B951FC30563001E730B /* PiPoMfcc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMfcc.h; sourceTree = "<group>"; };
+		1A732B961FC30563001E730B /* PiPoMinMax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMinMax.h; sourceTree = "<group>"; };
+		1A732B971FC30563001E730B /* PiPoMoments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMoments.h; sourceTree = "<group>"; };
+		1A732B981FC30563001E730B /* PiPoMvavrg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoMvavrg.h; sourceTree = "<group>"; };
+		1A732B991FC30563001E730B /* PiPoOnseg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoOnseg.h; sourceTree = "<group>"; };
+		1A732B9A1FC30563001E730B /* PiPoPeaks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoPeaks.h; sourceTree = "<group>"; };
+		1A732B9B1FC30563001E730B /* PiPoRms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoRms.h; sourceTree = "<group>"; };
+		1A732B9C1FC30563001E730B /* PiPoScale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoScale.h; sourceTree = "<group>"; };
+		1A732B9D1FC30563001E730B /* PiPoSelect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoSelect.h; sourceTree = "<group>"; };
+		1A732B9E1FC30563001E730B /* PiPoSlice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoSlice.h; sourceTree = "<group>"; };
+		1A732B9F1FC30563001E730B /* PiPoSum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PiPoSum.h; sourceTree = "<group>"; };
+		1A732BA01FC30563001E730B /* TempMod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TempMod.h; sourceTree = "<group>"; };
+		1A732BB11FC30563001E730B /* json-forwards.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "json-forwards.h"; sourceTree = "<group>"; };
+		1A732BB21FC30563001E730B /* json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json.h; sourceTree = "<group>"; };
+		1A732BB31FC30563001E730B /* jsoncpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jsoncpp.cpp; sourceTree = "<group>"; };
+		1A732BB51FC30563001E730B /* libsvm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libsvm.cpp; sourceTree = "<group>"; };
+		1A732BB61FC30563001E730B /* libsvm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libsvm.h; sourceTree = "<group>"; };
+		1A732E871FC30565001E730B /* baseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = baseModel.h; sourceTree = "<group>"; };
+		1A732E881FC30565001E730B /* classification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = classification.cpp; sourceTree = "<group>"; };
+		1A732E891FC30565001E730B /* classification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = classification.h; sourceTree = "<group>"; };
+		1A732E8A1FC30565001E730B /* dtw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dtw.cpp; sourceTree = "<group>"; };
+		1A732E8B1FC30565001E730B /* dtw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtw.h; sourceTree = "<group>"; };
+		1A732E8D1FC30565001E730B /* classificationEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = classificationEmbindings.h; sourceTree = "<group>"; };
+		1A732E8E1FC30565001E730B /* knnEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = knnEmbindings.h; sourceTree = "<group>"; };
+		1A732E8F1FC30565001E730B /* modelSetEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modelSetEmbindings.h; sourceTree = "<group>"; };
+		1A732E901FC30565001E730B /* nnEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nnEmbindings.h; sourceTree = "<group>"; };
+		1A732E911FC30565001E730B /* nodeEnv.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = nodeEnv.js; sourceTree = "<group>"; };
+		1A732E921FC30565001E730B /* rapidLibPost.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = rapidLibPost.js; sourceTree = "<group>"; };
+		1A732E931FC30565001E730B /* rapidStreamEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rapidStreamEmbindings.h; sourceTree = "<group>"; };
+		1A732E941FC30565001E730B /* regressionEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regressionEmbindings.h; sourceTree = "<group>"; };
+		1A732E951FC30565001E730B /* seriesClassificationEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seriesClassificationEmbindings.h; sourceTree = "<group>"; };
+		1A732E961FC30565001E730B /* svmEmbindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svmEmbindings.h; sourceTree = "<group>"; };
+		1A732E971FC30565001E730B /* fastDTW.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fastDTW.cpp; sourceTree = "<group>"; };
+		1A732E981FC30565001E730B /* fastDTW.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fastDTW.h; sourceTree = "<group>"; };
+		1A732E991FC30565001E730B /* knnClassification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = knnClassification.cpp; sourceTree = "<group>"; };
+		1A732E9A1FC30565001E730B /* knnClassification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = knnClassification.h; sourceTree = "<group>"; };
+		1A732E9B1FC30565001E730B /* modelSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = modelSet.cpp; sourceTree = "<group>"; };
+		1A732E9C1FC30565001E730B /* modelSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modelSet.h; sourceTree = "<group>"; };
+		1A732E9D1FC30565001E730B /* neuralNetwork.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = neuralNetwork.cpp; sourceTree = "<group>"; };
+		1A732E9E1FC30565001E730B /* neuralNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = neuralNetwork.h; sourceTree = "<group>"; };
+		1A732E9F1FC30565001E730B /* rapidStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = rapidStream.cpp; sourceTree = "<group>"; };
+		1A732EA01FC30565001E730B /* rapidStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rapidStream.h; sourceTree = "<group>"; };
+		1A732EA11FC30565001E730B /* regression.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = regression.cpp; sourceTree = "<group>"; };
+		1A732EA21FC30565001E730B /* regression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regression.h; sourceTree = "<group>"; };
+		1A732EA31FC30565001E730B /* searchWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = searchWindow.cpp; sourceTree = "<group>"; };
+		1A732EA41FC30565001E730B /* searchWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = searchWindow.h; sourceTree = "<group>"; };
+		1A732EA51FC30565001E730B /* seriesClassification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = seriesClassification.cpp; sourceTree = "<group>"; };
+		1A732EA61FC30565001E730B /* seriesClassification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seriesClassification.h; sourceTree = "<group>"; };
+		1A732EA71FC30565001E730B /* svmClassification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = svmClassification.cpp; sourceTree = "<group>"; };
+		1A732EA81FC30565001E730B /* svmClassification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = svmClassification.h; sourceTree = "<group>"; };
+		1A732EA91FC30565001E730B /* trainingExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = trainingExample.h; sourceTree = "<group>"; };
+		1A732EAA1FC30565001E730B /* warpPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = warpPath.cpp; sourceTree = "<group>"; };
+		1A732EAB1FC30565001E730B /* warpPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = warpPath.h; sourceTree = "<group>"; };
+		1A732EC21FC30565001E730B /* catch.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch.hpp; sourceTree = "<group>"; };
+		1A732EC31FC30565001E730B /* LICENSE_1_0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE_1_0.txt; sourceTree = "<group>"; };
+		1A732EC51FC30565001E730B /* json-forwards.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "json-forwards.h"; sourceTree = "<group>"; };
+		1A732EC61FC30565001E730B /* json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json.h; sourceTree = "<group>"; };
+		1A732EC71FC30565001E730B /* jsoncpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = jsoncpp.cpp; sourceTree = "<group>"; };
+		1A732EC91FC30565001E730B /* libsvm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libsvm.cpp; sourceTree = "<group>"; };
+		1A732ECA1FC30565001E730B /* libsvm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libsvm.h; sourceTree = "<group>"; };
+		1A732ECB1FC30565001E730B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
+		1A732ECD1FC30565001E730B /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
+		1A732ECE1FC30565001E730B /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
+		1A732ED11FC30565001E730B /* catch.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch.hpp; sourceTree = "<group>"; };
+		1A732ED41FC30565001E730B /* assertions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assertions.h; sourceTree = "<group>"; };
+		1A732ED51FC30565001E730B /* autolink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autolink.h; sourceTree = "<group>"; };
+		1A732ED61FC30565001E730B /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
+		1A732ED71FC30565001E730B /* forwards.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = forwards.h; sourceTree = "<group>"; };
+		1A732ED81FC30565001E730B /* json-features.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "json-features.h"; sourceTree = "<group>"; };
+		1A732ED91FC30565001E730B /* json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json.h; sourceTree = "<group>"; };
+		1A732EDA1FC30565001E730B /* reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reader.h; sourceTree = "<group>"; };
+		1A732EDB1FC30565001E730B /* value.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = value.h; sourceTree = "<group>"; };
+		1A732EDC1FC30565001E730B /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; };
+		1A732EDD1FC30565001E730B /* writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = writer.h; sourceTree = "<group>"; };
+		1A732EDE1FC30565001E730B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
+		1A732EE01FC30565001E730B /* json_reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_reader.cpp; sourceTree = "<group>"; };
+		1A732EE11FC30565001E730B /* json_tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_tool.h; sourceTree = "<group>"; };
+		1A732EE21FC30565001E730B /* json_value.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_value.cpp; sourceTree = "<group>"; };
+		1A732EE31FC30565001E730B /* json_valueiterator.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = json_valueiterator.inl; sourceTree = "<group>"; };
+		1A732EE41FC30565001E730B /* json_writer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = json_writer.cpp; sourceTree = "<group>"; };
+		1A732EE71FC30565001E730B /* footer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = footer.html; sourceTree = "<group>"; };
+		1A732EE81FC30565001E730B /* header.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = header.html; sourceTree = "<group>"; };
+		1A732EE91FC30565001E730B /* jdoxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = jdoxygen.css; sourceTree = "<group>"; };
+		1A732EEA1FC30565001E730B /* jtabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = jtabs.css; sourceTree = "<group>"; };
+		1A732EEB1FC30565001E730B /* python_example.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = python_example.py; sourceTree = "<group>"; };
+		1A732EEC1FC30565001E730B /* QuickStart_Python.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = QuickStart_Python.html; sourceTree = "<group>"; };
+		1A732EED1FC30565001E730B /* xmm_architecture.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = xmm_architecture.jpg; sourceTree = "<group>"; };
+		1A732EEE1FC30565001E730B /* xmm_featured.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = xmm_featured.jpg; sourceTree = "<group>"; };
+		1A732EEF1FC30565001E730B /* xmm_featured_.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = xmm_featured_.jpg; sourceTree = "<group>"; };
+		1A732EF01FC30565001E730B /* xmm_models.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = xmm_models.jpg; sourceTree = "<group>"; };
+		1A732EF11FC30565001E730B /* XmmDoxygenLayout.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = XmmDoxygenLayout.xml; sourceTree = "<group>"; };
+		1A732EF21FC30565001E730B /* Doxyfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Doxyfile; sourceTree = "<group>"; };
+		1A732EF31FC30565001E730B /* Doxyfile-dot */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "Doxyfile-dot"; sourceTree = "<group>"; };
+		1A732EF91FC30565001E730B /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
+		1A732F121FC30565001E730B /* readme.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = readme.md; sourceTree = "<group>"; };
+		1A732F161FC30565001E730B /* xmmAttribute.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmAttribute.cpp; sourceTree = "<group>"; };
+		1A732F171FC30565001E730B /* xmmAttribute.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmAttribute.hpp; sourceTree = "<group>"; };
+		1A732F181FC30565001E730B /* xmmCircularbuffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmCircularbuffer.hpp; sourceTree = "<group>"; };
+		1A732F191FC30565001E730B /* xmmEvents.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmEvents.hpp; sourceTree = "<group>"; };
+		1A732F1A1FC30565001E730B /* xmmJson.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmJson.cpp; sourceTree = "<group>"; };
+		1A732F1B1FC30565001E730B /* xmmJson.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmJson.hpp; sourceTree = "<group>"; };
+		1A732F1C1FC30565001E730B /* xmmMatrix.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmMatrix.hpp; sourceTree = "<group>"; };
+		1A732F1E1FC30565001E730B /* xmmGaussianDistribution.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmGaussianDistribution.cpp; sourceTree = "<group>"; };
+		1A732F1F1FC30565001E730B /* xmmGaussianDistribution.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmGaussianDistribution.hpp; sourceTree = "<group>"; };
+		1A732F211FC30565001E730B /* xmmModel.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModel.hpp; sourceTree = "<group>"; };
+		1A732F221FC30565001E730B /* xmmModelConfiguration.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModelConfiguration.hpp; sourceTree = "<group>"; };
+		1A732F231FC30565001E730B /* xmmModelParameters.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModelParameters.hpp; sourceTree = "<group>"; };
+		1A732F241FC30565001E730B /* xmmModelResults.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModelResults.hpp; sourceTree = "<group>"; };
+		1A732F251FC30565001E730B /* xmmModelSharedParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmModelSharedParameters.cpp; sourceTree = "<group>"; };
+		1A732F261FC30565001E730B /* xmmModelSharedParameters.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModelSharedParameters.hpp; sourceTree = "<group>"; };
+		1A732F271FC30565001E730B /* xmmModelSingleClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmModelSingleClass.cpp; sourceTree = "<group>"; };
+		1A732F281FC30565001E730B /* xmmModelSingleClass.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmModelSingleClass.hpp; sourceTree = "<group>"; };
+		1A732F2A1FC30565001E730B /* xmmPhrase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmPhrase.cpp; sourceTree = "<group>"; };
+		1A732F2B1FC30565001E730B /* xmmPhrase.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmPhrase.hpp; sourceTree = "<group>"; };
+		1A732F2C1FC30565001E730B /* xmmTrainingSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmTrainingSet.cpp; sourceTree = "<group>"; };
+		1A732F2D1FC30565001E730B /* xmmTrainingSet.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmTrainingSet.hpp; sourceTree = "<group>"; };
+		1A732F301FC30565001E730B /* xmmGmm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmGmm.cpp; sourceTree = "<group>"; };
+		1A732F311FC30565001E730B /* xmmGmm.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmGmm.hpp; sourceTree = "<group>"; };
+		1A732F321FC30565001E730B /* xmmGmmParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmGmmParameters.cpp; sourceTree = "<group>"; };
+		1A732F331FC30565001E730B /* xmmGmmParameters.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmGmmParameters.hpp; sourceTree = "<group>"; };
+		1A732F341FC30565001E730B /* xmmGmmSingleClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmGmmSingleClass.cpp; sourceTree = "<group>"; };
+		1A732F351FC30565001E730B /* xmmGmmSingleClass.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmGmmSingleClass.hpp; sourceTree = "<group>"; };
+		1A732F371FC30565001E730B /* xmmHierarchicalHmm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmHierarchicalHmm.cpp; sourceTree = "<group>"; };
+		1A732F381FC30565001E730B /* xmmHierarchicalHmm.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmHierarchicalHmm.hpp; sourceTree = "<group>"; };
+		1A732F391FC30565001E730B /* xmmHmmParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmHmmParameters.cpp; sourceTree = "<group>"; };
+		1A732F3A1FC30565001E730B /* xmmHmmParameters.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmHmmParameters.hpp; sourceTree = "<group>"; };
+		1A732F3B1FC30565001E730B /* xmmHmmResults.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmHmmResults.hpp; sourceTree = "<group>"; };
+		1A732F3C1FC30565001E730B /* xmmHmmSingleClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmHmmSingleClass.cpp; sourceTree = "<group>"; };
+		1A732F3D1FC30565001E730B /* xmmHmmSingleClass.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmHmmSingleClass.hpp; sourceTree = "<group>"; };
+		1A732F3F1FC30565001E730B /* xmmKMeans.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmKMeans.cpp; sourceTree = "<group>"; };
+		1A732F401FC30565001E730B /* xmmKMeans.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmKMeans.hpp; sourceTree = "<group>"; };
+		1A732F411FC30565001E730B /* xmmKMeansParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xmmKMeansParameters.cpp; sourceTree = "<group>"; };
+		1A732F421FC30565001E730B /* xmmKMeansParameters.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmKMeansParameters.hpp; sourceTree = "<group>"; };
+		1A732F431FC30565001E730B /* xmmKMeansResults.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = xmmKMeansResults.hpp; sourceTree = "<group>"; };
+		1A732F441FC30565001E730B /* xmm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xmm.h; sourceTree = "<group>"; };
+		1AF8F4F21FBFBA56007845B3 /* bitalino.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bitalino.cpp; sourceTree = "<group>"; };
+		1AF8F4F31FBFBA56007845B3 /* bitalino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitalino.h; sourceTree = "<group>"; };
+		1AF8F4FD1FC0D5C6007845B3 /* RingBuffer.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = RingBuffer.hpp; sourceTree = "<group>"; };
+		1AF8F4FF1FC106D2007845B3 /* ThreadedProcess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThreadedProcess.h; sourceTree = "<group>"; };
+		1AF8F5001FC108DE007845B3 /* BitalinoThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BitalinoThread.h; sourceTree = "<group>"; };
+		1AFD55011FC1C73500BDC5EC /* RapidMixThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RapidMixThread.h; sourceTree = "<group>"; };
+		21080C6D8829F198543F568E /* maxiAtoms.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maxiAtoms.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiAtoms.cpp; sourceTree = SOURCE_ROOT; };
+		283D3449127FCD4AE5F47F88 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxBaseGui.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxBaseGui.cpp; sourceTree = SOURCE_ROOT; };
+		2E39787D52B2DB29CF1FCF66 /* IpEndpointName.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = IpEndpointName.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/IpEndpointName.h; sourceTree = SOURCE_ROOT; };
+		300B4DCCFFECBD546568227A /* maxiGrains.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maxiGrains.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiGrains.cpp; sourceTree = SOURCE_ROOT; };
+		333B161A45E42EF09ADEC7A5 /* OscReceivedElements.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OscReceivedElements.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscReceivedElements.cpp; sourceTree = SOURCE_ROOT; };
+		33C51958AA0CAE4F88D953DC /* ofxOsc.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOsc.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOsc.h; sourceTree = SOURCE_ROOT; };
+		3646FFD002EE9FED0DD367F3 /* ofxPanel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPanel.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxPanel.cpp; sourceTree = SOURCE_ROOT; };
+		3A6FBE64E557C85D306947E4 /* ofxBaseGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBaseGui.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxBaseGui.h; sourceTree = SOURCE_ROOT; };
+		3B129EA9D541BE47A473BC06 /* maxiFFT.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maxiFFT.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiFFT.h; sourceTree = SOURCE_ROOT; };
+		3F1F7648BBA70B28FE923560 /* sineTable.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = sineTable.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/sineTable.h; sourceTree = SOURCE_ROOT; };
+		4169271F18AE49EFC953B0AB /* ofxLabel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxLabel.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxLabel.h; sourceTree = SOURCE_ROOT; };
+		43AF2D57607DD0B4AF3A6183 /* fft.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = fft.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/fft.h; sourceTree = SOURCE_ROOT; };
+		47DFCF539679C49445A74E64 /* OscTypes.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscTypes.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscTypes.h; sourceTree = SOURCE_ROOT; };
+		4A2FCA86040F43BCB2C12BCA /* ofxButton.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxButton.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxButton.h; sourceTree = SOURCE_ROOT; };
+		5065E0436E391619A021DE76 /* NetworkingUtils.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = NetworkingUtils.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/NetworkingUtils.h; sourceTree = SOURCE_ROOT; };
+		50B91A7EB2184FD67A06D044 /* maxiBark.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maxiBark.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiBark.h; sourceTree = SOURCE_ROOT; };
+		54C5AF569662A8351667313E /* NetworkingUtils.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = NetworkingUtils.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix/NetworkingUtils.cpp; sourceTree = SOURCE_ROOT; };
+		552D90E7024A93518E711979 /* IpEndpointName.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = IpEndpointName.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/IpEndpointName.cpp; sourceTree = SOURCE_ROOT; };
+		57C2E0F28BA237CECA2DD2F3 /* stb_vorbis.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = stb_vorbis.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/stb_vorbis.h; sourceTree = SOURCE_ROOT; };
+		5BA6903E0287C0B3CBF81989 /* ofxToggle.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxToggle.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxToggle.cpp; sourceTree = SOURCE_ROOT; };
+		5D3DC557A3FD0ADFC8D06276 /* ofxOscParameterSync.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscParameterSync.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscParameterSync.h; sourceTree = SOURCE_ROOT; };
+		6107D0B5FEEE887645CC8673 /* OscReceivedElements.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscReceivedElements.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscReceivedElements.h; sourceTree = SOURCE_ROOT; };
+		6D68865B98C85481FB07D746 /* ofxOscBundle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscBundle.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscBundle.h; sourceTree = SOURCE_ROOT; };
+		6D7D4C890B7E7E86CF67EDE9 /* maxiFFT.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maxiFFT.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiFFT.cpp; sourceTree = SOURCE_ROOT; };
+		6EFE170390703388444A995C /* OscPrintReceivedElements.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OscPrintReceivedElements.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscPrintReceivedElements.cpp; sourceTree = SOURCE_ROOT; };
+		771343C29ADB1A34A5E3F2D7 /* OscOutboundPacketStream.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscOutboundPacketStream.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscOutboundPacketStream.h; sourceTree = SOURCE_ROOT; };
+		7805756184CF7E3670EBA6B9 /* OscPacketListener.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscPacketListener.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscPacketListener.h; sourceTree = SOURCE_ROOT; };
+		7FDED04B5307798C8725EDDE /* OscHostEndianness.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscHostEndianness.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscHostEndianness.h; sourceTree = SOURCE_ROOT; };
+		86ECBAD17F7B1D927CB1931F /* ofxPanel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPanel.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxPanel.h; sourceTree = SOURCE_ROOT; };
+		8DC5D79A78655BF028FBDE30 /* stb_vorbis.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = stb_vorbis.c; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/stb_vorbis.c; sourceTree = SOURCE_ROOT; };
+		8F5FFC9C08A87AE48EA5E66C /* ofxOscReceiver.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxOscReceiver.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscReceiver.cpp; sourceTree = SOURCE_ROOT; };
+		951C54CCCD72A0FFC773653F /* ofxSlider.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSlider.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxSlider.cpp; sourceTree = SOURCE_ROOT; };
+		A93736CA5EE7029E798A22AA /* ofxMaxim.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxMaxim.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/src/ofxMaxim.h; sourceTree = SOURCE_ROOT; };
+		AA63660625DF3459DBD8486C /* OscPrintReceivedElements.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscPrintReceivedElements.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscPrintReceivedElements.h; sourceTree = SOURCE_ROOT; };
+		AEC6D21EB03AE1B72B35D0D9 /* ofxOscSender.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxOscSender.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscSender.cpp; sourceTree = SOURCE_ROOT; };
+		B86B7BDD7ADBAB228DB14744 /* ofxSliderGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSliderGroup.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxSliderGroup.h; sourceTree = SOURCE_ROOT; };
+		C00AD5B8094B3634B06C5926 /* ofxToggle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxToggle.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxToggle.h; sourceTree = SOURCE_ROOT; };
+		C590EAED7C04204257DE2745 /* maxiMFCC.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maxiMFCC.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiMFCC.cpp; sourceTree = SOURCE_ROOT; };
+		C85AEC4A09E7407508E41723 /* ofxLabel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxLabel.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxLabel.cpp; sourceTree = SOURCE_ROOT; };
+		D39514497AFC9A4AAE903696 /* ofxOscMessage.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxOscMessage.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscMessage.cpp; sourceTree = SOURCE_ROOT; };
+		D6A1246E09C6B8CDA06EEC4F /* OscException.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = OscException.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscException.h; sourceTree = SOURCE_ROOT; };
+		D9460E080AF572AB4FE572C2 /* ofxGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGui.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxGui.h; sourceTree = SOURCE_ROOT; };
+		DC8DE4E32DB58B5849214F05 /* fft.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = fft.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/fft.cpp; sourceTree = SOURCE_ROOT; };
+		DCB987CA7BF7FB3A39EF3514 /* ofxOscParameterSync.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxOscParameterSync.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscParameterSync.cpp; sourceTree = SOURCE_ROOT; };
+		DD3E35208D66CC444D100690 /* UdpSocket.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = UdpSocket.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/UdpSocket.h; sourceTree = SOURCE_ROOT; };
+		DE6FBA724BBE5D9249AC3BCF /* ofxOscArg.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscArg.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscArg.h; sourceTree = SOURCE_ROOT; };
+		E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../../../Documents/of_v0.9.8_osx_release/libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
+		E4B69B5B0A3A1756003C02F2 /* BitalinoDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BitalinoDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
+		E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; };
+		E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; };
+		E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; };
+		E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../../../Documents/of_v0.9.8_osx_release/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
+		E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; };
+		E661ACAA5BEC5B96FD2F6532 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSliderGroup.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxSliderGroup.cpp; sourceTree = SOURCE_ROOT; };
+		E76982C6091099847AF4A689 /* ofxButton.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxButton.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxButton.cpp; sourceTree = SOURCE_ROOT; };
+		E79D78A192005C0D7FDA98C0 /* maxiBark.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = maxiBark.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiBark.cpp; sourceTree = SOURCE_ROOT; };
+		E808847ECDCE62ABFF8D5E4D /* maxiGrains.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maxiGrains.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiGrains.h; sourceTree = SOURCE_ROOT; };
+		E87C4F253FACA6BBF714AD99 /* OscTypes.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = OscTypes.cpp; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/OscTypes.cpp; sourceTree = SOURCE_ROOT; };
+		EB00468633B458B3AF898FAC /* maxiAtoms.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maxiAtoms.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiAtoms.h; sourceTree = SOURCE_ROOT; };
+		F0448463C9530F4935705C48 /* MessageMappingOscPacketListener.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = MessageMappingOscPacketListener.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc/MessageMappingOscPacketListener.h; sourceTree = SOURCE_ROOT; };
+		F0DBD3DF50BD6761963D69B6 /* ofxOscMessage.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscMessage.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscMessage.h; sourceTree = SOURCE_ROOT; };
+		F4750E6716D760CCBF1143CF /* ofxGuiGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGuiGroup.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxGuiGroup.h; sourceTree = SOURCE_ROOT; };
+		F890C575BD59092852BD3CB2 /* ofxSlider.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSlider.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src/ofxSlider.h; sourceTree = SOURCE_ROOT; };
+		FC08FD52F6639D7D5EC893D6 /* maxiMFCC.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = maxiMFCC.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs/maxiMFCC.h; sourceTree = SOURCE_ROOT; };
+		FCCD68796F8A249EA9FEDD44 /* ofxOscSender.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOscSender.h; path = ../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src/ofxOscSender.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		E4B69B590A3A1756003C02F2 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
+				1A04D8D81FC38F3700D725DC /* libRAPID-MIX_API.a in Frameworks */,
+				1A732FC91FC30566001E730B /* libpipo.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		1A002A861FC303F700E02B93 /* Rapid-Mix */ = {
+			isa = PBXGroup;
+			children = (
+				1A73293F1FC30563001E730B /* dependencies */,
+				1A0030961FC3043900E02B93 /* rapid-mix */,
+			);
+			name = "Rapid-Mix";
+			sourceTree = "<group>";
+		};
+		1A0030961FC3043900E02B93 /* rapid-mix */ = {
+			isa = PBXGroup;
+			children = (
+				1A0030971FC3043900E02B93 /* LICENSE */,
+				1A0030981FC3043900E02B93 /* machineLearning */,
+				1A0030A31FC3043900E02B93 /* rapidmix.h */,
+				1A0030A41FC3043900E02B93 /* signalProcessing */,
+			);
+			path = "rapid-mix";
+			sourceTree = "<group>";
+		};
+		1A0030981FC3043900E02B93 /* machineLearning */ = {
+			isa = PBXGroup;
+			children = (
+				1A0030991FC3043900E02B93 /* machineLearning.cpp */,
+				1A00309A1FC3043900E02B93 /* machineLearning.h */,
+				1A00309B1FC3043900E02B93 /* rapidGVF */,
+				1A00309E1FC3043900E02B93 /* rapidXMM */,
+				1A0030A11FC3043900E02B93 /* trainingData.cpp */,
+				1A0030A21FC3043900E02B93 /* trainingData.h */,
+			);
+			path = machineLearning;
+			sourceTree = "<group>";
+		};
+		1A00309B1FC3043900E02B93 /* rapidGVF */ = {
+			isa = PBXGroup;
+			children = (
+				1A00309C1FC3043900E02B93 /* rapidGVF.cpp */,
+				1A00309D1FC3043900E02B93 /* rapidGVF.h */,
+			);
+			path = rapidGVF;
+			sourceTree = "<group>";
+		};
+		1A00309E1FC3043900E02B93 /* rapidXMM */ = {
+			isa = PBXGroup;
+			children = (
+				1A00309F1FC3043900E02B93 /* rapidXMM.cpp */,
+				1A0030A01FC3043900E02B93 /* rapidXMM.h */,
+			);
+			path = rapidXMM;
+			sourceTree = "<group>";
+		};
+		1A0030A41FC3043900E02B93 /* signalProcessing */ = {
+			isa = PBXGroup;
+			children = (
+				1A0030A51FC3043900E02B93 /* rapidPiPoTools */,
+				1A0030A91FC3043900E02B93 /* signalProcessing.h */,
+			);
+			path = signalProcessing;
+			sourceTree = "<group>";
+		};
+		1A0030A51FC3043900E02B93 /* rapidPiPoTools */ = {
+			isa = PBXGroup;
+			children = (
+				1A0030A61FC3043900E02B93 /* rapidPiPoHost.cpp */,
+				1A0030A71FC3043900E02B93 /* rapidPiPoHost.h */,
+				1A0030A81FC3043900E02B93 /* rapidPiPoTools.h */,
+			);
+			path = rapidPiPoTools;
+			sourceTree = "<group>";
+		};
+		1A73293F1FC30563001E730B /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				1A7329401FC30563001E730B /* GVF */,
+				1A732AFC1FC30563001E730B /* pipo */,
+				1A732BAC1FC30563001E730B /* RapidLib */,
+				1A732EC01FC30565001E730B /* third_party */,
+				1A732ECC1FC30565001E730B /* xmm */,
+			);
+			path = dependencies;
+			sourceTree = "<group>";
+		};
+		1A7329401FC30563001E730B /* GVF */ = {
+			isa = PBXGroup;
+			children = (
+				1A7329411FC30563001E730B /* GVF.cpp */,
+				1A7329421FC30563001E730B /* GVF.h */,
+				1A7329431FC30563001E730B /* GVFGesture.h */,
+				1A7329441FC30563001E730B /* GVFUtils.h */,
+				1A7329451FC30563001E730B /* LICENSE */,
+			);
+			path = GVF;
+			sourceTree = "<group>";
+		};
+		1A732AFC1FC30563001E730B /* pipo */ = {
+			isa = PBXGroup;
+			children = (
+				1A732AFD1FC30563001E730B /* .gitignore */,
+				1A732AFE1FC30563001E730B /* bin */,
+				1A732B301FC30563001E730B /* README.md */,
+				1A732B311FC30563001E730B /* src */,
+			);
+			path = pipo;
+			sourceTree = "<group>";
+		};
+		1A732AFE1FC30563001E730B /* bin */ = {
+			isa = PBXGroup;
+			children = (
+				1A732AFF1FC30563001E730B /* osx */,
+			);
+			path = bin;
+			sourceTree = "<group>";
+		};
+		1A732AFF1FC30563001E730B /* osx */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B001FC30563001E730B /* libpipo.a */,
+			);
+			path = osx;
+			sourceTree = "<group>";
+		};
+		1A732B311FC30563001E730B /* src */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B321FC30563001E730B /* dependencies */,
+				1A732B761FC30563001E730B /* host */,
+				1A732B7D1FC30563001E730B /* include */,
+				1A732B831FC30563001E730B /* modules */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		1A732B321FC30563001E730B /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B331FC30563001E730B /* bayesfilter */,
+				1A732B381FC30563001E730B /* finitedifferences */,
+				1A732B3B1FC30563001E730B /* lpcformants */,
+				1A732B401FC30563001E730B /* rta */,
+			);
+			path = dependencies;
+			sourceTree = "<group>";
+		};
+		1A732B331FC30563001E730B /* bayesfilter */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B341FC30563001E730B /* BayesianFilter.cpp */,
+				1A732B351FC30563001E730B /* BayesianFilter.h */,
+				1A732B361FC30563001E730B /* filter_utilities.cpp */,
+				1A732B371FC30563001E730B /* filter_utilities.h */,
+			);
+			path = bayesfilter;
+			sourceTree = "<group>";
+		};
+		1A732B381FC30563001E730B /* finitedifferences */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B391FC30563001E730B /* finitedifferences.c */,
+				1A732B3A1FC30563001E730B /* finitedifferences.h */,
+			);
+			path = finitedifferences;
+			sourceTree = "<group>";
+		};
+		1A732B3B1FC30563001E730B /* lpcformants */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B3C1FC30563001E730B /* bbpr.cpp */,
+				1A732B3D1FC30563001E730B /* bbpr.h */,
+				1A732B3E1FC30563001E730B /* rpoly.cpp */,
+				1A732B3F1FC30563001E730B /* rpoly.h */,
+			);
+			path = lpcformants;
+			sourceTree = "<group>";
+		};
+		1A732B401FC30563001E730B /* rta */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B411FC30563001E730B /* common */,
+				1A732B4F1FC30563001E730B /* misc */,
+				1A732B751FC30563001E730B /* rta_configuration.h */,
+			);
+			path = rta;
+			sourceTree = "<group>";
+		};
+		1A732B411FC30563001E730B /* common */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B421FC30563001E730B /* rta.h */,
+				1A732B431FC30563001E730B /* rta_bpf.c */,
+				1A732B441FC30563001E730B /* rta_bpf.h */,
+				1A732B451FC30563001E730B /* rta_complex.h */,
+				1A732B461FC30563001E730B /* rta_float.h */,
+				1A732B471FC30563001E730B /* rta_int.c */,
+				1A732B481FC30563001E730B /* rta_int.h */,
+				1A732B491FC30563001E730B /* rta_math.h */,
+				1A732B4A1FC30563001E730B /* rta_stdio.h */,
+				1A732B4B1FC30563001E730B /* rta_stdlib.h */,
+				1A732B4C1FC30563001E730B /* rta_types.h */,
+				1A732B4D1FC30563001E730B /* rta_util.c */,
+				1A732B4E1FC30563001E730B /* rta_util.h */,
+			);
+			path = common;
+			sourceTree = "<group>";
+		};
+		1A732B4F1FC30563001E730B /* misc */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B501FC30563001E730B /* rta_bands.c */,
+				1A732B511FC30563001E730B /* rta_bands.h */,
+				1A732B521FC30563001E730B /* rta_biquad.c */,
+				1A732B531FC30563001E730B /* rta_biquad.h */,
+				1A732B541FC30563001E730B /* rta_correlation.c */,
+				1A732B551FC30563001E730B /* rta_correlation.h */,
+				1A732B561FC30563001E730B /* rta_cubic.c */,
+				1A732B571FC30563001E730B /* rta_cubic.h */,
+				1A732B581FC30563001E730B /* rta_dct.c */,
+				1A732B591FC30563001E730B /* rta_dct.h */,
+				1A732B5A1FC30563001E730B /* rta_delta.c */,
+				1A732B5B1FC30563001E730B /* rta_delta.h */,
+				1A732B5C1FC30563001E730B /* rta_fft.c */,
+				1A732B5D1FC30563001E730B /* rta_fft.h */,
+				1A732B5E1FC30563001E730B /* rta_filter.h */,
+				1A732B5F1FC30563001E730B /* rta_lifter.c */,
+				1A732B601FC30563001E730B /* rta_lifter.h */,
+				1A732B611FC30563001E730B /* rta_lpc.c */,
+				1A732B621FC30563001E730B /* rta_lpc.h */,
+				1A732B631FC30563001E730B /* rta_mean_variance.c */,
+				1A732B641FC30563001E730B /* rta_mean_variance.h */,
+				1A732B651FC30563001E730B /* rta_mel.c */,
+				1A732B661FC30563001E730B /* rta_mel.h */,
+				1A732B671FC30563001E730B /* rta_moments.c */,
+				1A732B681FC30563001E730B /* rta_moments.h */,
+				1A732B691FC30563001E730B /* rta_onepole.c */,
+				1A732B6A1FC30563001E730B /* rta_onepole.h */,
+				1A732B6B1FC30563001E730B /* rta_preemphasis.c */,
+				1A732B6C1FC30563001E730B /* rta_preemphasis.h */,
+				1A732B6D1FC30563001E730B /* rta_resample.c */,
+				1A732B6E1FC30563001E730B /* rta_resample.h */,
+				1A732B6F1FC30563001E730B /* rta_selection.c */,
+				1A732B701FC30563001E730B /* rta_selection.h */,
+				1A732B711FC30563001E730B /* rta_svd.c */,
+				1A732B721FC30563001E730B /* rta_svd.h */,
+				1A732B731FC30563001E730B /* rta_window.c */,
+				1A732B741FC30563001E730B /* rta_window.h */,
+			);
+			path = misc;
+			sourceTree = "<group>";
+		};
+		1A732B761FC30563001E730B /* host */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B771FC30563001E730B /* mimo_host.h */,
+				1A732B781FC30563001E730B /* PiPoCollection.cpp */,
+				1A732B791FC30563001E730B /* PiPoCollection.h */,
+				1A732B7A1FC30563001E730B /* PiPoGraph.h */,
+				1A732B7B1FC30563001E730B /* PiPoHost.h */,
+				1A732B7C1FC30563001E730B /* PiPoModule.h */,
+			);
+			path = host;
+			sourceTree = "<group>";
+		};
+		1A732B7D1FC30563001E730B /* include */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B7E1FC30563001E730B /* mimo.h */,
+				1A732B7F1FC30563001E730B /* PiPo.h */,
+				1A732B801FC30563001E730B /* PiPoParallel.h */,
+				1A732B811FC30563001E730B /* PiPoSequence.h */,
+				1A732B821FC30563001E730B /* RingBuffer.h */,
+			);
+			path = include;
+			sourceTree = "<group>";
+		};
+		1A732B831FC30563001E730B /* modules */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B841FC30563001E730B /* mimo */,
+				1A732B861FC30563001E730B /* PiPoBands.h */,
+				1A732B871FC30563001E730B /* PiPoBayesFilter.h */,
+				1A732B881FC30563001E730B /* PiPoBiquad.h */,
+				1A732B891FC30563001E730B /* PiPoChop.h */,
+				1A732B8A1FC30563001E730B /* PiPoConst.h */,
+				1A732B8B1FC30563001E730B /* PiPoDct.h */,
+				1A732B8C1FC30563001E730B /* PiPoDelta.h */,
+				1A732B8D1FC30563001E730B /* PiPoFft.h */,
+				1A732B8E1FC30563001E730B /* PiPoFiniteDif.h */,
+				1A732B8F1FC30563001E730B /* PiPoGate.h */,
+				1A732B901FC30563001E730B /* PiPoLpc.h */,
+				1A732B911FC30563001E730B /* PiPoLpcFormants.h */,
+				1A732B921FC30563001E730B /* PiPoMeanStddev.h */,
+				1A732B931FC30563001E730B /* PiPoMedian.h */,
+				1A732B941FC30563001E730B /* PiPoMel.h */,
+				1A732B951FC30563001E730B /* PiPoMfcc.h */,
+				1A732B961FC30563001E730B /* PiPoMinMax.h */,
+				1A732B971FC30563001E730B /* PiPoMoments.h */,
+				1A732B981FC30563001E730B /* PiPoMvavrg.h */,
+				1A732B991FC30563001E730B /* PiPoOnseg.h */,
+				1A732B9A1FC30563001E730B /* PiPoPeaks.h */,
+				1A732B9B1FC30563001E730B /* PiPoRms.h */,
+				1A732B9C1FC30563001E730B /* PiPoScale.h */,
+				1A732B9D1FC30563001E730B /* PiPoSelect.h */,
+				1A732B9E1FC30563001E730B /* PiPoSlice.h */,
+				1A732B9F1FC30563001E730B /* PiPoSum.h */,
+				1A732BA01FC30563001E730B /* TempMod.h */,
+			);
+			path = modules;
+			sourceTree = "<group>";
+		};
+		1A732B841FC30563001E730B /* mimo */ = {
+			isa = PBXGroup;
+			children = (
+				1A732B851FC30563001E730B /* mimo_stats.h */,
+			);
+			path = mimo;
+			sourceTree = "<group>";
+		};
+		1A732BAC1FC30563001E730B /* RapidLib */ = {
+			isa = PBXGroup;
+			children = (
+				1A732BAF1FC30563001E730B /* dependencies */,
+				1A732E861FC30565001E730B /* src */,
+			);
+			path = RapidLib;
+			sourceTree = "<group>";
+		};
+		1A732BAF1FC30563001E730B /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				1A732BB01FC30563001E730B /* json */,
+				1A732BB31FC30563001E730B /* jsoncpp.cpp */,
+				1A732BB41FC30563001E730B /* libsvm */,
+			);
+			path = dependencies;
+			sourceTree = "<group>";
+		};
+		1A732BB01FC30563001E730B /* json */ = {
+			isa = PBXGroup;
+			children = (
+				1A732BB11FC30563001E730B /* json-forwards.h */,
+				1A732BB21FC30563001E730B /* json.h */,
+			);
+			path = json;
+			sourceTree = "<group>";
+		};
+		1A732BB41FC30563001E730B /* libsvm */ = {
+			isa = PBXGroup;
+			children = (
+				1A732BB51FC30563001E730B /* libsvm.cpp */,
+				1A732BB61FC30563001E730B /* libsvm.h */,
+			);
+			path = libsvm;
+			sourceTree = "<group>";
+		};
+		1A732E861FC30565001E730B /* src */ = {
+			isa = PBXGroup;
+			children = (
+				1A732E871FC30565001E730B /* baseModel.h */,
+				1A732E881FC30565001E730B /* classification.cpp */,
+				1A732E891FC30565001E730B /* classification.h */,
+				1A732E8A1FC30565001E730B /* dtw.cpp */,
+				1A732E8B1FC30565001E730B /* dtw.h */,
+				1A732E8C1FC30565001E730B /* emscripten */,
+				1A732E971FC30565001E730B /* fastDTW.cpp */,
+				1A732E981FC30565001E730B /* fastDTW.h */,
+				1A732E991FC30565001E730B /* knnClassification.cpp */,
+				1A732E9A1FC30565001E730B /* knnClassification.h */,
+				1A732E9B1FC30565001E730B /* modelSet.cpp */,
+				1A732E9C1FC30565001E730B /* modelSet.h */,
+				1A732E9D1FC30565001E730B /* neuralNetwork.cpp */,
+				1A732E9E1FC30565001E730B /* neuralNetwork.h */,
+				1A732E9F1FC30565001E730B /* rapidStream.cpp */,
+				1A732EA01FC30565001E730B /* rapidStream.h */,
+				1A732EA11FC30565001E730B /* regression.cpp */,
+				1A732EA21FC30565001E730B /* regression.h */,
+				1A732EA31FC30565001E730B /* searchWindow.cpp */,
+				1A732EA41FC30565001E730B /* searchWindow.h */,
+				1A732EA51FC30565001E730B /* seriesClassification.cpp */,
+				1A732EA61FC30565001E730B /* seriesClassification.h */,
+				1A732EA71FC30565001E730B /* svmClassification.cpp */,
+				1A732EA81FC30565001E730B /* svmClassification.h */,
+				1A732EA91FC30565001E730B /* trainingExample.h */,
+				1A732EAA1FC30565001E730B /* warpPath.cpp */,
+				1A732EAB1FC30565001E730B /* warpPath.h */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		1A732E8C1FC30565001E730B /* emscripten */ = {
+			isa = PBXGroup;
+			children = (
+				1A732E8D1FC30565001E730B /* classificationEmbindings.h */,
+				1A732E8E1FC30565001E730B /* knnEmbindings.h */,
+				1A732E8F1FC30565001E730B /* modelSetEmbindings.h */,
+				1A732E901FC30565001E730B /* nnEmbindings.h */,
+				1A732E911FC30565001E730B /* nodeEnv.js */,
+				1A732E921FC30565001E730B /* rapidLibPost.js */,
+				1A732E931FC30565001E730B /* rapidStreamEmbindings.h */,
+				1A732E941FC30565001E730B /* regressionEmbindings.h */,
+				1A732E951FC30565001E730B /* seriesClassificationEmbindings.h */,
+				1A732E961FC30565001E730B /* svmEmbindings.h */,
+			);
+			path = emscripten;
+			sourceTree = "<group>";
+		};
+		1A732EC01FC30565001E730B /* third_party */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EC11FC30565001E730B /* catch */,
+				1A732EC41FC30565001E730B /* json */,
+				1A732EC71FC30565001E730B /* jsoncpp.cpp */,
+				1A732EC81FC30565001E730B /* libsvm */,
+			);
+			path = third_party;
+			sourceTree = "<group>";
+		};
+		1A732EC11FC30565001E730B /* catch */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EC21FC30565001E730B /* catch.hpp */,
+				1A732EC31FC30565001E730B /* LICENSE_1_0.txt */,
+			);
+			path = catch;
+			sourceTree = "<group>";
+		};
+		1A732EC41FC30565001E730B /* json */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EC51FC30565001E730B /* json-forwards.h */,
+				1A732EC61FC30565001E730B /* json.h */,
+			);
+			path = json;
+			sourceTree = "<group>";
+		};
+		1A732EC81FC30565001E730B /* libsvm */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EC91FC30565001E730B /* libsvm.cpp */,
+				1A732ECA1FC30565001E730B /* libsvm.h */,
+				1A732ECB1FC30565001E730B /* LICENSE */,
+			);
+			path = libsvm;
+			sourceTree = "<group>";
+		};
+		1A732ECC1FC30565001E730B /* xmm */ = {
+			isa = PBXGroup;
+			children = (
+				1A732ECD1FC30565001E730B /* .gitignore */,
+				1A732ECE1FC30565001E730B /* CMakeLists.txt */,
+				1A732ECF1FC30565001E730B /* dependencies */,
+				1A732EE51FC30565001E730B /* doc */,
+				1A732EF91FC30565001E730B /* LICENSE */,
+				1A732F121FC30565001E730B /* readme.md */,
+				1A732F131FC30565001E730B /* src */,
+			);
+			path = xmm;
+			sourceTree = "<group>";
+		};
+		1A732ECF1FC30565001E730B /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				1A732ED01FC30565001E730B /* catch */,
+				1A732ED21FC30565001E730B /* jsoncpp */,
+			);
+			path = dependencies;
+			sourceTree = "<group>";
+		};
+		1A732ED01FC30565001E730B /* catch */ = {
+			isa = PBXGroup;
+			children = (
+				1A732ED11FC30565001E730B /* catch.hpp */,
+			);
+			path = catch;
+			sourceTree = "<group>";
+		};
+		1A732ED21FC30565001E730B /* jsoncpp */ = {
+			isa = PBXGroup;
+			children = (
+				1A732ED31FC30565001E730B /* include */,
+				1A732EDE1FC30565001E730B /* LICENSE */,
+				1A732EDF1FC30565001E730B /* src */,
+			);
+			path = jsoncpp;
+			sourceTree = "<group>";
+		};
+		1A732ED31FC30565001E730B /* include */ = {
+			isa = PBXGroup;
+			children = (
+				1A732ED41FC30565001E730B /* assertions.h */,
+				1A732ED51FC30565001E730B /* autolink.h */,
+				1A732ED61FC30565001E730B /* config.h */,
+				1A732ED71FC30565001E730B /* forwards.h */,
+				1A732ED81FC30565001E730B /* json-features.h */,
+				1A732ED91FC30565001E730B /* json.h */,
+				1A732EDA1FC30565001E730B /* reader.h */,
+				1A732EDB1FC30565001E730B /* value.h */,
+				1A732EDC1FC30565001E730B /* version.h */,
+				1A732EDD1FC30565001E730B /* writer.h */,
+			);
+			path = include;
+			sourceTree = "<group>";
+		};
+		1A732EDF1FC30565001E730B /* src */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EE01FC30565001E730B /* json_reader.cpp */,
+				1A732EE11FC30565001E730B /* json_tool.h */,
+				1A732EE21FC30565001E730B /* json_value.cpp */,
+				1A732EE31FC30565001E730B /* json_valueiterator.inl */,
+				1A732EE41FC30565001E730B /* json_writer.cpp */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		1A732EE51FC30565001E730B /* doc */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EE61FC30565001E730B /* doc-misc */,
+				1A732EF21FC30565001E730B /* Doxyfile */,
+				1A732EF31FC30565001E730B /* Doxyfile-dot */,
+			);
+			path = doc;
+			sourceTree = "<group>";
+		};
+		1A732EE61FC30565001E730B /* doc-misc */ = {
+			isa = PBXGroup;
+			children = (
+				1A732EE71FC30565001E730B /* footer.html */,
+				1A732EE81FC30565001E730B /* header.html */,
+				1A732EE91FC30565001E730B /* jdoxygen.css */,
+				1A732EEA1FC30565001E730B /* jtabs.css */,
+				1A732EEB1FC30565001E730B /* python_example.py */,
+				1A732EEC1FC30565001E730B /* QuickStart_Python.html */,
+				1A732EED1FC30565001E730B /* xmm_architecture.jpg */,
+				1A732EEE1FC30565001E730B /* xmm_featured.jpg */,
+				1A732EEF1FC30565001E730B /* xmm_featured_.jpg */,
+				1A732EF01FC30565001E730B /* xmm_models.jpg */,
+				1A732EF11FC30565001E730B /* XmmDoxygenLayout.xml */,
+			);
+			path = "doc-misc";
+			sourceTree = "<group>";
+		};
+		1A732F131FC30565001E730B /* src */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F141FC30565001E730B /* core */,
+				1A732F2E1FC30565001E730B /* models */,
+				1A732F441FC30565001E730B /* xmm.h */,
+			);
+			path = src;
+			sourceTree = "<group>";
+		};
+		1A732F141FC30565001E730B /* core */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F151FC30565001E730B /* common */,
+				1A732F1D1FC30565001E730B /* distributions */,
+				1A732F201FC30565001E730B /* model */,
+				1A732F291FC30565001E730B /* trainingset */,
+			);
+			path = core;
+			sourceTree = "<group>";
+		};
+		1A732F151FC30565001E730B /* common */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F161FC30565001E730B /* xmmAttribute.cpp */,
+				1A732F171FC30565001E730B /* xmmAttribute.hpp */,
+				1A732F181FC30565001E730B /* xmmCircularbuffer.hpp */,
+				1A732F191FC30565001E730B /* xmmEvents.hpp */,
+				1A732F1A1FC30565001E730B /* xmmJson.cpp */,
+				1A732F1B1FC30565001E730B /* xmmJson.hpp */,
+				1A732F1C1FC30565001E730B /* xmmMatrix.hpp */,
+			);
+			path = common;
+			sourceTree = "<group>";
+		};
+		1A732F1D1FC30565001E730B /* distributions */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F1E1FC30565001E730B /* xmmGaussianDistribution.cpp */,
+				1A732F1F1FC30565001E730B /* xmmGaussianDistribution.hpp */,
+			);
+			path = distributions;
+			sourceTree = "<group>";
+		};
+		1A732F201FC30565001E730B /* model */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F211FC30565001E730B /* xmmModel.hpp */,
+				1A732F221FC30565001E730B /* xmmModelConfiguration.hpp */,
+				1A732F231FC30565001E730B /* xmmModelParameters.hpp */,
+				1A732F241FC30565001E730B /* xmmModelResults.hpp */,
+				1A732F251FC30565001E730B /* xmmModelSharedParameters.cpp */,
+				1A732F261FC30565001E730B /* xmmModelSharedParameters.hpp */,
+				1A732F271FC30565001E730B /* xmmModelSingleClass.cpp */,
+				1A732F281FC30565001E730B /* xmmModelSingleClass.hpp */,
+			);
+			path = model;
+			sourceTree = "<group>";
+		};
+		1A732F291FC30565001E730B /* trainingset */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F2A1FC30565001E730B /* xmmPhrase.cpp */,
+				1A732F2B1FC30565001E730B /* xmmPhrase.hpp */,
+				1A732F2C1FC30565001E730B /* xmmTrainingSet.cpp */,
+				1A732F2D1FC30565001E730B /* xmmTrainingSet.hpp */,
+			);
+			path = trainingset;
+			sourceTree = "<group>";
+		};
+		1A732F2E1FC30565001E730B /* models */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F2F1FC30565001E730B /* gmm */,
+				1A732F361FC30565001E730B /* hmm */,
+				1A732F3E1FC30565001E730B /* kmeans */,
+			);
+			path = models;
+			sourceTree = "<group>";
+		};
+		1A732F2F1FC30565001E730B /* gmm */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F301FC30565001E730B /* xmmGmm.cpp */,
+				1A732F311FC30565001E730B /* xmmGmm.hpp */,
+				1A732F321FC30565001E730B /* xmmGmmParameters.cpp */,
+				1A732F331FC30565001E730B /* xmmGmmParameters.hpp */,
+				1A732F341FC30565001E730B /* xmmGmmSingleClass.cpp */,
+				1A732F351FC30565001E730B /* xmmGmmSingleClass.hpp */,
+			);
+			path = gmm;
+			sourceTree = "<group>";
+		};
+		1A732F361FC30565001E730B /* hmm */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F371FC30565001E730B /* xmmHierarchicalHmm.cpp */,
+				1A732F381FC30565001E730B /* xmmHierarchicalHmm.hpp */,
+				1A732F391FC30565001E730B /* xmmHmmParameters.cpp */,
+				1A732F3A1FC30565001E730B /* xmmHmmParameters.hpp */,
+				1A732F3B1FC30565001E730B /* xmmHmmResults.hpp */,
+				1A732F3C1FC30565001E730B /* xmmHmmSingleClass.cpp */,
+				1A732F3D1FC30565001E730B /* xmmHmmSingleClass.hpp */,
+			);
+			path = hmm;
+			sourceTree = "<group>";
+		};
+		1A732F3E1FC30565001E730B /* kmeans */ = {
+			isa = PBXGroup;
+			children = (
+				1A732F3F1FC30565001E730B /* xmmKMeans.cpp */,
+				1A732F401FC30565001E730B /* xmmKMeans.hpp */,
+				1A732F411FC30565001E730B /* xmmKMeansParameters.cpp */,
+				1A732F421FC30565001E730B /* xmmKMeansParameters.hpp */,
+				1A732F431FC30565001E730B /* xmmKMeansResults.hpp */,
+			);
+			path = kmeans;
+			sourceTree = "<group>";
+		};
+		1AF8F4F51FBFBA68007845B3 /* Bitalino */ = {
+			isa = PBXGroup;
+			children = (
+				1AF8F4F31FBFBA56007845B3 /* bitalino.h */,
+				1AF8F4F21FBFBA56007845B3 /* bitalino.cpp */,
+				1AF8F4FF1FC106D2007845B3 /* ThreadedProcess.h */,
+				1AF8F5001FC108DE007845B3 /* BitalinoThread.h */,
+				1AFD55011FC1C73500BDC5EC /* RapidMixThread.h */,
+				1AF8F4FD1FC0D5C6007845B3 /* RingBuffer.hpp */,
+				1A04D8C21FC31C0000D725DC /* RapidBitalino.h */,
+				1A04D8C31FC31D0E00D725DC /* RapidBitalino.cpp */,
+			);
+			name = Bitalino;
+			sourceTree = "<group>";
+		};
+		30CB364908817057B430D528 /* osc */ = {
+			isa = PBXGroup;
+			children = (
+				F0448463C9530F4935705C48 /* MessageMappingOscPacketListener.h */,
+				D6A1246E09C6B8CDA06EEC4F /* OscException.h */,
+				7FDED04B5307798C8725EDDE /* OscHostEndianness.h */,
+				16F2E6A76B43CC86E0875826 /* OscOutboundPacketStream.cpp */,
+				771343C29ADB1A34A5E3F2D7 /* OscOutboundPacketStream.h */,
+				7805756184CF7E3670EBA6B9 /* OscPacketListener.h */,
+				6EFE170390703388444A995C /* OscPrintReceivedElements.cpp */,
+				AA63660625DF3459DBD8486C /* OscPrintReceivedElements.h */,
+				333B161A45E42EF09ADEC7A5 /* OscReceivedElements.cpp */,
+				6107D0B5FEEE887645CC8673 /* OscReceivedElements.h */,
+				E87C4F253FACA6BBF714AD99 /* OscTypes.cpp */,
+				47DFCF539679C49445A74E64 /* OscTypes.h */,
+			);
+			name = osc;
+			sourceTree = "<group>";
+		};
+		38871A5825686AE018EC2BF0 /* libs */ = {
+			isa = PBXGroup;
+			children = (
+				86D2677079A3AF4A5A88E29A /* oscpack */,
+			);
+			name = libs;
+			sourceTree = "<group>";
+		};
+		480A780D8D0308AE4A368801 /* ofxGui */ = {
+			isa = PBXGroup;
+			children = (
+				A763ED608B35AE3310251DEE /* src */,
+			);
+			name = ofxGui;
+			sourceTree = "<group>";
+		};
+		4ACC32F17B7623DA048865D1 /* libs */ = {
+			isa = PBXGroup;
+			children = (
+				DC8DE4E32DB58B5849214F05 /* fft.cpp */,
+				43AF2D57607DD0B4AF3A6183 /* fft.h */,
+				21080C6D8829F198543F568E /* maxiAtoms.cpp */,
+				EB00468633B458B3AF898FAC /* maxiAtoms.h */,
+				E79D78A192005C0D7FDA98C0 /* maxiBark.cpp */,
+				50B91A7EB2184FD67A06D044 /* maxiBark.h */,
+				6D7D4C890B7E7E86CF67EDE9 /* maxiFFT.cpp */,
+				3B129EA9D541BE47A473BC06 /* maxiFFT.h */,
+				300B4DCCFFECBD546568227A /* maxiGrains.cpp */,
+				E808847ECDCE62ABFF8D5E4D /* maxiGrains.h */,
+				C590EAED7C04204257DE2745 /* maxiMFCC.cpp */,
+				FC08FD52F6639D7D5EC893D6 /* maxiMFCC.h */,
+				0FEC22E5BFC33148A93E906A /* maximilian.cpp */,
+				008629CF1C50CAC655956424 /* maximilian.h */,
+				3F1F7648BBA70B28FE923560 /* sineTable.h */,
+				8DC5D79A78655BF028FBDE30 /* stb_vorbis.c */,
+				57C2E0F28BA237CECA2DD2F3 /* stb_vorbis.h */,
+			);
+			name = libs;
+			sourceTree = "<group>";
+		};
+		6234D3BCE87D1C3BA2230F19 /* ofxMaxim */ = {
+			isa = PBXGroup;
+			children = (
+				8F6BFB59AB6D0A458C2F3C53 /* src */,
+				4ACC32F17B7623DA048865D1 /* libs */,
+			);
+			name = ofxMaxim;
+			sourceTree = "<group>";
+		};
+		641362CA659FAFEE4E81001B /* posix */ = {
+			isa = PBXGroup;
+			children = (
+				54C5AF569662A8351667313E /* NetworkingUtils.cpp */,
+				138DE2396984C9C63DA7FDD6 /* UdpSocket.cpp */,
+			);
+			name = posix;
+			sourceTree = "<group>";
+		};
+		6948EE371B920CB800B5AC1A /* local_addons */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = local_addons;
+			sourceTree = "<group>";
+		};
+		86D2677079A3AF4A5A88E29A /* oscpack */ = {
+			isa = PBXGroup;
+			children = (
+				D27B2221A225CA523C019676 /* src */,
+			);
+			name = oscpack;
+			sourceTree = "<group>";
+		};
+		8F6BFB59AB6D0A458C2F3C53 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				A93736CA5EE7029E798A22AA /* ofxMaxim.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		A763ED608B35AE3310251DEE /* src */ = {
+			isa = PBXGroup;
+			children = (
+				283D3449127FCD4AE5F47F88 /* ofxBaseGui.cpp */,
+				3A6FBE64E557C85D306947E4 /* ofxBaseGui.h */,
+				E76982C6091099847AF4A689 /* ofxButton.cpp */,
+				4A2FCA86040F43BCB2C12BCA /* ofxButton.h */,
+				D9460E080AF572AB4FE572C2 /* ofxGui.h */,
+				161030033DD4104A32E68FA8 /* ofxGuiGroup.cpp */,
+				F4750E6716D760CCBF1143CF /* ofxGuiGroup.h */,
+				C85AEC4A09E7407508E41723 /* ofxLabel.cpp */,
+				4169271F18AE49EFC953B0AB /* ofxLabel.h */,
+				3646FFD002EE9FED0DD367F3 /* ofxPanel.cpp */,
+				86ECBAD17F7B1D927CB1931F /* ofxPanel.h */,
+				951C54CCCD72A0FFC773653F /* ofxSlider.cpp */,
+				F890C575BD59092852BD3CB2 /* ofxSlider.h */,
+				E661ACAA5BEC5B96FD2F6532 /* ofxSliderGroup.cpp */,
+				B86B7BDD7ADBAB228DB14744 /* ofxSliderGroup.h */,
+				5BA6903E0287C0B3CBF81989 /* ofxToggle.cpp */,
+				C00AD5B8094B3634B06C5926 /* ofxToggle.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		BB4B014C10F69532006C3DED /* addons */ = {
+			isa = PBXGroup;
+			children = (
+				480A780D8D0308AE4A368801 /* ofxGui */,
+				6234D3BCE87D1C3BA2230F19 /* ofxMaxim */,
+				E6053AB7FEC63D5F83825B88 /* ofxOsc */,
+			);
+			name = addons;
+			sourceTree = "<group>";
+		};
+		BD2F1A9F8D0C05EDB29122D0 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				33C51958AA0CAE4F88D953DC /* ofxOsc.h */,
+				DE6FBA724BBE5D9249AC3BCF /* ofxOscArg.h */,
+				1661CDE0EE45AC19EF11DA8E /* ofxOscBundle.cpp */,
+				6D68865B98C85481FB07D746 /* ofxOscBundle.h */,
+				D39514497AFC9A4AAE903696 /* ofxOscMessage.cpp */,
+				F0DBD3DF50BD6761963D69B6 /* ofxOscMessage.h */,
+				DCB987CA7BF7FB3A39EF3514 /* ofxOscParameterSync.cpp */,
+				5D3DC557A3FD0ADFC8D06276 /* ofxOscParameterSync.h */,
+				8F5FFC9C08A87AE48EA5E66C /* ofxOscReceiver.cpp */,
+				0D0D8D193987B4296465A319 /* ofxOscReceiver.h */,
+				AEC6D21EB03AE1B72B35D0D9 /* ofxOscSender.cpp */,
+				FCCD68796F8A249EA9FEDD44 /* ofxOscSender.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		D27B2221A225CA523C019676 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				FF8CDF57858E9B94E3237115 /* ip */,
+				30CB364908817057B430D528 /* osc */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		E4328144138ABC890047C5CB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		E4B69B4A0A3A1720003C02F2 = {
+			isa = PBXGroup;
+			children = (
+				E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
+				E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
+				1A04D8D71FC38F3700D725DC /* libRAPID-MIX_API.a */,
+				1A002A861FC303F700E02B93 /* Rapid-Mix */,
+				E4B69E1C0A3A1BDC003C02F2 /* src */,
+				E4EEC9E9138DF44700A80321 /* openFrameworks */,
+				BB4B014C10F69532006C3DED /* addons */,
+				6948EE371B920CB800B5AC1A /* local_addons */,
+				E4B69B5B0A3A1756003C02F2 /* BitalinoDebug.app */,
+			);
+			sourceTree = "<group>";
+		};
+		E4B69E1C0A3A1BDC003C02F2 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				1AF8F4F51FBFBA68007845B3 /* Bitalino */,
+				E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */,
+				E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */,
+				E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
+			);
+			path = src;
+			sourceTree = SOURCE_ROOT;
+		};
+		E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
+			isa = PBXGroup;
+			children = (
+				E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
+				E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
+			);
+			name = openFrameworks;
+			sourceTree = "<group>";
+		};
+		E6053AB7FEC63D5F83825B88 /* ofxOsc */ = {
+			isa = PBXGroup;
+			children = (
+				BD2F1A9F8D0C05EDB29122D0 /* src */,
+				38871A5825686AE018EC2BF0 /* libs */,
+			);
+			name = ofxOsc;
+			sourceTree = "<group>";
+		};
+		FF8CDF57858E9B94E3237115 /* ip */ = {
+			isa = PBXGroup;
+			children = (
+				552D90E7024A93518E711979 /* IpEndpointName.cpp */,
+				2E39787D52B2DB29CF1FCF66 /* IpEndpointName.h */,
+				5065E0436E391619A021DE76 /* NetworkingUtils.h */,
+				09AEC4E5ECE805EAD349DBCE /* PacketListener.h */,
+				641362CA659FAFEE4E81001B /* posix */,
+				0972B751F7A633CC3CCD4C70 /* TimerListener.h */,
+				DD3E35208D66CC444D100690 /* UdpSocket.h */,
+			);
+			name = ip;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		E4B69B5A0A3A1756003C02F2 /* Bitalino */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "Bitalino" */;
+			buildPhases = (
+				E4B69B580A3A1756003C02F2 /* Sources */,
+				E4B69B590A3A1756003C02F2 /* Frameworks */,
+				E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
+				E4C2427710CC5ABF004149E2 /* CopyFiles */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
+			);
+			name = Bitalino;
+			productName = myOFApp;
+			productReference = E4B69B5B0A3A1756003C02F2 /* BitalinoDebug.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		E4B69B4C0A3A1720003C02F2 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0600;
+			};
+			buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "Bitalino" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = E4B69B4A0A3A1720003C02F2;
+			productRefGroup = E4B69B4A0A3A1720003C02F2;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = E4328144138ABC890047C5CB /* Products */;
+					ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				E4B69B5A0A3A1756003C02F2 /* Bitalino */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = openFrameworksDebug.a;
+			remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy default icon file into App/Resources\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy libfmod and change install directory for fmod to run\nrsync -aved ../../../../../Documents/of_v0.9.8_osx_release/libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\";\ninstall_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\n# Copy GLUT framework (must remove for AppStore submissions)\nrsync -aved ../../../../../Documents/of_v0.9.8_osx_release/libs/glut/lib/osx/GLUT.framework \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		E4B69B580A3A1756003C02F2 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
+				1A732FE01FC30566001E730B /* rta_lpc.c in Sources */,
+				1A7330231FC30566001E730B /* xmmGmm.cpp in Sources */,
+				E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */,
+				E6E8C6BA7D5DD18D84DCE6B9 /* ofxBaseGui.cpp in Sources */,
+				1A732FE71FC30566001E730B /* rta_selection.c in Sources */,
+				1F4CACB1B7D09B43508A7EC3 /* ofxButton.cpp in Sources */,
+				1A732FF41FC30566001E730B /* libsvm.cpp in Sources */,
+				1A73302A1FC30566001E730B /* xmmKMeansParameters.cpp in Sources */,
+				9B232A695C4183B7E9D6DE6B /* ofxGuiGroup.cpp in Sources */,
+				1A732FD11FC30566001E730B /* filter_utilities.cpp in Sources */,
+				9DB59557693F5AF1C3B86978 /* ofxLabel.cpp in Sources */,
+				A6B3D68D6CAF91615E79B729 /* ofxPanel.cpp in Sources */,
+				1A7330251FC30566001E730B /* xmmGmmSingleClass.cpp in Sources */,
+				1A732FDB1FC30566001E730B /* rta_cubic.c in Sources */,
+				1A7329241FC304D0001E730B /* rapidGVF.cpp in Sources */,
+				1A732FDC1FC30566001E730B /* rta_dct.c in Sources */,
+				C1CCEDB5321AA5A832D215F0 /* ofxSlider.cpp in Sources */,
+				0289606657F3E1B14D87F2BC /* ofxSliderGroup.cpp in Sources */,
+				1A7329231FC304D0001E730B /* machineLearning.cpp in Sources */,
+				1A732FE11FC30566001E730B /* rta_mean_variance.c in Sources */,
+				1A73301F1FC30566001E730B /* xmmModelSharedParameters.cpp in Sources */,
+				1AF8F4F41FBFBA56007845B3 /* bitalino.cpp in Sources */,
+				BE5879D980EF1A321B38BDED /* ofxToggle.cpp in Sources */,
+				CBF1E66610EC3ED02B8E7810 /* fft.cpp in Sources */,
+				1A732FE81FC30566001E730B /* rta_svd.c in Sources */,
+				1A732FD71FC30566001E730B /* rta_util.c in Sources */,
+				AE5D0283C3A439F21F24D146 /* maxiAtoms.cpp in Sources */,
+				460809B55AD9FA35FEEF18E9 /* maxiBark.cpp in Sources */,
+				821FDA0B1E4F7BB6AF683071 /* maxiFFT.cpp in Sources */,
+				1A732FE61FC30566001E730B /* rta_resample.c in Sources */,
+				10C531C84875D2C829391B4E /* maxiGrains.cpp in Sources */,
+				1A7330071FC30566001E730B /* knnClassification.cpp in Sources */,
+				982961365190FE97577EC25D /* maxiMFCC.cpp in Sources */,
+				1A73300E1FC30566001E730B /* svmClassification.cpp in Sources */,
+				77C1DBAB01757716D71545F7 /* maximilian.cpp in Sources */,
+				1A732FDE1FC30566001E730B /* rta_fft.c in Sources */,
+				1A732FD61FC30566001E730B /* rta_int.c in Sources */,
+				1A732FE21FC30566001E730B /* rta_mel.c in Sources */,
+				1A7330221FC30566001E730B /* xmmTrainingSet.cpp in Sources */,
+				6DEA5ACAF78C6AE7BB6BFDCF /* stb_vorbis.c in Sources */,
+				1A732FE51FC30566001E730B /* rta_preemphasis.c in Sources */,
+				7BF363788124DFB219FEA2D9 /* ofxOscBundle.cpp in Sources */,
+				1A732F4E1FC30565001E730B /* GVF.cpp in Sources */,
+				83944CBA55088BC6E0CB8655 /* ofxOscMessage.cpp in Sources */,
+				1A732FCF1FC30566001E730B /* README.md in Sources */,
+				1A73300D1FC30566001E730B /* seriesClassification.cpp in Sources */,
+				1A73300B1FC30566001E730B /* regression.cpp in Sources */,
+				1A7330091FC30566001E730B /* neuralNetwork.cpp in Sources */,
+				1A7330211FC30566001E730B /* xmmPhrase.cpp in Sources */,
+				1A7330261FC30566001E730B /* xmmHierarchicalHmm.cpp in Sources */,
+				1A7330061FC30566001E730B /* fastDTW.cpp in Sources */,
+				1A7329261FC304D0001E730B /* trainingData.cpp in Sources */,
+				1A7329251FC304D0001E730B /* rapidXMM.cpp in Sources */,
+				1A732FE41FC30566001E730B /* rta_onepole.c in Sources */,
+				1A73300F1FC30566001E730B /* warpPath.cpp in Sources */,
+				1A732FDA1FC30566001E730B /* rta_correlation.c in Sources */,
+				C061F0FB55B94C461FF5D520 /* ofxOscParameterSync.cpp in Sources */,
+				1A7330281FC30566001E730B /* xmmHmmSingleClass.cpp in Sources */,
+				1A7330141FC30566001E730B /* jsoncpp.cpp in Sources */,
+				617ACA40B63357D76A9595A8 /* ofxOscReceiver.cpp in Sources */,
+				C0A43D1F56B1198FC5EE7031 /* ofxOscSender.cpp in Sources */,
+				1A732FD51FC30566001E730B /* rta_bpf.c in Sources */,
+				1A73293D1FC304D5001E730B /* rapidPiPoHost.cpp in Sources */,
+				1A732FDD1FC30566001E730B /* rta_delta.c in Sources */,
+				06B42CCB73078EB0E8E265EE /* IpEndpointName.cpp in Sources */,
+				1A7330081FC30566001E730B /* modelSet.cpp in Sources */,
+				39B159E39B6636BFC65B0F2A /* NetworkingUtils.cpp in Sources */,
+				230128348F328F3A83D41798 /* UdpSocket.cpp in Sources */,
+				A22B63CBE8E52759908258DF /* OscOutboundPacketStream.cpp in Sources */,
+				1A73301C1FC30566001E730B /* xmmAttribute.cpp in Sources */,
+				1A732FD31FC30566001E730B /* bbpr.cpp in Sources */,
+				1A7330271FC30566001E730B /* xmmHmmParameters.cpp in Sources */,
+				1A73301D1FC30566001E730B /* xmmJson.cpp in Sources */,
+				1A7330041FC30566001E730B /* classification.cpp in Sources */,
+				1A732FD21FC30566001E730B /* finitedifferences.c in Sources */,
+				638D65104AC275AFCB576B80 /* OscPrintReceivedElements.cpp in Sources */,
+				1A7330241FC30566001E730B /* xmmGmmParameters.cpp in Sources */,
+				1A7330051FC30566001E730B /* dtw.cpp in Sources */,
+				1A732FE31FC30566001E730B /* rta_moments.c in Sources */,
+				1A73300C1FC30566001E730B /* searchWindow.cpp in Sources */,
+				1A73300A1FC30566001E730B /* rapidStream.cpp in Sources */,
+				1A732FD01FC30566001E730B /* BayesianFilter.cpp in Sources */,
+				1A732FD41FC30566001E730B /* rpoly.cpp in Sources */,
+				1A732FD91FC30566001E730B /* rta_biquad.c in Sources */,
+				1A732FEA1FC30566001E730B /* PiPoCollection.cpp in Sources */,
+				1A04D8C41FC31D0E00D725DC /* RapidBitalino.cpp in Sources */,
+				0B9EEAF6D1EBB25B81373273 /* OscReceivedElements.cpp in Sources */,
+				1A73301B1FC30566001E730B /* readme.md in Sources */,
+				66078BCDF7C6B8F85391BD78 /* OscTypes.cpp in Sources */,
+				1A732FDF1FC30566001E730B /* rta_lifter.c in Sources */,
+				1A7330291FC30566001E730B /* xmmKMeans.cpp in Sources */,
+				1A732FE91FC30566001E730B /* rta_window.c in Sources */,
+				1A732FD81FC30566001E730B /* rta_bands.c in Sources */,
+				1A7330201FC30566001E730B /* xmmModelSingleClass.cpp in Sources */,
+				1A73301E1FC30566001E730B /* xmmGaussianDistribution.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = openFrameworks;
+			targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		E4B69B4E0A3A1720003C02F2 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+			buildSettings = {
+				CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+				COPY_PHASE_STRIP = NO;
+				DEAD_CODE_STRIPPING = YES;
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+				GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+				GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+				GCC_WARN_UNINITIALIZED_AUTOS = NO;
+				GCC_WARN_UNUSED_VALUE = NO;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				HEADER_SEARCH_PATHS = (
+					"$(OF_CORE_HEADERS)",
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/win32,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src,
+				);
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_CPLUSPLUSFLAGS = (
+					"-D__MACOSX_CORE__",
+					"-mtune=native",
+				);
+				SDKROOT = macosx;
+			};
+			name = Debug;
+		};
+		E4B69B4F0A3A1720003C02F2 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+			buildSettings = {
+				CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+				COPY_PHASE_STRIP = YES;
+				DEAD_CODE_STRIPPING = YES;
+				GCC_AUTO_VECTORIZATION = YES;
+				GCC_ENABLE_SSE3_EXTENSIONS = YES;
+				GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+				GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+				GCC_OPTIMIZATION_LEVEL = 3;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_UNROLL_LOOPS = YES;
+				GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+				GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+				GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+				GCC_WARN_UNINITIALIZED_AUTOS = NO;
+				GCC_WARN_UNUSED_VALUE = NO;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				HEADER_SEARCH_PATHS = (
+					"$(OF_CORE_HEADERS)",
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/win32,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src,
+				);
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				OTHER_CPLUSPLUSFLAGS = (
+					"-D__MACOSX_CORE__",
+					"-mtune=native",
+				);
+				SDKROOT = macosx;
+			};
+			name = Release;
+		};
+		E4B69B600A3A1757003C02F2 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+			buildSettings = {
+				"CLANG_CXX_LANGUAGE_STANDARD[arch=i386]" = "c++0x";
+				"CLANG_CXX_LANGUAGE_STANDARD[arch=x86_64]" = "c++0x";
+				"CLANG_CXX_LIBRARY[arch=i386]" = "libc++";
+				"CLANG_CXX_LIBRARY[arch=x86_64]" = "libc++";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+					"$(PROJECT_DIR)",
+				);
+				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../../../Documents/of_v0.9.8_osx_release/libs/glut/lib/osx\"";
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = NONE;
+				HEADER_SEARCH_PATHS = (
+					"$(OF_CORE_HEADERS)",
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/win32,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src,
+				);
+				ICON = "$(ICON_NAME_DEBUG)";
+				ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
+				INFOPLIST_FILE = "openFrameworks-Info.plist";
+				INSTALL_PATH = /Applications;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/third_party_dependancies/pipo/sdk/examples/jucepipo",
+					"$(PROJECT_DIR)/third_party_dependancies/pipo-sdk/examples/jucepipo",
+					"$(PROJECT_DIR)/dependencies/Maximilian/openFrameworks/openFrameworksExamples/windows/ofMaximExampleVS2010/bin",
+					"$(PROJECT_DIR)/dependencies/pipo/bin/osx",
+					"$(PROJECT_DIR)/dependencies/pipo/examples/jucepipo",
+					"$(PROJECT_DIR)",
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)Debug";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		E4B69B610A3A1757003C02F2 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+			buildSettings = {
+				"CLANG_CXX_LANGUAGE_STANDARD[arch=i386]" = "c++0x";
+				"CLANG_CXX_LANGUAGE_STANDARD[arch=x86_64]" = "c++0x";
+				"CLANG_CXX_LIBRARY[arch=i386]" = "libc++";
+				"CLANG_CXX_LIBRARY[arch=x86_64]" = "libc++";
+				COMBINE_HIDPI_IMAGES = YES;
+				COPY_PHASE_STRIP = YES;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+					"$(PROJECT_DIR)",
+				);
+				FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../../../Documents/of_v0.9.8_osx_release/libs/glut/lib/osx\"";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = NONE;
+				HEADER_SEARCH_PATHS = (
+					"$(OF_CORE_HEADERS)",
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxGui/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxMaxim/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/posix,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/ip/win32,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/libs/oscpack/src/osc,
+					../../../../../Documents/of_v0.9.8_osx_release/addons/ofxOsc/src,
+				);
+				ICON = "$(ICON_NAME_RELEASE)";
+				ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
+				INFOPLIST_FILE = "openFrameworks-Info.plist";
+				INSTALL_PATH = /Applications;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/third_party_dependancies/pipo/sdk/examples/jucepipo",
+					"$(PROJECT_DIR)/third_party_dependancies/pipo-sdk/examples/jucepipo",
+					"$(PROJECT_DIR)/dependencies/Maximilian/openFrameworks/openFrameworksExamples/windows/ofMaximExampleVS2010/bin",
+					"$(PROJECT_DIR)/dependencies/pipo/bin/osx",
+					"$(PROJECT_DIR)/dependencies/pipo/examples/jucepipo",
+					"$(PROJECT_DIR)",
+				);
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+				baseConfigurationReference = E4EB6923138AFD0F00A09F29;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "Bitalino" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				E4B69B4E0A3A1720003C02F2 /* Debug */,
+				E4B69B4F0A3A1720003C02F2 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "Bitalino" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				E4B69B600A3A1757003C02F2 /* Debug */,
+				E4B69B610A3A1757003C02F2 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:">
+   </FileRef>
+</Workspace>
diff --git a/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Debug.xcscheme b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Debug.xcscheme
new file mode 100644
index 0000000..b82151e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Debug.xcscheme	
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+               BuildableName = "Bitalino.app"
+               BlueprintName = "Bitalino"
+               ReferencedContainer = "container:Bitalino.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Debug"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Release.xcscheme b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Release.xcscheme
new file mode 100644
index 0000000..6f5bb44
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Release.xcscheme	
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0600"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+               BuildableName = "Bitalino.app"
+               BlueprintName = "Bitalino"
+               ReferencedContainer = "container:Bitalino.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Release">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+            BuildableName = "Bitalino.app"
+            BlueprintName = "Bitalino"
+            ReferencedContainer = "container:Bitalino.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Release">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/examples/ofx/Bitalino_rapidmix/Makefile b/examples/ofx/Bitalino_rapidmix/Makefile
new file mode 100644
index 0000000..7ea4333
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Makefile
@@ -0,0 +1,13 @@
+# Attempt to load a config.make file.
+# If none is found, project defaults in config.project.make will be used.
+ifneq ($(wildcard config.make),)
+	include config.make
+endif
+
+# make sure the the OF_ROOT location is defined
+ifndef OF_ROOT
+    OF_ROOT=$(realpath ../../../../../Documents/of_v0.9.8_osx_release)
+endif
+
+# call the project makefile!
+include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
diff --git a/examples/ofx/Bitalino_rapidmix/Project.xcconfig b/examples/ofx/Bitalino_rapidmix/Project.xcconfig
new file mode 100644
index 0000000..9097eba
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/Project.xcconfig
@@ -0,0 +1,17 @@
+//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
+//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
+OF_PATH = ../../../../../Documents/of_v0.9.8_osx_release
+
+//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
+#include "../../../../../Documents/of_v0.9.8_osx_release/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
+
+//ICONS - NEW IN 0072 
+ICON_NAME_DEBUG = icon-debug.icns
+ICON_NAME_RELEASE = icon.icns
+ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
+
+//IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
+//ICON_FILE_PATH = bin/data/
+
+OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS)
+HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
diff --git a/examples/ofx/Bitalino_rapidmix/addons.make b/examples/ofx/Bitalino_rapidmix/addons.make
new file mode 100644
index 0000000..2d84199
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/addons.make
@@ -0,0 +1,3 @@
+ofxGui
+ofxMaxim
+ofxOsc
diff --git a/examples/ofx/Bitalino_rapidmix/bin/data/.gitkeep b/examples/ofx/Bitalino_rapidmix/bin/data/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/examples/ofx/Bitalino_rapidmix/config.make b/examples/ofx/Bitalino_rapidmix/config.make
new file mode 100644
index 0000000..963b07d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/config.make
@@ -0,0 +1,142 @@
+################################################################################
+# CONFIGURE PROJECT MAKEFILE (optional)
+#   This file is where we make project specific configurations.
+################################################################################
+
+################################################################################
+# OF ROOT
+#   The location of your root openFrameworks installation
+#       (default) OF_ROOT = ../../../../../Documents/of_v0.9.8_osx_release 
+################################################################################
+# OF_ROOT = ../../../../../Documents/of_v0.9.8_osx_release
+
+################################################################################
+# PROJECT ROOT
+#   The location of the project - a starting place for searching for files
+#       (default) PROJECT_ROOT = . (this directory)
+#    
+################################################################################
+# PROJECT_ROOT = .
+
+################################################################################
+# PROJECT SPECIFIC CHECKS
+#   This is a project defined section to create internal makefile flags to 
+#   conditionally enable or disable the addition of various features within 
+#   this makefile.  For instance, if you want to make changes based on whether
+#   GTK is installed, one might test that here and create a variable to check. 
+################################################################################
+# None
+
+################################################################################
+# PROJECT EXTERNAL SOURCE PATHS
+#   These are fully qualified paths that are not within the PROJECT_ROOT folder.
+#   Like source folders in the PROJECT_ROOT, these paths are subject to 
+#   exlclusion via the PROJECT_EXLCUSIONS list.
+#
+#     (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) 
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXTERNAL_SOURCE_PATHS = 
+
+################################################################################
+# PROJECT EXCLUSIONS
+#   These makefiles assume that all folders in your current project directory 
+#   and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
+#   to look for source code. The any folders or files that match any of the 
+#   items in the PROJECT_EXCLUSIONS list below will be ignored.
+#
+#   Each item in the PROJECT_EXCLUSIONS list will be treated as a complete 
+#   string unless teh user adds a wildcard (%) operator to match subdirectories.
+#   GNU make only allows one wildcard for matching.  The second wildcard (%) is
+#   treated literally.
+#
+#      (default) PROJECT_EXCLUSIONS = (blank)
+#
+#		Will automatically exclude the following:
+#
+#			$(PROJECT_ROOT)/bin%
+#			$(PROJECT_ROOT)/obj%
+#			$(PROJECT_ROOT)/%.xcodeproj
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXCLUSIONS =
+
+################################################################################
+# PROJECT LINKER FLAGS
+#	These flags will be sent to the linker when compiling the executable.
+#
+#		(default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+
+# Currently, shared libraries that are needed are copied to the 
+# $(PROJECT_ROOT)/bin/libs directory.  The following LDFLAGS tell the linker to
+# add a runtime path to search for those shared libraries, since they aren't 
+# incorporated directly into the final executable application binary.
+# TODO: should this be a default setting?
+# PROJECT_LDFLAGS=-Wl,-rpath=./libs
+
+################################################################################
+# PROJECT DEFINES
+#   Create a space-delimited list of DEFINES. The list will be converted into 
+#   CFLAGS with the "-D" flag later in the makefile.
+#
+#		(default) PROJECT_DEFINES = (blank)
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_DEFINES = 
+
+################################################################################
+# PROJECT CFLAGS
+#   This is a list of fully qualified CFLAGS required when compiling for this 
+#   project.  These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS 
+#   defined in your platform specific core configuration files. These flags are
+#   presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. 
+#
+#		(default) PROJECT_CFLAGS = (blank)
+#
+#   Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in 
+#   your platform specific configuration file will be applied by default and 
+#   further flags here may not be needed.
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CFLAGS = 
+
+################################################################################
+# PROJECT OPTIMIZATION CFLAGS
+#   These are lists of CFLAGS that are target-specific.  While any flags could 
+#   be conditionally added, they are usually limited to optimization flags. 
+#   These flags are added BEFORE the PROJECT_CFLAGS.
+#
+#   PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
+#
+#		(default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
+#
+#   PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
+#
+#		(default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
+#
+#   Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the 
+#   PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration 
+#   file will be applied by default and further optimization flags here may not 
+#   be needed.
+#
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_OPTIMIZATION_CFLAGS_RELEASE = 
+# PROJECT_OPTIMIZATION_CFLAGS_DEBUG = 
+
+################################################################################
+# PROJECT COMPILERS
+#   Custom compilers can be set for CC and CXX
+#		(default) PROJECT_CXX = (blank)
+#		(default) PROJECT_CC = (blank)
+#   Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CXX = 
+# PROJECT_CC = 
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.cpp
new file mode 100755
index 0000000..36ef7d5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.cpp
@@ -0,0 +1,1375 @@
+/**
+ * Gesture Variation Follower class allows for early gesture recognition and variation tracking
+ *
+ * @details Original algorithm designed and implemented in 2011 at Ircam Centre Pompidou
+ * by Baptiste Caramiaux and Nicola Montecchio. The library has been created and is maintained by Baptiste Caramiaux
+ *
+ * Copyright (C) 2015 Baptiste Caramiaux, Nicola Montecchio
+ * STMS lab Ircam-CRNS-UPMC, University of Padova, Goldsmiths College University of London
+ *
+ * The library is under the GNU Lesser General Public License (LGPL v3)
+ */
+
+#include "GVF.h"
+#include <string.h>
+#include <stdio.h>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <memory>
+#include <algorithm>
+#include <numeric>
+
+//debug max
+//#include "ext.h"
+
+
+using namespace std;
+
+//--------------------------------------------------------------
+GVF::GVF()
+{
+    config.inputDimensions   = 2;
+    config.translate         = true;
+    config.segmentation      = false;
+    
+    parameters.numberParticles       = 1000;
+    parameters.tolerance             = 0.2f;
+    parameters.resamplingThreshold   = 250;
+    parameters.distribution          = 0.0f;
+    parameters.alignmentVariance     = sqrt(0.000001f);
+    parameters.dynamicsVariance      = vector<float>(1,sqrt(0.001f));
+    parameters.scalingsVariance      = vector<float>(1,sqrt(0.00001f));
+    parameters.rotationsVariance     = vector<float>(1,sqrt(0.0f));
+    parameters.predictionSteps       = 1;
+    parameters.dimWeights            = vector<float>(1,sqrt(1.0f));
+    parameters.alignmentSpreadingCenter     = 0.0;
+    parameters.alignmentSpreadingRange      = 0.2;
+    parameters.dynamicsSpreadingCenter      = 1.0;
+    parameters.dynamicsSpreadingRange       = 0.3;
+    parameters.scalingsSpreadingCenter      = 1.0;
+    parameters.scalingsSpreadingRange       = 0.3;
+    parameters.rotationsSpreadingCenter     = 0.0;
+    parameters.rotationsSpreadingRange      = 0.5;
+    
+    tolerancesetmanually = false;
+    learningGesture = -1;
+    
+    normgen = std::mt19937(rd());
+    rndnorm = new std::normal_distribution<float>(0.0,1.0);
+    unifgen = std::default_random_engine(rd());
+    rndunif = new std::uniform_real_distribution<float>(0.0,1.0);
+    
+}
+
+////--------------------------------------------------------------
+//GVF::GVF(GVFConfig _config){
+//    setup(_config);
+//}
+//
+////--------------------------------------------------------------
+//GVF::GVF(GVFConfig _config, GVFParameters _parameters){
+//    setup(_config, _parameters);
+//}
+//
+////--------------------------------------------------------------
+//void GVF::setup(){
+//    
+//    // use defualt parameters
+//    GVFConfig defaultConfig;
+//    
+//    defaultConfig.inputDimensions   = 2;
+//    defaultConfig.translate         = true;
+//    defaultConfig.segmentation      = false;
+//    
+//    setup(defaultConfig);
+//}
+//
+////--------------------------------------------------------------
+//void GVF::setup(GVFConfig _config){
+//    
+//    clear(); // just in case
+//    
+//    learningGesture = -1;
+//    
+//    // Set configuration:
+//    config      = _config;
+//    
+//    // default parameters
+//    GVFParameters defaultParameters;
+//    defaultParameters.numberParticles       = 1000;
+//    defaultParameters.tolerance             = 0.2f;
+//    defaultParameters.resamplingThreshold   = 250;
+//    defaultParameters.distribution          = 0.0f;
+//    defaultParameters.alignmentVariance     = sqrt(0.000001f);
+//    defaultParameters.dynamicsVariance      = vector<float>(1,sqrt(0.001f));
+//    defaultParameters.scalingsVariance      = vector<float>(1,sqrt(0.00001f));
+//    defaultParameters.rotationsVariance     = vector<float>(1,sqrt(0.0f));
+//    defaultParameters.predictionSteps       = 1;
+//    defaultParameters.dimWeights            = vector<float>(1,sqrt(1.0f));
+//    
+//    // default spreading
+//    defaultParameters.alignmentSpreadingCenter = 0.0;
+//    defaultParameters.alignmentSpreadingRange  = 0.2;
+//    
+//    defaultParameters.dynamicsSpreadingCenter = 1.0;
+//    defaultParameters.dynamicsSpreadingRange  = 0.3;
+//    
+//    defaultParameters.scalingsSpreadingCenter = 1.0;
+//    defaultParameters.scalingsSpreadingRange  = 0.3;
+//    
+//    defaultParameters.rotationsSpreadingCenter = 0.0;
+//    defaultParameters.rotationsSpreadingRange  = 0.0;
+//    
+//    tolerancesetmanually = false;
+//    
+//    setup(_config,  defaultParameters);
+//    
+//}
+//
+////--------------------------------------------------------------
+//void GVF::setup(GVFConfig _config, GVFParameters _parameters)
+//{
+//    clear(); // just in case
+//    // Set configuration and parameters
+//    config      = _config;
+//    parameters  = _parameters;
+//    // Init random generators
+//    normgen = std::mt19937(rd());
+//    rndnorm = new std::normal_distribution<float>(0.0,1.0);
+//    unifgen = std::default_random_engine(rd());
+//    rndunif = new std::uniform_real_distribution<float>(0.0,1.0);
+//}
+
+//--------------------------------------------------------------
+GVF::~GVF()
+{
+    if (rndnorm != NULL)
+        delete (rndnorm);
+    clear(); // not really necessary but it's polite ;)
+}
+
+//--------------------------------------------------------------
+void GVF::clear()
+{
+    state = STATE_CLEAR;
+    gestureTemplates.clear();
+    mostProbableIndex = -1;
+}
+
+//--------------------------------------------------------------
+void GVF::startGesture()
+{
+    if (state==STATE_FOLLOWING)
+    {
+        restart();
+    }
+    else if (state==STATE_LEARNING)
+    {
+        if (theGesture.getNumberOfTemplates()>0)
+        {
+            if (theGesture.getTemplateLength()>0)
+                addGestureTemplate(theGesture);
+        }
+        theGesture.clear();
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::addObservation(vector<float> data)
+{
+    theGesture.addObservation(data);
+}
+
+//--------------------------------------------------------------
+void GVF::addGestureTemplate(GVFGesture & gestureTemplate)
+{
+    
+    //    if (getState() != GVF::STATE_LEARNING)
+    //        setState(GVF::STATE_LEARNING);
+    
+    int inputDimension = gestureTemplate.getNumberDimensions();
+    config.inputDimensions = inputDimension;
+    
+    gestureTemplates.push_back(gestureTemplate);
+    activeGestures.push_back(gestureTemplates.size());
+    
+    if(minRange.size() == 0){
+        minRange.resize(inputDimension);
+        maxRange.resize(inputDimension);
+    }
+    
+    for(int j = 0; j < inputDimension; j++){
+        minRange[j] = INFINITY;
+        maxRange[j] = -INFINITY;
+    }
+    
+    // compute min/max from the data
+    for(int i = 0; i < gestureTemplates.size(); i++){
+        GVFGesture& tGestureTemplate = gestureTemplates[i];
+        vector<float>& tMinRange = tGestureTemplate.getMinRange();
+        vector<float>& tMaxRange = tGestureTemplate.getMaxRange();
+        for(int j = 0; j < inputDimension; j++){
+            if(tMinRange[j] < minRange[j]) minRange[j] = tMinRange[j];
+            if(tMaxRange[j] > maxRange[j]) maxRange[j] = tMaxRange[j];
+        }
+    }
+    
+    for(int i = 0; i < gestureTemplates.size(); i++){
+        GVFGesture& tGestureTemplate = gestureTemplates[i];
+        tGestureTemplate.setMinRange(minRange);
+        tGestureTemplate.setMaxRange(maxRange);
+    }
+    train();
+    
+}
+
+//--------------------------------------------------------------
+void GVF::replaceGestureTemplate(GVFGesture & gestureTemplate, int index)
+{
+    if(gestureTemplate.getNumberDimensions()!=config.inputDimensions)
+        return;
+    if(minRange.size() == 0)
+    {
+        minRange.resize(config.inputDimensions);
+        maxRange.resize(config.inputDimensions);
+    }
+    for(int j = 0; j < config.inputDimensions; j++)
+    {
+        minRange[j] = INFINITY;
+        maxRange[j] = -INFINITY;
+    }
+    if (index<=gestureTemplates.size())
+        gestureTemplates[index-1]=gestureTemplate;
+    for(int i = 0; i < gestureTemplates.size(); i++)
+    {
+        GVFGesture& tGestureTemplate = gestureTemplates[i];
+        vector<float>& tMinRange = tGestureTemplate.getMinRange();
+        vector<float>& tMaxRange = tGestureTemplate.getMaxRange();
+        for(int j = 0; j < config.inputDimensions; j++){
+            if(tMinRange[j] < minRange[j]) minRange[j] = tMinRange[j];
+            if(tMaxRange[j] > maxRange[j]) maxRange[j] = tMaxRange[j];
+        }
+    }
+    for(int i = 0; i < gestureTemplates.size(); i++)
+    {
+        GVFGesture& tGestureTemplate = gestureTemplates[i];
+        tGestureTemplate.setMinRange(minRange);
+        tGestureTemplate.setMaxRange(maxRange);
+    }
+}
+
+////--------------------------------------------------------------
+//vector<float>& GVF::getGestureTemplateSample(int gestureIndex, float cursor)
+//{
+//    int frameindex = min((int)(gestureTemplates[gestureIndex].getTemplateLength() - 1),
+//                         (int)(floor(cursor * gestureTemplates[gestureIndex].getTemplateLength() ) ) );
+//    return gestureTemplates[gestureIndex].getTemplate()[frameindex];
+//}
+
+//--------------------------------------------------------------
+GVFGesture & GVF::getGestureTemplate(int index){
+    assert(index < gestureTemplates.size());
+    return gestureTemplates[index];
+}
+
+//--------------------------------------------------------------
+vector<GVFGesture> & GVF::getAllGestureTemplates(){
+    return gestureTemplates;
+}
+
+//--------------------------------------------------------------
+int GVF::getNumberOfGestureTemplates(){
+    return (int)gestureTemplates.size();
+}
+
+//--------------------------------------------------------------
+void GVF::removeGestureTemplate(int index){
+    assert(index < gestureTemplates.size());
+    gestureTemplates.erase(gestureTemplates.begin() + index);
+}
+
+//--------------------------------------------------------------
+void GVF::removeAllGestureTemplates(){
+    gestureTemplates.clear();
+}
+
+//----------------------------------------------
+void GVF::train(){
+    
+    if (gestureTemplates.size() > 0)
+    {
+        
+        // get the number of dimension in templates
+        config.inputDimensions = gestureTemplates[0].getTemplateDimension();
+        
+        dynamicsDim = 2;    // hard coded: just speed now
+        scalingsDim = config.inputDimensions;
+        
+        // manage orientation
+        if (config.inputDimensions==2) rotationsDim=1;
+        else if (config.inputDimensions==3) rotationsDim=3;
+        else rotationsDim=0;
+        
+        // Init state space
+        initVec(classes, parameters.numberParticles);                           // Vector of gesture class
+        initVec(alignment, parameters.numberParticles);                         // Vector of phase values (alignment)
+        initMat(dynamics, parameters.numberParticles, dynamicsDim);             // Matric of dynamics
+        initMat(scalings, parameters.numberParticles, scalingsDim);             // Matrix of scaling
+        if (rotationsDim!=0) initMat(rotations, parameters.numberParticles, rotationsDim);             // Matrix of rotations
+        initMat(offsets, parameters.numberParticles, config.inputDimensions);
+        initVec(weights, parameters.numberParticles);                           // Weights
+        
+        initMat(particles, parameters.numberParticles, 3);
+        //            std::cout << particles.size() << " "  << parameters.numberParticles << std::endl;
+        
+        // bayesian elements
+        initVec(prior, parameters.numberParticles);
+        initVec(posterior, parameters.numberParticles);
+        initVec(likelihood, parameters.numberParticles);
+        
+        
+        initPrior();            // prior on init state values
+        initNoiseParameters();  // init noise parameters (transition and likelihood)
+        
+        
+        // weighted dimensions in case: default is not weighted
+        if (parameters.dimWeights.size()!=config.inputDimensions){
+            parameters.dimWeights = vector<float> (config.inputDimensions);
+            for(int k = 0; k < config.inputDimensions; k++) parameters.dimWeights[k] = 1.0 / config.inputDimensions;
+        }
+        
+        // NORMALIZATION
+//        if (config.normalization) {     // update the global normaliation factor
+//            globalNormalizationFactor = -1.0;
+//            // loop on previous gestures already learned
+//            // take the max of all the gesture learned ...
+//            for (int k=0; k<getNumberOfGestureTemplates() ; k++){
+//                for(int j = 0; j < config.inputDimensions; j++){
+//                    float rangetmp = fabs(getGestureTemplate(k).getMaxRange()[j]-getGestureTemplate(k).getMinRange()[j]);
+//                    if (rangetmp > globalNormalizationFactor)
+//                        globalNormalizationFactor=rangetmp;
+//                }
+//            }
+//        }
+//        // only for logs
+//        if (config.logOn) {
+//            vecRef = vector<vector<float> > (parameters.numberParticles);
+//            vecObs = vector<float> (config.inputDimensions);
+//            stateNoiseDist = vector<float> (parameters.numberParticles);
+//        }
+    }
+}
+
+//--------------------------------------------------------------
+//void GVF::initPrior()
+//{
+//    
+//    // PATICLE FILTERING
+//    for (int k = 0; k < parameters.numberParticles; k++)
+//    {
+//        initPrior(k);
+//        
+//        classes[k] = activeGestures[k % activeGestures.size()] - 1;
+//    }
+//    
+//}
+
+//--------------------------------------------------------------
+void GVF::initPrior() //int pf_n)
+{
+    for (int pf_n = 0; pf_n < parameters.numberParticles; pf_n++)
+    {
+    // alignment
+    alignment[pf_n] = ((*rndunif)(unifgen) - 0.5) * parameters.alignmentSpreadingRange + parameters.alignmentSpreadingCenter;    // spread phase
+    
+    
+    // dynamics
+    dynamics[pf_n][0] = ((*rndunif)(unifgen) - 0.5) * parameters.dynamicsSpreadingRange + parameters.dynamicsSpreadingCenter; // spread speed
+    if (dynamics[pf_n].size()>1)
+    {
+        dynamics[pf_n][1] = ((*rndunif)(unifgen) - 0.5) * parameters.dynamicsSpreadingRange; // spread accel
+    }
+    
+    // scalings
+    for(int l = 0; l < scalings[pf_n].size(); l++) {
+        scalings[pf_n][l] = ((*rndunif)(unifgen) - 0.5) * parameters.scalingsSpreadingRange + parameters.scalingsSpreadingCenter; // spread scalings
+    }
+    
+    // rotations
+    if (rotationsDim!=0)
+        for(int l = 0; l < rotations[pf_n].size(); l++)
+            rotations[pf_n][l] = ((*rndunif)(unifgen) - 0.5) * parameters.rotationsSpreadingRange + parameters.rotationsSpreadingCenter;    // spread rotations
+    
+    if (config.translate) for(int l = 0; l < offsets[pf_n].size(); l++) offsets[pf_n][l] = 0.0;
+    
+    
+    prior[pf_n] = 1.0 / (float) parameters.numberParticles;
+    
+    // set the posterior to the prior at the initialization
+    posterior[pf_n] = prior[pf_n];
+        
+                classes[pf_n] = activeGestures[pf_n % activeGestures.size()] - 1;
+    }
+    
+}
+
+//--------------------------------------------------------------
+void GVF::initNoiseParameters() {
+    
+    // NOISE (ADDITIVE GAUSSIAN NOISE)
+    // ---------------------------
+    
+    if (parameters.dynamicsVariance.size() != dynamicsDim)
+    {
+        float variance = parameters.dynamicsVariance[0];
+        parameters.dynamicsVariance.resize(dynamicsDim);
+        for (int k=0; k<dynamicsDim; k++)
+            parameters.dynamicsVariance[k] = variance;
+    }
+    
+    if (parameters.scalingsVariance.size() != scalingsDim)
+    {
+        float variance = parameters.scalingsVariance[0];
+        parameters.scalingsVariance.resize(scalingsDim);
+        for (int k=0; k<scalingsDim; k++)
+            parameters.scalingsVariance[k] = variance;
+    }
+    
+    if (rotationsDim!=0)
+    {
+        if (parameters.rotationsVariance.size() != rotationsDim)
+        {
+            float variance = parameters.rotationsVariance[0];
+            parameters.rotationsVariance.resize(rotationsDim);
+            for (int k=0; k<rotationsDim; k++)
+                parameters.rotationsVariance[k] = variance;
+        }
+    }
+    
+    // ADAPTATION OF THE TOLERANCE IF DEFAULT PARAMTERS
+    // ---------------------------
+    if (!tolerancesetmanually){
+        float obsMeanRange = 0.0f;
+        for (int gt=0; gt<gestureTemplates.size(); gt++) {
+            for (int d=0; d<config.inputDimensions; d++)
+                obsMeanRange += (gestureTemplates[gt].getMaxRange()[d] - gestureTemplates[gt].getMinRange()[d])
+                /config.inputDimensions;
+        }
+        obsMeanRange /= gestureTemplates.size();
+        parameters.tolerance = obsMeanRange / 4.0f;  // dividing by an heuristic factor [to be learned?]
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::setState(GVFState _state, vector<int> indexes)
+{
+    switch (_state)
+    {
+        case STATE_CLEAR:
+            clear();
+            theGesture.clear();
+            break;
+            
+        case STATE_LEARNING:
+            if ((state==STATE_LEARNING) && (theGesture.getNumberOfTemplates()>0))
+            {
+                if (learningGesture==-1)
+                    addGestureTemplate(theGesture);
+                else
+                {
+                    replaceGestureTemplate(theGesture, learningGesture);
+                    learningGesture=-1;
+                }
+                if (indexes.size()!=0)
+                    learningGesture=indexes[0];
+            }
+            state = _state;
+            theGesture.clear();
+            break;
+            
+        case STATE_FOLLOWING:
+            if ((state==STATE_LEARNING) && (theGesture.getNumberOfTemplates()>0))
+            {
+                if (learningGesture==-1)
+                    addGestureTemplate(theGesture);
+                else
+                {
+                    replaceGestureTemplate(theGesture, learningGesture);
+                    learningGesture=-1;
+                }
+            }
+            if (gestureTemplates.size() > 0)
+            {
+                train();
+                state = _state;
+            }
+            else
+                state = STATE_CLEAR;
+            theGesture.clear();
+            break;
+            
+        default:
+            theGesture.clear();
+            break;
+    }
+}
+
+//--------------------------------------------------------------
+GVF::GVFState GVF::getState()
+{
+    return state;
+}
+
+////--------------------------------------------------------------
+//int GVF::getDynamicsDimension(){
+//    return dynamicsDim;
+//}
+
+//--------------------------------------------------------------
+vector<int> GVF::getGestureClasses()
+{
+    return classes;
+}
+
+////--------------------------------------------------------------
+//vector<float> GVF::getAlignment(){
+//    return alignment;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getEstimatedAlignment(){
+//    return estimatedAlignment;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getDynamics(){
+//    return dynamics;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getEstimatedDynamics(){
+//    return estimatedDynamics;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getScalings(){
+//    return scalings;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getEstimatedScalings(){
+//    return estimatedScalings;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getRotations(){
+//    return rotations;
+//}
+//
+////--------------------------------------------------------------
+//vector< vector<float> > GVF::getEstimatedRotations(){
+//    return estimatedRotations;
+//}
+
+////--------------------------------------------------------------
+//vector<float> GVF::getEstimatedProbabilities(){
+//    return estimatedProbabilities;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getEstimatedLikelihoods(){
+//    return estimatedLikelihoods;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getWeights(){
+//    return weights;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getPrior(){
+//    return prior;
+//}
+
+////--------------------------------------------------------------
+//vector<vector<float> > GVF::getVecRef() {
+//    return vecRef;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getVecObs() {
+//    return vecObs;
+//}
+//
+////--------------------------------------------------------------
+//vector<float> GVF::getStateNoiseDist(){
+//    return stateNoiseDist;
+//}
+
+////--------------------------------------------------------------
+//int GVF::getScalingsDim(){
+//    return scalingsDim;
+//}
+//
+////--------------------------------------------------------------
+//int GVF::getRotationsDim(){
+//    return rotationsDim;
+//}
+
+//--------------------------------------------------------------
+void GVF::restart()
+{
+    theGesture.clear();
+    initPrior();
+}
+
+#pragma mark - PARTICLE FILTERING
+
+//--------------------------------------------------------------
+void GVF::updatePrior(int n) {
+    
+    // Update alignment / dynamics / scalings
+    float L = gestureTemplates[classes[n]].getTemplateLength();
+    alignment[n] += (*rndnorm)(normgen) * parameters.alignmentVariance + dynamics[n][0]/L; // + dynamics[n][1]/(L*L);
+    
+    if (dynamics[n].size()>1){
+        dynamics[n][0] += (*rndnorm)(normgen) * parameters.dynamicsVariance[0] + dynamics[n][1]/L;
+        dynamics[n][1] += (*rndnorm)(normgen) * parameters.dynamicsVariance[1];
+    }
+    else {
+        dynamics[n][0] += (*rndnorm)(normgen) * parameters.dynamicsVariance[0];
+    }
+    
+    //    for(int l= 0; l < dynamics[n].size(); l++)  dynamics[n][l] += (*rndnorm)(normgen) * parameters.dynamicsVariance[l];
+    for(int l= 0; l < scalings[n].size(); l++)  scalings[n][l] += (*rndnorm)(normgen) * parameters.scalingsVariance[l];
+    if (rotationsDim!=0) for(int l= 0; l < rotations[n].size(); l++)  rotations[n][l] += (*rndnorm)(normgen) * parameters.rotationsVariance[l];
+    
+    // update prior (bayesian incremental inference)
+    prior[n] = posterior[n];
+}
+
+//--------------------------------------------------------------
+void GVF::updateLikelihood(vector<float> obs, int n)
+{
+
+//    if (config.normalization) for (int kk=0; kk<vobs.size(); kk++) vobs[kk] = vobs[kk] / globalNormalizationFactor;
+    
+    if(alignment[n] < 0.0)
+    {
+        alignment[n] = fabs(alignment[n]);  // re-spread at the beginning
+//        if (config.segmentation)
+//            classes[n]   = n % getNumberOfGestureTemplates();
+    }
+    else if(alignment[n] > 1.0)
+    {
+        if (config.segmentation)
+        {
+//            alignment[n] = fabs(1.0-alignment[n]); // re-spread at the beginning
+            alignment[n] = fabs((*rndunif)(unifgen) * 0.5);    //
+            classes[n]   = n % getNumberOfGestureTemplates();
+            offsets[n]   = obs;
+            // dynamics
+            dynamics[n][0] = ((*rndunif)(unifgen) - 0.5) * parameters.dynamicsSpreadingRange + parameters.dynamicsSpreadingCenter; // spread speed
+            if (dynamics[n].size()>1)
+                dynamics[n][1] = ((*rndunif)(unifgen) - 0.5) * parameters.dynamicsSpreadingRange;
+            // scalings
+            for(int l = 0; l < scalings[n].size(); l++)
+                scalings[n][l] = ((*rndunif)(unifgen) - 0.5) * parameters.scalingsSpreadingRange + parameters.scalingsSpreadingCenter; // spread scalings
+            // rotations
+            if (rotationsDim!=0)
+                for(int l = 0; l < rotations[n].size(); l++)
+                    rotations[n][l] = ((*rndunif)(unifgen) - 0.5) * parameters.rotationsSpreadingRange + parameters.rotationsSpreadingCenter;    // spread rotations
+            // prior
+            prior[n] = 1/(float)parameters.numberParticles;
+        }
+        else{
+            alignment[n] = fabs(2.0-alignment[n]); // re-spread at the end
+        }
+    }
+    
+    vector<float> vobs(config.inputDimensions);
+    setVec(vobs, obs);
+    
+    if (config.translate)
+        for (int j=0; j < config.inputDimensions; j++)
+            vobs[j] = vobs[j] - offsets[n][j];
+    
+    
+    // take vref from template at the given alignment
+    int gestureIndex = classes[n];
+    float cursor = alignment[n];
+    int frameindex = min((int)(gestureTemplates[gestureIndex].getTemplateLength() - 1),
+                         (int)(floor(cursor * gestureTemplates[gestureIndex].getTemplateLength() ) ) );
+//    return gestureTemplates[gestureIndex].getTemplate()[frameindex];
+    vector<float> vref = gestureTemplates[gestureIndex].getTemplate()[frameindex];; //getGestureTemplateSample(classes[n], alignment[n]);
+    
+    // Apply scaling coefficients
+    for (int k=0;k < config.inputDimensions; k++)
+    {
+//        if (config.normalization) vref[k] = vref[k] / globalNormalizationFactor;
+        vref[k] *= scalings[n][k];
+    }
+    
+    // Apply rotation coefficients
+    if (config.inputDimensions==2) {
+        float tmp0=vref[0]; float tmp1=vref[1];
+        vref[0] = cos(rotations[n][0])*tmp0 - sin(rotations[n][0])*tmp1;
+        vref[1] = sin(rotations[n][0])*tmp0 + cos(rotations[n][0])*tmp1;
+    }
+    else if (config.inputDimensions==3) {
+        // Rotate template sample according to the estimated angles of rotations (3d)
+        vector<vector< float> > RotMatrix = getRotationMatrix3d(rotations[n][0],rotations[n][1],rotations[n][2]);
+        vref = multiplyMat(RotMatrix, vref);
+    }
+    
+    // weighted euclidean distance
+    float dist = distance_weightedEuclidean(vref,vobs,parameters.dimWeights);
+    
+    if(parameters.distribution == 0.0f){    // Gaussian distribution
+        likelihood[n] = exp(- dist * 1 / (parameters.tolerance * parameters.tolerance));
+    }
+    else {            // Student's distribution
+        likelihood[n] = pow(dist/parameters.distribution + 1, -parameters.distribution/2 - 1);    // dimension is 2 .. pay attention if editing]
+    }
+//    // if log on keep track on vref and vobs
+//    if (config.logOn){
+//        vecRef.push_back(vref);
+//        vecObs = vobs;
+//    }
+}
+
+//--------------------------------------------------------------
+void GVF::updatePosterior(int n) {
+    posterior[n]  = prior[n] * likelihood[n];
+}
+
+//--------------------------------------------------------------
+GVFOutcomes & GVF::update(vector<float> & observation)
+{
+    
+    if (state != GVF::STATE_FOLLOWING) setState(GVF::STATE_FOLLOWING);
+    
+    theGesture.addObservation(observation);
+    vector<float> obs = theGesture.getLastObservation();
+    
+    //    std::cout << obs[0] << " " << obs[0] << " "
+    //                << gestureTemplates[0].getTemplate()[20][0] << " " << gestureTemplates[0].getTemplate()[20][1] << " "
+    //                << gestureTemplates[1].getTemplate()[20][0] << " " << gestureTemplates[1].getTemplate()[20][1] << std::endl;
+    
+    
+    // for each particle: perform updates of state space / likelihood / prior (weights)
+    float sumw = 0.0;
+    for(int n = 0; n< parameters.numberParticles; n++)
+    {
+        
+        for (int m=0; m<parameters.predictionSteps; m++)
+        {
+            updatePrior(n);
+            updateLikelihood(obs, n);
+            updatePosterior(n);
+        }
+        
+        sumw += posterior[n];   // sum posterior to normalise the distrib afterwards
+        
+        particles[n][0] = alignment[n];
+        particles[n][1] = scalings[n][0];
+        particles[n][2] = classes[n];
+    }
+    
+    // normalize the weights and compute the resampling criterion
+    float dotProdw = 0.0;
+    for (int k = 0; k < parameters.numberParticles; k++){
+        posterior[k] /= sumw;
+        dotProdw   += posterior[k] * posterior[k];
+    }
+    // avoid degeneracy (no particles active, i.e. weight = 0) by resampling
+    if( (1./dotProdw) < parameters.resamplingThreshold)
+        resampleAccordingToWeights(obs);
+    
+    // estimate outcomes
+    estimates();
+    
+    return outcomes;
+    
+}
+
+//--------------------------------------------------------------
+void GVF::resampleAccordingToWeights(vector<float> obs)
+{
+    // covennient
+    int numOfPart = parameters.numberParticles;
+    
+    // cumulative dist
+    vector<float>           c(numOfPart);
+    
+    // tmp matrices
+    vector<int>             oldClasses;
+    vector<float>           oldAlignment;
+    vector< vector<float> > oldDynamics;
+    vector< vector<float> > oldScalings;
+    vector< vector<float> > oldRotations;
+    
+    setVec(oldClasses,   classes);
+    setVec(oldAlignment, alignment);
+    setMat(oldDynamics,  dynamics);
+    setMat(oldScalings,  scalings);
+    if (rotationsDim!=0) setMat(oldRotations, rotations);
+    
+    
+    c[0] = 0;
+    for(int i = 1; i < numOfPart; i++) c[i] = c[i-1] + posterior[i];
+    
+    
+    float u0 = (*rndunif)(unifgen)/numOfPart;
+    
+    int i = 0;
+    for (int j = 0; j < numOfPart; j++)
+    {
+        float uj = u0 + (j + 0.) / numOfPart;
+        
+        while (uj > c[i] && i < numOfPart - 1){
+            i++;
+        }
+        
+        classes[j]   = oldClasses[i];
+        alignment[j] = oldAlignment[i];
+        
+        for (int l=0;l<dynamicsDim;l++)     dynamics[j][l] = oldDynamics[i][l];
+        for (int l=0;l<scalingsDim;l++)     scalings[j][l] = oldScalings[i][l];
+        if (rotationsDim!=0) for (int l=0;l<rotationsDim;l++) rotations[j][l] = oldRotations[i][l];
+        
+        // update posterior (partilces' weights)
+        posterior[j] = 1.0/(float)numOfPart;
+    }
+    
+}
+
+
+//--------------------------------------------------------------
+void GVF::estimates(){
+    
+    
+    int numOfPart = parameters.numberParticles;
+    vector<float> probabilityNormalisation(getNumberOfGestureTemplates());
+    setVec(probabilityNormalisation, 0.0f, getNumberOfGestureTemplates());            // rows are gestures
+    setVec(estimatedAlignment, 0.0f, getNumberOfGestureTemplates());            // rows are gestures
+    setMat(estimatedDynamics,  0.0f, getNumberOfGestureTemplates(), dynamicsDim);  // rows are gestures, cols are features + probabilities
+    setMat(estimatedScalings,  0.0f, getNumberOfGestureTemplates(), scalingsDim);   // rows are gestures, cols are features + probabilities
+    if (rotationsDim!=0) setMat(estimatedRotations,  0.0f, getNumberOfGestureTemplates(), rotationsDim);   // ..
+    setVec(estimatedProbabilities, 0.0f, getNumberOfGestureTemplates());            // rows are gestures
+    setVec(estimatedLikelihoods, 0.0f, getNumberOfGestureTemplates());            // rows are gestures
+    
+    //    float sumposterior = 0.;
+    
+    for(int n = 0; n < numOfPart; n++)
+    {
+        probabilityNormalisation[classes[n]] += posterior[n];
+    }
+    
+    
+    // compute the estimated features and likelihoods
+    for(int n = 0; n < numOfPart; n++)
+    {
+        
+        //        sumposterior += posterior[n];
+        estimatedAlignment[classes[n]] += alignment[n] * posterior[n];
+        
+        for(int m = 0; m < dynamicsDim; m++)
+            estimatedDynamics[classes[n]][m] += dynamics[n][m] * (posterior[n]/probabilityNormalisation[classes[n]]);
+        
+        for(int m = 0; m < scalingsDim; m++)
+            estimatedScalings[classes[n]][m] += scalings[n][m] * (posterior[n]/probabilityNormalisation[classes[n]]);
+        
+        if (rotationsDim!=0)
+            for(int m = 0; m < rotationsDim; m++)
+                estimatedRotations[classes[n]][m] += rotations[n][m] * (posterior[n]/probabilityNormalisation[classes[n]]);
+        
+        if (!isnan(posterior[n]))
+            estimatedProbabilities[classes[n]] += posterior[n];
+        estimatedLikelihoods[classes[n]] += likelihood[n];
+    }
+    
+    // calculate most probable index during scaling...
+    float maxProbability = 0.0f;
+    mostProbableIndex = -1;
+    
+    for(int gi = 0; gi < getNumberOfGestureTemplates(); gi++)
+    {
+        if(estimatedProbabilities[gi] > maxProbability){
+            maxProbability      = estimatedProbabilities[gi];
+            mostProbableIndex   = gi;
+        }
+    }
+    //    std::cout << estimatedProbabilities[0] << " " << estimatedProbabilities[1] << std::endl;
+    
+    //    outcomes.estimations.clear();
+    outcomes.likelihoods.clear();
+    outcomes.alignments.clear();
+    outcomes.scalings.clear();
+    outcomes.dynamics.clear();
+    outcomes.rotations.clear();
+    
+    // most probable gesture index
+    outcomes.likeliestGesture = mostProbableIndex;
+    
+    // Fill estimation for each gesture
+    for (int gi = 0; gi < gestureTemplates.size(); ++gi) {
+        
+        //        GVFEstimation estimation;
+        outcomes.likelihoods.push_back(estimatedProbabilities[gi]);
+        outcomes.alignments.push_back(estimatedAlignment[gi]);
+        //        estimation.probability = estimatedProbabilities[gi];
+        //        estimation.alignment   = estimatedAlignment[gi];
+        
+        
+        vector<float> gDynamics(dynamicsDim, 0.0);
+        for (int j = 0; j < dynamicsDim; ++j) gDynamics[j] = estimatedDynamics[gi][j];
+        outcomes.dynamics.push_back(gDynamics);
+        
+        vector<float> gScalings(scalingsDim, 0.0);
+        for (int j = 0; j < scalingsDim; ++j) gScalings[j] = estimatedScalings[gi][j];
+        outcomes.scalings.push_back(gScalings);
+        
+        vector<float> gRotations;
+        if (rotationsDim!=0)
+        {
+            gRotations.resize(rotationsDim);
+            for (int j = 0; j < rotationsDim; ++j) gRotations[j] = estimatedRotations[gi][j];
+            outcomes.rotations.push_back(gRotations);
+        }
+        
+        //        estimation.likelihood = estimatedLikelihoods[gi];
+        
+        // push estimation for gesture gi in outcomes
+        //        outcomes.estimations.push_back(estimation);
+    }
+    
+    
+    //    assert(outcomes.estimations.size() == gestureTemplates.size());
+    
+}
+
+////--------------------------------------------------------------
+//int GVF::getMostProbableGestureIndex()
+//{
+//    return mostProbableIndex;
+//}
+
+////--------------------------------------------------------------
+//GVFOutcomes GVF::getOutcomes()
+//{
+//    return outcomes;
+//}
+
+////--------------------------------------------------------------
+//GVFEstimation GVF::getTemplateRecogInfo(int templateNumber)
+//{
+//    if (getOutcomes().estimations.size() <= templateNumber) {
+//        GVFEstimation estimation;
+//        return estimation; // blank
+//    }
+//    else
+//        return getOutcomes().estimations[templateNumber];
+//}
+//
+////--------------------------------------------------------------
+//GVFEstimation GVF::getRecogInfoOfMostProbable() // FIXME: Rename!
+//{
+//    int indexMostProbable = getMostProbableGestureIndex();
+//
+//    if ((getState() == GVF::STATE_FOLLOWING) && (getMostProbableGestureIndex() != -1)) {
+//        return getTemplateRecogInfo(indexMostProbable);
+//    }
+//    else {
+//        GVFEstimation estimation;
+//        return estimation; // blank
+//    }
+//}
+
+
+////--------------------------------------------------------------
+//vector<float> & GVF::getGestureProbabilities()
+//{
+//    gestureProbabilities.resize(getNumberOfGestureTemplates());
+//    setVec(gestureProbabilities, 0.0f);
+//    for(int n = 0; n < parameters.numberParticles; n++)
+//        gestureProbabilities[classes[n]] += posterior[n];
+//    
+//    return gestureProbabilities;
+//}
+
+//--------------------------------------------------------------
+const vector<vector<float> > & GVF::getParticlesPositions(){
+    return particles;
+}
+
+////--------------------------------------------------------------
+//void GVF::setParameters(GVFParameters _parameters){
+//    
+//    // if the number of particles has changed, we have to re-allocate matrices
+//    if (_parameters.numberParticles != parameters.numberParticles)
+//    {
+//        parameters = _parameters;
+//        
+//        // minimum number of particles allowed
+//        if (parameters.numberParticles < 4) parameters.numberParticles = 4;
+//        
+//        // re-learn
+//        train();
+//        
+//        // adapt the resampling threshold in case if RT < NS
+//        if (parameters.numberParticles <= parameters.resamplingThreshold)
+//            parameters.resamplingThreshold = parameters.numberParticles / 4;
+//        
+//    }
+//    else
+//        parameters = _parameters;
+//    
+//    
+//}
+//
+//GVFParameters GVF::getParameters(){
+//    return parameters;
+//}
+
+//--------------------------------------------------------------
+// Update the number of particles
+void GVF::setNumberOfParticles(int numberOfParticles){
+    
+    parameters.numberParticles = numberOfParticles;
+    
+    if (parameters.numberParticles < 4)     // minimum number of particles allowed
+        parameters.numberParticles = 4;
+    
+    train();
+    
+    if (parameters.numberParticles <= parameters.resamplingThreshold) {
+        parameters.resamplingThreshold = parameters.numberParticles / 4;
+    }
+    
+}
+
+//--------------------------------------------------------------
+int GVF::getNumberOfParticles(){
+    return parameters.numberParticles; // Return the number of particles
+}
+
+//--------------------------------------------------------------
+void GVF::setActiveGestures(vector<int> activeGestureIds)
+{
+    int argmax = *std::max_element(activeGestureIds.begin(), activeGestureIds.end());
+    if (activeGestureIds[argmax] <= gestureTemplates.size())
+    {
+        activeGestures = activeGestureIds;
+    }
+    else
+    {
+        activeGestures.resize(gestureTemplates.size());
+        std::iota(activeGestures.begin(), activeGestures.end(), 1);
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::setPredictionSteps(int predictionSteps)
+{
+    if (predictionSteps<1)
+        parameters.predictionSteps = 1;
+    else
+        parameters.predictionSteps = predictionSteps;
+}
+
+//--------------------------------------------------------------
+int GVF::getPredictionSteps()
+{
+    return parameters.predictionSteps; // Return the number of particles
+}
+
+//--------------------------------------------------------------
+// Update the resampling threshold used to avoid degeneracy problem
+void GVF::setResamplingThreshold(int _resamplingThreshold){
+    if (_resamplingThreshold >= parameters.numberParticles)
+        _resamplingThreshold = floor(parameters.numberParticles/2.0f);
+    parameters.resamplingThreshold = _resamplingThreshold;
+}
+
+//--------------------------------------------------------------
+// Return the resampling threshold used to avoid degeneracy problem
+int GVF::getResamplingThreshold(){
+    return parameters.resamplingThreshold;
+}
+
+//--------------------------------------------------------------
+// Update the standard deviation of the observation distribution
+// this value acts as a tolerance for the algorithm
+// low value: less tolerant so more precise but can diverge
+// high value: more tolerant so less precise but converge more easily
+void GVF::setTolerance(float _tolerance){
+    if (_tolerance <= 0.0) _tolerance = 0.1;
+    parameters.tolerance = _tolerance;
+    tolerancesetmanually = true;
+}
+
+//--------------------------------------------------------------
+float GVF::getTolerance(){
+    return parameters.tolerance;
+}
+
+////--------------------------------------------------------------
+void GVF::setDistribution(float _distribution){
+    //nu = _distribution;
+    parameters.distribution = _distribution;
+}
+//
+////--------------------------------------------------------------
+//float GVF::getDistribution(){
+//    return parameters.distribution;
+//}
+
+//void GVF::setDimWeights(vector<float> dimWeights){
+//    if (dimWeights.size()!=parameters.dimWeights.size())
+//        parameters.dimWeights.resize(dimWeights.size());
+//    parameters.dimWeights = dimWeights;
+//}
+//
+//vector<float> GVF::getDimWeights(){
+//    return parameters.dimWeights;
+//}
+
+
+//// VARIANCE COEFFICIENTS: PHASE
+////--------------------------------------------------------------
+//void GVF::setAlignmentVariance(float alignmentVariance){
+//    parameters.alignmentVariance = sqrt(alignmentVariance);
+//}
+////--------------------------------------------------------------
+//float GVF::getAlignmentVariance(){
+//    return parameters.alignmentVariance;
+//}
+
+
+// VARIANCE COEFFICIENTS: DYNAMICS
+//--------------------------------------------------------------
+//void GVF::setDynamicsVariance(float dynVariance)
+//{
+//    for (int k=0; k< parameters.dynamicsVariance.size(); k++)
+//        parameters.dynamicsVariance[k] = dynVariance;
+//}
+//--------------------------------------------------------------
+void GVF::setDynamicsVariance(float dynVariance, int dim)
+{
+    if (dim == -1)
+    {
+        for (int k=0; k< parameters.dynamicsVariance.size(); k++)
+            parameters.dynamicsVariance[k] = dynVariance;
+    }
+    else
+    {
+        if (dim<parameters.dynamicsVariance.size())
+            parameters.dynamicsVariance[dim-1] = dynVariance;
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::setDynamicsVariance(vector<float> dynVariance)
+{
+    parameters.dynamicsVariance = dynVariance;
+}
+//--------------------------------------------------------------
+vector<float> GVF::getDynamicsVariance()
+{
+    return parameters.dynamicsVariance;
+}
+
+//--------------------------------------------------------------
+void GVF::setScalingsVariance(float scaleVariance, int dim)
+{
+    if (dim == -1)
+    {
+        for (int k=0; k< parameters.scalingsVariance.size(); k++)
+            parameters.scalingsVariance[k] = scaleVariance;
+    }
+    else
+    {
+        if (dim<parameters.scalingsVariance.size())
+            parameters.scalingsVariance[dim-1] = scaleVariance;
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::setScalingsVariance(vector<float> scaleVariance)
+{
+    parameters.scaleVariance = scaleVariance;
+}
+
+//--------------------------------------------------------------
+vector<float> GVF::getScalingsVariance()
+{
+    return parameters.scalingsVariance;
+}
+
+//--------------------------------------------------------------
+void GVF::setRotationsVariance(float rotationVariance, int dim)
+{
+    if (dim == -1)
+    {
+        for (int k=0; k< parameters.rotationsVariance.size(); k++)
+            parameters.rotationsVariance[k] = rotationVariance;
+    }
+    else
+    {
+        if (dim<parameters.rotationsVariance.size())
+            parameters.scalingsVariance[dim-1] = rotationVariance;
+    }
+}
+
+//--------------------------------------------------------------
+void GVF::setRotationsVariance(vector<float> rotationVariance)
+{
+    parameters.scaleVariance = rotationVariance;
+}
+
+//--------------------------------------------------------------
+vector<float> GVF::getRotationsVariance()
+{
+    return parameters.rotationsVariance;
+}
+
+//--------------------------------------------------------------
+void GVF::setSpreadDynamics(float center, float range, int dim)
+{
+    parameters.dynamicsSpreadingCenter = center;
+    parameters.dynamicsSpreadingRange = range;
+}
+
+//--------------------------------------------------------------
+void GVF::setSpreadScalings(float center, float range, int dim)
+{
+    parameters.scalingsSpreadingCenter = center;
+    parameters.scalingsSpreadingRange = range;
+}
+
+//--------------------------------------------------------------
+void GVF::setSpreadRotations(float center, float range, int dim)
+{
+    parameters.rotationsSpreadingCenter = center;
+    parameters.rotationsSpreadingRange = range;
+}
+
+//--------------------------------------------------------------
+void GVF::translate(bool translateFlag)
+{
+    config.translate = translateFlag;
+}
+
+//--------------------------------------------------------------
+void GVF::segmentation(bool segmentationFlag)
+{
+    config.segmentation = segmentationFlag;
+}
+
+
+// UTILITIES
+
+//--------------------------------------------------------------
+// Save function. This function is used by applications to save the
+// vocabulary in a text file given by filename (filename is also the complete path + filename)
+void GVF::saveTemplates(string filename){
+    
+    std::string directory = filename;
+    
+    std::ofstream file_write(directory.c_str());
+    
+    for(int i=0; i < gestureTemplates.size(); i++) // Number of gesture templates
+    {
+        file_write << "template " << i << " " << config.inputDimensions << endl;
+        vector<vector<float> > templateTmp = gestureTemplates[i].getTemplate();
+        for(int j = 0; j < templateTmp.size(); j++)
+        {
+            for(int k = 0; k < config.inputDimensions; k++)
+                file_write << templateTmp[j][k] << " ";
+            file_write << endl;
+        }
+    }
+    file_write.close();
+    
+}
+
+
+
+
+//--------------------------------------------------------------
+// Load function. This function is used by applications to load a vocabulary
+// given by filename (filename is also the complete path + filename)
+void GVF::loadTemplates(string filename){
+    //    clear();
+    //
+    
+    GVFGesture loadedGesture;
+    loadedGesture.clear();
+    
+    ifstream infile;
+    stringstream doung;
+    
+    infile.open (filename.c_str(), ifstream::in);
+    //
+    string line;
+    vector<string> list;
+    int cl = -1;
+    while(!infile.eof())
+    {
+        cl++;
+        infile >> line;
+        
+        list.push_back(line);
+    }
+    
+    int k = 0;
+    int template_id = -1;
+    int template_dim = 0;
+    
+    
+    while (k < (list.size() - 1)){ // TODO to be changed if dim>2
+        
+        
+        if (!strcmp(list[k].c_str(),"template"))
+        {
+            template_id = atoi(list[k+1].c_str());
+            template_dim = atoi(list[k+2].c_str());
+            k = k + 3;
+            
+            if (loadedGesture.getNumberOfTemplates() > 0){
+                addGestureTemplate(loadedGesture);
+                loadedGesture.clear();
+            }
+        }
+        
+        if (template_dim <= 0){
+            //post("bug dim = -1");
+        }
+        else{
+            
+            vector<float> vect(template_dim);
+            
+            for (int kk = 0; kk < template_dim; kk++)
+                vect[kk] = (float) atof(list[k + kk].c_str());
+            
+            loadedGesture.addObservation(vect);
+        }
+        k += template_dim;
+        
+    }
+    
+    if (loadedGesture.getTemplateLength() > 0){
+        addGestureTemplate(loadedGesture);
+        loadedGesture.clear();
+    }
+    
+    infile.close();
+}
+
+
+
+
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.h b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.h
new file mode 100755
index 0000000..647fe7c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.h
@@ -0,0 +1,487 @@
+/**
+ * Gesture Variation Follower class allows for early gesture recognition and variation tracking
+ *
+ * @details Original algorithm designed and implemented in 2011 at Ircam Centre Pompidou
+ * by Baptiste Caramiaux and Nicola Montecchio. The library has been created and is maintained by Baptiste Caramiaux
+ *
+ * Copyright (C) 2015 Baptiste Caramiaux, Nicola Montecchio
+ * STMS lab Ircam-CRNS-UPMC, University of Padova, Goldsmiths College University of London
+ *
+ * The library is under the GNU Lesser General Public License (LGPL v3)
+ */
+
+
+#ifndef _H_GVF
+#define _H_GVF
+
+#include "GVFUtils.h"
+#include "GVFGesture.h"
+#include <random>
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <map>
+#include <random>
+#include <cmath>
+
+
+using namespace std;
+
+class GVF
+{
+    
+public:
+    
+    /** 
+     * GVF possible states
+     */
+    enum GVFState
+    {
+        STATE_CLEAR = 0,    /**< STATE_CLEAR: clear the GVF and be in standby */
+        STATE_LEARNING,     /**< STATE_LEARNING: recording mode, input gestures are added to the templates */
+        STATE_FOLLOWING,    /**< STATE_FOLLOWING: tracking mode, input gestures are classifed and their variations tracked (need the GVF to be trained) */
+        STATE_BYPASS        /**< STATE_BYPASS: by pass GVF but does not erase templates or training */
+    };
+    
+    
+#pragma mark - Constructors
+    
+    /**
+     * GVF default constructor
+     * @details use default configuration and parameters, can be changed using accessors
+     */
+    GVF();
+    
+    /**
+     * GVF default destructor
+     */
+    ~GVF();
+    
+#pragma mark - Gesture templates
+
+    /**
+     * Start a gesture either to be recorded or followed
+     */
+    void startGesture();
+    
+    /**
+     * Add an observation to a gesture template
+     * @details
+     * @param data vector of features
+     */
+    void addObservation(vector<float> data);
+    
+    /**
+     * Add gesture template to the vocabulary
+     *
+     * @details a gesture template is a GVFGesture object and can be added directly to the vocabulqry or
+     * recorded gesture templates by using this method
+     * @param gestureTemplate the gesture template to be recorded
+     */
+    void addGestureTemplate(GVFGesture & gestureTemplate);
+    
+    /**
+     * Replace a specific gesture template by another
+     *
+     * @param gestureTemplate the gesture template to be used
+     * @param index the gesture index (as integer) to be replaced
+     */
+    void replaceGestureTemplate(GVFGesture & gestureTemplate, int index);
+    
+    /**
+     * Remove a specific template
+     *
+     * @param index the gesture index (as integer) to be removed
+     */
+    void removeGestureTemplate(int index);
+    
+    /**
+     * Remove every recorded gesture template
+     */
+    void removeAllGestureTemplates();
+    
+    /**
+     * Get a specific gesture template a gesture template by another
+     *
+     * @param index the index of the template to be returned
+     * @return the template
+     */
+    GVFGesture & getGestureTemplate(int index);
+    
+    /**
+     * Get every recorded gesture template
+     *
+     * @return the vecotr of gesture templates
+     */
+    vector<GVFGesture> & getAllGestureTemplates();
+    
+    /**
+     * Get number of gesture templates in the vocabulary
+     * @return the number of templates
+     */
+    int getNumberOfGestureTemplates();
+    
+    /**
+     * Get gesture classes
+     */
+    vector<int> getGestureClasses();
+    
+    
+#pragma mark - Recognition and tracking
+
+    /**
+     * Set the state of GVF
+     * @param _state the state to be given to GVF, it is a GVFState
+     * @param indexes an optional argument providing a list of gesture index. 
+     * In learning mode the index of the gesture being recorded can be given as an argument
+     * since the type is vector<int>, it should be something like '{3}'. In following mode, the list of indexes
+     * is the list of active gestures to be considered in the recognition/tracking.
+     */
+    void setState(GVFState _state, vector<int> indexes = vector<int>());
+    
+    /**
+     * Return the current state of GVF
+     * @return GVFState the current state
+     */
+    GVFState getState();
+    
+    /**
+     * Compute the estimated gesture and its potential variations
+     *
+     * @details infers the probability that the current observation belongs to
+     * one of the recorded gesture template and track the variations of this gesture
+     * according to each template
+     *
+     * @param observation vector of the observation data at current time
+     * @return the estimated probabilities and variaitons relative to each template
+     */
+    GVFOutcomes & update(vector<float> & observation);
+    
+    /**
+     * Define a subset of gesture templates on which to perform the recognition
+     * and variation tracking
+     *
+     * @details By default every recorded gesture template is considered
+     * @param set of gesture template index to consider
+     */
+    void setActiveGestures(vector<int> activeGestureIds);
+    
+    /**
+     * Restart GVF
+     * @details re-sample particles at the origin (i.e. initial prior)
+     */
+    void restart();
+    
+    /**
+     * Clear GVF
+     * @details delete templates
+     */
+    void clear();
+
+    /**
+     * Translate data according to the first point
+     * @details substract each gesture feature by the first point of the gesture
+     * @param boolean to activate or deactivate translation
+     */
+    void translate(bool translateFlag);
+
+    /**
+     * Segment gestures within a continuous gesture stream
+     * @details if segmentation is true, the method will segment a continuous gesture into a sequence
+     * of gestures. In other words no need to call the method startGesture(), it is done automatically
+     * @param segmentationFlag boolean to activate or deactivate segmentation
+     */
+    void segmentation(bool segmentationFlag);
+    
+#pragma mark - [ Accessors ]
+#pragma mark > Parameters
+    /**
+     * Set tolerance between observation and estimation
+     * @details tolerance depends on the range of the data
+     * typially tolerance = (data range)/3.0;
+     * @param tolerance value
+     */
+    void setTolerance(float tolerance);
+    
+    /**
+     * Get the obervation tolerance value
+     * @details see setTolerance(float tolerance)
+     * @return the current toleranc value
+     */
+    float getTolerance();
+    
+    void setDistribution(float _distribution);
+    
+    /**
+     * Set number of particles used in estimation
+     * @details default valye is 1000, note that the computational
+     * cost directly depends on the number of particles
+     * @param new number of particles
+     */
+    void setNumberOfParticles(int numberOfParticles);
+    
+    /**
+     * Get the current number of particles
+     * @return the current number of particles
+     */
+    int getNumberOfParticles();
+    
+    /**
+     * Number of prediciton steps
+     * @details it is possible to leave GVF to perform few steps of prediction
+     * ahead which can be useful to estimate more fastly the variations. Default value is 1
+     * which means no prediction ahead
+     * @param the number of prediction steps
+     */
+    void setPredictionSteps(int predictionSteps);
+    
+    /**
+     * Get the current number of prediction steps
+     * @return current number of prediciton steps
+     */
+    int getPredictionSteps();
+
+    /**
+     * Set resampling threshold
+     * @details resampling threshold is the minimum number of active particles
+     * before resampling all the particles by the estimated posterior distribution.
+     * in other words, it re-targets particles around the best current estimates
+     * @param the minimum number of particles (default is (number of particles)/2)
+     */
+    void setResamplingThreshold(int resamplingThreshold);
+    
+    /**
+     * Get the current resampling threshold
+     * @return resampling threshold
+     */
+    int getResamplingThreshold();
+    
+#pragma mark > Dynamics
+    /**
+     * Change variance of adaptation in dynamics
+     * @details if dynamics adaptation variance is high the method will adapt faster to 
+     * fast changes in dynamics. Dynamics is 2-dimensional: the first dimension is the speed
+     * The second dimension is the acceleration.
+     *
+     * Typically the variance is the average amount the speed or acceleration can change from
+     * one sample to another. As an example, if the relative estimated speed can change from 1.1 to 1.2 
+     * from one sample to another, the variance should allow a change of 0.1 in speed. So the variance 
+     * should be set to 0.1*0.1 = 0.01
+     *
+     * @param dynVariance dynamics variance value
+     * @param dim optional dimension of the dynamics for which the change of variance is applied (default value is 1)
+     */
+    void setDynamicsVariance(float dynVariance, int dim = -1);
+    
+    /**
+     * Change variance of adaptation in dynamics
+     * @details See setDynamicsVariance(float dynVariance, int dim) for more details
+     * @param dynVariance vector of dynamics variances, each vector index is the variance to be applied to
+     * each dynamics dimension (consequently the vector should be 2-dimensional).
+     */
+    void setDynamicsVariance(vector<float> dynVariance);
+    
+    /**
+     * Get dynamics variances
+     * @return the vector of variances (the returned vector is 2-dimensional)
+     */
+    vector<float> getDynamicsVariance();
+    
+#pragma mark > Scalings
+    /**
+     * Change variance of adaptation in scalings
+     * @details if scalings adaptation variance is high the method will adapt faster to
+     * fast changes in relative sizes. There is one scaling variance for each dimension
+     * of the input gesture. If the gesture is 2-dimensional, the scalings variances will 
+     * also be 2-dimensional.
+     *
+     * Typically the variance is the average amount the size can change from
+     * one sample to another. As an example, if the relative estimated size changes from 1.1 to 1.15
+     * from one sample to another, the variance should allow a change of 0.05 in size. So the variance
+     * should be set to 0.05*0.05 = 0.0025
+     *
+     * @param scalings variance value
+     * @param dimension of the scalings for which the change of variance is applied
+     */
+    void setScalingsVariance(float scaleVariance, int dim = -1);
+    
+    /**
+     * Change variance of adaptation in dynamics
+     * @details See setScalingsVariance(float scaleVariance, int dim) for more details
+     * @param vector of scalings variances, each vector index is the variance to be applied to
+     * each scaling dimension.
+     * @param vector of variances (should be the size of the template gestures dimension)
+     */
+    void setScalingsVariance(vector<float> scaleVariance);
+    
+    /**
+     * Get scalings variances
+     * @return the vector of variances
+     */
+    vector<float> getScalingsVariance();
+
+#pragma mark > Rotations
+    /**
+     * Change variance of adaptation in orientation
+     * @details if rotation adaptation variance is high the method will adapt faster to
+     * fast changes in relative orientation. If the gesture is 2-dimensional, there is 
+     * one variance value since the rotation can be defined by only one angle of rotation. If
+     * the gesture is 3-dimensional, there are 3 variance values since the rotation in 3-d is
+     * defined by 3 rotation angles. For any other dimension, the rotation is not defined.
+     *
+     * The variance is the average amount the orientation can change from one sample to another. 
+     * As an example, if the relative orientation in rad changes from 0.1 to 0.2 from one observation
+     * to another, the variance should allow a change of 0.1 in rotation angle. So the variance
+     * should be set to 0.1*0.1 = 0.01
+     *
+     * @param rotationsVariance rotation variance value
+     * @param dim optional dimension of the rotation for which the change of variance is applied
+     */
+    void setRotationsVariance(float rotationsVariance, int dim = -1);
+    
+    /**
+     * Change variance of adaptation in orientation
+     * @details See setRotationsVariance(float rotationsVariance, int dim) for more details
+     * @param vector of rotation variances, each vector index is the variance to be applied to
+     * each rotation angle (1 or 3)
+     * @param vector of variances (should be 1 if the the template gestures are 2-dim or 3 if 
+     * they are 3-dim)
+     */
+    void setRotationsVariance(vector<float> rotationsVariance);
+    
+    /**
+     * Get rotation variances
+     * @return the vector of variances
+     */
+    vector<float> getRotationsVariance();
+    
+    
+#pragma mark > Others
+    
+    /**
+     * Get particle values
+     * @return vector of list of estimated particles
+     */
+    const vector<vector<float> > & getParticlesPositions();
+
+    /**
+     * Set the interval on which the dynamics values should be spread at the beginning (before adaptation)
+     * @details this interval can be used to concentrate the potential dynamics value on a narrow interval,
+     * typically around 1 (the default value), for instance between -0.05 and 0.05, or to allow at the very 
+     * beginning, high changes in dynamics by spreading, for instance between 0.0 and 2.0
+     * @param min lower value of the inital values for dynamics
+     * @param max higher value of the inital values for dynamics
+     * @param dim the dimension on which the change of initial interval should be applied (optional)
+     */
+    void setSpreadDynamics(float min, float max, int dim = -1);
+
+    /**
+     * Set the interval on which the scalings values should be spread at the beginning (before adaptation)
+     * @details this interval can be used to concentrate the potential scalings value on a narrow interval,
+     * typically around 1.0 (the default value), for instance between 0.95 and 1.05, or to allow at the very 
+     * beginning high changes in dynamics by spreading, for instance, between 0.0 and 2.0
+     * @param min lower value of the inital values for scalings
+     * @param max higher value of the inital values for scalings
+     * @param dim the dimension on which the change of initial interval should be applied (optional)
+     */
+    void setSpreadScalings(float min, float max, int dim = -1);
+    
+    /**
+     * Set the interval on which the angle of rotation values should be spread at the beginning (before adaptation)
+     * @details this interval can be used to concentrate the potential angle values on a narrow interval,
+     * typically around 0.0 (the default value), for instance between -0.05 and 0.05, or to allow at the very
+     * beginning, high changes in orientation by spreading, for instance, between -0.5 and 0.5
+     * @param min lower value of the inital values for angle of rotation
+     * @param max higher value of the inital values for angle of rotation
+     * @param dim the dimension on which the change of initial interval should be applied (optional)
+     */
+    void setSpreadRotations(float min, float max, int dim = -1);
+    
+#pragma mark - Import/Export templates
+    /**
+     * Export template data in a filename
+     * @param filename file name as a string
+     */
+    void saveTemplates(string filename);
+
+    /**
+     * Import template data in a filename
+     * @details needs to respect a given format provided by saveTemplates()
+     * @param file name as a string
+     */
+    void loadTemplates(string filename);
+
+protected:
+    
+    GVFConfig        config;        // Structure storing the configuration of GVF (in GVFUtils.h)
+    GVFParameters    parameters;    // Structure storing the parameters of GVF (in GVFUtils.h)
+    GVFOutcomes      outcomes;      // Structure storing the outputs of GVF (in GVFUtils.h)
+    GVFState         state;         // State (defined above)
+    GVFGesture       theGesture;    // GVFGesture object to handle incoming data in learning and following modes
+    
+    vector<GVFGesture>   gestureTemplates; // vector storing the gesture templates recorded when using the methods addObservation(vector<float> data) or addGestureTemplate(GVFGesture & gestureTemplate)
+    
+    vector<float> dimWeights;           // TOOD: to be put in parameters?
+    vector<float> maxRange;
+    vector<float> minRange;
+    int     dynamicsDim;                // dynamics state dimension
+    int     scalingsDim;                // scalings state dimension
+    int     rotationsDim;               // rotation state dimension
+    float   globalNormalizationFactor;          // flagged if normalization
+    int     mostProbableIndex;                  // cached most probable index
+    int     learningGesture;
+    
+    vector<int>             classes;            // gesture index for each particle [ns x 1]
+    vector<float >          alignment;          // alignment index (between 0 and 1) [ns x 1]
+    vector<vector<float> >  dynamics;           // dynamics estimation [ns x 2]
+    vector<vector<float> >  scalings;           // scalings estimation [ns x D]
+    vector<vector<float> >  rotations;          // rotations estimation [ns x A]
+    vector<float>           weights;            // weight of each particle [ns x 1]
+    vector<float>           prior;              // prior of each particle [ns x 1]
+    vector<float>           posterior;          // poserior of each particle [ns x 1]
+    vector<float>           likelihood;         // likelihood of each particle [ns x 1]
+    
+    // estimations
+    vector<float>           estimatedGesture;           // ..
+    vector<float>           estimatedAlignment;         // ..
+    vector<vector<float> >  estimatedDynamics;          // ..
+    vector<vector<float> >  estimatedScalings;          // ..
+    vector<vector<float> >  estimatedRotations;         // ..
+    vector<float>           estimatedProbabilities;     // ..
+    vector<float>           estimatedLikelihoods;       // ..
+    vector<float>           absoluteLikelihoods;        // ..
+
+    bool tolerancesetmanually;
+    
+
+    vector<vector<float> >  offsets;                    // translation offset
+    
+    vector<int> activeGestures;
+
+    vector<float> gestureProbabilities;
+    vector< vector<float> > particles;
+
+private:
+
+    // random number generator
+    std::random_device                      rd;
+    std::mt19937                            normgen;
+    std::normal_distribution<float>         *rndnorm;
+    std::default_random_engine              unifgen;
+    std::uniform_real_distribution<float>   *rndunif;
+
+#pragma mark - Private methods for model mechanics
+    void initPrior();
+    void initNoiseParameters();
+    void updateLikelihood(vector<float> obs, int n);
+    void updatePrior(int n);
+    void updatePosterior(int n);
+    void resampleAccordingToWeights(vector<float> obs);
+    void estimates();       // update estimated outcome
+    void train();
+    
+    
+};
+
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFGesture.h b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFGesture.h
new file mode 100644
index 0000000..20a3fa7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFGesture.h
@@ -0,0 +1,240 @@
+//
+//  GVFGesture.h
+//  gvf
+//
+//  Created by Baptiste Caramiaux on 22/01/16.
+//
+//
+
+#ifndef GVFGesture_h
+#define GVFGesture_h
+
+#ifndef MAX
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+
+class GVFGesture
+{
+public:
+    
+    GVFGesture()
+    {
+        inputDimensions = 2;
+        setAutoAdjustRanges(true);
+        templatesRaw    = vector<vector<vector<float > > >();
+        templatesNormal = vector<vector<vector<float > > >();
+        clear();
+    }
+    
+    GVFGesture(int inputDimension){
+        inputDimensions = inputDimension;
+        setAutoAdjustRanges(true);
+        templatesRaw    = vector<vector<vector<float > > >();
+        templatesNormal = vector<vector<vector<float > > >();
+        clear();
+    }
+    
+    ~GVFGesture(){
+        clear();
+    }
+    
+    void setNumberDimensions(int dimensions){
+        assert(dimensions > 0);
+        inputDimensions = dimensions;
+    }
+    
+    void setAutoAdjustRanges(bool b){
+        //        if(b) bIsRangeMinSet = bIsRangeMaxSet = false;
+        bAutoAdjustNormalRange = b;
+    }
+    
+    void setMax(float x, float y){
+        assert(inputDimensions == 2);
+        vector<float> r(2);
+        r[0] = x; r[1] = y;
+        setMaxRange(r);
+    }
+    
+    void setMin(float x, float y){
+        assert(inputDimensions == 2);
+        vector<float> r(2);
+        r[0] = x; r[1] = y;
+        setMinRange(r);
+    }
+    
+    void setMax(float x, float y, float z){
+        assert(inputDimensions == 3);
+        vector<float> r(3);
+        r[0] = x; r[1] = y; r[2] = z;
+        setMaxRange(r);
+    }
+    
+    void setMin(float x, float y, float z){
+        assert(inputDimensions == 3);
+        vector<float> r(3);
+        r[0] = x; r[1] = y; r[2] = z;
+        setMinRange(r);
+    }
+    
+    void setMaxRange(vector<float> observationRangeMax){
+        this->observationRangeMax = observationRangeMax;
+        //        bIsRangeMaxSet = true;
+        normalise();
+    }
+    
+    void setMinRange(vector<float> observationRangeMin){
+        this->observationRangeMin = observationRangeMin;
+        //        bIsRangeMinSet = true;
+        normalise();
+    }
+    
+    vector<float>& getMaxRange(){
+        return observationRangeMax;
+    }
+    
+    vector<float>& getMinRange(){
+        return observationRangeMin;
+    }
+    
+    void autoAdjustMinMax(vector<float> & observation){
+        if(observationRangeMax.size()  < inputDimensions){
+            observationRangeMax.assign(inputDimensions, -INFINITY);
+            observationRangeMin.assign(inputDimensions,  INFINITY);
+        }
+        for(int i = 0; i < inputDimensions; i++){
+            observationRangeMax[i] = MAX(observationRangeMax[i], observation[i]);
+            observationRangeMin[i] = MIN(observationRangeMin[i], observation[i]);
+        }
+    }
+    
+    void addObservation(vector<float> observation, int templateIndex = 0){
+        if (observation.size() != inputDimensions)
+            inputDimensions = int(observation.size());
+        
+        // check we have a valid templateIndex and correct number of input dimensions
+        assert(templateIndex <= templatesRaw.size());
+        assert(observation.size() == inputDimensions);
+        
+        // if the template index is same as the number of temlates make a new template
+        if(templateIndex == templatesRaw.size()){ // make a new template
+            
+            // reserve space in raw and normal template storage
+            templatesRaw.resize(templatesRaw.size() + 1);
+            templatesNormal.resize(templatesNormal.size() + 1);
+            
+        }
+        
+        if(templatesRaw[templateIndex].size() == 0)
+        {
+            templateInitialObservation = observation;
+            templateInitialNormal = observation;
+        }
+        
+        for(int j = 0; j < observation.size(); j++)
+            observation[j] = observation[j] - templateInitialObservation[j];
+        
+        // store the raw observation
+        templatesRaw[templateIndex].push_back(observation);
+        
+        autoAdjustMinMax(observation);
+        
+        normalise();
+    }
+    
+    
+    
+    void normalise()
+    {
+        templatesNormal.resize(templatesRaw.size());
+        for(int t = 0; t < templatesRaw.size(); t++)
+        {
+            templatesNormal[t].resize(templatesRaw[t].size());
+            for(int o = 0; o < templatesRaw[t].size(); o++)
+            {
+                templatesNormal[t][o].resize(inputDimensions);
+                for(int d = 0; d < inputDimensions; d++)
+                {
+                    templatesNormal[t][o][d] = templatesRaw[t][o][d] / (observationRangeMax[d] - observationRangeMin[d]);
+                    templateInitialNormal[d] = templateInitialObservation[d] / (observationRangeMax[d] - observationRangeMin[d]);
+                }
+            }
+        }
+    }
+    
+    void setTemplate(vector< vector<float> > & observations, int templateIndex = 0){
+        for(int i = 0; i < observations.size(); i++){
+            addObservation(observations[i], templateIndex);
+        }
+    }
+    
+    vector< vector<float> > & getTemplate(int templateIndex = 0){
+        assert(templateIndex < templatesRaw.size());
+        return templatesRaw[templateIndex];
+    }
+    
+    int getNumberOfTemplates(){
+        return int(templatesRaw.size());
+    }
+    
+    int getNumberDimensions(){
+        return inputDimensions;
+    }
+    
+    int getTemplateLength(int templateIndex = 0){
+        return int(templatesRaw[templateIndex].size());
+    }
+    
+    int getTemplateDimension(int templateIndex = 0){
+        return int(templatesRaw[templateIndex][0].size());
+    }
+    
+    vector<float>& getLastObservation(int templateIndex = 0){
+        return templatesRaw[templateIndex][templatesRaw[templateIndex].size() - 1];
+    }
+    
+    vector< vector< vector<float> > >& getTemplates(){
+        return templatesRaw;
+    }
+    
+    vector<float>& getInitialObservation(){
+        return templateInitialObservation;
+    }
+    
+    void deleteTemplate(int templateIndex = 0)
+    {
+        assert(templateIndex < templatesRaw.size());
+        templatesRaw[templateIndex].clear();
+        templatesNormal[templateIndex].clear();
+    }
+    
+    void clear()
+    {
+        templatesRaw.clear();
+        templatesNormal.clear();
+        observationRangeMax.assign(inputDimensions, -INFINITY);
+        observationRangeMin.assign(inputDimensions,  INFINITY);
+    }
+    
+private:
+    
+    int inputDimensions;
+    bool bAutoAdjustNormalRange;
+    
+    vector<float> observationRangeMax;
+    vector<float> observationRangeMin;
+    
+    vector<float> templateInitialObservation;
+    vector<float> templateInitialNormal;
+    
+    vector< vector< vector<float> > > templatesRaw;
+    vector< vector< vector<float> > > templatesNormal;
+    
+    vector<vector<float> > gestureDataFromFile;
+};
+
+#endif /* GVFGesture_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFUtils.h b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFUtils.h
new file mode 100755
index 0000000..28c5270
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVFUtils.h
@@ -0,0 +1,309 @@
+//
+//  GVFTypesAndUtils.h
+//
+//
+//
+
+#ifndef __H_GVFTYPES
+#define __H_GVFTYPES
+
+#include <map>
+#include <vector>
+#include <iostream>
+#include <random>
+#include <iostream>
+#include <math.h>
+#include <assert.h>
+
+using namespace std;
+
+/**
+ * Configuration structure
+ */
+typedef struct
+{
+    int     inputDimensions;    /**< input dimesnion */
+    bool    translate;          /**< translate flag */
+    bool    segmentation;       /**< segmentation flag */
+} GVFConfig;
+
+/**
+ * Parameters structure
+ */
+typedef struct
+{
+    float           tolerance;              /**< input dimesnion */
+    float           distribution;
+    int             numberParticles;
+    int             resamplingThreshold;
+    float           alignmentVariance;
+    float           speedVariance;
+    vector<float>   scaleVariance;
+    vector<float>   dynamicsVariance;
+    vector<float>   scalingsVariance;
+    vector<float>   rotationsVariance;
+    // spreadings
+    float           alignmentSpreadingCenter;
+    float           alignmentSpreadingRange;
+    float           dynamicsSpreadingCenter;
+    float           dynamicsSpreadingRange;
+    float           scalingsSpreadingCenter;
+    float           scalingsSpreadingRange;
+    float           rotationsSpreadingCenter;
+    float           rotationsSpreadingRange;
+    
+    int             predictionSteps;
+    vector<float>   dimWeights;
+} GVFParameters;
+
+// Outcomes structure
+typedef struct
+{
+    int likeliestGesture;
+    vector<float> likelihoods;
+    vector<float> alignments;
+    vector<vector<float> > dynamics;
+    vector<vector<float> > scalings;
+    vector<vector<float> > rotations;
+} GVFOutcomes;
+
+
+//--------------------------------------------------------------
+// init matrix by allocating memory
+template <typename T>
+inline void initMat(vector< vector<T> > & M, int rows, int cols){
+    M.resize(rows);
+    for (int n=0; n<rows; n++){
+        M[n].resize(cols);
+    }
+}
+
+//--------------------------------------------------------------
+// init matrix and copy values from another matrix
+template <typename T>
+inline void setMat(vector< vector<T> > & C, vector< vector<float> > & M){
+    int rows = int(M.size());
+    int cols = int(M[0].size());
+    //C.resize(rows);
+    C = vector<vector<T> >(rows);
+    for (int n=0; n<rows; n++){
+        //C[n].resize(cols);
+        C[n] = vector<T>(cols);
+        for (int m=0;m<cols;m++){
+            C[n][m] = M[n][m];
+        }
+    }
+}
+
+//--------------------------------------------------------------
+// init matrix by allocating memory and fill with T value
+template <typename T>
+inline void setMat(vector< vector<T> > & M, T value, int rows, int cols){
+    M.resize(rows);
+    for (int n=0; n<rows; n++){
+        M[n].resize(cols);
+        for (int m=0; m<cols; m++){
+            M[n][m] = value;
+        }
+    }
+}
+
+//--------------------------------------------------------------
+// set matrix filled with T value
+template <typename T>
+inline void setMat(vector< vector<T> > & M, T value){
+    for (int n=0; n<M.size(); n++){
+        for (int m=0; m<M[n].size(); m++){
+            M[n][m] = value;
+        }
+    }
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void printMat(vector< vector<T> > & M){
+    for (int k=0; k<M.size(); k++){
+        cout << k << ": ";
+        for (int l=0; l<M[0].size(); l++){
+            cout << M[k][l] << " ";
+        }
+        cout << endl;
+    }
+    cout << endl;
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void printVec(vector<T> & V){
+    for (int k=0; k<V.size(); k++){
+        cout << k << ": " << V[k] << (k == V.size() - 1 ? "" : " ,");
+    }
+    cout << endl;
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void initVec(vector<T> & V, int rows){
+    V.resize(rows);
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void setVec(vector<T> & C, vector<int> &V){
+    int rows = int(V.size());
+    C = vector<T>(rows);
+    //C.resize(rows);
+    for (int n=0; n<rows; n++){
+        C[n] = V[n];
+    }
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void setVec(vector<T> & C, vector<float> & V){
+    int rows = int(V.size());
+    C.resize(rows);
+    for (int n=0; n<rows; n++){
+        C[n] = V[n];
+    }
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void setVec(vector<T> & V, T value){
+    for (int n=0; n<V.size(); n++){
+        V[n] = value;
+    }
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline void setVec(vector<T> & V, T value, int rows){
+    V.resize(rows);
+    setVec(V, value);
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline vector< vector<T> > dotMat(vector< vector<T> > & M1, vector< vector<T> > & M2){
+    // TODO(Baptiste)
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline vector< vector<T> > multiplyMatf(vector< vector<T> > & M1, T v){
+    vector< vector<T> > multiply;
+    initMat(multiply, M1.size(), M1[0].size());
+    for (int i=0; i<M1.size(); i++){
+        for (int j=0; j<M1[i].size(); j++){
+            multiply[i][j] = M1[i][j] * v;
+        }
+    }
+    return multiply;
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline vector< vector<T> > multiplyMatf(vector< vector<T> > & M1, vector< vector<T> > & M2){
+    assert(M1[0].size() == M2.size()); // columns in M1 == rows in M2
+    vector< vector<T> > multiply;
+    initMat(multiply, M1.size(), M2[0].size()); // rows in M1 x cols in M2
+    for (int i=0; i<M1.size(); i++){
+        for (int j=0; j<M2[i].size(); j++){
+            multiply[i][j] = 0.0f;
+            for(int k=0; k<M1[0].size(); k++){
+                multiply[i][j] += M1[i][k] * M2[k][j];
+            }
+            
+        }
+    }
+    return multiply;
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline vector<T> multiplyMat(vector< vector<T> > & M1, vector< T> & Vect){
+    assert(Vect.size() == M1[0].size()); // columns in M1 == rows in Vect
+    vector<T> multiply;
+    initVec(multiply, Vect.size());
+    for (int i=0; i<M1.size(); i++){
+        multiply[i] = 0.0f;
+        for (int j=0; j<M1[i].size(); j++){
+            multiply[i] += M1[i][j] * Vect[j];
+        }
+    }
+    return multiply;
+}
+
+//--------------------------------------------------------------
+template <typename T>
+inline float getMeanVec(vector<T>& V){
+    float tSum = 0.0f;
+    for (int n=0; n<V.size(); n++){
+        tSum += V[n];
+    }
+    return tSum / (float)V.size();
+}
+
+template <typename T>
+inline vector<vector<float> > getRotationMatrix3d(T phi, T theta, T psi)
+{
+    vector< vector<float> > M;
+    initMat(M,3,3);
+    
+    M[0][0] = cos(theta)*cos(psi);
+    M[0][1] = -cos(phi)*sin(psi)+sin(phi)*sin(theta)*cos(psi);
+    M[0][2] = sin(phi)*sin(psi)+cos(phi)*sin(theta)*cos(psi);
+    
+    M[1][0] = cos(theta)*sin(psi);
+    M[1][1] = cos(phi)*cos(psi)+sin(phi)*sin(theta)*sin(psi);
+    M[1][2] = -sin(phi)*cos(psi)+cos(phi)*sin(theta)*sin(psi);
+    
+    M[2][0] = -sin(theta);
+    M[2][1] = sin(phi)*cos(theta);
+    M[2][2] = cos(phi)*cos(theta);
+    
+    return M;
+}
+
+template <typename T>
+float distance_weightedEuclidean(vector<T> x, vector<T> y, vector<T> w)
+{
+    int count = x.size();
+    if (count <= 0) return 0;
+    float dist = 0.0;
+    for(int k = 0; k < count; k++) dist += w[k] * pow((x[k] - y[k]), 2);
+    return dist;
+}
+
+////--------------------------------------------------------------
+//vector<vector<float> > getRotationMatrix3d(float phi, float theta, float psi)
+//{
+//    vector< vector<float> > M;
+//    initMat(M,3,3);
+//    
+//    M[0][0] = cos(theta)*cos(psi);
+//    M[0][1] = -cos(phi)*sin(psi)+sin(phi)*sin(theta)*cos(psi);
+//    M[0][2] = sin(phi)*sin(psi)+cos(phi)*sin(theta)*cos(psi);
+//    
+//    M[1][0] = cos(theta)*sin(psi);
+//    M[1][1] = cos(phi)*cos(psi)+sin(phi)*sin(theta)*sin(psi);
+//    M[1][2] = -sin(phi)*cos(psi)+cos(phi)*sin(theta)*sin(psi);
+//    
+//    M[2][0] = -sin(theta);
+//    M[2][1] = sin(phi)*cos(theta);
+//    M[2][2] = cos(phi)*cos(theta);
+//    
+//    return M;
+//}
+
+//float distance_weightedEuclidean(vector<float> x, vector<float> y, vector<float> w)
+//{
+//    int count = x.size();
+//    if (count <= 0) return 0;
+//    float dist = 0.0;
+//    for(int k = 0; k < count; k++) dist += w[k] * pow((x[k] - y[k]), 2);
+//    return dist;
+//}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/GVF/LICENSE b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/LICENSE
new file mode 100755
index 0000000..6600f1c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/GVF/LICENSE
@@ -0,0 +1,165 @@
+GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json-forwards.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json-forwards.h
new file mode 100644
index 0000000..65e8dfb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json-forwards.h
@@ -0,0 +1,324 @@
+/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json-forwards.h"
+/// This header provides forward declaration for all JsonCpp types.
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
+# define JSON_FORWARD_AMALGATED_H_INCLUDED
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+#define JSON_IS_AMALGAMATION
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_CONFIG_H_INCLUDED
+#define JSON_CONFIG_H_INCLUDED
+#include <stddef.h>
+#include <string> //typedef String
+#include <stdint.h> //typedef int64_t, uint64_t
+
+/// If defined, indicates that json library is embedded in CppTL library.
+//# define JSON_IN_CPPTL 1
+
+/// If defined, indicates that json may leverage CppTL library
+//#  define JSON_USE_CPPTL 1
+/// If defined, indicates that cpptl vector based map should be used instead of
+/// std::map
+/// as Value container.
+//#  define JSON_USE_CPPTL_SMALLMAP 1
+
+// If non-zero, the library uses exceptions to report bad input instead of C
+// assertion macros. The default is to use exceptions.
+#ifndef JSON_USE_EXCEPTION
+#define JSON_USE_EXCEPTION 1
+#endif
+
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+/// Remarks: it is automatically defined in the generated amalgated header.
+// #define JSON_IS_AMALGAMATION
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/config.h>
+#ifndef JSON_USE_CPPTL
+#define JSON_USE_CPPTL 1
+#endif
+#endif
+
+#ifdef JSON_IN_CPPTL
+#define JSON_API CPPTL_API
+#elif defined(JSON_DLL_BUILD)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllexport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#elif defined(JSON_DLL)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllimport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#endif // ifdef JSON_IN_CPPTL
+#if !defined(JSON_API)
+#define JSON_API
+#endif
+
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
+
+#if defined(_MSC_VER) // MSVC
+#  if _MSC_VER <= 1200 // MSVC 6
+    // Microsoft Visual Studio 6 only support conversion from __int64 to double
+    // (no conversion from unsigned __int64).
+#    define JSON_USE_INT64_DOUBLE_CONVERSION 1
+    // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
+    // characters in the debug information)
+    // All projects I've ever seen with VS6 were using this globally (not bothering
+    // with pragma push/pop).
+#    pragma warning(disable : 4786)
+#  endif // MSVC 6
+
+#  if _MSC_VER >= 1500 // MSVC 2008
+    /// Indicates that the following function is deprecated.
+#    define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#  endif
+
+#endif // defined(_MSC_VER)
+
+// In c++11 the override keyword allows you to explicity define that a function
+// is intended to override the base-class version.  This makes the code more
+// managable and fixes a set of common hard-to-find bugs.
+#if __cplusplus >= 201103L
+# define JSONCPP_OVERRIDE override
+#elif defined(_MSC_VER) && _MSC_VER > 1600
+# define JSONCPP_OVERRIDE override
+#else
+# define JSONCPP_OVERRIDE
+#endif
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+
+#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif // MSVC >= 2010
+
+#ifdef __clang__
+#if __has_feature(cxx_rvalue_references)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // has_feature
+
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // GXX_EXPERIMENTAL
+
+#endif // __clang__ || __GNUC__
+
+#endif // not defined JSON_HAS_RVALUE_REFERENCES
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+#define JSON_HAS_RVALUE_REFERENCES 0
+#endif
+
+#ifdef __clang__
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#    define JSONCPP_DEPRECATED(message)  __attribute__ ((deprecated(message)))
+#  elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#    define JSONCPP_DEPRECATED(message)  __attribute__((__deprecated__))
+#  endif  // GNUC version
+#endif // __clang__ || __GNUC__
+
+#if !defined(JSONCPP_DEPRECATED)
+#define JSONCPP_DEPRECATED(message)
+#endif // if !defined(JSONCPP_DEPRECATED)
+
+#if __GNUC__ >= 6
+#  define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#endif
+
+#if !defined(JSON_IS_AMALGAMATION)
+
+# include "version.h"
+
+# if JSONCPP_USING_SECURE_MEMORY
+#  include "allocator.h" //typedef Allocator
+# endif
+
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+typedef int Int;
+typedef unsigned int UInt;
+#if defined(JSON_NO_INT64)
+typedef int LargestInt;
+typedef unsigned int LargestUInt;
+#undef JSON_HAS_INT64
+#else                 // if defined(JSON_NO_INT64)
+// For Microsoft Visual use specific types as long long is not supported
+#if defined(_MSC_VER) // Microsoft Visual Studio
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else                 // if defined(_MSC_VER) // Other platforms, use long long
+typedef int64_t Int64;
+typedef uint64_t UInt64;
+#endif // if defined(_MSC_VER)
+typedef Int64 LargestInt;
+typedef UInt64 LargestUInt;
+#define JSON_HAS_INT64
+#endif // if defined(JSON_NO_INT64)
+#if JSONCPP_USING_SECURE_MEMORY
+#define JSONCPP_STRING        std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTREAM       std::basic_ostream<char, std::char_traits<char>>
+#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_ISTREAM       std::istream
+#else
+#define JSONCPP_STRING        std::string
+#define JSONCPP_OSTRINGSTREAM std::ostringstream
+#define JSONCPP_OSTREAM       std::ostream
+#define JSONCPP_ISTRINGSTREAM std::istringstream
+#define JSONCPP_ISTREAM       std::istream
+#endif // if JSONCPP_USING_SECURE_MEMORY
+} // end namespace Json
+
+#endif // JSON_CONFIG_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_FORWARDS_H_INCLUDED
+#define JSON_FORWARDS_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+// writer.h
+class FastWriter;
+class StyledWriter;
+
+// reader.h
+class Reader;
+
+// features.h
+class Features;
+
+// value.h
+typedef unsigned int ArrayIndex;
+class StaticString;
+class Path;
+class PathArgument;
+class Value;
+class ValueIteratorBase;
+class ValueIterator;
+class ValueConstIterator;
+
+} // namespace Json
+
+#endif // JSON_FORWARDS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json.h
new file mode 100644
index 0000000..de79502
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/json/json.h
@@ -0,0 +1,2140 @@
+/// Json-cpp amalgated header (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json.h"
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#ifndef JSON_AMALGATED_H_INCLUDED
+# define JSON_AMALGATED_H_INCLUDED
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+#define JSON_IS_AMALGAMATION
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+// DO NOT EDIT. This file (and "version") is generated by CMake.
+// Run CMake configure step to update it.
+#ifndef JSON_VERSION_H_INCLUDED
+# define JSON_VERSION_H_INCLUDED
+
+# define JSONCPP_VERSION_STRING "1.7.7"
+# define JSONCPP_VERSION_MAJOR 1
+# define JSONCPP_VERSION_MINOR 7
+# define JSONCPP_VERSION_PATCH 7
+# define JSONCPP_VERSION_QUALIFIER
+# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8))
+
+#ifdef JSONCPP_USING_SECURE_MEMORY
+#undef JSONCPP_USING_SECURE_MEMORY
+#endif
+#define JSONCPP_USING_SECURE_MEMORY 0
+// If non-zero, the library zeroes any memory that it has allocated before
+// it frees its memory.
+
+#endif // JSON_VERSION_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_CONFIG_H_INCLUDED
+#define JSON_CONFIG_H_INCLUDED
+#include <stddef.h>
+#include <string> //typedef String
+#include <stdint.h> //typedef int64_t, uint64_t
+
+/// If defined, indicates that json library is embedded in CppTL library.
+//# define JSON_IN_CPPTL 1
+
+/// If defined, indicates that json may leverage CppTL library
+//#  define JSON_USE_CPPTL 1
+/// If defined, indicates that cpptl vector based map should be used instead of
+/// std::map
+/// as Value container.
+//#  define JSON_USE_CPPTL_SMALLMAP 1
+
+// If non-zero, the library uses exceptions to report bad input instead of C
+// assertion macros. The default is to use exceptions.
+#ifndef JSON_USE_EXCEPTION
+#define JSON_USE_EXCEPTION 1
+#endif
+
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+/// Remarks: it is automatically defined in the generated amalgated header.
+// #define JSON_IS_AMALGAMATION
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/config.h>
+#ifndef JSON_USE_CPPTL
+#define JSON_USE_CPPTL 1
+#endif
+#endif
+
+#ifdef JSON_IN_CPPTL
+#define JSON_API CPPTL_API
+#elif defined(JSON_DLL_BUILD)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllexport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#elif defined(JSON_DLL)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllimport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#endif // ifdef JSON_IN_CPPTL
+#if !defined(JSON_API)
+#define JSON_API
+#endif
+
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
+
+#if defined(_MSC_VER) // MSVC
+#  if _MSC_VER <= 1200 // MSVC 6
+    // Microsoft Visual Studio 6 only support conversion from __int64 to double
+    // (no conversion from unsigned __int64).
+#    define JSON_USE_INT64_DOUBLE_CONVERSION 1
+    // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
+    // characters in the debug information)
+    // All projects I've ever seen with VS6 were using this globally (not bothering
+    // with pragma push/pop).
+#    pragma warning(disable : 4786)
+#  endif // MSVC 6
+
+#  if _MSC_VER >= 1500 // MSVC 2008
+    /// Indicates that the following function is deprecated.
+#    define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#  endif
+
+#endif // defined(_MSC_VER)
+
+// In c++11 the override keyword allows you to explicity define that a function
+// is intended to override the base-class version.  This makes the code more
+// managable and fixes a set of common hard-to-find bugs.
+#if __cplusplus >= 201103L
+# define JSONCPP_OVERRIDE override
+#elif defined(_MSC_VER) && _MSC_VER > 1600
+# define JSONCPP_OVERRIDE override
+#else
+# define JSONCPP_OVERRIDE
+#endif
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+
+#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif // MSVC >= 2010
+
+#ifdef __clang__
+#if __has_feature(cxx_rvalue_references)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // has_feature
+
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // GXX_EXPERIMENTAL
+
+#endif // __clang__ || __GNUC__
+
+#endif // not defined JSON_HAS_RVALUE_REFERENCES
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+#define JSON_HAS_RVALUE_REFERENCES 0
+#endif
+
+#ifdef __clang__
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#    define JSONCPP_DEPRECATED(message)  __attribute__ ((deprecated(message)))
+#  elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#    define JSONCPP_DEPRECATED(message)  __attribute__((__deprecated__))
+#  endif  // GNUC version
+#endif // __clang__ || __GNUC__
+
+#if !defined(JSONCPP_DEPRECATED)
+#define JSONCPP_DEPRECATED(message)
+#endif // if !defined(JSONCPP_DEPRECATED)
+
+#if __GNUC__ >= 6
+#  define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#endif
+
+#if !defined(JSON_IS_AMALGAMATION)
+
+# include "version.h"
+
+# if JSONCPP_USING_SECURE_MEMORY
+#  include "allocator.h" //typedef Allocator
+# endif
+
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+typedef int Int;
+typedef unsigned int UInt;
+#if defined(JSON_NO_INT64)
+typedef int LargestInt;
+typedef unsigned int LargestUInt;
+#undef JSON_HAS_INT64
+#else                 // if defined(JSON_NO_INT64)
+// For Microsoft Visual use specific types as long long is not supported
+#if defined(_MSC_VER) // Microsoft Visual Studio
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else                 // if defined(_MSC_VER) // Other platforms, use long long
+typedef int64_t Int64;
+typedef uint64_t UInt64;
+#endif // if defined(_MSC_VER)
+typedef Int64 LargestInt;
+typedef UInt64 LargestUInt;
+#define JSON_HAS_INT64
+#endif // if defined(JSON_NO_INT64)
+#if JSONCPP_USING_SECURE_MEMORY
+#define JSONCPP_STRING        std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTREAM       std::basic_ostream<char, std::char_traits<char>>
+#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_ISTREAM       std::istream
+#else
+#define JSONCPP_STRING        std::string
+#define JSONCPP_OSTRINGSTREAM std::ostringstream
+#define JSONCPP_OSTREAM       std::ostream
+#define JSONCPP_ISTRINGSTREAM std::istringstream
+#define JSONCPP_ISTREAM       std::istream
+#endif // if JSONCPP_USING_SECURE_MEMORY
+} // end namespace Json
+
+#endif // JSON_CONFIG_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_FORWARDS_H_INCLUDED
+#define JSON_FORWARDS_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+// writer.h
+class FastWriter;
+class StyledWriter;
+
+// reader.h
+class Reader;
+
+// features.h
+class Features;
+
+// value.h
+typedef unsigned int ArrayIndex;
+class StaticString;
+class Path;
+class PathArgument;
+class Value;
+class ValueIteratorBase;
+class ValueIterator;
+class ValueConstIterator;
+
+} // namespace Json
+
+#endif // JSON_FORWARDS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/features.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
+#define CPPTL_JSON_FEATURES_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+/** \brief Configuration passed to reader and writer.
+ * This configuration object can be used to force the Reader or Writer
+ * to behave in a standard conforming way.
+ */
+class JSON_API Features {
+public:
+  /** \brief A configuration that allows all features and assumes all strings
+   * are UTF-8.
+   * - C & C++ comments are allowed
+   * - Root object can be any JSON value
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features all();
+
+  /** \brief A configuration that is strictly compatible with the JSON
+   * specification.
+   * - Comments are forbidden.
+   * - Root object must be either an array or an object value.
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features strictMode();
+
+  /** \brief Initialize the configuration like JsonConfig::allFeatures;
+   */
+  Features();
+
+  /// \c true if comments are allowed. Default: \c true.
+  bool allowComments_;
+
+  /// \c true if root must be either an array or an object value. Default: \c
+  /// false.
+  bool strictRoot_;
+
+  /// \c true if dropped null placeholders are allowed. Default: \c false.
+  bool allowDroppedNullPlaceholders_;
+
+  /// \c true if numeric object key are allowed. Default: \c false.
+  bool allowNumericKeys_;
+};
+
+} // namespace Json
+
+#endif // CPPTL_JSON_FEATURES_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/features.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/value.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_H_INCLUDED
+#define CPPTL_JSON_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <string>
+#include <vector>
+#include <exception>
+
+#ifndef JSON_USE_CPPTL_SMALLMAP
+#include <map>
+#else
+#include <cpptl/smallmap.h>
+#endif
+#ifdef JSON_USE_CPPTL
+#include <cpptl/forwards.h>
+#endif
+
+//Conditional NORETURN attribute on the throw functions would:
+// a) suppress false positives from static code analysis 
+// b) possibly improve optimization opportunities.
+#if !defined(JSONCPP_NORETURN)
+#  if defined(_MSC_VER)
+#    define JSONCPP_NORETURN __declspec(noreturn)
+#  elif defined(__GNUC__)
+#    define JSONCPP_NORETURN __attribute__ ((__noreturn__))
+#  else
+#    define JSONCPP_NORETURN
+#  endif
+#endif
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+/** \brief JSON (JavaScript Object Notation).
+ */
+namespace Json {
+
+/** Base class for all exceptions we throw.
+ *
+ * We use nothing but these internally. Of course, STL can throw others.
+ */
+class JSON_API Exception : public std::exception {
+public:
+  Exception(JSONCPP_STRING const& msg);
+  ~Exception() throw() JSONCPP_OVERRIDE;
+  char const* what() const throw() JSONCPP_OVERRIDE;
+protected:
+  JSONCPP_STRING msg_;
+};
+
+/** Exceptions which the user cannot easily avoid.
+ *
+ * E.g. out-of-memory (when we use malloc), stack-overflow, malicious input
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API RuntimeError : public Exception {
+public:
+  RuntimeError(JSONCPP_STRING const& msg);
+};
+
+/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
+ *
+ * These are precondition-violations (user bugs) and internal errors (our bugs).
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API LogicError : public Exception {
+public:
+  LogicError(JSONCPP_STRING const& msg);
+};
+
+/// used internally
+JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg);
+/// used internally
+JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg);
+
+/** \brief Type of the value held by a Value object.
+ */
+enum ValueType {
+  nullValue = 0, ///< 'null' value
+  intValue,      ///< signed integer value
+  uintValue,     ///< unsigned integer value
+  realValue,     ///< double value
+  stringValue,   ///< UTF-8 string value
+  booleanValue,  ///< bool value
+  arrayValue,    ///< array value (ordered list)
+  objectValue    ///< object value (collection of name/value pairs).
+};
+
+enum CommentPlacement {
+  commentBefore = 0,      ///< a comment placed on the line before a value
+  commentAfterOnSameLine, ///< a comment just after a value on the same line
+  commentAfter, ///< a comment on the line after a value (only make sense for
+  /// root value)
+  numberOfCommentPlacement
+};
+
+//# ifdef JSON_USE_CPPTL
+//   typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
+//   typedef CppTL::AnyEnumerator<const Value &> EnumValues;
+//# endif
+
+/** \brief Lightweight wrapper to tag static string.
+ *
+ * Value constructor and objectValue member assignement takes advantage of the
+ * StaticString and avoid the cost of string duplication when storing the
+ * string or the member name.
+ *
+ * Example of usage:
+ * \code
+ * Json::Value aValue( StaticString("some text") );
+ * Json::Value object;
+ * static const StaticString code("code");
+ * object[code] = 1234;
+ * \endcode
+ */
+class JSON_API StaticString {
+public:
+  explicit StaticString(const char* czstring) : c_str_(czstring) {}
+
+  operator const char*() const { return c_str_; }
+
+  const char* c_str() const { return c_str_; }
+
+private:
+  const char* c_str_;
+};
+
+/** \brief Represents a <a HREF="http://www.json.org">JSON</a> value.
+ *
+ * This class is a discriminated union wrapper that can represents a:
+ * - signed integer [range: Value::minInt - Value::maxInt]
+ * - unsigned integer (range: 0 - Value::maxUInt)
+ * - double
+ * - UTF-8 string
+ * - boolean
+ * - 'null'
+ * - an ordered list of Value
+ * - collection of name/value pairs (javascript object)
+ *
+ * The type of the held value is represented by a #ValueType and
+ * can be obtained using type().
+ *
+ * Values of an #objectValue or #arrayValue can be accessed using operator[]()
+ * methods.
+ * Non-const methods will automatically create the a #nullValue element
+ * if it does not exist.
+ * The sequence of an #arrayValue will be automatically resized and initialized
+ * with #nullValue. resize() can be used to enlarge or truncate an #arrayValue.
+ *
+ * The get() methods can be used to obtain default value in the case the
+ * required element does not exist.
+ *
+ * It is possible to iterate over the list of a #objectValue values using
+ * the getMemberNames() method.
+ *
+ * \note #Value string-length fit in size_t, but keys must be < 2^30.
+ * (The reason is an implementation detail.) A #CharReader will raise an
+ * exception if a bound is exceeded to avoid security holes in your app,
+ * but the Value API does *not* check bounds. That is the responsibility
+ * of the caller.
+ */
+class JSON_API Value {
+  friend class ValueIteratorBase;
+public:
+  typedef std::vector<JSONCPP_STRING> Members;
+  typedef ValueIterator iterator;
+  typedef ValueConstIterator const_iterator;
+  typedef Json::UInt UInt;
+  typedef Json::Int Int;
+#if defined(JSON_HAS_INT64)
+  typedef Json::UInt64 UInt64;
+  typedef Json::Int64 Int64;
+#endif // defined(JSON_HAS_INT64)
+  typedef Json::LargestInt LargestInt;
+  typedef Json::LargestUInt LargestUInt;
+  typedef Json::ArrayIndex ArrayIndex;
+
+  static const Value& null;  ///< We regret this reference to a global instance; prefer the simpler Value().
+  static const Value& nullRef;  ///< just a kludge for binary-compatibility; same as null
+  static Value const& nullSingleton(); ///< Prefer this to null or nullRef.
+
+  /// Minimum signed integer value that can be stored in a Json::Value.
+  static const LargestInt minLargestInt;
+  /// Maximum signed integer value that can be stored in a Json::Value.
+  static const LargestInt maxLargestInt;
+  /// Maximum unsigned integer value that can be stored in a Json::Value.
+  static const LargestUInt maxLargestUInt;
+
+  /// Minimum signed int value that can be stored in a Json::Value.
+  static const Int minInt;
+  /// Maximum signed int value that can be stored in a Json::Value.
+  static const Int maxInt;
+  /// Maximum unsigned int value that can be stored in a Json::Value.
+  static const UInt maxUInt;
+
+#if defined(JSON_HAS_INT64)
+  /// Minimum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 minInt64;
+  /// Maximum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 maxInt64;
+  /// Maximum unsigned 64 bits int value that can be stored in a Json::Value.
+  static const UInt64 maxUInt64;
+#endif // defined(JSON_HAS_INT64)
+
+private:
+#ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+  class CZString {
+  public:
+    enum DuplicationPolicy {
+      noDuplication = 0,
+      duplicate,
+      duplicateOnCopy
+    };
+    CZString(ArrayIndex index);
+    CZString(char const* str, unsigned length, DuplicationPolicy allocate);
+    CZString(CZString const& other);
+#if JSON_HAS_RVALUE_REFERENCES
+    CZString(CZString&& other);
+#endif
+    ~CZString();
+    CZString& operator=(CZString other);
+    bool operator<(CZString const& other) const;
+    bool operator==(CZString const& other) const;
+    ArrayIndex index() const;
+    //const char* c_str() const; ///< \deprecated
+    char const* data() const;
+    unsigned length() const;
+    bool isStaticString() const;
+
+  private:
+    void swap(CZString& other);
+
+    struct StringStorage {
+      unsigned policy_: 2;
+      unsigned length_: 30; // 1GB max
+    };
+
+    char const* cstr_;  // actually, a prefixed string, unless policy is noDup
+    union {
+      ArrayIndex index_;
+      StringStorage storage_;
+    };
+  };
+
+public:
+#ifndef JSON_USE_CPPTL_SMALLMAP
+  typedef std::map<CZString, Value> ObjectValues;
+#else
+  typedef CppTL::SmallMap<CZString, Value> ObjectValues;
+#endif // ifndef JSON_USE_CPPTL_SMALLMAP
+#endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+
+public:
+  /** \brief Create a default Value of the given type.
+
+    This is a very useful constructor.
+    To create an empty array, pass arrayValue.
+    To create an empty object, pass objectValue.
+    Another Value can then be set to this one by assignment.
+This is useful since clear() and resize() will not alter types.
+
+    Examples:
+\code
+Json::Value null_value; // null
+Json::Value arr_value(Json::arrayValue); // []
+Json::Value obj_value(Json::objectValue); // {}
+\endcode
+  */
+  Value(ValueType type = nullValue);
+  Value(Int value);
+  Value(UInt value);
+#if defined(JSON_HAS_INT64)
+  Value(Int64 value);
+  Value(UInt64 value);
+#endif // if defined(JSON_HAS_INT64)
+  Value(double value);
+  Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.)
+  Value(const char* begin, const char* end); ///< Copy all, incl zeroes.
+  /** \brief Constructs a value from a static string.
+
+   * Like other value string constructor but do not duplicate the string for
+   * internal storage. The given string must remain alive after the call to this
+   * constructor.
+   * \note This works only for null-terminated strings. (We cannot change the
+   *   size of this class, so we have nowhere to store the length,
+   *   which might be computed later for various operations.)
+   *
+   * Example of usage:
+   * \code
+   * static StaticString foo("some text");
+   * Json::Value aValue(foo);
+   * \endcode
+   */
+  Value(const StaticString& value);
+  Value(const JSONCPP_STRING& value); ///< Copy data() til size(). Embedded zeroes too.
+#ifdef JSON_USE_CPPTL
+  Value(const CppTL::ConstString& value);
+#endif
+  Value(bool value);
+  /// Deep copy.
+  Value(const Value& other);
+#if JSON_HAS_RVALUE_REFERENCES
+  /// Move constructor
+  Value(Value&& other);
+#endif
+  ~Value();
+
+  /// Deep copy, then swap(other).
+  /// \note Over-write existing comments. To preserve comments, use #swapPayload().
+  Value& operator=(Value other);
+  /// Swap everything.
+  void swap(Value& other);
+  /// Swap values but leave comments and source offsets in place.
+  void swapPayload(Value& other);
+
+  ValueType type() const;
+
+  /// Compare payload only, not comments etc.
+  bool operator<(const Value& other) const;
+  bool operator<=(const Value& other) const;
+  bool operator>=(const Value& other) const;
+  bool operator>(const Value& other) const;
+  bool operator==(const Value& other) const;
+  bool operator!=(const Value& other) const;
+  int compare(const Value& other) const;
+
+  const char* asCString() const; ///< Embedded zeroes could cause you trouble!
+#if JSONCPP_USING_SECURE_MEMORY
+  unsigned getCStringLength() const; //Allows you to understand the length of the CString
+#endif
+  JSONCPP_STRING asString() const; ///< Embedded zeroes are possible.
+  /** Get raw char* of string-value.
+   *  \return false if !string. (Seg-fault if str or end are NULL.)
+   */
+  bool getString(
+      char const** begin, char const** end) const;
+#ifdef JSON_USE_CPPTL
+  CppTL::ConstString asConstString() const;
+#endif
+  Int asInt() const;
+  UInt asUInt() const;
+#if defined(JSON_HAS_INT64)
+  Int64 asInt64() const;
+  UInt64 asUInt64() const;
+#endif // if defined(JSON_HAS_INT64)
+  LargestInt asLargestInt() const;
+  LargestUInt asLargestUInt() const;
+  float asFloat() const;
+  double asDouble() const;
+  bool asBool() const;
+
+  bool isNull() const;
+  bool isBool() const;
+  bool isInt() const;
+  bool isInt64() const;
+  bool isUInt() const;
+  bool isUInt64() const;
+  bool isIntegral() const;
+  bool isDouble() const;
+  bool isNumeric() const;
+  bool isString() const;
+  bool isArray() const;
+  bool isObject() const;
+
+  bool isConvertibleTo(ValueType other) const;
+
+  /// Number of values in array or object
+  ArrayIndex size() const;
+
+  /// \brief Return true if empty array, empty object, or null;
+  /// otherwise, false.
+  bool empty() const;
+
+  /// Return isNull()
+  bool operator!() const;
+
+  /// Remove all object members and array elements.
+  /// \pre type() is arrayValue, objectValue, or nullValue
+  /// \post type() is unchanged
+  void clear();
+
+  /// Resize the array to size elements.
+  /// New elements are initialized to null.
+  /// May only be called on nullValue or arrayValue.
+  /// \pre type() is arrayValue or nullValue
+  /// \post type() is arrayValue
+  void resize(ArrayIndex size);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](ArrayIndex index);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](int index);
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](ArrayIndex index) const;
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](int index) const;
+
+  /// If the array contains at least index+1 elements, returns the element
+  /// value,
+  /// otherwise returns defaultValue.
+  Value get(ArrayIndex index, const Value& defaultValue) const;
+  /// Return true if index < size().
+  bool isValidIndex(ArrayIndex index) const;
+  /// \brief Append value to array at the end.
+  ///
+  /// Equivalent to jsonvalue[jsonvalue.size()] = value;
+  Value& append(const Value& value);
+
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \note Because of our implementation, keys are limited to 2^30 -1 chars.
+  ///  Exceeding that will cause an exception.
+  Value& operator[](const char* key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const char* key) const;
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \param key may contain embedded nulls.
+  Value& operator[](const JSONCPP_STRING& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  /// \param key may contain embedded nulls.
+  const Value& operator[](const JSONCPP_STRING& key) const;
+  /** \brief Access an object value by name, create a null member if it does not
+   exist.
+
+   * If the object has no entry for that name, then the member name used to store
+   * the new entry is not duplicated.
+   * Example of use:
+   * \code
+   * Json::Value object;
+   * static const StaticString code("code");
+   * object[code] = 1234;
+   * \endcode
+   */
+  Value& operator[](const StaticString& key);
+#ifdef JSON_USE_CPPTL
+  /// Access an object value by name, create a null member if it does not exist.
+  Value& operator[](const CppTL::ConstString& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const CppTL::ConstString& key) const;
+#endif
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const char* key, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \note key may contain embedded nulls.
+  Value get(const char* begin, const char* end, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \param key may contain embedded nulls.
+  Value get(const JSONCPP_STRING& key, const Value& defaultValue) const;
+#ifdef JSON_USE_CPPTL
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const CppTL::ConstString& key, const Value& defaultValue) const;
+#endif
+  /// Most general and efficient version of isMember()const, get()const,
+  /// and operator[]const
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  Value const* find(char const* begin, char const* end) const;
+  /// Most general and efficient version of object-mutators.
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue.
+  Value const* demand(char const* begin, char const* end);
+  /// \brief Remove and return the named member.
+  ///
+  /// Do nothing if it did not exist.
+  /// \return the removed Value, or null.
+  /// \pre type() is objectValue or nullValue
+  /// \post type() is unchanged
+  /// \deprecated
+  Value removeMember(const char* key);
+  /// Same as removeMember(const char*)
+  /// \param key may contain embedded nulls.
+  /// \deprecated
+  Value removeMember(const JSONCPP_STRING& key);
+  /// Same as removeMember(const char* begin, const char* end, Value* removed),
+  /// but 'key' is null-terminated.
+  bool removeMember(const char* key, Value* removed);
+  /** \brief Remove the named map member.
+
+      Update 'removed' iff removed.
+      \param key may contain embedded nulls.
+      \return true iff removed (no exceptions)
+  */
+  bool removeMember(JSONCPP_STRING const& key, Value* removed);
+  /// Same as removeMember(JSONCPP_STRING const& key, Value* removed)
+  bool removeMember(const char* begin, const char* end, Value* removed);
+  /** \brief Remove the indexed array element.
+
+      O(n) expensive operations.
+      Update 'removed' iff removed.
+      \return true iff removed (no exceptions)
+  */
+  bool removeIndex(ArrayIndex i, Value* removed);
+
+  /// Return true if the object has a member named key.
+  /// \note 'key' must be null-terminated.
+  bool isMember(const char* key) const;
+  /// Return true if the object has a member named key.
+  /// \param key may contain embedded nulls.
+  bool isMember(const JSONCPP_STRING& key) const;
+  /// Same as isMember(JSONCPP_STRING const& key)const
+  bool isMember(const char* begin, const char* end) const;
+#ifdef JSON_USE_CPPTL
+  /// Return true if the object has a member named key.
+  bool isMember(const CppTL::ConstString& key) const;
+#endif
+
+  /// \brief Return a list of the member names.
+  ///
+  /// If null, return an empty list.
+  /// \pre type() is objectValue or nullValue
+  /// \post if type() was nullValue, it remains nullValue
+  Members getMemberNames() const;
+
+  //# ifdef JSON_USE_CPPTL
+  //      EnumMemberNames enumMemberNames() const;
+  //      EnumValues enumValues() const;
+  //# endif
+
+  /// \deprecated Always pass len.
+  JSONCPP_DEPRECATED("Use setComment(JSONCPP_STRING const&) instead.")
+  void setComment(const char* comment, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const char* comment, size_t len, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const JSONCPP_STRING& comment, CommentPlacement placement);
+  bool hasComment(CommentPlacement placement) const;
+  /// Include delimiters and embedded newlines.
+  JSONCPP_STRING getComment(CommentPlacement placement) const;
+
+  JSONCPP_STRING toStyledString() const;
+
+  const_iterator begin() const;
+  const_iterator end() const;
+
+  iterator begin();
+  iterator end();
+
+  // Accessors for the [start, limit) range of bytes within the JSON text from
+  // which this value was parsed, if any.
+  void setOffsetStart(ptrdiff_t start);
+  void setOffsetLimit(ptrdiff_t limit);
+  ptrdiff_t getOffsetStart() const;
+  ptrdiff_t getOffsetLimit() const;
+
+private:
+  void initBasic(ValueType type, bool allocated = false);
+
+  Value& resolveReference(const char* key);
+  Value& resolveReference(const char* key, const char* end);
+
+  struct CommentInfo {
+    CommentInfo();
+    ~CommentInfo();
+
+    void setComment(const char* text, size_t len);
+
+    char* comment_;
+  };
+
+  // struct MemberNamesTransform
+  //{
+  //   typedef const char *result_type;
+  //   const char *operator()( const CZString &name ) const
+  //   {
+  //      return name.c_str();
+  //   }
+  //};
+
+  union ValueHolder {
+    LargestInt int_;
+    LargestUInt uint_;
+    double real_;
+    bool bool_;
+    char* string_;  // actually ptr to unsigned, followed by str, unless !allocated_
+    ObjectValues* map_;
+  } value_;
+  ValueType type_ : 8;
+  unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless.
+                               // If not allocated_, string_ must be null-terminated.
+  CommentInfo* comments_;
+
+  // [start, limit) byte offsets in the source JSON text from which this Value
+  // was extracted.
+  ptrdiff_t start_;
+  ptrdiff_t limit_;
+};
+
+/** \brief Experimental and untested: represents an element of the "path" to
+ * access a node.
+ */
+class JSON_API PathArgument {
+public:
+  friend class Path;
+
+  PathArgument();
+  PathArgument(ArrayIndex index);
+  PathArgument(const char* key);
+  PathArgument(const JSONCPP_STRING& key);
+
+private:
+  enum Kind {
+    kindNone = 0,
+    kindIndex,
+    kindKey
+  };
+  JSONCPP_STRING key_;
+  ArrayIndex index_;
+  Kind kind_;
+};
+
+/** \brief Experimental and untested: represents a "path" to access a node.
+ *
+ * Syntax:
+ * - "." => root node
+ * - ".[n]" => elements at index 'n' of root node (an array value)
+ * - ".name" => member named 'name' of root node (an object value)
+ * - ".name1.name2.name3"
+ * - ".[0][1][2].name1[3]"
+ * - ".%" => member name is provided as parameter
+ * - ".[%]" => index is provied as parameter
+ */
+class JSON_API Path {
+public:
+  Path(const JSONCPP_STRING& path,
+       const PathArgument& a1 = PathArgument(),
+       const PathArgument& a2 = PathArgument(),
+       const PathArgument& a3 = PathArgument(),
+       const PathArgument& a4 = PathArgument(),
+       const PathArgument& a5 = PathArgument());
+
+  const Value& resolve(const Value& root) const;
+  Value resolve(const Value& root, const Value& defaultValue) const;
+  /// Creates the "path" to access the specified node and returns a reference on
+  /// the node.
+  Value& make(Value& root) const;
+
+private:
+  typedef std::vector<const PathArgument*> InArgs;
+  typedef std::vector<PathArgument> Args;
+
+  void makePath(const JSONCPP_STRING& path, const InArgs& in);
+  void addPathInArg(const JSONCPP_STRING& path,
+                    const InArgs& in,
+                    InArgs::const_iterator& itInArg,
+                    PathArgument::Kind kind);
+  void invalidPath(const JSONCPP_STRING& path, int location);
+
+  Args args_;
+};
+
+/** \brief base class for Value iterators.
+ *
+ */
+class JSON_API ValueIteratorBase {
+public:
+  typedef std::bidirectional_iterator_tag iterator_category;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef ValueIteratorBase SelfType;
+
+  bool operator==(const SelfType& other) const { return isEqual(other); }
+
+  bool operator!=(const SelfType& other) const { return !isEqual(other); }
+
+  difference_type operator-(const SelfType& other) const {
+    return other.computeDistance(*this);
+  }
+
+  /// Return either the index or the member name of the referenced value as a
+  /// Value.
+  Value key() const;
+
+  /// Return the index of the referenced Value, or -1 if it is not an arrayValue.
+  UInt index() const;
+
+  /// Return the member name of the referenced Value, or "" if it is not an
+  /// objectValue.
+  /// \note Avoid `c_str()` on result, as embedded zeroes are possible.
+  JSONCPP_STRING name() const;
+
+  /// Return the member name of the referenced Value. "" if it is not an
+  /// objectValue.
+  /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls.
+  JSONCPP_DEPRECATED("Use `key = name();` instead.")
+  char const* memberName() const;
+  /// Return the member name of the referenced Value, or NULL if it is not an
+  /// objectValue.
+  /// \note Better version than memberName(). Allows embedded nulls.
+  char const* memberName(char const** end) const;
+
+protected:
+  Value& deref() const;
+
+  void increment();
+
+  void decrement();
+
+  difference_type computeDistance(const SelfType& other) const;
+
+  bool isEqual(const SelfType& other) const;
+
+  void copy(const SelfType& other);
+
+private:
+  Value::ObjectValues::iterator current_;
+  // Indicates that iterator is for a null value.
+  bool isNull_;
+
+public:
+  // For some reason, BORLAND needs these at the end, rather
+  // than earlier. No idea why.
+  ValueIteratorBase();
+  explicit ValueIteratorBase(const Value::ObjectValues::iterator& current);
+};
+
+/** \brief const iterator for object and array value.
+ *
+ */
+class JSON_API ValueConstIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef const Value value_type;
+  //typedef unsigned int size_t;
+  //typedef int difference_type;
+  typedef const Value& reference;
+  typedef const Value* pointer;
+  typedef ValueConstIterator SelfType;
+
+  ValueConstIterator();
+  ValueConstIterator(ValueIterator const& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueConstIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const ValueIteratorBase& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+/** \brief Iterator for object and array value.
+ */
+class JSON_API ValueIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef Value value_type;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef Value& reference;
+  typedef Value* pointer;
+  typedef ValueIterator SelfType;
+
+  ValueIterator();
+  explicit ValueIterator(const ValueConstIterator& other);
+  ValueIterator(const ValueIterator& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const SelfType& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+} // namespace Json
+
+
+namespace std {
+/// Specialize std::swap() for Json::Value.
+template<>
+inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
+}
+
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // CPPTL_JSON_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/value.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/reader.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_READER_H_INCLUDED
+#define CPPTL_JSON_READER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "features.h"
+#include "value.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <deque>
+#include <iosfwd>
+#include <stack>
+#include <string>
+#include <istream>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+/** \brief Unserialize a <a HREF="http://www.json.org">JSON</a> document into a
+ *Value.
+ *
+ * \deprecated Use CharReader and CharReaderBuilder.
+ */
+class JSON_API Reader {
+public:
+  typedef char Char;
+  typedef const Char* Location;
+
+  /** \brief An error tagged with where in the JSON text it was encountered.
+   *
+   * The offsets give the [start, limit) range of bytes within the text. Note
+   * that this is bytes, not codepoints.
+   *
+   */
+  struct StructuredError {
+    ptrdiff_t offset_start;
+    ptrdiff_t offset_limit;
+    JSONCPP_STRING message;
+  };
+
+  /** \brief Constructs a Reader allowing all features
+   * for parsing.
+   */
+  Reader();
+
+  /** \brief Constructs a Reader allowing the specified feature set
+   * for parsing.
+   */
+  Reader(const Features& features);
+
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   * document.
+   * \param document UTF-8 encoded string containing the document to read.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param collectComments \c true to collect comment and allow writing them
+   * back during
+   *                        serialization, \c false to discard comments.
+   *                        This parameter is ignored if
+   * Features::allowComments_
+   *                        is \c false.
+   * \return \c true if the document was successfully parsed, \c false if an
+   * error occurred.
+   */
+  bool
+  parse(const std::string& document, Value& root, bool collectComments = true);
+
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   document.
+   * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
+   document to read.
+   * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+   document to read.
+   *               Must be >= beginDoc.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param collectComments \c true to collect comment and allow writing them
+   back during
+   *                        serialization, \c false to discard comments.
+   *                        This parameter is ignored if
+   Features::allowComments_
+   *                        is \c false.
+   * \return \c true if the document was successfully parsed, \c false if an
+   error occurred.
+   */
+  bool parse(const char* beginDoc,
+             const char* endDoc,
+             Value& root,
+             bool collectComments = true);
+
+  /// \brief Parse from input stream.
+  /// \see Json::operator>>(std::istream&, Json::Value&).
+  bool parse(JSONCPP_ISTREAM& is, Value& root, bool collectComments = true);
+
+  /** \brief Returns a user friendly string that list errors in the parsed
+   * document.
+   * \return Formatted error message with the list of errors with their location
+   * in
+   *         the parsed document. An empty string is returned if no error
+   * occurred
+   *         during parsing.
+   * \deprecated Use getFormattedErrorMessages() instead (typo fix).
+   */
+  JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.")
+  JSONCPP_STRING getFormatedErrorMessages() const;
+
+  /** \brief Returns a user friendly string that list errors in the parsed
+   * document.
+   * \return Formatted error message with the list of errors with their location
+   * in
+   *         the parsed document. An empty string is returned if no error
+   * occurred
+   *         during parsing.
+   */
+  JSONCPP_STRING getFormattedErrorMessages() const;
+
+  /** \brief Returns a vector of structured erros encounted while parsing.
+   * \return A (possibly empty) vector of StructuredError objects. Currently
+   *         only one error can be returned, but the caller should tolerate
+   * multiple
+   *         errors.  This can occur if the parser recovers from a non-fatal
+   *         parse error and then encounters additional errors.
+   */
+  std::vector<StructuredError> getStructuredErrors() const;
+
+  /** \brief Add a semantic error message.
+   * \param value JSON Value location associated with the error
+   * \param message The error message.
+   * \return \c true if the error was successfully added, \c false if the
+   * Value offset exceeds the document size.
+   */
+  bool pushError(const Value& value, const JSONCPP_STRING& message);
+
+  /** \brief Add a semantic error message with extra context.
+   * \param value JSON Value location associated with the error
+   * \param message The error message.
+   * \param extra Additional JSON Value location to contextualize the error
+   * \return \c true if the error was successfully added, \c false if either
+   * Value offset exceeds the document size.
+   */
+  bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
+
+  /** \brief Return whether there are any errors.
+   * \return \c true if there are no errors to report \c false if
+   * errors have occurred.
+   */
+  bool good() const;
+
+private:
+  enum TokenType {
+    tokenEndOfStream = 0,
+    tokenObjectBegin,
+    tokenObjectEnd,
+    tokenArrayBegin,
+    tokenArrayEnd,
+    tokenString,
+    tokenNumber,
+    tokenTrue,
+    tokenFalse,
+    tokenNull,
+    tokenArraySeparator,
+    tokenMemberSeparator,
+    tokenComment,
+    tokenError
+  };
+
+  class Token {
+  public:
+    TokenType type_;
+    Location start_;
+    Location end_;
+  };
+
+  class ErrorInfo {
+  public:
+    Token token_;
+    JSONCPP_STRING message_;
+    Location extra_;
+  };
+
+  typedef std::deque<ErrorInfo> Errors;
+
+  bool readToken(Token& token);
+  void skipSpaces();
+  bool match(Location pattern, int patternLength);
+  bool readComment();
+  bool readCStyleComment();
+  bool readCppStyleComment();
+  bool readString();
+  void readNumber();
+  bool readValue();
+  bool readObject(Token& token);
+  bool readArray(Token& token);
+  bool decodeNumber(Token& token);
+  bool decodeNumber(Token& token, Value& decoded);
+  bool decodeString(Token& token);
+  bool decodeString(Token& token, JSONCPP_STRING& decoded);
+  bool decodeDouble(Token& token);
+  bool decodeDouble(Token& token, Value& decoded);
+  bool decodeUnicodeCodePoint(Token& token,
+                              Location& current,
+                              Location end,
+                              unsigned int& unicode);
+  bool decodeUnicodeEscapeSequence(Token& token,
+                                   Location& current,
+                                   Location end,
+                                   unsigned int& unicode);
+  bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+  bool recoverFromError(TokenType skipUntilToken);
+  bool addErrorAndRecover(const JSONCPP_STRING& message,
+                          Token& token,
+                          TokenType skipUntilToken);
+  void skipUntilSpace();
+  Value& currentValue();
+  Char getNextChar();
+  void
+  getLocationLineAndColumn(Location location, int& line, int& column) const;
+  JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+  void addComment(Location begin, Location end, CommentPlacement placement);
+  void skipCommentTokens(Token& token);
+
+  typedef std::stack<Value*> Nodes;
+  Nodes nodes_;
+  Errors errors_;
+  JSONCPP_STRING document_;
+  Location begin_;
+  Location end_;
+  Location current_;
+  Location lastValueEnd_;
+  Value* lastValue_;
+  JSONCPP_STRING commentsBefore_;
+  Features features_;
+  bool collectComments_;
+};  // Reader
+
+/** Interface for reading JSON from a char array.
+ */
+class JSON_API CharReader {
+public:
+  virtual ~CharReader() {}
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   document.
+   * The document must be a UTF-8 encoded string containing the document to read.
+   *
+   * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
+   document to read.
+   * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+   document to read.
+   *        Must be >= beginDoc.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param errs [out] Formatted error messages (if not NULL)
+   *        a user friendly string that lists errors in the parsed
+   * document.
+   * \return \c true if the document was successfully parsed, \c false if an
+   error occurred.
+   */
+  virtual bool parse(
+      char const* beginDoc, char const* endDoc,
+      Value* root, JSONCPP_STRING* errs) = 0;
+
+  class JSON_API Factory {
+  public:
+    virtual ~Factory() {}
+    /** \brief Allocate a CharReader via operator new().
+     * \throw std::exception if something goes wrong (e.g. invalid settings)
+     */
+    virtual CharReader* newCharReader() const = 0;
+  };  // Factory
+};  // CharReader
+
+/** \brief Build a CharReader implementation.
+
+Usage:
+\code
+  using namespace Json;
+  CharReaderBuilder builder;
+  builder["collectComments"] = false;
+  Value value;
+  JSONCPP_STRING errs;
+  bool ok = parseFromStream(builder, std::cin, &value, &errs);
+\endcode
+*/
+class JSON_API CharReaderBuilder : public CharReader::Factory {
+public:
+  // Note: We use a Json::Value so that we can add data-members to this class
+  // without a major version bump.
+  /** Configuration of this builder.
+    These are case-sensitive.
+    Available settings (case-sensitive):
+    - `"collectComments": false or true`
+      - true to collect comment and allow writing them
+        back during serialization, false to discard comments.
+        This parameter is ignored if allowComments is false.
+    - `"allowComments": false or true`
+      - true if comments are allowed.
+    - `"strictRoot": false or true`
+      - true if root must be either an array or an object value
+    - `"allowDroppedNullPlaceholders": false or true`
+      - true if dropped null placeholders are allowed. (See StreamWriterBuilder.)
+    - `"allowNumericKeys": false or true`
+      - true if numeric object keys are allowed.
+    - `"allowSingleQuotes": false or true`
+      - true if '' are allowed for strings (both keys and values)
+    - `"stackLimit": integer`
+      - Exceeding stackLimit (recursive depth of `readValue()`) will
+        cause an exception.
+      - This is a security issue (seg-faults caused by deeply nested JSON),
+        so the default is low.
+    - `"failIfExtra": false or true`
+      - If true, `parse()` returns false when extra non-whitespace trails
+        the JSON value in the input string.
+    - `"rejectDupKeys": false or true`
+      - If true, `parse()` returns false when a key is duplicated within an object.
+    - `"allowSpecialFloats": false or true`
+      - If true, special float values (NaNs and infinities) are allowed 
+        and their values are lossfree restorable.
+
+    You can examine 'settings_` yourself
+    to see the defaults. You can also write and read them just like any
+    JSON Value.
+    \sa setDefaults()
+    */
+  Json::Value settings_;
+
+  CharReaderBuilder();
+  ~CharReaderBuilder() JSONCPP_OVERRIDE;
+
+  CharReader* newCharReader() const JSONCPP_OVERRIDE;
+
+  /** \return true if 'settings' are legal and consistent;
+   *   otherwise, indicate bad settings via 'invalid'.
+   */
+  bool validate(Json::Value* invalid) const;
+
+  /** A simple way to update a specific setting.
+   */
+  Value& operator[](JSONCPP_STRING key);
+
+  /** Called by ctor, but you can use this to reset settings_.
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_reader.cpp CharReaderBuilderDefaults
+   */
+  static void setDefaults(Json::Value* settings);
+  /** Same as old Features::strictMode().
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode
+   */
+  static void strictMode(Json::Value* settings);
+};
+
+/** Consume entire stream and use its begin/end.
+  * Someday we might have a real StreamReader, but for now this
+  * is convenient.
+  */
+bool JSON_API parseFromStream(
+    CharReader::Factory const&,
+    JSONCPP_ISTREAM&,
+    Value* root, std::string* errs);
+
+/** \brief Read from 'sin' into 'root'.
+
+ Always keep comments from the input JSON.
+
+ This can be used to read a file into a particular sub-object.
+ For example:
+ \code
+ Json::Value root;
+ cin >> root["dir"]["file"];
+ cout << root;
+ \endcode
+ Result:
+ \verbatim
+ {
+ "dir": {
+     "file": {
+     // The input stream JSON would be nested here.
+     }
+ }
+ }
+ \endverbatim
+ \throw std::exception on parse error.
+ \see Json::operator<<()
+*/
+JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&);
+
+} // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // CPPTL_JSON_READER_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/reader.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/writer.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_WRITER_H_INCLUDED
+#define JSON_WRITER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "value.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <vector>
+#include <string>
+#include <ostream>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+class Value;
+
+/**
+
+Usage:
+\code
+  using namespace Json;
+  void writeToStdout(StreamWriter::Factory const& factory, Value const& value) {
+    std::unique_ptr<StreamWriter> const writer(
+      factory.newStreamWriter());
+    writer->write(value, &std::cout);
+    std::cout << std::endl;  // add lf and flush
+  }
+\endcode
+*/
+class JSON_API StreamWriter {
+protected:
+  JSONCPP_OSTREAM* sout_;  // not owned; will not delete
+public:
+  StreamWriter();
+  virtual ~StreamWriter();
+  /** Write Value into document as configured in sub-class.
+      Do not take ownership of sout, but maintain a reference during function.
+      \pre sout != NULL
+      \return zero on success (For now, we always return zero, so check the stream instead.)
+      \throw std::exception possibly, depending on configuration
+   */
+  virtual int write(Value const& root, JSONCPP_OSTREAM* sout) = 0;
+
+  /** \brief A simple abstract factory.
+   */
+  class JSON_API Factory {
+  public:
+    virtual ~Factory();
+    /** \brief Allocate a CharReader via operator new().
+     * \throw std::exception if something goes wrong (e.g. invalid settings)
+     */
+    virtual StreamWriter* newStreamWriter() const = 0;
+  };  // Factory
+};  // StreamWriter
+
+/** \brief Write into stringstream, then return string, for convenience.
+ * A StreamWriter will be created from the factory, used, and then deleted.
+ */
+JSONCPP_STRING JSON_API writeString(StreamWriter::Factory const& factory, Value const& root);
+
+
+/** \brief Build a StreamWriter implementation.
+
+Usage:
+\code
+  using namespace Json;
+  Value value = ...;
+  StreamWriterBuilder builder;
+  builder["commentStyle"] = "None";
+  builder["indentation"] = "   ";  // or whatever you like
+  std::unique_ptr<Json::StreamWriter> writer(
+      builder.newStreamWriter());
+  writer->write(value, &std::cout);
+  std::cout << std::endl;  // add lf and flush
+\endcode
+*/
+class JSON_API StreamWriterBuilder : public StreamWriter::Factory {
+public:
+  // Note: We use a Json::Value so that we can add data-members to this class
+  // without a major version bump.
+  /** Configuration of this builder.
+    Available settings (case-sensitive):
+    - "commentStyle": "None" or "All"
+    - "indentation":  "<anything>"
+    - "enableYAMLCompatibility": false or true
+      - slightly change the whitespace around colons
+    - "dropNullPlaceholders": false or true
+      - Drop the "null" string from the writer's output for nullValues.
+        Strictly speaking, this is not valid JSON. But when the output is being
+        fed to a browser's Javascript, it makes for smaller output and the
+        browser can handle the output just fine.
+    - "useSpecialFloats": false or true
+      - If true, outputs non-finite floating point values in the following way:
+        NaN values as "NaN", positive infinity as "Infinity", and negative infinity
+        as "-Infinity".
+
+    You can examine 'settings_` yourself
+    to see the defaults. You can also write and read them just like any
+    JSON Value.
+    \sa setDefaults()
+    */
+  Json::Value settings_;
+
+  StreamWriterBuilder();
+  ~StreamWriterBuilder() JSONCPP_OVERRIDE;
+
+  /**
+   * \throw std::exception if something goes wrong (e.g. invalid settings)
+   */
+  StreamWriter* newStreamWriter() const JSONCPP_OVERRIDE;
+
+  /** \return true if 'settings' are legal and consistent;
+   *   otherwise, indicate bad settings via 'invalid'.
+   */
+  bool validate(Json::Value* invalid) const;
+  /** A simple way to update a specific setting.
+   */
+  Value& operator[](JSONCPP_STRING key);
+
+  /** Called by ctor, but you can use this to reset settings_.
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_writer.cpp StreamWriterBuilderDefaults
+   */
+  static void setDefaults(Json::Value* settings);
+};
+
+/** \brief Abstract class for writers.
+ * \deprecated Use StreamWriter. (And really, this is an implementation detail.)
+ */
+class JSON_API Writer {
+public:
+  virtual ~Writer();
+
+  virtual JSONCPP_STRING write(const Value& root) = 0;
+};
+
+/** \brief Outputs a Value in <a HREF="http://www.json.org">JSON</a> format
+ *without formatting (not human friendly).
+ *
+ * The JSON document is written in a single line. It is not intended for 'human'
+ *consumption,
+ * but may be usefull to support feature such as RPC where bandwith is limited.
+ * \sa Reader, Value
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API FastWriter : public Writer {
+
+public:
+  FastWriter();
+  ~FastWriter() JSONCPP_OVERRIDE {}
+
+  void enableYAMLCompatibility();
+
+  /** \brief Drop the "null" string from the writer's output for nullValues.
+   * Strictly speaking, this is not valid JSON. But when the output is being
+   * fed to a browser's Javascript, it makes for smaller output and the
+   * browser can handle the output just fine.
+   */
+  void dropNullPlaceholders();
+
+  void omitEndingLineFeed();
+
+public: // overridden from Writer
+  JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+
+private:
+  void writeValue(const Value& value);
+
+  JSONCPP_STRING document_;
+  bool yamlCompatiblityEnabled_;
+  bool dropNullPlaceholders_;
+  bool omitEndingLineFeed_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ *human friendly way.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ *line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ *types,
+ *       and all the values fit on one lines, then print the array on a single
+ *line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ *#CommentPlacement.
+ *
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledWriter : public Writer {
+public:
+  StyledWriter();
+  ~StyledWriter() JSONCPP_OVERRIDE {}
+
+public: // overridden from Writer
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param root Value to serialize.
+   * \return String containing the JSON document that represents the root value.
+   */
+  JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const JSONCPP_STRING& value);
+  void writeIndent();
+  void writeWithIndent(const JSONCPP_STRING& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_STRING document_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  unsigned int indentSize_;
+  bool addChildValues_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ human friendly way,
+     to a stream rather than to a string.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ types,
+ *       and all the values fit on one lines, then print the array on a single
+ line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ #CommentPlacement.
+ *
+ * \param indentation Each level will be indented by this amount extra.
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledStreamWriter {
+public:
+  StyledStreamWriter(JSONCPP_STRING indentation = "\t");
+  ~StyledStreamWriter() {}
+
+public:
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param out Stream to write to. (Can be ostringstream, e.g.)
+   * \param root Value to serialize.
+   * \note There is no point in deriving from Writer, since write() should not
+   * return a value.
+   */
+  void write(JSONCPP_OSTREAM& out, const Value& root);
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const JSONCPP_STRING& value);
+  void writeIndent();
+  void writeWithIndent(const JSONCPP_STRING& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_OSTREAM* document_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  JSONCPP_STRING indentation_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+};
+
+#if defined(JSON_HAS_INT64)
+JSONCPP_STRING JSON_API valueToString(Int value);
+JSONCPP_STRING JSON_API valueToString(UInt value);
+#endif // if defined(JSON_HAS_INT64)
+JSONCPP_STRING JSON_API valueToString(LargestInt value);
+JSONCPP_STRING JSON_API valueToString(LargestUInt value);
+JSONCPP_STRING JSON_API valueToString(double value);
+JSONCPP_STRING JSON_API valueToString(bool value);
+JSONCPP_STRING JSON_API valueToQuotedString(const char* value);
+
+/// \brief Output using the StyledStreamWriter.
+/// \see Json::operator>>()
+JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root);
+
+} // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // JSON_WRITER_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/writer.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/assertions.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
+#define CPPTL_JSON_ASSERTIONS_H_INCLUDED
+
+#include <stdlib.h>
+#include <sstream>
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+/** It should not be possible for a maliciously designed file to
+ *  cause an abort() or seg-fault, so these macros are used only
+ *  for pre-condition violations and internal logic errors.
+ */
+#if JSON_USE_EXCEPTION
+
+// @todo <= add detail about condition in exception
+# define JSON_ASSERT(condition)                                                \
+  {if (!(condition)) {Json::throwLogicError( "assert json failed" );}}
+
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    JSONCPP_OSTRINGSTREAM oss; oss << message;                                    \
+    Json::throwLogicError(oss.str());                                          \
+    abort();                                                                   \
+  }
+
+#else // JSON_USE_EXCEPTION
+
+# define JSON_ASSERT(condition) assert(condition)
+
+// The call to assert() will show the failure message in debug builds. In
+// release builds we abort, for a core-dump or debugger.
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    JSONCPP_OSTRINGSTREAM oss; oss << message;                                    \
+    assert(false && oss.str().c_str());                                        \
+    abort();                                                                   \
+  }
+
+
+#endif
+
+#define JSON_ASSERT_MESSAGE(condition, message)                                \
+  if (!(condition)) {                                                          \
+    JSON_FAIL_MESSAGE(message);                                                \
+  }
+
+#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/assertions.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#endif //ifndef JSON_AMALGATED_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/jsoncpp.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/jsoncpp.cpp
new file mode 100644
index 0000000..6ec7dde
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/jsoncpp.cpp
@@ -0,0 +1,5290 @@
+/// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json.h"
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+#include "json/json.h"
+
+#ifndef JSON_IS_AMALGAMATION
+#error "Compile with -I PATH_TO_JSON_DIRECTORY"
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_tool.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+#define LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+
+#ifndef NO_LOCALE_SUPPORT
+#include <clocale>
+#endif
+
+/* This header provides common string manipulation support, such as UTF-8,
+ * portable conversion from/to string...
+ *
+ * It is an internal header that must not be exposed.
+ */
+
+namespace Json {
+static char getDecimalPoint() {
+#ifdef NO_LOCALE_SUPPORT
+  return '\0';
+#else
+  struct lconv* lc = localeconv();
+  return lc ? *(lc->decimal_point) : '\0';
+#endif
+}
+
+/// Converts a unicode code-point to UTF-8.
+static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
+  JSONCPP_STRING result;
+
+  // based on description from http://en.wikipedia.org/wiki/UTF-8
+
+  if (cp <= 0x7f) {
+    result.resize(1);
+    result[0] = static_cast<char>(cp);
+  } else if (cp <= 0x7FF) {
+    result.resize(2);
+    result[1] = static_cast<char>(0x80 | (0x3f & cp));
+    result[0] = static_cast<char>(0xC0 | (0x1f & (cp >> 6)));
+  } else if (cp <= 0xFFFF) {
+    result.resize(3);
+    result[2] = static_cast<char>(0x80 | (0x3f & cp));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[0] = static_cast<char>(0xE0 | (0xf & (cp >> 12)));
+  } else if (cp <= 0x10FFFF) {
+    result.resize(4);
+    result[3] = static_cast<char>(0x80 | (0x3f & cp));
+    result[2] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 12)));
+    result[0] = static_cast<char>(0xF0 | (0x7 & (cp >> 18)));
+  }
+
+  return result;
+}
+
+/// Returns true if ch is a control character (in range [1,31]).
+static inline bool isControlCharacter(char ch) { return ch > 0 && ch <= 0x1F; }
+
+enum {
+  /// Constant that specify the size of the buffer that must be passed to
+  /// uintToString.
+  uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1
+};
+
+// Defines a char buffer for use with uintToString().
+typedef char UIntToStringBuffer[uintToStringBufferSize];
+
+/** Converts an unsigned integer to string.
+ * @param value Unsigned interger to convert to string
+ * @param current Input/Output string buffer.
+ *        Must have at least uintToStringBufferSize chars free.
+ */
+static inline void uintToString(LargestUInt value, char*& current) {
+  *--current = 0;
+  do {
+    *--current = static_cast<char>(value % 10U + static_cast<unsigned>('0'));
+    value /= 10;
+  } while (value != 0);
+}
+
+/** Change ',' to '.' everywhere in buffer.
+ *
+ * We had a sophisticated way, but it did not work in WinCE.
+ * @see https://github.com/open-source-parsers/jsoncpp/pull/9
+ */
+static inline void fixNumericLocale(char* begin, char* end) {
+  while (begin < end) {
+    if (*begin == ',') {
+      *begin = '.';
+    }
+    ++begin;
+  }
+}
+
+static inline void fixNumericLocaleInput(char* begin, char* end) {
+  char decimalPoint = getDecimalPoint();
+  if (decimalPoint != '\0' && decimalPoint != '.') {
+    while (begin < end) {
+      if (*begin == '.') {
+        *begin = decimalPoint;
+      }
+      ++begin;
+    }
+  }
+}
+
+} // namespace Json {
+
+#endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_tool.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_reader.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/assertions.h>
+#include <json/reader.h>
+#include <json/value.h>
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <utility>
+#include <cstdio>
+#include <cassert>
+#include <cstring>
+#include <istream>
+#include <sstream>
+#include <memory>
+#include <set>
+#include <limits>
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above 
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#if !defined(__MINGW32__) && !defined(__CYGWIN__)
+#define snprintf std::snprintf
+#endif
+#endif
+
+#if defined(__QNXNTO__)
+#define sscanf std::sscanf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+static int const stackLimit_g = 1000;
+static int       stackDepth_g = 0;  // see readValue()
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<CharReader> CharReaderPtr;
+#else
+typedef std::auto_ptr<CharReader>   CharReaderPtr;
+#endif
+
+// Implementation of class Features
+// ////////////////////////////////
+
+Features::Features()
+    : allowComments_(true), strictRoot_(false),
+      allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {}
+
+Features Features::all() { return Features(); }
+
+Features Features::strictMode() {
+  Features features;
+  features.allowComments_ = false;
+  features.strictRoot_ = true;
+  features.allowDroppedNullPlaceholders_ = false;
+  features.allowNumericKeys_ = false;
+  return features;
+}
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+static bool containsNewLine(Reader::Location begin, Reader::Location end) {
+  for (; begin < end; ++begin)
+    if (*begin == '\n' || *begin == '\r')
+      return true;
+  return false;
+}
+
+// Class Reader
+// //////////////////////////////////////////////////////////////////
+
+Reader::Reader()
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(Features::all()),
+      collectComments_() {}
+
+Reader::Reader(const Features& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(features), collectComments_() {
+}
+
+bool
+Reader::parse(const std::string& document, Value& root, bool collectComments) {
+  JSONCPP_STRING documentCopy(document.data(), document.data() + document.capacity());
+  std::swap(documentCopy, document_);
+  const char* begin = document_.c_str();
+  const char* end = begin + document_.length();
+  return parse(begin, end, root, collectComments);
+}
+
+bool Reader::parse(std::istream& sin, Value& root, bool collectComments) {
+  // std::istream_iterator<char> begin(sin);
+  // std::istream_iterator<char> end;
+  // Those would allow streamed input from a file, if parse() were a
+  // template function.
+
+  // Since JSONCPP_STRING is reference-counted, this at least does not
+  // create an extra copy.
+  JSONCPP_STRING doc;
+  std::getline(sin, doc, (char)EOF);
+  return parse(doc.data(), doc.data() + doc.size(), root, collectComments);
+}
+
+bool Reader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_g = 0;  // Yes, this is bad coding, but options are limited.
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool Reader::readValue() {
+  // This is a non-reentrant way to support a stackLimit. Terrible!
+  // But this deprecated class has a security problem: Bad input can
+  // cause a seg-fault. This seems like a fair, binary-compatible way
+  // to prevent the problem.
+  if (stackDepth_g >= stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_g;
+
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // Else, fall through...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_g;
+  return successful;
+}
+
+void Reader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool Reader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+  case '-':
+    token.type_ = tokenNumber;
+    readNumber();
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void Reader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool Reader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool Reader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+static JSONCPP_STRING normalizeEOL(Reader::Location begin, Reader::Location end) {
+  JSONCPP_STRING normalized;
+  normalized.reserve(static_cast<size_t>(end - begin));
+  Reader::Location current = begin;
+  while (current != end) {
+    char c = *current++;
+    if (c == '\r') {
+      if (current != end && *current == '\n')
+         // convert dos EOL
+         ++current;
+      // convert Mac EOL
+      normalized += '\n';
+    } else {
+      normalized += c;
+    }
+  }
+  return normalized;
+}
+
+void
+Reader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool Reader::readCStyleComment() {
+  while ((current_ + 1) < end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool Reader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+void Reader::readNumber() {
+  const char *p = current_;
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : '\0';
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+}
+
+bool Reader::readString() {
+  Char c = '\0';
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+bool Reader::readObject(Token& tokenStart) {
+  Token tokenName;
+  JSONCPP_STRING name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = JSONCPP_STRING(numberName.asCString());
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool Reader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (current_ != end_ && *current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative && value == maxIntegerValue)
+    decoded = Value::minLargestInt;
+  else if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  JSONCPP_STRING buffer(token.start_, token.end_);
+  JSONCPP_ISTRINGSTREAM is(buffer);
+  if (!(is >> value))
+    return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool Reader::decodeString(Token& token) {
+  JSONCPP_STRING decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+  decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& ret_unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  int unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  ret_unicode = static_cast<unsigned int>(unicode);
+  return true;
+}
+
+bool
+Reader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool Reader::recoverFromError(TokenType skipUntilToken) {
+  size_t const errorCount = errors_.size();
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool Reader::addErrorAndRecover(const JSONCPP_STRING& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& Reader::currentValue() { return *(nodes_.top()); }
+
+Reader::Char Reader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void Reader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+JSONCPP_STRING Reader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+// Deprecated. Preserved for backward compatibility
+JSONCPP_STRING Reader::getFormatedErrorMessages() const {
+  return getFormattedErrorMessages();
+}
+
+JSONCPP_STRING Reader::getFormattedErrorMessages() const {
+  JSONCPP_STRING formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<Reader::StructuredError> Reader::getStructuredErrors() const {
+  std::vector<Reader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    Reader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool Reader::pushError(const Value& value, const JSONCPP_STRING& message) {
+  ptrdiff_t const length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
+  ptrdiff_t const length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::good() const {
+  return !errors_.size();
+}
+
+// exact copy of Features
+class OurFeatures {
+public:
+  static OurFeatures all();
+  bool allowComments_;
+  bool strictRoot_;
+  bool allowDroppedNullPlaceholders_;
+  bool allowNumericKeys_;
+  bool allowSingleQuotes_;
+  bool failIfExtra_;
+  bool rejectDupKeys_;
+  bool allowSpecialFloats_;
+  int stackLimit_;
+};  // OurFeatures
+
+// exact copy of Implementation of class Features
+// ////////////////////////////////
+
+OurFeatures OurFeatures::all() { return OurFeatures(); }
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+// exact copy of Reader, renamed to OurReader
+class OurReader {
+public:
+  typedef char Char;
+  typedef const Char* Location;
+  struct StructuredError {
+    ptrdiff_t offset_start;
+    ptrdiff_t offset_limit;
+    JSONCPP_STRING message;
+  };
+
+  OurReader(OurFeatures const& features);
+  bool parse(const char* beginDoc,
+             const char* endDoc,
+             Value& root,
+             bool collectComments = true);
+  JSONCPP_STRING getFormattedErrorMessages() const;
+  std::vector<StructuredError> getStructuredErrors() const;
+  bool pushError(const Value& value, const JSONCPP_STRING& message);
+  bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
+  bool good() const;
+
+private:
+  OurReader(OurReader const&);  // no impl
+  void operator=(OurReader const&);  // no impl
+
+  enum TokenType {
+    tokenEndOfStream = 0,
+    tokenObjectBegin,
+    tokenObjectEnd,
+    tokenArrayBegin,
+    tokenArrayEnd,
+    tokenString,
+    tokenNumber,
+    tokenTrue,
+    tokenFalse,
+    tokenNull,
+    tokenNaN,
+    tokenPosInf,
+    tokenNegInf,
+    tokenArraySeparator,
+    tokenMemberSeparator,
+    tokenComment,
+    tokenError
+  };
+
+  class Token {
+  public:
+    TokenType type_;
+    Location start_;
+    Location end_;
+  };
+
+  class ErrorInfo {
+  public:
+    Token token_;
+    JSONCPP_STRING message_;
+    Location extra_;
+  };
+
+  typedef std::deque<ErrorInfo> Errors;
+
+  bool readToken(Token& token);
+  void skipSpaces();
+  bool match(Location pattern, int patternLength);
+  bool readComment();
+  bool readCStyleComment();
+  bool readCppStyleComment();
+  bool readString();
+  bool readStringSingleQuote();
+  bool readNumber(bool checkInf);
+  bool readValue();
+  bool readObject(Token& token);
+  bool readArray(Token& token);
+  bool decodeNumber(Token& token);
+  bool decodeNumber(Token& token, Value& decoded);
+  bool decodeString(Token& token);
+  bool decodeString(Token& token, JSONCPP_STRING& decoded);
+  bool decodeDouble(Token& token);
+  bool decodeDouble(Token& token, Value& decoded);
+  bool decodeUnicodeCodePoint(Token& token,
+                              Location& current,
+                              Location end,
+                              unsigned int& unicode);
+  bool decodeUnicodeEscapeSequence(Token& token,
+                                   Location& current,
+                                   Location end,
+                                   unsigned int& unicode);
+  bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+  bool recoverFromError(TokenType skipUntilToken);
+  bool addErrorAndRecover(const JSONCPP_STRING& message,
+                          Token& token,
+                          TokenType skipUntilToken);
+  void skipUntilSpace();
+  Value& currentValue();
+  Char getNextChar();
+  void
+  getLocationLineAndColumn(Location location, int& line, int& column) const;
+  JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+  void addComment(Location begin, Location end, CommentPlacement placement);
+  void skipCommentTokens(Token& token);
+
+  typedef std::stack<Value*> Nodes;
+  Nodes nodes_;
+  Errors errors_;
+  JSONCPP_STRING document_;
+  Location begin_;
+  Location end_;
+  Location current_;
+  Location lastValueEnd_;
+  Value* lastValue_;
+  JSONCPP_STRING commentsBefore_;
+  int stackDepth_;
+
+  OurFeatures const features_;
+  bool collectComments_;
+};  // OurReader
+
+// complete copy of Read impl, for OurReader
+
+OurReader::OurReader(OurFeatures const& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(),
+      stackDepth_(0),
+      features_(features), collectComments_() {
+}
+
+bool OurReader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_ = 0;
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (features_.failIfExtra_) {
+    if ((features_.strictRoot_ || token.type_ != tokenError) && token.type_ != tokenEndOfStream) {
+      addError("Extra non-whitespace after JSON value.", token);
+      return false;
+    }
+  }
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool OurReader::readValue() {
+  if (stackDepth_ >= features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_;
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNaN:
+    {
+    Value v(std::numeric_limits<double>::quiet_NaN());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenPosInf:
+    {
+    Value v(std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNegInf:
+    {
+    Value v(-std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // else, fall through ...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_;
+  return successful;
+}
+
+void OurReader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool OurReader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '\'':
+    if (features_.allowSingleQuotes_) {
+    token.type_ = tokenString;
+    ok = readStringSingleQuote();
+    break;
+    } // else continue
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+    token.type_ = tokenNumber;
+    readNumber(false);
+    break;
+  case '-':
+    if (readNumber(true)) {
+      token.type_ = tokenNumber;
+    } else {
+      token.type_ = tokenNegInf;
+      ok = features_.allowSpecialFloats_ && match("nfinity", 7);
+    }
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case 'N':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenNaN;
+      ok = match("aN", 2);
+    } else {
+      ok = false;
+    }
+    break;
+  case 'I':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenPosInf;
+      ok = match("nfinity", 7);
+    } else {
+      ok = false;
+    }
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void OurReader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool OurReader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool OurReader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+void
+OurReader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool OurReader::readCStyleComment() {
+  while ((current_ + 1) < end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool OurReader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+bool OurReader::readNumber(bool checkInf) {
+  const char *p = current_;
+  if (checkInf && p != end_ && *p == 'I') {
+    current_ = ++p;
+    return false;
+  }
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : '\0';
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  return true;
+}
+bool OurReader::readString() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+
+bool OurReader::readStringSingleQuote() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '\'')
+      break;
+  }
+  return c == '\'';
+}
+
+bool OurReader::readObject(Token& tokenStart) {
+  Token tokenName;
+  JSONCPP_STRING name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = numberName.asString();
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30");
+    if (features_.rejectDupKeys_ && currentValue().isMember(name)) {
+      JSONCPP_STRING msg = "Duplicate key: '" + name + "'";
+      return addErrorAndRecover(
+          msg, tokenName, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool OurReader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (current_ != end_ && *current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(-Value::minLargestInt)
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  const int bufferSize = 32;
+  int count;
+  ptrdiff_t const length = token.end_ - token.start_;
+
+  // Sanity check to avoid buffer overflow exploits.
+  if (length < 0) {
+    return addError("Unable to parse token length", token);
+  }
+  size_t const ulength = static_cast<size_t>(length);
+
+  // Avoid using a string constant for the format control string given to
+  // sscanf, as this can cause hard to debug crashes on OS X. See here for more
+  // info:
+  //
+  //     http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html
+  char format[] = "%lf";
+
+  if (length <= bufferSize) {
+    Char buffer[bufferSize + 1];
+    memcpy(buffer, token.start_, ulength);
+    buffer[length] = 0;
+    fixNumericLocaleInput(buffer, buffer + length);
+    count = sscanf(buffer, format, &value);
+  } else {
+    JSONCPP_STRING buffer(token.start_, token.end_);
+    count = sscanf(buffer.c_str(), format, &value);
+  }
+
+  if (count != 1)
+    return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool OurReader::decodeString(Token& token) {
+  JSONCPP_STRING decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+  decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& ret_unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  int unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  ret_unicode = static_cast<unsigned int>(unicode);
+  return true;
+}
+
+bool
+OurReader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool OurReader::recoverFromError(TokenType skipUntilToken) {
+  size_t errorCount = errors_.size();
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool OurReader::addErrorAndRecover(const JSONCPP_STRING& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& OurReader::currentValue() { return *(nodes_.top()); }
+
+OurReader::Char OurReader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void OurReader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+JSONCPP_STRING OurReader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
+  JSONCPP_STRING formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const {
+  std::vector<OurReader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    OurReader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message) {
+  ptrdiff_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
+  ptrdiff_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::good() const {
+  return !errors_.size();
+}
+
+
+class OurCharReader : public CharReader {
+  bool const collectComments_;
+  OurReader reader_;
+public:
+  OurCharReader(
+    bool collectComments,
+    OurFeatures const& features)
+  : collectComments_(collectComments)
+  , reader_(features)
+  {}
+  bool parse(
+      char const* beginDoc, char const* endDoc,
+      Value* root, JSONCPP_STRING* errs) JSONCPP_OVERRIDE {
+    bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_);
+    if (errs) {
+      *errs = reader_.getFormattedErrorMessages();
+    }
+    return ok;
+  }
+};
+
+CharReaderBuilder::CharReaderBuilder()
+{
+  setDefaults(&settings_);
+}
+CharReaderBuilder::~CharReaderBuilder()
+{}
+CharReader* CharReaderBuilder::newCharReader() const
+{
+  bool collectComments = settings_["collectComments"].asBool();
+  OurFeatures features = OurFeatures::all();
+  features.allowComments_ = settings_["allowComments"].asBool();
+  features.strictRoot_ = settings_["strictRoot"].asBool();
+  features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();
+  features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool();
+  features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool();
+  features.stackLimit_ = settings_["stackLimit"].asInt();
+  features.failIfExtra_ = settings_["failIfExtra"].asBool();
+  features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool();
+  features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool();
+  return new OurCharReader(collectComments, features);
+}
+static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("collectComments");
+  valid_keys->insert("allowComments");
+  valid_keys->insert("strictRoot");
+  valid_keys->insert("allowDroppedNullPlaceholders");
+  valid_keys->insert("allowNumericKeys");
+  valid_keys->insert("allowSingleQuotes");
+  valid_keys->insert("stackLimit");
+  valid_keys->insert("failIfExtra");
+  valid_keys->insert("rejectDupKeys");
+  valid_keys->insert("allowSpecialFloats");
+}
+bool CharReaderBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<JSONCPP_STRING> valid_keys;
+  getValidReaderKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    JSONCPP_STRING const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
+{
+  return settings_[key];
+}
+// static
+void CharReaderBuilder::strictMode(Json::Value* settings)
+{
+//! [CharReaderBuilderStrictMode]
+  (*settings)["allowComments"] = false;
+  (*settings)["strictRoot"] = true;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = true;
+  (*settings)["rejectDupKeys"] = true;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderStrictMode]
+}
+// static
+void CharReaderBuilder::setDefaults(Json::Value* settings)
+{
+//! [CharReaderBuilderDefaults]
+  (*settings)["collectComments"] = true;
+  (*settings)["allowComments"] = true;
+  (*settings)["strictRoot"] = false;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = false;
+  (*settings)["rejectDupKeys"] = false;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderDefaults]
+}
+
+//////////////////////////////////
+// global functions
+
+bool parseFromStream(
+    CharReader::Factory const& fact, JSONCPP_ISTREAM& sin,
+    Value* root, JSONCPP_STRING* errs)
+{
+  JSONCPP_OSTRINGSTREAM ssin;
+  ssin << sin.rdbuf();
+  JSONCPP_STRING doc = ssin.str();
+  char const* begin = doc.data();
+  char const* end = begin + doc.size();
+  // Note that we do not actually need a null-terminator.
+  CharReaderPtr const reader(fact.newCharReader());
+  return reader->parse(begin, end, root, errs);
+}
+
+JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
+  CharReaderBuilder b;
+  JSONCPP_STRING errs;
+  bool ok = parseFromStream(b, sin, &root, &errs);
+  if (!ok) {
+    fprintf(stderr,
+            "Error from reader: %s",
+            errs.c_str());
+
+    throwRuntimeError(errs);
+  }
+  return sin;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_reader.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_valueiterator.inl
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+// included by json_value.cpp
+
+namespace Json {
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIteratorBase
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIteratorBase::ValueIteratorBase()
+    : current_(), isNull_(true) {
+}
+
+ValueIteratorBase::ValueIteratorBase(
+    const Value::ObjectValues::iterator& current)
+    : current_(current), isNull_(false) {}
+
+Value& ValueIteratorBase::deref() const {
+  return current_->second;
+}
+
+void ValueIteratorBase::increment() {
+  ++current_;
+}
+
+void ValueIteratorBase::decrement() {
+  --current_;
+}
+
+ValueIteratorBase::difference_type
+ValueIteratorBase::computeDistance(const SelfType& other) const {
+#ifdef JSON_USE_CPPTL_SMALLMAP
+  return other.current_ - current_;
+#else
+  // Iterator for null value are initialized using the default
+  // constructor, which initialize current_ to the default
+  // std::map::iterator. As begin() and end() are two instance
+  // of the default std::map::iterator, they can not be compared.
+  // To allow this, we handle this comparison specifically.
+  if (isNull_ && other.isNull_) {
+    return 0;
+  }
+
+  // Usage of std::distance is not portable (does not compile with Sun Studio 12
+  // RogueWave STL,
+  // which is the one used by default).
+  // Using a portable hand-made version for non random iterator instead:
+  //   return difference_type( std::distance( current_, other.current_ ) );
+  difference_type myDistance = 0;
+  for (Value::ObjectValues::iterator it = current_; it != other.current_;
+       ++it) {
+    ++myDistance;
+  }
+  return myDistance;
+#endif
+}
+
+bool ValueIteratorBase::isEqual(const SelfType& other) const {
+  if (isNull_) {
+    return other.isNull_;
+  }
+  return current_ == other.current_;
+}
+
+void ValueIteratorBase::copy(const SelfType& other) {
+  current_ = other.current_;
+  isNull_ = other.isNull_;
+}
+
+Value ValueIteratorBase::key() const {
+  const Value::CZString czstring = (*current_).first;
+  if (czstring.data()) {
+    if (czstring.isStaticString())
+      return Value(StaticString(czstring.data()));
+    return Value(czstring.data(), czstring.data() + czstring.length());
+  }
+  return Value(czstring.index());
+}
+
+UInt ValueIteratorBase::index() const {
+  const Value::CZString czstring = (*current_).first;
+  if (!czstring.data())
+    return czstring.index();
+  return Value::UInt(-1);
+}
+
+JSONCPP_STRING ValueIteratorBase::name() const {
+  char const* keey;
+  char const* end;
+  keey = memberName(&end);
+  if (!keey) return JSONCPP_STRING();
+  return JSONCPP_STRING(keey, end);
+}
+
+char const* ValueIteratorBase::memberName() const {
+  const char* cname = (*current_).first.data();
+  return cname ? cname : "";
+}
+
+char const* ValueIteratorBase::memberName(char const** end) const {
+  const char* cname = (*current_).first.data();
+  if (!cname) {
+    *end = NULL;
+    return NULL;
+  }
+  *end = cname + (*current_).first.length();
+  return cname;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueConstIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueConstIterator::ValueConstIterator() {}
+
+ValueConstIterator::ValueConstIterator(
+    const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueConstIterator::ValueConstIterator(ValueIterator const& other)
+    : ValueIteratorBase(other) {}
+
+ValueConstIterator& ValueConstIterator::
+operator=(const ValueIteratorBase& other) {
+  copy(other);
+  return *this;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIterator::ValueIterator() {}
+
+ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueIterator::ValueIterator(const ValueConstIterator& other)
+    : ValueIteratorBase(other) {
+  throwRuntimeError("ConstIterator to Iterator should never be allowed.");
+}
+
+ValueIterator::ValueIterator(const ValueIterator& other)
+    : ValueIteratorBase(other) {}
+
+ValueIterator& ValueIterator::operator=(const SelfType& other) {
+  copy(other);
+  return *this;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_valueiterator.inl
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_value.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/assertions.h>
+#include <json/value.h>
+#include <json/writer.h>
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <math.h>
+#include <sstream>
+#include <utility>
+#include <cstring>
+#include <cassert>
+#ifdef JSON_USE_CPPTL
+#include <cpptl/conststring.h>
+#endif
+#include <cstddef> // size_t
+#include <algorithm> // min()
+
+#define JSON_ASSERT_UNREACHABLE assert(false)
+
+namespace Json {
+
+// This is a walkaround to avoid the static initialization of Value::null.
+// kNull must be word-aligned to avoid crashing on ARM.  We use an alignment of
+// 8 (instead of 4) as a bit of future-proofing.
+#if defined(__ARMEL__)
+#define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
+#else
+#define ALIGNAS(byte_alignment)
+#endif
+//static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 };
+//const unsigned char& kNullRef = kNull[0];
+//const Value& Value::null = reinterpret_cast<const Value&>(kNullRef);
+//const Value& Value::nullRef = null;
+
+// static
+Value const& Value::nullSingleton()
+{
+ static Value const nullStatic;
+ return nullStatic;
+}
+
+// for backwards compatibility, we'll leave these global references around, but DO NOT
+// use them in JSONCPP library code any more!
+Value const& Value::null = Value::nullSingleton();
+Value const& Value::nullRef = Value::nullSingleton();
+
+const Int Value::minInt = Int(~(UInt(-1) / 2));
+const Int Value::maxInt = Int(UInt(-1) / 2);
+const UInt Value::maxUInt = UInt(-1);
+#if defined(JSON_HAS_INT64)
+const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2));
+const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2);
+const UInt64 Value::maxUInt64 = UInt64(-1);
+// The constant is hard-coded because some compiler have trouble
+// converting Value::maxUInt64 to a double correctly (AIX/xlC).
+// Assumes that UInt64 is a 64 bits integer.
+static const double maxUInt64AsDouble = 18446744073709551615.0;
+#endif // defined(JSON_HAS_INT64)
+const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2));
+const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2);
+const LargestUInt Value::maxLargestUInt = LargestUInt(-1);
+
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  // The casts can lose precision, but we are looking only for
+  // an approximate range. Might fail on edge cases though. ~cdunn
+  //return d >= static_cast<double>(min) && d <= static_cast<double>(max);
+  return d >= min && d <= max;
+}
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+static inline double integerToDouble(Json::UInt64 value) {
+  return static_cast<double>(Int64(value / 2)) * 2.0 + static_cast<double>(Int64(value & 1));
+}
+
+template <typename T> static inline double integerToDouble(T value) {
+  return static_cast<double>(value);
+}
+
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  return d >= integerToDouble(min) && d <= integerToDouble(max);
+}
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+
+/** Duplicates the specified string value.
+ * @param value Pointer to the string to duplicate. Must be zero-terminated if
+ *              length is "unknown".
+ * @param length Length of the value. if equals to unknown, then it will be
+ *               computed using strlen(value).
+ * @return Pointer on the duplicate instance of string.
+ */
+static inline char* duplicateStringValue(const char* value,
+                                         size_t length)
+{
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  if (length >= static_cast<size_t>(Value::maxInt))
+    length = Value::maxInt - 1;
+
+  char* newString = static_cast<char*>(malloc(length + 1));
+  if (newString == NULL) {
+    throwRuntimeError(
+        "in Json::Value::duplicateStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  memcpy(newString, value, length);
+  newString[length] = 0;
+  return newString;
+}
+
+/* Record the length as a prefix.
+ */
+static inline char* duplicateAndPrefixStringValue(
+    const char* value,
+    unsigned int length)
+{
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) - sizeof(unsigned) - 1U,
+                      "in Json::Value::duplicateAndPrefixStringValue(): "
+                      "length too big for prefixing");
+  unsigned actualLength = length + static_cast<unsigned>(sizeof(unsigned)) + 1U;
+  char* newString = static_cast<char*>(malloc(actualLength));
+  if (newString == 0) {
+    throwRuntimeError(
+        "in Json::Value::duplicateAndPrefixStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  *reinterpret_cast<unsigned*>(newString) = length;
+  memcpy(newString + sizeof(unsigned), value, length);
+  newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later
+  return newString;
+}
+inline static void decodePrefixedString(
+    bool isPrefixed, char const* prefixed,
+    unsigned* length, char const** value)
+{
+  if (!isPrefixed) {
+    *length = static_cast<unsigned>(strlen(prefixed));
+    *value = prefixed;
+  } else {
+    *length = *reinterpret_cast<unsigned const*>(prefixed);
+    *value = prefixed + sizeof(unsigned);
+  }
+}
+/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
+ */
+#if JSONCPP_USING_SECURE_MEMORY
+static inline void releasePrefixedStringValue(char* value) {
+  unsigned length = 0;
+  char const* valueDecoded;
+  decodePrefixedString(true, value, &length, &valueDecoded);
+  size_t const size = sizeof(unsigned) + length + 1U;
+  memset(value, 0, size);
+  free(value);
+}
+static inline void releaseStringValue(char* value, unsigned length) {
+  // length==0 => we allocated the strings memory
+  size_t size = (length==0) ? strlen(value) : length;
+  memset(value, 0, size);
+  free(value);
+}
+#else // !JSONCPP_USING_SECURE_MEMORY
+static inline void releasePrefixedStringValue(char* value) {
+  free(value);
+}
+static inline void releaseStringValue(char* value, unsigned) {
+  free(value);
+}
+#endif // JSONCPP_USING_SECURE_MEMORY
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// ValueInternals...
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+#if !defined(JSON_IS_AMALGAMATION)
+
+#include "json_valueiterator.inl"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+Exception::Exception(JSONCPP_STRING const& msg)
+  : msg_(msg)
+{}
+Exception::~Exception() throw()
+{}
+char const* Exception::what() const throw()
+{
+  return msg_.c_str();
+}
+RuntimeError::RuntimeError(JSONCPP_STRING const& msg)
+  : Exception(msg)
+{}
+LogicError::LogicError(JSONCPP_STRING const& msg)
+  : Exception(msg)
+{}
+JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
+{
+  throw RuntimeError(msg);
+}
+JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
+{
+  throw LogicError(msg);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CommentInfo
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+Value::CommentInfo::CommentInfo() : comment_(0)
+{}
+
+Value::CommentInfo::~CommentInfo() {
+  if (comment_)
+    releaseStringValue(comment_, 0u);
+}
+
+void Value::CommentInfo::setComment(const char* text, size_t len) {
+  if (comment_) {
+    releaseStringValue(comment_, 0u);
+    comment_ = 0;
+  }
+  JSON_ASSERT(text != 0);
+  JSON_ASSERT_MESSAGE(
+      text[0] == '\0' || text[0] == '/',
+      "in Json::Value::setComment(): Comments must start with /");
+  // It seems that /**/ style comments are acceptable as well.
+  comment_ = duplicateStringValue(text, len);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CZString
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+// Notes: policy_ indicates if the string was allocated when
+// a string is stored.
+
+Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {}
+
+Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate)
+    : cstr_(str) {
+  // allocate != duplicate
+  storage_.policy_ = allocate & 0x3;
+  storage_.length_ = ulength & 0x3FFFFFFF;
+}
+
+Value::CZString::CZString(const CZString& other) {
+  cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != 0
+				 ? duplicateStringValue(other.cstr_, other.storage_.length_)
+				 : other.cstr_);
+  storage_.policy_ = static_cast<unsigned>(other.cstr_
+                 ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication
+                     ? noDuplication : duplicate)
+                 : static_cast<DuplicationPolicy>(other.storage_.policy_)) & 3U;
+  storage_.length_ = other.storage_.length_;
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+Value::CZString::CZString(CZString&& other)
+  : cstr_(other.cstr_), index_(other.index_) {
+  other.cstr_ = nullptr;
+}
+#endif
+
+Value::CZString::~CZString() {
+  if (cstr_ && storage_.policy_ == duplicate) {
+	  releaseStringValue(const_cast<char*>(cstr_), storage_.length_ + 1u); //+1 for null terminating character for sake of completeness but not actually necessary
+  }
+}
+
+void Value::CZString::swap(CZString& other) {
+  std::swap(cstr_, other.cstr_);
+  std::swap(index_, other.index_);
+}
+
+Value::CZString& Value::CZString::operator=(CZString other) {
+  swap(other);
+  return *this;
+}
+
+bool Value::CZString::operator<(const CZString& other) const {
+  if (!cstr_) return index_ < other.index_;
+  //return strcmp(cstr_, other.cstr_) < 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  unsigned min_len = std::min(this_len, other_len);
+  JSON_ASSERT(this->cstr_ && other.cstr_);
+  int comp = memcmp(this->cstr_, other.cstr_, min_len);
+  if (comp < 0) return true;
+  if (comp > 0) return false;
+  return (this_len < other_len);
+}
+
+bool Value::CZString::operator==(const CZString& other) const {
+  if (!cstr_) return index_ == other.index_;
+  //return strcmp(cstr_, other.cstr_) == 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  if (this_len != other_len) return false;
+  JSON_ASSERT(this->cstr_ && other.cstr_);
+  int comp = memcmp(this->cstr_, other.cstr_, this_len);
+  return comp == 0;
+}
+
+ArrayIndex Value::CZString::index() const { return index_; }
+
+//const char* Value::CZString::c_str() const { return cstr_; }
+const char* Value::CZString::data() const { return cstr_; }
+unsigned Value::CZString::length() const { return storage_.length_; }
+bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; }
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::Value
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+/*! \internal Default constructor initialization must be equivalent to:
+ * memset( this, 0, sizeof(Value) )
+ * This optimization is used in ValueInternalMap fast allocator.
+ */
+Value::Value(ValueType vtype) {
+  static char const empty[] = "";
+  initBasic(vtype);
+  switch (vtype) {
+  case nullValue:
+    break;
+  case intValue:
+  case uintValue:
+    value_.int_ = 0;
+    break;
+  case realValue:
+    value_.real_ = 0.0;
+    break;
+  case stringValue:
+    // allocated_ == false, so this is safe.
+    value_.string_ = const_cast<char*>(static_cast<char const*>(empty));
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues();
+    break;
+  case booleanValue:
+    value_.bool_ = false;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+}
+
+Value::Value(Int value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+
+Value::Value(UInt value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#if defined(JSON_HAS_INT64)
+Value::Value(Int64 value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+Value::Value(UInt64 value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#endif // defined(JSON_HAS_INT64)
+
+Value::Value(double value) {
+  initBasic(realValue);
+  value_.real_ = value;
+}
+
+Value::Value(const char* value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(strlen(value)));
+}
+
+Value::Value(const char* beginValue, const char* endValue) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(beginValue, static_cast<unsigned>(endValue - beginValue));
+}
+
+Value::Value(const JSONCPP_STRING& value) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(value.data(), static_cast<unsigned>(value.length()));
+}
+
+Value::Value(const StaticString& value) {
+  initBasic(stringValue);
+  value_.string_ = const_cast<char*>(value.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value::Value(const CppTL::ConstString& value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(value.length()));
+}
+#endif
+
+Value::Value(bool value) {
+  initBasic(booleanValue);
+  value_.bool_ = value;
+}
+
+Value::Value(Value const& other)
+    : type_(other.type_), allocated_(false)
+      ,
+      comments_(0), start_(other.start_), limit_(other.limit_)
+{
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    value_ = other.value_;
+    break;
+  case stringValue:
+    if (other.value_.string_ && other.allocated_) {
+      unsigned len;
+      char const* str;
+      decodePrefixedString(other.allocated_, other.value_.string_,
+          &len, &str);
+      value_.string_ = duplicateAndPrefixStringValue(str, len);
+      allocated_ = true;
+    } else {
+      value_.string_ = other.value_.string_;
+      allocated_ = false;
+    }
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues(*other.value_.map_);
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  if (other.comments_) {
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+    for (int comment = 0; comment < numberOfCommentPlacement; ++comment) {
+      const CommentInfo& otherComment = other.comments_[comment];
+      if (otherComment.comment_)
+        comments_[comment].setComment(
+            otherComment.comment_, strlen(otherComment.comment_));
+    }
+  }
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+// Move constructor
+Value::Value(Value&& other) {
+  initBasic(nullValue);
+  swap(other);
+}
+#endif
+
+Value::~Value() {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    break;
+  case stringValue:
+    if (allocated_)
+      releasePrefixedStringValue(value_.string_);
+    break;
+  case arrayValue:
+  case objectValue:
+    delete value_.map_;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+
+  delete[] comments_;
+
+  value_.uint_ = 0;
+}
+
+Value& Value::operator=(Value other) {
+  swap(other);
+  return *this;
+}
+
+void Value::swapPayload(Value& other) {
+  ValueType temp = type_;
+  type_ = other.type_;
+  other.type_ = temp;
+  std::swap(value_, other.value_);
+  int temp2 = allocated_;
+  allocated_ = other.allocated_;
+  other.allocated_ = temp2 & 0x1;
+}
+
+void Value::swap(Value& other) {
+  swapPayload(other);
+  std::swap(comments_, other.comments_);
+  std::swap(start_, other.start_);
+  std::swap(limit_, other.limit_);
+}
+
+ValueType Value::type() const { return type_; }
+
+int Value::compare(const Value& other) const {
+  if (*this < other)
+    return -1;
+  if (*this > other)
+    return 1;
+  return 0;
+}
+
+bool Value::operator<(const Value& other) const {
+  int typeDelta = type_ - other.type_;
+  if (typeDelta)
+    return typeDelta < 0 ? true : false;
+  switch (type_) {
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ < other.value_.int_;
+  case uintValue:
+    return value_.uint_ < other.value_.uint_;
+  case realValue:
+    return value_.real_ < other.value_.real_;
+  case booleanValue:
+    return value_.bool_ < other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      if (other.value_.string_) return true;
+      else return false;
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    unsigned min_len = std::min(this_len, other_len);
+    JSON_ASSERT(this_str && other_str);
+    int comp = memcmp(this_str, other_str, min_len);
+    if (comp < 0) return true;
+    if (comp > 0) return false;
+    return (this_len < other_len);
+  }
+  case arrayValue:
+  case objectValue: {
+    int delta = int(value_.map_->size() - other.value_.map_->size());
+    if (delta)
+      return delta < 0;
+    return (*value_.map_) < (*other.value_.map_);
+  }
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator<=(const Value& other) const { return !(other < *this); }
+
+bool Value::operator>=(const Value& other) const { return !(*this < other); }
+
+bool Value::operator>(const Value& other) const { return other < *this; }
+
+bool Value::operator==(const Value& other) const {
+  // if ( type_ != other.type_ )
+  // GCC 2.95.3 says:
+  // attempt to take address of bit-field structure member `Json::Value::type_'
+  // Beats me, but a temp solves the problem.
+  int temp = other.type_;
+  if (type_ != temp)
+    return false;
+  switch (type_) {
+  case nullValue:
+    return true;
+  case intValue:
+    return value_.int_ == other.value_.int_;
+  case uintValue:
+    return value_.uint_ == other.value_.uint_;
+  case realValue:
+    return value_.real_ == other.value_.real_;
+  case booleanValue:
+    return value_.bool_ == other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      return (value_.string_ == other.value_.string_);
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    if (this_len != other_len) return false;
+    JSON_ASSERT(this_str && other_str);
+    int comp = memcmp(this_str, other_str, this_len);
+    return comp == 0;
+  }
+  case arrayValue:
+  case objectValue:
+    return value_.map_->size() == other.value_.map_->size() &&
+           (*value_.map_) == (*other.value_.map_);
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator!=(const Value& other) const { return !(*this == other); }
+
+const char* Value::asCString() const {
+  JSON_ASSERT_MESSAGE(type_ == stringValue,
+                      "in Json::Value::asCString(): requires stringValue");
+  if (value_.string_ == 0) return 0;
+  unsigned this_len;
+  char const* this_str;
+  decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+  return this_str;
+}
+
+#if JSONCPP_USING_SECURE_MEMORY
+unsigned Value::getCStringLength() const {
+  JSON_ASSERT_MESSAGE(type_ == stringValue,
+	                  "in Json::Value::asCString(): requires stringValue");
+  if (value_.string_ == 0) return 0;
+  unsigned this_len;
+  char const* this_str;
+  decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+  return this_len;
+}
+#endif
+
+bool Value::getString(char const** str, char const** cend) const {
+  if (type_ != stringValue) return false;
+  if (value_.string_ == 0) return false;
+  unsigned length;
+  decodePrefixedString(this->allocated_, this->value_.string_, &length, str);
+  *cend = *str + length;
+  return true;
+}
+
+JSONCPP_STRING Value::asString() const {
+  switch (type_) {
+  case nullValue:
+    return "";
+  case stringValue:
+  {
+    if (value_.string_ == 0) return "";
+    unsigned this_len;
+    char const* this_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    return JSONCPP_STRING(this_str, this_len);
+  }
+  case booleanValue:
+    return value_.bool_ ? "true" : "false";
+  case intValue:
+    return valueToString(value_.int_);
+  case uintValue:
+    return valueToString(value_.uint_);
+  case realValue:
+    return valueToString(value_.real_);
+  default:
+    JSON_FAIL_MESSAGE("Type is not convertible to string");
+  }
+}
+
+#ifdef JSON_USE_CPPTL
+CppTL::ConstString Value::asConstString() const {
+  unsigned len;
+  char const* str;
+  decodePrefixedString(allocated_, value_.string_,
+      &len, &str);
+  return CppTL::ConstString(str, len);
+}
+#endif
+
+Value::Int Value::asInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range");
+    return Int(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestUInt out of Int range");
+    return Int(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt, maxInt),
+                        "double out of Int range");
+    return Int(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int.");
+}
+
+Value::UInt Value::asUInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range");
+    return UInt(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestUInt out of UInt range");
+    return UInt(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt),
+                        "double out of UInt range");
+    return UInt(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt.");
+}
+
+#if defined(JSON_HAS_INT64)
+
+Value::Int64 Value::asInt64() const {
+  switch (type_) {
+  case intValue:
+    return Int64(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt64(), "LargestUInt out of Int64 range");
+    return Int64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt64, maxInt64),
+                        "double out of Int64 range");
+    return Int64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int64.");
+}
+
+Value::UInt64 Value::asUInt64() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range");
+    return UInt64(value_.int_);
+  case uintValue:
+    return UInt64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt64),
+                        "double out of UInt64 range");
+    return UInt64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt64.");
+}
+#endif // if defined(JSON_HAS_INT64)
+
+LargestInt Value::asLargestInt() const {
+#if defined(JSON_NO_INT64)
+  return asInt();
+#else
+  return asInt64();
+#endif
+}
+
+LargestUInt Value::asLargestUInt() const {
+#if defined(JSON_NO_INT64)
+  return asUInt();
+#else
+  return asUInt64();
+#endif
+}
+
+double Value::asDouble() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<double>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<double>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return integerToDouble(value_.uint_);
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return value_.real_;
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0 : 0.0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to double.");
+}
+
+float Value::asFloat() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<float>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<float>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    // This can fail (silently?) if the value is bigger than MAX_FLOAT.
+    return static_cast<float>(integerToDouble(value_.uint_));
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return static_cast<float>(value_.real_);
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0f : 0.0f;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to float.");
+}
+
+bool Value::asBool() const {
+  switch (type_) {
+  case booleanValue:
+    return value_.bool_;
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ ? true : false;
+  case uintValue:
+    return value_.uint_ ? true : false;
+  case realValue:
+    // This is kind of strange. Not recommended.
+    return (value_.real_ != 0.0) ? true : false;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to bool.");
+}
+
+bool Value::isConvertibleTo(ValueType other) const {
+  switch (other) {
+  case nullValue:
+    return (isNumeric() && asDouble() == 0.0) ||
+           (type_ == booleanValue && value_.bool_ == false) ||
+           (type_ == stringValue && asString() == "") ||
+           (type_ == arrayValue && value_.map_->size() == 0) ||
+           (type_ == objectValue && value_.map_->size() == 0) ||
+           type_ == nullValue;
+  case intValue:
+    return isInt() ||
+           (type_ == realValue && InRange(value_.real_, minInt, maxInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case uintValue:
+    return isUInt() ||
+           (type_ == realValue && InRange(value_.real_, 0, maxUInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case realValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case booleanValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case stringValue:
+    return isNumeric() || type_ == booleanValue || type_ == stringValue ||
+           type_ == nullValue;
+  case arrayValue:
+    return type_ == arrayValue || type_ == nullValue;
+  case objectValue:
+    return type_ == objectValue || type_ == nullValue;
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return false;
+}
+
+/// Number of values in array or object
+ArrayIndex Value::size() const {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+  case stringValue:
+    return 0;
+  case arrayValue: // size of the array is highest index + 1
+    if (!value_.map_->empty()) {
+      ObjectValues::const_iterator itLast = value_.map_->end();
+      --itLast;
+      return (*itLast).first.index() + 1;
+    }
+    return 0;
+  case objectValue:
+    return ArrayIndex(value_.map_->size());
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return 0; // unreachable;
+}
+
+bool Value::empty() const {
+  if (isNull() || isArray() || isObject())
+    return size() == 0u;
+  else
+    return false;
+}
+
+bool Value::operator!() const { return isNull(); }
+
+void Value::clear() {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue ||
+                          type_ == objectValue,
+                      "in Json::Value::clear(): requires complex value");
+  start_ = 0;
+  limit_ = 0;
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    value_.map_->clear();
+    break;
+  default:
+    break;
+  }
+}
+
+void Value::resize(ArrayIndex newSize) {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue,
+                      "in Json::Value::resize(): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  ArrayIndex oldSize = size();
+  if (newSize == 0)
+    clear();
+  else if (newSize > oldSize)
+    (*this)[newSize - 1];
+  else {
+    for (ArrayIndex index = newSize; index < oldSize; ++index) {
+      value_.map_->erase(index);
+    }
+    JSON_ASSERT(size() == newSize);
+  }
+}
+
+Value& Value::operator[](ArrayIndex index) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->lower_bound(key);
+  if (it != value_.map_->end() && (*it).first == key)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(key, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  return (*it).second;
+}
+
+Value& Value::operator[](int index) {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index): index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+const Value& Value::operator[](ArrayIndex index) const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex)const: requires arrayValue");
+  if (type_ == nullValue)
+    return nullSingleton();
+  CZString key(index);
+  ObjectValues::const_iterator it = value_.map_->find(key);
+  if (it == value_.map_->end())
+    return nullSingleton();
+  return (*it).second;
+}
+
+const Value& Value::operator[](int index) const {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index) const: index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+void Value::initBasic(ValueType vtype, bool allocated) {
+  type_ = vtype;
+  allocated_ = allocated;
+  comments_ = 0;
+  start_ = 0;
+  limit_ = 0;
+}
+
+// Access an object value by name, create a null member if it does not exist.
+// @pre Type of '*this' is object or null.
+// @param key is null-terminated.
+Value& Value::resolveReference(const char* key) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(strlen(key)), CZString::noDuplication); // NOTE!
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+// @param key is not null-terminated.
+Value& Value::resolveReference(char const* key, char const* cend)
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(key, end): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy);
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+Value Value::get(ArrayIndex index, const Value& defaultValue) const {
+  const Value* value = &((*this)[index]);
+  return value == &nullSingleton() ? defaultValue : *value;
+}
+
+bool Value::isValidIndex(ArrayIndex index) const { return index < size(); }
+
+Value const* Value::find(char const* key, char const* cend) const
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::find(key, end, found): requires objectValue or nullValue");
+  if (type_ == nullValue) return NULL;
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::const_iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end()) return NULL;
+  return &(*it).second;
+}
+const Value& Value::operator[](const char* key) const
+{
+  Value const* found = find(key, key + strlen(key));
+  if (!found) return nullSingleton();
+  return *found;
+}
+Value const& Value::operator[](JSONCPP_STRING const& key) const
+{
+  Value const* found = find(key.data(), key.data() + key.length());
+  if (!found) return nullSingleton();
+  return *found;
+}
+
+Value& Value::operator[](const char* key) {
+  return resolveReference(key, key + strlen(key));
+}
+
+Value& Value::operator[](const JSONCPP_STRING& key) {
+  return resolveReference(key.data(), key.data() + key.length());
+}
+
+Value& Value::operator[](const StaticString& key) {
+  return resolveReference(key.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value& Value::operator[](const CppTL::ConstString& key) {
+  return resolveReference(key.c_str(), key.end_c_str());
+}
+Value const& Value::operator[](CppTL::ConstString const& key) const
+{
+  Value const* found = find(key.c_str(), key.end_c_str());
+  if (!found) return nullSingleton();
+  return *found;
+}
+#endif
+
+Value& Value::append(const Value& value) { return (*this)[size()] = value; }
+
+Value Value::get(char const* key, char const* cend, Value const& defaultValue) const
+{
+  Value const* found = find(key, cend);
+  return !found ? defaultValue : *found;
+}
+Value Value::get(char const* key, Value const& defaultValue) const
+{
+  return get(key, key + strlen(key), defaultValue);
+}
+Value Value::get(JSONCPP_STRING const& key, Value const& defaultValue) const
+{
+  return get(key.data(), key.data() + key.length(), defaultValue);
+}
+
+
+bool Value::removeMember(const char* key, const char* cend, Value* removed)
+{
+  if (type_ != objectValue) {
+    return false;
+  }
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end())
+    return false;
+  *removed = it->second;
+  value_.map_->erase(it);
+  return true;
+}
+bool Value::removeMember(const char* key, Value* removed)
+{
+  return removeMember(key, key + strlen(key), removed);
+}
+bool Value::removeMember(JSONCPP_STRING const& key, Value* removed)
+{
+  return removeMember(key.data(), key.data() + key.length(), removed);
+}
+Value Value::removeMember(const char* key)
+{
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue,
+                      "in Json::Value::removeMember(): requires objectValue");
+  if (type_ == nullValue)
+    return nullSingleton();
+
+  Value removed;  // null
+  removeMember(key, key + strlen(key), &removed);
+  return removed; // still null if removeMember() did nothing
+}
+Value Value::removeMember(const JSONCPP_STRING& key)
+{
+  return removeMember(key.c_str());
+}
+
+bool Value::removeIndex(ArrayIndex index, Value* removed) {
+  if (type_ != arrayValue) {
+    return false;
+  }
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->find(key);
+  if (it == value_.map_->end()) {
+    return false;
+  }
+  *removed = it->second;
+  ArrayIndex oldSize = size();
+  // shift left all items left, into the place of the "removed"
+  for (ArrayIndex i = index; i < (oldSize - 1); ++i){
+    CZString keey(i);
+    (*value_.map_)[keey] = (*this)[i + 1];
+  }
+  // erase the last one ("leftover")
+  CZString keyLast(oldSize - 1);
+  ObjectValues::iterator itLast = value_.map_->find(keyLast);
+  value_.map_->erase(itLast);
+  return true;
+}
+
+#ifdef JSON_USE_CPPTL
+Value Value::get(const CppTL::ConstString& key,
+                 const Value& defaultValue) const {
+  return get(key.c_str(), key.end_c_str(), defaultValue);
+}
+#endif
+
+bool Value::isMember(char const* key, char const* cend) const
+{
+  Value const* value = find(key, cend);
+  return NULL != value;
+}
+bool Value::isMember(char const* key) const
+{
+  return isMember(key, key + strlen(key));
+}
+bool Value::isMember(JSONCPP_STRING const& key) const
+{
+  return isMember(key.data(), key.data() + key.length());
+}
+
+#ifdef JSON_USE_CPPTL
+bool Value::isMember(const CppTL::ConstString& key) const {
+  return isMember(key.c_str(), key.end_c_str());
+}
+#endif
+
+Value::Members Value::getMemberNames() const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::getMemberNames(), value must be objectValue");
+  if (type_ == nullValue)
+    return Value::Members();
+  Members members;
+  members.reserve(value_.map_->size());
+  ObjectValues::const_iterator it = value_.map_->begin();
+  ObjectValues::const_iterator itEnd = value_.map_->end();
+  for (; it != itEnd; ++it) {
+    members.push_back(JSONCPP_STRING((*it).first.data(),
+                                  (*it).first.length()));
+  }
+  return members;
+}
+//
+//# ifdef JSON_USE_CPPTL
+// EnumMemberNames
+// Value::enumMemberNames() const
+//{
+//   if ( type_ == objectValue )
+//   {
+//      return CppTL::Enum::any(  CppTL::Enum::transform(
+//         CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ),
+//         MemberNamesTransform() ) );
+//   }
+//   return EnumMemberNames();
+//}
+//
+//
+// EnumValues
+// Value::enumValues() const
+//{
+//   if ( type_ == objectValue  ||  type_ == arrayValue )
+//      return CppTL::Enum::anyValues( *(value_.map_),
+//                                     CppTL::Type<const Value &>() );
+//   return EnumValues();
+//}
+//
+//# endif
+
+static bool IsIntegral(double d) {
+  double integral_part;
+  return modf(d, &integral_part) == 0.0;
+}
+
+bool Value::isNull() const { return type_ == nullValue; }
+
+bool Value::isBool() const { return type_ == booleanValue; }
+
+bool Value::isInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= minInt && value_.int_ <= maxInt;
+  case uintValue:
+    return value_.uint_ <= UInt(maxInt);
+  case realValue:
+    return value_.real_ >= minInt && value_.real_ <= maxInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isUInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt);
+  case uintValue:
+    return value_.uint_ <= maxUInt;
+  case realValue:
+    return value_.real_ >= 0 && value_.real_ <= maxUInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return true;
+  case uintValue:
+    return value_.uint_ <= UInt64(maxInt64);
+  case realValue:
+    // Note that maxInt64 (= 2^63 - 1) is not exactly representable as a
+    // double, so double(maxInt64) will be rounded up to 2^63. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= double(minInt64) &&
+           value_.real_ < double(maxInt64) && IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isUInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0;
+  case uintValue:
+    return true;
+  case realValue:
+    // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
+    // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= 0 && value_.real_ < maxUInt64AsDouble &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isIntegral() const {
+#if defined(JSON_HAS_INT64)
+  return isInt64() || isUInt64();
+#else
+  return isInt() || isUInt();
+#endif
+}
+
+bool Value::isDouble() const { return type_ == realValue || isIntegral(); }
+
+bool Value::isNumeric() const { return isIntegral() || isDouble(); }
+
+bool Value::isString() const { return type_ == stringValue; }
+
+bool Value::isArray() const { return type_ == arrayValue; }
+
+bool Value::isObject() const { return type_ == objectValue; }
+
+void Value::setComment(const char* comment, size_t len, CommentPlacement placement) {
+  if (!comments_)
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+  if ((len > 0) && (comment[len-1] == '\n')) {
+    // Always discard trailing newline, to aid indentation.
+    len -= 1;
+  }
+  comments_[placement].setComment(comment, len);
+}
+
+void Value::setComment(const char* comment, CommentPlacement placement) {
+  setComment(comment, strlen(comment), placement);
+}
+
+void Value::setComment(const JSONCPP_STRING& comment, CommentPlacement placement) {
+  setComment(comment.c_str(), comment.length(), placement);
+}
+
+bool Value::hasComment(CommentPlacement placement) const {
+  return comments_ != 0 && comments_[placement].comment_ != 0;
+}
+
+JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
+  if (hasComment(placement))
+    return comments_[placement].comment_;
+  return "";
+}
+
+void Value::setOffsetStart(ptrdiff_t start) { start_ = start; }
+
+void Value::setOffsetLimit(ptrdiff_t limit) { limit_ = limit; }
+
+ptrdiff_t Value::getOffsetStart() const { return start_; }
+
+ptrdiff_t Value::getOffsetLimit() const { return limit_; }
+
+JSONCPP_STRING Value::toStyledString() const {
+  StyledWriter writer;
+  return writer.write(*this);
+}
+
+Value::const_iterator Value::begin() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::const_iterator Value::end() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::iterator Value::begin() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+Value::iterator Value::end() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+// class PathArgument
+// //////////////////////////////////////////////////////////////////
+
+PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {}
+
+PathArgument::PathArgument(ArrayIndex index)
+    : key_(), index_(index), kind_(kindIndex) {}
+
+PathArgument::PathArgument(const char* key)
+    : key_(key), index_(), kind_(kindKey) {}
+
+PathArgument::PathArgument(const JSONCPP_STRING& key)
+    : key_(key.c_str()), index_(), kind_(kindKey) {}
+
+// class Path
+// //////////////////////////////////////////////////////////////////
+
+Path::Path(const JSONCPP_STRING& path,
+           const PathArgument& a1,
+           const PathArgument& a2,
+           const PathArgument& a3,
+           const PathArgument& a4,
+           const PathArgument& a5) {
+  InArgs in;
+  in.push_back(&a1);
+  in.push_back(&a2);
+  in.push_back(&a3);
+  in.push_back(&a4);
+  in.push_back(&a5);
+  makePath(path, in);
+}
+
+void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) {
+  const char* current = path.c_str();
+  const char* end = current + path.length();
+  InArgs::const_iterator itInArg = in.begin();
+  while (current != end) {
+    if (*current == '[') {
+      ++current;
+      if (*current == '%')
+        addPathInArg(path, in, itInArg, PathArgument::kindIndex);
+      else {
+        ArrayIndex index = 0;
+        for (; current != end && *current >= '0' && *current <= '9'; ++current)
+          index = index * 10 + ArrayIndex(*current - '0');
+        args_.push_back(index);
+      }
+      if (current == end || *++current != ']')
+        invalidPath(path, int(current - path.c_str()));
+    } else if (*current == '%') {
+      addPathInArg(path, in, itInArg, PathArgument::kindKey);
+      ++current;
+    } else if (*current == '.' || *current == ']') {
+      ++current;
+    } else {
+      const char* beginName = current;
+      while (current != end && !strchr("[.", *current))
+        ++current;
+      args_.push_back(JSONCPP_STRING(beginName, current));
+    }
+  }
+}
+
+void Path::addPathInArg(const JSONCPP_STRING& /*path*/,
+                        const InArgs& in,
+                        InArgs::const_iterator& itInArg,
+                        PathArgument::Kind kind) {
+  if (itInArg == in.end()) {
+    // Error: missing argument %d
+  } else if ((*itInArg)->kind_ != kind) {
+    // Error: bad argument type
+  } else {
+    args_.push_back(**itInArg++);
+  }
+}
+
+void Path::invalidPath(const JSONCPP_STRING& /*path*/, int /*location*/) {
+  // Error: invalid path.
+}
+
+const Value& Path::resolve(const Value& root) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_)) {
+        // Error: unable to resolve path (array value expected at position...
+        return Value::null;
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: unable to resolve path (object value expected at position...)
+        return Value::null;
+      }
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullSingleton()) {
+        // Error: unable to resolve path (object has no member named '' at
+        // position...)
+        return Value::null;
+      }
+    }
+  }
+  return *node;
+}
+
+Value Path::resolve(const Value& root, const Value& defaultValue) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_))
+        return defaultValue;
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject())
+        return defaultValue;
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullSingleton())
+        return defaultValue;
+    }
+  }
+  return *node;
+}
+
+Value& Path::make(Value& root) const {
+  Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray()) {
+        // Error: node is not an array at position ...
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: node is not an object at position...
+      }
+      node = &((*node)[arg.key_]);
+    }
+  }
+  return *node;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_value.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_writer.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/writer.h>
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <iomanip>
+#include <memory>
+#include <sstream>
+#include <utility>
+#include <set>
+#include <cassert>
+#include <cstring>
+#include <cstdio>
+
+#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0
+#include <float.h>
+#define isfinite _finite
+#elif defined(__sun) && defined(__SVR4) //Solaris
+#if !defined(isfinite)
+#include <ieeefp.h>
+#define isfinite finite
+#endif
+#elif defined(_AIX)
+#if !defined(isfinite)
+#include <math.h>
+#define isfinite finite
+#endif
+#elif defined(__hpux)
+#if !defined(isfinite)
+#if defined(__ia64) && !defined(finite)
+#define isfinite(x) ((sizeof(x) == sizeof(float) ? \
+                     _Isfinitef(x) : _IsFinite(x)))
+#else
+#include <math.h>
+#define isfinite finite
+#endif
+#endif
+#else
+#include <cmath>
+#if !(defined(__QNXNTO__)) // QNX already defines isfinite
+#define isfinite std::isfinite
+#endif
+#endif
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#if !defined(__MINGW32__) && !defined(__CYGWIN__)
+#define snprintf std::snprintf
+#endif
+#endif
+
+#if defined(__BORLANDC__)  
+#include <float.h>
+#define isfinite _finite
+#define snprintf _snprintf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<StreamWriter> StreamWriterPtr;
+#else
+typedef std::auto_ptr<StreamWriter>   StreamWriterPtr;
+#endif
+
+static bool containsControlCharacter(const char* str) {
+  while (*str) {
+    if (isControlCharacter(*(str++)))
+      return true;
+  }
+  return false;
+}
+
+static bool containsControlCharacter0(const char* str, unsigned len) {
+  char const* end = str + len;
+  while (end != str) {
+    if (isControlCharacter(*str) || 0==*str)
+      return true;
+    ++str;
+  }
+  return false;
+}
+
+JSONCPP_STRING valueToString(LargestInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  if (value == Value::minLargestInt) {
+    uintToString(LargestUInt(Value::maxLargestInt) + 1, current);
+    *--current = '-';
+  } else if (value < 0) {
+    uintToString(LargestUInt(-value), current);
+    *--current = '-';
+  } else {
+    uintToString(LargestUInt(value), current);
+  }
+  assert(current >= buffer);
+  return current;
+}
+
+JSONCPP_STRING valueToString(LargestUInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  uintToString(value, current);
+  assert(current >= buffer);
+  return current;
+}
+
+#if defined(JSON_HAS_INT64)
+
+JSONCPP_STRING valueToString(Int value) {
+  return valueToString(LargestInt(value));
+}
+
+JSONCPP_STRING valueToString(UInt value) {
+  return valueToString(LargestUInt(value));
+}
+
+#endif // # if defined(JSON_HAS_INT64)
+
+namespace {
+JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int precision) {
+  // Allocate a buffer that is more than large enough to store the 16 digits of
+  // precision requested below.
+  char buffer[32];
+  int len = -1;
+
+  char formatString[6];
+  sprintf(formatString, "%%.%dg", precision);
+
+  // Print into the buffer. We need not request the alternative representation
+  // that always has a decimal point because JSON doesn't distingish the
+  // concepts of reals and integers.
+  if (isfinite(value)) {
+    len = snprintf(buffer, sizeof(buffer), formatString, value);
+  } else {
+    // IEEE standard states that NaN values will not compare to themselves
+    if (value != value) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null");
+    } else if (value < 0) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999");
+    } else {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999");
+    }
+    // For those, we do not need to call fixNumLoc, but it is fast.
+  }
+  assert(len >= 0);
+  fixNumericLocale(buffer, buffer + len);
+  return buffer;
+}
+}
+
+JSONCPP_STRING valueToString(double value) { return valueToString(value, false, 17); }
+
+JSONCPP_STRING valueToString(bool value) { return value ? "true" : "false"; }
+
+JSONCPP_STRING valueToQuotedString(const char* value) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL &&
+      !containsControlCharacter(value))
+    return JSONCPP_STRING("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to JSONCPP_STRING is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  JSONCPP_STRING::size_type maxsize =
+      strlen(value) * 2 + 3; // allescaped+quotes+NULL
+  JSONCPP_STRING result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  for (const char* c = value; *c != 0; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if (isControlCharacter(*c)) {
+        JSONCPP_OSTRINGSTREAM oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// https://github.com/upcaste/upcaste/blob/master/src/upcore/src/cstring/strnpbrk.cpp
+static char const* strnpbrk(char const* s, char const* accept, size_t n) {
+  assert((s || !n) && accept);
+
+  char const* const end = s + n;
+  for (char const* cur = s; cur < end; ++cur) {
+    int const c = *cur;
+    for (char const* a = accept; *a; ++a) {
+      if (*a == c) {
+        return cur;
+      }
+    }
+  }
+  return NULL;
+}
+static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strnpbrk(value, "\"\\\b\f\n\r\t", length) == NULL &&
+      !containsControlCharacter0(value, length))
+    return JSONCPP_STRING("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to JSONCPP_STRING is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  JSONCPP_STRING::size_type maxsize =
+      length * 2 + 3; // allescaped+quotes+NULL
+  JSONCPP_STRING result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  char const* end = value + length;
+  for (const char* c = value; c != end; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.)
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if ((isControlCharacter(*c)) || (*c == 0)) {
+        JSONCPP_OSTRINGSTREAM oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// Class Writer
+// //////////////////////////////////////////////////////////////////
+Writer::~Writer() {}
+
+// Class FastWriter
+// //////////////////////////////////////////////////////////////////
+
+FastWriter::FastWriter()
+    : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false),
+      omitEndingLineFeed_(false) {}
+
+void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; }
+
+void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
+
+void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
+
+JSONCPP_STRING FastWriter::write(const Value& root) {
+  document_ = "";
+  writeValue(root);
+  if (!omitEndingLineFeed_)
+    document_ += "\n";
+  return document_;
+}
+
+void FastWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    if (!dropNullPlaceholders_)
+      document_ += "null";
+    break;
+  case intValue:
+    document_ += valueToString(value.asLargestInt());
+    break;
+  case uintValue:
+    document_ += valueToString(value.asLargestUInt());
+    break;
+  case realValue:
+    document_ += valueToString(value.asDouble());
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str));
+    break;
+  }
+  case booleanValue:
+    document_ += valueToString(value.asBool());
+    break;
+  case arrayValue: {
+    document_ += '[';
+    ArrayIndex size = value.size();
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (index > 0)
+        document_ += ',';
+      writeValue(value[index]);
+    }
+    document_ += ']';
+  } break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    document_ += '{';
+    for (Value::Members::iterator it = members.begin(); it != members.end();
+         ++it) {
+      const JSONCPP_STRING& name = *it;
+      if (it != members.begin())
+        document_ += ',';
+      document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
+      document_ += yamlCompatiblityEnabled_ ? ": " : ":";
+      writeValue(value[name]);
+    }
+    document_ += '}';
+  } break;
+  }
+}
+
+// Class StyledWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledWriter::StyledWriter()
+    : rightMargin_(74), indentSize_(3), addChildValues_() {}
+
+JSONCPP_STRING StyledWriter::write(const Value& root) {
+  document_ = "";
+  addChildValues_ = false;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  document_ += "\n";
+  return document_;
+}
+
+void StyledWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const JSONCPP_STRING& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        document_ += " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          writeIndent();
+          writeValue(childValue);
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      document_ += "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          document_ += ", ";
+        document_ += childValues_[index];
+      }
+      document_ += " ]";
+    }
+  }
+}
+
+bool StyledWriter::isMultineArray(const Value& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledWriter::pushValue(const JSONCPP_STRING& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    document_ += value;
+}
+
+void StyledWriter::writeIndent() {
+  if (!document_.empty()) {
+    char last = document_[document_.length() - 1];
+    if (last == ' ') // already indented
+      return;
+    if (last != '\n') // Comments may add new-line
+      document_ += '\n';
+  }
+  document_ += indentString_;
+}
+
+void StyledWriter::writeWithIndent(const JSONCPP_STRING& value) {
+  writeIndent();
+  document_ += value;
+}
+
+void StyledWriter::indent() { indentString_ += JSONCPP_STRING(indentSize_, ' '); }
+
+void StyledWriter::unindent() {
+  assert(indentString_.size() >= indentSize_);
+  indentString_.resize(indentString_.size() - indentSize_);
+}
+
+void StyledWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  document_ += "\n";
+  writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    document_ += *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      writeIndent();
+    ++iter;
+  }
+
+  // Comments are stripped of trailing newlines, so add one here
+  document_ += "\n";
+}
+
+void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    document_ += " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    document_ += "\n";
+    document_ += root.getComment(commentAfter);
+    document_ += "\n";
+  }
+}
+
+bool StyledWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+// Class StyledStreamWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation)
+    : document_(NULL), rightMargin_(74), indentation_(indentation),
+      addChildValues_() {}
+
+void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
+  document_ = &out;
+  addChildValues_ = false;
+  indentString_ = "";
+  indented_ = true;
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *document_ << "\n";
+  document_ = NULL; // Forget the stream, for safety.
+}
+
+void StyledStreamWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const JSONCPP_STRING& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        *document_ << " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledStreamWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *document_ << "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *document_ << ", ";
+        *document_ << childValues_[index];
+      }
+      *document_ << " ]";
+    }
+  }
+}
+
+bool StyledStreamWriter::isMultineArray(const Value& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledStreamWriter::pushValue(const JSONCPP_STRING& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *document_ << value;
+}
+
+void StyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+  *document_ << '\n' << indentString_;
+}
+
+void StyledStreamWriter::writeWithIndent(const JSONCPP_STRING& value) {
+  if (!indented_) writeIndent();
+  *document_ << value;
+  indented_ = false;
+}
+
+void StyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void StyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void StyledStreamWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *document_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would include newline
+      *document_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void StyledStreamWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    *document_ << ' ' << root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *document_ << root.getComment(commentAfter);
+  }
+  indented_ = false;
+}
+
+bool StyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+//////////////////////////
+// BuiltStyledStreamWriter
+
+/// Scoped enums are not available until C++11.
+struct CommentStyle {
+  /// Decide whether to write comments.
+  enum Enum {
+    None,  ///< Drop all comments.
+    Most,  ///< Recover odd behavior of previous versions (not implemented yet).
+    All  ///< Keep all comments.
+  };
+};
+
+struct BuiltStyledStreamWriter : public StreamWriter
+{
+  BuiltStyledStreamWriter(
+      JSONCPP_STRING const& indentation,
+      CommentStyle::Enum cs,
+      JSONCPP_STRING const& colonSymbol,
+      JSONCPP_STRING const& nullSymbol,
+      JSONCPP_STRING const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision);
+  int write(Value const& root, JSONCPP_OSTREAM* sout) JSONCPP_OVERRIDE;
+private:
+  void writeValue(Value const& value);
+  void writeArrayValue(Value const& value);
+  bool isMultineArray(Value const& value);
+  void pushValue(JSONCPP_STRING const& value);
+  void writeIndent();
+  void writeWithIndent(JSONCPP_STRING const& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(Value const& root);
+  void writeCommentAfterValueOnSameLine(Value const& root);
+  static bool hasCommentForValue(const Value& value);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  JSONCPP_STRING indentation_;
+  CommentStyle::Enum cs_;
+  JSONCPP_STRING colonSymbol_;
+  JSONCPP_STRING nullSymbol_;
+  JSONCPP_STRING endingLineFeedSymbol_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+  bool useSpecialFloats_ : 1;
+  unsigned int precision_;
+};
+BuiltStyledStreamWriter::BuiltStyledStreamWriter(
+      JSONCPP_STRING const& indentation,
+      CommentStyle::Enum cs,
+      JSONCPP_STRING const& colonSymbol,
+      JSONCPP_STRING const& nullSymbol,
+      JSONCPP_STRING const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision)
+  : rightMargin_(74)
+  , indentation_(indentation)
+  , cs_(cs)
+  , colonSymbol_(colonSymbol)
+  , nullSymbol_(nullSymbol)
+  , endingLineFeedSymbol_(endingLineFeedSymbol)
+  , addChildValues_(false)
+  , indented_(false)
+  , useSpecialFloats_(useSpecialFloats)
+  , precision_(precision)
+{
+}
+int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout)
+{
+  sout_ = sout;
+  addChildValues_ = false;
+  indented_ = true;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *sout_ << endingLineFeedSymbol_;
+  sout_ = NULL;
+  return 0;
+}
+void BuiltStyledStreamWriter::writeValue(Value const& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue(nullSymbol_);
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_));
+    break;
+  case stringValue:
+  {
+    // Is NULL is possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        JSONCPP_STRING const& name = *it;
+        Value const& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())));
+        *sout_ << colonSymbol_;
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value);
+    if (isMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        Value const& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *sout_ << "[";
+      if (!indentation_.empty()) *sout_ << " ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *sout_ << ((!indentation_.empty()) ? ", " : ",");
+        *sout_ << childValues_[index];
+      }
+      if (!indentation_.empty()) *sout_ << " ";
+      *sout_ << "]";
+    }
+  }
+}
+
+bool BuiltStyledStreamWriter::isMultineArray(Value const& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    Value const& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void BuiltStyledStreamWriter::pushValue(JSONCPP_STRING const& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *sout_ << value;
+}
+
+void BuiltStyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+
+  if (!indentation_.empty()) {
+    // In this case, drop newlines too.
+    *sout_ << '\n' << indentString_;
+  }
+}
+
+void BuiltStyledStreamWriter::writeWithIndent(JSONCPP_STRING const& value) {
+  if (!indented_) writeIndent();
+  *sout_ << value;
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void BuiltStyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *sout_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would write extra newline
+      *sout_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (root.hasComment(commentAfterOnSameLine))
+    *sout_ << " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *sout_ << root.getComment(commentAfter);
+  }
+}
+
+// static
+bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+///////////////
+// StreamWriter
+
+StreamWriter::StreamWriter()
+    : sout_(NULL)
+{
+}
+StreamWriter::~StreamWriter()
+{
+}
+StreamWriter::Factory::~Factory()
+{}
+StreamWriterBuilder::StreamWriterBuilder()
+{
+  setDefaults(&settings_);
+}
+StreamWriterBuilder::~StreamWriterBuilder()
+{}
+StreamWriter* StreamWriterBuilder::newStreamWriter() const
+{
+  JSONCPP_STRING indentation = settings_["indentation"].asString();
+  JSONCPP_STRING cs_str = settings_["commentStyle"].asString();
+  bool eyc = settings_["enableYAMLCompatibility"].asBool();
+  bool dnp = settings_["dropNullPlaceholders"].asBool();
+  bool usf = settings_["useSpecialFloats"].asBool(); 
+  unsigned int pre = settings_["precision"].asUInt();
+  CommentStyle::Enum cs = CommentStyle::All;
+  if (cs_str == "All") {
+    cs = CommentStyle::All;
+  } else if (cs_str == "None") {
+    cs = CommentStyle::None;
+  } else {
+    throwRuntimeError("commentStyle must be 'All' or 'None'");
+  }
+  JSONCPP_STRING colonSymbol = " : ";
+  if (eyc) {
+    colonSymbol = ": ";
+  } else if (indentation.empty()) {
+    colonSymbol = ":";
+  }
+  JSONCPP_STRING nullSymbol = "null";
+  if (dnp) {
+    nullSymbol = "";
+  }
+  if (pre > 17) pre = 17;
+  JSONCPP_STRING endingLineFeedSymbol = "";
+  return new BuiltStyledStreamWriter(
+      indentation, cs,
+      colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);
+}
+static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("indentation");
+  valid_keys->insert("commentStyle");
+  valid_keys->insert("enableYAMLCompatibility");
+  valid_keys->insert("dropNullPlaceholders");
+  valid_keys->insert("useSpecialFloats");
+  valid_keys->insert("precision");
+}
+bool StreamWriterBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<JSONCPP_STRING> valid_keys;
+  getValidWriterKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    JSONCPP_STRING const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
+{
+  return settings_[key];
+}
+// static
+void StreamWriterBuilder::setDefaults(Json::Value* settings)
+{
+  //! [StreamWriterBuilderDefaults]
+  (*settings)["commentStyle"] = "All";
+  (*settings)["indentation"] = "\t";
+  (*settings)["enableYAMLCompatibility"] = false;
+  (*settings)["dropNullPlaceholders"] = false;
+  (*settings)["useSpecialFloats"] = false;
+  (*settings)["precision"] = 17;
+  //! [StreamWriterBuilderDefaults]
+}
+
+JSONCPP_STRING writeString(StreamWriter::Factory const& builder, Value const& root) {
+  JSONCPP_OSTRINGSTREAM sout;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout.str();
+}
+
+JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) {
+  StreamWriterBuilder builder;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_writer.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp
new file mode 100644
index 0000000..77ea425
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.cpp
@@ -0,0 +1,3184 @@
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <float.h>
+#include <string.h>
+#include <stdarg.h>
+#include <limits.h>
+#include <locale.h>
+#include "libsvm.h"
+
+namespace LIBSVM {
+    int libsvm_version = LIBSVM_VERSION;
+    typedef float Qfloat;
+    typedef signed char schar;
+#ifndef min
+    template <class T> static inline T min(T x,T y) { return (x<y)?x:y; }
+#endif
+#ifndef max
+    template <class T> static inline T max(T x,T y) { return (x>y)?x:y; }
+#endif
+    template <class T> static inline void swap(T& x, T& y) { T t=x; x=y; y=t; }
+    template <class S, class T> static inline void clone(T*& dst, S* src, int n)
+    {
+        dst = new T[n];
+        memcpy((void *)dst,(void *)src,sizeof(T)*n);
+    }
+    static inline double powi(double base, int times)
+    {
+        double tmp = base, ret = 1.0;
+        
+        for(int t=times; t>0; t/=2)
+        {
+            if(t%2==1) ret*=tmp;
+            tmp = tmp * tmp;
+        }
+        return ret;
+    }
+#define INF HUGE_VAL
+#define TAU 1e-12
+#define Malloc(type,n) (type *)malloc((n)*sizeof(type))
+    
+    static void print_string_stdout(const char *s)
+    {
+        fputs(s,stdout);
+        fflush(stdout);
+    }
+    static void (*svm_print_string) (const char *) = &print_string_stdout;
+#if 1
+    static void info(const char *fmt,...)
+    {
+        char buf[BUFSIZ];
+        va_list ap;
+        va_start(ap,fmt);
+        vsprintf(buf,fmt,ap);
+        va_end(ap);
+        (*svm_print_string)(buf);
+    }
+#else
+    static void info(const char *fmt,...) {}
+#endif
+    
+    //
+    // Kernel Cache
+    //
+    // l is the number of total data items
+    // size is the cache size limit in bytes
+    //
+    class Cache
+    {
+    public:
+        Cache(int l,long int size);
+        ~Cache();
+        
+        // request data [0,len)
+        // return some position p where [p,len) need to be filled
+        // (p >= len if nothing needs to be filled)
+        int get_data(const int index, Qfloat **data, int len);
+        void swap_index(int i, int j);
+    private:
+        int l;
+        long int size;
+        struct head_t
+        {
+            head_t *prev, *next;	// a circular list
+            Qfloat *data;
+            int len;		// data[0,len) is cached in this entry
+        };
+        
+        head_t *head;
+        head_t lru_head;
+        void lru_delete(head_t *h);
+        void lru_insert(head_t *h);
+    };
+    
+    Cache::Cache(int l_,long int size_):l(l_),size(size_)
+    {
+        head = (head_t *)calloc(l,sizeof(head_t));	// initialized to 0
+        size /= sizeof(Qfloat);
+        size -= l * sizeof(head_t) / sizeof(Qfloat);
+        size = max(size, 2 * (long int) l);	// cache must be large enough for two columns
+        lru_head.next = lru_head.prev = &lru_head;
+    }
+    
+    Cache::~Cache()
+    {
+        for(head_t *h = lru_head.next; h != &lru_head; h=h->next)
+            free(h->data);
+        free(head);
+    }
+    
+    void Cache::lru_delete(head_t *h)
+    {
+        // delete from current location
+        h->prev->next = h->next;
+        h->next->prev = h->prev;
+    }
+    
+    void Cache::lru_insert(head_t *h)
+    {
+        // insert to last position
+        h->next = &lru_head;
+        h->prev = lru_head.prev;
+        h->prev->next = h;
+        h->next->prev = h;
+    }
+    
+    int Cache::get_data(const int index, Qfloat **data, int len)
+    {
+        head_t *h = &head[index];
+        if(h->len) lru_delete(h);
+        int more = len - h->len;
+        
+        if(more > 0)
+        {
+            // free old space
+            while(size < more)
+            {
+                head_t *old = lru_head.next;
+                lru_delete(old);
+                free(old->data);
+                size += old->len;
+                old->data = 0;
+                old->len = 0;
+            }
+            
+            // allocate new space
+            h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len);
+            size -= more;
+            swap(h->len,len);
+        }
+        
+        lru_insert(h);
+        *data = h->data;
+        return len;
+    }
+    
+    void Cache::swap_index(int i, int j)
+    {
+        if(i==j) return;
+        
+        if(head[i].len) lru_delete(&head[i]);
+        if(head[j].len) lru_delete(&head[j]);
+        swap(head[i].data,head[j].data);
+        swap(head[i].len,head[j].len);
+        if(head[i].len) lru_insert(&head[i]);
+        if(head[j].len) lru_insert(&head[j]);
+        
+        if(i>j) swap(i,j);
+        for(head_t *h = lru_head.next; h!=&lru_head; h=h->next)
+        {
+            if(h->len > i)
+            {
+                if(h->len > j)
+                    swap(h->data[i],h->data[j]);
+                else
+                {
+                    // give up
+                    lru_delete(h);
+                    free(h->data);
+                    size += h->len;
+                    h->data = 0;
+                    h->len = 0;
+                }
+            }
+        }
+    }
+    
+    //
+    // Kernel evaluation
+    //
+    // the static method k_function is for doing single kernel evaluation
+    // the constructor of Kernel prepares to calculate the l*l kernel matrix
+    // the member function get_Q is for getting one column from the Q Matrix
+    //
+    class QMatrix {
+    public:
+        virtual Qfloat *get_Q(int column, int len) const = 0;
+        virtual double *get_QD() const = 0;
+        virtual void swap_index(int i, int j) const = 0;
+        virtual ~QMatrix() {}
+    };
+    
+    class Kernel: public QMatrix {
+    public:
+        Kernel(int l, svm_node * const * x, const svm_parameter& param);
+        virtual ~Kernel();
+        
+        static double k_function(const svm_node *x, const svm_node *y,
+                                 const svm_parameter& param);
+        virtual Qfloat *get_Q(int column, int len) const = 0;
+        virtual double *get_QD() const = 0;
+        virtual void swap_index(int i, int j) const	// no so const...
+        {
+            swap(x[i],x[j]);
+            if(x_square) swap(x_square[i],x_square[j]);
+        }
+    protected:
+        
+        double (Kernel::*kernel_function)(int i, int j) const;
+        
+    private:
+        const svm_node **x;
+        double *x_square;
+        
+        // svm_parameter
+        const int kernel_type;
+        const int degree;
+        const double gamma;
+        const double coef0;
+        
+        static double dot(const svm_node *px, const svm_node *py);
+        double kernel_linear(int i, int j) const
+        {
+            return dot(x[i],x[j]);
+        }
+        double kernel_poly(int i, int j) const
+        {
+            return powi(gamma*dot(x[i],x[j])+coef0,degree);
+        }
+        double kernel_rbf(int i, int j) const
+        {
+            return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j])));
+        }
+        double kernel_sigmoid(int i, int j) const
+        {
+            return tanh(gamma*dot(x[i],x[j])+coef0);
+        }
+        double kernel_precomputed(int i, int j) const
+        {
+            return x[i][(int)(x[j][0].value)].value;
+        }
+    };
+    
+    Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param)
+    :kernel_type(param.kernel_type), degree(param.degree),
+    gamma(param.gamma), coef0(param.coef0)
+    {
+        switch(kernel_type)
+        {
+            case LINEAR:
+                kernel_function = &Kernel::kernel_linear;
+                break;
+            case POLY:
+                kernel_function = &Kernel::kernel_poly;
+                break;
+            case RBF:
+                kernel_function = &Kernel::kernel_rbf;
+                break;
+            case SIGMOID:
+                kernel_function = &Kernel::kernel_sigmoid;
+                break;
+            case PRECOMPUTED:
+                kernel_function = &Kernel::kernel_precomputed;
+                break;
+        }
+        
+        clone(x,x_,l);
+        
+        if(kernel_type == RBF)
+        {
+            x_square = new double[l];
+            for(int i=0;i<l;i++)
+                x_square[i] = dot(x[i],x[i]);
+        }
+        else
+            x_square = 0;
+    }
+    
+    Kernel::~Kernel()
+    {
+        delete[] x;
+        delete[] x_square;
+    }
+    
+    double Kernel::dot(const svm_node *px, const svm_node *py)
+    {
+        double sum = 0;
+        while(px->index != -1 && py->index != -1)
+        {
+            if(px->index == py->index)
+            {
+                sum += px->value * py->value;
+                ++px;
+                ++py;
+            }
+            else
+            {
+                if(px->index > py->index)
+                    ++py;
+                else
+                    ++px;
+            }
+        }
+        return sum;
+    }
+    
+    double Kernel::k_function(const svm_node *x, const svm_node *y,
+                              const svm_parameter& param)
+    {
+        switch(param.kernel_type)
+        {
+            case LINEAR:
+                return dot(x,y);
+            case POLY:
+                return powi(param.gamma*dot(x,y)+param.coef0,param.degree);
+            case RBF:
+            {
+                double sum = 0;
+                while(x->index != -1 && y->index !=-1)
+                {
+                    if(x->index == y->index)
+                    {
+                        double d = x->value - y->value;
+                        sum += d*d;
+                        ++x;
+                        ++y;
+                    }
+                    else
+                    {
+                        if(x->index > y->index)
+                        {
+                            sum += y->value * y->value;
+                            ++y;
+                        }
+                        else
+                        {
+                            sum += x->value * x->value;
+                            ++x;
+                        }
+                    }
+                }
+                
+                while(x->index != -1)
+                {
+                    sum += x->value * x->value;
+                    ++x;
+                }
+                
+                while(y->index != -1)
+                {
+                    sum += y->value * y->value;
+                    ++y;
+                }
+                
+                return exp(-param.gamma*sum);
+            }
+            case SIGMOID:
+                return tanh(param.gamma*dot(x,y)+param.coef0);
+            case PRECOMPUTED:  //x: test (validation), y: SV
+                return x[(int)(y->value)].value;
+            default:
+                return 0;  // Unreachable
+        }
+    }
+    
+    // An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918
+    // Solves:
+    //
+    //	min 0.5(\alpha^T Q \alpha) + p^T \alpha
+    //
+    //		y^T \alpha = \delta
+    //		y_i = +1 or -1
+    //		0 <= alpha_i <= Cp for y_i = 1
+    //		0 <= alpha_i <= Cn for y_i = -1
+    //
+    // Given:
+    //
+    //	Q, p, y, Cp, Cn, and an initial feasible point \alpha
+    //	l is the size of vectors and matrices
+    //	eps is the stopping tolerance
+    //
+    // solution will be put in \alpha, objective value will be put in obj
+    //
+    class Solver {
+    public:
+        Solver() {};
+        virtual ~Solver() {};
+        
+        struct SolutionInfo {
+            double obj;
+            double rho;
+            double upper_bound_p;
+            double upper_bound_n;
+            double r;	// for Solver_NU
+        };
+        
+        void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_,
+                   double *alpha_, double Cp, double Cn, double eps,
+                   SolutionInfo* si, int shrinking);
+    protected:
+        int active_size;
+        schar *y;
+        double *G;		// gradient of objective function
+        enum { LOWER_BOUND, UPPER_BOUND, FREE };
+        char *alpha_status;	// LOWER_BOUND, UPPER_BOUND, FREE
+        double *alpha;
+        const QMatrix *Q;
+        const double *QD;
+        double eps;
+        double Cp,Cn;
+        double *p;
+        int *active_set;
+        double *G_bar;		// gradient, if we treat free variables as 0
+        int l;
+        bool unshrink;	// XXX
+        
+        double get_C(int i)
+        {
+            return (y[i] > 0)? Cp : Cn;
+        }
+        void update_alpha_status(int i)
+        {
+            if(alpha[i] >= get_C(i))
+                alpha_status[i] = UPPER_BOUND;
+            else if(alpha[i] <= 0)
+                alpha_status[i] = LOWER_BOUND;
+            else alpha_status[i] = FREE;
+        }
+        bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; }
+        bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; }
+        bool is_free(int i) { return alpha_status[i] == FREE; }
+        void swap_index(int i, int j);
+        void reconstruct_gradient();
+        virtual int select_working_set(int &i, int &j);
+        virtual double calculate_rho();
+        virtual void do_shrinking();
+    private:
+        bool be_shrunk(int i, double Gmax1, double Gmax2);
+    };
+    
+    void Solver::swap_index(int i, int j)
+    {
+        Q->swap_index(i,j);
+        swap(y[i],y[j]);
+        swap(G[i],G[j]);
+        swap(alpha_status[i],alpha_status[j]);
+        swap(alpha[i],alpha[j]);
+        swap(p[i],p[j]);
+        swap(active_set[i],active_set[j]);
+        swap(G_bar[i],G_bar[j]);
+    }
+    
+    void Solver::reconstruct_gradient()
+    {
+        // reconstruct inactive elements of G from G_bar and free variables
+        
+        if(active_size == l) return;
+        
+        int i,j;
+        int nr_free = 0;
+        
+        for(j=active_size;j<l;j++)
+            G[j] = G_bar[j] + p[j];
+        
+        for(j=0;j<active_size;j++)
+            if(is_free(j))
+                nr_free++;
+        
+        if(2*nr_free < active_size)
+            info("\nWARNING: using -h 0 may be faster\n");
+        
+        if (nr_free*l > 2*active_size*(l-active_size))
+        {
+            for(i=active_size;i<l;i++)
+            {
+                const Qfloat *Q_i = Q->get_Q(i,active_size);
+                for(j=0;j<active_size;j++)
+                    if(is_free(j))
+                        G[i] += alpha[j] * Q_i[j];
+            }
+        }
+        else
+        {
+            for(i=0;i<active_size;i++)
+                if(is_free(i))
+                {
+                    const Qfloat *Q_i = Q->get_Q(i,l);
+                    double alpha_i = alpha[i];
+                    for(j=active_size;j<l;j++)
+                        G[j] += alpha_i * Q_i[j];
+                }
+        }
+    }
+    
+    void Solver::Solve(int l, const QMatrix& Q, const double *p_, const schar *y_,
+                       double *alpha_, double Cp, double Cn, double eps,
+                       SolutionInfo* si, int shrinking)
+    {
+        this->l = l;
+        this->Q = &Q;
+        QD=Q.get_QD();
+        clone(p, p_,l);
+        clone(y, y_,l);
+        clone(alpha,alpha_,l);
+        this->Cp = Cp;
+        this->Cn = Cn;
+        this->eps = eps;
+        unshrink = false;
+        
+        // initialize alpha_status
+        {
+            alpha_status = new char[l];
+            for(int i=0;i<l;i++)
+                update_alpha_status(i);
+        }
+        
+        // initialize active set (for shrinking)
+        {
+            active_set = new int[l];
+            for(int i=0;i<l;i++)
+                active_set[i] = i;
+            active_size = l;
+        }
+        
+        // initialize gradient
+        {
+            G = new double[l];
+            G_bar = new double[l];
+            int i;
+            for(i=0;i<l;i++)
+            {
+                G[i] = p[i];
+                G_bar[i] = 0;
+            }
+            for(i=0;i<l;i++)
+                if(!is_lower_bound(i))
+                {
+                    const Qfloat *Q_i = Q.get_Q(i,l);
+                    double alpha_i = alpha[i];
+                    int j;
+                    for(j=0;j<l;j++)
+                        G[j] += alpha_i*Q_i[j];
+                    if(is_upper_bound(i))
+                        for(j=0;j<l;j++)
+                            G_bar[j] += get_C(i) * Q_i[j];
+                }
+        }
+        
+        // optimization step
+        
+        int iter = 0;
+        int max_iter = max(10000000, l>INT_MAX/100 ? INT_MAX : 100*l);
+        int counter = min(l,1000)+1;
+        
+        while(iter < max_iter)
+        {
+            // show progress and do shrinking
+            
+            if(--counter == 0)
+            {
+                counter = min(l,1000);
+                if(shrinking) do_shrinking();
+                info(".");
+            }
+            
+            int i,j;
+            if(select_working_set(i,j)!=0)
+            {
+                // reconstruct the whole gradient
+                reconstruct_gradient();
+                // reset active set size and check
+                active_size = l;
+                info("*");
+                if(select_working_set(i,j)!=0)
+                    break;
+                else
+                    counter = 1;	// do shrinking next iteration
+            }
+            
+            ++iter;
+            
+            // update alpha[i] and alpha[j], handle bounds carefully
+            
+            const Qfloat *Q_i = Q.get_Q(i,active_size);
+            const Qfloat *Q_j = Q.get_Q(j,active_size);
+            
+            double C_i = get_C(i);
+            double C_j = get_C(j);
+            
+            double old_alpha_i = alpha[i];
+            double old_alpha_j = alpha[j];
+            
+            if(y[i]!=y[j])
+            {
+                double quad_coef = QD[i]+QD[j]+2*Q_i[j];
+                if (quad_coef <= 0)
+                    quad_coef = TAU;
+                double delta = (-G[i]-G[j])/quad_coef;
+                double diff = alpha[i] - alpha[j];
+                alpha[i] += delta;
+                alpha[j] += delta;
+                
+                if(diff > 0)
+                {
+                    if(alpha[j] < 0)
+                    {
+                        alpha[j] = 0;
+                        alpha[i] = diff;
+                    }
+                }
+                else
+                {
+                    if(alpha[i] < 0)
+                    {
+                        alpha[i] = 0;
+                        alpha[j] = -diff;
+                    }
+                }
+                if(diff > C_i - C_j)
+                {
+                    if(alpha[i] > C_i)
+                    {
+                        alpha[i] = C_i;
+                        alpha[j] = C_i - diff;
+                    }
+                }
+                else
+                {
+                    if(alpha[j] > C_j)
+                    {
+                        alpha[j] = C_j;
+                        alpha[i] = C_j + diff;
+                    }
+                }
+            }
+            else
+            {
+                double quad_coef = QD[i]+QD[j]-2*Q_i[j];
+                if (quad_coef <= 0)
+                    quad_coef = TAU;
+                double delta = (G[i]-G[j])/quad_coef;
+                double sum = alpha[i] + alpha[j];
+                alpha[i] -= delta;
+                alpha[j] += delta;
+                
+                if(sum > C_i)
+                {
+                    if(alpha[i] > C_i)
+                    {
+                        alpha[i] = C_i;
+                        alpha[j] = sum - C_i;
+                    }
+                }
+                else
+                {
+                    if(alpha[j] < 0)
+                    {
+                        alpha[j] = 0;
+                        alpha[i] = sum;
+                    }
+                }
+                if(sum > C_j)
+                {
+                    if(alpha[j] > C_j)
+                    {
+                        alpha[j] = C_j;
+                        alpha[i] = sum - C_j;
+                    }
+                }
+                else
+                {
+                    if(alpha[i] < 0)
+                    {
+                        alpha[i] = 0;
+                        alpha[j] = sum;
+                    }
+                }
+            }
+            
+            // update G
+            
+            double delta_alpha_i = alpha[i] - old_alpha_i;
+            double delta_alpha_j = alpha[j] - old_alpha_j;
+            
+            for(int k=0;k<active_size;k++)
+            {
+                G[k] += Q_i[k]*delta_alpha_i + Q_j[k]*delta_alpha_j;
+            }
+            
+            // update alpha_status and G_bar
+            
+            {
+                bool ui = is_upper_bound(i);
+                bool uj = is_upper_bound(j);
+                update_alpha_status(i);
+                update_alpha_status(j);
+                int k;
+                if(ui != is_upper_bound(i))
+                {
+                    Q_i = Q.get_Q(i,l);
+                    if(ui)
+                        for(k=0;k<l;k++)
+                            G_bar[k] -= C_i * Q_i[k];
+                    else
+                        for(k=0;k<l;k++)
+                            G_bar[k] += C_i * Q_i[k];
+                }
+                
+                if(uj != is_upper_bound(j))
+                {
+                    Q_j = Q.get_Q(j,l);
+                    if(uj)
+                        for(k=0;k<l;k++)
+                            G_bar[k] -= C_j * Q_j[k];
+                    else
+                        for(k=0;k<l;k++)
+                            G_bar[k] += C_j * Q_j[k];
+                }
+            }
+        }
+        
+        if(iter >= max_iter)
+        {
+            if(active_size < l)
+            {
+                // reconstruct the whole gradient to calculate objective value
+                reconstruct_gradient();
+                active_size = l;
+                info("*");
+            }
+            fprintf(stderr,"\nWARNING: reaching max number of iterations\n");
+        }
+        
+        // calculate rho
+        
+        si->rho = calculate_rho();
+        
+        // calculate objective value
+        {
+            double v = 0;
+            int i;
+            for(i=0;i<l;i++)
+                v += alpha[i] * (G[i] + p[i]);
+            
+            si->obj = v/2;
+        }
+        
+        // put back the solution
+        {
+            for(int i=0;i<l;i++)
+                alpha_[active_set[i]] = alpha[i];
+        }
+        
+        // juggle everything back
+        /*{
+         for(int i=0;i<l;i++)
+         while(active_set[i] != i)
+         swap_index(i,active_set[i]);
+         // or Q.swap_index(i,active_set[i]);
+         }*/
+        
+        si->upper_bound_p = Cp;
+        si->upper_bound_n = Cn;
+        
+        info("\noptimization finished, #iter = %d\n",iter);
+        
+        delete[] p;
+        delete[] y;
+        delete[] alpha;
+        delete[] alpha_status;
+        delete[] active_set;
+        delete[] G;
+        delete[] G_bar;
+    }
+    
+    // return 1 if already optimal, return 0 otherwise
+    int Solver::select_working_set(int &out_i, int &out_j)
+    {
+        // return i,j such that
+        // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)
+        // j: minimizes the decrease of obj value
+        //    (if quadratic coefficeint <= 0, replace it with tau)
+        //    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)
+        
+        double Gmax = -INF;
+        double Gmax2 = -INF;
+        int Gmax_idx = -1;
+        int Gmin_idx = -1;
+        double obj_diff_min = INF;
+        
+        for(int t=0;t<active_size;t++)
+            if(y[t]==+1)
+            {
+                if(!is_upper_bound(t))
+                    if(-G[t] >= Gmax)
+                    {
+                        Gmax = -G[t];
+                        Gmax_idx = t;
+                    }
+            }
+            else
+            {
+                if(!is_lower_bound(t))
+                    if(G[t] >= Gmax)
+                    {
+                        Gmax = G[t];
+                        Gmax_idx = t;
+                    }
+            }
+        
+        int i = Gmax_idx;
+        const Qfloat *Q_i = NULL;
+        if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1
+            Q_i = Q->get_Q(i,active_size);
+        
+        for(int j=0;j<active_size;j++)
+        {
+            if(y[j]==+1)
+            {
+                if (!is_lower_bound(j))
+                {
+                    double grad_diff=Gmax+G[j];
+                    if (G[j] >= Gmax2)
+                        Gmax2 = G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                if (!is_upper_bound(j))
+                {
+                    double grad_diff= Gmax-G[j];
+                    if (-G[j] >= Gmax2)
+                        Gmax2 = -G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+        }
+        
+        if(Gmax+Gmax2 < eps || Gmin_idx == -1)
+            return 1;
+        
+        out_i = Gmax_idx;
+        out_j = Gmin_idx;
+        return 0;
+    }
+    
+    bool Solver::be_shrunk(int i, double Gmax1, double Gmax2)
+    {
+        if(is_upper_bound(i))
+        {
+            if(y[i]==+1)
+                return(-G[i] > Gmax1);
+            else
+                return(-G[i] > Gmax2);
+        }
+        else if(is_lower_bound(i))
+        {
+            if(y[i]==+1)
+                return(G[i] > Gmax2);
+            else
+                return(G[i] > Gmax1);
+        }
+        else
+            return(false);
+    }
+    
+    void Solver::do_shrinking()
+    {
+        int i;
+        double Gmax1 = -INF;		// max { -y_i * grad(f)_i | i in I_up(\alpha) }
+        double Gmax2 = -INF;		// max { y_i * grad(f)_i | i in I_low(\alpha) }
+        
+        // find maximal violating pair first
+        for(i=0;i<active_size;i++)
+        {
+            if(y[i]==+1)
+            {
+                if(!is_upper_bound(i))
+                {
+                    if(-G[i] >= Gmax1)
+                        Gmax1 = -G[i];
+                }
+                if(!is_lower_bound(i))
+                {
+                    if(G[i] >= Gmax2)
+                        Gmax2 = G[i];
+                }
+            }
+            else
+            {
+                if(!is_upper_bound(i))
+                {
+                    if(-G[i] >= Gmax2)
+                        Gmax2 = -G[i];
+                }
+                if(!is_lower_bound(i))
+                {
+                    if(G[i] >= Gmax1)
+                        Gmax1 = G[i];
+                }
+            }
+        }
+        
+        if(unshrink == false && Gmax1 + Gmax2 <= eps*10)
+        {
+            unshrink = true;
+            reconstruct_gradient();
+            active_size = l;
+            info("*");
+        }
+        
+        for(i=0;i<active_size;i++)
+            if (be_shrunk(i, Gmax1, Gmax2))
+            {
+                active_size--;
+                while (active_size > i)
+                {
+                    if (!be_shrunk(active_size, Gmax1, Gmax2))
+                    {
+                        swap_index(i,active_size);
+                        break;
+                    }
+                    active_size--;
+                }
+            }
+    }
+    
+    double Solver::calculate_rho()
+    {
+        double r;
+        int nr_free = 0;
+        double ub = INF, lb = -INF, sum_free = 0;
+        for(int i=0;i<active_size;i++)
+        {
+            double yG = y[i]*G[i];
+            
+            if(is_upper_bound(i))
+            {
+                if(y[i]==-1)
+                    ub = min(ub,yG);
+                else
+                    lb = max(lb,yG);
+            }
+            else if(is_lower_bound(i))
+            {
+                if(y[i]==+1)
+                    ub = min(ub,yG);
+                else
+                    lb = max(lb,yG);
+            }
+            else
+            {
+                ++nr_free;
+                sum_free += yG;
+            }
+        }
+        
+        if(nr_free>0)
+            r = sum_free/nr_free;
+        else
+            r = (ub+lb)/2;
+        
+        return r;
+    }
+    
+    //
+    // Solver for nu-svm classification and regression
+    //
+    // additional constraint: e^T \alpha = constant
+    //
+    class Solver_NU: public Solver
+    {
+    public:
+        Solver_NU() {}
+        void Solve(int l, const QMatrix& Q, const double *p, const schar *y,
+                   double *alpha, double Cp, double Cn, double eps,
+                   SolutionInfo* si, int shrinking)
+        {
+            this->si = si;
+            Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking);
+        }
+    private:
+        SolutionInfo *si;
+        int select_working_set(int &i, int &j);
+        double calculate_rho();
+        bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4);
+        void do_shrinking();
+    };
+    
+    // return 1 if already optimal, return 0 otherwise
+    int Solver_NU::select_working_set(int &out_i, int &out_j)
+    {
+        // return i,j such that y_i = y_j and
+        // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)
+        // j: minimizes the decrease of obj value
+        //    (if quadratic coefficeint <= 0, replace it with tau)
+        //    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)
+        
+        double Gmaxp = -INF;
+        double Gmaxp2 = -INF;
+        int Gmaxp_idx = -1;
+        
+        double Gmaxn = -INF;
+        double Gmaxn2 = -INF;
+        int Gmaxn_idx = -1;
+        
+        int Gmin_idx = -1;
+        double obj_diff_min = INF;
+        
+        for(int t=0;t<active_size;t++)
+            if(y[t]==+1)
+            {
+                if(!is_upper_bound(t))
+                    if(-G[t] >= Gmaxp)
+                    {
+                        Gmaxp = -G[t];
+                        Gmaxp_idx = t;
+                    }
+            }
+            else
+            {
+                if(!is_lower_bound(t))
+                    if(G[t] >= Gmaxn)
+                    {
+                        Gmaxn = G[t];
+                        Gmaxn_idx = t;
+                    }
+            }
+        
+        int ip = Gmaxp_idx;
+        int in = Gmaxn_idx;
+        const Qfloat *Q_ip = NULL;
+        const Qfloat *Q_in = NULL;
+        if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1
+            Q_ip = Q->get_Q(ip,active_size);
+        if(in != -1)
+            Q_in = Q->get_Q(in,active_size);
+        
+        for(int j=0;j<active_size;j++)
+        {
+            if(y[j]==+1)
+            {
+                if (!is_lower_bound(j))
+                {
+                    double grad_diff=Gmaxp+G[j];
+                    if (G[j] >= Gmaxp2)
+                        Gmaxp2 = G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[ip]+QD[j]-2*Q_ip[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                if (!is_upper_bound(j))
+                {
+                    double grad_diff=Gmaxn-G[j];
+                    if (-G[j] >= Gmaxn2)
+                        Gmaxn2 = -G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[in]+QD[j]-2*Q_in[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+        }
+        
+        if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps || Gmin_idx == -1)
+            return 1;
+        
+        if (y[Gmin_idx] == +1)
+            out_i = Gmaxp_idx;
+        else
+            out_i = Gmaxn_idx;
+        out_j = Gmin_idx;
+        
+        return 0;
+    }
+    
+    bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4)
+    {
+        if(is_upper_bound(i))
+        {
+            if(y[i]==+1)
+                return(-G[i] > Gmax1);
+            else
+                return(-G[i] > Gmax4);
+        }
+        else if(is_lower_bound(i))
+        {
+            if(y[i]==+1)
+                return(G[i] > Gmax2);
+            else
+                return(G[i] > Gmax3);
+        }
+        else
+            return(false);
+    }
+    
+    void Solver_NU::do_shrinking()
+    {
+        double Gmax1 = -INF;	// max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) }
+        double Gmax2 = -INF;	// max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) }
+        double Gmax3 = -INF;	// max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) }
+        double Gmax4 = -INF;	// max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) }
+        
+        // find maximal violating pair first
+        int i;
+        for(i=0;i<active_size;i++)
+        {
+            if(!is_upper_bound(i))
+            {
+                if(y[i]==+1)
+                {
+                    if(-G[i] > Gmax1) Gmax1 = -G[i];
+                }
+                else	if(-G[i] > Gmax4) Gmax4 = -G[i];
+            }
+            if(!is_lower_bound(i))
+            {
+                if(y[i]==+1)
+                {
+                    if(G[i] > Gmax2) Gmax2 = G[i];
+                }
+                else	if(G[i] > Gmax3) Gmax3 = G[i];
+            }
+        }
+        
+        if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10)
+        {
+            unshrink = true;
+            reconstruct_gradient();
+            active_size = l;
+        }
+        
+        for(i=0;i<active_size;i++)
+            if (be_shrunk(i, Gmax1, Gmax2, Gmax3, Gmax4))
+            {
+                active_size--;
+                while (active_size > i)
+                {
+                    if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4))
+                    {
+                        swap_index(i,active_size);
+                        break;
+                    }
+                    active_size--;
+                }
+            }
+    }
+    
+    double Solver_NU::calculate_rho()
+    {
+        int nr_free1 = 0,nr_free2 = 0;
+        double ub1 = INF, ub2 = INF;
+        double lb1 = -INF, lb2 = -INF;
+        double sum_free1 = 0, sum_free2 = 0;
+        
+        for(int i=0;i<active_size;i++)
+        {
+            if(y[i]==+1)
+            {
+                if(is_upper_bound(i))
+                    lb1 = max(lb1,G[i]);
+                else if(is_lower_bound(i))
+                    ub1 = min(ub1,G[i]);
+                else
+                {
+                    ++nr_free1;
+                    sum_free1 += G[i];
+                }
+            }
+            else
+            {
+                if(is_upper_bound(i))
+                    lb2 = max(lb2,G[i]);
+                else if(is_lower_bound(i))
+                    ub2 = min(ub2,G[i]);
+                else
+                {
+                    ++nr_free2;
+                    sum_free2 += G[i];
+                }
+            }
+        }
+        
+        double r1,r2;
+        if(nr_free1 > 0)
+            r1 = sum_free1/nr_free1;
+        else
+            r1 = (ub1+lb1)/2;
+        
+        if(nr_free2 > 0)
+            r2 = sum_free2/nr_free2;
+        else
+            r2 = (ub2+lb2)/2;
+        
+        si->r = (r1+r2)/2;
+        return (r1-r2)/2;
+    }
+    
+    //
+    // Q matrices for various formulations
+    //
+    class SVC_Q: public Kernel
+    {
+    public:
+        SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_)
+        :Kernel(prob.l, prob.x, param)
+        {
+            clone(y,y_,prob.l);
+            cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[prob.l];
+            for(int i=0;i<prob.l;i++)
+                QD[i] = (this->*kernel_function)(i,i);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int start, j;
+            if((start = cache->get_data(i,&data,len)) < len)
+            {
+                for(j=start;j<len;j++)
+                    data[j] = (Qfloat)(y[i]*y[j]*(this->*kernel_function)(i,j));
+            }
+            return data;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            cache->swap_index(i,j);
+            Kernel::swap_index(i,j);
+            swap(y[i],y[j]);
+            swap(QD[i],QD[j]);
+        }
+        
+        ~SVC_Q()
+        {
+            delete[] y;
+            delete cache;
+            delete[] QD;
+        }
+    private:
+        schar *y;
+        Cache *cache;
+        double *QD;
+    };
+    
+    class ONE_CLASS_Q: public Kernel
+    {
+    public:
+        ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param)
+        :Kernel(prob.l, prob.x, param)
+        {
+            cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[prob.l];
+            for(int i=0;i<prob.l;i++)
+                QD[i] = (this->*kernel_function)(i,i);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int start, j;
+            if((start = cache->get_data(i,&data,len)) < len)
+            {
+                for(j=start;j<len;j++)
+                    data[j] = (Qfloat)(this->*kernel_function)(i,j);
+            }
+            return data;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            cache->swap_index(i,j);
+            Kernel::swap_index(i,j);
+            swap(QD[i],QD[j]);
+        }
+        
+        ~ONE_CLASS_Q()
+        {
+            delete cache;
+            delete[] QD;
+        }
+    private:
+        Cache *cache;
+        double *QD;
+    };
+    
+    class SVR_Q: public Kernel
+    {
+    public:
+        SVR_Q(const svm_problem& prob, const svm_parameter& param)
+        :Kernel(prob.l, prob.x, param)
+        {
+            l = prob.l;
+            cache = new Cache(l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[2*l];
+            sign = new schar[2*l];
+            index = new int[2*l];
+            for(int k=0;k<l;k++)
+            {
+                sign[k] = 1;
+                sign[k+l] = -1;
+                index[k] = k;
+                index[k+l] = k;
+                QD[k] = (this->*kernel_function)(k,k);
+                QD[k+l] = QD[k];
+            }
+            buffer[0] = new Qfloat[2*l];
+            buffer[1] = new Qfloat[2*l];
+            next_buffer = 0;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            swap(sign[i],sign[j]);
+            swap(index[i],index[j]);
+            swap(QD[i],QD[j]);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int j, real_i = index[i];
+            if(cache->get_data(real_i,&data,l) < l)
+            {
+                for(j=0;j<l;j++)
+                    data[j] = (Qfloat)(this->*kernel_function)(real_i,j);
+            }
+            
+            // reorder and copy
+            Qfloat *buf = buffer[next_buffer];
+            next_buffer = 1 - next_buffer;
+            schar si = sign[i];
+            for(j=0;j<len;j++)
+                buf[j] = (Qfloat) si * (Qfloat) sign[j] * data[index[j]];
+            return buf;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        ~SVR_Q()
+        {
+            delete cache;
+            delete[] sign;
+            delete[] index;
+            delete[] buffer[0];
+            delete[] buffer[1];
+            delete[] QD;
+        }
+    private:
+        int l;
+        Cache *cache;
+        schar *sign;
+        int *index;
+        mutable int next_buffer;
+        Qfloat *buffer[2];
+        double *QD;
+    };
+    
+    //
+    // construct and solve various formulations
+    //
+    static void solve_c_svc(
+                            const svm_problem *prob, const svm_parameter* param,
+                            double *alpha, Solver::SolutionInfo* si, double Cp, double Cn)
+    {
+        int l = prob->l;
+        double *minus_ones = new double[l];
+        schar *y = new schar[l];
+        
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            alpha[i] = 0;
+            minus_ones[i] = -1;
+            if(prob->y[i] > 0) y[i] = +1; else y[i] = -1;
+        }
+        
+        Solver s;
+        s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y,
+                alpha, Cp, Cn, param->eps, si, param->shrinking);
+        
+        double sum_alpha=0;
+        for(i=0;i<l;i++)
+            sum_alpha += alpha[i];
+        
+        if (Cp==Cn)
+            info("nu = %f\n", sum_alpha/(Cp*prob->l));
+        
+        for(i=0;i<l;i++)
+            alpha[i] *= y[i];
+        
+        delete[] minus_ones;
+        delete[] y;
+    }
+    
+    static void solve_nu_svc(
+                             const svm_problem *prob, const svm_parameter *param,
+                             double *alpha, Solver::SolutionInfo* si)
+    {
+        int i;
+        int l = prob->l;
+        double nu = param->nu;
+        
+        schar *y = new schar[l];
+        
+        for(i=0;i<l;i++)
+            if(prob->y[i]>0)
+                y[i] = +1;
+            else
+                y[i] = -1;
+        
+        double sum_pos = nu*l/2;
+        double sum_neg = nu*l/2;
+        
+        for(i=0;i<l;i++)
+            if(y[i] == +1)
+            {
+                alpha[i] = min(1.0,sum_pos);
+                sum_pos -= alpha[i];
+            }
+            else
+            {
+                alpha[i] = min(1.0,sum_neg);
+                sum_neg -= alpha[i];
+            }
+        
+        double *zeros = new double[l];
+        
+        for(i=0;i<l;i++)
+            zeros[i] = 0;
+        
+        Solver_NU s;
+        s.Solve(l, SVC_Q(*prob,*param,y), zeros, y,
+                alpha, 1.0, 1.0, param->eps, si,  param->shrinking);
+        double r = si->r;
+        
+        info("C = %f\n",1/r);
+        
+        for(i=0;i<l;i++)
+            alpha[i] *= y[i]/r;
+        
+        si->rho /= r;
+        si->obj /= (r*r);
+        si->upper_bound_p = 1/r;
+        si->upper_bound_n = 1/r;
+        
+        delete[] y;
+        delete[] zeros;
+    }
+    
+    static void solve_one_class(
+                                const svm_problem *prob, const svm_parameter *param,
+                                double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double *zeros = new double[l];
+        schar *ones = new schar[l];
+        int i;
+        
+        int n = (int)(param->nu*prob->l);	// # of alpha's at upper bound
+        
+        for(i=0;i<n;i++)
+            alpha[i] = 1;
+        if(n<prob->l)
+            alpha[n] = param->nu * prob->l - n;
+        for(i=n+1;i<l;i++)
+            alpha[i] = 0;
+        
+        for(i=0;i<l;i++)
+        {
+            zeros[i] = 0;
+            ones[i] = 1;
+        }
+        
+        Solver s;
+        s.Solve(l, ONE_CLASS_Q(*prob,*param), zeros, ones,
+                alpha, 1.0, 1.0, param->eps, si, param->shrinking);
+        
+        delete[] zeros;
+        delete[] ones;
+    }
+    
+    static void solve_epsilon_svr(
+                                  const svm_problem *prob, const svm_parameter *param,
+                                  double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double *alpha2 = new double[2*l];
+        double *linear_term = new double[2*l];
+        schar *y = new schar[2*l];
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            alpha2[i] = 0;
+            linear_term[i] = param->p - prob->y[i];
+            y[i] = 1;
+            
+            alpha2[i+l] = 0;
+            linear_term[i+l] = param->p + prob->y[i];
+            y[i+l] = -1;
+        }
+        
+        Solver s;
+        s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y,
+                alpha2, param->C, param->C, param->eps, si, param->shrinking);
+        
+        double sum_alpha = 0;
+        for(i=0;i<l;i++)
+        {
+            alpha[i] = alpha2[i] - alpha2[i+l];
+            sum_alpha += fabs(alpha[i]);
+        }
+        info("nu = %f\n",sum_alpha/(param->C*l));
+        
+        delete[] alpha2;
+        delete[] linear_term;
+        delete[] y;
+    }
+    
+    static void solve_nu_svr(
+                             const svm_problem *prob, const svm_parameter *param,
+                             double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double C = param->C;
+        double *alpha2 = new double[2*l];
+        double *linear_term = new double[2*l];
+        schar *y = new schar[2*l];
+        int i;
+        
+        double sum = C * param->nu * l / 2;
+        for(i=0;i<l;i++)
+        {
+            alpha2[i] = alpha2[i+l] = min(sum,C);
+            sum -= alpha2[i];
+            
+            linear_term[i] = - prob->y[i];
+            y[i] = 1;
+            
+            linear_term[i+l] = prob->y[i];
+            y[i+l] = -1;
+        }
+        
+        Solver_NU s;
+        s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y,
+                alpha2, C, C, param->eps, si, param->shrinking);
+        
+        info("epsilon = %f\n",-si->r);
+        
+        for(i=0;i<l;i++)
+            alpha[i] = alpha2[i] - alpha2[i+l];
+        
+        delete[] alpha2;
+        delete[] linear_term;
+        delete[] y;
+    }
+    
+    //
+    // decision_function
+    //
+    struct decision_function
+    {
+        double *alpha;
+        double rho;
+    };
+    
+    static decision_function svm_train_one(
+                                           const svm_problem *prob, const svm_parameter *param,
+                                           double Cp, double Cn)
+    {
+        double *alpha = Malloc(double,prob->l);
+        Solver::SolutionInfo si;
+        switch(param->svm_type)
+        {
+            case C_SVC:
+                solve_c_svc(prob,param,alpha,&si,Cp,Cn);
+                break;
+            case NU_SVC:
+                solve_nu_svc(prob,param,alpha,&si);
+                break;
+            case ONE_CLASS:
+                solve_one_class(prob,param,alpha,&si);
+                break;
+            case EPSILON_SVR:
+                solve_epsilon_svr(prob,param,alpha,&si);
+                break;
+            case NU_SVR:
+                solve_nu_svr(prob,param,alpha,&si);
+                break;
+        }
+        
+        info("obj = %f, rho = %f\n",si.obj,si.rho);
+        
+        // output SVs
+        
+        int nSV = 0;
+        int nBSV = 0;
+        for(int i=0;i<prob->l;i++)
+        {
+            if(fabs(alpha[i]) > 0)
+            {
+                ++nSV;
+                if(prob->y[i] > 0)
+                {
+                    if(fabs(alpha[i]) >= si.upper_bound_p)
+                        ++nBSV;
+                }
+                else
+                {
+                    if(fabs(alpha[i]) >= si.upper_bound_n)
+                        ++nBSV;
+                }
+            }
+        }
+        
+        info("nSV = %d, nBSV = %d\n",nSV,nBSV);
+        
+        decision_function f;
+        f.alpha = alpha;
+        f.rho = si.rho;
+        return f;
+    }
+    
+    // Platt's binary SVM Probablistic Output: an improvement from Lin et al.
+    static void sigmoid_train(
+                              int l, const double *dec_values, const double *labels,
+                              double& A, double& B)
+    {
+        double prior1=0, prior0 = 0;
+        int i;
+        
+        for (i=0;i<l;i++)
+            if (labels[i] > 0) prior1+=1;
+            else prior0+=1;
+        
+        int max_iter=100;	// Maximal number of iterations
+        double min_step=1e-10;	// Minimal step taken in line search
+        double sigma=1e-12;	// For numerically strict PD of Hessian
+        double eps=1e-5;
+        double hiTarget=(prior1+1.0)/(prior1+2.0);
+        double loTarget=1/(prior0+2.0);
+        double *t=Malloc(double,l);
+        double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize;
+        double newA,newB,newf,d1,d2;
+        int iter;
+        
+        // Initial Point and Initial Fun Value
+        A=0.0; B=log((prior0+1.0)/(prior1+1.0));
+        double fval = 0.0;
+        
+        for (i=0;i<l;i++)
+        {
+            if (labels[i]>0) t[i]=hiTarget;
+            else t[i]=loTarget;
+            fApB = dec_values[i]*A+B;
+            if (fApB>=0)
+                fval += t[i]*fApB + log(1+exp(-fApB));
+            else
+                fval += (t[i] - 1)*fApB +log(1+exp(fApB));
+        }
+        for (iter=0;iter<max_iter;iter++)
+        {
+            // Update Gradient and Hessian (use H' = H + sigma I)
+            h11=sigma; // numerically ensures strict PD
+            h22=sigma;
+            h21=0.0;g1=0.0;g2=0.0;
+            for (i=0;i<l;i++)
+            {
+                fApB = dec_values[i]*A+B;
+                if (fApB >= 0)
+                {
+                    p=exp(-fApB)/(1.0+exp(-fApB));
+                    q=1.0/(1.0+exp(-fApB));
+                }
+                else
+                {
+                    p=1.0/(1.0+exp(fApB));
+                    q=exp(fApB)/(1.0+exp(fApB));
+                }
+                d2=p*q;
+                h11+=dec_values[i]*dec_values[i]*d2;
+                h22+=d2;
+                h21+=dec_values[i]*d2;
+                d1=t[i]-p;
+                g1+=dec_values[i]*d1;
+                g2+=d1;
+            }
+            
+            // Stopping Criteria
+            if (fabs(g1)<eps && fabs(g2)<eps)
+                break;
+            
+            // Finding Newton direction: -inv(H') * g
+            det=h11*h22-h21*h21;
+            dA=-(h22*g1 - h21 * g2) / det;
+            dB=-(-h21*g1+ h11 * g2) / det;
+            gd=g1*dA+g2*dB;
+            
+            
+            stepsize = 1;		// Line Search
+            while (stepsize >= min_step)
+            {
+                newA = A + stepsize * dA;
+                newB = B + stepsize * dB;
+                
+                // New function value
+                newf = 0.0;
+                for (i=0;i<l;i++)
+                {
+                    fApB = dec_values[i]*newA+newB;
+                    if (fApB >= 0)
+                        newf += t[i]*fApB + log(1+exp(-fApB));
+                    else
+                        newf += (t[i] - 1)*fApB +log(1+exp(fApB));
+                }
+                // Check sufficient decrease
+                if (newf<fval+0.0001*stepsize*gd)
+                {
+                    A=newA;B=newB;fval=newf;
+                    break;
+                }
+                else
+                    stepsize = stepsize / 2.0;
+            }
+            
+            if (stepsize < min_step)
+            {
+                info("Line search fails in two-class probability estimates\n");
+                break;
+            }
+        }
+        
+        if (iter>=max_iter)
+            info("Reaching maximal iterations in two-class probability estimates\n");
+        free(t);
+    }
+    
+    static double sigmoid_predict(double decision_value, double A, double B)
+    {
+        double fApB = decision_value*A+B;
+        // 1-p used later; avoid catastrophic cancellation
+        if (fApB >= 0)
+            return exp(-fApB)/(1.0+exp(-fApB));
+        else
+            return 1.0/(1+exp(fApB)) ;
+    }
+    
+    // Method 2 from the multiclass_prob paper by Wu, Lin, and Weng
+    static void multiclass_probability(int k, double **r, double *p)
+    {
+        int t,j;
+        int iter = 0, max_iter=max(100,k);
+        double **Q=Malloc(double *,k);
+        double *Qp=Malloc(double,k);
+        double pQp, eps=0.005/k;
+        
+        for (t=0;t<k;t++)
+        {
+            p[t]=1.0/k;  // Valid if k = 1
+            Q[t]=Malloc(double,k);
+            Q[t][t]=0;
+            for (j=0;j<t;j++)
+            {
+                Q[t][t]+=r[j][t]*r[j][t];
+                Q[t][j]=Q[j][t];
+            }
+            for (j=t+1;j<k;j++)
+            {
+                Q[t][t]+=r[j][t]*r[j][t];
+                Q[t][j]=-r[j][t]*r[t][j];
+            }
+        }
+        for (iter=0;iter<max_iter;iter++)
+        {
+            // stopping condition, recalculate QP,pQP for numerical accuracy
+            pQp=0;
+            for (t=0;t<k;t++)
+            {
+                Qp[t]=0;
+                for (j=0;j<k;j++)
+                    Qp[t]+=Q[t][j]*p[j];
+                pQp+=p[t]*Qp[t];
+            }
+            double max_error=0;
+            for (t=0;t<k;t++)
+            {
+                double error=fabs(Qp[t]-pQp);
+                if (error>max_error)
+                    max_error=error;
+            }
+            if (max_error<eps) break;
+            
+            for (t=0;t<k;t++)
+            {
+                double diff=(-Qp[t]+pQp)/Q[t][t];
+                p[t]+=diff;
+                pQp=(pQp+diff*(diff*Q[t][t]+2*Qp[t]))/(1+diff)/(1+diff);
+                for (j=0;j<k;j++)
+                {
+                    Qp[j]=(Qp[j]+diff*Q[t][j])/(1+diff);
+                    p[j]/=(1+diff);
+                }
+            }
+        }
+        if (iter>=max_iter)
+            info("Exceeds max_iter in multiclass_prob\n");
+        for(t=0;t<k;t++) free(Q[t]);
+        free(Q);
+        free(Qp);
+    }
+    
+    // Cross-validation decision values for probability estimates
+    static void svm_binary_svc_probability(
+                                           const svm_problem *prob, const svm_parameter *param,
+                                           double Cp, double Cn, double& probA, double& probB)
+    {
+        int i;
+        int nr_fold = 5;
+        int *perm = Malloc(int,prob->l);
+        double *dec_values = Malloc(double,prob->l);
+        
+        // random shuffle
+        for(i=0;i<prob->l;i++) perm[i]=i;
+        for(i=0;i<prob->l;i++)
+        {
+            int j = i+rand()%(prob->l-i);
+            swap(perm[i],perm[j]);
+        }
+        for(i=0;i<nr_fold;i++)
+        {
+            int begin = i*prob->l/nr_fold;
+            int end = (i+1)*prob->l/nr_fold;
+            int j,k;
+            struct svm_problem subprob;
+            
+            subprob.l = prob->l-(end-begin);
+            subprob.x = Malloc(struct svm_node*,subprob.l);
+            subprob.y = Malloc(double,subprob.l);
+            
+            k=0;
+            for(j=0;j<begin;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            for(j=end;j<prob->l;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            int p_count=0,n_count=0;
+            for(j=0;j<k;j++)
+                if(subprob.y[j]>0)
+                    p_count++;
+                else
+                    n_count++;
+            
+            if(p_count==0 && n_count==0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = 0;
+            else if(p_count > 0 && n_count == 0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = 1;
+            else if(p_count == 0 && n_count > 0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = -1;
+            else
+            {
+                svm_parameter subparam = *param;
+                subparam.probability=0;
+                subparam.C=1.0;
+                subparam.nr_weight=2;
+                subparam.weight_label = Malloc(int,2);
+                subparam.weight = Malloc(double,2);
+                subparam.weight_label[0]=+1;
+                subparam.weight_label[1]=-1;
+                subparam.weight[0]=Cp;
+                subparam.weight[1]=Cn;
+                struct svm_model *submodel = svm_train(&subprob,&subparam);
+                for(j=begin;j<end;j++)
+                {
+                    svm_predict_values(submodel,prob->x[perm[j]],&(dec_values[perm[j]]));
+                    // ensure +1 -1 order; reason not using CV subroutine
+                    dec_values[perm[j]] *= submodel->label[0];
+                }
+                svm_free_and_destroy_model(&submodel);
+                svm_destroy_param(&subparam);
+            }
+            free(subprob.x);
+            free(subprob.y);
+        }
+        sigmoid_train(prob->l,dec_values,prob->y,probA,probB);
+        free(dec_values);
+        free(perm);
+    }
+    
+    // Return parameter of a Laplace distribution
+    static double svm_svr_probability(
+                                      const svm_problem *prob, const svm_parameter *param)
+    {
+        int i;
+        int nr_fold = 5;
+        double *ymv = Malloc(double,prob->l);
+        double mae = 0;
+        
+        svm_parameter newparam = *param;
+        newparam.probability = 0;
+        svm_cross_validation(prob,&newparam,nr_fold,ymv);
+        for(i=0;i<prob->l;i++)
+        {
+            ymv[i]=prob->y[i]-ymv[i];
+            mae += fabs(ymv[i]);
+        }
+        mae /= prob->l;
+        double std=sqrt(2*mae*mae);
+        int count=0;
+        mae=0;
+        for(i=0;i<prob->l;i++)
+            if (fabs(ymv[i]) > 5*std)
+                count=count+1;
+            else
+                mae+=fabs(ymv[i]);
+        mae /= (prob->l-count);
+        info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae);
+        free(ymv);
+        return mae;
+    }
+    
+    
+    // label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data
+    // perm, length l, must be allocated before calling this subroutine
+    static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm)
+    {
+        int l = prob->l;
+        int max_nr_class = 16;
+        int nr_class = 0;
+        int *label = Malloc(int,max_nr_class);
+        int *count = Malloc(int,max_nr_class);
+        int *data_label = Malloc(int,l);
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            int this_label = (int)prob->y[i];
+            int j;
+            for(j=0;j<nr_class;j++)
+            {
+                if(this_label == label[j])
+                {
+                    ++count[j];
+                    break;
+                }
+            }
+            data_label[i] = j;
+            if(j == nr_class)
+            {
+                if(nr_class == max_nr_class)
+                {
+                    max_nr_class *= 2;
+                    label = (int *)realloc(label,max_nr_class*sizeof(int));
+                    count = (int *)realloc(count,max_nr_class*sizeof(int));
+                }
+                label[nr_class] = this_label;
+                count[nr_class] = 1;
+                ++nr_class;
+            }
+        }
+        
+        //
+        // Labels are ordered by their first occurrence in the training set.
+        // However, for two-class sets with -1/+1 labels and -1 appears first,
+        // we swap labels to ensure that internally the binary SVM has positive data corresponding to the +1 instances.
+        //
+        if (nr_class == 2 && label[0] == -1 && label[1] == 1)
+        {
+            swap(label[0],label[1]);
+            swap(count[0],count[1]);
+            for(i=0;i<l;i++)
+            {
+                if(data_label[i] == 0)
+                    data_label[i] = 1;
+                else
+                    data_label[i] = 0;
+            }
+        }
+        
+        int *start = Malloc(int,nr_class);
+        start[0] = 0;
+        for(i=1;i<nr_class;i++)
+            start[i] = start[i-1]+count[i-1];
+        for(i=0;i<l;i++)
+        {
+            perm[start[data_label[i]]] = i;
+            ++start[data_label[i]];
+        }
+        start[0] = 0;
+        for(i=1;i<nr_class;i++)
+            start[i] = start[i-1]+count[i-1];
+        
+        *nr_class_ret = nr_class;
+        *label_ret = label;
+        *start_ret = start;
+        *count_ret = count;
+        free(data_label);
+    }
+    
+    //
+    // Interface functions
+    //
+    svm_model *svm_train(const svm_problem *prob, const svm_parameter *param)
+    {
+        svm_model *model = Malloc(svm_model,1);
+        model->param = *param;
+        model->free_sv = 0;	// XXX
+        
+        if(param->svm_type == ONE_CLASS ||
+           param->svm_type == EPSILON_SVR ||
+           param->svm_type == NU_SVR)
+        {
+            // regression or one-class-svm
+            model->nr_class = 2;
+            model->label = NULL;
+            model->nSV = NULL;
+            model->probA = NULL; model->probB = NULL;
+            model->sv_coef = Malloc(double *,1);
+            
+            if(param->probability &&
+               (param->svm_type == EPSILON_SVR ||
+                param->svm_type == NU_SVR))
+            {
+                model->probA = Malloc(double,1);
+                model->probA[0] = svm_svr_probability(prob,param);
+            }
+            
+            decision_function f = svm_train_one(prob,param,0,0);
+            model->rho = Malloc(double,1);
+            model->rho[0] = f.rho;
+            
+            int nSV = 0;
+            int i;
+            for(i=0;i<prob->l;i++)
+                if(fabs(f.alpha[i]) > 0) ++nSV;
+            model->l = nSV;
+            model->SV = Malloc(svm_node *,nSV);
+            model->sv_coef[0] = Malloc(double,nSV);
+            model->sv_indices = Malloc(int,nSV);
+            int j = 0;
+            for(i=0;i<prob->l;i++)
+                if(fabs(f.alpha[i]) > 0)
+                {
+                    model->SV[j] = prob->x[i];
+                    model->sv_coef[0][j] = f.alpha[i];
+                    model->sv_indices[j] = i+1;
+                    ++j;
+                }
+            
+            free(f.alpha);
+        }
+        else
+        {
+            // classification
+            int l = prob->l;
+            int nr_class;
+            int *label = NULL;
+            int *start = NULL;
+            int *count = NULL;
+            int *perm = Malloc(int,l);
+            
+            // group training data of the same class
+            svm_group_classes(prob,&nr_class,&label,&start,&count,perm);
+            if(nr_class == 1)
+                info("WARNING: training data in only one class. See README for details.\n");
+            
+            svm_node **x = Malloc(svm_node *,l);
+            int i;
+            for(i=0;i<l;i++)
+                x[i] = prob->x[perm[i]];
+            
+            // calculate weighted C
+            
+            double *weighted_C = Malloc(double, nr_class);
+            for(i=0;i<nr_class;i++)
+                weighted_C[i] = param->C;
+            for(i=0;i<param->nr_weight;i++)
+            {
+                int j;
+                for(j=0;j<nr_class;j++)
+                    if(param->weight_label[i] == label[j])
+                        break;
+                if(j == nr_class)
+                    fprintf(stderr,"WARNING: class label %d specified in weight is not found\n", param->weight_label[i]);
+                else
+                    weighted_C[j] *= param->weight[i];
+            }
+            
+            // train k*(k-1)/2 models
+            
+            bool *nonzero = Malloc(bool,l);
+            for(i=0;i<l;i++)
+                nonzero[i] = false;
+            decision_function *f = Malloc(decision_function,nr_class*(nr_class-1)/2);
+            
+            double *probA=NULL,*probB=NULL;
+            if (param->probability)
+            {
+                probA=Malloc(double,nr_class*(nr_class-1)/2);
+                probB=Malloc(double,nr_class*(nr_class-1)/2);
+            }
+            
+            int p = 0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    svm_problem sub_prob;
+                    int si = start[i], sj = start[j];
+                    int ci = count[i], cj = count[j];
+                    sub_prob.l = ci+cj;
+                    sub_prob.x = Malloc(svm_node *,sub_prob.l);
+                    sub_prob.y = Malloc(double,sub_prob.l);
+                    int k;
+                    for(k=0;k<ci;k++)
+                    {
+                        sub_prob.x[k] = x[si+k];
+                        sub_prob.y[k] = +1;
+                    }
+                    for(k=0;k<cj;k++)
+                    {
+                        sub_prob.x[ci+k] = x[sj+k];
+                        sub_prob.y[ci+k] = -1;
+                    }
+                    
+                    if(param->probability)
+                        svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]);
+                    
+                    f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]);
+                    for(k=0;k<ci;k++)
+                        if(!nonzero[si+k] && fabs(f[p].alpha[k]) > 0)
+                            nonzero[si+k] = true;
+                    for(k=0;k<cj;k++)
+                        if(!nonzero[sj+k] && fabs(f[p].alpha[ci+k]) > 0)
+                            nonzero[sj+k] = true;
+                    free(sub_prob.x);
+                    free(sub_prob.y);
+                    ++p;
+                }
+            
+            // build output
+            
+            model->nr_class = nr_class;
+            
+            model->label = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+                model->label[i] = label[i];
+            
+            model->rho = Malloc(double,nr_class*(nr_class-1)/2);
+            for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                model->rho[i] = f[i].rho;
+            
+            if(param->probability)
+            {
+                model->probA = Malloc(double,nr_class*(nr_class-1)/2);
+                model->probB = Malloc(double,nr_class*(nr_class-1)/2);
+                for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                {
+                    model->probA[i] = probA[i];
+                    model->probB[i] = probB[i];
+                }
+            }
+            else
+            {
+                model->probA=NULL;
+                model->probB=NULL;
+            }
+            
+            int total_sv = 0;
+            int *nz_count = Malloc(int,nr_class);
+            model->nSV = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+            {
+                int nSV = 0;
+                for(int j=0;j<count[i];j++)
+                    if(nonzero[start[i]+j])
+                    {	
+                        ++nSV;
+                        ++total_sv;
+                    }
+                model->nSV[i] = nSV;
+                nz_count[i] = nSV;
+            }
+            
+            info("Total nSV = %d\n",total_sv);
+            
+            model->l = total_sv;
+            model->SV = Malloc(svm_node *,total_sv);
+            model->sv_indices = Malloc(int,total_sv);
+            p = 0;
+            for(i=0;i<l;i++)
+                if(nonzero[i])
+                {
+                    model->SV[p] = x[i];
+                    model->sv_indices[p++] = perm[i] + 1;
+                }
+            
+            int *nz_start = Malloc(int,nr_class);
+            nz_start[0] = 0;
+            for(i=1;i<nr_class;i++)
+                nz_start[i] = nz_start[i-1]+nz_count[i-1];
+            
+            model->sv_coef = Malloc(double *,nr_class-1);
+            for(i=0;i<nr_class-1;i++)
+                model->sv_coef[i] = Malloc(double,total_sv);
+            
+            p = 0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    // classifier (i,j): coefficients with
+                    // i are in sv_coef[j-1][nz_start[i]...],
+                    // j are in sv_coef[i][nz_start[j]...]
+                    
+                    int si = start[i];
+                    int sj = start[j];
+                    int ci = count[i];
+                    int cj = count[j];
+                    
+                    int q = nz_start[i];
+                    int k;
+                    for(k=0;k<ci;k++)
+                        if(nonzero[si+k])
+                            model->sv_coef[j-1][q++] = f[p].alpha[k];
+                    q = nz_start[j];
+                    for(k=0;k<cj;k++)
+                        if(nonzero[sj+k])
+                            model->sv_coef[i][q++] = f[p].alpha[ci+k];
+                    ++p;
+                }
+            
+            free(label);
+            free(probA);
+            free(probB);
+            free(count);
+            free(perm);
+            free(start);
+            free(x);
+            free(weighted_C);
+            free(nonzero);
+            for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                free(f[i].alpha);
+            free(f);
+            free(nz_count);
+            free(nz_start);
+        }
+        return model;
+    }
+    
+    // Stratified cross validation
+    void svm_cross_validation(const svm_problem *prob, const svm_parameter *param, int nr_fold, double *target)
+    {
+        int i;
+        int *fold_start;
+        int l = prob->l;
+        int *perm = Malloc(int,l);
+        int nr_class;
+        if (nr_fold > l)
+        {
+            nr_fold = l;
+            fprintf(stderr,"WARNING: # folds > # data. Will use # folds = # data instead (i.e., leave-one-out cross validation)\n");
+        }
+        fold_start = Malloc(int,nr_fold+1);
+        // stratified cv may not give leave-one-out rate
+        // Each class to l folds -> some folds may have zero elements
+        if((param->svm_type == C_SVC ||
+            param->svm_type == NU_SVC) && nr_fold < l)
+        {
+            int *start = NULL;
+            int *label = NULL;
+            int *count = NULL;
+            svm_group_classes(prob,&nr_class,&label,&start,&count,perm);
+            
+            // random shuffle and then data grouped by fold using the array perm
+            int *fold_count = Malloc(int,nr_fold);
+            int c;
+            int *index = Malloc(int,l);
+            for(i=0;i<l;i++)
+                index[i]=perm[i];
+            for (c=0; c<nr_class; c++) 
+                for(i=0;i<count[c];i++)
+                {
+                    int j = i+rand()%(count[c]-i);
+                    swap(index[start[c]+j],index[start[c]+i]);
+                }
+            for(i=0;i<nr_fold;i++)
+            {
+                fold_count[i] = 0;
+                for (c=0; c<nr_class;c++)
+                    fold_count[i]+=(i+1)*count[c]/nr_fold-i*count[c]/nr_fold;
+            }
+            fold_start[0]=0;
+            for (i=1;i<=nr_fold;i++)
+                fold_start[i] = fold_start[i-1]+fold_count[i-1];
+            for (c=0; c<nr_class;c++)
+                for(i=0;i<nr_fold;i++)
+                {
+                    int begin = start[c]+i*count[c]/nr_fold;
+                    int end = start[c]+(i+1)*count[c]/nr_fold;
+                    for(int j=begin;j<end;j++)
+                    {
+                        perm[fold_start[i]] = index[j];
+                        fold_start[i]++;
+                    }
+                }
+            fold_start[0]=0;
+            for (i=1;i<=nr_fold;i++)
+                fold_start[i] = fold_start[i-1]+fold_count[i-1];
+            free(start);
+            free(label);
+            free(count);
+            free(index);
+            free(fold_count);
+        }
+        else
+        {
+            for(i=0;i<l;i++) perm[i]=i;
+            for(i=0;i<l;i++)
+            {
+                int j = i+rand()%(l-i);
+                swap(perm[i],perm[j]);
+            }
+            for(i=0;i<=nr_fold;i++)
+                fold_start[i]=i*l/nr_fold;
+        }
+        
+        for(i=0;i<nr_fold;i++)
+        {
+            int begin = fold_start[i];
+            int end = fold_start[i+1];
+            int j,k;
+            struct svm_problem subprob;
+            
+            subprob.l = l-(end-begin);
+            subprob.x = Malloc(struct svm_node*,subprob.l);
+            subprob.y = Malloc(double,subprob.l);
+            
+            k=0;
+            for(j=0;j<begin;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            for(j=end;j<l;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            struct svm_model *submodel = svm_train(&subprob,param);
+            if(param->probability && 
+               (param->svm_type == C_SVC || param->svm_type == NU_SVC))
+            {
+                double *prob_estimates=Malloc(double,svm_get_nr_class(submodel));
+                for(j=begin;j<end;j++)
+                    target[perm[j]] = svm_predict_probability(submodel,prob->x[perm[j]],prob_estimates);
+                free(prob_estimates);
+            }
+            else
+                for(j=begin;j<end;j++)
+                    target[perm[j]] = svm_predict(submodel,prob->x[perm[j]]);
+            svm_free_and_destroy_model(&submodel);
+            free(subprob.x);
+            free(subprob.y);
+        }		
+        free(fold_start);
+        free(perm);
+    }
+    
+    
+    int svm_get_svm_type(const svm_model *model)
+    {
+        return model->param.svm_type;
+    }
+    
+    int svm_get_nr_class(const svm_model *model)
+    {
+        return model->nr_class;
+    }
+    
+    void svm_get_labels(const svm_model *model, int* label)
+    {
+        if (model->label != NULL)
+            for(int i=0;i<model->nr_class;i++)
+                label[i] = model->label[i];
+    }
+    
+    void svm_get_sv_indices(const svm_model *model, int* indices)
+    {
+        if (model->sv_indices != NULL)
+            for(int i=0;i<model->l;i++)
+                indices[i] = model->sv_indices[i];
+    }
+    
+    int svm_get_nr_sv(const svm_model *model)
+    {
+        return model->l;
+    }
+    
+    double svm_get_svr_probability(const svm_model *model)
+    {
+        if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) &&
+            model->probA!=NULL)
+            return model->probA[0];
+        else
+        {
+            fprintf(stderr,"Model doesn't contain information for SVR probability inference\n");
+            return 0;
+        }
+    }
+    
+    double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values)
+    {
+        int i;
+        if(model->param.svm_type == ONE_CLASS ||
+           model->param.svm_type == EPSILON_SVR ||
+           model->param.svm_type == NU_SVR)
+        {
+            double *sv_coef = model->sv_coef[0];
+            double sum = 0;
+            for(i=0;i<model->l;i++)
+                sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param);
+            sum -= model->rho[0];
+            *dec_values = sum;
+            
+            if(model->param.svm_type == ONE_CLASS)
+                return (sum>0)?1:-1;
+            else
+                return sum;
+        }
+        else
+        {
+            int nr_class = model->nr_class;
+            int l = model->l;
+            
+            double *kvalue = Malloc(double,l);
+            for(i=0;i<l;i++)
+                kvalue[i] = Kernel::k_function(x,model->SV[i],model->param);
+            
+            int *start = Malloc(int,nr_class);
+            start[0] = 0;
+            for(i=1;i<nr_class;i++)
+                start[i] = start[i-1]+model->nSV[i-1];
+            
+            int *vote = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+                vote[i] = 0;
+            
+            int p=0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    double sum = 0;
+                    int si = start[i];
+                    int sj = start[j];
+                    int ci = model->nSV[i];
+                    int cj = model->nSV[j];
+                    
+                    int k;
+                    double *coef1 = model->sv_coef[j-1];
+                    double *coef2 = model->sv_coef[i];
+                    for(k=0;k<ci;k++)
+                        sum += coef1[si+k] * kvalue[si+k];
+                    for(k=0;k<cj;k++)
+                        sum += coef2[sj+k] * kvalue[sj+k];
+                    sum -= model->rho[p];
+                    dec_values[p] = sum;
+                    
+                    if(dec_values[p] > 0)
+                        ++vote[i];
+                    else
+                        ++vote[j];
+                    p++;
+                }
+            
+            int vote_max_idx = 0;
+            for(i=1;i<nr_class;i++)
+                if(vote[i] > vote[vote_max_idx])
+                    vote_max_idx = i;
+            
+            free(kvalue);
+            free(start);
+            free(vote);
+            return model->label[vote_max_idx];
+        }
+    }
+    
+    double svm_predict(const svm_model *model, const svm_node *x)
+    {
+        int nr_class = model->nr_class;
+        double *dec_values;
+        if(model->param.svm_type == ONE_CLASS ||
+           model->param.svm_type == EPSILON_SVR ||
+           model->param.svm_type == NU_SVR)
+            dec_values = Malloc(double, 1);
+        else 
+            dec_values = Malloc(double, nr_class*(nr_class-1)/2);
+        double pred_result = svm_predict_values(model, x, dec_values);
+        free(dec_values);
+        return pred_result;
+    }
+    
+    double svm_predict_probability(
+                                   const svm_model *model, const svm_node *x, double *prob_estimates)
+    {
+        if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) &&
+            model->probA!=NULL && model->probB!=NULL)
+        {
+            int i;
+            int nr_class = model->nr_class;
+            double *dec_values = Malloc(double, nr_class*(nr_class-1)/2);
+            svm_predict_values(model, x, dec_values);
+            
+            double min_prob=1e-7;
+            double **pairwise_prob=Malloc(double *,nr_class);
+            for(i=0;i<nr_class;i++)
+                pairwise_prob[i]=Malloc(double,nr_class);
+            int k=0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    pairwise_prob[i][j]=min(max(sigmoid_predict(dec_values[k],model->probA[k],model->probB[k]),min_prob),1-min_prob);
+                    pairwise_prob[j][i]=1-pairwise_prob[i][j];
+                    k++;
+                }
+            if (nr_class == 2)
+            {
+                prob_estimates[0] = pairwise_prob[0][1];
+                prob_estimates[1] = pairwise_prob[1][0];
+            }
+            else
+                multiclass_probability(nr_class,pairwise_prob,prob_estimates);
+            
+            int prob_max_idx = 0;
+            for(i=1;i<nr_class;i++)
+                if(prob_estimates[i] > prob_estimates[prob_max_idx])
+                    prob_max_idx = i;
+            for(i=0;i<nr_class;i++)
+                free(pairwise_prob[i]);
+            free(dec_values);
+            free(pairwise_prob);
+            return model->label[prob_max_idx];
+        }
+        else 
+            return svm_predict(model, x);
+    }
+    
+    static const char *svm_type_table[] =
+    {
+        "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL
+    };
+    
+    static const char *kernel_type_table[]=
+    {
+        "linear","polynomial","rbf","sigmoid","precomputed",NULL
+    };
+    
+    int svm_save_model(const char *model_file_name, const svm_model *model)
+    {
+        FILE *fp = fopen(model_file_name,"w");
+        if(fp==NULL) return -1;
+        
+        char *old_locale = setlocale(LC_ALL, NULL);
+        if (old_locale) {
+            old_locale = strdup(old_locale);
+        }
+        setlocale(LC_ALL, "C");
+        
+        const svm_parameter& param = model->param;
+        
+        fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]);
+        fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]);
+        
+        if(param.kernel_type == POLY)
+            fprintf(fp,"degree %d\n", param.degree);
+        
+        if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID)
+            fprintf(fp,"gamma %g\n", param.gamma);
+        
+        if(param.kernel_type == POLY || param.kernel_type == SIGMOID)
+            fprintf(fp,"coef0 %g\n", param.coef0);
+        
+        int nr_class = model->nr_class;
+        int l = model->l;
+        fprintf(fp, "nr_class %d\n", nr_class);
+        fprintf(fp, "total_sv %d\n",l);
+        
+        {
+            fprintf(fp, "rho");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->rho[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->label)
+        {
+            fprintf(fp, "label");
+            for(int i=0;i<nr_class;i++)
+                fprintf(fp," %d",model->label[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->probA) // regression has probA only
+        {
+            fprintf(fp, "probA");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->probA[i]);
+            fprintf(fp, "\n");
+        }
+        if(model->probB)
+        {
+            fprintf(fp, "probB");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->probB[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->nSV)
+        {
+            fprintf(fp, "nr_sv");
+            for(int i=0;i<nr_class;i++)
+                fprintf(fp," %d",model->nSV[i]);
+            fprintf(fp, "\n");
+        }
+        
+        fprintf(fp, "SV\n");
+        const double * const *sv_coef = model->sv_coef;
+        const svm_node * const *SV = model->SV;
+        
+        for(int i=0;i<l;i++)
+        {
+            for(int j=0;j<nr_class-1;j++)
+                fprintf(fp, "%.16g ",sv_coef[j][i]);
+            
+            const svm_node *p = SV[i];
+            
+            if(param.kernel_type == PRECOMPUTED)
+                fprintf(fp,"0:%d ",(int)(p->value));
+            else
+                while(p->index != -1)
+                {
+                    fprintf(fp,"%d:%.8g ",p->index,p->value);
+                    p++;
+                }
+            fprintf(fp, "\n");
+        }
+        
+        setlocale(LC_ALL, old_locale);
+        free(old_locale);
+        
+        if (ferror(fp) != 0 || fclose(fp) != 0) return -1;
+        else return 0;
+    }
+    
+    static char *line = NULL;
+    static int max_line_len;
+    
+    static char* readline(FILE *input)
+    {
+        int len;
+        
+        if(fgets(line,max_line_len,input) == NULL)
+            return NULL;
+        
+        while(strrchr(line,'\n') == NULL)
+        {
+            max_line_len *= 2;
+            line = (char *) realloc(line,max_line_len);
+            len = (int) strlen(line);
+            if(fgets(line+len,max_line_len-len,input) == NULL)
+                break;
+        }
+        return line;
+    }
+    
+    //
+    // FSCANF helps to handle fscanf failures.
+    // Its do-while block avoids the ambiguity when
+    // if (...)
+    //    FSCANF();
+    // is used
+    //
+#define FSCANF(_stream, _format, _var) do{ if (fscanf(_stream, _format, _var) != 1) return false; }while(0)
+    bool read_model_header(FILE *fp, svm_model* model)
+    {
+        svm_parameter& param = model->param;
+        // parameters for training only won't be assigned, but arrays are assigned as NULL for safety
+        param.nr_weight = 0;
+        param.weight_label = NULL;
+        param.weight = NULL;
+        
+        char cmd[81];
+        while(1)
+        {
+            FSCANF(fp,"%80s",cmd);
+            
+            if(strcmp(cmd,"svm_type")==0)
+            {
+                FSCANF(fp,"%80s",cmd);
+                int i;
+                for(i=0;svm_type_table[i];i++)
+                {
+                    if(strcmp(svm_type_table[i],cmd)==0)
+                    {
+                        param.svm_type=i;
+                        break;
+                    }
+                }
+                if(svm_type_table[i] == NULL)
+                {
+                    fprintf(stderr,"unknown svm type.\n");
+                    return false;
+                }
+            }
+            else if(strcmp(cmd,"kernel_type")==0)
+            {		
+                FSCANF(fp,"%80s",cmd);
+                int i;
+                for(i=0;kernel_type_table[i];i++)
+                {
+                    if(strcmp(kernel_type_table[i],cmd)==0)
+                    {
+                        param.kernel_type=i;
+                        break;
+                    }
+                }
+                if(kernel_type_table[i] == NULL)
+                {
+                    fprintf(stderr,"unknown kernel function.\n");	
+                    return false;
+                }
+            }
+            else if(strcmp(cmd,"degree")==0)
+                FSCANF(fp,"%d",&param.degree);
+            else if(strcmp(cmd,"gamma")==0)
+                FSCANF(fp,"%lf",&param.gamma);
+            else if(strcmp(cmd,"coef0")==0)
+                FSCANF(fp,"%lf",&param.coef0);
+            else if(strcmp(cmd,"nr_class")==0)
+                FSCANF(fp,"%d",&model->nr_class);
+            else if(strcmp(cmd,"total_sv")==0)
+                FSCANF(fp,"%d",&model->l);
+            else if(strcmp(cmd,"rho")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->rho = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->rho[i]);
+            }
+            else if(strcmp(cmd,"label")==0)
+            {
+                int n = model->nr_class;
+                model->label = Malloc(int,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%d",&model->label[i]);
+            }
+            else if(strcmp(cmd,"probA")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->probA = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->probA[i]);
+            }
+            else if(strcmp(cmd,"probB")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->probB = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->probB[i]);
+            }
+            else if(strcmp(cmd,"nr_sv")==0)
+            {
+                int n = model->nr_class;
+                model->nSV = Malloc(int,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%d",&model->nSV[i]);
+            }
+            else if(strcmp(cmd,"SV")==0)
+            {
+                while(1)
+                {
+                    int c = getc(fp);
+                    if(c==EOF || c=='\n') break;
+                }
+                break;
+            }
+            else
+            {
+                fprintf(stderr,"unknown text in model file: [%s]\n",cmd);
+                return false;
+            }
+        }
+        
+        return true;
+        
+    }
+    
+    svm_model *svm_load_model(const char *model_file_name)
+    {
+        FILE *fp = fopen(model_file_name,"rb");
+        if(fp==NULL) return NULL;
+        
+        char *old_locale = setlocale(LC_ALL, NULL);
+        if (old_locale) {
+            old_locale = strdup(old_locale);
+        }
+        setlocale(LC_ALL, "C");
+        
+        // read parameters
+        
+        svm_model *model = Malloc(svm_model,1);
+        model->rho = NULL;
+        model->probA = NULL;
+        model->probB = NULL;
+        model->sv_indices = NULL;
+        model->label = NULL;
+        model->nSV = NULL;
+        
+        // read header
+        if (!read_model_header(fp, model))
+        {
+            fprintf(stderr, "ERROR: fscanf failed to read model\n");
+            setlocale(LC_ALL, old_locale);
+            free(old_locale);
+            free(model->rho);
+            free(model->label);
+            free(model->nSV);
+            free(model);
+            return NULL;
+        }
+        
+        // read sv_coef and SV
+        
+        int elements = 0;
+        long pos = ftell(fp);
+        
+        max_line_len = 1024;
+        line = Malloc(char,max_line_len);
+        char *p,*endptr,*idx,*val;
+        
+        while(readline(fp)!=NULL)
+        {
+            p = strtok(line,":");
+            while(1)
+            {
+                p = strtok(NULL,":");
+                if(p == NULL)
+                    break;
+                ++elements;
+            }
+        }
+        elements += model->l;
+        
+        fseek(fp,pos,SEEK_SET);
+        
+        int m = model->nr_class - 1;
+        int l = model->l;
+        model->sv_coef = Malloc(double *,m);
+        int i;
+        for(i=0;i<m;i++)
+            model->sv_coef[i] = Malloc(double,l);
+        model->SV = Malloc(svm_node*,l);
+        svm_node *x_space = NULL;
+        if(l>0) x_space = Malloc(svm_node,elements);
+        
+        int j=0;
+        for(i=0;i<l;i++)
+        {
+            readline(fp);
+            model->SV[i] = &x_space[j];
+            
+            p = strtok(line, " \t");
+            model->sv_coef[0][i] = strtod(p,&endptr);
+            for(int k=1;k<m;k++)
+            {
+                p = strtok(NULL, " \t");
+                model->sv_coef[k][i] = strtod(p,&endptr);
+            }
+            
+            while(1)
+            {
+                idx = strtok(NULL, ":");
+                val = strtok(NULL, " \t");
+                
+                if(val == NULL)
+                    break;
+                x_space[j].index = (int) strtol(idx,&endptr,10);
+                x_space[j].value = strtod(val,&endptr);
+                
+                ++j;
+            }
+            x_space[j++].index = -1;
+        }
+        free(line);
+        
+        setlocale(LC_ALL, old_locale);
+        free(old_locale);
+        
+        if (ferror(fp) != 0 || fclose(fp) != 0)
+            return NULL;
+        
+        model->free_sv = 1;	// XXX
+        return model;
+    }
+    
+    void svm_free_model_content(svm_model* model_ptr)
+    {
+        if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL)
+            free((void *)(model_ptr->SV[0]));
+        if(model_ptr->sv_coef)
+        {
+            for(int i=0;i<model_ptr->nr_class-1;i++)
+                free(model_ptr->sv_coef[i]);
+        }
+        
+        free(model_ptr->SV);
+        model_ptr->SV = NULL;
+        
+        free(model_ptr->sv_coef);
+        model_ptr->sv_coef = NULL;
+        
+        free(model_ptr->rho);
+        model_ptr->rho = NULL;
+        
+        free(model_ptr->label);
+        model_ptr->label= NULL;
+        
+        free(model_ptr->probA);
+        model_ptr->probA = NULL;
+        
+        free(model_ptr->probB);
+        model_ptr->probB= NULL;
+        
+        free(model_ptr->sv_indices);
+        model_ptr->sv_indices = NULL;
+        
+        free(model_ptr->nSV);
+        model_ptr->nSV = NULL;
+    }
+    
+    void svm_free_and_destroy_model(svm_model** model_ptr_ptr)
+    {
+        if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL)
+        {
+            svm_free_model_content(*model_ptr_ptr);
+            free(*model_ptr_ptr);
+            *model_ptr_ptr = NULL;
+        }
+    }
+    
+    void svm_destroy_param(svm_parameter* param)
+    {
+        free(param->weight_label);
+        free(param->weight);
+    }
+    
+    const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param)
+    {
+        // svm_type
+        
+        int svm_type = param->svm_type;
+        if(svm_type != C_SVC &&
+           svm_type != NU_SVC &&
+           svm_type != ONE_CLASS &&
+           svm_type != EPSILON_SVR &&
+           svm_type != NU_SVR)
+            return "unknown svm type";
+        
+        // kernel_type, degree
+        
+        int kernel_type = param->kernel_type;
+        if(kernel_type != LINEAR &&
+           kernel_type != POLY &&
+           kernel_type != RBF &&
+           kernel_type != SIGMOID &&
+           kernel_type != PRECOMPUTED)
+            return "unknown kernel type";
+        
+        if(param->gamma < 0)
+            return "gamma < 0";
+        
+        if(param->degree < 0)
+            return "degree of polynomial kernel < 0";
+        
+        // cache_size,eps,C,nu,p,shrinking
+        
+        if(param->cache_size <= 0)
+            return "cache_size <= 0";
+        
+        if(param->eps <= 0)
+            return "eps <= 0";
+        
+        if(svm_type == C_SVC ||
+           svm_type == EPSILON_SVR ||
+           svm_type == NU_SVR)
+            if(param->C <= 0)
+                return "C <= 0";
+        
+        if(svm_type == NU_SVC ||
+           svm_type == ONE_CLASS ||
+           svm_type == NU_SVR)
+            if(param->nu <= 0 || param->nu > 1)
+                return "nu <= 0 or nu > 1";
+        
+        if(svm_type == EPSILON_SVR)
+            if(param->p < 0)
+                return "p < 0";
+        
+        if(param->shrinking != 0 &&
+           param->shrinking != 1)
+            return "shrinking != 0 and shrinking != 1";
+        
+        if(param->probability != 0 &&
+           param->probability != 1)
+            return "probability != 0 and probability != 1";
+        
+        if(param->probability == 1 &&
+           svm_type == ONE_CLASS)
+            return "one-class SVM probability output not supported yet";
+        
+        
+        // check whether nu-svc is feasible
+        
+        if(svm_type == NU_SVC)
+        {
+            int l = prob->l;
+            int max_nr_class = 16;
+            int nr_class = 0;
+            int *label = Malloc(int,max_nr_class);
+            int *count = Malloc(int,max_nr_class);
+            
+            int i;
+            for(i=0;i<l;i++)
+            {
+                int this_label = (int)prob->y[i];
+                int j;
+                for(j=0;j<nr_class;j++)
+                    if(this_label == label[j])
+                    {
+                        ++count[j];
+                        break;
+                    }
+                if(j == nr_class)
+                {
+                    if(nr_class == max_nr_class)
+                    {
+                        max_nr_class *= 2;
+                        label = (int *)realloc(label,max_nr_class*sizeof(int));
+                        count = (int *)realloc(count,max_nr_class*sizeof(int));
+                    }
+                    label[nr_class] = this_label;
+                    count[nr_class] = 1;
+                    ++nr_class;
+                }
+            }
+            
+            for(i=0;i<nr_class;i++)
+            {
+                int n1 = count[i];
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    int n2 = count[j];
+                    if(param->nu*(n1+n2)/2 > min(n1,n2))
+                    {
+                        free(label);
+                        free(count);
+                        return "specified nu is infeasible";
+                    }
+                }
+            }
+            free(label);
+            free(count);
+        }
+        
+        return NULL;
+    }
+    
+    int svm_check_probability_model(const svm_model *model)
+    {
+        return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) &&
+                model->probA!=NULL && model->probB!=NULL) ||
+        ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) &&
+         model->probA!=NULL);
+    }
+    
+    void svm_set_print_string_function(void (*print_func)(const char *))
+    {
+        if(print_func == NULL)
+            svm_print_string = &print_string_stdout;
+        else
+            svm_print_string = print_func;
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.h
new file mode 100644
index 0000000..b1f5832
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/dependencies/libsvm/libsvm.h
@@ -0,0 +1,108 @@
+#ifndef _LIBSVM_H
+#define _LIBSVM_H
+
+namespace LIBSVM {
+    
+#define LIBSVM_VERSION 322
+    
+#ifdef __cplusplus
+    extern "C" {
+#endif
+        
+        extern int libsvm_version;
+        
+        struct svm_node
+        {
+            int index;
+            double value;
+        };
+        
+        struct svm_problem
+        {
+            int l;
+            double *y;
+            struct svm_node **x;
+        };
+        
+        enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };	/* svm_type */
+        enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */
+        
+        struct svm_parameter
+        {
+            int svm_type;
+            int kernel_type;
+            int degree;	/* for poly */
+            double gamma;	/* for poly/rbf/sigmoid */
+            double coef0;	/* for poly/sigmoid */
+            
+            /* these are for training only */
+            double cache_size; /* in MB */
+            double eps;	/* stopping criteria */
+            double C;	/* for C_SVC, EPSILON_SVR and NU_SVR */
+            int nr_weight;		/* for C_SVC */
+            int *weight_label;	/* for C_SVC */
+            double* weight;		/* for C_SVC */
+            double nu;	/* for NU_SVC, ONE_CLASS, and NU_SVR */
+            double p;	/* for EPSILON_SVR */
+            int shrinking;	/* use the shrinking heuristics */
+            int probability; /* do probability estimates */
+        };
+        
+        //
+        // svm_model
+        //
+        struct svm_model
+        {
+            struct svm_parameter param;	/* parameter */
+            int nr_class;		/* number of classes, = 2 in regression/one class svm */
+            int l;			/* total #SV */
+            struct svm_node **SV;		/* SVs (SV[l]) */
+            double **sv_coef;	/* coefficients for SVs in decision functions (sv_coef[k-1][l]) */
+            double *rho;		/* constants in decision functions (rho[k*(k-1)/2]) */
+            double *probA;		/* pariwise probability information */
+            double *probB;
+            int *sv_indices;        /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */
+            
+            /* for classification only */
+            
+            int *label;		/* label of each class (label[k]) */
+            int *nSV;		/* number of SVs for each class (nSV[k]) */
+            /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */
+            /* XXX */
+            int free_sv;		/* 1 if svm_model is created by svm_load_model*/
+            /* 0 if svm_model is created by svm_train */
+        };
+        
+        struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
+        void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);
+        
+        int svm_save_model(const char *model_file_name, const struct svm_model *model);
+        struct svm_model *svm_load_model(const char *model_file_name);
+        
+        int svm_get_svm_type(const struct svm_model *model);
+        int svm_get_nr_class(const struct svm_model *model);
+        void svm_get_labels(const struct svm_model *model, int *label);
+        void svm_get_sv_indices(const struct svm_model *model, int *sv_indices);
+        int svm_get_nr_sv(const struct svm_model *model);
+        double svm_get_svr_probability(const struct svm_model *model);
+        
+        double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);
+        double svm_predict(const struct svm_model *model, const struct svm_node *x);
+        double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);
+        
+        void svm_free_model_content(struct svm_model *model_ptr);
+        void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr);
+        void svm_destroy_param(struct svm_parameter *param);
+        
+        const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);
+        int svm_check_probability_model(const struct svm_model *model);
+        
+        void svm_set_print_string_function(void (*print_func)(const char *));
+        
+#ifdef __cplusplus
+    }
+#endif
+    
+}
+
+#endif /* _LIBSVM_H */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/baseModel.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/baseModel.h
new file mode 100644
index 0000000..9ca7461
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/baseModel.h
@@ -0,0 +1,47 @@
+/**
+ * @file baseModel.h
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 5 Sep 2016
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+
+#ifndef baseModel_h
+#define baseModel_h
+
+#include <vector>
+#include "trainingExample.h"
+
+#ifndef EMSCRIPTEN
+#include "../dependencies/json/json.h"
+#endif
+
+/** Base class for wekinator models. Implemented by NN and KNN classes */
+template<typename T>
+class baseModel {
+public:
+    virtual ~baseModel() {};
+    virtual T run(const std::vector<T> &inputVector) = 0;
+    virtual void train(const std::vector<trainingExampleTemplate<T> > &trainingSet) = 0;
+    virtual void reset() = 0;;
+    virtual int getNumInputs() const = 0;
+    virtual std::vector<int> getWhichInputs() const = 0;
+    
+#ifndef EMSCRIPTEN
+    virtual void getJSONDescription(Json::Value &currentModel) = 0;
+    
+protected:
+    template<typename TT>
+    Json::Value vector2json(TT vec) {
+        Json::Value toReturn;
+        for (int i = 0; i < vec.size(); ++i) {
+            toReturn.append(vec[i]);
+        }
+        return toReturn;
+    }
+#endif
+    
+};
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.cpp
new file mode 100644
index 0000000..70855e1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.cpp
@@ -0,0 +1,107 @@
+//
+//  classification.h
+//  RapidLib
+//
+//  Created by mzed on 26/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+
+#include <vector>
+#include "classification.h"
+#ifdef EMSCRIPTEN
+#include "emscripten/classificationEmbindings.h"
+#endif
+
+template<typename T>
+classificationTemplate<T>::classificationTemplate() {
+    modelSet<T>::numInputs = 0;
+    modelSet<T>::numOutputs = 0;
+    modelSet<T>::created = false;
+    classificationType = knn; //this is the default algorithm
+};
+
+template<typename T>
+classificationTemplate<T>::classificationTemplate(classificationTypes classification_type) {
+    modelSet<T>::numInputs = 0;
+    modelSet<T>::numOutputs = 0;
+    modelSet<T>::created = false;
+    classificationType = classification_type;
+};
+
+template<typename T>
+classificationTemplate<T>::classificationTemplate(const int &num_inputs, const int &num_outputs) { //TODO: this feature isn't really useful
+    modelSet<T>::numInputs = num_inputs;
+    modelSet<T>::numOutputs = num_outputs;
+    modelSet<T>::created = false;
+    std::vector<int> whichInputs;
+    for (int i = 0; i < modelSet<T>::numInputs; ++i) {
+        whichInputs.push_back(i);
+    }
+    std::vector<trainingExampleTemplate<T> > trainingSet;
+    for (int i = 0; i < modelSet<T>::numOutputs; ++i) {
+       modelSet<T>::myModelSet.push_back(new knnClassification<T>(modelSet<T>::numInputs, whichInputs, trainingSet, 1));
+    }
+    modelSet<T>::created = true;
+};
+
+template<typename T>
+classificationTemplate<T>::classificationTemplate(const std::vector<trainingExampleTemplate<T> > &trainingSet) {
+    modelSet<T>::numInputs = 0;
+    modelSet<T>::numOutputs = 0;
+    modelSet<T>::created = false;
+    train(trainingSet);
+};
+
+template<typename T>
+bool classificationTemplate<T>::train(const std::vector<trainingExampleTemplate<T> > &trainingSet) {
+    //TODO: time this process?
+    modelSet<T>::myModelSet.clear();
+    //create model(s) here
+    modelSet<T>::numInputs = int(trainingSet[0].input.size());
+    for (int i = 0; i < modelSet<T>::numInputs; ++i) {
+        modelSet<T>::inputNames.push_back("inputs-" + std::to_string(i + 1));
+    }
+    modelSet<T>::numOutputs = int(trainingSet[0].output.size());
+    for ( auto example : trainingSet) {
+        if (example.input.size() != modelSet<T>::numInputs) {
+            return false;
+        }
+        if (example.output.size() != modelSet<T>::numOutputs) {
+            return false;
+        }
+    }
+    std::vector<int> whichInputs;
+    for (int j = 0; j < modelSet<T>::numInputs; ++j) {
+        whichInputs.push_back(j);
+    }
+    for (int i = 0; i < modelSet<T>::numOutputs; ++i) {
+        if (classificationType == svm) {
+            modelSet<T>::myModelSet.push_back(new svmClassification<T>(modelSet<T>::numInputs));
+        } else {
+            modelSet<T>::myModelSet.push_back(new knnClassification<T>(modelSet<T>::numInputs, whichInputs, trainingSet, 1));
+        }
+    }
+    modelSet<T>::created = true;
+    return modelSet<T>::train(trainingSet);
+}
+
+template<typename T>
+std::vector<int> classificationTemplate<T>::getK() {
+    std::vector<int> kVector;
+    for (baseModel<T>* model : modelSet<T>::myModelSet) {
+        knnClassification<T>* kNNModel = dynamic_cast<knnClassification<T>*>(model); //FIXME: I really dislike this design
+        kVector.push_back(kNNModel->getK());
+    }
+    return kVector;
+}
+
+template<typename T>
+void classificationTemplate<T>::setK(const int whichModel, const int newK) {
+    knnClassification<T>* kNNModel = dynamic_cast<knnClassification<T>*>(modelSet<T>::myModelSet[whichModel]); //FIXME: I really dislike this design
+    kNNModel->setK(newK);
+}
+
+//explicit instantiation
+template class classificationTemplate<double>;
+template class classificationTemplate<float>;
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.h
new file mode 100644
index 0000000..21ba5ac
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/classification.h
@@ -0,0 +1,57 @@
+//
+//  classification.h
+//  RapidLib
+//
+//  Created by mzed on 26/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef classification_h
+#define classification_h
+
+#include <vector>
+#include "modelSet.h"
+
+/*! Class for implementing a set of classification models.
+ *
+ * This doesn't do anything modelSet can't do. But, it's simpler and more like wekinator.
+ */
+
+template<typename T>
+class classificationTemplate : public modelSet<T> {
+public:
+    enum classificationTypes { knn, svm };
+    
+    /** with no arguments, just make an empty vector */
+    classificationTemplate();
+    
+    /** speciify classification type */
+    classificationTemplate(classificationTypes classificationType);
+    
+    /** create based on training set inputs and outputs */
+    classificationTemplate(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    /** create with proper models, but not trained */
+    classificationTemplate(const int &numInputs, const int &numOutputs);
+    
+    /** destructor */
+    ~classificationTemplate() {}
+    
+    /** Train on a specified set, causes creation if not created */
+    bool train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    
+    /** Check the K values for each model. This feature is temporary, and will be replaced by a different design. */
+    std::vector<int> getK();
+    /** Get the K values for each model. This feature is temporary, and will be replaced by a different design. */
+    void setK(const int whichModel, const int newK);
+    
+    
+    
+private:
+    classificationTypes classificationType;
+};
+
+//This is here so that the old API still works as expected.
+using classification = classificationTemplate<double>;
+using classificationFloat = classificationTemplate<float>;
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.cpp
new file mode 100644
index 0000000..da4b5e0
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.cpp
@@ -0,0 +1,153 @@
+/**
+ * @file dtw.cpp
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 07 Jun 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include <vector>
+#include <cmath>
+#include <cassert>
+#include "dtw.h"
+
+template<typename T>
+dtw<T>::dtw() {};
+
+template<typename T>
+dtw<T>::~dtw() {};
+
+template<typename T>
+inline T dtw<T>::distanceFunction(const std::vector<T> &x, const std::vector<T> &y) {
+    assert(x.size() == y.size());
+    T euclidianDistance = 0;
+    for(int j = 0; j < x.size() ; ++j){
+        euclidianDistance = euclidianDistance + pow((x[j] - y[j]), 2);
+    }
+    euclidianDistance = sqrt(euclidianDistance);
+    return euclidianDistance;
+};
+
+/* Just returns the cost, doesn't calculate the path */
+template<typename T>
+T dtw<T>::getCost(const std::vector<std::vector<T> > &seriesX, const std::vector<std::vector<T> > &seriesY) {
+    if (seriesX.size() < seriesY.size()) {
+        return getCost(seriesY, seriesX);
+    }
+    
+    costMatrix.clear();
+    for (int i = 0; i < seriesX.size(); ++i) {
+        std::vector<T> tempVector;
+        for (int j = 0; j < seriesY.size(); ++j) {
+            tempVector.push_back(0);
+        }
+        costMatrix.push_back(tempVector);
+    }
+    int maxX = int(seriesX.size()) - 1;
+    int maxY = int(seriesY.size()) - 1;
+    
+    //Calculate values for the first column
+    costMatrix[0][0] = distanceFunction(seriesX[0], seriesY[0]);
+    for (int j = 1; j <= maxY; ++j) {
+        costMatrix[0][j] = costMatrix[0][j - 1] + distanceFunction(seriesX[0], seriesY[j]);
+    }
+    
+    for (int i = 1; i <= maxX; ++i) {
+        //Bottom row of current column
+        costMatrix[i][0] = costMatrix[i - 1][0] + distanceFunction(seriesX[i], seriesY[0]);
+        for (int j = 1; j <= maxY; ++j) {
+            T minGlobalCost = fmin(costMatrix[i-1][j-1], costMatrix[i][j-1]);
+            costMatrix[i][j] = minGlobalCost + distanceFunction(seriesX[i], seriesY[j]);
+        }
+    }
+    return costMatrix[maxX][maxY];
+};
+
+template<typename T>
+warpPath dtw<T>::calculatePath(int seriesXsize, int seriesYsize) {
+    warpPath warpPath;
+    int i = seriesXsize - 1;
+    int j = seriesYsize - 1;
+    warpPath.add(i, j);
+    
+    while ((i > 0) || (j > 0)) {
+        T diagonalCost = std::numeric_limits<T>::infinity();
+        T leftCost = std::numeric_limits<T>::infinity();
+        T downCost = std::numeric_limits<T>::infinity();
+        if ((i > 0) && (j > 0)) {
+            diagonalCost = costMatrix[i - 1][j - 1];
+        }
+        if (i > 0) {
+            leftCost = costMatrix[i - 1][j];
+        }
+        if (j > 0) {
+            downCost = costMatrix[i][j - 1];
+        }
+        if ((diagonalCost <= leftCost) && (diagonalCost <= downCost)) {
+            i--;
+            j--;
+        } else if ((leftCost < diagonalCost) && (leftCost < downCost)){
+            i--;
+        } else if ((downCost < diagonalCost) && (downCost < leftCost)) {
+            j--;
+        } else if (i <= j) {
+            j--;
+        } else {
+            i--;
+        }
+        warpPath.add(i, j);
+    }
+    return warpPath;
+};
+
+/* calculates both the cost and the warp path*/
+template<typename T>
+warpInfo dtw<T>::dynamicTimeWarp(const std::vector<std::vector<T> > &seriesX, const std::vector<std::vector<T> > &seriesY) {
+    warpInfo info;
+    //calculate cost matrix
+    info.cost = getCost(seriesX, seriesY);
+    info.path = calculatePath(int(seriesX.size()), int(seriesY.size()));
+    return info;
+}
+
+/* calculates warp info based on window */
+template<typename T>
+warpInfo dtw<T>::constrainedDTW(const std::vector<std::vector<T> > &seriesX, const std::vector<std::vector<T> > &seriesY, searchWindow<T> window) {
+    
+    //initialize cost matrix
+    costMatrix.clear();
+    for (int i = 0; i < seriesX.size(); ++i) { //TODO: this could be smaller, since most cells are unused
+        std::vector<T> tempVector;
+        for (int j = 0; j < seriesY.size(); ++j) {
+            tempVector.push_back(std::numeric_limits<T>::max());
+        }
+        costMatrix.push_back(tempVector);
+    }
+    int maxX = int(seriesX.size()) - 1;
+    int maxY = int(seriesY.size()) - 1;
+    
+    //fill cost matrix cells based on window
+    for (int currentX = 0; currentX < window.minValues.size(); ++currentX) {
+        for (int currentY = window.minValues[currentX]; currentY <= window.maxValues[currentX]; ++currentY) { //FIXME: should be <= ?
+            if (currentX == 0 && currentY == 0) { //bottom left cell
+                costMatrix[0][0] = distanceFunction(seriesX[0], seriesY[0]);
+            } else if (currentX == 0) { //first column
+                costMatrix[0][currentY] = distanceFunction(seriesX[0], seriesY[currentY]) + costMatrix[0][currentY - 0];
+            } else if (currentY == 0) { //first row
+                costMatrix[currentX][0] = distanceFunction(seriesX[currentX], seriesY[0]) + costMatrix[currentX - 1][0];
+            } else {
+                T minGlobalCost = fmin(costMatrix[currentX - 1][currentY], fmin(costMatrix[currentX-1][currentY-1], costMatrix[currentX][currentY-1]));
+                costMatrix[currentX][currentY] = distanceFunction(seriesX[currentX], seriesY[currentY]) + minGlobalCost;
+            }
+        }
+    }
+    warpInfo info;
+    info.cost = costMatrix[maxX][maxY];
+    info.path = calculatePath(int(seriesX.size()), int(seriesY.size()));
+    return info;
+}
+
+//explicit instantiation
+template class dtw<double>;
+template class dtw<float>;
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.h
new file mode 100644
index 0000000..a93e25b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/dtw.h
@@ -0,0 +1,38 @@
+/**
+ * @file dtw.h
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 07 Jun 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef dtw_h
+#define dtw_h
+
+#include <vector>
+#include "warpPath.h"
+#include "searchWindow.h"
+
+template<typename T>
+class dtw {
+public:
+    dtw();
+    ~dtw();
+    
+    /* Calculates and returns a simple cost value between two input series */
+    T getCost(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY);
+    
+    /* Calculates both cost and the warp path */
+    warpInfo dynamicTimeWarp(const std::vector<std::vector<T> > &seriesX, const std::vector<std::vector<T> > &seriesY); //This returns everything, including a path
+    
+    /* Calculates both the cost and the warp path, with a given window as a constraint */
+    warpInfo constrainedDTW(const std::vector<std::vector<T> > &seriesX, const std::vector<std::vector<T> > &seriesY, searchWindow<T> window); //This takes a window object
+    
+private:
+    inline T distanceFunction(const std::vector<T> &pointX, const std::vector<T> &point);
+    std::vector<std::vector<T> > costMatrix;
+    warpPath calculatePath(int seriesXsize, int seriesYsize);
+};
+
+#endif /* dtw_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/classificationEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/classificationEmbindings.h
new file mode 100644
index 0000000..ba4be9a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/classificationEmbindings.h
@@ -0,0 +1,34 @@
+//
+//  classificationEmbindings.cpp
+//  RapidLib
+//
+//  Created by mzed on 27/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+
+#ifndef classificationEmbindings_h
+#define classificationEmbindings_h
+
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(classification_module) {
+  class_<classificationTemplate<double>, base<modelSet<double> > >("ClassificationCpp") //name change so that I can wrap it in Javascript. -mz
+    .constructor()
+    .constructor<classificationTemplate<double>::classificationTypes>()
+    //    .constructor< std::vector<trainingExample> >()
+    .constructor<int, int>()
+    .function("train", &classificationTemplate<double>::train)
+    .function("getK", &classificationTemplate<double>::getK)
+    .function("setK", &classificationTemplate<double>::setK)
+    ;
+  enum_<classificationTemplate<double>::classificationTypes>("ClassificationTypes")
+    .value("KNN", classificationTemplate<double>::knn)
+    .value("SVM", classificationTemplate<double>::svm)
+    ;
+
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/knnEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/knnEmbindings.h
new file mode 100644
index 0000000..7024381
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/knnEmbindings.h
@@ -0,0 +1,45 @@
+//
+//  knnEmbindings.h
+//  RapidLib
+//
+//  Created by mzed on 05/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef knnEmbindings_h
+#define knnEmbindings_h
+
+#include <vector>
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(stl_wrappers) {
+  register_vector<int>("VectorInt");
+  register_vector<double>("VectorDouble");
+  register_vector<std::vector<double>>("VectorVectorDouble");
+
+  register_vector<trainingExampleTemplate<double>>("TrainingSet");
+  register_vector<trainingSeriesTemplate<double>>("TrainingSeriesSet");
+
+  value_object<trainingExampleTemplate<double>>("trainingExample")
+    .field("input", &trainingExampleTemplate<double>::input)
+    .field("output", &trainingExampleTemplate<double>::output)
+    ;
+
+  value_object<trainingSeriesTemplate<double>>("trainingSeries")
+    .field("input", &trainingSeriesTemplate<double>::input)
+    .field("label", &trainingSeriesTemplate<double>::label)
+    ;
+}
+
+
+EMSCRIPTEN_BINDINGS(knn_module) {
+  class_<knnClassification<double>>("KnnClassification")
+    .constructor<int, std::vector<int>, std::vector<trainingExampleTemplate<double>>, int>()
+    .function("addNeighbour", &knnClassification<double>::addNeighbour)
+    .function("run", &knnClassification<double>::run)
+    ;
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/modelSetEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/modelSetEmbindings.h
new file mode 100644
index 0000000..97a098e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/modelSetEmbindings.h
@@ -0,0 +1,26 @@
+//
+//  modelSetEmbindings.h
+//  RapidLib
+//
+//  Created by mzed on 04/10/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef modelSetEmbindings_h
+#define modelSetEmbindings_h
+
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(modelSet_module) {
+  class_<modelSet<double> >("ModelSetCpp") //name change so that I can wrap it in Javascript. -mz
+    .constructor()
+    .function("train", &modelSet<double>::train)
+    .function("reset", &modelSet<double>::reset)
+    .function("run", &modelSet<double>::run)
+    ;
+  
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nnEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nnEmbindings.h
new file mode 100644
index 0000000..eeacc1b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nnEmbindings.h
@@ -0,0 +1,26 @@
+//
+//  nnEmbindings.h
+//  RapidLib
+//
+//  Created by mzed on 22/08/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef nnEmbindings_h
+#define nnEmbindings_h
+
+#include <vector>
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(nn_module) {
+   class_<neuralNetwork<double>>("NeuralNetwork")
+     .constructor<int, std::vector<int>, int, int>()
+     .constructor<int, std::vector<int>, int, int, std::vector<double>, std::vector<double>, std::vector<double>, std::vector<double>, double, double>()
+     .function("run", &neuralNetwork<double>::run)
+     .function("train", &neuralNetwork<double>::train)
+     ;
+
+};
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nodeEnv.js b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nodeEnv.js
new file mode 100644
index 0000000..c33d2f5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/nodeEnv.js
@@ -0,0 +1,7 @@
+//Forces the environment to be Node, to run with babel-tape-runner
+
+try {
+    Module.ENVIRONMENT = NODE;
+} catch (e) {
+    // do nothing
+}
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidLibPost.js b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidLibPost.js
new file mode 100644
index 0000000..fe01d0b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidLibPost.js
@@ -0,0 +1,629 @@
+//
+//  rapidLibPost.js
+//  RapidLib
+//
+//  Created by mzed on 05/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+/* globals Module */
+
+"use strict";
+
+console.log("RapidLib 15.11.2017 14:40");
+
+/**
+ * Utility function to convert js objects into C++ trainingSets
+ * @param {Object} trainingSet - JS Object representing a training set
+ * @property {function} Module.TrainingSet - constructor for emscripten version of this struct
+ * @property {function} Module.VectorDouble - constructor for the emscripten version of std::vector<double>
+ * @returns {Module.TrainingSet}
+ */
+Module.prepTrainingSet = function (trainingSet) {
+    let rmTrainingSet = new Module.TrainingSet();
+    for (let i = 0; i < trainingSet.length; ++i) {
+        let tempInput = new Module.VectorDouble();
+        let tempOutput = new Module.VectorDouble();
+        for (let j = 0; j < trainingSet[i].input.length; ++j) {
+            tempInput.push_back(parseFloat(trainingSet[i].input[j]));
+        }
+        for (let j = 0; j < trainingSet[i].output.length; ++j) {
+            tempOutput.push_back(parseFloat(trainingSet[i].output[j]));
+        }
+        let tempObj = {'input': tempInput, 'output': tempOutput};
+        rmTrainingSet.push_back(tempObj);
+    }
+    return rmTrainingSet;
+};
+
+/**
+ * Utility function to convert js objects into C++ trainingSeriesSets
+ * @param {Object} trainingSeriesSet - JS Object representing a training series
+ * @property {function} Module.TrainingSeriest - constructor for emscripten version of this struct
+ * @property {function} Module.VectorVectorDouble - constructor for the emscripten version of std::vector<std::vector<double>>
+ * @returns {Module.TrainingSeriesSet}
+ */
+Module.prepTrainingSeriesSet = function (trainingSeriesSet) {
+    let rmTrainingSeriesSet = new Module.TrainingSeriesSet();
+    for (let i = 0; i < trainingSeriesSet.length; ++i) {
+        let input = new Module.VectorVectorDouble();
+        for (let j = 0; j < trainingSeriesSet[i].input.length; ++j) {
+            let tempVector = new Module.VectorDouble();
+            for (let k = 0; k < trainingSeriesSet[i].input[j].length; ++k) {
+                tempVector.push_back(parseFloat(trainingSeriesSet[i].input[j][k]));
+            }
+            input.push_back(tempVector);
+        }
+        let tempObj = {'input': input, 'label': trainingSeriesSet[i].label};
+        rmTrainingSeriesSet.push_back(tempObj);
+    }
+    return rmTrainingSeriesSet;
+};
+
+/**
+ * Utility function to add an empty output to a "training set" if it is undefined
+ * @param jsInput
+ * @returns {*}
+ */
+
+Module.checkOutput = function (jsInput) {
+    for (let i = 0; i < jsInput.length; ++i) {
+        if (typeof jsInput[i].output === "undefined") {
+            jsInput[i].output = [];
+        }
+    }
+    return jsInput;
+};
+////////////////////////////////////////////////   Regression
+
+/**
+ * Creates a set of regression objects using the constructor from emscripten
+ * @constructor
+ * @property {function} Module.RegressionCpp - constructor from emscripten
+ */
+Module.Regression = function () {
+    this.modelSet = new Module.RegressionCpp(); //TODO implement optional arguments
+};
+
+Module.Regression.prototype = {
+    /**
+     * Trains the models using the input. Starts training from a randomized state.
+     * @param {Object} trainingSet - An array of training examples
+     * @returns {Boolean} true indicates successful training
+     */
+    train: function (trainingSet) {
+        this.modelSet.reset();
+        //change to vectorDoubles and send in
+        return this.modelSet.train(Module.prepTrainingSet(trainingSet));
+    },
+    /**
+     * Returns the number of hidden layers in a MLP.
+     * @returns {Number} k values
+     */
+    getNumHiddenLayers: function () {
+        let outputVector = this.modelSet.getNumHiddenLayers();
+        //change back to javascript array
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output[0];
+    },
+    /**
+     * Sets the number of hidden layers for an MLP.
+     * @param {Number} numHiddenLayers
+     */
+    setNumHiddenLayers: function (numHiddenLayers) {
+        this.modelSet.setNumHiddenLayers(numHiddenLayers);
+    },
+    /**
+     * Sets the number of epochs for MLP training.
+     * @param {Number} numEpochs
+     */
+    setNumEpochs: function (numEpochs) {
+        this.modelSet.setNumEpochs(numEpochs);
+    },
+    /**
+     * Returns the model set to its initial configuration.
+     * @returns {Boolean} true indicates successful initialization
+     */
+    reset: function () {
+        return this.modelSet.reset();
+    },
+    /**
+     * Runs feed-forward regression on input
+     * @param {Array} input - An array of features to be processed. Non-arrays are converted.
+     * @returns {Array} output - One number for each model in the set
+     */
+    run: function (input) {
+        //I'll assume that the args should have been an array
+        if (arguments.length > 1) {
+            input = Array.from(arguments);
+        }
+        //change input to vectors of doubles
+        let inputVector = new Module.VectorDouble();
+        for (let i = 0; i < input.length; ++i) {
+            inputVector.push_back(input[i]);
+        }
+        //get the output
+        let outputVector = this.modelSet.run(inputVector);
+        //change back to javascript array
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output;
+    },
+    /**
+     * Deprecated! Use run() instead
+     * @param input
+     * @returns {Array}
+     */
+    process: function (input) {
+        //return this.run(input); //Why doesn't this work? MZ
+        //I'll assume that the args should have been an array
+        if (arguments.length > 1) {
+            input = Array.from(arguments);
+        }
+        //change input to vectors of doubles
+        let inputVector = new Module.VectorDouble();
+        for (let i = 0; i < input.length; ++i) {
+            inputVector.push_back(input[i]);
+        }
+        //get the output
+        let outputVector = new Module.VectorDouble();
+        outputVector = this.modelSet.run(inputVector);
+        //change back to javascript array
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output;
+    }
+};
+
+/////////////////////////////////////////////////  Classification
+
+/**
+ * Creates a set of classification objects using the constructor from emscripten
+ * @constructor
+ * @property {function} Module.ClassificationCpp - constructor from emscripten
+ * @param {string} [type] - which classification algorithm to use
+ */
+
+Module.Classification = function (type) {
+    if (type) {
+        this.modelSet = new Module.ClassificationCpp(type);
+    } else {
+        this.modelSet = new Module.ClassificationCpp();
+    }
+};
+
+Module.Classification.prototype = {
+    /**
+     * Trains the models using the input. Clears previous training set.
+     * @param {Object} trainingSet - An array of training examples.
+     * @returns {Boolean} true indicates successful training
+     */
+    train: function (trainingSet) {
+        this.modelSet.reset();
+        return this.modelSet.train(Module.prepTrainingSet(trainingSet));
+    },
+    /**
+     * Returns a vector of current k values for each model.
+     * @returns {Array} k values
+     */
+    getK: function () {
+        let outputVector = this.modelSet.getK();
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output;
+    },
+    /**
+     * Sets the k values for a particular model model.
+     * @param {Number} whichModel - which model
+     * @param {Number} newK - set K to this value
+     */
+    setK: function (whichModel, newK) {
+        this.modelSet.setK(whichModel, newK);
+    },
+    /**
+     * Returns the model set to its initial configuration.
+     * @returns {Boolean} true indicates successful initialization
+     */
+    reset: function () {
+        return this.modelSet.reset();
+    },
+    /**
+     * Does classifications on an input vector.
+     * @param {Array} input - An array of features to be processed. Non-arrays are converted.
+     * @returns {Array} output - One number for each model in the set
+     */
+    run: function (input) {
+        //I'll assume that the args should have been an array
+        if (arguments.length > 1) {
+            input = Array.from(arguments);
+        }
+        //change input to vectors of doubles
+        let inputVector = new Module.VectorDouble();
+        for (let i = 0; i < input.length; ++i) {
+            inputVector.push_back(input[i]);
+        }
+        //get the output
+        let outputVector = new Module.VectorDouble();
+        outputVector = this.modelSet.run(inputVector);
+        //change back to javascript array
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output;
+    },
+    /**
+     * Deprecated! USe run() instead
+     * @param input
+     */
+    process: function (input) {
+        //return this.run(input); //why doesn't this work?
+        //I'll assume that the args should have been an array
+        if (arguments.length > 1) {
+            input = Array.from(arguments);
+        }
+        //change input to vectors of doubles
+        let inputVector = new Module.VectorDouble();
+        for (let i = 0; i < input.length; ++i) {
+            inputVector.push_back(input[i]);
+        }
+        //get the output
+        let outputVector = this.modelSet.run(inputVector);
+        //change back to javascript array
+        let output = [];
+        for (let i = 0; i < outputVector.size(); ++i) {
+            output.push(outputVector.get(i));
+        }
+        return output;
+    }
+};
+
+//////////////////////////////////////////////////  ModelSet
+
+/**
+ * Creates a set of machine learning objects using constructors from emscripten. Could be any mix of regression and classification.
+ * This is only useful when importing JSON from Wekinator.
+ * @constructor
+ */
+Module.ModelSet = function () {
+    this.myModelSet = [];
+    this.modelSet = new Module.ModelSetCpp();
+};
+
+/**
+ * Creates a model set populated with models described in a JSON document.
+ * This only works in documents that are part of a CodeCircle document.
+ * @param {string} url - JSON loaded from a model set description document.
+ * @returns {Boolean} true indicates successful training
+ */
+Module.ModelSet.prototype = {
+    loadJSON: function (url) {
+        let that = this;
+        console.log('url ', url);
+        let request = new XMLHttpRequest();
+        request.open("GET", url, true);
+        request.responseType = "json";
+        request.onload = function () {
+            let modelSet = this.response;
+            console.log("loaded: ", modelSet);
+            let allInputs = modelSet.metadata.inputNames;
+            modelSet.modelSet.forEach(function (value) {
+                let numInputs = value.numInputs;
+                let whichInputs = new Module.VectorInt();
+                switch (value.modelType) {
+                    case 'kNN classification':
+                        let neighbours = new Module.TrainingSet();
+                        let k = value.k;
+                        for (let i = 0; i < allInputs.length; ++i) {
+                            if (value.inputNames.includes(allInputs[i])) {
+                                whichInputs.push_back(i);
+                            }
+                        }
+                        let myKnn = new Module.KnnClassification(numInputs, whichInputs, neighbours, k);
+                        value.examples.forEach(function (value) {
+                            let features = new Module.VectorDouble();
+                            for (let i = 0; i < numInputs; ++i) {
+                                features.push_back(parseFloat(value.features[i]));
+                            }
+                            myKnn.addNeighbour(parseInt(value.class), features);
+                        });
+                        that.addkNNModel(myKnn);
+                        break;
+                    case 'Neural Network':
+                        let numLayers = value.numHiddenLayers;
+                        let numNodes = value.numHiddenNodes;
+                        let weights = new Module.VectorDouble();
+                        let wHiddenOutput = new Module.VectorDouble();
+                        let inRanges = new Module.VectorDouble();
+                        let inBases = new Module.VectorDouble();
+
+                        let localWhichInputs = [];
+                        for (let i = 0; i < allInputs.length; ++i) {
+                            if (value.inputNames.includes(allInputs[i])) {
+                                whichInputs.push_back(i);
+                                localWhichInputs.push(i);
+                            }
+                        }
+
+                        let currentLayer = 0;
+                        value.nodes.forEach(function (value, i) {
+                            if (value.name === 'Linear Node 0') { //Output Node
+                                for (let j = 1; j <= numNodes; ++j) {
+                                    let whichNode = 'Node ' + (j + (numNodes * (numLayers - 1)));
+                                    wHiddenOutput.push_back(parseFloat(value[whichNode]));
+                                }
+                                wHiddenOutput.push_back(parseFloat(value.Threshold));
+                            } else {
+                                currentLayer = Math.floor((i - 1) / numNodes); //FIXME: This will break if node is out or order.
+                                if (currentLayer < 1) { //Nodes connected to input
+                                    for (let j = 0; j < numInputs; ++j) {
+                                        weights.push_back(parseFloat(value['Attrib ' + allInputs[localWhichInputs[j]]]));
+                                    }
+                                } else { //Hidden Layers
+                                    for (let j = 1; j <= numNodes; ++j) {
+                                        weights.push_back(parseFloat(value['Node ' + (j + (numNodes * (currentLayer - 1)))]));
+                                    }
+                                }
+                                weights.push_back(parseFloat(value.Threshold));
+                            }
+                        });
+
+                        for (let i = 0; i < numInputs; ++i) {
+                            inRanges.push_back(value.inRanges[i]);
+                            inBases.push_back(value.Bases[i]);
+                        }
+
+                        let outRange = value.outRange;
+                        let outBase = value.outBase;
+
+                        let myNN = new Module.NeuralNetwork(numInputs, whichInputs, numLayers, numNodes, weights, wHiddenOutput, inRanges, inBases, outRange, outBase);
+                        that.addNNModel(myNN);
+                        break;
+                    default:
+                        console.warn('unknown model type ', value.modelType);
+                        break;
+                }
+            });
+        };
+        request.send(null);
+        return true; //TODO: make sure this is true;
+    },
+    /**
+     * Add a NN model to a modelSet. //TODO: this doesn't need it's own function
+     * @param model
+     */
+    addNNModel: function (model) {
+        console.log('Adding NN model');
+        this.myModelSet.push(model);
+    },
+    /**
+     * Add a kNN model to a modelSet. //TODO: this doesn't need it's own function
+     * @param model
+     */
+    addkNNModel: function (model) {
+        console.log('Adding kNN model');
+        this.myModelSet.push(model);
+    },
+    /**
+     * Applies regression and classification algorithms to an input vector.
+     * @param {Array} input - An array of features to be processed.
+     * @returns {Array} output - One number for each model in the set
+     */
+    run: function (input) {
+        let modelSetInput = new Module.VectorDouble();
+        for (let i = 0; i < input.length; ++i) {
+            modelSetInput.push_back(input[i]);
+        }
+        let output = [];
+        for (let i = 0; i < this.myModelSet.length; ++i) {
+            output.push(this.myModelSet[i].run(modelSetInput));
+        }
+        return output;
+    },
+    /**
+     * Deprecated! Use run() instead.
+     * @param {Array} input - An array of features to be processed
+     * @returns {Array} output - One number for each model in the set
+     */
+    process: function (input) {
+        return this.run(input);
+    }
+};
+
+
+////////////////////////////////////////////////
+
+/**
+ * Creates a series classification object using the constructor from emscripten
+ * @constructor
+ * @property {function} Module.SeriesClassificationCpp - constructor from emscripten
+ */
+Module.SeriesClassification = function () {
+    this.seriesClassification = new Module.SeriesClassificationCpp(); //TODO implement optional arguments
+};
+
+Module.SeriesClassification.prototype = {
+    /**
+     * Resets the model, and adds a set of series to be evaluated
+     * @param {Object} newSeriesSet - an array of objects, each with input: <array of arrays> and label: <string>
+     * @return {Boolean} True indicates successful training.
+     */
+    train: function (newSeriesSet) {
+        this.reset();
+        this.seriesClassification.train(Module.prepTrainingSeriesSet(newSeriesSet));
+        return true;
+    },
+    /**
+     * Returns the model set to its initial configuration.
+     * @returns {Boolean} true indicates successful initialization
+     */
+    reset: function () {
+        return this.seriesClassification.reset();
+    },
+    /**
+     * Evaluates an input series and returns the index of the closet example
+     * @param {Object} inputSeries - an array of arrays
+     * @returns {Number} The index of the closest matching series
+     */
+    run: function (inputSeries, label) {
+        let vecInputSeries = new Module.VectorVectorDouble();
+        for (let i = 0; i < inputSeries.length; ++i) {
+            let tempVector = new Module.VectorDouble();
+            for (let j = 0; j < inputSeries[i].length; ++j) {
+                tempVector.push_back(inputSeries[i][j]);
+            }
+            vecInputSeries.push_back(tempVector);
+        }
+        if (arguments.length > 1) {
+            return this.seriesClassification.runLabel(vecInputSeries, label);
+        } else {
+            return this.seriesClassification.run(vecInputSeries);
+        }
+    },
+    /**
+     * Deprecated! Use run()
+     * @param inputSeries
+     * @returns {Number}
+     */
+    process: function (inputSeries) {
+        return this.run(inputSeries);
+    },
+    /**
+     * Returns an array of costs to match the input series to each example series. A lower cost is a closer match
+     * @returns {Array}
+     */
+    getCosts: function () {
+        let returnArray = [];
+        let VecDouble = this.seriesClassification.getCosts();
+        for (let i = 0; i < VecDouble.size(); ++i) {
+            returnArray[i] = VecDouble.get(i);
+        }
+        return returnArray;
+    }
+};
+
+/////////////////////////////////////////////////
+
+/**
+ * Creates a circular buffer that can return various statistics
+ * @constructor
+ * @param {number} [windowSize=3] - specify the size of the buffer
+ * @property {function} Module.rapidStreamCpp - constructor from emscripten
+ */
+
+Module.StreamBuffer = function (windowSize) {
+    if (windowSize) {
+        this.rapidStream = new Module.RapidStreamCpp(windowSize);
+    } else {
+        this.rapidStream = new Module.RapidStreamCpp();
+    }
+};
+
+Module.StreamBuffer.prototype = {
+    /**
+     * Add a value to a circular buffer whose size is defined at creation.
+     * @param {number} input - value to be pushed into circular buffer.
+     */
+    push: function (input) {
+        this.rapidStream.pushToWindow(parseFloat(input));
+    },
+    /**
+     * Resets all the values in the buffer to zero.
+     */
+    reset: function () {
+        this.rapidStream.clear();
+    },
+    /**
+     * Calculate the first-order difference (aka velocity) between the last two inputs.
+     * @return {number} difference between last two inputs.
+     */
+    velocity: function () {
+        return this.rapidStream.velocity();
+    },
+    /**
+     * Calculate the second-order difference (aka acceleration) over the last three inputs.
+     * @return {number} acceleration over the last three inputs.
+     */
+    acceleration: function () {
+        return this.rapidStream.acceleration();
+    },
+    /**
+     * Find the minimum value in the buffer.
+     * @return {number} minimum.
+     */
+    minimum: function () {
+        return this.rapidStream.minimum();
+    },
+    /**
+     * Find the maximum value in the buffer.
+     * @return {number} maximum.
+     */
+    maximum: function () {
+        return this.rapidStream.maximum();
+    },
+    /**
+     * Calculate the sum of all values in the buffer.
+     * @return {number} sum.
+     */
+    sum: function () {
+        return this.rapidStream.sum();
+    },
+    /**
+     * Calculate the mean of all values in the buffer.
+     * @return {number} mean.
+     */
+    mean: function () {
+        return this.rapidStream.mean();
+    },
+    /**
+     * Calculate the standard deviation of all values in the buffer.
+     * @return {number} standard deviation.
+     */
+    standardDeviation: function () {
+        return this.rapidStream.standardDeviation();
+    },
+    /**
+     * Calculate the root mean square of the values in the buffer
+     * @return {number} rms
+     */
+    rms: function () {
+        return this.rapidStream.rms();
+    },
+    /**
+     * Calculate the minimum first-order difference over consecutive inputs in the buffer.
+     * @return {number} minimum velocity.
+     */
+    minVelocity: function () {
+        return this.rapidStream.minVelocity();
+    },
+    /**
+     * Calculate the maximum first-order difference over consecutive inputs in the buffer.
+     * @return {number} maximum velocity.
+     */
+    maxVelocity: function () {
+        return this.rapidStream.maxVelocity();
+    },
+    /**
+     * Calculate the minimum second-order difference over consecutive inputs in the buffer.
+     * @return {number} minimum acceleration.
+     */
+    minAcceleration: function () {
+        return this.rapidStream.minAcceleration();
+    },
+    /**
+     * Calculate the maximum second-order difference over consecutive inputs in the buffer.
+     * @return {number} maximum acceleration.
+     */
+    maxAcceleration: function () {
+        return this.rapidStream.maxAcceleration();
+    }
+};
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidStreamEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidStreamEmbindings.h
new file mode 100644
index 0000000..55c7509
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/rapidStreamEmbindings.h
@@ -0,0 +1,38 @@
+//
+//  rapidStreamEmbindings.h
+//  RapidLib
+//
+//  Created by mzed on 01/06/2017.
+//  Copyright © 2017 Goldsmiths. All rights reserved.
+//
+
+#ifndef rapidStreamEmbindings_h
+#define rapidStreamEmbindings_h
+
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(rapidStream_module) {
+  class_<rapidStream<double> >("RapidStreamCpp") //name change so that I can wrap it in Javascript. -mz
+    .constructor()
+    .constructor<int>()
+    .function("clear", &rapidStream<double>::clear)
+    .function("pushToWindow", &rapidStream<double>::pushToWindow)
+    .function("velocity", &rapidStream<double>::velocity)
+    .function("acceleration", &rapidStream<double>::acceleration)
+    .function("minimum", &rapidStream<double>::minimum)
+    .function("maximum", &rapidStream<double>::maximum)
+    .function("sum", &rapidStream<double>::sum)
+    .function("mean", &rapidStream<double>::mean)
+    .function("standardDeviation", &rapidStream<double>::standardDeviation)
+    .function("rms", &rapidStream<double>::rms)
+    .function("minVelocity", &rapidStream<double>::minVelocity)
+    .function("maxVelocity", &rapidStream<double>::maxVelocity)
+    .function("minAcceleration", &rapidStream<double>::minAcceleration)
+    .function("maxAcceleration", &rapidStream<double>::maxAcceleration)
+    ;
+  
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/regressionEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/regressionEmbindings.h
new file mode 100644
index 0000000..7c40b70
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/regressionEmbindings.h
@@ -0,0 +1,29 @@
+//
+//  regressionEmbindings.cpp
+//  RapidLib
+//
+//  Created by mzed on 26/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef regressionEmbindings_h
+#define regressionEmbindings_h
+
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(regression_module) {
+  class_<regressionTemplate<double>, base<modelSet<double> > >("RegressionCpp") //name change so that I can wrap it in Javascript. -mz
+    .constructor()
+    .constructor< std::vector<trainingExampleTemplate<double> > >()
+    .constructor<int, int>()
+    .function("train", &regressionTemplate<double>::train)
+    .function("getNumHiddenLayers", &regressionTemplate<double>::getNumHiddenLayers)
+    .function("setNumHiddenLayers", &regressionTemplate<double>::setNumHiddenLayers)
+    .function("setNumEpochs", &regressionTemplate<double>::setNumEpochs)
+    ;
+
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/seriesClassificationEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/seriesClassificationEmbindings.h
new file mode 100644
index 0000000..c610805
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/seriesClassificationEmbindings.h
@@ -0,0 +1,28 @@
+//
+//  seriesClassification.h
+//  RapidLib
+//
+//  Created by mzed on 13/06/2017.
+//  Copyright © 2017 Goldsmiths. All rights reserved.
+//
+
+
+#ifndef seriesClassificationEmbindings_h
+#define seriesClassificationEmbindings_h
+
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(seriesClassification_module) {
+  class_<seriesClassificationTemplate<double> >("SeriesClassificationCpp") //name change so that I can wrap it in Javascript. -mz
+    .constructor()
+    .function("reset", &seriesClassificationTemplate<double>::reset)
+    .function("train", &seriesClassificationTemplate<double>::train)
+    .function("run", select_overload<std::string(const std::vector<std::vector<double>>&)>(&seriesClassificationTemplate<double>::run))
+    .function("runLabel", select_overload<double(const std::vector<std::vector<double>>&, std::string)>(&seriesClassificationTemplate<double>::run))
+    .function("getCosts", &seriesClassificationTemplate<double>::getCosts)
+    ;
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/svmEmbindings.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/svmEmbindings.h
new file mode 100644
index 0000000..f867ce2
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/emscripten/svmEmbindings.h
@@ -0,0 +1,26 @@
+//
+//  svmEmbindings.cpp
+//  RapidLib
+//
+//  Created by mzed on 25/08/2017.
+//  Copyright © 2017 Goldsmiths. All rights reserved.
+//
+
+
+#ifndef svmEmbindings_h
+#define svmEmbindings_h
+
+#include <vector>
+#include <emscripten/bind.h>
+
+using namespace emscripten;
+
+EMSCRIPTEN_BINDINGS(svm_module) {
+  class_<svmClassification<double>>("svmClassificationCPP")
+    .constructor<int>()
+    .function("train", &svmClassification<double>::train)
+    .function("run", &svmClassification<double>::run)
+    ;
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.cpp
new file mode 100644
index 0000000..bbc4ed7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.cpp
@@ -0,0 +1,75 @@
+/**
+ * @file fastDTW.cpp
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 07 Sep 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "fastDTW.h"
+#include "dtw.h"
+
+template<typename T>
+fastDTW<T>::fastDTW() {};
+
+template<typename T>
+fastDTW<T>::~fastDTW() {};
+
+template<typename T>
+warpInfo fastDTW<T>::fullFastDTW(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius){
+    
+#ifndef EMSCRIPTEN
+    if (seriesY.size() > seriesX.size()) {
+        return fullFastDTW(seriesY, seriesX, searchRadius); //TODO: I'm not sure why I need this. Also, not sure why it fails with Emscripten.
+    }
+#endif
+    
+    dtw<T> dtw;
+    searchRadius = (searchRadius < 0) ? 0 : searchRadius;
+    int minSeries = searchRadius + 2;
+    if (seriesX.size() <= minSeries || seriesY.size() <= minSeries) {
+        return dtw.dynamicTimeWarp(seriesX, seriesY);
+    }
+    
+    T resolution = 2.0;//TODO: Just hardcode this?
+    std::vector<std::vector<T>> shrunkenX = downsample(seriesX, resolution);
+    std::vector<std::vector<T>> shrunkenY = downsample(seriesY, resolution);
+    
+    //some nice recursion here
+    searchWindow<T> window(int(seriesX.size()), int(seriesY.size()), getWarpPath(shrunkenX, shrunkenY, searchRadius), searchRadius);
+    return dtw.constrainedDTW(seriesX, seriesY, window);
+};
+
+template<typename T>
+T fastDTW<T>::getCost(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius){
+    warpInfo info = fullFastDTW(seriesX, seriesY, searchRadius);
+    return info.cost;
+};
+
+template<typename T>
+warpPath fastDTW<T>::getWarpPath(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius){
+    warpInfo info = fullFastDTW(seriesX, seriesY, searchRadius);
+    return info.path;
+};
+
+template<typename T>
+std::vector<std::vector<T> > fastDTW<T>::downsample(const std::vector<std::vector<T>> &series, T resolution) {
+    std::vector<std::vector<T> > shrunkenSeries;
+    for (int i = 0; i < series.size(); ++i) {
+        if (i % 2 == 0) {
+            shrunkenSeries.push_back(series[i]);
+        } else {
+            int shrunkIndex = int(i/2);
+            for (int j = 0; j < series[i].size(); ++j) {
+                shrunkenSeries[shrunkIndex][j] = (shrunkenSeries[shrunkIndex][j] + series[i][j]) / 2;
+            }
+        }
+    }
+    //TODO: implement downsampling by resolution
+    return shrunkenSeries;
+}
+
+//explicit instantiation
+template class fastDTW<double>;
+template class fastDTW<float>;
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.h
new file mode 100644
index 0000000..654e165
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/fastDTW.h
@@ -0,0 +1,61 @@
+/**
+ * @file  fastDTW.h
+ * RapidLib
+ * @author Michael Zbyszynski
+ * @date 07 Sep 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef fastDTW_h
+#define fastDTW_h
+
+#include <vector>
+#include "warpPath.h"
+
+/** Class for performing an fast dynamic time warping between two time series*/
+template<typename T>
+class fastDTW {
+public:
+    fastDTW();
+    ~fastDTW();
+    
+    /**
+     * Returns just the cost of warping one series into a second.
+     * @param seriesX time series X
+     * @param seriesY time series Y
+     * @param searchRadius search radius (usually 1)
+     * @return cost to warp between series
+     */
+    static T getCost(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius);
+    
+private:
+    /**
+     * Returns the cost and the warp path.
+     * @param seriesX time series X
+     * @param seriesY time series Y
+     * @param searchRadius search radius (usually 1)
+     * @return information about optimal time warp
+     */
+    static warpInfo fullFastDTW(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius);
+
+    /**
+     * Returns just lowest cost path to warping one series into a second.
+     * @param seriesX time series X
+     * @param seriesY time series Y
+     * @param searchRadius search radius (usually 1)
+     * @return The warp path
+     */
+    static warpPath getWarpPath(const std::vector<std::vector<T>> &seriesX, const std::vector<std::vector<T > > &seriesY, int searchRadius);
+    
+    /**
+     * Downsamples a time series by two. Resolution isn't implemented yet
+     * @param series
+     * @param resolution (not used)
+     * @return downsampled series
+     `*/
+    static std::vector<std::vector<T> > downsample(const std::vector<std::vector<T>> &series, T resolution);
+    
+};
+
+
+#endif /* fastDTW_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.cpp
new file mode 100644
index 0000000..3f470b4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.cpp
@@ -0,0 +1,171 @@
+//
+//  knnClassification.cpp
+//  RapidLib
+//
+//  Created by mzed on 05/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#include <cmath>
+#include <utility>
+#include <map>
+#include <vector>
+#include <algorithm>
+#include "knnClassification.h"
+#ifdef EMSCRIPTEN
+#include "emscripten/knnEmbindings.h"
+#endif
+
+template<typename T>
+knnClassification<T>::knnClassification(const int &num_inputs, const std::vector<int> &which_inputs, const std::vector<trainingExampleTemplate<T> > &_neighbours, const int k)
+: numInputs(num_inputs),
+whichInputs(which_inputs),
+neighbours(_neighbours),
+desiredK(k),
+currentK(k)
+{
+    nearestNeighbours = new std::pair<int, T>[currentK];
+}
+
+template<typename T>
+knnClassification<T>::~knnClassification() {
+    delete[] nearestNeighbours;
+}
+
+template<typename T>
+void knnClassification<T>::reset() {
+    //TODO: implement this
+}
+
+template<typename T>
+int knnClassification<T>::getNumInputs() const {
+    return numInputs;
+}
+
+template<typename T>
+std::vector<int> knnClassification<T>::getWhichInputs() const {
+    return whichInputs;
+}
+
+template<typename T>
+int knnClassification<T>::getK() const {
+    return currentK;
+}
+
+template<typename T>
+inline void knnClassification<T>::updateK() {
+    if (currentK != desiredK) {
+        currentK = std::min(desiredK, (int) neighbours.size());
+    }
+}
+
+template<typename T>
+void knnClassification<T>::setK(int newK) {
+    desiredK = newK;
+    updateK();
+}
+
+template<typename T>
+void knnClassification<T>::addNeighbour(const int &classNum, const std::vector<T> &features) {
+    std::vector<T> classVec;
+    classVec.push_back(T(classNum));
+    trainingExampleTemplate<T>  newNeighbour = {features, classVec};
+    neighbours.push_back(newNeighbour);
+    updateK();
+};
+
+template<typename T>
+void knnClassification<T>::train(const std::vector<trainingExampleTemplate<T> > &trainingSet) { //FIXME: Does numInputs need to be reset here? -MZ
+    neighbours.clear();
+    neighbours = trainingSet;
+    updateK();
+};
+
+template<typename T>
+T knnClassification<T>::run(const std::vector<T> &inputVector) {
+    for (int i = 0; i < currentK; ++i) {
+        nearestNeighbours[i] = {0, 0.};
+    };
+    std::pair<int, T> farthestNN = {0, 0.};
+    
+    std::vector<T> pattern;
+    for (int h = 0; h < numInputs; h++) {
+        pattern.push_back(inputVector[whichInputs[h]]);
+    }
+    
+    //Find k nearest neighbours
+    int index = 0;
+    for (typename std::vector<trainingExampleTemplate<T> >::iterator it = neighbours.begin(); it != neighbours.end(); ++it) {
+        //find Euclidian distance for this neighbor
+        T euclidianDistance = 0;
+        for(int j = 0; j < numInputs ; ++j){
+            euclidianDistance += pow((pattern[j] - it->input[j]), 2);
+        }
+        euclidianDistance = sqrt(euclidianDistance);
+        if (index < currentK) {
+            //save the first k neighbours
+            nearestNeighbours[index] = {index, euclidianDistance};
+            if (euclidianDistance > farthestNN.second) {
+                farthestNN = {index, euclidianDistance};
+            }
+        } else if (euclidianDistance < farthestNN.second) {
+            //replace farthest, if new neighbour is closer
+            nearestNeighbours[farthestNN.first] = {index, euclidianDistance};
+            int currentFarthest = 0;
+            T currentFarthestDistance = 0.;
+            for (int n = 0; n < currentK; n++) {
+                if (nearestNeighbours[n].second > currentFarthestDistance) {
+                    currentFarthest = n;
+                    currentFarthestDistance = nearestNeighbours[n].second;
+                }
+            }
+            farthestNN = {currentFarthest, currentFarthestDistance};
+        }
+        ++index;
+    }
+    
+    //majority vote on nearest neighbours
+    std::map<int, int> classVoteMap;
+    typedef std::pair<int, int> classVotePair;
+    for (int i = 0; i < currentK; ++i){
+        int classNum = (int) std::round(neighbours[nearestNeighbours[i].first].output[0]);
+        if ( classVoteMap.find(classNum) == classVoteMap.end() ) {
+            classVoteMap.insert(classVotePair(classNum, 1));
+        } else {
+            classVoteMap[classNum]++;
+        }
+    }
+    T foundClass = 0;
+    int mostVotes = 0;
+    std::map<int, int>::iterator p;
+    for(p = classVoteMap.begin(); p != classVoteMap.end(); ++p)
+    {
+        if (p->second > mostVotes) {
+            mostVotes = p->second;
+            foundClass = p->first;
+        }
+    }
+    return foundClass;
+}
+
+#ifndef EMSCRIPTEN
+template<typename T>
+void knnClassification<T>::getJSONDescription(Json::Value &jsonModelDescription) {
+    jsonModelDescription["modelType"] = "kNN Classificiation";
+    jsonModelDescription["numInputs"] = numInputs;
+    jsonModelDescription["whichInputs"] = this->vector2json(whichInputs);
+    jsonModelDescription["k"] = desiredK;
+    Json::Value examples;
+    for (typename std::vector<trainingExampleTemplate<T> >::iterator it = neighbours.begin(); it != neighbours.end(); ++it) {
+        Json::Value oneExample;
+        oneExample["class"] = it->output[0];
+        oneExample["features"] = this->vector2json(it->input);
+        examples.append(oneExample);
+    }
+    jsonModelDescription["examples"] = examples;
+}
+#endif
+
+//explicit instantiation
+template class knnClassification<double>;
+template class knnClassification<float>;
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.h
new file mode 100644
index 0000000..8c2b8fb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/knnClassification.h
@@ -0,0 +1,93 @@
+//
+//  knnClassification.h
+//  RapidLib
+//
+//  Created by mzed on 05/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef knnClassification_h
+#define knnClassification_h
+
+#include <vector>
+#include "baseModel.h"
+
+#ifndef EMSCRIPTEN
+#include "../dependencies/json/json.h"
+#endif
+
+/** Class for implementing a knn classifier */
+template<typename T>
+class knnClassification : public baseModel<T> {
+    
+public:
+    /** Constructor that takes training examples in
+     * @param number of inputs expected in the training and input vectors
+     * @param vector of input numbers to be fed into the classifer.
+     * @param vector of training examples
+     * @param how many near neighbours to evaluate
+     */
+    knnClassification(const int &num_inputs,
+                      const std::vector<int> &which_inputs,
+                      const std::vector<trainingExampleTemplate<T> > &trainingSet,
+                      const int k);
+    ~knnClassification();
+    
+    /** add another example to the existing training set
+     * @param class number of example
+     * @param feature vector of example
+     */
+    void addNeighbour(const int &classNum, const std::vector<T> &features);
+    
+    /** Generate an output value from a single input vector.
+     * @param A standard vector of type T to be evaluated.
+     * @return A single value of type T: the nearest class as determined by k-nearest neighbor.
+     */
+    T run(const std::vector<T> &inputVector);
+    
+    /** Fill the model with a vector of examples.
+     *
+     * @param The training set is a vector of training examples that contain both a vector of input values and a value specifying desired output class.
+     *
+     */
+    void train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    
+    /** Reset the model to its empty state. */
+    void reset();
+    
+    /** Find out how many inputs the model expects
+     * @return Integer number of intpus
+     */
+    int getNumInputs() const;
+    
+    /** Find out which inputs in a vector will be used
+     * @return Vector of ints, specifying input indices.
+     */
+    std::vector<int> getWhichInputs() const;
+    
+    /** Get the number of nearest neighbours used by the kNN algorithm. */
+    int getK() const;
+    /** Change the number of nearest neighbours used by the kNN algorithm.
+     * @param new value for k
+     */
+    void setK(int newK);
+    
+#ifndef EMSCRIPTEN
+    /** Populate a JSON value with a description of the current model
+     * @param A JSON value to be populated
+     */
+    void getJSONDescription(Json::Value &currentModel);
+#endif
+    
+private:
+    int numInputs;
+    std::vector<int> whichInputs;
+    std::vector<trainingExampleTemplate<T>> neighbours;
+    int desiredK; //K that user asked for might be limited but number of examples
+    int currentK; //K minimum of desiredK or neighbours.size()
+    inline void updateK();
+    std::pair<int, T>* nearestNeighbours;
+};
+
+#endif
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.cpp
new file mode 100644
index 0000000..20c1a94
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.cpp
@@ -0,0 +1,242 @@
+//
+//  modelSet.cpp
+//  RapidLib
+//
+//  Created by mzed on 26/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+
+#include <fstream>
+#include <vector>
+#include <cmath>
+#include <algorithm>
+#include "modelSet.h"
+
+#ifndef EMSCRIPTEN
+#include "../dependencies/json/json.h"
+#else
+#include "emscripten/modelSetEmbindings.h"
+#endif
+
+/** No arguments, don't create any models yet */
+template<typename T>
+modelSet<T>::modelSet() :
+numInputs(0),
+numOutputs(0),
+created(false)
+{
+};
+
+template<typename T>
+modelSet<T>::~modelSet() {
+    for (typename std::vector<baseModel<T>*>::iterator i = myModelSet.begin(); i != myModelSet.end(); ++i) {
+        delete *i;
+    }
+};
+
+template<typename T>
+bool modelSet<T>::train(const std::vector<trainingExampleTemplate<T> > &training_set) {
+    for (trainingExampleTemplate<T> example : training_set) {
+        if (example.input.size() != numInputs) {
+            return false;
+        }
+        if (example.output.size() != numOutputs) {
+            return false;
+        }
+    }
+    for (int i = 0; i < myModelSet.size(); ++i) {
+        std::vector<trainingExampleTemplate<T> > modelTrainingSet; //just one output
+        for (trainingExampleTemplate<T> example : training_set) {
+            std::vector<T> tempT;
+            for (int j = 0; j < numInputs; ++j) {
+                tempT.push_back(example.input[j]);
+            }
+            trainingExampleTemplate<T> tempObj = {tempT, std::vector<T> {example.output[i]}};
+            modelTrainingSet.push_back(tempObj);
+        }
+        myModelSet[i]->train(modelTrainingSet);
+    }
+    created = true;
+    return true;
+}
+
+template<typename T>
+bool modelSet<T>::reset() {
+    for (typename std::vector<baseModel<T>*>::iterator i = myModelSet.begin(); i != myModelSet.end(); ++i) {
+        delete *i;
+    }
+    myModelSet.clear();
+    numInputs = 0;
+    numOutputs = 0;
+    created = false;
+    return true;
+}
+
+template<typename T>
+std::vector<T> modelSet<T>::run(const std::vector<T> &inputVector) {
+    std::vector<T> returnVector;
+    if (created && inputVector.size() == numInputs) {
+        for (auto model : myModelSet) {
+            returnVector.push_back(model->run(inputVector));
+        }
+    } else {
+        returnVector.push_back(0);
+    }
+    return returnVector;
+}
+
+
+
+#ifndef EMSCRIPTEN
+//In emscripten, we do the JSON parsing with native JavaScript
+template<typename T>
+std::vector<T> json2vector(Json::Value json) {
+    std::vector<T> returnVec;
+    for (unsigned int i = 0; i < json.size(); ++i) {
+        returnVec.push_back(json[i].asDouble());
+    }
+    return returnVec;
+}
+
+template<typename T>
+Json::Value modelSet<T>::parse2json() {
+    Json::Value root;
+    Json::Value metadata;
+    Json::Value modelSet;
+    
+    metadata["creator"] = "Rapid API C++";
+    metadata["version"] = "v0.1.1"; //TODO: This should be a macro someplace
+    metadata["numInputs"] = numInputs;
+    Json::Value inputNamesJSON;
+    for (int i = 0; i < inputNames.size(); ++i) {
+        inputNamesJSON.append(inputNames[i]);
+    }
+    metadata["inputNames"] = inputNamesJSON;
+    metadata["numOutputs"] = numOutputs;
+    root["metadata"] = metadata;
+    for (auto model : myModelSet) {
+        Json::Value currentModel;
+        currentModel["inputNames"] = inputNamesJSON; //TODO: implment this feature
+        model->getJSONDescription(currentModel);
+        modelSet.append(currentModel);
+    }
+    root["modelSet"] = modelSet;
+    return root;
+}
+
+template<typename T>
+std::string modelSet<T>::getJSON() {
+    Json::Value root = parse2json();
+    return root.toStyledString();
+}
+
+template<typename T>
+void modelSet<T>::writeJSON(const std::string &filepath) {
+    Json::Value root = parse2json();
+    std::ofstream jsonOut;
+    jsonOut.open (filepath);
+    Json::StyledStreamWriter writer;
+    writer.write(jsonOut, root);
+    jsonOut.close();
+    
+}
+
+template<typename T>
+bool modelSet<T>::putJSON(const std::string &jsonMessage) {
+    Json::Value parsedFromString;
+    Json::Reader reader;
+    bool parsingSuccessful = reader.parse(jsonMessage, parsedFromString);
+    if (parsingSuccessful)
+    {
+        json2modelSet(parsedFromString);
+    }
+    return parsingSuccessful;
+}
+
+template<typename T>
+void modelSet<T>::json2modelSet(const Json::Value &root) {
+    numInputs = root["metadata"]["numInputs"].asInt();
+    for (unsigned int i = 0; i < root["metadata"]["inputNames"].size(); ++i) {
+        inputNames.push_back(root["metadata"]["inputNames"][i].asString());
+    }
+    numOutputs = root["metadata"]["numOutputs"].asInt();
+    
+    for (const Json::Value& model : root["modelSet"]) {
+        int modelNumInputs = model["numInputs"].asInt();
+        std::vector<int> whichInputs;
+        std::vector<std::string> modelInputNames;
+        for (unsigned int i = 0; i < model["inputNames"].size(); ++i) {
+            modelInputNames.push_back(model["inputNames"][i].asString());
+        }
+        for (int i = 0; i < inputNames.size(); ++i) {
+            if (std::find(modelInputNames.begin(), modelInputNames.end(), inputNames[i]) != modelInputNames.end())
+            {
+                whichInputs.push_back(i);
+            }
+        }
+        if (model["modelType"].asString() == "Neural Network") {
+            int numHiddenLayers = model["numHiddenLayers"].asInt();
+            int numHiddenNodes = model["numHiddenNodes"].asInt();
+            std::vector<T> weights;
+            std::vector<T> wHiddenOutput;
+            int nodeIndex = 0;
+            for (const Json::Value& node : model["nodes"]) {
+                if (node["name"].asString() == "Linear Node 0") {
+                    for (int i = 1; i <= numHiddenNodes; ++i) {
+                        std::string whichNode = "Node " + std::to_string(i + (numHiddenNodes * (numHiddenLayers - 1)));
+                        wHiddenOutput.push_back(node[whichNode].asDouble());
+                    }
+                    wHiddenOutput.push_back(node["Threshold"].asDouble());
+                } else { //FIXME: this will break if nodes are out of order
+                    int currentLayer = (int) floor((nodeIndex - 1.0)/ (double)numHiddenNodes);
+                    if (currentLayer < 1) { //Nodes connected to input
+                        for (int i = 0; i < numInputs; ++i) {
+                            std::string whichNode = "Attrib " + model["inputNames"][i].asString();
+                            weights.push_back(node[whichNode].asDouble());
+                        }
+                    } else { //Hidden Layers
+                        for (int i = 0; i < numHiddenNodes; ++i) {
+                            std::string whichNode = "Node " + std::to_string(i + (numHiddenNodes * (currentLayer - 1)));
+                            weights.push_back(node[whichNode].asDouble());
+                        }                    }
+                    weights.push_back(node["Threshold"].asDouble());
+                }
+                nodeIndex++;
+            }
+            std::vector<T> inBases = json2vector<T>(model["inBases"]);
+            std::vector<T> inRanges = json2vector<T>(model["inRanges"]);
+            T outRange = model["outRange"].asDouble();
+            T outBase = model["outBase"].asDouble();
+            
+            myModelSet.push_back(new neuralNetwork<T>(modelNumInputs, whichInputs, numHiddenLayers, numHiddenNodes, weights, wHiddenOutput, inRanges, inBases, outRange, outBase));
+        } else if (model["modelType"].asString() == "kNN Classificiation") {
+            std::vector<trainingExampleTemplate<T> > trainingSet;
+            const Json::Value examples = model["examples"];
+            for (unsigned int i = 0; i < examples.size(); ++i) {
+                trainingExampleTemplate<T> tempExample;
+                tempExample.input = json2vector<T>(examples[i]["features"]);
+                tempExample.output.push_back(examples[i]["class"].asDouble());
+                trainingSet.push_back(tempExample);
+            }
+            int k = model["k"].asInt();
+            myModelSet.push_back(new knnClassification<T>(modelNumInputs, whichInputs, trainingSet, k));
+        }
+    }
+    created = true;
+}
+
+template<typename T>
+bool modelSet<T>::readJSON(const std::string &filepath) {
+    Json::Value root;
+    std::ifstream file(filepath);
+    file >> root;
+    json2modelSet(root);
+    return created; //TODO: check something first
+}
+#endif
+
+//explicit instantiation
+template class modelSet<double>;
+template class modelSet<float>;
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.h
new file mode 100644
index 0000000..53be912
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/modelSet.h
@@ -0,0 +1,60 @@
+//
+//  modelSet.h
+//  RapidLib
+//
+//  Created by mzed on 26/09/2016.
+//  Copyright © 2016 Goldsmiths. All rights reserved.
+//
+
+#ifndef modelSet_h
+#define modelSet_h
+
+#include <vector>
+#include "trainingExample.h"
+#include "baseModel.h"
+#include "neuralNetwork.h"
+#include "knnClassification.h"
+#include "svmClassification.h"
+#ifndef EMSCRIPTEN
+#include "../dependencies/json/json.h"
+#endif
+
+/** This class holds a set of models with the same or different algorithms. */
+template<typename T>
+class modelSet {
+public:
+    modelSet();
+    virtual ~modelSet();
+    /** Train on a specified set, causes creation if not created */
+    virtual bool train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    /** reset to pre-training state */
+    bool reset();
+    /** run regression or classification for each model */
+    std::vector<T> run(const std::vector<T> &inputVector);
+    
+protected:
+    std::vector<baseModel<T>*> myModelSet;
+    int numInputs;
+    std::vector<std::string> inputNames;
+    int numOutputs;
+    bool created;
+
+#ifndef EMSCRIPTEN //The javascript code will do its own JSON parsing
+public:
+    /** Get a JSON representation of the model in the form of a styled string */
+    std::string getJSON();
+    /** Write a JSON model description to specified file path */
+    void writeJSON(const std::string &filepath);
+    /** configure empty model with string. See getJSON() */
+    bool putJSON(const std::string &jsonMessage);
+    /** read a JSON file at file path and build a modelSet from it */
+    bool readJSON(const std::string &filepath);
+        
+private:
+    Json::Value parse2json();
+    void json2modelSet(const Json::Value &root);
+
+#endif
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.cpp
new file mode 100644
index 0000000..b3b2f88
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.cpp
@@ -0,0 +1,448 @@
+/**
+ * @file neuralNetwork.cpp
+ *  RapidLib
+ *
+ * @date 05 Sep 2016
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+#include <math.h>
+#include <random>
+#include <algorithm>
+#include <vector>
+
+#include "neuralNetwork.h"
+#ifdef EMSCRIPTEN
+#include "emscripten/nnEmbindings.h"
+#endif
+
+template<typename T>
+void neuralNetwork<T>::initTrainer() {
+    //initialize deltas
+    deltaWeights = std::vector<std::vector<std::vector<T> > >(numHiddenLayers, std::vector<std::vector<T> >(numHiddenNodes, std::vector<T>((numInputs + 1), 0)));
+    deltaHiddenOutput = std::vector<T>((numHiddenNodes + 1), 0);
+}
+
+/*!
+ * This is the constructor for a model imported from JSON.
+ */
+template<typename T>
+neuralNetwork<T>::neuralNetwork(const int &num_inputs,
+                                const std::vector<int> &which_inputs,
+                                const int &num_hidden_layers,
+                                const int &num_hidden_nodes,
+                                const std::vector<T> &_weights,
+                                const std::vector<T> &w_hidden_output,
+                                const std::vector<T> &in_ranges,
+                                const std::vector<T> &in_bases,
+                                const T &out_range,
+                                const T &out_base
+                                )
+:
+numInputs(num_inputs),
+whichInputs(which_inputs),
+numHiddenLayers(num_hidden_layers),
+numHiddenNodes(num_hidden_nodes),
+wHiddenOutput(w_hidden_output),
+inRanges(in_ranges),
+inBases(in_bases),
+outRange(out_range),
+outBase(out_base),
+learningRate(LEARNING_RATE),
+momentum(MOMENTUM),
+numEpochs(NUM_EPOCHS),
+outputErrorGradient(0)
+{
+    bool randomize = _weights.size() ? false : true;
+    std::default_random_engine generator;
+    std::uniform_real_distribution<T> distribution(-0.5,0.5);
+    //winding up a long vector from javascript
+    int count = 0;
+    for (int i = 0; i < numHiddenLayers; ++i) {
+        std::vector<std::vector<T>> layer;
+        for (int j = 0; j < numHiddenNodes; ++j){
+            std::vector<T> node;
+            int numConnections = (i == 0) ? numInputs : numHiddenNodes;
+            for(int k = 0; k <= numConnections; ++k){
+                if (randomize) {
+                    node.push_back(distribution(generator));
+                } else {
+                    node.push_back( _weights[count]);
+                }
+                count++;
+            }
+            layer.push_back(node);
+        }
+        weights.push_back(layer);
+    }
+    
+    if (randomize) {
+        for (int i = 0; i <= numHiddenNodes; ++i) {
+            wHiddenOutput.push_back(distribution(generator));
+        }
+    }
+    
+    for (int i = 0; i < inRanges.size(); ++i) {
+        if (inRanges[i] == 0.) {
+            inRanges[i] = 1.0; //Prevent divide by zero later.
+        }
+    }
+    
+    //trainer -- do we really need this?
+    initTrainer();
+}
+
+
+
+/*!
+ * This is the constructor for a model that needs to be trained.
+ */
+template<typename T>
+neuralNetwork<T>::neuralNetwork(const int &num_inputs,
+                                const std::vector<int> &which_inputs,
+                                const int &num_hidden_layers,
+                                const int &num_hidden_nodes
+                                )
+:
+numInputs(num_inputs),
+whichInputs(which_inputs),
+numHiddenLayers(num_hidden_layers),
+numHiddenNodes(num_hidden_nodes),
+learningRate(LEARNING_RATE),
+momentum(MOMENTUM),
+numEpochs(NUM_EPOCHS),
+outputErrorGradient(0)
+{
+    //randomize weights
+    reset();
+    
+    //trainer
+    initTrainer();
+}
+
+/*!
+ * This destructor is not needed.
+ */
+template<typename T>
+neuralNetwork<T>::~neuralNetwork() {
+}
+
+template<typename T>
+void neuralNetwork<T>::reset() {
+    std::default_random_engine generator;
+    std::uniform_real_distribution<T> distribution(-0.5,0.5);
+    
+    weights.clear();
+    for (int i = 0; i < numHiddenLayers; ++i) {
+        std::vector<std::vector<T>> layer;
+        for (int j = 0; j < numHiddenNodes; ++j){
+            std::vector<T> node;
+            int numConnections = (i == 0) ? numInputs : numHiddenNodes;
+            for(int k = 0; k <= numConnections; ++k){
+                node.push_back(distribution(generator));
+            }
+            layer.push_back(node);
+        }
+        weights.push_back(layer);
+    }
+    
+    wHiddenOutput.clear();
+    for (int i = 0; i <= numHiddenNodes; ++i) {
+        wHiddenOutput.push_back(distribution(generator));
+    }
+}
+
+template<typename T>
+inline T neuralNetwork<T>::getHiddenErrorGradient(int layer, int neuron) {
+    T weightedSum = 0;
+    if (numHiddenLayers == 1 || layer == 0) {
+        T wGradient = wHiddenOutput[neuron] * outputErrorGradient;
+        return hiddenNeurons[layer][neuron] * (1 - hiddenNeurons[layer][neuron]) * wGradient;
+    }
+    if (layer == numHiddenLayers - 1) {
+        for (int i = 0; i < numHiddenNodes; ++i) {
+            weightedSum += wHiddenOutput[i] * outputErrorGradient;
+        }
+    } else {
+        for (int i = 0; i < numHiddenNodes; ++i) {
+            weightedSum += deltaWeights[layer +1][neuron][i] * outputErrorGradient;
+        }
+    }
+    return hiddenNeurons[layer][neuron] * (1 - hiddenNeurons[layer][neuron]) * weightedSum;
+}
+
+template<typename T>
+inline T neuralNetwork<T>::activationFunction(T x) {
+    //sigmoid
+    if (x < -45) { //from weka, to combat overflow
+        x = 0;
+    } else if (x > 45) {
+        x = 1;
+    } else {
+        x = 1/(1 + exp(-x));
+    }
+    return x;
+}
+
+template<typename T>
+int neuralNetwork<T>::getNumInputs() const {
+    return numInputs;
+}
+
+template<typename T>
+std::vector<int> neuralNetwork<T>::getWhichInputs() const {
+    return whichInputs;
+}
+template<typename T>
+int neuralNetwork<T>::getNumHiddenLayers() const {
+    return numHiddenLayers;
+}
+
+template<typename T>
+void neuralNetwork<T>::setNumHiddenLayers(int num_hidden_layers) {
+    numHiddenLayers = num_hidden_layers;
+    reset();
+    initTrainer();
+}
+
+template<typename T>
+int neuralNetwork<T>::getNumHiddenNodes() const {
+    return numHiddenNodes;
+}
+
+template<typename T>
+void neuralNetwork<T>::setEpochs(const int &epochs) {
+    numEpochs = epochs;
+}
+
+template<typename T>
+std::vector<T> neuralNetwork<T>::getWeights() const{
+    std::vector<T> flatWeights;
+    for (int i = 0; i < weights.size(); ++i) {
+        for (int j = 0; j < weights[i].size(); ++j) {
+            for (int k = 0; k < weights[i][j].size(); ++k) {
+                flatWeights.push_back(weights[i][j][k]);
+            }
+        }
+    }
+    return flatWeights;
+}
+
+template<typename T>
+std::vector<T> neuralNetwork<T>::getWHiddenOutput() const {
+    return wHiddenOutput;
+}
+
+template<typename T>
+std::vector<T> neuralNetwork<T>::getInRanges() const {
+    return inRanges;
+}
+
+template<typename T>
+std::vector<T> neuralNetwork<T>::getInBases() const {
+    return inBases;
+}
+
+template<typename T>
+T neuralNetwork<T>::getOutRange() const {
+    return outRange;
+}
+
+template<typename T>
+T neuralNetwork<T>::getOutBase() const {
+    return outBase;
+}
+
+#ifndef EMSCRIPTEN
+template<typename T>
+void neuralNetwork<T>::getJSONDescription(Json::Value &jsonModelDescription) {
+    jsonModelDescription["modelType"] = "Neural Network";
+    jsonModelDescription["numInputs"] = numInputs;
+    jsonModelDescription["whichInputs"] = this->vector2json(whichInputs);
+    jsonModelDescription["numHiddenLayers"] = numHiddenLayers;
+    jsonModelDescription["numHiddenNodes"] = numHiddenNodes;
+    jsonModelDescription["numHiddenOutputs"] = 1;
+    jsonModelDescription["inRanges"] = this->vector2json(inRanges);
+    jsonModelDescription["inBases"] = this->vector2json(inBases);
+    jsonModelDescription["outRange"] = outRange;
+    jsonModelDescription["outBase"] = outBase;
+    
+    //Create Nodes
+    Json::Value nodes;
+    
+    //Output Node
+    Json::Value outNode;
+    outNode["name"] = "Linear Node 0";
+    for (int i = 0; i < numHiddenNodes; ++i) {
+        std::string nodeName = "Node " + std::to_string(i + 1);
+        outNode[nodeName] = wHiddenOutput[i];
+    }
+    outNode["Threshold"] = wHiddenOutput[numHiddenNodes];
+    nodes.append(outNode);
+    
+    //Input nodes
+    for (int i = 0; i < weights.size(); ++i) { //layers
+        for (int j = 0; j < weights[i].size(); ++j) { //hidden nodes
+            Json::Value tempNode;
+            tempNode["name"] = "Sigmoid Node " + std::to_string((i * numHiddenNodes) + j + 1);
+            for (int k = 0; k < weights[i][j].size() - 1; ++ k) { //inputs + threshold aka bias
+                std::string connectNode = "Attrib inputs-" + std::to_string(k + 1);
+                tempNode[connectNode] = weights[i][j][k];
+            }
+            tempNode["Threshold"] = weights[i][j][weights[i][j].size() - 1];
+            nodes.append(tempNode);
+        }
+    }
+    
+    jsonModelDescription["nodes"] = nodes;
+}
+#endif
+
+template<typename T>
+T neuralNetwork<T>::run(const std::vector<T> &inputVector) {
+    std::vector<T> pattern;
+    for (int h = 0; h < numInputs; h++) {
+        pattern.push_back(inputVector[whichInputs[h]]);
+    }
+    //set input layer
+    inputNeurons.clear();
+    for (int i = 0; i < numInputs; ++i) {
+        inputNeurons.push_back((pattern[i] - (inBases[i])) / inRanges[i]);
+    }
+    inputNeurons.push_back(1);
+    
+    //calculate hidden layers
+    hiddenNeurons.clear();
+    for (int i = 0; i < numHiddenLayers; ++i) {
+        std::vector<T> layer;
+        for (int j=0; j < numHiddenNodes; ++j) {
+            layer.push_back(0);
+            if (i == 0) { //first hidden layer
+                for (int k = 0; k <= numInputs; ++k) {
+                    layer[j] += inputNeurons[k] * weights[0][j][k];
+                }
+            } else {
+                for (int k = 0; k <= numHiddenNodes; ++k) {
+                    layer[j] += hiddenNeurons[i - 1][k] * weights [i][j][k];
+                }
+            }
+            layer[j] = activationFunction(layer[j]);
+        }
+        layer.push_back(1); //for bias weight
+        hiddenNeurons.push_back(layer);
+    }
+    
+    //calculate output
+    outputNeuron = 0;
+    for (int k=0; k <= numHiddenNodes; ++k){
+        outputNeuron += hiddenNeurons[numHiddenLayers - 1][k] * wHiddenOutput[k];
+    }
+    //if classifier, outputNeuron = activationFunction(outputNeuron), else...
+    outputNeuron = (outputNeuron * outRange) + outBase;
+    return outputNeuron;
+}
+
+template<typename T>
+void neuralNetwork<T>::train(const std::vector<trainingExampleTemplate<T > > &trainingSet) {
+    initTrainer();
+    //setup maxes and mins
+    std::vector<T> inMax = trainingSet[0].input;
+    std::vector<T> inMin = trainingSet[0].input;
+    T outMin = trainingSet[0].output[0];
+    T outMax = trainingSet[0].output[0];
+    for (int ti = 1; ti < (int) trainingSet.size(); ++ti) {
+        for (int i = 0; i < numInputs; ++i) {
+            if (trainingSet[ti].input[i] > inMax[i]) {
+                inMax[i] = trainingSet[ti].input[i];
+            }
+            if (trainingSet[ti].input[i] < inMin[i]) {
+                inMin[i] = trainingSet[ti].input[i];
+            }
+            if (trainingSet[ti].output[0] > outMax) {
+                outMax = trainingSet[ti].output[0];
+            }
+            if (trainingSet[ti].output[0] < outMin) {
+                outMin = trainingSet[ti].output[0];
+            }
+        }
+    }
+    inRanges.clear();
+    inBases.clear();
+    for (int i = 0; i < numInputs; ++i) {
+        inRanges.push_back((inMax[i] - inMin[i]) * 0.5);
+        inBases.push_back((inMax[i] + inMin[i]) * 0.5);
+    }
+    for (int i = 0; i < inRanges.size(); ++i) {
+        if (inRanges[i] == 0.) {
+            inRanges[i] = 1.0; //Prevent divide by zero later.
+        }
+    }
+    outRange = (outMax - outMin) * 0.5;
+    outBase = (outMax + outMin) * 0.5;
+    
+    //train
+    if (outRange) { //Don't need to do any training if output never changes
+        for (int epoch = 0; epoch < numEpochs; ++epoch) {
+            //run through every training instance
+            for (int ti = 0; ti < (int) trainingSet.size(); ++ti) {
+                run(trainingSet[ti].input);
+                backpropagate(trainingSet[ti].output[0]);
+            }
+        }
+    }
+}
+
+template<typename T>
+void neuralNetwork<T>::backpropagate(const T &desiredOutput) {
+    outputErrorGradient = ((desiredOutput - outBase) / outRange) - ((outputNeuron - outBase)/ outRange); //FIXME: could be tighter -MZ
+    
+    //correction based on size of last layer. Is this right? -MZ
+    T length = 0;
+    for (int i = 0; i < numHiddenNodes; ++i) {
+        length += hiddenNeurons[numHiddenLayers - 1][i] * hiddenNeurons[numHiddenLayers - 1][i];
+    }
+    length = (length <= 2.0) ? 1.0 : length;
+    
+    //deltas between hidden and output
+    for (int i = 0; i <= numHiddenNodes; ++i) {
+        deltaHiddenOutput[i] = (learningRate * (hiddenNeurons[numHiddenLayers - 1][i]/length) * outputErrorGradient) + (momentum * deltaHiddenOutput[i]);
+    }
+    
+    //deltas between hidden
+    for (int i = numHiddenLayers - 1; i >= 0; --i) {
+        for (int j = 0; j < numHiddenNodes; ++j) {
+            T hiddenErrorGradient = getHiddenErrorGradient(i, j);
+            if (i > 0) {
+                for (int k = 0; k <= numHiddenNodes; ++k) {
+                    deltaWeights[i][j][k] = (learningRate * hiddenNeurons[i][j] * hiddenErrorGradient) + (momentum * deltaWeights[i][j][k]);
+                }
+            } else { //hidden to input layer
+                for (int k = 0; k <= numInputs; ++k) {
+                    deltaWeights[0][j][k] = (learningRate * inputNeurons[k] * hiddenErrorGradient) + (momentum * deltaWeights[0][j][k]);
+                }
+            }
+        }
+    }
+    updateWeights();
+}
+
+template<typename T>
+void neuralNetwork<T>::updateWeights() {
+    //hidden to hidden weights
+    for (int i = 0; i < numHiddenLayers; ++i) {
+        int numDeltas = (i == 0) ? numInputs : numHiddenNodes;
+        for (int j = 0; j < numHiddenNodes; ++j) {
+            for (int k = 0; k <= numDeltas; ++k) {
+                weights[i][j][k] += deltaWeights[i][j][k];
+            }
+        }
+    }
+    //hidden to output weights
+    for (int i = 0; i <= numHiddenNodes; ++i) {
+        wHiddenOutput[i] += deltaHiddenOutput[i];
+    }
+}
+
+//explicit instantiation
+template class neuralNetwork<double>;
+template class neuralNetwork<float>;
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.h
new file mode 100644
index 0000000..124864d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/neuralNetwork.h
@@ -0,0 +1,151 @@
+/**
+ * @file neuralNetwork.h
+ *  RapidLib
+ *
+ * @date 05 Sep 2016
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+#ifndef neuralNetwork_h
+#define neuralNetwork_h
+#include <vector>
+#include "baseModel.h"
+
+#ifndef EMSCRIPTEN
+#include "../dependencies/json/json.h"
+#endif
+
+#define LEARNING_RATE 0.3
+#define MOMENTUM 0.2
+#define NUM_EPOCHS 500
+
+/*! Class for implementing a Neural Network.
+ *
+ * This class includes both running and training, and constructors for reading trained models from JSON.
+ */
+template<typename T>
+class neuralNetwork : public baseModel<T> {
+    
+public:
+    /** This is the constructor for building a trained model from JSON. */
+    neuralNetwork(const int &num_inputs,
+                  const std::vector<int> &which_inputs,
+                  const int &num_hidden_layers,
+                  const int &num_hidden_nodes,
+                  const std::vector<T> &weights,
+                  const std::vector<T> &wHiddenOutput,
+                  const std::vector<T> &inRanges,
+                  const std::vector<T> &inBases,
+                  const T &outRange,
+                  const T &outBase);
+    
+    /** This constructor creates a neural network that needs to be trained.
+     *
+     * @param num_inputs is the number of inputs the network will process
+     * @param which_inputs is an vector of which values in the input vector are being fed to the network. ex: {0,2,4}
+     * @param num_hidden_layer is the number of hidden layers in the network. Must be at least 1.
+     * @param num_hidden_nodes is the number of hidden nodes in each hidden layer. Often, this is the same as num_inputs
+     *
+     * @return A neuralNetwork instance with randomized weights and no normalization values. These will be set or adjusted during training.
+     */
+    neuralNetwork(const int &num_inputs,
+                  const std::vector<int> &which_inputs,
+                  const int &num_hidden_layer,
+                  const int &num_hidden_nodes);
+    
+    /** destructor */
+    ~neuralNetwork();
+    
+    /** Generate an output value from a single input vector.
+     * @param A standard vector of type T that feed-forward regression will run on.
+     * @return A single value, which is the result of the feed-forward operation
+     */
+    T run(const std::vector<T> &inputVector);
+    
+    void reset();
+    
+    int getNumInputs() const;
+    std::vector<int> getWhichInputs() const;
+    
+    int getNumHiddenLayers() const;
+    void setNumHiddenLayers(int num_hidden_layers);
+    
+    int getNumHiddenNodes() const;
+    
+    void setEpochs(const int &epochs);
+    
+    std::vector<T> getWeights() const;
+    std::vector<T> getWHiddenOutput() const;
+    
+    std::vector<T> getInRanges() const;
+    std::vector<T> getInBases() const;
+    T getOutRange() const;
+    T getOutBase() const;
+    
+#ifndef EMSCRIPTEN
+    void getJSONDescription(Json::Value &currentModel);
+#endif
+    
+    
+private:
+    /** Parameters that describe the topography of the model */
+    int numInputs;
+    std::vector<int> whichInputs;
+    int numHiddenLayers;
+    int numHiddenNodes;
+    
+    /** Neurons: state is updated on each process(). */
+    std::vector<T> inputNeurons;
+    std::vector<std::vector<T> > hiddenNeurons;
+    T outputNeuron;
+    
+    /** Weights between layers and nodes are kept here. */
+    std::vector<std::vector<std::vector<T> > > weights;
+    std::vector<T> wHiddenOutput;
+    
+    /** Normalization parameters */
+    std::vector<T> inRanges;
+    std::vector<T> inBases;
+    T outRange;
+    T outBase;
+    
+    /** Sigmoid function for activating hidden nodes. */
+    inline T activationFunction(T);
+    
+    ////////////////////////////////////////////////////////////////////////////
+    /// These pertain to the training, and aren't need to run a trained model //
+    
+public:
+    /** Train a model using backpropagation.
+     *
+     * @param The training set is a vector of training examples that contain both a vector of input values and a value specifying desired output.
+     *
+     */
+    void train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    
+private:
+    /** Parameters that influence learning */
+    T learningRate;
+    T momentum;
+    int numEpochs;
+    
+    /** These deltas are applied to the weights in the network */
+    std::vector<std::vector< std::vector<T> > > deltaWeights;
+    std::vector<T> deltaHiddenOutput;
+    
+    /** Parameters and functions for calculating amount of change for each weight */
+    T outputErrorGradient;
+    inline T getHiddenErrorGradient(int layer, int neuron);
+    
+    void initTrainer();
+    
+    /** Propagate output error back through the network.
+     * @param The desired output of the network is fed into the function, and compared with the actual output
+     */
+    void backpropagate(const T &desiredOutput);
+    
+    /** Apply corrections to network weights, based on output error */
+    void updateWeights();
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.cpp
new file mode 100644
index 0000000..2f61afe
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.cpp
@@ -0,0 +1,186 @@
+/**
+ * @file    rapidStream.cpp
+ * @author  Michael Zbyszynski
+ * @date    6 Feb 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "rapidStream.h"
+#include <iostream>
+#include <cmath>
+#include <limits>
+
+#ifdef EMSCRIPTEN
+#include "emscripten/rapidStreamEmbindings.h"
+#endif
+
+template<typename T>
+rapidStream<T>::rapidStream(int window_size) {
+    windowSize = window_size;
+    windowIndex = 0;
+    circularWindow = new T[window_size];
+    for (int i = 0; i < windowSize; ++i) {
+        circularWindow[i] = 0;
+    }
+}
+
+template<typename T>
+rapidStream<T>::rapidStream() {
+    windowSize = 3;
+    windowIndex = 0;
+    circularWindow = new T[windowSize];
+    for (int i = 0; i < windowSize; ++i) {
+        circularWindow[i] = 0;
+    }
+}
+
+template<typename T>
+rapidStream<T>::~rapidStream() {
+    delete []circularWindow;
+}
+
+template<typename T>
+void rapidStream<T>::clear() {
+    windowIndex = 0;
+    circularWindow = new T[windowSize];
+    for (int i = 0; i < windowSize; ++i) {
+        circularWindow[i] = 0;
+    }
+}
+
+template<typename T>
+void rapidStream<T>::pushToWindow(T input) {
+    circularWindow[windowIndex] = input;
+    windowIndex = (windowIndex + 1) % windowSize;
+}
+
+template<typename T>
+inline T rapidStream<T>::calcCurrentVel(int i) {
+    return circularWindow[(i + windowIndex) % windowSize] - circularWindow[(i + windowIndex - 1) % windowSize];
+}
+
+template<typename T>
+T rapidStream<T>::velocity() {
+    return calcCurrentVel(-1);
+};
+
+template<typename T>
+T rapidStream<T>::acceleration() {
+    return calcCurrentVel(-2) - calcCurrentVel(-3);
+};
+
+template<typename T>
+T rapidStream<T>::minimum() {
+    T minimum = std::numeric_limits<T>::infinity();
+    for (int i = 0; i < windowSize; ++i) {
+        if (circularWindow[i] < minimum) {
+            minimum = circularWindow[i];
+        }
+    }
+    return minimum;
+}
+
+template<typename T>
+T rapidStream<T>::maximum() {
+    T maximum = std::numeric_limits<T>::min();
+    for (int i = 0; i < windowSize; ++i) {
+        if (circularWindow[i] > maximum) {
+            maximum = circularWindow[i];
+        }
+    }
+    return maximum;
+}
+
+template<typename T>
+T rapidStream<T>::sum() {
+    T newSum = 0;
+    for(int i = 0; i < windowSize; ++i)
+    {
+        newSum += circularWindow[i];
+    }
+    return newSum;
+}
+
+template<typename T>
+T rapidStream<T>::mean() {
+    return sum()/windowSize;
+}
+
+template<typename T>
+T rapidStream<T>::standardDeviation() {
+    T newMean = mean();
+    T standardDeviation = 0.;
+    for(int i = 0; i < windowSize; ++i) {
+        standardDeviation += pow(circularWindow[i] - newMean, 2);
+    }
+    return sqrt(standardDeviation / windowSize);
+}
+
+template<typename T>
+T rapidStream<T>::rms() {
+    T rms;
+    for (int i = 0; i < windowSize; ++i) {
+        rms += (circularWindow[i] * circularWindow[i]);
+    }
+    rms = rms/windowSize;
+    return sqrt(rms);
+}
+
+template<typename T>
+T rapidStream<T>::minVelocity() {
+    T minVel = std::numeric_limits<T>::infinity();
+    for (int i = 0; i < windowSize; ++i) {
+        T currentVel = calcCurrentVel(i);
+        if ( currentVel < minVel) {
+            minVel = currentVel;
+        }
+    }
+    return minVel;
+}
+
+template<typename T>
+T rapidStream<T>::maxVelocity() {
+    T maxVel = std::numeric_limits<T>::lowest();
+    for (int i = 0; i < windowSize; ++i) {
+        T currentVel = calcCurrentVel(i);
+        if (currentVel > maxVel) {
+            maxVel = currentVel;
+        }
+    }
+    return maxVel;
+}
+
+template<typename T>
+T rapidStream<T>::minAcceleration() {
+    T minAccel = std::numeric_limits<T>::infinity();
+    T lastVel = calcCurrentVel(1);
+    for (int i = 2; i < windowSize; ++i) {
+        T currentVel = calcCurrentVel(i);
+        T currentAccel =  currentVel - lastVel;
+        lastVel = currentVel;
+            if (currentAccel < minAccel) {
+            minAccel = currentAccel;
+        }
+    }
+    return minAccel;
+}
+
+template<typename T>
+T rapidStream<T>::maxAcceleration() {
+    T maxAccel = std::numeric_limits<T>::lowest();
+    T lastVel = calcCurrentVel(1);
+    for (int i = 2; i < windowSize; ++i) {
+        T currentVel = calcCurrentVel(i);
+        T currentAccel = currentVel - lastVel;
+        lastVel = currentVel;
+        if (currentAccel > maxAccel) {
+            maxAccel = currentAccel;
+        }
+    }
+    return maxAccel;
+}
+
+//explicit instantiation
+template class rapidStream<double>;
+template class rapidStream<float>;
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.h
new file mode 100644
index 0000000..7e4357e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/rapidStream.h
@@ -0,0 +1,108 @@
+/**
+ * @file    rapidStream.h
+ * @author  Michael Zbyszynski
+ * @date    6 Feb 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef rapidStream_h
+#define rapidStream_h
+
+#include <stdint.h>
+
+template<typename T>
+class rapidStream {
+public:
+    
+    /**
+     * Create a circular buffer with 3 elements.
+     */
+    rapidStream();
+    /**
+     * Create a circular buffer with an arbitrary number of elements.
+     * @param int: number of elements to hold in the buffer
+     */
+    rapidStream(int windowSize);
+    
+    ~rapidStream();
+    
+    /**
+     * Resets all the values in the buffer to zero.
+     */
+    void clear();
+    
+    /** Add a value to a circular buffer whose size is defined at creation.
+     * @param double: value to be pushed into circular buffer.
+     */
+    void pushToWindow(T input);
+    
+    /** Calculate the first-order difference (aka velocity) between the last two inputs.
+     * @return double: difference between last two inputs.
+     */
+    T velocity();
+    
+    /** Calculate the second-order difference (aka acceleration) over the last three inputs.
+     * @return double: acceleration over the last three inputs.
+     */
+    T acceleration();
+    
+    /** Find the minimum value in the buffer.
+     * @return double: minimum.
+     */
+    T minimum();
+    
+    /** Find the maximum value in the buffer.
+     * @return double: maximum.
+     */
+    T maximum();
+    
+    /** Calculate the sum of all values in the buffer.
+     * @return double: sum.
+     */
+    T sum();
+    
+    /** Calculate the mean of all values in the buffer.
+     * @return double: mean.
+     */
+    T mean();
+    
+    /** Calculate the standard deviation of all values in the buffer.
+     * @return double: standard deviation.
+     */
+    T standardDeviation();
+    
+    /** Calculate the root mean square of the values in the buffer
+     * @return double: rms
+     */
+     T rms();
+    
+    /** Calculate the minimum first-order difference over consecutive inputs in the buffer.
+     * @return double: minimum velocity.
+     */
+    T minVelocity();
+    
+    /** Calculate the maximum first-order difference over consecutive inputs in the buffer.
+     * @return double: maximum velocity.
+     */
+    T maxVelocity();
+    
+    /** Calculate the minimum second-order difference over consecutive inputs in the buffer.
+     * @return double: minimum acceleration.
+     */
+    T minAcceleration();
+    
+    /** Calculate the maximum second-order difference over consecutive inputs in the buffer.
+     * @return double: maximum acceleration.
+     */
+    T maxAcceleration();
+
+private:
+    uint32_t windowSize;
+    uint32_t windowIndex;
+    T *circularWindow;
+    
+    T calcCurrentVel(int i);
+};
+
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.cpp
new file mode 100644
index 0000000..45be22e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.cpp
@@ -0,0 +1,133 @@
+/**
+ * @file regression.cpp
+ * RapidLib
+ *
+ * @author Michael Zbsyzynski
+ * @date 26 Sep 2016
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+#include <vector>
+#include "regression.h"
+
+
+#ifdef EMSCRIPTEN
+#include "emscripten/regressionEmbindings.h"
+#endif
+
+template<typename T>
+regressionTemplate<T>::regressionTemplate() {
+    modelSet<T>::numInputs = 0;
+    modelSet<T>::numOutputs = 0;
+    numHiddenLayers = 1;
+    numEpochs = 500;
+    modelSet<T>::created = false;
+};
+
+template<typename T>
+regressionTemplate<T>::regressionTemplate(const int &num_inputs, const int &num_outputs) {
+    modelSet<T>::numInputs = num_inputs;
+    modelSet<T>::numOutputs = num_outputs;
+    numHiddenLayers = 1;
+    numEpochs = 500;
+    modelSet<T>::created = false;
+    std::vector<int> whichInputs;
+    for (int i = 0; i < modelSet<T>::numInputs; ++i) {
+        whichInputs.push_back(i);
+    }
+    for (int i = 0; i < modelSet<T>::numOutputs; ++i) {
+        modelSet<T>::myModelSet.push_back(new neuralNetwork<T>(modelSet<T>::numInputs, whichInputs, numHiddenLayers, modelSet<T>::numInputs));
+    }
+    modelSet<T>::created = true;
+};
+
+template<typename T>
+regressionTemplate<T>::regressionTemplate(const std::vector<trainingExampleTemplate<T> > &training_set) {
+    modelSet<T>::numInputs = 0;
+    modelSet<T>::numOutputs = 0;
+    modelSet<T>::created = false;
+    train(training_set);
+};
+
+template<typename T>
+std::vector<int> regressionTemplate<T>::getNumHiddenLayers() {
+    std::vector<int> vecNumHiddenLayers;
+    if (std::begin(modelSet<T>::myModelSet) != std::end(modelSet<T>::myModelSet)) {
+        for (baseModel<T>* model : modelSet<T>::myModelSet) {
+            neuralNetwork<T>* nnModel = dynamic_cast<neuralNetwork<T>*>(model); //FIXME: I really dislike this design
+            vecNumHiddenLayers.push_back(nnModel->getNumHiddenLayers());
+        }
+    } else {
+        vecNumHiddenLayers = { numHiddenLayers };
+    }
+    return vecNumHiddenLayers;
+}
+
+template<typename T>
+void regressionTemplate<T>::setNumHiddenLayers(const int &num_hidden_layers){
+    numHiddenLayers = num_hidden_layers;
+    //Set any existing models
+    if (std::begin(modelSet<T>::myModelSet) != std::end(modelSet<T>::myModelSet)) {
+        for (baseModel<T>* model : modelSet<T>::myModelSet) {
+            neuralNetwork<T>* nnModel = dynamic_cast<neuralNetwork<T>*>(model); //FIXME: I really dislike this design
+            nnModel->setNumHiddenLayers(num_hidden_layers);
+        }
+    }
+}
+
+template<typename T>
+void regressionTemplate<T>::setNumEpochs(const int &epochs) {
+    numEpochs = epochs;
+    //set any existing models
+    if (std::begin(modelSet<T>::myModelSet) != std::end(modelSet<T>::myModelSet)) {
+        for (baseModel<T>* model : modelSet<T>::myModelSet) {
+            neuralNetwork<T>* nnModel = dynamic_cast<neuralNetwork<T>*>(model); //FIXME: I really dislike this design
+            nnModel->setEpochs(epochs);
+        }
+    }
+}
+
+template<typename T>
+bool regressionTemplate<T>::train(const std::vector<trainingExampleTemplate<T> > &training_set) {
+    //TODO: time this process?
+    if (training_set.size() > 0) {
+        if (modelSet<T>::created) {
+            return modelSet<T>::train(training_set);
+        } else {
+            //create model(s) here
+            modelSet<T>::numInputs = int(training_set[0].input.size());
+            for (int i = 0; i < modelSet<T>::numInputs; ++i) {
+                modelSet<T>::inputNames.push_back("inputs-" + std::to_string(i + 1));
+            }
+            modelSet<T>::numOutputs = int(training_set[0].output.size());
+            for ( auto example : training_set) {
+                if (example.input.size() != modelSet<T>::numInputs) {
+                    return false;
+                }
+                if (example.output.size() != modelSet<T>::numOutputs) {
+                    return false;
+                }
+            }
+            std::vector<int> whichInputs;
+            for (int j = 0; j < modelSet<T>::numInputs; ++j) {
+                whichInputs.push_back(j);
+            }
+            for (int i = 0; i < modelSet<T>::numOutputs; ++i) {
+                modelSet<T>::myModelSet.push_back(new neuralNetwork<T>(modelSet<T>::numInputs, whichInputs, numHiddenLayers, modelSet<T>::numInputs));
+            }
+            if (numEpochs != 500) {
+                for (baseModel<T>* model : modelSet<T>::myModelSet) {
+                    neuralNetwork<T>* nnModel = dynamic_cast<neuralNetwork<T>*>(model); //FIXME: I really dislike this design
+                    nnModel->setEpochs(numEpochs);
+                }
+            }
+            modelSet<T>::created = true;
+            return modelSet<T>::train(training_set);
+        }
+    }
+    return false;
+}
+
+//explicit instantiation
+template class regressionTemplate<double>;
+template class regressionTemplate<float>;
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.h
new file mode 100644
index 0000000..194e1e9
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/regression.h
@@ -0,0 +1,55 @@
+/**
+ * @file regression.h
+ * RapidLib
+ *
+ * @author Michael Zbsyzynski
+ * @date 26 Sep 2016
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+#ifndef regression_h
+#define regression_h
+
+#include <vector>
+#include "modelSet.h"
+
+/*! Class for implementing a set of regression models.
+ *
+ * This doesn't do anything modelSet can't do. But, it's simpler and more like wekinator.
+ */
+
+template<typename T>
+class regressionTemplate : public modelSet<T> {
+public:
+    /** with no arguments, just make an empty vector */
+    regressionTemplate();
+    /** create based on training set inputs and outputs */
+    regressionTemplate(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    /** create with proper models, but not trained */
+    regressionTemplate(const int &numInputs, const int &numOutputs);
+    
+    /** destructor */
+    ~regressionTemplate() {};
+    
+    /** Train on a specified set, causes creation if not created */
+    bool train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    
+    /** Call before train, to set the number of training epochs */
+    void setNumEpochs(const int &epochs);
+    
+    /** Check how many hidden layers are in each model. This feature is temporary, and will be replaced by a different design. */
+    std::vector<int> getNumHiddenLayers();
+    
+    /** Set how many hidden layers are in all models. This feature is temporary, and will be replaced by a different design. */
+    void setNumHiddenLayers(const int &num_hidden_layers);
+    
+private:
+    int numHiddenLayers; //Temporary -- this should be part of the nn class. -mz
+    int numEpochs; //Temporary -- also should be part of nn only. -mz
+};
+
+//This is here so the old API still works
+using regression = regressionTemplate<double>;
+using regressionFloat = regressionTemplate<float>;
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.cpp
new file mode 100644
index 0000000..9a08a5f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.cpp
@@ -0,0 +1,190 @@
+/**
+ * @file    searchWindow.cpp
+ * RapidLib
+ * @author  Michael Zbyszynski
+ * @date    14 Sep 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "searchWindow.h"
+
+template<typename T>
+searchWindow<T>::searchWindow(const int seriesXSize, const int seriesYSize, const warpPath &shrunkenWarpPath, const int searchRadius) :
+minValues(seriesXSize, -1), maxValues(seriesXSize, 0), maxY(seriesYSize - 1) {
+    
+    //Current location of higher resolution path
+    int currentX = shrunkenWarpPath.xIndices[0];
+    int currentY = shrunkenWarpPath.yIndices[0];
+    
+    //Last evaluated part of low resolution path
+    int lastWarpedX = std::numeric_limits<int>::max();
+    int lastWarpedY = std::numeric_limits<int>::max();
+    
+    int blockSize = 2; //TODO: something other than 2? Different for x and y?
+    
+    //project each part of the low-res path to high res cells
+    for (int i = 0; i < shrunkenWarpPath.xIndices.size(); ++i) {
+        
+        int warpedX = shrunkenWarpPath.xIndices[i];
+        int warpedY = shrunkenWarpPath.yIndices[i];
+        
+        if (warpedX > lastWarpedX) {
+            currentX += blockSize;
+        }
+        if (warpedY > lastWarpedY) {
+            currentY += blockSize;
+        }
+        
+        if ((warpedX > lastWarpedX) && (warpedY > lastWarpedY))
+        {
+            markVisited(currentX-1, currentY);
+            markVisited(currentX, currentY-1);
+        }
+        
+        for (int j = 0; j < blockSize; ++j) {
+            markVisited(currentX + j, currentY);
+            markVisited(currentX + j, currentY + blockSize - 1); //TODO: These are redundant?
+        }
+        
+        lastWarpedX = warpedX;
+        lastWarpedY = warpedY;
+    }
+    
+    if (searchRadius > 0) {
+        expandWindow(1);
+        expandWindow(searchRadius-1);
+    }
+}
+
+template<typename T>
+void searchWindow<T>::markVisited(int col, int row) {
+    if (row <= maxY && col < minValues.size()) { //Don't mark beyond the edge of the window
+        if (minValues[col] == -1) {
+            minValues[col] = row;
+            maxValues[col] = row;
+            //size++;
+        } else if (minValues[col] > row) {
+            //size += minValues[col] - row;
+            minValues[col] = row;
+        } else if (maxValues[col] < row) {
+            //size += row - maxValues[col];
+            maxValues[col] = row;
+        }
+    }
+}
+
+template<typename T>
+void searchWindow<T>::expandWindow(int radius) {
+    if (radius > 0) {
+        
+        //Add all cells in the current window to a vector.
+        std::vector<std::pair<int, int>> windowCells;
+        for (int currentX = 0; currentX < minValues.size(); ++currentX) {
+            for (int currentY = minValues[currentX]; currentY <= maxValues[currentX]; ++currentY) {
+                std::pair<int, int> currentCell = std::make_pair(currentX, currentY);
+                windowCells.push_back(currentCell);
+            }
+        }
+
+        int maxX = int(minValues.size() - 1);
+        
+        for (int cell = 0; cell < windowCells.size(); ++cell) {
+            std::pair<int, int> currentCell = windowCells[cell]; //TODO: is pair necessary? easier to make currentX and currentY?
+            
+            if (currentCell.first != 0 && currentCell.second != maxY) { //move to upper left if possible
+                //expand until edges are met
+                int targetX = currentCell.first - radius;
+                int targetY = currentCell.second + radius;
+                
+                if (targetX >= 0 && targetY <= maxY) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = std::max(0 - targetX, targetY - maxY);
+                    markVisited(targetX + cellsPastEdge, targetY + cellsPastEdge);
+                }
+            }
+            
+            if (currentCell.second != maxY) { //move up if possible
+                int targetX = currentCell.first;
+                int targetY = currentCell.second + radius;
+                if (targetY <= maxY) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = targetY - maxY;
+                    markVisited(targetX, targetY - cellsPastEdge);
+                }
+            }
+            
+            if (currentCell.first != maxX && currentCell.second != maxY) { //move upper right if possible
+                int targetX = currentCell.first + radius;
+                int targetY = currentCell.second + radius;
+                if (targetX <= maxX && targetY <= maxY) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = std::max(targetX - maxX, targetY - maxY);
+                    markVisited(targetX - cellsPastEdge, targetY - cellsPastEdge);
+                }
+            }
+            
+            if (currentCell.first != 0) { //move left if possible
+                int targetX = currentCell.first - radius;
+                int targetY = currentCell.second;
+                if (targetX != 0) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = (0 - targetX);
+                    markVisited(targetX + cellsPastEdge, targetY);
+                }
+            }
+            
+            if (currentCell.first != maxX) { //move right if possible
+                int targetX = currentCell.first + radius;
+                int targetY = currentCell.second;
+                if (targetX <= maxX) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = (targetX - maxX);
+                    markVisited(targetX - cellsPastEdge, targetY);
+                }
+            }
+            
+            if (currentCell.first != 0 && currentCell.second != 0) { //move to lower left if possible
+                int targetX = currentCell.first - radius;
+                int targetY = currentCell.second - radius;
+                
+                if (targetX >= 0 && targetY >= 0) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = std::max(0 - targetX, 0 - targetY);
+                    markVisited(targetX + cellsPastEdge, targetY + cellsPastEdge);
+                }
+            }
+            
+            if (currentCell.second != 0) { //move down if possible
+                int targetX = currentCell.first;
+                int targetY = currentCell.second - radius;
+                if (targetY >= 0) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = 0 - targetY;
+                    markVisited(targetX, targetY + cellsPastEdge);
+                }
+            }
+            
+            if (currentCell.first != maxX && currentCell.second != 0) { //move lower right if possible
+                int targetX = currentCell.first + radius;
+                int targetY = currentCell.second - radius;
+                if (targetX <= maxX && targetY >= 0) {
+                    markVisited(targetX, targetY);
+                } else {
+                    int cellsPastEdge = std::max(targetX - maxX, 0 - targetY);
+                    markVisited(targetX - cellsPastEdge, targetY + cellsPastEdge);
+                }
+            }
+        }
+    }
+}
+
+//explicit instantiation
+template class searchWindow<double>;
+template class searchWindow<float>;
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.h
new file mode 100644
index 0000000..b3684eb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/searchWindow.h
@@ -0,0 +1,36 @@
+/**
+ * @file    searchWindow.h
+ * RapidLib
+ * @author  Michael Zbyszynski
+ * @date    14 Sep 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef searchWindow_h
+#define searchWindow_h
+
+#include <vector>
+#include "warpPath.h"
+
+/** For fastDTW, a window of cells to calculate costs for.
+ * These are cells within a specified search radius of a lower resolution path.
+ */
+template<typename T>
+class searchWindow {
+public:
+    searchWindow(const int seriesXSize,
+                 const int seriesYSize,
+                 const warpPath &shrunkenWarpPath,
+                 const int searchRadius);
+    
+    std::vector<int> minValues;
+    std::vector<int> maxValues;
+    
+private:
+    int maxY;
+    //int size;
+    void markVisited(int col, int row);
+    void expandWindow(int searchRadius);
+};
+
+#endif /* searchWindow_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.cpp
new file mode 100644
index 0000000..cf8728c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.cpp
@@ -0,0 +1,201 @@
+/**
+ *  @file seriesClassification.cpp
+ *  RapidLib
+ *
+ *  @author Michael Zbyszynski
+ *  @date 08 Jun 2017
+ *  @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include <vector>
+#include <cassert>
+#include "seriesClassification.h"
+#ifdef EMSCRIPTEN
+#include "emscripten/seriesClassificationEmbindings.h"
+#endif
+
+#define SEARCH_RADIUS 1
+
+template<typename T>
+seriesClassificationTemplate<T>::seriesClassificationTemplate() {};
+
+template<typename T>
+seriesClassificationTemplate<T>::~seriesClassificationTemplate() {};
+
+template<typename T>
+bool seriesClassificationTemplate<T>::train(const std::vector<trainingSeriesTemplate<T> > &seriesSet) {
+    assert(seriesSet.size() > 0);
+    reset();
+    bool trained = true;
+    allTrainingSeries = seriesSet;
+    minLength = maxLength = int(allTrainingSeries[0].input.size());
+    for (int i = 0; i < allTrainingSeries.size(); ++i) {
+        //Global
+        int newLength = int(allTrainingSeries[i].input.size());
+        if (newLength < minLength) {
+            minLength = newLength;
+        }
+        if (newLength > maxLength) {
+            maxLength = newLength;
+        }
+        //Per Label
+        typename std::map<std::string, minMax<int> >::iterator it = lengthsPerLabel.find(allTrainingSeries[i].label);
+        if (it != lengthsPerLabel.end()) {
+            int newLength = int(allTrainingSeries[i].input.size());
+            if (newLength < it->second.min) {
+                it->second.min = newLength;
+            }
+            if (newLength > it->second.max) {
+                it->second.max = newLength;
+            }
+        } else {
+            minMax<int> tempLengths;
+            tempLengths.min = tempLengths.max = int(allTrainingSeries[i].input.size());
+            lengthsPerLabel[allTrainingSeries[i].label] = tempLengths;
+        }
+    }
+    return trained;
+};
+
+template<typename T>
+void seriesClassificationTemplate<T>::reset() {
+    allCosts.clear();
+    allTrainingSeries.clear();
+    lengthsPerLabel.clear();
+    minLength = -1;
+    maxLength = -1;
+}
+
+template<typename T>
+std::string seriesClassificationTemplate<T>::run(const std::vector<std::vector<T>> &inputSeries) {
+    //TODO: Check to see if trained
+    int closestSeries = 0;
+    allCosts.clear();
+    T lowestCost = fastDTW<T>::getCost(inputSeries, allTrainingSeries[0].input, SEARCH_RADIUS);
+    allCosts.push_back(lowestCost);
+    
+    for (int i = 1; i < allTrainingSeries.size(); ++i) {
+        T currentCost = fastDTW<T>::getCost(inputSeries, allTrainingSeries[i].input, SEARCH_RADIUS);
+        allCosts.push_back(currentCost);
+        if (currentCost < lowestCost) {
+            lowestCost = currentCost;
+            closestSeries = i;
+        }
+    }
+    return allTrainingSeries[closestSeries].label;
+};
+
+template<typename T>
+T seriesClassificationTemplate<T>::run(const std::vector<std::vector<T>> &inputSeries, std::string label) {
+    //TODO: Check to see if trained
+    int closestSeries = 0;
+    allCosts.clear();
+    T lowestCost = std::numeric_limits<T>::max();
+    for (int i = 0; i < allTrainingSeries.size(); ++i) {
+        if (allTrainingSeries[i].label == label) {
+            T currentCost = fastDTW<T>::getCost(inputSeries, allTrainingSeries[i].input, SEARCH_RADIUS);
+            allCosts.push_back(currentCost);
+            if (currentCost < lowestCost) {
+                lowestCost = currentCost;
+                closestSeries = i;
+            }
+        }
+    }
+    return lowestCost;
+};
+
+template<typename T>
+std::vector<T> seriesClassificationTemplate<T>::getCosts() const{
+    return allCosts;
+}
+
+template<typename T>
+int seriesClassificationTemplate<T>::getMinLength() const{
+    return minLength;
+}
+
+template<typename T>
+int seriesClassificationTemplate<T>::getMinLength(std::string label) const {
+    int labelMinLength = -1;
+    typename std::map<std::string, minMax<int> >::const_iterator it = lengthsPerLabel.find(label);
+    if (it != lengthsPerLabel.end()) {
+        labelMinLength = it->second.min;
+    }
+    return labelMinLength;
+}
+
+template<typename T>
+int seriesClassificationTemplate<T>::getMaxLength() const {
+    return maxLength;
+}
+
+template<typename T>
+int seriesClassificationTemplate<T>::getMaxLength(std::string label) const {
+    int labelMaxLength = -1;
+    typename std::map<std::string, minMax<int> >::const_iterator it = lengthsPerLabel.find(label);
+    if (it != lengthsPerLabel.end()) {
+        labelMaxLength = it->second.max;
+    }
+    return labelMaxLength;
+}
+
+template<typename T>
+seriesClassificationTemplate<T>::minMax<T> seriesClassificationTemplate<T>::calculateCosts(std::string label) const {
+    minMax<T> calculatedMinMax;
+    bool foundSeries = false;
+    std::vector<T> labelCosts;
+    for (int i = 0; i < (allTrainingSeries.size() - 1); ++i) { //these loops are a little different than the two-label case
+        if (allTrainingSeries[i].label == label) {
+            foundSeries = true;
+            for (int j = (i + 1); j < allTrainingSeries.size(); ++j) {
+                if (allTrainingSeries[j].label == label) {
+                    labelCosts.push_back(fastDTW<T>::getCost(allTrainingSeries[i].input, allTrainingSeries[j].input, SEARCH_RADIUS));
+                }
+            }
+        }
+    }
+    if (foundSeries) {
+        auto minmax_result = std::minmax_element(std::begin(labelCosts), std::end(labelCosts));
+        calculatedMinMax.min = *minmax_result.first;
+        calculatedMinMax.max = *minmax_result.second;
+    } else {
+        calculatedMinMax.min = calculatedMinMax.max = 0;
+    }
+    return calculatedMinMax;
+}
+
+template<typename T>
+seriesClassificationTemplate<T>::minMax<T> seriesClassificationTemplate<T>::calculateCosts(std::string label1, std::string label2) const {
+    minMax<T> calculatedMinMax;
+    bool foundSeries = false;
+    std::vector<T> labelCosts;
+    for (int i = 0; i < (allTrainingSeries.size()); ++i) {
+        if (allTrainingSeries[i].label == label1) {
+            for (int j = 0; j < allTrainingSeries.size(); ++j) {
+                if (allTrainingSeries[j].label == label2) {
+                    foundSeries = true;
+                    labelCosts.push_back(fastDTW<T>::getCost(allTrainingSeries[i].input, allTrainingSeries[j].input, SEARCH_RADIUS));
+                }
+            }
+        }
+    }
+    if (foundSeries) {
+        auto minmax_result = std::minmax_element(std::begin(labelCosts), std::end(labelCosts));
+        calculatedMinMax.min = *minmax_result.first;
+        calculatedMinMax.max = *minmax_result.second;
+    } else {
+        calculatedMinMax.min = calculatedMinMax.max = 0;
+    }
+    return calculatedMinMax;
+}
+
+//explicit instantiation
+template class seriesClassificationTemplate<double>;
+template class seriesClassificationTemplate<float>;
+
+
+//
+//std::vector<T> seriesClassification::getCosts(const std::vector<trainingExample> &trainingSet) {
+//    run(trainingSet);
+//    return allCosts;
+//}
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.h
new file mode 100644
index 0000000..d76a20a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/seriesClassification.h
@@ -0,0 +1,112 @@
+/**
+ * @file seriesClassification.h
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 08 Jun 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef seriesClassification_hpp
+#define seriesClassification_hpp
+
+#include <vector>
+#include <string>
+#include <map>
+#include "fastDTW.h"
+#include "trainingExample.h"
+
+/** Class for containing time series classifiers.
+ *
+ * Currently only (fast)DTW.
+ */
+
+template<typename T>
+class seriesClassificationTemplate {
+public:
+    
+    /** Constructor, no params */
+    seriesClassificationTemplate();
+    ~seriesClassificationTemplate();
+    
+    /**  Train on a specified set of trainingSeries
+     * @param std::vector<trainingSeries> A vector of training series
+     */
+    bool train(const std::vector<trainingSeriesTemplate<T> > &seriesSet);
+    
+    /** Reset model to its initial state, forget all costs and training data*/
+    void reset();
+    
+    /** Compare an input series to the stored training series
+     * @param std::vector<std::vector> vector of vectors, either float or double input data
+     * @return The label of the closest training series.
+     */
+    std::string run(const std::vector<std::vector<T> > &inputSeries);
+    
+    /** Compare an input series to all of the stored series with a specified label
+     * @param std::vector<std::vector> either float or double input data
+     * @param String label to compare with
+     * @return The lowest cost match, float or double
+     */
+    T run(const std::vector<std::vector<T> > &inputSeries, std::string label);
+    
+    /** Get the costs that were calculated by the run method
+     * @return A vector of floats or doubles, the cost of matching to each training series
+     */
+    std::vector<T> getCosts() const;
+    
+    /** Get minimum training series length
+     * @return The minimum length training series
+     */
+    int getMinLength() const;
+    
+    /** Get minimum training series length from a specified label
+     * @param string The label to check
+     * @return The minimum length training series of that label
+     */
+    int getMinLength(std::string label) const;
+    
+    /** Get maximum training series length
+     * @return The maximum length training series
+     */
+    int getMaxLength() const;
+    
+    /** Get maximum training series length from a specified label
+     * @param string The label to check
+     * @return The maximum length training series of that label
+     */
+    int getMaxLength(std::string label) const;
+    
+    /** Return struct for calculate costs */
+    template<typename TT>
+    struct minMax {
+        TT min;
+        TT max;
+    };
+    
+    /** Calculate minimum and maximum cost between examples in a label.
+     * @param string Label to calculate
+     * @return minMax struct containing min and max
+     */
+    minMax<T> calculateCosts(std::string label) const;
+    
+    /** Calculate minimum and maximum cost between examples in one label and examples in a second.
+     * @param string first label to compare
+     * @param string second label to compare
+     * @return minMax struct containing min and max
+     */
+    minMax<T> calculateCosts(std::string label1, std::string label2) const;
+    
+private:
+    std::vector<trainingSeriesTemplate<T> > allTrainingSeries;
+    std::vector<T> allCosts;
+    int maxLength;
+    int minLength;
+    std::map<std::string, minMax<int> > lengthsPerLabel;
+};
+
+//This is here to keep the old API working
+using seriesClassification = seriesClassificationTemplate<double>;
+using seriesClassificationFloat = seriesClassificationTemplate<float>;
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.cpp
new file mode 100644
index 0000000..5195316
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.cpp
@@ -0,0 +1,269 @@
+/**
+ * @file svmClassification.cpp
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 23 Feb 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include <iostream>
+#include "svmClassification.h"
+#ifdef EMSCRIPTEN
+#include "emscripten/svmEmbindings.h"
+#endif
+
+template<typename T>
+svmClassification<T>::svmClassification(
+                                        KernelType kernelType,
+                                        SVMType svmType,
+                                        bool useScaling,
+                                        bool useNullRejection,
+                                        bool useAutoGamma,
+                                        float gamma,
+                                        unsigned int degree,
+                                        float coef0,
+                                        float nu,
+                                        float C,
+                                        bool useCrossValidation,
+                                        unsigned int kFoldValue
+                                        )
+{
+    
+    //Setup the default SVM parameters
+    model = NULL;
+    problem.l = 0;
+    problem.x = NULL;
+    problem.y = NULL;
+    trained = false;
+    problemSet = false;
+    param.svm_type = C_SVC;
+    param.kernel_type = POLY_KERNEL; //LINEAR_KERNEL;
+    param.degree = 3;
+    param.gamma = 0;
+    param.coef0 = 0;
+    param.nu = 0.5;
+    param.cache_size = 100;
+    param.C = 1;
+    param.eps = 1e-3;
+    param.p = 0.1;
+    param.shrinking = 1;
+    param.probability = 1;
+    param.nr_weight = 0;
+    param.weight_label = NULL;
+    param.weight = NULL;
+    
+    //These are from GTK?
+    /*
+     this->useScaling = false;
+     this->useCrossValidation = false;
+     this->useNullRejection = false;
+     this->useAutoGamma = true;
+     classificationThreshold = 0.5;
+     crossValidationResult = 0;
+     
+     classifierMode = STANDARD_CLASSIFIER_MODE;
+     */
+    init(kernelType,svmType,useScaling,useNullRejection,useAutoGamma,gamma,degree,coef0,nu,C,useCrossValidation,kFoldValue);
+}
+
+template<typename T>
+svmClassification<T>::svmClassification(int num_inputs) {
+    
+    numInputs = num_inputs;
+    
+    //Setup the default SVM parameters
+    model = NULL;
+    param.weight_label = NULL;
+    param.weight = NULL;
+    problem.l = 0;
+    problem.x = NULL;
+    problem.y = NULL;
+    trained = false;
+    problemSet = false;
+    param.svm_type = C_SVC;
+    param.kernel_type = POLY_KERNEL; //LINEAR_KERNEL;
+    param.degree = 3;
+    param.gamma = 0;
+    param.coef0 = 0;
+    param.nu = 0.5;
+    param.cache_size = 100;
+    param.C = 1;
+    param.eps = 1e-3;
+    param.p = 0.1;
+    param.shrinking = 1;
+    param.probability = 1;
+    param.nr_weight = 0;
+    param.weight_label = NULL;
+    param.weight = NULL;
+    
+}
+
+template<typename T>
+svmClassification<T>::~svmClassification() {
+    
+}
+
+template<typename T>
+void svmClassification<T>::reset() {
+    //TODO: implement me
+}
+
+template<typename T>
+bool svmClassification<T>::init(
+                                KernelType kernelType,
+                                SVMType svmType,
+                                bool useScaling,
+                                bool useNullRejection,
+                                bool useAutoGamma,
+                                float gamma,
+                                unsigned int degree,
+                                float coef0,
+                                float nu,
+                                float C,
+                                bool useCrossValidation,
+                                unsigned int kFoldValue
+                                ){
+    
+    /*
+     //Clear any previous models or problems
+     clear();
+     
+     //Validate the kernerlType
+     if( !validateKernelType(kernelType) ){
+     errorLog << __GRT_LOG__ << " Unknown kernelType!\n";
+     return false;
+     }
+     
+     if( !validateSVMType(svmType) ){
+     errorLog << __GRT_LOG__ << " Unknown kernelType!\n";
+     return false;
+     }
+     */
+    
+    param.svm_type = (int)svmType;
+    param.kernel_type = (int)kernelType;
+    param.degree = (int)degree;
+    param.gamma = gamma;
+    param.coef0 = coef0;
+    param.nu = nu;
+    param.cache_size = 100;
+    param.C = C;
+    param.eps = 1e-3;
+    param.p = 0.1;
+    param.shrinking = 1;
+    param.probability = 1;
+    param.nr_weight = 0;
+    param.weight_label = NULL;
+    param.weight = NULL;
+    /*
+     this->useScaling = useScaling;
+     this->useCrossValidation = useCrossValidation;
+     this->useNullRejection = useNullRejection;
+     this->useAutoGamma = useAutoGamma;
+     classificationThreshold = 0.5;
+     crossValidationResult = 0;
+     */
+    
+    return true;
+}
+
+template<typename T>
+void svmClassification<T>::train(const std::vector<trainingExampleTemplate<T> > &trainingSet) {
+    //TODO: should be scaling data -1 to 1
+    //Get normalization parameters
+    std::vector<T> inMax = trainingSet[0].input;
+    std::vector<T> inMin = trainingSet[0].input;
+    for (int ti = 1; ti < (int) trainingSet.size(); ++ti) {
+        for (int i = 0; i < numInputs; ++i) {
+            if (trainingSet[ti].input[i] > inMax[i]) {
+                inMax[i] = trainingSet[ti].input[i];
+            }
+            if (trainingSet[ti].input[i] < inMin[i]) {
+                inMin[i] = trainingSet[ti].input[i];
+            }
+        }
+    }
+    inRanges.clear();
+    inBases.clear();
+    for (int i = 0; i < numInputs; ++i) {
+        inRanges.push_back((inMax[i] - inMin[i]) * 0.5);
+        inBases.push_back((inMax[i] + inMin[i]) * 0.5);
+    }
+    for (int i = 0; i < inRanges.size(); ++i) {
+        if (inRanges[i] == 0.) {
+            inRanges[i] = 1.0; //Prevent divide by zero later.
+        }
+    }
+    
+    //initialize problem
+    problem.l = 0;
+    problem.x = NULL;
+    problem.y = NULL;
+    
+    //SVM problem has:
+    int numberOfExamples = int(trainingSet.size());
+    int numberOfFeatures = int(trainingSet[0].input.size());
+    problem.l = numberOfExamples;
+    problem.x = new LIBSVM::svm_node*[numberOfExamples];
+    problem.y = new double[numberOfExamples];
+    for (int i = 0; i < numberOfExamples; i++) {
+        problem.y[i] = trainingSet[i].output[0]; //model set makes this a one item list
+        problem.x[i] = new LIBSVM::svm_node[numberOfFeatures + 1]; //dummy node at the end of array
+        for (int j = 0; j < numberOfFeatures; j++) {
+            // x = svn_nodes[]  == index and value pairs
+            problem.x[i][j].index = j + 1;
+            problem.x[i][j].value = ((trainingSet[i].input[j] - inBases[j]) / inRanges[j]); //TODO: make normalization optional
+        }
+        problem.x[i][numberOfFeatures].index = -1; //Assign the final node value
+        problem.x[i][numberOfFeatures].value = 0;
+    }
+    
+    model = LIBSVM::svm_train(&problem, &param);
+    trained = true;
+};
+
+template<typename T>
+T svmClassification<T>::run(const std::vector<T> &inputVector) {
+    if (trained) {
+        double predictedClass = 0.;
+        
+        //Change to LIBSVM format
+        LIBSVM::svm_node *inputNodes = NULL;
+        inputNodes = new LIBSVM::svm_node[numInputs + 1];
+        for (int i = 0; i < numInputs; i++) {
+            inputNodes[i].index = i + 1;
+            inputNodes[i].value = ((inputVector[i] - inBases[i]) / inRanges[i]); //TODO: make normalization optional
+        }
+        inputNodes[numInputs].index = -1;
+        inputNodes[numInputs].value = 0;
+        
+        predictedClass = LIBSVM::svm_predict(model, inputNodes);
+        delete[] inputNodes;
+        return predictedClass;
+    } else {
+        return 0;
+    }
+}
+
+template<typename T>
+int svmClassification<T>::getNumInputs() const {
+    return 0;
+};
+
+template<typename T>
+std::vector<int> svmClassification<T>::getWhichInputs() const {
+    std::vector<int> returnVec;
+    return returnVec;
+};
+
+#ifndef EMSCRIPTEN
+template<typename T>
+void svmClassification<T>::getJSONDescription(Json::Value &currentModel){
+    
+};
+#endif
+
+//explicit instantiation
+template class svmClassification<double>;
+template class svmClassification<float>;
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.h
new file mode 100644
index 0000000..a1885ed
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/svmClassification.h
@@ -0,0 +1,133 @@
+/**
+ * @file svmClassification.h
+ * RapidLib
+ *
+ * @author Michael Zbyszynski
+ * @date 23 Feb 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef svm_h
+#define svm_h
+
+#include <vector>
+#include "baseModel.h"
+#include "../dependencies/libsvm/libsvm.h"
+
+template<typename T>
+class svmClassification : public baseModel<T> {
+    
+public:
+    enum SVMType{ C_SVC = 0, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };
+    enum KernelType{ LINEAR_KERNEL = 0, POLY_KERNEL, RBF_KERNEL, SIGMOID_KERNEL, PRECOMPUTED_KERNEL };
+    
+    /**
+     Default constructor.
+     
+     Set the initial SVM settings, although these can be changed at any time using either init(...) function of the set... functions.
+     
+     @param kernelType: this sets the SVM kernelType. Options are LINEAR_KERNEL, POLY_KERNEL, RBF_KERNEL, SIGMOID_KERNEL, PRECOMPUTED_KERNEL. The default kernelType is kernelType=LINEAR_KERNEL
+     @param svmType: this sets the SVM type. Options are C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR. The default svmType is svmType=C_SVC
+     @param useScaling: sets if the training/prediction data will be scaled to the default range of [-1. 1.]. The SVM algorithm commonly achieves a better classification result if scaling is turned on. The default useScaling value is useScaling=true
+     @param useNullRejection: sets if a predicted class will be rejected if the classes' probability is below the classificationThreshold. The default value is useNullRejection=false
+     @param useAutoGamma: sets if the SVM gamma parameter will automatically be computed, if set to true then gamma will be set to (1.0/numFeatures), where numFeatures is the number of features in the training data. The default value is useAutoGamma=true
+     @param gamma: sets the SVM gamma parameter. The default value is gamma=0.1
+     @param degree: sets the SVM degree parameter. The default value is degree=3
+     @param coef0: sets the SVM coef0 parameter. The default value is coef0=0
+     @param nu: sets the SVM nu parameter. The default value is nu=0.5
+     @param C: sets the SVM C parameter. The default value is C=1
+     @param useCrossValidation: sets if the SVM model will be trained using cross validation. The default value is useCrossValidation=false
+     @param kFoldValue: sets the number of folds that will be used for cross validation. The default value is kFoldValue=10
+     */
+    
+    svmClassification(
+                      KernelType kernelType = LINEAR_KERNEL,
+                      SVMType svmType = C_SVC,
+                      bool useScaling = true,
+                      bool useNullRejection = false,
+                      bool useAutoGamma = true,
+                      float gamma = 0.1,
+                      unsigned int degree = 3,
+                      float coef0 = 0,
+                      float nu = 0.5,
+                      float C = 1,
+                      bool useCrossValidation = false,
+                      unsigned int kFoldValue = 10
+                      );
+    
+    svmClassification(int numInputs);
+    
+    /** Destructor */
+    ~svmClassification();
+    
+    /** Fill the model with a vector of examples.
+     *
+     * @param The training set is a vector of training examples that contain both a vector of input values and a double specifying desired output class.
+     *
+     */
+    void train(const std::vector<trainingExampleTemplate<T> > &trainingSet);
+    
+    /** Generate an output value from a single input vector.
+     * @param A standard vector of doubles to be evaluated.
+     * @return A single double: the nearest class as determined by k-nearest neighbor.
+     */
+    T run(const std::vector<T> &inputVector);
+    
+    void reset();
+    
+    /**
+     This initializes the SVM settings and parameters.  Any previous model, settings, or problems will be cleared.
+     
+     @param kernelType: this sets the SVM kernelType. Options are LINEAR_KERNEL, POLY_KERNEL, RBF_KERNEL, SIGMOID_KERNEL, PRECOMPUTED_KERNEL
+     @param UINT svmType: this sets the SVM type. Options are C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR
+     @param useScaling: sets if the training/prediction data will be scaled to the default range of [-1. 1.]. The SVM algorithm commonly achieves a better classification result if scaling is turned on
+     @param useNullRejection: sets if a predicted class will be rejected if the classes' probability is below the classificationThreshold
+     @param useAutoGamma: sets if the SVM gamma parameter will automatically be computed, if set to true then gamma will be set to (1.0/numFeatures), where numFeatures is the number of features in the training data
+     @param gamma: sets the SVM gamma parameter
+     @param degree: sets the SVM degree parameter
+     @param coef0: sets the SVM coef0 parameter
+     @param nu: sets the SVM nu parameter
+     @param C: sets the SVM C parameter
+     @param useCrossValidation: sets if the SVM model will be trained using cross validation
+     @param kFoldValue: sets the number of folds that will be used for cross validation
+     @return returns true if the SVM was initialized, false otherwise
+     */
+    bool init(KernelType kernelType,SVMType svmType,bool useScaling,bool useNullRejection,bool useAutoGamma,
+              float gamma,
+              unsigned int degree,
+              float coef0,
+              float nu,
+              float C,
+              bool useCrossValidation,
+              unsigned int kFoldValue
+              );
+    
+    int getNumInputs() const;
+    std::vector<int> getWhichInputs() const;
+    
+    
+#ifndef EMSCRIPTEN
+    void getJSONDescription(Json::Value &currentModel);
+#endif
+    
+private:
+    bool problemSet;
+    struct LIBSVM::svm_model *model;
+    struct LIBSVM::svm_parameter param;
+    struct LIBSVM::svm_problem problem;
+    
+    int numInputs;
+    
+    /** Normalization parameters */
+    std::vector<double> inRanges;
+    std::vector<double> inBases;
+    
+    bool trained;
+};
+
+#endif
+
+
+
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/trainingExample.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/trainingExample.h
new file mode 100644
index 0000000..ac9c3f1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/trainingExample.h
@@ -0,0 +1,38 @@
+/**
+ * @file  trainingExample.h
+ * RapidLib
+ *
+ * @author   Michael Zbyszynski
+ * @date    22 Nov 2017
+ * @copyright Copyright © 2016 Goldsmiths. All rights reserved.
+ */
+
+#ifndef trainingExample_h
+#define trainingExample_h
+
+#include <vector>
+#include <string>
+
+/** This is used by both NN and KNN models for training */
+template<typename T>
+struct trainingExampleTemplate {
+    std::vector<T> input;
+    std::vector<T> output;
+};
+
+//This is here to keep the old API working
+using trainingExample = trainingExampleTemplate<double>;
+using trainingExampleFloat = trainingExampleTemplate<float>;
+
+/** This is used by DTW models for training */
+template<typename T>
+struct trainingSeriesTemplate {
+    std::vector<std::vector<T> > input;
+    std::string label;
+};
+
+//This is here to keep the old API working
+using trainingSeries = trainingSeriesTemplate<double> ;
+using trainingSeriesFloat = trainingSeriesTemplate<float>;
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.cpp
new file mode 100644
index 0000000..c1768dc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.cpp
@@ -0,0 +1,18 @@
+/**
+ * @file warpPath.cpp
+ * RapidLib
+ * @author Michael Zbyszysnski
+ * @date 13 Sep 2017
+ *
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "warpPath.h"
+
+warpPath::warpPath() {};
+warpPath::~warpPath() {};
+
+void warpPath::add(int x, int y) {
+    xIndices.insert(xIndices.begin(), x);
+    yIndices.insert(yIndices.begin(), y);
+};
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.h b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.h
new file mode 100644
index 0000000..906123a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/RapidLib/src/warpPath.h
@@ -0,0 +1,37 @@
+/**
+ * @file  warpPath.h
+ * RapidLib
+ * @author Michael Zbyszynski
+ * @date 13 Sep 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#ifndef warpPath_h
+#define warpPath_h
+
+#include <vector>
+
+/** Class to hold warp paths through a cost matrix */
+class warpPath {
+public:
+    warpPath();
+    ~warpPath();
+    /**
+     * Add a point to the beginning of the warp path.
+     * (Paths are calculated starting from the end)
+     */
+    void add(int x, int y);
+    
+    std::vector<int> xIndices;
+    std::vector<int> yIndices;
+};
+
+/** return struct holding a warp path and the cost of that path */
+struct warpInfo {
+public:
+    warpPath path;
+    double cost;
+    
+};
+
+#endif /* warpPath_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/.gitignore b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/.gitignore
new file mode 100644
index 0000000..62d8ccb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/.gitignore
@@ -0,0 +1,14 @@
+**/.DS_Store
+**/xcuserdata/**
+
+**/CMakeLists.txt
+
+src/host/PiPoHost.cpp
+
+build/doxygen/pipo-long.doxygen
+build/doxygen/pipo-original.doxygen
+build/doxygen/pipo-sdk.doxygen
+
+doc/pipo-sdk.doxygen
+doc/pipo_long.doxygen
+doc/html/**
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/README.md b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/README.md
new file mode 100644
index 0000000..db55481
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/README.md
@@ -0,0 +1,103 @@
+
+# PiPo — Plugin Interface for Processing Objects #
+
+PiPo is an extremely simple plugin API for modules processing streams of multi-dimensional data such as audio, audio descriptors, or gesture and motion data. The current version of the interface is limited to unary operations. Each PiPo module receives and produces a single stream. The elements of a stream are time-tagged or regularly sampled scalars, vectors, or two-dimensional matrices.
+
+
+### More Information
+
+http://ismm.ircam.fr/pipo/
+
+### Authors
+
+This code has been initially authored by Norbert Schnell in the <a href="http://ismm.ircam.fr">Sound Music Movement Interaction</a> team of the <a href="http://www.ircam.fr/stms.html?&L=1">STMS Lab</a> - IRCAM - CNRS - UPMC.
+
+### Copyright
+
+Copyright (c) 2012–2017 by IRCAM – Centre Pompidou, Paris, France.
+All rights reserved.
+
+### Licence: BSD 3-clause
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+- Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+### Features
+
+PiPo has been developed to make things simple for users and developers.
+
+#### User Level Features
+
+- Easy integration and customization of stream processing modules
+- Suited for filtering, transformation, extraction, and segmentation algorithms
+- Real-time and offline processing
+- Applying to audio and control streams (for whom this distinction still makes sense)
+
+#### Developer Level Features
+
+- Fast and easy implementation of modules and reuse of code for different contexts
+- C/C++ API defined by a single header file without additional dependencies
+- Core API as single abstract class defining a small set of virtual methods
+
+#### PiPo Stream Attributes
+
+PiPo streams are a sequences of frames characterized by a set of attributes. A PiPo module defines the attributes of its output stream when receiving the attributes of the input stream.
+
+Each module can configure its internal state depending on the attributes of the input stream (e.g. memory allocation and pre-calculated state variables) before propagating its output stream attributes to the next module.
+
+This way, the attributes of the input stream are propagated through a series of PiPo modules before starting the actual stream processing.
+
+In summary, a PiPo stream is described by the following attributes:
+
+- a boolean representing whether the elements of the stream are time-tagged
+- frame rate (highest average rate for time-tagged streams)
+- lag of the output stream relative to the input
+- frame width (also number of channels or matrix columns)
+- frame height (or number of matrix rows)
+- labels (for the frame channels or columns)
+- a boolean representing whether the frames have a variable size (respecting the given frame size as maximum)
+- extent of a frame in the given domain (e.g. duration or frequency range)
+- maximum number of frames in a block exchanged between two modules
+
+#### PiPo Module Parameters
+
+The PiPo SDK comes with a template class [PiPo::Attr](http://recherche.ircam.fr/equipes/temps-reel/mubu/pipo/sdk-doc-v0.1/class_pi_po_1_1_attr.html) permits to define scalar, enum, or variable or fixed size vector attributes of a pipo module that are exposed to the host environment.
+
+Since certain parameter changes may also change the attributes of a module’s output stream, PiPo provides a mechanism for signaling these changes through the following modules to the processing environment (i.e. the PiPo host).
+
+For MAX/MSP PiPo includes a binding to extend a PiPo class to a Max/MSP external that then declares the module's parameters as Max/MSP attributes and implement the required setters and getters.
+
+## PiPo API
+
+### Module API
+
+The PiPo Module API consists of the abstract class [PiPo](http://recherche.ircam.fr/equipes/temps-reel/mubu/pipo/sdk-doc-v0.1/class_pi_po.html) in [PiPo.h](src/include/PiPo.h) of a few virtual methods for propagating stream attributes (see above), frames, and additional processing control through a series of modules:
+
+- Propagating stream attributes
+- Propagating frames
+- Reset stream processing
+- Finalize stream processing
+- Propagate the change of a parameter requiring redefining the output stream attributes
+
+See the doc extraced from [PiPo.h](include/PiPo.h) at: http://recherche.ircam.fr/equipes/temps-reel/mubu/pipo/sdk-doc-v0.1/
+
+### Host API
+
+Classes supporting implementation of PiPo hosts are found in directory [host](src/host).
+
+PiPo comes with a collection of native modules that can be combined into graphs to form more complex modules.
+Their source code is located into directory [modules](src/modules).
+
+The host-level `PiPoCollection` class is a module factory, able to instantiate complex PiPo modules from a simple graph syntax.
+It provides all the native PiPo modules and can be extended with third-party PiPo modules, thus allowing to create a wide number
+of combinations.
+
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/bin/osx/libpipo.a b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/bin/osx/libpipo.a
new file mode 100644
index 0000000000000000000000000000000000000000..d69bcde24506e11955ddf3b4da27858fe95094db
GIT binary patch
literal 5204528
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%0A(?Ri$|IAY)r&<IV>8@^h6YO
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%0DC>}a)*!Hwaw
zJPZkM>;gxS#$ie~Y}bhbU}0+d0+)2K8Drh^-|V4~;39hhmNr8sMru}U($ZVvk>2oU
zi76jqvA`=9ogo_%+T@W3FUmkSG%!^0IXrks7RwG+_1oP)q_;FHEK$amqd&F-UyvFe
z&DiIw*dBrC&I7X84w2womB62cw~%i^2V>~h{T7Z{q2t=1s|oMsupV%_h7V`pY#Wa4
zFrr!wU4II0#(OgzXWD50uc2?ajITgQ_c;0xy04|-j2j((C;B3+C2R_7m}lnPiktEN
z2E9*rux&M2I-F-DOb=R3@2N5AL+_(6U5@p>M>WiIYMQV<w@t%WLqWqXy{SdRqks^@
zq^3hI_;Xml>ke-Liv2pA4u*eC9KYjwh|X0B;fqiPpbcK5U7P_V@SnANnRYMH?$1@Z
zg3oD}8>KP*JnjA)WhDGh?Ov<h#oGM~%E<6`?XJ@<zi!cgh;~oY?p@#k{bSngrQK}p
zu0bHfZ`N)=yZ=F1=^xYXdhMR6-P5%@Si8m!cZ*KXp*PdZ+6TDB8qU}5aP20Z-E&Ce
z+ojzm?cS-~TJ08TcanA!?R?k4pEkT4J8^FkK6AXpk0gBNSchvi_{{MQ9OV!BPSgGz
zkG!V+;aDeuXMzXe&uV{;0sn5|gXg4IaN?N<0PvY(yG7cc<1+G`{v3-9*8UtvjnV!b
zJNfX8pSr}zx09)CWnr9ZDm`UtXF@)C`h?(Q`Nuy&NG6FC93$BISdu*d_{SQ(%$uKM
zl2MWHT_7nb$>Jo#<rLa{9!QEUd8}mk92RtnuWPX!eszk=VVjAS`rM)v_TS?tpOq&I
z+V%SN%E~&&_L~BkxPBc?44N8uj*{6`koRO)@OIdcA|73czTD_D<m!t3_n0X<JyPT}
zT2?(%9*6yR9@1AK$?Saf%F5)t+~hj@`A$$_i8kc-0SDBDwLM>d6H(FR6<9wWa~=I=
z;J5>NU?*@ST+k-!I+hLj85gK{7hP;pIBo|VscguJBM(ZZD>zcwkT1B<vVPXzvTmHA
z^3TJ9joZ{?2Rc&OkmnSu1XC9}WiSsNaHO&!Cl2b%&T+VGw-GmSz4jpBSOvX3ty4NW
zw;{j3R83AiQErOhxURCe=tyEi{<OyNau;x<vLSyJIM|2$y9+o{*^s|hrpoeRg;NIe
z;3`Y!HsoRO@(6gETdCU194zb^q_A|rk;;brZImH`M3L)M!lHYezR|&viy+Y@+J=0D
zhRYC_?UfNBrdAc;;c#bsMbU-s-dR^q18d&YO{9_T@m{d`x{^lIQyU9%8w+z9qXQaO
z_HSI%yRjr9wmO;E-c@$ZY~Dc)6D!!&SkMd`LfJI)NUWqSwx%_<vLzNh9K(L3h5KTK
z2h0|l!Ca<j`zj_;VMHDCHR33uNmll4KZY;Xwa0Ka&n+sfF+FyE7{QHJV}6+a+#MBZ
z=-*%2VDk}HEwI|AFL5<md-CNAu&mdYxS85J;*%_}cc*ygh((k<=8C1VJPwe^%#C9*
zY*yT`X1|razON(&c82^8CSr)T2Yz~sR_wcLmejj!KHC@$lYH8F?kRYW5KOSHpBc7y
zxBDA*`*y$Tk7ee<)T`}IVuUg1`PiWJgN9Wj!4EDi13zE|wf2vbC1K;tFrW>80i+Dg
zT~^)KJj)G!X};syGc}$W_9^{bl-Ywp%8pE7Nn(*bzu;}L-m%)=b(!`^!Vel}jzkvR
z%hhbO`W03Q3|8|;A~O((f}vEty;7Lr5)$6s;wRU(0G)W}Ng4A{Mo2GAz*>bd++N{>
zDd&f?8|sA6*7!cNFcwo)2eU9l>7U&&QlcDbXz>LK+OWL?s&aP=52Hdw?ry^atZ22Z
zmuxpHRehx4RUav9g?)MB6?rl2LTn7N+t;8Rs3K<5&Ut=SCX)RYcJytB54>;+6HMXs
zIZ)C*W;Yg~;KLiExs5Ax8rKYHEa@LBXvVg=(jw4ScEZp%R<J|b%68pWwlx-Pm$tG)
z=-eq}?}}j)<&u`zn!~Y`hhotKvBLe0h0U?TeR~S_GWR{Y-7Eq*(ry~o90dn|B!ulJ
zp)*uShgOpp_eZPIO@*xn4U-~|R%4n((9>wZZD|s)bKBR&HWNf0Lp3z4*_+sA9(kXF
z;%zf~&Bnvde$&u5IUV-r-7nnRr@6Nm)PQ@5yY&|Cho&*R^=e*CWS(vv^Q3S~bj-;r
ztOK|FasQ8@V?+(*AU8-2%q~+anHP~AR+luaIgrS(oB!33VOR{{?Au}FZ+K&2Zeuj3
zapi!<HT@e)AbH>rBo9&u$=fBo+o^d6IfS$wZ7hJap@lR<@?s^eu{ABRm4{=|L(tNV
zg?k}+dkXfEb|Z6d{xgA(JEUMDb-z+!9r*ZU-2Wp>U6;9d7kGt!sbS5&L@tge83|&y
z&xl=u&2CtD^+Cg$574mAmm+Fi?9~Xre~&m3L>1-)L7(KdHLD;#{uqx9&0(*;SZ%t5
z_#&jSuf*0Ijjhxh<wH9)+#G=d+rFXX2ifa6Wke;lD(K6;XZMD}AKX#!gIr(s4^c^I
zovl!~zif|TKNxPT-Wr>QH3dickbxCI;(=8!h%{hk?D>X21!9F;W6>?ypZiCcNVhi@
zZf(40!|ixu_dWBU*Vyv&AuxydfPU|Q@<942zU<o`1RdB^9p#;-C_<ks**8WHHLh%J
zys>xVn%2f!b79(<hQi0VfzI6AaI7wuhOX0dBW;f$)AlPoiGv`q@rrQc%0rSk(pb{k
zcs1m=NwOv`klB=gF19*15-ZN7DeCmx{%s8)zkRhs9fua8*vJ||j}7ZV9+8Dym?U*(
z+Y^|gXh(PIq`~4jMN(IabS*|*x@S-|q>nW~BSQ9hjTrpIS<yBb(=eiG5rz%}*^F#N
ztBc1Vv)W$lQmjWIb?tclbPy_5<|RQm7)uXLwkp<e;mF8F^fcbg$=bGG9cTQ<dto#(
zZx^xvi)Tm&k`J@v9%xMTQI41}=Lg%@;dRjn8nn6y+CJ?<Yf%EVz}@3iDTiSgR$?Jp
zV|0JlWbJoY3EW<2(t+P7_~FKt`@LeeSu)gOwmAteTw-<@<G=PB9h$}pZgkL~2^HC?
zjE(J&q!Ud75Ca(lF<lX`&`C&&lqmmpjssuA3Q3VI5WOH>mQ$|h$UplIPFu7Ol9*s3
z&At_%5ph1A_Mt++ejX$uh1L<2H+)3DXz7&!QYRAnMGz(RkwnI$XpJT;wT%B{0Eku6
zt1|0~T;74HS%W&Yv`;|8@W$#~+7Ezd?SICLof1CjHAO0SDGx1;Uj^fo`oo+D;_i}K
zfP!i6T16J3k+jcoB~>MW>TCAO<R-~h%jBlcWpYMuAWc+#&4#jLiRD+>MwIGPX^u<v
z@f<3z>Ql{4F$SuSTGT~;+h+&I`Q}Il+JHNfD8QaWfEhCw4ws$EP8PcrFU+Po5~K*-
zQ6h3taO;L50}k{}m1Br5RgS@tO93TT`3}R_on5Q)1<<3q%2iUQ%6EFJ{62S;-{;~P
z*^$uOMbUygRQXOr*|DnpJCs6I<toi_Rr$>nH`ELHru2oXa#gw{RlXsIaaC}qRsJ8=
zh^lfotI(SztMa!*lH3uUCZ4LwA3Plyh>9fr4b7|Ns10^8|Hg#M-3YlIlO$Ni<z8dU
z>5m*WT!T6-=--GX#8|<#GP7|_IC0fDUR~R!@MM%j*|$?6W5mhDMd<DDi1*XO`bB=q
z8FHdbVQUB7&EckA6NNX|DFuhkVJ9sZ+aZ50+LFc5fZv8TcOP=Z!%o_#c0|C*B$*~r
z2;?y_?S7_3JX5vm#H9i7kWM{GZikSfp*cs^io5wG?<1~N*Et>D<Iuw=IcEih;h^&{
zSJ!Lifn)nL^RP$@0|YtUrsoL7JnTn+eFWSc-#n0OrkB)tEtrqNtP{3SY~cwl;}9-B
ztqv!VBZg^Qt0kNa6zs=T4<--PAua7Y$rg@QJ3~9li?(x&yAv3V+?^wQ9Co`%GL-yE
z*sTtS@yI8{Q}6je@$Btv{NP@8hnKv<qf@xLx5e-l&#jubkkM8M1xFTJ(Lyk$C_K`E
zx9srT$NjWsH$X!pa)fV?ZL(51e*TVGP54WeR*8QrUNW`bz<Nd;;^UN7C6)>>>6CDp
zEgU@MJ^uE1#MK`0oTNQIJFIK%5d%HQ(oxEiDLgqRO)*~hqk1jBv`4&IK<1E)s-Q(P
z04a_bL=GEVZOmX$m9E-Yd_FP9wPri{`ABL|bre%!sF%jzI;mjU!Ql2Hp$D^nAFvHz
zcY(<4-9ffJS@?&l<n)^>2r5iGdN6JeiECDyo48JpE}fYZTqYu$gY}4R{Q!BbOMRZy
zA#}*#mzuo8yC)9kI+ES69lqX`qTu=zXxWBaqyxu`FBBTL;b2paWUiB$%NZ<})z%;S
zFBZid$1ViPUtu!~ycd6kP%4LH#t^-Ki%h_^$iY~sR&}P;heD4MQ4hbiG5L1k0oIp#
zg0?VdD|5qBB#Mk8CHu06zY5j;hwR~PaQ=j)w||8DJZ|h>QoJ`#a8BE`kgZsBQ>@@V
zqTpZQCK9}vXq)JVyd#C%@fU?(qy&CNSnOZ)f@z3OjU<m;jL5}^jH(9dPGn39nORgk
zpuM)X{{!>UMrO^D*#qF0UNw7TJXmp&>Qv@k547hatf9HC!=4pvzqK8wKiplZs!bn=
zpBc;^z8@vSb_T_}<w(8rS*bl@1)JLPF#zC)1vw>79TkWEl^q+j5>5uhgt8K*wg%1w
zx9mV4Z*h!-HMIrz#rEIdxbnVtKb*Wf`z{^`BHR!m+6_rS)|rs^BHTDGuV54B+q<D!
zaDtnhpoa|DZvYpQOn*KoM}0-+J`d{1T^{cjkBL4=9k{1rwjzndWTkmyVt!S}3_cI^
zh}at<(h;M)FL5z-B=Zi45Xg)`lx0Vm-t<5s(%z$>86kXW2Bp$6+_9P5#4eWDyNKri
z{-Q`%1SF9txxZgHe|ZoH)7zfQA=@#1xC6oRS12QAH5?%ttt5ztEsdxng+xtc#m~n@
z-D+Dc$hOBsqP18Xh3b;aR*^lb+J;@2;A?5m<98Cuuc|TN)>=$8Jyci0mKb_8H2=we
z#GGKXDaPg#k-x$wlhnzgp}Cd=8NEkFZfgA`f@^dG-wp6AYWAq8SqPvSz*MUssC{&_
zXccec38ISdLuykGx9WwsVa>J7$)i0ws>H-~sAK^U7t7sETqnr%tiq_a_64GPbEWYm
z8PC>YqwG}USTuVKc2vu0m9`8WxqnIlI{aPm#j%Mf8k_@kL_zP*Zn#5Q5L$#DVsh`0
z1U39cytpUI4J8zU(W9^#S%8hImxNN~v54$1@q{6n0>C@ye2}43vg$4!W)YRDeBn)^
zT%hu`?!;3hicBLV&0SZ?2L_V(dtwC}kx>2$?_rKm&ONA{m8KV+ABA6}1b#*(n||HZ
zG(c#?8`-F2)ss2ZiU}Vzn2-kwkXt1mlG=uJ?Gu%J0JF92*Tq#bIVz*seX1JUCx}WG
zNl!Qr(V36#--s<?Rz@1vWHy$BV<kspYmUTLw#6`)%!y{I5FhT;YWdE#hcTduMfc(J
z10u>FJ6WW3)be2^TpX6MMYplq0UXc@8gpsri8qLX-k=op(;{AIIV2zm1x?-JR?v4+
zLD!>_+-kSkoPnv-F4Lq?(7UjAmr{_T$`6^C9ThZQm~~7lXhuw~pm(S_L6YgH+@0uo
zn1CM8tx7>}hYw$lQECQyVz;_tD+Rp`KGdm^DAFkf4N>+g=;5cZ0=C9v@F9Pg;HTPQ
z9k@qv#KTd9QqV-rcHvdfubfO|iQ3b=pJ<UrixWvi3&raSj}^rO7&T%yz9h8|6<zIA
z9<tH8S~VW(>ie{=zU%kY)!t^-fpqiUuD`z?|N8(G%Q4>1UqGq(8r1RqoFC5<-p|#S
z5VQ`_eeCR12N*^5%|{PE|M?_6n)xU#$FI)lh%`@>YXZ_v@HF#93u(OX?-(I@-``nb
z({~5i>~?WX)b4u2aDUJKZ@$0RW8#?1?fCwFJ;*hmZVUFaH1aO(yuV*$eAqDJ9cUzq
zc4#<_v6frTQPPC-R@=9bRo5IND>XgFA)YHMnL9WJb~$^Pr0X6T^f>SLPIb76l<GjU
z*$-9SzEApX^_H*e<AlE7f6!0yzT^A7672Z!2K}rO><+I!5so_zyH%*8Rxlb8!D>_I
z3a5DUclh8=EqpMkl~{ga@Be?tG<Nd#eznL+3oBGwpY#6jwEDMQ0)od*TfKR&|2{?V
zm@@+oo1g}ei(;~{$>34q;+-Fuch$Nhn?bHrWl^e8URPeR?rHli=6XN!E7nHo!8fWN
zoChtLQMdHqE#Q^u!TBy_2J=cgAyAa4>h<Ikp&sg^7IaD#hOvcy4e+K^y(`Bc9DX1Q
z+HIuwI#I`>spXk3!ia+bC_*{Ih=^3<nT$wPUWj+6cuLc0?_$USl~xY;RxeD?$g53$
z5D3F<4`G%)alC72b=nJa1s-`lBE`CM-=EkG&lP0bkNZ98dg*)b0phiX@S!Jr-gC}N
zE5|L7V!p8Uh;G4O$yW5l(Jir8@z&G>aKWAUE8Nib&zCyBKgmmZqy#bMzbJ#~$kGjX
z{$uuV@M``$*~9+{=Y13cWh;6&d-SiehrgCR{6k{Bjab*>?}^oD1aQB+O1a;vQ|{BX
zaI+h4fCz)Y^^BE0nhd{7M_kVcNO%_$WH++&B;O+i#7gEz3YkfGPd>h(qeICL<3GP`
ztdwI@;;hPgo$Xx;YeZv@2zIBwD5>l?*EMejGMV!>^KqZ}eAWznQTkNOXMySSQLXK8
z{*1cjd=}=i)X+BG5^~z^g(d6%-T5qh?^t(aE2P3G+>iSTbz55{b{9ASuTX160k2gG
zxW2PjD9jU?VRl5+D0Pxc0q=4`-7jBC0q=CeyeX9e-ofUGD0r`J!=q8at>)QLz}w+N
zD@jCTU|a#?-6)>YDBx{~B6CZ7nT*;&UWhyjI0rTWU4IV(Mx}sBNXPe}7rPVL$9fMc
z6I~3|6j^&cT7>B0Lwe56rHlDiRKf|z=zWeZ7A**WQGspOVsw=FmZUWD14^eFrTnPU
zm|fA!32Ly%6V*z|ez{7y-zrz`(`BM`Z-Ts|AnO@RYiAvCJtL4*Cdh8Q6cI%`8?7x0
zT9hjyCF<zA@VzJ&y%TT$KrVlU?1k3r%<odTBRY?W<YC0GM_fm<HOi-5&gaQ|^Z&wp
z*F*RKoY?=PEdRUnU0qe#tr(mpiWrHfaQ;6&--WOF$NYZQ00EK@U;ld_&u&2T!RPgk
zd)R-J@y7R|{F8q_`>b>eYSuBu_p?J7KYc338?Rz;(UtFKrwhRyMtTLCDZEY8EYf|5
zqKDrn{{2jUJi8hFfu1Dj@bT<Igqe?L3G?@;|J*KqpSV}V7%$nMu8$KXBHH{o@iFx?
zr-hS$kH9*3G~iCZNBA%~@u}0#T@~@^uvPjr>t}5~votQ^9X>{!Eg~)-BR;l$z{k>W
z?*%?3`mL*-^Tk5&|5g3=F~(~jOCP)imGP<52VE5j9-a7qR3A_t@;V>C%QQ_}?0gLD
z-ezYPJ<^D8mfl4TZR;>u+R&WW!Cn#LK@JHr@mCn;2;prGbTN+=;nRZWaO1F-9y|>R
zyQAa1j8F9LA;vRU^N0g7q94du&FVjD`rP*ios^G`7nj+a{3y5Sz;!Iw>~U_~PUGhT
zVg8BT%bYtSd=mSZBcIac6$`6N>uO3D*DS5Au2@w%wp@1FW{~khsKiPVl*DVvvKuRw
zuc&Y%T2WEAvbMC&K`gLUv$C#sWt~-HHk9DG!pt_w?%2y1(X}x)KozaJ=Gt-Ui7B~i
z-N~fRT6XgdE0?SQ((0Opb=Hc-3#%)v#WgFe6-$;`i<Z<auecGQl-fxo<y7P@tGLOk
zTezsYVnrz*xl4${FDHhf-Gn*;PJG8FdDQZX>IxjMY|>*B`Nb;%S1zfpR!kSNOFvVw
zyr#5vVR^~`gIz_JVwg18h`qG7dg0;<#R7%4L!d#R7=s#wSk$m47m`EeK%#Jv2m09)
zzPP5MvU17dB|Os6T2ZyKva-6ObYUe9PE;AX(rM<W%)^l4N|G`w6SwmmO)O!n5$j}}
zO&(^Fs}v?q2Nr7nrVMw`XznbksH|CDq1a<ujjPNSc6&b#ULOOS$-GNQO=Pz)BoP2l
zMH->d2ZOt5H)n;r{Je$J5lkx(@ik3>o=X>AUt!dd(h<}s*76E8>$-|soKC)^90!<}
zFR`w(mN^P#MQz36y5%dEDg_}(K_oPZsUfX_45$Jnp3zOBqO?X@p<01aJvG*%m6g^a
z!z$5Qp8@KMN~uxxv}EbRYptc$GV6K^^p@A$w9J}^LjV>px6ZdNur9P#ja8B1O4L>3
zG>lDom~_>+g6oVAp2QDDEyZa7EOO}z78?H~+LF*@#{mR=-MXFAZ3-sB0>iC9)&R_*
z2Gv>Xc3*2|uRxXx4E6E_vP{gh?ua?F7egjt5-QA%cGKg#{bwXU9-y1|5P?kRfOk19
zpnJze*gCBnNbZSoQ+8q~PmGTwdgAOxk5{+T5v!+@ZMT{DLf6a5R>0ng2^go3K3e`6
zEC=+XY+wm!;O4?-(7`oVITrT^@&|nr0*}MP7x+2;{Q-Vt2n628f6xlffMZ{YzrH}>
zn-&@dXM%rx8b^aHng1;R5G!p8p13Ehf1-a#Fl`2&P9}7=e@Hm(8azqNN&X?3Y2|<<
z=4AhnNZL{p^BnBPm$u44Q~X2vr}1mTAl&|`{viX>zKo}lgr@n2<fL(bGJ($Z56Mk?
z*g)s`hYU}9)Ij<EAtTfH+BONd|9t<DJS&_&9nW?!{c<>IL3<bq)`&;nIl-}T(jUNI
zFc>89!3*fI1AhUvK?=+0i_$*Pe^t=OGWfb-_wj1HCd1<!;5EQ%Qth7?{Eh;vNGL$k
ziqLZM!e105I{=ok_yD)6$i?KTf4&JVA{znf(7EJ*e}SON^nY>Ajm)<sNII<U`S|Bv
ze!l2SjMZ1shb&eLd3}QyA{J7ul2rXARo0gfwKo#MzwR@{mK*#&C;?b|E5V_{hpg)%
zLOvC(dL8}G5`RRiTJHhNCDlX|S{7rd0+D+L_b09ilE&9a<E@E2T<hiGIxi2`d3jiG
zxKu`g^4AA{sCg(Xtv5_75|%cY$a7hT{st3yj&QiaM4l}izRhrWhVbfhio+STpnNk5
z<cqRN`5#WC{$Vfmk9etn#7q5mgVR8WBLUwv6etPUYC@F+Y?V;3d#(`lJxvgac^&gh
zzGzPp^vgtoe&r?TMK3`wdI>sUvQ+FmU^rAP>^xxTQ|$b;iLBW9YZF<q^Vf#l*+T9i
zMQ-*{kUASH-+a+CN$&eWA6t(S&-X<<t?W4nZ^dUTUo@X_de{=DR_d^ats70Xv>^wq
z5(<0Rx|NiRy!W)Vyq7gn275~=I9U8;f_-ha@2tNex2vK4;a~Jk`k!XAnUc|u5zMh!
zNmdr)yah#!fH_Yyph^M&&VGU55|eC(B)d*0W0F>U9z?w9lI%&7EMMY1rQ<QqODJ?^
z;EOwNm56Vvh=DKexK(1lqheySCVZ72)|33<9*X|k{A6LBu;(_vRx!0Nk*3@HnjeZ=
z>rJTQ)_N0KF6!xazi#$r(ttPk$sUkh{0E|n31~&~knva0x%i?>nE6)8T-D8^27R@(
zuSfm5F;)pJk2<+Y%{^u!D^YvQL{_5qn2B5@q<znjHuvwO<@<)TIYOxe&K61^*OYDs
zmG!VH@<n5$^s@o7Y1KPK@Y#T7Q=O3Z*??wKtw_;o16E7sYXX`tRg&AS0nL|k$!)EG
zR%9b`x&wAEzUa4^+h)nFPI7z5<W~DnX8uq>^QBrcf5_yfD&-pnRF(2glewytZ<)+h
zrF>gu-eV&&z6ge8IG}`?&+zp`o07a|P<R2YVh8A-`4rS6pgKRAp??-j-3w}7)cI@{
z3s6-W!wT8$WjzJF<AE36<)Y*-XC#bI=D@Q6seREuF~bj;p<?ZaI>WkjqWRA*rH^ZS
z5wd(5td{(JJ`w;4s~X7AfX^_Nr^duV)qw;}Xz?J1I$+Td4>)&N9L)L_s7zN`%s7+&
z-Fz&TG_g^Hy9?5+5KI;Sf*S$bZXL&f9wy?JTPG0iY2eMbP9)r0U~nQb2l)RA8(v>D
z8y%bfP0>}V-rw|T^<FEy_^VTTVa8DdRtYoS@=+?ljB=@szstx1V43h;fmwe-l=a9A
z{&Odhj`w{WuK=8rPw)c+&YnT=Lj%s3L-0QaoL)rG@7HPb7ZJ1tMBN@m20R4a7v<?j
z{%hiOdyT1Ek>gSljC!vX(JIrTrK)zJ7Og5N%wjECWg=STB3gry!(+H1TE$YtDn`oU
z3GNRo@1kmwRV^bMFnT|HUxwMeFB&CTgItUr<S<$Y8!W6uW3Lvz4{;bRe9tvtx$u3c
z5yCPN!qXiw6CrfKA{oUDH=%Py2pw>a2%!Vc79mt%)<`T;*aW&!N%<m#V~i|qzg2{A
ztW<T@{fM`g@d97mqJ;1)6LGT=!ifgHPYK~9M+jSxZc`3<!(EO25v7zx0Yv;-2&;uR
zJ&c~M65jOm>lRrqyy<1YGT}{ci44Mvr5gMCSr-6{>R2=V3^?~QaWJb9Yj1{u6hxaY
zBAVlfnTY5h1+teD869Ha9k+^*<{EhWts<qT8+hBTBBo~u40+g$OpXj<nZLs_A9VGC
z2Thq(FL=;&CaM>F$%HC}`;rM&3ipudYLvqLjp=HX!hJ>eEk}{@>LJYhS!VvBs~7x_
zL9cqj|2Pa6ZT}x9H|YhffUX_Y3tFaYP`#jK`U2Gp`b=LiS307A=?msar|5vH7YwSd
zA+i=!)?-<!FZwzu-Q(&7_n6F8FSy6#rh37>22{P^b0%}u3%+17SH0jqo!ds_^vF==
z7Q#T;f5g=b{>9{`dcnV#qN-l-FD5rtDQ_B3RmxvY=BiTOGMTGN`J2vs8!|q51T!DS
z%qJ>|kXA6!REko?XB#=M7O|gXK&6T&8?jfac#4s8rHU1pRX7aikDV@Zu2k^_N>Gg|
zzR-ZPMT{>p;0%%CnFgFLjbOF`^Q8@3CLm-y2c_wACQB4$iS7`cr~27DjLuUXZKKg@
zs;9lvfJz<TWt5!iX}@69Sh*-U2UI=nMiZ)fS_f1;tplo_R)JY7LFmhvRY0p(J?*_l
zSM5|v?tVd<brA8MW;~~-eZWN2J?(=A);;ZJN6F=Y5kDDCW_*^+Sm07}3rzJYC3m&c
z=0wRAo9b0cuEc;!$z5Y=TPe9RQ`<_(Ei|A~ath4)1xOi<y%-!Ncb!v#qU5euAeEfd
z{xSpaP)h6u18-MKu+G5SloGs2U<kl2l=rzjmiZBud8@0_+iC<rwWmkDo!(<c0IEd7
zzh^+z>1{LepgO(Bof;Q;a6r}R{lJ8(PR{{Vr{{pG(^Fv9fH9VJC+G%)RHyf(saD<T
z?Nps!4Do6i&*}7bnTWd6+ihUo={;-Yp~rrtYZy!3yhPrtiVu2M>2Zo0^xo_l^nS)O
z=v}QxCTh^TMn)#@18*(xI)mPIjD&&FMtIhbXNG@fhL6PuMvs|+k;vQk*r#$}B&^@2
zA=MJUZw5v(+W3LaUbRC5sb;uchpAR*Ak_#Bq}rfBS$_m|GeI55R!#6JmZleFP=*;#
z6JORv<1A|wV>u0Qw~nUU-!mH2&99lD6ds96C$RAEvha7s3xAg>ybLft?-><-!80n{
zXbLaGi7)8_s!`$H%qZ&_<Z=meaYlvr3e~@X_eIKEjS9c2M}<Ag;9EJ7WMP8T^1n>7
z)ad(VO_pjNztLo=A>k{!PE_MKtRdAleyfR8P2=~b7NlhuNHvTW9j4lafmE|FkZKhI
zW$gs5BS9+)ry9i@n%BBbw6joIBhEs*XDp{l{Kcsfc^7$8gStT+C5S6hi$seikrhM9
zis`P-V!F{4s<S9C+CWL@MFvzNda+Rss<W7Bn!gfK2UJoz%Y-U1bwDMj4yXiGfmuHV
zp(8-3(^*_@+PD_gD+OuRu(L6x$#{;e&NC6Uuof9uOX~uGg&9b9<2hu;I5MNsr8p}M
zGn8ap>s6dph8apWmKab8$90A`N;;~Y(u;UFppuWJCR7QC11bq|KqVpy%-RRKr-E)r
zan_k4Y9YB%DbC4QHJHPAj+A`HMAVA&vj*03vc~Wxdo9u(6y97!-b@H7=Ewxngpi(J
ztCjJo16Iq-$b=9Z2i~lzWPa_e(1qYNz;c-~ofzV*iq*RXxcNoF7v&i(fu|*7w#&76
zPY68Cw@zxu^$ujo#9trI^7mnz>cc2~*cxOKQKqBg=kG<3#~|F8Sd$CUEOWjhRFeg?
zvH>~f>m&|71<5&zFa`Wi4?OqA-4{1XBAb?<2A5&h<$K1pyw&`rGXJwr?pjgw>gDTZ
zuKoVL=igc$c<JVb#tWz2J^udhj>r1<^8ac7eDl`Jel_%pp|9P(YxlWn6}6}A`Qlv<
zd}s03UrhhXm6^|7^7APpzWw5?KfO@6_>RgKUw^-~cJ5Pez4)`$qaVG0XVbiAp1y5c
zpJ`i)`u)85$}=Cm?8ygydsXfae^Ih5v~2eHA6KC;{QR*2_kFmx;O4i7y|@qIZo~Z^
z?l5Lu`r{ssdlK#$xQlRC;a-J%1Md59Z^69-_g>tGaJS)p4|f>v0{w9h$2|%64BSPy
zt8jB316f$b>G;E?58AP6$S_>&{1|?5F99tI5#ekd&i4$$ACU35UIRdw2kP+Rj1l20
zU^~l;y*J^5m|5h-c}2prS&_KdfC+QuBri^J5q=dDw{mIt66DK^BPE7E$;!sX(IVlW
zQE+hW0zh~s|8Q}>j*sOUAK&N*U!m#erxe2N{KG}<%E#9+ImU~Vu!R2y{=C=`5q^b&
zhD#qbWW9=yle{>TXZVl#y%87Rln7sk8DL&~c_I9UhB@6q_@@+TTzuUn{A=9+I7v?U
zdq~HN6YGQ<HO&5+@N`WNXG019L-Uv44G16B{F5`S0gu-Cb#_$bM>+SBZ04=Wkpn=8
zCt%t5(%4P4MTE0Wk}i_PqL95`d-aCwytNy;y)td@rKk3v_}5EE{m-DE-#zv5fz=f+
zu15G5aDM~$6S(){eg*fNxE}x_;-X^7g^P<{0O>_FqrLc1lU`TS8#gZbDhQXlNz0#n
z0fiSoiE6LQbwVmHjf<@oKa0Jy_Ueq0ou9dhsUhd$+`2g*^P=1B&jlL-4lDB!#w{;Q
zxJj1-9$x11H|b0`ziRP36O%46oFADkN)m3WkY9C*L7_=+@bXK}Jy0XYKM}8d$#CH{
z=Y*Q{{Mb<G3ODJsrm;B1|C%e`>9+?gla>?m|8j*H+=gb(ng7rgZg6sH`yE%FZk(L#
z{W_Y9DUZQv(sJtbS1z3Hw4A?8Pm<Qq%Q?KAu5eRU6TUeID$zxk$=ie<9fVgdSGY-U
zXyZhX-xcnrjng)i-NbSk+?-jt4l-oIXWSnA9Gj)V&3TGcJmYKo*Ij96YMC{-`HGv2
zFQ%UOn)d@2PfebD8~dA!W|qeZ8xM8tO5-jo-xxwJJ{vxov>Zk!;x)9^PD-BEgmYwd
zl`CI^+mwYPqsv_3nS)R#)-065=X*b^JN|umrrz+49z6!X70VZoDX*xlSXN%K42EYb
z#=ul)%+e(*{u`!~pJZN(RxYV7AG2z4O?d^2nX05PTUuJP3}+Q8%f!)DWQ_q9gLMLE
z<0gbsCWC%+zU(VupPiQBzp|H|d!ro;;dsiaIHNUBPL;(OkRwA&>{H>U)!X<VFdC;v
zPP5Oz<JqI_(~S4P(RL2J)8LKYsiSe6?70Ryc{HBJ$l<d{eM;y?6L1m(rkQ|&@qklC
z$5SKHsd3Ce&<|mKkx94Fc6vQdshoxbac6<pDx84{az+Dez+tdB?i5}b3*b!U(WRSi
z-HTF&2id25MvgiiH_JXt4!9f=nu0i6?Vcb#be`P@(SdJ7DBKqZT~6h>si)&i+<~*~
zzC06`XLi=vJ*M((Ssd$$qh0OM_7LQh%fmZQDYE;9QL3rLcG6UPROl+(#^I}dL#6g0
zAR9i_9zWHdDyeZUW^b@6l#jf?*Qwy?6hyAK`|*h1^X!x18=i#%UN47x0wHn*=4@ov
zJv0^N&bkrhtRog2!<&wOg!DtI?5Uw^zi6L%r=5<hbCC7v@H}&>or}|e!L+H8FNg^R
z>VOe(x`hHbbJSjGM;4%dB$oh~m~pjX-XxqKoZ-LTEg=y|NC=EN5#n(w#6ydYNQfgk
z9V&ldTrmC{LXs}!yx3jNkKGc6#!2?Jgxt8mds{*p0(ew2O6YDYC!`r<)Uzf_|BEH`
zR%ULz^c^ZQ4PpPKa)yW5k&LHAK*PFKpe^wTW-Z_0(0bFtT)tWGr2-4UweIE7wj+Au
zSY9;KS@xhOsW496i^e?9&N&xqaH>54$2yOO$24guXo&svBaUZ21wu{T12vF=f>N*G
z#OAz^e@I_@3IN1D2eAwA*l#qVDAjW+5+cE9wEHD!T?3$e*?Px}w$GW0W<O1+K|>xl
z)t&}yP=lcvc6#`3dq8nQ#QsR;N`TXZaj<eWFq|B!<k{ifLKoR-{-OQtZdW5CWQWsw
z)p^;7Lp1^o2mC`w{tP?J^R}-sQASO*C*f$~BoV`hrL)MG1^i2d*~8>?>vSl$ZvQYI
zP(~Bwv}y4U=O^_~3!iIuD>gwO1!qHF2t`Ls@g&_q1iJ%p4LJdEdgvU4-)zz)4IdHy
zCgRnz4hB*MUJ}l;CzsgMfd|@mEKp9xV{b4WkEv^@3XJQHVh%)PvU&hqoN*2@$rnX$
z>ZW_KM1l54wYegWmA=4JCl|9$`q`PR6QU+creNJT6{7H7ZFj%MWC=`3V`T=?{b%^3
zIx|FyQ85ET;oc%ECqsZ|+2=_$r_ZwclN0mp0au$q<;Qd2+5da1G*t~k%sQ!RZ<Qvk
znj}?+HlZr@{7x%14V50R#IDyIs>M|&omU>(oGWe@>klH4v~tqXraV=MfkD!U8Sz#%
z5GrgGY6Hy=GIj|#GZm`kZF?yE&_opV1yk)g5|S1QPqTBcmVpfF*)SXo#ju9;G$4E)
zdT@;8Fam*;QPtqgaX=vDVihGVyz2ixTfNE(iZX=|Uu1Z4u8Xa?;M^F+#0ymTK&UQV
zO9K%&9Dzz@LVji#6swBuzychi{?aOcuFno-`1AUjF?YYvmsE#=#Qm;TW75#eP`E`L
zn`W>9a~R6eCps92L@(qppx(|Z;s_Dr#KC&t83+|amjG=Y$B3@TSr`XM%+sBi-$J2r
z*t>L7nIM22A#ykg5dxu&KxBnaCYkvzGOLb7W;S!Kv(X=-)9O8oqvd4ujzcDS$nU&L
zc58MeaxCWfvy<db36i8$Md>!x#*y^UTLE^bPJwcf*I?uosAQP}kNUznEY=8Dv5tfL
zeDUZ8zJZ%~ZyFrhBm;hupMJFrY6BSI#~GWh>B#glcKS!E|HxFnfn^I<y>yHM9UP!&
zPJ$G6AZcKQrpC=17flJgiQT-{&d7iQ&@Vj!j0aF&zRIAt=vj#um2<&byr^(!K}JBh
z528Q*y1apPJ4m*G%ATP|5%!>l0-?w3Qvx>@iC6`?6`>Ng_*(7sjPP&dg$9)d5k`lO
zz8N`Y0I`+>^w&1~XEi7~tKRNgZ}$wh+NXs!OAm|i?wTUJFG1pg2ZUk>20Bgy9*+L{
z9mM0;&ErHQEkONEe$bv*XV0jE9=rtI{w({<S%@+dT_^DO3_S$I;jPrRx;QRyNGNdA
zR$<D>O8X4tRS6kjxlRr&D+0qd+JmK{q%s1%itJ&5>x&@n8|}cxP@pf%f6y21X`i0q
zAJ!L|<VpLgIy)0}<sZ@$?J;z>iz_GB+tA*?H*hP(dKAjU*T)O%*^iGe;y@LzswcPF
zky!|wuL3tpV5JGfK$w9GIt$b(6VOV^JPZhiA<x`;`|Mfv`9=15_4Zj3G5{fY;N`Gn
zfrF6YnFt(FWKW!BpIbyC(!pC)C>qWnNJu>Nf+9OVA;O4I;D)W5X{eY$&mtMsWI@FI
zXY{0;ph*RQ1<YJsPpSP)SERNN7{~#Bw^@iiO$0bQw9*Lj$&eG7YY;((bR`qyIxWcE
zS&={Rp(&(GMe^PJ_(i!d<gqshg3N*@N^=$<NCRdF&>jX&wNJ)NxAZ4nm+8rn>3NXp
z8C{m?vqh%QLe}|}_PHNPrhn}_NRb}ZFNsKh31yTnX{ZcEP@W;Ppe-9z1)$ACx<jMv
zQP+u#7S!A4V{DULx(hZ+U~=hB5vZg)5$(s3?jexwQIPI4i|k3WD7-x#>4w4>0=bNb
zPA{?{;GPH>BHewU5}>q(RkE`Tgx1;v1HFqxJR@;2M`KZ9zQy<CN9r}ysDYD3S)ni{
z#q@yT5vSuqzuR$i!G@L)(>-9Y(XXBKAt;l9!uAs}PDr3|T<DSG9wHc;lceo9L|_qe
zKXeZbzN0w&5l04`SLmiWEJK4hhm#HsyetfV{2@UC0i(dcE{_R1GGpuNy==~4M#moN
zOR0OP;ow3p)X2H@oWU3^T75V=Ch^-SewFMB&d|L|em&nk@+6+)w^95g-pQUm=0bEp
zruXrNpliCYC?3e(X9U_OUU<><Oik!qT)j{72<Uy5IlWI-DA0$qydnRies9mS<Ced5
zeHb$V!x+w^PpY?1s<-=`;9<-uQ2CRg^3Uk9%0B_am>=n3Oy0-P`NOXh*>KB&k(Ydz
z92nWSpq|~+IFGzsuu=Rzj=WHxb3B5f3Y0lS#-pxX`aF3A=yS+R2Ynt1^izWKQzbZ#
zF8{$TPk#DF4aYA+Ct%dDZOy^NR}K!``T8R78`D1O`^HUrn3lm|+6cV!eM;Up`l6vu
zKtmmRf*R@|3?lGW*vZRA0fwjv<KyHkJ^_Q{m743B<odL_PoI#V=%Mkk*}vbyyWXcn
z_)dlJO@;7{`ox4U{nPk<bfPugv4!CAbO=FzyeIa;m|5njdg1kx(-U~NAI*6WOx*?p
zXf(I2L`*c-yAd(m>hA;VhZkTUfiL{_7Ff5^{WI(>=zbZNz;s(-n?d(J*htfT1-2Y?
zpMX_6-Jo{g8>8SU+O2_&$siaLe;I2w2E&~<%4*sK3sqbXjfH(mI{cY_=Sbz=2tUFF
zXDIg`*tZaVVYtGBJw^o23#VI6_h~%4U?a2PbQN!kc6rP!)4h>vHEq=K9)PXQ{vlS=
z1`Xdi1p9Cdwwl&z_`^Y#^=^*Uv`WK|=3u`B+@#wFm-x2BW|i)vr&>+5I^LVG9~zIv
zck~bAneHVpOriTM?2?$i3@+hb+RZ%4YO2!dOJD%A2{*%6Vlgb;=Dx~(qqo&mrsF*T
zW0s@6tfnFjZ-oukJw2_aIT}6}He2(0SWPoD+#P0^zkul_@qJCZOSL;)yS=pg>ueS8
zUhQ6>-B+@d{}%0jM!T15m-}xM|7$SWq}!z3%e31DQ%U;o(C(MCTcX{wwR?(oztYWW
z%GdN?0~<CT63g_LXg8wW{|_dT^glzp|AMU>;pescb?x4)-7B>_RJ(74Rs4swOOsfp
zzYuvsEV@t9?m+E62Rl3Ze-AF>T>uv%*8L2)!{BDYg?M#uuvNSza2fAku<v8M*WfbV
z&)_oN6>udVxQw?ipyF+Z%XnXf%Xr=34uLxt7B_@#xTnK~X>Zdc&8JI%U{eD8dBAzD
z@LI%S`cvT&Ul1;S_E#*G?=5hd?;^O2SEuALSgYOM+Kp)Ukdo8j0qt(n?pE!-r{p*I
zwsv=FcZYWG(e6g={uwrbpeOi-b|2U7W7@q_yBoCIg0{f;hqe1N?LMR3?`ikD+MTK0
z0_{e$o2lJDp)C>L>)M^I-5J^)uiY`)eFbfe@n6#J*R}gK?cSu_725p?+9KmWrQNHv
zdxdsiQ0*|dN4sCpZliXu)$U^L{(q`{2A|aKeC<ZHdqlO%V4HSpw0pgFecJuEYNx?@
z+PzY{zftWmcu>1HXm_c0Usvrg_?mVf(eAgkTd&<)wEMhjr@^0Tcbj&%YWIHaep$QY
zwL3<;zfkQqsM~jNp@vJetJ`&OkcR)Q+H>%q+MTD}E46#BcF)o7>uBe!pVzdzM7tH*
zeIM<c;qPkqa_tss_ke2e!Ts8OSi9fSF4tW#{Tl7g(ylh)4-VGwsoLEhRPncIccXUi
z)b6X$3&i(Z?atBeZ0&vtdV=Af*X}IsUZmY2+C5FXZz3|||4F--YF8{I;XfF9f#K-p
z#HGnP;hoyuq}{dJEz|CF?Q*#T<43f6ROh>2yW6#Uk9O;{Tcq7d+U>7hF2x`|F3q63
zQ@hZE0<YC>m3C)nm+NHk3ubEfh%V1Q?QYlZJ=(3)?p*Co)h_K$iD$mX!(DSCFqVgU
zu(IHnkNevwE1zj=y$N*lnReCJYk%5MU#b0RGd)84(?0qJjfXbTFX%Y5fez?r+B>t3
zh?Dls8}&17nPUcjj#`q!IJ8lorTy0qQA-u*Py6FPYn-$-o~84pUGa}JPTCRY=x5pt
zbIU5pHxJ7R^fPUO-_UV3j<>8A^)qdLpVs(k-}_nZPkUZG3Le_#HsLuN9<*D3LO;`{
zcbtBPgHfuAL!0^+v_I|Nxr~TuX-ofxex}|0Uc_S_ydJ=9o?mr6?{dY_ZHm#YU%CA6
zb;Y+zJ8T(P>e|RtLb(&6voohkKrh+*&*k5x%@Qry7u0Nj=-xBavnM8Y5nNVjVHd+?
z*TK<tx}|29L&rl%=-{hp(wl{rRxYooh@)`mHCqvSadiytQmGtdu1y<{xeI5h2esbS
zv9xP@b2`zwxRGUPlFca{qTONc8Zouxkj716&CZg}F00OtsSdu*wpDc^b+WstH;xiB
z$=caO)KKK+pylu+#YU=5_%V29C1aM?GYOZFedp{k5u`j$Nu2FwOFLl*8cnJ#Zn4{E
zb#={RtF*Lq>B{OAi^nTbU$U%XRb6e(P2)7kt$(cyTtmi=89Oc~evLhA?AWoBCQKYV
zIVb0=ys-!vm&eetd3h5jOaOHDxXCJhS;nG8waZ7>h&r);@vpyp2-Rjmt%x3is<Ku=
zM_D;qFY!6aRbPsCJcQ9@dfw<l<SH$#1JxRUQ(8K=pokrn>)MC$Ak#Cy{uNl_$FQKa
zmJYAd(&{DHMt5QLSSV+Ky*TzG{T%q0qfa6Zb7A=CTn-NCbY6*c<e+cd4FB!G!Sb8S
zjjyz{ykgPHYbnYSTv|GP-uYKtWTINTfa5G=Iv4$6!iC;NT?Pm1mscW=cQ|;#70Xqw
z>%Rkzg^Lz(3+JRb-bF{!6&z5>Qu~Q?9Ld4f5};x2FhxOGm9w0!10Bm3F1xm3MMpZG
zC{Sr<Ug9c+dhCE>>B7ZAN+KP^!9KBb91Cl)MRV!0g-c0B2Y&nzIQVWkt5Z4@j+#Z+
zNyQ}6G3;V_=d_-j-C0>&bkr_foQPu<a1<f=@4A44J9#H7%Qt}I4!jRcEIc+HXn2Aq
zk&cmQEEKO@(avzx)?hz!Y*DS^l$OpcoO9U~PRpGG9Bdn{2{<s+ajsJ7R~9a=D_yzl
zrX|bDOG{@@cLMP+7dTeIZ37MpL<9|Ar+3LmMHRYx)T~OG*lza$#{mSDU8QiSSXg$B
z)yn4CX>-t^^h@N&=F7285bu-|=BX6<po21p%b|n(iqJ=G^C|)T0nSET<Yn!LyAv*-
zL6YZUnRweCUoS8to~I{3pBt9nM&C{jQ9T+fY~E9_i?Lz_I~&$C`?5d(3<{AwZ&zc%
zP8=4nfwO3hh0P7^{>JFrIGsH6c^)Q!)3D*?6R(K!!XX2Z!b6C`zv4nUb6{^}_UMAW
z*|)C*egqfn1=7mw;TxWX>aEP4xBG9|m+u0)0-Q(?;R)Z(IQjta^yiP#1INa~14kAZ
z4|k0BBnFWfQW%kkn(u1Z?T;1iYUle8%7J)=dy&y|2<FiTAW~7W@kOCxE(%n{!{JpK
znSbW<q#I{!j{u5BoGn-gUmPrWG=Y3~n&9)ov*w02zlxr@8%XwMujlJj_8rviCW22Q
z;0)FF|DU-xfv>W-`p2KUJU2HaWDx==2*CtImV`}(5;O`o0ul{MG+;1<EF=<=n1w|_
z0%4066zYan5i44(sMMv!tp>${6<buaXsJyVYoe)*NGop5|NA{N&%MvRNhto_zJ34q
zlgXKLX6DS9Gt2YL^2`|uD$4-_v4Mow(nKM!KrFwnvA)sS;A^zfBLgXGAf63FyuB@B
zX_|(0xn`u5EvhcgtIMsm4^^?Sk%}9#gW?=e9P`_o-oefU>_pbLYP;J0%#$05Jc`^d
z@`5=lm576WT8-8LxeTD#7kT&j4zRm4uyGui;A@S&^$MWytJrQd5~;ESq7tN;6%A6Z
zkfAq_l|D3C5?Ts5AjX^zwEPrbeTzwV1c>!sG|VCEe~ivs96J*Ys8!lB16lP$Ht7(y
z41}W5#5?NuDy!DTmfcjbn|Uupwfa~;e|8^#ZBPI5IRBjJhBdTZ==XUW#4_P-es|s=
zHUxKL7&aQj@}OVB8hmXHb6OjgH#gKCZOCqF$b>bsR#wG+|3=y;{OT{UoA&sh5wo)C
zzkykh^&1y}+}!6oWbh2Lf!u3<6)jEamX{Q~b044>vPW->kAsB~M9T8QpS?{XarAG&
zzsw!5TDeb#E?~Yo7>+~Sbi~c|AuhBMpN^(O?F5Kqn(o~vb{$!Je(_1|Jsm*p6}U~s
z=%fy}SRtX+C=3G)J&2+DAV{X2AB3^B2|K@Fh|0vzu?ZbdX9*MX!nkE3l<1cl1Mj-u
zLv>c0Kzy_b!Cd}q;ioVRhYag!$7c0Ji^-J%5^cRz#;(p&W8|bhyGp&=%AS#Q_DB-Q
z{^Y55AyMW*w&Pn-60~p*XM1ATUVxgx7{ambVC-5xhJt1Ovoss@(Uu+|^gjgXAj?>_
z`&jI?zJqKj`;m_inQ63<C}=spZ4AXfST-fPh3FQVM)k5;dnKOAn%z(fDb)($f>N{h
zA#P@!45VxEI%fQ^q-e}c07>F~o9Gis*0-=IqZ-$fIYu3+_kSx0wYFpZ#_P~hV%Kt-
zg7T~!cbw14d-o{%&1)FC1H<mK=$d4{Ub<Smh`mYq*@fcR$(kS)m>jM@fzd#Wjjra*
z!!LgH^5$_T+S^y|<p?9TK#TE9i5;*SIIjC>_!y&cKWpfT^Jho<YstB;48u!9?TLo$
z;|&~bhh}2rkI!tDP8|<xb4U4#0#PRTj>m31U-|u+Cy<oSo#VqePz*&a&VqKX^&uTi
zkAnq6kIHa*wB<z<vwknF+uP)k@o)neT0$lIv-|mL`}mjl^v{WF@a^>bq8ofWI3)VE
z`+Ykp?4L2`^Vj_zFQ<MCR&9PC4AdU+`*vX9YM67VVfn#^+5-*Q`|*<E&phbQK7=&v
z4Lea=n{P$hVB3zAk{qmWY;W)#tY3c68M}sslSd|#O~DX&0LAdasvc25qJ$_cD`M|H
z#K(m!{V<-%aQ!R?YJc{@`j;IIzHJQ$IS#+#&)gQ9zK4VGoco*a{AYXnv(QERuNf6j
zXjW&V<Ey_Sq7`dvb0uPJ#0y3(i@f&l5F4*rcoeH_8x?>sacCxZ6%xT@q>ZQgwOBL;
zxcs2Mw$VRlKTLpw-r&34@7qEvQOlCu4K>N$hUv-C4Y|oE=<N-YlY2Jje9Z?CGp+js
znF8`H2N~r?N-xv;13eoi7D=DsMZgxV*tgOBWGLI^&*XcYBX;fSC?%q68CA1}h)60=
zh`sgW%-CD_rlYg{O0r1t?TTG@mQWF+XY4I&gE86zG1gWJ6($c+(TyzDbQEi5vbQ<z
zd+3iZgGVp|QUl8m*8klhdO)Ar+Yp_MXi5XilB4~Zn~*XNis%U~^l6@l)F+Yo1$IB*
zhS=471NZwju;aaSoQi9dko8u`dWJkCAv^u+rO8IZ`0@BRW7jb0%Drs*(ovgNAQpRT
zXn&RWr)5^>=;_an^VdfEmrJMp6mz16<!ueMtqs}D4VkLT#YIA|qI%T$E|pE}&72Li
zVCDf~G4#gOF{$dIj(t9E6(HaRc@UosKTEzJ1obH9i_^7i?$PMXFGy#8q2&#<Ul|eW
zm$#zVaK>W20ieetvW22y5l#2D%)?R#Vq>7|*)ett_eF%Ey%(Wijd;12zO*yYmv&mc
z<k9A7UxxOjCcLkO_obgVCnJ_WlLcQXI^$^3L>c$_c0&}1x?9RV8h+{fc#>lDierJ{
zJ)+AFFN?x4ZMUdlcgxF`8j$Y<ylda0TCC{!7<3FK>$&5tUP<&z^F>}M=tkecjhw0+
zk=EJdpVQpXGZ|gdjjriMON>TKj6<vJ*}V53Y+Az9iJAmcKBzHGSci8}W99O_@<6$T
zGfFWf4xKgG`-1x$_Jy$A8tXs92!%1Vvuru0Vl+VReVVUQsih}1`fHo~c;^i5JruM#
zR$93T*)2rKwOFY$nzwxsr~}?gg)%gp0r+L?(1Wlw_ZFJin;1(DsyD~D=Ieh*^em-N
zt)kG}*WH0>jrAVN{>c}As~Vdj22=(jCNdV0Q7|g+^YNV&p-;17Z&fY)X?d@ghaS9a
z7;FtsOKW(#<)GCX>X$b<V{dK7AR<29J<#MZLI=8spuz5eX(ciXi*rPVlWo>;vW>&Z
zRc$O#lZ4!Bh1|=KG=$XeT_)oRW!Jwt3qm~pR>=SV2dMZoy+nBMw1SIzUG>S<CtPo(
zDSF$5&%gMG_x`->j}w2iVdRImEcIQW;jgXm7a9)V_2gUkrp13cV&&a;T|d#HkC@c&
zvk%WZ<HCFH=I_}HE&7oAri^^&z?&DowDpNuDSZ!JIOT~K?m6~{8!oWot9U)rRk}wm
z`XAc`EUPSlk+6mNu&S0Si`4~{l}2iIHCColuj7JW>g1}5%6Sz_QmgVSOA8m4E}36i
z6Y!59a`Due`DLZ$6{#1O)+kTNr8$+Ql@+PBD`#M(suou7EUS4ng;+2e1)F&{6v2WY
z){^q8u$Uz#v4EFVl+RDBEw3(}UtUz0NDF=oixw7CE+trqEd`k8sv=rYl3zuCIT6xm
zkdG)JQ_!3h5;Fu|2~n`1qO6SglH#g`60=136lhRgS<cYPc~uJtt2AAcK_RuKVgZw4
zBMciBF#A_kRZ*3kec9BU(IZEWVFaPjQ&v=NWK5mzLpiGztTY0plQQI08F`Dbc~O=>
zpJwhVs=yOF8Q6}Shh4qAYT5+Lo0ne=f>;F0E1OrWJOvdM3rayQD63#7_DrDJ>Y}0r
zMsa0DwOzLr#l?a`Bj=5^lq{O2j`9{)VLQOctDR?H_pqia-x4+lG)PxV5tyY|L(D4|
ziOLXpUfBXA3HVbN#Yz$w>Z`3TF+h=oMKy~Eiz};;86dWRux(jguJLLMD*7TT-lBZ$
zQdHX-NRYs`Rf8sDQ5I>Qi>ft`0P{r__u~0QH3bI$S3{Co`11&=gS958A<-nf7HjZK
zqSRU}I<m!9IwM2q8ik_T0~)0^gj`dE##U9t#ag4FtSFxi!zeDQfErX2sZ=1ZxB|CM
z+1L|>h*d>lbVUG5=?hgwT%tE%yG>dQAaE%IdxsR((ugQstD5Cw1S-H-q=|X6&o70E
z#`4;QuzjaIhNe}P<SQCHiZ-t-zkC5{;!(7Max{0+#G`11r5G<r6OW?J$GB2Lns^kg
ztYUFd6=~v8G?9xm@n~9Yd4ce&q({-Ju`^J_c;ZpC+Da&vH1U8ouCy9<?X)n;$Cx!0
zI%n-sG@ZJpLZwFS!4hb2q|*3em;%f%59wz?5`5Tj2uT&7P?*I5O)H-g5q_;}<<r!F
zwijFKCWnB&l~2bF6mqepa>fnlT={g|fYujVYG>Sl-jz?s6@^oyi!IeNZb0|Sr{e~+
zzt~d$c*G6rUwd_I(M#z<vKFtQ0V=JgLP=I?SU#qKKTtzD2ar^4FfnVzSU9h`Cch@6
z2JECx{Ns!~O`VP&g+Gj?1q2IW-4&pu0)rvZ!u+KIaa9`7rRdd!i#2(vhG_E`y$~>e
zVGYJd`fjMeeo3)XYcV86A4Cf&UaUt%D_~I|$|7AG7%p`rgjqdWdpHCwRzurjHMS8$
z*Cw{Ow6KWd07#@1;Mt?F#Rb(h6@`!ifT94D6{-PDKdlu_2bC#U8-QghZpWuJlJSWQ
zAWvqZcp?j`ARou1@-ZxAh0EiZbUtYT`QQZ57$3Nc^<!Niv#{O>=#fV;;uqJHE-VU;
zqZY-O#})#HH5K#NG)l`$@tQDC9?t+e5OARc3!$3%3#nSEkVEDot#u7Vsfw<LQL7Rw
zYpM!y@&fg{Fn>uN-je2*!;g_<9DshikwF-wQRk_kF{2ffXLPNOODGWnuMO%Yfpkd_
zpo3tLD#-!!@W82-`~rxTlM1r(Q&=F^U^;SBn35oXs*D3@Aje``hV%#WBNE7tNH8}m
zjbs)`6u^R61(G3Os292lygUXdOs2x%q2`rJln<{b1q<xSECL&ioo?Y09&Am58mv}E
zz;Ll3w6!VRkih(EJg5*!{l^$U1o`LV&4p?4ZWz{9EebMN1YxePt$=;&qJ>78!pk(w
zXNSeVQvNHGe`UfB{W&Nqn6ZB|8^jNzV>lrh9bQ2V<h2+Ny#U0kOFmv)s^vc<=NSt*
zDW=cU@RSZ|`SbYJiqUondX@ak^U;f;rl@=ogjfojx(jVW2yV=)#?V<%Vq9M>$>&uY
zW%>Lk|50cuIZ%2RVggZ)|AB6-Ix11=r|h{fT3b<pH=4ZJ=ZYt*u=L8jEAx!PBD`Gl
z1$XxO+N(nlR?Kbm>udSuJbQcq34~{rN_FQ|R+KGe4C&HDBnGOdpca<N$ys}aF4-a}
z$}hYr()a+PnH%{q;=8!YSX^pUUvJDCZ4@9Y+%yW?zO@TgLFS<mKr+5FV%kBQ#5g}-
z6qXx>_+O3x@Ku)^MU~aCd0s`k=LSs?7Zu|a0L~fI;Q4a{o;#IBXC{1umUms_VWk&l
zd9hUC_8PR$+Xq`6p@w`@R1{dhO^c=#-3SwAezAGa8GWR({M&6X{87pXZgh%cU3!c%
z18gPfZZ`&u+gI(zfMXLJWEa;1)HJY<cL;vkK;&{hRuOwp+Nh`t;Dzm7C9M)9!9uNU
zdU5-vx3WTv<4>00D)#9q;KQO?vCjw!8ld&<9k6cPPsb0G`^*%hL&5s@2*e*?#b<Ww
z94JX*0>l|;mqN&ASr&wC+^E;2P`ks)p>~G{bx6fDgDrc<X9r@7ab)9FEa-3#67|aE
zPn<8|wmN?}+#x@n6mxP7$nAALPvCa#0dU;raJ@=+yTk49C15Gq?Z_A{;F7BZOsN(y
z^#K9Xel6hAcLhxUQb1;Jto^$km!%50e7b<FLIGE-6fkqEfUABfAm?`iX8%<{?!N?F
z+Y1{QZpU>g0?IN3EG!UEeuIET8wD&r7p=qXSfa$e;Q_&Jd{)4+0|J)wQh2xHCO5R^
zcC0v4K;3x)R%Q!WRUu$?gMc-^5wP~Cfb~wSMY<ggg9O|>Nr3+<0UN3XZ1fAb<!1tJ
zeNMopw*_o&74YL2>}I(gw~ZBWJ3p#&JMO3zaOYhD?)tfaEzb$K`!xag91-x7zYEyf
zF5v#Ys6n@5Tbh6evIP9JRKSCa1^mn};E}rpJo=b`oi7X6^+y4}XcO?H8%J8)j;Hzv
z7&}V9c~b<8%M<XUMFP?`3b<gqfb{1DT>O@R$t?mh9Pwl}<#YklMhTccRlsHW0xn!C
zApKSW7d<3k62F!~t9whpB`pG`^8BOQacOS>nJEG;_X(JhE8t3gb>ntq-z?zj2L#O8
zE#R8p3z+knfV_VR$WOqC<8~Ab7f>`=z~ZX~EPY784NAZpRRdc#1&jJ_$MPxxH~9su
zcw9i;>jGB&O+dW|z25Cuog`pwx`1_83Rqt$pn)GXxg9re6X4%1V8iPIHhv`FmTv`Y
z>Vu6Vw`2220k>T);Epl@cQpvO`(Xh;`K^F^KNN6ZyMV2|do%g{V+CxRF5rPe0Y6<S
z;H9ks8h<HZ&uao+{)>QD{v}{<Uks~m$E)K6{3ct#zA6FxX@%SEc<mVhzuhn3^^XM{
zh``pE+wsOZ0)Cev;P(p!ymh;PLk|de_gMk&zaij{O#+Ub5Rej$FCW~FRMoY|^cL*y
zvjp5TR=`g#6mah}0b8>L+|MsC(L1UHJg{28gSQIUevg2M9un~IE&)597x2h$1pNF>
z0goOL@Yp8;9zQ1FiSGsM^5Q!Tx8unk0-owG;OTP&JTq3nuPzj@J6phWa|JxVK)|>~
z0>-O?{b++=6IA0%`>9|PpAvAv>jEzPM8HMu0xmucXQ<qcNvQ%RUo0RaTR^_zIqycn
z3VtS_=xqV>+Xa-Ih7U*Fj?zH_7K{_H@KOQgWdbVJ3#i;Cpz1{dHSY^p^p$`mJ#oa=
z?N~Zczzrh>+&D$Rva1CwzfQnSs|2jrAfWCc0V|&ou<BI-^@jzl{=0xR!v>J`x~T#h
zas_Ot5OC`%0h{j;aQl-2?)t5OEguTFyIsIfdMA?0y<-9JUXzHY(`)d!`kTYxJqWKe
z*VzOR;r1K@a8J1$bcZ8?Ac7yKL{OJ7W1kJs&GR+mOzk`ljQb$)az7%10YSuFOdGig
z|D9e0dK{7W!XHI~r#oY3hsRdgc@h|SX?URF=|}pN;dGrSnSqzY;n|7&MfP9;oWl@^
ztJzZ-CsW6vcuGdkd8E$_r)$O+Fz~YQK*K{r74B=OAbWvzqRSYVp;aY<kbw@&X5e&P
z4iSTah9{TwEX~m-ULomM+2f09J!Pa{ZKo?fHKgZs<ipRA+_UWQ6`xh4&(?GTt(FGT
zr`hW}ScqtTgGIa5?io6v%6lhCSJ?8#SM+#Gc?x9n?(Vc!l4ITw(+K!1K6W&3bS4=w
zZvta#bD1;A9dpRSmOGQYF|>+9i!|m<&ZOuV9#s)+g)=E8hM(^pU|5|qDK5r=H$LIA
z(wWpJrW-IyZmxDF^^2kHnJ*Y~jWa1R=5$~Vybzgdok__t{3x(5v31U*Au;?!Z4R;Z
z&ZOZnvw=wterM9im}`M8X4nR2(zuv%V3OZPXHr^B6)=7VYHo5SrN^uUb_cP|&ZJ2(
z>wpQD+nq_1WBgXSyPQeWWB3Um-`~tF&ZI0Ol3#i|UqQLN4(A5|rnCF!#LS!+8om&n
z&7#h}1tz)AhR%%0e<B@@bE4{4Xd}`CmO)(gM+O^_i40+ms+WsTLd<j!2SFS&Q$9c+
z4zK4D^D0m$!0SwL`WWbqoJS6Uyriu}DBjBu5?6#+j(8U2v|E6?j2=rs@kRtmu)@PH
z1kGlqLg#rJ(TqsGYj_?c{WCkg=g&!sg2f7nCq*$5enDci!xk}EM%~MvWt8Lg7;Npm
z49^}0eA6)?f!3?cM=hq(5!jHWguRS}HyPYLBv^4wc#k15RtSk!nkI(ywnA7?rLUji
zz1lFJ#Qzq=h!|kL2=5p0I_LFf#!j4=Na%@w=FTn>C-h_J6IN&-(+FXmkj&7>t<cc2
z=qNP6WS$-pMYsq9&-n~(wQ0%lOeE=Z-Q9&HgH`o;CNc0II)0EIJr(p>4Ev`JlRTu#
zJ$a<JYr2pU3Q2NXLIwFGlro@K#{f?y1HRHD4qLy}zxpRUqZc6t?Z}w_(y;<h23su8
zEsXIun=ld6G1D+2*+V>cGVoh_U^xO+vv=}yU_4zOBKXc8XQMFqG5$vhm&X|6d#1En
zeb1*zinLm{(dRkhpIE`3SBSRQcp4sl=xKgxC-wY2Nlr4Ma*gPBf&Z1XV^n}9>#$bP
z|HZHq;bE#G6KE&QjIb0f3=_JO=C#ulx6^wvAl9K+CG;bf;IOq2<8+Kp_+CLLO&CVZ
z5fUR|Bx&93%+cA-Bk?giQMcNO3~<>45PLF-rbVP~jD+c=c`TYL#|+Z?*lCJu^ehAv
z!Fdm9#R`w;g&-{@`TY>`N{}{^+!R8-1EdE?{%Z*N5s;oC*=k&h_lqFCM)H>-vEKyg
zPb7aGLjD+}FG#k!i!eFkYmiK=UwK0de@1uEPA5IeDy)h>5VR4b$A{9-1?^(e1IkhH
zF9q#t(vw5u=Yh6>^r0bib2VnI)u2ZXFv;Ksc%7BzJ)rWKT9l&l6TNOj%w3@V4BqGg
z@;<tY)Zx)D1JJ}>_lwB@ZI@F~Bl<8%ACo*Kg#0;3-@?U=4k5eol}tQbck8`PF*yUI
zvq_#E5_=>_6G@&MLe2o`N|K91$hjbul3W%-t^#QV$yFib^&s6r@{$npR*)Vg`KA!^
z(;&S}^6C)s0g&D&*?LE1aU!^EV0b<veJA~a?*A!Byt<+L&5RdNAwQ?=PPfTU_VfZN
zW~q%7!DR`<!|6iIjr3cL&3RZH7y@$a0COR{To`lCFqgpVqxbT@b<XKAGvK`&Bxfey
zQ*wdv6~cKLFxWN*Dz61~P%Hey<EF*%_6Zg@?ouYGw6N)X8C+~(VCIckVPRkv9kb5D
zF6ZmtEf$vLOzIhPr-jYn%ivZEyMix+4_nxkd>MQK7)Ru|nS2?178r-GxNN)(8lFAy
z#?RMv!9gw}AL|^wjL2eus0H}v{4Jtj@PCUjOFG8%yw8AY9q<TJsArDmLl&No7-dm-
z+6cZK7@of|&}uxP>2-{+7^6lfCtoe3hev7Sf8GUOFEk#%Gdz`M8PC9Zx=pa$hNlln
z1rz|yLF8as{qP^az(O6LWzzJ)q!-yUQOrh=ZgnfsE8`fRF{GD<<U5|E>pQZ(kn~zj
zC(v15Li(n`;08HG8$GZbWJFSA&t(jJVnleLC!6$NOhLquM9w*&yW>2i48Bc2w*x%Y
z)8A9cz^B>9?P+!35(eHe3>DEyU>yU0`AS%>`lX@)fe~KMHpZ#5tDX59o}ZDvE}SlH
z%kVtGz-8fqhKI||@oU2AIuTE-$6LcupcxsSS4m%CuR|rl8>Fudr)y^KFz^=ry2T7t
zRghqK{=~qQI?$HW$E2^e(G5>4NgHe=;bVBdBz<#-l1Np1zG2{9T}bA{G$VdXhm=aP
zZVbG;i@+WXyvH6WEnQMZ_eCI=>f={wVHq#j)g!iGRnUmM5C5aM%H=tqar1TarKotl
zCh1l!HbV^0B$CQC>5syqi7dES>$#MH3v_mTzfsvav2ticN{lNQqs%T)STxUU#<)?(
zkXL#slko7&V_=0nc?o#ib0IrV8Kd27=W%OTG}dvyMT~ZxDzRq;k;m;-q(-}Sq~B|!
zW4?9^X;oTP6wmP7MbZtnXnNe*M*2@|^j?O%hwK3Tv@s?-_>=JVNHj-a74z5d_U!L`
z6~N;#xvuagyb1j!$$Rkj>MzsZzrfqOzsV_W3%q>>m<y2l3wTc-;N)Fw5l(YCD3OS8
z#sKGO01<AJ{dxereFvCaupI(#zcWoP+MY{qf0GNhljt2_a`AQsy@@6laP#OLXmSyE
zA-!jrT*zHUZ<5KyTtB_Z!uK9}hX~(?={-mIK1J_P;oC^>FyZ?Ky~Bm?`}B?wzRmQe
z2wyHE^h-6Tagh}R+L`@L4tm|;b&iskv;pw;S6Vp--T{eH%+c^BCYmdeEDhd)YJqVw
zyv|zlE>N@KJxejmC3VS}WdO2VP{x&Dhr`3glels{ZgV|2g8z(YKj`-|tco~B(GN+E
zluq;@>9v~vjnIjBc96b6PeY{Vd3KSsP?H8>71)RzivLj(|CbD`BxCTGK+lULU2i8v
z?*r+5lB?})oqjc^myFD{;QA3_C1v;bCS4KJ!UX8vNqE^XVm`Mpyll8J|3}<oj5`}~
zua>yfcT$cOS1_#iAnpf<`!(av?H`vkN8<9ClXR^WSFk+1CZRFo%^|5?>ymxc@OVhF
z-YOL-iljCAsisJAB(2xaG9g9x0_kj$e`@0wF&``7MkLi4oq|Bw!F^CaSD8*l@MJLI
z!}_^uqhCh)c3ajGUq3UsADQ%sO$d7+uTo6fISg5#ssbE!$|43np&zJWf&I!Ec)uDO
z`cxBn04&&V4bM`d8@PA?lGG^w8GY(VzZEoDRr9PNy2TdF@N6Jyn<f!Ra$~^lq}O3e
z?zxA)ReDUiAItkj<aYc|9QXhOZsDw*fyTgxiN6xSJv)hS(oL47F`}OWX)npoYkorZ
zyiU^1S_oO(2wUOkh5Y~{vM>Itg}Xo;qtDw+d!H_1u<Q|%#Pc3QSL)0}OwXT4+N|r2
z!0>!X(jB_S2n-Le!c5x8Js4d+T}7>=|CpOHpfk1nGdy3AekXTnKqm|NXL!CM{cc-n
zm3}?nlWvXl@~oBmmTL33vEQ83s1s3v5$drKMfyFAgG|B`^<>~nI#3eHtBG(t3q>;I
zHo5F1L^~5Mxv%g~a&E5qt)NdPBfWET<$*vTu(IFT!%E%^V9CzSa}N<alidnf&L8Yp
z*86sB$`Ly@`7gx!Gkc^<|0sYNgJ>guHWqgr*%Lq=!;mQs3MC>=(IS?Kh%%8zSP6IM
zldZ7A&+XXUF9R4w{EFB#EpXP?c5M2$#4e>!#-O<n;caR;dlsm?9W}WqC`M6;7&1Eu
zh+%~(F)U1pVPUzv#xc3*SI{?w5>3q~PheS2G^ynITEr=)9ZUBHG1unZE28Y^t`)I%
zbjOMwc68ecDZ1k8+Pr0jl-)u%t>|r!ynaPrJ6gA50MSayG`JY+HDj<|k?h+1-A$sh
zWuh`;P!sf30_{1nZ$$B~XA!qiXG^5&wrQQ!NY!m)8dj@RorIz6B?Fm{4Aa00h5Li5
zLMjn|B|4QO`wlSPNain*d9E;jNi)w8<}YdHGljVomL-kO3Y#vi#0r}tt)x+NnJm@Q
zsH-Pks^?{?9@pj<Rt%<$3PleXBG?P8JJ;r2D~1V5MHz!OL0q2Fab*7z;_jr#p9I^`
zCpt6Llt0lTmxx$aSfS)481yk$iqj&3px~*@%EGdw04-Ll86{yFQ^k?>R&YrdH3&BN
zACNE=!w^J&VTEY>bJ6x-j%DXjV74*|XjcK<QJ%?gXS+5(tpWzg@)^cv<`&6V@$|_O
z3Hq`z<;shAnWF)Y0SB)^8n#jBm6J|rR)+ratDRIdrT|Vl7#n!EGt!=z9#`31m2uG<
zGroE8`xD<>Fg5amizgPmamTQaZ@<Uu_x|puu8Yp{r&nJ(u=k4(=8Sn|7t%DsakIDy
zt__Zv$H67Sjf6{w%YvH=$B_}hn32ecs_zqDF;Gxx*TkQa5fwX2I{t}770#x~@Hi|M
z@yB{6{))!g7VJ2OIO0}%jyJ@u{BG2^l^;iMhFkKnI}o?>v-C|Gf7CmF#HnxU(u%|S
zp$m@#lEkaIa(z_gqwAx_0iOc*DjfNw!SS~Tj`&z2_*r}h!9NX-Gaddgm`dI*tfRZ-
zULch(>8xkgD_Sfs-jp<$cNjRkVqg+x@a=~0#eDuJ!cl&z9zBjXH5)_VhQW=18wEES
zj`Exb$G8&!FMvyjyBKaVoDVJo?h-i0nF{!1-n_AAeAxTKrH2Y0zT}(!{YyR^RJ?Q3
zLu)?%>lOZQhfI&%abwgkCV#)`K<^!Y8hV@GUl*74%bzSusXei7#_3U?UOIaBh#i}s
zbKaR9AJOOelz0Df(+!tR^QAv```hz3ZoTyW+m0RV+jh=rsgbWezhS}7e=d7?=`7>;
zpKFKKj_q~f8@HuB`Phx`e49RghQGAA=8HQ&Xdl}9tgMo4KYRV_ho88!+fV*-ee9g(
zE93jV@wWS&w%KvN8lG@rY{rf?&23ZfUo|SrKfdt04c?_C4?oj1`0qE&X&U<I4U=mU
zubKGuoDEw>KlJ44W%oB-5%0Y+_4F5iI_{i5&Re_j;X~g068pB^I<#fV{aJhd`Tf1~
z?^}9qd*xTN(+3QCaoM@w#zilB`pUM-)`G-4mR+~y;WhoAaHqfX#0NvGubcntk#*~%
zqETrB;6}sw;Bw%2L+VX%o8h*@{R-~4aJ=od4bFwm-3#s<xHP!S;pV~B!mWq<3Ebmw
zd*BYieFDetlDP+v2*>9QZ{D2+R|dBN?#FNs!R>~79qt3TFW|Uv-W!fLeRD}X3$6fe
z5nKb@y>Pr0oQu@&z%|41w%`~v#DQ>Q;Vyxj4Yv@k4(>KMuDNn;^#B~NcsK@UVo>6$
z;xM=i;AX(_l;mPKeZ#rIiFPvD7k-@cvb*q55}P=F+%P4HYX_RdnI=h`*J%=G$RzO?
zlO}QYOA?PQX%eU3B=J0yCUF`^65nDqiK_=B@g$ZeamGs$=dqf^i8x6-F{MeIx{<^;
zTutKQB1xPc=`wP^gd}dG=vbT|lEhbLP2##cNnDQCB(6e}#P?jyi)#<UD<}k)K}h1M
zGM$hoGDzYf4Y1>nb9|C`ZcE4F<_$^Q4bUVmijc&m3r%_rC`o)})+DZ%2(Mr)t{afV
z^I$p_ce_dACb%YXbATky^R-;uD-u#r2rh|`#Pe!8Ay;2W;>1pCf=j6+abl=RTz3&(
z!Gv6xAc^Z0nisdENa9YFCULu-ByN&x5|3+;#PuP~o=YDjaYaPOdLAfA9BFkdt{0KS
z#T^}sOHw3p#YmHQ41^@EPw9kQ6e5YI^>i$*+>pehcbdc%ERwj+q)A+PB8f);HHqsy
z5-XUHTRbFj4N=G9^Pi-|VAXP6i6kBb)UkL@grrNsQ<I+72?qme>A4EUSUftYWAS(p
zNjw9hNnBndiHl&G#APv(cvex9xOPVpm-94xu2zx6MJyeQyHg}_(@K-{72dM-qZ4xR
zkFmH!r(^Lr3`yL**CcLUlEghtP2x!zl6Zhdleh;;5?3uXsR<}aT)WUY@<0tqobPH9
zPy3L>^Fq4a^Y9!=n}P|sWJeOuTWa=PgCmLOD>aFWfF$w6rY3O}k|Z7l)g+#cBZ)7c
zS_tb+gk=8gZ#WV9El7o^S@9slX+<?S1?>i`$Z!Q{bJ4%6-J!H5lx97c;A}u3UL{0`
zM_hYa&I9<=v(v0MBgYL_7>;E)mk@2b*Mkd&NO3)%Xm96i-MA>myV`kiceih?n+HG`
zo(4Dh7wzqoF%X`y)?DYVcQHH{ZtRoo?UXkVK2?Qt0e%_W?Z0eqr|g07$!jI;7LdHZ
zYHw#50%1BWdGBWUbM5UcPas_9{Q=%YopO7v!|`oQcW6cQ0x2D-y!)WEAit)xqP#ja
zr=X&+C<PaUrcSEBy_&qvU~<u-qB49iU6nesqM{66*OglFCKnaw*Ot|!EWrnWIwZBW
zx+-;EX?bc&N@{6&L0N5KQEI`kVX2Eo89yMSEPPqS>lCU}GxG~BzcMGKQWI>#Tsiqt
zD|pn%lu@HostXrL?pC&?W5%8LU(XaDWu@k+TT%bZ<^8`X>VG}YAFkRT*k;R0=cN|l
zGyM6f<5EVYjI`SD|H4%s)l~(lAs2kut`OnnuegA|xO6@TPgUrY63z$pg&sgS>eb-#
zhxzcM$5+=BmR2ZlAU+-w)@=?dfqV(BBdPE06+MswjPmri-gz|$!^<~u`RG0bRZLWn
z@>`#IOF9V04>GM-_?B0BAtgQ*gdgKGZs8CN_lO5R<<%kh$`l{;0s$Xf@-82|1~GoS
z8pQa?tH$`5s!B(>iSbKW1X`$0X`wnPP-?H7F{uFf<YQMGS38bi`S8`o*N*G2Uv*+?
z!IBS|pn0iG0(ZpVp=7v|alj7HaP@U)8+;M4H3pN{_nRi{za_xhm{_`o`C(X2hqb;~
z*l3MIl<u%Yy$ZfrF!7pWCghkgu!RY%JFwoK`S8P_8|=6CmiRf0p8y-{2#G_C&agfR
z>y0oZf_Zj{fwYmE&EBge577I8z$gP?$2=zx3pS%?neiZ>Q%n=%gEpD{VftMx#V4g9
zupY$_6U8v68b1w$j{^jdb6{O<wwZ|Ju%Qi0+OVe$<I0c~LY$sP>0bbIEszvAh(#f#
z>6*XEjB@qOF(aX{c+Y0UsWD--6-GS0o=e3{cN}2!kD<{t)9`ptr=~~rf}z+|NHYr%
zX5GOl9=MqU%kD4_JR9k@n#v^eX`(bJZ<To_Y+XyiU<MpIPlg>=*p^N+hrl{COvL4w
zuni7d^vJrW=W65!yV0<VOM#<dAYQbB@_|t=*odCStQ-){aKVmrLO18N2~yW!5aGP|
zG$fyBc0<xgM6t_Cnei7zt}wyb%@xUJvC4Gin6w~?pdiL_#i1ne#Wcm<9VLnK6q~25
zGW)=QbusOr!+JXEasUin!a#hni5g=)<WM|!F$>dO^7?^^dU>vbUA&{H0q<xOAdRYz
zU&S^IouX}>foe}P`@jVEDjL;BmS`}&a!eEYLw@W8acC`~%4jr%9P<q54Juwm2@}&;
z4X6MJ$>`J)tYD*9=qIr24gI4%ppNX(drS1wpb+*ER6uvO#m%T4R4NpQ6zFcLX5=h0
zM)fLmw-|6|2ZPrOuL-Xg#^(v60NE3JcordAj@b{kOOXc{!)E$G^s#BE&H2K90D@5B
z)1NbAry;)TEfzG<LTHf|wa_2&P}Dxc;+!0F#B=6om<;t!Lygu;rchlhngjEPHyW%w
z@S+_lDy$PeZyMfZX3uWUvwJ}=&?w?iKT${)G#_rY=>e;>GJ8&AYmP!M67}`a&DR0p
z3|H@W&A4vP`~)ySb6jQiJZeTxGy4~V>1I>_%S0#@)&u!yFPkD$bOR}tDWQ&pzXsd*
zpwm!rHNLUUdyk<&6Q#GH8K6wvkuD0IQ?<ZVD5`4pv7%OJURn@36pX6Id7LAAfVB)A
z=!MD8v1^`#b_KP<h%XpwY2fVv29b!0_NBxXZ?x{J=oI~7+wpAZznJ<Tmu98|M=xVK
zj%8?w5ICN#r3X+BtRe~;CCo%d7K7?c>d{FSv1onl3b7vVeDOFu&JjJJ;rnme>1uXx
z$nNG$?Ijh3-Viy><NbrE@HD8RH&lThgPao}M=az=6F`sZ?|BDVZ34e*%qWc5sE;@)
z;3{?mj(w~Tc-d9rII@LA!0_U|Kzf|LGMwR+vmgA`coYMUJs=B44if^%h$~McNQPXZ
zkPCY}yk}q(z#!<!HM?_AV$b(@)#HG5OI1cfBfTFtPlp!+0>*!q$>Th`r_^QtY3A9*
zW_%5v5%bM65eK6Lp9>!EEHTQ7_@H1oz@UI3F2Um*+!K1@lY{KQD_&|Mft8I$AzZvW
zX?=S#9v0IWFBy`Y=?No7dR+2AJ;p%^Er$Ii3R=Wigi>ON;j@-)GeBUmPs779P)Y3k
zJt0c$sz5zmjpC|$;zJmXJPL8Tt}k}oc=p~^7&RefSj+LwcY0-(+laj%yvlTcSi|4M
z7~6Nm@wLKuU@PXiTY>Mk;dcVxWyAeg=EnrSJM7zq#G4-$FIUH#0=k|5M9}fJYWC9b
zu-g4FAM9>y-)75ai>BiX@9kS`^vi&6vf&>^8{600@WWUrz-wc7uE!F78WkG;L>Rst
zWyaf8_qm|c4g~eU59F@~oqC$6As0g^_l|DH_Bx#(<E;h0#D=E<kF()PVR$U?5?i=i
z^Svh$_DyZ{4Oj`H{KXo6<PGKf7;wA1IE=Y{t}XpH5wKgT@m4U}3&-+gfUb-`7!O>J
z7w2=s@DrZU@K3_<7sK$KVfa+wQ*^%MKMHu34UY(mKhcE!QCqmv4Lh4Q{2LeSYTEE)
zz=zoIqsW7Lx)5}JNzeM@M{<M0@H3spcG}iqIGUDmE$nsL@j<|wY~lA~Bg7s)4S1r?
zm+9|KmiFM@qG7#;D>S@L!(t8hC#m>*HB8VjUc=pIsqm*Y+^XR{8m=Cw!s|5rK2hOc
zYj~B0S7?Z2Y_9?PfrT2+(lAZKAsTW$i}3*jKB!g?-DrNs3OL$(<L@Cju^Z>a3bFQc
z&8$rOn@|})(tfVFZPI?Op^=4VW00@qr&=xll{SB|&5w!T?85vk+-Q?Gn-}fDo)j(_
z!<9k>B@6P3^Gk6LPZu}AfZqA-G9fJH*XCE@A{x1Fhbh8tn*k~GVjITkaIFl89k02;
zc&Y4KjUJa6{QWz-R%6aPPwZSJCeH0f^KzB261NZ+)K!;OTPCic9oQT0#LiU-YcWyj
zl)HDG{bEo7s}YY7RVEHYviwfP&K2!MGQBhyoeoHy<+be8VD&-s47D%C^!y0<2nMCF
zA41g6;=y~4_zSmn!*AL68-?~4_Upi-EBjL9F&BwXg-2KRrTA&u<tWQ$EywK`Aat=h
z$bkmdseP$j^f&&R*fBzX9e8wQUy3}~k510RX4eUE!*x0bJaRzi-dfntCWqqDm3^sa
zz#|!n$K%-+_Uphy>|AwXU+O*0W6mk?P%Eh&%kn*VtbqV4Pk~2Q_N7*#B3TxG%^dc#
zl||W7vrIdM>vRWraNHdZ9!#_s?L#N-zyo*t7BQc29(XPry%3uRmignsJ=QgT0Unf-
zV`;cuCm!8nq~n0&0Lg;#*nbQUFtP`nf?wHv=<_A6b?@W%_4H?I%MY<vzZNk1(BNzR
z5{3ktaT&L-8JCOi3AsA{dgKB-58!|syW?mW0<mX#zl22{zwZPRhS-Q`i>;p^32-Gn
z)3{gaL`UVKZIEU~gT%Cm!Q}3h@X9UPM_Xtcp@ok>n4MtZ5Hi6BmeigkP%Jx58@PcR
zm(g2!A$t)w-l*T(2i7NwH$fkAuYNMb@+JCx{lY90Q7?1a8kV;<)HXL{A8p8Nf`JKY
z=P<Q%xPx}shH=F>xQTXPDGISI?X*!l5Virf7<{d;GeM&anN6`zWF8&AKem3dqy>e^
zm7<XTkO&V_Kv9T6PNFE6?~vl=@*M=jmY-8&SAfwz-y!@5I7kqh(Flv8GLpb9Iqo4x
z&0`oV$x1{uK#$3C$2j+#iV~+!zbZ3v5w6I_)>ERaw<ivf#rF~8MvhJynKE|tIR^HT
z@Yi9n91qUag}B%)HT(%$@V~HBZ@+arEI+Kr&o9r%m42ZQa!uw%fxIiUq84Us^B1Db
zxIMJ20#|nOYHm${ty2c$Cg|WD)>vaU@LsT}w4%0JM>L9IqOPKf_thZ~x6&!rrIx3{
z=<Gf^>uNJ~Y24Xz%bY9pHZ*tOely(1hIx>>cg_>M$u2_OK4)BtQArIX>f*ELz{O{|
ztZ@AJ=$9C@Y3#^;4kSm4!{Nd~)4z*95p-ZR+<kPU(t<RwO0giF%6n3PmGQ0>$4DKs
zWUOGL@ZXJNrxS>cz8L=vCr=47Lr3<T<ee$`R7yUXI(6AajGs9b|G~LLa=lFFS}69o
zFVkUjMTX0@47nmhmgbTpGGu8PW{M0~PzFepbtQ8U%rG(2Fg)Kv7`NMG><AJf7~j*I
zKDTEgfa#8q0tAlaQDb!Wjd1HYAjn3K_?!igJhkLL4)9apq_}{$!0{()1{^F{@Ted1
zl3!<hPqqnf<!!~`yBM9dF-||@SVsoY<J*}L^W%{?9!2BPx#__3;P{$ItuUM#;c$!}
zbwLu9p-I#dNmQ98SwfJ^pS>`_(*k@pQVa)o?4#YXU*AXKtAA{d*sfoL?Rpd2>9SYP
z5Vj#6fwjW)cDcbTU9ew{7#;V^|KpeXcR9F0b)mybN`a`y+ASLCFg@Lz!xLmF8_RjU
zJl>w>U@Se2!lEUXw5D-!3F~v+Jkw<@QEg--VYi?UR-}fkGShO*iD~AjG&2=D7g*Sw
z#`SY7e4eRR?67t}$Lw}ZCuw`E3X3_=v)vp9rbz6@%5WNzPRD{KR*50ukN&NMQHagu
zX)K_E1NH&1l7|wUg%YHgry%eI2s|F?rxcqRvJmXTY9l0%g)(~7aA_6`gjn3RaSIe-
z1kzIU9~E<r7mLU&%UK}U%c9rVZexo;|GrhjVH%#T;aM8;Lmb9qmnH0{;R70i7MOSQ
zBrWINY>UcfvTa6aJzvCDct^T5_*?T(J+YL@s5K9zRprj?E1!4%SUqi3^HA(R|J(Uz
zn;SAFN|}r$^mp=$#6u(+@8^Wp{8Qdt5%*N)p97GH>B+tiI<fTQkol*!vpiO19&T$j
z5$T!Va10e3R;?e0E$bJsv)qNP=8@o$h{(J()m}_%9!);h9JZ@@Fh7IhxuINZ$YLV(
z3y5X$=xQE(SkF6;;{87C*MUb@^I-BQMdDN8(bYWoBFq{8jvO<!0uG~6PE!JPkfW=4
z@JOwPG@M!s`*q;a)jXIy*iBB(<K*+;QQ)x&JSLu0j+4)W_kc$-c)W26Ji3|(f2?_Y
zaSA-Tng>UsU2qPOpeqAj>u1xcDoa=M;9J0hWx401JWf6jei}UZv}^<qX3S5yb-%I6
zp?GvP55|6ioHCz@af840;K91aFTjIx%2?u66MqJ9eAtAzm_{3i0V@GJn+H=Kx&Sly
zPxWWb`-XR%@^zf=$@~)5IAMYhCa;dz>}kP9S2S#N#WnB5y9y?n%4nw_c36Y<=NO0I
zH)5`&EWpMNNT>Zpn!_F0Oo4O!nL%@InETb;hN1(mzYDNo`SFI@wubE12F$fNhZcjo
z2#tiL%Lfqw<~cD(hxyysRs8nCZlMuVWj?6HkeQl*hfJ>zLud)(eBWs414UwHU*G5!
zyRV$*rMrt`Z)!XjJYYk!yisPh*CG;TznsZ3io$3c7}%^S?k{QbR#p&fqF}}f3%Q)+
zK8_XulZi+urG&yd6eV`m`N&YuIU%-{)Ls+{U|%VC8%1fkLU`*b>g1IWCEj;vpRWnr
zkZ02b-_h8Oqm&<pT#>JE7)H~8l$}%V9N!^Hh3K*d(bVz^I3ud>P?#nl_qC`bS|#SJ
zSP3K%!HPsg$YBJiK}&EHSz$IWCMqG#k=Tv-q0*4u0rEg{81V&92nA8Zn?w0fXbEQ?
z2dqd|NI+-=h#|`(Ew@R#JTk%86uTx7nRR5Y^08Q0TGtCO7r|nhkm~o26oby8_B!iZ
zbN#*{{>)^5cA~$wpMQBD|D2u;6b$w{VKxx<I`@jb&Ni_(*@}v9fRVX5M;n$mHPjwy
z$UfYViPek)4Yb*a-gN{9<@|HF=z$W8IZUi>z|`fzFmrf*7<iniEaLeyU!Z9^*q!Uw
zd^Qal+d83tIZWww)?I1bu^CT5bje&<z6h)XrCA*^)EF~`@HW5#pzj4}u&x_kJpk9o
z0Kx)bX9k$Lo&qC(O^62Y0_=^Rg~+O}#;%$q^^PSVl=U!LAC`bx**gMF97JnHrqu;w
zroO{1Z&|(dC>vGF4C$>LarXSh>408Ub6|$<m0@iaMD|)VE%sVQQ5btI>K_DITw=!+
z=KFkyIZ!LvbjLj+ohwj$7|CPNFb3Jn#kD@&gjg({G!ax8XAZ|c;cG>GOFLG!PFb?w
zv-2(!{)f@<5J?Foi(oJltk<&8EGEFH`o{4h+Mxh1>BfhL`AE^FQC%6M3{oSRwB|!C
z&+D!XYosBA8cL$NG8$`$h$tb4s#$Esh-7u=LlA(<L6*{;(OV(e!Pt%0ca)4GG?EWk
z91Mso-8xtTtM^Gf=GSPCY=s62f<R@bwxwRW_rVD$`<fxhyz`8L`C6>3IugYkZs`&1
z=4qD6z&fz2yAVzw@>y{*_n%$=<ILs1vF?X_WJX?wg}L%-7%JlQ97JmtCa4axXiTG)
z{3K$BRX$~@EWfs<qM)LxstD)Yu^5UaKCTHaDpD(c!3DxV&Sh%BP%Q>tXTVBY5suiy
zDn(v(?Lt`4C@zD=5HY1xX&|mzE6le%fkngr(2}8LD#4@H4kLnVhhDvQ_!)*D{NWeA
zb~sb0_%IC9C5f>N1V{Fh{69vm>3u5xMuc*G@VH<H6js77EgWNYSRv=o0c>s}v2zcr
zn7JbaV>-iGhkv|-RIgE9CHd5hV~ndcuS!`vyjtf|Ciz%lC6Z4LIdfH#D@cynA1Z9_
zWp*q#D}do@NPM4zOpzpq?;eg4W(92K)x=6)RajOYvFnJLyw3L>MV?+t^4dQE!_S${
z#{*tx9ohSUIwsjPHQCbCLZ+D9f)rf+6unK><tdc%_;k#<Ql1Qr<t}2n44p1Vw0Mcu
z;>;BcyF`a&iB6{|oyI{LR-z;OT}pI^l1OxVM~FmsSQ3eb?+lUX&Jc<2vg%GGx{K+k
zJkj^vTHiB8-xii7`WDRm4Foz30wKwC(f7~D9M}}m_YSS^$)fK^MBlUVg3N0Y5h-2t
z{i@cthrtn_qhM~gmv{9>d=EcXbQ$iIK&~g7ZZE|OuE9bCnRM`lo<GEaLk`-{$f!x<
z>DTT#^SukV-f-RJ@6MeRvF+I`(B{H%GE)a9l?=$@@n^01-l9-Lx(ob+H7->E|A#vM
z$(B*W*L!u6kfqk}IFy;Lr_PW5AG#(?Z89%vFIn-S4oRXCHHmsAiAvX`lNILVYr=eC
zvVI(A!q<JR@H&M33K?4A`V+6fx-om-?@yAReIXWctn}8pGOuNI8XJ)E|9)K=&!e#Q
z<Z~TnZ=8wmX%4~aCy#+90b+I7<(Yt6%NEN?O{}911_dWLFTnb4zvoO>H|Kc?a;%dl
zLOob;J!>nED0cJw*tT#S2aLzLaai|sy}0c0ti?%Ra=+9(Jr}F4a*Q?3lMZI9%t8CP
z28{J<oZckkBrqOP!&CM+RE@Q6oVc`>wQ&v;OSN3wPQi&(ZvswbB5;~{##SC5j>K{|
zPs!rIC{~vdH!=mMVSkK6mm*C+NQ2{;SS}u@j_Aj3k^|NJd;m$X9)3C)@C0YdDlU`b
za4(J;<9mf(o_kRueC2>O@-xBzoc&ZxUr3h2R1hZ~2RBbgh!+RQc}klfP+&P)P6~rH
z4xQpOJE9Ik28qbv3@n@@NfMGE7aVHE*;5`c=4S-=OCAA2f6qOLx5<paM-QGnQDYRN
zm2{Tc^lUTxy5{l__$FxEh59jEyH^}D`*(BB=xL@R>+z5r^?eS!W75ovh|M=$g=TN(
z&|di7L+X5Fnt47}*j42}4i@_iu<Pc$JgoNjv-YDP3K#U%p=gw)mn^>9n!zwAp7~+H
zJ**{g?HyYHr{zE^>8L9?JUe{9IW)XIOhl7N`wun=exZRw<NeYCZQ`tJpin72P6^`(
zFOS-Xwv00njE#kHtEj`YH1lkHLJ`tF&PMwfj4B<ypUnq*GH4%Y(-G5niu;E&k-^9*
z5v>~EpFoP?V2Q#byTQ^>(B5!B84c=8v=!!uwi2Lq-dxT^9d*g3W24bqAO^lv*`AKa
zDt-_2$9Tqbp8TlW!trfuNO%VD;kNJ#fZOBq1_})D<~tZKvFzXd$2hOa^>^~yh<~er
zb4}mE_u;&zJ^W$d$+qyV!0qw*2qk|$Qjt~nM=`DgcmGVoB^uUf_z40T{*i_}%SL>L
zhO++){CtgjHROve{@g!wk4WBkkuF!s=}yy-&m!`>TSI<P&3&Rez;x~BbEZi90gP<z
z=kp0s#gU$D^Q%23+iU|zBVj7rK6&XhiZyu%i5W@^PK8t?%zbc`)Tq=>&qsE(FExJb
zxuazROP`NiSd>qr)K#VV<po8y9jeaGN47y9MxrWrSNl^h_f`8#glsl+ad7;d%KlV7
zmY%Ksse_5wXJW$6_NT@%fIMgVa;#Yn@DikFo2-dduTYG`A4Ru*f&HnmiW1J_FnC~F
z$2bZeXtseLsy*<t_LjQZpK1b+o=DsZ9$~)#ON&QW`%}lQ_u5m~JLqbEiaeg70H?sC
ztNp1*u>XK@$#_Qd7<m@1Ur~kXP?oOtr;c0s%Z6i!Mmq55YJZA6*zeS)Wmh~-zCZO3
z@Q_*4N#!{C{?rJ(m$T20$9_oI&sG+j9G#rgoS}KlIRzeF?N8N$2luB|o&t}q_NTtl
za(K=ND~YY?TkW)~bDFdlIT95!96YFi#3XgI6}&cmoP2*O3j=T!+E^~e4gM;@L+aYb
zgF2V7By4|biO#PLunBQG+n+*rl-srde(+E44<%a5(ZT&8ETkU8((^UoZr>W(=WAjn
zSae0`rUHb<4tXDYHh(FO{p_P-vAG`}i=B<FjoEJ<i@o-@@V|zI$xN(1b3=(6HIkUe
zE1Ru@h}hJ?7KSXYB9dDBR6Ajssv_uZ6RaV}W1}K)baNM03%MGpvY3UH$#_|v<emms
zpd~W+awQr-BJiwa9Cj*Fur;!lPe(y<Iuy&gJ}!qFE!3$jB@0@=H<7y%u>-iDrp|F%
z3hU#~?&+_M^DmF~&+%%V{Rm6`VY_=+>6VgbHc@RCBf=@D4ePy<{XX9jr8cfQho0gD
z1zSp@JVdpWXQL{wRvtHxsHvka-x2H%$tg~jU1bzh-a#tQiVVI~9)MEbA*MJC<sAwt
z4{>wluxY6BP_MzGo3R5X<2^&|M-H*n7i@3POI;KmO<gv&^*s<8JLF9?w)fE3-bZ75
z4-M>fG`82!*!IBRDCMhP&b_aLv1`+zHLPJ<oS~|z@SiH5Lo}Sp^eAuLHOQOH4@sjy
zL;9~ZW_<>_i`L5`vOb!yE$Yu?Q5%A4!m(kynr3C9-RJIM-Qrv@>a&w}K16okic`Y(
z--cTi7Si6S+3T<-b+X33o+e06q1q1CFK<G%?YF9Jzr`GFUaIXB`5e&IhW(Vdy2p_>
ztL;FrFaK9Nlc>4N-eXlBdL*`9S>T3XAv;ta`kksgY`{s!3Jy}bpQ&yCV*Kp&SKr#l
zs=R1_Hpi%j?C%=n47~67K3^MJkb&J&h&sV{BDNk68uoU7=66t_+TUVx_Z<gOwsG28
z-o%)TGx+Kmu#!ttu|u%eRelid?M-w`G{f01BQ;MET+7WdIZlw-`kt>9=izZ2K14no
zPv~a}82Cz{G4PcD^KRYelNb%Uows2SJkEVgB`jM0iGZ-w1vdYD$6eR~_BFS>F2bTb
z9C=qJcP%UuDq+bX^XPkc#O&?I!}}fdsh^g}(ii8?R7!o#rc|bH+vjUlnnl-a70vRr
z0sKMD=E_r1PB+M*2L8*DjtTukSB>Zott~HF+Li(=cXg?4^k`K8c5PjN#E$Yq-^ohf
zEI`jrKg|#wl1sCGWXldR9>f97tHOX{X+BpPrEL20pFDhXSR#DkA+>?e5stRt8Y;DQ
zewekf7w=GAG#w;Vg&~K`Bk$p)0X_jxr3r06^{xN?`lw%i!V$Z6q*UmMDY|WakC(bG
zN@K5@I90={f&Krne(IOE1q#=O!bw%}D0>%$vsYD|s_|fbu@3}(ZP@4KZ{#Eee<*IH
zI~6E<$`}4;_lrYU6#ln&j@9ljmsdjamCfT2inW%~A!=T2`MlEn>Y~C<(pW*^iGxw~
z<}bNgt0)p^A@-C3n#DFWrbV@qP<+Emqc*J#>@9cL<SsR&pi4#z9Bq{2Znylh(rVf4
z#y7rdo7>{b?^`53qgkQICC`r6bo#kVaO2t4*_SWw&@W%i&@W#+;Yp_Upy`PSYj@il
zh;H&jnaGgn=GoCIdbdCx5-Un=iAU>w@Jld(R5Q--eei2lUoyD7<a_~$+l^-gE}uk?
zb!5K`pJSNAfsM(UyGR)}1e}0X-fPFo9wIhehm|}k7)|n-*rtAoSn6nn&D}$6)L`&M
zSng}YMr$nR_r%7GM@+-TY4ZYz?8rVu87>zYDn*9Nbv|VxgN2od3|Ts?@F;m@VY7(R
z&J~GfXo+$~qM2Hv9FgcMEyGNa=xU8+i9|U{qDn}UfENHq_TMN`wM{G4AzHC8rInfx
zt<;2QWpRjBmWF8M21_enup~E9254-ilR8<(FvFDyY2F6iku8hC_uF)Ie~6AOOzCJ_
zh>o^}=;(nE9c>TM(ZgCIrK6u|EKB6uq2-${@;xH*d72<wt%vdrWf@*~kj%EUOzP@&
zEyoh6o!52Fs-3-|xmQYE{f=@No;vVK!n&y=dkp!#AK<q{_`R?B)kxjHugg^_-2bS#
zmq`oyljdF`+&@s<xwucOb&l*w<o;=ZyOQ?P5NSUpzd*0}%#v1G<li(_Cfq+K_lQa`
zz8elzSi-M-9LE?5WoiTQ7hdKnM+m+R<f_W_ZAh8E4Jp%iS_W07@2xV44DH0cR_{X}
zqYx93Pca<mb43WZ<c2Y&5!8AtD>$+XS@sx*5~G_{RWT0A0aVphjDuMNRh1PhvB6c1
z3h@@I6mXi#oEJ2l1BYlz1HG)wH-XCG$B}&lGfxU;u5^%OWv(hV$w4h3b5*m+mMlsQ
z$yVkiqKCm2s)nJnl`MZkjvnL~P{c4TOBB@>O=UTsge(zm44@!PBH?c!nCNlVF#s;|
z&{=EI2*$#k2mjSaVH`&BzS@qo0vSRasutM4-@8+<t@_i9vU|4Oxae9>kK3=E`rQYI
zvy*r1_@;2{$6wwx^OesQH^1`mLt7Ak2i$JB{cv0gYKA)j$9~WAJwxDRR055ymp^Gw
zfOpGyj_c1sXHYGgAAiz^0C^6Azn9?{K7t5-(h>j%pv?S9<pAERaT%9^|AK+|Nv{D+
z()sBPD&rk3kEJ(_cF-Gj^F!h=8#=7h%8&jZdKQEaJj%mbPKLve)l3rWT$9)oNMgIt
zq>~AH>SsatkhRWggrD``1CV=uR=9PRgZp#*@o~gq&k7Gu&xgZPws0%Gr7jN6cYu$T
zzK?J<j5@T_2W@nIw`ir|5c!lX%u2&SY>$m@Ps5?*6<e5<hQ0nx8=Yy&A(PX%6V(6v
zb1EV4$YCc|MmWrvZq88&=EOzjNbHZNc;7XL;hV>4Fq%3W=Q?=#<8<uW<Mue7TaXhH
zyo(M8OmJSJ7p~Le@q&S?cug42V|3@OnLoi937!GD7Ch8Nc!(ASZ!~t+d1?gQaV7)1
z?H=U8JO6MTB_4a}JnMl!?7H(vi)W1-ig9}~`5oj|$~o>7<itr4d_9R<16?VnAnjR@
zmPbci#s67>e@}5!63p?7a6%x>916AKqyY-v9k<JQP~M?D|1%0fFe-QkLVM$uQpk*h
z2?_r&-E00+s*e`ccdqi&pz?mucarxQuT>n5`sh^o-XSc^x&NWU{3q(?KT@j8P%7{J
zW+Xq)l{-q&yn8?;-BBssR-rN8EA6-sj-Rm6dcFIB!_c*NDb;Zn?j=+y_30^TaJKZx
zNY8^fXjvUuJV+LUdYIm8(CoJAzI6sN=Q*h}aUm^^TcIiRK!xBKiq)n1p-b`lzvzG{
zcaqQW03W+<yX0nT@*NpA{yz!U9fGk@4?qcc$|gS1jDd{ZJnuneIlL_Pe<<k5Gk{ew
z2c8e-;QqLSe2>AomwPcLPshD+`!)VL#_pSN4_u?hzvIg)?swa*@d?1&aR1sajc>rS
zV-oNk8vhLA`6isx*{1OnJd^&6b2vwA_@lt>;r9dIVhb+_3%@ul{B7LJwn@idj%VT!
z;5?_m@(@3cd)n;b&A`{&!gq#+-x3y%Gr-&Hbo>jTFPzKSzQl%OQEGdo#&I0L7zn(?
zhU0=wzC5^NHGBX%Aby{Q>oly_kZa5g=kuGen}!|@x8gmA^m{a1qv1*oQGN+e*6_E`
z0ptHh!y7bQq~ZGrWca%pPSJ3(hQCCa82+S&qcu#?@GK2^?t$_8>2z)l`Kn6#K@FeQ
z@Lmm<X_%{Fnuh%}d{9I1kaI|UZ{a?+oJm4^+o1gba!!_XzB@gp>3mPRRQsvZ`?a6%
zGUsVO-(OzSe!j1iYd_yn)S)C<a+1?U@?M}9w}J#~HOg8{l8{b`A@3D|CAQAfg)e+{
z%uh*YWfYV(u;v!XAv9)?+~ql`QJsIkKkB@(BgZE4H@91HX?bZ)5pT9Dsw%=UDf>-w
zot={!i@Gxsr9Bugpe{Q5?Zf;d3-Jh1E#l&J#8WvZMJty~PxgJr=oj`Ma87Cy(sS#!
z3G+I1p}@~BF3x@A*W?F+aMo(_MKdo7;@iN3ZLkeI(EN;XV==A<gT*IT?N`?XsNrX=
z4x%0IhD(f5JOUAI9_#!`S7)u(Lvb}I#9<y&2>nqk`B^-=I&1Zve)*q%3g=+DI%`E9
zzd~-O!lSFRR!`w9%^v8(rO&}^LFb*LiqN4fU7fY6(TB74CaHwB{~dUAb=HbJP_@R%
zdDzZ4A#V8HYqj9Papu*N%5n0uR_C6r+V+~^wo)jstt>V<Iyq}KOY?Z-6nJ!X)@nI;
zY)8ItoC1%o&RPu|qRMhT`h3{WR+f|B1uz9X_9O8Y@L;04@#@=rcsuau>Mnq|bI?xF
z(dY8vhTksmU|r)E;E@c3<3sqJc)Jld8|0@a8b&%|+s|5E4muqkR}u%{2miW0`(i)y
z((v0gui<PCzFCf4O=Y$)AAZBiLoJ75SN}YO=Hx+_)m#W_;aVj=v*odgdW>E;RW(dL
zY4>Nh)qm>n-@b_!@BGm>AB!D2)oVX6(_}xE)f!trNiyWAs}KhGYWns&HIFZ2hfZD@
zExWvOREsAB?4QZQl2LmLrRpfq9><;*2R_&hi1pwpiZwMvtS~kroaXfJgnN|2-6`Bo
zqOIpoQLK|`OY``50*SUDkE-k4Y_Iiu^+}x2y>2;sHny2@bL^KnG%RmxsBLY?Zf?jt
zsv6MYhHNwzTLaRc5XY{5#L9@@`8J~g9f)0Bzy|cW)E9Sq>!#uHi{l+qO|7c+TtQMN
zt>=h!B9LcTnqBgJ`NnkQA%|LQENTy<{b(*hjo`!`((%NC+&~~_9-3NUDXYDOLZRVX
z@;u89jAKrBfAux`0$L}f1Jez+%%f=Tm1x*gLK?Ou+HOgi+2qe|_Sd%hamga?2RPA?
zz4vba^8H`6pYxkNe|6yE00-}H9KR=aV-_;9rNIRO4F~V`*EW9jFJ`>Fwf^r8-X8G6
z^D5(YEX{i94V{-}8B4>JI$LSNv`Z6<|8wnXE~lhjh!fJ@#>xlTVP{=%R-|X>^_{_k
zIXIgVxQJ6)B<f~@597zx;4J5@a4rWGJ3AWJ1f=W_x!iN0C<EabIOOo6iYlM0<3Ncz
z$EZiXW@!`6E%!l-^?Q5b3`p#NI;6MG687`sic#CeCLx2V?`ZJ6mk7s6i3o>-k=Ce%
zODr(99%<n{CBfFrYdq>3tmtgqotNcGL<!4e0!V1r{0tu_Ekz4bO2tG<sj|1elb4G$
zL<YHv6v?e|-?|=Tft0?VI)=KM5m<iIPa-bCP=}BjvQIQ*9>*mSsFpR2IQta4`l=wK
zW_f@dja|(X)dAJA|2M_1=F_r;M|yO#Z}Vp#N4Mv5h%NufSO416<Z$e%-{WY=Y;D1N
z9E#WG@*%U<7L1c9e=Gijhyz}UQbUvf`|_Q$2P1+_zF}R<M`88PI)l=7;bD}7^GL53
z@9c16;U>e)gqsUj2FH8NYv4A(ZHIdSj_>(L;l6|G6N$M3TrS*dIIhR+hC2-R9b7Wj
z6|&&U;5NYRg5z2T?Ol$An+dlBZX4VIxbNV4Mk5T4_knGI+YYxEt`)9dcid?OR|v;D
zrg@(d@Ai$xoMS8;Z7x*8t%utVw->G%E)L&r41uHF??SlsaJ%4+z@32WgBPSUxI(y1
zaE)+HaBj>;hQsB+aa6?+Ee@@-oqiV_=~ftSN@*tzuVfO&_a|He(GFD@p97+J28KQf
zM{y)h8|ZvT<ITEktW3i=Tvs>_+NFTw0C^whAuwwI&PK?1j01HVyAl2uz)FO_jCflB
zZv#$QD5vEp3;mSOk{P6S;@<+2#=M!1@=@OXpjQEI0Zam9zKqZCe}abBN23t%UBF_%
z5rCABe4d7*yknu5d%$c+YkT`<%&qo*iSi&5G$G-~c&m{1ThKoEqP_hP#;woaZ*Ttu
z^NuT^pr3=zJgssds_6N9K+>3(RS$@290Q&EHq<%8C^PBg@il1Y0B!|b1jr!>)hjYH
zoHC(FNO}2A7YC)i0oVueM(J?!TmnbhcoeqjukG#6AaES6HHu0>8kBP%GGx6oZ^q@e
z;`+b0xBvPg=wW_)`;L#$7Y4Mq&$|`jueG-qATs$PTEMYAF+Cya^jr1Dx@7${19Ga%
zGP8`-Jt5<=T(^LJ5fb-9f}a3p08av)<z#so?=#T01HJ==CW1H-jbSF3JcTslKxa89
zTN@n9Rrf)Adttp{G`{n%_Uj%4)AE0{AN?HoW9{wh&@d1sP#<934phoS9?X+%hvhk;
z!zc^m+1oX7=F2;%0A!o@EBKj?bf%etjF?vw=sN)CLVf^a8<dm-S|a>xBbGc&OGn)i
z+T{VM9bMk|P($LDJZzuT`^TWgAYm^sAS6z@CC{!NhCvzYK#N1Al?*_=>{F09=?rJS
zOh*S)c)%Nwi}_MdEF<Nlo-oYG4_zm)CC_|Wf2<d_>nVVbL$+on!mkhfywYJe!pPIg
zm%()5?aRuSJdvcG_4FPf+W;YP((U;&%{I`sqcC$J=+7}A5fUez;dJ)$vTPi007NFM
zeOvJ?`MyCM_C<6jfy5a`URE5Cgl5$-!&v9cgJFaWW10Q|9G{Iz9Wb7~{y#z3NYIV|
zvK^2I(=ZOl*~P%EF?c`lXMj^5l$r4uXCY`M5bOfzeG}jS;H(plla#@dnGjJ#Zpvqs
zhmd-)WM|$?$9$6DwjhjSF~?-~edf!!4ClDZ@t5N;$77Dm%$M?!58E)uT#mgQgE<y+
zOy=0!fH1Z-@?$)Xw;Xpl{&F1Vc+7E`<1@!;=4q7$XqRI#%R+r~jKX6$pi{6BxiK8J
zUjqNlfb#(V07!Z1m<MIzHCD}lW1z4$WcmhR32=xb{eWfT_&OftXhZ+|$D8f#`%xK}
z{to>g57d2Vi%f5Cv-d$U>(9e8pt8MvNE612e(mjtx8RQDU$?i@meDZeLB3WQ3BkV0
zv6$uI_{(vaWo6xfg_MP1)N2wP$6k)X9E&+7b8O}q&2qB5jK{vlahKyS$KgZ-a9rLF
zI>%|2gR-&DbFAf<%dwYZFvnt!$%XZXjL{sc|Ho&7J1m-~cA)&PUn`X{`C^#5SxgHx
zJod_?vs~XZE*^!y(Qsqn#=@NocOKmN#>F6y26;5dqd^`G@@SIB85e^*2IMgyj{$iM
z$YV$zZ(I!WSdhnpJQn1!AdekyWK5m}BhT10C^ROG!rvIUbK%a18*fY+jX#i(%_L+o
zX*5Vc!G020PXgOXWAO(REGL28BzVt-_dNWa59S#aRZ_N$QAP%elL7u2C{70Q$Ut#2
zkWU84$Rh*A$v{3CC{70Q%0O{4Kt^#gkY5IhlYu-lP@D|pn*lQN%|LN7kaq@(lOe^)
zEUGD~C^Q0E4HVB3r9&O(EiNjZUs6+@H*aZPacLQpAqSXG8ZW<~ptdT%V5!j|R!53;
zjhB@sucjh2A1g}+Sdk1%D18T*Iz(PrR8_hNho%=5<yBMxL1s+c$%*TQN)4r!)c}jH
zP6vYoxL_>wnz6#7GHj)&o5vRB<HoQh8WD9|hfBq(J3Vtf)^Np4?eU|i2~kcwAzcm!
z4@bKP8dH0mkKw{HC!o$hM+6UOd+Cjex&Uz^-41%m0<Zl;K<9iYD&%~1ly$xupWZvW
zDRTzQsC(d0wpcHS2~Wfm+{TL-hxiDBTpaQ6SQ$!y-+ToOZdN&81;W|0<4V)D4FuOD
zAnsZGXP8p}%uM|AT!DWP2Z_49hXA}0&OZTM59hetbaDRaVr)t2F`P~C-@?H2O&2Gb
zE^?7T6y+%Vk1}wa>Ei4&7>Jb32-wfS@urK@(qLeO;cP{~#|-?D>Ee7f80a;e97LTc
zt7C%c;zTwW7-=|<BX9r%alC^w++big!+8RMQj{#y#c8zjTM$ITiKdHlVJF{iM5+r+
z7bnI}7kG&z7n&~4lARGCNbc!S2MJLiNRAhwAS7^e_@{7=i%l0N(?JoU3}+7nhzK)G
z7iaO#ULZ)0lS~(<-Oe*WkQ^tQF3!Q7{Xvi%eWr^Oa_3nfNRAn%i?eg*U=Sq7OCS>o
zJcc<4t->+IbaCDu6d~GhrXcWQ23}#h5~=wqD6~~)qYx;$Pc>bf?K{r}L2}0_8czM4
z<3W(zFEw3U2XNBZf#g0NO^XCRB_;Pv)5R46rw@dund1fs9MbsE5V8=+3$Pq(kz<HB
zZo_#c0w0BVjzv%|SzQf+$hX*Zan-?j4G1F65+o-f4+P15DOvytT%?r@)|oCYmN<(+
z5T-Xkp^R}I2*UJ6)5WC=XE_MMbeZYmI)<|f1Yx?|ba7F`i4z;fIy|Wz>!Fqqsa=M1
zsm1Rm)5Y%YTyF7Ofs=Y9thD&m;VL2$)>!-+OxIirx!&Tj(sXgz#JR!Z0XxWCLviwD
zRb;9+U0hIc-VQ=vym>foM#~A2$zeEoCS8iO+H`U0#mRRXiS0LCTr+ZRwPLJ+CK-d3
zDq}{K>DtfkvJ(Vpyyd2gOH9ruK#=Z#HFV7+Pk|t+%>h#qeg(pQR^Tkt#T6ds^B{<>
zXG7N{yaa+Yuxp@e5?%p8B+WHlTnKXR13|K_Kz%XW-+~~y%rRYDCUX7`1j*%E)5SF-
z=UX61E_tYP5_s}Na+wQ-lfWY>l1n}WBjE!Oq#4gcBPHQO5G315NXl$K20?NufWjH0
z1q8{Z&~$N0N{(+!E=3r(@J{OFcMFmWty7cm4-h05-a$pe*C0qOmY6OsV>$Vao^;Ra
zO&8bhoE+XImr~QkMJ}fs1j*$()5R4prxygtWdXW-JP6SsNG@fji)&%dI1nV4g)pKG
zLL_fTaXV7Foe5}k8;t*sZmIb1l=UNH3<=rilQ7i5hk_#-2k}1;{B8&Ztny32G7$)@
zj9>IPhd!jjO3oCF-yC$u_W?X6<Q(>Mh0PsIZ1`4SMpQa@Y-f|r&LcNpAg@Zv%ct`y
zle~O7uaXhuU}1%lmrv(4SMtiB$jCWY^14LwirIyHrkc!a4fDF$!7?pLBd?ovJ~fjB
z`=u&{lHq2JsS@7I5`uGy<l|?Vj2IpTnSyzMBl|9LeoQ#mWRcfnmbR`U_PE8XKrl;N
zQr0JQSfOb037wBB&o8v@a?6=cFe54pIesR&?qaSV2XwbYH1aVu!desEeXMm?DY_F3
zr6{W;zrRvjMidU&$-4rs-6X$%hVlDn2)}<?{6yM+YH1a}uY{jTtw;O~tlVx7<&TI%
zX1G@JJmh0O4}wSPCGf4oPzb@zZ49sSLqEV|4w3N#7nwj2LrR$#;z1{kmGLo5$O0gm
zw%oOYxw64MfL?ID;rha1J}ejKV136(gc}H#40kr%IdH?_QsG9!jfKNpQ;dRgk>CQj
z3*jcgWx!2?n+|t597}s8@we7Rjs9p|R3_l&ch^OYf&Vi2FNeDgcoyIcxH9+?{;)1;
zDE#H{4+9(yR|)?Jz!bPD_)`II2ah}8jsw3FaCP@fAF6x0;&*q!|JI++HMRhrUOme=
z1FkPzKe#G}Z9MqXGvR*|>8gSEhrb5!ZQ!+l?+w~=(<bm=1pnBof2`dM|2qg<4E#jZ
zEaS((zXrSw@EgF}0kaVH`0QbmzXd)6{#}TF1>lu%%fP=Jah?QiCh+CJD}ZOie-r$b
z@IQ?(=UX|oD}Y}Qyb3M_;qU%p<B@9kHzGV0_(-^0;U5La_E`tF32qzQF1SXxgK$l7
zZE$#lHF#NABHT#0bhs?Ixp0+mb#R;Dw!!U!YlJ%p*96xF$A%RLmk2i!E**|NdM;cg
zTpipdxNUH|;2Pl$!ZpFQ!Lf<P!6m|tgiD8G-<%6q30DWV32qzQF1SXxgK$l7ZEyx2
zt#NRPa3kT;;j-Z7!d1f6!EJ)u2Db~Y5$+&d6I>e{J475D-{nTarNd>x&4uHGy$)^@
z+%~vfaD3@y-%8^@{9Xd2w~@NQkMF?5Gj%v$hUn$u27i1$6Ms|3=PNStYxxg9z9G|F
zp>e)D(Oaa`^M#ps9sl9S_houFYn<<V^z!;y{`g)(e5%f`34Y?s;rQb#A@R?3{G;#_
zzXy)LW;o)%B7z^^7>QdexUKLL=X{61HaOy65Wz1`$B)zUbBe+682;lA`O^Crwgvq7
zcqV>K<9zcXezumMPix{X);)gmpaz_+!}%m+IE+@yj}LR=JvGkJp7__Sd;IupCq77r
z^M#stBk26`{g?PaEk9pfi7(PPUp<NcM&o?VA%2~fpHBngQ_*(#<7*~y9vbG4Z>q%q
zpwsiMi1>{<Jzq45kJIu0rtu9roG-QvZ`SGMTTkHk>2RM8e^8f)QxwL(OymDwd*1>c
zRdwxuW|EUk5+I2NL`4Z0c__s2P^m<Xl~fF*#mZoS#DD}08X%QK@qtpJEipc#wJlb?
zjcwYdN^PvRmsZ=NrWF-?(~1@<R&23fqEu<cTUu@V|NYip`^-6$nGmqtd;j0P=bJNY
zul-ni?X@3gKi6iLia7Lk%ENCkac(i<!x0Q|%9RiM&BXtz@v#R+{HGe8176~b@bck+
zhj_h)=O~i+sr<vk@ehrkRd){Yh(E$VJRA<uc(=N<_e%UdmB-IuCO!r)pF(w?r2c=Q
zI8J!W!_fu(e?j?YUzhk$b!S(X_!!06YbSoC#y3oH)_Xo2oY2^=^mMbfbEbx8_nYp&
z)9@Ui67S|89(J5*oT>hQr}%uuPgML3dcwo84~^f~_}CjGK3?;S9bn>YWBH6${Li$+
z!_h8{DJmZhLWtj>{IS<c{35Ln91Ig@mzNKRf5azi{2a3ozg@#~$U^+z6zAxWIQxct
zID#SmU3Ks8m>&BtnEySbGlwM0mwgyMjMjhVkakQ8>C%mN5*EEZ@qFG($U6!vV0R_n
z8}Z(Sw;M0{Wk00=FCL15R_uytD%iTwiaj;;#l9P@*iBQb{?ZydlIUPiBJBC^EM)h~
zJ{(@yGlB7E3QOQt<8!xX3WsZ8e!}mC*@owtK1+KJiVUl#b+fc>*f~h=eLi=FwQl?r
z$Gbg-xWdls2+`-PV3NyQ`%apkcH}Qr>>Fv{soKI?=4BtBSOtKr`OR_(os{t*Dn1@F
z)GZ3n%yXyX$k1$23q3)!HRtSchd|A58O~kJ$APB?DxG$V-33sod=|Wx7Q6FArSKV0
zvs~<68Yy&#iOOgkKpdHNi3=^wIAk|zzgrB?<;CutV)xSrr@jc($;c;)-AfQxv0Lej
zqb6}2r|lPpW(gnAtc_ERNqC<R>bzfZMzI@(!s=r8bO}?Hi0%SRTD0Mu872cW!(&xO
z=O8fjW+xF4B8FaZimA|@tzv?r=`qEwk<lD~JX1Uw6-8#dBwXUB9l_x(l|Ju({1H=i
zQn5Q#n4j{BJF1XzT~MLXeKPGkA_PQNwka0lr~NU`_F{y@&PIgDwj|>6r(~82?E;^~
zKINxtQ=$?}IW>aYGjTRA&z#r`oLoI7?Jk^U6(!*jo>Yq*Eo#oEtal4=PbSXy>DkAd
z-4Szn@DIoSoRkx`x)CX-u@kUaP<>7X-8gG^Jk(tCsA~j%V;+uyhgd{|c%^7e<Mn8q
zkfTEELLB!jcF$i=u}+45ZaF7=6w9wsiteUiUTVHOBIO#)ae<kXEF7at8NJ8N%8X!c
z4HUA{!e{3}c{*r`j``y^@c{1BLTWsBp^7|fp-a`;ie)TtGclP73n%TnK_Wwu4#^JC
z8NP{{;3vh1T#7TkeTjtA&{R2>;rtqB?C?CuZqkT2JcH-keD1%(c{UC$tpE9O_;lcY
z{}}YQb2wuC{{-jR{5bSb2mIsH?eQ}hfzUMy;2VLrDm}U{25$KweoP#WAxyx37jPRt
z{jZC|uZZ(M0Zk#A_SA6-3l!!n<oPnXQ|$p^p28f3gA_&-a_NQs*u)Zk2p$OeEh6NQ
zfsjKBLJm0yIW!^Mqj0yvT?%(7<j{ov_$epcrf{pmE`?hZKB;iC!p9YMD%_;7Lt(qZ
zHih>q+^Fy#g{=y2Q@BCl%?j5kyg}g_g$)Yp71k-NRam2Nk-|!a6$<AnoTG5I!kG$Z
zC@fJ}tZ<sbsetI;q!uZhpm3bR0)_bsM<^VwFi&BQ!a)in3R4vVNIai}1B*hL!hfJ_
z6aSmS4GM2oSg7z6g-@d|LjONeI8WiH6;1|3oT;M}<|yO_2-?4+@HIfDdz<1<D11oa
zy$Uxdyhh<NK!%GdK11OYg`*YbDs&XSi^v)7w`2mp7Zvgx9)CE8EAT4{n-x-@Im2D9
zaGu(iDn3>5V-)8(RsP;*ApG_y#5rA|^R(iRDr{5Or0!QKzF6TLh36_P1f-D@siZ$h
z;Rk3-iNB@rML;@nNKW`wwa58h@yD~l^k1iNp~7<j>3@{s9KzGzKehdMN8xJ<w<+Y%
zgW)(OLjSibyg}iW3KuB6P~kK{hC5#If1sQ){2L0p6n;zLtqNBFGTan}qX9_*TZ{xg
zu5hEmH40gO>5ui0koAf19fdyx<c)!Bvwx;$w)c;yncuGIkO}>8&6!IVH1C7?0}!H_
ztEazIb3V)*_R*eeh?FbMT<-ge`r#_wi)!Z7ShJeBQdXsAPM2|P!mwQ6;_3*^Ty=U+
z{ctJhIW=>ArjULh%x;*6t9cL1%tP99al1>+T+6;$&0M;!P%~GmGc+vMq4%ggm!Q9|
zX0AS8r)DlZGjD}H%txu2%gr3V)1HgT-&8Z#k?YmWCFHZz%++Il!|0z2$8S;oFmuhA
z(^fQd6_`V2nz;bXX%CvY_RDfaGnai|RWnz7kJhws$(GX$^uyI!PVLdmh1&h<pKG+7
zGNV0LV>{Ik7h-3qnQO4`s(&uOKB)FwT;=o*!*X5qP4&Yi)w|W6i>I72pdYTAa<3iD
zTr%Z%o@OqHqK_eFE`5$yez>MNM9o~z>{UNp$^4O;xrlj_nz?@YNi}onlJ%MNxk&lC
znz=stu$s9v*{Ei&N}j7`E=UemGuI+tRx?)}?^iPy99iE<pKFapYUVN{r(|i*6~^6~
zUM?=Oy`Vjp5z)sIGglBtshNw1e^vinH~giVxn%eym^oF;G4wb!bIe?#W{%6b3?hE;
zJ%Cp+b3DI7%>bB(>oW-TZ&R|ndFU<S?xDWH6H(N?MSVT{<BG-Lc)OG0wlG!4HhRJ6
zZM}lo+kI8d-C5P#B38|9XVu)pRm}}#)!dv`&7Eb{+;Ikf)93|%-0B5any?qFn)}<T
zxvQ+2JIvsZCjN0d8$1)`A2+=r1X2ERYg{$=nSne}F`dEi_~ULk1f_|8+<S%qG+}cZ
z{NfKg+Ta&|+~$S=M6n+YaS`Pocda2VqWt6DHpE4gf7qyopbW`?H1LnR-Qb-jY=?tS
znx>E{J<y#9|G3o;o`~{~8v@}<N4n982L54>9sCf%v@;&+6DZ1$J(EtKG-=Ybsb@@{
zoLHa0lryJIGrkvPQdwwY!}2=cbt_IHJp!9ho}GMCj@kc6^n43#`&PIS;?pEAs--*w
z(IYS$b%Wtaz8>unnoA<<2>9UqKD9usyxgFD?ptB_Pr@yak^3H4dyhSPpX~hpSK!%2
zWxXtp1_*d$ERAI6_rHp7B%jM6hq$K?jb!KdN#oW5(nxlGe>?=q>Fqx$A6p?)HTK~n
z+4=o*(RT4k$M-Pq=|dyg`F+x0``14W-?@4CjX%F%0vZjlkMzq&|L6A~2aN*IxM2V^
zRxVz#bajIB`_QW-G*o{MsCkc19)^!(=l4GZjSCR0YXE#CJHHQ|Kf*_rR1%K|8hm{8
ze}2CfG-?r`2s9Wdf^W1I-99vuo!{>Ujb9^kH!2_0ox!}u<I$kZ@mcjUj}9D5j)PwW
zm-B8j07+sFUOuG3mww5U@&(htA3eWc(!(G)eyz&tn;Z8xNB7~};j^VZOW=ZYrPIsz
z@mS?;6+r!m>-T5h&dxoK%-{Q$wNOdF2gi|{^X`b<X7UPF9dK~;_6_HPQJleSY24R5
zr~r46r#3efM0&1+GY_hAh9r(|KIrx=fO`_k+u_s;KMrokaI)`s9;VHx&)|0V?RR}0
z^yFmp{^qF#%{LUJK0BizLRZ9$yVZB}gb*4LQi4b&{+Wj9rAW_(#>|7!<$G}mn~93<
zot}DY_AST5spna2+z+yZW92+X+9TY=lFn24hPUxT5<=j>&Ikebwfp1%4hQvMb3bIU
zy>|k`b(NTVD{y={aJN9yUfeuBsHHs8T>fD*ZY(JMumveTaB8TjE0Rc;{KazKIsQDY
zo^GAAWdklQhc5s98_M6#zWpd+6SpAjg(?Fk_<?6ORK0y`>DwKl>|0PJonDkjITGvF
z<BtQfc?+waSzcGS^zy}Z`SpvhLd(Fd<N3>0U6sG2cGarYOY={z$zOKWsuh5vMvcmJ
z`q<`AJSV?qRpVuKOIO2B=0`u#fY0`6OIEE|v1;XM-WU8xt2gJd1x994SAAtQlU%*h
z0U!0&4V~GVY9d!cqtoieE9&c(I+}22xwF{03<q6S;@;}TS6!8Gi@DLEof6wTo|<Tz
zw;S9Uo)+90o*o~ByT>DaExBPlV+^uf28?WI(A!{*@$DMFgeV?%EyAb5kn(-}xv8vc
zGVTgRIeHJB845wqaKrD!On<=Y_xQ28KM2P7(y(FfkHkJkpTKI~Cw3MwC!Hfcj^snp
z7il{&q~vb+i=Z4(fcP2?OhOZhIg#D?Cx@Zv%e1YOAY^C_riOtlg@(WTvHB1rsZ@sQ
zgoR6mg)k?0Gq8kx@p&^z-?qPymprtyThVAnh5qLca`)xlv}ox||M@}T>oZ_C7jF$-
zVF>W2c=<@00B;ivXIBA9gWJsb*f?p&Cq7Qbb*O$wD^IAIw8SqTbIEur+`o^Pekp_k
zym<PH%3I;(w~c%yTi<;UMB~?BEkDfdQ3!9{`Ca70EUg2y_A@Y9_Y&;F&YiIBv;O*D
zu&f$ua&SAE9W^Wwf!Wp4Ged4hX5`IlWK}Dp80$+z%%W%*m%L()j7lS+@D%^lMTxtH
z!&sCmhOWwUVHGY;d(X}Iyf4TQ1UUw38KHm`1aJ?q4dP<iG!G8AG&qum<wvS^g^!H1
zNE`e#xW_l}QeD{Og2K^o#O=VNmvJ!<H?hK;jm53u2#>3SQ@|1Icm?w9mk2*YR7d30
zv^U)|5%w%7k>yGi_INLIaeRgATbE!FZfIs?6jswfxsdk_V?onNODV*{9z@XO4tfL$
zky~+(ZRM&R?)gRZ?vJpv^_=V8=?+>5lEr3y>JH>9>e%4VU|r{0(+)j|uDZ<S;JY-K
zl{gjfH(0k}dBG#@UxR_}>j4=a<)xj?03LDgf&t!Bw<x?z;q3~~RLJ>E`Wvm#&S$a?
z(>{LQ@_x1FSYik~kf)I_OJf9x=@BvShP{S`jnE=Jd05}9*{S}_>Qz@YIMwz`B1-qX
zPl;ghA01p}y0T`~3a7dr1Hy)7hcym9W9k_?Y&PRyITz&{2p{e^crbbz9LExJ7|Hig
z#=*ZurrL2Z^~g!zIWP{cgATx}7S~M^QT7=J??!k!bzpqKw%a~n$$RV=HrY6McpBzE
zkwLrr9i!+yimR3g-S{yZ?h%&fdE1D4vB$;+mXBoPVA5EJa08){Y#h8EG^!zpGFB=)
z6~~xu(J-3Y0)yov**N%(EQWNPZ%bwvv;Oy?k!&1H8Z7hu)98O3{5#Ot0~!zY%SZp?
z;GZKu3P9ryR@C6*ON)<>1mobhl*ac4KqJ{WcnI?27R3L`0B9r|2Y&%Hn3jd?-3K3E
zTKXRcZw8HB2)hn67^ny3L#KcG&`358z6WE6Yf;83(bwdYj}N)FZypWuDcPoz7<AzG
zejNT-RW<;&0kWvg!Rvo)JL0vOe#e8DF%E9p>)qhU>(8j7>t(bO<_<Jq8@M*w=hDCV
z(B-w@ndUd3><g-e_Vhf4PR`CMs8!NiqcDQr&$wx^cUkt0TTTbE4j0R9K?tff+AsI0
zO;<0pkjvDJ>Nzs;CZfgoTLzfW?zEtM-=DK9aIxM3+<FKKy;N<onQ4Z8HNPII*qvzJ
zu%6^bFinln6t=&alyWu{96VXOdUj!Cy0Z#*py66ZMhg{Gdl981YfqnK;c_%w3FqCb
zW)o+up$khACwl58n8ZQF8YUZ<xE_DvdU`2NO`P16=DWkucL$(c0LaVza!U_1t^JT!
z|7Cx!66|4c{1kNz;^w;j6p@H~U-q3R88ehwL87N1D=JFK7Dv<jMRC@Cy$}%W<gAOP
zGNB8~5BN0<@{TwYDES?L|D*MciQYXZ8XM749=HILmnl~5YlcR-#-8Trp62r1n4W=Z
zEXW5FB|9KFh;hes+%wz6Z<;6`+W|@L#xzM{ZDMBfgMOeA4Y@3O!(u^1cNoYAG^Fj2
zY}nCz7YaZV?kudv1VeBh<PsF{|IK>RB>#$9N()-b^IM`LS{jG9tj%kw%7G$4%nvn}
zcD0m7L~&XdG@3P6^)#>D)7-ebIl8MEcNdp$Z7$#bZ0R<Wo7*sBhU+Ky^7_dUHcw$`
zRTx6!+cxM_?EMuo<Jr<~6R3MSRChMrYrS_PdqEf1u_jWER}F8m=%!;LvFQR>;U-#^
z9FPZqc22gNm~RtXLre+>UD=?ZjPUkOX+E||0om3I#TaH1Q0Lyd#lE|Dp%k1VDL7=9
z&+c;#w0G@UJ!#49&#TAuO#bZI^UCwDrY?k4EAyunPAV+QAGf4#@yg35PAi&RSX4N5
z@^~l7_FfJNS1ez>MCPDO@A*hiLdEXbllbiVrHn`eHdehihpNUw@1nada2K8D?4!U%
zrkbTb3tc|-{Hme{8wKaP;<Y#=Q`Z1J4aVu}#dVEKo!Z59%djdN)9rALB^uz?krV{A
zIN<s{!)J0u4mH+GC^vNSkfYs{AvtNs56KO2gG4ws$JXZtJ#)VuPFVQ$FT~%WXD`d^
zGu_5{wTPL>!}J;_-<*Z$8JTWS`~=%PQ)nHIdBTqa(aZ3jgE18S5&sKAXCk;<Vm2F$
zhYHUDii^P3EEJ3f5jgkOK&*&fIrk>VdM0sl3s_wf-KKmBZcYko__v5h*+7I!JnCzN
zdWlkRxQBj9c+3lN)k|FGX<T&@*ZCS(t;97$<EoLkK4IeG$hZ^<4@KW(To;GvNm3&8
zE>?PL9uR)$n8w8vZo2W3G~Xsk2rn?_&eG?=ORrF-L_^EuB06(b*fN`fN5uuZS0x3K
zy2}--llW^j{#r@T71TxMr0)aOZ@?6aa%>;E)?9JNJsP2Fm2#a>zD{Y?{)BGVsibNo
zp6k_Zkx21+b*q$EZ_rpPB-R^EteuFl16`3&bR?<WVXpd<SntqS>*eUpoi+vA>F-X`
zLjKfBtgY%+Bk{CqJc}fryBQCJTFIR!A;B=$iWph)LeV1He#@8EZ`riIAugJNTH&F?
z#v>{3P`5?G(YKYOO5x}s^;vNbsXU}U=L&xhD}Qr@zwc-^&ldg!bHbc{h3*j+j12N0
zz8n_msWNMw!2l5{XWlfW9VMU!$^+jRg`|0Agpip^BwHYo?wtG66^;KfZ^e|cTcX!r
z`^ORI|8VR#-u&f~|J)Xxp8IYC+;7Hv58igXte{<Zx8s%40mwY!BXt#UqF{OiA7<`8
z<0G{VuthLE#1Av4wfRU60P?^ZA1T*>7b*Szrec{!d=d|7W|*?zn}?SV&HkBT(xW}2
z=RqRQ67x{eY~cLjUxk<QpgS|D052Y98LgN*YQ;>W6?4$~(y4V?^YLd`zw^qLTLxkq
zY3GMIj^xAE?bmp%J<s&mFl>#!=yS7S*p{%X;}6505+Ak(oENul_WY4`XT3e(bGK)V
zJoi*{gfBjPBf^E9I}q}}Yc87|7c-MBA6Fdxk<8G8KZPN8Qf8zFhd?mvJE=@A#loa-
z1Q&rFhZ*K$E8O8*-E<uL;R%WqOl2Q?g_)8r=45arZ679>Tj3Bn@f$AANKe86nPCSf
z#(T_gDHzUuq@+y@lFS52#+47<8HQ>vu0V>+a&s5Rl}4k}zTg(Z9hZ`2rkx|R=rH0m
z(ilv3kA=f<xwwnBJ>lFDj#B(Zt}(-1UPqT91dj5U3y`jpgDFE{#bo%eR12OLIg#f@
za^Y$6dY-x&B?nV*)+8kj2UAk6Gp9ioxz2x(UQsf7!x>ANd(wLT3(1kN$t`oIuXl@a
ziU{|QB_kX;{eRMtm%U`Bbf_G!ffTULU~YEvox&M|Q#b`k9WL7Hdk`leh`6&j6Oe-w
z5pWvBf|Z0al)xrA3zJpmegZ`=8##vs6)clri6M3{2kKyWFz0GLm@}vXbE#bO<38T@
z9P?3l@CjI~!Ma04@m+AwhaJ8oTz6>KkH>?we+&2leloDWK>R-7a^xR4=d3Qo%W!Dp
z+I!R=?J<Sj&N*p3;_rU6DTpF<qe9WQ0(`XMY^UhHN#Q(&pH_I9!c!G~2*NPR`4Ylb
z#cxwMSz)2V(F*N4N0;L53U5|et8k9OsR~CZMEWJ(F934wgY7841T-@ZpH(y4P`1Hh
zk9LoA#hfbP#SAOiyGDDq;h(?@qj_WnBrv)$R|^>{ySXzqJPC{)?7iC67&@)GYMDQz
z9kl2`!WWI9X@?I!hdy4xVbcAFQ<CgIESjeK70tTKWy?R)xVR>^@Dji7B1MOP`9>x@
zACc(!Rt@$r!ylpT3FWBAf$TrL0$mq|C;6`BIO5H)hp_HakMOO?>)TM^kj>uXXScdq
z*KSyt@WkIi<P@2?;1QTg1u5_G)3a+8$P00gUw4Us1}-Oe3OF4bd_0ntMzTGOM`_r?
zvw{SG^`Vh$?S?d7K!AbJNVazK8fg3!>jQsPKDO5zH8hF%NVax!{{<!uo7r^>K7G=X
zZ0&|LSRebR;af9--}roa05lFD#vk^}NB?U#Uo10y$VWdFOb9SvT6}yYSiAY5(s+3Q
zG?J~|yapQWi1e=mppk6t=CiX*S{|6wUt0QKyXgRpX{a1spg{q&qe`%S#^aNRu2U{w
zxs(p^`Lg?yn7<o}vndzT6(gS2Ufb)@D1dzq9d+$yyyCaPFYW1({ptIG^ShGTh%Gtb
zi{HQa<dHwV9&wll`p8;NMGw7KaFRX`f7sYquB$q&OVI{lT7TmT1KS!6>{x4H=PiI{
z)dy3Ja-jw%zZaD5|8w?yte7nLIjl=Ljg4tlE{1?u?uu^wMX@TATeSs$OE>pijj_?r
zsvY!(zXe!hkd>R9D16TUB~}ui1}WI)mdaw0lIl5Ef?*alrxbr!XkpA;g(wGcF8kz^
z;_uR@Y+x|3pmY!2H-qk0V!LVJ`jB2_;-^rV$VW-4M+D(2B@(1Us6|Qbc~E-}YbjtT
z0<YzakBP1PB{BLyf)+e)e9TN0n1fx43@|g&)K!sa?tW1$hej}mhWjr(K?JRDpK9{y
zJp<c5Ft8(Kg4lOv0s1dSL1bKk$mI%^$Rw6q5GCXp%Ppi1dBoi6#9y?dXDf6s@2rAw
zAYO!)+(No?qVO5aEy+<O)pM5w+s0t{%Prl`n6V<5Q{G{73x-&3b<=%2-M!pmaeye9
zTPRbxj-P_bEuRmweuDXLj}FM23`0UphS9rb7#6oohB3-0y-J4Bhh`Wy?9$U9%((+H
z&-UR~6l>YkwJ6yh)PCw$^c0hCRR*>#HLzoaft`&8Ze9zRtezc!M4qKY<LX%>c+ahZ
zymFT^4_7b`qn$k&(A#|&mF-v1yuGu^6b?oft85@{DjN*3?6U>Smwmfq*>?aWB>Q@p
z!3cP;%H~Ca^c<wJA$Jd{vc>Hg=33c7>)T7?OuoHpVB7Bv?0DP2&i4%5`~hJ9_0G$^
zxO&%!6x%$5sR|`BcWGPCENJ{cjLMfM!4g%zHk*4e#B%RYDjxz4pz?X~ARz~-d|n0~
za^-97?|YVg$*)k@HkOW+tZOSbup??<XO)4QmjWJgRYR$?Uo&P~CyIA;Q_sIa)BesX
zG;}#^?d0o)4;0!X*-gN&La@C=o$@}EJ&Pr<{V2v-YN=4B!l6dTvJB-%zGpe*ke^7H
zmjT-L(yMUx`)9H&&WHKB^=O@(k6jZBqVyu)U-OOPJ^`}12?;9E&sPq1HFTqAEt@sE
zjlVheTZZZt*ptutRo~<FI7Wb2@O!5D^uoy|pI$Ps<5dGYe{bOCw*e2cYOy8MJYv3~
zXyz{6*s~9JAndH_V&d?ZD_s%!<5xQ;ia^2Kl6<vax5p%~{V3*^#wyT8Tftz6<rb>q
zf>M-kUv6!S<rZ3U(>%)e4*^YX`FsSvZaYW^sW2HvUz%a~PURxQ%$LjL8JCP<ofDsD
zv2R)4XPdg}%|&CpW2|X!lJA$TPw2}c{<d-hJE8`5RsklfNBi)}O58OB!%-x_R;HeX
zxS`}QzE%Yi%rvRY%m1pcmF#4ikNq9epR;uZneEk;2<pmKTUW6A0F}x1`?5#cJMHES
zpnkkJ+Q|I_13OYq61+1Du>X4DN#DpPVONj&u&L)YT#a%VUz=}AFr>OqR}W2-X}VyD
zRfbq)*~~hiRl_!2US*JCj)47rZDa&7zZ8v7KV?5Y4`OA15X$}>Q})-fiIVa^GnN~9
zY^{9bqgzIa&^O+0VA~fB?05h$S>Z?Xy5MIllt`G@+_MSlX1V8=B)X+%32sk0jB-Cg
zf*nq|=f_ASkH*eQ-ur0SFM^SLoDY69u+_~g@(7h<O1@X<EsAf#%tYgxe#<)=m)7(1
zjhts0*mkjj9SZ^bFYKPQ;|ja<iP@-QT+{PDuJ$>Ma{dzumZ+SAZh}vAtem41AEcav
zLjUDFR>WD3AYmP!*an_9-uNWdmTP{EgWuz%?K`NpzCY5){Y^|lu#x|xfgSG~*!g$B
zWaWI{fE)R%aqZDz6!vo^*x?j*2=}lHyUY~iXxE2d*97HVMz|%h9#ElgFDCmx{g!vi
z{qsh?8^3UZk^6lHc6{By&W8c}FZZ7G<I4StEo^E`xi^jcfj=Hr;eSekB`W+V+()vJ
z$33&Lt&!Tw_pJh6*|*&uZP@!S|HC2tayIhOSR=pjWX!Iy@J}?b<8%W%&j$1gf0Ufa
zE<kP9-^;!TQzN$1pFQpceDTo8nytvv9|=s7VZ4k+G~u_nXC7`Q+gW8r?VBG%UIzQ5
zlG#e7XQTu}qm#q#sB~y$rfj}+hY(gep9!*RJHNm?=<Zb%bVTF63JFM=1}o01`8<HJ
z`7-p0MaxKhem?|@@wJJp_X*i27KYTyhVOOU_&pyq%17WY8b4{aarJQ~U#~Z?qshR|
z7Qnd56-9>SmLrdH$&WB)a(9P_DlT_Lei&%QCe=(P#Bvu^BzI{CKR#_eYu;k+K1s6p
z^UbHhQ!sa>1auoJJ?BX<6tSFA{N-{kPP$w3WoAvp+-55x46)u;7g<J0l!-Uf40gqG
z7d44Pj|8NQ+<jhsV-WRDX~be?JU;KNAjshOs_Mn%58Nj%uR3EwPp8_lN0#&%pCqim
z-@r^d>+g3A?D)Qcoj(Q~VEqkLRg{IC(mk=vge=VzTh->ChjH88&MI5ya=1(PqUTWd
zF_gYk_JwoC)eGHogLp@I(HR01E}g<g&8v{{cMm!OoQkaCK>Q`xJ`IFZ%@r8r#aa|8
zi0~_Qw$g^I2!@2S%sPNSso?Xw(I7n?oclgVtd$Zy8V5VZJb-M~c>^*A7EGk%dnas`
zl5f0~F9E3{-$=y#cq$*7VrLRBGs(gui7+iyBpaai42Z-hgG3IAmC9tSXmi5(q=C05
zORzJ6<?KoWJ60Rmc|G7EwI_k5!xWBKX+y!tUCQ>Os-x#@T(i5g%C-SH<tPNP(uRU2
z^AIRn+GGq7@2LMe!-4k1Hw7<c1{rHg8)p%`(uQIZENwDUfM01tOlbpVGTsZx(gto#
zHf^QBls0W*Bx+OIlE!LE8^h|1hOf;*c<>+f;w2F&B4ofTaAe)fWgj7Fjcod(kf&Fg
zOo1cW05z|``BLI_xrNZcxQUfHA2$h`w;4MA^v%BvN8a`6pSai!!g4p*z>c8?cAfzE
zuWsL7`28WZZ}*G$Lu%hlmLE?0R*5olxb2%4>tVNV75~!qt->pAD2TS=477doSc#Q2
zQqd|TRLt1q(Au|WuyKOr>;(fmUNW%rRlp<DzE!<(NbOspct51}&1CoCv~Q-gZMF@E
zuT?mB`{u=J48Dfo5ZX7B%m1qOEmq)sDLI7p&EqCk=6uQOr+ve4ct&i3Z3G)QwsO%t
z?<l5s1QQ>$D22;j73Oqt%BlJJrnhi%Yj<<`uIA{D?9V?P;z21KuiMpf&xUsFhzLFX
z&)=bcBdfHSY$Nra=G21b*#)Vf0X0YXpAB_F@BJ1>qi&Ya2lqS%SEBb`GC<GEaVL5&
zugMq)8@Hi9*!y>9V4kaS`*Cmg06ib|4m^K7foIBkPXduZFmnrXdVYgBuHGvTJ=|sc
z5pK$%hs(sZ?U=c0eyXWA4f>s$%e%AJW1Q{u;)MveH*NV_Q%?#`*k!L@LTmmZ$I&jW
zqmoa2gUfNqws33qEm?5MzSX6tsrW-WQDit<GaqI%#!;MoM(H?uK1x_FN+P`y8i8?O
zc*dnw&$P~m@pE_|!@C<V^@vj6EBEAo6)%t5#LchC*~7|M2`^w7%%{}jPm{(SB?Sl3
zUHD_K4%;Pg?odm6cXRo+=IGY!&zGQp;{aew`8JgHvr=qnN3DfUs-Bj{Jxnu5pkt^R
z42511s1h3liZcpw@ISjCujk9JA*=R-bD2Xtq@de&Bj^tgE9jrlHR!$Zu!6pVer)gg
zhZVG?7eT3&_t4W?g6Wjr7m?|SgEB|A_akNqdv3w-o&}h+?EU;lrBZ_xmfrI|DwTiy
zMbyn{UF&Kt-x8>6UAC@0nZ3RaarN>K<&Aai)<LGOZSPap&W0zJyX_E@zpeo{=TdP@
z6|&%;c-kwI)by(M{z_MA4l}nd1<^LVui~W+N}l4m4KL464Mr`v7_T=UFubKyKOT&N
zHM#V|=IDXu^8GyHTaFeWN7k@2V7LfXpK~BN<hg<f29*`h133=?=RX5vtND1aNyy2?
zJ70ZO(pL$p(tK3V$`=p~svXlzTH2g^C>F8?OV8wmA@C(K4nmZlCCn4<EbVFP8ZK(-
z{PV>)yMOTXgg}#r`Z>>#gIGAM!UB^tcR4e`a88u2*mj0-PfiYuNM<EavdiYLVk-h*
zOB017Oc`p%zaaoF=Of9L*nNdin!q6I>`zL2SI|<L-%>uJ1(R-#c`a*mTB;<~Oh4N8
zs=dun=-0TXIVvA+o`nXT97zO7&wmQ77w|!MwKTHz8fGG9nsNqVLL(>dbJj-A(dRHD
z^RS+*>_vCe<6XC>miYW~RL53S+CwObV56G40UoGW0<kcUzz5??eM*AHim0*AO(g?n
zCr9_r((b0N0zGOU*xzti={K`tAkP_Oq+hs%v`jvNYtt{x8T48BiP8`9ZV${kFm{`)
zwA{ms<YtB!N*K44jqU-ZgprxeQ=3S}&^M9UBiEtoalTE`SKL<@LfqF2iV*x75PGtk
zW+A-Dn0d`rDs<p>x5y_B9kLnFaXA|wCup4PIYYLnnNg#JK!TAQFsi15Z)4|YQ&+JS
ze_#0@S^k!NWd7<}N{d>`C$vPzwKNvAtj%w!8qr+3xutY?bLr!#?aif~Ev3*-ut~HN
zbXe^K9nenDQo0E$J6cLRp+Tjk^l|omt9CW7-O=2*y*bLBK}-4O=JKu2mUc0}o-N%%
z&;ktyqPAcU)fV6^g0W#GqgZ#LI<!Q$w={OQtlieat)02S96^^M2U<7tnk(@I8!oAT
zlEvi7meMUT)dzc0N})fY3+;SL>6YfwExor$Hr1JI${uOvGo<|d?@K?k!9MZ26r3&U
zQZjtvjJY3-$|y1Tfc^c{__w+lY`CO!57GZX=?>K2LHRpZ<*`L!61gNz-~TV+OKdt5
z=eu(-_bnR!Fy+I1SSRnlR(FS<z&g^(J9t8^Zq+sQi&w7}?HaYqFR%5G%b?JY2($pM
zT-~sEWkdDqE0;qnAOrPvt6#eKN^x4bs$og3m=@R7dBo^UMe!Qr>e{7s%LHMRG0ddf
z@`RX|E;F1Za<Hf2gdsVyR&5i|H)PNyLD0TQlH~TK)UU?@5vDK(LO13w0a=lAUn)N9
z1c5Y5`UVR)BnYVa*Ee9mAwfVCFUj7%A%iXnf_g=xZ`e4e1cCb$9kEE@v1ZvMDTrFa
zYL-pbB5q0)oD&9`jOq|mOXCHeq^fA*NhY+mo)c0+1i?d}M$^t^&SGa-k@Fennj&X$
zU489hXNj}82r8bhb}qAYsQ+fMMOHhPFJ8XVx!k#2JV}`9$<?brb5+CT4o{N_tE%#*
z0qUSp*Bh3ucCK|+TM}!kS1-SAsnfV}_43PCF0IKY{pHTJK4(>Yv&LC|Z9+BDsiCZ_
zv$CdRLMdgOlQM)C<9uXA((c$nqS?mNisMqXO@^m?TF}gZnrQ?vs&ukq%60}B%{YUN
zW}G3zpdcq@h~d?F0`u}17vrJwi$r>;c|<jw8k!_(sGXFj;3<^y3;c&u-ok%M3h%B+
zP2nkGH|2Qzr=^U=e|pMP{72+utMf$|L(z}pKU^Yet8b`HrTO!S9STy`T;azW>WH0p
zn{lgO<zY};UH2Jc=hKZUts98VP^{)UVx@{Lx`EgQ#GKSN#C#FwzM@ov5}s>RXA2K=
zm52H!`k#B3iM38RimF>}E8U{%RwMk)BW3WuNca;B990T`70N?}@Hbzvxx(K9#pVcq
zmBgIXMc^%rdBjlkdh)m2C!^&78ClH8=n94g4@O3Uc`~Zgc#MozC}w1|QZXZ=dSXs$
z4&whs8hK!Dh1dFIv^F54wE-F37?9D80U6yy%ASk_^JMf{<-y2ky<$d2O^O*A-9pSs
z<+TrsBjoP~<nL~ujP4G|$YMrDUtnlYM)xRXQ;xo*Sna*c-!CgxBe}Lwu|<+=_bOH?
zxpp5hCzY3#osdb6s6Z#&;gi_60}}goKw=LCB=%51Vh@wDC$UX7Rw-4FC{`idepj)%
z!fmHwbA;PR6`L*GK1R$*%?GEqqj?HNvr*y0TYU1{5|E$8jQpNrXit7mD`g|UF2zh4
z`<Y^<jQw0OQ^vLugPH`ye=J(YP?VR&g<tkb?3IATUI|F-*8z$BIv}wfr0hv-r^agP
z;j4<7GPX-GQ^sCX%#^X$i9tr-t#JtXTSor&`ed{>AR~(z8U2x=JsAn+)x&o+9wVcD
ziWwRGNiid%_lP;^>k$8+uu2h%^76tk^k;-3&^0EFl@lTtKuv4qgeVH2rnw4PSJPgF
ztgC6T!XeU!XVYRCG{ZJosp1OM$jY^-5muT-jkF?yLg4|9Auj>ZQ1m{sI@GXg+V-KA
z8Pm9XsFBz(p}>Sl^J!4TZpzhg8=Vo_u@*H_JI<m;Y$F79((A#<pN}FlkCU14ez}de
z%ow?iw~{e(JH@&hxt(HNjoeNZ`kvej>d9@QWyZ*@(4t0er&-j<ZIYmn8@}S**mx0&
zZYQhwBr=Qjn`oKQkD^75+|CmUp4>dN?mo6)AGgufwh^6S(VDLjEw$((X-+P%Xr;6u
zGc8&nO~{27ohxm~EJ2-ga{VN>DutqdB<BnKLSA55H9}rs#b|`Q(7GBSFSM>k$dy9h
z6S9X^O1i2nGZm7qYKzX5bS<*z97)$@7M(5WT4K?elCBzy&X9C16VyrHf;5dhmgySI
zPjRC^M;a~XCPzHf<jB=R!OIa3H92yPjn3rAwHB=rR<F0{BI=<F-(b;7VRfxVD}>dX
z1a;E$!RCF(lhv_g^-g~l+-X@gS#YNnvdMy0>uR!~)w-H2xJ&4JS>T~23-0!qku12!
zqH`r7U$W>NNywKiI$IL5(V{aYAzu;HNpC|U{)s*6p{VGYd&n>Ihb*f`<{oNf{;*K+
zWbUCx=9_GEM&^%L)X2QkqDJPATGYt=dloe^e_T*hSZuYwKA)^Eq0GDdGXI%n)yVv3
zR;otkKew(%=0CTtM&{27eNW~dYGl6EV@72DyhV-7w^`K4{6&izng7C~M&{ju;^Tru
zoOTiuatjmkTa%DA@^SgCWwk*%zaCou0~XHLLl5Y;M!LVdg&;Vul?L2HYox-yq0ucu
zRNoxK=)T10#)hS#tC#4;hV@%kCq3`6Vf~iXO6=pTYmM~1$641!!p!)vGE*tcoD$Yg
zTZJ&=p>u_qQ^nQE>;@zE;NWg3`Usi1IviTZZx_;V!&av7YD>k4<C^eyOoEL#Jhc9K
zdR`;^@r(6KqSu8<%gJm5{ZEZ!96x3p&GB(G2jjRk7>9?NI9h^n+^%uV0sR?J27=pq
z7{`}manwsXHrhDqM9%lxIBG@C_gYETh@8J-T^EU*zhYf0C6)KtT&Q@7sk~2Ik?6US
z=m#uAU}pR&Wa#%~=sWQYJrZQ-yEaP0(06T=hM`XDY8dLYu7;sUgA6?yWau%&P<j!V
zc}5ue8yWhM7CT}3N0vgJ2<r(OUF|NW@QE;Q7eJAy5!pRyT^EV4Jk&7rW1Bw}`xy48
z;eTftNbg3>OHQRYa%la$KlbN?vA<yHo7i6n#=gzEn%F(m#QtJ1_W#h>>k;!6(By&7
z17rV<KlWF>*#AtoSFLPoMHIVibTuE)b(eKrB$C->d8-u3yk<RDNU3_wdY&tS`mJ@H
zBc<xM)^)a&s@E+WGo@6$F0Lq5Gob$03BM8k62u6!Bt3?rdxtb}Dk2n}LGIr1r|Vry
zuujtTu8q#5YoBGtq-&pbHR;+HOxK^RXOpf!S<fb2f3~hBU4OQ&CSC7YHcYzS6IU-?
z?+4RmP$%m$q$V|W5Sx#|^2gL?-3D7Xb@10<9)f1ec>;K-co3Vp!7OE2zlTLSUaO)M
zg9cIXgDn^GU_c7xQAR~6EznzYAWl(PnhuzuW(>$240`0U7|><U)WOjf=b9-+$E<#6
zdH&xnuRZs=ytTLf=9o>dzrS(GrygG3^w)2!U3uOECC|Sz;kN5W-SM}N-<!7ajgNId
z|M4}~J5Qc8{`WW4{jPRSX?;%deJ`9o=<1t3{mO=Y+a3)cxc{kh?>K8!!}^v-Z@PKZ
zX{~d1UGr}hGhTn~_8aG2a9(=zrPIJL^_W)Rt;GukfzAfJ8}WAF-HdlD-W_;*@E*V$
zL86A^9fx-s-kEqS@Ydp8gLebojd(loZpOP6?+&~@cv(3>!s*6Hix0bf#M3AkJZ#B`
zpHIQ!;rEMpl?qr?<^rD%dp;bi(fuw884vpj#80Mx@vx~T{yhpC5BqM!AJzC+sEKz_
zvlAYUkBP5<Js-{s5x<3hcw|NmFa!Sh@RLR-UXsFxV<6(sVb+8Xn<C<$*7Wl8MEsM=
z568R22P^*^&=D`z@a!%Se@D~9xjf>F@$%t7hIj)D7aq>D5r0!KlrMGf1sy(|!=d}P
zVb6!d3F3vAQ{lsgoA`E>Kf8#;ugj!stlZO%Poi>f>&8I*P|SQWzLAG)`c?DNlB{C2
z`k!>8YTkl>zhVg0^HNoB1?;ZGdn4Yv@Uj9kUe@LUKs-{10a>Xr+~C7nOkb?h>Wl3G
zt=JZ*Re$O5H1`^vU}VpKC!9?VBV&=VI&ryMl204#s9D?ETV1*~9498f=5x2<I9W(d
z)XBnevhFUQyA8)Fv+wxq<KyEb)e4`x4abS2W}khZa45!6pSumm$&}Cd?Bm1942I9$
zhT~+ydY^rta2&z=+-*3HkN5iQ<HK>BS&edJ<z~ZiP<Or0K0X}BN{PbBz$8I9oLZA-
zUB2Ud*XK^%%r;JT&Od?twY*q8%Qo-XU+w}G>u&AY$NjF)-qK^gbidEu((~NWP2Aa!
zJ9}+k=*OM?s{Y*B^Z8pp;n{;o<o*ow@P*~J$Ub_Z4{`~G^IvoaVoYzeS;Q)=WfKuw
z6fRsMZBuF(laLSq7imIner9;?(NJ();T~J&=9NJYFjVsbD+-@_lv`Ngj%#&Ch(kUc
zcr{^Oq|hA?t;}O#9@Xle*y=)4b1p2X>~~nJn`dq>#07}BOfhX1^gV-gt9y*k+WO9G
zbx(l8XP=7=FtpV@+Gm}KxKp6q8YEK?lk-=yec2IX`xvl26l~`sc@@<8jO!e69V4_>
zC+FOT8PVz<7YuVWm`?}uRIm&RnuN%uOhaYjG!!Kl{Wzq5jNuKkLxx$FKC0+*k>~_j
z7%zG#w+7!=95KGF91lhI!@>G6$ix&Te|{yF{g;`9OZ-Xj3U_$IQ7HcNMZ^UaEZu!e
z|3}P%Eac!|a2uClDM$p>sAr{p6)Mgf+?1_eaZkxW!3WDrk2uT8rJsar7hI=+Yt)TA
zFn%-`Pv06>)W1RAKjr6rK#j~t6f-r)=RnLU(2dVJ*N=49lfkMZ#$a-x26-HaEO(LB
z*@;;lbHrK=tA!te%#;k5rZ~Q7kXCuY5#z0YG4hfCu*X)+W$lq7nYj9!ruWdldjEm~
znUaS41Oh@#L1SZXYG`wv$XI6Yp?}y0%2{#|4nl3=#R@6HUr>s?Od`$q^#Y@4k;>dr
znc;ayn?3;$cp8a37}3CwQa;Ef>Qfw~h!%ptxC(a+2uRnU|IZtn{G1AR2qJHFNBX)8
zIfy;x7}v${72q83oYbFmG*U9r$;k}Y{C6dj8Fm7aiQW@>S?G(63HB}eO=&O}kJSvq
z1tG_jxno*geBN-uM!MX3?dzDNWNZrNY%nh;fJ^~6njRi~lsg&y#4`6B^bgTlf`jcJ
z4#zdv$HEixWpsr*9+#BhQ(ERuEOSq##|x1r=~E{0mtE$Tw7Tc`a+F_qAy}4xU<p|8
z`DKTQj3A+-5_w0W`-CuEpW&?u0wwZpQabPmv@9(PmZifG>?jC!G}3lTD<wI(%q^<m
z1u$onxl;pzP2vwXtz6jZULYBtB0cm`5UdcCtcfFdVVU~%`oG6PwxbX~a`lu%A<$X!
z0+|SoLj=qXQxxI?`Mvw%m_Oh+5|rK_{a@+zRk?p%>CO7T(tE^9@6&E(X87zp=~3sW
zg-;&po`mo2m}2*o3OBtXEz;<YS|~U5j4fvUH&#Up-6`;OMzMRAwK{E~I~i7|7rP&`
zRwph*r7Cs{iur*x0rMC3As?`sXgod_j1+SM4E~%udZBwVD2~HrNEPmBv_%ghvQ3!J
zNK45GPYcQ5Kcfu&a9qh0K`Stra{^5<<5#UQEv?N>ztl}x$i7AR%n$`J%Lrnu2;vk(
zHMQ71v)Dba*ex|Yyy=cx=$>j4I<46Kc(MBl>u}~m_bfQfD0VMEptQ5y>4-f&?UKkJ
z+%qcOkHP7D_=eQrbe89I@<MkUoF<Ft&V?UKZtOxgF#`!4W=f#&n4=SMccJGvexW-7
zaUt72Cd{B!E~6ua7#=fBq?oBv<gh%GBYj9Q17=?11Sw|0m{IHwEylG=UzH){Al$Vi
z*L<a?wRysv9CDA!439n<AJAg=s0wtCXSv5*;traH{u(aWs=$R!7rMhuKVujg^)jX(
zr3;^Rd|mMIE-j-Vip!9j7rNOC5mN(Z3OFMp8Jdl|xCWzN>$9@s1#I%oh^+UbZ(u*>
z1Y8CMQf1<Q7{a0Na9o)?vVr%2oh&zQ;ex7cFd1_kwVwSuxZ|6GBIF~V^$Mw<$;1iu
zbcEyZ6SGIT4U)2vv)t3bC<-%TX4(hACsJL4#GEusDg_GfM8v=Z&UA-Wf<8L27(m3*
zI0|XxMOf$_52Ntsg9?V0#l-yFL^cK4VPYGY*jxn327wdSbG{4xk}(a8a7vjw0kwNQ
z@8sf_au~dfS<kMSxnOMCdiM-;iIGh*0|lmHu|-z68JXdUL&0?eZ`lGjC*VG=<3R%Q
zLPbX-fdY{p*~-h-GK=9d4|&#_b}0rL7xf8yBEpV9*wO3VlciQC3oCtpRL|u@-J=k5
zdRildfs%zd%<XU)SHiN`9kQO2UAXw`L?Ks%i^p&!SbAFcl%vQ{7V&vV57=Jj9>*bi
z%_7$RS6KIt1aWiA*wl%#a^g<KJTIn4-7_#BO!y_t8xwwP4DJ#;jq{_<gDWxj{g0E4
z{bq$%DV(72Pgs6oxF0CIUSWwsSK*7JaVMG5y)EBy?jCKzEl@aG;aj7O{f`y4DqN!Q
z422mAe}PR$m^&Z*RX}W$8eDoJ?l{wU2E*=b;JbbJ>A-jR@QJ{?efS~}BfUxZBfZy-
zciOkA`@>jYcp3N>AO0fn%|85Rz&m~TJ6N+Iy`KV--qK^8_6~KQ2)ioaZ9Y5-e4`I9
z2j1$#*BxW%T?9yae;?+wZ&3Faux|1`@O3`?kHFXX@Hc_i`|u|)uTTDN1|+?qL!I_o
zb$<<u8H0f@^5HJ<3LpOWJg0q*4}T47KBV_eK+-$=Xs3Oqx@W=ebl@dEd?N5^KKx|h
zMLv8wHmj0eDj?}?&UM<ysry>2KXn4n_u(DDhx_n0;5j~gBk<HBQ@$Dg$5=`x{m%iC
zen}4Q+*AKqu$u<l@!>_l4-}g4bRP$NpAXNc|Du@tIoXDOIw0w98G`bu{%^;++h*Xq
zeRwDE9X`ARc()Jl#u^^^y%&)5Dh8u`s{5(1n*)4{51$Eqvkxx;-s!{VVNICyMgo%F
zOIawN>iz)M6JG${=EI)>zR`z20ld|R@4(t5={*QYdJ8jAKGpqH*j)^Koe!S{e2ou3
zA9%eFzYt6Rq&EnV^qz>Ie5(6etdl+le31`-7<h#b|2ptFKKwr5GyOQ0;z|EfK+-=t
z9pzKqU&Z=t7Vv34JOy}>5C0$y<<W<~2Rz@0^S(vWe-x1P(Z;tASN9WOR{=c7htB~X
z@!>OpJ3hPw_<@P0d@=kq;QM^|DXAvD_poNk_&QQh-qig{*tG%Q?ZY<$-{Hesfp`1x
z4Zyeh@O8kq`0y*Smd5l=1!R2KcGA9C-MNOn8+fM=$JUhg4j+#7;r2Ekj_oV$8-4hX
zkyO(E93bhJ;3~0Jbw}}ZrUBpJ!%_9x*ZFWPx3;hG;rYPpefW1!hrwp*w-vsOdP@A4
z3NKN3vBI50jQh(9XDXbb@ZSd;_s0}otngC`-$gwm{kIifrtngQ?;%lie^=ot3dbnC
z33Z6>*DL%1>IL!dDa=xsu5b$K2;EOpcrD5~@kWJmm<jmvDC@L8PvO}Lzl1VI`@0n$
zrErMCt5DwPzEa^kC}YImQdpv}Sm7fmCv<;E;ShzH3U7rY-9M-BE#xurKPX(L@G^y?
z72;Db{_-^*N8xUzyG3D}!gUI374nWy##5v)Pa(BA(SDc0Cl$6Uq^2|cQtK4XR>*UG
zw9ixcq4Kv&VVA;og|{iJQ#e=QRE4MmLhly}i%#OsmsF=?jDhoD&(nq6tFaxBX70~u
zQG4zgIR<H>J@<*=b1G);LE#<_@sBccf|}Rm<7RO6&pi+ygFNYn`yEEBnR^*7Q2*SQ
zkgE3FV*qRM&wUVAsGm9Gv9DUq+^6uS(&wIodiB2uG~QP~+&{yMaTzc7c5oXM&D_sX
zto{L<$E+W~Kd3$TkbGYKbKl70YR|(<7pOh=y=+r^?&;(9E=eQ$J(q$OqvBKJGn;E#
zy>q@eBrKP(sztwN!UI0_xV;`}_R|O)!48B8o?Q<(^^G`oXguK2cP>0&A2`1qa0#Bz
z4miafzYe&WgV+9q@kq5j{~WZp2cR8@V>NEVU5#5u1H>e#|BBmz$lIPv_Qw?vdm;}3
z=_m3K%!EWf`pb(%{(V`J$T^TRi97@|D3Oo2d`jdca4g<0F<-7F3deKt!Sm_Cz}~6(
JIBV9c{|D?F+@t^i

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.cpp
new file mode 100644
index 0000000..408de51
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.cpp
@@ -0,0 +1,155 @@
+/**
+ * @file BayesianFilter.cpp
+ * @author Jules Francoise
+ * @date 24.12.2013
+ *
+ * Non-linear Baysian filtering for EMG Enveloppe Extraction.
+ * Based on Matlab code by Terence Sanger : kidsmove.org/bayesemgdemo.html
+ *
+ * Reference:
+ * - Sanger, T. (2007). Bayesian filtering of myoelectric signals. Journal of neurophysiology, 1839–1845.
+ *
+ * @copyright
+ * Copyright (C) 2013-2014 by IRCAM - Centre Pompidou.
+ * All Rights Reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "BayesianFilter.h"
+#include "filter_utilities.h"
+
+
+#pragma mark -
+#pragma mark Constructors
+BayesianFilter::BayesianFilter()
+{
+    mvc.assign(channels, 1.);
+    init();
+}
+
+BayesianFilter::~BayesianFilter()
+{
+    
+}
+
+void BayesianFilter::resize(std::size_t size)
+{
+    if (size > 0) {
+        channels = size;
+        init();
+    }
+}
+
+std::size_t BayesianFilter::size() const
+{
+    return channels;
+}
+
+#pragma mark -
+#pragma mark Main Algorithm
+void BayesianFilter::init()
+{
+    mvc.resize(channels, 1.);
+    output.assign(channels, 0.);
+    prior.resize(channels);
+    state.resize(channels);
+    g.resize(channels);
+    for (unsigned int i=0; i<channels; i++) {
+        prior[i].resize(levels);
+        state[i].resize(levels);
+        g[i].resize(3);
+        
+        double val(1.);
+        for (unsigned int t=0; t<levels; t++) {
+            state[i][t] = val * mvc[i] / double(levels);
+            val += 1;
+            prior[i][t] = 1. / levels;
+        }
+        
+        double diff = diffusion * diffusion / (samplerate * std::pow(mvc[i] / levels, 2));
+        g[i][0] = diff / 2.;
+        g[i][1] = 1. - diff - this->jump_rate;
+        g[i][2] = diff / 2.;
+    }
+}
+
+void BayesianFilter::update(vector<float> const& observation)
+{
+    if (observation.size() != this->channels) {
+        resize(observation.size());
+    }
+    
+    for (std::size_t i=0; i<channels; i++)
+    {
+        // -- 1. Propagate
+        // -----------------------------------------
+        
+        vector<double> a(1, 1.);
+        vector<double> oldPrior(prior[i].size());
+        //        oldPrior.swap(prior[i]);
+        copy(prior[i].begin(), prior[i].end(), oldPrior.begin());
+        
+        filtfilt(g[i], a, oldPrior, prior[i]);
+        
+        // set probability of a sudden jump
+        for (unsigned int t=0; t<levels; t++) {
+            prior[i][t] = prior[i][t] + jump_rate / mvc[i];
+        }
+        
+        // -- 4. Calculate the posterior likelihood function
+        // -----------------------------------------
+        // calculate posterior density using Bayes rule
+        vector<double> posterior(levels);
+        double sum_posterior(0.);
+        for (unsigned int t=0; t<levels; t++) {
+            double x_2 = state[i][t] * state[i][t];
+            posterior[t] = this->prior[i][t] * exp(- observation[i] * observation[i] / x_2) / x_2;
+            sum_posterior += posterior[t];
+        }
+        
+        // -- 5. Output the signal estimate output(x(t)) = argmax P(x,t);
+        // -----------------------------------------
+        // find the maximum of the posterior density
+        unsigned int pp(0);
+        double tmpMax(posterior[0]);
+        for (unsigned int t=0; t<levels; t++) {
+            if (posterior[t] > tmpMax) {
+                tmpMax = posterior[t];
+                pp = t;
+            }
+            posterior[t] /= sum_posterior;
+        }
+        
+        // convert index of peak value to scaled EMG value
+        output[i] = state[i][pp] / mvc[i];
+        
+        // -- 7. Repeat from step 2 > prior for next iteration is posterior from this iteration
+        // -----------------------------------------
+        copy(posterior.begin(), posterior.end(), prior[i].begin());
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.h
new file mode 100644
index 0000000..3f97d3f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/BayesianFilter.h
@@ -0,0 +1,183 @@
+/**
+ * @file BayesianFilter.h
+ * @author Jules Francoise
+ * @date 24.12.2013
+ *
+ * Non-linear Baysian filtering for EMG Enveloppe Extraction.
+ * Based on Matlab code by Terence Sanger : kidsmove.org/bayesemgdemo.html
+ *
+ * Reference:
+ * - Sanger, T. (2007). Bayesian filtering of myoelectric signals. Journal of neurophysiology, 1839–1845.
+ *
+ * @copyright
+ * Copyright (C) 2013-2014 by IRCAM - Centre Pompidou.
+ * All Rights Reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __emg_bayesfilter__BayesianFilter__
+#define __emg_bayesfilter__BayesianFilter__
+
+#include <algorithm>
+#include <iostream>
+#include <cmath>
+#include <vector>
+
+using namespace std;
+
+/*!
+ @mainpage
+ # Bayesian Filtering for EMG envelope extraction
+ 
+ Non-linear baysian filter. 
+ Code is based on Matlab example code from Terence Sanger, available at [kidsmove.org/bayesemgdemo.html](kidsmove.org/bayesemgdemo.html)
+ 
+ ## Reference:
+ * Sanger, T. (2007). __Bayesian filtering of myoelectric signals.__ _Journal of neurophysiology_, 1839–1845.
+ 
+ ## Contact
+ @copyright Copyright (C) 2012-2014 by IRCAM. All Rights Reserved.
+ @author Jules Francoise - Ircam - jules.francoise@ircam.fr
+ @date 2013-12-26
+ 
+ */
+
+/*!
+	@class BayesianFilter
+	@brief Main class for non-linear Bayesian fitering
+	
+	@copyright Copyright 2013 Ircam - Jules Francoise. All Rights Reserved.
+	@author Jules Francoise - Ircam - jules.francoise@ircam.fr
+	@date 2013-12-26
+ */
+class BayesianFilter {
+public:
+#pragma mark -
+#pragma mark Public attributes
+    vector<float> output; //<! bayes estimates
+    
+#pragma mark -
+#pragma mark Constructors
+    /*!
+     Constructor
+     @param _samplerate Sampling frequency of input stream
+     @param _clipping Signal Clipping
+     @param _alpha Diffusion rate
+     @param _beta Probability of sudden jumps
+     @param _levels number of output levels
+     @param _rectification signal rectification
+     */
+    BayesianFilter();
+    
+    ~BayesianFilter();
+    
+    void resize(std::size_t size);
+    std::size_t size() const;
+    
+#pragma mark -
+#pragma mark Main Algorithm
+    /*!
+     @brief Initialize filter
+     Resets Prior to uniform distribution
+     */
+    void init();
+    
+    /*!
+     @brief Update filter state and compute prediction.
+     
+     The output of the system (envelope estimated by Maximum A Posteriori) is stored in the public member output
+     @param observation observation (input) vector
+     */
+    void update(vector<float> const& observation);
+    
+#pragma mark -
+#pragma mark Python
+#ifdef SWIGPYTHON
+	void update(int _inchannels, double *observation, int _outchannels, double *_output)
+	{
+	    vector<float> observation_vec(_inchannels);
+        for (unsigned int t=0; t<_inchannels; t++)
+            observation_vec[t] = float(observation[t]);
+	    
+        this->update(observation_vec);
+        
+	    for (unsigned int t=0; t<_inchannels; t++)
+            _output[t] = double(this->output[t]);
+	}
+#endif
+    
+    /**
+     @brief Maximum Value contraction (estimated using Standard deviation on isometric max contraction)
+     */
+    std::vector<double> mvc;
+    
+    /**
+     @brief Number of output levels
+     */
+    unsigned int levels = 100;
+    
+    /**
+     @brief Sampling frequency
+     */
+    double samplerate = 200.;
+    
+    /**
+     @brief Diffusion rate (typically 1e-9 <> 1e-1)
+     */
+    double diffusion = 0.1;
+    
+    /**
+     @brief Probability of sudden jumps (typically 1e-24 <> 1e-1)
+     */
+    double jump_rate = 0.1;
+    
+protected:
+    /**
+     @brief Number of input channels
+     */
+    std::size_t channels = 1;
+    
+    /**
+     @brief Latent variable (the driving rate)
+     */
+    vector< vector<double> > state;
+    
+    /**
+     @brief Prior
+     */
+    vector< vector<double> > prior;
+    
+    /**
+     @brief Approximate spatial second derivative operator
+     */
+    vector< vector<double> > g;
+};
+
+
+#endif
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.cpp
new file mode 100644
index 0000000..2fb0700
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.cpp
@@ -0,0 +1,200 @@
+/**
+ * @file filter_utilities.cpp
+ * @author Jules Francoise
+ * @date 24.12.2013
+ * contact: jules.francoise@ircam.fr
+ *
+ * @brief Filtering utilities
+ *
+ * c++ implementations of scipy.signal standard filtering functions
+ *
+ * @copyright
+ * Copyright (C) 2013-2014 by IRCAM - Centre Pompidou.
+ * All Rights Reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "filter_utilities.h"
+
+void filtfilt(vector<double> const& b, vector<double> const& a, vector<double> & x, vector<double> & y, PADTYPE padtype, int padlen)
+{
+    int ntaps = max(a.size(), b.size());
+    
+    if (padtype == NONE)
+        padlen=0;
+    unsigned int edge;
+    if (padlen < 0)
+        edge = ntaps * 3;
+    else
+        edge = padlen;
+    
+    if (x.size() <= edge)
+        throw runtime_error("The length of the input vector x must be at least padlen.");
+    
+    vector<double> ext;
+    if (padtype != NONE && edge > 0) {
+        // Make an extension of length 'edge' at each
+        // end of the input array.
+        switch (padtype) {
+            case EVEN:
+                even_ext<double>(x, ext, edge);
+                break;
+            case ODD:
+                odd_ext<double>(x, ext, edge);
+                break;
+            default:
+                const_ext<double>(x, ext, edge);
+        }
+    } else {
+        ext = x;
+    }
+    
+    // Get the steady state of the filter's step response.
+    vector<double> zi;
+    lfilter_zi(b, a, zi);
+    
+    // Forward filter.
+    y.resize(ext.size());
+    vector<double> zip = zi;
+    for (unsigned int i=0 ; i<zi.size(); i++) {
+        zip[i] = zi[i] * x[0];
+    }
+    
+    vector<double> y_reverse(ext.size());
+    lfilter(b, a, ext, y_reverse, zip);
+    
+    reverse_copy(y_reverse.begin(), y_reverse.end(), y.begin());
+    
+    // Backward filter.
+    // Create y0 so zi*y0 broadcasts appropriately.
+    for (unsigned int i=0 ; i<zip.size(); i++) {
+        zip[i] = zi[i] * x[x.size()-1];
+    }
+    lfilter(b, a, y, y_reverse, zip);
+    
+    // Reverse y.
+    y.resize(x.size());
+    reverse_copy(y_reverse.begin()+edge, y_reverse.end()-edge, y.begin());
+}
+
+
+void lfilter(vector<double> const& b, vector<double> const& a, vector<double> const& x, vector<double> & y, vector<double> const& zi)
+{
+    vector<double> _b = b;
+    vector<double> _a = a;
+    
+    // Pad a or b with zeros so they are the same length.
+    unsigned int k = max(a.size(), b.size());
+    
+    if (_a.size() < k)
+        _a.resize(k, 0.);
+    else if (_b.size() < k)
+        _b.resize(k, 0.);
+    
+    if (_a[0] != 1.0) {
+        // Normalize the coefficients so a[0] == 1.
+        for (unsigned int i=0; i<k; i++) {
+            _a[i] /= _a[0];
+            _b[i] /= _a[0];
+        }
+    }
+    
+    vector<double> z = zi;
+    unsigned int n = x.size();
+    y.resize(n);
+    for (unsigned int m=0; m<n; m++) {
+        y[m] = _b[0] * x[m] + z[0];
+        for (unsigned int i=0; i<k-2; i++) {
+            z[i] = _b[i+1] * x[m] + z[i+1] - _a[i+1] * y[m];
+        }
+        z[k-2] = _b[k-1] * x[m] - _a[k-1] * y[m];
+    }
+}
+
+
+void lfilter_zi(vector<double> const& b, vector<double> const& a, vector<double> & zi) {
+    vector<double> _b = b;
+    vector<double> _a = a;
+    
+    if (_a[0] != 1.0) {
+        // Normalize the coefficients so a[0] == 1.
+        for (unsigned int i=0; i<_a.size(); i++) {
+            _a[i] /= _a[0];
+            _b[i] /= _a[0];
+        }
+    }
+    
+    unsigned int n = max(_a.size(), _b.size());
+    
+    // Pad a or b with zeros so they are the same length.
+    if (_a.size() < n)
+        _a.resize(n, 0.);
+    else if (_b.size() < n)
+        _b.resize(n, 0.);
+    
+    vector<double> IminusA((n-1)*(n-1), 0.);
+    for (unsigned int i=0; i<n-1; i++) {
+        IminusA[i*(n-1)+i] = 1.;
+    }
+    
+    vector<double> companion((n-1)*(n-1), 0.);
+    for (unsigned int i=0; i<n-1; i++) {
+        companion[i] = -_a[i+1] / (1.0 * _a[0]);
+    }
+    for (unsigned int i=1; i<n-1; i++) {
+        companion[i*(n-1)+i-1] = 1.;
+    }
+    
+    for (unsigned int i=0; i<n-1; i++) {
+        for (unsigned int j=0; j<n-1; j++) {
+            IminusA[i*(n-1)+j] -= companion[j*(n-1)+i];
+        }
+    }
+	
+    zi.clear();
+    zi.resize(n - 1, 0.);
+    
+    double tmpSum(0.);
+    for (unsigned int i=0; i<n-1; i++) {
+        zi[0] += _b[i+1] - _a[i+1] * _b[0];
+        tmpSum += IminusA[i*(n-1)];
+    }
+    zi[0] /= tmpSum;
+    
+    // TODO: remove B
+    
+    // Solve zi = A*zi + B
+    double asum = 1.0;
+    double csum = 0.0;
+    for (unsigned int k=1; k<n-1; k++) {
+        asum += _a[k];
+        csum += _b[k] - _a[k]*_b[0];
+        zi[k] = asum*zi[0] - csum;
+    }
+}
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.h
new file mode 100644
index 0000000..f72e99e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/bayesfilter/filter_utilities.h
@@ -0,0 +1,138 @@
+/**
+ * @file filter_utilities.h
+ * @author Jules Francoise
+ * @date 24.12.2013
+ * contact: jules.francoise@ircam.fr
+ *
+ * @brief Filtering utilities
+ * 
+ * c++ implementations of scipy.signal standard filtering functions
+ *
+ * @copyright
+ * Copyright (C) 2013-2014 by IRCAM - Centre Pompidou.
+ * All Rights Reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __emg_bayesfilter__filter_utilities__
+#define __emg_bayesfilter__filter_utilities__
+
+#include <algorithm>
+#include <iostream>
+#include <exception>
+#include <stdexcept>
+#include <vector>
+
+using namespace std;
+
+typedef enum _padtype {
+    EVEN,
+    ODD,
+    CONSTANT,
+    NONE
+} PADTYPE;
+
+void filtfilt(vector<double> const& b, vector<double> const& a, vector<double> & x, vector<double> & y, PADTYPE padtype = ODD, int padlen=-1);
+void lfilter_zi(vector<double> const& b, vector<double> const& a, vector<double> & zi);
+void lfilter(vector<double> const& b, vector<double> const& a, vector<double> const& x, vector<double> & y, vector<double> const& zi);
+
+/*! 
+ 1D python-like even_ext function.
+ 
+ */
+template <typename datatype>
+void even_ext(vector<datatype> const& src, vector<datatype> & dst, unsigned int n)
+{
+    if (n<1)
+        dst = src;
+    if (n > src.size() - 1)
+        throw runtime_error("The extension length n is too big. It must not exceed src.size()-1.");
+    
+    dst.resize(2 * n + src.size());
+    
+    int t(0);
+    for (int i=n; i>0; i--) {
+        dst[t++] = src[i];
+    }
+    copy(src.begin(), src.end(), dst.begin()+n);
+    
+    t += src.size();
+    for (unsigned int i=src.size()-2; i>src.size()-n-2; i--) {
+        dst[t++] = src[i];
+    }
+}
+
+// 1D python-like odd_ext
+template <typename datatype>
+void odd_ext(vector<datatype> const& src, vector<datatype> & dst, unsigned int n)
+{
+    if (n<1)
+        dst = src;
+    if (n > src.size() - 1)
+        throw runtime_error("The extension length n is too big. It must not exceed src.size()-1.");
+    
+    dst.resize(2 * n + src.size());
+    
+    int t(0);
+    for (int i=n; i>0; i--) {
+        dst[t++] = 2 * src[0] - src[i];
+    }
+    copy(src.begin(), src.end(), dst.begin()+n);
+    
+    t += src.size();
+    for (unsigned int i=src.size()-2; i>src.size()-n-2; i--) {
+        dst[t++] = 2 * src[src.size()-1] - src[i];
+    }
+}
+
+// 1D python-like const_ext
+template <typename datatype>
+void const_ext(vector<datatype> const& src, vector<datatype> & dst, unsigned int n)
+{
+    if (n<1)
+        dst = src;
+    if (n > src.size() - 1)
+        throw runtime_error("The extension length n is too big. It must not exceed src.size()-1.");
+    
+    dst.resize(2 * n + src.size());
+    
+    int t(0);
+    for (int i=n; i>0; i--) {
+        dst[t++] = src[0];
+    }
+    copy(src.begin(), src.end(), dst.begin()+n);
+    
+    t += src.size();
+    for (unsigned int i=src.size()-2; i>src.size()-n-2; i--) {
+        dst[t++] = src[src.size()-1];
+    }
+}
+
+
+#endif
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.c
new file mode 100644
index 0000000..e80f70d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.c
@@ -0,0 +1,265 @@
+/**
+ * @file finitedifferences.c
+ * @author gael.dubus@ircam.fr
+ *
+ * Largely inspired by rta_delta.c
+ *
+ * @copyright
+ * Copyright (C) 2016 by ISMM IRCAM - Centre Pompidou, Paris, France
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "finitedifferences.h"
+//#include "rta_math.h"
+
+
+int finitedifferences_weights_by_filtersize(float * weights_vector, const int derivative_order, const unsigned int filter_size, const enum FDMethod method){
+  unsigned int i;
+  float factor;
+  switch (method){
+  case Backward:
+    factor = 1./FDBackward[derivative_order-1][filter_size-derivative_order-1][2];
+    for (i=0; i<filter_size; i++){
+      weights_vector[i] = FDBackward[derivative_order-1][filter_size-derivative_order-1][i+3]*factor;
+    }
+    break;
+  case Centered:
+    factor = 1./FDCentered[derivative_order-1][(filter_size-derivative_order+1)/2-1][2];
+    for (i=0; i<filter_size; i++){
+      weights_vector[i] = FDCentered[derivative_order-1][(filter_size-derivative_order+1)/2-1][i+3]*factor;
+    }
+    break;
+  case Forward:
+    factor = 1./FDForward[derivative_order-1][filter_size-derivative_order-1][2];
+    for (i=0; i<filter_size; i++){
+      weights_vector[i] = FDForward[derivative_order-1][filter_size-derivative_order-1][i+3]*factor;
+    }
+  default:
+    break;
+  }
+  return 1;
+}
+
+int finitedifferences_weights_by_accuracy(float * weights_vector, const int derivative_order, const int accuracy_order, const enum FDMethod method){
+  int i;
+  float factor;
+  switch (method){
+  case Backward:
+    factor = 1./FDBackward[derivative_order-1][accuracy_order-1][2];
+    for (i=0; i<accuracy_order+derivative_order; i++){
+      weights_vector[i] = FDBackward[derivative_order-1][accuracy_order-1][i+3]*factor;
+    }
+    break;
+  case Centered:
+    factor = 1./FDCentered[derivative_order-1][accuracy_order/2-1][2];
+    //This stands for a centered FD: stencil_size = accuracy_order+2*(derivative_order-derivative_order/2)-1
+    //one could also use: stencil_size = FDCentered[derivative_order-1][accuracy_order/2-1][0]
+    for (i=0; i<accuracy_order+2*(derivative_order-derivative_order/2)-1; i++){ 
+      weights_vector[i] = FDCentered[derivative_order-1][accuracy_order/2-1][i+3]*factor;
+    }
+    break;
+  case Forward:
+    factor = 1./FDForward[derivative_order-1][accuracy_order-1][2];
+    for (i=0; i<accuracy_order+derivative_order; i++){
+      weights_vector[i] = FDForward[derivative_order-1][accuracy_order-1][i+3]*factor;
+    }
+  default:
+    break;
+  }
+  return 1;
+}
+
+/*
+int finitedifferences_weights_by_size_stride(float * weights_vector, const int w_stride, const unsigned int filter_size, const enum FDMethod method, const int accuracy_order){
+  int i;
+  float filter_value;
+
+
+  
+  //const rta_real_t half_filter_size = rta_floor(filter_size * 0.5);
+
+  / *for(i=0, filter_value=-half_filter_size;
+      i<filter_size*w_stride;
+      i+=w_stride, filter_value+=1.)
+  {
+    weights_vector[i] = filter_value;
+    }* /
+
+  return 1;
+}
+*/
+
+/*
+float finitedifferences_normalization_factor(const unsigned int filter_size, const enum FDMethod method, const int accuracy_order)
+{
+  float normalization = 0.;
+  if (filter_size > 0){
+    int i;
+    const int half_filter_size = filter_size / 2;
+
+    for(i=1; i<=half_filter_size; i++)
+    {
+      normalization += (float) (i*i);
+    }
+
+    normalization = 0.5 / normalization;
+  }
+  return normalization;
+  }
+
+*/
+
+void finitedifferences(float * output, const float * input_vector, const float * weights_vector, const unsigned int filter_size){
+  unsigned int i;
+  *output = 0.;
+
+  for(i=0; i<filter_size; i++){
+    if(weights_vector[i] != 0.){
+      *output += input_vector[i] * weights_vector[i];
+    }
+  }
+  return;
+}
+
+/*
+void finitedifferences_stride(float * delta, 
+                    const float * input_vector, const int i_stride,
+                    const float * weights_vector, const int w_stride,
+                    const unsigned int filter_size)
+{
+  unsigned int i;
+  
+  *delta = 0.;
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i*w_stride] != 0.)
+    {
+      *delta += input_vector[i*i_stride] * weights_vector[i*w_stride];
+    }
+  }
+  
+  return;
+}
+*/
+
+
+void finitedifferences_vector(float * delta,
+                    const float * input_matrix, const unsigned int input_size,
+                    const float * weights_vector, const unsigned int filter_size)
+{
+  unsigned int i,j;
+  
+  for(j=0; j<input_size; j++)
+  {
+    delta[j] = 0.;
+  }
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i] != 0.) /* skip zeros */
+    {    
+      for(j=0; j<input_size; j++)
+      {
+        delta[j] += input_matrix[i*input_size+j] * weights_vector[i];
+      }
+    }
+  }
+  
+  return;
+}
+
+
+/*
+void finitedifferences_vector_stride(float * delta, const int d_stride,
+                       const float * input_matrix, const int i_stride, 
+                       const unsigned int input_size,
+                       const float * weights_vector, const int w_stride,
+                       const unsigned int filter_size)
+{
+  int i,j;
+  
+  for(j=0; j<input_size*d_stride; j+=d_stride)
+  {
+    delta[j] = 0.;
+  }
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i*w_stride] != 0.) / * skip zeros * /
+    {    
+      for(j=0; j<input_size; j++)
+      {
+        delta[j*d_stride] += input_matrix[(i*input_size+j)*i_stride] *
+          weights_vector[i*w_stride];
+      }
+    }
+  }
+  
+  return;
+}
+*/
+
+int accuracy_to_filtersize(const enum FDMethod method, const int derivative_order, const int accuracy_order){
+  int res;
+  switch (method){
+  case Centered:
+    res = accuracy_order+2*((derivative_order-1)/2)+1;
+    break;
+  case Backward:
+  case Forward:
+    res = accuracy_order + derivative_order;
+    break;
+  default:
+    res = 0;
+    break;
+  }
+  return res;
+}
+
+int filtersize_to_accuracy(const enum FDMethod method, const int derivative_order, const unsigned int filter_size){
+  int res;
+  switch (method){
+  case Centered:
+    //res = FDCentered[derivative_order-1][(filter_size-derivative_order+1)/2-1];
+    res = filter_size-2*((derivative_order-1)/2)-1;
+    break;
+  case Backward:
+    //res = FDBackward[derivative_order-1][filter_size-derivative_order-1][1];
+    //break;
+  case Forward:
+    //res = FDForward[derivative_order-1][filter_size-derivative_order-1][1];
+    res = filter_size-derivative_order;
+    break;
+  default:
+    res = 0;
+    break;
+  }
+  return res;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.h
new file mode 100644
index 0000000..40da4fc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/finitedifferences/finitedifferences.h
@@ -0,0 +1,167 @@
+/**
+ * @file finitedifferences.h
+ * @author gael.dubus@ircam.fr
+ *
+ * Largely inspired by rta_delta.h
+ *
+ * @copyright
+ * Copyright (C) 2016 by ISMM IRCAM - Centre Pompidou, Paris, France
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _FINITEDIFFERENCES_H_
+#define _FINITEDIFFERENCES_H_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+enum FDMethod {Backward, Centered, Forward};
+
+  
+  /*
+  Structure of the tables:
+  FDBackward[derivative_order][stencil_order] = [stencil_size, accuracy_order, 1/factor, [coefficients]]
+  */
+
+  //Name format: B`derivative_order``stencil_size`
+  static const int B12[5]  = {2, 1, 1, -1, 1}; //array size = array[0]+3
+  static const int B13[6]  = {3, 2, 2, 1, -4, 3};
+  static const int B14[7]  = {4, 3, 6, -2, 9, -18, 11};
+  static const int B15[8]  = {5, 4, 12, 3, -16, 36, -48, 25};
+  static const int B16[9]  = {6, 5, 60, -12, 75, -200, 300, -300, 137};
+  static const int B17[10] = {7, 6, 60, 10, -72, 225, -400, 450, -360, 147};
+  static const int B23[6]  = {3, 1, 1, 1, -2, 1};
+  static const int B24[7]  = {4, 2, 1, -1, 4, -5, 2};
+  static const int B25[8]  = {5, 3, 12, 11, -56, 114, -104, 35};
+  static const int B26[9]  = {6, 4, 12, -10, 61, -156, 214, -154, 45};
+  static const int B27[10] = {7, 5, 180, 137, -972, 2970, -5080, 5265, -3132, 812};
+  static const int B28[11] = {8, 6, 180, -126, 1019, -3618, 7380, -9490, 7911, -4014, 938};
+  static const int B34[7]  = {4, 1, 1, -1, 3, -3, 1};
+  static const int B35[8]  = {5, 2, 2, 3, -14, 24, -18, 5};
+  static const int B36[9]  = {6, 3, 4, -7, 41, -98, 118, -71, 17};
+  static const int B37[10] = {7, 4, 8, 15, -104, 307, -496, 461, -232, 49};
+  static const int B38[11] = {8, 5, 120, -232, 1849, -6432, 12725, -15560, 11787, -5104, 967};
+  static const int B39[12] = {9, 6, 120, 469, -4216, 16830, -39128, 58280, -57384, 36706, -13960, 2403};
+  static const int B45[8]  = {5, 1, 1, 1, -4, 6, -4, 1};
+  static const int B46[9]  = {6, 2, 1, -2, 11, -24, 26, -14, 3};
+  static const int B47[10] = {7, 3, 6, 17, -114, 321, -484, 411, -186, 35};
+  static const int B48[11] = {8, 4, 6, -21, 164, -555, 1056, -1219, 852, -333, 56};
+  static const int B49[12] = {9, 5, 240, 967, -8576, 33636, -76352, 109930, -102912, 61156, -21056, 3207};
+  //Name format: B`derivative_order`
+  static const int *B1[6] = {B12, B13, B14, B15, B16, B17};
+  static const int *B2[6] = {B23, B24, B25, B26, B27, B28};
+  static const int *B3[6] = {B34, B35, B36, B37, B38, B39};
+  static const int *B4[5] = {B45, B46, B47, B48, B49};
+  static const int **FDBackward[4] = {B1, B2, B3, B4};
+  //To get the right one: FDBackward[derivative_order-1][stencil_size-derivative_order-1]
+
+  //Forward FD
+  static const int F12[5]  = {2, 1, 1, -1, 1};
+  static const int F13[6]  = {3, 2, 2, -3, 4, -1};
+  static const int F14[7]  = {4, 3, 6, -11, 18, -9, 2};
+  static const int F15[8]  = {5, 4, 12, -25, 48, -36, 16, -3};
+  static const int F16[9]  = {6, 5, 60, -137, 300, -300, 200, -75, 12};
+  static const int F17[10] = {7, 6, 60, -147, 360, -450, 400, -225, 72, -10};
+  static const int F23[6]  = {3, 1, 1, 1, -2, 1};
+  static const int F24[7]  = {4, 2, 1, 2, -5, 4, -1};
+  static const int F25[8]  = {5, 3, 12, 35, -104, 114, -56, 11};
+  static const int F26[9]  = {6, 4, 12, 45, -154, 214, -156, 61, -10};
+  static const int F27[10] = {7, 5, 180, 812, -3132, 5265, -5080, 2970, -972, 137};
+  static const int F28[11] = {8, 6, 180, 938, -4014, 7911, -9490, 7380, -3618, 1019, -126};
+  static const int F34[7]  = {4, 1, 1, -1, 3, -3, 1};
+  static const int F35[8]  = {5, 2, 2, -5, 18, -24, 14, -3};
+  static const int F36[9]  = {6, 3, 4, -17, 71, -118, 98, -41, 7};
+  static const int F37[10] = {7, 4, 8, -49, 232, -461, 496, -307, 104, -15};
+  static const int F38[11] = {8, 5, 120, -967, 5104, -11787, 15560, -12725, 6432, -1849, 232};
+  static const int F39[12] = {9, 6, 240, -2403, 13960, -36706, 57384, -58280, 39128, -16830, 4216, -469};
+  static const int F45[8]  = {5, 1, 1, 1, -4, 6, -4, 1};
+  static const int F46[9]  = {6, 2, 1, 3, -14, 26, -24, 11, -2};
+  static const int F47[10] = {7, 3, 6, 35, -186, 411, -484, 321, -114, 17};
+  static const int F48[11] = {8, 4, 6, 56, -333, 852, -1219, 1056, -555, 164, -21};
+  static const int F49[12] = {9, 5, 240, 3207, -21056, 61156, -102912, 109930, -76352, 33636, -8576, 967};
+  static const int *F1[6] = {F12, F13, F14, F15, F16, F17};
+  static const int *F2[6] = {F23, F24, F25, F26, F27, F28};
+  static const int *F3[6] = {F34, F35, F36, F37, F38, F39};
+  static const int *F4[5] = {F45, F46, F47, F48, F49};
+  static const int **FDForward[4] = {F1, F2, F3, F4};
+  //To get the right one: FDForward[derivative_order-1][stencil_size-derivative_order-1]
+
+  //Centered FD
+  static const int C13[6] = {3, 2, 2, -1, 0, 1};
+  static const int C15[8] = {5, 4, 12, 1, -8, 0, 8, -1};
+  static const int C17[10] = {7, 6, 60, -1, 9, -45, 0, 45, -9, 1};
+  static const int C19[12] = {9, 8, 840, 3, -32, 168, -672, 0, 672, -168, 32, -3};
+  static const int C23[6] = {3, 2, 1, 1, -2, 1};
+  static const int C25[8] = {5, 4, 12, -1, 16, -30, 16, -1};
+  static const int C27[10] = {7, 6, 180, 2, -27, 270, -490, 270, -27, 2};
+  static const int C29[12] = {9, 8, 5040, -9, 128, -1008, 8040, -14350, 8040, -1008, 128, -9};
+  static const int C35[8] = {5, 2, 2, -1, 2, 0, -2, 1};
+  static const int C37[10] = {7, 4, 8, 1, -8, 13, 0, -13, 8, -1};
+  static const int C39[12] = {9, 6, 240, -7, 72, -338, 488, 0, -488, 338, -72, 7};
+  static const int C45[8] = {5, 2, 1, 1, -4, 6, -4, 1};
+  static const int C47[10] = {7, 4, 6, -1, 12, -39, 56, -39, 12, -1};
+  static const int C49[12] = {9, 6, 240, 7, -96, 676, -1952, 2730, -1952, 676, -96, 7};
+  static const int C57[10] = {7, 2, 2, -1, 4, -5, 0, 5, -4, 1};
+  static const int C67[10] = {7, 2, 1, 1, -6, 15, -20, 15, -6, 1};
+  static const int *C1[4] = {C13, C15, C17, C19};
+  static const int *C2[4] = {C23, C25, C27, C29};
+  static const int *C3[3] = {C35, C37, C39};
+  static const int *C4[3] = {C45, C47, C49};
+  static const int *C5[1] = {C57};
+  static const int *C6[1] = {C67};
+  static const int **FDCentered[6] = {C1, C2, C3, C4, C5, C6};
+  //To get the right one: FDCentered[derivative_order-1][(stencil_size-derivative_order+1)/2-1]
+  
+int finitedifferences_weights_by_filtersize(float * weights_vector, const int derivative_order, const unsigned int filter_size, const enum FDMethod method);
+
+int finitedifferences_weights_by_accuracy(float * weights_vector, const int derivative_order, const int accuracy_order, const enum FDMethod method);
+
+  //int finitedifferences_weights_stride(float * weights_vector, const int w_stride, const unsigned int filter_size, const enum FDMethod method, const int accuracy_order);
+
+  //float finitedifferences_normalization_factor(const unsigned int filter_size, const enum FDMethod method, const int accuracy_order);
+
+void finitedifferences(float * output, const float * input_vector, const float * weights_vector, const unsigned int filter_size);
+
+  //void finitedifferences_stride(float * delta, const float * input_vector, const int i_stride, const float * weights_vector, const int w_stride, const unsigned int filter_size);
+
+  void finitedifferences_vector(float * delta, const float * input_matrix, const unsigned int input_size, const float * weights_vector, const unsigned int filter_size);
+
+  //void finitedifferences_vector_stride(float * delta, const int d_stride, const float * input_matrix, const int i_stride, const unsigned int input_size, const float * weights_vector, const int w_stride, const unsigned int filter_size);
+
+  int accuracy_to_filtersize(const enum FDMethod method, const int derivative_order, const int accuracy_order);
+  int filtersize_to_accuracy(const enum FDMethod method, const int derivative_order, const unsigned int filter_size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FINITEDIFFERENCES_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.cpp
new file mode 100755
index 0000000..b4e3887
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.cpp
@@ -0,0 +1,352 @@
+/**
+ * @file bbpr.cpp
+ *
+ * Finds all roots of polynomial by first finding quadratic
+ * factors using Bairstow's method, then extracting roots
+ * from quadratics. Implements new algorithm for managing
+ * multiple roots.
+ *
+ * @copyright
+ * Copyright (C) 2002, 2003, C. Bond.
+ * All rights reserved.
+ *
+ * @see http://www.crbond.com/
+ */
+
+#include <iomanip>
+#include <math.h>
+#include <stdlib.h>
+
+#define maxiter 500
+#define minerr 0.0001
+
+
+//
+// Extract individual real or complex roots from list of quadratic factors 
+//
+int roots(double *a,int n,double *wr,double *wi)
+{
+    double sq,b2,c,disc;
+    int m,numroots;
+
+    m = n;
+    numroots = 0;
+    while (m > 1) {
+        b2 = -0.5*a[m-2];
+        c = a[m-1];
+        disc = b2*b2-c;
+        if (disc < 0.0) {                   // complex roots
+            sq = sqrt(-disc);
+            wr[m-2] = b2;
+            wi[m-2] = sq;
+            wr[m-1] = b2;
+            wi[m-1] = -sq;
+            numroots+=2;
+        }
+        else {                              // real roots
+            sq = sqrt(disc);
+            wr[m-2] = fabs(b2)+sq;
+            if (b2 < 0.0) wr[m-2] = -wr[m-2];
+            if (wr[m-2] == 0)
+                wr[m-1] = 0;
+            else {
+                wr[m-1] = c/wr[m-2];
+                numroots+=2;
+            }
+            wi[m-2] = 0.0;
+            wi[m-1] = 0.0;
+        }
+        m -= 2;
+    }
+    if (m == 1) {
+       wr[0] = -a[0];
+       wi[0] = 0.0;
+       numroots++;
+    }
+    return numroots;
+}
+//
+// Deflate polynomial 'a' by dividing out 'quad'. Return quotient
+// polynomial in 'b' and error metric based on remainder in 'err'.
+// 
+void deflate(double *a,int n,double *b,double *quad,double *err)
+{
+    double r,s;
+    int i;
+
+    r = quad[1];
+    s = quad[0];
+
+    b[1] = a[1] - r;
+
+    for (i=2;i<=n;i++){
+        b[i] = a[i] - r * b[i-1] - s * b[i-2];
+    }
+    *err = fabs(b[n])+fabs(b[n-1]);
+}
+//
+// Find quadratic factor using Bairstow's method (quadratic Newton method).
+// A number of ad hoc safeguards are incorporated to prevent stalls due
+// to common difficulties, such as zero slope at iteration point, and
+// convergence problems.
+//
+// Bairstow's method is sensitive to the starting estimate. It is possible
+// for convergence to fail or for 'wild' values to trigger an overflow.
+//
+// It is advisable to institute traps for these problems. (To do!)
+//
+
+// look also at http://jean-pierre.moreau.pagesperso-orange.fr/Cplus/bairstow_cpp.txt
+
+void find_quad(double *a,int n,double *b,double *quad,double *err, int *iter)
+{
+    double *c,dn,dr,ds,drn,dsn,eps,r,s, o_r, o_s;
+
+    c = new double [n+1];
+    c[0] = 1.0;
+    r = quad[1];
+    s = quad[0];
+    eps = 1e-15;
+    *iter = 1;
+    
+    double t = 10000000.0;
+
+    do {
+        //if (*iter > maxiter) break;
+        /*
+        if (((*iter) % 200) == 0) {
+            eps *= 10.0;
+		}
+        */
+		b[1] = a[1] - r;
+		c[1] = b[1] - r;
+
+		for (int i=2;i<=n;i++){
+			b[i] = a[i] - r * b[i-1] - s * b[i-2];
+			c[i] = b[i] - r * c[i-1] - s * c[i-2];
+		}
+		dn=c[n-1] * c[n-3] - c[n-2] * c[n-2];
+		drn=b[n] * c[n-3] - b[n-1] * c[n-2];
+		dsn=b[n-1] * c[n-1] - b[n] * c[n-2];
+
+        if (fabs(dn) < 1e-10) {
+            if (dn < 0.0) dn = -1e-8;
+            else dn = 1e-8;
+        }
+        dr = drn / dn;
+        ds = dsn / dn;
+		r += dr;
+		s += ds;
+        (*iter)++;
+        
+        if ((fabs(dr)+fabs(ds)) < t){
+            t = fabs(dr)+fabs(ds);
+            o_r = r;
+            o_s = s;
+        }
+      
+    } while ( (fabs(dr)+fabs(ds)) > eps && *iter < maxiter);
+    quad[0] = o_s;
+    quad[1] = o_r;
+    *err = t;
+    delete [] c;
+    return;
+}
+
+
+//
+// Differentiate polynomial 'a' returning result in 'b'. 
+//
+void diff_poly(double *a,int n,double *b)
+{
+    double coef;
+    int i;
+
+    coef = (double)n;
+    b[0] = 1.0;
+    for (i=1;i<n;i++) {
+        b[i] = a[i]*((double)(n-i))/coef;            
+    }
+}
+//
+// Attempt to find a reliable estimate of a quadratic factor using modified
+// Bairstow's method with provisions for 'digging out' factors associated
+// with multiple roots.
+//
+// This resursive routine operates on the principal that differentiation of
+// a polynomial reduces the order of all multiple roots by one, and has no
+// other roots in common with it. If a root of the differentiated polynomial
+// is a root of the original polynomial, there must be multiple roots at
+// that location. The differentiated polynomial, however, has lower order
+// and is easier to solve.
+//
+// When the original polynomial exhibits convergence problems in the
+// neighborhood of some potential root, a best guess is obtained and tried
+// on the differentiated polynomial. The new best guess is applied
+// recursively on continually differentiated polynomials until failure
+// occurs. At this point, the previous polynomial is accepted as that with
+// the least number of roots at this location, and its estimate is
+// accepted as the root.
+//
+void recurse(double *a,int n,double *b,int m,double *quad,
+    double *err,int *iter)
+{
+    double *c,*x,rs[2],tst;
+
+    if (fabs(b[m]) < 1e-16) m--;    // this bypasses roots at zero
+    if (m == 2) {
+        quad[0] = b[2];
+        quad[1] = b[1];
+        *err = 0;
+        *iter = 0;
+        return;
+    }
+    c = new double [m+1];
+    x = new double [n+1];
+    c[0] = x[0] = 1.0;
+    rs[0] = quad[0];
+    rs[1] = quad[1];
+    *iter = 0;
+    find_quad(b,m,c,rs,err,iter);
+    tst = fabs(rs[0]-quad[0])+fabs(rs[1]-quad[1]);
+    if (*err < 1e-12) {
+        quad[0] = rs[0];
+        quad[1] = rs[1];
+    }
+// tst will be 'large' if we converge to wrong root
+    if (((*iter > 5) && (tst < 1e-4)) || ((*iter > 20) && (tst < 1e-1))) {
+        diff_poly(b,m,c);
+        recurse(a,n,c,m-1,rs,err,iter);
+        quad[0] = rs[0];
+        quad[1] = rs[1];
+    }
+    delete [] x;
+    delete [] c;
+}
+//
+// Top level routine to manage the determination of all roots of the given
+// polynomial 'a', returning the quadratic factors (and possibly one linear
+// factor) in 'x'.
+// 
+void get_quads(double *a,int n,double *quad,double *x)
+{
+    double *b, *z, err, tmp;
+    int iter, m;
+
+    if ((tmp = a[0]) != 1.0) {
+        a[0] = 1.0;
+        for (int i=1; i<=n; i++) {
+            a[i] /= tmp;
+        }
+    }
+    if (n == 2) {
+        x[0] = a[1];
+        x[1] = a[2];
+        return;
+    }
+    else if (n == 1) {
+        x[0] = a[1];
+        return;
+    }
+    m = n;
+    b = new double [n+1];
+    z = new double [n+1];
+    b[0] = 1.0;
+    for (int i=0; i<=n; i++) {
+        z[i] = a[i];
+        x[i] = 0.0;
+    }
+    do {            
+        if (n > m) {
+            quad[0] = 3.14159e-1;
+            quad[1] = 2.78127e-1;
+        }
+        do {                    // This loop tries to assure convergence
+            //for (i=0;i<5;i++) {
+            find_quad(z,m,b,quad,&err,&iter);
+
+            if ((err > 1e-7) || (iter > maxiter)) {
+                diff_poly(z,m,b);
+                recurse(z,m,b,m-1,quad,&err,&iter);
+            }
+            deflate(z,m,b,quad,&err);
+            if (err > minerr){
+                quad[0] = ( (float)rand()/((float)RAND_MAX/10.0) ) - 5.0;
+                quad[1] = ( (float)rand()/((float)RAND_MAX/10.0) ) - 5.0;
+            }
+            /*
+            if (err < (minerr/2.0)) break;
+                // quad[0] = random(8) - 4.0;
+            quad[0] = ( (float)rand()/((float)RAND_MAX/8.0) ) - 4.0;
+                // quad[1] = random(8) - 4.0;
+            quad[1] = ( (float)rand()/((float)RAND_MAX/8.0) ) - 4.0;
+           // }
+            */
+           /* if (err > 0.01) {
+                printf("Error! Convergence failure in quadratic x^2 + r*x + s.");
+                exit(1);
+            }*/
+        } while (err > minerr);
+        x[m-2] = quad[1];
+        x[m-1] = quad[0];
+        m -= 2;
+        for (int i=0; i<=m; i++) {
+            z[i] = b[i];
+        }
+    } while (m > 2);
+    if (m == 2) {
+        x[0] = b[1];
+        x[1] = b[2];
+    }
+    else x[0] = b[1];
+    delete [] z;
+    delete [] b;
+}
+
+/*
+int main()
+{
+    double a[21],x[21],wr[21],wi[21],quad[2],err,t;
+    int n,iter,i,numr;
+
+    cout << "Polynomial order (1 <= n <= 20): ";
+    cin >> n;
+    if ((n < 1) || (n > 20)) {
+        cout << "Error! Invalid order: n = " << n << endl;
+        return 1;
+    }
+// get coefficients of polynomial
+    cout << "Enter coefficients, high order to low order" << endl;
+    for (i=0;i<=n;i++) {
+        cout << "C[" << n-i << "] * x^" << n-i << " : ";
+        cin >> a[i];
+        if (a[0] == 0) {
+            cout << "Error! Highest coefficient cannot be 0." << endl;
+            return 0;
+        }
+    }
+    if (a[n] == 0) {
+        cout << "Error! Lowest coefficient (constant term) cannot be 0." << endl;
+        return 0;
+    }
+// initialize estimate for 1st root pair 
+    quad[0] = 2.71828e-1;
+    quad[1] = 3.14159e-1;
+//    cout << "Estimate for 'R': ";
+//    cin >> quad[1];
+//    cout << "Estimate for 'S': ";
+//    cin >> quad[0];
+// get roots
+    get_quads(a,n,quad,x);
+    numr = roots(x,n,wr,wi);
+    
+    cout << endl << "Roots (" << numr << " found):" << endl;
+    cout.setf(ios::showpoint|ios::showpos|ios::left|ios::scientific);
+    cout.precision(15);
+    for (i=0;i<n;i++) {
+        if ((wr[i] != 0.0) || (wi[i] != 0.0))
+            cout << wr[i] << " " << wi[i] << "I" << endl;
+    }
+    return 0;
+}
+*/
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.h
new file mode 100644
index 0000000..6f787ca
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/bbpr.h
@@ -0,0 +1,22 @@
+/**
+ * @file bbpr.h
+ *
+ * Finds all roots of polynomial by first finding quadratic
+ * factors using Bairstow's method, then extracting roots
+ * from quadratics. Implements new algorithm for managing
+ * multiple roots.
+ *
+ * @copyright
+ * Copyright (C) 2002, 2003, C. Bond.
+ * All rights reserved.
+ *
+ * @see http://www.crbond.com/
+ */
+
+#ifndef _bbpr_h_
+#define _bbpr_h_
+
+int roots(double *a,int n,double *wr,double *wi);
+void get_quads(double *a,int n,double *quad,double *x);
+
+#endif /* _bbpr_h_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.cpp
new file mode 100644
index 0000000..f468dc8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.cpp
@@ -0,0 +1,766 @@
+/**
+ * @file rpoly.cpp
+ * @brief Jenkins-Traub real polynomial root finder.
+ *
+ * @copyright
+ * Copyright (C) 2002, C. Bond.
+ * All rights reserved.
+ *
+ * @see http://www.crbond.com/
+ *
+ *      Translation of TOMS493 from FORTRAN to C. This
+ *      implementation of Jenkins-Traub partially adapts
+ *      the original code to a C environment by restruction
+ *      many of the 'goto' controls to better fit a block
+ *      structured form. It also eliminates the global memory
+ *      allocation in favor of local, dynamic memory management.
+ *
+ *      The calling conventions are slightly modified to return
+ *      the number of roots found as the function value.
+ *
+ *      INPUT:
+ *      op - double precision vector of coefficients in order of
+ *              decreasing powers.
+ *      degree - integer degree of polynomial
+ *
+ *      OUTPUT:
+ *      zeror,zeroi - output double precision vectors of the
+ *              real and imaginary parts of the zeros.
+ *
+ *      RETURN:
+ *      returnval:   -1 if leading coefficient is zero, otherwise
+ *                  number of roots found. 
+ */
+
+#include <stdio.h>
+#include <time.h>
+#include <math.h>
+#include <stdlib.h>
+
+void quad(double a,double b1,double c,double *sr,double *si,
+        double *lr,double *li);
+void fxshfr(int l2, int *nz);
+void quadit(double *uu,double *vv,int *nz);
+void realit(double sss, int *nz, int *iflag);
+void calcsc(int *type);
+void nextk(int *type);
+void newest(int type,double *uu,double *vv);
+void quadsd(int n,double *u,double *v,double *p,double *q,
+        double *a,double *b);
+double *p,*qp,*k,*qk,*svk;
+double sr,si,u,v,a,b,c,d,a1,a2;
+double a3,a6,a7,e,f,g,h,szr,szi,lzr,lzi;
+double eta,are,mre;
+int n,nn,nmi,zerok;
+static int itercnt;
+
+int rpoly(double *op, int degree, double *zeror, double *zeroi, int info[] ) 
+{
+    double t,aa,bb,cc,*temp,factor,rot;
+    double *pt;
+    double lo,max,min,xx,yy,cosr,sinr,xxx,x,sc,bnd;
+    double xm,ff,df,dx,infin,smalno,base;
+    int cnt,nz,i,j,jj,l,nm1,zerok;
+    long sec;
+
+    sec = clock();
+
+/*  The following statements set machine constants. */
+    base = 2.0;
+    eta = 2.22e-16;
+    infin = 3.4e38;
+    smalno = 1.2e-38;
+
+    are = eta;
+    mre = eta;
+    lo = smalno/eta;
+/*  Initialization of constants for shift rotation. */        
+    xx = sqrt(0.5);
+    yy = -xx;
+    rot = 94.0;
+    rot *= 0.017453293;
+    cosr = cos(rot);
+    sinr = sin(rot);
+    n = degree;
+/*  Algorithm fails of the leading coefficient is zero. */
+    if (op[0] == 0.0) return -1;
+/*  Remove the zeros at the origin, if any. */
+    while (op[n] == 0.0) {
+        j = degree - n;
+        zeror[j] = 0.0;
+        zeroi[j] = 0.0;
+        n--;
+    }
+    if (n < 1) return degree;
+/*
+ *  Allocate memory here
+ */
+    temp = new double [degree+1];
+    pt = new double [degree+1];
+    p = new double [degree+1];
+    qp = new double [degree+1];
+    k = new double [degree+1];
+    qk = new double [degree+1];
+    svk = new double [degree+1];
+/*  Make a copy of the coefficients. */
+    for (i=0;i<=n;i++)
+        p[i] = op[i];
+/*  Start the algorithm for one zero. */
+_40:        
+    itercnt = 0;
+    if (n == 1) {
+        zeror[degree-1] = -p[1]/p[0];
+        zeroi[degree-1] = 0.0;
+        n -= 1;
+        if( info != NULL )
+           info[ degree ] = 0;
+
+        goto _99;
+    }
+/*  Calculate the final zero or pair of zeros. */
+    if (n == 2) {
+        quad(p[0],p[1],p[2],&zeror[degree-2],&zeroi[degree-2],
+            &zeror[degree-1],&zeroi[degree-1]);
+        n -= 2;
+        if( info != NULL )
+           info[ degree ] = info[ degree - 1] = 0;
+        goto _99;
+    }
+/*  Find largest and smallest moduli of coefficients. */
+    max = 0.0;
+    min = infin;
+    for (i=0;i<=n;i++) {
+        x = fabs(p[i]);
+        if (x > max) max = x;
+        if (x != 0.0 && x < min) min = x;
+    }
+/*  Scale if there are large or very small coefficients.
+ *  Computes a scale factor to multiply the coefficients of the
+ *  polynomial. The scaling si done to avoid overflow and to
+ *  avoid undetected underflow interfering with the convergence
+ *  criterion. The factor is a power of the base.
+ */
+    sc = lo/min;
+    if (sc > 1.0 && infin/sc < max) goto _110;
+    if (sc <= 1.0) {
+        if (max < 10.0) goto _110;
+        if (sc == 0.0)
+            sc = smalno;
+    }
+    l = (int)(log(sc)/log(base) + 0.5);
+    factor = pow(base*1.0,l);
+    if (factor != 1.0) {
+        for (i=0;i<=n;i++) 
+            p[i] = factor*p[i];     /* Scale polynomial. */
+    }
+_110:
+/*  Compute lower bound on moduli of roots. */
+    for (i=0;i<=n;i++) {
+        pt[i] = (fabs(p[i]));
+    }
+    pt[n] = - pt[n];
+/*  Compute upper estimate of bound. */
+    x = exp((log(-pt[n])-log(pt[0])) / (double)n);
+/*  If Newton step at the origin is better, use it. */        
+    if (pt[n-1] != 0.0) {
+        xm = -pt[n]/pt[n-1];
+        if (xm < x)  x = xm;
+    }
+/*  Chop the interval (0,x) until ff <= 0 */
+    while (1) {
+        xm = x*0.1;
+        ff = pt[0];
+        for (i=1;i<=n;i++) 
+            ff = ff*xm + pt[i];
+        if (ff <= 0.0) break;
+        x = xm;
+    }
+    dx = x;
+/*  Do Newton interation until x converges to two 
+ *  decimal places. 
+ */
+    while (fabs(dx/x) > 0.005) {
+        ff = pt[0];
+        df = ff;
+        for (i=1;i<n;i++) { 
+            ff = ff*x + pt[i];
+            df = df*x + ff;
+        }
+        ff = ff*x + pt[n];
+        dx = ff/df;
+        x -= dx;
+        itercnt++;
+    }
+    bnd = x;
+/*  Compute the derivative as the initial k polynomial
+ *  and do 5 steps with no shift.
+ */
+    nm1 = n - 1;
+    for (i=1;i<n;i++)
+        k[i] = (double)(n-i)*p[i]/(double)n;
+    k[0] = p[0];
+    aa = p[n];
+    bb = p[n-1];
+    zerok = (k[n-1] == 0);
+    for(jj=0;jj<5;jj++) {
+        itercnt++;
+        cc = k[n-1];
+        if (!zerok) {
+/*  Use a scaled form of recurrence if value of k at 0 is nonzero. */             
+            t = -aa/cc;
+            for (i=0;i<nm1;i++) {
+                j = n-i-1;
+                k[j] = t*k[j-1]+p[j];
+            }
+            k[0] = p[0];
+            zerok = (fabs(k[n-1]) <= fabs(bb)*eta*10.0);
+        }
+        else {
+/*  Use unscaled form of recurrence. */
+            for (i=0;i<nm1;i++) {
+                j = n-i-1;
+                k[j] = k[j-1];
+            }
+            k[0] = 0.0;
+            zerok = (k[n-1] == 0.0);
+        }
+    }
+/*  Save k for restarts with new shifts. */
+    for (i=0;i<n;i++) 
+        temp[i] = k[i];
+/*  Loop to select the quadratic corresponding to each new shift. */
+    for (cnt = 0;cnt < 20;cnt++) {
+/*  Quadratic corresponds to a double shift to a            
+ *  non-real point and its complex conjugate. The point
+ *  has modulus bnd and amplitude rotated by 94 degrees
+ *  from the previous shift.
+ */ 
+        xxx = cosr*xx - sinr*yy;
+        yy = sinr*xx + cosr*yy;
+        xx = xxx;
+        sr = bnd*xx;
+        si = bnd*yy;
+        u = -2.0 * sr;
+        v = bnd;
+        fxshfr(20*(cnt+1),&nz);
+        if (nz != 0) {
+/*  The second stage jumps directly to one of the third
+ *  stage iterations and returns here if successful.
+ *  Deflate the polynomial, store the zero or zeros and
+ *  return to the main algorithm.
+ */
+            j = degree - n;
+            zeror[j] = szr;
+            zeroi[j] = szi;
+            if( info != NULL )
+               info[ j + 1 ] = itercnt;
+            n -= nz;
+            for (i=0;i<=n;i++)
+                p[i] = qp[i];
+            if (nz != 1) {
+                zeror[j+1] = lzr;
+                zeroi[j+1] = lzi;
+                if( info != NULL )
+                  info[ j + 2 ] = 0;
+            }
+            goto _40;
+        }
+/*  If the iteration is unsuccessful another quadratic
+ *  is chosen after restoring k.
+ */
+        for (i=0;i<n;i++) {
+            k[i] = temp[i];
+        }
+    } 
+/*  Return with failure if no convergence after 20 shifts. */
+_99:
+    delete [] svk;
+    delete [] qk;
+    delete [] k;
+    delete [] qp;
+    delete [] p;
+    delete [] pt;
+    delete [] temp;
+
+    if( info != NULL ){
+        info[ 0 ] = clock() - sec;
+        info[ 0 ] *= 1000;
+        info[ 0 ] /= CLOCKS_PER_SEC;
+    }
+
+    return degree - n;
+}
+/*  Computes up to L2 fixed shift k-polynomials,
+ *  testing for convergence in the linear or quadratic
+ *  case. Initiates one of the variable shift
+ *  iterations and returns with the number of zeros
+ *  found.
+ */
+void fxshfr(int l2,int *nz)
+{
+    double svu,svv,ui,vi,s;
+    double betas,betav,oss,ovv,ss,vv,ts,tv;
+    double ots,otv,tvv,tss;
+    int type, i,j,iflag,vpass,spass,vtry,stry;
+
+    *nz = 0;
+    betav = 0.25;
+    betas = 0.25;
+    oss = sr;
+    ovv = v;
+/*  Evaluate polynomial by synthetic division. */
+    quadsd(n,&u,&v,p,qp,&a,&b);
+    calcsc(&type);
+    for (j=0;j<l2;j++) {
+/*  Calculate next k polynomial and estimate v. */
+	nextk(&type);
+	calcsc(&type);
+	newest(type,&ui,&vi);
+	vv = vi;
+/*  Estimate s. */
+        ss = 0.0;
+        if (k[n-1] != 0.0) ss = -p[n]/k[n-1];
+	tv = 1.0;
+	ts = 1.0;
+	if (j == 0 || type == 3) goto _70;
+/*  Compute relative measures of convergence of s and v sequences. */
+        if (vv != 0.0) tv = fabs((vv-ovv)/vv);
+        if (ss != 0.0) ts = fabs((ss-oss)/ss);
+/*  If decreasing, multiply two most recent convergence measures. */
+	tvv = 1.0;
+	if (tv < otv) tvv = tv*otv;
+	tss = 1.0;
+	if (ts < ots) tss = ts*ots;
+/*  Compare with convergence criteria. */
+	vpass = (tvv < betav);
+	spass = (tss < betas);
+	if (!(spass || vpass)) goto _70;
+/*  At least one sequence has passed the convergence test.
+ *  Store variables before iterating.
+ */
+	svu = u;
+	svv = v;
+	for (i=0;i<n;i++) {
+		svk[i] = k[i];
+	}
+	s = ss;
+/*  Choose iteration according to the fastest converging
+ *  sequence.
+ */
+	vtry = 0;
+	stry = 0;
+	if ((spass && (!vpass)) || tss < tvv) goto _40;
+_20:        
+	quadit(&ui,&vi,nz);
+        if (*nz > 0) return;
+/*  Quadratic iteration has failed. Flag that it has
+ *  been tried and decrease the convergence criterion.
+ */
+	vtry = 1;
+	betav *= 0.25;
+/*  Try linear iteration if it has not been tried and
+ *  the S sequence is converging.
+ */
+	if (stry || !spass) goto _50;
+	for (i=0;i<n;i++) {
+		k[i] = svk[i];
+	}
+_40:
+	realit(s,nz,&iflag);
+	if (*nz > 0) return;
+/*  Linear iteration has failed. Flag that it has been
+ *  tried and decrease the convergence criterion.
+ */
+	stry = 1;
+	betas *=0.25;
+	if (iflag == 0) goto _50;
+/*  If linear iteration signals an almost double real
+ *  zero attempt quadratic iteration.
+ */
+	ui = -(s+s);
+	vi = s*s;
+	goto _20;
+/*  Restore variables. */
+_50:
+	u = svu;
+	v = svv;
+	for (i=0;i<n;i++) {
+		k[i] = svk[i];
+	}
+/*  Try quadratic iteration if it has not been tried
+ *  and the V sequence is convergin.
+ */
+	if (vpass && !vtry) goto _20;
+/*  Recompute QP and scalar values to continue the
+ *  second stage.
+ */
+        quadsd(n,&u,&v,p,qp,&a,&b);
+	calcsc(&type);
+_70:
+	ovv = vv;
+	oss = ss;
+	otv = tv;
+	ots = ts;
+    }
+}
+/*  Variable-shift k-polynomial iteration for a
+ *  quadratic factor converges only if the zeros are
+ *  equimodular or nearly so.
+ *  uu, vv - coefficients of starting quadratic.
+ *  nz - number of zeros found.
+ */
+void quadit(double *uu,double *vv,int *nz)
+{
+    double ui,vi;
+    double mp,omp,ee,relstp,t,zm;
+    int type,i,j,tried;
+
+    *nz = 0;
+    tried = 0;
+    u = *uu;
+    v = *vv;
+    j = 0;
+/*  Main loop. */
+_10:    
+   itercnt++;
+    quad(1.0,u,v,&szr,&szi,&lzr,&lzi);
+/*  Return if roots of the quadratic are real and not
+ *  close to multiple or nearly equal and of opposite
+ *  sign.
+ */
+    if (fabs(fabs(szr)-fabs(lzr)) > 0.01 * fabs(lzr)) return;
+/*  Evaluate polynomial by quadratic synthetic division. */
+    quadsd(n,&u,&v,p,qp,&a,&b);
+    mp = fabs(a-szr*b) + fabs(szi*b);
+/*  Compute a rigorous bound on the rounding error in
+ *  evaluating p.
+ */
+    zm = sqrt(fabs(v));
+    ee = 2.0*fabs(qp[0]);
+    t = -szr*b;
+    for (i=1;i<n;i++) {
+       ee = ee*zm + fabs(qp[i]);
+    }
+    ee = ee*zm + fabs(a+t);
+    ee *= (5.0 *mre + 4.0*are);
+    ee = ee - (5.0*mre+2.0*are)*(fabs(a+t)+fabs(b)*zm);   
+    ee = ee + 2.0*are*fabs(t);
+/*  Iteration has converged sufficiently if the
+ *  polynomial value is less than 20 times this bound.
+ */
+    if (mp <= 20.0*ee) {
+        *nz = 2;
+        return;
+    }
+    j++;
+/*  Stop iteration after 20 steps. */
+    if (j > 20) return;
+    if (j < 2) goto _50;
+    if (relstp > 0.01 || mp < omp || tried) goto _50;
+/*  A cluster appears to be stalling the convergence.
+ *  Five fixed shift steps are taken with a u,v close
+ *  to the cluster.
+ */
+    if (relstp < eta) relstp = eta;
+    relstp = sqrt(relstp);
+    u = u - u*relstp;
+    v = v + v*relstp;
+    quadsd(n,&u,&v,p,qp,&a,&b);
+    for (i=0;i<5;i++) {
+	calcsc(&type);
+	nextk(&type);
+    }
+    tried = 1;
+    j = 0;
+_50:
+    omp = mp;
+/*  Calculate next k polynomial and new u and v. */
+    calcsc(&type);
+    nextk(&type);
+    calcsc(&type);
+    newest(type,&ui,&vi);
+/*  If vi is zero the iteration is not converging. */
+    if (vi == 0.0) return;
+    relstp = fabs((vi-v)/vi);
+    u = ui;
+    v = vi;
+    goto _10;
+}
+/*  Variable-shift H polynomial iteration for a real zero.
+ *  sss - starting iterate
+ *  nz  - number of zeros found
+ *  iflag - flag to indicate a pair of zeros near real axis.
+ */
+void realit(double sss, int *nz, int *iflag)
+{
+    double pv,kv,t,s;
+    double ms,mp,omp,ee;
+    int i,j;
+
+    *nz = 0;
+    s = sss;
+    *iflag = 0;
+    j = 0;
+/*  Main loop */
+    while (1) {
+        itercnt++;
+        pv = p[0];
+/*  Evaluate p at s. */
+        qp[0] = pv;
+        for (i=1;i<=n;i++) {
+            pv = pv*s + p[i];
+            qp[i] = pv;
+        }
+        mp = fabs(pv);
+/*  Compute a rigorous bound on the error in evaluating p. */
+        ms = fabs(s);
+        ee = (mre/(are+mre))*fabs(qp[0]);
+        for (i=1;i<=n;i++) {
+            ee = ee*ms + fabs(qp[i]);
+        }
+/*  Iteration has converged sufficiently if the polynomial
+ *  value is less than 20 times this bound.
+ */
+        if (mp <= 20.0*((are+mre)*ee-mre*mp)) {
+            *nz = 1;
+            szr = s;
+            szi = 0.0;   return ;                     // HVE return added
+        }
+        j++;
+/*  Stop iteration after 10 steps. */
+        if (j > 10) return;
+        if (j < 2) goto _50;
+        if (fabs(t) > 0.001*fabs(s-t) || mp < omp) goto _50;
+/*  A cluster of zeros near the real axis has been
+ *  encountered. Return with iflag set to initiate a
+ *  quadratic iteration.
+ */
+        *iflag = 1;  sss =s;                          // HVE sss=s added
+        return;
+/*  Return if the polynomial value has increased significantly. */
+_50:
+        omp = mp;
+/*  Compute t, the next polynomial, and the new iterate. */
+        kv = k[0];
+        qk[0] = kv;
+        for (i=1;i<n;i++) {
+            kv = kv*s + k[i];
+            qk[i] = kv;
+        }
+        if (fabs(kv) <= fabs(k[n-1])*10.0*eta) {         // HVE n -> n-1
+/*  Use unscaled form. */
+            k[0] = 0.0;
+            for (i=1;i<n;i++) {
+                k[i] = qk[i-1];
+            }
+        }
+        else {
+/*  Use the scaled form of the recurrence if the value
+ *  of k at s is nonzero.
+ */
+            t = -pv/kv;
+            k[0] = qp[0];
+            for (i=1;i<n;i++) {
+                k[i] = t*qk[i-1] + qp[i];
+            }
+        }
+        kv = k[0];
+        for (i=1;i<n;i++) {
+            kv = kv*s + k[i];
+        }
+        t = 0.0;
+        if (fabs(kv) > fabs(k[n-1]*10.0*eta)) t = -pv/kv;
+        s += t;
+    }
+}
+
+/*  This routine calculates scalar quantities used to
+ *  compute the next k polynomial and new estimates of
+ *  the quadratic coefficients.
+ *  type - integer variable set here indicating how the
+ *  calculations are normalized to avoid overflow.
+ */
+void calcsc(int *type)
+{
+/*  Synthetic division of k by the quadratic 1,u,v */    
+    quadsd(n-1,&u,&v,k,qk,&c,&d);
+    if (fabs(c) > fabs(k[n-1]*100.0*eta)) goto _10;
+    if (fabs(d) > fabs(k[n-2]*100.0*eta)) goto _10;
+    *type = 3;
+/*  Type=3 indicates the quadratic is almost a factor of k. */
+    return;
+_10:
+    if (fabs(d) < fabs(c)) {
+        *type = 1;
+/*  Type=1 indicates that all formulas are divided by c. */   
+        e = a/c;
+        f = d/c;
+        g = u*e;
+        h = v*b;
+        a3 = a*e + (h/c+g)*b;
+        a1 = b - a*(d/c);
+        a7 = a + g*d + h*f;
+        return;
+    }
+    *type = 2;
+/*  Type=2 indicates that all formulas are divided by d. */
+	e = a/d;
+	f = c/d;
+	g = u*b;
+	h = v*b;
+	a3 = (a+g)*e + h*(b/d);
+	a1 = b*f-a;
+	a7 = (f+u)*a + h;
+}
+/*  Computes the next k polynomials using scalars 
+ *  computed in calcsc.
+ */
+void nextk(int *type)
+{
+    double temp;
+	int i;
+
+    if (*type == 3) {
+/*  Use unscaled form of the recurrence if type is 3. */
+        k[0] = 0.0;
+        k[1] = 0.0;
+        for (i=2;i<n;i++) {
+            k[i] = qk[i-2];
+        }
+        return;
+    }
+    temp = a;
+    if (*type == 1) temp = b;
+    if (fabs(a1) <= fabs(temp)*eta*10.0) {
+/*  If a1 is nearly zero then use a special form of the
+ *  recurrence.
+ */
+        k[0] = 0.0;
+        k[1] = -a7*qp[0];
+        for(i=2;i<n;i++) {
+            k[i] = a3*qk[i-2] - a7*qp[i-1];
+        }   return;           // HVE return added
+    }
+/*  Use scaled form of the recurrence. */
+    a7 /= a1;
+    a3 /= a1;
+    k[0] = qp[0];
+    k[1] = qp[1] - a7*qp[0];
+    for (i=2;i<n;i++) {
+	k[i] = a3*qk[i-2] - a7*qp[i-1] + qp[i];
+    }
+}
+/*  Compute new estimates of the quadratic coefficients
+ *  using the scalars computed in calcsc.
+ */
+void newest(int type,double *uu,double *vv)
+{
+    double a4,a5,b1,b2,c1,c2,c3,c4,temp;
+
+/* Use formulas appropriate to setting of type. */
+    if (type == 3) {
+/*  If type=3 the quadratic is zeroed. */
+        *uu = 0.0;
+        *vv = 0.0;
+        return;
+    }
+    if (type == 2) {
+        a4 = (a+g)*f + h;
+        a5 = (f+u)*c + v*d;
+    }
+    else {
+        a4 = a + u*b +h*f;
+        a5 = c + (u+v*f)*d;
+    }
+/*  Evaluate new quadratic coefficients. */
+    b1 = -k[n-1]/p[n];
+    b2 = -(k[n-2]+b1*p[n-1])/p[n];
+    c1 = v*b2*a1;
+    c2 = b1*a7;
+    c3 = b1*b1*a3;
+    c4 = c1 - c2 - c3;
+    temp = a5 + b1*a4 - c4;
+    if (temp == 0.0) {
+        *uu = 0.0;
+        *vv = 0.0;
+        return;
+    }
+    *uu = u - (u*(c3+c2)+v*(b1*a1+b2*a7))/temp;
+    *vv = v*(1.0+c4/temp);
+    return;
+}
+
+/*  Divides p by the quadratic 1,u,v placing the quotient
+ *  in q and the remainder in a,b.
+ */
+void quadsd(int nn,double *u,double *v,double *p,double *q,
+    double *a,double *b)
+{
+    double c;
+    int i;
+
+    *b = p[0];
+    q[0] = *b;
+    *a = p[1] - (*b)*(*u);
+    q[1] = *a;
+    for (i=2;i<=nn;i++) {
+        c = p[i] - (*a)*(*u) - (*b)*(*v);
+	q[i] = c;
+	*b = *a;
+	*a = c;
+    }	
+}
+/*  Calculate the zeros of the quadratic a*z^2 + b1*z + c.
+ *  The quadratic formula, modified to avoid overflow, is used 
+ *  to find the larger zero if the zeros are real and both
+ *  are complex. The smaller real zero is found directly from 
+ *  the product of the zeros c/a.
+ */
+void quad(double a,double b1,double c,double *sr,double *si,
+        double *lr,double *li)
+{
+    double b,d,e;
+
+    if (a == 0.0) {         /* less than two roots */
+        if (b1 != 0.0) *sr = -c/b1;
+        else  *sr = 0.0;
+        *lr = 0.0;
+        *si = 0.0;
+        *li = 0.0;
+        return;
+    }
+    if (c == 0.0) {         /* one real root, one zero root */
+        *sr = 0.0;
+	*lr = -b1/a;
+        *si = 0.0;
+        *li = 0.0;
+        return;
+    }
+/* Compute discriminant avoiding overflow. */
+    b = b1/2.0;
+    if (fabs(b) < fabs(c)) { 
+        if (c < 0.0) e = -a;
+	else e = a;
+        e = b*(b/fabs(c)) - e;
+        d = sqrt(fabs(e))*sqrt(fabs(c));
+    }
+    else {
+	e = 1.0 - (a/b)*(c/b);
+        d = sqrt(fabs(e))*fabs(b);
+    }
+    if (e < 0.0) {      /* complex conjugate zeros */
+	*sr = -b/a;
+	*lr = *sr;
+        *si = fabs(d/a);
+	*li = -(*si);
+    }
+    else {
+        if (b >= 0.0) d = -d;  /* real zeros. */
+		*lr = (-b+d)/a;
+                *sr = 0.0;
+                if (*lr != 0.0) *sr = (c/ *lr)/a;
+                *si = 0.0;
+                *li = 0.0;
+	}
+}
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.h
new file mode 100644
index 0000000..34e6407
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/lpcformants/rpoly.h
@@ -0,0 +1,40 @@
+/**
+ * @file rpoly.h
+ * @brief Jenkins-Traub real polynomial root finder.
+ *
+ * @copyright
+ * Copyright (C) 2002, C. Bond.
+ * All rights reserved.
+ *
+ * @see http://www.crbond.com/
+ *
+ *      Translation of TOMS493 from FORTRAN to C. This
+ *      implementation of Jenkins-Traub partially adapts
+ *      the original code to a C environment by restruction
+ *      many of the 'goto' controls to better fit a block
+ *      structured form. It also eliminates the global memory
+ *      allocation in favor of local, dynamic memory management.
+ *
+ *      The calling conventions are slightly modified to return
+ *      the number of roots found as the function value.
+ *
+ *      INPUT:
+ *      op - double precision vector of coefficients in order of
+ *              decreasing powers.
+ *      degree - integer degree of polynomial
+ *
+ *      OUTPUT:
+ *      zeror,zeroi - output double precision vectors of the
+ *              real and imaginary parts of the zeros.
+ *
+ *      RETURN:
+ *      returnval:   -1 if leading coefficient is zero, otherwise
+ *                  number of roots found.
+ */
+
+#ifndef _rpoly_h_
+#define _rpoly_h_
+
+int rpoly(double *op, int degree, double *zeror, double *zeroi, int info[]);
+
+#endif /* _rpoly_h_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta.h
new file mode 100644
index 0000000..43d9e99
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta.h
@@ -0,0 +1,47 @@
+/**
+ * @file   rta.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  Base header file for rta library.
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_H_
+#define _RTA_H_ 1
+
+/** rta_configuration.h must be user-defined. */
+#include "rta_configuration.h"
+
+#include "rta_types.h"
+
+#endif /* _RTA_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.c
new file mode 100644
index 0000000..6d4e9aa
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.c
@@ -0,0 +1,94 @@
+/**
+ * @file   rta_bpf.c
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief  Break-point function utilities.
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_bpf.h"
+#include "rta_float.h" // for DBL_MAX
+
+static int rta_bf_get_index (rta_bpf_t *bpf, double time)
+{
+  int size  = rta_bpf_get_size(bpf);
+  int index = bpf->index;
+  
+  if (index >= size - 1)
+    index = size - 2;
+  
+  /* search index */
+  if (time >= rta_bpf_get_time(bpf, index + 1))
+  {
+    index++;
+	
+    while (time >= rta_bpf_get_time(bpf, index + 1))
+      index++;
+  }
+  else if (time < rta_bpf_get_time(bpf, index))
+  {
+    index--;
+	
+    while (time < rta_bpf_get_time(bpf, index))
+      index--;
+  }
+  else if (rta_bpf_get_slope(bpf, index) == DBL_MAX)
+  {
+    index++;
+	
+    while (rta_bpf_get_slope(bpf, index) == DBL_MAX)
+      index++;
+  }
+  
+  bpf->index = index;
+  
+  return index;
+}
+
+
+double rta_bpf_get_interpolated (rta_bpf_t *self, double time)
+{
+  double duration = rta_bpf_get_duration(self);
+  
+  if (time <= rta_bpf_get_time(self, 0))
+    return rta_bpf_get_value(self, 0);
+  else if (time >= duration)
+  {
+    int size = rta_bpf_get_size(self);
+    return rta_bpf_get_value(self, size - 1);
+  }
+  else
+  {
+    int index = rta_bf_get_index(self, time); 
+    return rta_bpf_get_value(self, index) + (time - rta_bpf_get_time(self, index)) * rta_bpf_get_slope(self, index);
+  }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.h
new file mode 100644
index 0000000..19fa003
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_bpf.h
@@ -0,0 +1,86 @@
+/**
+ * @file   rta_bpf.h
+ * @author Norbert Schnell
+ * 
+ * @brief  Break-point function utilities.
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_BPF_H_
+#define _RTA_BPF_H_
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Break-point function (or time-tagged values).
+ *
+ * For the moment read only, since construction is done by binary-compatible bpf_t from FTM
+ */
+
+/* a single bpf point */
+typedef struct rta_bpf_point
+{
+  double time; /**< absolute break point time */
+  double value; /**< break point value */
+  double slope; /**< slope to next value */
+} rta_bpf_point_t;
+
+/** the break-point function itself 
+ *
+ * ATTENTION: must be binary-compatible with FTM struct bpfunc in ftmlib/classes/bpf.c!!!
+ */
+typedef struct _rta_bpf
+{
+  rta_bpf_point_t *points;	/**< break points ... */
+  int alloc;			/**< alloc ... */
+  int size;			/**< size ... */
+  int index;			/**< index cache for get_interpolated method */
+} rta_bpf_t;
+
+
+#define rta_bpf_get_size(b) ((b)->size)
+#define rta_bpf_get_time(b, i) ((b)->points[i].time)
+#define rta_bpf_get_value(b, i) ((b)->points[i].value)
+#define rta_bpf_get_slope(b, i) ((b)->points[i].slope)
+#define rta_bpf_get_duration(b) ((b)->points[(b)->size - 1].time)
+
+double rta_bpf_get_interpolated (rta_bpf_t *bpf, double time);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_BPF_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_complex.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_complex.h
new file mode 100644
index 0000000..ca2a5b8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_complex.h
@@ -0,0 +1,299 @@
+/**
+ * @file   rta_complex.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  rta_complex_t type warper for float, double or long double
+ * complex.
+ *
+ * Default is the same as RTA_REAL_TYPE. Define your RTA_COMPLEX_TYPE to
+ * override these.
+ * @see rta_configuration.h
+ * @see rta_real.h
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_COMPLEX_H_
+#define _RTA_COMPLEX_H_ 1
+
+#include "rta.h"
+
+/** default complex precision is the same as real precision */
+#ifndef RTA_COMPLEX_TYPE
+#define RTA_COMPLEX_TYPE RTA_REAL_TYPE
+#endif
+
+#ifdef WIN32
+
+#if (RTA_COMPLEX_TYPE == RTA_FLOAT_TYPE)
+#undef rta_complex_t
+
+typedef struct floatcomplex_
+{
+  float real;
+  float imag;
+} floatcomplex;
+
+#define rta_complex_t floatcomplex
+#define inline 
+
+static inline rta_complex_t rta_make_complex(float real, float imag)
+{
+	rta_complex_t z = {real, imag};
+	return z;
+}
+#endif
+
+#if (RTA_COMPLEX_TYPE == RTA_DOUBLE_TYPE)
+#undef rta_complex_t 
+
+typedef struct complex_
+{
+  double real;
+  double imag;
+} complex;
+
+#define rta_complex_t complex
+static inline rta_complex_t rta_make_complex(double real, double imag)
+{
+	rta_complex_t z = {real, imag};
+	return z;
+}
+#endif
+
+#if (RTA_COMPLEX_TYPE == RTA_LONG_DOUBLE_TYPE)
+#undef rta_complex_t
+
+typedef struct complex_
+{
+  long double real;
+  long double imag;
+} complex;
+
+#define rta_complex_t complex
+static inline rta_complex_t rta_make_complex(long double real, long double imag)
+{
+	rta_complex_t z = {real, imag};
+	return z;
+}
+#endif
+
+#define creal(z) ((z).real)
+#define cimag(z) ((z).imag)
+
+static inline rta_complex_t rta_add_complex(rta_complex_t a, rta_complex_t b)
+{
+	rta_complex_t z = {a.real + b.real, a.imag + b.imag};
+	return z;
+}
+
+static inline rta_complex_t rta_sub_complex(rta_complex_t a, rta_complex_t b)
+{
+	rta_complex_t z = {a.real - b.real, a.imag - b.imag};
+	return z;
+}
+
+static inline rta_complex_t rta_mul_complex(rta_complex_t a, rta_complex_t b)
+{
+	rta_complex_t z = {a.real * b.real - a.imag * b.imag, a.imag * b.real + a.real * b.imag};
+	return z;
+}
+
+static inline rta_complex_t rta_mul_complex_real(rta_complex_t a, float b)
+{
+	rta_complex_t z = {a.real * b, a.imag * b};
+	return z;
+}
+
+static inline rta_complex_t rta_div_complex(rta_complex_t a, rta_complex_t b)
+{
+	rta_complex_t z = {(a.real * b.real + a.imag * b.imag)/(b.real * b.real + b.imag * b.imag), (b.real * a.imag - a.real * b.imag) / (b.real * b.real + b.imag * b.imag)};
+	return z;
+}
+
+static inline rta_complex_t rta_conj(rta_complex_t a)
+{
+	rta_complex_t z = {a.real, -a.imag};
+	return z;
+}
+
+static inline void rta_set_complex_real(rta_complex_t a, float b)
+{
+	a.real = b;
+	a.imag = 0.0;
+}
+
+#define rta_cabs cabs
+#define rta_cacos cacos
+#define rta_cacosh cacosh
+#define rta_carg carg
+#define rta_casin casin
+#define rta_casinh casinh
+#define rta_catan catan
+#define rta_catanh catanh
+#define rta_ccos ccos
+#define rta_ccosh ccosh
+#define rta_cexp cexp
+#define rta_cimag cimag
+#define rta_clog clog
+#define rta_cpow cpow
+#define rta_cproj cproj
+#define rta_creal creal
+#define rta_csin csin
+#define rta_csinh csinh
+#define rta_csqrt csqrt
+#define rta_ctan ctan
+#define rta_ctanh ctanh
+
+#else
+
+#ifndef __cplusplus
+#include <complex.h>
+#else
+#include "/usr/include/complex.h"
+#endif
+
+#if (RTA_COMPLEX_TYPE == RTA_FLOAT_TYPE)
+#undef rta_complex_t
+#define rta_complex_t float complex
+
+static inline rta_complex_t rta_make_complex(float real, float imag)
+{
+#if (__STDC_VERSION__ > 199901L || __DARWIN_C_LEVEL >= __DARWIN_C_FULL) \
+     && defined __clang__
+  return CMPLX(real, imag);
+#else // old gcc way of creating a complex number
+  return (real + imag * I);
+#endif
+}
+
+#define rta_cabs cabsf
+#define rta_cacos cacosf
+#define rta_cacosh cacoshf
+#define rta_carg cargf
+#define rta_casin casinf
+#define rta_casinh casinhf
+#define rta_catan catanf
+#define rta_catanh catanhf
+#define rta_ccos ccosf
+#define rta_ccosh ccoshf
+#define rta_cexp cexpf
+#define rta_cimag cimagf
+#define rta_clog clogf
+#define rta_conj conjf
+#define rta_cpow cpowf
+#define rta_cproj cprojf
+#define rta_creal crealf
+#define rta_csin csinf
+#define rta_csinh csinhf
+#define rta_csqrt csqrtf
+#define rta_ctan ctanf
+#define rta_ctanh ctanhf
+
+#endif
+
+#if (RTA_COMPLEX_TYPE == RTA_DOUBLE_TYPE)
+#undef rta_complex_t 
+#define rta_complex_t double complex
+static inline rta_complex_t rta_make_complex(double real, double imag)
+{
+	return real + imag * I;
+}
+
+#define rta_cabs cabs
+#define rta_cacos cacos
+#define rta_cacosh cacosh
+#define rta_carg carg
+#define rta_casin casin
+#define rta_casinh casinh
+#define rta_catan catan
+#define rta_catanh catanh
+#define rta_ccos ccos
+#define rta_ccosh ccosh
+#define rta_cexp cexp
+#define rta_cimag cimag
+#define rta_clog clog
+#define rta_conj conj
+#define rta_cpow cpow
+#define rta_cproj cproj
+#define rta_creal creal
+#define rta_csin csin
+#define rta_csinh csinh
+#define rta_csqrt csqrt
+#define rta_ctan ctan
+#define rta_ctanh ctanh
+
+#endif
+
+#if (RTA_COMPLEX_TYPE == RTA_LONG_DOUBLE_TYPE)
+#undef rta_complex_t
+#define rta_complex_t long double complex
+static inline rta_complex_t rta_make_complex(long double real, long double imag)
+{
+	return real + imag * I;
+}
+
+#define rta_cabs cabsl
+#define rta_cacos cacosl
+#define rta_cacosh cacoshl
+#define rta_carg cargl
+#define rta_casin casinl
+#define rta_casinh casinhl
+#define rta_catan catanl
+#define rta_catanh catanhl
+#define rta_ccos ccosl
+#define rta_ccosh ccoshl
+#define rta_cexp cexpl
+#define rta_cimag cimagl
+#define rta_clog clogl
+#define rta_conj conjl
+#define rta_cpow cpowl
+#define rta_cproj cprojl
+#define rta_creal creall
+#define rta_csin csinl
+#define rta_csinh csinhl
+#define rta_csqrt csqrtl
+#define rta_ctan ctanl
+#define rta_ctanh ctanhl
+
+#endif
+
+#define rta_add_complex(a, b) ((a)+(b))
+#define rta_sub_complex(a, b) ((a)-(b))
+#define rta_mul_complex(a, b) ((a)*(b))
+#define rta_div_complex(a, b) ((a)/(b))
+#define rta_mul_complex_real(a, b) ((a)*(b))
+#define rta_set_complex_real(a, b) ((a) = (b))
+
+#endif /* WIN32 */
+
+#endif /* _RTA_COMPLEX_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_float.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_float.h
new file mode 100644
index 0000000..c9d996f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_float.h
@@ -0,0 +1,95 @@
+/**
+ * @file   rta_float.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  rta_real_t type wrapper for <float.h>
+ *
+ * Default is RTA_REAL_FLOAT. Define your RTA_REAL_TYPE (into
+ * rta_configuration.h) to override these.
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_FLOAT_H_
+#define _RTA_FLOAT_H_ 1
+
+#include "rta.h"
+
+/** @name Real type constants */
+/** @{ */
+#if (RTA_REAL_TYPE == RTA_FLOAT_TYPE)
+
+#define RTA_REAL_DIG FLT_DIG
+#define RTA_REAL_EPSILON FLT_EPSILON
+#define RTA_REAL_MANT_DIG FLT_MANT_DIG
+#define RTA_REAL_MAX FLT_MAX
+#define RTA_REAL_MAX_10_EXP FLT_MAX_10_EXP
+#define RTA_REAL_MAX_EXP FLT_MAX_EXP
+#define RTA_REAL_MIN FLT_MIN
+#define RTA_REAL_MIN_10_EXP FLT_MIN_10_EXP
+#define RTA_REAL_MIN_EXP FLT_MIN_EXP
+
+#endif /* float */
+
+#if (RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+
+#define RTA_REAL_DIG DBL_DIG
+#define RTA_REAL_EPSILON DBL_EPSILON
+#define RTA_REAL_MANT_DIG DBL_MANT_DIG
+#define RTA_REAL_MAX DBL_MAX
+#define RTA_REAL_MAX_10_EXP DBL_MAX_10_EXP
+#define RTA_REAL_MAX_EXP DBL_MAX_EXP
+#define RTA_REAL_MIN DBL_MIN
+#define RTA_REAL_MIN_10_EXP DBL_MIN_10_EXP
+#define RTA_REAL_MIN_EXP DBL_MIN_EXP
+
+#endif /* double */
+
+#if (RTA_REAL_TYPE == RTA_LONG_DOUBLE_TYPE)
+
+#define RTA_REAL_DIG LDBL_DIG
+#define RTA_REAL_EPSILON LDBL_EPSILON
+#define RTA_REAL_MANT_DIG LDBL_MANT_DIG
+#define RTA_REAL_MAX LDBL_MAX
+#define RTA_REAL_MAX_10_EXP LDBL_MAX_10_EXP
+#define RTA_REAL_MAX_EXP LDBL_MAX_EXP
+#define RTA_REAL_MIN LDBL_MIN
+#define RTA_REAL_MIN_10_EXP LDBL_MIN_10_EXP
+#define RTA_REAL_MIN_EXP LDBL_MIN_EXP
+
+#endif /* long double */
+/** @} */
+/* Real type constants */
+
+#include <float.h>
+
+#endif /* _RTA_FLOAT_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.c
new file mode 100644
index 0000000..3a033a3
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.c
@@ -0,0 +1,80 @@
+/**
+ * @file   rta_int.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Thu Sep 12 18:10:41 2007
+ * 
+ * @brief  Integer mathematical functions
+ * 
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_int.h"
+
+
+unsigned int 
+rta_ilog2(unsigned int n)
+{
+  unsigned int log2 = 0;
+  int i;
+  
+  for(i=n>>1; i; i>>=1)
+  {
+    log2++;
+  }
+
+  return log2;
+}
+
+inline int rta_imax(int m, int n)
+{
+  return (m > n) ? m : n;
+}
+
+inline int rta_imin(int m, int n)
+{
+  return (m < n) ? m : n;
+}
+
+unsigned int
+rta_inextpow2(unsigned int n)
+{
+  unsigned int pow2 = 2;
+  int i;
+
+  for(i=((n-1)>>1); i>0; i>>=1)
+  {
+    pow2 <<= 1;
+  }
+
+  return pow2;
+}
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.h
new file mode 100644
index 0000000..07e0ae8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_int.h
@@ -0,0 +1,94 @@
+/** 
+ * @file   rta_int.h
+ * @author Jean-Philippe Lambert
+ * @date   Thu Sep 12 18:10:41 2007
+ * 
+ * @brief  Integer mathematical functions
+ * 
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_INT_H_
+#define _RTA_INT_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+#define inline
+#endif
+/** 
+ * Integer version of the log2 function (rounded down)
+ * 
+ * @param n 
+ * 
+ * @return log2('n') or 0 if 'n' == 0
+ */
+unsigned int rta_ilog2(unsigned int n);
+
+/** 
+ * Integer version of the maximum
+ * 
+ * @param m 
+ * @param n
+ * 
+ * @return the smallest integer between 'm' and 'n'
+ */
+extern inline int rta_imax(int m, int n);
+
+/** 
+ * Integer version of the minimum
+ * 
+ * @param m 
+ * @param n 
+ * 
+ * @return the smallest integer between 'm' and 'n'
+ */
+extern inline int rta_imin(int m, int n);
+
+
+/** 
+ * Next (or equal) 'n' power of 2
+ * 
+ * @param n 
+ * 
+ * @return minimum p such as 2^p >= 'n'
+ */
+unsigned int rta_inextpow2(unsigned int n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_INT_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_math.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_math.h
new file mode 100644
index 0000000..6d2d36f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_math.h
@@ -0,0 +1,250 @@
+/**
+ * @file   rta_math.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  Mathematical functions, <math.h> for rta_real_t type
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_MATH_H_
+#define _RTA_MATH_H_ 1
+
+#include "rta.h"
+
+
+#ifdef WIN32 
+/* TODO: check every windows functions against C99 */
+/*       float and double functions differenciation */
+
+#define rta_max(a,b) (((a)>(b))? (a) : (b))
+#define rta_min(a,b) (((a)<(b))? (a) : (b))
+
+#define rta_abs fabs
+#define rta_floor floor
+#define rta_ceil ceil
+
+/* round is C99 but does not seem to exist on windows (visual studio 6) */
+#define rta_round(a)(floor((a) + 0.5))
+#define rta_lround(a)(floor((a) + 0.5))
+#define rta_llround(a)(floor((a) + 0.5))
+
+#define rta_sqrt sqrt
+#define rta_pow pow
+
+#define rta_log log
+#define rta_log2 log2
+#define rta_log10 log10
+#define rta_log1p log1p
+
+#define rta_exp exp
+#define rta_exp2 exp2
+#define rta_expm1 expm1
+
+#define rta_cos cos
+#define rta_sin sin
+
+#define rta_hypot hypot
+
+#else
+
+#if (RTA_REAL_TYPE == RTA_FLOAT_TYPE)
+
+#define rta_max fmaxf
+#define rta_min fminf
+
+#define rta_abs fabsf
+#define rta_floor floorf
+#define rta_ceil ceilf
+#define rta_round roundf
+#define rta_lround lroundf
+#define rta_llround llroundf
+
+#define rta_sqrt sqrtf
+#define rta_pow powf
+
+#define rta_log logf
+#define rta_log2 log2f
+#define rta_log10 log10f
+#define rta_log1p log1pf
+
+#define rta_exp expf
+#define rta_exp2 exp2f
+#define rta_expm1 expm1f
+
+#define rta_cos cosf
+#define rta_sin sinf
+
+#define rta_hypot hypotf
+
+#endif
+
+#if (RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+
+#define rta_max fmax
+#define rta_min fmin
+
+#define rta_abs fabs
+#define rta_floor floor
+#define rta_ceil ceil
+#define rta_round round
+#define rta_lround lround
+#define rta_llround llround
+
+#define rta_sqrt sqrt
+#define rta_pow pow
+
+#define rta_log log
+#define rta_log2 log2
+#define rta_log10 log10
+#define rta_log1p log1p
+
+#define rta_exp exp
+#define rta_exp2 exp2
+#define rta_expm1 expm1
+
+#define rta_cos cos
+#define rta_sin sin
+
+#define rta_hypot hypot
+
+#endif
+
+#if (RTA_REAL_TYPE == RTA_LONG_DOUBLE_TYPE)
+
+#define rta_max fmaxl
+#define rta_min fminl
+
+#define rta_abs fabsl
+#define rta_floor floorl
+#define rta_ceil ceill
+#define rta_round roundl
+#define rta_lround lroundl
+#define rta_llround llroundl
+
+#define rta_sqrt sqrtl
+#define rta_pow powl
+
+#define rta_log logl
+#define rta_log2 log2l
+#define rta_log10 log10l
+#define rta_log1p log1pl
+
+#define rta_exp expl
+#define rta_exp2 exp2l
+#define rta_expm1 expm1l
+
+#define rta_cos cosl
+#define rta_sin sinl
+
+#define rta_hypot hypotl
+
+#endif
+
+#endif /* WIN32 */
+
+#include <math.h>
+
+/** @name Numerical constants */
+/** @{ */
+#ifndef M_E
+#define M_E        2.71828182845904523536028747135      /**< e */
+#endif
+
+#ifndef M_LOG2E
+#define M_LOG2E    1.44269504088896340735992468100      /**< log_2 (e) */
+#endif
+
+#ifndef M_LOG10E
+#define M_LOG10E   0.43429448190325182765112891892      /**< log_10 (e) */
+#endif
+
+#ifndef M_SQRT2
+#define M_SQRT2    1.41421356237309504880168872421      /**< sqrt(2) */
+#endif
+
+#ifndef M_SQRT1_2
+#define M_SQRT1_2  0.70710678118654752440084436210      /**< sqrt(1/2) */
+#endif
+
+
+#ifndef M_SQRT3
+#define M_SQRT3    1.73205080756887729352744634151      /**< sqrt(3) */
+#endif
+
+#ifndef M_PI
+#define M_PI       3.14159265358979323846264338328      /**< pi */
+#endif
+
+#ifndef M_PI_2
+#define M_PI_2     1.57079632679489661923132169164      /**< pi/2 */
+#endif
+
+#ifndef M_PI_4
+#define M_PI_4     0.78539816339744830961566084582     /**< pi/4 */
+#endif
+
+#ifndef M_SQRTPI
+#define M_SQRTPI   1.77245385090551602729816748334      /**< sqrt(pi) */
+#endif
+
+#ifndef M_2_SQRTPI
+#define M_2_SQRTPI 1.12837916709551257389615890312      /**< 2/sqrt(pi) */
+#endif
+
+#ifndef M_1_PI
+#define M_1_PI     0.31830988618379067153776752675      /**< 1/pi */
+#endif
+
+#ifndef M_2_PI
+#define M_2_PI     0.63661977236758134307553505349      /**< 2/pi */
+#endif
+
+#ifndef M_LN10
+#define M_LN10     2.30258509299404568401799145468      /**< ln(10) */
+#endif
+
+#ifndef M_LN2
+#define M_LN2      0.69314718055994530941723212146      /**< ln(2) */
+#endif
+
+#ifndef M_LNPI
+#define M_LNPI     1.14472988584940017414342735135      /**< ln(pi) */
+#endif
+
+#ifndef M_EULER
+#define M_EULER    0.57721566490153286060651209008      /**< Euler constant */
+#endif
+/*@} */
+/* Numerical constants */
+
+#endif /* _RTA_MATH_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdio.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdio.h
new file mode 100644
index 0000000..646d60e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdio.h
@@ -0,0 +1,51 @@
+/**
+ * @file   rta_stdio.h
+ * @author Diemo Schwarz
+ * @date   30.10.2008
+ * 
+ * @brief  Default defines for the rta library
+ *
+ * Define your own to override these.
+ * @see rta_configuration.h
+ * 
+ * @copyright
+ * Copyright (C) 2008 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_STDIO_H_
+#define _RTA_STDIO_H_ 1
+
+/** default define for console printing */
+#ifndef rta_post
+#define rta_post printf
+#include <stdio.h>
+#endif
+
+#endif /* _RTA_STDIO_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdlib.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdlib.h
new file mode 100644
index 0000000..c1051dc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_stdlib.h
@@ -0,0 +1,74 @@
+/**
+ * @file   rta_stdlib.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  Default defines for the rta library
+ *
+ * Define your own to override these.
+ * @see rta_configuration.h
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_STDLIB_H_
+#define _RTA_STDLIB_H_ 1
+
+/** default define for memory allocation */
+#ifndef rta_malloc
+#define rta_malloc malloc
+#include <stdlib.h>
+#endif
+
+/** default define for memory reallocation */
+#ifndef rta_realloc
+#define rta_realloc realloc
+#include <stdlib.h>
+#endif
+
+/** default define for memory reallocation */
+#ifndef rta_zalloc
+#define rta_zalloc(n) (calloc(1, (n)))
+#include <stdlib.h>
+#endif
+
+/** default define for memory deallocation */
+#ifndef rta_free
+#define rta_free free
+#include <stdlib.h>
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+
+#endif /* _RTA_STDLIB_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_types.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_types.h
new file mode 100644
index 0000000..148427d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_types.h
@@ -0,0 +1,71 @@
+/**
+ * @file   rta_types.h
+ * @author Jean-Philippe Lambert
+ * @date   Mon Sep 10 11:05:09 2007
+ * 
+ * @brief  rta_real_t type warper for float, double or long double
+ *
+ * Default is RTA_REAL_FLOAT. Define your RTA_REAL_TYPE to override these.
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_TYPES_H_
+#define _RTA_TYPES_H_ 1
+
+/** default floating point precision */
+#ifndef RTA_REAL_TYPE
+#define RTA_REAL_TYPE RTA_FLOAT_TYPE
+#endif
+
+#undef RTA_FLOAT_TYPE
+#define RTA_FLOAT_TYPE 1
+#undef RTA_DOUBLE_TYPE
+#define RTA_DOUBLE_TYPE 2
+#undef RTA_LONG_DOUBLE_TYPE
+#define RTA_LONG_DOUBLE_TYPE 3
+
+#if (RTA_REAL_TYPE == RTA_FLOAT_TYPE)
+#undef rta_real_t
+#define rta_real_t float
+#endif
+
+#if (RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+#undef rta_real_t
+#define rta_real_t double
+#endif
+
+#if (RTA_REAL_TYPE == RTA_LONG_DOUBLE_TYPE)
+#undef rta_real_t
+#define rta_real_t long double
+#endif
+
+#endif /* _RTA_TYPES_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.c
new file mode 100644
index 0000000..048d012
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.c
@@ -0,0 +1,100 @@
+/**
+ * @file   rta_util.c
+ * @author Diemo Schwarz
+ * @date   1.12.2009
+ * 
+ * @brief  file with common support functions
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_util.h"
+#include <stdlib.h>
+#ifdef WIN32
+static long random(){return rand();}
+#endif
+
+static int compint (const void *a, const void *b)
+{
+    return *(int *) a - *(int *) b;
+}
+
+/* generate k random indices out of 0..n-1 in vector sample(k) 
+   time complexity: O(k log k), space complexity O(k) 
+
+   todo: reimplement using permutation + hashing for O(k) complexity 
+*/
+void rta_choose_k_from_n (int k, int n, int *sample)
+{
+    int doubles = 99;
+    int i;
+    
+    if (k >= n)
+    {	/* error: non-specified case */
+	for (i = 0; i < k; i++)
+	    sample[i] = i % n;
+	rta_post("illegal parameters for choose %d from %d!!!\n", k, n);
+	return;
+    }
+
+    /* generate k random numbers with possible repetition */
+
+	for (i = 0; i < k; i++)
+	sample[i] = random() % n;
+
+    while (doubles > 0)
+    {
+	/* sort and check for uniqueness */
+	qsort(sample, k, sizeof(int), compint);
+	
+	for (i = 1, doubles = 0; i < k; i++)
+	    if (sample[i - 1] == sample[i])
+	    {   /* repetition: generate new random value */
+		sample[i] = random() % n;
+		doubles++;
+	    }
+	if (doubles > 0)
+	    rta_post("choose %d from %d -> doubles %d\n", k, n, doubles);
+    }
+}
+
+
+/* return index i such that i is the highest i for which x < arr[i]
+   num !> 0 */
+int rta_find_int (int x, int num, int *arr)
+{
+    int i = 0;
+
+    while (i < num  &&  x >= arr[i])
+	i++;
+
+    return i;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.h
new file mode 100644
index 0000000..4a3f938
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/common/rta_util.h
@@ -0,0 +1,108 @@
+/**
+ * @file   rta_util.h
+ * @author Diemo Schwarz
+ * @date   1.12.2009
+ * 
+ * @brief  file with common support functions
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_UTIL_H_
+#define _RTA_UTIL_H_
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** generate k random indices out of 0..n-1 in vector sample(k) */
+void rta_choose_k_from_n (int k, int n, int *sample);
+
+
+/** return index i such that i is the highest i for which x < arr[i]
+   num !> 0 */
+int rta_find_int (int x, int num, int *arr);
+
+
+    
+/*********************************************************************************
+ *
+ *  idefix
+ *
+ */
+
+#define RTA_IDEFIX_INDEX_BITS 31
+#define RTA_IDEFIX_INDEX_MAX  2147483647 /* index is signed */
+
+#define RTA_IDEFIX_FRAC_BITS  32
+#define RTA_IDEFIX_FRAC_MAX   ((unsigned int) 4294967295U)
+#define RTA_IDEFIX_FRAC_RANGE ((double) 4294967296.0L)
+
+typedef struct rta_idefix
+{
+  int index;
+  unsigned int frac;
+} rta_idefix_t;
+
+#define rta_idefix_get_index(x) ((int)(x).index)
+#define rta_idefix_get_frac(x) ((double)((x).frac) / RTA_IDEFIX_FRAC_RANGE)
+
+#define rta_idefix_get_float(x) ((x).index + ((double)((x).frac) / RTA_IDEFIX_FRAC_RANGE))
+
+#define rta_idefix_set_int(x, i) ((x)->index = (i), (x)->frac = 0)
+#define rta_idefix_set_float(x, f) ((x)->index = floor(f), (x)->frac = ((double)(f) - (x)->index) * RTA_IDEFIX_FRAC_RANGE)
+
+#define rta_idefix_set_zero(x) ((x)->index = 0, (x)->frac = 0)
+#define rta_idefix_set_max(x) ((x)->index = RTA_IDEFIX_INDEX_MAX, (x)->frac = RTA_IDEFIX_FRAC_MAX)
+
+#define rta_idefix_negate(x) ((x)->index = -(x)->index - ((x)->frac > 0), (x)->frac = (RTA_IDEFIX_FRAC_MAX - (x)->frac) + 1)
+
+#define rta_idefix_incr(x, c) ((x)->frac += (c).frac, (x)->index += ((c).index + ((x)->frac < (c).frac)))
+
+#define rta_idefix_add(x, a, b) ((x)->frac = (a).frac + (b).frac, (x)->index = (a).index + ((b).index + ((x)->frac < (a).frac)))
+#define rta_idefix_sub(x, a, b) ((x)->index = (a).index - ((b).index + ((a).frac < (b).frac)), (x)->frac = (a).frac - (b).frac)
+
+#define rta_idefix_lshift(x, c, i) ((x)->index = ((c).index << (i)) + ((c).frac >> (RTA_IDEFIX_FRAC_BITS - (i))), (x)->frac = (c).frac << (i))
+
+#define rta_idefix_lt(x, c) (((x).index < (c).index) || (((x).index == (c).index) && ((x).frac < (c).frac)))
+#define rta_idefix_gt(x, c) (((x).index > (c).index) || (((x).index == (c).index) && ((x).frac > (c).frac)))
+#define rta_idefix_eq(x, c) (((x).index == (c).index) && ((x).frac == (c).frac))
+#define rta_idefix_is_zero(x) (((x).index == 0) && ((x).frac == 0))
+
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_UTIL_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.c
new file mode 100644
index 0000000..ebb60ea
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.c
@@ -0,0 +1,391 @@
+/**
+ * @file   rta_bands.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Spectrum bands integrations (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_bands.h"
+#include "rta_mel.h"
+#include "rta_math.h"
+#include "rta_stdlib.h"
+
+
+int rta_spectrum_to_mel_bands_weights(
+  rta_real_t * weights_matrix, unsigned int * weights_bounds,
+  const unsigned int spectrum_size,
+  const rta_real_t sample_rate, const unsigned int filters_number,
+  const rta_real_t min_freq, const rta_real_t max_freq,
+  const rta_real_t scale_width,
+  const rta_hz_to_mel_function hz_to_mel,
+  const rta_mel_to_hz_function mel_to_hz,
+  const rta_mel_t mel_type)
+{
+  unsigned int i,j;	 /* counters */
+  unsigned int min_weight_index_defined;
+  int ret = 0;
+
+  /* center frequency of each FFT bin */
+  rta_real_t * fft_freq = (rta_real_t*) rta_malloc(
+    sizeof(rta_real_t) * spectrum_size);
+
+  const rta_real_t min_mel = (*hz_to_mel)(min_freq);
+  const rta_real_t max_mel = (*hz_to_mel)(max_freq);
+
+/* Center frequencies of mel bands - uniformly spaced between limits */
+  rta_real_t * filter_freq = (rta_real_t*) rta_malloc(sizeof(rta_real_t) * (filters_number + 2));
+
+/* scaled filter frequencies according to <scale_width> */
+  rta_real_t * scaled_filter_freq = (rta_real_t*) rta_malloc(sizeof(rta_real_t) * (filters_number + 2));
+
+  if(fft_freq != NULL && filter_freq != NULL && scaled_filter_freq != NULL)
+  {
+    const rta_real_t fft_size = 2. * (spectrum_size - 1.);
+    for(j=0; j<spectrum_size; j++)
+    {
+      fft_freq[j] = sample_rate * j / fft_size;
+    }
+
+    /* There is 2 more filters as the actual number, so as to calculate */
+    /* the slopes */
+    for(i=0; i<filters_number + 2; i++)
+    {
+      filter_freq[i] = (*mel_to_hz)(min_mel + i / (filters_number + 1.) *
+                                      (max_mel - min_mel));
+    }
+  
+    for(i=0; i<filters_number + 1; i++)
+    {
+      scaled_filter_freq[i] = filter_freq[i+1] +
+        scale_width * (filter_freq[i] - filter_freq[i+1]);
+    }
+    scaled_filter_freq[i] = filter_freq[i];
+
+    for(i=0; i<filters_number; i++)
+    {
+      min_weight_index_defined = 0;
+      /* Do not process the last spectrum component as it will be zeroed */
+      /* later to avoid aliasing */
+      for(j=0; j<spectrum_size-1; j++)
+      {
+        /* Lower slope and upper slope, intersect with each other and zero */
+        weights_matrix[i*spectrum_size+j] = 
+          rta_max(0., rta_min(
+                    (fft_freq[j] - scaled_filter_freq[i]) /
+                    (scaled_filter_freq[i+1] - scaled_filter_freq[i]),
+                    (scaled_filter_freq[i+2] - fft_freq[j]) /
+                    (scaled_filter_freq[i+2] - scaled_filter_freq[i+1])
+                    )
+            );
+
+        /* Define the bounds so as to use an index <i> of the form */
+        /* for(j=weights_bounds[i*2+0]; j<weights_bounds[i*2+1]; j++)) */
+        /* lower bound included, upper bound excluded */
+        if(weights_matrix[i*spectrum_size+j] > 0.)
+        {
+          if(min_weight_index_defined == 0)
+          {
+            min_weight_index_defined = 1;
+            weights_bounds[i*2] = j;
+          }
+          weights_bounds[i*2+1] = j+1;
+        }
+      }
+      /* empty filter */
+      if(min_weight_index_defined == 0)
+      {
+        weights_bounds[i*2] = weights_bounds[i*2+1] = 0;
+      }
+    }
+
+    /* Slaney-style mel is scaled to be approx constant E per channel */
+    if(mel_type == rta_mel_slaney)
+    {
+      for(i=0; i<filters_number; i++)
+      {
+        /* process only non null values */
+        for(j=weights_bounds[i*2]; j<weights_bounds[i*2+1]; j++)
+        {
+          weights_matrix[i*spectrum_size+j] *= 2. / (filter_freq[i+2] - filter_freq[i]);
+        }
+      }
+    }
+
+    /* Make sure that 2nd half of FFT is zero */
+    /* (We process only the middle, not the upper part) */
+    /* Seems like a good idea to avoid aliasing */
+    j = spectrum_size-1;
+    for(i=0; i<filters_number; i++)
+    {
+      weights_matrix[i*spectrum_size+j] = 0.;
+    }
+    ret = 1;
+  }
+  
+  if(fft_freq  != NULL)
+  {
+    rta_free(fft_freq);
+  }
+
+  if(filter_freq != NULL)
+  {
+    rta_free(filter_freq);
+  }
+
+  if(scaled_filter_freq != NULL)
+  {
+    rta_free(scaled_filter_freq);
+  }
+
+  return ret;
+}
+
+int rta_spectrum_to_mel_bands_weights_stride(
+  rta_real_t * weights_matrix, const int wm_stride,
+  unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size,
+  const rta_real_t sample_rate, const unsigned int filters_number,
+  const rta_real_t min_freq, const rta_real_t max_freq, const rta_real_t scale_width,
+  const rta_hz_to_mel_function hz_to_mel,
+  const rta_mel_to_hz_function mel_to_hz,
+  const rta_mel_t mel_type)
+{
+  unsigned int i,j;	 /* counters */
+  unsigned int min_weight_index_defined;
+  int ret = 0;
+
+/* center frequency of each FFT bin */
+  rta_real_t * fft_freq = (rta_real_t*) rta_malloc(sizeof(rta_real_t) * spectrum_size);
+
+  const rta_real_t min_mel = (*hz_to_mel)(min_freq);
+  const rta_real_t max_mel = (*hz_to_mel)(max_freq);
+
+/* Center frequencies of mel bands - uniformly spaced between limits */
+  rta_real_t * filter_freq = (rta_real_t*) rta_malloc(sizeof(rta_real_t) * (filters_number + 2));
+
+/* scaled filter frequencies according to <scale_width> */
+  rta_real_t * scaled_filter_freq = (rta_real_t*) rta_malloc(sizeof(rta_real_t) * (filters_number + 2));
+
+  if(fft_freq != NULL && filter_freq != NULL && scaled_filter_freq != NULL)
+  {
+    const rta_real_t fft_size = 2. * (spectrum_size - 1.);
+    for(j=0; j<spectrum_size; j++)
+    {
+      fft_freq[j] = sample_rate * j / fft_size;
+    }
+
+    /* There is 2 more filters as the actual number, so as to calculate */
+    /* the slopes */
+    for(i=0; i<filters_number + 2; i++)
+    {
+      filter_freq[i] = (*mel_to_hz)(min_mel + i / (filters_number + 1.) *
+                                      (max_mel - min_mel));
+    }
+  
+    for(i=0; i<filters_number + 2; i++) //FIXME: shouldn't be filters_number + 1, since i+1 is used in body?
+    {
+      scaled_filter_freq[i] = filter_freq[i+1] +
+        scale_width * (filter_freq[i] - filter_freq[i+1]);
+    }
+  
+    for(i=0; i<filters_number; i++)
+    {
+      min_weight_index_defined = 0;
+      /* Do not process the last spectrum component as it will be zeroed */
+      /* later to avoid aliasing */
+      for(j=0; j<spectrum_size-1; j++)
+      {
+        /* Lower slope and upper slope, intersect with each other and zero */
+        weights_matrix[(i*spectrum_size+j)*wm_stride] = 
+          rta_max(0., rta_min(
+                    (fft_freq[j] - scaled_filter_freq[i]) /
+                    (scaled_filter_freq[i+1] - scaled_filter_freq[i]),
+                    (scaled_filter_freq[i+2] - fft_freq[j]) /
+                    (scaled_filter_freq[i+2] - scaled_filter_freq[i+1])
+                    )
+            );
+
+        /* Define the bounds so as to use an index <i> of the form */
+        /* for(j=weights_bounds[i*2+0]; j<weights_bounds[i*2+1]; j++)) */
+        /* lower bound included, upper bound excluded */
+        if(weights_matrix[(i*spectrum_size+j)*wm_stride] > 0.)
+        {
+          if(min_weight_index_defined == 0)
+          {
+            min_weight_index_defined = 1;
+            weights_bounds[i*2*wb_stride] = j;
+          }
+          weights_bounds[(i*2+1)*wb_stride] = j+1;
+        }
+      }
+      /* empty filter */
+      if(min_weight_index_defined == 0)
+      {
+        weights_bounds[i*2*wb_stride] = weights_bounds[(i*2+1)*wb_stride] = 0;
+      }
+    }
+
+    /* Slaney-style mel is scaled to be approx constant E per channel */
+    if(mel_type == rta_mel_slaney)
+    {
+      for(i=0; i<filters_number; i++)
+      {
+        /* process only non null values */
+        for(j=weights_bounds[i*2]; j<weights_bounds[i*2+1]; j++)
+        {
+          weights_matrix[(i*spectrum_size+j)*wm_stride] *=
+            2. / (filter_freq[i+2] - filter_freq[i]);
+        }
+      }
+    }
+    /* Make sure that 2nd half of FFT is zero */
+    /* (We process only the middle, not the upper part) */
+    /* Seems like a good idea to avoid aliasing */
+    j = spectrum_size-1;
+    for(i=0; i<filters_number; i++)
+    {
+      weights_matrix[(i*spectrum_size+j)*wm_stride] = 0.;
+    }
+    ret = 1;
+  }
+
+  if(fft_freq  != NULL)
+  {
+    rta_free(fft_freq);
+  }
+
+  if(filter_freq != NULL)
+  {
+    rta_free(filter_freq);
+  }
+
+  if(scaled_filter_freq != NULL)
+  {
+    rta_free(scaled_filter_freq);
+  }
+
+  return ret;
+}
+
+
+/* Integrate FFT bins into bands, in abs domain */
+void rta_spectrum_to_bands_abs(
+  rta_real_t * bands, const rta_real_t * spectrum,
+  const rta_real_t * weights_matrix, const unsigned int * weights_bounds,
+  const unsigned int spectrum_size, const unsigned int filters_number)
+{
+  unsigned int i,j;
+
+  for(i=0; i<filters_number; i++)
+  {
+    bands[i] = 0.;
+    for(j=weights_bounds[i*2]; j<weights_bounds[i*2+1]; j++)
+    {
+      bands[i] += weights_matrix[i*spectrum_size+j] * spectrum[j];
+    }
+  }
+
+  return;
+}
+
+/* Integrate FFT bins into bands, in abs domain */
+void rta_spectrum_to_bands_abs_stride(
+  rta_real_t * bands, const int b_stride,
+  const rta_real_t * spectrum, const int s_stride,
+  const rta_real_t * weights_matrix, const int wm_stride,
+  const unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size, const unsigned int filters_number)
+{
+  unsigned int i,j;
+
+  for(i=0; i<filters_number; i++)
+  {
+    bands[i*b_stride] = 0.;
+    for(j=weights_bounds[i*2*wb_stride]; j<weights_bounds[(i*2+1)*wb_stride]; j++)
+    {
+      bands[i*b_stride] +=
+	weights_matrix[(i*spectrum_size+j)*wm_stride] * spectrum[j*s_stride];
+    }
+  }
+
+  return;
+}
+
+/* Integrate FFT bins into bands, in abs^2 domain */
+void rta_spectrum_to_bands_square_abs(
+  rta_real_t * bands, const rta_real_t * spectrum,
+  const rta_real_t * weights_matrix, const unsigned int * weights_bounds,
+  const unsigned int spectrum_size, const unsigned int filters_number)
+{
+  unsigned int i,j;
+
+  for(i=0; i<filters_number; i++)
+  {
+    bands[i] = 0.;
+    for(j=weights_bounds[i*2]; j<weights_bounds[i*2+1]; j++)
+    {
+      bands[i] += weights_matrix[i*spectrum_size+j] * rta_sqrt(spectrum[j]);
+    }
+    bands[i] = rta_pow(bands[i], 2);
+  }
+
+  return;
+}
+
+/* Integrate FFT bins into bands, in abs^2 domain */
+void rta_spectrum_to_bands_square_abs_stride(
+  rta_real_t * bands, const int b_stride,
+  const rta_real_t * spectrum, const int s_stride,
+  const rta_real_t * weights_matrix, const int wm_stride,
+  const unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size, const unsigned int filters_number)
+{
+  unsigned int i,j;
+
+  for(i=0; i<filters_number; i++)
+  {
+    bands[i*b_stride] = 0.;
+    for(j=weights_bounds[i*2*wb_stride]; j<weights_bounds[(i*2+1)*wb_stride]; j++)
+    {
+      bands[i*b_stride] += weights_matrix[(i*spectrum_size+j)*wm_stride] *
+	rta_sqrt(spectrum[j*s_stride]);
+    }
+    bands[i*b_stride] = rta_pow(bands[i*b_stride], 2);
+  }
+
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.h
new file mode 100644
index 0000000..6d5095a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_bands.h
@@ -0,0 +1,276 @@
+/**
+ * @file   rta_bands.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Spectrum bands integrations (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_BANDS_H_
+#define _RTA_BANDS_H_ 1
+
+#include "rta.h"
+#include "rta_mel.h"   /**< mel types and functions for mel bands */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+    rta_bands_sum = 0,		/**< simple sum between specified bins */
+    rta_bands_bark = 1,
+    rta_bands_mel = 2,
+    rta_bands_htk_mel = 3,
+    rta_bands_feacalc_mel = 4    
+}  rta_bands_t;
+
+/**  Integrate FFT bins into Mel bins, in abs or abs^2 domains */
+typedef enum
+{
+    rta_bands_abs_integration = 0,   /**< sumpower = 0 (cf. Dan Ellis) */
+    rta_bands_square_abs_integration = 1
+} rta_integration_t;
+
+
+/* from fft2melmx.m */
+
+/** 
+ * Generate a matrix of weights 'weights_matrix' to combine a power
+ * spectrum into mel bands.
+ * As this matrix is rather sparse, generate also a bounds matrix
+ * 'weights_bounds', to avoid further null multiplications.
+ *
+ * You can exactly duplicate the mel matrix in Slaney's mfcc.m as
+ * ret = rta_spectrum_to_mel_bands_weights(weights_matrix, weights_bounds,
+ *        512, 8000., 40, 133., 6855.5, 1.,
+ *        rta_hz_to_mel_slaney, rta_mel_to_hz_slaney, rta_slaney_mel);
+ *
+ *  Temporary memory allocation (and deallocation) is done inside this function.
+ *  \see rta_stdlib.h
+ *
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param weights_bounds size is 'filters_number'*2.
+ * Define the bounds for each filter 'f' so as to use an index 'i' of the form
+ * for(i=weights_bounds[f*2+0]; i<weights_bounds[f*2+1]; i++)
+ * lower bound included, upper bound excluded
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param sample_rate of the signal corresponding to the power spectrum
+ * @param filters_number number of output mel bands
+ * @param min_freq in Hz.
+ * default is 0, but 133.33 is a common standard (to skip LF). 
+ * @param max_freq in Hertz
+ * @param scale_width frequencies are scale by this factor (generally
+ * 1., which means no scale)
+ * @param hz_to_mel function used for conversion
+ * @param mel_to_hz function used for conversion (inverse of hz_to_mel)
+ * @param mel_type slaney_mel is scaled to be approx constant E per
+ * channel, not HTK. Integration windows peak at 1 for HTK, not sum to
+ * 1 (as for Slaney) 
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_spectrum_to_mel_bands_weights(
+    rta_real_t * weights_matrix, unsigned int * weights_bounds,
+    const unsigned int spectrum_size,
+    const rta_real_t sample_rate, const unsigned int filters_number,
+    const rta_real_t min_freq, const rta_real_t max_freq, const rta_real_t scale_width,
+    const rta_hz_to_mel_function hz_to_mel,
+    const rta_mel_to_hz_function mel_to_hz,
+    const rta_mel_t mel_type);
+ 
+/** 
+ * Generate a matrix of weights 'weights_matrix' to combine a power
+ * spectrum into mel bands.
+ * As this matrix is rather sparse, generate also a bounds matrix
+ * 'weights_bounds', to avoid further null multiplications.
+ *
+ * You can exactly duplicate the mel matrix in Slaney's mfcc.m as
+ * ret = rta_spectrum_to_mel_bands_weights(weights_matrix, weights_bounds,
+ *        512, 8000., 40, 133., 6855.5, 1.,
+ *        rta_hz_to_mel_slaney, rta_mel_to_hz_slaney, rta_slaney_mel);
+ *
+ *  Temporary memory allocation (and deallocation) is done inside this function.
+ *  \see rta_memory.h
+ *
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param wm_stride is 'weights_matrix' stride
+ * @param weights_bounds size is 'filters_number'*2.
+ * Define the bounds for each filter 'f' so as to use an index 'i' of the form
+ * for(i=weights_bounds[f*2+0]; i<weights_bounds[f*2+1]; i++)
+ * lower bound included, upper bound excluded
+ * @param wb_stride is 'weights_bounds' stride
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param sample_rate of the signal corresponding to the power spectrum
+ * @param filters_number number of output mel bands
+ * @param min_freq in Hertz.
+ * default is 0, but 133.33 is a common standard (to skip LF). 
+ * @param max_freq in Hertz
+ * @param scale_width frequencies are scale by this factor (generally
+ * 1., which means no scale)
+ * @param hz_to_mel function used for conversion
+ * @param mel_to_hz function used for conversion (inverse of hz_to_mel)
+ * @param mel_type slaney_mel is scaled to be approx constant E per
+ * channel, not HTK. Integration windows peak at 1 for HTK, not sum to
+ * 1 (as for Slaney) 
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_spectrum_to_mel_bands_weights_stride(
+  rta_real_t * weights_matrix, const int wm_stride,
+  unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size,
+  const rta_real_t sample_rate, const unsigned int filters_number,
+  const rta_real_t min_freq, const rta_real_t max_freq, const rta_real_t scale_width,
+  const rta_hz_to_mel_function hz_to_mel,
+  const rta_mel_to_hz_function mel_to_hz,
+  const rta_mel_t mel_type);
+   
+/*from audspec.m */
+
+/**
+ * function pointer to avoid tests during bands integration
+ * \see rta_spectrum_to_bands_abs
+ * \see rta_spectrum_to_bands_square_abs
+ */
+typedef void (*rta_spectrum_to_bands_function)
+(rta_real_t *, const rta_real_t *, const rta_real_t *,
+ const unsigned int *, const unsigned int, const unsigned int);
+
+/**
+ * function pointer to avoid tests during bands integration
+ * \see rta_spectrum_to_bands_abs_stride
+ * \see rta_spectrum_to_bands_square_abs_stride
+ */
+typedef void (*rta_spectrum_to_bands_stride_function)
+(rta_real_t *, const int, const rta_real_t *, const int, const rta_real_t *, const int,
+ const unsigned int *, const int, 
+ const unsigned int, const unsigned int);
+
+
+/** 
+ * Integrate amplitude spectrum into bands, in abs domain
+ * 'bands' = 'weights_matrix'*'spectrum'
+ * 
+ * @param bands size is 'filters_number'
+ * @param spectrum size is 'spectrum_size'
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param weights_bounds size is 'filters_number'*2.
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param filters_number number of output bands
+ *
+ */
+void rta_spectrum_to_bands_abs(
+  rta_real_t * bands, const rta_real_t * spectrum,
+  const rta_real_t * weights_matrix, const unsigned int * weights_bounds,
+  const unsigned int spectrum_size, const unsigned int filters_number);
+
+/** 
+ * Integrate amplitude spectrum into bands, in abs domain
+ * 'bands' = 'weights_matrix'*'spectrum'
+ * 
+ * @param bands size is 'filters_number'
+ * @param b_stride is 'bands' stride
+ * @param spectrum size is 'spectrum_size'
+ * @param s_stride is 'spectrum' stride
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param wm_stride is 'weights_matrix' stride
+ * @param weights_bounds size is 'filters_number'*2.
+ * @param wb_stride is 'weights_bounds' stride
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param filters_number number of output bands
+ *
+ */
+void rta_spectrum_to_bands_abs_stride(
+  rta_real_t * bands, const int b_stride,
+  const rta_real_t * spectrum, const int s_stride,
+  const rta_real_t * weights_matrix, const int wm_stride,
+  const unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size, const unsigned int filters_number);
+
+/** 
+ * Integrate power spectrum into bands, in abs^2 domain
+ * 'bands' = ('weights_matrix'*sqrt('spectrum')).^2
+ * 
+ * @param bands size is 'filters_number'
+ * @param spectrum size is 'spectrum_size'
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param weights_bounds size is 'filters_number'*2.
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param filters_number number of output bands
+ * 
+ */
+void rta_spectrum_to_bands_square_abs(
+  rta_real_t * bands, const rta_real_t * spectrum,
+  const rta_real_t * weights_matrix, const unsigned int * weights_bounds,
+  const unsigned int spectrum_size, const unsigned int filters_number);
+
+/** 
+ * Integrate power spectrum into bands, in abs^2 domain
+ * 'bands' = ('weights_matrix'*sqrt('spectrum')).^2
+ * 
+ * @param bands size is 'filters_number'
+ * @param b_stride is 'bands' stride
+ * @param spectrum size is 'spectrum_size'
+ * @param s_stride is 'spectrum' stride
+ * @param weights_matrix size is 'filters_number'*'spectrum_size'
+ * @param wm_stride is 'weights_matrix' stride
+ * @param weights_bounds size is 'filters_number'*2.
+ * @param wb_stride is 'weights_bounds' stride
+ * @param spectrum_size points number of the power spectrum (which is
+ * the complex square module of the FFT, so 'spectrum_size' is ('fft_size'/2.)+1.)
+ * @param filters_number number of output bands
+ * 
+ */
+void rta_spectrum_to_bands_square_abs_stride(
+  rta_real_t * bands, const int b_stride,
+  const rta_real_t * spectrum, const int s_stride,
+  const rta_real_t * weights_matrix, const int wm_stride,
+  const unsigned int * weights_bounds, const int wb_stride,
+  const unsigned int spectrum_size, const unsigned int filters_number);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_BANDS_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.c
new file mode 100644
index 0000000..0cc7525
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.c
@@ -0,0 +1,768 @@
+/**
+ * @file   rta_biquad.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Aug 29 12:38:46 2008
+ * 
+ * @brief  Biquad filter and coefficients calculation
+ * 
+ * Based on the "Cookbook formulae for audio EQ biquad filter
+ * coefficients" by Robert Bristow-Johnson 
+ *
+ * @copyright
+ * Copyright (C) 2008 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_biquad.h"
+#include "rta_filter.h" /* filter types */
+#include "rta_math.h" /* rta_sin, rta_cos, M_PI */
+
+/* y(n) = b0 x(n) + b1 x(n-1) + b2 x(n-2)  */
+/*                - a1 x(n-1) - a2 x(n-2)  */
+
+/* note that MaxMSP biquad~ swaps the names for a and b */
+
+/* f0 is normalised by the nyquist frequency */
+/* q must be > 0. */
+/* gain must be > 0. and is linear */
+
+/* when there is no gain parameter, one can simply multiply the b
+ * coefficients by a (linear) gain */
+
+/* a0 is always 1. as each coefficient is normalised by a0, including a0 */
+
+/* a1 is a[0] and a2 is a[1] */
+
+
+/* LPF: H(s) = 1 / (s^2 + s/Q + 1) */
+void rta_biquad_lowpass_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t  a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = ((1. - c) * 0.5) * a0_inv;
+  b[1] = (1. - c) * a0_inv;
+  b[2] = b[0];
+
+  return;
+}
+
+/* LPF: H(s) = 1 / (s^2 + s/Q + 1) */
+void rta_biquad_lowpass_coefs_stride(rta_real_t * b, const int b_stride,
+                                     rta_real_t * a, const int a_stride,
+                                     const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t  a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = ((1. - c) * 0.5) * a0_inv;
+  b[b_stride] = (1. - c) * a0_inv;
+  b[2*b_stride] = b[0];
+
+  return;
+}
+
+/* HPF: H(s) = s^2 / (s^2 + s/Q + 1) */
+void rta_biquad_highpass_coefs(rta_real_t * b, rta_real_t * a,
+                               const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = ((1. + c) * 0.5) * a0_inv;
+  b[1] = (-1. - c) * a0_inv;
+  b[2] = b[0];
+
+  return;
+}
+
+/* HPF: H(s) = s^2 / (s^2 + s/Q + 1) */
+void rta_biquad_highpass_coefs_stride(rta_real_t * b, const int b_stride,
+                                      rta_real_t * a, const int a_stride,
+                                      const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = ((1. + c) * 0.5) * a0_inv;
+  b[b_stride] = (-1. - c) * a0_inv;
+  b[2*b_stride] = b[0];
+
+  return;
+}
+
+/* BPF: H(s) = s / (s^2 + s/Q + 1)  (constant skirt gain, peak gain = Q) */
+void rta_biquad_bandpass_constant_skirt_coefs(rta_real_t * b, rta_real_t * a, 
+                                              const rta_real_t f0, 
+                                              const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t s = rta_sin(w0);
+  const rta_real_t alpha = s / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = (s * 0.5) * a0_inv;
+  b[1] = 0.;
+  b[2] = -b[0];
+
+  return;
+}
+
+/* BPF: H(s) = s / (s^2 + s/Q + 1)  (constant skirt gain, peak gain = Q) */
+void rta_biquad_bandpass_constant_skirt_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, 
+  const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t s = rta_sin(w0);
+  const rta_real_t alpha = s / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = (s * 0.5) * a0_inv;
+  b[b_stride] = 0.;
+  b[2*b_stride] = -b[0];
+
+  return;
+}
+
+/* BPF: H(s) = (s/Q) / (s^2 + s/Q + 1)      (constant 0 dB peak gain) */
+void rta_biquad_bandpass_constant_peak_coefs(rta_real_t * b, rta_real_t * a, 
+                                             const rta_real_t f0, 
+                                             const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = alpha * a0_inv;
+  b[1] = 0.;
+  b[2] = -b[0];
+
+  return;
+}
+
+/* BPF: H(s) = (s/Q) / (s^2 + s/Q + 1)      (constant 0 dB peak gain) */
+void rta_biquad_bandpass_constant_peak_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, 
+  const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = alpha * a0_inv;
+  b[b_stride] = 0.;
+  b[2*b_stride] = -b[0];
+
+  return;
+}
+
+/* notch: H(s) = (s^2 + 1) / (s^2 + s/Q + 1) */
+void rta_biquad_notch_coefs(rta_real_t * b, rta_real_t * a,
+                            const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = a0_inv;
+  b[1] = a[0];
+  b[2] = b[0];
+
+  return;
+}
+
+/* notch: H(s) = (s^2 + 1) / (s^2 + s/Q + 1) */
+void rta_biquad_notch_coefs_stride(rta_real_t * b, const int b_stride,
+                                   rta_real_t * a, const int a_stride,
+                                   const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = a0_inv;
+  b[b_stride] = a[0];
+  b[2*b_stride] = b[0];
+
+  return;
+}
+
+/* APF: H(s) = (s^2 - s/Q + 1) / (s^2 + s/Q + 1) */
+void rta_biquad_allpass_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha) * a0_inv;
+
+  b[0] = a[1];
+  b[1] = a[0];
+  b[2] = 1.;
+
+  return;
+}
+
+/* APF: H(s) = (s^2 - s/Q + 1) / (s^2 + s/Q + 1) */
+void rta_biquad_allpass_coefs_stride(rta_real_t * b, const int b_stride,
+                                     rta_real_t * a, const int a_stride,
+                                     const rta_real_t f0, const rta_real_t q)
+{
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha) * a0_inv;
+
+  b[0] = a[a_stride];
+  b[b_stride] = a[0];
+  b[2*b_stride] = 1.;
+
+  return;
+}
+
+/* peakingEQ: H(s) = (s^2 + s*(A/Q) + 1) / (s^2 + s/(A*Q) + 1) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_peaking_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q,
+                              const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+  const rta_real_t g_inv = 1. / g;
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha * g_inv);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[1] = (1. - alpha * g_inv) * a0_inv;
+
+  b[0] = (1. + alpha * g) * a0_inv;
+  b[1] = a[0];
+  b[2] = (1. - alpha * g) * a0_inv;
+
+  return;
+}
+
+/* peakingEQ: H(s) = (s^2 + s*(A/Q) + 1) / (s^2 + s/(A*Q) + 1) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_peaking_coefs_stride(rta_real_t * b, const int b_stride,
+                                     rta_real_t * a, const int a_stride,
+                                     const rta_real_t f0, const rta_real_t q,
+                                     const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+  const rta_real_t g_inv = 1. / g;
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha = rta_sin(w0) / (2. * q);
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / (1. + alpha * g_inv);
+
+  a[0] = (-2. * c) * a0_inv;
+  a[a_stride] = (1. - alpha * g_inv) * a0_inv;
+
+  b[0] = (1. + alpha * g) * a0_inv;
+  b[b_stride] = a[0];
+  b[2*b_stride] = (1. - alpha * g) * a0_inv;
+
+  return;
+}
+
+/* lowShelf: H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_lowshelf_coefs(rta_real_t * b, rta_real_t * a,
+                               const rta_real_t f0, const rta_real_t q, 
+                               const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha_2_sqrtg = rta_sin(w0) * rta_sqrt(g) / q ;
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / 
+                    ( (g+1.) + (g-1.) * c + alpha_2_sqrtg);
+
+  a[0] = (-2. *     ( (g-1.) + (g+1.) * c                ) ) * a0_inv;
+  a[1] = (            (g+1.) + (g-1.) * c - alpha_2_sqrtg  ) * a0_inv; 
+
+  b[0] = (      g * ( (g+1.) - (g-1.) * c + alpha_2_sqrtg) ) * a0_inv;
+  b[1] = ( 2. * g * ( (g-1.) - (g+1.) * c                ) ) * a0_inv;
+  b[2] = (      g * ( (g+1.) - (g-1.) * c - alpha_2_sqrtg) ) * a0_inv;
+
+  return;
+}
+
+/* lowShelf: H(s) = A * (s^2 + (sqrt(A)/Q)*s + A)/(A*s^2 + (sqrt(A)/Q)*s + 1) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_lowshelf_coefs_stride(rta_real_t * b, const int b_stride,
+                                      rta_real_t * a, const int a_stride,
+                                      const rta_real_t f0, const rta_real_t q, 
+                                      const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha_2_sqrtg = rta_sin(w0) * rta_sqrt(g) / q ;
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / 
+                             ( (g+1.) + (g-1.) * c + alpha_2_sqrtg);
+
+  a[0] =          (-2. *     ( (g-1.) + (g+1.) * c                ) ) * a0_inv;
+  a[a_stride] =   (            (g+1.) + (g-1.) * c - alpha_2_sqrtg  ) * a0_inv; 
+
+  b[0] =          (      g * ( (g+1.) - (g-1.) * c + alpha_2_sqrtg) ) * a0_inv;
+  b[b_stride] =   ( 2. * g * ( (g-1.) - (g+1.) * c                ) ) * a0_inv;
+  b[2*b_stride] = (      g * ( (g+1.) - (g-1.) * c - alpha_2_sqrtg) ) * a0_inv;
+
+  return;
+}
+
+/* highShelf: H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_highshelf_coefs(rta_real_t * b, rta_real_t * a,
+                                const rta_real_t f0, const rta_real_t q, 
+                                const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha_2_sqrtg = rta_sin(w0) * rta_sqrt(g) / q ;
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / 
+                    ( (g+1.) - (g-1.) * c + alpha_2_sqrtg);
+
+  a[0] = ( 2. *     ( (g-1.) - (g+1.) * c                ) ) * a0_inv;
+  a[1] = (            (g+1.) - (g-1.) * c - alpha_2_sqrtg  ) * a0_inv; 
+
+  b[0] = (      g * ( (g+1.) + (g-1.) * c + alpha_2_sqrtg) ) * a0_inv;
+  b[1] = (-2. * g * ( (g-1.) + (g+1.) * c                ) ) * a0_inv;
+  b[2] = (      g * ( (g+1.) + (g-1.) * c - alpha_2_sqrtg) ) * a0_inv;
+
+  return;
+}
+
+/* highShelf: H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A) */
+/* A = sqrt( 10^(dBgain/20) ) = 10^(dBgain/40) */
+/* gain is linear here */
+void rta_biquad_highshelf_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q, 
+  const rta_real_t gain)
+{
+  const rta_real_t g = rta_sqrt(gain);
+
+  const rta_real_t w0 = M_PI * f0;
+  const rta_real_t alpha_2_sqrtg = rta_sin(w0) * rta_sqrt(g) / q ;
+  const rta_real_t c = rta_cos(w0);
+
+  const rta_real_t a0_inv = 1. / 
+                             ( (g+1.) - (g-1.) * c + alpha_2_sqrtg);
+
+  a[0] =          ( 2. *     ( (g-1.) - (g+1.) * c                ) ) * a0_inv;
+  a[a_stride] =   (            (g+1.) - (g-1.) * c - alpha_2_sqrtg  ) * a0_inv; 
+
+  b[0] =          (      g * ( (g+1.) + (g-1.) * c + alpha_2_sqrtg) ) * a0_inv;
+  b[b_stride] =   (-2. * g * ( (g-1.) + (g+1.) * c                ) ) * a0_inv;
+  b[2*b_stride] = (      g * ( (g+1.) + (g-1.) * c - alpha_2_sqrtg) ) * a0_inv;
+
+  return;
+}
+
+/* helper */
+void rta_biquad_coefs(rta_real_t * b, rta_real_t * a, 
+                      const rta_filter_t type, 
+                      const rta_real_t f0, const rta_real_t q, 
+                      const rta_real_t gain)
+{
+  
+  switch(type)
+  {
+    case rta_lowpass:
+      rta_biquad_lowpass_coefs(b, a, f0, q);
+      break;
+
+    case rta_highpass:
+      rta_biquad_highpass_coefs(b, a, f0, q);
+      break;
+
+    case rta_bandpass_constant_skirt:
+      rta_biquad_bandpass_constant_skirt_coefs(b, a, f0, q);
+      break;
+
+    case rta_bandpass_constant_peak:
+      rta_biquad_bandpass_constant_peak_coefs(b, a, f0, q);
+      break;
+
+    case rta_notch:
+      rta_biquad_notch_coefs(b, a, f0, q);
+      break;
+
+    case rta_allpass:
+      rta_biquad_allpass_coefs(b, a, f0, q);
+      break;
+
+    case rta_peaking:
+      rta_biquad_peaking_coefs(b, a, f0, q, gain);
+      break;
+
+    case rta_lowshelf:
+      rta_biquad_lowshelf_coefs(b, a, f0, q, gain);
+      break;
+
+    case rta_highshelf:
+      rta_biquad_highshelf_coefs(b, a, f0, q, gain);
+      break;
+  }
+
+  switch(type)
+  {
+    case rta_lowpass:
+    case rta_highpass:
+    case rta_bandpass_constant_skirt:
+    case rta_bandpass_constant_peak:
+    case rta_notch:
+    case rta_allpass:
+
+     if(gain != 1.)
+     {
+       b[0] *= gain;
+       b[1] *= gain;
+       b[2] *= gain;
+     }
+     break;
+
+    /* gain is already integrated for the following */
+    case rta_peaking:
+    case rta_lowshelf:
+    case rta_highshelf:
+      break;
+  }
+
+  return;
+}
+
+/* helper */
+void rta_biquad_coefs_stride(rta_real_t * b, const int b_stride,
+                             rta_real_t * a, const int a_stride,
+                             const rta_filter_t type, 
+                             const rta_real_t f0, const rta_real_t q, 
+                             const rta_real_t gain)
+{
+  
+  switch(type)
+  {
+    case rta_lowpass:
+      rta_biquad_lowpass_coefs_stride(b, b_stride, a, a_stride, f0, q);
+      break;
+
+    case rta_highpass:
+      rta_biquad_highpass_coefs_stride(b, b_stride, a, a_stride, f0, q);
+      break;
+
+    case rta_bandpass_constant_skirt:
+      rta_biquad_bandpass_constant_skirt_coefs_stride(b, b_stride, a, a_stride, 
+                                                      f0, q);
+      break;
+
+    case rta_bandpass_constant_peak:
+
+      rta_biquad_bandpass_constant_peak_coefs_stride(b, b_stride, a, a_stride, 
+                                                     f0, q);
+      break;
+
+    case rta_notch:
+      rta_biquad_notch_coefs_stride(b, b_stride, a, a_stride, f0, q);
+      break;
+
+    case rta_allpass:
+      rta_biquad_allpass_coefs_stride(b, b_stride, a, a_stride, f0, q);
+      break;
+
+    case rta_peaking:
+      rta_biquad_peaking_coefs_stride(b, b_stride, a, a_stride, f0, q, gain);
+      break;
+
+    case rta_lowshelf:
+      rta_biquad_lowshelf_coefs_stride(b, b_stride, a, a_stride, f0, q, gain);
+      break;
+
+    case rta_highshelf:
+      rta_biquad_highshelf_coefs_stride(b, b_stride, a, a_stride, f0, q, gain);
+      break;
+  }
+
+  switch(type)
+  {
+    case rta_lowpass:
+    case rta_highpass:
+    case rta_bandpass_constant_skirt:
+    case rta_bandpass_constant_peak:
+    case rta_notch:
+    case rta_allpass:
+
+      if(gain != 1.)
+      {
+        b[0] *= gain;
+        b[b_stride] *= gain;
+        b[2*b_stride] *= gain;
+      }
+      break;
+
+    /* gain is already integrated for the following */
+    case rta_peaking:
+    case rta_lowshelf:
+    case rta_highshelf:
+      break;
+  }
+
+  return;
+}
+
+/* direct form I */
+/* a0 = 1, a1 = a[0], a2 = a[1] */
+/* 4 states (in that order): x(n-1), x(n-2), y(n-1), y(n-2)  */
+inline rta_real_t rta_biquad_df1(const rta_real_t x,
+                                 const rta_real_t * b, const rta_real_t * a, 
+                                 rta_real_t * states)
+{
+  rta_real_t y = b[0] * x + 
+    b[1] * states[0] + b[2] * states[1] - a[0] * states[2] - a[1] * states[3];
+
+  states[1] = states[0];
+  states[0] = x;
+
+  states[3] = states[2];
+  states[2] = y;
+
+  return y;
+}
+
+/* transposed direct form II */
+/* a0 = 1, a1 = a[0], a2 = a[1] */
+/* 2 states */
+inline rta_real_t rta_biquad_df2t(const rta_real_t x,
+                                  const rta_real_t * b, const rta_real_t * a, 
+                                  rta_real_t * states)
+{
+  rta_real_t y = b[0] * x + states[0];
+  states[0] = b[1] * x - a[0] * y + states[1];
+  states[1] = b[2] * x - a[1] * y;
+
+  return y;
+}
+
+/* direct form I */
+/* a0 = 1, a1 = a[0], a2 = a[1] */
+/* 4 states (in that order): x(n-1), x(n-2), y(n-1), y(n-2)  */
+inline rta_real_t rta_biquad_df1_stride(
+  const rta_real_t x,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride)
+{
+  rta_real_t y = b[0] * x + 
+    b[b_stride] * states[0] + b[2*b_stride] * states[s_stride] - 
+    a[0] * states[2*s_stride] - a[a_stride] * states[3*s_stride];
+
+  states[s_stride] = states[0];
+  states[0] = x;
+
+  states[3*s_stride] = states[2*s_stride];
+  states[2*s_stride] = y;
+
+  return y;
+}
+
+/* transposed direct form II */
+/* a0 = 1, a1 = a[0], a2 = a[1] */
+/* 2 states */
+inline rta_real_t rta_biquad_df2t_stride(
+  const rta_real_t x,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride)
+{
+  rta_real_t y = b[0] * x + states[0];
+  states[0] = b[b_stride] * x - a[0] * y + states[s_stride];
+  states[s_stride] = b[2*b_stride] * x - a[a_stride] * y;
+
+  return y;
+}
+
+void rta_biquad_df1_vector(rta_real_t * y, 
+                           const rta_real_t * x, const unsigned int x_size,
+                           const rta_real_t * b, const rta_real_t * a, 
+                           rta_real_t * states)
+{
+  unsigned int i;
+  
+  for(i = 0; i < x_size; i++)
+  {
+    y[i] = rta_biquad_df1(x[i], b, a, states);
+  }
+  
+
+  return;
+}
+
+void rta_biquad_df2t_vector(rta_real_t * y, 
+                            const rta_real_t * x, const unsigned int x_size,
+                            const rta_real_t * b, const rta_real_t * a, 
+                            rta_real_t * states)
+{
+  unsigned int i;
+  
+  for(i = 0; i < x_size; i++)
+  {
+    y[i] = rta_biquad_df2t(x[i], b, a, states);
+  }
+  
+
+  return;
+}
+
+void rta_biquad_df1_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride)
+{
+  int ix, iy;
+  
+  for(ix = 0, iy = 0;
+      ix < x_size*x_stride;
+      ix += x_stride, iy += y_stride)
+  {
+    y[iy] = rta_biquad_df1_stride(
+      x[ix], b, b_stride, a, a_stride, states, s_stride);
+  }
+
+  return;
+}
+
+void rta_biquad_df2t_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride)
+{
+  int ix, iy;
+  
+  for(ix = 0, iy = 0;
+      ix < x_size*x_stride;
+      ix += x_stride, iy += y_stride)
+  {
+    y[iy] = rta_biquad_df2t_stride(
+      x[ix], b, b_stride, a, a_stride, states, s_stride);
+  }
+
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.h
new file mode 100644
index 0000000..286e990
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_biquad.h
@@ -0,0 +1,727 @@
+/** 
+ * @file   rta_biquad.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Aug 29 12:38:46 2008
+ *
+ * @brief  Biquad filter and coefficients calculations.
+ *
+ * Based on the "Cookbook formulae for audio EQ biquad filter
+ * coefficients" by Robert Bristow-Johnson.
+ *
+ * @htmlonly <pre>
+ * y(n) = b0 x(n) + b1 x(n-1) + b2 x(n-2)
+ *                - a1 y(n-1) - a2 y(n-2)
+ * </pre> @endhtmlonly
+ *
+ * (This is Matlab convention, MaxMSP biquad~ swaps the names for a
+ * and b.)
+ *
+ * a0 is always 1. as each coefficient is normalised by a0, including
+ * a0.
+ *
+ * For every function, a1 is a[0] and a2 is a[1]. b0 is b[0], b1 is
+ * b[1] and b2 is b[2].
+ *
+ * @copyright
+ * Copyright (C) 2008 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)}
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_BIQUAD_H_
+#define _RTA_BIQUAD_H_ 1
+
+#include "rta.h"
+#include "rta_filter.h" /* filter types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+#define inline
+#endif
+
+/** 
+ * Biquad coefficients for a low-pass filter.
+ * H(s) = 1 / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency: the filter is closed if f0 == 0. and open if f0 == 1.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ */
+void rta_biquad_lowpass_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a low-pass filter.
+ * H(s) = 1 / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency: the filter is closed if f0 == 0. and open if f0 == 1.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ */
+void rta_biquad_lowpass_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a high-pass filter.
+ * H(s) = s^2 / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency: the filter is closed if f0 == 1. and open if f0 == 0.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ */
+void rta_biquad_highpass_coefs(rta_real_t * b, rta_real_t * a,
+                               const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a high-pass filter.
+ * H(s) = s^2 / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency: the filter is closed if f0 == 1. and open if f0 == 0.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ */
+void rta_biquad_highpass_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a band-pass filter with constant skirt. The
+ * peak gain is 'q'.
+ * H(s) = s / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_bandpass_constant_skirt_coefs(rta_real_t * b, rta_real_t * a,
+                                              const rta_real_t f0,
+                                              const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a band-pass filter with constant skirt. The
+ * peak gain is 'q'.
+ * H(s) = s / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_bandpass_constant_skirt_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0,
+  const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a band-pass filter with constant 0 dB peak.
+ * H(s) = (s/q) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_bandpass_constant_peak_coefs(rta_real_t * b, rta_real_t * a,
+                                             const rta_real_t f0,
+                                             const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a band-pass filter with constant 0 dB peak.
+ * H(s) = (s/q) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_bandpass_constant_peak_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0,
+  const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a notch filter.
+ * H(s) = (s^2 + 1) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_notch_coefs(rta_real_t * b, rta_real_t * a,
+                            const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for a notch filter.
+ * H(s) = (s^2 + 1) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_notch_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for an all-pass filter.
+ * H(s) = (s^2 - s/q + 1) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_allpass_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for an all-pass filter.
+ * H(s) = (s^2 - s/q + 1) / (s^2 + s/q + 1)
+ *
+ * @param b is a vector of feed-forward coefficients. To apply a
+ * (linear) gain, simply multiply the b coefficients by the gain.
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ */
+void rta_biquad_allpass_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q);
+
+/** 
+ * Biquad coefficients for an peaking filter.
+ * H(s) = (s^2 + s*(g/q) + 1) / (s^2 + s/(g*q) + 1),
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_peaking_coefs(rta_real_t * b, rta_real_t * a,
+                              const rta_real_t f0, const rta_real_t q,
+                              const rta_real_t gain);
+
+/** 
+ * Biquad coefficients for an peaking filter.
+ * H(s) = (s^2 + s*(g/q) + 1) / (s^2 + s/(g*q) + 1),
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_peaking_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q,
+  const rta_real_t gain);
+
+/** 
+ * Biquad coefficients for an low-shelf filter.
+ * H(s) = g * (s^2 + (sqrt(g)/q)*s + g)/(g*s^2 + (sqrt(g)/q)*s + 1)
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_lowshelf_coefs(rta_real_t * b, rta_real_t * a,
+                               const rta_real_t f0, const rta_real_t q,
+                               const rta_real_t gain);
+
+/** 
+ * Biquad coefficients for an low-shelf filter.
+ * H(s) = g * (s^2 + (sqrt(g)/q)*s + g)/(g*s^2 + (sqrt(g)/q)*s + 1)
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_lowshelf_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q,
+  const rta_real_t gain);
+
+/** 
+ * Biquad coefficients for an high-shelf filter.
+ * H(s) = g * (g*s^2 + (sqrt(g)/q)*s + 1)/(s^2 + (sqrt(g)/q)*s + g)
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param a is a vector of feed-backward coefficients
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_highshelf_coefs(rta_real_t * b, rta_real_t * a,
+                                const rta_real_t f0, const rta_real_t q,
+                                const rta_real_t gain);
+
+/** 
+ * Biquad coefficients for an high-shelf filter.
+ * H(s) = g * (g*s^2 + (sqrt(g)/q)*s + 1)/(s^2 + (sqrt(g)/q)*s + g)
+ * g = sqrt('gain'),
+ * 'gain' is linear.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_highshelf_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_real_t f0, const rta_real_t q,
+  const rta_real_t gain);
+
+/** 
+ * Helper function calling the proper biquad coefficients calculation
+ * function, depending on the filter type.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param a is a vector of feed-backward coefficients
+ * @param type can be:
+ * <pre>
+ *   lowpass: H(s) = 1 / (s^2 + s/q + 1)
+ *   highpass: H(s) = s^2 / (s^2 + s/q + 1)
+ *   bandpass_cst_skirt: H(s) = s / (s^2 + s/q + 1)
+ *        (The peak gain is q*gain)
+ *   bandpass_cst_peak: H(s) = (s/q) / (s^2 + s/q + 1)
+ *        (The peak gain is gain)
+ *   notch: H(s) = (s^2 + 1) / (s^2 + s/q + 1)
+ *   allpass: H(s) = (s^2 - s/q + 1) / (s^2 + s/q + 1)
+ *   peaking: H(s) = (s^2 + s*(g/q) + 1) / (s^2 + s/(g*q) + 1),
+ *        with g = sqrt(gain)
+ *   lowshelf: H(s) = g * (s^2 + (sqrt(g)/q)*s + g)/
+ *                         (g*s^2 + (sqrt(g)/q)*s + 1)
+ *        with g = sqrt(gain)
+ *   highshelf: H(s) = g * (g*s^2 + (sqrt(g)/q)*s + 1)/
+ *                            (s^2 + (sqrt(g)/q)*s + g)
+ *        with g = sqrt(gain)
+ * </pre>
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response
+ * for lowpass, highpass, lowshelf and highshelf types.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_coefs(rta_real_t * b, rta_real_t * a,
+                      const rta_filter_t type,
+                      const rta_real_t f0, const rta_real_t q,
+                      const rta_real_t gain);
+
+
+/** 
+ * Helper function calling the proper biquad coefficients calculation
+ * function, depending on the filter type.
+ *
+ * @param b is a vector of feed-forward coefficients
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients
+ * @param a_stride is 'a' stride
+ * @param type can be:
+ * <pre>
+ *   lowpass: H(s) = 1 / (s^2 + s/q + 1)
+ *   highpass: H(s) = s^2 / (s^2 + s/q + 1)
+ *   bandpass_cst_skirt: H(s) = s / (s^2 + s/q + 1)
+ *        (The peak gain is q*gain)
+ *   bandpass_cst_peak: H(s) = (s/q) / (s^2 + s/q + 1)
+ *        (The peak gain is gain)
+ *   notch: H(s) = (s^2 + 1) / (s^2 + s/q + 1)
+ *   allpass: H(s) = (s^2 - s/q + 1) / (s^2 + s/q + 1)
+ *   peaking: H(s) = (s^2 + s*(g/q) + 1) / (s^2 + s/(g*q) + 1),
+ *        with g = sqrt(gain)
+ *   lowshelf: H(s) = g * (s^2 + (sqrt(g)/q)*s + g)/
+ *                         (g*s^2 + (sqrt(g)/q)*s + 1)
+ *        with g = sqrt(gain)
+ *   highshelf: H(s) = g * (g*s^2 + (sqrt(g)/q)*s + 1)/
+ *                            (s^2 + (sqrt(g)/q)*s + g)
+ *        with g = sqrt(gain)
+ * </pre>
+ * @param f0 is the cutoff frequency, normalised by the nyquist
+ * frequency.
+ * @param q must be > 0. and is generally >= 0.5 for audio
+ * filtering. q <= 1./sqrt(2.) is the limit for monotonic response
+ * for lowpass, highpass, lowshelf and highshelf types.
+ * @param gain is linear and must be > 0.
+ */
+void rta_biquad_coefs_stride(
+  rta_real_t * b, const int b_stride,
+  rta_real_t * a, const int a_stride,
+  const rta_filter_t type,
+  const rta_real_t f0, const rta_real_t q,
+  const rta_real_t gain);
+
+
+/** 
+ * Biquad computation, using a direct form I.
+ *
+ * <pre>
+ * x           b0                                   y
+ * --------+----->----->(  +  )-------->-----+------->
+ *         |            ^ ^ ^ ^              |
+ *         V   b1      / /   \ \        -a1  V
+ *       [x-1]--->----/ /     \ \------<---[y-1]
+ *         |           /       \             |
+ *         V   b2     /         \       -a2  V
+ *       [x-2]--->---/           \-----<---[y-2]
+ * 
+ * </pre>
+ *
+ * @param x is an input sample
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param states is a vector of 4 elements: for an input 'x' and an
+ * output 'y', the states are, in that order, x(n-1), x(n-2), y(n-1),
+ * and y(n-2). Both can be initialised with 0. or the last computed
+ * values, which are updated by this function.
+ *
+ * @return the output sample y
+ */
+extern inline rta_real_t rta_biquad_df1(const rta_real_t x,
+                                 const rta_real_t * b, const rta_real_t * a,
+                                 rta_real_t * states);
+
+/** 
+ * Biquad computation, using a transposed direct form II.
+ *
+ * <pre>
+ * x
+ * --------+---------------+---------------+
+ *         |               |               |
+ *         |b2             |b1             |b0
+ *         V               V               V            y
+ *        (+)--->[z-1]--->(+)--->[z-1]--->(+)----+------->
+ *         ^               ^                     |
+ *         |-a2            |-a1                  |
+ *         |               |                     |
+ *         +---------------+---------------------+
+ *
+ * </pre>
+ *
+ * @param x is an input sample
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param states is a vector of 2 elements: states[0] is the one
+ * sample delay state and states[1] is the two samples delay
+ * state. Both can be initialised with 0. or the last computed values,
+ * which are updated by this function.
+ *
+ * @return the output sample y
+ */
+extern inline rta_real_t rta_biquad_df2t(const rta_real_t x,
+                                  const rta_real_t * b, const rta_real_t * a,
+                                  rta_real_t * states);
+
+/** 
+ * Biquad computation, using a direct form I.
+ *
+ * <pre>
+ * x           b0                                   y
+ * --------+----->----->(  +  )-------->-----+------->
+ *         |            ^ ^ ^ ^              |
+ *         V   b1      / /   \ \        -a1  V
+ *       [x-1]--->----/ /     \ \------<---[y-1]
+ *         |           /       \             |
+ *         V   b2     /         \       -a2  V
+ *       [x-2]--->---/           \-----<---[y-2]
+ * 
+ * </pre>
+ *
+ * @param x is an input sample
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param a_stride is 'a' stride
+ * @param states is a vector of 4 elements: for an input 'x' and an
+ * output 'y', the states are, in that order, x(n-1), x(n-2), y(n-1),
+ * and y(n-2). Both can be initialised with 0. or the last computed
+ * values, which are updated by this function.
+ * @param s_stride is 'states' strides.
+ *
+ * @return the output sample y
+ */
+extern inline rta_real_t rta_biquad_df1_stride(
+  const rta_real_t x,
+  const rta_real_t * b, const int a_stride,
+  const rta_real_t * a, const int b_stride,
+  rta_real_t * states, const int s_stride);
+
+/** 
+ * Biquad computation, using a transposed direct form II.
+ *
+ * <pre>
+ *
+ * x
+ * --------+---------------+---------------+
+ *         |               |               |
+ *         |b2             |b1             |b0
+ *         V               V               V            y
+ *        (+)--->[z-1]--->(+)--->[z-1]--->(+)----+------->
+ *         ^               ^                     |
+ *         |-a2            |-a1                  |
+ *         |               |                     |
+ *         +---------------+---------------------+
+ *
+ * </pre>
+ *
+ * @param x is an input sample
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param a_stride is 'a' stride
+ * @param states is a vector of 2 elements: states[0] is the one
+ * sample delay state and states[1] is the two samples delay
+ * state. Both can be initialised with 0. or the last computed values,
+ * which are updated by this function.
+ * @param s_stride is 'states' strides.
+ *
+ * @return the output sample y
+ */
+extern inline rta_real_t rta_biquad_df2t_stride(
+  const rta_real_t x,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride);
+
+/** 
+ * Biquad computation on a vector of samples, using a direct form I.
+ *
+ * \see rta_biquad_df1
+ *
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_size is the size of 'y' and 'x'
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param states is a vector of 4 elements: for an input 'x' and an
+ * output 'y', the states are, in that order, x(n-1), x(n-2), y(n-1),
+ * and y(n-2). Both can be initialised with 0. or the last computed
+ * values, which are updated by this function.
+ */
+void rta_biquad_df1_vector(rta_real_t * y,
+                           const rta_real_t * x, const unsigned int x_size,
+                           const rta_real_t * b, const rta_real_t * a,
+                           rta_real_t * states);
+
+/** 
+ * Biquad computation on a vector of samples, using a transposed
+ * direct form II.
+ *
+ * \see rta_biquad_df2t
+ *
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_size is the size of 'y' and 'x'
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param states is a vector of 2 elements: states[0] is the one
+ * sample delay state and states[1] is the two samples delay
+ * state. Both can be initialised with 0. or the last computed values,
+ * which are updated by this function.
+ */
+void rta_biquad_df2t_vector(rta_real_t * y,
+                            const rta_real_t * x, const unsigned int x_size,
+                            const rta_real_t * b, const rta_real_t * a,
+                            rta_real_t * states);
+
+/** 
+ * Biquad computation on a vector of samples, using a direct form I.
+ *
+ * \see rta_biquad_df1
+ *
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param y_stride is 'y' stride
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_stride is 'x' stride
+ * @param x_size is the size of 'y' and 'x'
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param a_stride is 'a' stride
+ * @param states is a vector of 4 elements: for an input 'x' and an
+ * output 'y', the states are, in that order, x(n-1), x(n-2), y(n-1),
+ * and y(n-2). Both can be initialised with 0. or the last computed
+ * values, which are updated by this function.
+ * @param s_stride is 'states' strides.
+ */
+void rta_biquad_df1_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride);
+
+/** 
+ * Biquad computation on a vector of samples, using a transposed
+ * direct form II.
+ *
+ * \see rta_biquad_df2t
+ *
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param y_stride is 'y' stride
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_stride is 'x' stride
+ * @param x_size is the size of 'y' and 'x'
+ * @param b is a vector of feed-forward coefficients. b0 is b[0], b1
+ * is b[1] and b2 is b[2].
+ * @param b_stride is 'b' stride
+ * @param a is a vector of feed-backward coefficients. Note that a1 is
+ * a[0] and a2 is a[1] (and a0 is supposed to be 1.).
+ * @param a_stride is 'a' stride
+ * @param states is a vector of 2 elements: states[0] is the one
+ * sample delay state and states[1] is the two samples delay
+ * state. Both can be initialised with 0. or the last computed values,
+ * which are updated by this function.
+ * @param s_stride is 'states' strides.
+ */
+void rta_biquad_df2t_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size,
+  const rta_real_t * b, const int b_stride,
+  const rta_real_t * a, const int a_stride,
+  rta_real_t * states, const int s_stride);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_BIQUAD_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.c
new file mode 100644
index 0000000..bb70f87
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.c
@@ -0,0 +1,326 @@
+/**
+ * @file   rta_correlation.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 27 12:25:16 2007
+ * 
+ * @brief  Correlation (cross or auto)
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_correlation.h"
+
+
+/* specific implementations */
+#if defined(RTA_USE_VECLIB)
+//#include <vDSP.h>
+#include <Accelerate/Accelerate.h>
+#endif
+
+/* Fast, unbiased by nature, recommended if (c_size / filter_size > 20) */
+/* Requirement: (a_size, b_size) >= c_size + filter_size */
+/* Warning: for VecLib, a_size is required to be aligned on a multiple */
+/* of 4, that is */
+/* a_size >= 'c_size' + 4*(('filter_size'+ 4 - 1)/4) */
+void rta_correlation_fast(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int filter_size)
+{
+#if defined(RTA_USE_VECLIB)
+  if(filter_size <= 2044 && filter_size + c_size >=12)
+  {
+#if (RTA_REAL_TYPE == RTA_FLOAT_TYPE)
+    vDSP_conv(input_vector_a, 1, input_vector_b, 1, correlation, 1,
+              c_size, filter_size);
+#elif (RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+    vDSP_convD(input_vector_a, 1, input_vector_b, 1, correlation, 1,
+              c_size, filter_size);
+#endif
+  }
+  else
+  { 
+#endif /* RTA_USE_VECLIB */
+
+/* Base algorithm */
+    int c,f;
+    for(c=0; c<c_size; c++)
+    {
+      correlation[c] = 0.0;
+      for(f=0; f<filter_size; f++)
+      {
+        correlation[c] += input_vector_a[f+c] * input_vector_b[f];
+      }
+    } /* end of base algorithm */
+
+#if defined(RTA_USE_VECLIB)
+  }
+#endif
+  return;
+}
+
+/* Requirement: {a_size*a_stride, b_size*b_stride} >= */
+/* (c_size+filter_size)*c_stride */
+/* Warning: for VecLib, a_size is required to be aligned on a multiple */
+/* of 4, that is */
+/* a_size >= 'c_size' + 4*(('filter_size'+ 4 - 1)/4) */
+void rta_correlation_fast_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int filter_size)
+{
+#if defined(RTA_USE_VECLIB)
+  if(filter_size <= 2044 && filter_size + c_size >=12)
+  {
+#if (RTA_REAL_TYPE == RTA_FLOAT_TYPE)
+    vDSP_conv(input_vector_a, a_stride, input_vector_b, b_stride,
+              correlation, c_stride, c_size, filter_size);
+#elif (RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+    vDSP_convD(input_vector_a, a_stride, input_vector_b, b_stride,
+               correlation, c_stride, c_size, filter_size);
+#endif
+  }
+  else
+  { 
+#endif /* RTA_USE_VECLIB */
+
+/* Base algorithm */
+    int c, ca, fa, fb;
+    for(c=0, ca=0; c<c_size*c_stride; c+=c_stride, ca+=a_stride)
+    {
+      correlation[c] = 0.0;
+      for(fa=0, fb=0; fa<filter_size*a_stride; fa+=a_stride, fb+=b_stride)
+      {
+        correlation[c] +=
+          input_vector_a[fa+ca] * input_vector_b[fb];
+      }
+    } /* end of base algorithm */
+
+#if defined(RTA_USE_VECLIB)
+  }
+#endif
+  return;
+}
+
+/* Requirement: (a_size, b_size) >= max_filter_size > c_size */
+void rta_correlation_raw(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size)
+{
+  int c,f;
+  for(c=0; c<c_size; c++)
+  {
+    correlation[c] = 0.0;
+    for(f=0; f<max_filter_size-c; f++)
+    {
+      correlation[c] += input_vector_a[f+c] * input_vector_b[f];
+    }
+  }
+  return;
+}
+
+/* Requirement: (a_size, b_size) >= max_filter_size > c_size */
+void rta_correlation_raw_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size)
+{
+  int c, ca, fa, fb;
+  for(c=0, ca=0; c<c_size*c_stride; c+=c_stride, ca+=a_stride)
+  {
+    correlation[c] = 0.0;
+    for(fa=0, fb=0;
+        fa<max_filter_size*a_stride-ca;
+        fa+=a_stride, fb+=b_stride)
+    {
+      correlation[c] += input_vector_a[fa+ca] * input_vector_b[fb];
+    }
+  }
+  return;
+}
+
+
+/* Requirements: (a_size, b_size) >= max_filter_size > c_size */
+void rta_correlation_unbiased(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size)
+{
+  int c,f;
+  for(c=0; c<c_size; c++)
+  {
+    correlation[c] = 0.0;
+    for(f=0; f<max_filter_size-c; f++)
+    {
+      correlation[c] += input_vector_a[f+c] * input_vector_b[f];
+    }
+    correlation[c] /= f;
+  }
+  return;
+}
+
+/* Requirements: (a_size, b_size) >= max_filter_size > c_size */
+void rta_correlation_unbiased_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size)
+{
+  int c, ca, f, fa, fb;
+  for(c=0, ca=0; c<c_size*c_stride; c+=c_stride, ca+=a_stride)
+  {
+    correlation[c] = 0.0;
+    for(f=0, fa=0, fb=0;
+        fa<max_filter_size*a_stride-ca;
+        f++, fa+=a_stride, fb+=b_stride)
+    {
+      correlation[c] += input_vector_a[fa+ca] * input_vector_b[fb];
+    }
+    correlation[c] /= f;
+  }
+
+  return;
+}
+
+
+rta_real_t rta_correlation_fast_normalization_factor(const unsigned int filter_size)
+{
+  rta_real_t normalization = 1.;
+  
+  if(filter_size>0)
+  {
+    normalization = 1. / (rta_real_t)filter_size;
+  }
+  return normalization;
+}
+
+rta_real_t rta_correlation_raw_normalization_factor(const unsigned int max_filter_size)
+{
+  rta_real_t normalization = 1.;
+  
+  if(max_filter_size>0)
+  {
+    normalization = 1. / (rta_real_t)(max_filter_size + 1);
+  }
+  return normalization;
+}
+
+
+/* Requirement: (a_size, b_size) >= c_size + filter_size */
+void rta_correlation_fast_scaled(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int filter_size, const rta_real_t scale)
+{
+  int c,f;
+  for(c=0; c<c_size; c++)
+  {
+    correlation[c] = 0.0;
+    for(f=0; f<filter_size; f++)
+    {
+      correlation[c] += input_vector_a[f+c] * input_vector_b[f];
+    }
+    correlation[c] *= scale;    
+  }
+  return;
+}
+
+
+/* Requirement: {a_size*a_stride, b_size*b_stride} >= (c_size+filter_size)*c_stride */
+void rta_correlation_fast_scaled_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int filter_size, const rta_real_t scale)
+{
+  int c,ca,fa,fb;
+  for(c=0, ca=0; c<c_size*c_stride; c+=c_stride, ca+=a_stride)
+  {
+    correlation[c] = 0.0;
+    for(fa=0, fb=0; fa<filter_size*a_stride; fa+=a_stride, fb+=b_stride)
+    {
+      correlation[c] +=
+        input_vector_a[fa+ca] * input_vector_b[fb];
+    }
+    correlation[c] *= scale;
+  }
+  return;
+}
+
+/* Requirement: (a_size, b_size) >= max_filter_size */
+void rta_correlation_raw_scaled(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size, const rta_real_t scale)
+{
+  int c,f;
+  for(c=0; c<c_size; c++)
+  {
+    correlation[c] = 0.0;
+    for(f=0; f<max_filter_size-c; f++)
+    {
+      correlation[c] += input_vector_a[f+c] * input_vector_b[f];
+    }
+    correlation[c] *= scale;
+  }
+  return;
+}
+
+/* Requirement: (a_size, b_size) >= max_filter_size */
+void rta_correlation_raw_scaled_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size, const rta_real_t scale)
+{
+  int c, ca, fa, fb;
+  for(c=0, ca=0; c<c_size*c_stride; c+=c_stride, ca+=a_stride)
+  {
+    correlation[c] = 0.0;
+    for(fa=0, fb=0;
+        fa<max_filter_size*a_stride-ca;
+        fa+=a_stride, fb+=b_stride)
+    {
+      correlation[c] += input_vector_a[fa+ca] * input_vector_b[fb];
+    }
+    correlation[c] *= scale;
+  }
+  return;
+}
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.h
new file mode 100644
index 0000000..b0cf8b1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_correlation.h
@@ -0,0 +1,372 @@
+/**
+ * @file   rta_correlation.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 27 12:25:16 2007
+ * 
+ * @brief  Correlation (cross or auto)
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_CORRELATION_H_
+#define _RTA_CORRELATION_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \sum_{f=0}^{filter\_size-1} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is unbiased by nature but misses some information,
+ * specially for the first coefficients. It should be negligible if
+ * 'filter_size' is much greater than 'c_size', like ('filter_size' /
+ * 'c_size' > 20).
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'c_size' + 'filter_size'
+ * @param input_vector_b size b_size must be >= 'c_size' 
+ * @param filter_size is the maximum shift for 'input_vector_a'. In
+ * practice, 'filter_size' == (a_size - 'c_size')
+ */
+void
+rta_correlation_fast(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int filter_size);
+
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \sum_{f=0}^{filter\_size-1} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * 
+ * This function is unbiased by nature but misses some information,
+ * specially for the first coefficients. It should be negligible if
+ * 'filter_size' is much greater than 'c_size', like ('filter_size' /
+ * 'c_size' > 20).
+ *
+ * @param correlation size is 'c_size'
+ * @param c_stride is 'correlation' stride
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size must be >= 'c_size' + 'filter_size'
+ * @param a_stride is 'input_vector_a' stride
+ * @param input_vector_b size must be >= 'c_size' 
+ * @param b_stride is 'input_vector_b' stride
+ * @param filter_size  is the maximum shift for 'input_vector_a'. In
+ * practice, 'filter_size' == (a_size - 'c_size')
+ */
+void
+rta_correlation_fast_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int filter_size);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is biased but uses all the information available for
+ * each coefficient.
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ */
+void
+rta_correlation_raw(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is biased but uses all the information available for
+ * each coefficient.
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_stride is 'correlation' stride
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param a_stride is 'input_vector_a' stride
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param b_stride is 'input_vector_b' stride
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ */
+void
+rta_correlation_raw_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \frac{1}{max\_filter\_size-i} \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is unbiased as it normalizes each coefficient by its
+ * actual filter size.
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ */
+void
+rta_correlation_unbiased(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = \frac{1}{max\_filter\_size-i} \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is unbiased as it normalizes each coefficient by its
+ * actual filter size.
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_stride is 'correlation' stride
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param a_stride is 'input_vector_a' stride
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param b_stride is 'input_vector_b' stride
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ */
+void
+rta_correlation_unbiased_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size);
+
+/** 
+ * Generate a factor '*normalization' to multiply the correlation
+ * with, in order to normalize the correlation_fast values against the
+ * 'max_filter_size'.
+ * 
+ * @param filter_size is the maximum shift for 'input_vector_a'
+ * 
+ * @return normalization factor to multiply the correlation_fast with
+ * 
+ * \see rta_correlation_fast_scaled
+ * \see rta_correlation_fast_scaled_stride
+ */
+rta_real_t
+rta_correlation_fast_normalization_factor(const unsigned int filter_size);
+
+/** 
+ * Generate a factor '*normalization' to multiply the correlation
+ * with, in order to normalize the correlation_raw values against the
+ * 'max_filter_size'.
+ * 
+ * @param max_filter_size is the maximum shift for 'input_vector_a'
+ * 
+ * @return normalization factor to multiply the correlation_raw with
+ * 
+ * \see rta_correlation_raw_scaled
+ * \see rta_correlation_raw_scaled_stride
+ */
+rta_real_t
+rta_correlation_raw_normalization_factor(const unsigned int max_filter_size);
+
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = scale \sum_{f=0}^{filter\_size-1} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is unbiased by nature but misses some information,
+ * specially for the first coefficients. It should be negligible if
+ * 'filter_size' is much greater than 'c_size', like ('filter_size' /
+ * 'c_size' > 20).
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size must be >= 'c_size' + 'filter_size'
+ * @param input_vector_b size must be >= 'c_size' 
+ * @param filter_size is the maximum shift for 'input_vector_a'. In
+ * practice, 'filter_size' == (a_size - 'c_size')
+ * @param scale is a factor to multiply the 'correlation' values with
+ */
+void
+rta_correlation_fast_scaled(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int filter_size, const rta_real_t scale);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$(i) = scale \sum_{f=0}^{filter\_size-1} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is unbiased by nature but misses some information,
+ * specially for the first coefficients. It should be negligible if
+ * 'filter_size' is much greater than 'c_size', like ('filter_size' /
+ * 'c_size' > 20).
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_stride is 'correlation' stride
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size must be >= 'c_size' + 'filter_size'
+ * @param a_stride is 'input_vector_a' stride
+ * @param input_vector_b size must be >= 'c_size' 
+ * @param b_stride is 'input_vector_b' stride
+ * @param filter_size is the maximum shift for 'input_vector_a'. In
+ * practice, 'filter_size' == (a_size - 'c_size')
+ * @param scale is a factor to multiply the 'correlation' values with
+ */
+void
+rta_correlation_fast_scaled_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int filter_size, const rta_real_t scale);
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = scale \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is biased but uses all the information available for
+ * each coefficient.
+ * 
+ * @param correlation size is 'c_size'
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ * @param scale is a factor to multiply the 'correlation' values with
+ */
+void
+rta_correlation_raw_scaled(
+  rta_real_t * correlation, const unsigned int c_size,
+  const rta_real_t * input_vector_a,
+  const rta_real_t * input_vector_b,
+  const unsigned int max_filter_size, const rta_real_t scale);
+
+
+/** 
+ * Compute correlation between 'input_vector_a' and 'input_vector_b' into
+ * 'correlation'. If 'input_vector_a' == 'input_vector_b', it computes
+ * auto-correlation. This function can run in place if 'correlation' ==
+ * 'input_vector_a' or 'correlation' == 'input_vector_b'.
+ *
+ * \f$C(i) = scale \sum_{f=0}^{max\_filter\_size-i} A(f+i) \cdot B(f), i=\{0,c\_size-1\}\f$
+ * 
+ * This function is biased but uses all the information available for
+ * each coefficient.
+ *
+ * @param correlation size is 'c_size'
+ * @param c_stride is 'correlation' stride
+ * @param c_size is the 'correlation' order + 1, 'c_size' must be > 0
+ * @param input_vector_a size a_size must be >= 'max_filter_size' 
+ * @param a_stride is 'input_vector_a' stride
+ * @param input_vector_b size b_size must be >= 'max_filter_size' 
+ * @param b_stride is 'input_vector_b' stride
+ * @param max_filter_size is the maximum shift for 'input_vector_a'.
+ * 'max_filter_size' must be > 'c_size'.
+ * In practice, 'max_filter_size' == a_size
+ * @param scale is a factor to multiply the 'correlation' values with
+ */
+void
+rta_correlation_raw_scaled_stride(
+  rta_real_t * correlation, const int c_stride, const unsigned int c_size,
+  const rta_real_t * input_vector_a, const int a_stride,
+  const rta_real_t * input_vector_b, const int b_stride,
+  const unsigned int max_filter_size, const rta_real_t scale);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_CORRELATION_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.c
new file mode 100644
index 0000000..8ea410e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.c
@@ -0,0 +1,58 @@
+/**
+ * @file   rta_cubic.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @copyright
+ * Copyright (C) 1994, 1995, 1998, 1999, 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved. 
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* coefficient atable for cubic interpolation */
+
+#include "rta_cubic.h"
+
+static rta_cubic_coefs_t _rta_cubic_table[RTA_CUBIC_TABLE_SIZE];
+rta_cubic_coefs_t *rta_cubic_table = _rta_cubic_table;
+
+void rta_cubic_table_init ()
+{
+  int i;
+  float f;
+  rta_cubic_coefs_t *p = rta_cubic_table;
+
+  for (i = 0; i < RTA_CUBIC_TABLE_SIZE; i++)
+  {
+      f = i * (1.0 / RTA_CUBIC_TABLE_SIZE);
+      p->pm1 = -0.1666667 * f * (1 - f) * (2 - f);
+      p->p0 = 0.5 * (1 + f) * (1 - f) * (2 - f);
+      p->p1 = 0.5 * (1 + f) * f * (2 - f);
+      p->p2 = -0.1666667 * (1 + f) * f * (1 - f);
+      p++;
+  }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.h
new file mode 100644
index 0000000..1da3d0d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_cubic.h
@@ -0,0 +1,149 @@
+/**
+ * @file   rta_cubic.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @copyright
+ * Copyright (C) 1994, 1995, 1998, 1999, 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_CUBIC_H
+#define _RTA_CUBIC_H
+
+
+/*******************************************************************************
+ *
+ *  cubic interpolation
+ *
+ */
+
+#ifndef RTA_CUBIC_TABLE_SIZE
+#define RTA_CUBIC_TABLE_SIZE 256
+#endif
+
+#define RTA_CUBIC_HEAD 1
+#define RTA_CUBIC_TAIL 2
+
+#define RTA_CUBIC_TABLE_BITS 8
+#define RTA_CUBIC_TABLE_SIZE 256
+
+#define RTA_CUBIC_INTPHASE_LOST_BITS 8
+#define RTA_CUBIC_INTPHASE_FRAC_BITS (RTA_CUBIC_TABLE_BITS + RTA_CUBIC_INTPHASE_LOST_BITS)
+#define RTA_CUBIC_INTPHASE_FRAC_SIZE (1 << RTA_CUBIC_INTPHASE_FRAC_BITS)
+
+#define rta_cubic_get_table_index_from_idefix(i) \
+  ((int)(((i).frac & RTA_CUBIC_IDEFIX_BIT_MASK) >> RTA_CUBIC_IDEFIX_SHIFT_BITS))
+
+#define rta_cubic_get_table_index_from_frac(f) \
+  ((unsigned int)((f) * (double)RTA_CUBIC_TABLE_SIZE) & (RTA_CUBIC_TABLE_SIZE - 1))
+
+#define RTA_CUBIC_IDEFIX_SHIFT_BITS 24
+#define RTA_CUBIC_IDEFIX_BIT_MASK 0xff000000
+
+#define rta_cubic_intphase_scale(f) ((f) * RTA_CUBIC_INTPHASE_FRAC_SIZE)
+#define rta_cubic_intphase_get_int(i) ((i) >> RTA_CUBIC_INTPHASE_FRAC_BITS)
+#define rta_cubic_intphase_get_frac(i) ((i) & (RTA_CUBIC_INTPHASE_FRAC_SIZE - 1))
+
+typedef struct
+{
+  float pm1;
+  float p0;
+  float p1;
+  float p2;
+} rta_cubic_coefs_t;
+
+rta_cubic_coefs_t *rta_cubic_table;
+
+void rta_cubic_table_init ();
+
+#define rta_cubic_get_coefs(f) \
+  (rta_cubic_table + rta_cubic_get_table_index_from_frac(f))
+
+#define rta_cubic_calc(x, p) \
+  ((x)[-1] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[1] * (p)->p1 + (x)[2] * (p)->p2)
+
+#define rta_cubic_calc_stride(x, p, s) \
+  ((x)[-(s)] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[s] * (p)->p1 + (x)[2 * (s)] * (p)->p2)
+
+#define rta_cubic_calc_head(x, p) \
+  ((x)[0] * (p)->p0 + (x)[1] * (p)->p1 + (x)[2] * (p)->p2)
+
+#define rta_cubic_calc_stride_head(x, p, s) \
+((x)[0] * (p)->p0 + (x)[s] * (p)->p1 + (x)[2 * (s)] * (p)->p2)
+
+#define rta_cubic_calc_tailm2(x, p) \
+  ((x)[-1] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[1] * (p)->p1)
+
+#define rta_cubic_calc_tailm2_xm1(x, p, xm1) \
+  ((x)[-1] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[1] * (p)->p1 + (xm1) * (p)->p2)
+
+#define rta_cubic_calc_stride_tailm2(x, p, s) \
+  ((x)[-(s)] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[s] * (p)->p1)
+
+#define rta_cubic_calc_stride_tailm2_xm1(x, p, s, xm1) \
+  ((x)[-(s)] * (p)->pm1 + (x)[0] * (p)->p0 + (x)[s] * (p)->p1 + (xm1) * (p)->p2)
+
+#define rta_cubic_calc_tailm1(x, p) \
+  ((x)[-1] * (p)->pm1 + (x)[0] * (p)->p0)
+
+#define rta_cubic_calc_tailm1_xm2_xm1(x, p, xm2, xm1) \
+  ((x)[-1] * (p)->pm1 + (x)[0] * (p)->p0 + (xm2) * (p)->p1 + (xm1) * (p)->p2)
+
+#define rta_cubic_calc_stride_tailm1(x, p, s) \
+  ((x)[-(s)] * (p)->pm1 + (x)[0] * (p)->p0)
+
+#define rta_cubic_calc_stride_tailm1_xm2_xm1(x, p, s, xm2, xm1) \
+  ((x)[-(s)] * (p)->pm1 + (x)[0] * (p)->p0 + (xm2) * (p)->p1 + (xm1) * (p)->p2)
+
+#define rta_cubic_idefix_interpolate(p, i, y) \
+do { \
+    rta_cubic_coefs_t *ft = rta_cubic_table + rta_cubic_get_table_index_from_idefix(i); \
+      *(y) = rta_cubic_calc((p) + (i).index, ft); \
+  } while(0)
+
+#define rta_cubic_idefix_interpolate_stride(p, i, s, y) \
+  do { \
+    rta_cubic_coefs_t *ft = rta_cubic_table + rta_cubic_get_table_index_from_idefix(i); \
+      *(y) = rta_cubic_calc_stride((p) + (s) * (i).index, ft, (s)); \
+  } while(0)
+
+#define rta_cubic_intphase_interpolate(p, i, y) \
+  do { \
+    float* q = (p) + ((i) >> RTA_CUBIC_INTPHASE_FRAC_BITS); \
+    rta_cubic_coefs_t *ft = rta_cubic_table + (((i) >> RTA_CUBIC_INTPHASE_LOST_BITS) & (RTA_CUBIC_TABLE_SIZE - 1)); \
+    *(y) = rta_cubic_calc(q, ft); \
+  } while(0)
+
+#define rta_cubic_interpolate(p, i, f, y) \
+  do { \
+    rta_cubic_coefs_t *ft = rta_cubic_table + rta_cubic_get_table_index_from_frac(f); \
+    *(y) = rta_cubic_calc((p) + (i), ft); \
+  } while(0)
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.c
new file mode 100644
index 0000000..c0c15cf
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.c
@@ -0,0 +1,320 @@
+/**
+ * @file   rta_dct.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Discrete Cosine Transform (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * See http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_dct.h"
+#include "rta_math.h"
+
+int rta_dct_weights(rta_real_t * weights_matrix, 
+                    const unsigned int input_size,
+                    const unsigned int dct_order,
+                    const rta_dct_t dct_t)
+{
+  int i,j;
+  int ret = 1; /* return value */
+  
+  /* This is the orthogonal one, the one you want */
+  if(dct_t == rta_dct_slaney || dct_t == rta_dct_htk)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[i*input_size+j] = 
+        rta_cos(i*((j+1)*2.-1.)/(2.*input_size)*M_PI) *
+        rta_sqrt(2./input_size);
+      }
+    }
+    
+    /* Make it unitary (but not for HTK) */
+    if(dct_t == rta_dct_slaney)
+    {
+      /* first line only */
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[j] /= M_SQRT2;
+      }
+    }
+  }
+  
+  /*
+   * type 1 (PLPDCT) with implicit repeating of first, last bins
+   * Deep in the heart of the rasta/feacalc code, there is the logic 
+   * that the first and last auditory bands extend beyond the edge of 
+   * the actual spectra, and they are thus copied from their neighbors.
+   * Normally, we just ignore those bands and take the 19 in the middle, 
+   * but when feacalc calculates mfccs, it actually takes the dct 
+   * over the spectrum *including* the repeated bins at each end.
+   * Here, we simulate 'repeating' the bins and an nrow+2-length 
+   * spectrum by adding in extra DCT weight to the first and last
+   * bins.
+   */
+  else if(dct_t == rta_dct_feacalc)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[i*input_size+j] = 
+        rta_cos(i*(j+1.)/(input_size+1.)*M_PI) * 2.;
+      }
+      
+      /* Add in edge points at ends (includes fixup scale) */
+      weights_matrix[i*input_size] += 1.;
+      if(i&1)		/* odd */
+      {
+        weights_matrix[(i+1)*input_size-1] -= 1.;
+      }
+      else		/* even */
+      {
+        weights_matrix[(i+1)*input_size-1] += 1.;
+      }
+    }
+    
+    for(i=0; i<dct_order*input_size; i++)
+    {
+      weights_matrix[i] /= 2.*(input_size+1.);
+    }
+  }
+  
+  /* dpwe type 1 - same as old spec2cep that expanded & used fft */
+  else if(dct_t == rta_dct_plp)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[i*input_size+j] = 
+        rta_cos(i*j/(input_size-1.)*M_PI) / (input_size-1.);
+        
+      }
+      /* Fixup 'non-repeated' points */
+      weights_matrix[i*input_size] *= 0.5;
+      weights_matrix[(i+1)*input_size-1] *= 0.5;
+    }
+  }
+  else
+  {
+    ret = 0;
+  }
+  
+  return ret;
+}
+
+int rta_dct_weights_stride(rta_real_t * weights_matrix, const int w_stride,
+                           const unsigned int input_size,
+                           const unsigned int dct_order,
+                           const rta_dct_t dct_t)
+{
+  int i,j;
+  int ret = 1; /* return value */
+  
+  /* This is the orthogonal one, the one you want */
+  if(dct_t == rta_dct_slaney || dct_t == rta_dct_htk)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[(i*input_size+j)*w_stride] = 
+        rta_cos(i*((j+1)*2.-1.)/(2.*input_size)*M_PI) *
+        rta_sqrt(2./input_size);
+      }
+    }
+    
+    /* Make it unitary (but not for HTK) */
+    if(dct_t == rta_dct_slaney)
+    {
+      /* first line only */
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[j*w_stride] /= M_SQRT2;
+      }
+    }
+  }
+  
+  /*
+   * type 1 (PLPDCT) with implicit repeating of first, last bins
+   * Deep in the heart of the rasta/feacalc code, there is the logic 
+   * that the first and last auditory bands extend beyond the edge of 
+   * the actual spectra, and they are thus copied from their neighbors.
+   * Normally, we just ignore those bands and take the 19 in the middle, 
+   * but when feacalc calculates mfccs, it actually takes the dct 
+   * over the spectrum *including* the repeated bins at each end.
+   * Here, we simulate 'repeating' the bins and an nrow+2-length 
+   * spectrum by adding in extra DCT weight to the first and last
+   * bins.
+   */
+  else if(dct_t == rta_dct_feacalc)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[(i*input_size+j)*w_stride] = 
+        rta_cos(i*(j+1.)/(input_size+1.)*M_PI) * 2.;
+      }
+      
+      /* Add in edge points at ends (includes fixup scale) */
+      weights_matrix[i*input_size*w_stride] += 1.;
+      if(i&1)		/* odd */
+      {
+        weights_matrix[((i+1)*input_size-1)*w_stride] -= 1.;
+      }
+      else		/* even */
+      {
+        weights_matrix[((i+1)*input_size-1)*w_stride] += 1.;
+      }
+    }
+    
+    for(i=0; i<dct_order*input_size; i++)
+    {
+      weights_matrix[i*w_stride] /= 2.*(input_size+1.);
+    }
+  }
+  
+  /* dpwe type 1 - same as old spec2cep that expanded & used fft */
+  else if(dct_t == rta_dct_plp)
+  {
+    for(i=0; i<dct_order; i++)
+    {
+      for(j=0; j<input_size; j++)
+      {
+        weights_matrix[(i*input_size+j)*w_stride] = 
+        rta_cos(i*j/(input_size-1.)*M_PI) / (input_size-1.);
+        
+      }
+      /* Fixup 'non-repeated' points */
+      weights_matrix[i*input_size*w_stride] *= 0.5;
+      weights_matrix[((i+1)*input_size-1)*w_stride] *= 0.5;
+    }
+  }
+  else
+  {
+    ret = 0;
+  }
+  
+  return ret;
+}
+
+/* Calculate dct from spectral samples */
+void rta_dct(rta_real_t * dct, const rta_real_t * input_vector,
+             const rta_real_t * weights_matrix,
+             const unsigned int input_size,
+             const unsigned int dct_order)
+{
+  unsigned int i,j;
+  
+  for(i=0; i<dct_order; i++)
+  {
+    dct[i] = 0.;
+    for(j=0; j<input_size; j++)
+    {
+      dct[i] += weights_matrix[i*input_size+j] * input_vector[j];
+    }
+  }
+  
+  return;
+}
+
+void rta_dct_scaled(rta_real_t * dct, const rta_real_t * input_vector,
+                    const rta_real_t * weights_matrix,
+                    const unsigned int input_size,
+                    const unsigned int dct_order,
+                    rta_real_t scale)
+{
+  unsigned int i,j;
+  
+  for(i=0; i<dct_order; i++)
+  {
+    dct[i] = 0.;
+    for(j=0; j<input_size; j++)
+    {
+      dct[i] += weights_matrix[i*input_size+j] * input_vector[j] * scale;
+    }
+  }
+  
+  return;
+}
+
+/* Calculate dct from spectral samples */
+void rta_dct_stride(rta_real_t * dct, const int d_stride,
+                    const rta_real_t * input_vector, const int i_stride,
+                    const rta_real_t * weights_matrix, const int w_stride,
+                    const unsigned int input_size,
+                    const unsigned int dct_order)
+{
+  unsigned int i,j;
+  
+  for(i=0; i<dct_order; i++)
+  {
+    dct[i*d_stride] = 0.;
+    for(j=0; j<input_size; j++)
+    {
+      dct[i*d_stride] += weights_matrix[(i*input_size+j)*w_stride] *
+      input_vector[j*i_stride];
+    }
+  }
+  
+  return;
+}
+
+/* Calculate dct from spectral samples */
+void rta_dct_stride_scaled(rta_real_t * dct, const int d_stride,
+                           const rta_real_t * input_vector, const int i_stride,
+                           const rta_real_t * weights_matrix, const int w_stride,
+                           const unsigned int input_size,
+                           const unsigned int dct_order,
+                           rta_real_t scale)
+{
+  unsigned int i,j;
+  
+  for(i=0; i<dct_order; i++)
+  {
+    dct[i*d_stride] = 0.;
+    for(j=0; j<input_size; j++)
+    {
+      dct[i*d_stride] += weights_matrix[(i*input_size+j)*w_stride] *
+      input_vector[j*i_stride] * scale;
+    }
+  }
+  
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.h
new file mode 100644
index 0000000..7299270
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_dct.h
@@ -0,0 +1,188 @@
+/**
+ * @file   rta_dct.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Discrete Cosine Transform (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * See http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_DCT_H_
+#define _RTA_DCT_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+  rta_dct_plp = 1,    /**< dpwe type 1 - same as old spec2cep that expanded & used fft */
+  rta_dct_slaney = 2, /**< orthogonal and unitary (Auditory Toolbox like) */
+  rta_dct_htk = 3,    /**< orthogonal but not unitary (HTK like) */
+  rta_dct_feacalc = 4 /**< type 1 with implicit repeating of first, last bins */
+} rta_dct_t;
+
+
+/* from spec2cep.m  */
+
+/** 
+ * Generate a matrix of weights 'weights_matrix' to perform a discrete
+ * cosine transform. This is type II dct, or type I if type is
+ * specified as 'PLPDCT'.
+ * 
+ * @param weights_matrix size is 'input_size'*'dct_order'
+ * @param input_size number of input mel bands
+ * @param dct_order number of output dct coefficients
+ * @param dct_type 
+ * PLPDCT dpwe type 1: same as old spec2cep that expanded & used fft 
+ * slaney_dct: orthogonal and unitary 
+ * HTKDCT: orthogonal but not unitary (HTK like) 
+ * feacalc_dct: PLPDCT with implicit repeating of first, last bins 
+ *   Deep in the heart of the rasta/feacalc code, there is the logic
+ *   that the first and last auditory bands extend beyond the edge of
+ *   the actual spectra, and they are thus copied from their neighbors.
+ *   Normally, we just ignore those bands and take the 19 in the middle,
+ *   but when feacalc calculates mfccs, it actually takes the cepstrum
+ *   over the spectrum *including* the repeated bins at each end.  Here,
+ *   we simulate 'repeating' the bins and an nrow+2-length spectrum by
+ *   adding in extra DCT weight to the first and last bins.  
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_dct_weights(rta_real_t * weights_matrix, 
+                  const unsigned int input_size,
+                  const unsigned int dct_order,
+                  const rta_dct_t dct_type);
+
+/** 
+ * Generate a matrix of weights 'weights_matrix' to perform a discrete
+ * cosine transform. This is type II dct, or type I if type is
+ * specified as 'PLPDCT'.
+ * 
+ * @param weights_matrix size is 'input_size'*'dct_order'
+ * @param w_stride is 'weights_matrix' stride
+ * @param input_size number of input mel bands
+ * @param dct_order number of output dct coefficients
+ * @param dct_type 
+ * PLPDCT dpwe type 1: same as old spec2cep that expanded & used fft 
+ * slaney_dct: orthogonal and unitary 
+ * HTKDCT: orthogonal but not unitary (HTK like) 
+ * feacalc_dct: PLPDCT with implicit repeating of first, last bins 
+ *   Deep in the heart of the rasta/feacalc code, there is the logic
+ *   that the first and last auditory bands extend beyond the edge of
+ *   the actual spectra, and they are thus copied from their neighbors.
+ *   Normally, we just ignore those bands and take the 19 in the middle,
+ *   but when feacalc calculates mfccs, it actually takes the cepstrum
+ *   over the spectrum *including* the repeated bins at each end.  Here,
+ *   we simulate 'repeating' the bins and an nrow+2-length spectrum by
+ *   adding in extra DCT weight to the first and last bins.  
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_dct_weights_stride(rta_real_t * weights_matrix, const int w_stride,
+                        const unsigned int input_size,
+                        const unsigned int dct_order,
+                        const rta_dct_t dct_type);
+
+/** 
+ * Perform a discrete cosine transform as
+ * 'dct' = 'weights_matrix'*'input_vector'
+ * 
+ * Calculate 'dct' from the log of the spectral samples
+ * 'input_vector' as 
+ * 'dct' = 'weights_matrix'*log('input_vector')
+ * to get MFCC.
+ * 
+ * @param dct size is 'dct_order'
+ * @param input_vector size is 'input_size' it is actually the log of the
+ * mel bands
+ * @param weights_matrix size is 'input_size'*'dct_order'
+ * @param input_size number of input mel bands
+ * @param dct_order number of output dct coefficients
+ * 
+ */
+void rta_dct(rta_real_t * dct, const rta_real_t * input_vector,
+             const rta_real_t * weights_matrix,
+             const unsigned int input_size,
+             const unsigned int dct_order);
+  
+void rta_dct_scaled(rta_real_t * dct, const rta_real_t * input_vector,
+                    const rta_real_t * weights_matrix,
+                    const unsigned int input_size,
+                    const unsigned int dct_order,
+                    rta_real_t scale);
+  
+  /** 
+ * 
+ * Perform a discrete cosine transform as
+ * 'dct' = 'weights_matrix'*'input_vector'
+ * 
+ * Calculate 'dct' from the log of the spectral samples
+ * 'input_vector' as 
+ * 'dct' = 'weights_matrix'*log('input_vector')
+ * to get MFCC.
+ * 
+ * @param dct size is 'dct_order'
+ * @param d_stride is 'dct' stride
+ * @param input_vector size is 'input_size' it is actually the log of the
+ * mel bands
+ * @param i_stride is 'input_vector' stride
+ * @param weights_matrix size is 'input_size'*'dct_order'
+ * @param w_stride is 'weights_matrix' stride
+ * @param input_size number of input mel bands
+ * @param dct_order number of output dct coefficients
+ *
+ */
+void rta_dct_stride(rta_real_t * dct, const int d_stride,
+                    const rta_real_t * input_vector, const int i_stride,
+                    const rta_real_t * weights_matrix, const int w_stride,
+                    const unsigned int input_size,
+                    const unsigned int dct_order);
+  
+void rta_dct_stride_scaled(rta_real_t * dct, const int d_stride,
+                           const rta_real_t * input_vector, const int i_stride,
+                           const rta_real_t * weights_matrix, const int w_stride,
+                           const unsigned int input_size,
+                           const unsigned int dct_order,
+                           rta_real_t scale);
+  
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_DCT_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.c
new file mode 100644
index 0000000..3c62bc8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.c
@@ -0,0 +1,193 @@
+/**
+ * @file   rta_delta.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Thu Aug  2 18:39:26 2007
+ * 
+ * @brief  Delta (derivative for a sequence at a fixed sampling rate)
+ * 
+ * Simple linear slope. Each column (a scalar value during time) is
+ * filtered separately.
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_delta.h"
+#include "rta_math.h"
+
+/* <filter_size> should be odd and positive */
+int rta_delta_weights(rta_real_t * weights_vector, const unsigned int filter_size)
+{
+  int i;
+  rta_real_t filter_value;
+
+  const rta_real_t half_filter_size = rta_floor(filter_size * 0.5);
+
+  for(i=0, filter_value=-half_filter_size;
+      i<filter_size;
+      i++, filter_value+=1.)
+  {
+    weights_vector[i] = filter_value;
+  }
+
+  return 1;
+}
+
+/* <filter_size> should be odd and positive */
+int rta_delta_weights_stride(rta_real_t * weights_vector, const int w_stride,
+                          const unsigned int filter_size)
+{
+  int i;
+  rta_real_t filter_value;
+
+  const rta_real_t half_filter_size = rta_floor(filter_size * 0.5);
+
+  for(i=0, filter_value=-half_filter_size;
+      i<filter_size*w_stride;
+      i+=w_stride, filter_value+=1.)
+  {
+    weights_vector[i] = filter_value;
+  }
+
+  return 1;
+}
+
+
+rta_real_t rta_delta_normalization_factor(const unsigned int filter_size)
+{
+  rta_real_t normalization = 0.;
+
+  if(filter_size>0)
+  {
+    int i;
+    const int half_filter_size = filter_size / 2;
+
+    for(i=1; i<=half_filter_size; i++)
+    {
+      normalization += (rta_real_t) (i*i);
+    }
+
+    normalization = 0.5 / normalization;
+  }
+  return normalization;
+}
+
+void rta_delta(rta_real_t * delta, const rta_real_t * input_vector,
+              const rta_real_t * weights_vector,
+              const unsigned int filter_size)
+{
+  unsigned int i;
+  
+  *delta = 0.;
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i] != 0.)
+    {
+      *delta += input_vector[i] * weights_vector[i];
+    }
+  }
+  
+  return;
+}
+
+void rta_delta_stride(rta_real_t * delta, 
+                    const rta_real_t * input_vector, const int i_stride,
+                    const rta_real_t * weights_vector, const int w_stride,
+                    const unsigned int filter_size)
+{
+  unsigned int i;
+  
+  *delta = 0.;
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i*w_stride] != 0.)
+    {
+      *delta += input_vector[i*i_stride] * weights_vector[i*w_stride];
+    }
+  }
+  
+  return;
+}
+
+
+void rta_delta_vector(rta_real_t * delta,
+                    const rta_real_t * input_matrix, const unsigned int input_size,
+                    const rta_real_t * weights_vector, const unsigned int filter_size)
+{
+  unsigned int i,j;
+  
+  for(j=0; j<input_size; j++)
+  {
+    delta[j] = 0.;
+  }
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i] != 0.) /* skip zeros */
+    {    
+      for(j=0; j<input_size; j++)
+      {
+        delta[j] += input_matrix[i*input_size+j] * weights_vector[i];
+      }
+    }
+  }
+  
+  return;
+}
+
+void rta_delta_vector_stride(rta_real_t * delta, const int d_stride,
+                       const rta_real_t * input_matrix, const int i_stride, 
+                       const unsigned int input_size,
+                       const rta_real_t * weights_vector, const int w_stride,
+                       const unsigned int filter_size)
+{
+  int i,j;
+  
+  for(j=0; j<input_size*d_stride; j+=d_stride)
+  {
+    delta[j] = 0.;
+  }
+
+  for(i=0; i<filter_size; i++)
+  {
+    if(weights_vector[i*w_stride] != 0.) /* skip zeros */
+    {    
+      for(j=0; j<input_size; j++)
+      {
+        delta[j*d_stride] += input_matrix[(i*input_size+j)*i_stride] *
+          weights_vector[i*w_stride];
+      }
+    }
+  }
+  
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.h
new file mode 100644
index 0000000..7c82c64
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_delta.h
@@ -0,0 +1,209 @@
+/**
+ * @file   rta_delta.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Delta (derivative for a sequence at a fixed sampling rate)
+ * 
+ * Simple linear slope. Each column (a scalar value during time) is
+ * filtered separately.
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved. 
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_DELTA_H_
+#define _RTA_DELTA_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* from deltas.m */
+/** 
+ * 
+ * Generate a vector of weights 'weights_vector' to calculate the
+ * delta (derivative) of a sequence of regularly sampled values. Use
+ * a 'filter_size'-points window. to calculate delta using a simple
+ * linear slope. This mirrors the delta calculation performed in
+ * feacalc etc. Delta corresponds to the mid-points values (which are
+ * not used, by the way).
+ *
+ * 'filter_size' must be odd and stricly positive.
+ *
+ * 'filter_size' == 7 is a common value to calculate the delta-mfcc
+ * and 'filter_size' == 5  is a common value for delta-delta-mfcc.
+ * 
+ * Note for HTK 'DELTAWINDOW' (same for 'ACCWINDOW'):
+ * 'filter_size' == ('DELTAWINDOW' * 2) + 1 
+ *
+ * @param weights_vector size is 'filter_size'
+ * @param filter_size must be odd and stricly positive.
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_delta_weights(rta_real_t * weights_vector, const unsigned int filter_size);
+
+/** 
+ * 
+ * Generate a vector of weights 'weights_vector' to calculate the
+ * delta (derivatives) of a sequence of regularly sampled values. Use
+ * a 'filter_size'-points window. to calculate delta using a simple
+ * linear slope. This mirrors the delta calculation performed in
+ * feacalc etc. Delta corresponds to the mid-points values (which are
+ * not used, by the way).
+ *
+ * 'filter_size' must be odd and stricly positive.
+ *
+ * 'filter_size' == 7 is a common value to calculate the delta-mfcc
+ * and 'filter_size' == 5  is a common value for delta-delta-mfcc.
+ * 
+ * Note for HTK 'DELTAWINDOW' (same for 'ACCWINDOW'):
+ * 'filter_size' == ('DELTAWINDOW' * 2) + 1 
+ *
+ * @param weights_vector size is 'filter_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param filter_size must be odd and stricly positive.
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_delta_weights_stride(rta_real_t * weights_vector, const int w_stride,
+                          const unsigned int filter_size);
+
+/** 
+ * Generate a factor to multiply the delta with, in order to normalize
+ * the 'delta' values against the 'filter_size'. The delta is then the
+ * slope of the linear regression. Note that it is equivalent to
+ * multiply the 'weights_vector' values (but it is less precise, as
+ * errors in weights are added).
+ *
+ * \f$normalization = \frac{1}{2 \left(\sum\limits_{\theta=1}^{\theta=filter_size} \theta^2 \right)}\f$
+ * 
+ * @param filter_size is the number of points to evaluate the delta
+ * 
+ * @return normalization factor to multiply the delta with
+ */
+rta_real_t rta_delta_normalization_factor(const unsigned int filter_size);
+
+/** 
+ * Calculate the delta of 'input_vector' as
+ * 'delta' = 'input_vector' * 'weights_vector'
+ * 
+ * To calculate 'delta' over a ring buffer of 'input_vector', replicate
+ * the 'weights_vector' at the end (which memory size is now
+ * 2*'filter_size') and use (weights_vector + filter_size - 1 -
+ * current_input) as 'weights_vector' start pointer.
+ *
+ * @param delta is a scalar
+ * @param input_vector size is 'filter_size'
+ * @param weights_vector size is 'filter_size'
+ * @param filter_size is the number of points to evaluate the delta
+ */
+void rta_delta(rta_real_t * delta, const rta_real_t * input_vector,
+              const rta_real_t * weights_vector,
+              const unsigned int filter_size);
+
+/** 
+ * Calculate the delta of 'input_vector' as
+ * 'delta' = 'input_vector' * 'weights_vector'
+ * 
+ * To calculate 'delta' over a ring buffer of 'input_vector', replicate
+ * the 'weights_vector' at the end (which memory size is now
+ * 2*'filter_size') and use (weights_vector + filter_size - 1 -
+ * current_input) as 'weights_vector' start pointer.
+ *
+ * @param delta is a scalar
+ * @param input_vector size is 'filter_size'
+ * @param i_stride is 'input_vector' stride
+ * @param weights_vector size is 'filter_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param filter_size is the number of points to evaluate the delta
+ */
+void rta_delta_stride(rta_real_t * delta, 
+                    const rta_real_t * input_vector, const int i_stride,
+                    const rta_real_t * weights_vector, const int w_stride,
+                    const unsigned int filter_size);
+
+
+/** 
+ * Calculate the deltas of 'input_matrix' as
+ * 'delta' = 'input_matrix' * 'weights_vector'
+ * 
+ * To calculate 'delta' over a ring buffer of rows 'input_matrix',
+ * replicate the 'weights_vector' at the end (which memory size is now
+ * 2*'filter_size') and use (weights_vector + filter_size - 1 -
+ * current_input) as 'weights_vector' start pointer.
+ *
+ * @param delta size is 'input_size'
+ * @param input_matrix size is 'filter_size'*'input_size'. It is a vector
+ * of inputs as rows
+ * @param input_size is the 'input_matrix' rows number and 'delta' size
+ * @param weights_vector size is 'filter_size'
+ * @param filter_size is 'input_matrix' columns number, which is the
+ * number of points to evaluate the deltas 
+ */
+void rta_delta_vector(rta_real_t * delta,
+                    const rta_real_t * input_matrix, const unsigned int input_size,
+                    const rta_real_t * weights_vector, const unsigned int filter_size);
+
+/** 
+ * Calculate the deltas of 'input_matrix' as
+ * 'delta' = 'input_matrix' * 'weights_vector'
+ * 
+ * To calculate 'delta' over a ring buffer of rows 'input_matrix',
+ * replicate the 'weights_vector' at the end (which memory size is now
+ * 2*'filter_size') and use (weights_vector + filter_size - 1 -
+ * current_input) as 'weights_vector' start pointer.
+ *
+ * @param delta size is 'input_size'
+ * @param d_stride is 'delta' stride
+ * @param input_matrix size is 'filter_size'*'input_size'. It is a vector
+ * of inputs as rows
+ * @param i_stride is 'input_matrix' stride
+ * @param input_size is the 'input_matrix' rows number and 'delta' size
+ * @param weights_vector size is 'filter_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param filter_size is 'input_matrix' columns number, which is the
+ * number of points to evaluate the deltas 
+ */
+void rta_delta_vector_stride(rta_real_t * delta, const int d_stride,
+                          const rta_real_t * input_matrix, const int i_stride, 
+                          const unsigned int input_size,
+                          const rta_real_t * weights_vector, const int w_stride,
+                          const unsigned int filter_size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_DELTA_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.c
new file mode 100644
index 0000000..3937ad3
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.c
@@ -0,0 +1,1595 @@
+/**
+ * @file   rta_fft.c
+ * @author Jean-Philippe Lambert
+ * @date   Thu Sep 12 18:10:41 2007
+ * 
+ * @brief  Fast Fourier Transform
+ * 
+ * Based on FTM (FTS) FFT routines.
+ * @see http://ftm.ircam.fr
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_fft.h"
+#include "rta_complex.h"
+#include "rta_stdlib.h" /* memory management */
+
+#include "rta_int.h"  /* integer log2 function */
+#include "rta_math.h" /* M_PI, cos, sin */
+
+/* -------  private (depends on implementation) ------ */
+/* from FTS implementation (Butterfly) */
+struct rta_fft_setup
+{
+  void * output;
+  int o_stride;
+  unsigned int fft_size;
+  void * input;
+  int i_stride;
+  unsigned int input_size;
+  unsigned int log2_size;
+  rta_fft_t fft_type;
+  rta_real_t * nyquist;    /**< last coefficient for real transforms */
+  rta_real_t * scale;
+  rta_real_t * cos;
+  rta_real_t * sin;
+  unsigned int * bitrev;
+}; /* from fft_lookup_t */
+
+
+/* bitreversal with oversampled index table */
+/* from cfft_bitreversal_over_inplc */
+static void 
+bitreversal_oversampled_inplace(rta_complex_t * buf,
+                                const unsigned int * bitrev,
+                                const unsigned int size)
+{
+  unsigned int idx;
+  rta_complex_t z;
+
+  for(idx=0; idx<size; idx++)
+  {
+    unsigned int xdi = bitrev[2 * idx];
+
+    if(xdi > idx)
+    {
+      z = buf[idx];    
+      buf[idx] = buf[xdi];
+      buf[xdi] = z;    
+    }
+  }
+  return;
+}
+
+static void 
+bitreversal_oversampled_inplace_stride(rta_complex_t * buf,
+                                       const int b_stride,
+                                       const unsigned int * bitrev,
+                                       const unsigned int size)
+{
+  unsigned int idx;
+  rta_complex_t z;
+
+  for(idx=0; idx<size; idx++)
+  {
+    unsigned int xdi = bitrev[2 * idx];
+
+    if(xdi > idx)
+    {
+      int idx_tmp = idx * b_stride;
+      xdi *= b_stride;
+      z = buf[idx_tmp];    
+      buf[idx_tmp] = buf[xdi];
+      buf[xdi] = z;    
+    }
+  }
+  return;
+}
+
+/* from cfft_bitreversal_inplc */
+static void 
+bitreversal_inplace(rta_complex_t * buf, 
+                    const unsigned int * bitrev,
+                    const unsigned int size)
+{
+  unsigned int idx;
+  rta_complex_t z;
+
+  for(idx=0; idx<size; idx++)
+  {
+    unsigned int xdi = bitrev[idx];
+    if(xdi > idx)
+    {
+      z = buf[idx];    
+      buf[idx] = buf[xdi];
+      buf[xdi] = z;    
+    }
+  }
+  return;
+}
+
+static void 
+bitreversal_inplace_stride(rta_complex_t * buf, 
+                           const int b_stride,
+                           const unsigned int * bitrev,
+                           const unsigned int size)
+{
+  unsigned int idx;
+  rta_complex_t z;
+
+  for(idx=0; idx<size; idx++)
+  {
+    unsigned int xdi = bitrev[idx];
+    if(xdi > idx)
+    {
+      int idx_tmp = idx * b_stride;
+      xdi *= b_stride;
+      z = buf[idx_tmp];    
+      buf[idx_tmp] = buf[xdi];
+      buf[xdi] = z;    
+    }
+  }
+  return;
+}
+
+/********************************************************************
+ * from cfft_inplc:
+ *
+ *    fft computation on bit reversed shuffled data
+ *      for fft: coef = exp(j*2*PI*n/N), n = 0..N-1 
+ *      for ifft: coef = exp(-j*2*PI*n/N), n = 0..N-1
+ *         see routine: generate_fft_coefficients()
+ */
+/* FFT with over-sampled coefficient tables */
+static void 
+fft_inplace(rta_complex_t * buf,
+            const rta_real_t * coef_real,
+            const rta_real_t * coef_imag,
+            const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      unsigned int incr = 2 * up;
+	  
+      for(m=j, n=j+up; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_cimag(B) * rta_cimag(W) + rta_creal(B) * rta_creal(W),
+						  rta_cimag(B) * rta_creal(W) - rta_creal(B) * rta_cimag(W));
+                            
+        buf[m] = rta_add_complex(A , C);
+        buf[n] = rta_sub_complex(A , C);
+      }
+    }
+  }  
+  return;
+}
+
+/********************************************************************
+ * from cfft_inplc:
+ *
+ *    fft computation on bit reversed shuffled data
+ *      for fft: coef = exp(j*2*PI*n/N), n = 0..N-1 
+ *      for ifft: coef = exp(-j*2*PI*n/N), n = 0..N-1
+ *         see routine: generate_fft_coefficients()
+ */
+/* FFT with over-sampled coefficient tables */
+static void 
+fft_inplace_stride(rta_complex_t * buf,
+                   const int b_stride,
+                   const rta_real_t * coef_real,
+                   const rta_real_t * coef_imag,
+                   const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      int incr = 2 * up * b_stride;
+	  
+      for(m=j*b_stride, n=(j+up)*b_stride; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_cimag(B) * rta_cimag(W) + rta_creal(B) * rta_creal(W),
+                                           rta_cimag(B) * rta_creal(W) - rta_creal(B) * rta_cimag(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+
+/* FFT with over-sampled coefficient tables */
+static void 
+fft_inplace_oversampled_coefficients(rta_complex_t * buf,
+                                     const rta_real_t * coef_real,
+                                     const rta_real_t * coef_imag,
+                                     const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=2*down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      unsigned int incr = 2 * up;
+	  
+      for(m=j, n=j+up; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_cimag(B) * rta_cimag(W) + rta_creal(B) * rta_creal(W),
+										    rta_cimag(B) * rta_creal(W) - rta_creal(B) * rta_cimag(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+/* FFT with over-sampled coefficient tables */
+static void 
+fft_inplace_oversampled_coefficients_stride(rta_complex_t * buf,
+                                            const int b_stride,
+                                            const rta_real_t * coef_real,
+                                            const rta_real_t * coef_imag,
+                                            const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=2*down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      int incr = 2 * up * b_stride;
+	  
+      for(m=j*b_stride, n=(j+up)*b_stride; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_cimag(B) * rta_cimag(W) + rta_creal(B) * rta_creal(W),
+                                           rta_cimag(B) * rta_creal(W) - rta_creal(B) * rta_cimag(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+static void 
+ifft_inplace(rta_complex_t * buf,
+             const rta_real_t * coef_real,
+             const rta_real_t * coef_imag,
+             const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      unsigned int incr = 2 * up;
+	  
+      for(m=j, n=j+up; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_creal(B) * rta_creal(W) - rta_cimag(B) * rta_cimag(W),
+									       rta_creal(B) * rta_cimag(W) + rta_cimag(B) * rta_creal(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+static void 
+ifft_inplace_stride(rta_complex_t * buf,
+                    const int b_stride,
+                    const rta_real_t * coef_real,
+                    const rta_real_t * coef_imag,
+                    const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      int incr = 2 * up * b_stride;
+	  
+      for(m=j*b_stride, n=(j+up)*b_stride; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_creal(B) * rta_creal(W) - rta_cimag(B) * rta_cimag(W),
+										   rta_creal(B) * rta_cimag(W) + rta_cimag(B) * rta_creal(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+
+static void 
+ifft_inplace_oversampled_coefficients(rta_complex_t * buf,
+                                      const rta_real_t * coef_real,
+                                      const rta_real_t * coef_imag,
+                                      const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=2*down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+      rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      unsigned int incr = 2 * up;
+	  
+      for(m=j, n=j+up; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_creal(B) * rta_creal(W) - rta_cimag(B) * rta_cimag(W),
+										   rta_creal(B) * rta_cimag(W) + rta_cimag(B) * rta_creal(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+static void 
+ifft_inplace_oversampled_coefficients_stride(rta_complex_t * buf,
+                                             const int b_stride,
+                                             const rta_real_t * coef_real,
+                                             const rta_real_t * coef_imag,
+                                             const unsigned int size)
+{
+  unsigned int m, n;
+  unsigned int j, k, up, down;
+
+  for(up=1, down=size>>1; up<size; up<<=1, down>>=1)
+  {
+    for(j=0, k=0; j<up; j++, k+=2*down)
+    {
+      //rta_complex_t W = coef_real[k] + coef_imag[k] *I;
+	  rta_complex_t W = rta_make_complex(coef_real[k], coef_imag[k]);
+
+      int incr = 2 * up * b_stride;
+	  
+      for(m=j*b_stride, n=(j+up)*b_stride; m<size; m+=incr, n+=incr)
+      {
+        rta_complex_t A = buf[m];
+        rta_complex_t B = buf[n];
+
+        rta_complex_t C = rta_make_complex(rta_creal(B) * rta_creal(W) - rta_cimag(B) * rta_cimag(W),
+										   rta_creal(B) * rta_cimag(W) + rta_cimag(B) * rta_creal(W));
+                            
+        buf[m] = rta_add_complex(A, C);
+        buf[n] = rta_sub_complex(A, C);
+      }
+    }
+  }  
+  return;
+}
+
+
+/* from rfft_shuffle_after_fft_inplc */
+/**************************************************************************
+ *
+ *    rfft_shuffle_after_fft() and rfft_shuffle_befor_ifft()
+ *
+ *      shuffling routines to compute the positive half of a spectra out of the FFT
+ *      of a 2*N points real signal treated as real and imaginary part of a complex
+ *      signal and vice versa:
+ *
+ *      with:
+ *        X+ = rfft_shuffle_after_fft(S, ...) ... use after complex FFT
+ *      and:
+ *        S = rfft_shuffle_befor_ifft(X+, ...) ... use befor complex IFFT
+ *
+ *      where:
+ *        x[m], m = 0..2*N-1 ... real signal
+ *        X+[k], k = 0..N-1 ... positive part of spectrum of x[m]
+ *      and:
+ *        s[n] = x[2n] + j x[2n+1], n = 0..N-1 ... real signal as complex vector
+ *        S[k], k = 0..N-1 ... complex FFT of complex vector s[n]
+ *
+ *
+ *    arguments:
+ *      buf ... buffer for inplace shuffling
+ *      in, out ... input vector, output vector for non inplace shuffling
+ *      coef_re ... lookup table with cos(2*PI*i/size), i = 0 ... size/2-1
+ *      coef_im ... lookup table with sin(2*PI*i/size), i = 0 ... size/2-1
+ *      size ... # of complex points (cfft size)
+ *      (Note: the lookup tables just contain half of the sine/cosine period in size points)
+ */
+static void
+shuffle_after_real_fft_inplace(rta_complex_t * buf, 
+                               const rta_real_t * coef_real,
+                               const rta_real_t * coef_imag,
+                               const int size)
+{
+  int idx, xdi;
+  
+  /* nyquist point coded in imaginary part first point  */
+  buf[0] = rta_make_complex(rta_creal(buf[0]) + rta_cimag(buf[0]), rta_creal(buf[0]) - rta_cimag(buf[0]));
+    
+  
+  for(idx=1, xdi=size-1; idx<size/2; idx++, xdi--)
+  {
+    rta_real_t x1_real = 0.5*(rta_creal(buf[idx]) + rta_creal(buf[xdi]));
+    rta_real_t x1_imag = 0.5*(rta_cimag(buf[idx]) - rta_cimag(buf[xdi]));
+
+    rta_real_t x2_real = 0.5*(rta_cimag(buf[xdi]) + rta_cimag(buf[idx]));
+    rta_real_t x2_imag = 0.5*(rta_creal(buf[xdi]) - rta_creal(buf[idx]));
+
+    /* real of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_real = x2_imag * coef_imag[idx] + x2_real * coef_real[idx]; 
+    
+    /* imaginary of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_imag = x2_imag * coef_real[idx] - x2_real * coef_imag[idx];
+    
+    buf[idx] = rta_make_complex(x1_real + x2Ej_real, x1_imag + x2Ej_imag);
+    buf[xdi] = rta_make_complex(x1_real - x2Ej_real, x2Ej_imag - x1_imag);
+  }
+  
+  buf[idx] = rta_conj(buf[idx]);
+  return;
+}
+
+static void
+shuffle_after_real_fft_inplace_stride(rta_complex_t * buf, 
+                                      const int b_stride,
+                                      const rta_real_t * coef_real,
+                                      const rta_real_t * coef_imag,
+                                      const int size)
+{
+  int idx;
+  int idx_s, xdi_s; /* indexes * b_stride */
+
+  /* nyquist point coded in imaginary part first point  */
+  buf[0] = rta_make_complex(rta_creal(buf[0]) + rta_cimag(buf[0]), rta_creal(buf[0]) - rta_cimag(buf[0]));
+    
+  for(idx=1, idx_s=b_stride, xdi_s=(size-1)*b_stride;
+      idx<size/2;
+      idx++, idx_s+=b_stride, xdi_s-=b_stride)
+  {
+    rta_real_t x1_real = 0.5*(rta_creal(buf[idx_s]) + rta_creal(buf[xdi_s]));
+    rta_real_t x1_imag = 0.5*(rta_cimag(buf[idx_s]) - rta_cimag(buf[xdi_s]));
+
+    rta_real_t x2_real = 0.5*(rta_cimag(buf[xdi_s]) + rta_cimag(buf[idx_s]));
+    rta_real_t x2_imag = 0.5*(rta_creal(buf[xdi_s]) - rta_creal(buf[idx_s]));
+
+    /* real of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_real = x2_imag * coef_imag[idx] + x2_real * coef_real[idx]; 
+    
+    /* imaginary of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_imag = x2_imag * coef_real[idx] - x2_real * coef_imag[idx];
+    
+    buf[idx_s] = rta_make_complex(x1_real + x2Ej_real, x1_imag + x2Ej_imag);
+    buf[xdi_s] = rta_make_complex(x1_real - x2Ej_real, x2Ej_imag - x1_imag);
+  }
+  
+  buf[idx_s] = rta_conj(buf[idx_s]);
+  return;
+}
+
+/* from rfft_shuffle_before_ifft_inplc */
+static void
+shuffle_before_real_inverse_fft_inplace(rta_complex_t * buf,
+                                        const rta_real_t *coef_real,
+                                        const rta_real_t *coef_imag,
+                                        const int size)
+{
+  int idx, xdi;
+  
+  /* nyquist point coded in imaginary part of the first point */
+  buf[0] = rta_make_complex(rta_creal(buf[0]) + rta_cimag(buf[0]), rta_creal(buf[0]) - rta_cimag(buf[0]));
+
+  for(idx=1, xdi=size-1; idx<size/2; idx++, xdi--)
+  {
+    rta_real_t x1_real = rta_creal(buf[idx]) + rta_creal(buf[xdi]);
+    rta_real_t x1_imag = rta_cimag(buf[idx]) - rta_cimag(buf[xdi]);
+
+    /* real of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_real = rta_creal(buf[idx]) - rta_creal(buf[xdi]);
+
+    /* imaginary of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_imag = rta_cimag(buf[idx]) + rta_cimag(buf[xdi]);
+
+    /* real of x2 */
+    rta_real_t x2_real = x2Ej_real * coef_real[idx] - x2Ej_imag * coef_imag[idx];
+  
+    /* imaginary of x2 */
+    rta_real_t x2_imag = x2Ej_real * coef_imag[idx] + x2Ej_imag * coef_real[idx];
+
+    buf[idx] = rta_make_complex(x1_real - x2_imag, x1_imag + x2_real);
+    buf[xdi] = rta_make_complex(x1_real + x2_imag, x2_real - x1_imag);
+
+  }
+  buf[idx] = rta_mul_complex_real(rta_conj(buf[idx]), 2);
+  return;
+}
+
+static void
+shuffle_before_real_inverse_fft_inplace_stride(rta_complex_t * buf,
+                                               const int b_stride,
+                                               const rta_real_t *coef_real,
+                                               const rta_real_t *coef_imag,
+                                               const int size)
+{
+  int idx;
+  int idx_s, xdi_s; /* indexes * b_stride */
+
+  /* nyquist point coded in imaginary part of the first point */
+  buf[0] = rta_make_complex(rta_creal(buf[0]) + rta_cimag(buf[0]), rta_creal(buf[0]) - rta_cimag(buf[0]));
+
+  for(idx=1, idx_s=b_stride, xdi_s=(size-1)*b_stride;
+      idx<size/2;
+      idx++, idx_s+=b_stride, xdi_s-=b_stride)
+  {
+    rta_real_t x1_real = rta_creal(buf[idx_s]) + rta_creal(buf[xdi_s]);
+    rta_real_t x1_imag = rta_cimag(buf[idx_s]) - rta_cimag(buf[xdi_s]);
+
+    /* real of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_real = rta_creal(buf[idx_s]) - rta_creal(buf[xdi_s]);
+
+    /* imaginary of x2[idx] * exp(-j*PI*i/size) */
+    rta_real_t x2Ej_imag = rta_cimag(buf[idx_s]) + rta_cimag(buf[xdi_s]);
+
+    /* real of x2 */
+    rta_real_t x2_real = x2Ej_real * coef_real[idx] - x2Ej_imag * coef_imag[idx];
+  
+    /* imaginary of x2 */
+    rta_real_t x2_imag = x2Ej_real * coef_imag[idx] + x2Ej_imag * coef_real[idx];
+
+    buf[idx_s] = rta_make_complex(x1_real - x2_imag, x1_imag + x2_real);
+    buf[xdi_s] = rta_make_complex(x1_real + x2_imag, x2_real - x1_imag);
+
+  }
+  buf[idx_s] = rta_mul_complex_real(rta_conj(buf[idx_s]), 2);
+  return;
+}
+
+
+/* FTS fill_real  */
+static void
+fill_real_scale_zero_pad(rta_real_t * output, const unsigned int output_size,
+                         rta_real_t * input, const unsigned int input_size,
+                         const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      output[i] = input[i] * scale;
+    }
+  }
+  else
+  {
+    for (i = 0; i < used_input_size; i++)
+    {
+      output[i] = input[i];
+    }    
+  }
+  
+  /* zero padding */
+  for(; i<output_size; i++)
+  {
+    output[i] = 0.0;    
+  }
+  return;
+}
+
+static void
+fill_real_scale_zero_pad_stride(
+  rta_real_t * output, const int o_stride, const unsigned int output_size,
+  rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int o, i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      output[o] = input[i] * scale;
+    }
+  }
+  else
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      output[o] = input[i];
+    }    
+  }
+  
+  /* zero padding */
+  for(; o<output_size*o_stride; o+=o_stride)
+  {
+    output[o] = 0.0;    
+  }
+  return;
+}
+
+/* FTS fill_complex  */
+static void
+fill_complex_scale_zero_pad(rta_complex_t * output, const unsigned int output_size,
+                            rta_complex_t * input, const unsigned int input_size,
+                            const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      output[i] = rta_mul_complex_real(input[i], scale);
+    }
+  }
+  else
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      output[i] = input[i];
+    }    
+  }
+  
+  /* zero padding */
+  for(; i<output_size; i++)
+  {
+    rta_set_complex_real(output[i], 0.0);    
+  }
+  return;
+}
+
+static void
+fill_complex_scale_zero_pad_stride(
+  rta_complex_t * output, const int o_stride, const unsigned int output_size,
+  rta_complex_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int i, o;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      output[o] = rta_mul_complex_real(input[i], scale);
+    }
+  }
+  else
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      output[o] = input[i];
+    }    
+  }
+  
+  /* zero padding */
+  for(; o<output_size*o_stride; o+=o_stride)
+  {
+    rta_set_complex_real(output[o], 0.0);    
+  }
+  return;
+}
+
+
+static void
+fill_complex_from_real_scale_zero_pad(
+  rta_complex_t * output, const unsigned int output_size,
+  rta_real_t * input, const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      rta_set_complex_real(output[i], input[i] * scale);
+    }
+  }
+  else
+  {
+    for (i = 0; i < used_input_size; i++)
+    {
+      rta_set_complex_real(output[i], input[i]);
+    }    
+  }
+  
+  /* zero padding */
+  for(; i<output_size; i++)
+  {
+    rta_set_complex_real(output[i], 0.0);    
+  }
+  return;
+}
+
+static void
+fill_complex_from_real_scale_zero_pad_stride(
+  rta_complex_t * output, const int o_stride, const unsigned int output_size,
+  rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int i, o;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      rta_set_complex_real(output[o], input[i] * scale);
+    }
+  }
+  else
+  {
+    for(i=0, o=0; i<used_input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      rta_set_complex_real(output[o], input[i]);
+    }    
+  }
+  
+  /* zero padding */
+  for(; o<output_size*o_stride; o+=o_stride)
+  {
+    rta_set_complex_real(output[o], 0.0);    
+  }
+  return;
+}
+
+
+static void
+scale_real_zero_pad_in_place(rta_real_t * buf, const unsigned int output_size,
+                             const unsigned int input_size,
+                             const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      buf[i] *= scale;
+    }
+  }
+  else
+  {
+    i = used_input_size;
+  }
+  
+  /* zero padding */
+  for(; i<output_size; i++)
+  {
+    buf[i] = 0.0;    
+  }
+  return;
+}
+
+static void
+scale_real_zero_pad_in_place_stride(
+  rta_real_t * buf, const int b_stride, const unsigned int output_size,
+  const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size*b_stride; i+=b_stride)
+    {
+      buf[i] *= scale;
+    }
+  }
+  else
+  {
+    i = used_input_size*b_stride;
+  }
+  
+  /* zero padding */
+  for(; i<output_size*b_stride; i+=b_stride)
+  {
+    buf[i] = 0.0;    
+  }
+  return;
+}
+
+
+static void
+scale_complex_zero_pad_in_place(rta_complex_t * buf, const unsigned int output_size,
+                                const unsigned int input_size,
+                                const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size; i++)
+    {
+      buf[i] = rta_mul_complex_real(buf[i], scale);
+    }
+  }
+  else
+  {
+    i = used_input_size;
+  }
+  
+  /* zero padding */
+  for(; i<output_size; i++)
+  {
+    rta_set_complex_real(buf[i], 0.0);    
+  }
+  return;
+}
+
+static void
+scale_complex_zero_pad_in_place_stride(
+  rta_complex_t * buf, const int b_stride, const unsigned int output_size,
+  const unsigned int input_size,
+  const rta_real_t scale)
+{
+  unsigned int i;
+  unsigned int used_input_size;
+  
+  if(input_size > output_size)
+  {
+    used_input_size = output_size;
+  }
+  else
+  {
+    used_input_size = input_size;
+  }
+  
+  if(scale != 1.)
+  {
+    for(i=0; i<used_input_size*b_stride; i+=b_stride)
+    {
+      buf[i] = rta_mul_complex_real(buf[i], scale);
+    }
+  }
+  else
+  {
+    i = used_input_size*b_stride;
+  }
+  
+  /* zero padding */
+  for(; i<output_size*b_stride; i+=b_stride)
+  {
+    rta_set_complex_real(buf[i], 0.0);    
+  }
+  return;
+}
+
+
+
+/* sine, cosine and bitreverse tables */
+/* retrun 1 on success, 0 on fail */
+static int
+tables_new(rta_fft_setup_t * fft_setup)
+{
+  int ret = 0;
+  /* sine (and cosine) table */
+
+  /* 1/4 more for cosine as phase shift and one more point at the end */
+  /* => total size is 5/4*sine_size + 1 */
+  fft_setup->sin = (rta_real_t *) rta_malloc(
+    sizeof(rta_real_t) * (fft_setup->fft_size * 5/4 + 1));
+
+  if(fft_setup->sin != NULL)
+  {
+    /* sine function from 0 to 2pi, inclusive (plus 1/4 for cosine) */
+    /* step = 5/4 * 2 pi / (5/4 * size) = 2 * pi / size */
+    const rta_real_t step = 2. * M_PI / fft_setup->fft_size;
+    unsigned int i;
+    for(i=0; i<=fft_setup->fft_size * 5/4; i++)
+    {
+      fft_setup->sin[i] = rta_sin(i*step);
+    }
+
+    /* cosine function is just a phase-shifted sine */
+    /* Memory is shared */
+    fft_setup->cos = fft_setup->sin + (fft_setup->fft_size / 4);
+
+    /* Bit reversal table */
+    fft_setup->bitrev = (unsigned int *) rta_malloc(
+      sizeof(unsigned int) * fft_setup->fft_size);
+
+    if(fft_setup->bitrev != NULL)
+    {
+      unsigned int idx, xdi;
+      unsigned int i, j;
+          
+      for(i=0; i<fft_setup->fft_size; i++)
+      {
+        idx = i;
+        xdi = 0;
+    
+        for(j=1; j<fft_setup->log2_size; j++)
+        {
+          xdi += (idx & 1);
+          xdi <<= 1;
+          idx >>= 1;
+        }
+    
+        fft_setup->bitrev[i] = xdi + (idx & 1);
+      }
+        
+      ret = 1; /* setup complete */
+    }
+    else /* bitrev failed */
+      rta_free(fft_setup->sin);
+  }
+  /* else: sin failed */
+  
+  return ret;
+}
+
+/* ------- end of private ---------------------------- */
+
+/* ------- Public functions -------------------------- */
+
+int
+rta_fft_real_setup_new(rta_fft_setup_t ** fft_setup,
+                       const rta_fft_t fft_type, rta_real_t * scale,
+                       void * input, const unsigned int input_size,
+                       void * output, const unsigned int fft_size,
+                       rta_real_t * nyquist)
+/* FFTW uses input and output to plan executions */
+{
+  int ret = 0;
+
+  *fft_setup = (rta_fft_setup_t *) rta_malloc(sizeof(rta_fft_setup_t));
+
+  if(*fft_setup != NULL)
+  {
+    /* actual FFT size is the next power of 2 of the given argument */
+    (*fft_setup)->fft_size = rta_inextpow2(fft_size);
+    (*fft_setup)->log2_size = rta_ilog2((*fft_setup)->fft_size);
+    (*fft_setup)->input_size = input_size;
+
+    (*fft_setup)->output = output;
+    (*fft_setup)->o_stride = 1;
+
+    (*fft_setup)->input = input;
+    (*fft_setup)->i_stride = 1;
+
+    (*fft_setup)->nyquist = nyquist;
+
+    (*fft_setup)->scale = scale;
+    (*fft_setup)->fft_type = fft_type;
+    
+    ret = tables_new(*fft_setup);
+    if(ret == 0)
+    {
+      rta_free(*fft_setup);
+      *fft_setup = NULL;
+    }
+  }
+
+  return ret;
+}
+
+int
+rta_fft_real_setup_new_stride(
+  rta_fft_setup_t ** fft_setup,
+  const rta_fft_t fft_type, rta_real_t * scale,
+  void * input, const int i_stride, const unsigned int input_size,
+  void * output, const int o_stride, const unsigned int fft_size,
+  rta_real_t * nyquist)
+/* FFTW uses input and output to plan executions */
+{
+  int ret = 0;
+
+  *fft_setup = (rta_fft_setup_t *) rta_malloc(sizeof(rta_fft_setup_t));
+
+  if(fft_setup != NULL)
+  {
+    /* actual FFT size is the next power of 2 of the given argument */
+    (*fft_setup)->fft_size = rta_inextpow2(fft_size);
+    (*fft_setup)->log2_size = rta_ilog2((*fft_setup)->fft_size);
+    (*fft_setup)->input_size = input_size;
+
+    (*fft_setup)->output = output;
+    (*fft_setup)->o_stride = o_stride;
+
+    (*fft_setup)->input = input;
+    (*fft_setup)->i_stride = i_stride;
+
+    (*fft_setup)->nyquist = nyquist;
+
+    (*fft_setup)->scale = scale;
+    (*fft_setup)->fft_type = fft_type;
+    
+    ret = tables_new(*fft_setup);
+    if(ret == 0)
+    {
+      rta_free(*fft_setup);
+      *fft_setup = NULL;
+    }
+  }
+
+  return ret;
+}
+
+int
+rta_fft_setup_new(rta_fft_setup_t ** fft_setup,
+                  const rta_fft_t fft_type, rta_real_t * scale,
+                  rta_complex_t * input, const unsigned int input_size,
+                  rta_complex_t * output, const unsigned int fft_size)
+/* FFTW uses input and output to plan executions */
+{
+  int ret = 0;
+
+  *fft_setup = (rta_fft_setup_t *) rta_malloc(sizeof(rta_fft_setup_t));
+
+  if(*fft_setup != NULL)
+  {
+    /* actual FFT size is the next power of 2 of the given argument */
+    (*fft_setup)->fft_size = rta_inextpow2(fft_size);
+    (*fft_setup)->log2_size = rta_ilog2((*fft_setup)->fft_size);
+    (*fft_setup)->input_size = input_size;
+
+    (*fft_setup)->output = (void *) output;
+    (*fft_setup)->o_stride = 1;
+
+    (*fft_setup)->input = (void *) input;
+    (*fft_setup)->i_stride = 1;
+
+    (*fft_setup)->nyquist = NULL;
+
+    (*fft_setup)->scale = scale;
+    (*fft_setup)->fft_type = fft_type;
+    
+    ret = tables_new(*fft_setup);
+    if(ret == 0)
+    {
+      rta_free(*fft_setup);
+      *fft_setup = NULL;
+    }
+  }
+
+  return ret;
+}
+
+int
+rta_fft_setup_new_stride(
+  rta_fft_setup_t ** fft_setup,
+  const rta_fft_t fft_type, rta_real_t * scale,
+  rta_complex_t * input, const int i_stride, const unsigned int input_size,
+  rta_complex_t * output, const int o_stride, const unsigned int fft_size)
+/* FFTW uses input and output to plan executions */
+{
+  int ret = 0;
+
+  *fft_setup = (rta_fft_setup_t *) rta_malloc(sizeof(rta_fft_setup_t));
+
+  if(*fft_setup != NULL)
+  {
+    /* actual FFT size is the next power of 2 of the given argument */
+    (*fft_setup)->fft_size = rta_inextpow2(fft_size);
+    (*fft_setup)->log2_size = rta_ilog2((*fft_setup)->fft_size);
+    (*fft_setup)->input_size = input_size;
+
+    (*fft_setup)->output = (void *) output;
+    (*fft_setup)->o_stride = o_stride;
+
+    (*fft_setup)->input = (void *) input;
+    (*fft_setup)->i_stride = i_stride;
+
+    (*fft_setup)->nyquist = NULL;
+
+    (*fft_setup)->scale = scale;
+    (*fft_setup)->fft_type = fft_type;
+    
+    ret = tables_new(*fft_setup);
+    if(ret == 0)
+    {
+      rta_free(*fft_setup);
+      *fft_setup = NULL;
+    }
+  }
+
+  return ret;
+}
+
+
+void
+rta_fft_setup_delete(rta_fft_setup_t * fft_setup)
+{
+  if(fft_setup != NULL)
+  {
+    if(fft_setup->sin != NULL)
+    {
+      rta_free(fft_setup->sin);
+    }
+
+    if(fft_setup->bitrev != NULL)
+    {
+      rta_free(fft_setup->bitrev);
+    }
+
+    rta_free(fft_setup);
+  }
+
+  return;
+}
+
+
+void
+rta_fft_execute(void * output, void * input, const unsigned int input_size,
+                rta_fft_setup_t * fft_setup)
+{
+  const unsigned int no_stride = 
+    fft_setup->i_stride == 1 && fft_setup->o_stride == 1;
+  unsigned int spectrum_size = fft_setup->fft_size >> 1;
+  fft_setup->input = input;
+  fft_setup->output = output;
+  fft_setup->input_size = input_size;
+
+  switch(fft_setup->fft_type)
+  {
+    case rta_fft_real_to_complex_1d:
+    {
+      rta_real_t * real_input = (rta_real_t *) fft_setup->input;
+      rta_complex_t * complex_output = (rta_complex_t *) fft_setup->output;
+
+      /* out of place transform */
+      if(fft_setup->input != fft_setup->output)
+      {
+        /* at this moment, the output buffer is real, as the input one */
+        if(no_stride)
+        {
+          fill_real_scale_zero_pad(
+            (rta_real_t *) fft_setup->output, fft_setup->fft_size, 
+            real_input, fft_setup->input_size, *(fft_setup->scale));
+        }
+        else
+        {
+          fill_real_scale_zero_pad_stride(
+            (rta_real_t *) fft_setup->output, fft_setup->o_stride,
+            fft_setup->fft_size, 
+            real_input, fft_setup->i_stride, fft_setup->input_size,
+            *(fft_setup->scale));          
+        }
+      }
+      else
+      {
+       if(no_stride)
+       {
+         scale_real_zero_pad_in_place(
+           real_input, fft_setup->fft_size,
+           fft_setup->input_size, *(fft_setup->scale));
+       }
+       else
+       {
+         /* for in place transforms, fft_setup->o_stride and */
+         /* fft_setup->i_stride must be the equal */
+         scale_real_zero_pad_in_place_stride(
+           real_input, fft_setup->i_stride, fft_setup->fft_size,
+           fft_setup->input_size, *(fft_setup->scale));        
+       }
+      }
+
+      if(fft_setup->o_stride == 1)
+      {
+        bitreversal_oversampled_inplace(
+          complex_output, fft_setup->bitrev, spectrum_size);
+        
+        fft_inplace_oversampled_coefficients(
+          complex_output, fft_setup->cos, fft_setup->sin, spectrum_size);
+          
+        shuffle_after_real_fft_inplace(
+          complex_output, fft_setup->cos, fft_setup->sin, spectrum_size);
+      }
+      else
+      {
+        bitreversal_oversampled_inplace_stride(
+          complex_output, fft_setup->o_stride, fft_setup->bitrev, spectrum_size);
+        
+        fft_inplace_oversampled_coefficients_stride(
+          complex_output, fft_setup->o_stride,
+          fft_setup->cos, fft_setup->sin, spectrum_size);
+          
+        shuffle_after_real_fft_inplace_stride(
+          complex_output, fft_setup->o_stride,
+          fft_setup->cos, fft_setup->sin, spectrum_size);
+
+      }
+      *(fft_setup->nyquist) = rta_cimag(complex_output[0]);
+      rta_set_complex_real(complex_output[0], rta_creal(complex_output[0]));
+
+      break;
+    }
+
+    case rta_fft_complex_to_real_1d:
+    {
+      rta_complex_t * complex_input = (rta_complex_t *) fft_setup->input;
+      rta_real_t * real_output = (rta_real_t *) fft_setup->output;
+      rta_complex_t * complex_output = (rta_complex_t *) fft_setup->output;
+
+      /* out of place transform */
+      if(fft_setup->input != fft_setup->output)
+      {
+        if(no_stride)
+        {
+          fill_complex_scale_zero_pad(
+            complex_output, spectrum_size,
+            complex_input, fft_setup->input_size, *(fft_setup->scale));
+        }
+        else
+        {
+          fill_complex_scale_zero_pad_stride(
+            complex_output, fft_setup->o_stride, spectrum_size,
+            complex_input, fft_setup->i_stride, fft_setup->input_size,
+            *(fft_setup->scale));          
+        }
+      }
+      else
+      {
+        if(no_stride)
+        {
+          scale_complex_zero_pad_in_place(
+            complex_input, spectrum_size,
+            fft_setup->input_size,*(fft_setup->scale));
+        }
+        else
+        {
+          /* for in place transforms, fft_setup->o_stride and */
+          /* fft_setup->i_stride must be the equal */
+          scale_complex_zero_pad_in_place_stride(
+            complex_input, fft_setup->i_stride, spectrum_size,
+            fft_setup->input_size,*(fft_setup->scale));          
+        }
+      }
+      
+      /* nyquist value is coded on the first imaginary value */
+      /* there is no stride here: real and imaginary values of the */
+      /* complex type must be contiguous */
+      if(*(fft_setup->scale) != 1.)
+      {
+        real_output[1] = *(fft_setup->nyquist) * *(fft_setup->scale);
+      }
+      else
+      {
+        real_output[1] = *(fft_setup->nyquist);
+      }
+      
+      if(fft_setup->o_stride == 1)
+      {
+        shuffle_before_real_inverse_fft_inplace(
+          complex_output, fft_setup->cos, fft_setup->sin, spectrum_size);
+        
+        bitreversal_oversampled_inplace(
+          complex_output, fft_setup->bitrev, spectrum_size);
+        
+        ifft_inplace_oversampled_coefficients(
+          complex_output, fft_setup->cos, fft_setup->sin, spectrum_size);
+      }
+      else
+      {
+        shuffle_before_real_inverse_fft_inplace_stride(
+          complex_output, fft_setup->o_stride,
+          fft_setup->cos, fft_setup->sin, spectrum_size);
+        
+        bitreversal_oversampled_inplace_stride(
+          complex_output, fft_setup->o_stride,
+          fft_setup->bitrev, spectrum_size);
+        
+        ifft_inplace_oversampled_coefficients_stride(
+          complex_output, fft_setup->o_stride,
+          fft_setup->cos, fft_setup->sin, spectrum_size);        
+      }
+
+      break;
+    }
+
+    case rta_fft_complex_1d:
+    {
+      rta_complex_t * complex_input = (rta_complex_t *) fft_setup->input;
+      rta_complex_t * complex_output = (rta_complex_t *) fft_setup->output;
+
+      /* out of place transform */
+      if(fft_setup->input != fft_setup->output)
+      {
+        if(no_stride)
+        {
+          fill_complex_scale_zero_pad(
+            complex_output, fft_setup->fft_size,
+            complex_input, fft_setup->input_size, *(fft_setup->scale));
+        }
+        else
+        {
+          fill_complex_scale_zero_pad_stride(
+            complex_output, fft_setup->o_stride, fft_setup->fft_size,
+            complex_input, fft_setup->i_stride, fft_setup->input_size,
+            *(fft_setup->scale));
+        }
+      }
+      else
+      {
+        if(no_stride)
+        {
+          scale_complex_zero_pad_in_place(
+            complex_input, fft_setup->fft_size,
+            fft_setup->input_size,*(fft_setup->scale));
+        }
+        else
+        {
+         /* for in place transforms, fft_setup->o_stride and */
+         /* fft_setup->i_stride must be the equal */
+          scale_complex_zero_pad_in_place_stride(
+            complex_input, fft_setup->i_stride, fft_setup->fft_size,
+            fft_setup->input_size,*(fft_setup->scale));
+       }
+      }
+      
+      if(fft_setup->o_stride == 1)
+      {
+        bitreversal_inplace(complex_output, fft_setup->bitrev, fft_setup->fft_size);
+
+        fft_inplace(complex_output, fft_setup->cos, fft_setup->sin, fft_setup->fft_size);
+      }
+      else
+      {
+        bitreversal_inplace_stride(complex_output, fft_setup->o_stride,
+          fft_setup->bitrev, fft_setup->fft_size);
+
+        fft_inplace_stride(complex_output, fft_setup->o_stride,
+                           fft_setup->cos, fft_setup->sin, fft_setup->fft_size);
+      }
+
+      break;
+    }
+
+    case rta_fft_complex_inverse_1d:
+    {
+      rta_complex_t * complex_input = (rta_complex_t *) fft_setup->input;
+      rta_complex_t * complex_output = (rta_complex_t *) fft_setup->output;
+
+      /* out of place transform */
+      if(fft_setup->input != fft_setup->output)
+      {
+        if(no_stride)
+        {
+          fill_complex_scale_zero_pad(
+            complex_output, fft_setup->fft_size,
+            complex_input, fft_setup->input_size, *(fft_setup->scale));
+        }
+        else
+        {
+          fill_complex_scale_zero_pad_stride(
+            complex_output, fft_setup->o_stride, fft_setup->fft_size,
+            complex_input, fft_setup->i_stride, fft_setup->input_size,
+            *(fft_setup->scale));
+        }
+      }
+      else
+      {
+        if(no_stride)
+        {
+          scale_complex_zero_pad_in_place(
+            complex_input, fft_setup->fft_size,
+            fft_setup->input_size,*(fft_setup->scale));
+        }
+        else
+        {
+          /* for in place transforms, fft_setup->o_stride and */
+          /* fft_setup->i_stride must be the equal */
+          scale_complex_zero_pad_in_place_stride(
+            complex_input, fft_setup->i_stride, fft_setup->fft_size,
+            fft_setup->input_size,*(fft_setup->scale));
+        }
+      }
+
+      if(fft_setup->o_stride == 1)
+      {
+        bitreversal_inplace(
+          complex_output, fft_setup->bitrev, fft_setup->fft_size);
+
+        ifft_inplace(
+          complex_output, fft_setup->cos, fft_setup->sin, fft_setup->fft_size);
+      }
+      else
+      {
+        bitreversal_inplace_stride(complex_output, fft_setup->o_stride,
+                                   fft_setup->bitrev, fft_setup->fft_size);
+        ifft_inplace_stride(complex_output, fft_setup->o_stride, 
+                            fft_setup->cos, fft_setup->sin, fft_setup->fft_size);
+      }
+      
+      break;
+    }
+      
+    default:
+      break;
+  }
+  return;
+}
+
+inline void 
+rta_fft_real_execute(void * output, void * input, const unsigned int input_size,
+                     rta_fft_setup_t * fft_setup,
+                     rta_real_t * nyquist)
+{
+  fft_setup->nyquist = nyquist;
+  rta_fft_execute(output, input, input_size, fft_setup);
+  return;    
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.h
new file mode 100644
index 0000000..0a2f84d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_fft.h
@@ -0,0 +1,316 @@
+/**
+ * @file   rta_fft.h
+ * @author Jean-Philippe Lambert
+ * @date   Thu Sep 12 18:10:41 2007
+ * 
+ * @brief  Fast Fourier Transform
+ * 
+ * Based on FTM (based on FTS) FFT routines.
+ * @see http://ftm.ircam.fr
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_FFT_H_
+#define _RTA_FFT_H_ 1
+
+#include "rta.h"
+#include "rta_complex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+  rta_fft_real_to_complex_1d = 1, /**< real to complex direct transform */
+  rta_fft_complex_to_real_1d = 2, /**< complex to real inverse transform */
+  rta_fft_complex_1d = 3,         /**< complex to complex direct transform */
+  rta_fft_complex_inverse_1d = 4  /**< complex to complex inverse transform*/
+} rta_fft_t;
+
+/* rta_fft_setup is private (depends on implementation) */
+typedef struct rta_fft_setup rta_fft_setup_t;
+
+
+/** 
+ * Allocate and initialize an FFT setup for real to complex or complex
+ * to real transform, according to the planned processes.
+ *
+ * The internal implementation always uses an FFT size of the next (or
+ * equal) power of 2 of the given 'fft_size'. If the 'input_size is
+ * smaller than the actual FFT size, it is zero-padded. The use of
+ * external libraries may differ.
+ *
+ * Processing can be in place if 'input' == 'output'. Any real input
+ * data must be written as real (static cast).
+ *
+ * For an out of place transform, 'input' and 'output' must not
+ * overlap. 
+ * 
+ * \see rta_fft_setup_delete
+ * 
+ * @param fft_setup is an address of a pointer to a private structure, 
+ * which may depend on the actual FFT implementation. This function
+ * allocates 'fft_setup' and fills it.
+ * @param fft_type may be real_to_complex_1d or complex_to_real_1d
+ * @param scale is usually used for inverse FFT as 1/'fft_size' in
+ * order to obtain the identity transform when calculating FFT and
+ * then inverse FFT. It does not need to be constant and may change
+ * after the setup.
+ * @param input can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param input_size must be <= 'fft_size'
+ * @param output can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param fft_size must be >= 'input_size'
+ * @param nyquist is the last coefficient for real transforms
+ * 
+ * @return 1 on success 0 on fail. If it fails, nothing should be done
+ * with 'fft_setup' (even a delete).
+ */
+int
+rta_fft_real_setup_new(rta_fft_setup_t ** fft_setup,
+                       rta_fft_t fft_type, rta_real_t * scale,
+                       void * input, const unsigned int input_size,
+                       void * output, const unsigned int fft_size,
+                       rta_real_t * nyquist);
+
+/** 
+ * Allocate and initialize an FFT setup for real to complex or complex
+ * to real transform, according to the planned processes.
+ *
+ * The internal implementation always uses an FFT size of the next (or
+ * equal) power of 2 of the given 'fft_size'. If the 'input_size is
+ * smaller than the actual FFT size, it is zero-padded. The use of
+ * external libraries may differ.
+ *
+ * Processing can be in place if 'input' == 'output'. Any real input
+ * data must be written as real (static cast), using 'o_stride'.
+ *
+ * For an out of place transform, 'input' and 'output' must not
+ * overlap and 'i_stride' and 'o_stride' must be equal.
+ * 
+ * \see rta_fft_setup_delete
+ * 
+ * @param fft_setup is an address of a pointer to a private structure, 
+ * which may depend on the actual FFT implementation. This function
+ * allocates 'fft_setup' and fills it.
+ * @param fft_type may be real_to_complex_1d or complex_to_real_1d
+ * @param scale is usually used for inverse FFT as 1/'fft_size' in
+ * order to obtain the identity transform when calculating FFT and
+ * then inverse FFT. It does not need to be constant and may change
+ * after the setup.
+ * @param input can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param i_stride is 'input' stride
+ * @param input_size must be <= 'fft_size'
+ * @param output can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param o_stride is 'output' stride
+ * @param fft_size must be >= 'input_size'
+ * @param nyquist is the last coefficient for real transforms
+ * 
+ * @return 1 on success 0 on fail. If it fails, nothing should be done
+ * with 'fft_setup' (even a delete).
+ */
+int
+rta_fft_real_setup_new_stride(
+  rta_fft_setup_t ** fft_setup,
+  rta_fft_t fft_type, rta_real_t * scale,
+  void * input, const int i_stride, const unsigned int input_size,
+  void * output, const int o_stride, const unsigned int fft_size,
+  rta_real_t * nyquist);
+
+/** 
+ * Allocate and initialize an FFT setup for complex transform, direct
+ * or inverse, according to the planned processes.
+ *
+ * The internal implementation always uses an FFT size of the next (or
+ * equal) power of 2 of the given 'fft_size'. If the 'input_size is
+ * smaller than the actual FFT size, it is zero-padded. The use of
+ * external libraries may differ.
+ *
+ * Processing can be in place if 'input' == 'output'. Any real input
+ * data must be written as complex (real and imaginary values must be
+ * contiguous, imaginary one being zero).
+ *
+ * For an out of place transform, 'input' and 'output' must not
+ * overlap. 
+ * 
+ * \see rta_fft_setup_delete
+ * 
+ * @param fft_setup is an address of a pointer to a private structure, 
+ * which may depend on the actual FFT implementation. This function
+ * allocates 'fft_setup' and fills it.
+ * @param fft_type may be rta_fft_complex_1d or
+ * rta_fft_complex_inverse_1d 
+ * @param scale is usually used for inverse FFT as 1/'fft_size' in
+ * order to obtain the identity transform when calculating FFT and
+ * then inverse FFT. It does not need to be constant and may change
+ * after the setup.
+ * @param input is an array of rta_complex_t. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param input_size must be <= 'fft_size'
+ * @param output is an array of rta_complex_t. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param fft_size must be >= 'input_size'
+ * 
+ * @return 1 on success 0 on fail. If it fails, nothing should be done
+ * with 'fft_setup' (even a delete).
+ */
+int
+rta_fft_setup_new(rta_fft_setup_t ** fft_setup,
+                  rta_fft_t fft_type, rta_real_t * scale,
+                  rta_complex_t * input, const unsigned int input_size,
+                  rta_complex_t * output, const unsigned int fft_size);
+/** 
+ * Allocate and initialize an FFT setup for complex transform, direct
+ * or inverse, according to the planned processes.
+ *
+ * The internal implementation always uses an FFT size of the next (or
+ * equal) power of 2 of the given 'fft_size'. If the 'input_size is
+ * smaller than the actual FFT size, it is zero-padded. The use of
+ * external libraries may differ.
+ *
+ * Processing can be in place if 'input' == 'output'. (real and
+ * imaginary values must be contiguous no matter the strides).
+ *
+ * For an out of place transform, 'input' and 'output' must not
+ * overlap. 
+ * 
+ * \see rta_fft_setup_delete
+ * 
+ * @param fft_setup is an address of a pointer to a private structure, 
+ * which may depend on the actual FFT implementation. This function
+ * allocates 'fft_setup' and fills it.
+ * @param fft_type may be rta_fft_complex_1d or
+ * crta_fft_complex_inverse_1d 
+ * @param scale is usually used for inverse FFT as 1/'fft_size' in
+ * order to obtain the identity transform when calculating FFT and
+ * then inverse FFT. It does not need to be constant and may change
+ * after the setup.
+ * @param input is an array of rta_complex_t.  
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param i_stride is 'input' stride
+ * @param input_size must be <= 'fft_size'
+ * @param output is an array of rta_complex_t. 
+ * It may be used to determine a proper setup (FFTW) and its content
+ * may be affected.
+ * @param o_stride is 'output' stride
+ * @param fft_size must be >= 'input_size'
+ * 
+ * @return 1 on success 0 on fail. If it fails, nothing should be done
+ * with 'fft_setup' (even a delete).
+ */
+int
+rta_fft_setup_new_stride(
+  rta_fft_setup_t ** fft_setup,
+  rta_fft_t fft_type, rta_real_t * scale,
+  rta_complex_t * input, const int i_stride, const unsigned int input_size,
+  rta_complex_t * output, const int o_stride, const unsigned int fft_size);
+
+/** 
+ * Deallocate any (sucessfully) allocated FFT setup.
+ * 
+ * \see rta_fft_setup_new
+ * 
+ * @param fft_setup is a pointer to the memory wich will be released.
+ */
+void rta_fft_setup_delete(rta_fft_setup_t * fft_setup);
+
+/** 
+ * Compute an FFT according to an FFT setup. It is possible to use
+ * different 'input' and 'output' arguments as those used to
+ * plan the setup, but they must use exactly the same size and stride.
+ * 
+ * \see rta_fft_setup_new
+ * \see rta_fft_real_setup_new
+ * \see rta_fft_setup_new_stride
+ * \see rta_fft_real_setup_new_stride
+ *
+ * @param output can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * @param input can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * @param input_size is used to perform zero padding, not to resize
+ * 'input' after a planned setup.
+ * @param fft_setup is a pointer to a private structure, which may
+ * depend on the actual FFT implementation.
+ */
+void rta_fft_execute(void * output, void * input, const unsigned int input_size,
+                     rta_fft_setup_t * fft_setup);
+
+
+/** 
+ * Compute an FFT according to an FFT setup. It is possible to use
+ * different 'input' and 'output' arguments as those used to
+ * plan the setup, but they must use exactly the same size and stride.
+ * 
+ * \see rta_fft_setup_new
+ * \see rta_fft_real_setup_new
+ * \see rta_fft_setup_new_stride
+ * \see rta_fft_real_setup_new_stride
+ *
+ * @param output can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * @param input can be an array of rta_real_t or rta_complex_t,
+ * depending on 'fft_type'. 
+ * @param input_size is used to perform zero padding, not to resize
+ * 'input' after a planned setup.
+ * @param fft_setup is a pointer to a private structure, which may
+ * depend on the actual FFT implementation.
+ * @param nyquist is the address of the real transform value at the
+ * Nyquist frequency (for direct and inverse real transforms).
+ */
+void 
+rta_fft_real_execute(void * output, void * input, const unsigned int input_size,
+                     rta_fft_setup_t * fft_setup,
+                     rta_real_t * nyquist);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _RTA_FFT_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_filter.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_filter.h
new file mode 100644
index 0000000..07bb0b1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_filter.h
@@ -0,0 +1,67 @@
+/**
+ * @file   rta_filter.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Aug 29 12:38:46 2008
+ * 
+ * @brief  Filter types
+ * 
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved. 
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_FILTER_H_
+#define _RTA_FILTER_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef enum
+{
+  rta_lowpass = 0,
+  rta_highpass = 1,
+  rta_bandpass_constant_skirt = 2, /* msp name: resonant */
+  rta_bandpass_constant_peak = 3, /* msp name: bandpass */
+  rta_notch = 4, /* msp name: bandstop */
+  rta_allpass = 5,
+  rta_peaking = 6, /* msp name: peaknotch */
+  rta_lowshelf = 7,
+  rta_highshelf = 8
+} rta_filter_t;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_FILTER_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.c
new file mode 100644
index 0000000..a0bc63b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.c
@@ -0,0 +1,165 @@
+/**
+ * @file   rta_lifter.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Cepstral liftering (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_lifter.h"
+#include "rta_math.h"
+
+int rta_lifter_weights(rta_real_t * weights_vector, const unsigned int cepstrum_order,
+                     const rta_real_t liftering_factor,
+                     const rta_lifter_t lifter_t, const rta_lifter_mode_t lifter_m)
+{
+  int i;
+  int ret = 1; /* return value */
+
+  if(lifter_t == rta_lifter_exponential)
+  {
+    weights_vector[0] = weights_vector[1] = 1.;
+    for(i=2; i<cepstrum_order; i++)
+    {
+      weights_vector[i] = rta_pow(i, liftering_factor);
+    }
+  }
+  /* HTK-style liftering */
+  else if(lifter_t == rta_lifter_sinusoidal)
+  {
+    weights_vector[0] = 1.;
+    for(i=1; i<cepstrum_order; i++)
+    {
+      weights_vector[i] = 1. + liftering_factor / 2. *
+        rta_sin(i * M_PI / liftering_factor);
+    }
+  }
+  else
+  {
+    ret = 0;
+  }
+  /* inversion */
+  if(lifter_m == rta_lifter_mode_inverse)
+  {
+    for(i=1; i<cepstrum_order; i++)
+    {
+      weights_vector[i] = 1./weights_vector[i];
+    }
+  }
+    
+  return ret;
+}
+
+int rta_lifter_weights_stride(rta_real_t * weights_vector, const int w_stride,
+                           const unsigned int cepstrum_order,
+                           const rta_real_t liftering_factor,
+                           const rta_lifter_t lifter_t, const rta_lifter_mode_t lifter_m)
+{
+  int i;
+  int ret = 1; /* return value */
+
+  if(lifter_t == rta_lifter_exponential)
+  {
+    weights_vector[0] = weights_vector[w_stride] = 1.;
+    for(i=2; i<cepstrum_order; i++)
+    {
+      weights_vector[i*w_stride] = rta_pow(i, liftering_factor);
+    }
+  }
+  /* HTK-style liftering */
+  else if(lifter_t == rta_lifter_sinusoidal)
+  {
+    weights_vector[0] = 1.;
+    for(i=1; i<cepstrum_order; i++)
+    {
+      weights_vector[i*w_stride] = 1. + liftering_factor / 2. *
+        rta_sin(i * M_PI / liftering_factor);
+    }
+  }
+  else
+  {
+    ret = 0;
+  }
+  /* inversion */
+  if(lifter_m == rta_lifter_mode_inverse)
+  {
+    for(i=w_stride; i<cepstrum_order*w_stride; i+=w_stride)
+    {
+      weights_vector[i] = 1./weights_vector[i];
+    }
+  }
+    
+  return ret;
+}
+
+
+void rta_lifter_cepstrum(rta_real_t * out_cepstrum, rta_real_t * in_cepstrum,
+                       const rta_real_t * weights_vector, 
+                       const unsigned int cepstrum_order)
+{
+  int i;
+  for(i=0; i<cepstrum_order; i++)
+  {
+    out_cepstrum[i] = in_cepstrum[i] * weights_vector[i];
+  }
+  return;
+}
+
+void rta_lifter_cepstrum_in_place(rta_real_t * cepstrum, const rta_real_t * weights_vector, 
+                              const unsigned int cepstrum_order)
+{
+  int i;
+  for(i=0; i<cepstrum_order; i++)
+  {
+    cepstrum[i] *= weights_vector[i];
+  }
+  return;
+}
+
+void rta_lifter_cepstrum_stride(rta_real_t * out_cepstrum, const int o_stride,
+                             rta_real_t * in_cepstrum, const int i_stride,
+                             const rta_real_t * weights_vector, const int w_stride,
+                             const unsigned int cepstrum_order)
+{
+  int ii, io, iw;
+  for(ii=0, io=0, iw=0;
+      ii<cepstrum_order*i_stride;
+      ii+=i_stride, io+=o_stride, iw+=w_stride)
+  {
+    out_cepstrum[io] = in_cepstrum[ii] * weights_vector[iw];
+  }
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.h
new file mode 100644
index 0000000..e373d05
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lifter.h
@@ -0,0 +1,190 @@
+/**
+ * @file   rta_lifter.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Cepstral liftering (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#ifndef _RTA_LIFTER_H_
+#define _RTA_LIFTER_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+  rta_lifter_mode_normal = 0,       /**< default */
+  rta_lifter_mode_inverse = 1       /**< to undo a normal liftering */
+} rta_lifter_mode_t;
+
+typedef enum
+{
+  rta_lifter_exponential = 0,  /**< default, Auditory Toolbox like */
+  rta_lifter_sinusoidal = 1    /**< HTK like */
+} rta_lifter_t;
+
+
+/* from lifter.m */
+/** 
+ * Generate a vector of weights 'weights_vector' to lifter a cepstrum
+ * (usually to boost high coefficients). First coefficient is unchanged.
+ * 
+ * 'factor' = exponent of x i^n liftering in exponential type
+ * (Auditory toolbox like)
+ * 'factor' = length of sin-curve liftering in sinusoidal mode (HTK style)
+ * 
+ * @param weights_vector size is 'cepstrum_order'
+ * @param cepstrum_order number of input and output cepstrum coefficients
+ * @param liftering_factor
+ *    'lifter_t' == exponential_lifter:
+ *         0. is neutral, 0.6 is usual
+ *    'lifter_t' == sinusoidal_lifter:
+ *         'liftering_factor' must be >0.
+ *         1. is neutral, 22. is usual
+ * @param lifter_t 
+ *    'lifter_t' == exponential_lifter: Auditory Toolbox like 
+ *    'lifter_t' == sinusoidal_lifter: HTK like
+ * @param lifter_m 
+ *    'lifter_m' == rta_lifter_mode_normal: standard calculation, the one you
+ * want to
+ *    'lifter_m' == rta_lifter_mode_inverse: inverse calculation, to undo a
+ * liftering.
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_lifter_weights(rta_real_t * weights_vector,
+                       const unsigned int cepstrum_order,
+                       const rta_real_t liftering_factor,
+                       const rta_lifter_t lifter_t,
+                       const rta_lifter_mode_t lifter_m);
+
+
+/** 
+ * Generate a vector of weights 'weights_vector' to lifter a cepstrum
+ * (usually to boost high coefficients). First coefficient is unchanged.
+ * 
+ * 'factor' = exponent of x i^n liftering in exponential type
+ * (Auditory toolbox like)
+ * 'factor' = length of sin-curve liftering in sinusoidal mode (HTK style)
+ * 
+ * @param weights_vector size is 'cepstrum_order'
+ * @param w_stride is 'weights_vector' stride
+ * @param cepstrum_order number of input and output cepstrum coefficients
+ * @param liftering_factor
+ *    'lifter_t' == exponential_lifter:
+ *         0. is neutral, 0.6 is usual
+ *    'lifter_t' == sinusoidal_lifter:
+ *         'liftering_factor' must be >0.
+ *         1. is neutral, 22. is usual
+ * @param lifter_t 
+ *    'lifter_t' == exponential_lifter: Auditory Toolbox like 
+ *    'lifter_t' == sinusoidal_lifter: HTK like
+ * @param lifter_m 
+ *    'lifter_m' == rta_lifter_mode_normal: standard calculation, the one you
+ * want to
+ *    'lifter_m' == rta_lifter_mode_inverse: inverse calculation, to undo a
+ * liftering.
+ * 
+ * @return 1 on success 0 on fail
+ */
+int rta_lifter_weights_stride(
+  rta_real_t * weights_vector, const int w_stride,
+  const unsigned int cepstrum_order,
+  const rta_real_t liftering_factor,
+  const rta_lifter_t lifter_t, const rta_lifter_mode_t lifter_m);
+
+
+/** 
+ * Apply lifter to 'cepstrum' as
+ * 'out_cepstrum' = 'in_cepstrum'*'weights_vector'
+ * 
+ * This can be in place calculation if 'out_cepstrum' == 'in_cepstrum'
+ * 
+ * @param out_cepstrum size is 'cepstrum_order'
+ * @param in_cepstrum size is 'cepstrum_order'
+ * @param weights_vector size is 'cepstrum_order'
+ * @param cepstrum_order number of input and output cepstrum coefficients
+ */
+void rta_lifter_cepstrum(rta_real_t * out_cepstrum, rta_real_t * in_cepstrum,
+                         const rta_real_t * weights_vector, 
+                         const unsigned int cepstrum_order);
+
+/** 
+ * Apply lifter to 'cepstrum' as
+ * 'cepstrum' = 'cepstrum'*'weights_vector'
+ * 
+ * This is in place calculation.
+ * 
+ * @param cepstrum size is 'cepstrum_order'
+ * @param weights_vector size is 'cepstrum_order'
+ * @param cepstrum_order number of input and output cepstrum coefficients
+ */
+void rta_lifter_cepstrum_in_place(
+  rta_real_t * cepstrum, const rta_real_t * weights_vector, 
+  const unsigned int cepstrum_order);
+
+/** 
+ * Apply lifter to 'cepstrum' as
+ * 'cepstrum' = 'cepstrum'*'weights_vector'
+ * 
+ * This can be in place calculation if 'out_cepstrum' == 'in_cepstrum'
+ * and 'i_stride' == 'o_stride'.
+ * 
+ * @param out_cepstrum size is 'cepstrum_order'
+ * @param o_stride is 'out_cepstrum' stride
+ * @param in_cepstrum size is 'cepstrum_order'
+ * @param i_stride is 'in_cepstrum' stride
+ * @param weights_vector size is 'cepstrum_order'
+ * @param w_stride is 'weights_vector' stride
+ * @param cepstrum_order number of input and output cepstrum coefficients
+ * 
+ */
+void rta_lifter_cepstrum_stride(
+  rta_real_t * out_cepstrum, const int o_stride,
+  rta_real_t * in_cepstrum, const int i_stride,
+  const rta_real_t * weights_vector, const int w_stride,
+  const unsigned int cepstrum_order);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_LIFTER_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.c
new file mode 100644
index 0000000..d5abd2e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.c
@@ -0,0 +1,209 @@
+/**
+ * @file   rta_lpc.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 27 12:25:16 2007
+ * 
+ * @brief  Linear Prediction Coding (Autocorrelation - Durbin-Levinson method)
+ * 
+ * Based on mat_mtl (used in super_vp) by Axel Roebel
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_lpc.h"
+
+#include "rta_float.h"
+#include "rta_math.h"
+
+#include "rta_correlation.h"
+
+/* Requirements: input_size >= lpc_size > 1 */
+/*               autocorrelation_size >= input_size - lpc_size */
+/* Note: lpc_size == lpc_order+1 */
+void rta_lpc(rta_real_t * lpc, const unsigned int lpc_size,
+             rta_real_t * error, rta_real_t * autocorrelation, 
+             const rta_real_t * input_vector, const unsigned int input_size)
+{
+  /* Requirement: (a_size, b_size) >= c_size + lpc_order */
+  rta_correlation_raw(autocorrelation, lpc_size,
+                    input_vector, input_vector, input_size);
+  /* Requirement: a_size >= lpc_size */
+  rta_levinson(lpc, lpc_size, error, autocorrelation);
+  
+  return;
+}
+
+/* Requirements: input_size >= lpc_size > 1 */
+/*               autocorrelation_size >= input_size - lpc_size */
+/* Note: lpc_size == lpc_order+1 */
+void rta_lpc_stride(
+  rta_real_t * lpc, const int l_stride, const unsigned int lpc_size,
+  rta_real_t * error,
+  rta_real_t * autocorrelation, const int a_stride,
+  const rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size)
+{
+  /* Requirement: (a_size, b_size) >= c_size + lpc_size */
+  rta_correlation_raw_stride(autocorrelation, a_stride, lpc_size,
+                          input_vector, i_stride, input_vector, i_stride, 
+                          input_size);
+  /* Requirement: a_size >= lpc_size */
+  rta_levinson_stride(lpc, l_stride, lpc_size, error, autocorrelation, a_stride);
+  
+  return;
+}
+
+
+/* Requirement: a_size >= l_size > 1 */
+void rta_levinson(
+  rta_real_t * levinson, const unsigned int l_size, rta_real_t * error,
+  const rta_real_t * autocorrelation)
+{
+  int i,j,k;
+  
+  levinson[0] = 1.;
+  if(rta_abs(autocorrelation[0]) <= RTA_REAL_MIN)
+  {
+    for(i=1; i<l_size; i++)
+    {
+      levinson[i] = 0.;
+    }
+    *error = 0.;
+  }
+  else
+  {
+    /* skip first coefficient, which value is 1. anyway */
+    rta_real_t * lev1 = levinson+1; 
+    rta_real_t tmp_sum; 
+    rta_real_t reflexion; 
+
+    lev1[0] = -autocorrelation[1] / autocorrelation[0];
+    *error = autocorrelation[0] + lev1[0] * autocorrelation[1];
+
+    for(i=1; i<l_size-1; i++)
+    {
+      /* No more error (constant signal?), just fill with zeroes */
+      if(rta_abs(*error) <= RTA_REAL_MIN)
+      {
+        for(; i<l_size-1; i++)
+        {
+          lev1[i] = 0.;
+        }
+        break;
+      }
+
+      tmp_sum = autocorrelation[i+1];
+      for(j=0; j<i; j++)
+      {
+        tmp_sum += lev1[j] * autocorrelation[i-j];		
+      }
+
+      lev1[i] = reflexion = -tmp_sum / *error;
+      *error += tmp_sum * reflexion;
+
+      for(j=0, k=i-j-1; j<k; ++j, --k)
+      {
+        const rta_real_t tmp = lev1[j];
+        lev1[j] += reflexion*lev1[k];
+        lev1[k] += reflexion*tmp; 
+      }
+
+      if (k==j)
+      {
+        lev1[k] += reflexion*lev1[k];
+      }
+    }
+  }
+  return;
+}
+
+/* Requirement: a_size*a_stride >= l_size*l_stride > 1 */
+void rta_levinson_stride(rta_real_t * levinson, const int l_stride, 
+                         const unsigned int l_size, rta_real_t * error,
+                         const rta_real_t * autocorrelation, const int a_stride)
+{
+  int i,j,k;
+
+  levinson[0] = 1.;
+  if(rta_abs(autocorrelation[0]) <= RTA_REAL_MIN)
+  {
+    for(i=l_stride; i<l_size*l_stride; i+=l_stride)
+    {
+      levinson[i] = 0.;
+    }
+    *error = 0.;
+  }
+  else
+  {
+    /* skip first coefficient, which value is 1. anyway */
+    rta_real_t * lev1 = levinson+l_stride; 
+    rta_real_t tmp_sum; 
+    rta_real_t reflexion; 
+
+    lev1[0] = -autocorrelation[a_stride] / autocorrelation[0];
+    *error = autocorrelation[0] + lev1[0] * autocorrelation[a_stride];
+
+    for(i=1; i<l_size-1; i++)
+    {
+      /* No more error (constant signal?), just fill with zeroes */
+      if(rta_abs(*error) <= RTA_REAL_MIN)
+      {
+        for(; i<l_size-1; i++)
+        {
+          lev1[i*l_stride] = 0.;
+        }
+        break;
+      }
+
+      tmp_sum = autocorrelation[(i+1)*a_stride];
+      for(j=0; j<i; j++)
+      {
+        tmp_sum += lev1[j*l_stride] * autocorrelation[(i-j)*a_stride];		
+      }
+
+      lev1[i*l_stride] = reflexion = -tmp_sum / *error;
+      *error += tmp_sum * reflexion;
+
+      for(j=0, k=i-j-1; j<k; ++j, --k)
+      {
+        const rta_real_t tmp = lev1[j*l_stride];
+        lev1[j*l_stride] += reflexion*lev1[k*l_stride];
+        lev1[k*l_stride] += reflexion*tmp; 
+      }
+
+      if (k==j)
+      {
+        lev1[k*l_stride] += reflexion*lev1[k*l_stride];
+      }
+    }
+  }
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.h
new file mode 100644
index 0000000..efde5ee
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_lpc.h
@@ -0,0 +1,173 @@
+/**
+ * @file   rta_lpc.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 27 12:25:16 2007
+ * 
+ * @brief  Linear Prediction Coding (Autocorrelation - Durbin-Levinson method)
+ * 
+ * Based on mat_mtl (used in super_vp) by Axel Roebel
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_LPC_H_
+#define _RTA_LPC_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Calculate the linear prediction coefficients 'lpc' of order
+ * 'lpc_size'-1 for 'input_vector', using autocorrelation and
+ * levinson-durbin decomposition
+ * 
+ * Calculate the linear prediction coefficients L of order N
+ * for the given input vector X such that 
+ *
+ *  sum(X(n-k)*L(k)) =! min
+ *
+ * \see rta_correlation_raw
+ * \see rta_levinson
+ * 
+ * @param lpc coefficients vector
+ * @param lpc_size is lpc order + 1 and must be > 0
+ * @param error is the prediction error (variance)
+ * @param autocorrelation size must be >= 'lpc_size'. It
+ *                        is computed within this function
+ * @param input_vector size is 'input_size' 
+ * @param input_size must be >= lpc_size
+ */
+void
+rta_lpc(rta_real_t * lpc, const unsigned int lpc_size,
+        rta_real_t * error, rta_real_t * autocorrelation,
+        const rta_real_t * input_vector, const unsigned int input_size);
+
+/** 
+ * Calculate the linear prediction coefficients 'lpc' of order
+ * 'lpc_size'-1 for 'input_vector', using autocorrelation and
+ * levinson-durbin decomposition
+ * 
+ * Calculate the linear prediction coefficients L of order N
+ * for the given input vector X such that 
+ *
+ *  sum(X(n-k)*L(k)) =! min
+ *
+ * \see rta_correlation_raw_stride
+ * \see rta_levinson_stride
+ * 
+ * @param lpc coefficients vector
+ * @param l_stride is 'lpc' vector stride
+ * @param lpc_size is lpc order + 1 and must be > 0
+ * @param error is the prediction error (variance)
+ * @param autocorrelation size must be >= 'lpc_size'. It
+ *                        is computed within this function
+ * @param a_stride is 'autocorrelation' vector stride
+ * @param input_vector size is 'input_size' 
+ * @param i_stride is 'input_vector' stride
+ * @param input_size must be >= lpc_size
+ */
+void
+rta_lpc_stride(rta_real_t * lpc, const int l_stride, const unsigned int lpc_size,
+               rta_real_t * error,
+               rta_real_t * autocorrelation, const int a_stride,
+               const rta_real_t * input_vector, const int i_stride,
+               const unsigned int input_size);
+
+/** 
+ * Levinson-Durbin decomposition.
+ *
+ * the levinson function calculates the vector L
+ * that solves  the linear equation
+ *
+ *   [  A(1)   A(2)  ...  A(N)  ] [  L(2)  ]  = [  -A(2)  ]
+ *   [  A(2)   A(1)  ... A(N-1) ] [  L(3)  ]  = [  -A(3)  ]
+ *   [   .        .         .   ] [   .    ]  = [    .    ]
+ *   [ A(N-1) A(N-2) ...  A(2)  ] [  L(N)  ]  = [  -A(N)  ]
+ *   [  A(N)  A(N-1) ...  A(1)  ] [ L(N+1) ]  = [ -A(N+1) ]
+ *
+ * The coefficient vector L will have N+1 elements with the first element
+ * set to 1. The form of the equation is adapted to solve the
+ * linear prediction problem 
+ *
+ *  sum(X(n-k)*L(k)) = min
+ * 
+ * where A is the autocorrelation sequence of X
+ *
+ * @param levinson coefficients vector
+ * @param l_size is levinson order + 1 and must be > 1
+ * @param error is the prediction error (variance)
+ * @param autocorrelation vector is given and its size must be >= 'l_size'
+ */
+void
+rta_levinson(rta_real_t * levinson, const unsigned int l_size, rta_real_t * error,
+             const rta_real_t * autocorrelation);
+
+/** 
+ * Levinson-Durbin decomposition.
+ *
+ * the levinson function calculates the vector L
+ * that solves  the linear equation
+ *
+ *   [  A(1)   A(2)  ...  A(N)  ] [  L(2)  ]  = [  -A(2)  ]
+ *   [  A(2)   A(1)  ... A(N-1) ] [  L(3)  ]  = [  -A(3)  ]
+ *   [   .        .         .   ] [   .    ]  = [    .    ]
+ *   [ A(N-1) A(N-2) ...  A(2)  ] [  L(N)  ]  = [  -A(N)  ]
+ *   [  A(N)  A(N-1) ...  A(1)  ] [ L(N+1) ]  = [ -A(N+1) ]
+ *
+ * The coefficient vector L will have N+1 elements with the first element
+ * set to 1. The form of the equation is adapted to solve the
+ * linear prediction problem 
+ *
+ *  sum(X(n-k)*L(k)) = min
+ * 
+ * where A is the autocorrelation sequence of X
+ *
+ * @param levinson coefficients vector
+ * @param l_stride is 'levinson' vector stride
+ * @param l_size is levinson order + 1 and must be > 1
+ * @param error is the prediction error (variance)
+ * @param autocorrelation vector is given and its size must be >= 'l_size'
+ * @param a_stride is 'autocorrelation' stride
+ */
+void
+rta_levinson_stride(rta_real_t * levinson, const int l_stride, 
+                    const unsigned int l_size, rta_real_t * error,
+                    const rta_real_t * autocorrelation, const int a_stride);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_LPC_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.c
new file mode 100644
index 0000000..9d6bcc0
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.c
@@ -0,0 +1,309 @@
+/**
+ * @file   rta_mean_variance.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 25 16:13:42 2008
+ * 
+ * @brief Mean and variance from an input vector
+ *
+ * @copyright
+ * Copyright (C) 2008 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_mean_variance.h"
+
+/* Var(X) = E((X-mu)^2) = E(X^2) - mu^2 */
+void
+rta_mean_variance(rta_real_t * mean, rta_real_t * variance,
+                  rta_real_t * input, const unsigned int i_size)
+
+{
+  unsigned int i;
+  
+  rta_real_t mean_x2  = 0.; /* mean(x^2) */
+  rta_real_t mean2; /* mean^2 */
+  const rta_real_t normalisation_factor = 1. / (rta_real_t) i_size;
+
+  *mean = 0.;
+  
+  for(i=0; i<i_size; i++)
+  {
+    *mean += input[i];
+    mean_x2 += input[i] * input[i];
+  }
+
+  *mean *= normalisation_factor;
+  mean_x2 *= normalisation_factor;
+  mean2 = *mean * *mean;
+  
+  if(mean_x2 > mean2)
+  {
+    *variance = mean_x2 - mean2;
+  }
+  else /* roundoff errors */
+  {
+    *variance = 0.;
+  }
+
+   return;
+} 
+
+/* Var(X) = E((X-mu)^2) = E(X^2) - mu^2 */
+void
+rta_mean_variance_stride(rta_real_t * mean, rta_real_t * variance,
+                         rta_real_t * input, const int i_stride,
+                         const unsigned int i_size)
+
+{
+  unsigned int i;
+  
+  rta_real_t mean_x2  = 0.; /* mean(x^2) */
+  rta_real_t mean2; /* mean^2 */
+  const rta_real_t normalisation_factor = 1. / (rta_real_t) i_size;
+
+  *mean = 0.;
+  
+  for(i=0; i<i_size*i_stride; i+=i_stride)
+  {
+    *mean += input[i];
+    mean_x2 += input[i] * input[i];
+  }
+
+  *mean *= normalisation_factor;
+  mean_x2 *= normalisation_factor;
+  mean2 = *mean * *mean;
+  
+  if(mean_x2 > mean2)
+  {
+    *variance = mean_x2 - mean2;
+  }
+  else /* roundoff errors */
+  {
+    *variance = 0.;
+  }
+
+   return;
+} 
+
+void
+rta_mean_variance_unbiased(rta_real_t * mean, rta_real_t * variance,
+                           rta_real_t * input, const unsigned int i_size)
+
+{
+  unsigned int i;
+  
+  rta_real_t mean_x2  = 0.; /* mean(x^2) */
+  rta_real_t mean2; /* mean^2 */
+  const rta_real_t mean_norm_factor = 1. / (rta_real_t) i_size;
+  rta_real_t var_norm_factor;
+
+  if(i_size > 1)
+  {
+    var_norm_factor = 1. / (rta_real_t) (i_size - 1);
+  }
+  else
+  {
+    var_norm_factor = 1.;
+  }
+
+  *mean = 0.;
+  
+  for(i=0; i<i_size; i++)
+  {
+    *mean += input[i];
+    mean_x2 += input[i] * input[i];
+  }
+  
+  *mean *= mean_norm_factor;
+  mean2 = *mean * *mean;
+  
+  if(mean_x2 > mean2)
+  {
+    *variance = (mean_x2 - i_size * mean2) * var_norm_factor;
+  }
+  else /* roundoff errors */
+  {
+    *variance = 0.;
+  }
+
+   return;
+} 
+
+void
+rta_mean_variance_unbiased_stride(rta_real_t * mean, rta_real_t * variance,
+                                  rta_real_t * input, const int i_stride,
+                                  const unsigned int i_size)
+
+{
+  unsigned int i;
+  
+  rta_real_t mean_x2  = 0.; /* mean(x^2) */
+  rta_real_t mean2; /* mean^2 */
+  const rta_real_t mean_norm_factor = 1. / (rta_real_t) i_size;
+  rta_real_t var_norm_factor;
+
+  if(i_size > 1)
+  {
+    var_norm_factor = 1. / (rta_real_t) (i_size - 1);
+  }
+  else
+  {
+    var_norm_factor = 1.;
+  }
+
+  *mean = 0.;
+  
+  for(i=0; i<i_size*i_stride; i+=i_stride)
+  {
+    *mean += input[i];
+    mean_x2 += input[i] * input[i];
+  }
+  
+  *mean *= mean_norm_factor;
+  mean2 = *mean * *mean;
+  
+  if(mean_x2 > mean2)
+  {
+    *variance = (mean_x2 - i_size * mean2) * var_norm_factor;
+  }
+  else /* roundoff errors */
+  {
+    *variance = 0.;
+  }
+
+   return;
+} 
+
+rta_real_t rta_mean(rta_real_t * input, const unsigned int i_size)
+{
+  rta_real_t mean = 0.;
+  unsigned int i;
+
+  for(i = 0; i<i_size; i++)
+  {
+    mean += input[i];
+  }
+
+  mean /= (rta_real_t) i_size;
+
+  return mean;
+}
+
+rta_real_t rta_mean_stride(rta_real_t * input, const int i_stride,
+                           const unsigned int i_size)
+{
+  rta_real_t mean = 0.;
+  unsigned int i;
+
+  for(i = 0; i<i_size*i_stride; i+=i_stride)
+  {
+    mean += input[i];
+  }
+
+  mean /= (rta_real_t) i_size;
+
+  return mean;
+}
+
+rta_real_t rta_variance(rta_real_t * input, const unsigned int i_size,
+                        rta_real_t mean)
+{
+  rta_real_t variance = 0.;
+  unsigned int i;
+
+  for(i=0; i<i_size; i++)
+  {
+    rta_real_t t = input[i] - mean;
+    variance += t * t;
+  }
+
+  variance /= (rta_real_t) i_size;
+
+  return variance;
+}
+
+rta_real_t rta_variance_stride(rta_real_t * input, const int i_stride,
+                               const unsigned int i_size,
+                               rta_real_t mean)
+{
+  rta_real_t variance = 0.;
+  unsigned int i;
+
+  for(i=0; i<i_size*i_stride; i+=i_stride)
+  {
+    rta_real_t t = input[i] - mean;
+    variance += t * t;
+  }
+
+  variance /= (rta_real_t) i_size;
+
+  return variance;
+}
+
+rta_real_t
+rta_variance_unbiased(rta_real_t * input, const unsigned int i_size,
+                      rta_real_t mean)
+{
+  rta_real_t variance = 0.;
+  unsigned int i;
+
+  for(i=0; i<i_size; i++)
+  {
+    rta_real_t t = input[i] - mean;
+    variance += t * t;
+  }
+
+  if(i_size > 1)
+  {
+    variance /= (rta_real_t) (i_size - 1);
+  }
+
+  return variance;
+}
+
+rta_real_t
+rta_variance_unbiased_stride(rta_real_t * input, const int i_stride,
+                             const unsigned int i_size, rta_real_t mean)
+{
+  rta_real_t variance = 0.;
+  unsigned int i;
+
+  for(i=0; i<i_size*i_stride; i+=i_stride)
+  {
+    rta_real_t t = input[i] - mean;
+    variance += t * t;
+  }
+
+  if(i_size > 1)
+  {
+    variance /= (rta_real_t) (i_size - 1);
+  }
+
+  return variance;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.h
new file mode 100644
index 0000000..8df0a41
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mean_variance.h
@@ -0,0 +1,219 @@
+/**
+ * @file   rta_mean_variance.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 25 16:13:42 2008
+ * 
+ * @brief Mean and variance from an input vector
+ * 
+ * @copyright
+ * Copyright (C) 2008 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_MEAN_VARIANCE_H_
+#define _RTA_MEAN_VARIANCE_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Variance is computed as var(x) = E(x^2) - mean(x)^2 so as it is
+ * done in one loop. Note that this may lead to inacuracies when
+ * E(x^2) and mean(x)^2 are similar in magnitude. The mean and
+ * variance are normalised by 'i_size', hence the bias.
+ * \see rta_variance
+ * \see rta_mean_variance_unbiased
+ * 
+ * @param mean is a pointer to the mean result
+ * @param variance is a pointer to the variance result
+ * @param input is the input vector of size 'i_size'
+ * @param i_size is the size of 'input' and must be > 0
+ */
+void
+rta_mean_variance(rta_real_t * mean, rta_real_t * variance,
+                  rta_real_t * input, const unsigned int i_size);
+
+/** 
+ * Variance is computed as var(x) = E(x^2) - mean(x)^2 so as it is
+ * done in one loop. Note that this may lead to inacuracies when
+ * E(x^2) and mean(x)^2 are similar in magnitude. The mean and
+ * variance are normalised by 'i_size', hence the bias.
+ * \see rta_variance
+ * \see rta_mean_variance_unbiased
+ * 
+ * @param mean is a pointer to the mean result
+ * @param variance is a pointer to the variance result
+ * @param input is the input vector of size 'i_size'
+ * @param i_stride is the 'input' stride
+ * @param i_size is the size of 'input' and must be > 0
+ */
+void
+rta_mean_variance_stride(
+  rta_real_t * mean, rta_real_t * variance,
+  rta_real_t * input, const int i_stride, const unsigned int i_size);
+
+/** 
+ * Variance is computed as var(x) = E(x^2) - mean(x)^2 so as it is
+ * done in one loop. Note that this may lead to inacuracies when
+ * E(x^2) and mean(x)^2 are similar in magnitude. The mean and
+ * variance are normalised by ('i_size' - 1).
+ * \see rta_variance
+ * \see rta_mean_variance
+ * 
+ * @param mean is a pointer to the mean result
+ * @param variance is a pointer to the variance result
+ * @param input is the input vector of size 'i_size'
+ * @param i_size is the size of 'input' and must be > 0
+ */
+void
+rta_mean_variance_unbiased(rta_real_t * mean, rta_real_t * variance,
+                           rta_real_t * input, const unsigned int i_size);
+
+/** 
+ * Variance is computed as var(x) = E(x^2) - mean(x)^2 so as it is
+ * done in one loop. Note that this may lead to inacuracies when
+ * E(x^2) and mean(x)^2 are similar in magnitude. The mean and
+ * variance are normalised by ('i_size' - 1).
+ * \see rta_variance
+ * \see rta_mean_variance
+ * 
+ * @param mean is a pointer to the mean result
+ * @param variance is a pointer to the variance result
+ * @param input is the input vector of size 'i_size'
+ * @param i_stride is the 'input' stride
+ * @param i_size is the size of 'input' and must be > 0
+ */
+void
+rta_mean_variance_unbiased_stride(
+  rta_real_t * mean, rta_real_t * variance,
+  rta_real_t * input, const int i_stride, const unsigned int i_size);
+
+/** 
+ * Mean of 'input'
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_size is the size of 'input' and must be > 0
+ * 
+ * @return mean of 'input'
+ */
+rta_real_t
+rta_mean(rta_real_t * input, const unsigned int i_size);
+
+/** 
+ * Mean of 'input'
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_stride is the 'input' stride
+ * @param i_size is the size of 'input' and must be > 0
+ * 
+ * @return mean of 'input'
+ */
+rta_real_t
+rta_mean_stride(
+  rta_real_t * input, const int i_stride, const unsigned int i_size);
+
+/** 
+ * Variance is computed as var(x) = E( (x - mean(x))^2 ) and is
+ * normalised by 'i_size', hence the bias.
+ * \see rta_variance_unbiased
+ * \see rta_mean_variance
+ * \see rta_mean
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_size is the size of 'input' and must be > 0
+ * @param mean is the mean of 'input' 
+ * 
+ * @return variance of 'input'
+ */
+rta_real_t
+rta_variance(rta_real_t * input, const unsigned int i_size, rta_real_t mean);
+
+/** 
+ * Variance is computed as var(x) = E( (x - mean(x))^2 ) and is
+ * normalised by 'i_size', hence the bias.
+ * \see rta_variance_unbiased
+ * \see rta_mean_variance
+ * \see rta_mean
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_stride is the 'input' stride
+ * @param i_size is the size of 'input' and must be > 0
+ * @param mean is the mean of 'input' 
+ * 
+ * @return variance of 'input'
+ */
+rta_real_t
+rta_variance_stride(
+  rta_real_t * input, const int i_stride, const unsigned int i_size, 
+  rta_real_t mean);
+
+/** 
+ * Variance is computed as var(x) = E( (x - mean(x))^2 ) and is
+ * normalised by ('i_size' - 1).
+ * \see rta_variance
+ * \see rta_mean_variance
+ * \see rta_mean
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_size is the size of 'input' and must be > 0
+ * @param mean is the mean of 'input' 
+ * 
+ * @return variance of 'input'
+ */
+rta_real_t
+rta_variance_unbiased(rta_real_t * input, const unsigned int i_size, 
+                      rta_real_t mean);
+
+/** 
+ * Variance is computed as var(x) = E( (x - mean(x))^2 ) and is
+ * normalised by ('i_size' - 1).
+ * \see rta_variance
+ * \see rta_mean_variance
+ * \see rta_mean
+ * 
+ * @param input is the input vector of size 'i_size'
+ * @param i_stride is the 'input' stride
+ * @param i_size is the size of 'input' and must be > 0
+ * @param mean is the mean of 'input' 
+ * 
+ * @return variance of 'input'
+ */
+rta_real_t rta_variance_unbiased_stride(
+  rta_real_t * input, const int i_stride, const unsigned int i_size, 
+  rta_real_t mean);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_MEAN_VARIANCE_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.c
new file mode 100644
index 0000000..fba4900
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.c
@@ -0,0 +1,113 @@
+/**
+ * @file   rta_mel.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Mel conversions (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_mel.h"
+#include "rta_math.h"
+
+/*@{ Constants for Slaney's Mel conversion (Auditory Toolbox) */
+static const rta_real_t rta_slaney_mel_min_freq = 0. ; 
+
+/** 200. / 3. size of lower bands */
+static const rta_real_t rta_slaney_mel_linear_bandwidth =  66.6666666666666666667; 
+
+static const rta_real_t rta_slaney_mel_break_freq_in_hz = 1000.;
+
+/** 
+ * starting mel value for log region
+ * (rta_slaney_mel_break_freq_in_hz - rta_slaney_mel_min_freq) /rta_slaney_mel_linear_bandwidth;
+ */
+static const rta_real_t rta_slaney_mel_break_freq_in_mel  = 15.; 
+
+/** 
+ * logstep = exp(log(6.4)/27); 
+ * the magic 1.0711703 which is the ratio needed to get from 1000
+ * Hz to 6400 Hz in 27 steps, and is *almost* the ratio between
+ * 1000 Hz and the preceding linear filter center at 933.33333 Hz
+ * (actually 1000/933.33333 = 1.07142857142857 and
+ * exp(log(6.4)/27) = 1.07117028749447)
+ *
+ * mel_step = log(logstep)
+ * log(6.4)/ 27.
+ */
+static const rta_real_t rta_slaney_mel_step = 6.87517774209491228099e-02;
+/*@} */
+
+rta_real_t rta_hz_to_mel_slaney(rta_real_t freq_in_hz)
+{
+  rta_real_t freq_in_mel = 0.;
+  if(freq_in_hz < rta_slaney_mel_break_freq_in_hz)
+  {
+    freq_in_mel = (freq_in_hz - rta_slaney_mel_min_freq) / rta_slaney_mel_linear_bandwidth;
+  }
+  else
+  {
+    freq_in_mel = rta_slaney_mel_break_freq_in_mel + 
+      rta_log(freq_in_hz / rta_slaney_mel_break_freq_in_hz) / rta_slaney_mel_step;
+  }
+  return freq_in_mel;
+}
+
+rta_real_t rta_hz_to_mel_htk(rta_real_t freq_in_hz)
+{
+  return 2595. * rta_log10(1. + freq_in_hz/700.);
+}
+
+
+
+rta_real_t rta_mel_to_hz_slaney(rta_real_t freq_in_mel)
+{
+  rta_real_t freq_in_hz = 0.;
+  if(freq_in_mel < rta_slaney_mel_break_freq_in_mel)
+  {
+    freq_in_hz = rta_slaney_mel_min_freq + rta_slaney_mel_linear_bandwidth * freq_in_mel;
+  }
+  else
+  {
+      freq_in_hz = rta_slaney_mel_break_freq_in_hz * rta_exp(
+	  rta_slaney_mel_step * (freq_in_mel - rta_slaney_mel_break_freq_in_mel));
+  }
+  return freq_in_hz;
+}
+
+rta_real_t rta_mel_to_hz_htk(rta_real_t freq_in_mel)
+{
+  return 700. * ( rta_pow(10, freq_in_mel / 2595.) -1. );
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.h
new file mode 100644
index 0000000..5aff16f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_mel.h
@@ -0,0 +1,124 @@
+/**
+ * @file   rta_mel.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Mel conversions (HTK and Auditory Toolbox styles)
+ * 
+ * Based on Rastamat by Dan Ellis.
+ * @see http://www.ee.columbia.edu/~dpwe/resources/matlab/rastamat
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_MEL_H_
+#define _RTA_MEL_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+   
+typedef enum
+{
+    rta_mel_slaney = 1,   /**< Slaney-style mel is scaled to be approx
+                       * constant E per channel */
+    rta_mel_htk = 2       /**< HTK-style is constant max amplitude per
+                       * channel */
+} rta_mel_t;
+
+
+/** MEL from melfcc.m */
+
+/** from hz2mel.m */
+/**
+ * function pointer to avoid tests during conversions
+ * rta_real_t parameter in frequency in Hertz
+ * rta_real_t return is corresponding mel value
+ */
+typedef rta_real_t (*rta_hz_to_mel_function) (rta_real_t);
+
+/** 
+ * Convert frequencies f (in Hz) to mel 'scale'.
+ * Mel fn to match Slaney's Auditory Toolbox mfcc.m
+ * 
+ * @param freq_in_hz [0.,22050.]
+ * 
+ * @return corresponding mel value [0.,60.]
+ */
+rta_real_t rta_hz_to_mel_slaney(rta_real_t freq_in_hz);
+
+/** 
+ * Convert frequencies f (in Hz) to mel 'scale'.
+ * uses the mel axis defined in the htk_book
+ * 
+ * @param freq_in_hz [0.,22050.]
+ * 
+ * @return corresponding mel value [0.,3923.]
+ */
+rta_real_t rta_hz_to_mel_htk(rta_real_t freq_in_hz);
+
+/** from mel2hz.m */
+/**
+ * function pointer to avoid tests during conversions
+ * rta_real_t parameter is mel value
+ * rta_real_t return is corresponding frequency
+ */
+typedef rta_real_t (*rta_mel_to_hz_function) (rta_real_t);
+
+/** 
+ * Convert 'mel scale' frequencies into Hz
+ * use the formula from Slaney's mfcc.m
+ * 
+ * @param freq_in_mel [0.,60.]
+ * 
+ * @return corresponding frequency [0.,22050.]
+ */
+rta_real_t rta_mel_to_hz_slaney(rta_real_t freq_in_mel);
+
+/** 
+ * Convert 'mel scale' frequencies into Hz
+ * use the HTK formula
+ * 
+ * @param freq_in_mel [0.,3923.]
+ * 
+ * @return corresponding frequency [0.,22050.]
+ */
+rta_real_t rta_mel_to_hz_htk(rta_real_t freq_in_mel);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_MEL_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.c
new file mode 100644
index 0000000..89a90f4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.c
@@ -0,0 +1,324 @@
+/**
+ * @file   rta_moments.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Thu Dec 13 15:28:26 2007
+ * 
+ * @brief  Statistical moments functions
+ * 
+ * The moments are calculated over the indexes and weighted by the
+ * input values (eg. the amplitudes of the spectrum regularly
+ * sampled). Note that all moments (but the first) are centered. The
+ * results unit is index (starting from 0).
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_moments.h"
+#include "rta_math.h"
+
+/* 1st order weighted moment over indexes: weighted mean, centroid */
+rta_real_t rta_weighted_moment_1_indexes(
+  rta_real_t * input_sum,
+  const rta_real_t * input, const unsigned int input_size)
+{
+  unsigned int i;
+  rta_real_t centroid = 0.;
+  *input_sum = 0.;
+
+  for(i=0; i<input_size; i++)
+  {
+    centroid += input[i] * i;
+    *input_sum += input[i];
+  }
+
+  if(*input_sum > 0.)
+  {
+    centroid /= *input_sum;
+  }
+  else
+  {
+    /* flat and null input => centroid is the middle */
+    centroid = (input_size - 1) * 0.5;
+  }
+
+  return centroid;
+}
+
+rta_real_t rta_weighted_moment_1_indexes_stride(
+  rta_real_t * input_sum, 
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size)
+{
+  unsigned int i;
+  int is;
+  rta_real_t centroid = 0.;
+  *input_sum = 0.;
+
+  for(i=0, is=0; i<input_size; i++, is+=i_stride)
+  {
+    centroid += input[is] * i;
+    *input_sum += input[is];
+  }
+
+  if(*input_sum > 0.)
+  {
+    centroid /= *input_sum;
+  }
+  else
+  {
+    /* flat and null input => centroid is the middle */
+    centroid = (input_size - 1) * 0.5;
+  }
+
+  return centroid;
+}
+
+
+/* 2nd order weighted central moment over indexes: spread, weighted variance */
+/* Request: input_sum != 0. */
+/* note: weighted standard deviation is sqrt(weighted variance) */
+rta_real_t rta_weighted_moment_2_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i=0; i<input_size; i++)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * input[i];
+  }
+
+  return (moment / input_sum);
+}
+
+rta_real_t rta_weighted_moment_2_indexes_stride(
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  int is;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i=0, is=0; i<input_size; i++, is+=i_stride)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * input[is];
+  }
+
+  return (moment / input_sum);
+}
+
+/* 3rd order weighted central moment over indexes*/
+/* Request: input_sum != 0. */
+rta_real_t rta_weighted_moment_3_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i = 0; i<input_size; i++)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * tmp_diff * input[i];
+  }
+
+  return (moment / input_sum);
+}
+
+rta_real_t rta_weighted_moment_3_indexes_stride(
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  int is;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i = 0, is=0; i<input_size; i++, is+=i_stride)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * tmp_diff * input[is];
+  }
+
+  return (moment / input_sum);
+}
+
+/* 3rd order standardised weighted central moment over indexes: skewness */
+/* Requests: input_sum != 0. 
+             deviation != 0. */
+rta_real_t rta_std_weighted_moment_3_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation)
+{
+  return rta_weighted_moment_3_indexes(input, input_size, centroid, input_sum) /
+    (deviation * deviation * deviation);
+}
+
+rta_real_t rta_std_weighted_moment_3_indexes_stride(
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation)
+{
+  return rta_weighted_moment_3_indexes_stride(
+    input, i_stride, input_size, centroid, input_sum) /
+    (deviation * deviation * deviation);
+}
+
+/* 4th order weighted central moment over indexes */
+/* Request: input_sum != 0. */
+rta_real_t rta_weighted_moment_4_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i = 0; i<input_size; i++)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * tmp_diff * tmp_diff * input[i];
+  }
+
+  return (moment / input_sum);
+}
+
+rta_real_t rta_weighted_moment_4_indexes_stride(
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum)
+{
+  unsigned int i;
+  int is;
+  rta_real_t moment = 0.;
+  rta_real_t tmp_diff;
+
+  for(i = 0, is=0; i<input_size; i++, is+=i_stride)
+  {
+    tmp_diff = i - centroid;
+    moment += tmp_diff * tmp_diff * tmp_diff * tmp_diff * input[is];
+  }
+
+  return (moment / input_sum);
+}
+
+/* 4th order standardised weighted central moment over indexes: kurtosis */
+/* Requests: input_sum != 0.  
+             deviation != 0. */
+rta_real_t rta_std_weighted_moment_4_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation)
+{
+  return rta_weighted_moment_4_indexes(input, input_size, centroid, input_sum) /
+    (deviation * deviation * deviation * deviation);
+}
+
+rta_real_t rta_std_weighted_moment_4_indexes_stride(
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation)
+{
+  return rta_weighted_moment_4_indexes_stride(
+    input, i_stride, input_size, centroid, input_sum) /
+    (deviation * deviation * deviation * deviation);
+}
+
+/* general order weighted central moment over indexes */
+/* Request: input_sum != 0. */
+rta_real_t rta_weighted_moment_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t order)
+{
+  unsigned int i;
+  rta_real_t moment = 0.;
+
+  for(i = 0; i<input_size; i++)
+  {
+    moment += rta_pow(i - centroid, order) * input[i];
+  }
+
+  return (moment / input_sum);
+}
+
+rta_real_t rta_weighted_moment_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t order)
+{
+  unsigned int i;
+  int is;
+  rta_real_t moment = 0.;
+
+  for(i = 0, is=0; i<input_size; i++, is+=i_stride)
+  {
+    moment += rta_pow(i - centroid, order) * input[is];
+  }
+
+  return (moment / input_sum);
+}
+
+/* general order standardised weighted central moment over indexes */
+/* Requests: input_sum != 0. 
+             deviation != 0. */
+rta_real_t rta_std_weighted_moment_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation,
+  const rta_real_t order)
+{
+  return rta_weighted_moment_indexes(
+    input, input_size, centroid, input_sum, order) /
+    rta_pow(deviation, order);
+}
+
+rta_real_t rta_std_weighted_moment_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation,
+  const rta_real_t order)
+{
+  return rta_weighted_moment_indexes_stride(
+    input, i_stride, input_size, centroid, input_sum, order) /
+    rta_pow(deviation, order);
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.h
new file mode 100644
index 0000000..3c38baf
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_moments.h
@@ -0,0 +1,396 @@
+/**
+ * @file   rta_moments.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Thu Dec 13 15:28:26 2007
+ * 
+ * @brief  Statistical moments functions
+ * 
+ * The moments are calculated over the indexes and weighted by the
+ * input values (eg. the amplitudes of the spectrum regularly
+ * sampled). Note that all moments (but the first) are centered. The
+ * results unit is index (starting from 0).
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_MOMENTS_H_
+#define _RTA_MOMENTS_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * First order moment over indexes weighted by 'input' values:
+ * weighted mean, centroid.
+ * m1 = centroid = sum(i, i*input(i)) / sum(i, input(i))
+ * 
+ * @param input_sum is calculated by the function and may be used for
+ * higher-order moments. It is the sum of all 'input' values.
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * 
+ * @return the first moment, 0.5 * ('input_size' - 1) if 'input_sum' == 0.
+ */
+rta_real_t
+rta_weighted_moment_1_indexes(
+  rta_real_t * input_sum,
+  const rta_real_t * input, const unsigned int input_size);
+
+/** 
+ * First order moment over indexes weighted by 'input' values:
+ * weighted mean, centroid.
+ * m1 = centroid = sum(i, i*input(i)) / sum(i, input(i))
+ * 
+ * @param input_sum is calculated by the function and may be used for
+ * higher-order moments. It is the sum of all 'input' values.
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * 
+ * @return the first moment, 0.5 * ('input_size' - 1) if 'input_sum' == 0.
+ */
+rta_real_t
+rta_weighted_moment_1_indexes_stride(
+  rta_real_t * input_sum,
+  const rta_real_t * input, const int i_stride,
+  const unsigned int input_size);
+
+/** 
+ * Second order weighted central moment over indexes: spread, weighted
+ * variance.
+ * m2 = spread = sum(i,input(i) * (i-centroid)^2) / sum(i, input(i))
+ * 
+ * Note that standard deviation is std = sqrt(spread)
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return spread
+ */
+rta_real_t
+rta_weighted_moment_2_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Second order weighted central moment over indexes: spread, weighted
+ * variance.
+ * m2 = spread = sum(i,input(i) * (i-centroid)^2) / sum(i, input(i))
+ * 
+ * Note that standard deviation is std = sqrt(spread)
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes_stride
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return spread
+ */
+rta_real_t
+rta_weighted_moment_2_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Third order weighted central moment over indexes.
+ * m3 = sum(i,input(i) * (i-centroid)^3) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return third central moment
+ */
+rta_real_t
+rta_weighted_moment_3_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Third order weighted central moment over indexes.
+ * m3 = sum(i,input(i) * (i-centroid)^3) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes_stride
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return third central moment
+ */
+rta_real_t
+rta_weighted_moment_3_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Third order standardised weighted central moment over indexes: skewness.
+ * skewness = m3 / std^3
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes
+ * 
+ * @return skewness
+ */
+rta_real_t 
+rta_std_weighted_moment_3_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation);
+
+/** 
+ * Third order standardised weighted central moment over indexes: skewness.
+ * skewness = m3 / std^3
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes_stride 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes_stride
+ * 
+ * @return skewness
+ */
+rta_real_t 
+rta_std_weighted_moment_3_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation);
+
+/** 
+ * Fourth order weighted central moment over indexes.
+ * m4 = sum(i,input(i) * (i-centroid)^4) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return fourth central moment
+ */
+rta_real_t
+rta_weighted_moment_4_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Fourth order weighted central moment over indexes.
+ * m4 = sum(i,input(i) * (i-centroid)^4) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes_stride 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * 
+ * @return fourth central moment
+ */
+rta_real_t
+rta_weighted_moment_4_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum);
+
+/** 
+ * Fourth order standardised weighted central moment over indexes: kurtosis.
+ * kurtosis = m4 / std^4
+ * 
+ * Note that the kurtosis is often defined as the fourth cumulant
+ * divided by the square root of the variance, which gives
+ * kurtosis = m4 / std^4 - 3. This function does not include the "- 3"
+ * term.
+ *
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes
+ * 
+ * @return kurtosis
+ */
+rta_real_t
+rta_std_weighted_moment_4_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation);
+
+/** 
+ * Fourth order standardised weighted central moment over indexes: kurtosis.
+ * kurtosis = m4 / std^4
+ * 
+ * Note that the kurtosis is often defined as the fourth cumulant
+ * divided by the square root of the variance, which gives
+ * kurtosis = m4 / std^4 - 3. This function does not include the "- 3"
+ * term.
+ *
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'. 
+ * \see rta_weighted_moment_1_indexes_stride 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes_stride
+ * 
+ * @return kurtosis
+ */
+rta_real_t
+rta_std_weighted_moment_4_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation);
+
+/** 
+ * General order weighted central moment over indexes.
+ * m_order = sum(i,input(i) * (i-centroid)^order) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param order is the moment order.
+ * 
+ * @return moment
+ */
+rta_real_t
+rta_weighted_moment_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t order);
+
+/** 
+ * General order weighted central moment over indexes.
+ * m_order = sum(i,input(i) * (i-centroid)^order) / sum(i, input(i))
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes_stride 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param order is the moment order.
+ * 
+ * @return moment
+ */
+rta_real_t
+rta_weighted_moment_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t order);
+
+/** 
+ * General order standardised weighted central moment over indexes.
+ * m_order / std^order
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes
+ * @param order is the moment order.
+ * 
+ * @return standardised moment
+ */
+rta_real_t
+rta_std_weighted_moment_indexes(
+  const rta_real_t * input, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation,
+  const rta_real_t order);
+
+/** 
+ * General order standardised weighted central moment over indexes.
+ * m_order / std^order
+ * 
+ * @param input is usually amplitudes or weights. Each element of
+ * 'input' must be >=0. 
+ * @param i_stride is 'input' stride
+ * @param input_size is 'input' size
+ * @param centroid is the first moment of 'input'.
+ * \see rta_weighted_moment_1_indexes 
+ * @param input_sum must be != 0. It is the sum of all 'input' values.
+ * @param deviation must be != 0. It is the standard deviation.
+ * \see rta_weighted_moment_2_indexes
+ * @param order is the moment order.
+ * 
+ * @return standardised moment
+ */
+rta_real_t
+rta_std_weighted_moment_indexes_stride(
+  const rta_real_t * input, const int i_stride, const unsigned int input_size,
+  const rta_real_t centroid, const rta_real_t input_sum,
+  const rta_real_t deviation,
+  const rta_real_t order);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_MOMENTS_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.c
new file mode 100644
index 0000000..1742c27
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.c
@@ -0,0 +1,123 @@
+/** 
+ * @file   rta_onepole.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Aug 29 12:38:46 2008
+ * 
+ * @brief  One-pole one-zero filters
+ * 
+ * Simple low-pass and high-pass filters.
+ * @see rta_biquad.h
+ *
+ * @copyright
+ * Copyright (C) 2008 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_onepole.h"
+
+inline rta_real_t rta_onepole_lowpass(const rta_real_t x, const rta_real_t f0,
+                                      rta_real_t * state)
+{
+  *state = x * f0 + *state * (1. - f0);
+  return *state;
+}
+
+inline rta_real_t rta_onepole_highpass(const rta_real_t x, const rta_real_t f0,
+                                       rta_real_t * state)
+{
+  /* highpass = x - lowpass */
+
+  rta_real_t y = f0 * x + *state;
+  *state = (1. - f0) * y;
+  return (x - y);
+}
+
+void rta_onepole_lowpass_vector(
+  rta_real_t * y,
+  const rta_real_t * x, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state)
+{
+  unsigned int i;
+
+  for(i=0; i<x_size; i++)
+  {
+    y[i] = rta_onepole_lowpass(x[i], f0, state);
+  }
+
+  return;
+}
+
+void rta_onepole_lowpass_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state)
+{
+  int ix, iy;
+
+  for(ix = 0, iy = 0;
+      ix < x_size*x_stride;
+      ix += x_stride, iy += y_stride)
+  {
+    y[iy] = rta_onepole_lowpass(x[ix], f0, state);
+  }
+
+  return;
+}
+
+void rta_onepole_highpass_vector(
+  rta_real_t * y,
+  const rta_real_t * x, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state)
+{
+  unsigned int i;
+
+  for(i=0; i<x_size; i++)
+  {
+    y[i] = rta_onepole_highpass(x[i], f0, state);
+  }
+
+  return;
+}
+
+void rta_onepole_highpass_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state)
+{
+  int ix, iy;
+
+  for(ix = 0, iy = 0;
+      ix < x_size*x_stride;
+      ix += x_stride, iy += y_stride)
+  {
+    y[iy] = rta_onepole_highpass(x[ix], f0, state);
+  }
+
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.h
new file mode 100644
index 0000000..266b539
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_onepole.h
@@ -0,0 +1,163 @@
+/** 
+ * @file   rta_onepole.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Aug 29 12:38:46 2008
+ *
+ * @brief  One-pole one-zero filters
+ *
+ * Simple low-pass and high-pass filters.
+ * @see rta_biquad.h
+ *
+ * @copyright
+ * Copyright (C) 2008 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_ONEPOLE_H_
+#define _RTA_ONEPOLE_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WIN32
+#define inline
+#endif
+
+/** 
+ * One-pole low-pass filter computed as:
+ * y(n) = f0 * x(n) - (f0 - 1) * y(n-1)
+ * \see rta_onepole_highpass
+ * 
+ * @param x is an input sample
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ * 
+ * @return the output sample y
+ */
+inline rta_real_t rta_onepole_lowpass(rta_real_t x, const rta_real_t f0,
+                                      rta_real_t * state);
+
+/** 
+ * One-pole high-pass filter computed as the difference between the
+ * input and a low-pass filtered input:
+ * y(n) = x(n) - ( f0 * x(n) - (f0 - 1) * y(n-1) )
+ * \see rta_onepole_lowpass
+ * 
+ * @param x is an input sample
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ * 
+ * @return the output sample y
+ */
+inline rta_real_t rta_onepole_highpass(rta_real_t x, const rta_real_t f0,
+                                       rta_real_t * state);
+/** 
+ * One-pole low-pass computation on a vector of samples.
+ * \see rta_onepole_lowpass
+ * 
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_size is the size of 'y' and 'x'
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ */
+void rta_onepole_lowpass_vector(
+  rta_real_t * y,
+  const rta_real_t * x, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state);
+
+/** 
+ * One-pole low-pass computation on a vector of samples.
+ * \see rta_onepole_lowpass
+ * 
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param y_stride is 'y' stride
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_stride is 'x' stride
+ * @param x_size is the size of 'y' and 'x'
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ */
+void rta_onepole_lowpass_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state);
+
+/** 
+ * One-pole high-pass computation on a vector of samples.
+ * \see rta_onepole_highpass
+ * 
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_size is the size of 'y' and 'x'
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ */
+void rta_onepole_highpass_vector(
+  rta_real_t * y,
+  const rta_real_t * x, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state);
+
+/** 
+ * One-pole high-pass computation on a vector of samples.
+ * \see rta_onepole_highpass
+ * 
+ * @param y is a vector of output samples. Its size is 'x_size'
+ * @param y_stride is 'y' stride
+ * @param x is a vector of input samples. Its size is 'x_size'
+ * @param x_stride is 'x' stride
+ * @param x_size is the size of 'y' and 'x'
+ * @param f0 is the cutoff frequency, normalised by the nyquist frequency.
+ * @param state is the one sample delay state. It can be initialised
+ * with 0. or the last computed value, which is updated by this
+ * function.
+ */
+void rta_onepole_highpass_vector_stride(
+  rta_real_t * y, const int y_stride,
+  const rta_real_t * x, const int x_stride, const unsigned int x_size, 
+  const rta_real_t f0, rta_real_t * state);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_ONEPOLE_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.c
new file mode 100644
index 0000000..25c7a6b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.c
@@ -0,0 +1,104 @@
+/**
+ * @file   rta_preemphasis.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Tue Sep  4 16:24:45 2007
+ * 
+ * @brief  Preemphasis filtering 
+ * 
+ * Simple first order difference equation
+ * s(n) = s(n) - f * s(n-1) 
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_preemphasis.h"
+
+/* can not be in place */
+/* previous_sample updated */
+void rta_preemphasis_signal(rta_real_t * out_samples,
+                          const rta_real_t * in_samples, const unsigned int input_size,
+                          rta_real_t * previous_sample, const rta_real_t factor)
+{
+  int i;
+  
+  if(factor != 0.)
+  {
+    out_samples[0] = in_samples[0] - factor * (*previous_sample);
+    
+    for(i=1; i<input_size; i++)
+    {
+      out_samples[i] = in_samples[i] - factor * in_samples[i-1];
+    }
+    
+  }
+  else
+  {
+    for(i=0; i<input_size; i++)
+    {
+      out_samples[i] = in_samples[i];
+    }
+  }
+
+  *previous_sample = in_samples[input_size-1];
+
+  return;
+}
+
+/* can not be in place */
+/* previous_sample updated */
+void rta_preemphasis_signal_stride(rta_real_t * out_samples, const int o_stride,
+                                const rta_real_t * in_samples, const int i_stride,
+                                const unsigned int input_size,
+                                rta_real_t * previous_sample, const rta_real_t factor)
+{
+  int i,o;
+
+  if(factor != 0.)
+  {
+    out_samples[0] = in_samples[0] - factor * (*previous_sample);
+
+    for(i=i_stride, o=o_stride; i<input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      out_samples[i] = in_samples[i] - factor * in_samples[i-1];
+    }
+  }
+  else
+  {
+    for(i=0, o=0; i<input_size*i_stride; i+=i_stride, o+=o_stride)
+    {
+      out_samples[i] = in_samples[i];
+    } 
+  }
+
+  *previous_sample = in_samples[i-i_stride];
+
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.h
new file mode 100644
index 0000000..788bf96
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_preemphasis.h
@@ -0,0 +1,99 @@
+/**
+ * @file   rta_preemphasis.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Tue Sep  4 16:24:45 2007
+ * 
+ * @brief  Preemphasis filtering
+ *
+ * Simple first order difference equation
+ * s(n) = s(n) - f * s(n-1) 
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_PREEMPHASIS_H_
+#define _RTA_PREEMPHASIS_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Apply preemphasis of 'factor' on 'in_samples' as
+ *  'out_sample'[0] = 'in_samples'[0] - 'factor' * (*'previous_sample')
+ *  'out_sample'[i] = 'in_samples'[i] - 'factor' * 'in_samples'[i-1], i>0
+ * 
+ * This calculation can not be in place: 'out_sample' != 'in_sample'
+ * 
+ * @param out_samples size is 'input_size'
+ * @param in_samples size is 'input_size'
+ * @param input_size is the number of input and output samples and must
+ * be > 0
+ * @param previous_sample is updated as 
+ * (*'previous_sample') = 'in_samples'['input_size'-1]
+ * @param factor is generally 0.97 for voice analysis
+ */
+void
+rta_preemphasis_signal(rta_real_t * out_samples,
+                     const rta_real_t * in_samples, const unsigned int input_size,
+                     rta_real_t * previous_sample, const rta_real_t factor);
+
+/** 
+ * Apply preemphasis of 'factor' on 'in_samples' as
+ *  'out_sample'[0] = 'in_samples'[0] - 'factor' * (*'previous_sample')
+ *  'out_sample'[i] = 'in_samples'[i] - 'factor' * 'in_samples'[i-1], i>0
+ * 
+ * This calculation can not be in place: 'out_sample' != 'in_sample'
+ * 
+ * @param out_samples size is 'input_size'
+ * @param o_stride is 'out_samples' stride
+ * @param in_samples size is 'input_size'
+ * @param i_stride is 'input_size' stride
+ * @param input_size is the number of input and output samples and must
+ * be > 0
+ * @param previous_sample is updated as 
+ * (*'previous_sample') = 'in_samples'[('input_size'-1)*i_stride]
+ * @param factor is generally 0.97 for voice analysis
+ */
+void
+rta_preemphasis_signal_stride(rta_real_t * out_samples, const int o_stride,
+                           const rta_real_t * in_samples, const int i_stride,
+                           const unsigned int input_size,
+                           rta_real_t * previous_sample, const rta_real_t factor);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_PREEMPHASIS_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.c
new file mode 100644
index 0000000..ab51fa4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.c
@@ -0,0 +1,363 @@
+/**
+ * @file   rta_resample.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Nov 12 18:21:06 2007
+ * 
+ * @brief  Resample utilities
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_resample.h"
+#include "rta_util.h"	// for idefix
+
+/* contract: factor > 0; */
+/*           o_size >= i_size / factor */
+void rta_downsample_int_mean(rta_real_t * output,
+                             const rta_real_t * input,
+                             const unsigned int i_size,
+                             const unsigned int factor)
+{
+  const rta_real_t factor_inv = 1. / factor;
+  unsigned int i,j;
+  const unsigned int i_max = i_size / factor;
+  
+  switch(factor)
+  {
+    case 1:
+      for(i=0; i<i_max; i++)
+      {
+        output[i] = input[i];
+      }
+      break;
+      
+    case 2:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1]);
+      }
+      break;
+      
+    case 3:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2]);
+      }
+      break;
+
+    case 4:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2] + input[j+3]);
+      }
+      break;
+
+    case 5:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2] + input[j+3] +
+          input[j+4]);
+      }
+      break;
+
+    case 6:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2] + input[j+3] +
+          input[j+4] + input[j+5]);
+      }
+      break;
+
+    case 7:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2] + input[j+3] +
+          input[j+4] + input[j+5] + input[j+6]);
+      }
+      break;
+
+    case 8:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        output[i] = factor_inv * (input[j] + input[j+1] + input[j+2] + input[j+3] +
+          input[j+4] + input[j+5] + input[j+6] + input[j+7]);
+      }
+      break;
+
+    default:
+      for(i=0, j=0; i<i_max; i++, j+=factor)
+      {
+        unsigned int k;
+        output[i] = input[j];
+        for(k=1; k<factor; k++)
+        {
+          output[i] += input[j+k];
+        }
+        output[i] *= factor_inv;
+      }
+  }
+
+  return;
+}
+
+/* contract: factor > 0; */
+/*           o_size >= i_size / factor */
+void rta_downsample_int_mean_stride(
+  rta_real_t * output, const int o_stride,
+  const rta_real_t * input, const int i_stride,
+  const unsigned int i_size,
+  const unsigned int factor)
+{
+  const rta_real_t factor_inv = 1. / factor;
+  int o,i;
+  const int o_max = (i_size / factor) * o_stride;
+  const int i_incr = factor * i_stride;
+
+  
+  switch(factor)
+  {
+
+   case 1:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = input[i];
+      }
+      break;
+
+   case 2:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv * (input[i] + input[i+i_stride]);
+      }
+      break;
+
+   case 3:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride]);
+      }
+      break;
+
+   case 4:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride] + 
+           input[i+3*i_stride]);
+      }
+      break;
+
+   case 5:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride] + 
+           input[i+3*i_stride] + input[i+4*i_stride]);
+      }
+      break;
+
+   case 6:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride] + 
+           input[i+3*i_stride] + input[i+4*i_stride] + input[i+5*i_stride]);
+      }
+      break;
+
+   case 7:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride] + 
+           input[i+3*i_stride] + input[i+4*i_stride] + input[i+5*i_stride] +
+           input[i+6*i_stride]);
+      }
+      break;
+
+   case 8:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        output[o] = factor_inv *
+          (input[i] + input[i+i_stride] + input[i+2*i_stride] + 
+           input[i+3*i_stride] + input[i+4*i_stride] + input[i+5*i_stride] +
+           input[i+6*i_stride] + input[i+7*i_stride]);
+      }
+      break;
+
+    default:
+      for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+      {
+        int ii;
+        output[o] = input[i];
+        for(ii=i_stride; ii<i_incr; ii+=i_stride)
+        {
+          output[o] += input[i+ii];
+        }
+        output[o] *= factor_inv;
+      }
+  }
+
+  return;
+}
+
+/* contract: factor > 0; */
+/*           o_size >= i_size / factor */
+void rta_downsample_int_remove(rta_real_t * output,
+                               const rta_real_t * input,
+                               const unsigned int i_size,
+                               const unsigned int factor)
+{
+  unsigned int i,j;
+  const unsigned int i_max = i_size / factor;
+  
+  for(i=0, j=0; i<i_max; i++, j+=factor)
+  {
+    output[i] = input[j];
+  }
+
+  return;
+}
+
+/* contract: factor > 0; */
+/*           o_size >= i_size / factor */
+void rta_downsample_int_remove_stride(
+  rta_real_t * output, const int o_stride,
+  const rta_real_t * input, const int i_stride,
+  const unsigned int i_size,
+  const unsigned int factor)
+{
+  int o,i;
+  const int o_max = (i_size / factor) * o_stride;
+  const int i_incr = factor * i_stride;
+  
+  for(o=0, i=0; o<o_max; o+=o_stride, i+=i_incr)
+  {
+    output[o] = input[i];
+  }
+
+  return;
+}
+
+
+
+int rta_resample_cubic (rta_real_t * out_values,
+			const rta_real_t * in_values,
+			const unsigned int i_size,
+			const unsigned int i_channels,
+			const double factor)
+{
+  if (factor == 1.0)
+  { /* copy through */
+    memcpy(out_values, in_values, i_size * i_channels * sizeof(rta_real_t));
+  }
+  else if (in_values != out_values)
+  {
+    int m = i_size;
+    int n = i_channels;
+	
+    /* limit resampling range here? */
+    if (m > 3)
+    {
+      double inv = 1.0 / factor;
+      int out_m = (int) floor((double) (m - 1) * inv) + 1;
+      int out_head_m  = (int) ceil(inv);
+      int out_tailm2_m = (int) floor((double) (m - 2) * inv);
+      rta_idefix_t idefix;
+      rta_idefix_t incr;
+      int i, j;
+	  
+      rta_idefix_set_float(&incr, factor);
+	  
+      for (j = 0; j < n; j++)
+      {
+	rta_idefix_set_zero(&idefix);
+		
+	/* copy first points without interpolation */
+	for (i = j; i < out_head_m * n; i += n)
+	{
+	  int   onset = rta_idefix_get_index(idefix);
+	  float frac  = rta_idefix_get_frac(idefix);
+	  float left  = in_values[j + onset * n];
+	  float right = in_values[j + onset * n + n];
+
+	  //out_values[i] = rta_cubic_calc_stride_head(in_values[j + onset] * n, ft, n);
+	  out_values[i] = left + (right - left) * frac;
+	  rta_idefix_incr(&idefix, incr);
+	}
+		
+	for (; i < out_tailm2_m * n; i += n)
+	{
+	  rta_cubic_idefix_interpolate_stride(in_values + j, idefix, n, out_values + i);
+	  rta_idefix_incr(&idefix, incr);
+	}
+		
+	/*
+	  for(; i<out_tailm1_m*n; i+=n)
+	  {
+	  rta_cubic_coefs_t *ft = rta_cubic_table + rta_cubic_get_table_index_from_idefix(idefix);
+	  int onset = rta_idefix_get_index(idefix);
+
+	  out_values[i] = rta_cubic_calc_stride_tailm2(in_values + j + onset * n, ft, n);
+	  rta_idefix_incr(&idefix, incr);
+	  }
+	*/
+	
+	for (; i < out_m * n; i += n)
+	{
+	  int   onset = rta_idefix_get_index(idefix);
+	  float frac  = rta_idefix_get_frac(idefix);
+	  float left  = in_values[j + onset * n];
+	  float right = in_values[j + onset * n + n];
+	  
+	  //out_values[i] = rta_cubic_calc_stride_head(in_values[j + onset] * n, ft, n);
+	  out_values[i] = left + (right - left) * frac;
+	  rta_idefix_incr(&idefix, incr);
+	}
+      }
+    }
+    else
+      return 0;
+  }
+  else
+    return 0;	// can't run in-place
+
+  return 1;
+}
+
+  
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.h
new file mode 100644
index 0000000..8c6929a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_resample.h
@@ -0,0 +1,147 @@
+/**
+ * @file   rta_resample.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 27 12:25:16 2007
+ * 
+ * @brief  Resampling utilities
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_RESAMPLE_H_
+#define _RTA_RESAMPLE_H_ 1
+
+#include "rta.h"
+#include "rta_cubic.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Downsample 'input' to 'output', by an integer factor, out of
+ * place. The 'output' samples are simple means of 'input' over
+ * 'factor' samples. The calculation can be in place if 
+ * 'input' == 'output' .
+ * 
+ * @param output size must be >= i_size / 'factor'
+ * @param input size is 'i_size'
+ * @param i_size is 'input' size
+ * @param factor must be > 0
+ */
+void
+rta_downsample_int_mean(rta_real_t * output,
+			const rta_real_t * input, const unsigned int i_size,
+			const unsigned int factor);
+
+/** 
+ * Downsample 'input' to 'output', by an integer factor, out of
+ * place. The 'output' samples are simple means of 'input' over
+ * 'factor' samples. The calculation can be in place if 
+ * 'input' == 'output' and 'i_stride' == 'o_stride'.
+ * 
+ * @param output size must be >= i_size / 'factor'
+ * @param o_stride is 'output' stride
+ * @param input size is 'i_size'
+ * @param i_stride is 'input' stride
+ * @param i_size is 'input' size
+ * @param factor must be > 0
+ */
+void 
+rta_downsample_int_mean_stride(
+  rta_real_t * output, const int o_stride,
+  const rta_real_t * input, const int i_stride,
+  const unsigned int i_size,
+  const unsigned int factor);
+
+/** 
+ * Downsample 'input' to 'output', by an integer factor, out of
+ * place. The 'output' samples are 'input' values kept every
+ * 'factor' samples. The calculation can be in place if 
+ * 'input' == 'output'.
+ * 
+ * @param output size must be >= i_size / 'factor'
+ * @param input size is 'i_size'
+ * @param i_size is 'input' size
+ * @param factor must be > 0
+ */
+void
+rta_downsample_int_remove(rta_real_t * output,
+			  const rta_real_t * input,
+			  const unsigned int i_size,
+			  const unsigned int factor);
+
+/** 
+ * Downsample 'input' to 'output', by an integer factor, out of
+ * place. The 'output' samples are 'input' values kept every
+ * 'factor' samples. The calculation can be in place if 
+ * 'input' == 'output' and 'i_stride' == 'o_stride'.
+ * 
+ * @param output size must be >= i_size / 'factor'
+ * @param o_stride is 'output' stride
+ * @param input size is 'i_size'
+ * @param i_stride is 'input' stride
+ * @param i_size is 'input' size
+ * @param factor must be > 0
+ */
+void
+rta_downsample_int_remove_stride(
+  rta_real_t * output, const int o_stride,
+  const rta_real_t * input, const int i_stride,
+  const unsigned int i_size,
+  const unsigned int factor);
+
+
+
+/** 
+ * Cubic resampling of interleaved 'input' to 'output' by a factor, out of
+ * place. 
+ * 
+ * @param output size must be >= i_size / 'factor'
+ * @param input	 size 'i_size' * 'i_channels'
+ * @param i_size is 'input' number of sample frames
+ * @param i_channels is 'input' number of interleaved channels
+ * @param factor must be > 0
+ * @return 1 if successful, 0 otherwise (in-place or input too short)
+ */
+int
+rta_resample_cubic (rta_real_t	      *output,
+		    const rta_real_t  *input,
+		    const unsigned int i_size,
+		    const unsigned int i_channels,
+		    const double       factor);
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_RESAMPLE_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.c
new file mode 100644
index 0000000..04ea09f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.c
@@ -0,0 +1,294 @@
+/**
+ * @file   rta_selection.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Wed Aug 27 22:12:15 2008
+ * 
+ * @brief  RTA selection (median, quartile, etc.)
+ * 
+ * Quick selection, qsort-like, with array selection (for median of a
+ * vector of even size among others).
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_selection.h"
+
+#include "rta_math.h" /* rta_floor, rta_ceil */
+
+#ifdef WIN32
+#define inline
+#endif
+
+static inline void rta_swap(rta_real_t * a, rta_real_t * b)
+{
+  register rta_real_t tmp = *b;
+
+  *b = *a;
+  *a = tmp;
+
+  return;
+}
+
+/* quicksort-like */
+rta_real_t rta_selection(rta_real_t * input, const unsigned int i_size, const rta_real_t real_selection)
+{
+  /* low and high inner bounds */
+  unsigned int l, h; 
+
+  /* partition indexes */
+  unsigned int low = 0;
+  unsigned int mid;
+  unsigned int high = i_size - 1; 
+  
+  rta_real_t selection_floor = rta_floor(real_selection);
+  unsigned int selection = (unsigned int) selection_floor;
+
+  /* s_extension can be 1 in order to sort next index too,
+     to get real indexes selection */
+  unsigned int s_extension = (unsigned int) rta_ceil(real_selection) - selection;
+
+  while(high > low + 1)
+  {
+    mid = (low + high) >> 1; /* avoid overflow */
+    
+    /* choose the pivot index as the median of */
+    /* input[low], input[mid] and input[high] */
+
+    /* sort input[low], input[mid], input[high] in that order */
+    if(input[mid] < input[low])
+    {
+      rta_swap(input + mid, input + low);
+    }
+    /* input[low] <= input[mid] now */
+    
+    if(input[high] <  input[mid])
+    {
+      rta_swap(input + high, input + mid);
+      /* input[mid] <= input[high] now */
+      
+      /* input[low] and input[mid] may have changed */ 
+      if(input[mid] < input[low])
+      {
+        rta_swap(input + mid, input + low);
+      }
+    }
+    
+    /* put the pivot at the end, it is input[high] from now */
+    rta_swap(input + mid, input + high);
+
+    /* we already know that input[low] <= input[high] */
+    /* but l will be incremented before any test */
+    l = low;
+    /* the pivot is at index high */
+    /* but h will be decremented before any test */
+    h = high;
+
+    for(;;)
+    { 
+      while(input[++l] < input[high])
+      {
+        /* void */
+      }
+      
+      while(input[high] < input[--h])
+      {
+        /* void */
+      }
+
+      if(h <= l) 
+      {
+        break;
+      }
+      else
+      {
+        rta_swap(input + l, input + h);
+      }
+    }
+
+    /* put the pivot back at index l */
+    rta_swap(input + high, input + l);
+
+    /* new partition containing selection */
+    if(l <= selection)
+    {
+      low = l;
+    }
+
+    /* (l >= selection + s_extension) for general case with */
+    if(l >= selection + s_extension)
+    {
+      high = l;
+    }
+  }
+
+  /* One or two elements left */
+  if(high <= low + 1) 
+  {
+    /* last sort */
+    if(input[high] < input[low])
+    {
+      rta_swap(input + high, input + low);
+    }
+  }
+
+  {
+    rta_real_t ret;
+    if(s_extension == 0)
+    {
+      ret = input[selection];
+    }
+    else
+    {
+      rta_real_t ratio = real_selection - selection_floor;
+      ret = ratio * input[selection] + (1. - ratio) * input[selection + 1];
+    }
+
+    return ret;
+  }
+}
+
+rta_real_t rta_selection_stride(rta_real_t * input, const int i_stride, const unsigned int i_size, const rta_real_t real_selection)
+{
+  /* low and high inner bounds */
+  int l, h; 
+
+  /* partition indexes */
+  int low = 0;
+  int mid;
+  int high = (i_size - 1) * i_stride; 
+  
+  rta_real_t selection_floor = rta_floor(real_selection);
+  int selection = ( (int) selection_floor ) * i_stride;
+
+  /* s_extension can be 1 in order to sort next index too,
+     to get real indexes selection */
+  int s_extension = ( (int) rta_ceil(real_selection) ) * i_stride - selection;
+
+  while(high > low + i_stride)
+  {
+    mid = (((low + high)/i_stride) >> 1) * i_stride; /* avoid overflow */
+    
+    /* choose the pivot index as the median of */
+    /* input[low], input[mid] and input[high] */
+
+    /* sort input[low], input[mid], input[high] in that order */
+    if(input[mid] < input[low])
+    {
+      rta_swap(input + mid, input + low);
+    }
+    /* input[low] <= input[mid] now */
+    
+    if(input[high] <  input[mid])
+    {
+      rta_swap(input + high, input + mid);
+      /* input[mid] <= input[high] now */
+      
+      /* input[low] and input[mid] may have changed */ 
+      if(input[mid] < input[low])
+      {
+        rta_swap(input + mid, input + low);
+      }
+    }
+    
+    /* put the pivot at the end, it is input[high] from now */
+    rta_swap(input + mid, input + high);
+
+    /* we already know that input[low] <= input[high] */
+    /* but l will be incremented before any test */
+    l = low;
+    /* the pivot is at index high */
+    /* but h will be decremented before any test */
+    h = high;
+
+    for(;;)
+    { 
+      do
+      {
+        l += i_stride;
+      }
+      while(input[l] < input[high]);
+        
+      do
+      {
+        h -= i_stride;
+      }
+      while(input[high] < input[h]);
+
+      if(h <= l) 
+      {
+        break;
+      }
+      else
+      {
+        rta_swap(input + l, input + h);
+      }
+    }
+
+    /* put the pivot back at index l */
+    rta_swap(input + high, input + l);
+
+    /* new partition containing selection */
+    if(l <= selection)
+    {
+      low = l;
+    }
+
+    if(l >= selection + s_extension)
+    {
+      high = l;
+    }
+  }
+
+  /* One or two elements left */
+  if(high <= low + i_stride) 
+  {
+    /* last sort */
+    if(input[high] < input[low])
+    {
+      rta_swap(input + high, input + low);
+    }
+  }
+
+  {
+    rta_real_t ret;
+    if(s_extension == 0)
+    {
+      ret = input[selection];
+    }
+    else
+    {
+      rta_real_t ratio = real_selection - selection_floor;
+      ret = ratio * input[selection] + (1. - ratio) * input[selection + i_stride];
+    }
+
+    return ret;
+  }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.h
new file mode 100644
index 0000000..e8b6b1d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_selection.h
@@ -0,0 +1,116 @@
+/**
+ * @file   rta_selection.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Wed Aug 27 22:12:15 2008
+ * 
+ * @brief  RTA selection (median, quartile, etc.)
+ * 
+ * Quick selection, qsort-like, with array selection (for median of a
+ * vector of even size among others).
+ *
+ * @copyright
+ * Copyright (C) 2007 - 2009 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_SELECTION_H_
+#define _RTA_SELECTION_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Quick selection of an index, as if the input was sorted. If the
+ * given index is not an integer, the weighted mean of the two
+ * adjacent indexes is returned. The median is then:
+ * median = rta_selection('input', 'i_size', 'i_size' * 0.5);
+ * 
+ * This function operates in place and the input will be modified.
+ *
+ * The algorithm is similar to quick sort but not every element is
+ * sorted. After this function's call:
+ *   'input'[index] <= 'input'['selection'] for each (index < 'selection')
+ *   'input'[index] >= 'input'['selection'] for each (index > 'selection')
+ *
+ * @param input is a vector of size 'i_size'
+ * @param i_size is the size of 'input'
+ * @param selection must be bewteen 0 and i_size (note that a simple
+ * search is faster at finding the minimal or maximal element of a list).
+ * 
+ * @return the value of:
+ *   'input'['selection'] if floor(selection) == selection, else
+ *   the weighted mean of 'input'[floor('selection')] and
+ *   'input'[floor('selection')+1] (the weights are the relative difference
+ *   between 'selection' and floor('selection'), and between
+ *   'selection' and floor('selection') + 1.
+ */
+rta_real_t rta_selection(rta_real_t * input, const unsigned int i_size, 
+                         const rta_real_t selection);
+
+/** 
+ * Quick selection of an index, as if the input was sorted. If the
+ * given index is not an integer, the weighted mean of the two
+ * adjacent indexes is returned. The median is then:
+ * median = rta_selection('input', 'i_size', 'i_size' * 0.5);
+ * 
+ * This function operates in place and the input will be modified.
+ *
+ * The algorithm is similar to quick sort but not every element is
+ * sorted. After this function's call:
+ *   'input'[index] <= 'input'['selection'] for each (index < 'selection')
+ *   'input'[index] >= 'input'['selection'] for each (index > 'selection')
+ *
+ * @param input is a vector of size 'i_size'
+ * @param i_stride is 'input' stride
+ * @param i_size is the size of 'input'
+ * @param selection must be bewteen 0 and i_size (note that a simple
+ * search is faster at finding the minimal or maximal element of a list).
+ * 
+ * @return the value of:
+ *   'input'['selection'] if floor(selection) == selection, else
+ *   the weighted mean of 'input'[floor('selection')] and
+ *   'input'[floor('selection')+1] (the weights are the relative difference
+ *   between 'selection' and floor('selection'), and between
+ *   'selection' and floor('selection') + 1.
+ */
+rta_real_t rta_selection_stride(rta_real_t * input, 
+                                const int i_stride,
+                                const unsigned int i_size, 
+                                const rta_real_t selection);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_SELECTION_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.c
new file mode 100644
index 0000000..6bec25d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.c
@@ -0,0 +1,1286 @@
+/**
+ * @file   rta_svd.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 18 09:58:20 2008
+ * 
+ * @brief  Singular Value Decomposition
+ * 
+ * From the TNT/Jama package jama_svd.h (Adapted from JAMA, a Java
+ * Matrix Library, developed jointly by the Mathworks and NIST; see
+ * http://math.nist.gov/javanumerics/jama).
+ *
+ * @copyright
+ * Copyright (C) 2008 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_svd.h"
+#include "rta_math.h" /* rta_abs, rta_max, rta_min, rta_hypot, rta_pow */
+#include "rta_int.h" /* rta_imin, rta_imax */
+#include "rta_float.h" /* RTA_REAL_EPSILON */
+#include "rta_stdlib.h" /* NULL */
+
+struct rta_svd_setup
+{
+  rta_svd_t svd_type;
+
+  /* A is copied when svd_type is 'rta_svd_out_of_place'
+     or n > m (transposition) */
+  rta_real_t * A; /* matrix of size m x n  */
+  unsigned int m;
+  unsigned int n;
+
+  /* internal workspaces */
+  rta_real_t * e; /* vector of size min(m,n) */
+  rta_real_t * work; /* vector of size max(m,n) */
+};
+
+int
+rta_svd_setup_new(rta_svd_setup_t ** svd_setup, const rta_svd_t svd_type,
+                  rta_real_t * U, rta_real_t * S, rta_real_t *  V, 
+                  rta_real_t * A, const unsigned int m, const unsigned int n)
+{
+  int ret = 1;
+  *svd_setup = (rta_svd_setup_t *) rta_malloc(sizeof(rta_svd_setup_t));
+  
+  if(*svd_setup == NULL)
+  {
+    ret = 0;
+  }
+  else
+  {
+    (*svd_setup)->svd_type = svd_type;
+    (*svd_setup)->m = m;
+    (*svd_setup)->n = n;
+  }
+
+  if(ret != 0)
+  {
+    if(svd_type == rta_svd_out_of_place || n > m)
+    {
+      (*svd_setup)->A = (float *)rta_malloc(m * n * sizeof(rta_real_t));
+      if((*svd_setup)->A == NULL)
+      {
+        ret = 0;
+      }
+    }
+    else
+    {
+      (*svd_setup)->A = NULL;
+    }
+  }
+
+  if(ret != 0)
+  {
+    (*svd_setup)->e = (rta_real_t *) rta_malloc(
+      rta_imin(m,n) * sizeof(rta_real_t));
+    if((*svd_setup)->e == NULL)
+    {
+      ret = 0;
+    }
+  }
+    
+  if(ret != 0)
+  {
+    (*svd_setup)-> work = (rta_real_t *) rta_malloc(
+      rta_imax(m,n) * sizeof(rta_real_t));
+    if((*svd_setup)->work == NULL)
+    {
+      ret = 0;
+    }
+  }
+  
+  if(ret == 0)
+  {
+    rta_svd_setup_delete(*svd_setup);
+  }
+
+  return ret;
+}
+
+void
+rta_svd_setup_delete(rta_svd_setup_t * svd_setup)
+{
+  if(svd_setup != NULL)
+  {
+    if((svd_setup)->A != NULL)
+    {
+      rta_free((svd_setup)->A);
+    }
+
+    if((svd_setup)->e != NULL)
+    {
+      rta_free((svd_setup)->e);
+    }
+
+    if((svd_setup)->work != NULL)
+    {
+      rta_free((svd_setup)->work);
+    }
+
+    rta_free(svd_setup);
+  }
+
+  return;
+}
+
+/* A = U * S * V' */
+
+/* A is a 2D array of size m x n  */
+/* U is a 2D array of size m x (m,n) */
+/* S is a 1D array of size min(m,n) */
+/* V is a 2D array of size n x min(n,m) */
+
+/* 2D arrays are in row-major order */
+/* A can be modified by the computation (or copied first, depends on setup) */
+/* U and V can be NULL and are not computed, then */
+
+/* e is a 1D array of size n */
+/* work is a 1D array of size m */
+void
+rta_svd(rta_real_t * output_U, rta_real_t * S, rta_real_t *  output_V, 
+        rta_real_t * input_A, const rta_svd_setup_t * svd_setup)
+{
+  rta_real_t * A; /* input_A, copied or transposed into svd_setup->A */
+  rta_real_t * U; /* swap with V if A is transposed */
+  rta_real_t * V;
+  
+  rta_real_t * e = svd_setup->e; /* just to ease the reading */
+  rta_real_t * work = svd_setup->work; /* just to ease the reading */
+
+  unsigned int m = svd_setup->m;
+  unsigned int n = svd_setup->n;
+
+  int nu;
+  int nct;
+  int nrt;
+ 
+  int i, j, k;
+  int p, pp, iter;
+  
+  if(n <= m)
+  {
+    if(svd_setup->svd_type == rta_svd_out_of_place)
+    {
+      /* Use an input copy */
+      A = svd_setup->A;
+      j = m*n;
+      for(i = 0; i<j; i++)
+      {
+        A[i] = input_A[i];
+      }
+    }
+    else /* Work directly on input */
+    {
+      A = input_A;
+    }
+
+    U = output_U;
+    V = output_V;
+  }
+  else
+  {
+    /* Use an input transposed copy */
+    A = svd_setup->A;
+
+    for(i = 0; i<m; i++)
+    {
+      for(j=0; j<n; j++)
+      {
+        A[j*m + i] = input_A[i*n + j];
+      }
+    }
+    m = svd_setup->n;
+    n = svd_setup->m;
+
+    /* swap U and V as A is transposed */
+    U = output_V;
+    V = output_U;
+  }
+
+  nu = rta_imin(m,n);
+  nct = rta_imin(m-1,n);
+  nrt = rta_imax(0,rta_imin(n-2,m));
+
+  /* Reduce A to bidiagonal form, storing the diagonal elements */
+  /* in s and the super-diagonal elements in e. */
+  for (k = 0; k < rta_imax(nct,nrt); k++) 
+  {
+    if (k < nct) 
+    {
+      /* Compute the transformation for the k-th column and */
+      /* place the k-th diagonal in S[k]. */
+      /* Compute 2-norm of k-th column without under/overflow. */
+      S[k] = 0.0;
+      for (i = k; i < m; i++) 
+      {
+        S[k] = rta_hypot(S[k],A[i*n + k]);
+      }
+      if (S[k] != 0.0) 
+      {
+        if (A[k*n + k] < 0.0) 
+        {
+          S[k] = -S[k];
+        }
+        for (i = k; i < m; i++) 
+        {
+          A[i*n + k] /= S[k]; 
+        }
+        A[k*n + k] += 1.0;
+      }
+      S[k] = -S[k];
+    }
+    for (j = k+1; j < n; j++) 
+    {
+      if ((k < nct) && (S[k] != 0.0))  
+      {
+        /* Apply the transformation. */
+        rta_real_t t = 0.0;
+        for (i = k; i < m; i++) 
+        {
+          t += A[i*n + k]*A[i*n + j];
+        }
+        t = -t/A[k*n + k];
+        for (i = k; i < m; i++) 
+        {
+          A[i*n + j] += t*A[i*n + k];
+        }
+      }
+
+      /* Place the k-th row of A into e for the */
+      /* subsequent calculation of the row transformation. */
+      e[j] = A[k*n + j];
+    }
+    if (U != NULL && (k < nct)) 
+    {
+      /* U initialisation */
+      for(i=0; i<k; i++)
+      {
+        U[i*n + k] = 0.0;
+      }
+
+      /* Place the transformation in U for subsequent back */
+      /* multiplication. */
+      for (i = k; i < m; i++) 
+      {
+        U[i*n + k] = A[i*n + k];
+      }
+    }
+    if (k < nrt) 
+    {
+      /* Compute the k-th row transformation and place the */
+      /* k-th super-diagonal in e[k]. */
+      /* Compute 2-norm without under/overflow. */
+      e[k] = 0.0;
+      for (i = k+1; i < n; i++) 
+      {
+        e[k] = rta_hypot(e[k],e[i]);
+      }
+      if (e[k] != 0.0) 
+      {
+        if (e[k+1] < 0.0) 
+        {
+          e[k] = -e[k];
+        }
+        for (i = k+1; i < n; i++) 
+        {
+          e[i] /= e[k];
+        }
+        e[k+1] += 1.0;
+      }
+      e[k] = -e[k];
+      if ((k+1 < m) && (e[k] != 0.0)) 
+      {
+        /* Apply the transformation. */
+        for (i = k+1; i < m; i++) 
+        {
+          work[i] = 0.0;
+        }
+        for (j = k+1; j < n; j++) 
+        {
+          for (i = k+1; i < m; i++) 
+          {
+            work[i] += e[j]*A[i*n + j];
+          }
+        }
+        for (j = k+1; j < n; j++) 
+        {
+          rta_real_t t = -e[j]/e[k+1];
+          for (i = k+1; i < m; i++) 
+          {
+            A[i*n + j] += t*work[i];
+          }
+        }
+      }
+      if (V != NULL) 
+      {
+        /* V initialisation */
+        for(i=0; i<k+1; i++)
+        {
+          V[i*n + k] = 0.0;
+        }
+
+        /* Place the transformation in V for subsequent */
+        /* back multiplication. */
+        for (i = k+1; i < n; i++) 
+        {
+          V[i*n + k] = e[i];
+        }
+      }
+    }
+  }
+
+  /* Set up the final bidiagonal matrix or order p. */
+  p = rta_imin(n,m+1);
+  if (nct < n) 
+  {
+    S[nct] = A[nct*n + nct];
+  }
+  if (m < p) 
+  {
+    S[p-1] = 0.0;
+  }
+  if (nrt+1 < p) 
+  {
+    e[nrt] = A[nrt*n + (p-1)];
+  }
+  e[p-1] = 0.0;
+
+  /* If required, generate U. */
+  if (U != NULL) 
+  {
+    for (j = nct; j < nu; j++) 
+    {
+      for (i = 0; i < m; i++) 
+      {
+        U[i*n + j] = 0.0;
+      }
+      U[j*n + j] = 1.0;
+    }
+    for (k = nct-1; k >= 0; k--) 
+    {
+      if (S[k] != 0.0) 
+      {
+        for (j = k+1; j < nu; j++) 
+        {
+          rta_real_t t = 0.0;
+          for (i = k; i < m; i++) 
+          {
+            t += U[i*n + k]*U[i*n + j];
+          }
+          t = -t/U[k*n + k];
+          for (i = k; i < m; i++) 
+          {
+            U[i*n + j] += t*U[i*n + k];
+          }
+        }
+        for (i = k; i < m; i++ ) 
+        {
+          U[i*n + k] = -U[i*n + k];
+        }
+        U[k*n + k] = 1.0 + U[k*n + k];
+        for (i = 0; i < k-1; i++) 
+        {
+          U[i*n + k] = 0.0;
+        }
+      } 
+      else 
+      {
+        for (i = 0; i < m; i++) 
+        {
+          U[i*n + k] = 0.0;
+        }
+        U[k*n + k] = 1.0;
+      }
+    }
+  }
+
+  /* If required, generate V. */
+  if (V != NULL) 
+  {
+    for (k = n-1; k >= 0; k--) 
+    {
+      if ((k < nrt) && (e[k] != 0.0)) 
+      {
+        for (j = k+1; j < nu; j++) 
+        {
+          rta_real_t t = 0.0;
+          for (i = k+1; i < n; i++) 
+          {
+            t += V[i*n + k]*V[i*n + j];
+          }
+          t = -t/V[(k+1)*n + k];
+          for (i = k+1; i < n; i++) 
+          {
+            V[i*n + j] += t*V[i*n + k];
+          }
+        }
+      }
+      for (i = 0; i < n; i++) 
+      {
+        V[i*n + k] = 0.0;
+      }
+      V[k*n + k] = 1.0;
+    }
+  }
+
+  /* Main iteration loop for the singular values. */
+  pp = p-1;
+  iter = 0;
+
+  while (p > 0) 
+  {
+    int k=0;
+    int kase=0;
+
+    /* Here is where a test for too many iterations would go. */
+
+    /* This section of the program inspects for */
+    /* negligible elements in the s and e arrays.  On */
+    /* completion the variables kase and k are set as follows. */
+
+    /* kase = 1     if s(p) and e[k-1] are negligible and k<p */
+    /* kase = 2     if s(k) is negligible and k<p */
+    /* kase = 3     if e[k-1] is negligible, k<p, and */
+    /*              s(k), ..., s(p) are not negligible (qr step). */
+    /* kase = 4     if e(p-1) is negligible (convergence). */
+
+    for (k = p-2; k >= -1; k--) 
+    {
+      if (k == -1) 
+      {
+        break;
+      }
+      if (rta_abs(e[k]) <= RTA_REAL_MIN ||
+          rta_abs(e[k]) <= RTA_REAL_EPSILON * (rta_abs(S[k]) + rta_abs(S[k+1]))) 
+      {
+        e[k] = 0.0;
+        break;
+      }
+    }
+    if (k == p-2) 
+    {
+      kase = 4;
+    } 
+    else 
+    {
+      int ks;
+      rta_real_t t;
+      for (ks = p-1; ks >= k; ks--) 
+      {
+        if (ks == k) 
+        {
+          break;
+        }
+        t = (ks != p ? rta_abs(e[ks]) : 0.) + (ks != k+1 ? rta_abs(e[ks-1]) : 0.);
+        if (rta_abs(S[ks]) <= RTA_REAL_MIN ||
+            rta_abs(S[ks]) <= RTA_REAL_EPSILON * t)  
+        {
+          S[ks] = 0.0;
+          break;
+        }
+      }
+      if (ks == k) 
+      {
+        kase = 3;
+      } 
+      else if (ks == p-1) 
+      {
+        kase = 1;
+      } 
+      else 
+      {
+        kase = 2;
+        k = ks;
+      }
+    }
+    k++;
+
+    /* Perform the task indicated by kase. */
+    switch (kase) 
+    {
+      /* Deflate negligible s(p). */
+      case 1: 
+      {
+        rta_real_t f = e[p-2];
+        e[p-2] = 0.0;
+        for (j = p-2; j >= k; j--) 
+        {
+          rta_real_t t = rta_hypot(S[j],f);
+          rta_real_t cs = S[j]/t;
+          rta_real_t sn = f/t;
+          S[j] = t;
+          if (j != k) 
+          {
+            f = -sn*e[j-1];
+            e[j-1] = cs*e[j-1];
+          }
+          if (V != NULL) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = cs*V[i*n + j] + sn*V[i*n + (p-1)];
+              V[i*n + (p-1)] = -sn*V[i*n + j] + cs*V[i*n + (p-1)];
+              V[i*n + j] = t;
+            }
+          }
+        }
+      }
+      break;
+
+      /* Split at negligible s(k). */
+      case 2: 
+      {
+        rta_real_t f = e[k-1];
+        e[k-1] = 0.0;
+        for (j = k; j < p; j++) 
+        {
+          rta_real_t t = rta_hypot(S[j],f);
+          rta_real_t cs = S[j]/t;
+          rta_real_t sn = f/t;
+          S[j] = t;
+          f = -sn*e[j];
+          e[j] = cs*e[j];
+          if (U != NULL) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = cs*U[i*n + j] + sn*U[i*n + (k-1)];
+              U[i*n + (k-1)] = -sn*U[i*n + j] + cs*U[i*n + (k-1)];
+              U[i*n + j] = t;
+            }
+          }
+        }
+      }
+      break;
+
+      /* Perform one qr step. */
+      case 3: 
+      {
+        /* Calculate the shift. */
+        rta_real_t scale = 
+          rta_max(rta_max(rta_max(rta_max(rta_abs(S[p-1]), rta_abs(S[p-2])),
+                                  rta_abs(e[p-2])), rta_abs(S[k])),rta_abs(e[k]));
+        rta_real_t sp = S[p-1]/scale;
+        rta_real_t spm1 = S[p-2]/scale;
+        rta_real_t epm1 = e[p-2]/scale;
+        rta_real_t sk = S[k]/scale;
+        rta_real_t ek = e[k]/scale;
+        rta_real_t b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/2.0;
+        rta_real_t c = (sp*epm1)*(sp*epm1);
+        rta_real_t shift = 0.0;
+        rta_real_t f;
+        rta_real_t g;
+
+        if ((b != 0.0) || (c != 0.0)) 
+        {
+          shift = sqrt(b*b + c);
+          if (b < 0.0) 
+          {
+            shift = -shift;
+          }
+          shift = c/(b + shift);
+        }
+        f = (sk + sp)*(sk - sp) + shift;
+        g = sk*ek;
+   
+        /* Chase zeros. */
+        for (j = k; j < p-1; j++) 
+        {
+          rta_real_t t = rta_hypot(f,g);
+          rta_real_t cs = f/t;
+          rta_real_t sn = g/t;
+          if (j != k) 
+          {
+            e[j-1] = t;
+          }
+          f = cs*S[j] + sn*e[j];
+          e[j] = cs*e[j] - sn*S[j];
+          g = sn*S[j+1];
+          S[j+1] = cs*S[j+1];
+          if (V != NULL) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = cs*V[i*n + j] + sn*V[i*n + (j+1)];
+              V[i*n + (j+1)] = -sn*V[i*n + j] + cs*V[i*n + (j+1)];
+              V[i*n + j] = t;
+            }
+          }
+          t = rta_hypot(f,g);
+          cs = f/t;
+          sn = g/t;
+          S[j] = t;
+          f = cs*e[j] + sn*S[j+1];
+          S[j+1] = -sn*e[j] + cs*S[j+1];
+          g = sn*e[j+1];
+          e[j+1] = cs*e[j+1];
+          if (U != NULL && (j < m-1)) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = cs*U[i*n + j] + sn*U[i*n + (j+1)];
+              U[i*n + (j+1)] = -sn*U[i*n + j] + cs*U[i*n + (j+1)];
+              U[i*n + j] = t;
+            }
+          }
+        }
+        e[p-2] = f;
+        iter = iter + 1;
+      }
+      break;
+
+      /* Convergence. */
+      case 4: 
+      {
+        /* Make the singular values positive. */
+        if (S[k] <= 0.0) 
+        {
+          S[k] = (S[k] < 0.0 ? -S[k] : 0.0);
+          if (V != NULL) 
+          {
+            for (i = 0; i <= pp; i++) 
+            {
+              V[i*n + k] = -V[i*n + k];
+            }
+          }
+        }
+   
+        /* Order the singular values. */
+        while (k < pp) 
+        {
+          rta_real_t t;
+          if (S[k] >= S[k+1]) 
+          {
+            break;
+          }
+          t = S[k];
+          S[k] = S[k+1];
+          S[k+1] = t;
+          if (V != NULL && (k < n-1)) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = V[i*n + (k+1)];
+              V[i*n + (k+1)] = V[i*n + k];
+              V[i*n + k] = t;
+            }
+          }
+          if (U != NULL && (k < m-1)) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = U[i*n + (k+1)];
+              U[i*n + (k+1)] = U[i*n + k];
+              U[i*n + k] = t;
+            }
+          }
+          k++;
+        }
+        iter = 0;
+        p--;
+      }
+      break;
+    }
+  }
+  return;
+}
+
+void
+rta_svd_stride(rta_real_t * output_U, const int ou_stride,
+               rta_real_t * S, const int s_stride,
+               rta_real_t *  output_V, const int ov_stride,
+               rta_real_t * input_A, const int ia_stride,
+               const rta_svd_setup_t * svd_setup)
+{
+  rta_real_t * A; /* input_A, copied or transposed into svd_setup->A */
+  int a_stride; /* actual A stride */
+  rta_real_t * U; /* swap with V if A is transposed */
+  int u_stride; /* actual U stride */
+  rta_real_t * V;
+  int v_stride; /* actual V stride */
+
+  
+  rta_real_t * e = svd_setup->e; /* just to ease the reading */
+  rta_real_t * work = svd_setup->work; /* just to ease the reading */
+
+  unsigned int m = svd_setup->m;
+  unsigned int n = svd_setup->n;
+
+  int nu;
+  int nct;
+  int nrt;
+ 
+  int i, j, k;
+  int p, pp, iter;
+  
+  if(n <= m)
+  {
+    if(svd_setup->svd_type == rta_svd_out_of_place)
+    {
+      /* Use an input copy */
+      A = svd_setup->A;
+      a_stride = 1;
+      j = m*n;
+      for(i = 0; i<j; i++)
+      {
+        A[i] = input_A[i*ia_stride];
+      }
+    }
+    else /* Work directly on input */
+    {
+      A = input_A;
+      a_stride = ia_stride;
+    }
+
+    U = output_U;
+    u_stride = ou_stride;
+    V = output_V;
+    v_stride = ov_stride;
+  }
+  else
+  {
+    /* Use an input transposed copy */
+    A = svd_setup->A;
+    a_stride = 1;
+
+    for(i = 0; i<m; i++)
+    {
+      for(j=0; j<n; j++)
+      {
+        A[j*m + i] = input_A[(i*n + j)*ia_stride];
+      }
+    }
+    m = svd_setup->n;
+    n = svd_setup->m;
+
+    /* swap U and V as A is transposed */
+    U = output_V;
+    u_stride = ov_stride;
+    V = output_U;
+    v_stride = ou_stride;
+  }
+
+  nu = rta_imin(m,n);
+  nct = rta_imin(m-1,n);
+  nrt = rta_imax(0,rta_imin(n-2,m));
+
+  /* Reduce A to bidiagonal form, storing the diagonal elements */
+  /* in s and the super-diagonal elements in e. */
+  for (k = 0; k < rta_imax(nct,nrt); k++) 
+  {
+    if (k < nct) 
+    {
+      /* Compute the transformation for the k-th column and */
+      /* place the k-th diagonal in S[k]. */
+      /* Compute 2-norm of k-th column without under/overflow. */
+      S[k*s_stride] = 0.0;
+      for (i = k; i < m; i++) 
+      {
+        S[k*s_stride] = rta_hypot(S[k*s_stride],A[(i*n + k)*a_stride]);
+      }
+      if (S[k*s_stride] != 0.0) 
+      {
+        if (A[(k*n + k)*a_stride] < 0.0) 
+        {
+          S[k*s_stride] = -S[k*s_stride];
+        }
+        for (i = k; i < m; i++) 
+        {
+          A[(i*n + k)*a_stride] /= S[k*s_stride];
+        }
+        A[(k*n + k)*a_stride] += 1.0;
+      }
+      S[k*s_stride] = -S[k*s_stride];
+    }
+    for (j = k+1; j < n; j++) 
+    {
+      if ((k < nct) && (S[k*s_stride] != 0.0))  
+      {
+        /* Apply the transformation. */
+        rta_real_t t = 0.0;
+        for (i = k; i < m; i++) 
+        {
+          t += A[(i*n + k)*a_stride]*A[(i*n + j)*a_stride];
+        }
+        t = -t/A[(k*n + k)*a_stride];
+        for (i = k; i < m; i++) 
+        {
+          A[(i*n + j)*a_stride] += t*A[(i*n + k)*a_stride];
+        }
+      }
+
+      /* Place the k-th row of A into e for the */
+      /* subsequent calculation of the row transformation. */
+      e[j] = A[(k*n + j)*a_stride];
+    }
+    if (U != NULL && (k < nct)) 
+    {
+      /* U initialisation */
+      for(i=0; i<k; i++)
+      {
+        U[(i*n + k)*u_stride] = 0.0;
+      }
+
+      /* Place the transformation in U for subsequent back */
+      /* multiplication. */
+      for (i = k; i < m; i++) 
+      {
+        U[(i*n + k)*u_stride] = A[(i*n + k)*a_stride];
+      }
+    }
+    if (k < nrt) 
+    {
+      /* Compute the k-th row transformation and place the */
+      /* k-th super-diagonal in e[k]. */
+      /* Compute 2-norm without under/overflow. */
+      e[k] = 0.0;
+      for (i = k+1; i < n; i++) 
+      {
+        e[k] = rta_hypot(e[k],e[i]);
+      }
+      if (e[k] != 0.0) 
+      {
+        if (e[k+1] < 0.0) 
+        {
+          e[k] = -e[k];
+        }
+        for (i = k+1; i < n; i++) 
+        {
+          e[i] /= e[k];
+        }
+        e[k+1] += 1.0;
+      }
+      e[k] = -e[k];
+      if ((k+1 < m) && (e[k] != 0.0)) 
+      {
+        /* Apply the transformation. */
+        for (i = k+1; i < m; i++) 
+        {
+          work[i] = 0.0;
+        }
+        for (j = k+1; j < n; j++) 
+        {
+          for (i = k+1; i < m; i++) 
+          {
+            work[i] += e[j]*A[i*n + j];
+          }
+        }
+        for (j = k+1; j < n; j++) 
+        {
+          rta_real_t t = -e[j]/e[k+1];
+          for (i = k+1; i < m; i++) 
+          {
+            A[(i*n + j)*a_stride] += t*work[i];
+          }
+        }
+      }
+      if (V != NULL) 
+      {
+        /* V initialisation */
+        for(i=0; i<k+1; i++)
+        {
+          V[(i*n + k)*v_stride] = 0.0;
+        }
+
+        /* Place the transformation in V for subsequent */
+        /* back multiplication. */
+        for (i = k+1; i < n; i++) 
+        {
+          V[(i*n + k)*v_stride] = e[i];
+        }
+      }
+    }
+  }
+
+  /* Set up the final bidiagonal matrix or order p. */
+  p = rta_imin(n,m+1);
+  if (nct < n) 
+  {
+    S[nct*s_stride] = A[(nct*n + nct)*a_stride];
+  }
+  if (m < p) 
+  {
+    S[(p-1)*s_stride] = 0.0;
+  }
+  if (nrt+1 < p) 
+  {
+    e[nrt] = A[(nrt*n + (p-1))*a_stride];
+  }
+  e[p-1] = 0.0;
+
+  /* If required, generate U. */
+  if (U != NULL) 
+  {
+    for (j = nct; j < nu; j++) 
+    {
+      for (i = 0; i < m; i++) 
+      {
+        U[(i*n + j)*u_stride] = 0.0;
+      }
+      U[(j*n + j)*u_stride] = 1.0;
+    }
+    for (k = nct-1; k >= 0; k--) 
+    {
+      if (S[k*s_stride] != 0.0) 
+      {
+        for (j = k+1; j < nu; j++) 
+        {
+          rta_real_t t = 0.0;
+          for (i = k; i < m; i++) 
+          {
+            t += U[(i*n + k)*u_stride]*U[(i*n + j)*u_stride];
+          }
+          t = -t/U[(k*n + k)*u_stride];
+          for (i = k; i < m; i++) 
+          {
+            U[(i*n + j)*u_stride] += t*U[(i*n + k)*u_stride];
+          }
+        }
+        for (i = k; i < m; i++ ) 
+        {
+          U[(i*n + k)*u_stride] = -U[(i*n + k)*u_stride];
+        }
+        U[(k*n + k)*u_stride] = 1.0 + U[(k*n + k)*u_stride];
+        for (i = 0; i < k-1; i++) 
+        {
+          U[(i*n + k)*u_stride] = 0.0;
+        }
+      } 
+      else 
+      {
+        for (i = 0; i < m; i++) 
+        {
+          U[(i*n + k)*u_stride] = 0.0;
+        }
+        U[(k*n + k)*u_stride] = 1.0;
+      }
+    }
+  }
+
+  /* If required, generate V. */
+  if (V != NULL) 
+  {
+    for (k = n-1; k >= 0; k--) 
+    {
+      if ((k < nrt) && (e[k] != 0.0)) 
+      {
+        for (j = k+1; j < nu; j++) 
+        {
+          rta_real_t t = 0.0;
+          for (i = k+1; i < n; i++) 
+          {
+            t += V[(i*n + k)*v_stride]*V[(i*n + j)*v_stride];
+          }
+          t = -t/V[((k+1)*n + k)*v_stride];
+          for (i = k+1; i < n; i++) 
+          {
+            V[(i*n + j)*v_stride] += t*V[(i*n + k)*v_stride];
+          }
+        }
+      }
+      for (i = 0; i < n; i++) 
+      {
+        V[(i*n + k)*v_stride] = 0.0;
+      }
+      V[(k*n + k)*v_stride] = 1.0;
+    }
+  }
+
+  /* Main iteration loop for the singular values. */
+  pp = p-1;
+  iter = 0;
+
+  while (p > 0) 
+  {
+    int k=0;
+    int kase=0;
+
+    /* Here is where a test for too many iterations would go. */
+
+    /* This section of the program inspects for */
+    /* negligible elements in the s and e arrays.  On */
+    /* completion the variables kase and k are set as follows. */
+
+    /* kase = 1     if s(p) and e[k-1] are negligible and k<p */
+    /* kase = 2     if s(k) is negligible and k<p */
+    /* kase = 3     if e[k-1] is negligible, k<p, and */
+    /*              s(k), ..., s(p) are not negligible (qr step). */
+    /* kase = 4     if e(p-1) is negligible (convergence). */
+
+    for (k = p-2; k >= -1; k--) 
+    {
+      if (k == -1) 
+      {
+        break;
+      }
+      if (rta_abs(e[k]) <= RTA_REAL_MIN ||
+          rta_abs(e[k]) <= RTA_REAL_EPSILON * 
+          (rta_abs(S[k*s_stride]) + rta_abs(S[(k+1)*s_stride]))) 
+      {
+        e[k] = 0.0;
+        break;
+      }
+    }
+    if (k == p-2) 
+    {
+      kase = 4;
+    } 
+    else 
+    {
+      int ks;
+      rta_real_t t;
+      for (ks = p-1; ks >= k; ks--) 
+      {
+        if (ks == k) 
+        {
+          break;
+        }
+        t = (ks != p ? rta_abs(e[ks]) : 0.) + (ks != k+1 ? rta_abs(e[ks-1]) : 0.);
+        if (rta_abs(S[ks*s_stride]) <= RTA_REAL_MIN ||
+            rta_abs(S[ks*s_stride]) <= RTA_REAL_EPSILON * t)  
+        {
+          S[ks*s_stride] = 0.0;
+          break;
+        }
+      }
+      if (ks == k) 
+      {
+        kase = 3;
+      } 
+      else if (ks == p-1) 
+      {
+        kase = 1;
+      } 
+      else 
+      {
+        kase = 2;
+        k = ks;
+      }
+    }
+    k++;
+
+    /* Perform the task indicated by kase. */
+    switch (kase) 
+    {
+      /* Deflate negligible s(p). */
+      case 1: 
+      {
+        rta_real_t f = e[p-2];
+        e[p-2] = 0.0;
+        for (j = p-2; j >= k; j--) 
+        {
+          rta_real_t t = rta_hypot(S[j*s_stride],f);
+          rta_real_t cs = S[j*s_stride]/t;
+          rta_real_t sn = f/t;
+          S[j*s_stride] = t;
+          if (j != k) 
+          {
+            f = -sn*e[j-1];
+            e[j-1] = cs*e[j-1];
+          }
+          if (V != NULL) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = cs*V[(i*n + j)*v_stride] + sn*V[(i*n + (p-1))*v_stride];
+              V[(i*n + (p-1))*v_stride] = 
+                -sn*V[(i*n + j)*v_stride] + cs*V[(i*n + (p-1))*v_stride];
+              V[(i*n + j)*v_stride] = t;
+            }
+          }
+        }
+      }
+      break;
+
+      /* Split at negligible s(k). */
+      case 2: 
+      {
+        rta_real_t f = e[k-1];
+        e[k-1] = 0.0;
+        for (j = k; j < p; j++) 
+        {
+          rta_real_t t = rta_hypot(S[j*s_stride],f);
+          rta_real_t cs = S[j*s_stride]/t;
+          rta_real_t sn = f/t;
+          S[j*s_stride] = t;
+          f = -sn*e[j];
+          e[j] = cs*e[j];
+          if (U != NULL) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = cs*U[(i*n + j)*u_stride] + sn*U[(i*n + (k-1))*u_stride];
+              U[(i*n + (k-1))*u_stride] = 
+                -sn*U[(i*n + j)*u_stride] + cs*U[(i*n + (k-1))*u_stride];
+              U[(i*n + j)*u_stride] = t;
+            }
+          }
+        }
+      }
+      break;
+
+      /* Perform one qr step. */
+      case 3: 
+      {
+        /* Calculate the shift. */
+        rta_real_t scale = 
+          rta_max(rta_max(rta_max(rta_max(rta_abs(
+                                            S[(p-1)*s_stride]), 
+                                          rta_abs(S[(p-2)*s_stride])),
+                                  rta_abs(e[p-2])),
+                          rta_abs(S[k*s_stride])),
+                  rta_abs(e[k]));
+
+        rta_real_t sp = S[(p-1)*s_stride]/scale;
+        rta_real_t spm1 = S[(p-2)*s_stride]/scale;
+        rta_real_t epm1 = e[p-2]/scale;
+        rta_real_t sk = S[k*s_stride]/scale;
+        rta_real_t ek = e[k]/scale;
+        rta_real_t b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/2.0;
+        rta_real_t c = (sp*epm1)*(sp*epm1);
+        rta_real_t shift = 0.0;
+        rta_real_t f;
+        rta_real_t g;
+
+        if ((b != 0.0) || (c != 0.0)) 
+        {
+          shift = sqrt(b*b + c);
+          if (b < 0.0) 
+          {
+            shift = -shift;
+          }
+          shift = c/(b + shift);
+        }
+        f = (sk + sp)*(sk - sp) + shift;
+        g = sk*ek;
+   
+        /* Chase zeros. */
+        for (j = k; j < p-1; j++) 
+        {
+          rta_real_t t = rta_hypot(f,g);
+          rta_real_t cs = f/t;
+          rta_real_t sn = g/t;
+          if (j != k) 
+          {
+            e[j-1] = t;
+          }
+          f = cs*S[j*s_stride] + sn*e[j];
+          e[j] = cs*e[j] - sn*S[j*s_stride];
+          g = sn*S[(j+1)*s_stride];
+          S[(j+1)*s_stride] = cs*S[(j+1)*s_stride];
+          if (V != NULL) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = cs*V[(i*n + j)*v_stride] + sn*V[(i*n + (j+1))*v_stride];
+              V[(i*n + (j+1))*v_stride] = 
+                -sn*V[(i*n + j)*v_stride] + cs*V[(i*n + (j+1))*v_stride];
+              V[(i*n + j)*v_stride] = t;
+            }
+          }
+          t = rta_hypot(f,g);
+          cs = f/t;
+          sn = g/t;
+          S[j*s_stride] = t;
+          f = cs*e[j] + sn*S[(j+1)*s_stride];
+          S[(j+1)*s_stride] = -sn*e[j] + cs*S[(j+1)*s_stride];
+          g = sn*e[j+1];
+          e[j+1] = cs*e[j+1];
+          if (U != NULL && (j < m-1)) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = cs*U[(i*n + j)*u_stride] + sn*U[(i*n + (j+1))*u_stride];
+              U[(i*n + (j+1))*u_stride] = 
+                -sn*U[(i*n + j)*u_stride] + cs*U[(i*n + (j+1))*u_stride];
+              U[(i*n + j)*u_stride] = t;
+            }
+          }
+        }
+        e[p-2] = f;
+        iter = iter + 1;
+      }
+      break;
+
+      /* Convergence. */
+      case 4: 
+      {
+        /* Make the singular values positive. */
+        if (S[k*s_stride] <= 0.0) 
+        {
+          S[k*s_stride] = (S[k*s_stride] < 0.0 ? -S[k*s_stride] : 0.0);
+          if (V != NULL) 
+          {
+            for (i = 0; i <= pp; i++) 
+            {
+              V[(i*n + k)*v_stride] = -V[(i*n + k)*v_stride];
+            }
+          }
+        }
+   
+        /* Order the singular values. */
+        while (k < pp) 
+        {
+          rta_real_t t;
+          if (S[k*s_stride] >= S[(k+1)*s_stride]) 
+          {
+            break;
+          }
+          t = S[k*s_stride];
+          S[k*s_stride] = S[(k+1)*s_stride];
+          S[(k+1)*s_stride] = t;
+          if (V != NULL && (k < n-1)) 
+          {
+            for (i = 0; i < n; i++) 
+            {
+              t = V[(i*n + (k+1))*v_stride];
+              V[(i*n + (k+1))*v_stride] = V[(i*n + k)*v_stride];
+                V[(i*n + k)*v_stride] = t;
+            }
+          }
+          if (U != NULL && (k < m-1)) 
+          {
+            for (i = 0; i < m; i++) 
+            {
+              t = U[(i*n + (k+1))*u_stride];
+              U[(i*n + (k+1)*u_stride)] = U[(i*n + k)*u_stride];
+                U[(i*n + k)*u_stride] = t;
+            }
+          }
+          k++;
+        }
+        iter = 0;
+        p--;
+      }
+      break;
+    }
+  }
+  return;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.h
new file mode 100644
index 0000000..01d7b38
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_svd.h
@@ -0,0 +1,186 @@
+/**
+ * @file   rta_svd.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Mon Aug 18 09:58:20 2008
+ * 
+ * @brief  Singular Value Decomposition
+ * 
+ * @copyright
+ * Copyright (C) 2008 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_SVD_H_
+#define _RTA_SVD_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum
+{
+  rta_svd_out_of_place = 1,  /**< the input matrix A is first copied */
+  rta_svd_in_place = 2  /**< the input matrix A can be modified */
+} rta_svd_t;
+
+
+/* rta_svd_setup is private (depends on implementation) */
+typedef struct rta_svd_setup rta_svd_setup_t;
+
+
+/** 
+ * Allocate an svd setup for further svd decomposition. (The values
+ * referenced by the arrays may change, but not their sizes.)
+ *
+ * Any 2D array is in row-major order. 
+ *
+ * \see rta_svd_setup_delete
+ * \see rta_svd
+ * 
+ * @param svd_setup is an address to a pointer to a private structure
+ * which may depend on actual svd implementation.
+ * @param svd_type can be
+ *  'rta_svd_out_of_place': the matrix 'A' is first copied;
+ *  'rta_svd_in_place': 'A' may be modified. This is the most
+ *     efficient if 'm' >= 'n'. (If 'n' > ''m, 'A' is internally
+ *     copied and transposed.) 
+ * @param U is a 2D array of size 'm' x 'n', or a 'NULL' pointer (it
+ * is not calculated, then).
+ * @param S is a 1D array of size 'n', representing the diagonal matrix
+ * of the singular values of 'A'.
+ * @param V is a 2D array f size 'n' x 'n', or a 'NULL' pointer (it is
+ * not calculated, then).  
+ * @param A is a 2D array of size 'm' x 'n'. 'A' can be modified by the
+ * computation if 'svd_type' is 'rta_svd_in_place'.
+ * @param m is the first dimension of 'A'.
+ * @param n is the second dimension of 'A'.
+ * 
+ * @return 1 on success, 0 on fail. If it fails, nothing should be done
+ * with 'svd_setup' (even a delete).
+ */
+int
+rta_svd_setup_new(rta_svd_setup_t ** svd_setup, const rta_svd_t svd_type,
+                  rta_real_t * U, rta_real_t * S, rta_real_t *  V, 
+                  rta_real_t * A, const unsigned int m, const unsigned int n);
+
+/** 
+ * Deallocate any (sucessfully) allocated svd setup.
+ *
+ * \see rta_svd_setup_new
+ * 
+ * @param svd_setup is a pointer to the memory wich will be released.
+ */
+void
+rta_svd_setup_delete(rta_svd_setup_t * svd_setup);
+
+/** 
+ *
+ * For an m-by-n matrix A with m >= n, the singular value
+ * decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal
+ * matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'. 
+ * (V' is the conjugate transpose of V and only the diagonal vector of
+ * S is represented here.) 
+ *
+ * The singular values, S[k] are ordered so that
+ * S[0] >= S[1] >= ... >= S[n-1].
+ *
+ * The singular value decompostion always exists, so the constructor will
+ * never fail. The matrix condition number and the effective numerical
+ * rank can be computed from the singlar values.
+ *
+ * Any array must be allocated before calling this function.
+ * Any 2D array is in row-major order.
+ *
+ * \see rta_svd_setup_new
+ * 
+ * @param U is a 2D array of size 'm' x 'n', or a 'NULL' pointer (it
+ * is not calculated, then).
+ * @param S is a 1D array of size 'n', representing the diagonal matrix
+ * of the singular values of 'A'.
+ * @param V is a 2D array f size 'n' x 'n', or a 'NULL' pointer (it is not
+ * calculated, then).  
+ * @param A is a 2D array of size 'm' x 'n'. 'A' may be modified by the
+ * computation depending on the mode used to create 'svd_setup'
+ * @param svd_setup is a previously allocated setup (by rta_setup_new).
+ * 
+ */
+void
+rta_svd(rta_real_t * U, rta_real_t * S, rta_real_t *  V, rta_real_t * A,
+        const rta_svd_setup_t * svd_setup);
+
+
+/** 
+ *
+ * For an m-by-n matrix A with m >= n, the singular value
+ * decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal
+ * matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'. 
+ * (V' is the conjugate transpose of V and only the diagonal vector of
+ * S is represented here.) 
+ *
+ * The singular values, S[k*s_tride] are ordered so that
+ * S[0] >= S[s_tride] >= ... >= S[(n-1)*s_tride].
+ *
+ * The singular value decompostion always exists, so the constructor will
+ * never fail. The matrix condition number and the effective numerical
+ * rank can be computed from the singlar values.
+ *
+ * Any array must be allocated before calling this function.
+ * Any 2D array is in row-major order.
+ *
+ * \see rta_svd_setup_new
+ * 
+ * @param U is a 2D array of size 'm' x 'n', or a 'NULL' pointer (it
+ * is not calculated, then).
+ * @param u_stride is 'U' stride
+ * @param S is a 1D array of size 'n', representing the diagonal matrix
+ * of the singular values of 'A'.
+ * @param s_stride is 'S' stride
+ * @param V is a 2D array f size 'n' x 'n', or a 'NULL' pointer (it is not
+ * calculated, then).  
+ * @param v_stride is 'V' stride
+ * @param A is a 2D array of size 'm' x 'n'. 'A' may be modified by the
+ * computation depending on the mode used to create 'svd_setup'
+ * @param a_stride is 'A' stride
+ * @param svd_setup is a previously allocated setup (by rta_setup_new).
+ * 
+ */
+void
+rta_svd_stride(rta_real_t * U, const int u_stride,
+               rta_real_t * S, const int s_stride,
+               rta_real_t * V, const int v_stride,
+               rta_real_t * A, const int a_stride,
+               const rta_svd_setup_t * svd_setup);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_SVD_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.c b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.c
new file mode 100644
index 0000000..7627616
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.c
@@ -0,0 +1,300 @@
+/**
+ * @file   rta_window.c
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Signal windowing
+ * 
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rta_window.h"
+#include "rta_math.h" /* M_PI, cos */
+
+
+
+/* y = 0.5 - 0.5 * cos(2 * pi * x) */
+int rta_window_hann_weights(rta_real_t * weights_vector,
+                            const unsigned int weights_size)
+{
+  int i;
+  int ret = 1; /* return value */
+  const rta_real_t step = 2. * M_PI / weights_size;
+
+  for(i=0; i<weights_size; i++)
+  { 
+    weights_vector[i] = 0.5 - 0.5 * rta_cos(i*step);
+  }
+    
+  return ret;
+}
+
+int rta_window_hann_weights_stride(
+  rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size)
+{
+  int i;
+  int ret = 1; /* return value */
+  const rta_real_t step = 2. * M_PI / weights_size;
+
+  for(i=0; i<weights_size*w_stride; i+=w_stride)
+  { 
+    weights_vector[i] = 0.5 - 0.5 * rta_cos(i*step);
+  }
+    
+  return ret;
+}
+
+void rta_window_hann_apply_in_place(rta_real_t * input_vector,
+                                    const unsigned int input_size)
+{
+  int i;
+  const rta_real_t step = 2. * M_PI / input_size;
+  for(i=0; i<input_size; i++)
+  { 
+    input_vector[i] *= 0.5 - 0.5 * rta_cos(i*step);
+  }
+    
+  return;
+}
+
+void rta_window_hann_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size)
+{
+  int i;
+  const rta_real_t step = 2. * M_PI / input_size;
+  for(i=0; i<input_size*i_stride; i+=i_stride)
+  { 
+    input_vector[i] *= 0.5 - 0.5 * rta_cos(i*step);
+  }
+    
+  return;
+}
+
+/* y = coef + (1-coef)(0.5 - 0.5 * cos(2 * pi * x)) */
+/* raised-cosine, real hamming window if coef == 0.08 */
+int rta_window_hamming_weights(rta_real_t * weights_vector,
+                               const unsigned int weights_size,
+                               const rta_real_t coef)
+{
+  int i;
+  int ret = 1; /* return value */
+  const rta_real_t step = 2. * M_PI / weights_size;
+  const rta_real_t scale = (1. - coef) * 0.5;
+
+  for(i=0; i<weights_size; i++)
+  { 
+    weights_vector[i] = coef + scale * (1. - rta_cos(i*step));
+  }
+    
+  return ret;
+}
+
+int rta_window_hamming_weights_stride(
+  rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size,
+  const rta_real_t coef)
+{
+  int i;
+  int ret = 1; /* return value */
+  const rta_real_t step = 2. * M_PI / weights_size;
+  const rta_real_t scale = (1. - coef) * 0.5;
+
+  for(i=0; i<weights_size*w_stride; i+=w_stride)
+  { 
+    weights_vector[i] = coef + scale * (1. - rta_cos(i*step));
+  }
+    
+  return ret;
+}
+
+void rta_window_hamming_apply_in_place(rta_real_t * input_vector,
+                                       const unsigned int input_size,
+                                       const rta_real_t coef)
+{
+  int i;
+  const rta_real_t step = 2. * M_PI / input_size;
+  const rta_real_t scale = (1. - coef) * 0.5;
+
+  for(i=0; i<input_size; i++)
+  { 
+    input_vector[i] *= coef + scale * (1. - rta_cos(i*step));
+  }
+    
+  return;
+}
+
+void rta_window_hamming_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t coef)
+{
+  int i;
+  const rta_real_t step = 2. * M_PI / input_size;
+  const rta_real_t scale = (1. - coef) * 0.5;
+
+  for(i=0; i<input_size*i_stride; i+=i_stride)
+  { 
+    input_vector[i] *= coef + scale * (1. - rta_cos(i*step));
+  }
+    
+  return;
+}
+
+
+void rta_window_apply(rta_real_t * output_vector,
+                      const unsigned int output_size,
+                      const rta_real_t * input_vector,
+                      const rta_real_t * weights_vector)
+{
+  int i;
+
+  for(i=0; i<output_size; i++)
+  { 
+    output_vector[i] = input_vector[i] * weights_vector[i];
+  }
+    
+  return;
+}
+
+void rta_window_apply_stride(
+  rta_real_t * output_vector, const int o_stride,
+  const unsigned int output_size,
+  const rta_real_t * input_vector, const int i_stride,
+  const rta_real_t * weights_vector, const int w_stride)
+{
+  int o,i,w;
+
+  for(o=0, i=0, w=0; o<output_size*o_stride; o+=o_stride, i+=i_stride, w+=w_stride)
+  { 
+    output_vector[o] = input_vector[i] * weights_vector[w];
+  }
+    
+  return;
+}
+
+
+void rta_window_apply_in_place(rta_real_t * input_vector,
+                               const unsigned int input_size,
+                               const rta_real_t * weights_vector)
+{
+  int i;
+
+  for(i=0; i<input_size; i++)
+  { 
+    input_vector[i] *= weights_vector[i];
+  }
+    
+  return;
+}
+
+void rta_window_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t * weights_vector, const int w_stride)
+{
+  int i,w;
+
+  for(i=0,w=0; i<input_size*i_stride; i+=i_stride, w+=w_stride)
+  { 
+    input_vector[i] *= weights_vector[w];
+  }
+    
+  return;
+}
+
+void rta_window_rounded_apply(
+  rta_real_t * output_vector, const unsigned int output_size,
+  const rta_real_t * input_vector, 
+  const rta_real_t * weights_vector, const unsigned int weights_size)
+{
+  int i;
+  const rta_real_t step = (rta_real_t) weights_size / (rta_real_t) output_size;
+
+  for(i=0; i<output_size; i++)
+  { 
+    output_vector[i] = input_vector[i] * weights_vector[(int)rta_round(i*step)];
+  }
+    
+  return;
+}
+
+void rta_window_rounded_apply_stride(
+  rta_real_t * output_vector, const int o_stride, 
+  const unsigned int output_size,
+  const rta_real_t * input_vector, const int i_stride,
+  const rta_real_t * weights_vector, const int w_stride, 
+  const unsigned int weights_size)
+{
+  int i;
+  const rta_real_t step = (rta_real_t) weights_size / (rta_real_t) output_size;
+
+  for(i=0; i<output_size; i++)
+  { 
+    output_vector[i] = input_vector[i] * weights_vector[(int)rta_round(i*step)];
+  }
+    
+  return;
+}
+
+void rta_window_rounded_apply_in_place(
+  rta_real_t * input_vector, const unsigned int input_size,
+  const rta_real_t * weights_vector, const unsigned int weights_size)
+{
+  int i;
+  const rta_real_t step = (rta_real_t) weights_size / (rta_real_t) input_size;
+
+  for(i=0; i<input_size; i++)
+  { 
+    input_vector[i] *= weights_vector[(int)rta_round(i*step)];
+  }
+    
+  return;
+}
+
+void rta_window_rounded_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size)
+{
+  int i,w;
+  const rta_real_t step = (rta_real_t) weights_size / (rta_real_t) input_size;
+
+  for(i=0,w=0; i<input_size*i_stride; i+=i_stride, w+=w_stride)
+  { 
+    input_vector[i] *= weights_vector[(int)rta_round(w*step)];
+  }
+    
+  return;
+}
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.h
new file mode 100644
index 0000000..955b78b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/misc/rta_window.h
@@ -0,0 +1,379 @@
+/**
+ * @file   rta_window.h
+ * @author Jean-Philippe.Lambert@ircam.fr
+ * @date   Fri Jun 15 15:29:25 2007
+ * 
+ * @brief  Signal windowing
+ *
+ * @copyright
+ * Copyright (C) 2007 by IRCAM-Centre Georges Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_WINDOW_H_
+#define _RTA_WINDOW_H_ 1
+
+#include "rta.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * Generate a vector of weights 'weights_vector' to be applied to
+ * another signal vector, on the form of a von Hann window.
+ *
+ * y = 0.5 - 0.5 * cos(2 * pi * x),
+ * x is in [0,1] as x is scaled by ('weights_size' - 1)
+ * 
+ * \see rta_window_apply
+ * \see rta_window_apply_in_place
+ * \see rta_window_rounded_apply
+ * \see rta_window_rounded_apply_in_place
+ *
+ * @param weights_vector size is 'weights_size'
+ * @param weights_size is the number of steps
+ * 
+ * @return 1 on success 0 on fail
+ */
+int
+rta_window_hann_weights(rta_real_t * weights_vector,
+                        const unsigned int weights_size);
+
+/** 
+ * Generate a vector of weights 'weights_vector' to be applied to
+ * another signal vector, on the form of a von Hann window.
+ *
+ * y = 0.5 - 0.5 * cos(2 * pi * x),
+ * x is in [0,1] as x is scaled by ('weights_size' - 1)
+ * 
+ * \see rta_window_apply_stride
+ * \see rta_window_apply_in_place_stride
+ * \see rta_window_rounded_apply_stride
+ * \see rta_window_rounded_apply_in_place_stride
+ *
+ * @param weights_vector size is 'weights_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param weights_size is the number of steps
+ * 
+ * @return 1 on success 0 on fail
+ */
+int
+rta_window_hann_weights_stride(
+  rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size);
+
+/** 
+ * Apply a von Hann window on an 'input_vector', calculating the
+ * window on the fly.
+ *
+ * \see  rta_window_hann_weights
+ *
+ * @param input_vector size is 'input_size'
+ * @param input_size is the number of points of the 'input_vector'
+ */
+void 
+rta_window_hann_apply_in_place(rta_real_t * input_vector,
+                               const unsigned int input_size);
+
+/** 
+ * Apply a von Hann window on an 'input_vector', calculating the
+ * window on the fly.
+ *
+ * \see  rta_window_hann_weights_stride
+ *
+ * @param input_vector size is 'input_size'
+ * @param i_stride is 'input_vector' stride
+ * @param input_size is the number of points of the 'input_vector'
+ */
+void 
+rta_window_hann_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size);
+
+/** 
+ * Generate a vector of weights 'weights_vector' to be applied to
+ * another signal vector, on the form of a raised-cosine window. If
+ * 'coef' == 0.08, it is a real Hamming window.
+ *
+ * y = coef + (1-coef)(0.5 - 0.5 * cos(2 * pi * x)),
+ * x is in [0,1] as x is scaled by ('weights_size' - 1)
+ * 
+ * \see rta_window_apply
+ * \see rta_window_apply_in_place
+ * \see rta_window_rounded_apply
+ * \see rta_window_rounded_apply_in_place
+ *
+ * @param weights_vector size is 'weights_size'
+ * @param weights_size is the number of steps
+ * @param coef is the raiser coefficient
+ * 
+ * @return 1 on success 0 on fail
+ */
+int 
+rta_window_hamming_weights(rta_real_t * weights_vector,
+                           const unsigned int weights_size,
+                           const rta_real_t coef);
+
+/** 
+ * Generate a vector of weights 'weights_vector' to be applied to
+ * another signal vector, on the form of a raised-cosine window. If
+ * 'coef' == 0.08, it is a real Hamming window.
+ *
+ * y = coef + (1-coef)(0.5 - 0.5 * cos(2 * pi * x)),
+ * x is in [0,1] as x is scaled by ('weights_size' - 1)
+ *
+ * \see rta_window_apply_stride
+ * \see rta_window_apply_in_place_stride
+ * \see rta_window_rounded_apply_stride
+ * \see rta_window_rounded_apply_in_place_stride
+ *
+ * @param weights_vector size is 'weights_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param weights_size is the number of steps
+ * @param coef is the raiser coefficient
+ * 
+ * @return 1 on success 0 on fail
+ */
+int 
+rta_window_hamming_weights_stride(
+  rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size,
+  const rta_real_t coef);
+
+/** 
+ * Apply a Hamming window on an 'input_vector', calculating the
+ * window on the fly.
+ *
+ * \see  rta_window_hamming_weights
+ * 
+ * @param input_vector size is 'input_size'
+ * @param input_size is the number of points of the 'input_vector'
+ * @param coef is the raiser coefficient
+ */
+void 
+rta_window_hamming_apply_in_place(rta_real_t * input_vector,
+                                  const unsigned int input_size,
+                                  const rta_real_t coef);
+/** 
+ * Apply a Hamming window on an 'input_vector', calculating the
+ * window on the fly.
+ *
+ * \see  rta_window_hamming_weights
+ * 
+ * @param input_vector size is 'input_size'
+ * @param i_stride is 'input_vector' stride
+ * @param input_size is the number of points of the 'input_vector'
+ * @param coef is the raiser coefficient
+ */
+void 
+rta_window_hamming_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t coef);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector' and output the
+ * result as 'output_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ * 
+ * \see rta_window_apply_in_place
+ * 
+ * @param output_vector size is 'output_size'
+ * @param output_size is the number of points of 'output_vector'
+ * @param input_vector size is >= 'output_size'
+ * @param weights_vector size is >= 'output_size'
+ */
+void
+rta_window_apply(rta_real_t * output_vector,
+                 const unsigned int output_size,
+                 const rta_real_t * input_vector,
+                 const rta_real_t * weights_vector);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector' and output the
+ * result as 'output_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ * 
+ * \see rta_window_apply_in_place_stride
+ * 
+ * @param output_vector size is 'output_size'
+ * @param o_stride is 'output_vector' stride
+ * @param output_size is the number of points of 'output_vector'
+ * @param input_vector size is >= 'output_size'
+ * @param i_stride is 'input_vector' stride
+ * @param weights_vector size is >= 'output_size'
+ * @param w_stride is 'weights_vector' stride
+ */
+void
+rta_window_apply_stride(
+  rta_real_t * output_vector, const int o_stride,
+  const unsigned int output_size,
+  const rta_real_t * input_vector, const int i_stride,
+  const rta_real_t * weights_vector, const int w_stride);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ * 
+ * \see  rta_window_hann_weights
+ * \see  rta_window_hamming_weights
+ * 
+ * @param input_vector size is 'input_size'
+ * @param input_size is the number of points of the 'input_vector'
+ * @param weights_vector size must be >= 'input_size'.
+ */
+void 
+rta_window_apply_in_place(rta_real_t * input_vector,
+                          const unsigned int input_size,
+                          const rta_real_t * weights_vector);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ * 
+ * \see  rta_window_hann_weights_stride
+ * \see  rta_window_hamming_weights_stride
+ * 
+ * @param input_vector size is 'input_size'
+ * @param i_stride is 'input_vector' stride
+ * @param input_size is the number of points of the 'input_vector'
+ * @param weights_vector size must be >= 'input_size'.
+ * @param w_stride is 'weights_vector' stride
+ */
+void 
+rta_window_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t * weights_vector, const int w_stride);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'output_vector' and 'weights_vector' may not overlap.
+ *
+ * If 'input_size' != 'weights_size' then the 'weights_vector' indexes
+ * are scaled and rounded. The rounding error may be acceptable is
+ * 'weights_size' is big enough (4096 points for 12 bits resolution) 
+ * or if 'input_size' is a multiple of 'weights_size'. 
+ *
+ * \see rta_window_apply
+ * 
+ * @param output_vector size is 'output_size'
+ * @param output_size is the number of points of the 'output_vector'
+ * @param input_vector size is >= 'output_size'
+ * @param weights_vector is the number of points of the 'input_vector'
+ * @param weights_size is the number of points of the 'weights_vector'
+ */
+void 
+rta_window_rounded_apply(
+  rta_real_t * output_vector, const unsigned int output_size,
+  const rta_real_t * input_vector, 
+  const rta_real_t * weights_vector, const unsigned int weights_size);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'output_vector' and 'weights_vector' may not overlap.
+ *
+ * If 'input_size' != 'weights_size' then the 'weights_vector' indexes
+ * are scaled and rounded. The rounding error may be acceptable is
+ * 'weights_size' is big enough (4096 points for 12 bits resolution) 
+ * or if 'input_size' is a multiple of 'weights_size'. 
+ *
+ * \see rta_window_apply_stride
+ * 
+ * @param output_vector size is 'output_size'
+ * @param o_stride is 'output_vector' stride
+ * @param output_size is the number of points of the 'output_vector'
+ * @param input_vector size is >= 'output_size'
+ * @param i_stride is 'input_vector' stride
+ * @param weights_vector is the number of points of the 'input_vector'
+ * @param w_stride is 'weights_vector' stride
+ * @param weights_size is the number of points of the 'weights_vector'
+ */
+void 
+rta_window_rounded_apply_stride(
+  rta_real_t * output_vector, const int o_stride,
+  const unsigned int output_size,
+  const rta_real_t * input_vector, const int i_stride, 
+  const rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ *
+ * If 'input_size' != 'weights_size' then the 'weights_vector' indexes
+ * are scaled and rounded. The rounding error may be acceptable is
+ * 'weights_size' is big enough (4096 points for 12 bits resolution) 
+ * or if 'input_size' is a multiple of 'weights_size'. 
+ *
+ * \see rta_window_apply
+ * 
+ * @param input_vector size is 'input_size'
+ * @param input_size is the number of points of the 'input_vector'
+ * @param weights_vector size is 'weights_size'
+ * @param weights_size is the number of points of the 'weights_vector'
+ */
+void 
+rta_window_rounded_apply_in_place(rta_real_t * input_vector,
+                                  const unsigned int input_size,
+                                  const rta_real_t * weights_vector,
+                                  const unsigned int weights_size);
+
+/** 
+ * Apply any 'weights_vector' on an 'input_vector'.
+ * 'input_vector' and 'weights_vector' may not overlap.
+ *
+ * If 'input_size' != 'weights_size' then the 'weights_vector' indexes
+ * are scaled and rounded. The rounding error may be acceptable is
+ * 'weights_size' is big enough (4096 points for 12 bits resolution) 
+ * or if 'input_size' is a multiple of 'weights_size'. 
+ *
+ * \see rta_window_apply_stride
+ * 
+ * @param input_vector size is 'input_size'
+ * @param i_stride is 'input_vector' stride
+ * @param input_size is the number of points of the 'input_vector'
+ * @param weights_vector size is 'weights_size'
+ * @param w_stride is 'weights_vector' stride
+ * @param weights_size is the number of points of the 'weights_vector'
+ */
+void 
+rta_window_rounded_apply_in_place_stride(
+  rta_real_t * input_vector, const int i_stride,
+  const unsigned int input_size,
+  const rta_real_t * weights_vector, const int w_stride,
+  const unsigned int weights_size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTA_WINDOW_H_ */
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/rta_configuration.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/rta_configuration.h
new file mode 100644
index 0000000..b2ec624
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/dependencies/rta/rta_configuration.h
@@ -0,0 +1,64 @@
+/**
+ * @file rta_configuration.h
+ * @brief Custom configuration for the rta library
+ *
+ * @copyright
+ * Copyright (C) 2008-2014 by IRCAM – Centre Pompidou.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTA_CONFIGURATIONx_H_
+#define _RTA_CONFIGURATIONx_H_ 1
+
+//#define rta_post post
+#define rta_post printf
+
+/** fts memory allocation */
+#undef rta_malloc
+#define rta_malloc malloc
+
+/** fts memory reallocation */
+#undef rta_realloc
+#define rta_realloc realloc
+
+/** fts memory deallocation */
+#undef rta_free
+#define rta_free free
+
+/** simple floating point precision */
+#undef RTA_REAL_TYPE
+#define RTA_REAL_TYPE RTA_FLOAT_TYPE
+
+/* Apple VecLib for float and double */
+#if defined(__APPLE__) && defined(__MACH__) && \
+(RTA_REAL_TYPE == RTA_FLOAT_TYPE || RTA_REAL_TYPE == RTA_DOUBLE_TYPE)
+#define RTA_USE_VECLIB 1
+#endif
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.cpp
new file mode 100644
index 0000000..209b96b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.cpp
@@ -0,0 +1,187 @@
+/**
+ * @file PiPoCollection.cpp
+ * @author Norbert.Schnell@ircam.fr
+ * @author joseph.larralde@ircam.fr
+ * 
+ * @brief PiPo Module Collection
+ * 
+ * @copyright
+ * Copyright (C) 2013 - 2015 by ISMM IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "PiPoCollection.h"
+
+#include "PiPoHost.h"
+
+#include "PiPoBands.h"
+#include "PiPoBayesFilter.h"
+#include "PiPoBiquad.h"
+#include "PiPoChop.h"
+#include "PiPoConst.h"
+#include "PiPoDct.h"
+#include "PiPoDelta.h"
+#include "PiPoFft.h"
+#include "PiPoFiniteDif.h"
+#include "PiPoGate.h"
+#include "PiPoLpc.h"
+#include "PiPoLpcFormants.h"
+#include "PiPoMedian.h"
+#include "PiPoMel.h"
+#include "PiPoMfcc.h"
+#include "PiPoMoments.h"
+#include "PiPoMvavrg.h"
+#include "PiPoOnseg.h"
+#include "PiPoPeaks.h"
+#include "PiPoScale.h"
+#include "PiPoSelect.h"
+#include "PiPoSlice.h"
+#include "PiPoSum.h"
+
+class PiPoPool : public PiPoModuleFactory
+{
+  class PiPoPoolModule : public PiPoModule
+  {
+  private:
+    PiPo *pipo;
+    std::string instanceName;
+      
+  public:
+    PiPoPoolModule(PiPo *pipo) {
+      this->pipo = pipo;
+    }
+    
+    PiPoPoolModule() {
+      if(this->pipo != NULL) {
+        delete this->pipo;
+        this->pipo = NULL;
+      }
+    }
+  };
+    
+public:
+  PiPoPool(bool defaultPipos = true)
+  {
+    if(defaultPipos)
+    {
+      includeDefaultPiPos();
+    }
+  }
+  
+  ~PiPoPool()
+  {
+    /*for(pipoMap::iterator it = map.begin(); it != map.end(); ++it)
+    {
+      if(it->second != NULL) {
+        delete it->second;
+        it->second = NULL;
+      }
+    }*/
+  }
+
+  void includeDefaultPiPos()
+  {
+    include("bands", new PiPoCreator<PiPoBands>);
+    include("bayesfilter", new PiPoCreator<PiPoBayesFilter>);
+    include("biquad", new PiPoCreator<PiPoBiquad>);
+    include("chop", new PiPoCreator<PiPoChop>);
+    include("const", new PiPoCreator<PiPoConst>);
+    include("dct", new PiPoCreator<PiPoDct>);
+    include("delta", new PiPoCreator<PiPoDelta>);
+    include("fft", new PiPoCreator<PiPoFft>);
+    include("finitedif", new PiPoCreator<PiPoFiniteDif>);
+    include("gate", new PiPoCreator<PiPoGate>);
+    include("lpc", new PiPoCreator<PiPoLpc>);
+    include("lpcformants", new PiPoCreator<PiPoLpcFormants>);
+    include("median", new PiPoCreator<PiPoMedian>);
+    include("mel", new PiPoCreator<PiPoMel>);
+    include("mfcc", new PiPoCreator<PiPoMfcc>);
+    include("moments", new PiPoCreator<PiPoMoments>);
+    include("mvavrg", new PiPoCreator<PiPoMvavrg>);
+    include("onseg", new PiPoCreator<PiPoOnseg>);
+    include("peaks", new PiPoCreator<PiPoPeaks>);
+    include("scale", new PiPoCreator<PiPoScale>);
+    include("select", new PiPoCreator<PiPoSelect>);
+    include("slice", new PiPoCreator<PiPoSlice>);
+    include("sum", new PiPoCreator<PiPoSum>);    
+  }
+  
+  void include(std::string name, PiPoCreatorBase *creator)
+  {
+      map[name] = creator;
+  }
+  
+  PiPo *create(unsigned int index, const std::string &pipoName, const std::string &instanceName, PiPoModule *&module)
+  {
+      pipoMap::iterator it = map.find(pipoName);
+      if (it == map.end()) return NULL;
+      PiPo *ret = it->second->create();
+      module = new PiPoPoolModule(ret);
+      return ret;
+  }
+    
+private:
+  typedef std::map<std::string, PiPoCreatorBase *> pipoMap;
+  pipoMap map;
+};
+
+//==========================================================//
+
+static PiPoPool *factory;
+
+void
+PiPoCollection::init(bool defaultPipos)
+{
+  factory = new PiPoPool(defaultPipos);
+}
+
+void
+PiPoCollection::deinit()
+{
+  if (factory != NULL) delete factory;
+}
+
+void
+PiPoCollection::addToCollection(std::string name, PiPoCreatorBase *creator)
+{
+  factory->include(name, creator);
+}
+
+PiPo *
+PiPoCollection::create(std::string name)
+{
+  PiPoChain *chain = new PiPoChain(NULL, factory);
+  
+  if (chain->parse(name.c_str()) > 0 && chain->instantiate() && chain->connect(NULL))
+  {
+    chain->copyPiPoAttributes();
+    return static_cast<PiPo *>(chain);
+  }
+  return NULL;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.h
new file mode 100644
index 0000000..037bcf2
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoCollection.h
@@ -0,0 +1,109 @@
+/**
+ * @file PiPoCollection.h
+ * @author Norbert.Schnell@ircam.fr
+ * @author joseph.larralde@ircam.fr
+ * 
+ * @brief PiPo Module Collection
+ *
+ * @ingroup pipoapi
+ * 
+ * @copyright
+ * Copyright (C) 2013 - 2015 by ISMM IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_COLLECTION_
+#define _PIPO_COLLECTION_
+
+#include <map>
+#include "PiPo.h"
+
+//============================================================================//
+//============================== PiPo factory ================================//
+//============================================================================//
+
+//------------------------------ PiPoCreatorBase
+class PiPoCreatorBase
+{
+public:
+  //PiPoCreatorBase() {}
+  virtual ~PiPoCreatorBase() {}
+  virtual PiPo *create() = 0;
+};
+
+//------------------------------ PiPoCreator
+template<class T>
+class PiPoCreator : public PiPoCreatorBase
+{
+public:
+    PiPoCreator() {}
+    virtual ~PiPoCreator() {}
+    virtual PiPo *create()
+    {
+        return new T(NULL);
+    }
+};
+
+//============================================================================//
+//============================== PiPo collection =============================//
+//============================================================================//
+
+// interface with the outside world (uses the factory internally)
+
+/**
+ * @brief PiPoCollection class : contains all base PiPo classes
+ * (with ability to hide them from the outside world)
+ * and methods to register new PiPos and get PiPo chains
+ *
+ * \code
+ *
+ * #include "PiPoCollection.h"
+ *
+ * // example : register a new non native PiPo :
+ * PiPoCollection::init();
+ * PiPoCollection::addToCollection("mypipo", new PiPoCreator<MyPiPo>);
+ * PiPo *mychain = PiPoCollection::create("slice:mypipo");
+ *
+ * \endcode
+ *
+ */
+
+class PiPoCollection
+{
+public:
+  static void deinit();
+  static void init(bool defaultPipos = true);
+  //static void init(std::string pipoPath = "");
+  static void addToCollection(std::string name, PiPoCreatorBase *creator);
+  // static void addAlias(std::string alias, std::string name); ----> TODO
+  static PiPo *create(std::string name);
+private:
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoGraph.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoGraph.h
new file mode 100644
index 0000000..c4ab62c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoGraph.h
@@ -0,0 +1,495 @@
+/**
+ * @file PiPoGraph.h
+ * @author Joseph Larralde
+ * 
+ * @brief PiPo dataflow graph class that parses a graph description string and instantiates
+ * the corresponding graph of PiPos (made of PiPoSequence and PiPoParallel instances)
+ *
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2017 by ISMM IRCAM - Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPOHOST_H_
+#define _PIPOHOST_H_
+
+#include <string>
+#include <vector>
+#include <iostream>
+
+#include "PiPoSequence.h"
+#include "PiPoParallel.h"
+#include "PiPoHost.h"
+
+// TODO: roll your own Module, Factory and Op ?
+// --------------------------------------------
+
+// class PiPoModule {
+
+// };
+
+// class PiPoModuleFactory {
+
+// };
+
+// class PiPoOp {
+
+// };
+
+
+
+// NB : this is a work in progress, only performs parsing at the moment
+// TODO : implement actual graph instatiation.
+// TODO: define error return codes for parsing
+
+class PiPoGraph : public PiPo {
+
+  typedef enum PiPoGraphTypeE {
+    undefined = -1, leaf = 0, sequence, parallel
+  } PiPoGraphType;
+
+private:
+  std::string representation;  
+  PiPoGraphType graphType;
+
+  // parallel graphs if isParallel
+  // sequence of graphs otherwise (not sequence of PiPos)
+  // empty if leaf
+  std::vector<PiPoGraph> subGraphs;
+
+  // use op if we are a leaf to parse instanceName and to hold attributes
+  PiPoOp op;
+
+  PiPo *pipo;
+  std::vector<std::string *> attrNames;
+  std::vector<std::string *> attrDescrs;
+  PiPoModuleFactory *moduleFactory;
+
+  // for intermediary level PiPoGraphs : these point to leaves' attrs so that
+  // top level PiPoGraph can add them to itself with this->addAttr
+  std::vector<PiPo::Attr *> attrs;
+
+public:
+  PiPoGraph(PiPo::Parent *parent, PiPoModuleFactory *moduleFactory = NULL) :
+  PiPo(parent)
+  {
+    this->parent = parent;
+    this->moduleFactory = moduleFactory;
+  }
+
+  ~PiPoGraph()
+  {
+    for (unsigned int i = 0; i < attrNames.size(); i++)
+    {
+      delete attrNames[i];
+    }
+
+    for (unsigned int i = 0; i < attrDescrs.size(); i++)
+    {
+      delete attrDescrs[i];
+    }
+
+    this->clear();    
+  }
+
+  void clear()
+  {
+    for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+    {
+      this->subGraphs[i].clear();
+    }
+
+    if (this->op.getPiPo() == NULL)
+    {
+      delete this->pipo;
+    }
+    else
+    {
+      this->op.clear();
+    }
+  };
+
+  //======================== PARSE GRAPH EXPRESSION ==========================//
+
+  // or use const char * ?
+  bool parse(std::string graphStr) {
+
+    //=================== BASIC SYNTAX RULES CHECKING ========================//
+
+    //========== check if we have the right number of '<' and '>' ============//
+
+    int cnt = 0;
+    for (unsigned int i = 0; i < graphStr.length(); ++i)
+    {
+      if (graphStr[i] == '<')
+      {
+        cnt++;
+      }
+      else if (graphStr[i] == '>')
+      {
+        cnt--;
+      }
+    }
+
+    if (cnt != 0)
+    {
+      return false;
+    }
+
+    // TODO : add more syntax checking here ?
+
+    //======= determine the type of graph (leaf, sequence or parallel) =======//
+
+    unsigned int trims = 0;
+    while (graphStr[0] == '<' && graphStr[graphStr.length() - 1] == '>')
+    {
+      graphStr = graphStr.substr(1, graphStr.length() - 2);
+      trims++;
+    }
+    
+    this->representation = graphStr;
+
+    // by default we are a sequence
+    this->graphType = sequence;
+
+    // if we have surrounding "<...>" and first-level commas, we are a parallel
+    if (trims > 0)
+    {
+      int subLevelsCnt = 0;
+      for (unsigned int i = 0; i < graphStr.length(); ++i)
+      {
+        if (graphStr[i] == '<')
+        {
+          subLevelsCnt++;
+        }
+        else if (graphStr[i] == '>')
+        {
+          subLevelsCnt--;
+        }
+        else if (subLevelsCnt == 0 && graphStr[i] == ',')
+        {
+          this->graphType = parallel;
+          break;
+        }
+      }
+    }
+
+    // if we don't have any sequential / parallelism symbol, then we are a leaf
+    if (graphStr.find("<") >= std::string::npos &&
+        graphStr.find(">") >= std::string::npos &&
+        graphStr.find(",") >= std::string::npos &&
+        graphStr.find(":") >= std::string::npos)
+    {
+      this->graphType = leaf;
+    }
+
+    // std::cout << representation << " " << this->graphType << std::endl;
+
+    //====== now fill (or not) subGraphs vector according to graph type ======//
+
+    switch (this->graphType)
+    {
+
+      //========================== leaf graph, we are a single PiPo, trim spaces
+      case leaf:
+      {
+        // trim spaces
+        // TODO: trim tabs and other spaces ?
+        this->representation.erase(
+          std::remove(this->representation.begin(), this->representation.end(), ' '),
+          this->representation.end()
+        );
+
+        // this parses pipoName and instanceName
+        // keep using PiPoOp class for this instead (as in PiPoChain) ?
+        // ===> YES !!! DEFINITELY !!! PiPoOp manages PiPoVersion etc
+        // (LEAVE THIS TO PiPoOp CLASS)
+
+        /*
+        size_t open = this->representation.find('(');
+        size_t close = this->representation.find(')');
+
+        if (open < std::string::npos || close < std::string::npos) {
+          // ok, do nothing
+          if (open > 0 && open < close && close == this->representation.length() - 1) {
+            // ok, parse
+          } else {
+            // parentheses are not in the right place
+          }
+        }
+        */
+
+        this->op.parse(this->representation.c_str());
+
+        // leaf string representation cannot be empty
+        return (graphStr.length() > 0);
+      }
+
+      break;
+
+      //================= sequence of graphs, parse according to ':', <' and '>'
+      case sequence:
+      {
+        int subLevelsCnt = 0;
+        unsigned int lastStartIndex = 0;
+        std::vector< std::pair<unsigned int, unsigned int> > subStrings;
+
+        if (graphStr[0] == '<')
+        {
+          subLevelsCnt++;
+        }
+
+        for (unsigned int i = 1; i < graphStr.length(); ++i)
+        {
+          if (graphStr[i] == ':' && subLevelsCnt == 0)
+          {
+            subStrings.push_back(std::pair<unsigned int, unsigned int>(
+              lastStartIndex, i - lastStartIndex
+            ));
+            lastStartIndex = i + 1;
+          }
+          else if (graphStr[i] == '<')
+          {
+            if (subLevelsCnt == 0)
+            {
+              subStrings.push_back(std::pair<unsigned int, unsigned int>(
+                lastStartIndex, i - lastStartIndex
+              ));
+              lastStartIndex = i;
+            }
+            subLevelsCnt++;
+          }
+          else if (graphStr[i] == '>')
+          {
+            subLevelsCnt--;
+            if (subLevelsCnt == 0)
+            {
+              subStrings.push_back(std::pair<unsigned int, unsigned int>(
+                lastStartIndex, i - lastStartIndex + 1
+              ));
+              lastStartIndex = i + 1;
+            }
+          }
+          else if (graphStr[i] == ',' && subLevelsCnt == 0)
+          {
+            // cannot have first-level commas in a sequence
+            return false;
+          }
+        }
+
+        if (graphStr[graphStr.length() - 1] != '>')
+        {
+          subStrings.push_back(std::pair<unsigned int, unsigned int>(
+            lastStartIndex, graphStr.length() - lastStartIndex
+          ));
+        }
+
+        for (unsigned int i = 0; i < subStrings.size(); ++i)
+        {
+          this->subGraphs.push_back(PiPoGraph());
+          PiPoGraph &g = this->subGraphs[subGraphs.size() - 1];
+
+          if (!g.parse(graphStr.substr(subStrings[i].first, subStrings[i].second)))
+          {
+            return false;
+          }
+        }
+
+        return (subLevelsCnt == 0);
+      }
+
+      break;
+
+      //============================= parallel graphs, parse according to commas
+      case parallel:
+      {
+        int subLevelsCnt = 0;
+        std::vector<unsigned int> commaIndices;
+
+        commaIndices.push_back(0);
+
+        for (unsigned int i = 0; i < graphStr.length(); ++i)
+        {
+          if (graphStr[i] == '<')
+          {
+            subLevelsCnt++;
+          }
+          else if (graphStr[i] == '>')
+          {
+            subLevelsCnt--;
+          }
+          else if (graphStr[i] == ',' && i < graphStr.length() - 1 && subLevelsCnt == 0)
+          {
+            commaIndices.push_back(i + 1);
+          }
+        }
+
+        commaIndices.push_back(graphStr.length() + 1);
+
+        for (unsigned int i = 0; i < commaIndices.size() - 1; ++i)
+        {
+          this->subGraphs.push_back(PiPoGraph());
+          PiPoGraph &g = this->subGraphs[this->subGraphs.size() - 1];
+          unsigned int blockStart = commaIndices[i];
+          unsigned int blockLength = commaIndices[i + 1] - blockStart - 1;
+
+          if (!g.parse(graphStr.substr(blockStart, blockLength)))
+          {
+            return false;
+          }          
+        }
+
+        return (subLevelsCnt == 0);
+      }
+
+      break;
+
+      //===================================================== this never happens
+      default:
+
+      break;
+    }
+
+    return false;
+  }
+
+  //================ ONCE EXPRESSION PARSED, INSTANTIATE OPs =================//
+
+  bool instantiate()
+  {
+    if (this->graphType == leaf)
+    {
+      if (!this->op.instantiate(this->parent, this->moduleFactory))
+      {
+        return false;
+      }
+      else
+      {
+        this->pipo = this->op.getPiPo();
+      }
+    }
+    else if (this->graphType == sequence)
+    {
+      for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+      {
+        if (!this->subGraphs[i].instantiate())
+        {
+          return false;
+        }
+      }
+      
+      this->pipo = new PiPoSequence(this->parent);
+    }
+    else if (this->graphType == parallel)
+    {
+      for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+      {
+        if (!this->subGraphs[i].instantiate())
+        {
+          return false;
+        }
+      }
+
+      this->pipo = new PiPoParallel(this->parent);      
+    }
+
+    return true;
+  }
+
+  void connect( bool topLevel = true)
+  {
+    // add from top level to bottom level (see PiPoBasic)
+    if (this->graphType == sequence)
+    {
+      for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+      {
+        this->pipo->add(this->subGraphs[i].getPiPo());
+        this->subGraphs[i].connect(false);
+      }
+    }
+    else if (this->graphType == parallel)
+    {
+      for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+      {
+        this->pipo->add(this->subGraphs[i].getPiPo());
+        this->subGraphs[i].connect(false);
+      }      
+    }
+
+    if (topLevel)
+    {
+      this->setReceiver(this->pipo);
+    }
+  }
+
+  void setReceiver(PiPo *receiver)
+  {
+    this->setReceiver(receiver);
+  }
+
+  PiPoGraphType getGraphType()
+  {
+    return this->graphType;
+  }
+
+  PiPo *getPiPo()
+  {
+    return this->pipo;
+  }
+
+  // TODO: add an option to get PiPoAttributes only from named modules ?
+  void copyPiPoAttributes(bool topLevel = true)
+  {
+    for (unsigned int i = 0; i < this->subGraphs.size(); ++i)
+    {
+      if (this->subGraphs[i].getGraphType() == leaf)
+      {
+
+      }
+    }
+  }
+
+  // void print() {
+  //   std::cout << this->representation << " " << this->graphType << std::endl;
+  //   for (unsigned int i = 0; i < this->subGraphs.size(); ++i) {
+  //     std::cout << " ";
+  //     this->subGraphs[i].print();
+  //   }
+  // }
+};
+
+//==================== NOW WE CAN WRITE A PIPOHOST CLASS =====================//
+
+// class PiPoHost {
+
+// };
+
+#endif /* _PIPOHOST_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoHost.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoHost.h
new file mode 100644
index 0000000..288fcc4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoHost.h
@@ -0,0 +1,409 @@
+/**
+ *
+ * @file PiPoHost.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief Plugin Interface for Processing Objects host class
+ *
+ * @ingroup pipoapi
+ *
+ * A PiPo host is built around the class PiPoChain that represents a sequence of
+ * PiPo modules piping data into each other. 
+ * See details of the steps there.
+ *
+ * @copyright
+ * Copyright (C) 2012–2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _PIPO_HOST_
+#define _PIPO_HOST_
+
+#include "PiPoSequence.h"
+#include <string>
+#include <vector>
+
+const float PIPO_MIN_SDK_VERSION_REQUIRED = 0.2;
+
+/** abstract base class for a container of a pipo module for PiPoModuleFactory
+ */
+class PiPoModule
+{ 
+public:
+  PiPoModule(void) { };
+  ~PiPoModule(void) { };
+};
+
+class PiPoModuleFactory
+{ 
+public:
+  PiPoModuleFactory(void) { };
+  ~PiPoModuleFactory(void) { };
+  
+  virtual PiPo *create(unsigned int index, const std::string &pipoName, const std::string &instanceName, PiPoModule *&module) = 0;
+};
+
+/** element of pipo chain, points to pipo pipo
+ */
+class PiPoOp
+{ 
+  unsigned int index;
+  std::string pipoName; /// pipo class name
+  std::string instanceName;
+  PiPo *pipo;
+  PiPoModule *module;
+  
+public:
+  PiPoOp(unsigned int index = 0) : pipoName(), instanceName()
+  {
+    this->index = index;
+    this->pipo = NULL;
+    this->module = NULL;
+  };
+  
+//  PiPoOp(const PiPoOp &other) : pipoName(), instanceName()
+//  { 
+//    this->index = other.index;
+//    this->pipoName = other.pipoName;
+//    this->instanceName = other.instanceName;
+//    this->pipo = other.pipo;
+//    this->module = other.module;
+//  };
+  
+  ~PiPoOp(void) { };
+
+  void setParent(PiPo::Parent *parent)
+  {
+    if(this->pipo != NULL)
+      this->pipo->setParent(parent);
+  };
+  
+  void clear(void)
+  {
+    if(this->module != NULL)
+      delete this->module;
+    
+    this->module = NULL;
+    
+    if(this->pipo != NULL)
+      delete pipo;
+    
+    this->pipo = NULL;
+  };
+  
+  /** parse one pipo name, and optional instance name in '(' ')'
+   */
+  void parse(std::string str, size_t &pos)
+  {
+    this->clear();
+    
+    size_t end = str.find_first_of(':', pos);
+    size_t open = str.find_first_of('(', pos);
+    size_t closed = str.find_first_of(')', pos);
+    
+    if(open < std::string::npos && closed < std::string::npos)
+    {
+      this->pipoName = str.substr(pos, open - pos);
+      this->instanceName = str.substr(open + 1, closed - open - 1);
+    }
+    else
+    {
+      this->pipoName = str.substr(pos, end - pos);
+      this->instanceName = this->pipoName;
+    }
+    
+    if(end < std::string::npos)
+      pos = end + 1;
+    else
+      pos = std::string::npos;
+  };
+  
+  bool instantiate(PiPo::Parent *parent, PiPoModuleFactory *moduleFactory)
+  {
+    this->pipo = NULL;
+    this->module = NULL;
+    
+    if(moduleFactory != NULL)
+      this->pipo = moduleFactory->create(index, this->pipoName, this->instanceName, this->module);
+    
+    if(this->pipo != NULL)
+    { // check if version of created pipo is compatible with host
+      if (this->pipo->getVersion() < PIPO_MIN_SDK_VERSION_REQUIRED)
+      {
+	printf("PiPo Host ERROR: created PiPo %s version %f is smaller than minimum required version %f\n",
+	       this->pipoName.c_str(), this->pipo->getVersion(), PIPO_MIN_SDK_VERSION_REQUIRED);
+        //TODO: clean up: destroy unusable pipo
+        return false;
+      }
+      
+      this->pipo->setParent(parent);
+      return true;
+    }
+    
+    return false;
+  };
+
+  void set(unsigned int index, PiPo::Parent *parent, PiPoModuleFactory *moduleFactory, const PiPoOp &other)
+  {
+    this->index = index;
+    this->pipoName = other.pipoName;
+    this->instanceName = other.instanceName;
+    
+    this->instantiate(parent, moduleFactory);
+    
+    if(this->pipo != NULL)
+      this->pipo->cloneAttrs(other.pipo);
+  };
+  
+  PiPo *getPiPo() { return this->pipo; };
+  const char *getInstanceName() { return this->instanceName.c_str(); };
+  bool isInstanceName(const char *str) { return (this->instanceName.compare(str) == 0); };
+};
+
+/** 
+A PiPo host is built around the class PiPoChain that represents a sequence of PiPo modules piping data into each other. 
+
+The PiPoChain is setup with the following steps:
+ 
+1. parse chain definition string by calling parse()
+2. instantiate each PiPoModule in the chain by calling instantiate(), using a PiPoModuleFactory
+3. connect PiPos by calling PiPoSequence::connect()
+ 
+A PiPoChain is itself also a PiPo module, i.e. data processing works the same as for a simple module:
+- the PiPoChain is prepared for processing by calling streamAttributes() on it.
+- data is piped into the PiPoChain with the frames() method.
+
+The host registers as the receiver for the last PiPo module in the PiPoChain.  
+*/
+
+class PiPoChain : public PiPoSequence  //TODO: shouldn't PiPoChain just contain a member seq_ for the sequence to build, instead of inheriting?
+{
+  std::vector<PiPoOp> ops;
+  // these vectors of pointers seem necessary in copyPiPoAttributes
+  std::vector<std::string *> attrNames;
+  std::vector<std::string *> attrDescrs;
+  //PiPo::Parent *parent;	//FIXME: remove? pipo has a parent member already!
+  PiPoModuleFactory *moduleFactory;
+
+public:
+  // constructor
+  PiPoChain(PiPo::Parent *parent, PiPoModuleFactory *moduleFactory = NULL)
+  : PiPoSequence(parent), ops()
+  {
+    this->parent = parent;
+    this->moduleFactory = moduleFactory;
+  };  
+
+  // copy constructor: invoking assignment operator
+  PiPoChain(const PiPoChain &other)
+  : PiPoSequence(NULL), ops()
+  { 
+    *this = other;
+  };  
+
+  // assignment operator
+  const PiPoChain& operator=(const PiPoChain &other)
+  {
+    this->parent = other.parent;
+    this->moduleFactory = other.moduleFactory;
+    
+    unsigned int numOps = static_cast<unsigned int>(other.ops.size());
+    this->ops.clear();
+    this->ops.resize(numOps);
+    
+    for (unsigned int i = 0; i < numOps; i++)
+    {
+      this->ops[i].set(i, this->parent, this->moduleFactory, other.ops[i]); // clone pipos by re-instantiating them
+      this->add(this->ops[i].getPiPo(), false); // rebuild PiPoSequence to point to cloned pipos
+    }
+    
+    this->connect(NULL);
+    this->moduleFactory = NULL;
+
+    return *this;
+  };
+  
+  ~PiPoChain(void) 
+  {
+    for(unsigned int i = 0; i < attrNames.size(); i++) {
+        delete attrNames[i];
+    }
+    for(unsigned int i = 0; i < attrDescrs.size(); i++) {
+        delete attrDescrs[i];
+    }
+    this->clear();
+  };
+  
+
+  /** @name PiPoChain setup methods */
+  /** @{ */
+  
+  void clear()
+  {
+    PiPoSequence::clear();
+    for(unsigned int i = 0; i < this->ops.size(); i++)
+      this->ops[i].clear();
+
+    this->ops.clear();
+  };
+  
+
+  /** parse pipo chain specification from string 
+      
+      creates list of PiPoOp in member ops
+   */
+  size_t parse(const char *str)
+  {
+    std::string pipoChainStr = str;
+    size_t pos = 0;
+    
+    this->clear();
+    
+    for(unsigned int i = 0; pos < std::string::npos; i++)
+    {
+      this->ops.resize(i + 1, i); 
+      this->ops[i].parse(pipoChainStr, pos);
+    }
+    
+    return this->ops.size();
+  };
+  
+  /** go through list of PiPoOp in ops and instantiate PiPoModule using PiPoModuleFactory
+   */
+  bool instantiate(void)
+  {
+    if(this->ops.size() > 0)
+    {
+      for(unsigned int i = 0; i < this->ops.size(); i++)
+      {
+        if(this->ops[i].instantiate(this->parent, this->moduleFactory))
+        { // build sequence by appending modules
+          this->add(this->ops[i].getPiPo());
+        }
+        else
+        {
+          this->clear();
+          return false; 
+        }
+      }
+      return true;
+    }
+    
+    return false;
+  };
+    
+  void copyPiPoAttributes()
+  {
+    for(int iPiPo = 0; iPiPo < this->getSize(); iPiPo++)
+    {
+      PiPo *pipo = this->getPiPo(iPiPo);
+            
+      const char *instanceName = this->getInstanceName(iPiPo);
+      unsigned int numAttrs = pipo->getNumAttrs();
+            
+      for(unsigned int iAttr = 0; iAttr < numAttrs; iAttr++)
+      {
+        PiPo::Attr *attr = pipo->getAttr(iAttr);
+        
+        std::string *attrName = new std::string(instanceName);
+        *attrName += ".";
+        *attrName += attr->getName();
+
+        std::string *attrDescr = new std::string(attr->getDescr());
+        *attrDescr += " (";
+        *attrDescr += instanceName;
+        *attrDescr += ")";
+
+        attrNames.push_back(attrName);
+        attrDescrs.push_back(attrDescr);
+        
+        this->addAttr(this, attrNames[attrNames.size() - 1]->c_str(), attrDescrs[attrDescrs.size() - 1]->c_str(), attr);
+      }
+    }
+  }
+
+  /** @} PiPoChain setup methods */
+
+  /** @name PiPoChain query methods */
+  /** @{ */
+
+  int getSize()
+  {
+    return static_cast<int>(this->ops.size());
+  };
+  
+  int getIndex(const char *instanceName)
+  {
+    for(unsigned int i = 0; i < this->ops.size(); i++)
+    {
+      if(this->ops[i].isInstanceName(instanceName))
+        return i;
+    }
+    
+    return -1;
+  };  
+
+  using PiPoSequence::getPiPo;	// make getPiPo(unsigned int index) visible for this class PiPoChain
+  
+  PiPo *getPiPo(const char *instanceName)
+  {
+    int index = getIndex(instanceName);
+    
+    if(index >= 0)
+      return getPiPo(index);
+    
+    return NULL;
+  };  
+  
+  const char *getInstanceName(unsigned int index) 
+  { 
+    if(index < this->ops.size())
+      return this->ops[index].getInstanceName(); 
+    
+    return NULL;
+  };
+
+  /** @} PiPoChain query methods */
+    
+  /** @name overloaded PiPo methods */
+  /** @{ */
+  /** @name all preparation and processing methods are inherited from PiPoSequence:
+      streamAttributes(), reset(), frames(), finalize() */
+  /** @} end of overloaded PiPo methods */
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoModule.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoModule.h
new file mode 100644
index 0000000..7adac62
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/PiPoModule.h
@@ -0,0 +1,52 @@
+/**
+ * @file PiPoModule.h
+ * @author Riccardo Borghesi
+ *
+ * @brief extension of PiPo for use in host apps
+ * 
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2012-2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MODULE_
+#define _PIPO_MODULE_
+
+#include "PiPo.h"
+#include "PiPoCollection.h"
+
+#define PIPO_MODULE_CLASS(pipoName, pipoClass) \
+     extern "C" const char *getPiPoName(void); \
+     extern "C" PiPoCreatorBase *getPiPoCreator(); \
+     const char *getPiPoName() { return pipoName; }\
+     PiPoCreatorBase *getPiPoCreator() { return new PiPoCreator<pipoClass>; }
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/mimo_host.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/mimo_host.h
new file mode 100644
index 0000000..063c732
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/host/mimo_host.h
@@ -0,0 +1,63 @@
+
+#include "../PiPoHost.h"
+
+/*
+
+  every mimo module inherits the basic stream description and data
+  passing methods (streamAttributes() and frames()) from PiPo, but
+  ignores real-time oriented methods (segment()), and adds iteration
+  for training.
+ */
+
+class mimo_host : public PiPoChain
+{
+    /* for mimo, the streamAttributes() method should give the size of the input data as maxframes */
+    
+    /* push data through mimo modules 
+     */
+    int run_training (PiPoValue *indata, int numframes)
+    {
+	int itercount = 0;
+	size = width_ * height_;
+
+	// first iteration on imput data, modules output passed to our mimo_receiver
+	int status = iterate(0, indata, numframes);
+	
+	while ((this->maxiter() == 0  ||  itercount < this->maxiter())  &&  status == 0)
+	{
+	    itercount++;
+	    status = iterate(itercount, indata, numframes);
+	}
+    }
+	
+    int iterate (int itercount, PiPoValue *data, numframes)
+    {
+	int status = 0;
+
+	for (int buf = 0; buf < numbuffers; buf++)
+	    for (int track = 0; track < numtracks; track++)
+		if ((status = getHead()->train(itercount, buf, track, numframes, data, timetags, varsize)) != 0)
+		    return status;
+		    
+	return status;
+    }
+}
+
+
+/*
+  reveives data iterated upon by training mimo modules
+ */
+class mimo_receiver : mimo
+{
+    PiPoValue *outputdata_;
+
+    int frames (PiPoValue *values)
+    {
+	outputdata_ = values;
+    }
+
+    // store or merge input data transformed by one iteration of training 
+    int train ()
+    {
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPo.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPo.h
new file mode 100644
index 0000000..db48e1f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPo.h
@@ -0,0 +1,1463 @@
+/**
+ * @file PiPo.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief Plugin Interface for Processing Objects
+ *
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2012–2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_
+#define _PIPO_
+
+#include <string>
+#include <vector>
+#include <functional>
+#include <cstring>
+#include <cstdio>
+
+#include <typeinfo>
+#include <map>
+
+#ifdef WIN32
+#define strcasecmp _stricmp
+#define M_PI 3.14159265358979323846264338328 /**< pi */
+#endif
+
+//TODO: unify with maxpipohost.h
+#define PIPO_MAX_LABELS 1024
+
+#ifndef PIPO_SDK_VERSION
+#define PIPO_SDK_VERSION 0.2
+
+#endif
+
+typedef float PiPoValue;
+
+
+struct PiPoStreamAttributes
+{
+  int hasTimeTags;
+  double rate;
+  double offset;
+  unsigned int dims[2];	// width, height (by pipo convention)
+  const char **labels;
+  unsigned int numLabels;
+  bool hasVarSize;
+  double domain;
+  unsigned int maxFrames;
+  int labels_alloc; // < allocated size of labels, -1 for no (outside) allocation
+  
+  PiPoStreamAttributes (int numlabels = -1)
+  {
+    init(numlabels);
+  }
+
+  PiPoStreamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    this->hasTimeTags	= hasTimeTags;
+    this->rate		= rate;
+    this->offset	= offset;
+    this->dims[0]	= width;
+    this->dims[1]	= height;
+    this->labels	= labels;
+    this->numLabels	= width;
+    this->labels_alloc	= -1;	// signals external memory
+    this->hasVarSize	= hasVarSize;
+    this->domain	= domain;
+    this->maxFrames	= maxFrames;
+  }
+
+  void init (int _numlab = -1)
+  {
+    this->hasTimeTags	= false;
+    this->rate		= 1000.0;
+    this->offset	= 0.0;
+    this->dims[0]	= 1;	// width
+    this->dims[1]	= 1;	// height
+    this->labels	= NULL;
+    this->numLabels	= 0;
+    this->labels_alloc	= _numlab;
+    this->hasVarSize	= false;
+    this->domain	= 0.0;
+    this->maxFrames	= 1;
+
+    if (_numlab >= 0)
+      labels = new const char *[_numlab];
+  };
+
+  ~PiPoStreamAttributes()
+  {
+    if (labels  &&  labels_alloc >= 0)
+      delete [] labels;
+  };
+
+  /** append string pointer array to labels array
+   */
+  void concat_labels (const char **_labels, unsigned int _width)
+  {
+    if (this->labels_alloc < 0)
+    {
+      printf("Warning: PiPoStreamAttributes::concat_labels: can't concat %d labels to char ** with %d labels allocated from the outside\n", _width, this->numLabels);
+      _width = 0;
+    }
+    
+    if (this->numLabels + _width > this->labels_alloc)
+    {
+      printf("Warning: PiPoStreamAttributes::concat_labels: label overflow prevented (trying to concat %d to %d used of %d)\n", _width, this->numLabels, this->labels_alloc);
+      _width = this->labels_alloc - this->numLabels;
+    }
+      
+    if (_labels != NULL)
+      memcpy(this->labels + this->numLabels, _labels, _width * sizeof(const char *));
+    else
+      for (unsigned int i = 0; i < _width; i++)
+        //TODO: invent numbered column, beware of memory!
+        this->labels[i + this->numLabels] = "unnamed";
+    
+    this->numLabels += _width;
+  }
+
+  char *to_string (char *str, int len) const
+  {
+    snprintf(str, len,
+	     "hasTimeTags\t= %d\n"
+	     "rate\t\t\t= %f\n"
+	     "offset\t\t= %f\n"
+	     "width\t\t= %d\n"
+	     "height\t\t= %d\n"
+	     "labels\t\t= %s...\n"
+	     "labels_alloc\t= %d\n"
+	     "hasVarSize\t= %d\n"
+	     "domain\t\t= %f\n"
+	     "maxFrames\t= %d\n",
+	     (int) hasTimeTags, rate, offset, dims[0], dims[1],
+	     labels && numLabels > 0  ?  labels[0]  :  "n/a", labels_alloc,
+	     (int) hasVarSize, domain, maxFrames);
+    return str;
+  }
+};
+
+
+class PiPo
+{
+
+/** @mainpage 
+
+PiPo is a simple plugin API for modules processing streams of multi-dimensional data such as audio, audio descriptors, or gesture and motion data. The current version of the interface is limited to unary operations. Each PiPo module receives and produces a single stream. The elements of a stream are time-tagged or regularly sampled scalars, vectors, or two-dimensional matrices. 
+
+More information http://ismm.ircam.fr/PiPo
+
+\section sec_api  PiPo API Overview
+
+The PiPo API consists of an abstract class of a few virtual methods for propagating stream attributes (see below), frames, and additional processing control through a series of modules:
+
+- Propagating stream attributes
+- Propagating frames
+- Reset stream processing
+- Finalize stream processing
+- Propagate the change of a parameter requiring redefining the output stream attributes 
+
+
+\subsection sec_impl Implementation of a New PiPo Module
+
+The minimal module must derive from the class PiPo and implement at least the \ref streamAttributes and \ref frames methods:
+
+- In \ref streamAttributes, all initialisation can be done, as all input stream parameters (attributes) are known. The output stream parameters are passed on to the receiving module via \ref propagateStreamAttributes.
+- In \ref frames, only data processing and, when needed, buffering should be done.  Output frames are passed on with \ref propagateFrames.
+
+If the module can produce additional output data after the end of the input data, it must implement \ref finalize, from within which more calls to \ref propagateFrames can be made, followed by a mandatory call to \ref propagateFinalize.
+
+If the module keeps internal state or buffering, it should implement the \ref reset method to put itself into a clean state.
+
+The utility function \ref signalError can be used to pass an error message to the host.
+
+The utility function \ref signalWarning can be used to pass a warning message to the host.
+
+
+\subsection sec_attr Module Attributes or Parameters
+
+The template class PiPo::Attr permits to define scalar, enum, or variable or fixed size vector attributes of a pipo module that are exposed to the host environment.
+
+The are initialised in the module constructor with a short name, a description, a flag if a change of value means the fundamental stream parameters must be reset (if true, \ref streamAttributes will be called again for the whole chain), and a default value.
+
+Their value can be queried in \ref streamAttributes or \ref frames (in real-time hosts, an attributes value can change over time) with PiPo::Attr::get().
+
+\subsection sec_example Example of a Minimal PiPo Module
+
+
+\code
+
+class PiPoGain : public PiPo
+{
+private:
+  std::vector<PiPoValue> buffer;
+
+public:
+  PiPoScalarAttr<double> factor;
+  
+  PiPoGain (Parent *parent, PiPo *receiver = NULL)
+  : PiPo(parent, receiver), 
+    factor(this, "factor", "Gain Factor", false, 1.0)
+  { }
+  
+  ~PiPoGain (void)
+  { }
+
+  int streamAttributes (bool hasTimeTags, double rate, double offset,
+                        unsigned int width, unsigned int height,
+                        const char **labels, bool hasVarSize,
+                        double domain, unsigned int maxFrames)
+  {
+    // A general pipo can not work in place, we need to create an output buffer
+    buffer.resize(width * height * maxFrames);
+
+    return propagateStreamAttributes(hasTimeTags, rate, offset, width, height,
+                                     labels, hasVarSize, domain, maxFrames);
+  }
+  
+  int frames (double time, double weight, PiPoValue *values,
+              unsigned int size, unsigned int num)
+  {
+    double f = factor.get(); // get gain factor here, as it could change while running
+    PiPoValue *ptr = &buffer[0];
+	
+    for (unsigned int i = 0; i < num; i++)
+    {
+      for (unsigned int j = 0; j < size; j++)
+	ptr[j] = values[j] * f;
+
+      ptr    += size;
+      values += size;
+    }
+    
+    return propagateFrames(time, weight, &buffer[0], size, num);
+  }
+};
+\endcode
+
+
+\section sec_api_details PiPo API Details
+
+\subsection sec_stream_attr PiPo Stream Attributes
+
+PiPo streams are a sequences of frames characterized by a set of attributes. A PiPo module defines the attributes of its output stream when receiving the attributes of the input stream.
+
+Each module can configure its internal state depending on the attributes of the input stream (e.g. memory allocation and pre-calculated state variables) before propagating its output stream attributes to the next module.
+
+This way, the attributes of the input stream are propagated through a series of PiPo modules before starting the actual stream processing.
+
+In summary, a PiPo stream is described by the following attributes:
+
+- a boolean representing whether the elements of the stream are time-tagged
+- frame rate (highest average rate for time-tagged streams)
+- lag of the output stream relative to the input
+- frame width (also number of channels or data matrix columns)
+- frame height (or number of matrix rows)
+- labels (for the frame channels or columns)
+- a boolean representing whether the frames have a variable height (respecting the given frame height as maximum)
+- extent of a frame in the given domain (e.g. duration or frequency range)
+- maximum number of frames in a block exchanged between two modules 
+
+*/
+
+    
+public:
+  class Attr;
+  template<class, std::size_t> class AttrArray; // declare this helper template as PiPo::AttrArray
+  
+  /***********************************************
+   *
+   *  PiPo Parent
+   * TODO: rename PiPoHost ?
+   */
+
+  class Parent
+  {
+  public:
+    /** called by pipo when an attribute with "changesstream" is set */
+    virtual void streamAttributesChanged(PiPo *pipo, PiPo::Attr *attr) { };
+    
+    /** called by pipo to signal error in parameters */
+    virtual void signalError(PiPo *pipo, std::string errorMsg) { };
+
+    /** called by pipo to signal warning in parameters */
+    virtual void signalWarning(PiPo *pipo, std::string errorMsg) { };
+  };
+  
+protected:
+  Parent *parent;
+  std::vector<PiPo *> receivers; /**< list of receivers */
+
+private:
+  std::vector<Attr *> attrs; /**< list of attributes */
+#if __cplusplus >= 201103L  &&  !defined(WIN32)
+  constexpr static const float sdk_version = PIPO_SDK_VERSION; /**< pipo SDK version (for inspection) */
+#endif
+  
+public:
+  PiPo(Parent *parent, PiPo *receiver = NULL)
+  : receivers(), attrs()
+  {
+    this->parent = parent;
+    
+    if (receiver != NULL)
+      this->receivers.push_back(receiver);
+  };
+  
+  PiPo(const PiPo &other)
+  {
+    this->parent = other.parent;
+  }
+  
+  virtual ~PiPo(void) { };
+
+  /** get version of SDK as a major.minor float (so that host can
+   * check if a pipo was compiled with correct version of PiPo.h)
+   */
+#ifdef PIPO_TESTING
+  virtual float getVersion() // only for unit tests: allow to override version to simulate an out-of-date pipo module
+#else
+  static  float getVersion()
+#endif
+  {
+#if __cplusplus >= 201103L  &&  !defined(WIN32)
+    printf("pipo::getVersion -> %f\n", PiPo::sdk_version);
+    return PiPo::sdk_version;
+#else
+    printf("pipo::getVersion -> %f\n", PIPO_SDK_VERSION);
+    return PIPO_SDK_VERSION;
+#endif
+  };
+
+  /**
+   * @brief Sets PiPo parent.
+   *
+   * @param parent PiPo parent
+   */
+  virtual void setParent(Parent *parent) { this->parent = parent; };
+  
+  /**
+   * @brief Propagates a module's output stream attributes to its receiver.
+   *
+   * This method is called in the streamAttributes() method of a PiPo module.
+   *
+   * @param hasTimeTags a boolean representing whether the elements of the stream are time-tagged
+   * @param rate the frame rate (highest average rate for time-tagged streams)
+   * @param offset the lag of the output stream relative to the input
+   * @param width the frame width (also number of channels or data matrix columns)
+   * @param height the frame height (or number of matrix rows)
+   * @param labels optional labels for the frames' channels or columns
+   * @param hasVarSize a boolean representing whether the frames have a variable height (respecting the given frame height as maximum)
+   * @param domain extent of a frame in the given domain (e.g. duration or frequency range)
+   * @param maxFrames maximum number of frames in a block exchanged between two modules
+   * @return used as return value of the calling method
+   */
+  int propagateStreamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    int ret = 0;
+    
+    for (unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = this->receivers[i]->streamAttributes(hasTimeTags, rate, offset, width, height, labels, hasVarSize, domain, maxFrames);
+      
+      if (ret < 0)
+        break;
+    }
+    
+    return ret;
+  };
+  
+  /**
+   * @brief Propagates the reset control event.
+   *
+   * This method is called in the reset() method of a PiPo module.
+   *
+   * @return used as return value of the calling method
+   */
+  int propagateReset(void)
+  {
+    int ret = -1;
+    
+    for (unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = this->receivers[i]->reset();
+      
+      if (ret < 0)
+        break;
+    }
+    
+    return ret;
+  }
+  
+  /**
+   * @brief Propagates a module's output frames to its receiver.
+   *
+   * This method is called in the frames() method of a PiPo module.
+   *
+   * @param time	time-tag for a single frame or a block of frames
+   * @param weight	weight for this frame (currently unused)
+   * @param values	interleaved frames values, row by row (interleaving channels or columns), frame by frame
+   * @param size	total size of each frame (number of values = width * height)
+   * @param num		number of frames
+   * @return		used as return value of the calling method
+   */
+  int propagateFrames(double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+    int ret = -1;
+    
+    for (unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = this->receivers[i]->frames(time, weight, values, size, num);
+      
+      if (ret < 0)
+        break;
+    }
+    
+    return ret;
+  }
+  
+  /**
+   * @brief Propagates the finalize control event.
+   *
+   * This method is called in the finalize() method of a PiPo module.
+   *
+   * @return used as return value of the calling method
+   */
+  int propagateFinalize(double inputEnd)
+  {
+    int ret = -1;
+    
+    for (unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = this->receivers[i]->finalize(inputEnd);
+      
+      if (ret < 0)
+        break;
+    }
+    
+    return ret;
+  }
+  
+  /**
+   * @brief Gets a PiPo modules receiver (call only by the PiPo host)
+   *
+   * @return receiver PiPo module receiving this module's output stream
+   */
+  PiPo *getReceiver(unsigned int index = 0)
+  {
+    if (index < this->receivers.size())
+      return this->receivers[index];
+    
+    return NULL;
+  };
+  
+  /**
+   * @brief Sets a PiPo modules receiver (call only by the PiPo host)
+   *
+   * @param receiver PiPo module receiving this module's output stream
+   * @param add receiver (versus clear and set first)
+   */
+  virtual void setReceiver(PiPo *receiver, bool add = false)
+  {
+    if (add)
+    {
+      if (receiver != NULL)
+        this->receivers.push_back(receiver);
+    }
+    else
+    {
+      this->receivers.clear();
+      
+      if (receiver != NULL)
+        this->receivers.push_back(receiver);
+    };
+  }
+  
+  /**
+   * @brief Configures a PiPo module according to the input stream attributes and propagate output stream attributes
+   *
+   * PiPo module:
+   * Any implementation of this method requires a propagateStreamAttributes() method call and returns its return value, typically like this:
+   *
+   * \code 
+   *	return this->propagateStreamAttributes(hasTimeTags, rate, offset, width, height, labels, hasVarSize, domain, maxFrames);
+   * \endcode
+   *
+   * PiPo host:
+   * A terminating receiver module provided by a PiPo host handles the final output stream attributes and usally returns 0.
+   *
+   * @param hasTimeTags a boolean representing whether the elements of the stream are time-tagged
+   * @param rate the frame rate (highest average rate for time-tagged streams, sample rate for audio input)
+   * @param offset the lag of the output stream relative to the input
+   * @param width the frame width (number of channels for audio or data matrix columns)
+   * @param height the frame height (or number of matrix rows, always 1 for audio)
+   * @param labels optional labels for the frames' channels or columns (can be NULL)
+   * @param hasVarSize a boolean representing whether the frames have a variable height (respecting the given frame height as maximum)
+   * @param domain extent of a frame in the given domain (e.g. duration or frequency range)
+   * @param maxFrames maximum number of frames in a block exchanged between two modules (window size for audio)
+   * @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+   */
+  virtual int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames) = 0;
+  
+  /**
+   * @brief Resets processing (optional)
+   *
+   * PiPo module:
+   * Any implementation of this method requires a propagateReset() method call and returns its return value.
+   *
+   * PiPo host:
+   * A terminating receiver module provided by a PiPo host usally simply returns 0.
+   *
+   * @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+   */
+  virtual int reset(void)
+  {
+    return this->propagateReset();
+  };
+  
+  /**
+   * @brief Processes a single frame or a block of frames
+   *
+   * PiPo module:
+   * An implementation of this method may call propagateFrames(), typically like this:
+   *
+   * \code
+   *	return this->propagateFrames(time, weight, values, size, num);
+   * \endcode
+   *
+   * PiPo host:
+   * A terminating receiver module provided by a PiPo host handles the received frames and usally returns 0.
+   *
+   * @param time time-tag for a single frame or a block of frames
+   * @param weight weight associated to frame or block
+   * @param values interleaved frames values, row by row (interleaving channels or columns), frame by frame
+   TODO: should be const!!!
+   * @param size total size of each of all frames (size = number of elements = width * height = number of channels for audio)
+   * @param num number of frames (number of samples for audio input)
+   * @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+   */
+  virtual int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num) = 0;
+  
+  /**
+   * @brief Signals segment start or end
+   *
+   * PiPo module:
+   * An implementation of this method calls propagateFrames() at the end of the segment.
+   *
+   * In the case of two sucessive calls to segment(), the second call implitly ends the last segment.
+   *
+   * If the module did not receive any frames - at all or since the last segment end -, the method should
+   * return 0 to the call segment(0.0, end) without calling propagateFrames().
+   * This permits the host to check whether a module implements the segment method or not.
+   *
+   * \code
+   
+   if(this->started)
+   {
+   // do what is to be done to finalize the segment description
+   this->propagateFrames(time, weight, values, size, num);
+   this->started = false;
+   }
+   
+   if(start)
+   {
+   // do what is to be done to initialize the segment description
+   }
+   
+   return 0;
+
+   * \endcode
+   *
+   * @param time time of segment start of end
+   * @param start flag, true for segment start, false for segment end
+   * @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+   */
+  virtual int segment(double time, bool start) { return -1; };
+  
+  /**
+   * @brief Finalizes processing (optinal)
+   *
+   * PiPo module:
+   * Any implementation of this method requires a propagateFinalize() method call and returns its return value.
+   *
+   * PiPo host:
+   * A terminating receiver module provided by a PiPo host usally simply returns 0.
+   *
+   * @param inputEnd end time of the finalized input stream
+   * @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+   */
+  virtual int finalize(double inputEnd)
+  {
+    return this->propagateFinalize(inputEnd);
+  };
+  
+  void streamAttributesChanged(Attr *attr)
+  {
+    if (this->parent != NULL)
+      this->parent->streamAttributesChanged(this, attr);
+  }
+
+  /** signal error message to be output by the host
+   */
+  void signalError(std::string errorMsg)
+  {
+    if (this->parent != NULL)
+      this->parent->signalError(this, errorMsg);
+    else
+      printf("PiPo::signalError (not parent): %s\n", errorMsg.c_str());
+  }
+
+    /** signal warning message to be output by the host
+   */
+  void signalWarning(std::string errorMsg)
+  {
+    if (this->parent != NULL)
+      this->parent->signalWarning(this, errorMsg);
+    else
+      printf("PiPo::signalWarning (not parent): %s\n", errorMsg.c_str());
+  }
+
+
+  
+  /***********************************************
+   *
+   *  PiPo Attributes
+   *
+   */
+public:
+  enum Type { Undefined, Bool, Enum, Int, Float, Double, String };
+
+  // dummy enum used for specialization of templates
+  enum Enumerate { };
+    
+  // meta-type a la Max :
+  class Atom
+  {
+  private:
+      PiPo::Type type;
+      union _data {
+          const char *str;
+          double dbl;
+          int itg;
+      } data;
+  public:
+      Atom(const char *s)   { this->type = String; this->data.str = s; }
+      Atom(double d)        { this->type = Double; this->data.dbl = d; }
+      Atom(int i)           { this->type = Int; this->data.itg = i; }
+      friend bool operator==(Atom &at1, Atom &at2)
+      {
+          return ((at1.isNumber() && at2.isNumber() && at1.getDouble() == at2.getDouble())
+                  || (at1.type == String && at1.type == at2.type && strcmp(at1.getString(), at2.getString()) == 0));
+      }
+      friend bool operator!=(Atom &at1, Atom &at2)
+      {
+          return !(at1 == at2);
+      }
+      bool          isNumber()  { return (type == Int || type == Double); }
+      bool          isString()  { return type == String; }
+      PiPo::Type    getType()   { return type; }
+      int           getInt()    { return ((type == Int) ? this->data.itg : ((type == Double) ? (int)(this->data.dbl) : 0)); }
+      double        getDouble() { return ((type == Double) ? this->data.dbl : ((type == Int) ? (double)(this->data.itg) : 0.)); }
+      const char *  getString() { return ((type == String) ? this->data.str : ""); }
+  };
+  
+  class Attr
+  {
+  private:
+    PiPo *pipo; /**< owner PiPo */
+    unsigned int index;
+    const char *name; /**< attribute name */
+    const char *descr; /**< short description */
+    enum Type type;
+    bool changesStream;
+    
+  public:
+    /**
+     * PiPo attribute base class
+     */
+    Attr(PiPo *pipo, const char *name, const char *descr, const std::type_info *type, bool changesStream)
+    {
+      this->pipo = pipo;
+      this->index = static_cast<unsigned int>(pipo->attrs.size());
+      this->name = name;
+      this->descr = descr;
+      
+      if (type == &typeid(bool))
+        this->type = Bool;
+      else if (type == &typeid(enum Enumerate))
+        this->type = Enum;
+      else if (type == &typeid(int))
+        this->type = Int;
+      else if (type == &typeid(float))
+        this->type = Float;
+      else if (type == &typeid(double))
+        this->type = Double;
+      else if (type == &typeid(std::string) || type == &typeid(const char *))
+        this->type = String;
+      else
+        this->type = Undefined;
+      
+      this->changesStream = changesStream;
+      
+      pipo->attrs.push_back(this);
+    };
+    
+    ~Attr(void) { };
+    
+    void setIndex(unsigned int index) { this->index = index; };
+    void setName(const char *name) { this->name = name; };
+    void setDescr(const char *descr) { this->descr = descr; };
+    
+    unsigned int getIndex(void) { return this->index; };
+    const char *getName(void) { return this->name; };
+    const char *getDescr(void) { return this->descr; };
+    enum Type getType(void) { return this->type; };
+    bool doesChangeStream(void) { return this->changesStream; };
+    
+    virtual void clone(Attr *other) = 0;
+    
+    virtual unsigned int setSize(unsigned int size) = 0;
+    virtual unsigned int getSize(void) = 0;
+    
+    virtual void set(unsigned int i, int val, bool silently = false) = 0;
+    virtual void set(unsigned int i, double val, bool silently = false) = 0;
+    virtual void set(unsigned int i, const char *val, bool silently = false) = 0;
+    virtual int getInt(unsigned int i) = 0;
+    virtual double getDbl(unsigned int i) = 0;
+    virtual const char *getStr(unsigned int i) = 0;
+    
+    virtual std::vector<const char *> *getEnumList(void) { return NULL; };
+    
+    void changed(bool silently = false) { if (!silently && this->changesStream) this->pipo->streamAttributesChanged(this); };
+    void rename(const char *name) { this->name = name; };
+  };
+  
+  /**
+   * PiPo enumerator attribute base class
+   */
+  class EnumAttr : public Attr
+  {
+    struct strCompare : public std::binary_function<const char *, const char *, bool> {
+      bool operator() (const char *str1, const char *str2) const { return std::strcmp(str1, str2) < 0; }
+    };
+    
+    std::vector<const char *>enumList;
+    std::vector<const char *>enumListDoc;
+    std::map<const char *, unsigned int, strCompare> enumMap;
+    
+  public:
+    EnumAttr(PiPo *pipo, const char *name, const char *descr, const std::type_info *type, bool changesStream) :
+    Attr(pipo, name, descr, type, changesStream),
+    enumList(), enumListDoc(), enumMap()
+    {
+    };
+    
+    void addEnumItem(const char *item, const char *doc = "undocumented")
+    {
+      unsigned int idx = static_cast<unsigned int>(this->enumList.size());
+      
+      this->enumList.push_back(item);
+      this->enumListDoc.push_back(doc);
+      this->enumMap[item] = idx;
+    };
+    
+    std::vector<const char *> *getEnumList(void)
+    {
+      return &this->enumList;
+    };
+    
+    int getEnumIndex(const char *tag)
+    {
+      if (tag != NULL && this->enumMap.find(tag) != this->enumMap.end())
+        return this->enumMap[tag];
+      
+      return -1;
+    };
+    
+    const char *getEnumTag(unsigned int idx)
+    {
+      if (idx < this->enumList.size())
+        return this->enumList[idx];
+      
+      return NULL;
+    };
+    
+  protected:
+    int clipEnumIndex(int index)
+    {
+      if (index < 0)
+        index = 0;
+      else if (index >= static_cast<int>(this->enumList.size()))
+        index = static_cast<int>(this->enumList.size() - 1);
+      
+      return index;
+    };
+  };
+  
+  /**
+   * @brief att attribute
+   */
+  void addAttr(PiPo *pipo, const char *name, const char *descr, Attr *attr, bool clear = false)
+  {
+    if (clear)
+      this->attrs.clear();
+    
+    /* overwrite index, name, and description */
+    attr->setIndex(static_cast<unsigned int>(pipo->attrs.size()));
+    attr->setName(name);
+    attr->setDescr(descr);
+    
+    /* add to attr list */
+    this->attrs.push_back(attr);
+  };
+  
+  /**
+   * @brief Gets PiPo attribute by index
+   *
+   * @param index attribute index
+   * @return reference to PiPo attribute (NULL for invalid attribute index)
+   */
+  Attr *getAttr(unsigned int index)
+  {
+    if (index < this->attrs.size())
+      return this->attrs[index];
+    
+    return NULL;
+  };
+  
+  /**
+   * @brief Gets PiPo attribute by name
+   *
+   * @param name attribute name
+   * @return reference to PiPo attribute (NULL for invalid attribute name)
+   */
+  Attr *getAttr(const char *name)
+  {
+    for (unsigned int i = 0; i < this->attrs.size(); i++)
+    {
+      if (strcasecmp(this->attrs[i]->getName(), name) == 0)
+        return this->attrs[i];
+    }
+    
+    return NULL;
+  };
+
+  /**
+   * @brief Gets PiPo attribute by qualified name
+   *
+   * @param piponame pipo module name in pipo chain
+   * @param name attribute name
+   * @return reference to PiPo attribute (NULL for invalid attribute name)
+   */
+  Attr *getAttr(const char *piponame, const char *name)
+  {
+    std::string qname(piponame);
+
+    qname += ".";
+    qname += name;
+
+    return getAttr(qname.c_str());
+  };
+  
+  bool setAttr(unsigned int index, int value, bool silently = false)
+  {
+    Attr *attr = getAttr(index);
+    
+    if (attr != NULL)
+    {
+      attr->set(0, value, silently);
+      
+      return true;
+    }
+    
+    return false;
+  }
+  
+  bool setAttr(unsigned int index, int *values, unsigned int numValues, bool silently = false)
+  {
+    Attr *attr = getAttr(index);
+    
+    if (attr != NULL)
+    {
+      unsigned int size = attr->getSize();
+      
+      if (numValues > size)
+        numValues = size;
+      
+      for (unsigned int i = 0; i < numValues; i++)
+        attr->set(i, values[i], silently);
+      
+      return true;
+    }
+    
+    return false;
+  }
+  
+  bool setAttr(unsigned int index, double val, bool silently = false)
+  {
+    Attr *attr = getAttr(index);
+    
+    if (attr != NULL)
+    {
+      attr->set(0, val, silently);
+
+      return true;
+    }
+    
+    return false;
+  }
+  
+  bool setAttr(unsigned int index, double *values, unsigned int numValues, bool silently = false)
+  {
+    Attr *attr = getAttr(index);
+    
+    if (attr != NULL)
+    {
+      unsigned int size = attr->getSize();
+      
+      if (numValues > size)
+        numValues = size;
+      
+      for (unsigned int i = 0; i < numValues; i++)
+        attr->set(i, values[i], true);
+      
+      attr->changed(silently);
+
+      return true;
+    }
+    
+    return false;
+  }
+  
+  /**
+   * @brief Gets number of attributes
+   *
+   * @return number of attributes
+   */
+  unsigned int getNumAttrs(void)
+  {
+    return static_cast<unsigned int>(this->attrs.size());
+  };
+  
+  /**
+   * @brief Copies current parent and attributes values
+   *
+   * @param other PiPo to clone
+   */
+  void cloneAttrs(PiPo *other)
+  {
+    for (unsigned int i = 0; i < other->attrs.size(); i++)
+      this->attrs[i]->clone(other->attrs[i]);
+  };
+  
+  /**
+   * @brief Copies current value(s) of given attribute
+   *
+   * @param attr attribute to clone from
+   */
+  void cloneAttr(PiPo::Attr *attr)
+  {
+    unsigned int index = attr->getIndex();
+    
+    this->attrs[index]->clone(attr);
+  };
+};
+
+
+
+/***********************************************
+ *
+ *  Scalar Attribute
+ *
+ */
+template <typename TYPE>
+class PiPoScalarAttr : public PiPo::Attr
+{
+private:
+  TYPE value;
+  
+public:
+  PiPoScalarAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, TYPE initVal = (TYPE)0) :
+  Attr(pipo, name, descr, &typeid(TYPE), changesStream)
+  {
+    this->value = initVal;
+  }
+  
+  void set(TYPE value, bool silently = false) { this->value = value; this->changed(silently); };
+  TYPE get(void) { return this->value; };
+  
+  void clone(Attr *other) { this->value = (dynamic_cast<PiPoScalarAttr<TYPE> *>(other))->value; };
+  
+  unsigned int setSize(unsigned int size) { return this->getSize(); };
+  unsigned int getSize(void) { return 1; };
+  
+  void set(unsigned int i, int val, bool silently = false) { if(i == 0) this->value = (TYPE)val; this->changed(silently); };
+  void set(unsigned int i, double val, bool silently = false) { if(i == 0) this->value = (TYPE)val; this->changed(silently); };
+  void set(unsigned int i, const char *val, bool silently = false) { };
+  
+  int getInt(unsigned int i = 0) { return (int)this->value; };
+  double getDbl(unsigned int i = 0) { return (double)this->value; };
+  const char *getStr(unsigned int i = 0) { return NULL; };
+};
+
+template <>
+class PiPoScalarAttr<const char *> : public PiPo::Attr
+{
+private:
+    const char * value;
+    
+public:
+    PiPoScalarAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, const char * initVal = (const char *)0) :
+    Attr(pipo, name, descr, &typeid(const char *), changesStream)
+    {
+        this->value = initVal;
+    }
+    
+    void set(const char * value) { this->value = value; };
+    const char *get(void) { return this->value; };
+    
+    void clone(Attr *other) { *this = *(static_cast<PiPoScalarAttr<const char *> *>(other)); };
+    
+    unsigned int setSize(unsigned int size) { return this->getSize(); };
+    unsigned int getSize(void) { return 1; };
+    
+    void set(unsigned int i, int val, bool silently = false) {  };
+    void set(unsigned int i, double val, bool silently = false) {  };
+    void set(unsigned int i, const char *val, bool silently = false) { if(i == 0) this->value = val; this->changed(silently); };
+    
+    int getInt(unsigned int i = 0) { return 0; };
+    double getDbl(unsigned int i = 0) { return 0; };
+    const char *getStr(unsigned int i = 0) { return this->value; };
+};
+
+template <>
+class PiPoScalarAttr<enum PiPo::Enumerate> : public PiPo::EnumAttr
+{
+private:
+  unsigned int value;
+  
+public:
+  PiPoScalarAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, unsigned int initVal = NULL) :
+  EnumAttr(pipo, name, descr, &typeid(enum PiPo::Enumerate), changesStream)
+  {
+    this->value = initVal;
+  };
+  
+  void set(unsigned int value, bool silently = false) { this->value = clipEnumIndex(value); this->changed(silently); };
+  void set(const char *value, bool silently = false) { this->value = this->getEnumIndex(value); this->changed(silently); };
+  unsigned int get(void) { return this->value; };
+  
+  void clone(Attr *other) { this->value = (dynamic_cast<PiPoScalarAttr<enum PiPo::Enumerate> *>(other))->value; };
+
+  unsigned int setSize(unsigned int size) { return this->getSize(); };
+  unsigned int getSize(void) { return 1; };
+  
+  void set(unsigned int i, int val, bool silently = false) { if(i == 0) this->value = clipEnumIndex((unsigned int)val); this->changed(silently); };
+  void set(unsigned int i, double val, bool silently = false) { if(i == 0) this->value = clipEnumIndex((unsigned int)val); this->changed(silently); };
+  void set(unsigned int i, const char *val, bool silently = false) { if(i == 0) this->value = getEnumIndex(val); this->changed(silently); };
+  
+  int getInt(unsigned int i = 0) { return (int)this->value; };
+  double getDbl(unsigned int i = 0) { return (double)this->value; };
+  const char *getStr(unsigned int i = 0) { return this->getEnumTag(this->value); };
+};
+
+/***********************************************
+ *
+ *  Fixed Size Array Attribute
+ *
+ */
+/* waiting for C++11 */
+template< class TYPE, std::size_t SIZE>
+class PiPo::AttrArray
+{
+  TYPE values[SIZE];
+  static const int size = SIZE;
+  
+public:
+  TYPE const& operator [] (unsigned int index) const { return this->values[index]; };
+  TYPE& operator [] (unsigned int index) { return &this->values[index]; };
+};
+
+template <typename TYPE, unsigned int SIZE>
+class PiPoArrayAttr : public PiPo::Attr, public PiPo::AttrArray<TYPE, SIZE>
+{
+public:
+  PiPoArrayAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, TYPE initVal = (TYPE)0) :
+  Attr(pipo, name, descr, &typeid(TYPE), changesStream),
+  PiPo::AttrArray<TYPE, SIZE>()
+  {
+    for (unsigned int i = 0; i < SIZE; i++)
+      (*this)[i] = initVal;
+  } 
+  void clone(Attr *other) { *(dynamic_cast<PiPo::AttrArray<TYPE, SIZE> *>(this)) = *(dynamic_cast<PiPo::AttrArray<TYPE, SIZE> *>(other)); };
+
+  unsigned int setSize(unsigned int size) { return this->getSize(); };
+  unsigned int getSize(void) { return SIZE; }
+  
+  void set(unsigned int i, int val, bool silently = false)
+  {
+    if (i < SIZE)
+      (*this)[i] = (TYPE)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, double val, bool silently = false)
+  {
+    if (i < SIZE)
+      (*this)[i] = (TYPE)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, const char *val, bool silently = false) { };
+  
+  int getInt(unsigned int i)
+  {
+    if (i >= SIZE)
+      i = SIZE - 1;
+    
+    return (int)(*this)[i];
+  };
+  
+  double getDbl(unsigned int i)
+  {
+    if (i >= SIZE)
+      i = SIZE - 1;
+    
+    return (double)(*this)[i];
+  };
+  
+  const char *getStr(unsigned int i)
+  {
+    if (i < SIZE)
+      i = SIZE - 1;
+    
+    return (const char *)(*this)[i];
+  };
+};
+
+template <unsigned int SIZE>
+class PiPoArrayAttr<enum PiPo::Enumerate, SIZE> : public PiPo::EnumAttr, public PiPo::AttrArray<unsigned int, SIZE>
+{
+public:
+  PiPoArrayAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, unsigned int initVal = NULL) :
+  EnumAttr(pipo, name, descr, &typeid(enum PiPo::Enumerate), changesStream),
+  PiPo::AttrArray<unsigned int, SIZE>()
+  {
+    for (unsigned int i = 0; i < this->size; i++)
+      this->value[i] = initVal;
+  }
+  
+  ~PiPoArrayAttr(void) { free(this->value); }
+  
+  void clone(Attr *other) { *(dynamic_cast<PiPo::AttrArray<unsigned int, SIZE> *>(this)) = *(dynamic_cast<PiPo::AttrArray<unsigned int, SIZE> *>(other)); };
+
+  unsigned int setSize(unsigned int size) { return this->getSize(); };
+  unsigned int getSize(void) { return SIZE; }
+  
+  void set(unsigned int i, int val, bool silently = false)
+  {
+    if (i < SIZE)
+      (*this)[i] = (unsigned int)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, double val, bool silently = false)
+  {
+    if (i < SIZE)
+      (*this)[i] = (unsigned int)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, const char *val, bool silently = false)
+  {
+    if (i < SIZE)
+      (*this)[i] = getEnumIndex(val);
+    
+    this->changed(silently);
+  };
+  
+  int getInt(unsigned int i)
+  {
+    if (i >= SIZE)
+      i = SIZE - 1;
+    
+    return (int)(*this)[i];
+  };
+  
+  double getDbl(unsigned int i)
+  {
+    if (i >= SIZE)
+      i = SIZE - 1;
+    
+    return (double)(*this)[i];
+  };
+  
+  const char *getStr(unsigned int i)
+  {
+    if (i < SIZE)
+      return this->getEnumTag(this->value[i]);
+    
+    return NULL;
+  };
+};
+
+/***********************************************
+ *
+ *  Var Size Attribute
+ *
+ */
+template <typename TYPE>
+class PiPoVarSizeAttr : public PiPo::Attr, public std::vector<TYPE>
+{
+public:
+  PiPoVarSizeAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, unsigned int size = 0, TYPE initVal = (TYPE)0) :
+  Attr(pipo, name, descr, &typeid(TYPE), changesStream),
+  std::vector<TYPE>(size, initVal)
+  {
+  }
+  
+  void clone(Attr *other) { *(dynamic_cast<std::vector<TYPE> *>(this)) = *(dynamic_cast<std::vector<TYPE> *>(other)); };
+
+  unsigned int setSize(unsigned int size) { this->resize(size, (TYPE)0); return size; };
+  unsigned int getSize(void) { return static_cast<unsigned int>(this->size()); }
+  
+  void set(unsigned int i, int val, bool silently = false)
+  {
+    if (i >= this->size())
+      setSize(i + 1);
+    
+    (*this)[i] = (TYPE)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, double val, bool silently = false)
+  {
+    if (i >= this->size())
+      setSize(i + 1);
+    
+    (*this)[i] = (TYPE)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, const char *val, bool silently = false) { };
+  
+  int getInt(unsigned int i)
+  {
+    if (i >= this->size())
+      i = static_cast<unsigned int>(this->size()) - 1;
+    
+    return static_cast<int>((*this)[i]);
+  };
+  
+  double getDbl(unsigned int i)
+  {
+    if (i >= this->size())
+      i = static_cast<unsigned int>(this->size()) - 1;
+    
+    return static_cast<double>((*this)[i]);
+  };
+  
+  const char *getStr(unsigned int i) { return NULL; };
+  
+  TYPE *getPtr()	// return pointer to first data element
+  {
+    return &((*this)[0]);
+  };
+};
+
+
+template <>
+class PiPoVarSizeAttr<enum PiPo::Enumerate> : public PiPo::EnumAttr, public std::vector<unsigned int>
+{
+public:
+  PiPoVarSizeAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, unsigned int size = 0, unsigned int initVal = NULL) :
+  EnumAttr(pipo, name, descr, &typeid(enum PiPo::Enumerate), changesStream),
+  std::vector<unsigned int>(size, 0)
+  {
+    for (unsigned int i = 0; i < this->size(); i++)
+      (*this)[i] = initVal;
+  };
+  
+  void clone(Attr *other) { *(dynamic_cast<std::vector<unsigned int> *>(this)) = *(dynamic_cast<std::vector<unsigned int> *>(other)); };
+
+  unsigned int setSize(unsigned int size) { this->resize(size, 0); return size; };
+  unsigned int getSize(void) { return static_cast<int>(this->size()); }
+  
+  void set(unsigned int i, int val, bool silently = false)
+  {
+    if (i >= this->size())
+      setSize(i + 1);
+    
+    (*this)[i] = (unsigned int)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, double val, bool silently = false)
+  {
+    if (i >= this->size())
+      setSize(i + 1);
+    
+    (*this)[i] = (unsigned int)val;
+    
+    this->changed(silently);
+  };
+  
+  void set(unsigned int i, const char *val, bool silently = false)
+  {
+    if (i >= this->size())
+      setSize(i + 1);
+    
+    (*this)[i] = getEnumIndex(val);
+    
+    this->changed(silently);
+  };
+  
+  int getInt(unsigned int i)
+  {
+    if (i >= this->size())
+      i = static_cast<unsigned int>(this->size()) - 1;
+    
+    return (int)(*this)[i];
+  };
+  
+  double getDbl(unsigned int i)
+  {
+    if (i >= this->size())
+      i = static_cast<unsigned int>(this->size()) - 1;
+    
+    return (double)(*this)[i];
+  };
+  
+  const char *getStr(unsigned int i)
+  {
+    if (i < this->size())
+      return this->getEnumTag((*this)[i]);
+    
+    return NULL;
+  };
+};
+
+
+template<>
+class PiPoVarSizeAttr<PiPo::Atom> : public PiPo::Attr, public std::vector<PiPo::Atom>
+{
+public:
+    PiPoVarSizeAttr(PiPo *pipo, const char *name, const char *descr, bool changesStream, unsigned int size = 0, int initVal = 0) :
+    Attr(pipo, name, descr, &typeid(const char *), changesStream)
+    {
+        for (unsigned int i = 0; i < this->size(); i++)
+            (*this)[i] = PiPo::Atom(initVal);
+    };
+    
+    void clone(Attr *other) { *(dynamic_cast<std::vector<PiPo::Atom> *>(this)) = *(dynamic_cast<std::vector<PiPo::Atom> *>(other)); };
+    
+    unsigned int setSize(unsigned int size) { this->resize(size, PiPo::Atom(0)); return size; };
+    unsigned int getSize(void) { return static_cast<unsigned int>(this->size()); }
+    
+    void set(unsigned int i, int val, bool silently = false)
+    {
+        if (i >= this->size())
+            setSize(i + 1);
+        
+        (*this)[i] = PiPo::Atom(val);
+        
+        this->changed(silently);
+    };
+    
+    void set(unsigned int i, double val, bool silently = false)
+    {
+        if (i >= this->size())
+            setSize(i + 1);
+        
+        (*this)[i] = PiPo::Atom(val);
+        
+        this->changed(silently);
+    };
+    
+    void set(unsigned int i, const char *val, bool silently = false)
+    {
+        if (i >= this->size())
+            setSize(i + 1);
+        
+        (*this)[i] = PiPo::Atom(val);
+        
+        this->changed(silently);
+    };
+    
+    int getInt(unsigned int i)
+    {
+        if (i >= this->size())
+            i = static_cast<unsigned int>(this->size()) - 1;
+        
+        return (*this)[i].getInt();
+    };
+    
+    double getDbl(unsigned int i)
+    {
+        if (i >= this->size())
+            i = static_cast<unsigned int>(this->size()) - 1;
+        
+        return (*this)[i].getDouble();
+    };
+    
+    const char *getStr(unsigned int i)
+    {
+        if (i >= this->size())
+            i = static_cast<unsigned int>(this->size()) - 1;
+        
+        return (*this)[i].getString();
+    };
+    
+    PiPo::Atom *getPtr()	// return pointer to first data element
+    {
+        return &((*this)[0]);
+    };
+};
+
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoParallel.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoParallel.h
new file mode 100644
index 0000000..97392a4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoParallel.h
@@ -0,0 +1,363 @@
+/**
+ * @file PiPoParallel.h
+ * @author Diemo.Schwarz@ircam.fr
+ *
+ * @brief PiPo dataflow graph class that encapsulates a parallel section of pipo modules.
+ *
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2012–2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <assert.h> //db
+#include <stdlib.h> //db
+#include "PiPo.h"
+
+#define PIPO_DEBUG DEBUG*1
+
+class PiPoParallel : public PiPo
+{
+private:
+  /** class to merge several parallel pipo data streams, combining columns
+   */
+  class PiPoMerge : public PiPo
+  {
+  private:
+#   define		 MAX_PAR 64
+    int			 count_;
+    int			 numpar_;
+    PiPoStreamAttributes sa_;	// combined stream attributes
+    int			 paroffset_[MAX_PAR]; // cumulative column offsets in output array
+    int			 parwidth_[MAX_PAR];  // column widths of parallel pipos
+    int			 framesize_;		// output frame size = width * maxheight
+
+    // working variables for merging of frames
+    PiPoValue		*values_;
+    int			 time_;
+    unsigned int	 numrows_;
+    unsigned int	 numframes_;
+
+  public:
+    PiPoMerge (PiPo::Parent *parent)
+    : PiPo(parent), count_(0), numpar_(0), sa_(1024), framesize_(0), values_(NULL)
+    {
+#ifdef DEBUG	// clean memory to make possible memory errors more consistent at least
+      memset(paroffset_, 0, sizeof(*paroffset_) * MAX_PAR);
+      memset(parwidth_,  0, sizeof(*parwidth_) * MAX_PAR);
+#endif
+    }
+
+    // copy constructor
+    PiPoMerge (const PiPoMerge &other)
+    : PiPo(other.parent), count_(other.count_), numpar_(other.numpar_), sa_(other.sa_), framesize_(other.framesize_)
+    {
+#if defined(__GNUC__) &&  PIPO_DEBUG >= 2
+      printf("\n•••••• %s: COPY CONSTRUCTOR\n", __PRETTY_FUNCTION__); //db
+#endif
+
+#ifdef DEBUG	// clean memory to make possible memory errors more consistent at least
+      memset(paroffset_, 0, sizeof(*paroffset_) * MAX_PAR);
+      memset(parwidth_,  0, sizeof(*parwidth_) * MAX_PAR);
+#endif
+
+      memcpy(paroffset_, other.paroffset_, numpar_ * sizeof(int));
+      memcpy(parwidth_, other.parwidth_, numpar_ * sizeof(int));
+      values_ = (PiPoValue *) malloc(sa_.maxFrames * framesize_ * sizeof(PiPoValue));
+      memcpy(values_, other.values_, sa_.maxFrames * framesize_ * sizeof(PiPoValue));
+    }
+
+    // assignment operator
+    PiPoMerge &operator= (const PiPoMerge &other)
+    {
+#if defined(__GNUC__) &&  PIPO_DEBUG >= 2
+      printf("\n•••••• %s: ASSIGNMENT OPERATOR\n", __PRETTY_FUNCTION__); //db
+#endif
+
+#ifdef DEBUG	// clean memory to make possible memory errors more consistent at least
+      memset(paroffset_, 0, sizeof(*paroffset_) * MAX_PAR);
+      memset(parwidth_,  0, sizeof(*parwidth_) * MAX_PAR);
+#endif
+
+      count_     = other.count_;
+      numpar_    = other.numpar_;
+      sa_        = other.sa_;
+      framesize_ = other.framesize_;
+      
+      memcpy(paroffset_, other.paroffset_, numpar_ * sizeof(int));
+      memcpy(parwidth_, other.parwidth_, numpar_ * sizeof(int));
+      values_ = (PiPoValue *) malloc(sa_.maxFrames * framesize_ * sizeof(PiPoValue));
+      memcpy(values_, other.values_, sa_.maxFrames * framesize_ * sizeof(PiPoValue));
+
+      return *this;
+    }
+
+    // destructor
+    ~PiPoMerge ()
+    {
+      free(values_);
+    }
+
+  public:
+    void start (size_t numpar)
+    { // on start, record number of calls to expect from parallel pipos, each received stream call increments count_, when numpar_ is reached, merging has to be performed
+      numpar_ = (int) numpar;
+      count_  = 0;
+    }
+
+// TODO: signal end of parallel pipos, accomodates for possibly missing calls down the chain
+    void finish ()
+    {
+    }
+
+  public:
+    int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    { // collect stream attributes declarations from parallel pipos
+#if PIPO_DEBUG >= 1
+      printf("PiPoParallel streamAttributes timetags %d  rate %f  offset %f  width %d  height %d  labels %s  varsize %d  domain %f  maxframes %d\n",
+	     hasTimeTags, rate, offset, width, height, labels ? labels[0] : "n/a", hasVarSize, domain, maxFrames);
+#endif
+
+      if (count_ == 0)
+      {	// first parallel pipo defines most stream attributes, we store then here
+	sa_.hasTimeTags = hasTimeTags;
+    	sa_.rate = rate;
+    	sa_.offset = offset;
+    	sa_.dims[0] = width;
+    	sa_.dims[1] = height;
+    	sa_.numLabels = 0;
+    	sa_.hasVarSize = hasVarSize;
+    	sa_.domain = domain;
+    	sa_.maxFrames = maxFrames;
+	sa_.concat_labels(labels, width);
+	
+	paroffset_[0] = 0;
+	parwidth_[0] = width;
+      }
+      else
+      { // apply merge rules with following pipos
+	// columns are concatenated
+	sa_.concat_labels(labels, width);
+      	sa_.dims[0] += width;
+	paroffset_[count_] = paroffset_[count_ - 1] + parwidth_[count_ - 1];
+	parwidth_[count_] = width;
+
+	//TODO: check maxframes, height, should not differ
+	//TODO: option to transpose column vectors
+      }
+      
+      if (++count_ == numpar_)
+      { // last parallel pipo, now reserve memory and pass merged stream attributes onwards
+        framesize_ = sa_.dims[0] * sa_.dims[1];
+	values_ = (PiPoValue *) realloc(values_, sa_.maxFrames * framesize_ * sizeof(PiPoValue)); // alloc space for maxmal block size
+	
+	return propagateStreamAttributes(sa_.hasTimeTags, sa_.rate, sa_.offset, sa_.dims[0], sa_.dims[1], sa_.labels, sa_.hasVarSize, sa_.domain, sa_.maxFrames);
+      }
+      else
+	return 0; // continue receiving stream attributes
+    }
+
+    
+    int reset ()
+    {
+      if (++count_ == numpar_)
+	return this->propagateReset();
+      else
+	return 0; // continue receiving reset
+    }
+
+    
+    int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+    { // collect data from parallel pipos
+      if (count_ >= numpar_) // bug is still there
+      {
+#ifdef WIN32
+        printf("%s: ARGH! count_ %d >= numpar_ %d\n", __FUNCSIG__, count_, numpar_);
+#else
+        printf("%s: ARGH! count_ %d >= numpar_ %d\n", __PRETTY_FUNCTION__, count_, numpar_);
+#endif
+        count_ = numpar_ - 1;
+      }
+      //assert(size / parwidth_[count_] == 1);
+
+      int width = parwidth_[count_];
+      unsigned int height = size / width;	// number of input rows
+      
+      if (count_ == 0)
+      { // first parallel pipo determines time tag, num. rows and frames
+	time_      = time;
+	numrows_   = height;
+	numframes_ = num;
+
+	// clear memory just in case one pipo doesn't output data (FIXME: handle this correctly)
+	memset(values_, 0, num * framesize_ * sizeof(PiPoValue));
+      }
+
+      // copy input data to be kept from parallel pipo to merged values_
+      if (num > numframes_)	num = numframes_;
+      if (height > numrows_)	height = numrows_;
+      
+      for (unsigned int i = 0; i < num; i++)   // for all frames present
+	for (unsigned int k = 0; k < height; k++)   // for all rows to be kept
+        {
+          //printf("merge::frames %p\n  values_ %p + %d + %d + %d,\n  values %p + %d,\n  size %d\n",
+          //       this, values_, i * framesize_, k * sa_.dims[0], paroffset_[count_], values, i * size, parwidth_[count_] * sizeof(PiPoValue));
+	  //TODO: zero pad if num rows here: size / parwidth_[count_] < numrows_
+	  memcpy(values_ + i * framesize_ + k * sa_.dims[0] + paroffset_[count_],
+		 values  + i * size + k * width,  width * sizeof(PiPoValue));
+        }
+      
+      if (++count_ == numpar_) // last parallel pipo: pass on to receiver(s)
+	return propagateFrames(time_, 0 /*weight to disappear*/, values_, numrows_ * sa_.dims[0], numframes_);
+      else
+	return 0; // continue receiving frames
+    }
+
+
+    int finalize (double inputEnd)
+    {
+      if (count_ == 0)
+	time_ = inputEnd;
+      
+      if (++count_ == numpar_)
+	return this->propagateFinalize(time_);
+      else
+	return 0; // continue receiving finalize
+    }
+  }; // end class PiPoMerge
+
+  PiPoMerge merge;
+
+public:
+  // constructor
+  PiPoParallel (PiPo::Parent *parent)
+  : PiPo(parent), merge(parent)
+  { }
+
+  //TODO: varargs constructor PiPoParallel (PiPo::Parent *parent, PiPo *pipos ...)
+
+private:
+  // copy constructor
+  PiPoParallel (const PiPoParallel &other)
+  : PiPo(other), merge(other.merge)
+  { }
+
+  // assignment operator
+  const PiPoParallel& operator= (const PiPoParallel &other)
+  {
+    parent = other.parent;
+    merge  = other.merge;
+
+    return *this;
+  }
+
+public:
+  // destructor
+  ~PiPoParallel (void) { }
+  
+
+  /** @name PiPoParallel setup methods */
+  /** @{ */
+  
+  /** Add module @p{pipo} to the data flow graph in parallel.
+   */
+  void add (PiPo *pipo)
+  { // add to list of receivers of this parallel module, to branch out on input
+    PiPo::setReceiver(pipo, true);
+    // then connect module to internal merge module
+    pipo->setReceiver(&merge);
+  }
+
+  void add (PiPo &pipo)
+  {
+    add(&pipo);
+  }
+
+  /** @} PiPoParallel setup methods */
+
+  /** @name overloaded PiPo methods */
+  /** @{ */
+
+  void setParent (PiPo::Parent *parent)
+  {
+    this->parent = parent;
+    
+    for (unsigned int i = 0; i < receivers.size(); i++)
+      receivers[i]->setParent(parent);
+  }
+  
+  void setReceiver (PiPo *receiver, bool add = false)
+  {
+    merge.setReceiver(receiver, add);
+  }
+    
+  /** @name preparation and processing methods: just notify merge, and let propagate* do the branching */
+  /** @{ */
+
+  /** start stream preparation */
+  int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    merge.start(receivers.size());
+    return PiPo::propagateStreamAttributes(hasTimeTags, rate, offset, width, height, labels, hasVarSize, domain, maxFrames);
+  }
+  
+  int reset ()
+  {
+    merge.start(receivers.size());
+    return PiPo::propagateReset();
+  }
+  
+  /** @} end of preparation of processing methods */
+
+  /** @name processing */
+  /** @{ */
+
+  int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+    merge.start(receivers.size());
+    return PiPo::propagateFrames(time, weight, values, size, num);
+  }
+  
+  int finalize (double inputEnd)
+  {
+    merge.start(receivers.size());
+    return PiPo::propagateFinalize(inputEnd);
+  }
+
+  /** @} end of processing methods */
+  /** @} end of overloaded PiPo methods */
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoSequence.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoSequence.h
new file mode 100644
index 0000000..c92dd88
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/PiPoSequence.h
@@ -0,0 +1,263 @@
+/**
+ * @file PiPoSequence.h
+ * @author Diemo.Schwarz@ircam.fr
+ *
+ * @brief PiPo dataflow graph class that encapsulates a sequence of pipo modules.
+ *
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2012–2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_SEQUENCE_
+#define _PIPO_SEQUENCE_
+
+#include "PiPo.h"
+
+class PiPoSequence : public PiPo
+{
+private:    
+  std::vector<PiPo *> seq_;
+
+public:
+  // constructor
+  PiPoSequence (PiPo::Parent *parent)
+  : PiPo(parent), seq_()
+  { }
+
+#if __cplusplus > 199711L // check for C++11
+  /** varargs constructor with a list of pipos that will be connected:
+
+        PiPoSequence (PiPo::Parent *parent, PiPo &pipos ...) 
+        seq(parent, pipo1, pipo2, ...);
+
+      (using C++11 variadic templates)
+   */
+  template<typename ...Args>
+  PiPoSequence (PiPo::Parent *parent, Args&... pipos)
+    : PiPo(parent), seq_{&pipos ...} // use C++11 initilizer_list syntax and variadic templates
+  {
+    // set parents of all pipos?
+    connect(NULL);
+  }
+#endif
+  
+  // copy constructor
+  PiPoSequence (const PiPoSequence &other)
+  : PiPo(other), seq_(other.seq_)
+  { 
+    connect(NULL);
+  }  
+
+  // assignment operator
+  const PiPoSequence& operator=(const PiPoSequence &other)
+  {
+    parent = other.parent;
+    seq_   = other.seq_;
+    connect(NULL);
+
+    return *this;
+  }
+  
+  ~PiPoSequence (void) { }
+  
+
+  /** @name PiPoSequence setup methods */
+  /** @{ */
+
+  /** append module \p pipo to sequential data flow graph
+   */
+  void add (PiPo *pipo, bool autoconnect = true)
+  {
+    seq_.push_back(pipo);
+    
+    if (autoconnect  &&  seq_.size() > 1)
+      seq_[seq_.size() - 2]->setReceiver(pipo); // connect previous to just added pipo
+  }
+
+  void add (PiPo &pipo, bool autoconnect = true)
+  {
+    add(&pipo, autoconnect);
+  }
+
+  
+  void clear ()
+  {
+    for (unsigned int i = 0; i < seq_.size(); i++)
+      seq_[i] = NULL;
+
+    seq_.clear();
+  }
+  
+
+  /** connect each PiPo in PiPoSequence (from end to start)
+
+      @param receiver is terminating PiPo of the host that finally receives data
+   */
+  bool connect (PiPo *receiver)
+  {
+    PiPo *next = getTail();
+    
+    if (next != NULL)
+    {
+      next->setReceiver(receiver);
+      
+      for (int i = static_cast<int>(seq_.size()) - 2; i >= 0; i--)
+      {
+        PiPo *pipo = seq_[i];
+        pipo->setReceiver(next);
+        next = pipo;
+      }
+      
+      return true;
+    }
+    
+    return false;
+  }
+
+  /** @} PiPoSequence setup methods */
+
+  /** @name PiPoChain query methods */
+  /** @{ */
+
+  int getSize() const
+  {
+    return static_cast<int>(seq_.size());
+  }
+
+  PiPo *getHead () const
+  {
+    if (seq_.size() > 0)
+      return seq_[0];
+    
+    return NULL;
+  }
+  
+  PiPo *getTail () const
+  {
+    if (seq_.size() > 0)
+      return seq_[seq_.size() - 1];
+    
+    return NULL;
+  }
+  
+  PiPo *getPiPo (unsigned int index) const
+  {
+    //printf("%s(%d) -> %p\n", __PRETTY_FUNCTION__, index, seq_[index]);
+    
+    if (index < seq_.size())
+      return seq_[index];
+    
+    return NULL;
+  }  
+
+  /** @} PiPoSequence query methods */
+    
+  /** @name overloaded PiPo methods */
+  /** @{ */
+
+  void setParent (PiPo::Parent *parent)
+  {
+    this->parent = parent;
+    
+    for (unsigned int i = 0; i < seq_.size(); i++)
+      seq_[i]->setParent(parent);
+  }
+  
+  void setReceiver (PiPo *receiver, bool add = false)
+  {
+    PiPo *tail = getTail();
+      
+    if (tail != NULL)
+      tail->setReceiver(receiver, add);
+  }
+    
+  /** @name preparation of processing */
+  /** @{ */
+
+  /** start stream preparation */
+  int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    PiPo *head = getHead();
+    
+    if (head != NULL)
+      return head->streamAttributes(hasTimeTags, rate, offset, width, height, labels, hasVarSize, domain, maxFrames);
+    
+    return -1;
+  }
+  
+  int reset ()
+  {
+    PiPo *head = getHead();
+    
+    if (head != NULL)
+      return head->reset();
+    
+    return -1;
+  }
+  
+  /** @} end of preparation of processing methods */
+
+  /** @name processing */
+  /** @{ */
+
+  int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+    PiPo *head = getHead();
+    
+    if (head != NULL)
+      return head->frames(time, weight, values, size, num);
+    
+    return -1;
+  }
+  
+  int finalize (double inputEnd)
+  {
+    PiPo *head = getHead();
+    
+    if (head != NULL)
+      return head->finalize(inputEnd);
+    
+    return -1;
+  }
+
+  /** @} end of processing methods */
+  /** @} end of overloaded PiPo methods */
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif /* _PIPO_SEQUENCE_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/RingBuffer.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/RingBuffer.h
new file mode 100644
index 0000000..f5e38f9
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/RingBuffer.h
@@ -0,0 +1,121 @@
+/**
+ * @file RingBuffer.h
+ * @author Norbert Schnell
+ * @author Diemo Schwarz
+ *
+ * @brief ringbuffer class
+ *
+ * @ingroup pipoapi
+ *
+ * @copyright
+ * Copyright (C) 2012–2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of mosquitto nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RINGBUFFER_
+#define _RINGBUFFER_
+
+template <class T>
+class RingBuffer
+{
+public:
+  std::vector<T> vector;
+  unsigned int width;
+  unsigned int size;
+  unsigned int index;
+  bool filled;
+    
+public:
+  RingBuffer (void) 
+  : vector()
+  {
+    this->width = 1;
+    this->size = 0;
+    this->index = 0;
+    this->filled = false;  
+  };
+    
+  void resize (int width, int size)
+  {
+    this->vector.resize(width * size);
+    this->width = width;
+    this->size = size;
+    this->index = 0;
+    this->filled = false;
+  };
+    
+  void reset (void)
+  {
+    this->index = 0;
+    this->filled = false;
+  };
+    
+  int input (T *values, unsigned int num, PiPoValue scale = 1.0)
+  {  
+    T *ringValues = &this->vector[this->index * this->width];
+      
+    if (num > this->width)
+      num = this->width;
+      
+    /* copy frame */
+    if (scale == 1.0)	/*TODO: some polymorphism and template magic to avoid this if clause */
+      memcpy(ringValues, values, num * sizeof(T));
+    else
+    {
+      for (unsigned int j = 0; j < num; j++)
+	ringValues[j] = values[j] * scale;
+    }
+      
+    /* zero pad this values */
+    if (num < this->width)
+      memset(ringValues + num, 0, (this->width - num) * sizeof(T));
+      
+    this->index++;
+      
+    if (this->index >= this->size)
+    {
+      filled = true;
+      this->index = 0;
+    }      
+      
+    if (this->filled)
+      return this->size;
+    else
+      return this->index;    
+  };  
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif /* _RINGBUFFER_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/mimo.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/mimo.h
new file mode 100644
index 0000000..ef7020d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/include/mimo.h
@@ -0,0 +1,144 @@
+
+#ifndef _MIMO_H_INCLUDED_
+#define _MIMO_H_INCLUDED_
+
+#include "PiPo.h"
+#include <memory>
+
+/* interface for a class that holds the mimo module-specific model parameters resulting from training
+ */
+class mimo_model_data
+{
+public:
+  /** output as json string into out
+      Throws an exception if string would exceed size.
+
+      @param out	string buffer of length \p{size}
+      @param size	size of string buffer
+      @return		returns the out pointer for convenience
+
+      N.B.: the mimo module might be loaded from a dynamic library, so
+      we can't return a complex object such as std::string that
+      internatlly uses heap allocations, since the dylib's heap is a
+      separate one from the main app */
+  virtual char *to_json (char *out, int size) throw() = 0;
+
+  /** get model from json string */
+  virtual int from_json (const char *json_string) = 0;
+
+  // virtual const int foo() = 0;
+};
+
+/*
+
+  every mimo module inherits the basic stream description and data
+  passing methods (streamAttributes() and frames()) from PiPo, but
+  ignores real-time oriented methods (segment()), and adds iteration
+  for training.
+ */
+
+class Mimo : public PiPo
+{
+public:
+  // constructor
+  Mimo (PiPo::Parent *parent, Mimo *receiver = NULL)
+  : PiPo(parent, receiver)
+  {
+  };
+  
+  Mimo (const Mimo &other)
+  : PiPo(other)
+  {
+  }
+  
+  /** the PiPo::frames() method performs decoding */
+  //virtual int frames (...);
+
+  /** prepare for training
+
+      @param numbuffers	number of buffers with training data
+      @param numtracks	number of tracks per input buffer with training data
+      @param bufsizes	array[numbuffers] of numbers of frames for each input buffer
+      @param streamattr	array[numtracks] attributes of input data for each input track
+      @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+  */
+  virtual int setup (int numbuffers, int numtracks, int bufsizes[], const PiPoStreamAttributes *streamattr[]) = 0;
+    
+  /** the train method performs one iteration of training.
+      It is called for each buffer and each input track, receiving the training data sets.
+      The first iteration receives the original data, further iterations the training output data of previous iterations, 
+      that each iteration can output by calling propagateTrain().
+      For multi-modal training (with more than one input track), only the call for the last track may call propagateTrain().
+
+      @param itercount		number of current iteration (starts at zero)
+      @param bufferindex	index of current input buffer (up to numbuffers - 1)
+      @param trackindex		index of current input track (up to numtracks - 1)
+      @param numframes		number of frames in @p{data}
+      @param data		input data in format given by @p{streamattr}
+      @param timetags		pointer to @p{numframes} time tags or NULL when sampled
+      @param varsize 		pointer to @p{numframes} of row sizes or NULL when constant size
+      @return			status flag: continue training (> 0), stop training (== 0), error (< 0)
+
+      N.B.: we could replace the constraints on calling sequence by a more complicated input format where pointers to data and attributes of each input track are passed as arrays, that would penalise the vast majority of single-track use cases:
+
+      virtual int train (int itercount, int bufferindex, int numframes[], PiPoValue *data[], double *timetags[], int *varsize[]) = 0;
+  */
+  virtual int train (int itercount, int bufferindex, int trackindex, int numframes, const PiPoValue *data, const double *timetags, const int *varsize) = 0;
+  
+  virtual int train (int itercount, int bufferindex, int trackindex, int numframes, const PiPoValue *data, const double starttime, const int *varsize)
+  {
+    return train (itercount, bufferindex, trackindex, numframes, data, (const double *) NULL, varsize);
+  }
+
+  
+  /** return recommended max number of iterations, or 0 for no limit. 
+      This can be overridden by the user via an attribute 
+      N.B.: The host should ask for maxiter at every iteration, so that a training algorithm can adapt its recommendation to the training progress */
+  virtual int maxiter() { return 0; /* unlimited */ }
+
+  /** return error, distance or loss metric from training */
+  virtual double getmetric() { return 0; /* whatever */ };
+
+  /** return trained model parameters */
+  virtual mimo_model_data *getmodel () = 0;
+
+  int propagateSetup (int numbuffers, int numtracks, int bufsize[], const PiPoStreamAttributes *streamattr[])
+  {
+    int ret = 0;
+    
+    for(unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = dynamic_cast<Mimo *>(this->receivers[i])->setup(numbuffers, 1, bufsize, &streamattr[0]);
+      
+      if(ret < 0)
+        break;
+    }
+    
+    return ret;
+  }
+
+  int propagateTrain(int itercount, int bufferindex, int trackindex, int numframes, const PiPoValue *data, const double *timetags, const int *varsize)
+  {
+    int ret = 0;
+    
+    for (unsigned int i = 0; i < this->receivers.size(); i++)
+    {
+      ret = dynamic_cast<Mimo *>(this->receivers[i])->train(itercount, bufferindex, trackindex, numframes, data, timetags, varsize);
+      
+      if(ret < 0)
+        break;
+    }
+    
+    return ret;
+  }
+};
+
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif // defined _MIMO_H_INCLUDED_
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBands.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBands.h
new file mode 100644
index 0000000..f367867
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBands.h
@@ -0,0 +1,356 @@
+/**
+ * @file PiPoBands.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief RTA bands PiPo
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_BANDS_
+#define _PIPO_BANDS_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_complex.h"
+#include "rta_bands.h"
+#include "rta_mel.h"
+#include <float.h>  
+#include <math.h>
+}
+
+#include <vector>
+//#include <complex>
+
+#ifdef WIN32
+static float cabsf(floatcomplex value) 
+{ 
+	_complex cval = { value.real, value.imag };
+	return (float)_cabs(cval); 
+}
+#endif
+
+class PiPoBands : public PiPo
+{
+public:
+  enum BandsModeE { UndefinedBands = -1, MelBands = 0, HtkMelBands = 1 }; //todo: bark, erb
+  enum EqualLoudnessModeE { None = 0, Hynek = 1 };
+  
+private:
+  std::vector<float> bands;
+  std::vector<float> weights;
+  std::vector<unsigned int> bounds;
+  std::vector<float> bandfreq;	// band centre frequency in Hz
+  std::vector<float> eqlcurve;	// equal loudness curve
+  std::vector<float> power_spectrum;
+  
+  enum BandsModeE bandsMode;
+  enum EqualLoudnessModeE eqlMode;
+  unsigned int specSize;
+  bool complex_input;
+  float sampleRate;
+  
+public:
+  /**
+   * @var mode
+   * "mel" (MEL bands, normalized energy)
+   * or "htkmel" (HTK-like MEL bands, preserved peak energy)
+   */
+  PiPoScalarAttr<PiPo::Enumerate> mode;
+    
+  /**
+   * @var eqlmode
+   * "none" (no scaling)
+   * or "hynek" (Hynek's equal loudness curve)
+   */
+  PiPoScalarAttr<PiPo::Enumerate> eqlmode;
+    
+  /**
+   * @var num
+   * number of bands
+   */
+  PiPoScalarAttr<int> num;
+    
+  /**
+   * @var log
+   * enable logarithmic bands
+   */
+  PiPoScalarAttr<bool> log;
+    
+  /**
+   * @var power
+   * power scaling exponent
+   */
+  PiPoScalarAttr<float> power;
+  
+  PiPoBands(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  bands(), weights(), bounds(), bandfreq(),
+  mode(this, "mode", "Bands Mode", true, MelBands),
+  eqlmode(this, "eqlmode", "Equal Loudness Curve", true, None),
+  num(this, "num", "Number Of Bands", true, 24),
+  log(this, "log", "Logarithmic Bands", false, true),
+  power(this, "power", "Power Scaling Exponent", false, 1.)
+  {
+    this->bandsMode = UndefinedBands;
+    this->eqlMode = None;
+    
+    this->specSize = 0;
+    this->complex_input = false;
+    this->sampleRate = 1.0;
+    
+    this->mode.addEnumItem("mel", "MEL bands (normalized band energy)");
+    this->mode.addEnumItem("htkmel", "HTK like MEL bands (preserved peak energy)");
+    
+    this->eqlmode.addEnumItem("none", "no equal loudness scaling");
+    this->eqlmode.addEnumItem("hynek", "Hynek's equal loudness curve");
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    enum BandsModeE bandsMode = (enum BandsModeE)this->mode.get();
+    enum EqualLoudnessModeE eqlMode = (enum EqualLoudnessModeE)this->eqlmode.get();
+    int numBands = this->num.get();
+    int specSize = size;
+    float sampleRate = 2.0 * domain;
+    
+    if (width >= 2)
+    {
+      complex_input = true;
+      power_spectrum.resize(specSize);
+    }
+    
+    if(bandsMode < MelBands)
+      bandsMode = MelBands;
+    else if(bandsMode > HtkMelBands)
+      bandsMode = HtkMelBands;
+    
+    if(numBands < 1)
+      numBands = 1;
+    
+    if(specSize < 0)
+      specSize = 0;
+    
+    if(bandsMode != this->bandsMode || eqlMode != this->eqlMode || numBands != this->bands.size() || specSize != this->specSize || sampleRate != this->sampleRate)
+    {
+      this->bands.resize(numBands);
+      this->eqlcurve.resize(numBands);
+      this->weights.resize(specSize * numBands);
+      this->bounds.resize(2 * numBands);
+      this->bandfreq.resize(numBands);
+      
+      this->bandsMode = bandsMode;
+      this->eqlMode = eqlMode;
+      this->specSize = specSize;
+      this->sampleRate = sampleRate;
+      
+      switch(bandsMode)
+      {
+        default:
+        case MelBands:          
+        {
+          rta_spectrum_to_mel_bands_weights(&this->weights[0], &this->bounds[0], specSize,
+                                            sampleRate, numBands, 0.0, domain, 1.0, 
+                                            rta_hz_to_mel_slaney, rta_mel_to_hz_slaney, rta_mel_slaney);
+          
+          // calculate band centre freqs (TODO: pass up from rta_spectrum_to_mel_bands_weights)
+          for (int i = 0; i < numBands; i++)
+          {
+            double b = (bounds[2 * i] + bounds[2 * i + 1]) / 2.; // take mean as band centre freq
+            bandfreq[i] = b / (double) specSize * sampleRate / 2. ; // in Hz
+          }
+          break;
+        }
+          
+        case HtkMelBands:
+        {
+          rta_spectrum_to_mel_bands_weights(&this->weights[0], &this->bounds[0], specSize,
+                                            sampleRate, numBands, 0.0, domain, 1.0, 
+                                            rta_hz_to_mel_htk, rta_mel_to_hz_htk, rta_mel_htk);
+          
+          // calculate band centre freqs (TODO: pass up from rta_spectrum_to_mel_bands_weights)
+          for (int i = 0; i < numBands; i++)
+          {
+            double b = (bounds[2 * i] + bounds[2 * i + 1]) / 2.; // take mean as band centre freq
+            bandfreq[i] = b / (double) specSize * sampleRate / 2. ; // in Hz
+          }
+          break;
+        }
+          /*          
+           case ERBBands:
+           rta_spectrum_to_erb_bands_weights(&weights[0], &bounds[0], &bandfreq[0], specSize,
+           sampleRate, numBands);
+           break;
+           */
+      }      
+      
+      switch (this->eqlmode.get())
+      {
+        case Hynek:
+          
+          for (int i = 0; i < numBands; i++)
+          { // Hynek's equal-loudness-curve formula
+            double fsq  = bandfreq[i] * bandfreq[i];
+            double ftmp = fsq / (fsq + 1.6e5);
+            eqlcurve[i] = (ftmp * ftmp) * ((fsq + 1.44e6) / (fsq + 9.61e6));
+          }
+          break;
+          
+        default: /* curve will not be applied */
+          break;
+      }
+    }
+    
+#if (DEBUG * 0)
+    printf("PiPoBands::streamAttributes  timetags %d  rate %.0f  offset %f  width %d  size %d  "
+           "labels %s  varsize %d  domain %f  maxframes %d\nrta_real_t size = %d\n", 
+           hasTimeTags, rate, offset, (int) width, (int) size, labels ? labels[0] : "n/a", 
+           (int) hasVarSize, domain, (int) maxFrames, sizeof(rta_real_t));
+    static FILE *filtout = fopen("/tmp/melfilter.raw", "w");
+    fwrite(&weights[0], weights.size(), sizeof(float), filtout);
+    static FILE *bout = fopen("/tmp/melbounds.raw", "w");
+    fwrite(&bounds[0], bounds.size(), sizeof(int), bout);
+#endif
+    
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, numBands, 1, NULL, 0, 0.0, 1);
+  }
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    unsigned int numBands = static_cast<int>(this->bands.size());
+    bool log = this->log.get();
+    float p = this->power.get();
+    float *spectrum;
+    int specsize = size;
+    
+    for(unsigned int i = 0; i < num; i++)
+    {
+      float scale = 1.0;
+      
+      switch(this->bandsMode)
+      {
+        default:
+        case MelBands:
+        {
+          scale *= 66519.0 / numBands;
+          break;          
+        }
+        case HtkMelBands:
+        {
+          break;
+        }           
+      }
+      
+      if (complex_input)
+      { // convert to power spectrum
+        specsize = static_cast<int>(power_spectrum.size());
+        spectrum = &(power_spectrum[0]);
+        
+        for (int i = 0; i < specsize; i++)
+          spectrum[i] = cabsf(((rta_complex_t *) values)[i]);
+        
+#if (DEBUG * 0)
+        static FILE *specout = fopen("/tmp/powerspectrum.raw", "w");
+        fwrite(spectrum, sizeof(float), specsize, specout);
+#endif
+      }
+      else
+        spectrum = values;
+      
+      /* calculate MEL bands */
+      rta_spectrum_to_bands_abs(&this->bands[0], spectrum,
+                                &this->weights[0], &this->bounds[0],
+                                specsize, numBands);
+      
+      /* apply equal loudness curve*/
+      if (this->eqlmode.get() != None)
+      {
+        for (unsigned int j = 0; j < numBands; j++)
+          this->bands[j] *= this->eqlcurve[j];
+      }
+      
+      if(log)
+        scale *= numBands;
+      
+      if(scale != 1.0)
+      {
+        for(unsigned int j = 0; j < numBands; j++)
+          this->bands[j] *= scale;
+      }
+      
+      if(log)
+      {    
+        const double minLogValue = 1e-48;
+        const double minLog = -480.0;  
+        
+        /* calculate log output values */
+        for(unsigned int i = 0; i < numBands; i++)
+        {
+          float band = this->bands[i];
+          
+          if(band > minLogValue)        
+            this->bands[i] = 10.0 * log10f(band);
+          else
+            this->bands[i] = minLog;
+        }
+      }
+      
+      if (p != 1)
+      {
+        for (unsigned int j = 0; j < numBands; j++)
+          this->bands[j] = powf(this->bands[j], p);
+      }
+      
+      int ret = this->propagateFrames(time, weight, &this->bands[0], numBands, 1);
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c++
+ * c-file-style: "stroustrup"
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBayesFilter.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBayesFilter.h
new file mode 100644
index 0000000..57e456a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBayesFilter.h
@@ -0,0 +1,149 @@
+/**
+ * @file PiPoBayesFilter.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief PiPo implementing the Bayesian Filtering of myoelectric signals algorithm
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_BAYESFILTER_
+#define _PIPO_BAYESFILTER_
+
+#include "BayesianFilter.h"
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_mean_variance.h"
+}
+
+#include <vector>
+using namespace std;
+
+#define RING_ALLOC_BLOCK 256
+
+class PiPoBayesFilter : public PiPo {
+    BayesianFilter filter;
+    vector<float> observation;
+    vector<float> output;
+
+  public:
+    PiPoScalarAttr<float> logdiffusion;
+    PiPoScalarAttr<float> logjumprate;
+    PiPoVarSizeAttr<float> mvc;
+
+    // ------------------------------------
+    // -- Deprecated Attributes
+    PiPoScalarAttr<float> clipping;
+    PiPoScalarAttr<float> alpha;
+    PiPoScalarAttr<float> beta;
+    PiPoScalarAttr<bool> rectification;
+    // ------------------------------------
+
+    PiPoBayesFilter(PiPo::Parent *parent, PiPo *receiver = NULL)
+        : PiPo(parent, receiver),
+          logdiffusion(this, "logdiffusion", "log diffusion rate", true, -2.),
+          logjumprate(this, "logjumprate", "log probability of sudden jumps",
+                      true, -5.),
+          mvc(this, "mvc", "Maximum Value Contraction", true, 1.),
+          // ------------------------------------
+          // -- Deprecated Attributes
+          clipping(this, "clipping", "clipping [DEPRECATED]", true, 1.),
+          alpha(this, "alpha", "alpha [DEPRECATED]", true, 0.01),
+          beta(this, "beta", "beta [DEPRECATED]", true, 0.01),
+          rectification(this, "rectification",
+                        "signal rectification [DEPRECATED]", true, true) {
+        // ------------------------------------
+        this->filter.diffusion = powf(10., this->logdiffusion.get());
+        this->filter.jump_rate = powf(10., this->logjumprate.get());
+        this->mvc.setSize(1);
+        this->mvc.set(0, 1.);
+        this->filter.mvc[0] = this->mvc.getDbl(0);
+        this->filter.init();
+    };
+
+    ~PiPoBayesFilter(void){};
+
+    int streamAttributes(bool hasTimeTags, double rate, double offset,
+                         unsigned int width, unsigned int size,
+                         const char **labels, bool hasVarSize, double domain,
+                         unsigned int maxFrames) {
+        this->mvc.resize(width, 1.);
+        this->filter.resize(width);
+        this->filter.samplerate = rate;
+        this->filter.diffusion = powf(10., this->logdiffusion.get());
+        this->filter.jump_rate = powf(10., this->logjumprate.get());
+        for (unsigned int i = 0; i < width; i++) {
+            this->filter.mvc[i] = this->mvc.getDbl(i);
+        }
+        this->filter.init();
+
+        this->output.resize(width * size * maxFrames);
+
+        return this->propagateStreamAttributes(hasTimeTags, rate, offset, width,
+                                               size, labels, 0, 0.0, 1);
+    };
+
+    int reset(void) {
+        this->filter.init();
+        return this->propagateReset();
+    };
+
+    int frames(double time, double weight, float *values, unsigned int size,
+               unsigned int num) {
+        float *output = &(this->output[0]);
+
+        for (unsigned int i = 0; i < num; i++) {
+            this->observation.resize(size);
+            for (unsigned int j = 0; j < size; j++)
+                this->observation[j] = double(values[j]);
+
+            this->filter.update(observation);
+
+            for (unsigned int j = 0; j < size; j++)
+                output[j] = float(this->filter.output[j]);
+
+            int ret = this->propagateFrames(time, weight, output, size, 1);
+
+            if (ret != 0) return ret;
+
+            values += size;
+            output += size;
+        }
+
+        return 0;
+    };
+};
+
+#endif /* _PIPO_BAYESFILTER_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBiquad.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBiquad.h
new file mode 100644
index 0000000..38f1ae0
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoBiquad.h
@@ -0,0 +1,306 @@
+/**
+ * @file PiPoBiquad.h
+ * @author Joseph Larralde
+ * @date 30.11.2015
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2015 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_BIQUAD_H_
+#define _PIPO_BIQUAD_H_
+
+#define PIPO_BIQUAD_MIN_Q 0.001
+
+#ifdef WIN32
+#define M_SQRT1_2  0.70710678118654752440084436210 
+#endif
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_biquad.h"
+}
+
+#include <math.h>
+#include <stdlib.h>
+
+class PiPoBiquad : public PiPo
+{
+public:
+    enum BiquadTypeE { DF1BiquadType = 0, DF2TBiquadType = 1};
+    enum FilteringModeE { LowPassFilteringMode = 0, HighPassFilteringMode = 1, ResonantFilteringMode = 2, BandPassFilteringMode = 3, BandStopFilteringMode = 4, AllPassFilteringMode = 5, PeakNotchFilteringMode = 6, LowShelfFilteringMode = 7, HighShelfFilteringMode = 8, RawCoefsFilteringMode = 9};
+    enum FrameRateUnitE { FrameUnit = 0, HertzUnit = 1 };
+    
+private:
+    BiquadTypeE biquadType;;
+    FilteringModeE filterMode;
+    //FrameRateUnitE unit;
+    
+    
+    unsigned int frameWidth;
+    unsigned int frameHeight;
+    
+    float frameRate;
+    float *outValues;
+    
+    float b[3]; /* biquad feed-forward coefficients b0, b1 and b2*/
+    float a[2]; /* biquad feed-backward coefficients a1 and a2 */
+    float *biquadState;
+    unsigned int biquadState_nb; /* number of state: 4 for df1 and 2 for df2t */
+    
+    double f0;
+    double normF0;
+    
+    float biquadGain;
+    float biquadQuality;
+    float biquadQNormalisation;
+   
+public:
+    PiPoScalarAttr<float> b0;
+    PiPoScalarAttr<float> b1;
+    PiPoScalarAttr<float> b2;
+    //PiPoScalarAttr<float> a0; // -> a0 is always 1
+    PiPoScalarAttr<float> a1;
+    PiPoScalarAttr<float> a2;
+    PiPoScalarAttr<PiPo::Enumerate> biquadTypeA;
+    PiPoScalarAttr<PiPo::Enumerate> filterModeA;
+    //PiPoScalarAttr<PiPo::Enumerate> unitA;
+    PiPoScalarAttr<float> gainA;
+    PiPoScalarAttr<float> frequencyA;
+    PiPoScalarAttr<float> QA;
+    
+    //=================== CONSTRUCTOR ====================//
+    
+    PiPoBiquad(Parent *parent, PiPo *receiver = NULL) :
+    PiPo(parent, receiver),
+    b0(this, "b0", "b0 biquad coefficient", true, 1.),
+    b1(this, "b1", "b1 biquad coefficient", true, 0.),
+    b2(this, "b2", "b2 biquad coefficient", true, 0.),
+    a1(this, "a1", "a1 biquad coefficient", true, 0.),
+    a2(this, "a2", "a2 biquad coefficient", true, 0.),
+    biquadTypeA(this, "biquadtype", "Direct Form 1 or 2T", true, DF1BiquadType),
+    filterModeA(this, "filtermode", "Filter Mode", true, LowPassFilteringMode),
+    //unitA(this, "unit", "Framerate Unit", true, FrameUnit),
+    gainA(this, "gain", "Filter Gain", true, 1.),
+    frequencyA(this, "frequency", "Filter Relevant Frequency", true, 1000.),
+    QA(this, "Q", "Filter Quality", true, 0.)
+    {
+
+        
+        this->frameWidth = 0;
+        this->frameHeight = 0;
+        
+        this->frameRate = 1.;
+        this->outValues = NULL;
+        
+        this->biquadType = DF1BiquadType;
+        this->biquadState_nb = 4;
+        this->biquadGain = 1.;
+        this->biquadQuality = 0.;
+        this->biquadQNormalisation = M_SQRT1_2;
+        
+        this->filterMode = LowPassFilteringMode;
+        
+        this->b[0] = 1.;
+        this->b[1] = 0.;
+        this->b[2] = 0.;
+        this->a[0] = 0.;
+        this->a[1] = 0.;
+        this->biquadState = NULL;
+        
+        this->biquadTypeA.addEnumItem("DF1", "Direct Form 1");
+        this->biquadTypeA.addEnumItem("DF2", "Direct Form 2");
+        
+        this->filterModeA.addEnumItem("lowpass", "Lowpass Filtering Mode");
+        this->filterModeA.addEnumItem("highpass", "Highpass Filtering Mode");
+        this->filterModeA.addEnumItem("resonant", "Resonant Filtering Mode");
+        this->filterModeA.addEnumItem("bandpass", "Bandpass Filtering Mode");
+        this->filterModeA.addEnumItem("bandstop", "Bandstop Filtering Mode");
+        this->filterModeA.addEnumItem("allpass", "Allpass Filtering Mode");
+        this->filterModeA.addEnumItem("peaknotch", "Peaknotch Filtering Mode");
+        this->filterModeA.addEnumItem("lowshelf", "Lowshelf Filtering Mode");
+        this->filterModeA.addEnumItem("highshelf", "Highshelf Filtering Mode");
+        this->filterModeA.addEnumItem("rawcoefs", "Controlled By Raw Coefficients");
+        
+        //this->unitA.addEnumItem("frame", "Raw Frames");
+        //this->unitA.addEnumItem("Hz", "Framerate Expressed in Hertz");
+    }
+    
+    ~PiPoBiquad()
+    {
+      free(this->biquadState);
+      free(this->outValues);
+    }
+    
+    void initBiquadCoefficients()
+    {
+        float q = this->biquadQuality;
+        
+        if(this->biquadQNormalisation != 1.) {
+            q *= this->biquadQNormalisation;
+        }
+        
+        rta_biquad_coefs(b, a, (rta_filter_t)filterMode, normF0, q, biquadGain);
+    }
+    
+    void filterFrame(float *frameValues, float *outValues)//, int nFrames)
+    {
+        switch(this->biquadType) {
+            case DF1BiquadType:
+                for(unsigned int i = 0; i < this->frameHeight; i++) {
+                    for(unsigned int j = 0; j < this->frameWidth; j++) {
+                        outValues[i * this->frameWidth + j] = rta_biquad_df1_stride(frameValues[i * this->frameWidth + j], b, 1, a, 1, &(this->biquadState[j]), this->frameWidth);
+                    }
+                }
+                break;
+                
+            case DF2TBiquadType:
+                for(unsigned int i = 0; i < this->frameHeight; i++) {
+                    for(unsigned int j = 0; j < this->frameWidth; j++) {
+                        outValues[i * this->frameWidth + j] = rta_biquad_df2t_stride(frameValues[i * this->frameWidth + j], b, 1, a, 1, &(this->biquadState[j]), this->frameWidth);
+                    }
+                }
+                break;
+        }
+    }
+    // additionnal buffer for filter memory ? -> no ! (taken care of by biquadState array)
+    
+    
+    int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    {
+        enum BiquadTypeE biquadType = (enum BiquadTypeE)this->biquadTypeA.get();
+        enum FilteringModeE filterMode = (enum FilteringModeE)this->filterModeA.get();
+        //enum FrameRateUnitE unit = (enum FrameRateUnitE)this->unitA.get();
+        
+        float gain = this->gainA.get();
+        float frequency = this->frequencyA.get();
+        float Q = this->QA.get();
+        
+        unsigned int frameWidth = width;
+        unsigned int frameHeight = size;
+        
+        
+        if(frameWidth != this->frameWidth || frameHeight != this->frameHeight)
+        {
+            this->frameWidth = frameWidth;
+            this->frameHeight = frameHeight;
+            
+            this->biquadState = (float *)realloc(this->biquadState, 4 * this->frameWidth * sizeof(float));
+            memset(this->biquadState, 0., 4 * this->frameWidth);
+            this->outValues = (float *)realloc(this->outValues, this->frameWidth * this->frameHeight * sizeof(float));
+        }
+        
+        if(biquadType != this->biquadType)
+        {
+            this->biquadType = biquadType;
+            if(this->biquadType == DF1BiquadType) {
+                this->biquadState_nb = 4;
+            } else { // this->biquadType == DF2TBiquadType
+                this->biquadState_nb = 2;
+            }
+        }
+        
+        if(this->filterMode == RawCoefsFilteringMode)
+        {
+            float a1 = this->a1.get();
+            float a2 = this->a2.get();
+            float b0 = this->b0.get();
+            float b1 = this->b1.get();
+            float b2 = this->b2.get();
+            
+            if(a1 != this->a[0] || a2 != this->a[1] || b0 != this->b[0] || b1 != this->b[1] || b2 != this->b[2])
+            {
+                a[0] = a1;
+                a[1] = a2;
+                b[0] = b0;
+                b[1] = b1;
+                b[2] = b2;
+            }
+            
+            return this->propagateStreamAttributes(hasTimeTags, rate, offset, width, size, labels, 0, 0.0, 1);
+        }
+        
+        // if not in raw coefs control mode, compute coefs from gain / frequency / quality :
+        
+        if(filterMode != this->filterMode || rate != this->frameRate)
+        {
+            this->filterMode = filterMode;
+            this->frameRate = rate;
+            initBiquadCoefficients();
+        }
+        
+        //============================ more likely to change ============================//
+        if(gain != this->biquadGain || frequency != this->f0 || Q != this->biquadQuality)
+        {
+            this->biquadQuality = fmax(fmin(Q, 1.), PIPO_BIQUAD_MIN_Q);
+            this->QA.set(this->biquadQuality, true);
+            
+            this->f0 = fmax(fmin(frequency, this->frameRate), 0.);
+            this->frequencyA.set(this->f0, true);
+            this->normF0 = this->f0 / this->frameRate;
+            
+            this->biquadGain = fmax(gain, 0.);
+            this->gainA.set(this->biquadGain, true);
+            
+            initBiquadCoefficients();
+        }
+        
+        return this->propagateStreamAttributes(hasTimeTags, rate, offset, width, size, labels, false, 0.0, 1);
+    }
+    
+    int reset()
+    {
+        memset(this->biquadState, 0., 4 * this->frameWidth);
+        return this->propagateReset();
+    }
+
+    int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+    {
+        double outputTime = time;
+        for(unsigned int i = 0; i < num; i++)
+        {
+            //outputTime += (1000. / this->frameRate);
+            filterFrame(values, this->outValues);
+            int ret = this->propagateFrames(outputTime, weight, this->outValues, this->frameWidth * this->frameHeight, 1);
+            if(ret != 0)
+                return ret;
+            
+            values += size;
+        }
+        return 0;
+    }
+    
+};
+
+#endif /* _PIPO_BIQUAD_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoChop.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoChop.h
new file mode 100644
index 0000000..bd39aab
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoChop.h
@@ -0,0 +1,246 @@
+/**
+ * @file PiPoChop.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief PiPo equidistant segmentation and temporal modeling
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_CHOP_
+#define _PIPO_CHOP_
+
+#include "PiPo.h"
+#include "TempMod.h"
+#include <vector>
+#include <string>
+
+extern "C" {
+#include <float.h>
+}
+
+// keep quiet!
+#undef DEBUG
+
+
+class PiPoChop : public PiPo
+{
+public:
+  PiPoScalarAttr<double> offset_;
+  PiPoScalarAttr<double> chopsize_;
+  PiPoScalarAttr<bool> enDuration_;
+  PiPoScalarAttr<bool> enMin_;
+  PiPoScalarAttr<bool> enMax_;
+  PiPoScalarAttr<bool> enMean_;
+  PiPoScalarAttr<bool> enStddev_;
+
+private:
+  double nexttime_;
+  int    report_duration_;	// caches enDuration_ as index offset, mustn't change while running
+  TempModArray tempmod_;
+  std::vector<PiPoValue> outputvalues_;
+
+  // return next chop time or infinity when not chopping
+  double getnexttime ()
+  {
+    return chopsize_.get() > 0  ?  offset_.get() + chopsize_.get()  :  DBL_MAX;
+  }
+
+public:  
+  PiPoChop (Parent *parent, PiPo *receiver = NULL) 
+  : PiPo(parent, receiver),
+    tempmod_(),
+    offset_  (this, "offset",   "Time Offset Before Starting Segmentation [ms]", false, 0),
+    chopsize_(this, "size",	"Chop Size [ms] (0 = chop at end)", false, 242),
+    enDuration_(this, "duration", "Output Segment Duration", true, false),
+    enMin_   (this, "min",      "Calculate Segment Min", true, false),
+    enMax_   (this, "max",      "Calculate Segment Max", true, false),
+    enMean_  (this, "mean",     "Calculate Segment Mean", true, true),	// at least one tempmod on
+    enStddev_(this, "stddev",   "Calculate Segment StdDev", true, false)
+  {
+    nexttime_ = getnexttime();
+    report_duration_ = 0;
+  }
+  
+  ~PiPoChop (void)
+  {
+  }
+
+  int streamAttributes (bool hasTimeTags, double rate, double offset, 
+			unsigned int width, unsigned int size, 
+			const char **labels, bool hasVarSize, double domain, 
+			unsigned int maxFrames)
+  {
+#ifdef DEBUG
+  printf("PiPoChop streamAttributes timetags %d  rate %.0f  offset %f  width %d  size %d  labels %s  "
+	 "varsize %d  domain %f  maxframes %d\n",
+	 hasTimeTags, rate, offset, (int) width, (int) size, labels ? labels[0] : "n/a", (int) hasVarSize, domain, (int) maxFrames);
+#endif
+  
+    nexttime_ = getnexttime();
+    report_duration_ = (int) enDuration_.get();
+
+    /* resize temporal models */
+    tempmod_.resize(width);
+      
+    /* enable temporal models */ //TODO: switch at least one on
+    tempmod_.enable(enMin_.get(), enMax_.get(), enMean_.get(), enStddev_.get());
+      
+    /* get output size */
+    unsigned int outputsize = tempmod_.getNumValues();
+      
+    /* alloc output vector for duration and temporal modelling output */
+    outputvalues_.resize(outputsize + report_duration_);
+      
+    /* get labels */
+    char *mem = new char[(outputsize + report_duration_) * 64];
+    char **outlabels = new char*[outputsize + report_duration_];
+      
+    for (unsigned int i = 0; i < outputsize + report_duration_; i++)
+      outlabels[i] = mem + i * 64;
+
+    if (report_duration_)
+      snprintf(outlabels[0], 64, "Duration");
+    tempmod_.getLabels(labels, width, &outlabels[report_duration_], 64, outputsize);
+      
+    int ret = this->propagateStreamAttributes(true, rate, 0.0, outputsize + report_duration_, 1, (const char **) &outlabels[0], false, 0.0, 1);
+    
+    delete [] mem;
+    delete [] outlabels;
+      
+    return ret;
+  }
+  
+  int reset (void)
+  {
+    nexttime_ = getnexttime();
+    tempmod_.reset();
+    
+    return this->propagateReset();
+  };
+
+  
+  int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+#ifdef DEBUG
+    //printf("PiPoChop frames time %f (next %f)  size %d  num %d\n", time, nexttime_, size, num);
+#endif
+
+    int ret = 0;
+
+    if (time >= offset_.get())
+    {
+      // at first crossing of offset, nexttime_ == offset + duration
+
+      if (time >= nexttime_)
+      {
+        int outsize = static_cast<int>(outputvalues_.size());
+                    
+        if (report_duration_)
+          //TBD: calculate actual duration quantised to frame hops?
+          outputvalues_[0] = chopsize_.get();
+
+        /* get temporal modelling */
+        tempmod_.getValues(&outputvalues_[report_duration_], outsize - report_duration_, true);
+	      
+#ifdef DEBUG
+        printf("   segment! time %f at input time %f  nexttime_ %f outsize %d\n", 
+               nexttime_ - chopsize_.get(), time, nexttime_, outsize);
+#endif
+        /* report segment at precise last chop time */
+        ret = this->propagateFrames(nexttime_ - chopsize_.get(), weight, &outputvalues_[0], outsize, 1);
+        
+        if (ret != 0)
+          return ret;
+
+        nexttime_ += chopsize_.get();	// never called when not chopping
+      }
+      
+      /* feed temporal modelling */
+      /* TODO: split frame statistics between segments proportionally wrt to exact segmentation time */
+      for (unsigned int i = 0; i < num; i++)
+      {
+        tempmod_.input(values, size);
+        values += size;
+      }
+    }
+    
+    return 0;
+  }
+  
+  int finalize (double inputend)
+  {
+    double duration = chopsize_.get() > 0  ?  inputend - (nexttime_ - chopsize_.get())  :  inputend - offset_.get();
+    
+#ifdef DEBUG
+    printf("PiPoChop finalize time %f  duration %f  size %ld\n", inputend, duration, outputvalues_.size());
+#endif
+
+    if (1) // want last smaller segment? duration >= chopsize_.get())
+    {
+      /* end of segment (new onset or below off threshold) */
+      int outsize = static_cast<int>(outputvalues_.size());
+      
+      if (report_duration_)
+        // calculate actual duration of last chop
+        outputvalues_[0] = duration;
+
+      /* get temporal modelling */
+      if (outsize > 1)
+        tempmod_.getValues(&outputvalues_[report_duration_], outsize - report_duration_, true);
+      
+      /* report segment */
+      return this->propagateFrames(inputend - duration, 0.0, &outputvalues_[0], outsize, 1);
+    }
+    
+    return 0;
+  }
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c++
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
+
+#if CHOP_TEST
+int main (int argc, char *argv[])
+{
+    
+
+    return 0;
+}
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoConst.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoConst.h
new file mode 100644
index 0000000..5445451
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoConst.h
@@ -0,0 +1,184 @@
+/**
+ * @file PiPoConst.h
+ * @author Diemo.Schwarz@ircam.fr
+ * 
+ * @brief PiPo providing a constant value
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012 by IMTR IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_CONST_
+#define _PIPO_CONST_
+
+#define CONST_DEBUG DEBUG*1
+
+#include "PiPo.h"
+
+extern "C" {
+#include <stdlib.h>
+}
+
+class PiPoConst : public PiPo
+{
+public:
+  PiPoScalarAttr<float> value;
+  PiPoScalarAttr<const char *> name;
+
+  PiPoConst (Parent *parent, PiPo *receiver = NULL);
+  ~PiPoConst (void);
+  
+  int streamAttributes (bool hasTimeTags, double rate, double offset, 
+                        unsigned int width, unsigned int size, const char **labels, 
+                        bool hasVarSize, double domain, unsigned int maxFrames);
+  int finalize (double inputEnd);
+  int reset (void);
+  int frames (double time, double weight, float *values, unsigned int size, unsigned int num);
+  
+private:
+  int				numcols_;
+  PiPoValue		       *values_;
+};
+
+
+inline PiPoConst::PiPoConst (Parent *parent, PiPo *receiver)
+: PiPo(parent, receiver),
+  value(this, "value", "value to store for added column", false, 0),
+  name(this, "name",  "name of added column", true, "Constant"),
+  numcols_(0), values_(NULL)
+{}
+
+inline PiPoConst::~PiPoConst(void)
+{
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// init module
+//
+
+inline int PiPoConst::streamAttributes (bool hasTimeTags, double rate, double offset,
+				 unsigned int width, unsigned int size, 
+				 const char **labels, bool hasVarSize, 
+				 double domain, unsigned int maxFrames)
+{
+#if CONST_DEBUG >= 2
+    printf("PiPoConst streamAttributes timetags %d  rate %f  offset %f  width %d  size %d  labels %s  varsize %d  domain %f  maxframes %d\n",
+	 hasTimeTags, rate, offset, width, size, labels ? labels[0] : "n/a", hasVarSize, domain, maxFrames);
+
+#endif
+  
+#   define MAX_DESCR_NAME 64
+    numcols_ = width + 1;
+    values_   = (PiPoValue *) realloc(values_, maxFrames * size * numcols_ * sizeof(PiPoValue)); // alloc space for maxmal block size
+
+    /* get labels */
+    char *mem = new char[numcols_ * MAX_DESCR_NAME];
+    char **outlabels = new char*[numcols_];
+
+    for (int i = 0; i < numcols_; i++)
+      outlabels[i] = mem + i * MAX_DESCR_NAME;
+    
+    // copy input labels plus one more
+    if (labels != NULL)
+      memcpy(outlabels, labels, width * sizeof(char *));
+    else // no input labels given, invent one
+      for(unsigned int i = 0; i < width; i++)
+        outlabels[i] = (char *)"unnamed";
+    strncpy(outlabels[numcols_ - 1], name.get(), MAX_DESCR_NAME);
+
+    int ret = this->propagateStreamAttributes(hasTimeTags, rate, offset, numcols_, 1,
+					      (const char **) &outlabels[0], false, domain, 1);
+
+    delete [] mem;
+    delete [] outlabels;
+    
+    return ret;
+}
+
+inline int PiPoConst::finalize (double inputEnd) 
+{
+  //post("PiPoConst finalize %f\n", inputEnd);
+  return this->propagateFinalize(inputEnd); 
+};
+
+
+inline int PiPoConst::reset (void) 
+{ 
+  //post("PiPoConst reset\n");
+  return this->propagateReset(); 
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// compute and output data
+//
+
+inline int PiPoConst::frames (double time, double weight, float *invalues, unsigned int size, unsigned int num)
+{
+  int status = 0;
+  int nincols  = numcols_ - 1;	// num input columns
+  int ninrows  = size / nincols;
+  float *outvalues = values_;
+  float constvalue = value.get();
+  
+#if CONST_DEBUG >= 2
+  printf("PiPoConst::frames time %f  values %p  size %d  num %d --> %f\n",
+         time, invalues, size, num, constvalue);
+#endif
+  
+  for (unsigned int i = 0; i < num; i++)
+  {
+    for (int j = 0; j < ninrows; j++)
+    { // copy line by line
+      memcpy(outvalues, invalues, nincols * sizeof(float));
+      outvalues[numcols_ - 1] = constvalue;
+
+      outvalues += numcols_;
+      invalues  += nincols;
+    }
+  }
+
+  status = propagateFrames(time, weight, values_, ninrows * numcols_, num);
+  return status;
+}
+ 
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif /* _PIPO_CONST_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDct.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDct.h
new file mode 100644
index 0000000..e3071d2
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDct.h
@@ -0,0 +1,145 @@
+/**
+ * @file PiPoDct.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief RTA DCT PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_DCT_
+#define _PIPO_DCT_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_dct.h"
+}
+
+#include <vector>
+
+class PiPoDct : public PiPo
+{
+public:
+  enum WeightingMode { PlpMode, SlaneyMode, HtkMode, FeacalcMode };
+
+private:
+  std::vector<float> frame;
+  std::vector<float> weights;
+  unsigned int inputSize;
+  enum WeightingMode weightingMode;
+  
+public:
+  PiPoScalarAttr<int> order;
+  PiPoScalarAttr<PiPo::Enumerate> weighting;
+  
+  PiPoDct(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  frame(), weights(),
+  weighting(this, "weighting", "DCT Weighting Mode", true, FeacalcMode),
+  order(this, "order", "DCT Order", true, 12)
+  {
+    this->inputSize = 0;
+    this->weightingMode = FeacalcMode;
+    
+    this->weighting.addEnumItem("plp", "plp weighting");
+    this->weighting.addEnumItem("slaney", "slaney weighting");
+    this->weighting.addEnumItem("htk", "HTK weighting");
+    this->weighting.addEnumItem("feacalc", "feacalc weighting");
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    unsigned int order = this->order.get();
+    unsigned int inputSize = width * size;
+    
+    enum WeightingMode weightingMode = (enum WeightingMode)this->weighting.get();
+    if(weightingMode > FeacalcMode) {
+      weightingMode = FeacalcMode;
+    }
+      
+    if(order != this->frame.size() || inputSize != this->inputSize || weightingMode != this->weightingMode)
+    {
+      this->frame.resize(order);
+      this->weights.resize(inputSize * order);
+      this->inputSize = inputSize;
+      
+      switch(weightingMode)
+      {
+        case PlpMode:
+            rta_dct_weights(&this->weights[0], inputSize, order, rta_dct_plp);
+            break;
+            
+        case SlaneyMode:
+            rta_dct_weights(&this->weights[0], inputSize, order, rta_dct_slaney);
+            break;
+            
+        case HtkMode:
+            rta_dct_weights(&this->weights[0], inputSize, order, rta_dct_htk);
+            break;
+            
+        case FeacalcMode:
+            rta_dct_weights(&this->weights[0], inputSize, order, rta_dct_feacalc);
+            break;
+      }
+      
+      this->weightingMode = weightingMode;
+      
+      //rta_dct_weights(&this->weights[0], inputSize, order, rta_dct_feacalc);
+    }
+    
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, order, 1, NULL, 0, 0.0, 1);
+  }
+
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    for(unsigned int i = 0; i < num; i++)
+    {
+      rta_dct(&this->frame[0], values, &this->weights[0], this->inputSize,
+              static_cast<unsigned int>(this->frame.size()));
+      
+      int ret = this->propagateFrames(time, weight, &this->frame[0],
+                                      static_cast<unsigned int>(this->frame.size()), 1);
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDelta.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDelta.h
new file mode 100644
index 0000000..bd2c472
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoDelta.h
@@ -0,0 +1,203 @@
+/**
+ * @file PiPoDelta.h
+ * @author Diemo Schwarz
+ * 
+ * @brief PiPo calculating delta values on a stream
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2014 by ISMM IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_DELTA_
+#define _PIPO_DELTA_
+
+#include "PiPo.h"
+#include "RingBuffer.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_delta.h"
+}
+
+#include <vector>
+#include <cstdlib>
+
+class PiPoDelta : public PiPo
+{
+  RingBuffer<PiPoValue>  buffer;
+  std::vector<PiPoValue> weights;
+  std::vector<PiPoValue> frame;
+  unsigned int filter_size;
+  unsigned int input_size;
+  unsigned int missing_inputs;
+  PiPoValue    normalization_factor;
+  
+public:
+  PiPoScalarAttr<int>  filter_size_param;
+  PiPoScalarAttr<bool> normalize;
+    
+  PiPoDelta (Parent *parent, PiPo *receiver = NULL) 
+  : PiPo(parent, receiver),
+    buffer(), weights(), frame(), 
+    filter_size(0), input_size(0), missing_inputs(0), normalization_factor(1),
+    filter_size_param(this, "size", "Filter Size", true, 7),
+    normalize(this, "normalize", "Normalize output", true, true)
+  { }
+  
+  ~PiPoDelta ()
+  { }
+  
+  int streamAttributes (bool hasTimeTags, double rate, double offset, 
+			unsigned int width, unsigned int size, 
+			const char **labels, bool hasVarSize, double domain, 
+			unsigned int maxFrames)
+  {  
+    unsigned int filtsize = filter_size_param.get();
+    unsigned int insize  = width * size;
+    
+    if (filtsize != filter_size  ||  insize != input_size)
+    {
+      if (filtsize < 3)
+      {
+	//todo: report pipo_error("filter size must be >= 3");
+	filtsize = 3;
+      }
+      else if ((filtsize & 1) == 0) // even filtersize, must be odd
+      {
+	//todo: pipo_error("filter size must be odd: using %d instead of %d", filtsize - 1, filtsize);
+	filtsize--;
+      }
+    
+      unsigned int filter_delay = filtsize / 2; // center, filter_size is odd
+      
+      // ring size is the maximum between filter size and added delays
+      // (plus the past input to be reoutput)
+      int ring_size = filtsize > filter_delay + 1  
+		      ?  filtsize  :  filter_delay + 1;
+
+      buffer.resize(insize, ring_size);
+      frame.resize(insize);
+
+      // weights_vector zero-padded to fit the ring size (before the
+      // values) and then duplicated to be applied strait to the inputs
+      // ring buffer, so actual memory size is ring_size * 2
+      weights.resize(ring_size * 2);
+      std::fill(&weights[0], &weights[ring_size - filtsize], 0.);
+      rta_delta_weights(&weights[ring_size - filtsize], filtsize);
+
+      // duplicate (unroll) weights for contiguous indexing
+      //C++11: std::copy_n(weights.begin(), filtsize, weights.begin() + filtsize);
+      for (int i = 0; i < ring_size; i++)
+	weights[i + ring_size] = weights[i];
+
+      normalization_factor = rta_delta_normalization_factor(filtsize);
+      filter_size = filtsize;
+      input_size  = insize;
+    }
+    
+    offset -= 1000.0 * 0.5 * (filtsize - 1) / rate;
+
+    char **dlab = new char*[width];
+    const char **newlab = NULL;
+
+    if (labels)
+    { // prefix labels with "Delta"
+#     define prefix "Delta"
+      
+      for (unsigned int i = 0; i < width; i++)
+      {
+	dlab[i] = (char *) malloc(strlen(prefix) + (labels[i] ? strlen(labels[i]) : 0) + 1);
+	sprintf(dlab[i], prefix "%s", labels[i]);
+      }
+
+      newlab = (const char **) dlab;
+    }
+    
+    int ret = propagateStreamAttributes(hasTimeTags, rate, offset, insize, 
+				    1, newlab, 0, 0.0, 1);
+
+    if (labels)
+      for (unsigned int i = 0; i < width; i++)
+	free(dlab[i]);
+	delete[] dlab;
+    return ret;
+  }
+  
+  int reset () 
+  { 
+    buffer.reset();
+    return propagateReset(); 
+  };
+  
+  int frames (double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    int ret = 0;
+
+    for (unsigned int i = 0; i < num; i++)
+    {
+      buffer.input(values, size);
+
+      if (buffer.filled)
+      {
+	float *wptr = &weights[buffer.size - buffer.index];
+
+	rta_delta_vector(&frame[0], &buffer.vector[0], buffer.width, wptr, buffer.size);
+      
+	if (normalize.get())
+	{
+	  for (unsigned int i = 0; i < size; i++)
+	    frame[i] *= normalization_factor;
+	}
+
+	ret = this->propagateFrames(time, weight, &frame[0],
+                                static_cast<unsigned int>(frame.size()), 1);
+      }
+
+      if (ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif /* _PIPO_DELTA_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFft.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFft.h
new file mode 100644
index 0000000..1d71dad
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFft.h
@@ -0,0 +1,496 @@
+/**
+ * @file PiPoFft.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief RTA FFT PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_FFT_
+#define _PIPO_FFT_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_fft.h"
+#include "rta_int.h"
+#include <float.h>
+#include <math.h>
+}
+
+#define MIN_FFT_SIZE 16
+#define MAX_FFT_SIZE 65536
+#define DB_TO_LIN(x) (exp(0.115129254649702 * x))
+
+static const double itur468Coeffs[21][2] = {
+  {31.5, -29.9},
+  {63.0, -23.9},
+  {100.0, -19.8},
+  {200.0, -13.8}, 
+  {400.0, -7.8},
+  {800.0, -1.9},
+  {1000.0, 0.0},
+  {2000.0, 5.6},
+  {3150.0, 9.0},
+  {4000.0, 10.5},
+  {5000.0, 11.7},
+  {6300.0, 12.2},
+  {7100.0, 12.0},
+  {8000.0, 11.4},
+  {9000.0, 10.1},
+  {10000.0, 8.1},
+  {12500.0, 0.0},
+  {14000.0, -5.3},
+  {16000.0, -11.7},
+  {20000.0, -22.2},
+  {31500.0, -42.7}
+};
+
+#include <vector>
+
+static int
+getClosestItur468Index(double freq)
+{
+  for(int i = 0; i < 21; i++)
+  { 
+    if(freq < itur468Coeffs[i][0])
+      return i - 1;
+  }
+
+  return 19;
+}
+
+static double
+getItur468Factor(double freq)
+{
+  int index = getClosestItur468Index(freq);
+  double levl = 0.0;
+  
+  if(index < 0)
+  {
+    double freq0 = itur468Coeffs[0][0];
+    double levl0 = itur468Coeffs[0][1];
+    
+    levl = levl0 + log2(freq / freq0) * 6.0;
+  }
+  else
+  {
+    double freq0 = itur468Coeffs[index][0];
+    double freq1 = itur468Coeffs[index + 1][0];
+    double levl0 = itur468Coeffs[index][1];
+    double levl1 = itur468Coeffs[index + 1][1];
+
+    levl = levl0 + (freq - freq0) * (levl1 - levl0) / (freq1 - freq0);
+  }
+  
+  return DB_TO_LIN(levl);
+}
+
+class PiPoFft : public PiPo
+{
+public:
+  enum OutputMode { ComplexFft, MagnitudeFft, PowerFft, LogPowerFft };
+  enum WeightingMode { NoWeighting, AWeighting, BWeighting, CWeighting, DWeighting, Itur468Weighting};
+  
+  std::vector<float> fftFrame;
+  std::vector<float> fftWeights;
+  double sampleRate;
+  int fftSize;
+  enum OutputMode outputMode;
+  enum WeightingMode weightingMode;
+  rta_fft_setup_t *fftSetup;
+  float fftScale;
+
+public:
+  PiPoScalarAttr<int> size;
+  PiPoScalarAttr<PiPo::Enumerate> mode;
+  PiPoScalarAttr<bool> norm;
+  PiPoScalarAttr<PiPo::Enumerate> weighting;
+
+  PiPoFft(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  fftFrame(),
+  fftWeights(),
+  size(this, "size", "FFT Size", true, 0),
+  mode(this, "mode", "FFT Mode", true, PowerFft),  
+  norm(this, "norm", "Normalize FFT", true, true),
+  weighting(this, "weighting", "FFT Weighting", true, NoWeighting)
+  {
+    this->sampleRate = 1.0;
+    this->fftSize = 0;
+    this->outputMode = PowerFft;
+    this->weightingMode = NoWeighting;
+    this->fftSetup = NULL;
+    this->fftScale = 1.0;
+
+    this->mode.addEnumItem("complex", "Complex output");
+    this->mode.addEnumItem("magnitude", "Magnitude spectrum");
+    this->mode.addEnumItem("power", "Power spectrum");
+    this->mode.addEnumItem("logpower", "Logarithmic power spectrum");
+
+    this->weighting.addEnumItem("none", "No weighting");
+    this->weighting.addEnumItem("a", "dB-A weighting");
+    this->weighting.addEnumItem("b", "dB-B weighting");
+    this->weighting.addEnumItem("c", "dB-C weighting");
+    this->weighting.addEnumItem("d", "dB-C weighting");
+    this->weighting.addEnumItem("itur468", "ITU-R 468 weighting");
+  }
+  
+  ~PiPoFft(void)
+  {
+    if(this->fftSetup != NULL)
+      rta_fft_setup_delete(this->fftSetup);
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    int fftSize = this->size.get();
+    enum OutputMode outputMode = (enum OutputMode)this->mode.get();
+    bool norm = this->norm.get();
+    enum WeightingMode weightingMode = (enum WeightingMode)this->weighting.get();
+    int inputSize = width * size;
+    double sampleRate = (double)size / domain;
+    int outputSize, outputWidth;
+    const char *fftColNames[2];
+    
+    if(fftSize <= 0)
+      fftSize = rta_inextpow2(inputSize);
+    else if(fftSize > MAX_FFT_SIZE)
+      fftSize = MAX_FFT_SIZE;
+    
+    if(norm)
+      this->fftScale = 1.0 / fftSize;
+    else
+      this->fftScale = 1.0;
+    
+    outputSize = fftSize / 2;
+    
+    if(outputMode > LogPowerFft)
+      outputMode = LogPowerFft;
+    
+    if(weightingMode > Itur468Weighting)
+      weightingMode = Itur468Weighting;
+    
+    this->sampleRate = sampleRate;
+    
+    switch(outputMode)
+    {
+      case ComplexFft:
+      {
+        fftColNames[0] = "Real";
+        fftColNames[1] = "Imag";
+        outputWidth = 2;
+        break;
+      }
+        
+      case MagnitudeFft:
+      {
+        fftColNames[0] = "Magnitude";
+        outputWidth = 1;
+        break;
+      }
+        
+      case PowerFft:
+      {
+        fftColNames[0] = "Power";
+        outputWidth = 1;
+        break;
+      }
+        
+      case LogPowerFft:
+      {
+        fftColNames[0] = "LogPower";
+        outputWidth = 1;
+        break;
+      }
+    }
+    
+    if(fftSize != this->fftSize || weightingMode != this->weightingMode)
+    {
+      float *nyquistMagPtr;
+      
+      /* alloc output frame */
+      this->fftFrame.resize(fftSize + 2);
+      this->fftWeights.resize(outputSize + 1);
+      this->fftSize = fftSize;
+      
+      nyquistMagPtr = &this->fftFrame[fftSize];
+      this->fftFrame[fftSize + 1] = 0.0; /* zero nyquist phase */
+      
+      double indexToFreq = sampleRate / fftSize;
+      
+      switch(weightingMode)
+      {
+        case NoWeighting:
+        {
+          for(int i = 0; i <= outputSize; i++)
+            this->fftWeights[i] = 1.0f;
+          
+          break;
+        }
+          
+        case AWeighting:
+        {
+          static const double weightScale = 1.258953930848941;
+          
+          this->fftWeights[0] = 0.0;
+          
+          for(int i = 1; i <= outputSize; i++)
+          {
+            double freq = indexToFreq * i;
+            double fsq = freq * freq;
+            double w = fsq * fsq * 12200.0 * 12200.0 / ((fsq + 20.6 * 20.6) * (fsq + 12200.0 * 12200.0) * sqrt((fsq + 107.7 * 107.7) * (fsq + 737.9 * 737.9)));
+            this->fftWeights[i] = (float)(w * weightScale);
+          }
+          
+          break;
+        }
+          
+        case BWeighting:
+        {
+          static const double weightScale = 1.019724962918924;
+
+          this->fftWeights[0] = 0.0;
+          
+          for(int i = 1; i <= outputSize; i++)
+          {
+            double freq = indexToFreq * i;
+            double fsq = freq * freq;
+            double w = freq * fsq * 12200.0 * 12200 / ((fsq + 20.6 * 20.6) * sqrt(fsq + 158.5 * 158.5) * (fsq + 12200 * 12200));
+            this->fftWeights[i] = (float)(w * weightScale);
+          }
+          
+          break;
+        }
+          
+        case CWeighting:
+        {
+          static const double weightScale = 1.007146464025963;
+          
+          this->fftWeights[0] = 0.0;
+          
+          for(int i = 1; i <= outputSize; i++)
+          {
+            double freq = indexToFreq * i;
+            double fsq = freq * freq;
+            double w = fsq * 12200.0 * 12200.0 / ((fsq + 20.6 * 20.6) * (fsq + 12200.0 * 12200.0));
+            this->fftWeights[i] = (float)(w * weightScale);
+          }
+          
+          break;
+        }
+          
+        case DWeighting:
+        {
+          static const double weightScale = 0.999730463675085;
+          
+          this->fftWeights[0] = 0.0;
+          
+          for(int i = 1; i <= outputSize; i++)
+          {
+            double freq = indexToFreq * i;
+            double fsq = freq * freq;
+            double n1 = 1037918.48 - fsq;
+            double n2 = 1080768.16 * fsq;
+            double d1 = 9837328.0 - fsq;
+            double d2 = 11723776.0 * fsq;
+            double h = (n1 * n1 + n2) / (d1 * d1 + d2);
+            double w = 14499.711699348260202 * freq * sqrt(h / ((fsq + 79919.29) * (fsq + 1345600.0)));
+            this->fftWeights[i] = (float)(w * weightScale);
+          }
+                    
+          break;
+        }          
+          
+        case Itur468Weighting:
+        {
+          this->fftWeights[0] = 0.0;
+
+          for(int i = 1; i <= outputSize; i++)
+          {
+            double freq = indexToFreq * i;
+            this->fftWeights[i] = (float)getItur468Factor(freq);
+          }
+          
+          break;
+        }
+      }
+      
+      /* setup FFT */    
+      if(this->fftSetup != NULL)
+        rta_fft_setup_delete(this->fftSetup);
+      
+      rta_fft_real_setup_new(&this->fftSetup, rta_fft_real_to_complex_1d, (float *)&this->fftScale, NULL, inputSize, &this->fftFrame[0], fftSize, nyquistMagPtr);
+    }
+    
+    this->outputMode = outputMode;
+    this->weightingMode = weightingMode;
+    
+    return this->propagateStreamAttributes(0, rate, offset, outputWidth, outputSize + 1, fftColNames, 0, 0.5 * sampleRate, 1);
+  }
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    if(this->fftSetup != NULL)
+    {
+      float *fftFrame = &this->fftFrame[0];
+      unsigned int outputMode = this->outputMode;
+      int fftSize = this->fftSize;
+      int outputSize = fftSize / 2;
+      float *outputFrame;
+      int outputWidth;
+      
+      if(outputMode > LogPowerFft)
+        outputMode = LogPowerFft;
+      
+      for(unsigned int i = 0; i < num; i++)
+      {
+        rta_fft_execute(fftFrame, values, size, this->fftSetup);
+        
+        switch(outputMode)
+        {
+          case ComplexFft:
+          {
+            outputWidth = 2;
+            outputFrame = fftFrame;
+            
+            /* apply weighting */
+            if(this->weightingMode != NoWeighting)
+            {
+              for(int i = 0; i <= outputSize; i++)
+              {
+                outputFrame[2 * i] *= this->fftWeights[i];
+                outputFrame[2 * i + 1] *= this->fftWeights[i];
+              }
+            }
+            
+            break;
+          }
+            
+          case MagnitudeFft:
+          {
+            float re, im;
+            
+            outputWidth = 1;
+            outputFrame = &this->fftFrame[outputSize];
+            
+            re = fftFrame[outputSize * 2];
+            im = fftFrame[outputSize * 2 + 1];
+            outputFrame[outputSize] = sqrtf(re * re + im * im) * this->fftWeights[outputSize];
+            
+            for(int i = outputSize - 1; i > 0; i--)
+            {
+              re = fftFrame[i * 2];
+              im = fftFrame[i * 2 + 1];
+              outputFrame[i] = 2 * sqrtf(re * re + im * im) * this->fftWeights[i];
+            }
+            
+            re = fftFrame[0];
+            im = fftFrame[1];
+            outputFrame[i] = sqrtf(re * re + im * im) * this->fftWeights[outputSize];
+            
+            break;
+          }
+            
+          case PowerFft:
+          {
+            float re, im;
+            
+            outputWidth = 1;
+            outputFrame = &this->fftFrame[outputSize];
+            
+            re = fftFrame[outputSize * 2] * this->fftWeights[outputSize];
+            im = fftFrame[outputSize * 2 + 1] * this->fftWeights[outputSize];
+            outputFrame[outputSize] = re * re + im * im;
+            
+            for(int i = outputSize - 1; i > 0; i--)
+            {
+              re = fftFrame[i * 2] * this->fftWeights[i];
+              im = fftFrame[i * 2 + 1] * this->fftWeights[i];
+              outputFrame[i] = 4 * (re * re + im * im);
+            }
+                    
+            re = fftFrame[0] * this->fftWeights[0];
+            im = fftFrame[1] * this->fftWeights[0];
+            outputFrame[0] = re * re + im * im;
+          
+            break;
+          }
+            
+          case LogPowerFft:
+          {
+            const double minLogValue = 1e-48;
+            const double minLog = -480.0;
+            float re, im, pow;
+            
+            outputWidth = 1;
+            outputFrame = &this->fftFrame[outputSize];
+            
+            re = fftFrame[outputSize * 2] * this->fftWeights[outputSize];
+            im = fftFrame[outputSize * 2 + 1] * this->fftWeights[outputSize];
+            pow = re * re + im * im;
+          
+            outputFrame[outputSize] = ((pow > minLogValue)? (10.0f * log10f(pow)): minLog);
+          
+            for(int i = outputSize - 1; i > 0; i--)
+            {
+              re = fftFrame[i * 2] * this->fftWeights[i];
+              im = fftFrame[i * 2 + 1] * this->fftWeights[i];
+              pow = re * re + im * im;
+              outputFrame[i] = ((pow > minLogValue)? (10.0f * log10f(pow)): minLog);
+            }
+            
+            re = fftFrame[0] * this->fftWeights[0];
+            im = fftFrame[1] * this->fftWeights[0];
+            pow = re * re + im * im;
+            outputFrame[0] = ((pow > minLogValue)? (10.0f * log10f(pow)): minLog);
+            
+            break;
+          }
+        }
+        
+        int ret = this->propagateFrames(time, weight, outputFrame, outputWidth * (outputSize + 1), 1);
+        
+        if(ret != 0)
+          return ret;
+      
+        values += size;
+      }
+    }
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFiniteDif.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFiniteDif.h
new file mode 100644
index 0000000..e0ac7aa
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoFiniteDif.h
@@ -0,0 +1,474 @@
+/**
+ * @file PiPoFiniteDif.h
+ * @author Gaël Dubus
+ * 
+ * @brief PiPo calculating various derivative values on a stream using the finite difference method
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2015 by ISMM IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_FINITE_DIF_
+#define _PIPO_FINITE_DIF_
+
+#include "PiPo.h"
+#include "RingBuffer.h"
+#include <sstream>
+
+extern "C" {
+  //#include "rta_configuration.h"
+#include "finitedifferences.h"
+}
+
+#include <vector>
+
+class PiPoFiniteDif : public PiPo {
+ private:
+  RingBuffer<PiPoValue>  buffer;
+  std::vector<PiPoValue> weights;
+  std::vector<PiPoValue> frame;
+  int filter_size;
+  int input_size;
+  //unsigned int missing_inputs;
+  //PiPoValue normalization_factor;
+  int accuracy_order;
+  int derivative_order;
+  FDMethod method;
+ public:
+  PiPoScalarAttr<int>  filter_size_param;
+  PiPoScalarAttr<bool> temporalize;
+  PiPoScalarAttr<int> derivative_order_param;
+  PiPoScalarAttr<int> accuracy_order_param;
+  PiPoScalarAttr<float> delta_t;
+  PiPoScalarAttr<PiPo::Enumerate> fdmethod;
+    
+  PiPoFiniteDif (Parent *parent, PiPo *receiver = NULL) 
+  : PiPo(parent, receiver),
+    buffer(),
+    weights(),
+    frame(), 
+    filter_size(0),
+    input_size(0),
+    //missing_inputs(0),
+    //normalization_factor(1),
+    accuracy_order(1),
+    derivative_order(1),
+    method(Backward),
+    filter_size_param(this, "size", "Filter Size", true, 3),
+    //normalize(this, "normalize", "Normalize output", true, false),
+    derivative_order_param(this, "order", "Derivative order", true, 1),
+    accuracy_order_param(this, "accuracy", "Accuracy order", true, 2),
+    delta_t(this, "dt", "Sampling period", true, 0.01),
+    fdmethod(this, "method", "Finite difference method", true, Backward),
+    temporalize(this, "temporalize", "Take into account the sample rate in the computation", false, false)
+  {
+    this->fdmethod.addEnumItem("backward", "Backward FD");
+    this->fdmethod.addEnumItem("centered", "Centered FD");
+    this->fdmethod.addEnumItem("forward", "Forward FD");
+  }
+  
+  ~PiPoFiniteDif ()
+  { }
+  
+  int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames){
+    int filtsize = filter_size_param.get();
+    int deriv_order = derivative_order_param.get();
+    int accur_order = accuracy_order_param.get();
+    int insize  = width * size;
+    FDMethod meth = (FDMethod)fdmethod.get();
+    std::ostringstream error_message;
+    int temp;
+    int filter_delay = 0;
+
+    bool debug = false;
+    
+    if (debug)
+    {
+      error_message << "In: filter_size = " << filter_size << ", input_size = " << input_size << ", accuracy_order = " << accuracy_order << ", derivative_order = " << derivative_order << ", method = " << method;
+      signalWarning(error_message.str());
+      error_message.str("");
+      error_message << "Inner parameters: filtsize = " << filtsize << ", insize = " << insize << ", accur_order = " << accur_order << ", deriv_order = " << deriv_order << ", meth = " << meth;
+      signalWarning(error_message.str());
+      error_message.str("");
+    }
+    //Important parameter change -> reinitialization
+    if (meth != method || deriv_order != derivative_order ||
+        accur_order != accuracy_order || filtsize != filter_size ||
+        insize != input_size)
+    {
+
+      //First, check and update method, deriv_order, accur_order, filtsize
+      //Verifications to perform in all cases
+      if (deriv_order != derivative_order && deriv_order < 1)
+      {
+        signalWarning("derivation order must be >= 1, set to 1");
+        deriv_order = 1;
+      }
+      
+      //Verifications depending on the method
+      switch (meth)
+      {
+        case Centered:
+          //Derivative order has changed
+          if (deriv_order != derivative_order)
+          {
+            if (deriv_order > 6)
+            {
+              signalWarning("derivation order must be <= 6 for a centered method, set to 6");
+              deriv_order = 6;
+            }
+          }
+
+          //Modification by filter size (or by both filter size and accuracy order) (or derivative order has changed) (or method)
+          if (deriv_order != derivative_order || meth != method || filtsize != filter_size)
+          {
+            //New filter size should be odd
+            if ((filtsize & 1) == 0)
+            {
+              error_message << "filter size must be odd: using " << filtsize-1 << " instead of " << filtsize;
+              signalWarning(error_message.str());
+              error_message.str("");
+              filtsize--;
+            }
+
+            //Check that the filter size lies within acceptable bounds
+            temp = 3 + 2 * ((deriv_order - 1) / 2);
+            
+            if (filtsize < temp)
+            {
+              error_message << "filter size must be >= " << temp << " for a centered method with derivation order " << deriv_order << ", set to " << temp; 
+              signalWarning(error_message.str());
+              error_message.str("");
+              filtsize = temp;
+            }
+            else
+            {
+              temp = 9 - 2 * ((deriv_order - 1) / 4);
+
+              if (filtsize > temp)
+              {
+                error_message << "filter size must be <=" << temp << " for a centered method with derivation order " << deriv_order << ", set to " << temp;
+                signalWarning(error_message.str());
+                error_message.str("");
+                filtsize = temp; 
+              }
+            }
+
+            //Update accuracy order
+            temp = filtersize_to_accuracy(meth, deriv_order, filtsize);
+
+            //If both filter size and accuracy order were provided, check that they are compatible
+            //if (accur_order != accuracy_order && temp != accur_order){
+            if (temp != accur_order)
+            {
+              error_message << "accuracy order updated to " << temp;
+              signalWarning(error_message.str());
+              error_message.str("");
+            }
+
+            accur_order = temp;
+          }
+          //Modification by accuracy order (only)
+          else 
+          {
+            //New accuracy order should be even
+            if ((accur_order & 1) == 1)
+            {
+              error_message << "accuracy order must be even for a centered method: using " << accur_order-1 << " instead of " << accur_order;
+              signalWarning(error_message.str());
+              error_message.str("");
+              accur_order--;
+            }
+
+            if (accur_order != accuracy_order)
+            {
+              //Check that accuracy order lies within acceptable bounds
+              if (accur_order < 2)
+              {
+                signalWarning("accuracy order must be >= 2, set to 2");
+                accur_order = 2;
+              }
+              else
+              {
+                temp = 8 - ((deriv_order - 1) / 2) * ((deriv_order + 1) / 2);
+
+                if (accur_order > temp)
+                {
+                  error_message << "accuracy order must be <=" << temp << " for a centered method with derivation order " << deriv_order << ", set to " << temp;
+                  signalWarning(error_message.str());
+                  error_message.str("");
+                  accur_order = temp;
+                }
+              }
+            }
+
+            //Update filter size
+            filtsize = accuracy_to_filtersize(meth, deriv_order, accur_order);
+
+            if (filter_size != filtsize)
+            {
+              error_message << "filter size updated to " << filtsize;
+              signalWarning(error_message.str());
+              error_message.str("");
+            }
+          }
+          break;
+  
+      case Forward:
+      case Backward:
+        if (deriv_order > 4)
+        {
+           signalWarning("derivation order must be <= 4 for a backward or forward method, set to 4");
+           deriv_order = 4;
+        }
+
+        //Modification by filter size (or by both filter size and accuracy order) (or derivative order has changed)
+        if (deriv_order != derivative_order || meth != method || filtsize != filter_size)
+        {
+           //Check that the filter size lies within acceptable bounds
+          temp = deriv_order + 1;
+
+          if (filtsize < temp)
+          {
+            error_message << "filter size must be >= " << temp << " for a backward or forward method with derivation order " << deriv_order << ", set to " << temp; 
+            signalWarning(error_message.str());
+            error_message.str("");
+            filtsize = temp;
+          }
+          else
+          {
+            temp = 6 + deriv_order - deriv_order / 4;
+
+            if (filtsize > temp)
+            {
+              error_message << "filter size must be <=" << temp << " for a backward or forward method with derivation order " << deriv_order << ", set to " << temp;
+              signalWarning(error_message.str());
+              error_message.str("");
+              filtsize = temp; 
+            }
+          }
+
+          //Update accuracy order
+          temp = filtersize_to_accuracy(meth, deriv_order, filtsize);
+
+          //If both filter size and accuracy order were provided, check that they are compatible
+          //if (accur_order != accuracy_order && temp != accur_order){
+          if (temp != accur_order)
+          {
+            error_message << "accuracy order updated to " << temp;
+            signalWarning(error_message.str());
+            error_message.str("");
+          }
+
+          accur_order = temp;
+        }
+        //Modification by accuracy order (only)
+        else
+        {
+          if (accur_order != accuracy_order)
+          {
+            //Check that accuracy order lies within acceptable bounds
+            if (accur_order < 1)
+            {
+              signalWarning("accuracy order must be >= 1, set to 1");
+              accur_order = 1;
+            }
+            else
+            {
+              temp = 6 - deriv_order / 4;
+              if (accur_order > temp)
+              {
+                error_message << "accuracy order must be <=" << temp << " for a backward or forward method with derivation order " << deriv_order << ", set to " << temp;
+                signalWarning(error_message.str());
+                error_message.str("");
+                accur_order = temp;
+              }
+            }
+
+            //Update filter size
+            filtsize = accuracy_to_filtersize(meth, deriv_order, accur_order);
+
+            if (filter_size != filtsize)
+            {
+              error_message << "filter size updated to " << filtsize;
+              signalWarning(error_message.str());
+              error_message.str("");
+            }
+          }
+        }
+        break;
+
+      default:
+        signalWarning("unknown method, set to Backward");
+        meth = Backward;
+        break;
+      }
+      
+      // compute filter delay
+      switch (meth)
+      {
+        case Centered:
+          filter_delay = filtsize/2;
+          break;
+
+        case Backward:
+          filter_delay = 0;
+          break;
+
+        case Forward:
+          filter_delay = filtsize-1;
+          break;
+
+        default:
+          signalError("unknown method");
+          break;
+      }
+ 
+      // ring size is the maximum between filter size and added delays
+      // (plus the past input to be reoutput)
+      int ring_size = filtsize > filter_delay + 1  
+                    ? filtsize
+                    : filter_delay + 1;
+
+      buffer.resize(insize, ring_size);
+      frame.resize(insize);
+
+      // weights_vector zero-padded to fit the ring size (before the
+      // values) and then duplicated to be applied strait to the inputs
+      // ring buffer, so actual memory size is ring_size * 2
+      weights.resize(ring_size * 2);
+      std::fill(&weights[0], &weights[ring_size - filtsize], 0.);
+      finitedifferences_weights_by_filtersize(&weights[ring_size - filtsize], deriv_order, filtsize, meth);
+
+      // duplicate (unroll) weights for contiguous indexing
+      //C++11: std::copy_n(weights.begin(), filtsize, weights.begin() + filtsize);
+      for (int i = 0; i < ring_size; i++)
+        weights[i + ring_size] = weights[i];
+
+      //normalization_factor = 1.;//finitedifferences_normalization_factor(filtsize, meth, accur_order)
+      //update private variables
+      filter_size = filtsize;
+      input_size  = insize;
+      accuracy_order = accur_order;
+      derivative_order = deriv_order;
+      method = meth;
+      //update pipo parameters silently
+      filter_size_param.set(filtsize, true);
+      accuracy_order_param.set(accur_order, true);
+      derivative_order_param.set(deriv_order, true);
+      fdmethod.set(meth, true);
+
+      if (debug)
+      {
+        error_message << "Out: filter size = " << filter_size << ", input size = " << input_size << ", accuracy order = " << accuracy_order << ", derivative order = " << derivative_order << ", method = " << method;
+        signalError(error_message.str());
+        error_message.str("");
+      }
+    }
+  
+    //offset -= 1000.0 * 0.5 * (filtsize - 1) / rate;
+    offset -= 1000.0 * filter_delay / rate;
+    
+    char **dlab = new char*[width];
+    const char **newlab = NULL;
+
+    if (labels)
+    { // prefix labels with "Delta"
+#define prefix "Delta"
+      
+      for (unsigned int i = 0; i < width; i++)
+      {
+        dlab[i] = (char *) malloc(strlen(prefix) + (labels[i] ? strlen(labels[i]) : 0) + 1);
+        sprintf(dlab[i], prefix "%s", labels[i]);
+      }
+
+      newlab = (const char **) dlab;
+    }
+    
+    int ret = propagateStreamAttributes(hasTimeTags, rate, offset, insize, 
+            1, newlab, 0, 0.0, 1);
+
+    if (labels)
+      for (unsigned int i = 0; i < width; i++)
+  
+    free(dlab[i]);
+    delete[] dlab;
+    return ret;
+  }
+  
+  int reset ()
+  { 
+    buffer.reset();
+    return propagateReset(); 
+  };
+  
+  int frames (double time, double weight, float *values, unsigned int size, unsigned int num){
+    int ret = 0;
+
+    for (unsigned int i = 0; i < num; i++)
+    {
+      buffer.input(values, size);
+
+      if (buffer.filled)
+      {
+        float *wptr = &weights[buffer.size - buffer.index];
+        finitedifferences_vector(&frame[0], &buffer.vector[0], buffer.width, wptr, buffer.size);
+              
+        // if (normalize.get())
+        // {
+        //   for (int i = 0; i < size; i++)
+        //     frame[i] *= normalization_factor;
+        // }
+
+        ret = this->propagateFrames(time, weight, &frame[0],
+                                    static_cast<unsigned int>(frame.size()), 1);
+      }
+
+      if (ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif /* _PIPO_FINITE_DIFFERENCE_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoGate.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoGate.h
new file mode 100644
index 0000000..dcc5f7f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoGate.h
@@ -0,0 +1,294 @@
+/**
+ * @file PiPoGate.h
+ * @author Diemo.Schwarz@ircam.fr
+ *
+ * @brief PiPo calculating silence segmentation by on/off threshold gating
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_GATE_
+#define _PIPO_GATE_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_selection.h"
+}
+
+#include "TempMod.h"
+#include <vector>
+#include <string>
+
+class PiPoGate : public PiPo
+{
+
+public:
+  PiPoScalarAttr<int> colindex;
+  PiPoScalarAttr<int> numcols;
+  PiPoScalarAttr<double> threshold;
+  PiPoScalarAttr<double> offthresh;
+  PiPoScalarAttr<double> mininter;
+  PiPoScalarAttr<bool> duration;
+  PiPoScalarAttr<double> durthresh;
+  PiPoScalarAttr<double> maxsegsize;
+  PiPoScalarAttr<bool> enable_min;
+  PiPoScalarAttr<bool> enable_max;
+  PiPoScalarAttr<bool> enable_mean;
+  PiPoScalarAttr<bool> enable_stddev;
+  
+private:
+  double offset;
+  double frameperiod;
+  double onsettime;
+  bool reportduration;
+  bool segison;
+  TempModArray tempmod;
+  std::vector<PiPoValue> outputvalues;
+
+public:
+  PiPoGate (Parent *parent, PiPo *receiver = NULL) 
+  : PiPo(parent, receiver),
+    tempmod(), outputvalues(),
+    colindex(this, "colindex", "Index of First Column Used for Onset Calculation", true, 0),
+    numcols(this, "numcols", "Number of Columns Used for Onset Calculation", true, -1),
+    duration(this, "duration", "Output Segment Duration", true, false),
+    threshold(this, "threshold", "Onset Threshold", false, -12),
+    offthresh(this, "offthresh", "Segment End Threshold", false, -80),
+    mininter(this, "mininter", "Minimum Onset Interval", false, 50.0),
+    durthresh(this, "durthresh", "Minumum Segment Duration", false, 0.0),
+    maxsegsize(this, "maxdur", "Maximum Segment Duration", false, 0.0),
+    enable_min(this, "min", "Calculate Segment Min", true, false),
+    enable_max(this, "max", "Calculate Segment Max", true, false),
+    enable_mean(this, "mean", "Calculate Segment Mean", true, false),
+    enable_stddev(this, "stddev", "Calculate Segment StdDev", true, false)
+  {
+    this->offset = 0.0;
+    this->frameperiod = 1.;
+    this->onsettime = 0;
+    
+    this->reportduration = false;
+    this->segison = false;
+  }
+  
+  ~PiPoGate (void)
+  { }
+  
+  int streamAttributes (bool hastimetags, double rate, double offset,
+                        unsigned int width, unsigned int size, const char **labels,
+                        bool hasvarsize, double domain, unsigned int maxframes)
+  {
+    int inputsize = width;
+    
+    this->frameperiod = 1000.0 / rate;
+    this->offset = -this->frameperiod; // offset of negative frame period to include signal just before peak
+    this->onsettime = 0;
+    this->reportduration = this->duration.get();
+    
+    if (this->reportduration)
+    {
+      /* resize temporal models */
+      this->tempmod.resize(inputsize);
+      
+      /* enable temporal models */
+      this->tempmod.enable(this->enable_min.get(), this->enable_max.get(), this->enable_mean.get(), this->enable_stddev.get());
+      
+      /* get output size */
+      unsigned int outputsize = this->tempmod.getNumValues();
+      
+      /* alloc output vector for duration and temporal modelling output */
+      this->outputvalues.resize(outputsize + 1);
+      
+      /* get labels */
+      char *mem = new char[outputsize * 64 + 64];
+      char **outlabels = new char*[outputsize + 1];
+      
+      for (unsigned int i = 0; i <= outputsize; i++)
+        outlabels[i] = mem + i * 64;
+      
+      snprintf(outlabels[0], 64, "Duration");
+      this->tempmod.getLabels(labels, inputsize, &outlabels[1], 64, outputsize);
+      
+      int ret = this->propagateStreamAttributes(true, rate, 0.0, outputsize + 1, 1,
+                                                (const char **) &outlabels[0],
+                                                false, 0.0, 1);
+      
+      delete [] mem;
+      delete [] outlabels;
+      
+      return ret;
+    }
+    
+    return this->propagateStreamAttributes(true, rate, 0.0, 0, 0, NULL, false, 0.0, 1);
+  }
+  
+  int reset (void)
+  {
+    this->onsettime = 0;
+    this->segison = false;
+
+    this->tempmod.reset();
+    
+    return this->propagateReset();
+  };
+  
+  int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+    double onsetThreshold = this->threshold.get();
+    double minimumInterval = this->mininter.get();
+    double durationThreshold = this->durthresh.get();
+    double offThreshold = this->offthresh.get();
+    double maxsize = maxsegsize.get();
+    int colindex = this->colindex.get();
+    int numcols = this->numcols.get();
+    int ret = 0;
+    bool frameisonset;
+    //printf("frames at %f size %d num %d\n", time, size, num);
+
+    // clip colindex/size
+    //TODO: this shouldn't change at runtime, so do this in streamAttributes only
+    while (colindex < 0  &&  size > 0)
+      colindex += size;
+    
+    if (numcols <= 0)
+      numcols = size;
+    
+    if (colindex + numcols > (int) size)
+      numcols = size - colindex;
+    
+    for (unsigned int i = 0; i < num; i++)
+    { // for all frames
+      /* input frame */
+      double energy = 0.0;
+      unsigned int k = colindex;
+      for (int j = 0; j < numcols; j++, k++)
+      {
+	energy += values[k];
+      }
+      energy /= numcols;
+
+      /* determine if there is an onset */
+      if (this->segison)
+        // within segment, check for max size if given
+        frameisonset = maxsize > 0  &&  time >= this->onsettime + maxsize;
+      else
+        // within silence, check for onset (but avoid re-trigger)
+        frameisonset = energy > onsetThreshold  &&  time >= this->onsettime + minimumInterval;
+      
+      if (!this->reportduration)
+      { /* output marker only */
+	if (frameisonset)
+	{ /* report immediate onset */
+	  ret = this->propagateFrames(this->offset + time, weight, NULL, 0, 1);
+	  this->onsettime = time;
+	}
+      }
+      else
+      { // check for onset and offset (segment begin and end)
+        double duration = time - this->onsettime;
+        
+        // check for segment end
+        if (this->segison  &&  ((energy < offThreshold  &&  duration >= durationThreshold)
+                                || (maxsize > 0  &&  time >= this->onsettime + maxsize)))
+        { // energy below off threshold or max segment size exceeded
+          int outputsize = static_cast<int>(this->outputvalues.size());
+          
+          this->outputvalues[0] = duration;
+          
+          /* get temporal modelling */
+          if (outputsize > 1)
+            this->tempmod.getValues(&this->outputvalues[1], outputsize - 1, true);
+          
+          /* report segment */
+          ret = this->propagateFrames(this->offset + this->onsettime, weight, &this->outputvalues[0], outputsize, 1);
+        }
+        
+        /* segment on/off (segment has at least one frame) */
+        if (frameisonset)
+        {
+          this->segison = true;
+          this->onsettime = time;
+        }
+        else if (energy < offThreshold)
+          this->segison = false;
+      
+        /* feed temporal modelling */
+        if (this->segison)
+          this->tempmod.input(values, size);
+      }
+      
+      if (ret != 0)
+        return ret;
+      
+      values += size;
+      time   += this->frameperiod; // increase time for next input frame (if num > 1)
+    } // end for all frames
+    
+    return 0;
+  }
+  
+  int finalize (double inputend)
+  {
+    double durationThreshold = this->durthresh.get();
+    double duration = inputend - this->onsettime;
+    //printf("finalize at %f seg %d duration %f\n", inputEnd, segIsOn, duration);
+
+    if (this->segison && duration >= durationThreshold)
+    {
+      /* end of segment (new onset or below off threshold) */
+      int outputsize = static_cast<int>(this->outputvalues.size());
+      
+      this->outputvalues[0] = duration;
+      
+      /* get temporal modelling */
+      if (outputsize > 1)
+        this->tempmod.getValues(&this->outputvalues[1], outputsize - 1, true);
+      
+      /* report segment */
+      return this->propagateFrames(this->offset + this->onsettime, 0.0, &this->outputvalues[0], outputsize, 1);
+    }
+    
+    return this->propagateFinalize(inputend);
+  }
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c++
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpc.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpc.h
new file mode 100644
index 0000000..7a27e08
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpc.h
@@ -0,0 +1,159 @@
+/**
+ * @file PiPoLpc.h
+ * @author Joseph Larralde
+ * @date 02.12.2015
+ *
+ * @brief RTA LPC PiPo
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2015 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_LPC_H_
+#define _PIPO_LPC_H_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_lpc.h"
+#include <stdlib.h>
+}
+
+/** TMP NOTES :
+ *  input is a signal (1 to N dims, as in biquad)
+ *  outputs are list signals (1 to N lists of size XXX?), each list being the coefs characterizing the corresponding input dim
+ *  parameters are :
+ *  - param1 : lpc_order (nb of coeffs : order 0 -> 1 coef, order 1 -> 2 coefs etc)
+ *  - param2 (are there other params ?)
+ */
+
+class PiPoLpc : public PiPo
+{
+//public:
+private:
+    unsigned int frameSize;
+    //unsigned int nFrames;
+    float frameRate;
+
+    int ac_size;
+    float *corr;
+    float error;
+    
+    unsigned int nCoefs;
+    float *coefs;
+    float *outValues;
+    
+public:
+    PiPoScalarAttr<int> nCoefsA;
+    
+    //=============== CONSTRUCTOR ===============//
+    PiPoLpc(Parent *parent, PiPo *receiver = NULL) :
+    PiPo(parent, receiver),
+    nCoefsA(this, "ncoefs", "Number Of LPC Coefficients", true, 10)
+    {
+        this->frameSize     = 0;
+        //this->nFrames       = 0;
+        this->frameRate     = 1.;
+        
+        this->nCoefs        = 0;
+        this->coefs         = NULL;
+        this->corr          = NULL;
+        //this->outValues     = NULL;
+        
+    }
+
+    int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    {
+        unsigned int frameSize = width * size;
+        //unsigned int nFrames = 1;//size;
+        unsigned int nCoefs = this->nCoefsA.get();
+        
+        if(rate != this->frameRate) {
+            this->frameRate = rate;
+        }
+        
+        /*
+        if(frameSize != this->frameSize) {
+            this->frameSize = frameSize;
+            // resize outValues array
+            this->outValues = (float *)realloc(this->outValues, this->nFrames * this->frameSize * sizeof(float));
+        }
+        */
+        
+        if(frameSize != this->frameSize || nCoefs != this->nCoefs) {
+            
+            this->frameSize = frameSize;
+            this->nCoefs = nCoefs;
+            
+            if(this->nCoefs > this->frameSize) {
+                this->nCoefs = this->frameSize;
+            }
+            if(this->nCoefs < 1) {
+                this->nCoefs = 1;
+            }
+            
+            // resize arrays
+            this->coefs = (float *)realloc(this->coefs, this->nCoefs * sizeof(float));
+            // see rta_lpc : corr and coefs are assumed to be of same size
+            this->corr = (float *)realloc(this->corr, this->nCoefs * sizeof(float));
+        }
+        
+        // compute previous framerate from rate, offset and width * size ? -> to be able to output values in Hz ?
+        // also update dimensions according to nCoefs
+        return this->propagateStreamAttributes(hasTimeTags, rate, offset, 1, this->nCoefs, NULL, false, 1, 1);
+        //return this->propagateStreamAttributes(hasTimeTags, rate, offset, width, size, NULL, false, 1, 1);
+    }
+    
+    int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+    {
+        int ret;
+        for(unsigned int i = 0; i < num; i++)
+        {
+            if(this->frameSize > 1) {
+                rta_lpc(this->coefs, this->nCoefs, &(this->error), this->corr, values, this->frameSize);
+                ret = this->propagateFrames(time, weight, this->coefs, this->nCoefs, 1);
+            } else {
+                this->coefs[0] = 0.;
+                ret = this->propagateFrames(time, weight, this->coefs, 1, 1);
+            }
+            if(ret != 0)
+                return ret;
+            
+            values += size;
+        }
+        return 0;
+
+    }
+    
+};
+
+#endif /* PiPoLpc_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpcFormants.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpcFormants.h
new file mode 100644
index 0000000..8c6d001
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoLpcFormants.h
@@ -0,0 +1,212 @@
+/**
+ * @file PiPoLpcFormants.h
+ * @author Gabriel Meseguer-Brocal
+ * @date 18.05.2016
+ *
+ * @brief PiPo computing formants from LPC
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PiPoLpcFormants_h
+#define PiPoLpcFormants_h
+
+#include "PiPoSequence.h"
+#include "PiPoLpc.h"
+#include "bbpr.h"
+//#include <lpcformants/rpoly.cpp>
+#include <vector>
+#include <algorithm>
+
+using namespace std;
+
+#define PI 3.14159265
+
+class PiPoLpcFormants: public PiPoSequence
+{
+private:
+    class PiPoFormants : public PiPo {
+        float *outValues;
+        bool f = false;
+
+    public:
+        PiPoScalarAttr<int> nForm;
+        PiPoScalarAttr<bool> bandwidth;
+        PiPoScalarAttr<int> threshold; // Hz
+        PiPoScalarAttr<float> sr;
+        
+        
+        PiPoFormants(PiPo::Parent *parent, PiPo *receiver = NULL) :
+        PiPo(parent, receiver),
+        nForm(this, "nForm", "Number Of Formants", true, 1),
+        bandwidth(this, "bandwidth", "Store the bandwidth", true, true),
+        threshold(this, "threshold", "Threshold (in Hz) for the Lowest Formants", true, 20),
+        sr(this, "Samplerate", "Sample rate of the audio", true, 44100){
+            
+        }
+        
+        ~PiPoFormants()
+        {
+            if (f){
+                free(outValues);
+            }
+        }
+        
+        int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+        {
+            int nForm = this->nForm.get();
+            int bandwidth = this->bandwidth.get();
+            int cols = 1;
+            if (bandwidth)
+                cols = 2;
+            outValues = (float *)malloc(cols * nForm * sizeof(float));
+            f = true;
+            
+            /*const char *FormColNames[cols];
+            FormColNames[0] = "FromantFrequency";
+            if (bandwidth)
+                FormColNames[1] = "FormantBandwidth";*/
+			const char *FormColNames[2];
+			FormColNames[0] = "FromantFrequency";
+			if (bandwidth) FormColNames[1] = "FormantBandwidth";
+            return this->propagateStreamAttributes(hasTimeTags, rate, offset, cols, nForm, FormColNames, 0, 0.0, 1);
+        }
+        
+        int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+        {
+            int nForm = this->nForm.get();
+            int threshold = this->threshold.get();
+            int bandwidth = this->bandwidth.get();
+            
+            float sr = this->sr.get();
+                 
+            int cols = 1;
+            if (bandwidth)
+                cols = 2;
+    
+            int n, numr;
+            n = size - 1; // polynomio order
+       
+            double *a, *x, *wr, *wi, quad[2];
+            
+            a = new double [size]; x = new double [size]; wr = new double [size]; wi = new double [size];
+            
+            for (unsigned int i = 0; i < size; i++)
+                a[i] = *(values+i);
+
+
+
+
+            quad[0] = 2.71828e-1;
+            quad[1] = 3.14159e-1;
+            get_quads(a,n,quad,x);
+            numr = roots(x,n,wr,wi); // number of roots found
+            vector<double> frqs;
+            vector<double> bw;
+            vector<pair<double, double> > matrix;
+            for (int i = 0; i < numr; i++) {
+                if (wi[i] >= 0) {
+                    float tmp = (atan2(wi[i], wr[i]) * sr)/ (2.0*PI);
+                    if (tmp > threshold) {
+                        frqs.push_back( tmp );
+                      
+                        bw.push_back( (-1./2.)*(sr/(2*PI))* log( sqrt( (wr[i] * wr[i]) + (wi[i] * wi[i]) ) )  );
+                      
+                      // Something the roots of the poly are not precise enough and give values above the unitary circle. As results the bw is negative (log of the absolute value of a complex vector > 1)
+                        if (bw.back() < 0){
+                            bw.back() = - bw.back();
+                        }
+                        matrix.push_back(make_pair(frqs.back(), bw.back()));
+                    }
+                    
+                }
+            }
+            
+            sort (matrix.begin(), matrix.end());
+            
+            for (int i = 0; i < nForm; i++) {
+                if (matrix.size() > 0) {
+                    *(outValues + i * cols) = matrix[i].first;
+                    if (cols > 1) {
+                        *(outValues + i * cols + 1) = matrix[i].second;
+                    }
+                }else{
+                    *(outValues + i * cols) = 0;
+                    if (cols > 1) {
+                        *(outValues + i * cols + 1) = 0;
+                    }
+                }
+            }
+            
+            delete[] a; delete[]x; delete[]wr; delete[]wi;
+            
+            //(double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+            return this->propagateFrames(time, weight, static_cast<PiPoValue *>(outValues), nForm*cols, 1);
+        }
+    };
+    
+    
+
+public:
+    PiPoLpc lpc;
+    PiPoFormants formants;
+    
+    
+    PiPoLpcFormants (PiPo::Parent *parent, PiPo *receiver = NULL)
+    : PiPoSequence(parent),
+    lpc(parent), formants(parent)
+    {
+        this->add(lpc);
+        this->add(formants);
+        
+        this->setReceiver(receiver);
+        
+        this->addAttr(this, "nFormants", "Number of formants", &formants.nForm, true);
+        this->addAttr(this, "threshold",  "Threshold (in Hz) for the Lowest Formants", &formants.threshold);
+        this->addAttr(this, "Bandwidth", "Output or not the bandwidth", &formants.bandwidth);
+        
+        this->addAttr(this, "sr", "samplerate of the input signal", &formants.sr);
+        
+        lpc.nCoefsA.set(2*formants.nForm.get() + 3); // nCoefsA is two times the expected number of formants + 2 (+1 because the firts coef = 1)
+
+    }
+    
+    int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    {
+        lpc.nCoefsA.set(2*formants.nForm.get() + 3, true);
+        return PiPoSequence::streamAttributes(hasTimeTags, rate, offset, width, size, labels, hasVarSize, domain, maxFrames);
+    }
+};
+
+
+#endif /* PiPoLpcFormants_h */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMeanStddev.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMeanStddev.h
new file mode 100644
index 0000000..5b6618c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMeanStddev.h
@@ -0,0 +1,126 @@
+/**
+ * @file PiPoMeanStddev.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief Mean Stddev Min Max PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012 by IMTR IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef _PIPO_MEAN_STDDEV_
+#define _PIPO_MEAN_STDDEV_
+
+#include "PiPo.h"
+
+using namespace std;
+
+class PiPoMeanStddev : public PiPo
+{
+private:
+  float outputFrame[2];
+  double sum;
+  double sumOfSquare;
+  int num;
+
+public:
+  PiPoMeanStddev(PiPo *receiver = NULL)
+  {
+    this->sum = 0.0;
+    this->sumOfSquare = 0.0;
+    this->num = 0;
+    
+    this->receiver = receiver;
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    char *msLabels[2];
+    
+    msLabels[0] = "Mean";
+    msLabels[1] = "Stddev";
+        
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, 2, 1, msLabels, 0, 0.0, 1);
+  }
+  
+  int reset(void) 
+  { 
+    this->sum = 0.0;
+    this->sumOfSquare = 0.0;
+    this->num = 0;
+    
+    return this->propagateReset(); 
+  };
+  
+  int frames(double time, float *values, unsigned int size, unsigned int num)
+  {
+    double norm = 1.0 / size;
+    
+    for(int i = 0; i < num; i++)
+    {
+      double mean = 0.0;
+      double meanOfSquare = 0.0;
+      double squareOfmean;
+      
+      for(int j = 0; j < size; j++)
+      {
+        double x = values[j];
+        
+        mean += x;
+        meanOfSquare += x * x;
+      }
+      
+      this->sum += sum;
+      this->sumOfSquare += meanOfSquare;
+      this->num++;
+      
+      mean *= norm;
+      meanOfSquare *= norm;
+      squareOfmean = mean * mean;
+
+      this->outputFrame[0] = mean;
+
+      if(meanOfSquare > squareOfmean)
+        this->outputFrame[1] = sqrt(meanOfSquare - squareOfmean);
+      else
+        this->outputFrame[1] = 0.0;
+
+      int ret = this->propagateFrames(time, this->outputFrame, 2, 1);
+      
+      if(ret != 0)
+        return ret;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMedian.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMedian.h
new file mode 100644
index 0000000..2047b99
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMedian.h
@@ -0,0 +1,215 @@
+/**
+ * @file PiPoMedian.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief PiPo calculating a runnning median on a stream
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MEDIAN_
+#define _PIPO_MEDIAN_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_selection.h"
+}
+
+#include <vector>
+
+#define RING_ALLOC_BLOCK 256
+
+class PiPoMedian : public PiPo
+{
+  template <class T>
+  class Ring
+  {
+  public:
+    std::vector<double> time;
+    std::vector<T> vector;
+    unsigned int width;
+    unsigned int capacity;
+    unsigned int size;
+    unsigned int index;
+    
+  public:
+    Ring(void) : vector()
+    {
+      this->width = 1;
+      this->capacity = 0;
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    void resize(int width, int size)
+    {
+      this->time.resize(size);
+      this->vector.resize(width * size);
+      this->width = width;
+      this->capacity = size;
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    void reset(void)
+    {
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    int input(double time, T *values, unsigned int num, double &outputTime)
+    {
+      float *ringValues = &this->vector[this->index * this->width];
+      
+      this->time[this->index] = time;
+      
+      if(num > this->width)
+        num = this->width;
+      
+      /* copy frame */
+      memcpy(ringValues, values, num * sizeof(T));
+      
+      /* zero pad this values */
+      if(num < this->width)
+        memset(ringValues + num, 0, (this->width - num) * sizeof(T));
+      
+      this->index++;
+      
+      if(this->index >= this->capacity)
+      {
+        this->size = this->capacity;
+        this->index = 0;
+      }
+      else if(this->size < this->index)
+        this->size = this->index;
+      
+      if(this->size & 1)
+      {
+        int timeIndex = this->index - ((this->size + 1) >> 1);
+        
+        if(timeIndex < 0)
+          timeIndex += this->capacity;
+        
+        outputTime = this->time[timeIndex];
+      }
+      else
+      {
+        int timeIndexB = this->index - (this->size >> 1) - 1;
+        int timeIndexA = this->index - (this->size >> 1);
+        
+        if(timeIndexB < 0)
+          timeIndexB += this->capacity;
+        
+        if(timeIndexA < 0)
+          timeIndexA += this->capacity;
+        
+        outputTime = 0.5 * (this->time[timeIndexB] + this->time[timeIndexA]);
+      }
+      
+      return this->size;
+    };
+  };
+  
+  Ring<float> buffer;
+  std::vector<float> temp;
+  std::vector<float> frame;
+  unsigned int filterSize;
+  unsigned int inputSize;
+  
+public:
+  PiPoScalarAttr<int> size;
+    
+  PiPoMedian(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  buffer(), temp(), frame(),
+  size(this, "size", "Filter Size", true, 7)
+  {
+    this->filterSize = 0;
+    this->inputSize = 0;
+  }
+  
+  ~PiPoMedian(void)
+  {
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    unsigned int filterSize = this->size.get();
+    unsigned int inputSize = width * size;
+    double lag = 1000.0 * 0.5 * (filterSize - 1) / rate;
+
+    if(filterSize != this->filterSize || inputSize != this->inputSize)
+    {
+      this->buffer.resize(inputSize, filterSize);
+      this->temp.resize(inputSize * filterSize);
+      this->frame.resize(inputSize);
+      this->filterSize = filterSize;
+      this->inputSize = inputSize;
+    }
+    
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset - lag, width, size, labels, 0, 0.0, 1);
+  }
+  
+  int reset(void) 
+  { 
+    this->buffer.reset();
+    return this->propagateReset(); 
+  };
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    for(unsigned int i = 0; i < num; i++)
+    {
+      double outputTime;
+      int filterSize = this->buffer.input(time, values, size, outputTime);
+
+      this->temp = this->buffer.vector;
+      
+      for(unsigned int j = 0; j < this->buffer.width; j++)
+        this->frame[j] = rta_selection_stride(&this->temp[j], this->buffer.width, filterSize, (filterSize - 1) * 0.5);
+      
+      int ret = this->propagateFrames(outputTime, weight, &this->frame[0], this->inputSize, 1);
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMel.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMel.h
new file mode 100644
index 0000000..be2b279
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMel.h
@@ -0,0 +1,75 @@
+/**
+ * @file PiPoMel.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief RTA MEL bands PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MEL_
+#define _PIPO_MEL_
+
+#include "PiPoSlice.h"
+#include "PiPoFft.h"
+#include "PiPoBands.h"
+
+class PiPoMel: public PiPoSlice
+{  
+public:
+  PiPoFft fft;
+  PiPoBands bands;  
+  
+  PiPoMel(Parent *parent, PiPo *receiver = NULL) :
+  PiPoSlice(parent, &this->fft),
+  fft(parent, &this->bands),
+  bands(parent, receiver)
+  {
+    /* steal attributes from member PiPos */
+    this->addAttr(this, "windsize", "FFT Window Size", &this->size, true);
+    this->addAttr(this, "hopsize", "FFT Hop Size", &this->hop);
+    this->addAttr(this, "numbands", "Number Of Bands", &bands.num);
+    this->addAttr(this, "log", "Logarithmic Scale Output", &bands.log);
+    
+    /* set internal attributes */
+    this->wind.set(PiPoSlice::BlackmanWindow);
+    this->norm.set(PiPoSlice::PowerNorm);
+    this->fft.mode.set(PiPoFft::PowerFft);
+    this->bands.mode.set(PiPoBands::MelBands);
+    this->bands.log.set(false);
+  }
+  
+  void setReceiver(PiPo *receiver, bool add) { this->bands.setReceiver(receiver, add); };
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMfcc.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMfcc.h
new file mode 100644
index 0000000..dcb43bc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMfcc.h
@@ -0,0 +1,79 @@
+/**
+ * @file PiPoMfcc.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief RTA MFCC PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MFCC_
+#define _PIPO_MFCC_
+
+#include "PiPoSlice.h"
+#include "PiPoFft.h"
+#include "PiPoBands.h"
+#include "PiPoDct.h"
+
+class PiPoMfcc : public PiPoSlice
+{
+public:
+  PiPoFft fft;
+  PiPoBands bands;
+  PiPoDct dct;
+  
+  PiPoMfcc(Parent *parent, PiPo *receiver = NULL) :
+  PiPoSlice(parent, &this->fft),
+  fft(parent, &this->bands),
+  bands(parent, &this->dct),
+  dct(parent, receiver)
+  {
+    /* steal attributes from member PiPos */
+    this->addAttr(this, "windsize", "FFT Window Size", &this->size, true);
+    this->addAttr(this, "hopsize", "FFT Hop Size", &this->hop);
+    this->addAttr(this, "numbands", "Number Of Bands", &bands.num);
+    this->addAttr(this, "numcoeffs", "Number Of MFC Coefficients", &dct.order);
+
+    /* set internal attributes */
+    this->wind.set(PiPoSlice::BlackmanWindow);
+    this->norm.set(PiPoSlice::PowerNorm);
+    this->fft.mode.set(PiPoFft::PowerFft);
+    this->bands.mode.set(PiPoBands::MelBands);
+    this->bands.log.set(true);
+    this->dct.order.set(12);
+  }
+  
+  void setReceiver(PiPo *receiver, bool add) { this->dct.setReceiver(receiver, add); };
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMinMax.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMinMax.h
new file mode 100644
index 0000000..f39b537
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMinMax.h
@@ -0,0 +1,115 @@
+/**
+ * @file PiPoMinMax.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief Mean Stddev Min Max PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012 by IMTR IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MIN_MAX_
+#define _PIPO_MIN_MAX_
+
+#include "PiPo.h"
+
+class PiPoMinMax : public PiPo
+{
+private:
+  float outputFrame[2];
+  double min;
+  double max;
+
+public:
+  PiPoMinMax(PiPo *receiver = NULL)
+  {
+    this->min = DBL_MAX;
+    this->max = -DBL_MAX;
+    this->receiver = receiver;
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    const char *mmLabels[2];
+    
+    mmLabels[0] = "Min";
+    mmLabels[1] = "Max";
+        
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, 2, 1, mmLabels, 0, 0.0, 1);
+  }
+  
+  int reset(void) 
+  { 
+    this->min = DBL_MAX;
+    this->max = -DBL_MAX;
+    
+    return this->propagateReset(); 
+  };
+  
+  int frames(double time, float *values, unsigned int size, unsigned int num)
+  {
+    for(unsigned int i = 0; i < num; i++)
+    {
+      double min = values[0];
+      double max = min;
+      
+      for(unsigned int j = 0; j < size; j++)
+      {
+        double x = values[j];
+        
+        if(x < min)
+          min = x;
+        
+        if(x > max)
+          max = x;
+      }
+      
+      if(min < this->min)
+        this->min = min;
+      
+      if(max < this->max)
+        this->max = max;
+
+      this->outputFrame[0] = min;
+      this->outputFrame[1] = max;
+      
+      int ret = this->propagateFrames(time, this->outputFrame, 2, 1);
+      
+      if(ret != 0)
+        return ret;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMoments.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMoments.h
new file mode 100644
index 0000000..57f061f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMoments.h
@@ -0,0 +1,240 @@
+/**
+ * @file PiPoMoments.h
+ * @author jules.francoise@ircam.fr
+ *
+ * @brief PiPo calculating the moments of a vector
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef maxpipo_PiPoMoments_h
+#define maxpipo_PiPoMoments_h
+
+#define MAX_PIPO_MOMENTS_LABELS 128
+
+#ifdef WIN32
+#define min(a,b) ((a) < (b) ? (a) : (b))
+#endif
+
+#include "PiPo.h"
+#include <cmath>
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_moments.h"
+}
+
+using namespace std;
+
+class PiPoMoments : public PiPo
+{
+protected:
+    vector<float> moments;
+    double domain;
+public:
+    enum OutputScaling { None, Domain, Normalized };
+    PiPoScalarAttr<int> order;
+    PiPoScalarAttr<PiPo::Enumerate> scaling;
+    PiPoScalarAttr<bool> std;
+    
+    PiPoMoments(Parent *parent, PiPo *receiver = NULL) :
+    PiPo(parent, receiver),
+    order(this, "order", "Maximum order of moments", true, 4),
+    scaling(this, "scaling", "Output Scaling", true, None),
+    std(this, "std", "Standardized moments for order > 2", true, true)
+    {
+        this->scaling.addEnumItem("None", "No Scaling (bins)");
+        this->scaling.addEnumItem("Domain", "Domain Scaling");
+        this->scaling.addEnumItem("Normalized", "Normalized Moments");
+    }
+    
+    ~PiPoMoments(void)
+    {
+        this->moments.clear();
+    }
+    
+    int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    {
+        this->domain = domain;
+        unsigned int maxorder = (unsigned int)this->order.get();
+        this->moments.resize(maxorder);
+        
+        const char *momentsColNames[MAX_PIPO_MOMENTS_LABELS];
+        // Set 4 first moments names
+        momentsColNames[0] = "Centroid";
+        momentsColNames[1] = "Spread";
+        momentsColNames[2] = "Skewness";
+        momentsColNames[3] = "Kurtosis";
+        
+        unsigned int maxlabel = min((int)maxorder, MAX_PIPO_MOMENTS_LABELS);
+        for (unsigned int ord=4; ord<maxlabel; ord++) {
+            momentsColNames[ord] = "";
+        }
+
+        return this->propagateStreamAttributes(hasTimeTags, rate, offset, maxorder, 1, momentsColNames, 0, 0.0, 1);
+    }
+    
+    int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+    {
+        float input_sum;
+        unsigned int maxorder = (unsigned int)this->order.get();
+        rta_real_t deviation;
+        
+        for(unsigned int i = 0; i < num; i++)
+        {
+            if (maxorder >= 1) {
+                this->moments[0] = rta_weighted_moment_1_indexes(&input_sum,
+                                                                 values,
+                                                                 size);
+                
+                if (maxorder >= 2) {
+                    if (input_sum != 0.) {
+                        this->moments[1] = rta_weighted_moment_2_indexes(values,
+                                                                         size,
+                                                                         this->moments[0],
+                                                                         input_sum);
+                    } else {
+                        this->moments[1] = size;
+                    }
+                    
+                    if (maxorder >= 3) {
+                        if (this->std.get()) { // Standardized
+                            deviation = sqrtf(this->moments[1]);
+                            if (input_sum != 0. && deviation != 0.) {
+                                this->moments[2] = rta_std_weighted_moment_3_indexes(values,
+                                                                                     size,
+                                                                                     this->moments[0],
+                                                                                     input_sum,
+                                                                                     deviation);
+                            } else {
+                                this->moments[2] = 0.;
+                            }
+                        } else { // Not Standardized
+                            if (input_sum != 0.) {
+                                this->moments[2] = rta_weighted_moment_3_indexes(values,
+                                                                                 size,
+                                                                                 this->moments[0],
+                                                                                 input_sum);
+                            } else {
+                                this->moments[2] = 0.;
+                            }
+                        }
+                        
+                        if (maxorder >= 4) {
+                            if (this->std.get()) { // Standardized
+                                if (input_sum != 0. && deviation != 0.) {
+                                    this->moments[3] = rta_std_weighted_moment_4_indexes(values,
+                                                                                         size,
+                                                                                         this->moments[0],
+                                                                                         input_sum,
+                                                                                         deviation);
+                                } else {
+                                    this->moments[3] = 2.;
+                                }
+                            } else { // Not Standardized
+                                if (input_sum != 0.) {
+                                    this->moments[3] = rta_weighted_moment_4_indexes(values,
+                                                                                     size,
+                                                                                     this->moments[0],
+                                                                                     input_sum);
+                                } else {
+                                    this->moments[3] = 0.;
+                                }
+                                
+                            }
+                            
+                            for (unsigned int ord=5; ord<=maxorder; ord++) {
+                                if (this->std.get()) { // Standardized
+                                    if (input_sum != 0. && deviation != 0.) {
+                                        this->moments[ord-1] = rta_std_weighted_moment_indexes(values,
+                                                                                               size,
+                                                                                               this->moments[0],
+                                                                                               input_sum,
+                                                                                               deviation,
+                                                                                               (rta_real_t)ord);
+                                    } else {
+                                        if(ord & 1) /* even */
+                                        {
+                                            this->moments[ord-1] = 0.;
+                                        }
+                                        else
+                                        {
+                                            this->moments[ord-1] = ord;
+                                        }
+                                    }
+                                } else { // Not Standardized
+                                    if (input_sum != 0.) {
+                                        this->moments[ord-1] = rta_weighted_moment_indexes(values,
+                                                                                           size,
+                                                                                           this->moments[0],
+                                                                                           input_sum,
+                                                                                           (rta_real_t)ord);
+                                    } else {
+                                        this->moments[ord-1] = size;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            
+            enum OutputScaling outputScaling = (enum OutputScaling)this->scaling.get();
+            switch (outputScaling) {
+                case None:
+                    break;
+                case Domain:
+                    for (unsigned int ord=0; ord<2; ord++) {
+                        this->moments[ord] *= powf(float(domain / (size-1)), float(ord+1));
+                    }
+                    break;
+                case Normalized:
+                    for (unsigned int ord=0; ord<maxorder; ord++) {
+                        this->moments[ord] /= powf(float(size-1), float(ord+1));
+                    }
+                    break;
+            }
+            
+            int ret = this->propagateFrames(time, weight, &moments[0], maxorder, 1);
+            
+            if(ret != 0)
+                return ret;
+            
+            values += size;
+        }
+        
+        return 0;
+    }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMvavrg.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMvavrg.h
new file mode 100644
index 0000000..86b7de1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoMvavrg.h
@@ -0,0 +1,211 @@
+/**
+ * @file PiPoMvavrg.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief PiPo calculating a moving average on a stream
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_MVAVRG_
+#define _PIPO_MVAVRG_
+
+#include "PiPo.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_mean_variance.h"
+}
+
+#include <vector>
+
+#define RING_ALLOC_BLOCK 256
+
+class PiPoMvavrg : public PiPo
+{
+  template <class T>
+  class Ring
+  {
+  public:
+    std::vector<double> time;
+    std::vector<T> vector;
+    unsigned int width;
+    unsigned int capacity;
+    unsigned int size;
+    unsigned int index;
+    
+  public:
+    Ring(void) : vector()
+    {
+      this->width = 1;
+      this->capacity = 0;
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    void resize(int width, int size)
+    {
+      this->time.resize(size);
+      this->vector.resize(width * size);
+      this->width = width;
+      this->capacity = size;
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    void reset(void)
+    {
+      this->size = 0;
+      this->index = 0;
+    };
+    
+    int input(double time, T *values, unsigned int num, double &outputTime)
+    {
+      float *ringValues = &this->vector[this->index * this->width];
+      
+      this->time[this->index] = time;
+      
+      if(num > this->width)
+        num = this->width;
+      
+      /* copy frame */
+      memcpy(ringValues, values, num * sizeof(T));
+      
+      /* zero pad this values */
+      if(num < this->width)
+        memset(ringValues + num, 0, (this->width - num) * sizeof(T));
+      
+      this->index++;
+      
+      if(this->index >= this->capacity)
+      {
+        this->size = this->capacity;
+        this->index = 0;
+      }
+      else if(this->size < this->index)
+        this->size = this->index;
+      
+      if(this->size & 1)
+      {
+        int timeIndex = this->index - ((this->size + 1) >> 1);
+        
+        if(timeIndex < 0)
+          timeIndex += this->capacity;
+        
+        outputTime = this->time[timeIndex];
+      }
+      else
+      {
+        int timeIndexB = this->index - (this->size >> 1) - 1;
+        int timeIndexA = this->index - (this->size >> 1);
+        
+        if(timeIndexB < 0)
+          timeIndexB += this->capacity;
+        
+        if(timeIndexA < 0)
+          timeIndexA += this->capacity;
+        
+        outputTime = 0.5 * (this->time[timeIndexB] + this->time[timeIndexA]);
+      }
+      
+      return this->size;
+    };
+  };
+  
+  Ring<float> buffer;
+  std::vector<float> frame;
+  unsigned int filterSize;
+  unsigned int inputSize;
+  
+public:
+  PiPoScalarAttr<int> size;
+  
+  PiPoMvavrg(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  buffer(), frame(),
+  size(this, "size", "Filter Size", true, 8)
+  {
+    this->filterSize = 0;
+    this->inputSize = 0;
+  };
+  
+  ~PiPoMvavrg(void)
+  {
+  };
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    unsigned int filterSize = this->size.get();
+    unsigned int inputSize = width * size;
+    double lag = 1000.0 * 0.5 * (filterSize - 1) / rate;
+    
+    if(filterSize != this->filterSize || inputSize != this->inputSize)
+    {
+      this->buffer.resize(inputSize, filterSize);
+      this->frame.resize(inputSize);
+      this->filterSize = filterSize;
+      this->inputSize = inputSize;
+    }
+    
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset - lag, width, size, labels, 0, 0.0, 1);
+  };
+  
+  int reset(void) 
+  { 
+    this->buffer.reset();
+    return this->propagateReset(); 
+  };
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    for(unsigned int i = 0; i < num; i++)
+    {
+      double outputTime;
+      int filterSize = this->buffer.input(time, values, size, outputTime);
+      
+      for(unsigned int j = 0; j < this->buffer.width; j++)
+        this->frame[j] = rta_mean_stride(&this->buffer.vector[j], this->buffer.width, filterSize);
+      
+      int ret = this->propagateFrames(outputTime, weight, &this->frame[0], this->inputSize, 1);
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  };
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoOnseg.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoOnseg.h
new file mode 100644
index 0000000..2290d86
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoOnseg.h
@@ -0,0 +1,451 @@
+/**
+ * @file PiPoOnseg.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief PiPo calculating a runnning median on a stream
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_ODFSEG_
+#define _PIPO_ODFSEG_
+
+#include "PiPo.h"
+#include "RingBuffer.h"
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_selection.h"
+}
+
+#include "TempMod.h"
+#include <vector>
+#include <string>
+
+class PiPoOnseg : public PiPo
+{
+public:
+  enum OnsetMode { MeanOnset, MeanSquareOnset, RootMeanSquareOnset, KullbackLeiblerOnset };
+  
+private:
+  RingBuffer<PiPoValue> buffer;
+  std::vector<PiPoValue> temp;
+  std::vector<PiPoValue> frame;
+  std::vector<PiPoValue> lastFrame;
+  unsigned int filterSize;
+  unsigned int inputSize;
+  double offset;
+  double frameperiod;
+  enum OnsetMode onsetMode;
+  int segmentFrames;	//TBD: unused?
+  bool lastFrameWasOnset;
+  double onsetTime;
+  bool enDuration;
+  bool segIsOn;
+  TempModArray tempMod;
+  std::vector<PiPoValue>outputValues;
+  
+public:
+  PiPoScalarAttr<int> colindex;
+  PiPoScalarAttr<int> numcols;
+  PiPoScalarAttr<int> fltsize;
+  PiPoScalarAttr<double> threshold;
+  PiPoScalarAttr<PiPo::Enumerate> onsetmode;
+  PiPoScalarAttr<double> mininter;
+  PiPoScalarAttr<bool> startisonset;
+  PiPoScalarAttr<bool> duration;
+  PiPoScalarAttr<double> durthresh;
+  PiPoScalarAttr<double> offthresh;
+  PiPoScalarAttr<double> maxsegsize;
+  PiPoScalarAttr<bool> enMin;
+  PiPoScalarAttr<bool> enMax;
+  PiPoScalarAttr<bool> enMean;
+  PiPoScalarAttr<bool> enStddev;
+  PiPoScalarAttr<bool> odfoutput;
+  
+  PiPoOnseg(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  buffer(), temp(), frame(), lastFrame(), tempMod(), outputValues(),
+  colindex(this, "colindex", "Index of First Column Used for Onset Calculation", true, 0),
+  numcols(this, "numcols", "Number of Columns Used for Onset Calculation", true, -1),
+  fltsize(this, "filtersize", "Filter Size", true, 3),
+  threshold(this, "threshold", "Onset Threshold", false, 5),
+  onsetmode(this, "odfmode", "Onset Detection Calculation Mode", true, MeanOnset),
+  mininter(this, "mininter", "Minimum Onset Interval", false, 50.0),
+  startisonset(this, "startisonset", "Place Marker at Start of Buffer", false, false),
+  duration(this, "duration", "Output Segment Duration", true, false),
+  durthresh(this, "durthresh", "Duration Threshold", false, 0.0),
+  offthresh(this, "offthresh", "Segment End Threshold", false, -80.0),
+  maxsegsize(this, "maxsize", "Maximum Segment Duration", false, 0.0),
+  enMin(this, "min", "Calculate Segment Min", true, false),
+  enMax(this, "max", "Calculate Segment Max", true, false),
+  enMean(this, "mean", "Calculate Segment Mean", true, false),
+  enStddev(this, "stddev", "Calculate Segment StdDev", true, false),
+  odfoutput(this, "odfoutput", "Output only onset detection function", true, false)
+  {
+    this->filterSize = 0;
+    this->inputSize = 0;
+    
+    this->offset = 0.0;
+    this->frameperiod = 1.;
+    this->onsetMode = MeanOnset;
+    this->segmentFrames = 0;
+    this->lastFrameWasOnset = false;
+    this->onsetTime = -DBL_MAX;
+    
+    this->enDuration = false;
+    this->segIsOn = false;
+    
+    this->onsetmode.addEnumItem("mean", "Mean");
+    this->onsetmode.addEnumItem("square", "Mean Square");
+    this->onsetmode.addEnumItem("rms", "Root Mean Square");
+    this->onsetmode.addEnumItem("kullbackleibler", "Kullback Leibler Divergence");
+  }
+  
+  ~PiPoOnseg(void)
+  {
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    int filterSize = this->fltsize.get();
+    enum OnsetMode onsetMode = (enum OnsetMode)this->onsetmode.get();
+    int inputSize = width;
+    
+    this->frameperiod = 1000.0 / rate;
+    this->offset = -this->frameperiod; // offset of negative frame period to include signal just before peak
+    
+    if(filterSize < 1)
+      filterSize = 1;
+    
+    this->onsetMode = onsetMode;
+    
+    /* resize internal buffers */
+    this->buffer.resize(inputSize, filterSize);
+    this->temp.resize(inputSize * filterSize);
+    this->frame.resize(inputSize);
+    this->lastFrame.resize(inputSize);
+    
+    this->filterSize = filterSize;
+    this->inputSize = inputSize;
+    
+    if (this->startisonset.get())
+    { // start with a segment at 0
+      this->lastFrameWasOnset = true;
+      this->onsetTime = -this->offset;	// first marker will be at 0
+      this->segIsOn = true;
+    }
+    else
+    {
+      this->lastFrameWasOnset = false;
+      this->onsetTime = -DBL_MAX;
+    }
+
+    this->enDuration = this->duration.get()  &&  !this->odfoutput.get();
+    
+    if(this->enDuration)
+    {
+      /* resize temporal models */
+      this->tempMod.resize(inputSize);
+      
+      /* enable temporal models */
+      this->tempMod.enable(this->enMin.get(), this->enMax.get(), this->enMean.get(), this->enStddev.get());
+      
+      /* get output size */
+      unsigned int outputSize = this->tempMod.getNumValues();
+      
+      /* alloc output vector for duration and temporal modelling output */
+      this->outputValues.resize(outputSize + 1);
+      
+      /* get labels */
+      char *mem = new char[outputSize * 64 + 64];
+      char **outLabels = new char*[outputSize + 1];
+      
+      for(unsigned int i = 0; i <= outputSize; i++)
+        outLabels[i] = mem + i * 64;
+      
+      snprintf(outLabels[0], 64, "Duration");
+      this->tempMod.getLabels(labels, inputSize, &outLabels[1], 64, outputSize);
+      
+      int ret = this->propagateStreamAttributes(true, rate, 0.0, outputSize + 1, 1, (const char **)&outLabels[0], false, 0.0, 1);
+      
+      delete [] mem;
+      delete [] outLabels;
+      
+      return ret;
+    }
+    
+    if (this->odfoutput.get())
+    {
+      const char *outlab[1] = { "ODF" };
+      return this->propagateStreamAttributes(true, rate, 0.0, 1, 1, outlab, false, 0.0, 1);
+    }
+    else
+      return this->propagateStreamAttributes(true, rate, 0.0, 0, 0, NULL, false, 0.0, 1);
+  }
+  
+  int reset(void)
+  {
+    this->buffer.reset();
+    
+    this->segmentFrames = 0;
+
+    if (this->startisonset.get())
+    { // start with a segment at 0
+      this->lastFrameWasOnset = true;
+      this->onsetTime = -this->offset;
+      this->segIsOn = true;
+    }
+    else
+    {
+      this->lastFrameWasOnset = false;
+      this->onsetTime = -DBL_MAX;
+      this->segIsOn = false;
+    }
+
+    this->tempMod.reset();
+    
+    return this->propagateReset();
+  };
+  
+  int frames(double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+  {
+    double onsetThreshold = this->threshold.get();
+    double minimumInterval = this->mininter.get();
+    double durationThreshold = this->durthresh.get();
+    double offThreshold = this->offthresh.get();
+    int colindex = this->colindex.get();
+    int numcols = this->numcols.get();
+    //printf("frames at %f size %d num %d\n", time, size, num);
+
+    if(size > this->buffer.width)
+      size = this->buffer.width; //FIXME: values += size at the end of the loop can be wrong
+    
+    // clip colindex/size
+    //TODO: this shouldn't change at runtime, so do this in streamAttributes only
+    while (colindex < 0  &&  size > 0)
+      colindex += size;
+    
+    if (numcols <= 0)
+      numcols = size;
+    
+    if (colindex + numcols > size)
+      numcols = size - colindex;
+    
+    for(unsigned int i = 0; i < num; i++)
+    { // for all frames
+      PiPoValue scale = 1.0;
+      double odf = 0.0;
+      double energy = 0.0;
+      
+      /* normalize sum to one for Kullback Leibler divergence */
+      if(this->onsetMode == KullbackLeiblerOnset)
+      {
+        PiPoValue normSum = 0.0;
+        
+        for(int j = 0; j < numcols; j++)
+          normSum += values[colindex + j];
+        
+        scale = 1.0 / normSum;
+      }
+      
+      /* input frame */
+      int filterSize = this->buffer.input(values, size, scale);
+      this->temp = this->buffer.vector;
+      
+      switch(this->onsetMode)
+      {
+        case MeanOnset:
+        {
+          unsigned int k = colindex;
+          for(int j = 0; j < numcols; j++, k++)
+          {
+            odf += (values[k] - this->lastFrame[k]);
+            energy += values[k];
+            
+            this->lastFrame[k] = rta_selection_stride(&this->temp[k], size, filterSize, (filterSize - 1) * 0.5);
+          }
+          
+          odf /= numcols;
+          energy /= numcols;
+          
+          break;
+        }
+          
+        case MeanSquareOnset:
+        case RootMeanSquareOnset:
+        {
+          unsigned int k = colindex;
+          for(int j = 0; j < numcols; j++, k++)
+          {
+            double diff = values[k] - this->lastFrame[k];
+            
+            odf += (diff * diff);
+            energy += values[k] * values[k];
+            
+            this->lastFrame[k] = rta_selection_stride(&this->temp[k], size, filterSize, (filterSize - 1) * 0.5);
+          }
+          
+          odf /= numcols;
+          energy /= numcols;
+          
+          if(this->onsetMode == RootMeanSquareOnset)
+          {
+            odf = sqrt(odf);
+            energy = sqrt(energy);
+          }
+          
+          break;
+        }
+          
+        case KullbackLeiblerOnset:
+        {
+          unsigned int k = colindex;
+          for(int j = 0; j < numcols; j++, k++)
+          {
+            if(values[k] != 0.0 && this->lastFrame[k] != 0.0)
+              odf += log(this->lastFrame[k] / values[k]) * this->lastFrame[k];
+            
+            energy += values[k] * values[k];
+            
+            this->lastFrame[k] = rta_selection_stride(&this->temp[k], size, filterSize, (filterSize - 1) * 0.5);
+          }
+          
+          odf /= numcols;
+          energy /= numcols;
+          
+          break;
+        }
+      }
+      
+      /* get onset */
+      double maxsize = maxsegsize.get();
+      bool frameIsOnset = (odf > onsetThreshold  &&  !this->lastFrameWasOnset  &&  time >= this->onsetTime + minimumInterval)
+		       || (maxsize > 0  &&  (time >= this->onsetTime + maxsize)); // chop unconditionally after maxsize if given
+      int ret = 0;
+      
+      if(!this->enDuration)
+      {
+	if (!this->odfoutput.get())
+	{ /* output marker */
+	  if(frameIsOnset)
+	  {
+	    /* report immediate onset */
+	      ret = this->propagateFrames(this->offset + time, weight, NULL, 0, 1);
+	      this->onsetTime = time;
+	  }
+	}
+	else
+	{ /* output odf for each frame*/
+          PiPoValue odfval = odf;
+	  ret = this->propagateFrames(this->offset + time, weight, &odfval, 1, 1);
+	}
+      }
+      else
+      {
+        double duration = time - this->onsetTime;
+        
+        if(this->segIsOn && (frameIsOnset || energy < offThreshold) && duration >= durationThreshold)
+        {
+          /* end of segment (new onset or energy below off threshold) */
+          int outputSize = static_cast<int>(this->outputValues.size());
+          
+          this->outputValues[0] = duration;
+          
+          /* get temporal modelling */
+          if(outputSize > 1)
+            this->tempMod.getValues(&this->outputValues[1], outputSize - 1, true);
+          
+          /* report segment */
+          ret = this->propagateFrames(this->offset + this->onsetTime, weight, &this->outputValues[0], outputSize, 1);
+        }
+        
+        /* segment on/off (segment has at least one frame) */
+        if(frameIsOnset)
+        {
+          this->segIsOn = true;
+          this->onsetTime = time;
+        }
+        else if(energy < offThreshold)
+          this->segIsOn = false;
+        
+        /* feed temporal modelling */
+        if(this->segIsOn)
+          this->tempMod.input(values, size);
+      }
+      
+      this->lastFrameWasOnset = frameIsOnset;
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+      time   += this->frameperiod; // increase time for next input frame (if num > 1)
+    } // end for all frames
+    
+    return 0;
+  }
+  
+  int finalize(double inputEnd)
+  {
+    double durationThreshold = this->durthresh.get();
+    double duration = inputEnd - this->onsetTime;
+    //printf("finalize at %f seg %d duration %f\n", inputEnd, segIsOn, duration);
+
+    if(this->segIsOn && duration >= durationThreshold)
+    {
+      /* end of segment (new onset or below off threshold) */
+      int outputSize = static_cast<int>(this->outputValues.size());
+      
+      this->outputValues[0] = duration;
+      
+      /* get temporal modelling */
+      if(outputSize > 1)
+        this->tempMod.getValues(&this->outputValues[1], outputSize - 1, true);
+      
+      /* report segment */
+      return this->propagateFrames(this->offset + this->onsetTime, 0.0, &this->outputValues[0], outputSize, 1);
+    }
+    
+    return this->propagateFinalize(inputEnd);
+  }
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c++
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoPeaks.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoPeaks.h
new file mode 100644
index 0000000..2a3dcc5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoPeaks.h
@@ -0,0 +1,284 @@
+/**
+ * @file PiPoPeaks.h
+ *
+ * @brief PiPo estimating local maxima of a vector
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2013-2017 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_PEAKS_
+#define _PIPO_PEAKS_
+
+#include "PiPo.h"
+
+extern "C" {
+#include <math.h>
+}
+
+#include <cstdlib>
+
+#define PIPO_PEAKS_DEBUG 1
+#define ABS_MAX 2147483647.0
+#define DEFAULT_NUM_ALLOC_PEAKS 200
+
+typedef struct
+{
+  float freq;
+  float amp;
+} peak_t;
+
+static int
+peaks_compare_freq(const void *left, const void *right)
+{
+  peak_t *l = (peak_t *)left;
+  peak_t *r = (peak_t *)right;
+  
+  return (r->freq < l->freq) - (l->freq < r->freq);
+}
+
+static int
+peaks_compare_amp(const void *left, const void *right)
+{
+  peak_t *l = (peak_t *)left;
+  peak_t *r = (peak_t *)right;
+  
+  return (r->amp > l->amp) - (l->amp > r->amp);
+}
+
+class PiPoPeaks : public PiPo
+{
+private:
+  std::vector<float> buffer_;
+  int domsr;
+  double peaksRate;
+  int allocatedPeaksSize;
+  
+public:
+  PiPoScalarAttr<int>	numPeaks;
+  PiPoScalarAttr<PiPo::Enumerate> keepMode;
+  PiPoScalarAttr<PiPo::Enumerate> downSampling;
+  PiPoScalarAttr<double>	thresholdWidth;
+  PiPoScalarAttr<double>	thresholdHeight;
+  PiPoScalarAttr<double>	thresholdDev;
+  PiPoScalarAttr<double>	rangeLow;
+  PiPoScalarAttr<double>	rangeHigh;
+  PiPoScalarAttr<double>	domainScale;
+  
+  // constructor
+  PiPoPeaks (Parent *parent, PiPo *receiver = NULL)
+  : PiPo(parent, receiver), buffer_(),
+    numPeaks(this, "numpeaks", "Maximum number of peaks to be estimated", true, 16),
+    keepMode(this, "keep", "keep first or strongest peaks", true, 0),
+    downSampling(this, "downsampling", "Downsampling Exponent", true, 2),
+    thresholdWidth(this, "thwidth", "maximum width for peaks (indicates sinusoidality)", true, 0.),
+    thresholdHeight(this, "thheight", "minimum height for peaks", true, 0.),
+    thresholdDev(this, "thdev", "maximum deviation from mean value", true, 0.),
+    rangeLow(this, "rangelow", "minimun of band where to search for peaks", true, 0.),
+    rangeHigh(this, "rangehigh", "maximum of band where to search for peaks", true, ABS_MAX),
+    domainScale(this, "domscale", "scaling factor of output peaks (overwrites domain and down)", true, -0.5)
+  {
+
+    this->keepMode.addEnumItem("strongest", "keep strongest peak");
+    this->keepMode.addEnumItem("lowest", "keep first peak");
+    
+    this->downSampling.addEnumItem("none", "No down sampling");
+    this->downSampling.addEnumItem("2x", "Down sampling by 2");
+    this->downSampling.addEnumItem("4x", "Down sampling by 4");
+    this->downSampling.addEnumItem("8x", "Down sampling by 8");
+    
+    this->domsr = 1;
+    this->allocatedPeaksSize = 0;
+  }
+  
+  ~PiPoPeaks (void)
+  {
+  }
+
+  int streamAttributes (bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+#if PIPO_PEAKS_DEBUG
+    printf("PiPoPeaks %p streamAttributes timetags %d  rate %f  offset %f  width %d  height %d  labels %s  varsize %d  domain %f  maxframes %d\n",
+           this, hasTimeTags, rate, offset, width, height, labels ? labels[0] : "n/a", hasVarSize, domain, maxFrames);
+#endif
+
+    int maxNumPeaks = this->numPeaks.get();
+    this->peaksRate = rate;
+    
+    const char *peaksColNames[2];
+    peaksColNames[0] = "Frequency";
+    peaksColNames[1] = "Amplitude";
+    
+    this->allocatedPeaksSize = maxNumPeaks;
+    if(this->allocatedPeaksSize < DEFAULT_NUM_ALLOC_PEAKS) this->allocatedPeaksSize = DEFAULT_NUM_ALLOC_PEAKS;
+    this->buffer_.resize(this->allocatedPeaksSize * 2);
+    
+    return this->propagateStreamAttributes(true, rate, offset, 2, maxNumPeaks, peaksColNames, 1, 0.0, 1);
+  }
+  
+  int reset (void)
+  {    
+    return this->propagateReset();
+  }
+
+  
+  int frames (double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    float *peaks_ptr = &this->buffer_[0];
+    int n_found = 0;
+    double mean = -ABS_MAX;
+    unsigned int start, end;
+    unsigned int i, j;
+    double thresholdDev = this->thresholdDev.get();
+    double thresholdHeight = this->thresholdHeight.get();
+    double thresholdWidth = this->thresholdWidth.get();
+    int maxNumPeaks = this->numPeaks.get();
+    double domscale = this->domainScale.get();
+    
+    if(this->domsr != 0)
+      domscale *= this->peaksRate;
+    
+    if(domscale < 0.0)
+      domscale = -domscale / (double)size;
+    
+    start = (unsigned int)floor(this->rangeLow.get() / domscale);
+    end = (unsigned int)ceil(this->rangeHigh.get() / domscale);
+      
+    if(start < 1)
+      start = 1;
+    
+    if(end >= size)
+      end = size - 1;
+      
+    if(thresholdDev > 0.0)
+    {
+      mean = 0.0;
+      
+      for(i=0, j=0; i < size; i++, j++)
+          mean += values[j];
+        
+      mean /= size;
+    }
+    
+    for(i = start, j = start; i < end; i++, j++)
+    {
+      double center = values[j];
+      double left = values[j - 1];
+      double right = values[j + 1];
+        
+      if(center >= left && center > right)
+      {
+        double a = 0.5 * (right + left) - center;
+        double b = 0.5 * (right - left);
+        double frac = -b / (2.0 * a);
+        double max_amp = (a * frac + b) * frac + center;
+        double max_index = (double)i + frac;
+          
+        if(fabs(max_amp - mean) < thresholdDev)
+          continue;
+        
+        if(thresholdHeight > 0.0 || thresholdWidth > 0.0)
+        {
+          double min_right_amp = center;
+          double min_left_amp = center;
+          double min_right_index = size;
+          double min_left_index = 0;
+          unsigned int k, l;
+          
+          thresholdWidth = thresholdWidth / domscale;
+          
+          for(k=i+1, l=j+1; k<size-1; k++, l++)
+          {
+            if(values[l] <= values[l + 1])
+            {
+              left = values[l - 1];
+              center = values[l];
+              right = values[l + 1];
+                
+              a = 0.5 * (right + left) - center;
+              b = 0.5 * (right - left);
+              frac = -b / (2.0 * a);
+              min_right_amp = (a * frac + b) * frac + center;
+              min_right_index = (double)k + frac;
+                
+              break;
+            }
+          }
+          
+          for(k=i-1, l=j-1; k>0; k--, l-=1)
+          {
+            if(values[l] <= values[l - 1])
+            {
+              left = values[l - 1];
+              center = values[l];
+              right = values[l + 1];
+                
+              a = 0.5 * (right + left) - center;
+              b = 0.5 * (right - left);
+              frac = -b / (2.0 * a);
+              min_left_amp = (a * frac + b) * frac + center;
+              min_left_index = (double)k + frac;
+                
+              break;
+            }
+          }
+          
+          if(max_amp - min_right_amp < thresholdHeight || max_amp - min_left_amp < thresholdHeight)
+            continue;
+          
+          if(min_right_index - min_left_index < thresholdWidth)
+            continue;
+        }
+        
+        peaks_ptr[2 * n_found] = max_index * domscale;
+        peaks_ptr[2 * n_found + 1] = max_amp;
+        n_found++;
+        
+        if((this->keepMode.get() == 0 && n_found >= maxNumPeaks) || (this->keepMode.get() == 1 && n_found >= this->allocatedPeaksSize))
+          break;
+      }
+    }
+    
+    if(this->keepMode.get() == 0)// keep strongest
+    {
+      qsort((void *)peaks_ptr, n_found, sizeof(peak_t), peaks_compare_amp);
+      
+      if(n_found > this->numPeaks.get())
+        n_found = maxNumPeaks;
+      
+      qsort((void *)peaks_ptr, n_found, sizeof(peak_t), peaks_compare_freq);
+    }
+    return propagateFrames(time, 1.0, peaks_ptr, 2*n_found, 1);
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoRms.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoRms.h
new file mode 100644
index 0000000..ccfbd2e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoRms.h
@@ -0,0 +1,111 @@
+/**
+ * @file PiPoRms.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief Mean Stddev Min Max PiPo
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012 by IMTR IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_RMS_
+#define _PIPO_RMS_
+
+#include "PiPo.h"
+
+using namespace std;
+
+class PiPoRms : public PiPo
+{
+private:
+  float outputFrame[2];
+  double sumOfSquare;
+  int num;
+
+public:
+  PiPoRms(PiPo *receiver = NULL)
+  {
+    this->sumOfSquare = 0.0;
+    this->num = 0;
+    
+    this->receiver = receiver;
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    char *rmsLabels[1];
+    
+    rmsLabels[0] = "Rms";
+        
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, 1, 1, rmsLabels, 0, 0.0, 1);
+  }
+  
+  int reset(void) 
+  { 
+    this->sumOfSquare = 0.0;
+    this->num = 0;
+    
+    return this->propagateReset(); 
+  };
+  
+  int frames(double time, float *values, unsigned int size, unsigned int num)
+  {
+    double norm = 1.0 / size;
+    
+    for(int i = 0; i < num; i++)
+    {
+      double meanOfSquare = 0.0;
+      
+      for(int j = 0; j < size; j++)
+      {
+        double x = values[j];
+        meanOfSquare += x * x;
+      }
+      
+      this->sumOfSquare += meanOfSquare;
+      this->num += num;
+      
+      meanOfSquare *= norm;
+
+      this->outputFrame[0] = meanOfSquare;
+
+      int ret = this->propagateFrames(time, this->outputFrame, 2, 1);
+      
+      if(ret != 0)
+        return ret;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoScale.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoScale.h
new file mode 100644
index 0000000..522de64
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoScale.h
@@ -0,0 +1,420 @@
+/**
+ * @file PiPoScale.h
+ * @author Norbert.Schnell@ircam.fr
+ *
+ * @brief PiPo scale data stream
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_SCALE_
+#define _PIPO_SCALE_
+
+#include "PiPo.h"
+
+#include <math.h>
+#include <vector>
+
+#define defMinLogVal 1e-24f
+
+class PiPoScale : public PiPo
+{
+public:
+  enum ScaleFun { ScaleLin, ScaleLog, ScaleExp };
+  enum CompleteMode { CompleteNot, CompleteRepeatLast, CompleteRepeatAll };
+  //static const double defMinLogVal = 1e-24f;
+  
+private:
+  std::vector<double> extInMin;
+  std::vector<double> extInMax;
+  std::vector<double> extOutMin;
+  std::vector<double> extOutMax;
+  std::vector<double> inScale;
+  std::vector<double> inOffset;
+  std::vector<double> outScale;
+  std::vector<double> outOffset;
+  std::vector<float> buffer;
+  unsigned int frameSize;
+  enum ScaleFun scaleFunc;
+  double funcBase;
+  double minLogVal;
+  int elemOffset;
+  int numElems;
+  int width;
+  
+public:
+  PiPoVarSizeAttr<double> inMin;
+  PiPoVarSizeAttr<double> inMax;
+  PiPoVarSizeAttr<double> outMin;
+  PiPoVarSizeAttr<double> outMax;
+  PiPoScalarAttr<bool> clip;
+  PiPoScalarAttr<PiPo::Enumerate> func;
+  PiPoScalarAttr<double> base;
+  PiPoScalarAttr<double> minlog;
+  PiPoScalarAttr<PiPo::Enumerate> complete;
+  PiPoScalarAttr<int> colIndex;
+  PiPoScalarAttr<int> numCols;
+  
+  PiPoScale(Parent *parent, PiPo *receiver = NULL)
+  : PiPo(parent, receiver), inScale(), inOffset(), outScale(), outOffset(), buffer(),
+    inMin(this, "inmin", "Input Minimum", true),
+    inMax(this, "inmax", "Input Maximum", true),
+    outMin(this, "outmin", "Output Minimum", true),
+    outMax(this, "outmax", "Output Maximum", true),
+    clip(this, "clip", "Clip Values", false, false),
+    func(this, "func", "Scaling Function", true, ScaleLin),
+    base(this, "base", "Scaling Base", true, 1.0),
+    minlog(this, "minlog", "Minimum Log Value", true, defMinLogVal),
+    complete(this, "complete", "Complete Min/Max Lists", true, CompleteRepeatLast),
+    colIndex(this, "colindex", "Index of First Column to Scale (negative values count from end)", true, 0),
+    numCols(this, "numcols", "Number of Columns to Scale (negative values count from end, 0 means all)", true, 0)
+  {
+    this->frameSize = 0;
+    this->scaleFunc = ScaleLin;
+    this->funcBase = 1.0;
+    this->minLogVal = defMinLogVal;
+    
+    this->func.addEnumItem("lin", "Linear scaling");
+    this->func.addEnumItem("log", "Logarithmic scaling");
+    this->func.addEnumItem("exp", "Exponential scaling");
+    
+    this->complete.addEnumItem("zeroone");
+    this->complete.addEnumItem("repeatlast");
+    this->complete.addEnumItem("repeatall");
+  }
+
+private:
+  // disable copy constructor and assignment operator
+  PiPoScale (const PiPoScale &other);
+  const PiPoScale& operator=(const PiPoScale &other);
+
+public:
+  ~PiPoScale(void)
+  {
+  }
+  
+  void extendVector(PiPoVarSizeAttr<double> &attrVec, std::vector<double> &extVec, unsigned int size, double def, enum CompleteMode mode)
+  {
+    unsigned int attrSize = attrVec.getSize();
+    unsigned int minSize = size;
+    
+    if(minSize > attrSize)
+      minSize = attrSize;
+    
+    extVec.resize(size);
+    
+    if(attrSize == 0)
+      mode = CompleteNot;
+
+    for(unsigned int i = 0; i < minSize; i++)
+      extVec[i] = attrVec[i];
+    
+    switch(mode)
+    {
+      case CompleteNot:
+      {
+        for(unsigned int i = minSize; i < size; i++)
+          extVec[i] = def;
+        
+        break;
+      }
+        
+      case CompleteRepeatLast:
+      {
+        for(unsigned int i = minSize; i < size; i++)
+          extVec[i] = attrVec[minSize - 1];
+        
+        break;
+      }
+        
+      case CompleteRepeatAll:
+      {
+        for(unsigned int i = minSize; i < size; i++)
+          extVec[i] = attrVec[i % attrSize];
+      }
+    }
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    unsigned int frameSize = width * size;
+    enum ScaleFun scaleFunc = (enum ScaleFun)this->func.get();
+    double funcBase = this->base.get();
+    double minLogVal = this->minlog.get();
+    enum CompleteMode completeMode = (enum CompleteMode)this->complete.get();
+    
+    // check and normalise column choice:
+    // neg. values count from end, no wraparound
+    int colIndex = this->colIndex.get();
+    int numCols = this->numCols.get();
+    
+    if (colIndex < 0)
+    {
+      colIndex += width;
+      
+      if (colIndex < 0)
+        colIndex = 0;
+    }
+    else if (colIndex >= (int)width)
+      colIndex = width - 1;
+    
+    if (numCols <= 0)
+    {
+      numCols += width;
+      
+      if (numCols <= 0)
+        numCols = width;
+    }
+    
+    if (colIndex + numCols > (int)width)
+      numCols = width - colIndex;
+    
+    this->elemOffset = colIndex;
+    this->numElems = numCols;
+    this->width = width;
+    
+    extendVector(this->inMin, this->extInMin, frameSize, 0.0, completeMode);
+    extendVector(this->inMax, this->extInMax, frameSize, 1.0, completeMode);
+    extendVector(this->outMin, this->extOutMin, frameSize, 0.0, completeMode);
+    extendVector(this->outMax, this->extOutMax, frameSize, 1.0, completeMode);
+    
+    this->inScale.resize(frameSize);
+    this->inOffset.resize(frameSize);
+    this->outScale.resize(frameSize);
+    this->outOffset.resize(frameSize);
+
+    if(scaleFunc <= ScaleLin)
+    {
+      scaleFunc = ScaleLin;
+      funcBase = 1.0;
+    }
+    else
+    {
+      if(scaleFunc > ScaleExp)
+        scaleFunc = ScaleExp;
+      
+      if(funcBase == 1.0)
+        scaleFunc = ScaleLin;
+    }
+    
+    if(minLogVal > 0.0)
+      this->minLogVal = minLogVal;
+    else
+      this->minlog.set(this->minLogVal);
+    
+    if(funcBase < this->minLogVal)
+      funcBase = this->minLogVal;
+    
+    switch(scaleFunc)
+    {
+      case ScaleLin:
+      {
+        for(unsigned int i = 0; i < frameSize; i++)
+        {
+          this->inScale[i] = ((this->extOutMax[i] - this->extOutMin[i]) / (this->extInMax[i] - this->extInMin[i]));
+          this->inOffset[i] =  (this->extOutMin[i] - this->extInMin[i] * this->inScale[i]);
+        }
+        
+        break;
+      }
+        
+      case ScaleLog:
+      {
+        for(unsigned int i = 0; i < frameSize; i++)
+        {
+          this->inScale[i] = (funcBase - 1.) / (this->extInMax[i] - this->extInMin[i]);
+          this->inOffset[i] = 1.0 - this->extInMin[i] * this->inScale[i];
+          this->outScale[i] = (this->extOutMax[i] - this->extOutMin[i]) / log(funcBase);
+          this->outOffset[i] = this->extOutMin[i];
+        }
+        
+        break;
+      }
+        
+      case ScaleExp:
+      {
+        for(unsigned int i = 0; i < frameSize; i++)
+        {
+          this->inScale[i] = log(funcBase) / (this->extInMax[i] - this->extInMin[i]);
+          this->inOffset[i] = -this->extInMin[i] * this->inScale[i];
+          this->outScale[i] = (this->extOutMax[i] - this->extOutMin[i]) / (funcBase - 1.0);
+          this->outOffset[i] = this->extOutMin[i] - this->outScale[i];
+        }
+        
+        break;
+      }
+    }
+    
+    this->scaleFunc = scaleFunc;
+    this->funcBase = funcBase;
+    
+    this->frameSize = frameSize;
+    this->buffer.resize(frameSize * maxFrames);
+    
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, width, size, labels, hasVarSize, domain, maxFrames);
+  }
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int numframes)
+  {
+    float *buffer = &this->buffer[0];
+    bool clip = this->clip.get();
+    unsigned int numrows = size / this->width;
+
+    if (this->elemOffset > 0 || this->numElems < (int)size)
+    { /* copy through unscaled values */
+      memcpy(buffer, values, numframes * size * sizeof(float));
+    }
+    
+    if(!clip)
+    {
+      switch(this->scaleFunc)
+      {
+        case ScaleLin:
+          for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+	    for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+	      buffer[k] = values[k] * this->inScale[j] + this->inOffset[j];
+            
+	    buffer += this->width;
+	    values += this->width;
+          }
+        break;
+          
+        case ScaleLog:
+          for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+            for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+            {
+              double inVal = values[k] * this->inScale[j] + this->inOffset[j];
+              
+              if(inVal < this->minLogVal)
+                inVal = this->minLogVal;
+              
+              buffer[k] = this->outScale[j] * logf(inVal) + this->outOffset[j];
+            }
+            
+            buffer += this->width;
+            values += this->width;
+          }
+        break;
+          
+        case ScaleExp:
+          for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+            for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+              buffer[k] = this->outScale[j] * expf(values[k] * this->inScale[j] + this->inOffset[j]) + this->outOffset[j];
+            
+            buffer += this->width;
+            values += this->width;
+          }
+        break;
+      }
+    }
+    else
+    { /* with clipping on */
+      switch(this->scaleFunc)
+      {
+        case ScaleLin:
+          for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+            for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+            {
+              double f = values[k];
+              
+              if(f <= this->extInMin[j])
+                buffer[k] = this->extInMin[j];
+              else if(f >= this->extInMax[j])
+                buffer[k] = this->extInMax[j];
+              else
+                buffer[k] = f * this->inScale[j] + this->inOffset[j];
+            }
+            
+            buffer += this->width;
+            values += this->width;
+          }
+        break;
+          
+        case ScaleLog:
+	  for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+            for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+            {
+              double f = values[k];
+              
+              if(f <= this->extInMin[j])
+                buffer[k] = this->extInMin[j];
+              else if(f >= this->extInMax[j])
+                buffer[k] = this->extInMax[j];
+              else
+                buffer[k] = this->outScale[j] * log(values[k] * this->inScale[j] + this->inOffset[j]) + this->outOffset[j];
+            }
+            
+            buffer += this->width;
+            values += this->width;
+          }
+        break;
+          
+        case ScaleExp:
+          for (unsigned int i = 0; i < numframes * numrows; i++)
+          {
+            for (unsigned int j = 0, k = this->elemOffset; j < this->numElems; j++, k++)
+            {
+              double f = values[k];
+              
+              if(f <= this->extInMin[j])
+                buffer[k] = this->extInMin[j];
+              else if(f >= this->extInMax[j])
+                buffer[k] = this->extInMax[j];
+              else
+                buffer[k] = this->outScale[j] * exp(values[k] * this->inScale[j] + this->inOffset[j]) + this->outOffset[j];
+            }
+            
+            buffer += this->width;
+            values += this->width;
+          }
+        break;
+      }
+    }
+    
+    return this->propagateFrames(time, weight, &this->buffer[0], size, numframes);
+  }
+};
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSelect.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSelect.h
new file mode 100644
index 0000000..5c467fd
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSelect.h
@@ -0,0 +1,300 @@
+/**
+ * @file PiPoSel.h
+ * @author joseph.larralde@ircam.fr
+ * @date 05.01.2016
+ *
+ * @brief PiPo allowing the selection of a subset of rows or columns
+ * in the incoming stream.
+ * If no match is found for any selected colum, all columns are passed through.
+ * Idem for rows.
+ *
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2016 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_SEL_H_
+#define _PIPO_SEL_H_
+
+#include "PiPo.h"
+
+extern "C"
+{
+#include <stdlib.h>
+}
+
+class PiPoSelect : public PiPo
+{
+private:
+    std::vector<PiPo::Atom> _colNames;
+    std::vector<int> _rowIndices;
+    std::vector<unsigned int> _usefulColIndices; // sorted and validity-checked indices
+    std::vector<unsigned int> _usefulRowIndices; // sorted and validity-checked indices
+    
+    unsigned int lastNum;
+    
+    unsigned int frameWidth;
+    unsigned int frameHeight;
+    
+    unsigned int outWidth;
+    unsigned int outHeight;
+    
+    unsigned int outFrameSize;
+    
+    PiPoValue *outValues;
+    
+public:
+    PiPoVarSizeAttr<PiPo::Atom> colNames;
+    PiPoVarSizeAttr<int> rowIndices;
+    
+    PiPoSelect(Parent *parent, PiPo *receiver = NULL) :
+    PiPo(parent, receiver),
+    colNames(this, "cols", "List of Names or Indices of Columns to Select", true, 1),
+    rowIndices(this, "rows", "List of Indices of Rows to Select", true, 1, 0)
+    {
+        this->lastNum = 0;
+        
+        this->frameWidth = 0;
+        this->frameHeight = 0;
+        this->outWidth = 0;
+        this->outHeight = 0;
+        this->outFrameSize = 0;
+        
+        this->outValues = (PiPoValue *)malloc(0);
+    }
+    
+    ~PiPoSelect()
+    {
+        free(this->outValues);
+    }
+    
+    int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int height, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+    {
+        unsigned int cnSize = this->colNames.getSize();
+        unsigned int riSize = this->rowIndices.getSize();
+        const char *colNames[128];
+        
+        unsigned int frameWidth = width;
+        unsigned int frameHeight = height;
+        
+        //================== check col names changes
+        bool colNamesChanged = false;
+        if(cnSize != this->_colNames.size())
+        {
+            colNamesChanged = true;
+        }
+        else
+        {
+            for(unsigned int i = 0; i < cnSize; i++)
+            {
+                if(this->_colNames[i] != this->colNames[i])
+                {
+                    colNamesChanged = true;
+                    break;
+                }
+            }
+        }
+        
+        //================== check col indices changes
+        bool rowIndicesChanged = false;
+        if(riSize != this->_rowIndices.size())
+        {
+            rowIndicesChanged = true;
+        }
+        else
+        {
+            for(unsigned int i = 0; i < riSize; i++)
+            {
+                if(this->_rowIndices[i] != this->rowIndices[i])
+                {
+                    rowIndicesChanged = true;
+                    break;
+                }
+            }
+        }
+        
+        //=========== check any change in stream attributes and/or PiPo attributes =========//
+        
+        if(colNamesChanged || rowIndicesChanged || frameWidth != this->frameWidth || frameHeight != this->frameHeight)
+        {
+            /*
+             for(unsigned int i = 0; i < this->colNames.size(); i++)
+             {
+             printf("%s ", this->colNames[i]);
+             }
+             printf("\n");
+             //*/
+            
+            //copy new col names
+            this->_colNames.clear();
+            for(unsigned int i = 0; i < cnSize; i++)
+            {
+                this->_colNames.push_back(this->colNames[i]);
+            }
+            
+            // copy new row indices
+            this->_rowIndices.clear();
+            for(unsigned int i = 0; i < riSize; i++)
+            {
+                this->_rowIndices.push_back(this->rowIndices[i]);
+            }
+            
+            // set new input dimensions
+            this->frameWidth = frameWidth;
+            this->frameHeight = frameHeight;
+            
+            //============== first deal with col indices ================//
+            
+            unsigned int cnt = 0;
+            this->_usefulColIndices.clear();
+            for(unsigned int i = 0; i < cnSize; i++)
+            {
+                switch(this->_colNames[i].getType())
+                {
+                    case Double:
+                    case Int:
+                    {
+                        int res = this->_colNames[i].getInt();
+                        if(res >= 0 && (unsigned int)res < this->frameWidth)
+                        {
+                            //add res to the indices of valid columns
+                            this->_usefulColIndices.push_back(res);
+                            cnt++;
+                        }
+                    }
+                    break;
+                        
+                    case String:
+                    {
+                        if(labels != NULL)
+                        {
+                            for(unsigned int j = 0; j < this->frameWidth; j++)
+                            {
+                                if(strcmp(this->_colNames[i].getString(), labels[j]) == 0)
+                                {
+                                    this->_usefulColIndices.push_back(j);
+                                    cnt++;
+                                }
+                            }
+                        }
+                    }
+                    break;
+                        
+                    default:
+                        break;
+                }
+            }
+            /*
+            printf("selected cols :");
+            for(unsigned int i = 0; i < this->_usefulColIndices.size(); i++)
+            {
+                printf(" %d", this->_usefulColIndices[i]);
+            }
+            printf("\n");
+            //*/
+            
+            if(this->_usefulColIndices.size() == 0) // pass all through
+            {
+                // fill with all indices
+                this->_usefulColIndices.resize(this->frameWidth);
+                for(unsigned int i = 0; i < this->frameWidth; i++)
+                {
+                    this->_usefulColIndices[i] = i;
+                }
+            }
+            
+            this->outWidth = static_cast<unsigned int>(this->_usefulColIndices.size());
+            // default sorting is ascending order
+            //std::sort(this->_usefulColIndices.begin(), this->_usefulColIndices.end());
+            
+            //============== now deal with row indices ================//
+            
+            this->_usefulRowIndices.clear();
+            for(unsigned int i = 0; i < this->_rowIndices.size(); i++)
+            {
+                if(this->_rowIndices[i] < (int)(this->frameHeight) && this->_rowIndices[i] >= 0) {
+                    this->_usefulRowIndices.push_back(this->_rowIndices[i]);
+                }
+            }
+            
+            if(this->_usefulRowIndices.size() == 0) // pass all through
+            {
+                // fill with all indices
+                this->_usefulRowIndices.resize(this->frameHeight);
+                for(unsigned int i = 0; i < this->frameHeight; i++)
+                {
+                    this->_usefulRowIndices[i] = i;
+                }
+            }
+            
+            this->outHeight = static_cast<unsigned int>(this->_usefulRowIndices.size());
+            // default sorting is ascending order
+            //std::sort(this->_usefulRowIndices.begin(), this->_usefulRowIndices.end());
+            
+            this->outFrameSize = this->outWidth * this->outHeight;
+        }
+        
+        for(unsigned int i = 0; i < this->outWidth; i++)
+        {
+            colNames[i] = (labels != NULL ? labels[this->_usefulColIndices[i]] : "");
+        }
+        
+        return this->propagateStreamAttributes(hasTimeTags, rate, offset, this->outWidth, this->outHeight, (labels != NULL ? colNames : NULL), hasVarSize, domain, maxFrames);
+    }
+    
+    int frames(double time, double weight, PiPoValue *values, unsigned int size, unsigned int num)
+    {
+        if(num != this->lastNum) {
+            this->lastNum = num;
+            this->outValues = (PiPoValue *)realloc(this->outValues, this->outFrameSize * num * sizeof(PiPoValue));
+        }
+        
+        for(unsigned int n = 0; n < num; n++)
+        {
+            unsigned int cnt = 0;
+            for(unsigned int i = 0; i < this->outHeight; i++)
+            {
+                for(unsigned int j = 0; j < this->outWidth; j++)
+                {
+                    this->outValues[n * this->outFrameSize + cnt] = values[this->_usefulRowIndices[i] * this->frameWidth + this->_usefulColIndices[j]];
+                    cnt++;
+                }
+            }
+            
+            values += size;
+        }
+        
+        return this->propagateFrames(time, weight, this->outValues, this->outFrameSize, num);
+    }
+};
+
+
+#endif /* _PIPO_SEL_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSlice.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSlice.h
new file mode 100644
index 0000000..081524b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSlice.h
@@ -0,0 +1,389 @@
+/**
+ * @file PiPoSlice.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief PiPo slicing data stream into windowed frames
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_SLICE_
+#define _PIPO_SLICE_
+
+#include "pipo.h"
+
+#include <math.h>
+#include <vector>
+
+class PiPoSlice : public PiPo
+{
+public:
+  enum WindowTypeE { UndefinedWindow = -1, NoWindow = 0, HannWindow, HammingWindow, BlackmanWindow, BlackmanHarrisWindow, SineWindow, NumWindows };
+  enum NormModeE { UndefinedNorm = -1, NoNorm = 0, LinearNorm, PowerNorm };
+  
+private:
+  std::vector<float> buffer;
+  std::vector<float> frame;
+  std::vector<float> window;
+  enum WindowTypeE windowType;
+  enum NormModeE normMode;
+  double windScale;
+
+  double frameRate;
+  int inputIndex;
+  unsigned int inputStride;
+  unsigned int inputHop;
+ 
+public:
+  PiPoScalarAttr<int> size;
+  PiPoScalarAttr<int> hop;
+  PiPoScalarAttr<PiPo::Enumerate> wind;
+  PiPoScalarAttr<PiPo::Enumerate> norm;
+  
+  PiPoSlice(Parent *parent, PiPo *receiver = NULL) :
+  PiPo(parent, receiver),
+  buffer(), frame(), window(),
+  size(this, "size", "Slice Frame Size", true, 2048),
+  hop(this, "hop", "Slice Hop Size", true, 512),
+  wind(this, "wind", "Slice Window Type", true, HannWindow),
+  norm(this, "norm", "Normalize Slice", true, NoNorm)
+  {
+    this->windowType = UndefinedWindow;
+    this->normMode = UndefinedNorm;
+    this->windScale = 1.0;
+    
+    this->inputIndex = 0;
+    this->inputStride = 0;
+    this->inputHop = 0;
+    
+    this->wind.addEnumItem("none", "No window");
+    this->wind.addEnumItem("hann", "Hann window");
+    this->wind.addEnumItem("hamming", "Hamming window");
+    this->wind.addEnumItem("blackman", "Blackman window");
+    this->wind.addEnumItem("blackmanharris", "Blackman-Harris window");
+    this->wind.addEnumItem("sine", "Half sine window");
+    
+    this->norm.addEnumItem("none", "No normalization");
+    this->norm.addEnumItem("linear", "Linear normalization");
+    this->norm.addEnumItem("power", "Power normalization");
+  }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {  
+    unsigned int frameSize = this->size.get();
+    unsigned int hopSize = this->hop.get();
+    enum WindowTypeE windowType = (enum WindowTypeE)this->wind.get();
+    enum NormModeE normMode = (enum NormModeE)this->norm.get();
+    unsigned int inputStride = width * size;
+
+    if(frameSize < 1)
+      frameSize = 1;
+    if(hopSize < 1)
+      hopSize = 1;
+
+    offset += 500.0 * frameSize / rate;
+    
+    this->frameRate = rate;
+    this->inputStride = inputStride;
+    this->inputHop = hopSize;
+    
+    if(frameSize != this->frame.size())
+    {
+      this->buffer.resize(frameSize);
+      this->frame.resize(frameSize);
+      this->window.resize(frameSize);
+      this->windowType = UndefinedWindow;
+      this->inputIndex = 0;
+    }
+    
+    if(windowType != this->windowType || normMode != this->normMode)
+    {
+      this->windowType = windowType;
+      
+      double linNorm, powNorm;
+      initWindow(&this->window[0], frameSize, windowType, normMode, linNorm, powNorm);
+      
+      switch(normMode)
+      {
+        default:
+        case NoNorm:
+          this->windScale = 1.0;
+          break;
+          
+        case LinearNorm:
+          this->windScale = linNorm;
+          break;
+          
+        case PowerNorm:
+          this->windScale = powNorm;
+          break;
+      }
+    }
+    
+    return this->propagateStreamAttributes(0, rate / (double)hopSize, offset, 1, frameSize, labels, 0, (double)frameSize / rate, 1);
+  }
+  
+  int reset(void)
+  {
+    this->inputIndex = 0;
+    
+    return this->propagateReset();
+  }
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    int inputIndex = this->inputIndex;
+    unsigned int outputSize = static_cast<unsigned int>(this->frame.size());
+    NormModeE normMode = (enum NormModeE)this->norm.get();
+    int frameIndex = 0;
+
+    while(num > 0)
+    {
+      if(inputIndex >= 0)
+      {
+        unsigned int inputSpace = outputSize - inputIndex;
+        unsigned int numInput = num;
+        
+        if(numInput > inputSpace)
+          numInput = inputSpace;
+        
+        if(size == 1)
+          memcpy(&this->buffer[inputIndex], values, numInput * sizeof(float));
+        else
+        {
+          for(unsigned int i = 0, j = 0; i < numInput; i++, j += size)
+            this->buffer[inputIndex + i] = values[j];
+        }
+        
+        inputIndex += numInput;
+        frameIndex += numInput;
+        
+        if(inputIndex == (int)outputSize)
+        {
+          int halfWindowSize = outputSize / 2;
+          double frameTime = time + 1000.0 * (double)(frameIndex - halfWindowSize) / this->frameRate;
+          int ret;
+          
+          if(this->windowType > NoWindow)
+          {
+            this->frame = this->buffer;
+            
+            /* apply window and normalization */
+            for(unsigned int i = 0; i < outputSize; i++)
+              this->frame[i] *= (this->window[i] * this->windScale);
+            
+            ret = this->propagateFrames(frameTime, weight, &this->frame[0], outputSize, 1);
+          }
+          else if(normMode > NoNorm)
+          {
+            this->frame = this->buffer;
+            
+            /* apply normalization */
+            for(unsigned int i = 0; i < outputSize; i++)
+              this->frame[i] *= this->windScale;
+            
+            ret = this->propagateFrames(frameTime, weight, &this->frame[0], outputSize, 1);
+          }        
+          else
+            ret = this->propagateFrames(frameTime, weight, &this->buffer[0], outputSize, 1);
+            
+          if(ret != 0)
+            return ret;
+          
+          int overlap = outputSize - this->inputHop;
+          
+          if(overlap > 0)
+            memmove(&this->buffer[0], &this->buffer[this->inputHop], overlap * sizeof(float));
+          
+          inputIndex = overlap;
+        }
+        
+        values += numInput;
+        num -= numInput;
+      }
+      else
+      {
+        unsigned int numDiscard = -inputIndex;
+        
+        if(numDiscard > num)
+          numDiscard = num;
+        
+        inputIndex += numDiscard;
+        values += numDiscard;
+        num -= numDiscard;
+      }
+    }
+    
+    this->inputIndex = inputIndex;
+    
+    return 0;
+  }
+  
+private:
+  static void initHannWindow(float *ptr, unsigned int size, double &linNorm, double &powNorm)
+  {
+    double linSum = 0.0;
+    double powSum = 0.0;
+    
+    for(unsigned int i = 0; i < size; i++)
+    {
+      double phi = 2.0 * M_PI * (double)i / (double)size;
+      double f = 0.5 - 0.5 * cos(phi);
+      
+      ptr[i] = f;
+
+      linSum += f;
+      powSum += f * f;
+    }
+    
+    linNorm = size / linSum;
+    powNorm = sqrt(size / powSum);
+  }
+  
+  static void initHammingWindow(float *ptr, unsigned int size, double &linNorm, double &powNorm)
+  {
+    double linSum = 0.0;
+    double powSum = 0.0;
+    
+    for(unsigned int i = 0; i < size; i++)
+    {
+      double phi = 2.0 * M_PI * (double)i / (double)size;
+      double f = 0.54 - 0.46 * cos(phi);
+      
+      ptr[i] = f;
+
+      linSum += f;
+      powSum += f * f;
+    }
+    
+    linNorm = size / linSum;
+    powNorm = sqrt(size / powSum);
+  }
+  
+  static void initBlackmanWindow(float *ptr, unsigned int size, double &linNorm, double &powNorm)
+  {
+    double linSum = 0.0;
+    double powSum = 0.0;
+    
+    for(unsigned int i = 0; i < size; i++)
+    {
+      double phi = 2.0 * M_PI * (double)i / (double)size;
+      double f = 0.42 - 0.5 * cos(phi) + 0.08 * cos(2.0 * phi);
+      
+      ptr[i] = f;
+
+      linSum += f;
+      powSum += f * f;
+    }
+    
+    linNorm = size / linSum;
+    powNorm = sqrt(size / powSum);
+  }
+  
+  static void initBlackmanHarrisWindow(float *ptr, unsigned int size, double &linNorm, double &powNorm)
+  {
+    double linSum = 0.0;
+    double powSum = 0.0;
+    double a0 = 0.35875;
+    double a1 = 0.48829;
+    double a2 = 0.14128;
+    double a3 = 0.01168;
+    
+    for(unsigned int i = 0; i < size; i++) 
+    {
+      double phi = 2.0 * M_PI * (double)i / (double)size;
+      double f = a0 - a1 * cos(phi) + a2 * cos(2.0 * phi) - a3 * cos(3.0 * phi);
+
+      ptr[i] = f;
+
+      linSum += f;
+      powSum += f * f;
+    }
+    
+    linNorm = size / linSum;
+    powNorm = sqrt(size / powSum);
+  }
+  
+  static void initSineWindow(float *ptr, unsigned int size, double &linNorm, double &powNorm)
+  {
+    double linSum = 0.0;
+    double powSum = 0.0;
+    
+    for(unsigned int i = 0; i < size; i++)
+    {
+      double phi = M_PI * (double)i / (double)size;
+      double f = sin(phi);
+      
+      ptr[i] = f;
+      
+      linSum += f;
+      powSum += f * f;
+    }
+    
+    linNorm = size / linSum;
+    powNorm = sqrt(size / powSum);
+  }
+  
+  static void initWindow(float *ptr, unsigned int size, int window, NormModeE normMode, double &linNorm, double &powNorm)
+  {
+    switch(window)
+    {
+      default:
+      case PiPoSlice::NoWindow:
+        linNorm = powNorm = 1.0;
+        break;
+        
+      case PiPoSlice::HannWindow:
+        initHannWindow(ptr, size, linNorm, powNorm);
+        break;
+        
+      case PiPoSlice::HammingWindow:
+        return initHammingWindow(ptr, size, linNorm, powNorm);
+        break;
+        
+      case PiPoSlice::BlackmanWindow:
+        initBlackmanWindow(ptr, size, linNorm, powNorm);
+        break;
+        
+      case PiPoSlice::BlackmanHarrisWindow:
+        initBlackmanHarrisWindow(ptr, size, linNorm, powNorm);
+        break;
+        
+      case PiPoSlice::SineWindow:
+        initSineWindow(ptr, size, linNorm, powNorm);
+        break;
+    }
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSum.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSum.h
new file mode 100644
index 0000000..92ad3ae
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/PiPoSum.h
@@ -0,0 +1,99 @@
+/**
+ * @file PiPoSum.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief PiPo sum values of data streams
+ * 
+ * @ingroup pipomodules
+ *
+ * @copyright
+ * Copyright (C) 2012-2014 by IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PIPO_SUM_
+#define _PIPO_SUM_
+
+#include "PiPo.h"
+
+#include <math.h>
+#include <vector>
+using namespace std;
+
+class PiPoSum : public PiPo
+{
+private:
+  bool normSum;
+  
+public:
+  PiPoScalarAttr<bool> norm;
+  PiPoScalarAttr<const char *> colname;
+
+  PiPoSum(Parent *parent, PiPo *receiver = NULL)
+  : PiPo(parent, receiver),
+    norm(this, "norm", "Normalize Sum With Size", false, false),
+    colname(this, "colname", "Output Column Name", true, "")
+  { }
+  
+  ~PiPoSum(void)
+  { }
+  
+  int streamAttributes(bool hasTimeTags, double rate, double offset, unsigned int width, unsigned int size, const char **labels, bool hasVarSize, double domain, unsigned int maxFrames)
+  {
+    const char *name = colname.get();
+    return this->propagateStreamAttributes(hasTimeTags, rate, offset, 1, 1, name ? &name : NULL, 0, 0.0, 1);
+  }
+  
+  int frames(double time, double weight, float *values, unsigned int size, unsigned int num)
+  {
+    bool normSum = this->norm.get();
+    
+    for(unsigned int i = 0; i < num; i++)
+    {
+      float sum = 0.0;
+      
+      for(unsigned int j = 0; j < size; j++)
+        sum += values[j];
+      
+      if(normSum)
+        sum /= size;
+      
+      int ret = this->propagateFrames(time, weight, &sum, 1, 1);
+      
+      if(ret != 0)
+        return ret;
+      
+      values += size;
+    }
+    
+    return 0;
+  }
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/TempMod.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/TempMod.h
new file mode 100644
index 0000000..478fa45
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/TempMod.h
@@ -0,0 +1,303 @@
+/**
+ * @file TempMod.h
+ * @author Norbert.Schnell@ircam.fr
+ * 
+ * @brief Temporal modeling util
+ * 
+ * @copyright
+ * Copyright (C) 2013 by IMTR IRCAM – Centre Pompidou, Paris, France.
+ * All rights reserved.
+ * 
+ * License (BSD 3-clause)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _TEMP_MOD_
+#define _TEMP_MOD_
+
+extern "C" {
+#include "rta_configuration.h"
+#include "rta_selection.h"
+  
+#include <float.h>
+#include <math.h>
+}
+
+class TempMod
+{
+public:
+  enum ValueId { Min, Max, Mean, StdDev, NumIds };   
+  
+  bool enabled[NumIds];
+  
+  PiPoValue min;
+  PiPoValue max;
+  PiPoValue sum;
+  PiPoValue sumOfSquare;
+  
+  unsigned int num;
+  
+  TempMod(void)
+  {
+    for(unsigned int i = 0; i < NumIds; i++)
+      this->enabled[i] = false;
+    
+    this->min = FLT_MAX;
+    this->max = -FLT_MAX;
+    
+    this->sum = 0.0; /* init sum */
+    this->sumOfSquare = 0.0; /* init sum of squares */
+    
+    this->num = 0;      
+  };
+  
+  void enable(enum ValueId valId, bool enable = true)
+  {
+    this->enabled[valId] = enable;      
+  }
+  
+  void enable(bool minEn, bool maxEn = false, bool meanEn = false, bool stddevEn = false)
+  {
+    this->enabled[Min] = minEn;
+    this->enabled[Max] = maxEn;
+    this->enabled[Mean] = meanEn;
+    this->enabled[StdDev] = stddevEn;
+  }
+  
+  void select(enum ValueId valId)
+  {
+    for(unsigned int i = 0; i < NumIds; i++)
+      this->enabled[i] = (i == (unsigned int)valId);
+  }
+  
+  unsigned int getNumValues(void)
+  {
+    int numValues = 0;
+    
+    for(unsigned int i = 0; i < NumIds; i++)
+      numValues += this->enabled[i];
+    
+    return numValues;
+  }
+  
+  void reset(void)
+  {
+    this->min = FLT_MAX;
+    this->max = -FLT_MAX;
+    
+    this->sum = 0.0; /* init sum */
+    this->sumOfSquare = 0.0; /* init sum of squares */
+    
+    this->num = 0;
+  };
+  
+  void input(PiPoValue value)
+  {  
+    if(this->enabled[Min] && value < this->min)
+      this->min = value;
+    
+    if(this->enabled[Max] && value > this->max)
+      this->max = value;
+    
+    if(this->enabled[Mean] || this->enabled[StdDev])
+      this->sum += value;
+    
+    if(this->enabled[StdDev])
+      this->sumOfSquare += (value * value);
+    
+    this->num++;
+  };  
+  
+  unsigned int getValues(PiPoValue *values, unsigned int numValues, bool reset = false)
+  {  
+    if(this->num > 0)
+    {
+      unsigned int index = 0;
+      
+      if(this->enabled[Min] && index < numValues)
+        values[index++] = this->min;
+      
+      if(this->enabled[Max] && index < numValues)
+        values[index++] = this->max;
+      
+      if((this->enabled[Mean] || this->enabled[StdDev]) && index < numValues)
+      {
+        PiPoValue norm = 1.0 / this->num;
+        PiPoValue mean = this->sum * norm;
+        
+        values[index++] = mean;
+        
+        if(this->enabled[StdDev] && index < numValues)
+        {
+          PiPoValue mean = this->sum * norm;
+          PiPoValue meanOfSquare = this->sumOfSquare * norm;
+          PiPoValue squareOfmean = mean * mean;
+          PiPoValue stddev;
+          
+          if(meanOfSquare > squareOfmean)
+            stddev = sqrt(meanOfSquare - squareOfmean);
+          else
+            stddev = 0.0;            
+          
+          values[index++] = stddev;            
+        }
+      }
+      
+      if(reset)
+        this->reset();
+      
+      return index;
+    }
+    
+    return 0;
+  }
+  
+  unsigned int getLabels(const char *name, char **labels, unsigned int strLen, unsigned int numLabels)
+  {  
+    unsigned int index = 0;
+    
+    if(name == NULL)
+      name = "";
+    
+    if(this->enabled[Min] && index < numLabels)
+      snprintf(labels[index++], strLen, "%sMin", name);
+    
+    if(this->enabled[Max] && index < numLabels)
+      snprintf(labels[index++], strLen, "%sMax", name);
+    
+    if(this->enabled[Mean] && index < numLabels)
+      snprintf(labels[index++], strLen, "%sMean", name);
+    
+    if(this->enabled[StdDev] && index < numLabels)
+      snprintf(labels[index++], strLen, "%sStdDev", name);
+    
+    return index;
+  }
+};
+
+class TempModArray
+{
+public:
+  std::vector<TempMod> array;
+  
+  TempModArray(unsigned int size = 0) : array(size)
+  {
+  }
+  
+  ~TempModArray(void)
+  {
+  }
+  
+  void resize(unsigned int size)
+  {
+    this->array.resize(size);
+  }
+  
+  void enable(enum TempMod::ValueId valId, bool enable = true)
+  {
+    for(std::vector<TempMod>::iterator iter = this->array.begin(); iter != this->array.end(); iter++)
+      iter->enable(valId, enable);
+  }
+  
+  void enable(bool minEn, bool maxEn = false, bool meanEn = false, bool stddevEn = false)
+  {
+    for(std::vector<TempMod>::iterator iter = this->array.begin(); iter != this->array.end(); iter++)
+      iter->enable(minEn, maxEn, meanEn, stddevEn);
+  }
+  
+  void select(enum TempMod::ValueId valId)
+  {
+    for(std::vector<TempMod>::iterator iter = this->array.begin(); iter != this->array.end(); iter++)
+      iter->select(valId);
+  }
+  
+  unsigned int getNumValues(void)
+  {
+    int numValues = 0;
+    
+    for(std::vector<TempMod>::iterator iter = this->array.begin(); iter != this->array.end(); iter++)
+      numValues += iter->getNumValues();
+    
+    return numValues;
+  }
+  
+  void reset(void)
+  {
+    for(std::vector<TempMod>::iterator iter = this->array.begin(); iter != this->array.end(); iter++)
+      iter->reset();
+  };
+  
+  void input(PiPoValue *values, unsigned int numValues)
+  {  
+    std::vector<TempMod>::iterator iter;
+    unsigned int i;
+    
+    for(iter = this->array.begin(), i = 0; iter != this->array.end() && i < numValues; iter++, i++)
+      iter->input(values[i]);
+  };  
+  
+  unsigned int getValues(PiPoValue *values, unsigned int numValues, bool reset = false)
+  {  
+    int totalValues = 0;
+    std::vector<TempMod>::iterator iter;
+    
+    for(iter = this->array.begin(); iter != this->array.end() && numValues > 0; iter++)
+    {
+      unsigned int num = iter->getValues(values, numValues, reset);
+      
+      totalValues += num;
+      values += num;
+      numValues -= num;
+    }
+    
+    return totalValues;
+  }
+  
+  unsigned int getLabels(const char **valueNames, unsigned int numValues, char **labels, unsigned int strLen, unsigned int numLabels)
+  {
+    unsigned int totalLabels = 0;
+    std::vector<TempMod>::iterator iter;
+    unsigned int i;
+    
+    for(iter = this->array.begin(), i = 0; iter != this->array.end() && i < numValues; iter++, i++)
+    {
+      unsigned int num;
+      
+      if(valueNames != NULL)
+        num = iter->getLabels(valueNames[i], labels, strLen, numLabels);
+      else
+        num = iter->getLabels(NULL, labels, strLen, numLabels);
+      
+      totalLabels += num;
+      labels += num;
+      numLabels -= num;
+    }
+    
+    return totalLabels;
+  }  
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/mimo/mimo_stats.h b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/mimo/mimo_stats.h
new file mode 100644
index 0000000..756ea0b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/pipo/src/modules/mimo/mimo_stats.h
@@ -0,0 +1,306 @@
+
+#include <string>
+#include <sstream>
+#include <iostream>
+#include <cfloat>
+#include <vector>
+#include <memory>
+
+#include "mimo.h"
+//#include <picojson.h>
+
+/*
+  template <typename Iterable>
+  Json::Value tojson(Iterable const& cont) {
+  Json::Value v;
+  for (auto&& element: cont) {
+  v.append(element);
+  }
+  return v;
+  }
+*/
+
+class stats_model_data : public mimo_model_data
+{
+public:
+  std::vector<unsigned long>	num;	// number of elements present
+  std::vector<double>		mean, std, min, max;
+
+  // helper function for json formatting
+  template<typename T>
+  std::string vector2json (std::vector<T> v) 
+  {
+    std::stringstream ss;
+	    
+    ss << "[";
+    for (size_t i = 0; i < v.size(); ++i)
+    {
+      if (i != 0)
+	ss << ",";
+      ss << v[i];
+    }
+    ss << "]";
+
+    return ss.str();
+  }
+    
+  char *to_json (char *out, int n) throw() override
+  {
+    std::stringstream ss;
+
+    ss << "{ \"num\":  " << vector2json<unsigned long>(num) << "," << std::endl
+       << "  \"min\":  " << vector2json<double>(min)  	    << "," << std::endl
+       << "  \"max\":  " << vector2json<double>(max)  	    << "," << std::endl
+       << "  \"mean\": " << vector2json<double>(mean) 	    << "," << std::endl
+       << "  \"std\":  " << vector2json<double>(std)  	    << "," << std::endl
+       << "}";
+
+    std::string ret = ss.str();
+    if (ret.size() > n)
+      throw std::runtime_error("json string too long");
+    else
+      strcpy(out, ret.c_str());
+
+    return out;
+  }
+
+  int from_json (const char *json) override
+  {
+    // later
+    return 0;
+  }
+};
+
+
+
+/*****************************************************************************
+ *
+ * example mimo module: calculate basic descriptive statistics
+ *
+ */
+
+class mimo_stats : public Mimo
+{
+public:
+  // constructor
+  mimo_stats (PiPo::Parent *parent, Mimo *receiver = NULL)
+  : Mimo(parent, receiver),
+    distance_(0.0),
+    alpha(this, "alpha", "Normalization step factor for training iteration", false, 0.1)
+  { };
+
+  /** prepare for training, allocate training output data
+
+      @param streamattr	attributes of input data
+      @return 0 for ok or a negative error code (to be specified), -1 for an unspecified error
+  */
+  int setup (int numbuffers, int numtracks, int tracksize[], const PiPoStreamAttributes *streamattr[]) override
+  {
+    char astr[1000];
+    printf("%s b %d t %d attr:\n%s\n", __PRETTY_FUNCTION__, numbuffers, numtracks, streamattr[0]->to_string(astr, 1000));
+    
+    if (numtracks != 1)
+      return -1;
+
+    // save for later
+    numbuffers_ = numbuffers;
+    stream_ = *streamattr[0];	
+    bufsize_.assign(tracksize, tracksize + numbuffers);	// copy array via pointer iterator
+    
+    // set size and fill with 0
+    size_ = stream_.dims[0] * stream_.dims[1];
+    sum_.assign(size_, 0);
+    sum2_.assign(size_, 0);
+    stats_.num.assign(size_, 0);
+    stats_.mean.resize(size_);
+    stats_.std.resize(size_);
+    stats_.min.assign(size_,  FLT_MAX);
+    stats_.max.assign(size_, -FLT_MAX);
+
+    // for the sake of the example: reserve space for training output data when iterating
+    traindata_.resize(numbuffers_);
+    for (int i = 0; i < numbuffers_; i++)
+      traindata_[i].resize(tracksize[i]);
+
+    return propagateSetup(numbuffers, numtracks, tracksize, streamattr);
+  }
+
+  /** the train method receives the training data set and performs one iteration of training 
+      Each iteration can output transformed input data by calling propagateTrain().
+  */
+  int train (int itercount, int bufferindex, int trackindex, int numframes, const PiPoValue *indata, const double *timetags, const int *varsize) override
+  {
+    const PiPoValue *data = indata;
+    PiPoValue *outdata;
+
+    printf("%s %d %d %d num %d %p %p %p\n", __PRETTY_FUNCTION__, itercount, bufferindex, trackindex, numframes, data, timetags, varsize);
+      
+    if (itercount == 0)
+    { // for the sake of the example: this mimo module can iterate, but stats are calculated only at first iteration
+      for (int i = 0; i < numframes; i++)
+      {
+	int mtxsize = stream_.hasVarSize ? varsize[i] : size_;
+	    
+	for (int j = 0; j < mtxsize; j++)
+	{
+	  PiPoValue val = data[j];
+
+	  stats_.num[j]++;
+	  sum_[j]  += val;
+	  sum2_[j] += val * val;
+	  if (val < stats_.min[j])  stats_.min[j] = val;
+	  if (val > stats_.max[j])  stats_.max[j] = val;
+	}
+
+	data += size_;
+      }
+
+      // last buffer: finish statistics
+      if (bufferindex == numbuffers_ - 1)
+	for (int j = 0; j < size_; j++)
+	{
+	  stats_.mean[j] = sum_[j] / stats_.num[j];
+	  stats_.std[j] = sqrt(sum2_[j] / stats_.num[j] - stats_.mean[j] * stats_.mean[j]);
+	}
+    }
+
+    // for the sake of the example: when iterating, exponentially approach normalised data:
+    // multiply by factor attribute alpha, output avg. distance to full normalisation
+    if (itercount > 0)
+    {
+      // check if input track size has changed since setup
+      if (numframes != bufsize_[bufferindex])
+      {
+	traindata_[bufferindex].resize(numframes);
+	bufsize_[bufferindex] = numframes;
+      }
+
+      float factor = alpha.get() * itercount;
+      data = indata; // indata is always original data, we want to iterate on previous output
+      outdata = &traindata_[bufferindex][0];
+      
+      for (int i = 0; i < numframes; i++)
+      {
+	int mtxsize = stream_.hasVarSize ? varsize[i] : size_;
+	int j;
+	double norm;
+	
+	for (j = 0; j < mtxsize; j++)
+	{
+	  if (stats_.std[j] != 0)
+	    norm = (data[j] - stats_.mean[j]) / stats_.std[j];
+	  else
+	    norm = (data[j] - stats_.mean[j]);
+
+	  // banal interpolation
+	  outdata[j] = (1 - factor) * data[j] + factor * norm;
+	}
+
+	if (i == 0 && mtxsize > 0) printf("normalise %f .. %f -> %f\n", data[j - 1], norm, outdata[j - 1]);
+	
+	for (; j < size_; j++)
+	  outdata[j] = 0;
+
+	data += size_;
+	outdata += size_;
+      }
+
+      distance_ = 1.0 - factor;
+      outdata = &traindata_[bufferindex][0];
+    }
+    else // after first iteration, output input data
+      outdata = (PiPoValue *) indata;
+    
+    return propagateTrain(itercount, bufferindex, trackindex, numframes, outdata, timetags, varsize);
+  }
+
+  /** return trained model parameters */
+  stats_model_data *getmodel () override  { return &stats_;  }
+
+  double getmetric () override { return distance_; }
+
+  int maxiter () override { return 10; }
+  
+    
+  /****************************************************************************
+   * decoding: standardise incoming data
+   */
+
+  int streamAttributes (bool hasTimeTags, double rate, double offset,
+			unsigned int width, unsigned int height,
+			const char **labels, bool hasVarSize,
+			double domain, unsigned int maxFrames) override
+  {
+    // check with training attrs
+    if (width != stream_.dims[0]  ||  height != stream_.dims[1])
+      return -1;
+
+    // make labels
+    const char **newlabels = NULL;
+    if (labels)
+    {
+      const std::string suffix("Norm");
+      newlabels = (const char **) alloca(width * sizeof(char *));
+      labelstore_.resize(width);
+
+      for (unsigned int i = 0; i < width; i++)
+      {
+        labelstore_[i] = std::string(labels[i]) + suffix;
+	newlabels[i] = labelstore_[i].c_str();
+      }
+    }
+
+    return propagateStreamAttributes(hasTimeTags, rate,  offset,  width,  height,
+				     newlabels,  hasVarSize,  domain,  maxFrames);
+  }
+
+    
+  int frames (double time, double weight, PiPoValue *values, unsigned int size, unsigned int num) override
+  {
+    bool ok = 1;
+    
+    for (unsigned int i = 0; i < num; i++)
+    {
+      PiPoValue norm[size];
+      
+      // normalise
+      for (unsigned int j = 0; j < size; j++)
+	if (stats_.std[j] != 0)
+	  norm[j] = (values[j] - stats_.mean[j]) / stats_.std[j];
+	else
+	  norm[j] = (values[j] - stats_.mean[j]);
+
+      ok &= propagateFrames(time, weight, norm, size, 1) == 0;
+
+      values += size;
+    }
+
+    return ok ? 0 : -1;
+  }
+    
+
+private:
+  // training
+  PiPoStreamAttributes	stream_;
+  int			numbuffers_;
+  int			size_;	// matrix size
+  std::vector<int>	bufsize_; // num frames for each buffer 
+  std::vector<double>	sum_, sum2_; // sum and sum of squares accumulators
+  stats_model_data	stats_;
+  std::vector<std::string>	labelstore_;
+  std::vector<std::vector<PiPoValue>>	traindata_;
+  double		distance_;
+
+  // decoding
+public:
+  PiPoScalarAttr<float>	alpha;
+  //todo: mode attribute: normalise mean/std or min/max
+};
+
+
+/** EMACS **
+ * Local variables:
+ * mode: c
+ * c-basic-offset:2
+ * End:
+ */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/LICENSE_1_0.txt b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/LICENSE_1_0.txt
new file mode 100644
index 0000000..127a5bc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/LICENSE_1_0.txt
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/catch.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/catch.hpp
new file mode 100644
index 0000000..2a09fd1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/catch/catch.hpp
@@ -0,0 +1,11069 @@
+/*
+ *  Catch v1.7.2
+ *  Generated: 2017-02-13 15:57:33.350226
+ *  ----------------------------------------------------------
+ *  This file has been merged from multiple headers. Please don't edit it directly
+ *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
+ *
+ *  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+#define TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+#ifdef __clang__
+#    pragma clang system_header
+#elif defined __GNUC__
+#    pragma GCC system_header
+#endif
+
+// #included from: internal/catch_suppress_warnings.h
+
+#ifdef __clang__
+#   ifdef __ICC // icpc defines the __clang__ macro
+#       pragma warning(push)
+#       pragma warning(disable: 161 1682)
+#   else // __ICC
+#       pragma clang diagnostic ignored "-Wglobal-constructors"
+#       pragma clang diagnostic ignored "-Wvariadic-macros"
+#       pragma clang diagnostic ignored "-Wc99-extensions"
+#       pragma clang diagnostic ignored "-Wunused-variable"
+#       pragma clang diagnostic push
+#       pragma clang diagnostic ignored "-Wpadded"
+#       pragma clang diagnostic ignored "-Wc++98-compat"
+#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+#       pragma clang diagnostic ignored "-Wswitch-enum"
+#       pragma clang diagnostic ignored "-Wcovered-switch-default"
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic ignored "-Wvariadic-macros"
+#    pragma GCC diagnostic ignored "-Wunused-variable"
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wpadded"
+#endif
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+#  define CATCH_IMPL
+#endif
+
+#ifdef CATCH_IMPL
+#  ifndef CLARA_CONFIG_MAIN
+#    define CLARA_CONFIG_MAIN_NOT_DEFINED
+#    define CLARA_CONFIG_MAIN
+#  endif
+#endif
+
+// #included from: internal/catch_notimplemented_exception.h
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+// #included from: catch_common.h
+#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+// #included from: catch_compiler_capabilities.h
+#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
+// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
+// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
+// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
+// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported?
+// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported?
+
+// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
+// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported?
+// ****************
+// Note to maintainers: if new toggles are added please document them
+// in configuration.md, too
+// ****************
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
+
+#ifdef __cplusplus
+
+#  if __cplusplus >= 201103L
+#    define CATCH_CPP11_OR_GREATER
+#  endif
+
+#  if __cplusplus >= 201402L
+#    define CATCH_CPP14_OR_GREATER
+#  endif
+
+#endif
+
+#ifdef __clang__
+
+#  if __has_feature(cxx_nullptr)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  if __has_feature(cxx_noexcept)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#   if defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Borland
+#ifdef __BORLANDC__
+
+#endif // __BORLANDC__
+
+////////////////////////////////////////////////////////////////////////////////
+// EDG
+#ifdef __EDG_VERSION__
+
+#endif // __EDG_VERSION__
+
+////////////////////////////////////////////////////////////////////////////////
+// Digital Mars
+#ifdef __DMC__
+
+#endif // __DMC__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#   if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#       define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   endif
+
+#   if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+
+#if (_MSC_VER >= 1600)
+#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Use variadic macros if the compiler supports them
+#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
+    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
+    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
+    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
+
+#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+#endif
+
+// Use __COUNTER__ if the compiler supports it
+#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \
+    ( defined __GNUC__  && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \
+    ( defined __clang__ && __clang_major__ >= 3 )
+
+#define CATCH_INTERNAL_CONFIG_COUNTER
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(CATCH_CPP11_OR_GREATER)
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
+#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+#  endif
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
+#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS)
+#  define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+# endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_IS_ENUM
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_TUPLE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
+#   define CATCH_CONFIG_VARIADIC_MACROS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_LONG_LONG
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
+#endif
+// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for
+// analytics) because, at time of writing, __COUNTER__ is not properly handled by it.
+// This does not affect compilation
+#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__)
+#   define CATCH_CONFIG_COUNTER
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_SHUFFLE
+#endif
+# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11)
+#  define CATCH_CONFIG_CPP11_TYPE_TRAITS
+# endif
+#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH)
+#   define CATCH_CONFIG_WINDOWS_SEH
+#endif
+
+#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
+#   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+#endif
+
+// noexcept support:
+#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
+#  define CATCH_NOEXCEPT noexcept
+#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
+#else
+#  define CATCH_NOEXCEPT throw()
+#  define CATCH_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+#   define CATCH_NULL nullptr
+#else
+#   define CATCH_NULL NULL
+#endif
+
+// override support
+#ifdef CATCH_CONFIG_CPP11_OVERRIDE
+#   define CATCH_OVERRIDE override
+#else
+#   define CATCH_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
+#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#ifdef CATCH_CONFIG_COUNTER
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
+#else
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+#endif
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct IConfig;
+
+    struct CaseSensitive { enum Choice {
+        Yes,
+        No
+    }; };
+
+    class NonCopyable {
+#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        NonCopyable( NonCopyable const& )              = delete;
+        NonCopyable( NonCopyable && )                  = delete;
+        NonCopyable& operator = ( NonCopyable const& ) = delete;
+        NonCopyable& operator = ( NonCopyable && )     = delete;
+#else
+        NonCopyable( NonCopyable const& info );
+        NonCopyable& operator = ( NonCopyable const& );
+#endif
+
+    protected:
+        NonCopyable() {}
+        virtual ~NonCopyable();
+    };
+
+    class SafeBool {
+    public:
+        typedef void (SafeBool::*type)() const;
+
+        static type makeSafe( bool value ) {
+            return value ? &SafeBool::trueValue : 0;
+        }
+    private:
+        void trueValue() const {}
+    };
+
+    template<typename ContainerT>
+    inline void deleteAll( ContainerT& container ) {
+        typename ContainerT::const_iterator it = container.begin();
+        typename ContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete *it;
+    }
+    template<typename AssociativeContainerT>
+    inline void deleteAllValues( AssociativeContainerT& container ) {
+        typename AssociativeContainerT::const_iterator it = container.begin();
+        typename AssociativeContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete it->second;
+    }
+
+    bool startsWith( std::string const& s, std::string const& prefix );
+    bool startsWith( std::string const& s, char prefix );
+    bool endsWith( std::string const& s, std::string const& suffix );
+    bool endsWith( std::string const& s, char suffix );
+    bool contains( std::string const& s, std::string const& infix );
+    void toLowerInPlace( std::string& s );
+    std::string toLower( std::string const& s );
+    std::string trim( std::string const& str );
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
+
+    struct pluralise {
+        pluralise( std::size_t count, std::string const& label );
+
+        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
+
+        std::size_t m_count;
+        std::string m_label;
+    };
+
+    struct SourceLineInfo {
+
+        SourceLineInfo();
+        SourceLineInfo( char const* _file, std::size_t _line );
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SourceLineInfo(SourceLineInfo const& other)          = default;
+        SourceLineInfo( SourceLineInfo && )                  = default;
+        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
+#  endif
+        bool empty() const;
+        bool operator == ( SourceLineInfo const& other ) const;
+        bool operator < ( SourceLineInfo const& other ) const;
+
+        char const* file;
+        std::size_t line;
+    };
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+    // This is just here to avoid compiler warnings with macro constants and boolean literals
+    inline bool isTrue( bool value ){ return value; }
+    inline bool alwaysTrue() { return true; }
+    inline bool alwaysFalse() { return false; }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
+
+    void seedRng( IConfig const& config );
+    unsigned int rngSeed();
+
+    // Use this in variadic streaming macros to allow
+    //    >> +StreamEndStop
+    // as well as
+    //    >> stuff +StreamEndStop
+    struct StreamEndStop {
+        std::string operator+() {
+            return std::string();
+        }
+    };
+    template<typename T>
+    T const& operator + ( T const& value, StreamEndStop ) {
+        return value;
+    }
+}
+
+#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
+#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
+
+namespace Catch {
+
+    class NotImplementedException : public std::exception
+    {
+    public:
+        NotImplementedException( SourceLineInfo const& lineInfo );
+        NotImplementedException( NotImplementedException const& ) {}
+
+        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
+
+        virtual const char* what() const CATCH_NOEXCEPT;
+
+    private:
+        std::string m_what;
+        SourceLineInfo m_lineInfo;
+    };
+
+} // end namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
+
+// #included from: internal/catch_context.h
+#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+// #included from: catch_interfaces_generators.h
+#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct IGeneratorInfo {
+        virtual ~IGeneratorInfo();
+        virtual bool moveNext() = 0;
+        virtual std::size_t getCurrentIndex() const = 0;
+    };
+
+    struct IGeneratorsForTest {
+        virtual ~IGeneratorsForTest();
+
+        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
+        virtual bool moveNext() = 0;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest();
+
+} // end namespace Catch
+
+// #included from: catch_ptr.hpp
+#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    // An intrusive reference counting smart pointer.
+    // T must implement addRef() and release() methods
+    // typically implementing the IShared interface
+    template<typename T>
+    class Ptr {
+    public:
+        Ptr() : m_p( CATCH_NULL ){}
+        Ptr( T* p ) : m_p( p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        Ptr( Ptr const& other ) : m_p( other.m_p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        ~Ptr(){
+            if( m_p )
+                m_p->release();
+        }
+        void reset() {
+            if( m_p )
+                m_p->release();
+            m_p = CATCH_NULL;
+        }
+        Ptr& operator = ( T* p ){
+            Ptr temp( p );
+            swap( temp );
+            return *this;
+        }
+        Ptr& operator = ( Ptr const& other ){
+            Ptr temp( other );
+            swap( temp );
+            return *this;
+        }
+        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
+        T* get() const{ return m_p; }
+        T& operator*() const { return *m_p; }
+        T* operator->() const { return m_p; }
+        bool operator !() const { return m_p == CATCH_NULL; }
+        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
+
+    private:
+        T* m_p;
+    };
+
+    struct IShared : NonCopyable {
+        virtual ~IShared();
+        virtual void addRef() const = 0;
+        virtual void release() const = 0;
+    };
+
+    template<typename T = IShared>
+    struct SharedImpl : T {
+
+        SharedImpl() : m_rc( 0 ){}
+
+        virtual void addRef() const {
+            ++m_rc;
+        }
+        virtual void release() const {
+            if( --m_rc == 0 )
+                delete this;
+        }
+
+        mutable unsigned int m_rc;
+    };
+
+} // end namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestCase;
+    class Stream;
+    struct IResultCapture;
+    struct IRunner;
+    struct IGeneratorsForTest;
+    struct IConfig;
+
+    struct IContext
+    {
+        virtual ~IContext();
+
+        virtual IResultCapture* getResultCapture() = 0;
+        virtual IRunner* getRunner() = 0;
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
+        virtual bool advanceGeneratorsForCurrentTest() = 0;
+        virtual Ptr<IConfig const> getConfig() const = 0;
+    };
+
+    struct IMutableContext : IContext
+    {
+        virtual ~IMutableContext();
+        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
+        virtual void setRunner( IRunner* runner ) = 0;
+        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
+    };
+
+    IContext& getCurrentContext();
+    IMutableContext& getCurrentMutableContext();
+    void cleanUpContext();
+    Stream createStream( std::string const& streamName );
+
+}
+
+// #included from: internal/catch_test_registry.hpp
+#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_interfaces_testcase.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec;
+
+    struct ITestCase : IShared {
+        virtual void invoke () const = 0;
+    protected:
+        virtual ~ITestCase();
+    };
+
+    class TestCase;
+    struct IConfig;
+
+    struct ITestCaseRegistry {
+        virtual ~ITestCaseRegistry();
+        virtual std::vector<TestCase> const& getAllTests() const = 0;
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
+    };
+
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
+
+}
+
+namespace Catch {
+
+template<typename C>
+class MethodTestCase : public SharedImpl<ITestCase> {
+
+public:
+    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
+
+    virtual void invoke() const {
+        C obj;
+        (obj.*m_method)();
+    }
+
+private:
+    virtual ~MethodTestCase() {}
+
+    void (C::*m_method)();
+};
+
+typedef void(*TestFunction)();
+
+struct NameAndDesc {
+    NameAndDesc( const char* _name = "", const char* _description= "" )
+    : name( _name ), description( _description )
+    {}
+
+    const char* name;
+    const char* description;
+};
+
+void registerTestCase
+    (   ITestCase* testCase,
+        char const* className,
+        NameAndDesc const& nameAndDesc,
+        SourceLineInfo const& lineInfo );
+
+struct AutoReg {
+
+    AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc );
+
+    template<typename C>
+    AutoReg
+        (   void (C::*method)(),
+            char const* className,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        registerTestCase
+            (   new MethodTestCase<C>( method ),
+                className,
+                nameAndDesc,
+                lineInfo );
+    }
+
+    ~AutoReg();
+
+private:
+    AutoReg( AutoReg const& );
+    void operator= ( AutoReg const& );
+};
+
+void registerTestCaseFunction
+    (   TestFunction function,
+        SourceLineInfo const& lineInfo,
+        NameAndDesc const& nameAndDesc );
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( ... ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
+        namespace{ \
+            struct TestName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
+
+#else
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\
+        namespace{ \
+            struct TestCaseName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestCaseName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
+#endif
+
+// #included from: internal/catch_capture.hpp
+#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+// #included from: catch_result_builder.h
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+// #included from: catch_result_type.h
+#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+namespace Catch {
+
+    // ResultWas::OfType enum
+    struct ResultWas { enum OfType {
+        Unknown = -1,
+        Ok = 0,
+        Info = 1,
+        Warning = 2,
+
+        FailureBit = 0x10,
+
+        ExpressionFailed = FailureBit | 1,
+        ExplicitFailure = FailureBit | 2,
+
+        Exception = 0x100 | FailureBit,
+
+        ThrewException = Exception | 1,
+        DidntThrowException = Exception | 2,
+
+        FatalErrorCondition = 0x200 | FailureBit
+
+    }; };
+
+    inline bool isOk( ResultWas::OfType resultType ) {
+        return ( resultType & ResultWas::FailureBit ) == 0;
+    }
+    inline bool isJustInfo( int flags ) {
+        return flags == ResultWas::Info;
+    }
+
+    // ResultDisposition::Flags enum
+    struct ResultDisposition { enum Flags {
+        Normal = 0x01,
+
+        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
+        FalseTest = 0x04,           // Prefix expression with !
+        SuppressFail = 0x08         // Failures are reported but do not fail the test
+    }; };
+
+    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
+        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
+    }
+
+    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
+    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
+    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.h
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
+
+    struct DecomposedExpression
+    {
+        virtual ~DecomposedExpression() {}
+        virtual bool isBinaryExpression() const {
+            return false;
+        }
+        virtual void reconstructExpression( std::string& dest ) const = 0;
+
+        // Only simple binary comparisons can be decomposed.
+        // If more complex check is required then wrap sub-expressions in parentheses.
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& );
+    };
+
+    struct AssertionInfo
+    {
+        AssertionInfo() {}
+        AssertionInfo(  std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        std::string const& _capturedExpression,
+                        ResultDisposition::Flags _resultDisposition );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        std::string capturedExpression;
+        ResultDisposition::Flags resultDisposition;
+    };
+
+    struct AssertionResultData
+    {
+        AssertionResultData() : decomposedExpression( CATCH_NULL )
+                              , resultType( ResultWas::Unknown )
+                              , negated( false )
+                              , parenthesized( false ) {}
+
+        void negate( bool parenthesize ) {
+            negated = !negated;
+            parenthesized = parenthesize;
+            if( resultType == ResultWas::Ok )
+                resultType = ResultWas::ExpressionFailed;
+            else if( resultType == ResultWas::ExpressionFailed )
+                resultType = ResultWas::Ok;
+        }
+
+        std::string const& reconstructExpression() const {
+            if( decomposedExpression != CATCH_NULL ) {
+                decomposedExpression->reconstructExpression( reconstructedExpression );
+                if( parenthesized ) {
+                    reconstructedExpression.insert( 0, 1, '(' );
+                    reconstructedExpression.append( 1, ')' );
+                }
+                if( negated ) {
+                    reconstructedExpression.insert( 0, 1, '!' );
+                }
+                decomposedExpression = CATCH_NULL;
+            }
+            return reconstructedExpression;
+        }
+
+        mutable DecomposedExpression const* decomposedExpression;
+        mutable std::string reconstructedExpression;
+        std::string message;
+        ResultWas::OfType resultType;
+        bool negated;
+        bool parenthesized;
+    };
+
+    class AssertionResult {
+    public:
+        AssertionResult();
+        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
+        ~AssertionResult();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+         AssertionResult( AssertionResult const& )              = default;
+         AssertionResult( AssertionResult && )                  = default;
+         AssertionResult& operator = ( AssertionResult const& ) = default;
+         AssertionResult& operator = ( AssertionResult && )     = default;
+#  endif
+
+        bool isOk() const;
+        bool succeeded() const;
+        ResultWas::OfType getResultType() const;
+        bool hasExpression() const;
+        bool hasMessage() const;
+        std::string getExpression() const;
+        std::string getExpressionInMacro() const;
+        bool hasExpandedExpression() const;
+        std::string getExpandedExpression() const;
+        std::string getMessage() const;
+        SourceLineInfo getSourceInfo() const;
+        std::string getTestMacroName() const;
+        void discardDecomposedExpression() const;
+        void expandDecomposedExpression() const;
+
+    protected:
+        AssertionInfo m_info;
+        AssertionResultData m_resultData;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_matchers.hpp
+#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+namespace Catch {
+namespace Matchers {
+    namespace Impl {
+
+    namespace Generic {
+        template<typename ExpressionT> class AllOf;
+        template<typename ExpressionT> class AnyOf;
+        template<typename ExpressionT> class Not;
+    }
+
+    template<typename ExpressionT>
+    struct Matcher : SharedImpl<IShared>
+    {
+        typedef ExpressionT ExpressionType;
+
+        virtual ~Matcher() {}
+        virtual Ptr<Matcher> clone() const = 0;
+        virtual bool match( ExpressionT const& expr ) const = 0;
+        virtual std::string toString() const = 0;
+
+        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
+        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
+        Generic::Not<ExpressionT> operator ! () const;
+    };
+
+    template<typename DerivedT, typename ExpressionT>
+    struct MatcherImpl : Matcher<ExpressionT> {
+
+        virtual Ptr<Matcher<ExpressionT> > clone() const {
+            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
+        }
+    };
+
+    namespace Generic {
+        template<typename ExpressionT>
+        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
+        public:
+            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
+            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
+
+            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
+                return !m_matcher->match( expr );
+            }
+
+            virtual std::string toString() const CATCH_OVERRIDE {
+                return "not " + m_matcher->toString();
+            }
+        private:
+            Ptr< Matcher<ExpressionT> > m_matcher;
+        };
+
+        template<typename ExpressionT>
+        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AllOf() {}
+            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AllOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( !m_matchers[i]->match( expr ) )
+                        return false;
+                return true;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " and ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
+                AllOf allOfExpr( *this );
+                allOfExpr.add( other );
+                return allOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+        template<typename ExpressionT>
+        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AnyOf() {}
+            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( m_matchers[i]->match( expr ) )
+                        return true;
+                return false;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " or ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
+                AnyOf anyOfExpr( *this );
+                anyOfExpr.add( other );
+                return anyOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+    } // namespace Generic
+
+    template<typename ExpressionT>
+    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
+        Generic::AllOf<ExpressionT> allOfExpr;
+        allOfExpr.add( *this );
+        allOfExpr.add( other );
+        return allOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
+        Generic::AnyOf<ExpressionT> anyOfExpr;
+        anyOfExpr.add( *this );
+        anyOfExpr.add( other );
+        return anyOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
+        return Generic::Not<ExpressionT>( *this );
+    }
+
+    namespace StdString {
+
+        inline std::string makeString( std::string const& str ) { return str; }
+        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
+
+        struct CasedString
+        {
+            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
+            :   m_caseSensitivity( caseSensitivity ),
+                m_str( adjustString( str ) )
+            {}
+            std::string adjustString( std::string const& str ) const {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? toLower( str )
+                    : str;
+
+            }
+            std::string toStringSuffix() const
+            {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? " (case insensitive)"
+                    : std::string();
+            }
+            CaseSensitive::Choice m_caseSensitivity;
+            std::string m_str;
+        };
+
+        struct Equals : MatcherImpl<Equals, std::string> {
+            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            :   m_data( str, caseSensitivity )
+            {}
+            Equals( Equals const& other ) : m_data( other.m_data ){}
+
+            virtual ~Equals();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.m_str == m_data.adjustString( expr );;
+            }
+            virtual std::string toString() const {
+                return "equals: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct Contains : MatcherImpl<Contains, std::string> {
+            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            Contains( Contains const& other ) : m_data( other.m_data ){}
+
+            virtual ~Contains();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
+            }
+            virtual std::string toString() const {
+                return "contains: \"" + m_data.m_str  + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct StartsWith : MatcherImpl<StartsWith, std::string> {
+            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+
+            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~StartsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return startsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "starts with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct EndsWith : MatcherImpl<EndsWith, std::string> {
+            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~EndsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return endsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "ends with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+    } // namespace StdString
+    } // namespace Impl
+
+    // The following functions create the actual matcher objects.
+    // This allows the types to be inferred
+    template<typename ExpressionT>
+    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
+        return Impl::Generic::Not<ExpressionT>( m );
+    }
+
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+
+    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( str, caseSensitivity );
+    }
+    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( substr, caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
+        return Impl::StdString::StartsWith( substr );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
+        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
+        return Impl::StdString::EndsWith( substr );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
+        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
+    }
+
+} // namespace Matchers
+
+using namespace Matchers;
+
+} // namespace Catch
+
+namespace Catch {
+
+    struct TestFailureException{};
+
+    template<typename T> class ExpressionLhs;
+
+    struct CopyableStream {
+        CopyableStream() {}
+        CopyableStream( CopyableStream const& other ) {
+            oss << other.oss.str();
+        }
+        CopyableStream& operator=( CopyableStream const& other ) {
+            oss.str(std::string());
+            oss << other.oss.str();
+            return *this;
+        }
+        std::ostringstream oss;
+    };
+
+    class ResultBuilder : public DecomposedExpression {
+    public:
+        ResultBuilder(  char const* macroName,
+                        SourceLineInfo const& lineInfo,
+                        char const* capturedExpression,
+                        ResultDisposition::Flags resultDisposition,
+                        char const* secondArg = "" );
+
+        template<typename T>
+        ExpressionLhs<T const&> operator <= ( T const& operand );
+        ExpressionLhs<bool> operator <= ( bool value );
+
+        template<typename T>
+        ResultBuilder& operator << ( T const& value ) {
+            m_stream.oss << value;
+            return *this;
+        }
+
+        ResultBuilder& setResultType( ResultWas::OfType result );
+        ResultBuilder& setResultType( bool result );
+
+        void endExpression( DecomposedExpression const& expr );
+
+        virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE;
+
+        AssertionResult build() const;
+        AssertionResult build( DecomposedExpression const& expr ) const;
+
+        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
+        void captureResult( ResultWas::OfType resultType );
+        void captureExpression();
+        void captureExpectedException( std::string const& expectedMessage );
+        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
+        void handleResult( AssertionResult const& result );
+        void react();
+        bool shouldDebugBreak() const;
+        bool allowThrows() const;
+
+        template<typename ArgT, typename MatcherT>
+        void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString );
+
+    private:
+        AssertionInfo m_assertionInfo;
+        AssertionResultData m_data;
+        CopyableStream m_stream;
+
+        bool m_shouldDebugBreak;
+        bool m_shouldThrow;
+    };
+
+} // namespace Catch
+
+// Include after due to circular dependency:
+// #included from: catch_expression_lhs.hpp
+#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+// #included from: catch_evaluate.hpp
+#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
+#endif
+
+#include <cstddef>
+
+namespace Catch {
+namespace Internal {
+
+    enum Operator {
+        IsEqualTo,
+        IsNotEqualTo,
+        IsLessThan,
+        IsGreaterThan,
+        IsLessThanOrEqualTo,
+        IsGreaterThanOrEqualTo
+    };
+
+    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
+    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
+    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
+    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
+    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
+    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
+    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
+
+    template<typename T>
+    inline T& opCast(T const& t) { return const_cast<T&>(t); }
+
+// nullptr_t support based on pull request #154 from Konstantin Baumann
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+    // So the compare overloads can be operator agnostic we convey the operator as a template
+    // enum, which is used to specialise an Evaluator for doing the comparison.
+    template<typename T1, typename T2, Operator Op>
+    class Evaluator{};
+
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs) {
+            return bool( opCast( lhs ) ==  opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsNotEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) != opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) < opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) > opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) >= opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) <= opCast( rhs ) );
+        }
+    };
+
+    template<Operator Op, typename T1, typename T2>
+    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // This level of indirection allows us to specialise for integer types
+    // to avoid signed/ unsigned warnings
+
+    // "base" overload
+    template<Operator Op, typename T1, typename T2>
+    bool compare( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // unsigned X to int
+    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+
+    // unsigned X to long
+    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+
+    // int to unsigned X
+    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+
+    // long to unsigned X
+    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // pointer to long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+    // pointer to int (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+    // long long to unsigned X
+    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // unsigned long long to X
+    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+
+    // pointer to long long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+#endif // CATCH_CONFIG_CPP11_LONG_LONG
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    // pointer to nullptr_t (when comparing against nullptr)
+    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
+    }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+} // end of namespace Internal
+} // end of namespace Catch
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+// #included from: catch_tostring.h
+#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <cstddef>
+
+#ifdef __OBJC__
+// #included from: catch_objc_arc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+    [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+#include <tuple>
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_IS_ENUM
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+// Why we're here.
+template<typename T>
+std::string toString( T const& value );
+
+// Built in overloads
+
+std::string toString( std::string const& value );
+std::string toString( std::wstring const& value );
+std::string toString( const char* const value );
+std::string toString( char* const value );
+std::string toString( const wchar_t* const value );
+std::string toString( wchar_t* const value );
+std::string toString( int value );
+std::string toString( unsigned long value );
+std::string toString( unsigned int value );
+std::string toString( const double value );
+std::string toString( const float value );
+std::string toString( bool value );
+std::string toString( char value );
+std::string toString( signed char value );
+std::string toString( unsigned char value );
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value );
+std::string toString( unsigned long long value );
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t );
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring );
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
+    std::string toString( NSObject* const& nsObject );
+#endif
+
+namespace Detail {
+
+    extern const std::string unprintableString;
+
+    struct BorgType {
+        template<typename T> BorgType( T const& );
+    };
+
+    struct TrueType { char sizer[1]; };
+    struct FalseType { char sizer[2]; };
+
+    TrueType& testStreamable( std::ostream& );
+    FalseType testStreamable( FalseType );
+
+    FalseType operator<<( std::ostream const&, BorgType const& );
+
+    template<typename T>
+    struct IsStreamInsertable {
+        static std::ostream &s;
+        static T  const&t;
+        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
+    };
+
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+    template<typename T,
+             bool IsEnum = std::is_enum<T>::value
+             >
+    struct EnumStringMaker
+    {
+        static std::string convert( T const& ) { return unprintableString; }
+    };
+
+    template<typename T>
+    struct EnumStringMaker<T,true>
+    {
+        static std::string convert( T const& v )
+        {
+            return ::Catch::toString(
+                static_cast<typename std::underlying_type<T>::type>(v)
+                );
+        }
+    };
+#endif
+    template<bool C>
+    struct StringMakerBase {
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+        template<typename T>
+        static std::string convert( T const& v )
+        {
+            return EnumStringMaker<T>::convert( v );
+        }
+#else
+        template<typename T>
+        static std::string convert( T const& ) { return unprintableString; }
+#endif
+    };
+
+    template<>
+    struct StringMakerBase<true> {
+        template<typename T>
+        static std::string convert( T const& _value ) {
+            std::ostringstream oss;
+            oss << _value;
+            return oss.str();
+        }
+    };
+
+    std::string rawMemoryToString( const void *object, std::size_t size );
+
+    template<typename T>
+    inline std::string rawMemoryToString( const T& object ) {
+      return rawMemoryToString( &object, sizeof(object) );
+    }
+
+} // end namespace Detail
+
+template<typename T>
+struct StringMaker :
+    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
+
+template<typename T>
+struct StringMaker<T*> {
+    template<typename U>
+    static std::string convert( U* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+template<typename R, typename C>
+struct StringMaker<R C::*> {
+    static std::string convert( R C::* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last );
+}
+
+//template<typename T, typename Allocator>
+//struct StringMaker<std::vector<T, Allocator> > {
+//    static std::string convert( std::vector<T,Allocator> const& v ) {
+//        return Detail::rangeToString( v.begin(), v.end() );
+//    }
+//};
+
+template<typename T, typename Allocator>
+std::string toString( std::vector<T,Allocator> const& v ) {
+    return Detail::rangeToString( v.begin(), v.end() );
+}
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+
+// toString for tuples
+namespace TupleDetail {
+  template<
+      typename Tuple,
+      std::size_t N = 0,
+      bool = (N < std::tuple_size<Tuple>::value)
+      >
+  struct ElementPrinter {
+      static void print( const Tuple& tuple, std::ostream& os )
+      {
+          os << ( N ? ", " : " " )
+             << Catch::toString(std::get<N>(tuple));
+          ElementPrinter<Tuple,N+1>::print(tuple,os);
+      }
+  };
+
+  template<
+      typename Tuple,
+      std::size_t N
+      >
+  struct ElementPrinter<Tuple,N,false> {
+      static void print( const Tuple&, std::ostream& ) {}
+  };
+
+}
+
+template<typename ...Types>
+struct StringMaker<std::tuple<Types...>> {
+
+    static std::string convert( const std::tuple<Types...>& tuple )
+    {
+        std::ostringstream os;
+        os << '{';
+        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
+        os << " }";
+        return os.str();
+    }
+};
+#endif // CATCH_CONFIG_CPP11_TUPLE
+
+namespace Detail {
+    template<typename T>
+    std::string makeString( T const& value ) {
+        return StringMaker<T>::convert( value );
+    }
+} // end namespace Detail
+
+/// \brief converts any type to a string
+///
+/// The default template forwards on to ostringstream - except when an
+/// ostringstream overload does not exist - in which case it attempts to detect
+/// that and writes {?}.
+/// Overload (not specialise) this template for custom typs that you don't want
+/// to provide an ostream overload for.
+template<typename T>
+std::string toString( T const& value ) {
+    return StringMaker<T>::convert( value );
+}
+
+    namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last ) {
+        std::ostringstream oss;
+        oss << "{ ";
+        if( first != last ) {
+            oss << Catch::toString( *first );
+            for( ++first ; first != last ; ++first )
+                oss << ", " << Catch::toString( *first );
+        }
+        oss << " }";
+        return oss.str();
+    }
+}
+
+} // end namespace Catch
+
+namespace Catch {
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression;
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression;
+
+// Wraps the LHS of an expression and overloads comparison operators
+// for also capturing those and RHS (if any)
+template<typename T>
+class ExpressionLhs : public DecomposedExpression {
+public:
+    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {}
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsEqualTo, RhsT const&>
+    operator == ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsNotEqualTo, RhsT const&>
+    operator != ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThan, RhsT const&>
+    operator < ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThan, RhsT const&>
+    operator > ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThanOrEqualTo, RhsT const&>
+    operator <= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThanOrEqualTo, RhsT const&>
+    operator >= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsEqualTo, bool> operator == ( bool rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsNotEqualTo, bool> operator != ( bool rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    void endExpression() {
+        m_truthy = m_lhs ? true : false;
+        m_rb
+            .setResultType( m_truthy )
+            .endExpression( *this );
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        dest = Catch::toString( m_truthy );
+    }
+
+private:
+    template<Internal::Operator Op, typename RhsT>
+    BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
+        return BinaryExpression<T, Op, RhsT&>( m_rb, m_lhs, rhs );
+    }
+
+    template<Internal::Operator Op>
+    BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
+        return BinaryExpression<T, Op, bool>( m_rb, m_lhs, rhs );
+    }
+
+private:
+    ResultBuilder& m_rb;
+    T m_lhs;
+    bool m_truthy;
+};
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression : public DecomposedExpression {
+public:
+    BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
+        : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {}
+
+    void endExpression() const {
+        m_rb
+            .setResultType( Internal::compare<Op>( m_lhs, m_rhs ) )
+            .endExpression( *this );
+    }
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string lhs = Catch::toString( m_lhs );
+        std::string rhs = Catch::toString( m_rhs );
+        char delim = lhs.size() + rhs.size() < 40 &&
+                     lhs.find('\n') == std::string::npos &&
+                     rhs.find('\n') == std::string::npos ? ' ' : '\n';
+        dest.reserve( 7 + lhs.size() + rhs.size() );
+                   // 2 for spaces around operator
+                   // 2 for operator
+                   // 2 for parentheses (conditionally added later)
+                   // 1 for negation (conditionally added later)
+        dest = lhs;
+        dest += delim;
+        dest += Internal::OperatorTraits<Op>::getName();
+        dest += delim;
+        dest += rhs;
+    }
+
+private:
+    ResultBuilder& m_rb;
+    LhsT m_lhs;
+    RhsT m_rhs;
+};
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression : public DecomposedExpression {
+public:
+    MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString )
+        : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {}
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string matcherAsString = m_matcher.toString();
+        dest = Catch::toString( m_arg );
+        dest += ' ';
+        if( matcherAsString == Detail::unprintableString )
+            dest += m_matcherString;
+        else
+            dest += matcherAsString;
+    }
+
+private:
+    ArgT m_arg;
+    MatcherT m_matcher;
+    char const* m_matcherString;
+};
+
+} // end namespace Catch
+
+
+namespace Catch {
+
+    template<typename T>
+    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
+        return ExpressionLhs<T const&>( *this, operand );
+    }
+
+    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
+        return ExpressionLhs<bool>( *this, value );
+    }
+
+    template<typename ArgT, typename MatcherT>
+    inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher,
+                                             char const* matcherString ) {
+        MatchExpression<ArgT const&, MatcherT const&> expr( arg, matcher, matcherString );
+        setResultType( matcher.match( arg ) );
+        endExpression( expr );
+    }
+
+} // namespace Catch
+
+// #included from: catch_message.h
+#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct MessageInfo {
+        MessageInfo(    std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        ResultWas::OfType _type );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        ResultWas::OfType type;
+        std::string message;
+        unsigned int sequence;
+
+        bool operator == ( MessageInfo const& other ) const {
+            return sequence == other.sequence;
+        }
+        bool operator < ( MessageInfo const& other ) const {
+            return sequence < other.sequence;
+        }
+    private:
+        static unsigned int globalCount;
+    };
+
+    struct MessageBuilder {
+        MessageBuilder( std::string const& macroName,
+                        SourceLineInfo const& lineInfo,
+                        ResultWas::OfType type )
+        : m_info( macroName, lineInfo, type )
+        {}
+
+        template<typename T>
+        MessageBuilder& operator << ( T const& value ) {
+            m_stream << value;
+            return *this;
+        }
+
+        MessageInfo m_info;
+        std::ostringstream m_stream;
+    };
+
+    class ScopedMessage {
+    public:
+        ScopedMessage( MessageBuilder const& builder );
+        ScopedMessage( ScopedMessage const& other );
+        ~ScopedMessage();
+
+        MessageInfo m_info;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_capture.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    class AssertionResult;
+    struct AssertionInfo;
+    struct SectionInfo;
+    struct SectionEndInfo;
+    struct MessageInfo;
+    class ScopedMessageBuilder;
+    struct Counts;
+
+    struct IResultCapture {
+
+        virtual ~IResultCapture();
+
+        virtual void assertionEnded( AssertionResult const& result ) = 0;
+        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
+                                        Counts& assertions ) = 0;
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
+        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
+        virtual void popScopedMessage( MessageInfo const& message ) = 0;
+
+        virtual std::string getCurrentTestName() const = 0;
+        virtual const AssertionResult* getLastResult() const = 0;
+
+        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
+    };
+
+    IResultCapture& getResultCapture();
+}
+
+// #included from: catch_debugger.h
+#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+// #included from: catch_platform.h
+#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_MAC
+#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_IPHONE
+#elif defined(linux) || defined(__linux) || defined(__linux__)
+#  define CATCH_PLATFORM_LINUX
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#  define CATCH_PLATFORM_WINDOWS
+#  if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
+#    define CATCH_DEFINES_NOMINMAX
+#  endif
+#  if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
+#    define CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  endif
+#endif
+
+#include <string>
+
+namespace Catch{
+
+    bool isDebuggerActive();
+    void writeToDebugConsole( std::string const& text );
+}
+
+#ifdef CATCH_PLATFORM_MAC
+
+    // The following code snippet based on:
+    // http://cocoawithlove.com/2008/03/break-into-debugger.html
+    #if defined(__ppc64__) || defined(__ppc__)
+        #define CATCH_TRAP() \
+                __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
+                : : : "memory","r0","r3","r4" )
+    #else
+        #define CATCH_TRAP() __asm__("int $3\n" : : )
+    #endif
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    // If we can use inline assembler, do it because this allows us to break
+    // directly at the location of the failing check instead of breaking inside
+    // raise() called from it, i.e. one stack frame below.
+    #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
+        #define CATCH_TRAP() asm volatile ("int $3")
+    #else // Fall back to the generic way.
+        #include <signal.h>
+
+        #define CATCH_TRAP() raise(SIGTRAP)
+    #endif
+#elif defined(_MSC_VER)
+    #define CATCH_TRAP() __debugbreak()
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
+    #define CATCH_TRAP() DebugBreak()
+#endif
+
+#ifdef CATCH_TRAP
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); }
+#else
+    #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
+#endif
+
+// #included from: catch_interfaces_runner.h
+#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+namespace Catch {
+    class TestCase;
+
+    struct IRunner {
+        virtual ~IRunner();
+        virtual bool aborting() const = 0;
+    };
+}
+
+// #included from: catch_type_traits.hpp
+#define TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+
+     template <typename T>
+     using add_lvalue_reference = std::add_lvalue_reference<T>;
+
+     template <typename T>
+     using add_const = std::add_const<T>;
+
+#else
+
+    template <typename T>
+    struct add_const {
+        typedef const T type;
+    };
+
+    template <typename T>
+    struct add_lvalue_reference {
+        typedef T& type;
+    };
+    template <typename T>
+    struct add_lvalue_reference<T&> {
+        typedef T& type;
+    };
+    // No && overload, because that is C++11, in which case we have
+    // proper type_traits implementation from the standard library
+
+#endif
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// In the event of a failure works out if the debugger needs to be invoked
+// and/or an exception thrown and takes appropriate action.
+// This needs to be done as a macro so the debugger will stop in the user
+// source code rather than in Catch library code
+#define INTERNAL_CATCH_REACT( resultBuilder ) \
+    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
+    resultBuilder.react();
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
+            ( __catchResult <= expr ).endExpression(); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::isTrue( false && static_cast<bool>( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
+    // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( !Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            static_cast<void>(expr); \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( ... ) { \
+                __catchResult.captureExpectedException( matcher ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr ", " #exceptionType, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( Catch::add_const<Catch::add_lvalue_reference<exceptionType>::type>::type ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+            catch( ... ) { \
+                __catchResult.useActiveException( resultDisposition ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#else
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << log + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_INFO( log, macroName ) \
+    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
+        try { \
+            __catchResult.captureMatch( arg, matcher, #matcher ); \
+        } catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+// #included from: internal/catch_section.h
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+// #included from: catch_section_info.h
+#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+// #included from: catch_totals.hpp
+#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+#include <cstddef>
+
+namespace Catch {
+
+    struct Counts {
+        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
+
+        Counts operator - ( Counts const& other ) const {
+            Counts diff;
+            diff.passed = passed - other.passed;
+            diff.failed = failed - other.failed;
+            diff.failedButOk = failedButOk - other.failedButOk;
+            return diff;
+        }
+        Counts& operator += ( Counts const& other ) {
+            passed += other.passed;
+            failed += other.failed;
+            failedButOk += other.failedButOk;
+            return *this;
+        }
+
+        std::size_t total() const {
+            return passed + failed + failedButOk;
+        }
+        bool allPassed() const {
+            return failed == 0 && failedButOk == 0;
+        }
+        bool allOk() const {
+            return failed == 0;
+        }
+
+        std::size_t passed;
+        std::size_t failed;
+        std::size_t failedButOk;
+    };
+
+    struct Totals {
+
+        Totals operator - ( Totals const& other ) const {
+            Totals diff;
+            diff.assertions = assertions - other.assertions;
+            diff.testCases = testCases - other.testCases;
+            return diff;
+        }
+
+        Totals delta( Totals const& prevTotals ) const {
+            Totals diff = *this - prevTotals;
+            if( diff.assertions.failed > 0 )
+                ++diff.testCases.failed;
+            else if( diff.assertions.failedButOk > 0 )
+                ++diff.testCases.failedButOk;
+            else
+                ++diff.testCases.passed;
+            return diff;
+        }
+
+        Totals& operator += ( Totals const& other ) {
+            assertions += other.assertions;
+            testCases += other.testCases;
+            return *this;
+        }
+
+        Counts assertions;
+        Counts testCases;
+    };
+}
+
+#include <string>
+
+namespace Catch {
+
+    struct SectionInfo {
+        SectionInfo
+            (   SourceLineInfo const& _lineInfo,
+                std::string const& _name,
+                std::string const& _description = std::string() );
+
+        std::string name;
+        std::string description;
+        SourceLineInfo lineInfo;
+    };
+
+    struct SectionEndInfo {
+        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
+        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
+        {}
+
+        SectionInfo sectionInfo;
+        Counts prevAssertions;
+        double durationInSeconds;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_timer.h
+#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+#ifdef CATCH_PLATFORM_WINDOWS
+typedef unsigned long long uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+namespace Catch {
+
+    class Timer {
+    public:
+        Timer() : m_ticks( 0 ) {}
+        void start();
+        unsigned int getElapsedMicroseconds() const;
+        unsigned int getElapsedMilliseconds() const;
+        double getElapsedSeconds() const;
+
+    private:
+        uint64_t m_ticks;
+    };
+
+} // namespace Catch
+
+#include <string>
+
+namespace Catch {
+
+    class Section : NonCopyable {
+    public:
+        Section( SectionInfo const& info );
+        ~Section();
+
+        // This indicates whether the section should be executed or not
+        operator bool() const;
+
+    private:
+        SectionInfo m_info;
+
+        std::string m_name;
+        Counts m_assertions;
+        bool m_sectionIncluded;
+        Timer m_timer;
+    };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_SECTION( ... ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+    #define INTERNAL_CATCH_SECTION( name, desc ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+// #included from: internal/catch_generators.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+#include <iterator>
+#include <vector>
+#include <string>
+#include <stdlib.h>
+
+namespace Catch {
+
+template<typename T>
+struct IGenerator {
+    virtual ~IGenerator() {}
+    virtual T getValue( std::size_t index ) const = 0;
+    virtual std::size_t size () const = 0;
+};
+
+template<typename T>
+class BetweenGenerator : public IGenerator<T> {
+public:
+    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
+
+    virtual T getValue( std::size_t index ) const {
+        return m_from+static_cast<int>( index );
+    }
+
+    virtual std::size_t size() const {
+        return static_cast<std::size_t>( 1+m_to-m_from );
+    }
+
+private:
+
+    T m_from;
+    T m_to;
+};
+
+template<typename T>
+class ValuesGenerator : public IGenerator<T> {
+public:
+    ValuesGenerator(){}
+
+    void add( T value ) {
+        m_values.push_back( value );
+    }
+
+    virtual T getValue( std::size_t index ) const {
+        return m_values[index];
+    }
+
+    virtual std::size_t size() const {
+        return m_values.size();
+    }
+
+private:
+    std::vector<T> m_values;
+};
+
+template<typename T>
+class CompositeGenerator {
+public:
+    CompositeGenerator() : m_totalSize( 0 ) {}
+
+    // *** Move semantics, similar to auto_ptr ***
+    CompositeGenerator( CompositeGenerator& other )
+    :   m_fileInfo( other.m_fileInfo ),
+        m_totalSize( 0 )
+    {
+        move( other );
+    }
+
+    CompositeGenerator& setFileInfo( const char* fileInfo ) {
+        m_fileInfo = fileInfo;
+        return *this;
+    }
+
+    ~CompositeGenerator() {
+        deleteAll( m_composed );
+    }
+
+    operator T () const {
+        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
+
+        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
+        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
+        for( size_t index = 0; it != itEnd; ++it )
+        {
+            const IGenerator<T>* generator = *it;
+            if( overallIndex >= index && overallIndex < index + generator->size() )
+            {
+                return generator->getValue( overallIndex-index );
+            }
+            index += generator->size();
+        }
+        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
+        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
+    }
+
+    void add( const IGenerator<T>* generator ) {
+        m_totalSize += generator->size();
+        m_composed.push_back( generator );
+    }
+
+    CompositeGenerator& then( CompositeGenerator& other ) {
+        move( other );
+        return *this;
+    }
+
+    CompositeGenerator& then( T value ) {
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( value );
+        add( valuesGen );
+        return *this;
+    }
+
+private:
+
+    void move( CompositeGenerator& other ) {
+        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
+        m_totalSize += other.m_totalSize;
+        other.m_composed.clear();
+    }
+
+    std::vector<const IGenerator<T>*> m_composed;
+    std::string m_fileInfo;
+    size_t m_totalSize;
+};
+
+namespace Generators
+{
+    template<typename T>
+    CompositeGenerator<T> between( T from, T to ) {
+        CompositeGenerator<T> generators;
+        generators.add( new BetweenGenerator<T>( from, to ) );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3 ){
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        valuesGen->add( val4 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+} // end namespace Generators
+
+using namespace Generators;
+
+} // end namespace Catch
+
+#define INTERNAL_CATCH_LINESTR2( line ) #line
+#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
+
+#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
+
+// #included from: internal/catch_interfaces_exception.h
+#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+#include <string>
+#include <vector>
+
+// #included from: catch_interfaces_registry_hub.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    struct ITestCaseRegistry;
+    struct IExceptionTranslatorRegistry;
+    struct IExceptionTranslator;
+    struct IReporterRegistry;
+    struct IReporterFactory;
+
+    struct IRegistryHub {
+        virtual ~IRegistryHub();
+
+        virtual IReporterRegistry const& getReporterRegistry() const = 0;
+        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
+        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
+    };
+
+    struct IMutableRegistryHub {
+        virtual ~IMutableRegistryHub();
+        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerTest( TestCase const& testInfo ) = 0;
+        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
+    };
+
+    IRegistryHub& getRegistryHub();
+    IMutableRegistryHub& getMutableRegistryHub();
+    void cleanUp();
+    std::string translateActiveException();
+
+}
+
+namespace Catch {
+
+    typedef std::string(*exceptionTranslateFunction)();
+
+    struct IExceptionTranslator;
+    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
+
+    struct IExceptionTranslator {
+        virtual ~IExceptionTranslator();
+        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
+    };
+
+    struct IExceptionTranslatorRegistry {
+        virtual ~IExceptionTranslatorRegistry();
+
+        virtual std::string translateActiveException() const = 0;
+    };
+
+    class ExceptionTranslatorRegistrar {
+        template<typename T>
+        class ExceptionTranslator : public IExceptionTranslator {
+        public:
+
+            ExceptionTranslator( std::string(*translateFunction)( T& ) )
+            : m_translateFunction( translateFunction )
+            {}
+
+            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
+                try {
+                    if( it == itEnd )
+                        throw;
+                    else
+                        return (*it)->translate( it+1, itEnd );
+                }
+                catch( T& ex ) {
+                    return m_translateFunction( ex );
+                }
+            }
+
+        protected:
+            std::string(*m_translateFunction)( T& );
+        };
+
+    public:
+        template<typename T>
+        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
+            getMutableRegistryHub().registerTranslator
+                ( new ExceptionTranslator<T>( translateFunction ) );
+        }
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \
+    static std::string translatorName( signature ); \
+    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\
+    static std::string translatorName( signature )
+
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
+
+// #included from: internal/catch_approx.hpp
+#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+#include <cmath>
+#include <limits>
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+#include <type_traits>
+#endif
+
+namespace Catch {
+namespace Detail {
+
+    class Approx {
+    public:
+        explicit Approx ( double value )
+        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
+            m_scale( 1.0 ),
+            m_value( value )
+        {}
+
+        Approx( Approx const& other )
+        :   m_epsilon( other.m_epsilon ),
+            m_scale( other.m_scale ),
+            m_value( other.m_value )
+        {}
+
+        static Approx custom() {
+            return Approx( 0 );
+        }
+
+        Approx operator()( double value ) {
+            Approx approx( value );
+            approx.epsilon( m_epsilon );
+            approx.scale( m_scale );
+            return approx;
+        }
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( const T& lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            auto lhs_v = double(lhs);
+            return std::fabs( lhs_v - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs_v), std::fabs(rhs.m_value) ) );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( Approx const& lhs, const T& rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( T lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( Approx const& lhs, T rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) < rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value < double(rhs) || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) > rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value > double(rhs) || lhs == rhs;
+        }
+#else
+        friend bool operator == ( double lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            return std::fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs), std::fabs(rhs.m_value) ) );
+        }
+
+        friend bool operator == ( Approx const& lhs, double rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        friend bool operator != ( double lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        friend bool operator != ( Approx const& lhs, double rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        friend bool operator <= ( double lhs, Approx const& rhs )
+        {
+          return lhs < rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator <= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value < rhs || lhs == rhs;
+        }
+
+        friend bool operator >= ( double lhs, Approx const& rhs )
+        {
+          return lhs > rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator >= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value > rhs || lhs == rhs;
+        }
+#endif
+
+        Approx& epsilon( double newEpsilon ) {
+            m_epsilon = newEpsilon;
+            return *this;
+        }
+
+        Approx& scale( double newScale ) {
+            m_scale = newScale;
+            return *this;
+        }
+
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << "Approx( " << Catch::toString( m_value ) << " )";
+            return oss.str();
+        }
+
+    private:
+        double m_epsilon;
+        double m_scale;
+        double m_value;
+    };
+}
+
+template<>
+inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
+    return value.toString();
+}
+
+} // end namespace Catch
+
+// #included from: internal/catch_interfaces_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+// #included from: catch_tag_alias.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct TagAlias {
+        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
+
+        std::string tag;
+        SourceLineInfo lineInfo;
+    };
+
+    struct RegistrarForTagAliases {
+        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+    };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
+// #included from: catch_option.hpp
+#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+namespace Catch {
+
+    // An optional type
+    template<typename T>
+    class Option {
+    public:
+        Option() : nullableValue( CATCH_NULL ) {}
+        Option( T const& _value )
+        : nullableValue( new( storage ) T( _value ) )
+        {}
+        Option( Option const& _other )
+        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
+        {}
+
+        ~Option() {
+            reset();
+        }
+
+        Option& operator= ( Option const& _other ) {
+            if( &_other != this ) {
+                reset();
+                if( _other )
+                    nullableValue = new( storage ) T( *_other );
+            }
+            return *this;
+        }
+        Option& operator = ( T const& _value ) {
+            reset();
+            nullableValue = new( storage ) T( _value );
+            return *this;
+        }
+
+        void reset() {
+            if( nullableValue )
+                nullableValue->~T();
+            nullableValue = CATCH_NULL;
+        }
+
+        T& operator*() { return *nullableValue; }
+        T const& operator*() const { return *nullableValue; }
+        T* operator->() { return nullableValue; }
+        const T* operator->() const { return nullableValue; }
+
+        T valueOr( T const& defaultValue ) const {
+            return nullableValue ? *nullableValue : defaultValue;
+        }
+
+        bool some() const { return nullableValue != CATCH_NULL; }
+        bool none() const { return nullableValue == CATCH_NULL; }
+
+        bool operator !() const { return nullableValue == CATCH_NULL; }
+        operator SafeBool::type() const {
+            return SafeBool::makeSafe( some() );
+        }
+
+    private:
+        T* nullableValue;
+        char storage[sizeof(T)];
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct ITagAliasRegistry {
+        virtual ~ITagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
+
+        static ITagAliasRegistry const& get();
+    };
+
+} // end namespace Catch
+
+// These files are included here so the single_include script doesn't put them
+// in the conditionally compiled sections
+// #included from: internal/catch_test_case_info.h
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+#include <string>
+#include <set>
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    struct ITestCase;
+
+    struct TestCaseInfo {
+        enum SpecialProperties{
+            None = 0,
+            IsHidden = 1 << 1,
+            ShouldFail = 1 << 2,
+            MayFail = 1 << 3,
+            Throws = 1 << 4,
+            NonPortable = 1 << 5
+        };
+
+        TestCaseInfo(   std::string const& _name,
+                        std::string const& _className,
+                        std::string const& _description,
+                        std::set<std::string> const& _tags,
+                        SourceLineInfo const& _lineInfo );
+
+        TestCaseInfo( TestCaseInfo const& other );
+
+        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
+
+        bool isHidden() const;
+        bool throws() const;
+        bool okToFail() const;
+        bool expectedToFail() const;
+
+        std::string name;
+        std::string className;
+        std::string description;
+        std::set<std::string> tags;
+        std::set<std::string> lcaseTags;
+        std::string tagsAsString;
+        SourceLineInfo lineInfo;
+        SpecialProperties properties;
+    };
+
+    class TestCase : public TestCaseInfo {
+    public:
+
+        TestCase( ITestCase* testCase, TestCaseInfo const& info );
+        TestCase( TestCase const& other );
+
+        TestCase withName( std::string const& _newName ) const;
+
+        void invoke() const;
+
+        TestCaseInfo const& getTestCaseInfo() const;
+
+        void swap( TestCase& other );
+        bool operator == ( TestCase const& other ) const;
+        bool operator < ( TestCase const& other ) const;
+        TestCase& operator = ( TestCase const& other );
+
+    private:
+        Ptr<ITestCase> test;
+    };
+
+    TestCase makeTestCase(  ITestCase* testCase,
+                            std::string const& className,
+                            std::string const& name,
+                            std::string const& description,
+                            SourceLineInfo const& lineInfo );
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+#ifdef __OBJC__
+// #included from: internal/catch_objc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+#import <objc/runtime.h>
+
+#include <string>
+
+// NB. Any general catch headers included here must be included
+// in catch.hpp first to make sure they are included by the single
+// header for non obj-usage
+
+///////////////////////////////////////////////////////////////////////////////
+// This protocol is really only here for (self) documenting purposes, since
+// all its methods are optional.
+@protocol OcFixture
+
+@optional
+
+-(void) setUp;
+-(void) tearDown;
+
+@end
+
+namespace Catch {
+
+    class OcMethod : public SharedImpl<ITestCase> {
+
+    public:
+        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
+
+        virtual void invoke() const {
+            id obj = [[m_cls alloc] init];
+
+            performOptionalSelector( obj, @selector(setUp)  );
+            performOptionalSelector( obj, m_sel );
+            performOptionalSelector( obj, @selector(tearDown)  );
+
+            arcSafeRelease( obj );
+        }
+    private:
+        virtual ~OcMethod() {}
+
+        Class m_cls;
+        SEL m_sel;
+    };
+
+    namespace Detail{
+
+        inline std::string getAnnotation(   Class cls,
+                                            std::string const& annotationName,
+                                            std::string const& testCaseName ) {
+            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
+            SEL sel = NSSelectorFromString( selStr );
+            arcSafeRelease( selStr );
+            id value = performOptionalSelector( cls, sel );
+            if( value )
+                return [(NSString*)value UTF8String];
+            return "";
+        }
+    }
+
+    inline size_t registerTestMethods() {
+        size_t noTestMethods = 0;
+        int noClasses = objc_getClassList( CATCH_NULL, 0 );
+
+        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
+        objc_getClassList( classes, noClasses );
+
+        for( int c = 0; c < noClasses; c++ ) {
+            Class cls = classes[c];
+            {
+                u_int count;
+                Method* methods = class_copyMethodList( cls, &count );
+                for( u_int m = 0; m < count ; m++ ) {
+                    SEL selector = method_getName(methods[m]);
+                    std::string methodName = sel_getName(selector);
+                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
+                        std::string testCaseName = methodName.substr( 15 );
+                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
+                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
+                        const char* className = class_getName( cls );
+
+                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
+                        noTestMethods++;
+                    }
+                }
+                free(methods);
+            }
+        }
+        return noTestMethods;
+    }
+
+    namespace Matchers {
+        namespace Impl {
+        namespace NSStringMatchers {
+
+            template<typename MatcherT>
+            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
+                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
+                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
+                StringHolder() {
+                    arcSafeRelease( m_substr );
+                }
+
+                NSString* m_substr;
+            };
+
+            struct Equals : StringHolder<Equals> {
+                Equals( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str isEqualToString:m_substr];
+                }
+
+                virtual std::string toString() const {
+                    return "equals string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct Contains : StringHolder<Contains> {
+                Contains( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location != NSNotFound;
+                }
+
+                virtual std::string toString() const {
+                    return "contains string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct StartsWith : StringHolder<StartsWith> {
+                StartsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == 0;
+                }
+
+                virtual std::string toString() const {
+                    return "starts with: " + Catch::toString( m_substr );
+                }
+            };
+            struct EndsWith : StringHolder<EndsWith> {
+                EndsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
+                }
+
+                virtual std::string toString() const {
+                    return "ends with: " + Catch::toString( m_substr );
+                }
+            };
+
+        } // namespace NSStringMatchers
+        } // namespace Impl
+
+        inline Impl::NSStringMatchers::Equals
+            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
+
+        inline Impl::NSStringMatchers::Contains
+            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
+
+        inline Impl::NSStringMatchers::StartsWith
+            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
+
+        inline Impl::NSStringMatchers::EndsWith
+            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
+
+    } // namespace Matchers
+
+    using namespace Matchers;
+
+} // namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define OC_TEST_CASE( name, desc )\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
+{\
+return @ name; \
+}\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
+{ \
+return @ desc; \
+} \
+-(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
+
+#endif
+
+#ifdef CATCH_IMPL
+// #included from: internal/catch_impl.hpp
+#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+// Collect all the implementation files together here
+// These are the equivalent of what would usually be cpp files
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+// #included from: ../catch_session.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+// #included from: internal/catch_commandline.hpp
+#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+// #included from: catch_config.hpp
+#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+// #included from: catch_test_spec_parser.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_test_spec.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_wildcard_pattern.hpp
+#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
+
+#include <stdexcept>
+
+namespace Catch
+{
+    class WildcardPattern {
+        enum WildcardPosition {
+            NoWildcard = 0,
+            WildcardAtStart = 1,
+            WildcardAtEnd = 2,
+            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
+        };
+
+    public:
+
+        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
+        :   m_caseSensitivity( caseSensitivity ),
+            m_wildcard( NoWildcard ),
+            m_pattern( adjustCase( pattern ) )
+        {
+            if( startsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 1 );
+                m_wildcard = WildcardAtStart;
+            }
+            if( endsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
+                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
+            }
+        }
+        virtual ~WildcardPattern();
+        virtual bool matches( std::string const& str ) const {
+            switch( m_wildcard ) {
+                case NoWildcard:
+                    return m_pattern == adjustCase( str );
+                case WildcardAtStart:
+                    return endsWith( adjustCase( str ), m_pattern );
+                case WildcardAtEnd:
+                    return startsWith( adjustCase( str ), m_pattern );
+                case WildcardAtBothEnds:
+                    return contains( adjustCase( str ), m_pattern );
+            }
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
+            throw std::logic_error( "Unknown enum" );
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+        }
+    private:
+        std::string adjustCase( std::string const& str ) const {
+            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
+        }
+        CaseSensitive::Choice m_caseSensitivity;
+        WildcardPosition m_wildcard;
+        std::string m_pattern;
+    };
+}
+
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec {
+        struct Pattern : SharedImpl<> {
+            virtual ~Pattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
+        };
+        class NamePattern : public Pattern {
+        public:
+            NamePattern( std::string const& name )
+            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
+            {}
+            virtual ~NamePattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return m_wildcardPattern.matches( toLower( testCase.name ) );
+            }
+        private:
+            WildcardPattern m_wildcardPattern;
+        };
+
+        class TagPattern : public Pattern {
+        public:
+            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
+            virtual ~TagPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
+            }
+        private:
+            std::string m_tag;
+        };
+
+        class ExcludedPattern : public Pattern {
+        public:
+            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
+            virtual ~ExcludedPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
+        private:
+            Ptr<Pattern> m_underlyingPattern;
+        };
+
+        struct Filter {
+            std::vector<Ptr<Pattern> > m_patterns;
+
+            bool matches( TestCaseInfo const& testCase ) const {
+                // All patterns in a filter must match for the filter to be a match
+                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) {
+                    if( !(*it)->matches( testCase ) )
+                        return false;
+                }
+                return true;
+            }
+        };
+
+    public:
+        bool hasFilters() const {
+            return !m_filters.empty();
+        }
+        bool matches( TestCaseInfo const& testCase ) const {
+            // A TestSpec matches if any filter matches
+            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
+                if( it->matches( testCase ) )
+                    return true;
+            return false;
+        }
+
+    private:
+        std::vector<Filter> m_filters;
+
+        friend class TestSpecParser;
+    };
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestSpecParser {
+        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
+        Mode m_mode;
+        bool m_exclusion;
+        std::size_t m_start, m_pos;
+        std::string m_arg;
+        std::vector<std::size_t> m_escapeChars;
+        TestSpec::Filter m_currentFilter;
+        TestSpec m_testSpec;
+        ITagAliasRegistry const* m_tagAliases;
+
+    public:
+        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
+
+        TestSpecParser& parse( std::string const& arg ) {
+            m_mode = None;
+            m_exclusion = false;
+            m_start = std::string::npos;
+            m_arg = m_tagAliases->expandAliases( arg );
+            m_escapeChars.clear();
+            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
+                visitChar( m_arg[m_pos] );
+            if( m_mode == Name )
+                addPattern<TestSpec::NamePattern>();
+            return *this;
+        }
+        TestSpec testSpec() {
+            addFilter();
+            return m_testSpec;
+        }
+    private:
+        void visitChar( char c ) {
+            if( m_mode == None ) {
+                switch( c ) {
+                case ' ': return;
+                case '~': m_exclusion = true; return;
+                case '[': return startNewMode( Tag, ++m_pos );
+                case '"': return startNewMode( QuotedName, ++m_pos );
+                case '\\': return escape();
+                default: startNewMode( Name, m_pos ); break;
+                }
+            }
+            if( m_mode == Name ) {
+                if( c == ',' ) {
+                    addPattern<TestSpec::NamePattern>();
+                    addFilter();
+                }
+                else if( c == '[' ) {
+                    if( subString() == "exclude:" )
+                        m_exclusion = true;
+                    else
+                        addPattern<TestSpec::NamePattern>();
+                    startNewMode( Tag, ++m_pos );
+                }
+                else if( c == '\\' )
+                    escape();
+            }
+            else if( m_mode == EscapedName )
+                m_mode = Name;
+            else if( m_mode == QuotedName && c == '"' )
+                addPattern<TestSpec::NamePattern>();
+            else if( m_mode == Tag && c == ']' )
+                addPattern<TestSpec::TagPattern>();
+        }
+        void startNewMode( Mode mode, std::size_t start ) {
+            m_mode = mode;
+            m_start = start;
+        }
+        void escape() {
+            if( m_mode == None )
+                m_start = m_pos;
+            m_mode = EscapedName;
+            m_escapeChars.push_back( m_pos );
+        }
+        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
+        template<typename T>
+        void addPattern() {
+            std::string token = subString();
+            for( size_t i = 0; i < m_escapeChars.size(); ++i )
+                token = token.substr( 0, m_escapeChars[i]-i ) + token.substr( m_escapeChars[i]+1-i );
+            m_escapeChars.clear();
+            if( startsWith( token, "exclude:" ) ) {
+                m_exclusion = true;
+                token = token.substr( 8 );
+            }
+            if( !token.empty() ) {
+                Ptr<TestSpec::Pattern> pattern = new T( token );
+                if( m_exclusion )
+                    pattern = new TestSpec::ExcludedPattern( pattern );
+                m_currentFilter.m_patterns.push_back( pattern );
+            }
+            m_exclusion = false;
+            m_mode = None;
+        }
+        void addFilter() {
+            if( !m_currentFilter.m_patterns.empty() ) {
+                m_testSpec.m_filters.push_back( m_currentFilter );
+                m_currentFilter = TestSpec::Filter();
+            }
+        }
+    };
+    inline TestSpec parseTestSpec( std::string const& arg ) {
+        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+// #included from: catch_interfaces_config.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+#include <iosfwd>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    struct Verbosity { enum Level {
+        NoOutput = 0,
+        Quiet,
+        Normal
+    }; };
+
+    struct WarnAbout { enum What {
+        Nothing = 0x00,
+        NoAssertions = 0x01
+    }; };
+
+    struct ShowDurations { enum OrNot {
+        DefaultForReporter,
+        Always,
+        Never
+    }; };
+    struct RunTests { enum InWhatOrder {
+        InDeclarationOrder,
+        InLexicographicalOrder,
+        InRandomOrder
+    }; };
+    struct UseColour { enum YesOrNo {
+        Auto,
+        Yes,
+        No
+    }; };
+
+    class TestSpec;
+
+    struct IConfig : IShared {
+
+        virtual ~IConfig();
+
+        virtual bool allowThrows() const = 0;
+        virtual std::ostream& stream() const = 0;
+        virtual std::string name() const = 0;
+        virtual bool includeSuccessfulResults() const = 0;
+        virtual bool shouldDebugBreak() const = 0;
+        virtual bool warnAboutMissingAssertions() const = 0;
+        virtual int abortAfter() const = 0;
+        virtual bool showInvisibles() const = 0;
+        virtual ShowDurations::OrNot showDurations() const = 0;
+        virtual TestSpec const& testSpec() const = 0;
+        virtual RunTests::InWhatOrder runOrder() const = 0;
+        virtual unsigned int rngSeed() const = 0;
+        virtual UseColour::YesOrNo useColour() const = 0;
+        virtual std::vector<std::string> const& getSectionsToRun() const = 0;
+
+    };
+}
+
+// #included from: catch_stream.h
+#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+// #included from: catch_streambuf.h
+#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+#include <streambuf>
+
+namespace Catch {
+
+    class StreamBufBase : public std::streambuf {
+    public:
+        virtual ~StreamBufBase() CATCH_NOEXCEPT;
+    };
+}
+
+#include <streambuf>
+#include <ostream>
+#include <fstream>
+#include <memory>
+
+namespace Catch {
+
+    std::ostream& cout();
+    std::ostream& cerr();
+
+    struct IStream {
+        virtual ~IStream() CATCH_NOEXCEPT;
+        virtual std::ostream& stream() const = 0;
+    };
+
+    class FileStream : public IStream {
+        mutable std::ofstream m_ofs;
+    public:
+        FileStream( std::string const& filename );
+        virtual ~FileStream() CATCH_NOEXCEPT;
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class CoutStream : public IStream {
+        mutable std::ostream m_os;
+    public:
+        CoutStream();
+        virtual ~CoutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class DebugOutStream : public IStream {
+        CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf;
+        mutable std::ostream m_os;
+    public:
+        DebugOutStream();
+        virtual ~DebugOutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+}
+
+#include <memory>
+#include <vector>
+#include <string>
+#include <stdexcept>
+
+#ifndef CATCH_CONFIG_CONSOLE_WIDTH
+#define CATCH_CONFIG_CONSOLE_WIDTH 80
+#endif
+
+namespace Catch {
+
+    struct ConfigData {
+
+        ConfigData()
+        :   listTests( false ),
+            listTags( false ),
+            listReporters( false ),
+            listTestNamesOnly( false ),
+            showSuccessfulTests( false ),
+            shouldDebugBreak( false ),
+            noThrow( false ),
+            showHelp( false ),
+            showInvisibles( false ),
+            filenamesAsTags( false ),
+            abortAfter( -1 ),
+            rngSeed( 0 ),
+            verbosity( Verbosity::Normal ),
+            warnings( WarnAbout::Nothing ),
+            showDurations( ShowDurations::DefaultForReporter ),
+            runOrder( RunTests::InDeclarationOrder ),
+            useColour( UseColour::Auto )
+        {}
+
+        bool listTests;
+        bool listTags;
+        bool listReporters;
+        bool listTestNamesOnly;
+
+        bool showSuccessfulTests;
+        bool shouldDebugBreak;
+        bool noThrow;
+        bool showHelp;
+        bool showInvisibles;
+        bool filenamesAsTags;
+
+        int abortAfter;
+        unsigned int rngSeed;
+
+        Verbosity::Level verbosity;
+        WarnAbout::What warnings;
+        ShowDurations::OrNot showDurations;
+        RunTests::InWhatOrder runOrder;
+        UseColour::YesOrNo useColour;
+
+        std::string outputFilename;
+        std::string name;
+        std::string processName;
+
+        std::vector<std::string> reporterNames;
+        std::vector<std::string> testsOrTags;
+        std::vector<std::string> sectionsToRun;
+    };
+
+    class Config : public SharedImpl<IConfig> {
+    private:
+        Config( Config const& other );
+        Config& operator = ( Config const& other );
+        virtual void dummy();
+    public:
+
+        Config()
+        {}
+
+        Config( ConfigData const& data )
+        :   m_data( data ),
+            m_stream( openStream() )
+        {
+            if( !data.testsOrTags.empty() ) {
+                TestSpecParser parser( ITagAliasRegistry::get() );
+                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
+                    parser.parse( data.testsOrTags[i] );
+                m_testSpec = parser.testSpec();
+            }
+        }
+
+        virtual ~Config() {}
+
+        std::string const& getFilename() const {
+            return m_data.outputFilename ;
+        }
+
+        bool listTests() const { return m_data.listTests; }
+        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
+        bool listTags() const { return m_data.listTags; }
+        bool listReporters() const { return m_data.listReporters; }
+
+        std::string getProcessName() const { return m_data.processName; }
+
+        std::vector<std::string> const& getReporterNames() const { return m_data.reporterNames; }
+        std::vector<std::string> const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; }
+
+        virtual TestSpec const& testSpec() const CATCH_OVERRIDE { return m_testSpec; }
+
+        bool showHelp() const { return m_data.showHelp; }
+
+        // IConfig interface
+        virtual bool allowThrows() const CATCH_OVERRIDE                 { return !m_data.noThrow; }
+        virtual std::ostream& stream() const CATCH_OVERRIDE             { return m_stream->stream(); }
+        virtual std::string name() const CATCH_OVERRIDE                 { return m_data.name.empty() ? m_data.processName : m_data.name; }
+        virtual bool includeSuccessfulResults() const CATCH_OVERRIDE    { return m_data.showSuccessfulTests; }
+        virtual bool warnAboutMissingAssertions() const CATCH_OVERRIDE  { return m_data.warnings & WarnAbout::NoAssertions; }
+        virtual ShowDurations::OrNot showDurations() const CATCH_OVERRIDE { return m_data.showDurations; }
+        virtual RunTests::InWhatOrder runOrder() const CATCH_OVERRIDE   { return m_data.runOrder; }
+        virtual unsigned int rngSeed() const CATCH_OVERRIDE             { return m_data.rngSeed; }
+        virtual UseColour::YesOrNo useColour() const CATCH_OVERRIDE     { return m_data.useColour; }
+        virtual bool shouldDebugBreak() const CATCH_OVERRIDE { return m_data.shouldDebugBreak; }
+        virtual int abortAfter() const CATCH_OVERRIDE { return m_data.abortAfter; }
+        virtual bool showInvisibles() const CATCH_OVERRIDE { return m_data.showInvisibles; }
+
+    private:
+
+        IStream const* openStream() {
+            if( m_data.outputFilename.empty() )
+                return new CoutStream();
+            else if( m_data.outputFilename[0] == '%' ) {
+                if( m_data.outputFilename == "%debug" )
+                    return new DebugOutStream();
+                else
+                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
+            }
+            else
+                return new FileStream( m_data.outputFilename );
+        }
+        ConfigData m_data;
+
+        CATCH_AUTO_PTR( IStream const ) m_stream;
+        TestSpec m_testSpec;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_clara.h
+#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+// Use Catch's value for console width (store Clara's off to the side, if present)
+#ifdef CLARA_CONFIG_CONSOLE_WIDTH
+#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
+#undef CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+// Declare Clara inside the Catch namespace
+#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
+// #included from: ../external/clara.h
+
+// Version 0.0.2.4
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
+
+#ifndef STITCH_CLARA_OPEN_NAMESPACE
+#define TWOBLUECUBES_CLARA_H_INCLUDED
+#define STITCH_CLARA_OPEN_NAMESPACE
+#define STITCH_CLARA_CLOSE_NAMESPACE
+#else
+#define STITCH_CLARA_CLOSE_NAMESPACE }
+#endif
+
+#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
+
+// ----------- #included from tbc_text_format.h -----------
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
+#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+#define TBC_TEXT_FORMAT_H_INCLUDED
+#endif
+
+#include <string>
+#include <vector>
+#include <sstream>
+#include <algorithm>
+
+// Use optional outer namespace
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TBC_TEXT_FORMAT_H_INCLUDED
+
+// ----------- end of #include from tbc_text_format.h -----------
+// ........... back in clara.h
+
+#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+// ----------- #included from clara_compilers.h -----------
+
+#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
+// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+
+// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
+
+#ifdef __clang__
+
+#if __has_feature(cxx_nullptr)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#if __has_feature(cxx_noexcept)
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(__cplusplus) && __cplusplus >= 201103L
+
+#define CLARA_CPP11_OR_GREATER
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+#endif
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+// noexcept support:
+#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
+#define CLARA_NOEXCEPT noexcept
+#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
+#else
+#define CLARA_NOEXCEPT throw()
+#  define CLARA_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CLARA_CONFIG_CPP11_NULLPTR
+#define CLARA_NULL nullptr
+#else
+#define CLARA_NULL NULL
+#endif
+
+// override support
+#ifdef CLARA_CONFIG_CPP11_OVERRIDE
+#define CLARA_OVERRIDE override
+#else
+#define CLARA_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
+#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// ----------- end of #include from clara_compilers.h -----------
+// ........... back in clara.h
+
+#include <map>
+#include <stdexcept>
+#include <memory>
+
+#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#define CLARA_PLATFORM_WINDOWS
+#endif
+
+// Use optional outer namespace
+#ifdef STITCH_CLARA_OPEN_NAMESPACE
+STITCH_CLARA_OPEN_NAMESPACE
+#endif
+
+namespace Clara {
+
+    struct UnpositionalTag {};
+
+    extern UnpositionalTag _;
+
+#ifdef CLARA_CONFIG_MAIN
+    UnpositionalTag _;
+#endif
+
+    namespace Detail {
+
+#ifdef CLARA_CONSOLE_WIDTH
+    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+        using namespace Tbc;
+
+        inline bool startsWith( std::string const& str, std::string const& prefix ) {
+            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
+        }
+
+        template<typename T> struct RemoveConstRef{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
+
+        template<typename T>    struct IsBool       { static const bool value = false; };
+        template<>              struct IsBool<bool> { static const bool value = true; };
+
+        template<typename T>
+        void convertInto( std::string const& _source, T& _dest ) {
+            std::stringstream ss;
+            ss << _source;
+            ss >> _dest;
+            if( ss.fail() )
+                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
+        }
+        inline void convertInto( std::string const& _source, std::string& _dest ) {
+            _dest = _source;
+        }
+        char toLowerCh(char c) {
+            return static_cast<char>( ::tolower( c ) );
+        }
+        inline void convertInto( std::string const& _source, bool& _dest ) {
+            std::string sourceLC = _source;
+            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh );
+            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+                _dest = true;
+            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+                _dest = false;
+            else
+                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
+        }
+
+        template<typename ConfigT>
+        struct IArgFunction {
+            virtual ~IArgFunction() {}
+#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
+            IArgFunction()                      = default;
+            IArgFunction( IArgFunction const& ) = default;
+#endif
+            virtual void set( ConfigT& config, std::string const& value ) const = 0;
+            virtual bool takesArg() const = 0;
+            virtual IArgFunction* clone() const = 0;
+        };
+
+        template<typename ConfigT>
+        class BoundArgFunction {
+        public:
+            BoundArgFunction() : functionObj( CLARA_NULL ) {}
+            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
+            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
+            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
+                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
+                delete functionObj;
+                functionObj = newFunctionObj;
+                return *this;
+            }
+            ~BoundArgFunction() { delete functionObj; }
+
+            void set( ConfigT& config, std::string const& value ) const {
+                functionObj->set( config, value );
+            }
+            bool takesArg() const { return functionObj->takesArg(); }
+
+            bool isSet() const {
+                return functionObj != CLARA_NULL;
+            }
+        private:
+            IArgFunction<ConfigT>* functionObj;
+        };
+
+        template<typename C>
+        struct NullBinder : IArgFunction<C>{
+            virtual void set( C&, std::string const& ) const {}
+            virtual bool takesArg() const { return true; }
+            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
+        };
+
+        template<typename C, typename M>
+        struct BoundDataMember : IArgFunction<C>{
+            BoundDataMember( M C::* _member ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                convertInto( stringValue, p.*member );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
+            M C::* member;
+        };
+        template<typename C, typename M>
+        struct BoundUnaryMethod : IArgFunction<C>{
+            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( stringValue, value );
+                (p.*member)( value );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
+            void (C::*member)( M );
+        };
+        template<typename C>
+        struct BoundNullaryMethod : IArgFunction<C>{
+            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    (p.*member)();
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
+            void (C::*member)();
+        };
+
+        template<typename C>
+        struct BoundUnaryFunction : IArgFunction<C>{
+            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    function( obj );
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
+            void (*function)( C& );
+        };
+
+        template<typename C, typename T>
+        struct BoundBinaryFunction : IArgFunction<C>{
+            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( stringValue, value );
+                function( obj, value );
+            }
+            virtual bool takesArg() const { return !IsBool<T>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
+            void (*function)( C&, T );
+        };
+
+    } // namespace Detail
+
+    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
+        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
+        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
+            args[i] = argv[i];
+
+        return args;
+    }
+
+    class Parser {
+        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
+        Mode mode;
+        std::size_t from;
+        bool inQuotes;
+    public:
+
+        struct Token {
+            enum Type { Positional, ShortOpt, LongOpt };
+            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
+            Type type;
+            std::string data;
+        };
+
+        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
+
+        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
+            const std::string doubleDash = "--";
+            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
+                parseIntoTokens( args[i], tokens);
+        }
+
+        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
+            for( std::size_t i = 0; i <= arg.size(); ++i ) {
+                char c = arg[i];
+                if( c == '"' )
+                    inQuotes = !inQuotes;
+                mode = handleMode( i, c, arg, tokens );
+            }
+        }
+        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            switch( mode ) {
+                case None: return handleNone( i, c );
+                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
+                case ShortOpt:
+                case LongOpt:
+                case SlashOpt: return handleOpt( i, c, arg, tokens );
+                case Positional: return handlePositional( i, c, arg, tokens );
+                default: throw std::logic_error( "Unknown mode" );
+            }
+        }
+
+        Mode handleNone( std::size_t i, char c ) {
+            if( inQuotes ) {
+                from = i;
+                return Positional;
+            }
+            switch( c ) {
+                case '-': return MaybeShortOpt;
+#ifdef CLARA_PLATFORM_WINDOWS
+                case '/': from = i+1; return SlashOpt;
+#endif
+                default: from = i; return Positional;
+            }
+        }
+        Mode handleMaybeShortOpt( std::size_t i, char c ) {
+            switch( c ) {
+                case '-': from = i+1; return LongOpt;
+                default: from = i; return ShortOpt;
+            }
+        }
+        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( std::string( ":=\0", 3 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string optName = arg.substr( from, i-from );
+            if( mode == ShortOpt )
+                for( std::size_t j = 0; j < optName.size(); ++j )
+                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
+            else if( mode == SlashOpt && optName.size() == 1 )
+                tokens.push_back( Token( Token::ShortOpt, optName ) );
+            else
+                tokens.push_back( Token( Token::LongOpt, optName ) );
+            return None;
+        }
+        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string data = arg.substr( from, i-from );
+            tokens.push_back( Token( Token::Positional, data ) );
+            return None;
+        }
+    };
+
+    template<typename ConfigT>
+    struct CommonArgProperties {
+        CommonArgProperties() {}
+        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
+
+        Detail::BoundArgFunction<ConfigT> boundField;
+        std::string description;
+        std::string detail;
+        std::string placeholder; // Only value if boundField takes an arg
+
+        bool takesArg() const {
+            return !placeholder.empty();
+        }
+        void validate() const {
+            if( !boundField.isSet() )
+                throw std::logic_error( "option not bound" );
+        }
+    };
+    struct OptionArgProperties {
+        std::vector<std::string> shortNames;
+        std::string longName;
+
+        bool hasShortName( std::string const& shortName ) const {
+            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
+        }
+        bool hasLongName( std::string const& _longName ) const {
+            return _longName == longName;
+        }
+    };
+    struct PositionalArgProperties {
+        PositionalArgProperties() : position( -1 ) {}
+        int position; // -1 means non-positional (floating)
+
+        bool isFixedPositional() const {
+            return position != -1;
+        }
+    };
+
+    template<typename ConfigT>
+    class CommandLine {
+
+        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
+            Arg() {}
+            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
+
+            using CommonArgProperties<ConfigT>::placeholder; // !TBD
+
+            std::string dbgName() const {
+                if( !longName.empty() )
+                    return "--" + longName;
+                if( !shortNames.empty() )
+                    return "-" + shortNames[0];
+                return "positional args";
+            }
+            std::string commands() const {
+                std::ostringstream oss;
+                bool first = true;
+                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
+                for(; it != itEnd; ++it ) {
+                    if( first )
+                        first = false;
+                    else
+                        oss << ", ";
+                    oss << "-" << *it;
+                }
+                if( !longName.empty() ) {
+                    if( !first )
+                        oss << ", ";
+                    oss << "--" << longName;
+                }
+                if( !placeholder.empty() )
+                    oss << " <" << placeholder << ">";
+                return oss.str();
+            }
+        };
+
+        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
+
+        friend void addOptName( Arg& arg, std::string const& optName )
+        {
+            if( optName.empty() )
+                return;
+            if( Detail::startsWith( optName, "--" ) ) {
+                if( !arg.longName.empty() )
+                    throw std::logic_error( "Only one long opt may be specified. '"
+                        + arg.longName
+                        + "' already specified, now attempting to add '"
+                        + optName + "'" );
+                arg.longName = optName.substr( 2 );
+            }
+            else if( Detail::startsWith( optName, "-" ) )
+                arg.shortNames.push_back( optName.substr( 1 ) );
+            else
+                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
+        }
+        friend void setPositionalArg( Arg& arg, int position )
+        {
+            arg.position = position;
+        }
+
+        class ArgBuilder {
+        public:
+            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
+
+            // Bind a non-boolean data member (requires placeholder string)
+            template<typename C, typename M>
+            void bind( M C::* field, std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
+                m_arg->placeholder = placeholder;
+            }
+            // Bind a boolean data member (no placeholder required)
+            template<typename C>
+            void bind( bool C::* field ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
+            }
+
+            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
+            template<typename C, typename M>
+            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
+                m_arg->placeholder = placeholder;
+            }
+
+            // Bind a method taking a single, boolean argument (no placeholder string required)
+            template<typename C>
+            void bind( void (C::* unaryMethod)( bool ) ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
+            }
+
+            // Bind a method that takes no arguments (will be called if opt is present)
+            template<typename C>
+            void bind( void (C::* nullaryMethod)() ) {
+                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
+            template<typename C>
+            void bind( void (* unaryFunction)( C& ) ) {
+                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
+            template<typename C, typename T>
+            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
+                m_arg->placeholder = placeholder;
+            }
+
+            ArgBuilder& describe( std::string const& description ) {
+                m_arg->description = description;
+                return *this;
+            }
+            ArgBuilder& detail( std::string const& detail ) {
+                m_arg->detail = detail;
+                return *this;
+            }
+
+        protected:
+            Arg* m_arg;
+        };
+
+        class OptBuilder : public ArgBuilder {
+        public:
+            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
+            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
+
+            OptBuilder& operator[]( std::string const& optName ) {
+                addOptName( *ArgBuilder::m_arg, optName );
+                return *this;
+            }
+        };
+
+    public:
+
+        CommandLine()
+        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
+            m_highestSpecifiedArgPosition( 0 ),
+            m_throwOnUnrecognisedTokens( false )
+        {}
+        CommandLine( CommandLine const& other )
+        :   m_boundProcessName( other.m_boundProcessName ),
+            m_options ( other.m_options ),
+            m_positionalArgs( other.m_positionalArgs ),
+            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
+            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
+        {
+            if( other.m_floatingArg.get() )
+                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
+        }
+
+        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
+            m_throwOnUnrecognisedTokens = shouldThrow;
+            return *this;
+        }
+
+        OptBuilder operator[]( std::string const& optName ) {
+            m_options.push_back( Arg() );
+            addOptName( m_options.back(), optName );
+            OptBuilder builder( &m_options.back() );
+            return builder;
+        }
+
+        ArgBuilder operator[]( int position ) {
+            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
+            if( position > m_highestSpecifiedArgPosition )
+                m_highestSpecifiedArgPosition = position;
+            setPositionalArg( m_positionalArgs[position], position );
+            ArgBuilder builder( &m_positionalArgs[position] );
+            return builder;
+        }
+
+        // Invoke this with the _ instance
+        ArgBuilder operator[]( UnpositionalTag ) {
+            if( m_floatingArg.get() )
+                throw std::logic_error( "Only one unpositional argument can be added" );
+            m_floatingArg.reset( new Arg() );
+            ArgBuilder builder( m_floatingArg.get() );
+            return builder;
+        }
+
+        template<typename C, typename M>
+        void bindProcessName( M C::* field ) {
+            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
+        }
+        template<typename C, typename M>
+        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
+            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
+        }
+
+        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
+            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
+            std::size_t maxWidth = 0;
+            for( it = itBegin; it != itEnd; ++it )
+                maxWidth = (std::max)( maxWidth, it->commands().size() );
+
+            for( it = itBegin; it != itEnd; ++it ) {
+                Detail::Text usage( it->commands(), Detail::TextAttributes()
+                                                        .setWidth( maxWidth+indent )
+                                                        .setIndent( indent ) );
+                Detail::Text desc( it->description, Detail::TextAttributes()
+                                                        .setWidth( width - maxWidth - 3 ) );
+
+                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
+                    std::string usageCol = i < usage.size() ? usage[i] : "";
+                    os << usageCol;
+
+                    if( i < desc.size() && !desc[i].empty() )
+                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
+                            << desc[i];
+                    os << "\n";
+                }
+            }
+        }
+        std::string optUsage() const {
+            std::ostringstream oss;
+            optUsage( oss );
+            return oss.str();
+        }
+
+        void argSynopsis( std::ostream& os ) const {
+            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
+                if( i > 1 )
+                    os << " ";
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
+                if( it != m_positionalArgs.end() )
+                    os << "<" << it->second.placeholder << ">";
+                else if( m_floatingArg.get() )
+                    os << "<" << m_floatingArg->placeholder << ">";
+                else
+                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
+            }
+            // !TBD No indication of mandatory args
+            if( m_floatingArg.get() ) {
+                if( m_highestSpecifiedArgPosition > 1 )
+                    os << " ";
+                os << "[<" << m_floatingArg->placeholder << "> ...]";
+            }
+        }
+        std::string argSynopsis() const {
+            std::ostringstream oss;
+            argSynopsis( oss );
+            return oss.str();
+        }
+
+        void usage( std::ostream& os, std::string const& procName ) const {
+            validate();
+            os << "usage:\n  " << procName << " ";
+            argSynopsis( os );
+            if( !m_options.empty() ) {
+                os << " [options]\n\nwhere options are: \n";
+                optUsage( os, 2 );
+            }
+            os << "\n";
+        }
+        std::string usage( std::string const& procName ) const {
+            std::ostringstream oss;
+            usage( oss, procName );
+            return oss.str();
+        }
+
+        ConfigT parse( std::vector<std::string> const& args ) const {
+            ConfigT config;
+            parseInto( args, config );
+            return config;
+        }
+
+        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
+            std::string processName = args[0];
+            std::size_t lastSlash = processName.find_last_of( "/\\" );
+            if( lastSlash != std::string::npos )
+                processName = processName.substr( lastSlash+1 );
+            m_boundProcessName.set( config, processName );
+            std::vector<Parser::Token> tokens;
+            Parser parser;
+            parser.parseIntoTokens( args, tokens );
+            return populate( tokens, config );
+        }
+
+        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            validate();
+            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
+            unusedTokens = populateFixedArgs( unusedTokens, config );
+            unusedTokens = populateFloatingArgs( unusedTokens, config );
+            return unusedTokens;
+        }
+
+        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            std::vector<std::string> errors;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
+                for(; it != itEnd; ++it ) {
+                    Arg const& arg = *it;
+
+                    try {
+                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
+                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
+                            if( arg.takesArg() ) {
+                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
+                                    errors.push_back( "Expected argument to option: " + token.data );
+                                else
+                                    arg.boundField.set( config, tokens[++i].data );
+                            }
+                            else {
+                                arg.boundField.set( config, "true" );
+                            }
+                            break;
+                        }
+                    }
+                    catch( std::exception& ex ) {
+                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
+                    }
+                }
+                if( it == itEnd ) {
+                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
+                        unusedTokens.push_back( token );
+                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
+                        errors.push_back( "unrecognised option: " + token.data );
+                }
+            }
+            if( !errors.empty() ) {
+                std::ostringstream oss;
+                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it != errors.begin() )
+                        oss << "\n";
+                    oss << *it;
+                }
+                throw std::runtime_error( oss.str() );
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            int position = 1;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
+                if( it != m_positionalArgs.end() )
+                    it->second.boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+                if( token.type == Parser::Token::Positional )
+                    position++;
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            if( !m_floatingArg.get() )
+                return tokens;
+            std::vector<Parser::Token> unusedTokens;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                if( token.type == Parser::Token::Positional )
+                    m_floatingArg->boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+            }
+            return unusedTokens;
+        }
+
+        void validate() const
+        {
+            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
+                throw std::logic_error( "No options or arguments specified" );
+
+            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
+                                                            itEnd = m_options.end();
+                    it != itEnd; ++it )
+                it->validate();
+        }
+
+    private:
+        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
+        std::vector<Arg> m_options;
+        std::map<int, Arg> m_positionalArgs;
+        ArgAutoPtr m_floatingArg;
+        int m_highestSpecifiedArgPosition;
+        bool m_throwOnUnrecognisedTokens;
+    };
+
+} // end namespace Clara
+
+STITCH_CLARA_CLOSE_NAMESPACE
+#undef STITCH_CLARA_OPEN_NAMESPACE
+#undef STITCH_CLARA_CLOSE_NAMESPACE
+
+#endif // TWOBLUECUBES_CLARA_H_INCLUDED
+#undef STITCH_CLARA_OPEN_NAMESPACE
+
+// Restore Clara's value for console width, if present
+#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+
+#include <fstream>
+#include <ctime>
+
+namespace Catch {
+
+    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
+    inline void abortAfterX( ConfigData& config, int x ) {
+        if( x < 1 )
+            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
+        config.abortAfter = x;
+    }
+    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
+    inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); }
+    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
+
+    inline void addWarning( ConfigData& config, std::string const& _warning ) {
+        if( _warning == "NoAssertions" )
+            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
+        else
+            throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' );
+    }
+    inline void setOrder( ConfigData& config, std::string const& order ) {
+        if( startsWith( "declared", order ) )
+            config.runOrder = RunTests::InDeclarationOrder;
+        else if( startsWith( "lexical", order ) )
+            config.runOrder = RunTests::InLexicographicalOrder;
+        else if( startsWith( "random", order ) )
+            config.runOrder = RunTests::InRandomOrder;
+        else
+            throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' );
+    }
+    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
+        if( seed == "time" ) {
+            config.rngSeed = static_cast<unsigned int>( std::time(0) );
+        }
+        else {
+            std::stringstream ss;
+            ss << seed;
+            ss >> config.rngSeed;
+            if( ss.fail() )
+                throw std::runtime_error( "Argument to --rng-seed should be the word 'time' or a number" );
+        }
+    }
+    inline void setVerbosity( ConfigData& config, int level ) {
+        // !TBD: accept strings?
+        config.verbosity = static_cast<Verbosity::Level>( level );
+    }
+    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
+        config.showDurations = _showDurations
+            ? ShowDurations::Always
+            : ShowDurations::Never;
+    }
+    inline void setUseColour( ConfigData& config, std::string const& value ) {
+        std::string mode = toLower( value );
+
+        if( mode == "yes" )
+            config.useColour = UseColour::Yes;
+        else if( mode == "no" )
+            config.useColour = UseColour::No;
+        else if( mode == "auto" )
+            config.useColour = UseColour::Auto;
+        else
+            throw std::runtime_error( "colour mode must be one of: auto, yes or no" );
+    }
+    inline void forceColour( ConfigData& config ) {
+        config.useColour = UseColour::Yes;
+    }
+    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
+        std::ifstream f( _filename.c_str() );
+        if( !f.is_open() )
+            throw std::domain_error( "Unable to load input file: " + _filename );
+
+        std::string line;
+        while( std::getline( f, line ) ) {
+            line = trim(line);
+            if( !line.empty() && !startsWith( line, '#' ) ) {
+                if( !startsWith( line, '"' ) )
+                    line = '"' + line + '"';
+                addTestOrTags( config, line + ',' );
+            }
+        }
+    }
+
+    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
+
+        using namespace Clara;
+        CommandLine<ConfigData> cli;
+
+        cli.bindProcessName( &ConfigData::processName );
+
+        cli["-?"]["-h"]["--help"]
+            .describe( "display usage information" )
+            .bind( &ConfigData::showHelp );
+
+        cli["-l"]["--list-tests"]
+            .describe( "list all/matching test cases" )
+            .bind( &ConfigData::listTests );
+
+        cli["-t"]["--list-tags"]
+            .describe( "list all/matching tags" )
+            .bind( &ConfigData::listTags );
+
+        cli["-s"]["--success"]
+            .describe( "include successful tests in output" )
+            .bind( &ConfigData::showSuccessfulTests );
+
+        cli["-b"]["--break"]
+            .describe( "break into debugger on failure" )
+            .bind( &ConfigData::shouldDebugBreak );
+
+        cli["-e"]["--nothrow"]
+            .describe( "skip exception tests" )
+            .bind( &ConfigData::noThrow );
+
+        cli["-i"]["--invisibles"]
+            .describe( "show invisibles (tabs, newlines)" )
+            .bind( &ConfigData::showInvisibles );
+
+        cli["-o"]["--out"]
+            .describe( "output filename" )
+            .bind( &ConfigData::outputFilename, "filename" );
+
+        cli["-r"]["--reporter"]
+//            .placeholder( "name[:filename]" )
+            .describe( "reporter to use (defaults to console)" )
+            .bind( &addReporterName, "name" );
+
+        cli["-n"]["--name"]
+            .describe( "suite name" )
+            .bind( &ConfigData::name, "name" );
+
+        cli["-a"]["--abort"]
+            .describe( "abort at first failure" )
+            .bind( &abortAfterFirst );
+
+        cli["-x"]["--abortx"]
+            .describe( "abort after x failures" )
+            .bind( &abortAfterX, "no. failures" );
+
+        cli["-w"]["--warn"]
+            .describe( "enable warnings" )
+            .bind( &addWarning, "warning name" );
+
+// - needs updating if reinstated
+//        cli.into( &setVerbosity )
+//            .describe( "level of verbosity (0=no output)" )
+//            .shortOpt( "v")
+//            .longOpt( "verbosity" )
+//            .placeholder( "level" );
+
+        cli[_]
+            .describe( "which test or tests to use" )
+            .bind( &addTestOrTags, "test name, pattern or tags" );
+
+        cli["-d"]["--durations"]
+            .describe( "show test durations" )
+            .bind( &setShowDurations, "yes|no" );
+
+        cli["-f"]["--input-file"]
+            .describe( "load test names to run from a file" )
+            .bind( &loadTestNamesFromFile, "filename" );
+
+        cli["-#"]["--filenames-as-tags"]
+            .describe( "adds a tag for the filename" )
+            .bind( &ConfigData::filenamesAsTags );
+
+        cli["-c"]["--section"]
+                .describe( "specify section to run" )
+                .bind( &addSectionToRun, "section name" );
+
+        // Less common commands which don't have a short form
+        cli["--list-test-names-only"]
+            .describe( "list all/matching test cases names only" )
+            .bind( &ConfigData::listTestNamesOnly );
+
+        cli["--list-reporters"]
+            .describe( "list all reporters" )
+            .bind( &ConfigData::listReporters );
+
+        cli["--order"]
+            .describe( "test case order (defaults to decl)" )
+            .bind( &setOrder, "decl|lex|rand" );
+
+        cli["--rng-seed"]
+            .describe( "set a specific seed for random numbers" )
+            .bind( &setRngSeed, "'time'|number" );
+
+        cli["--force-colour"]
+            .describe( "force colourised output (deprecated)" )
+            .bind( &forceColour );
+
+        cli["--use-colour"]
+            .describe( "should output be colourised" )
+            .bind( &setUseColour, "yes|no" );
+
+        return cli;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_list.hpp
+#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+// #included from: catch_text.h
+#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
+// #included from: ../external/tbc_text_format.h
+// Only use header guard if we are not using an outer namespace
+#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#  endif
+# else
+#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+# endif
+#endif
+#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            const std::string wrappableBeforeChars = "[({<\t";
+            const std::string wrappableAfterChars = "])}>-,./|\\";
+            const std::string wrappableInsteadOfChars = " \n\r";
+            std::string indent = _attr.initialIndent != std::string::npos
+                ? std::string( _attr.initialIndent, ' ' )
+                : std::string( _attr.indent, ' ' );
+
+            typedef std::string::const_iterator iterator;
+            iterator it = _str.begin();
+            const iterator strEnd = _str.end();
+
+            while( it != strEnd ) {
+
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+
+                std::string suffix;
+                std::size_t width = (std::min)( static_cast<size_t>( strEnd-it ), _attr.width-static_cast<size_t>( indent.size() ) );
+                iterator itEnd = it+width;
+                iterator itNext = _str.end();
+
+                iterator itNewLine = std::find( it, itEnd, '\n' );
+                if( itNewLine != itEnd )
+                    itEnd = itNewLine;
+
+                if( itEnd != strEnd  ) {
+                    bool foundWrapPoint = false;
+                    iterator findIt = itEnd;
+                    do {
+                        if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) {
+                            itEnd = findIt+1;
+                            itNext = findIt+1;
+                            foundWrapPoint = true;
+                        }
+                        else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) {
+                            itEnd = findIt;
+                            itNext = findIt;
+                            foundWrapPoint = true;
+                        }
+                        else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) {
+                            itNext = findIt+1;
+                            itEnd = findIt;
+                            foundWrapPoint = true;
+                        }
+                        if( findIt == it )
+                            break;
+                        else
+                            --findIt;
+                    }
+                    while( !foundWrapPoint );
+
+                    if( !foundWrapPoint ) {
+                        // No good wrap char, so we'll break mid word and add a hyphen
+                        --itEnd;
+                        itNext = itEnd;
+                        suffix = "-";
+                    }
+                    else {
+                        while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos )
+                            --itEnd;
+                    }
+                }
+                lines.push_back( indent + std::string( it, itEnd ) + suffix );
+
+                if( indent.size() != _attr.indent )
+                    indent = std::string( _attr.indent, ' ' );
+                it = itNext;
+            }
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+namespace Catch {
+    using Tbc::Text;
+    using Tbc::TextAttributes;
+}
+
+// #included from: catch_console_colour.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+namespace Catch {
+
+    struct Colour {
+        enum Code {
+            None = 0,
+
+            White,
+            Red,
+            Green,
+            Blue,
+            Cyan,
+            Yellow,
+            Grey,
+
+            Bright = 0x10,
+
+            BrightRed = Bright | Red,
+            BrightGreen = Bright | Green,
+            LightGrey = Bright | Grey,
+            BrightWhite = Bright | White,
+
+            // By intention
+            FileName = LightGrey,
+            Warning = Yellow,
+            ResultError = BrightRed,
+            ResultSuccess = BrightGreen,
+            ResultExpectedFailure = Warning,
+
+            Error = BrightRed,
+            Success = Green,
+
+            OriginalExpression = Cyan,
+            ReconstructedExpression = Yellow,
+
+            SecondaryText = LightGrey,
+            Headers = White
+        };
+
+        // Use constructed object for RAII guard
+        Colour( Code _colourCode );
+        Colour( Colour const& other );
+        ~Colour();
+
+        // Use static method for one-shot changes
+        static void use( Code _colourCode );
+
+    private:
+        bool m_moved;
+    };
+
+    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_reporter.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+#include <string>
+#include <ostream>
+#include <map>
+
+namespace Catch
+{
+    struct ReporterConfig {
+        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
+        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
+
+        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
+        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
+
+        std::ostream& stream() const    { return *m_stream; }
+        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
+
+    private:
+        std::ostream* m_stream;
+        Ptr<IConfig const> m_fullConfig;
+    };
+
+    struct ReporterPreferences {
+        ReporterPreferences()
+        : shouldRedirectStdOut( false )
+        {}
+
+        bool shouldRedirectStdOut;
+    };
+
+    template<typename T>
+    struct LazyStat : Option<T> {
+        LazyStat() : used( false ) {}
+        LazyStat& operator=( T const& _value ) {
+            Option<T>::operator=( _value );
+            used = false;
+            return *this;
+        }
+        void reset() {
+            Option<T>::reset();
+            used = false;
+        }
+        bool used;
+    };
+
+    struct TestRunInfo {
+        TestRunInfo( std::string const& _name ) : name( _name ) {}
+        std::string name;
+    };
+    struct GroupInfo {
+        GroupInfo(  std::string const& _name,
+                    std::size_t _groupIndex,
+                    std::size_t _groupsCount )
+        :   name( _name ),
+            groupIndex( _groupIndex ),
+            groupsCounts( _groupsCount )
+        {}
+
+        std::string name;
+        std::size_t groupIndex;
+        std::size_t groupsCounts;
+    };
+
+    struct AssertionStats {
+        AssertionStats( AssertionResult const& _assertionResult,
+                        std::vector<MessageInfo> const& _infoMessages,
+                        Totals const& _totals )
+        :   assertionResult( _assertionResult ),
+            infoMessages( _infoMessages ),
+            totals( _totals )
+        {
+            if( assertionResult.hasMessage() ) {
+                // Copy message into messages list.
+                // !TBD This should have been done earlier, somewhere
+                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
+                builder << assertionResult.getMessage();
+                builder.m_info.message = builder.m_stream.str();
+
+                infoMessages.push_back( builder.m_info );
+            }
+        }
+        virtual ~AssertionStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        AssertionStats( AssertionStats const& )              = default;
+        AssertionStats( AssertionStats && )                  = default;
+        AssertionStats& operator = ( AssertionStats const& ) = default;
+        AssertionStats& operator = ( AssertionStats && )     = default;
+#  endif
+
+        AssertionResult assertionResult;
+        std::vector<MessageInfo> infoMessages;
+        Totals totals;
+    };
+
+    struct SectionStats {
+        SectionStats(   SectionInfo const& _sectionInfo,
+                        Counts const& _assertions,
+                        double _durationInSeconds,
+                        bool _missingAssertions )
+        :   sectionInfo( _sectionInfo ),
+            assertions( _assertions ),
+            durationInSeconds( _durationInSeconds ),
+            missingAssertions( _missingAssertions )
+        {}
+        virtual ~SectionStats();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SectionStats( SectionStats const& )              = default;
+        SectionStats( SectionStats && )                  = default;
+        SectionStats& operator = ( SectionStats const& ) = default;
+        SectionStats& operator = ( SectionStats && )     = default;
+#  endif
+
+        SectionInfo sectionInfo;
+        Counts assertions;
+        double durationInSeconds;
+        bool missingAssertions;
+    };
+
+    struct TestCaseStats {
+        TestCaseStats(  TestCaseInfo const& _testInfo,
+                        Totals const& _totals,
+                        std::string const& _stdOut,
+                        std::string const& _stdErr,
+                        bool _aborting )
+        : testInfo( _testInfo ),
+            totals( _totals ),
+            stdOut( _stdOut ),
+            stdErr( _stdErr ),
+            aborting( _aborting )
+        {}
+        virtual ~TestCaseStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestCaseStats( TestCaseStats const& )              = default;
+        TestCaseStats( TestCaseStats && )                  = default;
+        TestCaseStats& operator = ( TestCaseStats const& ) = default;
+        TestCaseStats& operator = ( TestCaseStats && )     = default;
+#  endif
+
+        TestCaseInfo testInfo;
+        Totals totals;
+        std::string stdOut;
+        std::string stdErr;
+        bool aborting;
+    };
+
+    struct TestGroupStats {
+        TestGroupStats( GroupInfo const& _groupInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   groupInfo( _groupInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        TestGroupStats( GroupInfo const& _groupInfo )
+        :   groupInfo( _groupInfo ),
+            aborting( false )
+        {}
+        virtual ~TestGroupStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestGroupStats( TestGroupStats const& )              = default;
+        TestGroupStats( TestGroupStats && )                  = default;
+        TestGroupStats& operator = ( TestGroupStats const& ) = default;
+        TestGroupStats& operator = ( TestGroupStats && )     = default;
+#  endif
+
+        GroupInfo groupInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct TestRunStats {
+        TestRunStats(   TestRunInfo const& _runInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   runInfo( _runInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        virtual ~TestRunStats();
+
+#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestRunStats( TestRunStats const& _other )
+        :   runInfo( _other.runInfo ),
+            totals( _other.totals ),
+            aborting( _other.aborting )
+        {}
+#  else
+        TestRunStats( TestRunStats const& )              = default;
+        TestRunStats( TestRunStats && )                  = default;
+        TestRunStats& operator = ( TestRunStats const& ) = default;
+        TestRunStats& operator = ( TestRunStats && )     = default;
+#  endif
+
+        TestRunInfo runInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    class MultipleReporters;
+
+    struct IStreamingReporter : IShared {
+        virtual ~IStreamingReporter();
+
+        // Implementing class must also provide the following static method:
+        // static std::string getDescription();
+
+        virtual ReporterPreferences getPreferences() const = 0;
+
+        virtual void noMatchingTestCases( std::string const& spec ) = 0;
+
+        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
+
+        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
+
+        // The return value indicates if the messages buffer should be cleared:
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
+        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
+
+        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
+
+        virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
+    };
+
+    struct IReporterFactory : IShared {
+        virtual ~IReporterFactory();
+        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
+        virtual std::string getDescription() const = 0;
+    };
+
+    struct IReporterRegistry {
+        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
+        typedef std::vector<Ptr<IReporterFactory> > Listeners;
+
+        virtual ~IReporterRegistry();
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
+        virtual FactoryMap const& getFactories() const = 0;
+        virtual Listeners const& getListeners() const = 0;
+    };
+
+    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
+
+}
+
+#include <limits>
+#include <algorithm>
+
+namespace Catch {
+
+    inline std::size_t listTests( Config const& config ) {
+
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Matching test cases:\n";
+        else {
+            Catch::cout() << "All available test cases:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::size_t matchedTests = 0;
+        TextAttributes nameAttr, tagsAttr;
+        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
+        tagsAttr.setIndent( 6 );
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Colour::Code colour = testCaseInfo.isHidden()
+                ? Colour::SecondaryText
+                : Colour::None;
+            Colour colourGuard( colour );
+
+            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
+            if( !testCaseInfo.tags.empty() )
+                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
+        }
+
+        if( !config.testSpec().hasFilters() )
+            Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl;
+        else
+            Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl;
+        return matchedTests;
+    }
+
+    inline std::size_t listTestsNamesOnly( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( !config.testSpec().hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        std::size_t matchedTests = 0;
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            if( startsWith( testCaseInfo.name, '#' ) )
+               Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl;
+            else
+               Catch::cout() << testCaseInfo.name << std::endl;
+        }
+        return matchedTests;
+    }
+
+    struct TagInfo {
+        TagInfo() : count ( 0 ) {}
+        void add( std::string const& spelling ) {
+            ++count;
+            spellings.insert( spelling );
+        }
+        std::string all() const {
+            std::string out;
+            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
+                        it != itEnd;
+                        ++it )
+                out += "[" + *it + "]";
+            return out;
+        }
+        std::set<std::string> spellings;
+        std::size_t count;
+    };
+
+    inline std::size_t listTags( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Tags for matching test cases:\n";
+        else {
+            Catch::cout() << "All available tags:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::map<std::string, TagInfo> tagCounts;
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
+                                                        tagItEnd = it->getTestCaseInfo().tags.end();
+                    tagIt != tagItEnd;
+                    ++tagIt ) {
+                std::string tagName = *tagIt;
+                std::string lcaseTagName = toLower( tagName );
+                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
+                if( countIt == tagCounts.end() )
+                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
+                countIt->second.add( tagName );
+            }
+        }
+
+        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
+                                                            countItEnd = tagCounts.end();
+                countIt != countItEnd;
+                ++countIt ) {
+            std::ostringstream oss;
+            oss << "  " << std::setw(2) << countIt->second.count << "  ";
+            Text wrapper( countIt->second.all(), TextAttributes()
+                                                    .setInitialIndent( 0 )
+                                                    .setIndent( oss.str().size() )
+                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
+            Catch::cout() << oss.str() << wrapper << '\n';
+        }
+        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl;
+        return tagCounts.size();
+    }
+
+    inline std::size_t listReporters( Config const& /*config*/ ) {
+        Catch::cout() << "Available reporters:\n";
+        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
+        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
+        std::size_t maxNameLen = 0;
+        for(it = itBegin; it != itEnd; ++it )
+            maxNameLen = (std::max)( maxNameLen, it->first.size() );
+
+        for(it = itBegin; it != itEnd; ++it ) {
+            Text wrapper( it->second->getDescription(), TextAttributes()
+                                                        .setInitialIndent( 0 )
+                                                        .setIndent( 7+maxNameLen )
+                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
+            Catch::cout() << "  "
+                    << it->first
+                    << ':'
+                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
+                    << wrapper << '\n';
+        }
+        Catch::cout() << std::endl;
+        return factories.size();
+    }
+
+    inline Option<std::size_t> list( Config const& config ) {
+        Option<std::size_t> listedCount;
+        if( config.listTests() )
+            listedCount = listedCount.valueOr(0) + listTests( config );
+        if( config.listTestNamesOnly() )
+            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
+        if( config.listTags() )
+            listedCount = listedCount.valueOr(0) + listTags( config );
+        if( config.listReporters() )
+            listedCount = listedCount.valueOr(0) + listReporters( config );
+        return listedCount;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_run_context.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+// #included from: catch_test_case_tracker.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+#include <map>
+#include <string>
+#include <assert.h>
+#include <vector>
+#include <iterator>
+#include <stdexcept>
+
+namespace Catch {
+namespace TestCaseTracking {
+
+    struct NameAndLocation {
+        std::string name;
+        SourceLineInfo location;
+
+        NameAndLocation( std::string const& _name, SourceLineInfo const& _location )
+        :   name( _name ),
+            location( _location )
+        {}
+    };
+
+    struct ITracker : SharedImpl<> {
+        virtual ~ITracker();
+
+        // static queries
+        virtual NameAndLocation const& nameAndLocation() const = 0;
+
+        // dynamic queries
+        virtual bool isComplete() const = 0; // Successfully completed or failed
+        virtual bool isSuccessfullyCompleted() const = 0;
+        virtual bool isOpen() const = 0; // Started but not complete
+        virtual bool hasChildren() const = 0;
+
+        virtual ITracker& parent() = 0;
+
+        // actions
+        virtual void close() = 0; // Successfully complete
+        virtual void fail() = 0;
+        virtual void markAsNeedingAnotherRun() = 0;
+
+        virtual void addChild( Ptr<ITracker> const& child ) = 0;
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0;
+        virtual void openChild() = 0;
+
+        // Debug/ checking
+        virtual bool isSectionTracker() const = 0;
+        virtual bool isIndexTracker() const = 0;
+    };
+
+    class  TrackerContext {
+
+        enum RunState {
+            NotStarted,
+            Executing,
+            CompletedCycle
+        };
+
+        Ptr<ITracker> m_rootTracker;
+        ITracker* m_currentTracker;
+        RunState m_runState;
+
+    public:
+
+        static TrackerContext& instance() {
+            static TrackerContext s_instance;
+            return s_instance;
+        }
+
+        TrackerContext()
+        :   m_currentTracker( CATCH_NULL ),
+            m_runState( NotStarted )
+        {}
+
+        ITracker& startRun();
+
+        void endRun() {
+            m_rootTracker.reset();
+            m_currentTracker = CATCH_NULL;
+            m_runState = NotStarted;
+        }
+
+        void startCycle() {
+            m_currentTracker = m_rootTracker.get();
+            m_runState = Executing;
+        }
+        void completeCycle() {
+            m_runState = CompletedCycle;
+        }
+
+        bool completedCycle() const {
+            return m_runState == CompletedCycle;
+        }
+        ITracker& currentTracker() {
+            return *m_currentTracker;
+        }
+        void setCurrentTracker( ITracker* tracker ) {
+            m_currentTracker = tracker;
+        }
+    };
+
+    class TrackerBase : public ITracker {
+    protected:
+        enum CycleState {
+            NotStarted,
+            Executing,
+            ExecutingChildren,
+            NeedsAnotherRun,
+            CompletedSuccessfully,
+            Failed
+        };
+        class TrackerHasName {
+            NameAndLocation m_nameAndLocation;
+        public:
+            TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {}
+            bool operator ()( Ptr<ITracker> const& tracker ) {
+                return
+                    tracker->nameAndLocation().name == m_nameAndLocation.name &&
+                    tracker->nameAndLocation().location == m_nameAndLocation.location;
+            }
+        };
+        typedef std::vector<Ptr<ITracker> > Children;
+        NameAndLocation m_nameAndLocation;
+        TrackerContext& m_ctx;
+        ITracker* m_parent;
+        Children m_children;
+        CycleState m_runState;
+    public:
+        TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   m_nameAndLocation( nameAndLocation ),
+            m_ctx( ctx ),
+            m_parent( parent ),
+            m_runState( NotStarted )
+        {}
+        virtual ~TrackerBase();
+
+        virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE {
+            return m_nameAndLocation;
+        }
+        virtual bool isComplete() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully || m_runState == Failed;
+        }
+        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully;
+        }
+        virtual bool isOpen() const CATCH_OVERRIDE {
+            return m_runState != NotStarted && !isComplete();
+        }
+        virtual bool hasChildren() const CATCH_OVERRIDE {
+            return !m_children.empty();
+        }
+
+        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
+            m_children.push_back( child );
+        }
+
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE {
+            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) );
+            return( it != m_children.end() )
+                ? it->get()
+                : CATCH_NULL;
+        }
+        virtual ITracker& parent() CATCH_OVERRIDE {
+            assert( m_parent ); // Should always be non-null except for root
+            return *m_parent;
+        }
+
+        virtual void openChild() CATCH_OVERRIDE {
+            if( m_runState != ExecutingChildren ) {
+                m_runState = ExecutingChildren;
+                if( m_parent )
+                    m_parent->openChild();
+            }
+        }
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; }
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; }
+
+        void open() {
+            m_runState = Executing;
+            moveToThis();
+            if( m_parent )
+                m_parent->openChild();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+
+            // Close any still open children (e.g. generators)
+            while( &m_ctx.currentTracker() != this )
+                m_ctx.currentTracker().close();
+
+            switch( m_runState ) {
+                case NotStarted:
+                case CompletedSuccessfully:
+                case Failed:
+                    throw std::logic_error( "Illogical state" );
+
+                case NeedsAnotherRun:
+                    break;;
+
+                case Executing:
+                    m_runState = CompletedSuccessfully;
+                    break;
+                case ExecutingChildren:
+                    if( m_children.empty() || m_children.back()->isComplete() )
+                        m_runState = CompletedSuccessfully;
+                    break;
+
+                default:
+                    throw std::logic_error( "Unexpected state" );
+            }
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void fail() CATCH_OVERRIDE {
+            m_runState = Failed;
+            if( m_parent )
+                m_parent->markAsNeedingAnotherRun();
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
+            m_runState = NeedsAnotherRun;
+        }
+    private:
+        void moveToParent() {
+            assert( m_parent );
+            m_ctx.setCurrentTracker( m_parent );
+        }
+        void moveToThis() {
+            m_ctx.setCurrentTracker( this );
+        }
+    };
+
+    class SectionTracker : public TrackerBase {
+        std::vector<std::string> m_filters;
+    public:
+        SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   TrackerBase( nameAndLocation, ctx, parent )
+        {
+            if( parent ) {
+                while( !parent->isSectionTracker() )
+                    parent = &parent->parent();
+
+                SectionTracker& parentSection = static_cast<SectionTracker&>( *parent );
+                addNextFilters( parentSection.m_filters );
+            }
+        }
+        virtual ~SectionTracker();
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; }
+
+        static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) {
+            SectionTracker* section = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isSectionTracker() );
+                section = static_cast<SectionTracker*>( childTracker );
+            }
+            else {
+                section = new SectionTracker( nameAndLocation, ctx, &currentTracker );
+                currentTracker.addChild( section );
+            }
+            if( !ctx.completedCycle() )
+                section->tryOpen();
+            return *section;
+        }
+
+        void tryOpen() {
+            if( !isComplete() && (m_filters.empty() || m_filters[0].empty() ||  m_filters[0] == m_nameAndLocation.name ) )
+                open();
+        }
+
+        void addInitialFilters( std::vector<std::string> const& filters ) {
+            if( !filters.empty() ) {
+                m_filters.push_back(""); // Root - should never be consulted
+                m_filters.push_back(""); // Test Case - not a section filter
+                std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) );
+            }
+        }
+        void addNextFilters( std::vector<std::string> const& filters ) {
+            if( filters.size() > 1 )
+                std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) );
+        }
+    };
+
+    class IndexTracker : public TrackerBase {
+        int m_size;
+        int m_index;
+    public:
+        IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size )
+        :   TrackerBase( nameAndLocation, ctx, parent ),
+            m_size( size ),
+            m_index( -1 )
+        {}
+        virtual ~IndexTracker();
+
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; }
+
+        static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) {
+            IndexTracker* tracker = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isIndexTracker() );
+                tracker = static_cast<IndexTracker*>( childTracker );
+            }
+            else {
+                tracker = new IndexTracker( nameAndLocation, ctx, &currentTracker, size );
+                currentTracker.addChild( tracker );
+            }
+
+            if( !ctx.completedCycle() && !tracker->isComplete() ) {
+                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
+                    tracker->moveNext();
+                tracker->open();
+            }
+
+            return *tracker;
+        }
+
+        int index() const { return m_index; }
+
+        void moveNext() {
+            m_index++;
+            m_children.clear();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+            TrackerBase::close();
+            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
+                m_runState = Executing;
+        }
+    };
+
+    inline ITracker& TrackerContext::startRun() {
+        m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL );
+        m_currentTracker = CATCH_NULL;
+        m_runState = Executing;
+        return *m_rootTracker;
+    }
+
+} // namespace TestCaseTracking
+
+using TestCaseTracking::ITracker;
+using TestCaseTracking::TrackerContext;
+using TestCaseTracking::SectionTracker;
+using TestCaseTracking::IndexTracker;
+
+} // namespace Catch
+
+// #included from: catch_fatal_condition.hpp
+#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+namespace Catch {
+
+    // Report the error condition
+    inline void reportFatal( std::string const& message ) {
+        IContext& context = Catch::getCurrentContext();
+        IResultCapture* resultCapture = context.getResultCapture();
+        resultCapture->handleFatalErrorCondition( message );
+    }
+
+} // namespace Catch
+
+#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
+// #included from: catch_windows_h_proxy.h
+
+#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  define NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  define WIN32_LEAN_AND_MEAN
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  undef NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  undef WIN32_LEAN_AND_MEAN
+#endif
+
+
+#  if !defined ( CATCH_CONFIG_WINDOWS_SEH )
+
+namespace Catch {
+    struct FatalConditionHandler {
+        void reset() {}
+    };
+}
+
+#  else // CATCH_CONFIG_WINDOWS_SEH is defined
+
+namespace Catch {
+
+    struct SignalDefs { DWORD id; const char* name; };
+    extern SignalDefs signalDefs[];
+    // There is no 1-1 mapping between signals and windows exceptions.
+    // Windows can easily distinguish between SO and SigSegV,
+    // but SigInt, SigTerm, etc are handled differently.
+    SignalDefs signalDefs[] = {
+        { EXCEPTION_ILLEGAL_INSTRUCTION,  "SIGILL - Illegal instruction signal" },
+        { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" },
+        { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" },
+        { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" },
+    };
+
+    struct FatalConditionHandler {
+
+        static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
+            for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) {
+                    reset();
+                    reportFatal(signalDefs[i].name);
+                }
+            }
+            // If its not an exception we care about, pass it along.
+            // This stops us from eating debugger breaks etc.
+            return EXCEPTION_CONTINUE_SEARCH;
+        }
+
+        FatalConditionHandler() {
+            isSet = true;
+            // 32k seems enough for Catch to handle stack overflow,
+            // but the value was found experimentally, so there is no strong guarantee
+            guaranteeSize = 32 * 1024;
+            exceptionHandlerHandle = CATCH_NULL;
+            // Register as first handler in current chain
+            exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
+            // Pass in guarantee size to be filled
+            SetThreadStackGuarantee(&guaranteeSize);
+        }
+
+        static void reset() {
+            if (isSet) {
+                // Unregister handler and restore the old guarantee
+                RemoveVectoredExceptionHandler(exceptionHandlerHandle);
+                SetThreadStackGuarantee(&guaranteeSize);
+                exceptionHandlerHandle = CATCH_NULL;
+                isSet = false;
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+    private:
+        static bool isSet;
+        static ULONG guaranteeSize;
+        static PVOID exceptionHandlerHandle;
+    };
+
+    bool FatalConditionHandler::isSet = false;
+    ULONG FatalConditionHandler::guaranteeSize = 0;
+    PVOID FatalConditionHandler::exceptionHandlerHandle = CATCH_NULL;
+
+} // namespace Catch
+
+#  endif // CATCH_CONFIG_WINDOWS_SEH
+
+#else // Not Windows - assumed to be POSIX compatible //////////////////////////
+
+#include <signal.h>
+
+namespace Catch {
+
+    struct SignalDefs {
+        int id;
+        const char* name;
+    };
+    extern SignalDefs signalDefs[];
+    SignalDefs signalDefs[] = {
+            { SIGINT,  "SIGINT - Terminal interrupt signal" },
+            { SIGILL,  "SIGILL - Illegal instruction signal" },
+            { SIGFPE,  "SIGFPE - Floating point error signal" },
+            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
+            { SIGTERM, "SIGTERM - Termination request signal" },
+            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
+    };
+
+    struct FatalConditionHandler {
+
+        static bool isSet;
+        static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
+        static stack_t oldSigStack;
+        static char altStackMem[SIGSTKSZ];
+
+        static void handleSignal( int sig ) {
+            std::string name = "<unknown signal>";
+            for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                SignalDefs &def = signalDefs[i];
+                if (sig == def.id) {
+                    name = def.name;
+                    break;
+                }
+            }
+            reset();
+            reportFatal(name);
+            raise( sig );
+        }
+
+        FatalConditionHandler() {
+            isSet = true;
+            stack_t sigStack;
+            sigStack.ss_sp = altStackMem;
+            sigStack.ss_size = SIGSTKSZ;
+            sigStack.ss_flags = 0;
+            sigaltstack(&sigStack, &oldSigStack);
+            struct sigaction sa = { 0 };
+
+            sa.sa_handler = handleSignal;
+            sa.sa_flags = SA_ONSTACK;
+            for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) {
+                sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+        static void reset() {
+            if( isSet ) {
+                // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
+                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) {
+                    sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL);
+                }
+                // Return the old stack
+                sigaltstack(&oldSigStack, CATCH_NULL);
+                isSet = false;
+            }
+        }
+    };
+
+    bool FatalConditionHandler::isSet = false;
+    struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
+    stack_t FatalConditionHandler::oldSigStack = {};
+    char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
+
+} // namespace Catch
+
+#endif // not Windows
+
+#include <set>
+#include <string>
+
+namespace Catch {
+
+    class StreamRedirect {
+
+    public:
+        StreamRedirect( std::ostream& stream, std::string& targetString )
+        :   m_stream( stream ),
+            m_prevBuf( stream.rdbuf() ),
+            m_targetString( targetString )
+        {
+            stream.rdbuf( m_oss.rdbuf() );
+        }
+
+        ~StreamRedirect() {
+            m_targetString += m_oss.str();
+            m_stream.rdbuf( m_prevBuf );
+        }
+
+    private:
+        std::ostream& m_stream;
+        std::streambuf* m_prevBuf;
+        std::ostringstream m_oss;
+        std::string& m_targetString;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class RunContext : public IResultCapture, public IRunner {
+
+        RunContext( RunContext const& );
+        void operator =( RunContext const& );
+
+    public:
+
+        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
+        :   m_runInfo( _config->name() ),
+            m_context( getCurrentMutableContext() ),
+            m_activeTestCase( CATCH_NULL ),
+            m_config( _config ),
+            m_reporter( reporter )
+        {
+            m_context.setRunner( this );
+            m_context.setConfig( m_config );
+            m_context.setResultCapture( this );
+            m_reporter->testRunStarting( m_runInfo );
+        }
+
+        virtual ~RunContext() {
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
+        }
+
+        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
+        }
+        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
+        }
+
+        Totals runTest( TestCase const& testCase ) {
+            Totals prevTotals = m_totals;
+
+            std::string redirectedCout;
+            std::string redirectedCerr;
+
+            TestCaseInfo testInfo = testCase.getTestCaseInfo();
+
+            m_reporter->testCaseStarting( testInfo );
+
+            m_activeTestCase = &testCase;
+
+            do {
+                ITracker& rootTracker = m_trackerContext.startRun();
+                assert( rootTracker.isSectionTracker() );
+                static_cast<SectionTracker&>( rootTracker ).addInitialFilters( m_config->getSectionsToRun() );
+                do {
+                    m_trackerContext.startCycle();
+                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) );
+                    runCurrentTest( redirectedCout, redirectedCerr );
+                }
+                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
+            }
+            // !TBD: deprecated - this will be replaced by indexed trackers
+            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
+
+            Totals deltaTotals = m_totals.delta( prevTotals );
+            if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) {
+                deltaTotals.assertions.failed++;
+                deltaTotals.testCases.passed--;
+                deltaTotals.testCases.failed++;
+            }
+            m_totals.testCases += deltaTotals.testCases;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        redirectedCout,
+                                                        redirectedCerr,
+                                                        aborting() ) );
+
+            m_activeTestCase = CATCH_NULL;
+            m_testCaseTracker = CATCH_NULL;
+
+            return deltaTotals;
+        }
+
+        Ptr<IConfig const> config() const {
+            return m_config;
+        }
+
+    private: // IResultCapture
+
+        virtual void assertionEnded( AssertionResult const& result ) {
+            if( result.getResultType() == ResultWas::Ok ) {
+                m_totals.assertions.passed++;
+            }
+            else if( !result.isOk() ) {
+                m_totals.assertions.failed++;
+            }
+
+            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
+                m_messages.clear();
+
+            // Reset working state
+            m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
+            m_lastResult = result;
+        }
+
+        virtual bool sectionStarted (
+            SectionInfo const& sectionInfo,
+            Counts& assertions
+        )
+        {
+            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) );
+            if( !sectionTracker.isOpen() )
+                return false;
+            m_activeSections.push_back( &sectionTracker );
+
+            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
+
+            m_reporter->sectionStarting( sectionInfo );
+
+            assertions = m_totals.assertions;
+
+            return true;
+        }
+        bool testForMissingAssertions( Counts& assertions ) {
+            if( assertions.total() != 0 )
+                return false;
+            if( !m_config->warnAboutMissingAssertions() )
+                return false;
+            if( m_trackerContext.currentTracker().hasChildren() )
+                return false;
+            m_totals.assertions.failed++;
+            assertions.failed++;
+            return true;
+        }
+
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
+            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( !m_activeSections.empty() ) {
+                m_activeSections.back()->close();
+                m_activeSections.pop_back();
+            }
+
+            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
+            m_messages.clear();
+        }
+
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
+            if( m_unfinishedSections.empty() )
+                m_activeSections.back()->fail();
+            else
+                m_activeSections.back()->close();
+            m_activeSections.pop_back();
+
+            m_unfinishedSections.push_back( endInfo );
+        }
+
+        virtual void pushScopedMessage( MessageInfo const& message ) {
+            m_messages.push_back( message );
+        }
+
+        virtual void popScopedMessage( MessageInfo const& message ) {
+            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
+        }
+
+        virtual std::string getCurrentTestName() const {
+            return m_activeTestCase
+                ? m_activeTestCase->getTestCaseInfo().name
+                : std::string();
+        }
+
+        virtual const AssertionResult* getLastResult() const {
+            return &m_lastResult;
+        }
+
+        virtual void handleFatalErrorCondition( std::string const& message ) {
+            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
+            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
+            resultBuilder << message;
+            resultBuilder.captureExpression();
+
+            handleUnfinishedSections();
+
+            // Recreate section for test case (as we will lose the one that was in scope)
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+
+            Counts assertions;
+            assertions.failed = 1;
+            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
+            m_reporter->sectionEnded( testCaseSectionStats );
+
+            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
+
+            Totals deltaTotals;
+            deltaTotals.testCases.failed = 1;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        std::string(),
+                                                        std::string(),
+                                                        false ) );
+            m_totals.testCases.failed++;
+            testGroupEnded( std::string(), m_totals, 1, 1 );
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
+        }
+
+    public:
+        // !TBD We need to do this another way!
+        bool aborting() const {
+            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
+        }
+
+    private:
+
+        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+            m_reporter->sectionStarting( testCaseSection );
+            Counts prevAssertions = m_totals.assertions;
+            double duration = 0;
+            try {
+                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal );
+
+                seedRng( *m_config );
+
+                Timer timer;
+                timer.start();
+                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
+                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
+                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
+                    invokeActiveTestCase();
+                }
+                else {
+                    invokeActiveTestCase();
+                }
+                duration = timer.getElapsedSeconds();
+            }
+            catch( TestFailureException& ) {
+                // This just means the test was aborted due to failure
+            }
+            catch(...) {
+                makeUnexpectedResultBuilder().useActiveException();
+            }
+            m_testCaseTracker->close();
+            handleUnfinishedSections();
+            m_messages.clear();
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( testCaseInfo.okToFail() ) {
+                std::swap( assertions.failedButOk, assertions.failed );
+                m_totals.assertions.failed -= assertions.failedButOk;
+                m_totals.assertions.failedButOk += assertions.failedButOk;
+            }
+
+            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
+            m_reporter->sectionEnded( testCaseSectionStats );
+        }
+
+        void invokeActiveTestCase() {
+            FatalConditionHandler fatalConditionHandler; // Handle signals
+            m_activeTestCase->invoke();
+            fatalConditionHandler.reset();
+        }
+
+    private:
+
+        ResultBuilder makeUnexpectedResultBuilder() const {
+            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
+                                    m_lastAssertionInfo.lineInfo,
+                                    m_lastAssertionInfo.capturedExpression.c_str(),
+                                    m_lastAssertionInfo.resultDisposition );
+        }
+
+        void handleUnfinishedSections() {
+            // If sections ended prematurely due to an exception we stored their
+            // infos here so we can tear them down outside the unwind process.
+            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
+                        itEnd = m_unfinishedSections.rend();
+                    it != itEnd;
+                    ++it )
+                sectionEnded( *it );
+            m_unfinishedSections.clear();
+        }
+
+        TestRunInfo m_runInfo;
+        IMutableContext& m_context;
+        TestCase const* m_activeTestCase;
+        ITracker* m_testCaseTracker;
+        ITracker* m_currentSectionTracker;
+        AssertionResult m_lastResult;
+
+        Ptr<IConfig const> m_config;
+        Totals m_totals;
+        Ptr<IStreamingReporter> m_reporter;
+        std::vector<MessageInfo> m_messages;
+        AssertionInfo m_lastAssertionInfo;
+        std::vector<SectionEndInfo> m_unfinishedSections;
+        std::vector<ITracker*> m_activeSections;
+        TrackerContext m_trackerContext;
+    };
+
+    IResultCapture& getResultCapture() {
+        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
+            return *capture;
+        else
+            throw std::logic_error( "No result capture instance" );
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_version.h
+#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+namespace Catch {
+
+    // Versioning information
+    struct Version {
+        Version(    unsigned int _majorVersion,
+                    unsigned int _minorVersion,
+                    unsigned int _patchNumber,
+                    std::string const& _branchName,
+                    unsigned int _buildNumber );
+
+        unsigned int const majorVersion;
+        unsigned int const minorVersion;
+        unsigned int const patchNumber;
+
+        // buildNumber is only used if branchName is not null
+        std::string const branchName;
+        unsigned int const buildNumber;
+
+        friend std::ostream& operator << ( std::ostream& os, Version const& version );
+
+    private:
+        void operator=( Version const& );
+    };
+
+    extern Version libraryVersion;
+}
+
+#include <fstream>
+#include <stdlib.h>
+#include <limits>
+
+namespace Catch {
+
+    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
+        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
+        if( !reporter ) {
+            std::ostringstream oss;
+            oss << "No reporter registered with name: '" << reporterName << "'";
+            throw std::domain_error( oss.str() );
+        }
+        return reporter;
+    }
+
+    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
+        std::vector<std::string> reporters = config->getReporterNames();
+        if( reporters.empty() )
+            reporters.push_back( "console" );
+
+        Ptr<IStreamingReporter> reporter;
+        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
+                it != itEnd;
+                ++it )
+            reporter = addReporter( reporter, createReporter( *it, config ) );
+        return reporter;
+    }
+    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
+        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
+        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
+                it != itEnd;
+                ++it )
+            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
+        return reporters;
+    }
+
+    Totals runTests( Ptr<Config> const& config ) {
+
+        Ptr<IConfig const> iconfig = config.get();
+
+        Ptr<IStreamingReporter> reporter = makeReporter( config );
+        reporter = addListeners( iconfig, reporter );
+
+        RunContext context( iconfig, reporter );
+
+        Totals totals;
+
+        context.testGroupStarting( config->name(), 1, 1 );
+
+        TestSpec testSpec = config->testSpec();
+        if( !testSpec.hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+
+        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
+        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
+                it != itEnd;
+                ++it ) {
+            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
+                totals += context.runTest( *it );
+            else
+                reporter->skipTest( *it );
+        }
+
+        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
+        return totals;
+    }
+
+    void applyFilenamesAsTags( IConfig const& config ) {
+        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
+        for(std::size_t i = 0; i < tests.size(); ++i ) {
+            TestCase& test = const_cast<TestCase&>( tests[i] );
+            std::set<std::string> tags = test.tags;
+
+            std::string filename = test.lineInfo.file;
+            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
+            if( lastSlash != std::string::npos )
+                filename = filename.substr( lastSlash+1 );
+
+            std::string::size_type lastDot = filename.find_last_of( "." );
+            if( lastDot != std::string::npos )
+                filename = filename.substr( 0, lastDot );
+
+            tags.insert( "#" + filename );
+            setTags( test, tags );
+        }
+    }
+
+    class Session : NonCopyable {
+        static bool alreadyInstantiated;
+
+    public:
+
+        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
+
+        Session()
+        : m_cli( makeCommandLineParser() ) {
+            if( alreadyInstantiated ) {
+                std::string msg = "Only one instance of Catch::Session can ever be used";
+                Catch::cerr() << msg << std::endl;
+                throw std::logic_error( msg );
+            }
+            alreadyInstantiated = true;
+        }
+        ~Session() {
+            Catch::cleanUp();
+        }
+
+        void showHelp( std::string const& processName ) {
+            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
+
+            m_cli.usage( Catch::cout(), processName );
+            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
+        }
+
+        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
+            try {
+                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
+                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
+                if( m_configData.showHelp )
+                    showHelp( m_configData.processName );
+                m_config.reset();
+            }
+            catch( std::exception& ex ) {
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()
+                        << "\nError(s) in input:\n"
+                        << Text( ex.what(), TextAttributes().setIndent(2) )
+                        << "\n\n";
+                }
+                m_cli.usage( Catch::cout(), m_configData.processName );
+                return (std::numeric_limits<int>::max)();
+            }
+            return 0;
+        }
+
+        void useConfigData( ConfigData const& _configData ) {
+            m_configData = _configData;
+            m_config.reset();
+        }
+
+        int run( int argc, char const* const* const argv ) {
+
+            int returnCode = applyCommandLine( argc, argv );
+            if( returnCode == 0 )
+                returnCode = run();
+            return returnCode;
+        }
+
+        int run() {
+            if( m_configData.showHelp )
+                return 0;
+
+            try
+            {
+                config(); // Force config to be constructed
+
+                seedRng( *m_config );
+
+                if( m_configData.filenamesAsTags )
+                    applyFilenamesAsTags( *m_config );
+
+                // Handle list request
+                if( Option<std::size_t> listed = list( config() ) )
+                    return static_cast<int>( *listed );
+
+                return static_cast<int>( runTests( m_config ).assertions.failed );
+            }
+            catch( std::exception& ex ) {
+                Catch::cerr() << ex.what() << std::endl;
+                return (std::numeric_limits<int>::max)();
+            }
+        }
+
+        Clara::CommandLine<ConfigData> const& cli() const {
+            return m_cli;
+        }
+        std::vector<Clara::Parser::Token> const& unusedTokens() const {
+            return m_unusedTokens;
+        }
+        ConfigData& configData() {
+            return m_configData;
+        }
+        Config& config() {
+            if( !m_config )
+                m_config = new Config( m_configData );
+            return *m_config;
+        }
+    private:
+        Clara::CommandLine<ConfigData> m_cli;
+        std::vector<Clara::Parser::Token> m_unusedTokens;
+        ConfigData m_configData;
+        Ptr<Config> m_config;
+    };
+
+    bool Session::alreadyInstantiated = false;
+
+} // end namespace Catch
+
+// #included from: catch_registry_hub.hpp
+#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+// #included from: catch_test_case_registry_impl.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <set>
+#include <sstream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct RandomNumberGenerator {
+        typedef std::ptrdiff_t result_type;
+
+        result_type operator()( result_type n ) const { return std::rand() % n; }
+
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+        static constexpr result_type min() { return 0; }
+        static constexpr result_type max() { return 1000000; }
+        result_type operator()() const { return std::rand() % max(); }
+#endif
+        template<typename V>
+        static void shuffle( V& vector ) {
+            RandomNumberGenerator rng;
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+            std::shuffle( vector.begin(), vector.end(), rng );
+#else
+            std::random_shuffle( vector.begin(), vector.end(), rng );
+#endif
+        }
+    };
+
+    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
+
+        std::vector<TestCase> sorted = unsortedTestCases;
+
+        switch( config.runOrder() ) {
+            case RunTests::InLexicographicalOrder:
+                std::sort( sorted.begin(), sorted.end() );
+                break;
+            case RunTests::InRandomOrder:
+                {
+                    seedRng( config );
+                    RandomNumberGenerator::shuffle( sorted );
+                }
+                break;
+            case RunTests::InDeclarationOrder:
+                // already in declaration order
+                break;
+        }
+        return sorted;
+    }
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
+        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
+    }
+
+    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
+        std::set<TestCase> seenFunctions;
+        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
+            it != itEnd;
+            ++it ) {
+            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
+            if( !prev.second ) {
+                std::ostringstream ss;
+
+                ss  << Colour( Colour::Red )
+                    << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
+                    << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n'
+                    << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
+
+                throw std::runtime_error(ss.str());
+            }
+        }
+    }
+
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
+        std::vector<TestCase> filtered;
+        filtered.reserve( testCases.size() );
+        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+                it != itEnd;
+                ++it )
+            if( matchTest( *it, testSpec, config ) )
+                filtered.push_back( *it );
+        return filtered;
+    }
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
+        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
+    }
+
+    class TestRegistry : public ITestCaseRegistry {
+    public:
+        TestRegistry()
+        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
+            m_unnamedCount( 0 )
+        {}
+        virtual ~TestRegistry();
+
+        virtual void registerTest( TestCase const& testCase ) {
+            std::string name = testCase.getTestCaseInfo().name;
+            if( name.empty() ) {
+                std::ostringstream oss;
+                oss << "Anonymous test case " << ++m_unnamedCount;
+                return registerTest( testCase.withName( oss.str() ) );
+            }
+            m_functions.push_back( testCase );
+        }
+
+        virtual std::vector<TestCase> const& getAllTests() const {
+            return m_functions;
+        }
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
+            if( m_sortedFunctions.empty() )
+                enforceNoDuplicateTestCases( m_functions );
+
+            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
+                m_sortedFunctions = sortTests( config, m_functions );
+                m_currentSortOrder = config.runOrder();
+            }
+            return m_sortedFunctions;
+        }
+
+    private:
+        std::vector<TestCase> m_functions;
+        mutable RunTests::InWhatOrder m_currentSortOrder;
+        mutable std::vector<TestCase> m_sortedFunctions;
+        size_t m_unnamedCount;
+        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
+    public:
+
+        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
+
+        virtual void invoke() const {
+            m_fun();
+        }
+
+    private:
+        virtual ~FreeFunctionTestCase();
+
+        TestFunction m_fun;
+    };
+
+    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
+        std::string className = classOrQualifiedMethodName;
+        if( startsWith( className, '&' ) )
+        {
+            std::size_t lastColons = className.rfind( "::" );
+            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
+            if( penultimateColons == std::string::npos )
+                penultimateColons = 1;
+            className = className.substr( penultimateColons, lastColons-penultimateColons );
+        }
+        return className;
+    }
+
+    void registerTestCase
+        (   ITestCase* testCase,
+            char const* classOrQualifiedMethodName,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        getMutableRegistryHub().registerTest
+            ( makeTestCase
+                (   testCase,
+                    extractClassName( classOrQualifiedMethodName ),
+                    nameAndDesc.name,
+                    nameAndDesc.description,
+                    lineInfo ) );
+    }
+    void registerTestCaseFunction
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    AutoReg::AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCaseFunction( function, lineInfo, nameAndDesc );
+    }
+
+    AutoReg::~AutoReg() {}
+
+} // end namespace Catch
+
+// #included from: catch_reporter_registry.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class ReporterRegistry : public IReporterRegistry {
+
+    public:
+
+        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
+
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
+            FactoryMap::const_iterator it =  m_factories.find( name );
+            if( it == m_factories.end() )
+                return CATCH_NULL;
+            return it->second->create( ReporterConfig( config ) );
+        }
+
+        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
+            m_factories.insert( std::make_pair( name, factory ) );
+        }
+        void registerListener( Ptr<IReporterFactory> const& factory ) {
+            m_listeners.push_back( factory );
+        }
+
+        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
+            return m_factories;
+        }
+        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
+            return m_listeners;
+        }
+
+    private:
+        FactoryMap m_factories;
+        Listeners m_listeners;
+    };
+}
+
+// #included from: catch_exception_translator_registry.hpp
+#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+#ifdef __OBJC__
+#import "Foundation/Foundation.h"
+#endif
+
+namespace Catch {
+
+    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
+    public:
+        ~ExceptionTranslatorRegistry() {
+            deleteAll( m_translators );
+        }
+
+        virtual void registerTranslator( const IExceptionTranslator* translator ) {
+            m_translators.push_back( translator );
+        }
+
+        virtual std::string translateActiveException() const {
+            try {
+#ifdef __OBJC__
+                // In Objective-C try objective-c exceptions first
+                @try {
+                    return tryTranslators();
+                }
+                @catch (NSException *exception) {
+                    return Catch::toString( [exception description] );
+                }
+#else
+                return tryTranslators();
+#endif
+            }
+            catch( TestFailureException& ) {
+                throw;
+            }
+            catch( std::exception& ex ) {
+                return ex.what();
+            }
+            catch( std::string& msg ) {
+                return msg;
+            }
+            catch( const char* msg ) {
+                return msg;
+            }
+            catch(...) {
+                return "Unknown exception";
+            }
+        }
+
+        std::string tryTranslators() const {
+            if( m_translators.empty() )
+                throw;
+            else
+                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
+        }
+
+    private:
+        std::vector<const IExceptionTranslator*> m_translators;
+    };
+}
+
+namespace Catch {
+
+    namespace {
+
+        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
+
+            RegistryHub( RegistryHub const& );
+            void operator=( RegistryHub const& );
+
+        public: // IRegistryHub
+            RegistryHub() {
+            }
+            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
+                return m_reporterRegistry;
+            }
+            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
+                return m_testCaseRegistry;
+            }
+            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
+                return m_exceptionTranslatorRegistry;
+            }
+
+        public: // IMutableRegistryHub
+            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerReporter( name, factory );
+            }
+            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerListener( factory );
+            }
+            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
+                m_testCaseRegistry.registerTest( testInfo );
+            }
+            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
+                m_exceptionTranslatorRegistry.registerTranslator( translator );
+            }
+
+        private:
+            TestRegistry m_testCaseRegistry;
+            ReporterRegistry m_reporterRegistry;
+            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
+        };
+
+        // Single, global, instance
+        inline RegistryHub*& getTheRegistryHub() {
+            static RegistryHub* theRegistryHub = CATCH_NULL;
+            if( !theRegistryHub )
+                theRegistryHub = new RegistryHub();
+            return theRegistryHub;
+        }
+    }
+
+    IRegistryHub& getRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    IMutableRegistryHub& getMutableRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    void cleanUp() {
+        delete getTheRegistryHub();
+        getTheRegistryHub() = CATCH_NULL;
+        cleanUpContext();
+    }
+    std::string translateActiveException() {
+        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_notimplemented_exception.hpp
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+#include <sstream>
+
+namespace Catch {
+
+    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
+    :   m_lineInfo( lineInfo ) {
+        std::ostringstream oss;
+        oss << lineInfo << ": function ";
+        oss << "not implemented";
+        m_what = oss.str();
+    }
+
+    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
+        return m_what.c_str();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_context_impl.hpp
+#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+// #included from: catch_stream.hpp
+#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+
+namespace Catch {
+
+    template<typename WriterF, size_t bufferSize=256>
+    class StreamBufImpl : public StreamBufBase {
+        char data[bufferSize];
+        WriterF m_writer;
+
+    public:
+        StreamBufImpl() {
+            setp( data, data + sizeof(data) );
+        }
+
+        ~StreamBufImpl() CATCH_NOEXCEPT {
+            sync();
+        }
+
+    private:
+        int overflow( int c ) {
+            sync();
+
+            if( c != EOF ) {
+                if( pbase() == epptr() )
+                    m_writer( std::string( 1, static_cast<char>( c ) ) );
+                else
+                    sputc( static_cast<char>( c ) );
+            }
+            return 0;
+        }
+
+        int sync() {
+            if( pbase() != pptr() ) {
+                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
+                setp( pbase(), epptr() );
+            }
+            return 0;
+        }
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    FileStream::FileStream( std::string const& filename ) {
+        m_ofs.open( filename.c_str() );
+        if( m_ofs.fail() ) {
+            std::ostringstream oss;
+            oss << "Unable to open file: '" << filename << '\'';
+            throw std::domain_error( oss.str() );
+        }
+    }
+
+    std::ostream& FileStream::stream() const {
+        return m_ofs;
+    }
+
+    struct OutputDebugWriter {
+
+        void operator()( std::string const&str ) {
+            writeToDebugConsole( str );
+        }
+    };
+
+    DebugOutStream::DebugOutStream()
+    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
+        m_os( m_streamBuf.get() )
+    {}
+
+    std::ostream& DebugOutStream::stream() const {
+        return m_os;
+    }
+
+    // Store the streambuf from cout up-front because
+    // cout may get redirected when running tests
+    CoutStream::CoutStream()
+    :   m_os( Catch::cout().rdbuf() )
+    {}
+
+    std::ostream& CoutStream::stream() const {
+        return m_os;
+    }
+
+#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
+    std::ostream& cout() {
+        return std::cout;
+    }
+    std::ostream& cerr() {
+        return std::cerr;
+    }
+#endif
+}
+
+namespace Catch {
+
+    class Context : public IMutableContext {
+
+        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
+        Context( Context const& );
+        void operator=( Context const& );
+
+    public:
+        virtual ~Context() {
+            deleteAllValues( m_generatorsByTestName );
+        }
+
+    public: // IContext
+        virtual IResultCapture* getResultCapture() {
+            return m_resultCapture;
+        }
+        virtual IRunner* getRunner() {
+            return m_runner;
+        }
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
+            return getGeneratorsForCurrentTest()
+            .getGeneratorInfo( fileInfo, totalSize )
+            .getCurrentIndex();
+        }
+        virtual bool advanceGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            return generators && generators->moveNext();
+        }
+
+        virtual Ptr<IConfig const> getConfig() const {
+            return m_config;
+        }
+
+    public: // IMutableContext
+        virtual void setResultCapture( IResultCapture* resultCapture ) {
+            m_resultCapture = resultCapture;
+        }
+        virtual void setRunner( IRunner* runner ) {
+            m_runner = runner;
+        }
+        virtual void setConfig( Ptr<IConfig const> const& config ) {
+            m_config = config;
+        }
+
+        friend IMutableContext& getCurrentMutableContext();
+
+    private:
+        IGeneratorsForTest* findGeneratorsForCurrentTest() {
+            std::string testName = getResultCapture()->getCurrentTestName();
+
+            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
+                m_generatorsByTestName.find( testName );
+            return it != m_generatorsByTestName.end()
+                ? it->second
+                : CATCH_NULL;
+        }
+
+        IGeneratorsForTest& getGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            if( !generators ) {
+                std::string testName = getResultCapture()->getCurrentTestName();
+                generators = createGeneratorsForTest();
+                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
+            }
+            return *generators;
+        }
+
+    private:
+        Ptr<IConfig const> m_config;
+        IRunner* m_runner;
+        IResultCapture* m_resultCapture;
+        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
+    };
+
+    namespace {
+        Context* currentContext = CATCH_NULL;
+    }
+    IMutableContext& getCurrentMutableContext() {
+        if( !currentContext )
+            currentContext = new Context();
+        return *currentContext;
+    }
+    IContext& getCurrentContext() {
+        return getCurrentMutableContext();
+    }
+
+    void cleanUpContext() {
+        delete currentContext;
+        currentContext = CATCH_NULL;
+    }
+}
+
+// #included from: catch_console_colour_impl.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+namespace Catch {
+    namespace {
+
+        struct IColourImpl {
+            virtual ~IColourImpl() {}
+            virtual void use( Colour::Code _colourCode ) = 0;
+        };
+
+        struct NoColourImpl : IColourImpl {
+            void use( Colour::Code ) {}
+
+            static IColourImpl* instance() {
+                static NoColourImpl s_instance;
+                return &s_instance;
+            }
+        };
+
+    } // anon namespace
+} // namespace Catch
+
+#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
+#   ifdef CATCH_PLATFORM_WINDOWS
+#       define CATCH_CONFIG_COLOUR_WINDOWS
+#   else
+#       define CATCH_CONFIG_COLOUR_ANSI
+#   endif
+#endif
+
+#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
+
+namespace Catch {
+namespace {
+
+    class Win32ColourImpl : public IColourImpl {
+    public:
+        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
+        {
+            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
+            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
+            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
+            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
+        }
+
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
+                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
+                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
+                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
+                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
+                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
+                case Colour::Grey:      return setTextAttribute( 0 );
+
+                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
+                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
+                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
+                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+
+    private:
+        void setTextAttribute( WORD _textAttribute ) {
+            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
+        }
+        HANDLE stdoutHandle;
+        WORD originalForegroundAttributes;
+        WORD originalBackgroundAttributes;
+    };
+
+    IColourImpl* platformColourInstance() {
+        static Win32ColourImpl s_instance;
+
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = !isDebuggerActive()
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? &s_instance
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
+
+#include <unistd.h>
+
+namespace Catch {
+namespace {
+
+    // use POSIX/ ANSI console terminal codes
+    // Thanks to Adam Strzelecki for original contribution
+    // (http://github.com/nanoant)
+    // https://github.com/philsquared/Catch/pull/131
+    class PosixColourImpl : public IColourImpl {
+    public:
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:
+                case Colour::White:     return setColour( "[0m" );
+                case Colour::Red:       return setColour( "[0;31m" );
+                case Colour::Green:     return setColour( "[0;32m" );
+                case Colour::Blue:      return setColour( "[0;34m" );
+                case Colour::Cyan:      return setColour( "[0;36m" );
+                case Colour::Yellow:    return setColour( "[0;33m" );
+                case Colour::Grey:      return setColour( "[1;30m" );
+
+                case Colour::LightGrey:     return setColour( "[0;37m" );
+                case Colour::BrightRed:     return setColour( "[1;31m" );
+                case Colour::BrightGreen:   return setColour( "[1;32m" );
+                case Colour::BrightWhite:   return setColour( "[1;37m" );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+        static IColourImpl* instance() {
+            static PosixColourImpl s_instance;
+            return &s_instance;
+        }
+
+    private:
+        void setColour( const char* _escapeCode ) {
+            Catch::cout() << '\033' << _escapeCode;
+        }
+    };
+
+    IColourImpl* platformColourInstance() {
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) )
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? PosixColourImpl::instance()
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#else  // not Windows or ANSI ///////////////////////////////////////////////
+
+namespace Catch {
+
+    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
+
+} // end namespace Catch
+
+#endif // Windows/ ANSI/ None
+
+namespace Catch {
+
+    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
+    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
+    Colour::~Colour(){ if( !m_moved ) use( None ); }
+
+    void Colour::use( Code _colourCode ) {
+        static IColourImpl* impl = platformColourInstance();
+        impl->use( _colourCode );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_generators_impl.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <string>
+#include <map>
+
+namespace Catch {
+
+    struct GeneratorInfo : IGeneratorInfo {
+
+        GeneratorInfo( std::size_t size )
+        :   m_size( size ),
+            m_currentIndex( 0 )
+        {}
+
+        bool moveNext() {
+            if( ++m_currentIndex == m_size ) {
+                m_currentIndex = 0;
+                return false;
+            }
+            return true;
+        }
+
+        std::size_t getCurrentIndex() const {
+            return m_currentIndex;
+        }
+
+        std::size_t m_size;
+        std::size_t m_currentIndex;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class GeneratorsForTest : public IGeneratorsForTest {
+
+    public:
+        ~GeneratorsForTest() {
+            deleteAll( m_generatorsInOrder );
+        }
+
+        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
+            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
+            if( it == m_generatorsByName.end() ) {
+                IGeneratorInfo* info = new GeneratorInfo( size );
+                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
+                m_generatorsInOrder.push_back( info );
+                return *info;
+            }
+            return *it->second;
+        }
+
+        bool moveNext() {
+            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
+            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
+            for(; it != itEnd; ++it ) {
+                if( (*it)->moveNext() )
+                    return true;
+            }
+            return false;
+        }
+
+    private:
+        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
+        std::vector<IGeneratorInfo*> m_generatorsInOrder;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest()
+    {
+        return new GeneratorsForTest();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.hpp
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+namespace Catch {
+
+    AssertionInfo::AssertionInfo(   std::string const& _macroName,
+                                    SourceLineInfo const& _lineInfo,
+                                    std::string const& _capturedExpression,
+                                    ResultDisposition::Flags _resultDisposition )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        capturedExpression( _capturedExpression ),
+        resultDisposition( _resultDisposition )
+    {}
+
+    AssertionResult::AssertionResult() {}
+
+    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
+    :   m_info( info ),
+        m_resultData( data )
+    {}
+
+    AssertionResult::~AssertionResult() {}
+
+    // Result was a success
+    bool AssertionResult::succeeded() const {
+        return Catch::isOk( m_resultData.resultType );
+    }
+
+    // Result was a success, or failure is suppressed
+    bool AssertionResult::isOk() const {
+        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
+    }
+
+    ResultWas::OfType AssertionResult::getResultType() const {
+        return m_resultData.resultType;
+    }
+
+    bool AssertionResult::hasExpression() const {
+        return !m_info.capturedExpression.empty();
+    }
+
+    bool AssertionResult::hasMessage() const {
+        return !m_resultData.message.empty();
+    }
+
+    std::string AssertionResult::getExpression() const {
+        if( isFalseTest( m_info.resultDisposition ) )
+            return '!' + m_info.capturedExpression;
+        else
+            return m_info.capturedExpression;
+    }
+    std::string AssertionResult::getExpressionInMacro() const {
+        if( m_info.macroName.empty() )
+            return m_info.capturedExpression;
+        else
+            return m_info.macroName + "( " + m_info.capturedExpression + " )";
+    }
+
+    bool AssertionResult::hasExpandedExpression() const {
+        return hasExpression() && getExpandedExpression() != getExpression();
+    }
+
+    std::string AssertionResult::getExpandedExpression() const {
+        return m_resultData.reconstructExpression();
+    }
+
+    std::string AssertionResult::getMessage() const {
+        return m_resultData.message;
+    }
+    SourceLineInfo AssertionResult::getSourceInfo() const {
+        return m_info.lineInfo;
+    }
+
+    std::string AssertionResult::getTestMacroName() const {
+        return m_info.macroName;
+    }
+
+    void AssertionResult::discardDecomposedExpression() const {
+        m_resultData.decomposedExpression = CATCH_NULL;
+    }
+
+    void AssertionResult::expandDecomposedExpression() const {
+        m_resultData.reconstructExpression();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_test_case_info.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+#include <cctype>
+
+namespace Catch {
+
+    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
+        if( startsWith( tag, '.' ) ||
+            tag == "hide" ||
+            tag == "!hide" )
+            return TestCaseInfo::IsHidden;
+        else if( tag == "!throws" )
+            return TestCaseInfo::Throws;
+        else if( tag == "!shouldfail" )
+            return TestCaseInfo::ShouldFail;
+        else if( tag == "!mayfail" )
+            return TestCaseInfo::MayFail;
+        else if( tag == "!nonportable" )
+            return TestCaseInfo::NonPortable;
+        else
+            return TestCaseInfo::None;
+    }
+    inline bool isReservedTag( std::string const& tag ) {
+        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !std::isalnum( tag[0] );
+    }
+    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
+        if( isReservedTag( tag ) ) {
+            {
+                Colour colourGuard( Colour::Red );
+                Catch::cerr()
+                    << "Tag name [" << tag << "] not allowed.\n"
+                    << "Tag names starting with non alpha-numeric characters are reserved\n";
+            }
+            {
+                Colour colourGuard( Colour::FileName );
+                Catch::cerr() << _lineInfo << std::endl;
+            }
+            exit(1);
+        }
+    }
+
+    TestCase makeTestCase(  ITestCase* _testCase,
+                            std::string const& _className,
+                            std::string const& _name,
+                            std::string const& _descOrTags,
+                            SourceLineInfo const& _lineInfo )
+    {
+        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
+
+        // Parse out tags
+        std::set<std::string> tags;
+        std::string desc, tag;
+        bool inTag = false;
+        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
+            char c = _descOrTags[i];
+            if( !inTag ) {
+                if( c == '[' )
+                    inTag = true;
+                else
+                    desc += c;
+            }
+            else {
+                if( c == ']' ) {
+                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
+                    if( prop == TestCaseInfo::IsHidden )
+                        isHidden = true;
+                    else if( prop == TestCaseInfo::None )
+                        enforceNotReservedTag( tag, _lineInfo );
+
+                    tags.insert( tag );
+                    tag.clear();
+                    inTag = false;
+                }
+                else
+                    tag += c;
+            }
+        }
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
+
+        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
+        return TestCase( _testCase, info );
+    }
+
+    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
+    {
+        testCaseInfo.tags = tags;
+        testCaseInfo.lcaseTags.clear();
+
+        std::ostringstream oss;
+        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
+            oss << '[' << *it << ']';
+            std::string lcaseTag = toLower( *it );
+            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
+            testCaseInfo.lcaseTags.insert( lcaseTag );
+        }
+        testCaseInfo.tagsAsString = oss.str();
+    }
+
+    TestCaseInfo::TestCaseInfo( std::string const& _name,
+                                std::string const& _className,
+                                std::string const& _description,
+                                std::set<std::string> const& _tags,
+                                SourceLineInfo const& _lineInfo )
+    :   name( _name ),
+        className( _className ),
+        description( _description ),
+        lineInfo( _lineInfo ),
+        properties( None )
+    {
+        setTags( *this, _tags );
+    }
+
+    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
+    :   name( other.name ),
+        className( other.className ),
+        description( other.description ),
+        tags( other.tags ),
+        lcaseTags( other.lcaseTags ),
+        tagsAsString( other.tagsAsString ),
+        lineInfo( other.lineInfo ),
+        properties( other.properties )
+    {}
+
+    bool TestCaseInfo::isHidden() const {
+        return ( properties & IsHidden ) != 0;
+    }
+    bool TestCaseInfo::throws() const {
+        return ( properties & Throws ) != 0;
+    }
+    bool TestCaseInfo::okToFail() const {
+        return ( properties & (ShouldFail | MayFail ) ) != 0;
+    }
+    bool TestCaseInfo::expectedToFail() const {
+        return ( properties & (ShouldFail ) ) != 0;
+    }
+
+    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
+
+    TestCase::TestCase( TestCase const& other )
+    :   TestCaseInfo( other ),
+        test( other.test )
+    {}
+
+    TestCase TestCase::withName( std::string const& _newName ) const {
+        TestCase other( *this );
+        other.name = _newName;
+        return other;
+    }
+
+    void TestCase::swap( TestCase& other ) {
+        test.swap( other.test );
+        name.swap( other.name );
+        className.swap( other.className );
+        description.swap( other.description );
+        tags.swap( other.tags );
+        lcaseTags.swap( other.lcaseTags );
+        tagsAsString.swap( other.tagsAsString );
+        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
+        std::swap( lineInfo, other.lineInfo );
+    }
+
+    void TestCase::invoke() const {
+        test->invoke();
+    }
+
+    bool TestCase::operator == ( TestCase const& other ) const {
+        return  test.get() == other.test.get() &&
+                name == other.name &&
+                className == other.className;
+    }
+
+    bool TestCase::operator < ( TestCase const& other ) const {
+        return name < other.name;
+    }
+    TestCase& TestCase::operator = ( TestCase const& other ) {
+        TestCase temp( other );
+        swap( temp );
+        return *this;
+    }
+
+    TestCaseInfo const& TestCase::getTestCaseInfo() const
+    {
+        return *this;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_version.hpp
+#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+namespace Catch {
+
+    Version::Version
+        (   unsigned int _majorVersion,
+            unsigned int _minorVersion,
+            unsigned int _patchNumber,
+            std::string const& _branchName,
+            unsigned int _buildNumber )
+    :   majorVersion( _majorVersion ),
+        minorVersion( _minorVersion ),
+        patchNumber( _patchNumber ),
+        branchName( _branchName ),
+        buildNumber( _buildNumber )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, Version const& version ) {
+        os  << version.majorVersion << '.'
+            << version.minorVersion << '.'
+            << version.patchNumber;
+
+        if( !version.branchName.empty() ) {
+            os  << '-' << version.branchName
+                << '.' << version.buildNumber;
+        }
+        return os;
+    }
+
+    Version libraryVersion( 1, 7, 2, "", 0 );
+
+}
+
+// #included from: catch_message.hpp
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+namespace Catch {
+
+    MessageInfo::MessageInfo(   std::string const& _macroName,
+                                SourceLineInfo const& _lineInfo,
+                                ResultWas::OfType _type )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        type( _type ),
+        sequence( ++globalCount )
+    {}
+
+    // This may need protecting if threading support is added
+    unsigned int MessageInfo::globalCount = 0;
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+    : m_info( builder.m_info )
+    {
+        m_info.message = builder.m_stream.str();
+        getResultCapture().pushScopedMessage( m_info );
+    }
+    ScopedMessage::ScopedMessage( ScopedMessage const& other )
+    : m_info( other.m_info )
+    {}
+
+    ScopedMessage::~ScopedMessage() {
+        getResultCapture().popScopedMessage( m_info );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_legacy_reporter_adapter.hpp
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+// #included from: catch_legacy_reporter_adapter.h
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+namespace Catch
+{
+    // Deprecated
+    struct IReporter : IShared {
+        virtual ~IReporter();
+
+        virtual bool shouldRedirectStdout() const = 0;
+
+        virtual void StartTesting() = 0;
+        virtual void EndTesting( Totals const& totals ) = 0;
+        virtual void StartGroup( std::string const& groupName ) = 0;
+        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
+        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
+        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
+        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
+        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
+        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
+        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
+        virtual void Aborted() = 0;
+        virtual void Result( AssertionResult const& result ) = 0;
+    };
+
+    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
+    {
+    public:
+        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
+        virtual ~LegacyReporterAdapter();
+
+        virtual ReporterPreferences getPreferences() const;
+        virtual void noMatchingTestCases( std::string const& );
+        virtual void testRunStarting( TestRunInfo const& );
+        virtual void testGroupStarting( GroupInfo const& groupInfo );
+        virtual void testCaseStarting( TestCaseInfo const& testInfo );
+        virtual void sectionStarting( SectionInfo const& sectionInfo );
+        virtual void assertionStarting( AssertionInfo const& );
+        virtual bool assertionEnded( AssertionStats const& assertionStats );
+        virtual void sectionEnded( SectionStats const& sectionStats );
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
+        virtual void testRunEnded( TestRunStats const& testRunStats );
+        virtual void skipTest( TestCaseInfo const& );
+
+    private:
+        Ptr<IReporter> m_legacyReporter;
+    };
+}
+
+namespace Catch
+{
+    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
+    :   m_legacyReporter( legacyReporter )
+    {}
+    LegacyReporterAdapter::~LegacyReporterAdapter() {}
+
+    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
+        ReporterPreferences prefs;
+        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
+        return prefs;
+    }
+
+    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
+    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
+        m_legacyReporter->StartTesting();
+    }
+    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
+        m_legacyReporter->StartGroup( groupInfo.name );
+    }
+    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
+        m_legacyReporter->StartTestCase( testInfo );
+    }
+    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
+        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
+    }
+    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
+        // Not on legacy interface
+    }
+
+    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
+        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                    it != itEnd;
+                    ++it ) {
+                if( it->type == ResultWas::Info ) {
+                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
+                    rb << it->message;
+                    rb.setResultType( ResultWas::Info );
+                    AssertionResult result = rb.build();
+                    m_legacyReporter->Result( result );
+                }
+            }
+        }
+        m_legacyReporter->Result( assertionStats.assertionResult );
+        return true;
+    }
+    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
+        if( sectionStats.missingAssertions )
+            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
+        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
+    }
+    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
+        m_legacyReporter->EndTestCase
+            (   testCaseStats.testInfo,
+                testCaseStats.totals,
+                testCaseStats.stdOut,
+                testCaseStats.stdErr );
+    }
+    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
+        if( testGroupStats.aborting )
+            m_legacyReporter->Aborted();
+        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
+    }
+    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
+        m_legacyReporter->EndTesting( testRunStats.totals );
+    }
+    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
+    }
+}
+
+// #included from: catch_timer.hpp
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++11-long-long"
+#endif
+
+#ifdef CATCH_PLATFORM_WINDOWS
+#else
+#include <sys/time.h>
+#endif
+
+namespace Catch {
+
+    namespace {
+#ifdef CATCH_PLATFORM_WINDOWS
+        uint64_t getCurrentTicks() {
+            static uint64_t hz=0, hzo=0;
+            if (!hz) {
+                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
+                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
+            }
+            uint64_t t;
+            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
+            return ((t-hzo)*1000000)/hz;
+        }
+#else
+        uint64_t getCurrentTicks() {
+            timeval t;
+            gettimeofday(&t,CATCH_NULL);
+            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
+        }
+#endif
+    }
+
+    void Timer::start() {
+        m_ticks = getCurrentTicks();
+    }
+    unsigned int Timer::getElapsedMicroseconds() const {
+        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
+    }
+    unsigned int Timer::getElapsedMilliseconds() const {
+        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
+    }
+    double Timer::getElapsedSeconds() const {
+        return getElapsedMicroseconds()/1000000.0;
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+// #included from: catch_common.hpp
+#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+#include <cstring>
+#include <cctype>
+
+namespace Catch {
+
+    bool startsWith( std::string const& s, std::string const& prefix ) {
+        return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin());
+    }
+    bool startsWith( std::string const& s, char prefix ) {
+        return !s.empty() && s[0] == prefix;
+    }
+    bool endsWith( std::string const& s, std::string const& suffix ) {
+        return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin());
+    }
+    bool endsWith( std::string const& s, char suffix ) {
+        return !s.empty() && s[s.size()-1] == suffix;
+    }
+    bool contains( std::string const& s, std::string const& infix ) {
+        return s.find( infix ) != std::string::npos;
+    }
+    char toLowerCh(char c) {
+        return static_cast<char>( std::tolower( c ) );
+    }
+    void toLowerInPlace( std::string& s ) {
+        std::transform( s.begin(), s.end(), s.begin(), toLowerCh );
+    }
+    std::string toLower( std::string const& s ) {
+        std::string lc = s;
+        toLowerInPlace( lc );
+        return lc;
+    }
+    std::string trim( std::string const& str ) {
+        static char const* whitespaceChars = "\n\r\t ";
+        std::string::size_type start = str.find_first_not_of( whitespaceChars );
+        std::string::size_type end = str.find_last_not_of( whitespaceChars );
+
+        return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string();
+    }
+
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
+        bool replaced = false;
+        std::size_t i = str.find( replaceThis );
+        while( i != std::string::npos ) {
+            replaced = true;
+            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
+            if( i < str.size()-withThis.size() )
+                i = str.find( replaceThis, i+withThis.size() );
+            else
+                i = std::string::npos;
+        }
+        return replaced;
+    }
+
+    pluralise::pluralise( std::size_t count, std::string const& label )
+    :   m_count( count ),
+        m_label( label )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
+        os << pluraliser.m_count << ' ' << pluraliser.m_label;
+        if( pluraliser.m_count != 1 )
+            os << 's';
+        return os;
+    }
+
+    SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){}
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
+    :   file( _file ),
+        line( _line )
+    {}
+    bool SourceLineInfo::empty() const {
+        return file[0] == '\0';
+    }
+    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
+        return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0);
+    }
+    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
+        return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0));
+    }
+
+    void seedRng( IConfig const& config ) {
+        if( config.rngSeed() != 0 )
+            std::srand( config.rngSeed() );
+    }
+    unsigned int rngSeed() {
+        return getCurrentContext().getConfig()->rngSeed();
+    }
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
+#ifndef __GNUG__
+        os << info.file << '(' << info.line << ')';
+#else
+        os << info.file << ':' << info.line;
+#endif
+        return os;
+    }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
+        std::ostringstream oss;
+        oss << locationInfo << ": Internal Catch error: '" << message << '\'';
+        if( alwaysTrue() )
+            throw std::logic_error( oss.str() );
+    }
+}
+
+// #included from: catch_section.hpp
+#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+namespace Catch {
+
+    SectionInfo::SectionInfo
+        (   SourceLineInfo const& _lineInfo,
+            std::string const& _name,
+            std::string const& _description )
+    :   name( _name ),
+        description( _description ),
+        lineInfo( _lineInfo )
+    {}
+
+    Section::Section( SectionInfo const& info )
+    :   m_info( info ),
+        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
+    {
+        m_timer.start();
+    }
+
+    Section::~Section() {
+        if( m_sectionIncluded ) {
+            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
+            if( std::uncaught_exception() )
+                getResultCapture().sectionEndedEarly( endInfo );
+            else
+                getResultCapture().sectionEnded( endInfo );
+        }
+    }
+
+    // This indicates whether the section should be executed or not
+    Section::operator bool() const {
+        return m_sectionIncluded;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_debugger.hpp
+#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+#ifdef CATCH_PLATFORM_MAC
+
+    #include <assert.h>
+    #include <stdbool.h>
+    #include <sys/types.h>
+    #include <unistd.h>
+    #include <sys/sysctl.h>
+
+    namespace Catch{
+
+        // The following function is taken directly from the following technical note:
+        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
+
+        // Returns true if the current process is being debugged (either
+        // running under the debugger or has a debugger attached post facto).
+        bool isDebuggerActive(){
+
+            int                 mib[4];
+            struct kinfo_proc   info;
+            size_t              size;
+
+            // Initialize the flags so that, if sysctl fails for some bizarre
+            // reason, we get a predictable result.
+
+            info.kp_proc.p_flag = 0;
+
+            // Initialize mib, which tells sysctl the info we want, in this case
+            // we're looking for information about a specific process ID.
+
+            mib[0] = CTL_KERN;
+            mib[1] = KERN_PROC;
+            mib[2] = KERN_PROC_PID;
+            mib[3] = getpid();
+
+            // Call sysctl.
+
+            size = sizeof(info);
+            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
+                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
+                return false;
+            }
+
+            // We're being debugged if the P_TRACED flag is set.
+
+            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
+        }
+    } // namespace Catch
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    #include <fstream>
+    #include <string>
+
+    namespace Catch{
+        // The standard POSIX way of detecting a debugger is to attempt to
+        // ptrace() the process, but this needs to be done from a child and not
+        // this process itself to still allow attaching to this process later
+        // if wanted, so is rather heavy. Under Linux we have the PID of the
+        // "debugger" (which doesn't need to be gdb, of course, it could also
+        // be strace, for example) in /proc/$PID/status, so just get it from
+        // there instead.
+        bool isDebuggerActive(){
+            std::ifstream in("/proc/self/status");
+            for( std::string line; std::getline(in, line); ) {
+                static const int PREFIX_LEN = 11;
+                if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) {
+                    // We're traced if the PID is not 0 and no other PID starts
+                    // with 0 digit, so it's enough to check for just a single
+                    // character.
+                    return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0';
+                }
+            }
+
+            return false;
+        }
+    } // namespace Catch
+#elif defined(_MSC_VER)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#else
+    namespace Catch {
+       inline bool isDebuggerActive() { return false; }
+    }
+#endif // Platform
+
+#ifdef CATCH_PLATFORM_WINDOWS
+
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            ::OutputDebugStringA( text.c_str() );
+        }
+    }
+#else
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            // !TBD: Need a version for Mac/ XCode and other IDEs
+            Catch::cout() << text;
+        }
+    }
+#endif // Platform
+
+// #included from: catch_tostring.hpp
+#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+namespace Catch {
+
+namespace Detail {
+
+    const std::string unprintableString = "{?}";
+
+    namespace {
+        const int hexThreshold = 255;
+
+        struct Endianness {
+            enum Arch { Big, Little };
+
+            static Arch which() {
+                union _{
+                    int asInt;
+                    char asChar[sizeof (int)];
+                } u;
+
+                u.asInt = 1;
+                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
+            }
+        };
+    }
+
+    std::string rawMemoryToString( const void *object, std::size_t size )
+    {
+        // Reverse order for little endian architectures
+        int i = 0, end = static_cast<int>( size ), inc = 1;
+        if( Endianness::which() == Endianness::Little ) {
+            i = end-1;
+            end = inc = -1;
+        }
+
+        unsigned char const *bytes = static_cast<unsigned char const *>(object);
+        std::ostringstream os;
+        os << "0x" << std::setfill('0') << std::hex;
+        for( ; i != end; i += inc )
+             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
+       return os.str();
+    }
+}
+
+std::string toString( std::string const& value ) {
+    std::string s = value;
+    if( getCurrentContext().getConfig()->showInvisibles() ) {
+        for(size_t i = 0; i < s.size(); ++i ) {
+            std::string subs;
+            switch( s[i] ) {
+            case '\n': subs = "\\n"; break;
+            case '\t': subs = "\\t"; break;
+            default: break;
+            }
+            if( !subs.empty() ) {
+                s = s.substr( 0, i ) + subs + s.substr( i+1 );
+                ++i;
+            }
+        }
+    }
+    return '"' + s + '"';
+}
+std::string toString( std::wstring const& value ) {
+
+    std::string s;
+    s.reserve( value.size() );
+    for(size_t i = 0; i < value.size(); ++i )
+        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
+    return Catch::toString( s );
+}
+
+std::string toString( const char* const value ) {
+    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
+}
+
+std::string toString( char* const value ) {
+    return Catch::toString( static_cast<const char*>( value ) );
+}
+
+std::string toString( const wchar_t* const value )
+{
+    return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
+}
+
+std::string toString( wchar_t* const value )
+{
+    return Catch::toString( static_cast<const wchar_t*>( value ) );
+}
+
+std::string toString( int value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned int value ) {
+    return Catch::toString( static_cast<unsigned long>( value ) );
+}
+
+template<typename T>
+std::string fpToString( T value, int precision ) {
+    std::ostringstream oss;
+    oss << std::setprecision( precision )
+        << std::fixed
+        << value;
+    std::string d = oss.str();
+    std::size_t i = d.find_last_not_of( '0' );
+    if( i != std::string::npos && i != d.size()-1 ) {
+        if( d[i] == '.' )
+            i++;
+        d = d.substr( 0, i+1 );
+    }
+    return d;
+}
+
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + 'f';
+}
+
+std::string toString( bool value ) {
+    return value ? "true" : "false";
+}
+
+std::string toString( char value ) {
+    if ( value == '\r' )
+        return "'\\r'";
+    if ( value == '\f' )
+        return "'\\f'";
+    if ( value == '\n' )
+        return "'\\n'";
+    if ( value == '\t' )
+        return "'\\t'";
+    if ( '\0' <= value && value < ' ' )
+        return toString( static_cast<unsigned int>( value ) );
+    char chstr[] = "' '";
+    chstr[1] = value;
+    return chstr;
+}
+
+std::string toString( signed char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+std::string toString( unsigned char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+std::string toString( unsigned long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t ) {
+    return "nullptr";
+}
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSObject* const& nsObject ) {
+        return toString( [nsObject description] );
+    }
+#endif
+
+} // end namespace Catch
+
+// #included from: catch_result_builder.hpp
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+namespace Catch {
+
+    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
+        return secondArg.empty() || secondArg == "\"\""
+            ? capturedExpression
+            : capturedExpression + ", " + secondArg;
+    }
+    ResultBuilder::ResultBuilder(   char const* macroName,
+                                    SourceLineInfo const& lineInfo,
+                                    char const* capturedExpression,
+                                    ResultDisposition::Flags resultDisposition,
+                                    char const* secondArg )
+    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
+        m_shouldDebugBreak( false ),
+        m_shouldThrow( false )
+    {}
+
+    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
+        m_data.resultType = result;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setResultType( bool result ) {
+        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
+        return *this;
+    }
+
+    void ResultBuilder::endExpression( DecomposedExpression const& expr ) {
+        AssertionResult result = build( expr );
+        handleResult( result );
+    }
+
+    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
+        m_assertionInfo.resultDisposition = resultDisposition;
+        m_stream.oss << Catch::translateActiveException();
+        captureResult( ResultWas::ThrewException );
+    }
+
+    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
+        setResultType( resultType );
+        captureExpression();
+    }
+
+    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
+        if( expectedMessage.empty() )
+            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
+        else
+            captureExpectedException( Matchers::Equals( expectedMessage ) );
+    }
+
+    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
+
+        assert( !isFalseTest( m_assertionInfo.resultDisposition ) );
+        AssertionResultData data = m_data;
+        data.resultType = ResultWas::Ok;
+        data.reconstructedExpression = m_assertionInfo.capturedExpression;
+
+        std::string actualMessage = Catch::translateActiveException();
+        if( !matcher.match( actualMessage ) ) {
+            data.resultType = ResultWas::ExpressionFailed;
+            data.reconstructedExpression = actualMessage;
+        }
+        AssertionResult result( m_assertionInfo, data );
+        handleResult( result );
+    }
+
+    void ResultBuilder::captureExpression() {
+        AssertionResult result = build();
+        handleResult( result );
+    }
+
+    void ResultBuilder::handleResult( AssertionResult const& result )
+    {
+        getResultCapture().assertionEnded( result );
+
+        if( !result.isOk() ) {
+            if( getCurrentContext().getConfig()->shouldDebugBreak() )
+                m_shouldDebugBreak = true;
+            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
+                m_shouldThrow = true;
+        }
+    }
+
+    void ResultBuilder::react() {
+        if( m_shouldThrow )
+            throw Catch::TestFailureException();
+    }
+
+    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
+    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
+
+    AssertionResult ResultBuilder::build() const
+    {
+        return build( *this );
+    }
+
+    // CAVEAT: The returned AssertionResult stores a pointer to the argument expr,
+    //         a temporary DecomposedExpression, which in turn holds references to
+    //         operands, possibly temporary as well.
+    //         It should immediately be passed to handleResult; if the expression
+    //         needs to be reported, its string expansion must be composed before
+    //         the temporaries are destroyed.
+    AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const
+    {
+        assert( m_data.resultType != ResultWas::Unknown );
+        AssertionResultData data = m_data;
+
+        // Flip bool results if FalseTest flag is set
+        if( isFalseTest( m_assertionInfo.resultDisposition ) ) {
+            data.negate( expr.isBinaryExpression() );
+        }
+
+        data.message = m_stream.oss.str();
+        data.decomposedExpression = &expr; // for lazy reconstruction
+        return AssertionResult( m_assertionInfo, data );
+    }
+
+    void ResultBuilder::reconstructExpression( std::string& dest ) const {
+        dest = m_assertionInfo.capturedExpression;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_tag_alias_registry.hpp
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class TagAliasRegistry : public ITagAliasRegistry {
+    public:
+        virtual ~TagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
+        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+        static TagAliasRegistry& get();
+
+    private:
+        std::map<std::string, TagAlias> m_registry;
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    TagAliasRegistry::~TagAliasRegistry() {}
+
+    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
+        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
+        if( it != m_registry.end() )
+            return it->second;
+        else
+            return Option<TagAlias>();
+    }
+
+    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
+        std::string expandedTestSpec = unexpandedTestSpec;
+        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
+                it != itEnd;
+                ++it ) {
+            std::size_t pos = expandedTestSpec.find( it->first );
+            if( pos != std::string::npos ) {
+                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
+                                    it->second.tag +
+                                    expandedTestSpec.substr( pos + it->first.size() );
+            }
+        }
+        return expandedTestSpec;
+    }
+
+    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+
+        if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
+                << "\tFirst seen at " << find(alias)->lineInfo << '\n'
+                << "\tRedefined at " << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+    }
+
+    TagAliasRegistry& TagAliasRegistry::get() {
+        static TagAliasRegistry instance;
+        return instance;
+
+    }
+
+    ITagAliasRegistry::~ITagAliasRegistry() {}
+    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
+
+    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+        try {
+            TagAliasRegistry::get().add( alias, tag, lineInfo );
+        }
+        catch( std::exception& ex ) {
+            Colour colourGuard( Colour::Red );
+            Catch::cerr() << ex.what() << std::endl;
+            exit(1);
+        }
+    }
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_multi.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
+
+namespace Catch {
+
+class MultipleReporters : public SharedImpl<IStreamingReporter> {
+    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
+    Reporters m_reporters;
+
+public:
+    void add( Ptr<IStreamingReporter> const& reporter ) {
+        m_reporters.push_back( reporter );
+    }
+
+public: // IStreamingReporter
+
+    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+        return m_reporters[0]->getPreferences();
+    }
+
+    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->noMatchingTestCases( spec );
+    }
+
+    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunStarting( testRunInfo );
+    }
+
+    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupStarting( groupInfo );
+    }
+
+    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseStarting( testInfo );
+    }
+
+    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionStarting( sectionInfo );
+    }
+
+    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->assertionStarting( assertionInfo );
+    }
+
+    // The return value indicates if the messages buffer should be cleared:
+    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+        bool clearBuffer = false;
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            clearBuffer |= (*it)->assertionEnded( assertionStats );
+        return clearBuffer;
+    }
+
+    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionEnded( sectionStats );
+    }
+
+    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseEnded( testCaseStats );
+    }
+
+    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupEnded( testGroupStats );
+    }
+
+    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunEnded( testRunStats );
+    }
+
+    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->skipTest( testInfo );
+    }
+
+    virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
+        return this;
+    }
+
+};
+
+Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
+    Ptr<IStreamingReporter> resultingReporter;
+
+    if( existingReporter ) {
+        MultipleReporters* multi = existingReporter->tryAsMulti();
+        if( !multi ) {
+            multi = new MultipleReporters;
+            resultingReporter = Ptr<IStreamingReporter>( multi );
+            if( existingReporter )
+                multi->add( existingReporter );
+        }
+        else
+            resultingReporter = existingReporter;
+        multi->add( additionalReporter );
+    }
+    else
+        resultingReporter = additionalReporter;
+
+    return resultingReporter;
+}
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_xml.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+// #included from: catch_reporter_bases.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
+
+        StreamingReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
+
+        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
+            currentTestRunInfo = _testRunInfo;
+        }
+        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
+            currentGroupInfo = _groupInfo;
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
+            currentTestCaseInfo = _testInfo;
+        }
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_sectionStack.push_back( _sectionInfo );
+        }
+
+        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+        }
+        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
+            currentGroupInfo.reset();
+        }
+        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+            currentGroupInfo.reset();
+            currentTestRunInfo.reset();
+        }
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
+            // Don't do anything with this by default.
+            // It can optionally be overridden in the derived class.
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+
+        LazyStat<TestRunInfo> currentTestRunInfo;
+        LazyStat<GroupInfo> currentGroupInfo;
+        LazyStat<TestCaseInfo> currentTestCaseInfo;
+
+        std::vector<SectionInfo> m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+    };
+
+    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
+        template<typename T, typename ChildNodeT>
+        struct Node : SharedImpl<> {
+            explicit Node( T const& _value ) : value( _value ) {}
+            virtual ~Node() {}
+
+            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
+            T value;
+            ChildNodes children;
+        };
+        struct SectionNode : SharedImpl<> {
+            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
+            virtual ~SectionNode();
+
+            bool operator == ( SectionNode const& other ) const {
+                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
+            }
+            bool operator == ( Ptr<SectionNode> const& other ) const {
+                return operator==( *other );
+            }
+
+            SectionStats stats;
+            typedef std::vector<Ptr<SectionNode> > ChildSections;
+            typedef std::vector<AssertionStats> Assertions;
+            ChildSections childSections;
+            Assertions assertions;
+            std::string stdOut;
+            std::string stdErr;
+        };
+
+        struct BySectionInfo {
+            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
+            BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
+            bool operator() ( Ptr<SectionNode> const& node ) const {
+                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
+            }
+        private:
+            void operator=( BySectionInfo const& );
+            SectionInfo const& m_other;
+        };
+
+        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
+        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
+        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
+
+        CumulativeReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+        ~CumulativeReporterBase();
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
+        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
+            Ptr<SectionNode> node;
+            if( m_sectionStack.empty() ) {
+                if( !m_rootSection )
+                    m_rootSection = new SectionNode( incompleteStats );
+                node = m_rootSection;
+            }
+            else {
+                SectionNode& parentNode = *m_sectionStack.back();
+                SectionNode::ChildSections::const_iterator it =
+                    std::find_if(   parentNode.childSections.begin(),
+                                    parentNode.childSections.end(),
+                                    BySectionInfo( sectionInfo ) );
+                if( it == parentNode.childSections.end() ) {
+                    node = new SectionNode( incompleteStats );
+                    parentNode.childSections.push_back( node );
+                }
+                else
+                    node = *it;
+            }
+            m_sectionStack.push_back( node );
+            m_deepestSection = node;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& sectionNode = *m_sectionStack.back();
+            sectionNode.assertions.push_back( assertionStats );
+            // AssertionResult holds a pointer to a temporary DecomposedExpression,
+            // which getExpandedExpression() calls to build the expression string.
+            // Our section stack copy of the assertionResult will likely outlive the
+            // temporary, so it must be expanded or discarded now to avoid calling
+            // a destroyed object later.
+            prepareExpandedExpression( sectionNode.assertions.back().assertionResult );
+            return true;
+        }
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& node = *m_sectionStack.back();
+            node.stats = sectionStats;
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
+            assert( m_sectionStack.size() == 0 );
+            node->children.push_back( m_rootSection );
+            m_testCases.push_back( node );
+            m_rootSection.reset();
+
+            assert( m_deepestSection );
+            m_deepestSection->stdOut = testCaseStats.stdOut;
+            m_deepestSection->stdErr = testCaseStats.stdErr;
+        }
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
+            node->children.swap( m_testCases );
+            m_testGroups.push_back( node );
+        }
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
+            node->children.swap( m_testGroups );
+            m_testRuns.push_back( node );
+            testRunEndedCumulative();
+        }
+        virtual void testRunEndedCumulative() = 0;
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void prepareExpandedExpression( AssertionResult& result ) const {
+            if( result.isOk() )
+                result.discardDecomposedExpression();
+            else
+                result.expandDecomposedExpression();
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+        std::vector<AssertionStats> m_assertions;
+        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
+        std::vector<Ptr<TestCaseNode> > m_testCases;
+        std::vector<Ptr<TestGroupNode> > m_testGroups;
+
+        std::vector<Ptr<TestRunNode> > m_testRuns;
+
+        Ptr<SectionNode> m_rootSection;
+        Ptr<SectionNode> m_deepestSection;
+        std::vector<Ptr<SectionNode> > m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+
+    };
+
+    template<char C>
+    char const* getLineOfChars() {
+        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
+        if( !*line ) {
+            std::memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
+            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
+        }
+        return line;
+    }
+
+    struct TestEventListenerBase : StreamingReporterBase {
+        TestEventListenerBase( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config )
+        {}
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
+            return false;
+        }
+    };
+
+} // end namespace Catch
+
+// #included from: ../internal/catch_reporter_registrars.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+namespace Catch {
+
+    template<typename T>
+    class LegacyReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new LegacyReporterAdapter( new T( config ) );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        LegacyReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ReporterRegistrar {
+
+        class ReporterFactory : public SharedImpl<IReporterFactory> {
+
+            // *** Please Note ***:
+            // - If you end up here looking at a compiler error because it's trying to register
+            // your custom reporter class be aware that the native reporter interface has changed
+            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
+            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
+            // However please consider updating to the new interface as the old one is now
+            // deprecated and will probably be removed quite soon!
+            // Please contact me via github if you have any questions at all about this.
+            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
+            // no idea who is actually using custom reporters at all (possibly no-one!).
+            // The new interface is designed to minimise exposure to interface changes in the future.
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        ReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ListenerRegistrar {
+
+        class ListenerFactory : public SharedImpl<IReporterFactory> {
+
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+            virtual std::string getDescription() const {
+                return std::string();
+            }
+        };
+
+    public:
+
+        ListenerRegistrar() {
+            getMutableRegistryHub().registerListener( new ListenerFactory() );
+        }
+    };
+}
+
+#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
+    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
+    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
+    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
+
+// #included from: ../internal/catch_xmlwriter.hpp
+#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+#include <sstream>
+#include <string>
+#include <vector>
+#include <iomanip>
+
+namespace Catch {
+
+    class XmlEncode {
+    public:
+        enum ForWhat { ForTextNodes, ForAttributes };
+
+        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
+        :   m_str( str ),
+            m_forWhat( forWhat )
+        {}
+
+        void encodeTo( std::ostream& os ) const {
+
+            // Apostrophe escaping not necessary if we always use " to write attributes
+            // (see: http://www.w3.org/TR/xml/#syntax)
+
+            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
+                char c = m_str[i];
+                switch( c ) {
+                    case '<':   os << "&lt;"; break;
+                    case '&':   os << "&amp;"; break;
+
+                    case '>':
+                        // See: http://www.w3.org/TR/xml/#syntax
+                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
+                            os << "&gt;";
+                        else
+                            os << c;
+                        break;
+
+                    case '\"':
+                        if( m_forWhat == ForAttributes )
+                            os << "&quot;";
+                        else
+                            os << c;
+                        break;
+
+                    default:
+                        // Escape control chars - based on contribution by @espenalb in PR #465 and
+                        // by @mrpi PR #588
+                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) {
+                            // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
+                            os << "\\x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2)
+                               << static_cast<int>( c );
+                        }
+                        else
+                            os << c;
+                }
+            }
+        }
+
+        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
+            xmlEncode.encodeTo( os );
+            return os;
+        }
+
+    private:
+        std::string m_str;
+        ForWhat m_forWhat;
+    };
+
+    class XmlWriter {
+    public:
+
+        class ScopedElement {
+        public:
+            ScopedElement( XmlWriter* writer )
+            :   m_writer( writer )
+            {}
+
+            ScopedElement( ScopedElement const& other )
+            :   m_writer( other.m_writer ){
+                other.m_writer = CATCH_NULL;
+            }
+
+            ~ScopedElement() {
+                if( m_writer )
+                    m_writer->endElement();
+            }
+
+            ScopedElement& writeText( std::string const& text, bool indent = true ) {
+                m_writer->writeText( text, indent );
+                return *this;
+            }
+
+            template<typename T>
+            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
+                m_writer->writeAttribute( name, attribute );
+                return *this;
+            }
+
+        private:
+            mutable XmlWriter* m_writer;
+        };
+
+        XmlWriter()
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( Catch::cout() )
+        {
+            writeDeclaration();
+        }
+
+        XmlWriter( std::ostream& os )
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( os )
+        {
+            writeDeclaration();
+        }
+
+        ~XmlWriter() {
+            while( !m_tags.empty() )
+                endElement();
+        }
+
+        XmlWriter& startElement( std::string const& name ) {
+            ensureTagClosed();
+            newlineIfNecessary();
+            m_os << m_indent << '<' << name;
+            m_tags.push_back( name );
+            m_indent += "  ";
+            m_tagIsOpen = true;
+            return *this;
+        }
+
+        ScopedElement scopedElement( std::string const& name ) {
+            ScopedElement scoped( this );
+            startElement( name );
+            return scoped;
+        }
+
+        XmlWriter& endElement() {
+            newlineIfNecessary();
+            m_indent = m_indent.substr( 0, m_indent.size()-2 );
+            if( m_tagIsOpen ) {
+                m_os << "/>";
+                m_tagIsOpen = false;
+            }
+            else {
+                m_os << m_indent << "</" << m_tags.back() << ">";
+            }
+            m_os << std::endl;
+            m_tags.pop_back();
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
+            if( !name.empty() && !attribute.empty() )
+                m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"';
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
+            m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"';
+            return *this;
+        }
+
+        template<typename T>
+        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
+            std::ostringstream oss;
+            oss << attribute;
+            return writeAttribute( name, oss.str() );
+        }
+
+        XmlWriter& writeText( std::string const& text, bool indent = true ) {
+            if( !text.empty() ){
+                bool tagWasOpen = m_tagIsOpen;
+                ensureTagClosed();
+                if( tagWasOpen && indent )
+                    m_os << m_indent;
+                m_os << XmlEncode( text );
+                m_needsNewline = true;
+            }
+            return *this;
+        }
+
+        XmlWriter& writeComment( std::string const& text ) {
+            ensureTagClosed();
+            m_os << m_indent << "<!--" << text << "-->";
+            m_needsNewline = true;
+            return *this;
+        }
+
+        void writeStylesheetRef( std::string const& url ) {
+            m_os << "<?xml-stylesheet type=\"text/xsl\" href=\"" << url << "\"?>\n";
+        }
+
+        XmlWriter& writeBlankLine() {
+            ensureTagClosed();
+            m_os << '\n';
+            return *this;
+        }
+
+        void ensureTagClosed() {
+            if( m_tagIsOpen ) {
+                m_os << ">" << std::endl;
+                m_tagIsOpen = false;
+            }
+        }
+
+    private:
+        XmlWriter( XmlWriter const& );
+        void operator=( XmlWriter const& );
+
+        void writeDeclaration() {
+            m_os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+        }
+
+        void newlineIfNecessary() {
+            if( m_needsNewline ) {
+                m_os << std::endl;
+                m_needsNewline = false;
+            }
+        }
+
+        bool m_tagIsOpen;
+        bool m_needsNewline;
+        std::vector<std::string> m_tags;
+        std::string m_indent;
+        std::ostream& m_os;
+    };
+
+}
+// #included from: catch_reenable_warnings.h
+
+#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#    ifdef __ICC // icpc defines the __clang__ macro
+#        pragma warning(pop)
+#    else
+#        pragma clang diagnostic pop
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic pop
+#endif
+
+
+namespace Catch {
+    class XmlReporter : public StreamingReporterBase {
+    public:
+        XmlReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_xml(_config.stream()),
+            m_sectionDepth( 0 )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~XmlReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results as an XML document";
+        }
+
+        virtual std::string getStylesheetRef() const {
+            return std::string();
+        }
+
+    public: // StreamingReporterBase
+
+        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
+            StreamingReporterBase::noMatchingTestCases( s );
+        }
+
+        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunStarting( testInfo );
+            std::string stylesheetRef = getStylesheetRef();
+            if( !stylesheetRef.empty() )
+                m_xml.writeStylesheetRef( stylesheetRef );
+            m_xml.startElement( "Catch" );
+            if( !m_config->name().empty() )
+                m_xml.writeAttribute( "name", m_config->name() );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupStarting( groupInfo );
+            m_xml.startElement( "Group" )
+                .writeAttribute( "name", groupInfo.name );
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseStarting(testInfo);
+            m_xml.startElement( "TestCase" )
+                .writeAttribute( "name", trim( testInfo.name ) )
+                .writeAttribute( "description", testInfo.description )
+                .writeAttribute( "tags", testInfo.tagsAsString );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                m_testCaseTimer.start();
+            m_xml.ensureTagClosed();
+        }
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionStarting( sectionInfo );
+            if( m_sectionDepth++ > 0 ) {
+                m_xml.startElement( "Section" )
+                    .writeAttribute( "name", trim( sectionInfo.name ) )
+                    .writeAttribute( "description", sectionInfo.description );
+                m_xml.ensureTagClosed();
+            }
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            const AssertionResult& assertionResult = assertionStats.assertionResult;
+
+            // Print any info messages in <Info> tags.
+            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it->type == ResultWas::Info ) {
+                        m_xml.scopedElement( "Info" )
+                            .writeText( it->message );
+                    } else if ( it->type == ResultWas::Warning ) {
+                        m_xml.scopedElement( "Warning" )
+                            .writeText( it->message );
+                    }
+                }
+            }
+
+            // Drop out if result was successful but we're not printing them.
+            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
+                return true;
+
+            // Print the expression if there is one.
+            if( assertionResult.hasExpression() ) {
+                m_xml.startElement( "Expression" )
+                    .writeAttribute( "success", assertionResult.succeeded() )
+                    .writeAttribute( "type", assertionResult.getTestMacroName() )
+                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
+
+                m_xml.scopedElement( "Original" )
+                    .writeText( assertionResult.getExpression() );
+                m_xml.scopedElement( "Expanded" )
+                    .writeText( assertionResult.getExpandedExpression() );
+            }
+
+            // And... Print a result applicable to each result type.
+            switch( assertionResult.getResultType() ) {
+                case ResultWas::ThrewException:
+                    m_xml.scopedElement( "Exception" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::FatalErrorCondition:
+                    m_xml.scopedElement( "FatalErrorCondition" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Info:
+                    m_xml.scopedElement( "Info" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Warning:
+                    // Warning will already have been written
+                    break;
+                case ResultWas::ExplicitFailure:
+                    m_xml.scopedElement( "Failure" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                default:
+                    break;
+            }
+
+            if( assertionResult.hasExpression() )
+                m_xml.endElement();
+
+            return true;
+        }
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionEnded( sectionStats );
+            if( --m_sectionDepth > 0 ) {
+                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
+                e.writeAttribute( "successes", sectionStats.assertions.passed );
+                e.writeAttribute( "failures", sectionStats.assertions.failed );
+                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
+
+                if ( m_config->showDurations() == ShowDurations::Always )
+                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
+
+                m_xml.endElement();
+            }
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( testCaseStats );
+            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
+            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
+
+            if( !testCaseStats.stdOut.empty() )
+                m_xml.scopedElement( "StdOut" ).writeText( trim( testCaseStats.stdOut ), false );
+            if( !testCaseStats.stdErr.empty() )
+                m_xml.scopedElement( "StdErr" ).writeText( trim( testCaseStats.stdErr ), false );
+
+            m_xml.endElement();
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupEnded( testGroupStats );
+            // TODO: Check testGroupStats.aborting and act accordingly.
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
+                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunEnded( testRunStats );
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
+                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+    private:
+        Timer m_testCaseTimer;
+        XmlWriter m_xml;
+        int m_sectionDepth;
+    };
+
+     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_junit.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+#include <assert.h>
+
+namespace Catch {
+
+    namespace {
+        std::string getCurrentTimestamp() {
+            // Beware, this is not reentrant because of backward compatibility issues
+            // Also, UTC only, again because of backward compatibility (%z is C++11)
+            time_t rawtime;
+            std::time(&rawtime);
+            const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z");
+
+#ifdef _MSC_VER
+            std::tm timeInfo = {};
+            gmtime_s(&timeInfo, &rawtime);
+#else
+            std::tm* timeInfo;
+            timeInfo = std::gmtime(&rawtime);
+#endif
+
+            char timeStamp[timeStampSize];
+            const char * const fmt = "%Y-%m-%dT%H:%M:%SZ";
+
+#ifdef _MSC_VER
+            std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
+#else
+            std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
+#endif
+            return std::string(timeStamp);
+        }
+
+    }
+
+    class JunitReporter : public CumulativeReporterBase {
+    public:
+        JunitReporter( ReporterConfig const& _config )
+        :   CumulativeReporterBase( _config ),
+            xml( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~JunitReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results in an XML format that looks like Ant's junitreport target";
+        }
+
+        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
+            CumulativeReporterBase::testRunStarting( runInfo );
+            xml.startElement( "testsuites" );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            suiteTimer.start();
+            stdOutForSuite.str("");
+            stdErrForSuite.str("");
+            unexpectedExceptions = 0;
+            CumulativeReporterBase::testGroupStarting( groupInfo );
+        }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
+                unexpectedExceptions++;
+            return CumulativeReporterBase::assertionEnded( assertionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            stdOutForSuite << testCaseStats.stdOut;
+            stdErrForSuite << testCaseStats.stdErr;
+            CumulativeReporterBase::testCaseEnded( testCaseStats );
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            double suiteTime = suiteTimer.getElapsedSeconds();
+            CumulativeReporterBase::testGroupEnded( testGroupStats );
+            writeGroup( *m_testGroups.back(), suiteTime );
+        }
+
+        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
+            xml.endElement();
+        }
+
+        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
+            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
+            TestGroupStats const& stats = groupNode.value;
+            xml.writeAttribute( "name", stats.groupInfo.name );
+            xml.writeAttribute( "errors", unexpectedExceptions );
+            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
+            xml.writeAttribute( "tests", stats.totals.assertions.total() );
+            xml.writeAttribute( "hostname", "tbd" ); // !TBD
+            if( m_config->showDurations() == ShowDurations::Never )
+                xml.writeAttribute( "time", "" );
+            else
+                xml.writeAttribute( "time", suiteTime );
+            xml.writeAttribute( "timestamp", getCurrentTimestamp() );
+
+            // Write test cases
+            for( TestGroupNode::ChildNodes::const_iterator
+                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
+                    it != itEnd;
+                    ++it )
+                writeTestCase( **it );
+
+            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
+            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
+        }
+
+        void writeTestCase( TestCaseNode const& testCaseNode ) {
+            TestCaseStats const& stats = testCaseNode.value;
+
+            // All test cases have exactly one section - which represents the
+            // test case itself. That section may have 0-n nested sections
+            assert( testCaseNode.children.size() == 1 );
+            SectionNode const& rootSection = *testCaseNode.children.front();
+
+            std::string className = stats.testInfo.className;
+
+            if( className.empty() ) {
+                if( rootSection.childSections.empty() )
+                    className = "global";
+            }
+            writeSection( className, "", rootSection );
+        }
+
+        void writeSection(  std::string const& className,
+                            std::string const& rootName,
+                            SectionNode const& sectionNode ) {
+            std::string name = trim( sectionNode.stats.sectionInfo.name );
+            if( !rootName.empty() )
+                name = rootName + '/' + name;
+
+            if( !sectionNode.assertions.empty() ||
+                !sectionNode.stdOut.empty() ||
+                !sectionNode.stdErr.empty() ) {
+                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
+                if( className.empty() ) {
+                    xml.writeAttribute( "classname", name );
+                    xml.writeAttribute( "name", "root" );
+                }
+                else {
+                    xml.writeAttribute( "classname", className );
+                    xml.writeAttribute( "name", name );
+                }
+                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
+
+                writeAssertions( sectionNode );
+
+                if( !sectionNode.stdOut.empty() )
+                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
+                if( !sectionNode.stdErr.empty() )
+                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
+            }
+            for( SectionNode::ChildSections::const_iterator
+                    it = sectionNode.childSections.begin(),
+                    itEnd = sectionNode.childSections.end();
+                    it != itEnd;
+                    ++it )
+                if( className.empty() )
+                    writeSection( name, "", **it );
+                else
+                    writeSection( className, name, **it );
+        }
+
+        void writeAssertions( SectionNode const& sectionNode ) {
+            for( SectionNode::Assertions::const_iterator
+                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
+                    it != itEnd;
+                    ++it )
+                writeAssertion( *it );
+        }
+        void writeAssertion( AssertionStats const& stats ) {
+            AssertionResult const& result = stats.assertionResult;
+            if( !result.isOk() ) {
+                std::string elementName;
+                switch( result.getResultType() ) {
+                    case ResultWas::ThrewException:
+                    case ResultWas::FatalErrorCondition:
+                        elementName = "error";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        elementName = "failure";
+                        break;
+
+                    // We should never see these here:
+                    case ResultWas::Info:
+                    case ResultWas::Warning:
+                    case ResultWas::Ok:
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        elementName = "internalError";
+                        break;
+                }
+
+                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
+
+                xml.writeAttribute( "message", result.getExpandedExpression() );
+                xml.writeAttribute( "type", result.getTestMacroName() );
+
+                std::ostringstream oss;
+                if( !result.getMessage().empty() )
+                    oss << result.getMessage() << '\n';
+                for( std::vector<MessageInfo>::const_iterator
+                        it = stats.infoMessages.begin(),
+                        itEnd = stats.infoMessages.end();
+                            it != itEnd;
+                            ++it )
+                    if( it->type == ResultWas::Info )
+                        oss << it->message << '\n';
+
+                oss << "at " << result.getSourceInfo();
+                xml.writeText( oss.str(), false );
+            }
+        }
+
+        XmlWriter xml;
+        Timer suiteTimer;
+        std::ostringstream stdOutForSuite;
+        std::ostringstream stdErrForSuite;
+        unsigned int unexpectedExceptions;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_console.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+namespace Catch {
+
+    struct ConsoleReporter : StreamingReporterBase {
+        ConsoleReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_headerPrinted( false )
+        {}
+
+        virtual ~ConsoleReporter() CATCH_OVERRIDE;
+        static std::string getDescription() {
+            return "Reports test results as plain lines of text";
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            lazyPrint();
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_headerPrinted = false;
+            StreamingReporterBase::sectionStarting( _sectionInfo );
+        }
+        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
+            if( _sectionStats.missingAssertions ) {
+                lazyPrint();
+                Colour colour( Colour::ResultError );
+                if( m_sectionStack.size() > 1 )
+                    stream << "\nNo assertions in section";
+                else
+                    stream << "\nNo assertions in test case";
+                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
+            }
+            if( m_headerPrinted ) {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << "Completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+                m_headerPrinted = false;
+            }
+            else {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+            }
+            StreamingReporterBase::sectionEnded( _sectionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( _testCaseStats );
+            m_headerPrinted = false;
+        }
+        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
+            if( currentGroupInfo.used ) {
+                printSummaryDivider();
+                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
+                printTotals( _testGroupStats.totals );
+                stream << '\n' << std::endl;
+            }
+            StreamingReporterBase::testGroupEnded( _testGroupStats );
+        }
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
+            printTotalsDivider( _testRunStats.totals );
+            printTotals( _testRunStats.totals );
+            stream << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            :   stream( _stream ),
+                stats( _stats ),
+                result( _stats.assertionResult ),
+                colour( Colour::None ),
+                message( result.getMessage() ),
+                messages( _stats.infoMessages ),
+                printInfoMessages( _printInfoMessages )
+            {
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        colour = Colour::Success;
+                        passOrFail = "PASSED";
+                        //if( result.hasMessage() )
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() ) {
+                            colour = Colour::Success;
+                            passOrFail = "FAILED - but was ok";
+                        }
+                        else {
+                            colour = Colour::Error;
+                            passOrFail = "FAILED";
+                        }
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ThrewException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to unexpected exception with message";
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to a fatal error condition";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "because no exception was thrown where one was expected";
+                        break;
+                    case ResultWas::Info:
+                        messageLabel = "info";
+                        break;
+                    case ResultWas::Warning:
+                        messageLabel = "warning";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        passOrFail = "FAILED";
+                        colour = Colour::Error;
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "explicitly with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "explicitly with messages";
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        passOrFail = "** internal error **";
+                        colour = Colour::Error;
+                        break;
+                }
+            }
+
+            void print() const {
+                printSourceInfo();
+                if( stats.totals.assertions.total() > 0 ) {
+                    if( result.isOk() )
+                        stream << '\n';
+                    printResultType();
+                    printOriginalExpression();
+                    printReconstructedExpression();
+                }
+                else {
+                    stream << '\n';
+                }
+                printMessage();
+            }
+
+        private:
+            void printResultType() const {
+                if( !passOrFail.empty() ) {
+                    Colour colourGuard( colour );
+                    stream << passOrFail << ":\n";
+                }
+            }
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    Colour colourGuard( Colour::OriginalExpression );
+                    stream  << "  ";
+                    stream << result.getExpressionInMacro();
+                    stream << '\n';
+                }
+            }
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    stream << "with expansion:\n";
+                    Colour colourGuard( Colour::ReconstructedExpression );
+                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printMessage() const {
+                if( !messageLabel.empty() )
+                    stream << messageLabel << ':' << '\n';
+                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
+                        it != itEnd;
+                        ++it ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || it->type != ResultWas::Info )
+                        stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ": ";
+            }
+
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            Colour::Code colour;
+            std::string passOrFail;
+            std::string messageLabel;
+            std::string message;
+            std::vector<MessageInfo> messages;
+            bool printInfoMessages;
+        };
+
+        void lazyPrint() {
+
+            if( !currentTestRunInfo.used )
+                lazyPrintRunInfo();
+            if( !currentGroupInfo.used )
+                lazyPrintGroupInfo();
+
+            if( !m_headerPrinted ) {
+                printTestCaseAndSectionHeader();
+                m_headerPrinted = true;
+            }
+        }
+        void lazyPrintRunInfo() {
+            stream  << '\n' << getLineOfChars<'~'>() << '\n';
+            Colour colour( Colour::SecondaryText );
+            stream  << currentTestRunInfo->name
+                    << " is a Catch v"  << libraryVersion << " host application.\n"
+                    << "Run with -? for options\n\n";
+
+            if( m_config->rngSeed() != 0 )
+                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
+
+            currentTestRunInfo.used = true;
+        }
+        void lazyPrintGroupInfo() {
+            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
+                printClosedHeader( "Group: " + currentGroupInfo->name );
+                currentGroupInfo.used = true;
+            }
+        }
+        void printTestCaseAndSectionHeader() {
+            assert( !m_sectionStack.empty() );
+            printOpenHeader( currentTestCaseInfo->name );
+
+            if( m_sectionStack.size() > 1 ) {
+                Colour colourGuard( Colour::Headers );
+
+                std::vector<SectionInfo>::const_iterator
+                    it = m_sectionStack.begin()+1, // Skip first section (test case)
+                    itEnd = m_sectionStack.end();
+                for( ; it != itEnd; ++it )
+                    printHeaderString( it->name, 2 );
+            }
+
+            SourceLineInfo lineInfo = m_sectionStack.back().lineInfo;
+
+            if( !lineInfo.empty() ){
+                stream << getLineOfChars<'-'>() << '\n';
+                Colour colourGuard( Colour::FileName );
+                stream << lineInfo << '\n';
+            }
+            stream << getLineOfChars<'.'>() << '\n' << std::endl;
+        }
+
+        void printClosedHeader( std::string const& _name ) {
+            printOpenHeader( _name );
+            stream << getLineOfChars<'.'>() << '\n';
+        }
+        void printOpenHeader( std::string const& _name ) {
+            stream  << getLineOfChars<'-'>() << '\n';
+            {
+                Colour colourGuard( Colour::Headers );
+                printHeaderString( _name );
+            }
+        }
+
+        // if string has a : in first line will set indent to follow it on
+        // subsequent lines
+        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
+            std::size_t i = _string.find( ": " );
+            if( i != std::string::npos )
+                i+=2;
+            else
+                i = 0;
+            stream << Text( _string, TextAttributes()
+                                        .setIndent( indent+i)
+                                        .setInitialIndent( indent ) ) << '\n';
+        }
+
+        struct SummaryColumn {
+
+            SummaryColumn( std::string const& _label, Colour::Code _colour )
+            :   label( _label ),
+                colour( _colour )
+            {}
+            SummaryColumn addRow( std::size_t count ) {
+                std::ostringstream oss;
+                oss << count;
+                std::string row = oss.str();
+                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
+                    while( it->size() < row.size() )
+                        *it = ' ' + *it;
+                    while( it->size() > row.size() )
+                        row = ' ' + row;
+                }
+                rows.push_back( row );
+                return *this;
+            }
+
+            std::string label;
+            Colour::Code colour;
+            std::vector<std::string> rows;
+
+        };
+
+        void printTotals( Totals const& totals ) {
+            if( totals.testCases.total() == 0 ) {
+                stream << Colour( Colour::Warning ) << "No tests ran\n";
+            }
+            else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) {
+                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
+                stream << " ("
+                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
+                        << pluralise( totals.testCases.passed, "test case" ) << ')'
+                        << '\n';
+            }
+            else {
+
+                std::vector<SummaryColumn> columns;
+                columns.push_back( SummaryColumn( "", Colour::None )
+                                        .addRow( totals.testCases.total() )
+                                        .addRow( totals.assertions.total() ) );
+                columns.push_back( SummaryColumn( "passed", Colour::Success )
+                                        .addRow( totals.testCases.passed )
+                                        .addRow( totals.assertions.passed ) );
+                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
+                                        .addRow( totals.testCases.failed )
+                                        .addRow( totals.assertions.failed ) );
+                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
+                                        .addRow( totals.testCases.failedButOk )
+                                        .addRow( totals.assertions.failedButOk ) );
+
+                printSummaryRow( "test cases", columns, 0 );
+                printSummaryRow( "assertions", columns, 1 );
+            }
+        }
+        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
+            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
+                std::string value = it->rows[row];
+                if( it->label.empty() ) {
+                    stream << label << ": ";
+                    if( value != "0" )
+                        stream << value;
+                    else
+                        stream << Colour( Colour::Warning ) << "- none -";
+                }
+                else if( value != "0" ) {
+                    stream  << Colour( Colour::LightGrey ) << " | ";
+                    stream  << Colour( it->colour )
+                            << value << ' ' << it->label;
+                }
+            }
+            stream << '\n';
+        }
+
+        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
+            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
+            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
+        }
+        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
+            if( i > j && i > k )
+                return i;
+            else if( j > k )
+                return j;
+            else
+                return k;
+        }
+
+        void printTotalsDivider( Totals const& totals ) {
+            if( totals.testCases.total() > 0 ) {
+                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
+                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
+                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
+                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
+                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
+
+                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
+                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
+                if( totals.testCases.allPassed() )
+                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
+                else
+                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
+            }
+            else {
+                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
+            }
+            stream << '\n';
+        }
+        void printSummaryDivider() {
+            stream << getLineOfChars<'-'>() << '\n';
+        }
+
+    private:
+        bool m_headerPrinted;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_compact.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+namespace Catch {
+
+    struct CompactReporter : StreamingReporterBase {
+
+        CompactReporter( ReporterConfig const& _config )
+        : StreamingReporterBase( _config )
+        {}
+
+        virtual ~CompactReporter();
+
+        static std::string getDescription() {
+            return "Reports test results on a single line, suitable for IDEs";
+        }
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotals( _testRunStats.totals );
+            stream << '\n' << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            : stream( _stream )
+            , stats( _stats )
+            , result( _stats.assertionResult )
+            , messages( _stats.infoMessages )
+            , itMessage( _stats.infoMessages.begin() )
+            , printInfoMessages( _printInfoMessages )
+            {}
+
+            void print() {
+                printSourceInfo();
+
+                itMessage = messages.begin();
+
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        printResultType( Colour::ResultSuccess, passedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        if ( ! result.hasExpression() )
+                            printRemainingMessages( Colour::None );
+                        else
+                            printRemainingMessages();
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() )
+                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
+                        else
+                            printResultType( Colour::Error, failedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ThrewException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "unexpected exception with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "fatal error condition with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::DidntThrowException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "expected exception, got none" );
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Info:
+                        printResultType( Colour::None, "info" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Warning:
+                        printResultType( Colour::None, "warning" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "explicitly" );
+                        printRemainingMessages( Colour::None );
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        printResultType( Colour::Error, "** internal error **" );
+                        break;
+                }
+            }
+
+        private:
+            // Colour::LightGrey
+
+            static Colour::Code dimColour() { return Colour::FileName; }
+
+#ifdef CATCH_PLATFORM_MAC
+            static const char* failedString() { return "FAILED"; }
+            static const char* passedString() { return "PASSED"; }
+#else
+            static const char* failedString() { return "failed"; }
+            static const char* passedString() { return "passed"; }
+#endif
+
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ':';
+            }
+
+            void printResultType( Colour::Code colour, std::string passOrFail ) const {
+                if( !passOrFail.empty() ) {
+                    {
+                        Colour colourGuard( colour );
+                        stream << ' ' << passOrFail;
+                    }
+                    stream << ':';
+                }
+            }
+
+            void printIssue( std::string issue ) const {
+                stream << ' ' << issue;
+            }
+
+            void printExpressionWas() {
+                if( result.hasExpression() ) {
+                    stream << ';';
+                    {
+                        Colour colour( dimColour() );
+                        stream << " expression was:";
+                    }
+                    printOriginalExpression();
+                }
+            }
+
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    stream << ' ' << result.getExpression();
+                }
+            }
+
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    {
+                        Colour colour( dimColour() );
+                        stream << " for: ";
+                    }
+                    stream << result.getExpandedExpression();
+                }
+            }
+
+            void printMessage() {
+                if ( itMessage != messages.end() ) {
+                    stream << " '" << itMessage->message << '\'';
+                    ++itMessage;
+                }
+            }
+
+            void printRemainingMessages( Colour::Code colour = dimColour() ) {
+                if ( itMessage == messages.end() )
+                    return;
+
+                // using messages.end() directly yields compilation error:
+                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
+                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
+
+                {
+                    Colour colourGuard( colour );
+                    stream << " with " << pluralise( N, "message" ) << ':';
+                }
+
+                for(; itMessage != itEnd; ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
+                        stream << " '" << itMessage->message << '\'';
+                        if ( ++itMessage != itEnd ) {
+                            Colour colourGuard( dimColour() );
+                            stream << " and";
+                        }
+                    }
+                }
+            }
+
+        private:
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            std::vector<MessageInfo> messages;
+            std::vector<MessageInfo>::const_iterator itMessage;
+            bool printInfoMessages;
+        };
+
+        // Colour, message variants:
+        // - white: No tests ran.
+        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
+        // - white: Passed [both/all] N test cases (no assertions).
+        // -   red: Failed N tests cases, failed M assertions.
+        // - green: Passed [both/all] N tests cases with M assertions.
+
+        std::string bothOrAll( std::size_t count ) const {
+            return count == 1 ? std::string() : count == 2 ? "both " : "all " ;
+        }
+
+        void printTotals( const Totals& totals ) const {
+            if( totals.testCases.total() == 0 ) {
+                stream << "No tests ran.";
+            }
+            else if( totals.testCases.failed == totals.testCases.total() ) {
+                Colour colour( Colour::ResultError );
+                const std::string qualify_assertions_failed =
+                    totals.assertions.failed == totals.assertions.total() ?
+                        bothOrAll( totals.assertions.failed ) : std::string();
+                stream <<
+                    "Failed " << bothOrAll( totals.testCases.failed )
+                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << qualify_assertions_failed <<
+                                 pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else if( totals.assertions.total() == 0 ) {
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.total() )
+                              << pluralise( totals.testCases.total(), "test case" )
+                              << " (no assertions).";
+            }
+            else if( totals.assertions.failed ) {
+                Colour colour( Colour::ResultError );
+                stream <<
+                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else {
+                Colour colour( Colour::ResultSuccess );
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.passed )
+                              << pluralise( totals.testCases.passed, "test case"  ) <<
+                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << '.';
+            }
+        }
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
+
+} // end namespace Catch
+
+namespace Catch {
+    // These are all here to avoid warnings about not having any out of line
+    // virtual methods
+    NonCopyable::~NonCopyable() {}
+    IShared::~IShared() {}
+    IStream::~IStream() CATCH_NOEXCEPT {}
+    FileStream::~FileStream() CATCH_NOEXCEPT {}
+    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
+    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
+    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
+    IContext::~IContext() {}
+    IResultCapture::~IResultCapture() {}
+    ITestCase::~ITestCase() {}
+    ITestCaseRegistry::~ITestCaseRegistry() {}
+    IRegistryHub::~IRegistryHub() {}
+    IMutableRegistryHub::~IMutableRegistryHub() {}
+    IExceptionTranslator::~IExceptionTranslator() {}
+    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
+    IReporter::~IReporter() {}
+    IReporterFactory::~IReporterFactory() {}
+    IReporterRegistry::~IReporterRegistry() {}
+    IStreamingReporter::~IStreamingReporter() {}
+    AssertionStats::~AssertionStats() {}
+    SectionStats::~SectionStats() {}
+    TestCaseStats::~TestCaseStats() {}
+    TestGroupStats::~TestGroupStats() {}
+    TestRunStats::~TestRunStats() {}
+    CumulativeReporterBase::SectionNode::~SectionNode() {}
+    CumulativeReporterBase::~CumulativeReporterBase() {}
+
+    StreamingReporterBase::~StreamingReporterBase() {}
+    ConsoleReporter::~ConsoleReporter() {}
+    CompactReporter::~CompactReporter() {}
+    IRunner::~IRunner() {}
+    IMutableContext::~IMutableContext() {}
+    IConfig::~IConfig() {}
+    XmlReporter::~XmlReporter() {}
+    JunitReporter::~JunitReporter() {}
+    TestRegistry::~TestRegistry() {}
+    FreeFunctionTestCase::~FreeFunctionTestCase() {}
+    IGeneratorInfo::~IGeneratorInfo() {}
+    IGeneratorsForTest::~IGeneratorsForTest() {}
+    WildcardPattern::~WildcardPattern() {}
+    TestSpec::Pattern::~Pattern() {}
+    TestSpec::NamePattern::~NamePattern() {}
+    TestSpec::TagPattern::~TagPattern() {}
+    TestSpec::ExcludedPattern::~ExcludedPattern() {}
+
+    Matchers::Impl::StdString::Equals::~Equals() {}
+    Matchers::Impl::StdString::Contains::~Contains() {}
+    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
+    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
+
+    void Config::dummy() {}
+
+    namespace TestCaseTracking {
+        ITracker::~ITracker() {}
+        TrackerBase::~TrackerBase() {}
+        SectionTracker::~SectionTracker() {}
+        IndexTracker::~IndexTracker() {}
+    }
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_MAIN
+// #included from: internal/catch_default_main.hpp
+#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+#ifndef __OBJC__
+
+// Standard C/C++ main entry point
+int main (int argc, char * argv[]) {
+    int result = Catch::Session().run( argc, argv );
+    return ( result < 0xff ? result : 0xff );
+}
+
+#else // __OBJC__
+
+// Objective-C entry point
+int main (int argc, char * const argv[]) {
+#if !CATCH_ARC_ENABLED
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+#endif
+
+    Catch::registerTestMethods();
+    int result = Catch::Session().run( argc, (char* const*)argv );
+
+#if !CATCH_ARC_ENABLED
+    [pool drain];
+#endif
+
+    return ( result < 0xff ? result : 0xff );
+}
+
+#endif // __OBJC__
+
+#endif
+
+#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
+#  undef CLARA_CONFIG_MAIN
+#endif
+
+//////
+
+// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
+#ifdef CATCH_CONFIG_PREFIX_ALL
+
+#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
+#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
+
+#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
+#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
+#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
+#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
+
+#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
+#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
+#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
+#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
+#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
+
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
+#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
+#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
+
+#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
+#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
+
+#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
+#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
+    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
+#else
+    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
+    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
+    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
+#endif
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
+#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
+#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
+#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
+#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+
+// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
+#else
+
+#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
+#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
+
+#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
+#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
+#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
+#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
+
+#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
+#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
+#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
+#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
+#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
+
+#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
+#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
+#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
+#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
+#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
+
+#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
+#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
+    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
+#else
+    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
+    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
+    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
+#endif
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+#endif
+
+#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
+#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
+#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
+#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
+#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
+#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
+
+using Catch::Detail::Approx;
+
+#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json-forwards.h b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json-forwards.h
new file mode 100644
index 0000000..65e8dfb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json-forwards.h
@@ -0,0 +1,324 @@
+/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json-forwards.h"
+/// This header provides forward declaration for all JsonCpp types.
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
+# define JSON_FORWARD_AMALGATED_H_INCLUDED
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+#define JSON_IS_AMALGAMATION
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_CONFIG_H_INCLUDED
+#define JSON_CONFIG_H_INCLUDED
+#include <stddef.h>
+#include <string> //typedef String
+#include <stdint.h> //typedef int64_t, uint64_t
+
+/// If defined, indicates that json library is embedded in CppTL library.
+//# define JSON_IN_CPPTL 1
+
+/// If defined, indicates that json may leverage CppTL library
+//#  define JSON_USE_CPPTL 1
+/// If defined, indicates that cpptl vector based map should be used instead of
+/// std::map
+/// as Value container.
+//#  define JSON_USE_CPPTL_SMALLMAP 1
+
+// If non-zero, the library uses exceptions to report bad input instead of C
+// assertion macros. The default is to use exceptions.
+#ifndef JSON_USE_EXCEPTION
+#define JSON_USE_EXCEPTION 1
+#endif
+
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+/// Remarks: it is automatically defined in the generated amalgated header.
+// #define JSON_IS_AMALGAMATION
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/config.h>
+#ifndef JSON_USE_CPPTL
+#define JSON_USE_CPPTL 1
+#endif
+#endif
+
+#ifdef JSON_IN_CPPTL
+#define JSON_API CPPTL_API
+#elif defined(JSON_DLL_BUILD)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllexport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#elif defined(JSON_DLL)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllimport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#endif // ifdef JSON_IN_CPPTL
+#if !defined(JSON_API)
+#define JSON_API
+#endif
+
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
+
+#if defined(_MSC_VER) // MSVC
+#  if _MSC_VER <= 1200 // MSVC 6
+    // Microsoft Visual Studio 6 only support conversion from __int64 to double
+    // (no conversion from unsigned __int64).
+#    define JSON_USE_INT64_DOUBLE_CONVERSION 1
+    // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
+    // characters in the debug information)
+    // All projects I've ever seen with VS6 were using this globally (not bothering
+    // with pragma push/pop).
+#    pragma warning(disable : 4786)
+#  endif // MSVC 6
+
+#  if _MSC_VER >= 1500 // MSVC 2008
+    /// Indicates that the following function is deprecated.
+#    define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#  endif
+
+#endif // defined(_MSC_VER)
+
+// In c++11 the override keyword allows you to explicity define that a function
+// is intended to override the base-class version.  This makes the code more
+// managable and fixes a set of common hard-to-find bugs.
+#if __cplusplus >= 201103L
+# define JSONCPP_OVERRIDE override
+#elif defined(_MSC_VER) && _MSC_VER > 1600
+# define JSONCPP_OVERRIDE override
+#else
+# define JSONCPP_OVERRIDE
+#endif
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+
+#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif // MSVC >= 2010
+
+#ifdef __clang__
+#if __has_feature(cxx_rvalue_references)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // has_feature
+
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // GXX_EXPERIMENTAL
+
+#endif // __clang__ || __GNUC__
+
+#endif // not defined JSON_HAS_RVALUE_REFERENCES
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+#define JSON_HAS_RVALUE_REFERENCES 0
+#endif
+
+#ifdef __clang__
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#    define JSONCPP_DEPRECATED(message)  __attribute__ ((deprecated(message)))
+#  elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#    define JSONCPP_DEPRECATED(message)  __attribute__((__deprecated__))
+#  endif  // GNUC version
+#endif // __clang__ || __GNUC__
+
+#if !defined(JSONCPP_DEPRECATED)
+#define JSONCPP_DEPRECATED(message)
+#endif // if !defined(JSONCPP_DEPRECATED)
+
+#if __GNUC__ >= 6
+#  define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#endif
+
+#if !defined(JSON_IS_AMALGAMATION)
+
+# include "version.h"
+
+# if JSONCPP_USING_SECURE_MEMORY
+#  include "allocator.h" //typedef Allocator
+# endif
+
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+typedef int Int;
+typedef unsigned int UInt;
+#if defined(JSON_NO_INT64)
+typedef int LargestInt;
+typedef unsigned int LargestUInt;
+#undef JSON_HAS_INT64
+#else                 // if defined(JSON_NO_INT64)
+// For Microsoft Visual use specific types as long long is not supported
+#if defined(_MSC_VER) // Microsoft Visual Studio
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else                 // if defined(_MSC_VER) // Other platforms, use long long
+typedef int64_t Int64;
+typedef uint64_t UInt64;
+#endif // if defined(_MSC_VER)
+typedef Int64 LargestInt;
+typedef UInt64 LargestUInt;
+#define JSON_HAS_INT64
+#endif // if defined(JSON_NO_INT64)
+#if JSONCPP_USING_SECURE_MEMORY
+#define JSONCPP_STRING        std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTREAM       std::basic_ostream<char, std::char_traits<char>>
+#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_ISTREAM       std::istream
+#else
+#define JSONCPP_STRING        std::string
+#define JSONCPP_OSTRINGSTREAM std::ostringstream
+#define JSONCPP_OSTREAM       std::ostream
+#define JSONCPP_ISTRINGSTREAM std::istringstream
+#define JSONCPP_ISTREAM       std::istream
+#endif // if JSONCPP_USING_SECURE_MEMORY
+} // end namespace Json
+
+#endif // JSON_CONFIG_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_FORWARDS_H_INCLUDED
+#define JSON_FORWARDS_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+// writer.h
+class FastWriter;
+class StyledWriter;
+
+// reader.h
+class Reader;
+
+// features.h
+class Features;
+
+// value.h
+typedef unsigned int ArrayIndex;
+class StaticString;
+class Path;
+class PathArgument;
+class Value;
+class ValueIteratorBase;
+class ValueIterator;
+class ValueConstIterator;
+
+} // namespace Json
+
+#endif // JSON_FORWARDS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json.h b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json.h
new file mode 100644
index 0000000..de79502
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/json/json.h
@@ -0,0 +1,2140 @@
+/// Json-cpp amalgated header (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json.h"
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#ifndef JSON_AMALGATED_H_INCLUDED
+# define JSON_AMALGATED_H_INCLUDED
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+#define JSON_IS_AMALGAMATION
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+// DO NOT EDIT. This file (and "version") is generated by CMake.
+// Run CMake configure step to update it.
+#ifndef JSON_VERSION_H_INCLUDED
+# define JSON_VERSION_H_INCLUDED
+
+# define JSONCPP_VERSION_STRING "1.7.7"
+# define JSONCPP_VERSION_MAJOR 1
+# define JSONCPP_VERSION_MINOR 7
+# define JSONCPP_VERSION_PATCH 7
+# define JSONCPP_VERSION_QUALIFIER
+# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8))
+
+#ifdef JSONCPP_USING_SECURE_MEMORY
+#undef JSONCPP_USING_SECURE_MEMORY
+#endif
+#define JSONCPP_USING_SECURE_MEMORY 0
+// If non-zero, the library zeroes any memory that it has allocated before
+// it frees its memory.
+
+#endif // JSON_VERSION_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_CONFIG_H_INCLUDED
+#define JSON_CONFIG_H_INCLUDED
+#include <stddef.h>
+#include <string> //typedef String
+#include <stdint.h> //typedef int64_t, uint64_t
+
+/// If defined, indicates that json library is embedded in CppTL library.
+//# define JSON_IN_CPPTL 1
+
+/// If defined, indicates that json may leverage CppTL library
+//#  define JSON_USE_CPPTL 1
+/// If defined, indicates that cpptl vector based map should be used instead of
+/// std::map
+/// as Value container.
+//#  define JSON_USE_CPPTL_SMALLMAP 1
+
+// If non-zero, the library uses exceptions to report bad input instead of C
+// assertion macros. The default is to use exceptions.
+#ifndef JSON_USE_EXCEPTION
+#define JSON_USE_EXCEPTION 1
+#endif
+
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+/// Remarks: it is automatically defined in the generated amalgated header.
+// #define JSON_IS_AMALGAMATION
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/config.h>
+#ifndef JSON_USE_CPPTL
+#define JSON_USE_CPPTL 1
+#endif
+#endif
+
+#ifdef JSON_IN_CPPTL
+#define JSON_API CPPTL_API
+#elif defined(JSON_DLL_BUILD)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllexport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#elif defined(JSON_DLL)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define JSON_API __declspec(dllimport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#endif // ifdef JSON_IN_CPPTL
+#if !defined(JSON_API)
+#define JSON_API
+#endif
+
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
+
+#if defined(_MSC_VER) // MSVC
+#  if _MSC_VER <= 1200 // MSVC 6
+    // Microsoft Visual Studio 6 only support conversion from __int64 to double
+    // (no conversion from unsigned __int64).
+#    define JSON_USE_INT64_DOUBLE_CONVERSION 1
+    // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
+    // characters in the debug information)
+    // All projects I've ever seen with VS6 were using this globally (not bothering
+    // with pragma push/pop).
+#    pragma warning(disable : 4786)
+#  endif // MSVC 6
+
+#  if _MSC_VER >= 1500 // MSVC 2008
+    /// Indicates that the following function is deprecated.
+#    define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#  endif
+
+#endif // defined(_MSC_VER)
+
+// In c++11 the override keyword allows you to explicity define that a function
+// is intended to override the base-class version.  This makes the code more
+// managable and fixes a set of common hard-to-find bugs.
+#if __cplusplus >= 201103L
+# define JSONCPP_OVERRIDE override
+#elif defined(_MSC_VER) && _MSC_VER > 1600
+# define JSONCPP_OVERRIDE override
+#else
+# define JSONCPP_OVERRIDE
+#endif
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+
+#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif // MSVC >= 2010
+
+#ifdef __clang__
+#if __has_feature(cxx_rvalue_references)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // has_feature
+
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // GXX_EXPERIMENTAL
+
+#endif // __clang__ || __GNUC__
+
+#endif // not defined JSON_HAS_RVALUE_REFERENCES
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+#define JSON_HAS_RVALUE_REFERENCES 0
+#endif
+
+#ifdef __clang__
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#    define JSONCPP_DEPRECATED(message)  __attribute__ ((deprecated(message)))
+#  elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#    define JSONCPP_DEPRECATED(message)  __attribute__((__deprecated__))
+#  endif  // GNUC version
+#endif // __clang__ || __GNUC__
+
+#if !defined(JSONCPP_DEPRECATED)
+#define JSONCPP_DEPRECATED(message)
+#endif // if !defined(JSONCPP_DEPRECATED)
+
+#if __GNUC__ >= 6
+#  define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#endif
+
+#if !defined(JSON_IS_AMALGAMATION)
+
+# include "version.h"
+
+# if JSONCPP_USING_SECURE_MEMORY
+#  include "allocator.h" //typedef Allocator
+# endif
+
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+typedef int Int;
+typedef unsigned int UInt;
+#if defined(JSON_NO_INT64)
+typedef int LargestInt;
+typedef unsigned int LargestUInt;
+#undef JSON_HAS_INT64
+#else                 // if defined(JSON_NO_INT64)
+// For Microsoft Visual use specific types as long long is not supported
+#if defined(_MSC_VER) // Microsoft Visual Studio
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else                 // if defined(_MSC_VER) // Other platforms, use long long
+typedef int64_t Int64;
+typedef uint64_t UInt64;
+#endif // if defined(_MSC_VER)
+typedef Int64 LargestInt;
+typedef UInt64 LargestUInt;
+#define JSON_HAS_INT64
+#endif // if defined(JSON_NO_INT64)
+#if JSONCPP_USING_SECURE_MEMORY
+#define JSONCPP_STRING        std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_OSTREAM       std::basic_ostream<char, std::char_traits<char>>
+#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
+#define JSONCPP_ISTREAM       std::istream
+#else
+#define JSONCPP_STRING        std::string
+#define JSONCPP_OSTRINGSTREAM std::ostringstream
+#define JSONCPP_OSTREAM       std::ostream
+#define JSONCPP_ISTRINGSTREAM std::istringstream
+#define JSONCPP_ISTREAM       std::istream
+#endif // if JSONCPP_USING_SECURE_MEMORY
+} // end namespace Json
+
+#endif // JSON_CONFIG_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/config.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_FORWARDS_H_INCLUDED
+#define JSON_FORWARDS_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+// writer.h
+class FastWriter;
+class StyledWriter;
+
+// reader.h
+class Reader;
+
+// features.h
+class Features;
+
+// value.h
+typedef unsigned int ArrayIndex;
+class StaticString;
+class Path;
+class PathArgument;
+class Value;
+class ValueIteratorBase;
+class ValueIterator;
+class ValueConstIterator;
+
+} // namespace Json
+
+#endif // JSON_FORWARDS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/forwards.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/features.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
+#define CPPTL_JSON_FEATURES_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+/** \brief Configuration passed to reader and writer.
+ * This configuration object can be used to force the Reader or Writer
+ * to behave in a standard conforming way.
+ */
+class JSON_API Features {
+public:
+  /** \brief A configuration that allows all features and assumes all strings
+   * are UTF-8.
+   * - C & C++ comments are allowed
+   * - Root object can be any JSON value
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features all();
+
+  /** \brief A configuration that is strictly compatible with the JSON
+   * specification.
+   * - Comments are forbidden.
+   * - Root object must be either an array or an object value.
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features strictMode();
+
+  /** \brief Initialize the configuration like JsonConfig::allFeatures;
+   */
+  Features();
+
+  /// \c true if comments are allowed. Default: \c true.
+  bool allowComments_;
+
+  /// \c true if root must be either an array or an object value. Default: \c
+  /// false.
+  bool strictRoot_;
+
+  /// \c true if dropped null placeholders are allowed. Default: \c false.
+  bool allowDroppedNullPlaceholders_;
+
+  /// \c true if numeric object key are allowed. Default: \c false.
+  bool allowNumericKeys_;
+};
+
+} // namespace Json
+
+#endif // CPPTL_JSON_FEATURES_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/features.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/value.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_H_INCLUDED
+#define CPPTL_JSON_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <string>
+#include <vector>
+#include <exception>
+
+#ifndef JSON_USE_CPPTL_SMALLMAP
+#include <map>
+#else
+#include <cpptl/smallmap.h>
+#endif
+#ifdef JSON_USE_CPPTL
+#include <cpptl/forwards.h>
+#endif
+
+//Conditional NORETURN attribute on the throw functions would:
+// a) suppress false positives from static code analysis 
+// b) possibly improve optimization opportunities.
+#if !defined(JSONCPP_NORETURN)
+#  if defined(_MSC_VER)
+#    define JSONCPP_NORETURN __declspec(noreturn)
+#  elif defined(__GNUC__)
+#    define JSONCPP_NORETURN __attribute__ ((__noreturn__))
+#  else
+#    define JSONCPP_NORETURN
+#  endif
+#endif
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+/** \brief JSON (JavaScript Object Notation).
+ */
+namespace Json {
+
+/** Base class for all exceptions we throw.
+ *
+ * We use nothing but these internally. Of course, STL can throw others.
+ */
+class JSON_API Exception : public std::exception {
+public:
+  Exception(JSONCPP_STRING const& msg);
+  ~Exception() throw() JSONCPP_OVERRIDE;
+  char const* what() const throw() JSONCPP_OVERRIDE;
+protected:
+  JSONCPP_STRING msg_;
+};
+
+/** Exceptions which the user cannot easily avoid.
+ *
+ * E.g. out-of-memory (when we use malloc), stack-overflow, malicious input
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API RuntimeError : public Exception {
+public:
+  RuntimeError(JSONCPP_STRING const& msg);
+};
+
+/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
+ *
+ * These are precondition-violations (user bugs) and internal errors (our bugs).
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API LogicError : public Exception {
+public:
+  LogicError(JSONCPP_STRING const& msg);
+};
+
+/// used internally
+JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg);
+/// used internally
+JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg);
+
+/** \brief Type of the value held by a Value object.
+ */
+enum ValueType {
+  nullValue = 0, ///< 'null' value
+  intValue,      ///< signed integer value
+  uintValue,     ///< unsigned integer value
+  realValue,     ///< double value
+  stringValue,   ///< UTF-8 string value
+  booleanValue,  ///< bool value
+  arrayValue,    ///< array value (ordered list)
+  objectValue    ///< object value (collection of name/value pairs).
+};
+
+enum CommentPlacement {
+  commentBefore = 0,      ///< a comment placed on the line before a value
+  commentAfterOnSameLine, ///< a comment just after a value on the same line
+  commentAfter, ///< a comment on the line after a value (only make sense for
+  /// root value)
+  numberOfCommentPlacement
+};
+
+//# ifdef JSON_USE_CPPTL
+//   typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
+//   typedef CppTL::AnyEnumerator<const Value &> EnumValues;
+//# endif
+
+/** \brief Lightweight wrapper to tag static string.
+ *
+ * Value constructor and objectValue member assignement takes advantage of the
+ * StaticString and avoid the cost of string duplication when storing the
+ * string or the member name.
+ *
+ * Example of usage:
+ * \code
+ * Json::Value aValue( StaticString("some text") );
+ * Json::Value object;
+ * static const StaticString code("code");
+ * object[code] = 1234;
+ * \endcode
+ */
+class JSON_API StaticString {
+public:
+  explicit StaticString(const char* czstring) : c_str_(czstring) {}
+
+  operator const char*() const { return c_str_; }
+
+  const char* c_str() const { return c_str_; }
+
+private:
+  const char* c_str_;
+};
+
+/** \brief Represents a <a HREF="http://www.json.org">JSON</a> value.
+ *
+ * This class is a discriminated union wrapper that can represents a:
+ * - signed integer [range: Value::minInt - Value::maxInt]
+ * - unsigned integer (range: 0 - Value::maxUInt)
+ * - double
+ * - UTF-8 string
+ * - boolean
+ * - 'null'
+ * - an ordered list of Value
+ * - collection of name/value pairs (javascript object)
+ *
+ * The type of the held value is represented by a #ValueType and
+ * can be obtained using type().
+ *
+ * Values of an #objectValue or #arrayValue can be accessed using operator[]()
+ * methods.
+ * Non-const methods will automatically create the a #nullValue element
+ * if it does not exist.
+ * The sequence of an #arrayValue will be automatically resized and initialized
+ * with #nullValue. resize() can be used to enlarge or truncate an #arrayValue.
+ *
+ * The get() methods can be used to obtain default value in the case the
+ * required element does not exist.
+ *
+ * It is possible to iterate over the list of a #objectValue values using
+ * the getMemberNames() method.
+ *
+ * \note #Value string-length fit in size_t, but keys must be < 2^30.
+ * (The reason is an implementation detail.) A #CharReader will raise an
+ * exception if a bound is exceeded to avoid security holes in your app,
+ * but the Value API does *not* check bounds. That is the responsibility
+ * of the caller.
+ */
+class JSON_API Value {
+  friend class ValueIteratorBase;
+public:
+  typedef std::vector<JSONCPP_STRING> Members;
+  typedef ValueIterator iterator;
+  typedef ValueConstIterator const_iterator;
+  typedef Json::UInt UInt;
+  typedef Json::Int Int;
+#if defined(JSON_HAS_INT64)
+  typedef Json::UInt64 UInt64;
+  typedef Json::Int64 Int64;
+#endif // defined(JSON_HAS_INT64)
+  typedef Json::LargestInt LargestInt;
+  typedef Json::LargestUInt LargestUInt;
+  typedef Json::ArrayIndex ArrayIndex;
+
+  static const Value& null;  ///< We regret this reference to a global instance; prefer the simpler Value().
+  static const Value& nullRef;  ///< just a kludge for binary-compatibility; same as null
+  static Value const& nullSingleton(); ///< Prefer this to null or nullRef.
+
+  /// Minimum signed integer value that can be stored in a Json::Value.
+  static const LargestInt minLargestInt;
+  /// Maximum signed integer value that can be stored in a Json::Value.
+  static const LargestInt maxLargestInt;
+  /// Maximum unsigned integer value that can be stored in a Json::Value.
+  static const LargestUInt maxLargestUInt;
+
+  /// Minimum signed int value that can be stored in a Json::Value.
+  static const Int minInt;
+  /// Maximum signed int value that can be stored in a Json::Value.
+  static const Int maxInt;
+  /// Maximum unsigned int value that can be stored in a Json::Value.
+  static const UInt maxUInt;
+
+#if defined(JSON_HAS_INT64)
+  /// Minimum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 minInt64;
+  /// Maximum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 maxInt64;
+  /// Maximum unsigned 64 bits int value that can be stored in a Json::Value.
+  static const UInt64 maxUInt64;
+#endif // defined(JSON_HAS_INT64)
+
+private:
+#ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+  class CZString {
+  public:
+    enum DuplicationPolicy {
+      noDuplication = 0,
+      duplicate,
+      duplicateOnCopy
+    };
+    CZString(ArrayIndex index);
+    CZString(char const* str, unsigned length, DuplicationPolicy allocate);
+    CZString(CZString const& other);
+#if JSON_HAS_RVALUE_REFERENCES
+    CZString(CZString&& other);
+#endif
+    ~CZString();
+    CZString& operator=(CZString other);
+    bool operator<(CZString const& other) const;
+    bool operator==(CZString const& other) const;
+    ArrayIndex index() const;
+    //const char* c_str() const; ///< \deprecated
+    char const* data() const;
+    unsigned length() const;
+    bool isStaticString() const;
+
+  private:
+    void swap(CZString& other);
+
+    struct StringStorage {
+      unsigned policy_: 2;
+      unsigned length_: 30; // 1GB max
+    };
+
+    char const* cstr_;  // actually, a prefixed string, unless policy is noDup
+    union {
+      ArrayIndex index_;
+      StringStorage storage_;
+    };
+  };
+
+public:
+#ifndef JSON_USE_CPPTL_SMALLMAP
+  typedef std::map<CZString, Value> ObjectValues;
+#else
+  typedef CppTL::SmallMap<CZString, Value> ObjectValues;
+#endif // ifndef JSON_USE_CPPTL_SMALLMAP
+#endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+
+public:
+  /** \brief Create a default Value of the given type.
+
+    This is a very useful constructor.
+    To create an empty array, pass arrayValue.
+    To create an empty object, pass objectValue.
+    Another Value can then be set to this one by assignment.
+This is useful since clear() and resize() will not alter types.
+
+    Examples:
+\code
+Json::Value null_value; // null
+Json::Value arr_value(Json::arrayValue); // []
+Json::Value obj_value(Json::objectValue); // {}
+\endcode
+  */
+  Value(ValueType type = nullValue);
+  Value(Int value);
+  Value(UInt value);
+#if defined(JSON_HAS_INT64)
+  Value(Int64 value);
+  Value(UInt64 value);
+#endif // if defined(JSON_HAS_INT64)
+  Value(double value);
+  Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.)
+  Value(const char* begin, const char* end); ///< Copy all, incl zeroes.
+  /** \brief Constructs a value from a static string.
+
+   * Like other value string constructor but do not duplicate the string for
+   * internal storage. The given string must remain alive after the call to this
+   * constructor.
+   * \note This works only for null-terminated strings. (We cannot change the
+   *   size of this class, so we have nowhere to store the length,
+   *   which might be computed later for various operations.)
+   *
+   * Example of usage:
+   * \code
+   * static StaticString foo("some text");
+   * Json::Value aValue(foo);
+   * \endcode
+   */
+  Value(const StaticString& value);
+  Value(const JSONCPP_STRING& value); ///< Copy data() til size(). Embedded zeroes too.
+#ifdef JSON_USE_CPPTL
+  Value(const CppTL::ConstString& value);
+#endif
+  Value(bool value);
+  /// Deep copy.
+  Value(const Value& other);
+#if JSON_HAS_RVALUE_REFERENCES
+  /// Move constructor
+  Value(Value&& other);
+#endif
+  ~Value();
+
+  /// Deep copy, then swap(other).
+  /// \note Over-write existing comments. To preserve comments, use #swapPayload().
+  Value& operator=(Value other);
+  /// Swap everything.
+  void swap(Value& other);
+  /// Swap values but leave comments and source offsets in place.
+  void swapPayload(Value& other);
+
+  ValueType type() const;
+
+  /// Compare payload only, not comments etc.
+  bool operator<(const Value& other) const;
+  bool operator<=(const Value& other) const;
+  bool operator>=(const Value& other) const;
+  bool operator>(const Value& other) const;
+  bool operator==(const Value& other) const;
+  bool operator!=(const Value& other) const;
+  int compare(const Value& other) const;
+
+  const char* asCString() const; ///< Embedded zeroes could cause you trouble!
+#if JSONCPP_USING_SECURE_MEMORY
+  unsigned getCStringLength() const; //Allows you to understand the length of the CString
+#endif
+  JSONCPP_STRING asString() const; ///< Embedded zeroes are possible.
+  /** Get raw char* of string-value.
+   *  \return false if !string. (Seg-fault if str or end are NULL.)
+   */
+  bool getString(
+      char const** begin, char const** end) const;
+#ifdef JSON_USE_CPPTL
+  CppTL::ConstString asConstString() const;
+#endif
+  Int asInt() const;
+  UInt asUInt() const;
+#if defined(JSON_HAS_INT64)
+  Int64 asInt64() const;
+  UInt64 asUInt64() const;
+#endif // if defined(JSON_HAS_INT64)
+  LargestInt asLargestInt() const;
+  LargestUInt asLargestUInt() const;
+  float asFloat() const;
+  double asDouble() const;
+  bool asBool() const;
+
+  bool isNull() const;
+  bool isBool() const;
+  bool isInt() const;
+  bool isInt64() const;
+  bool isUInt() const;
+  bool isUInt64() const;
+  bool isIntegral() const;
+  bool isDouble() const;
+  bool isNumeric() const;
+  bool isString() const;
+  bool isArray() const;
+  bool isObject() const;
+
+  bool isConvertibleTo(ValueType other) const;
+
+  /// Number of values in array or object
+  ArrayIndex size() const;
+
+  /// \brief Return true if empty array, empty object, or null;
+  /// otherwise, false.
+  bool empty() const;
+
+  /// Return isNull()
+  bool operator!() const;
+
+  /// Remove all object members and array elements.
+  /// \pre type() is arrayValue, objectValue, or nullValue
+  /// \post type() is unchanged
+  void clear();
+
+  /// Resize the array to size elements.
+  /// New elements are initialized to null.
+  /// May only be called on nullValue or arrayValue.
+  /// \pre type() is arrayValue or nullValue
+  /// \post type() is arrayValue
+  void resize(ArrayIndex size);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](ArrayIndex index);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](int index);
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](ArrayIndex index) const;
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](int index) const;
+
+  /// If the array contains at least index+1 elements, returns the element
+  /// value,
+  /// otherwise returns defaultValue.
+  Value get(ArrayIndex index, const Value& defaultValue) const;
+  /// Return true if index < size().
+  bool isValidIndex(ArrayIndex index) const;
+  /// \brief Append value to array at the end.
+  ///
+  /// Equivalent to jsonvalue[jsonvalue.size()] = value;
+  Value& append(const Value& value);
+
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \note Because of our implementation, keys are limited to 2^30 -1 chars.
+  ///  Exceeding that will cause an exception.
+  Value& operator[](const char* key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const char* key) const;
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \param key may contain embedded nulls.
+  Value& operator[](const JSONCPP_STRING& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  /// \param key may contain embedded nulls.
+  const Value& operator[](const JSONCPP_STRING& key) const;
+  /** \brief Access an object value by name, create a null member if it does not
+   exist.
+
+   * If the object has no entry for that name, then the member name used to store
+   * the new entry is not duplicated.
+   * Example of use:
+   * \code
+   * Json::Value object;
+   * static const StaticString code("code");
+   * object[code] = 1234;
+   * \endcode
+   */
+  Value& operator[](const StaticString& key);
+#ifdef JSON_USE_CPPTL
+  /// Access an object value by name, create a null member if it does not exist.
+  Value& operator[](const CppTL::ConstString& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const CppTL::ConstString& key) const;
+#endif
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const char* key, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \note key may contain embedded nulls.
+  Value get(const char* begin, const char* end, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \param key may contain embedded nulls.
+  Value get(const JSONCPP_STRING& key, const Value& defaultValue) const;
+#ifdef JSON_USE_CPPTL
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const CppTL::ConstString& key, const Value& defaultValue) const;
+#endif
+  /// Most general and efficient version of isMember()const, get()const,
+  /// and operator[]const
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  Value const* find(char const* begin, char const* end) const;
+  /// Most general and efficient version of object-mutators.
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue.
+  Value const* demand(char const* begin, char const* end);
+  /// \brief Remove and return the named member.
+  ///
+  /// Do nothing if it did not exist.
+  /// \return the removed Value, or null.
+  /// \pre type() is objectValue or nullValue
+  /// \post type() is unchanged
+  /// \deprecated
+  Value removeMember(const char* key);
+  /// Same as removeMember(const char*)
+  /// \param key may contain embedded nulls.
+  /// \deprecated
+  Value removeMember(const JSONCPP_STRING& key);
+  /// Same as removeMember(const char* begin, const char* end, Value* removed),
+  /// but 'key' is null-terminated.
+  bool removeMember(const char* key, Value* removed);
+  /** \brief Remove the named map member.
+
+      Update 'removed' iff removed.
+      \param key may contain embedded nulls.
+      \return true iff removed (no exceptions)
+  */
+  bool removeMember(JSONCPP_STRING const& key, Value* removed);
+  /// Same as removeMember(JSONCPP_STRING const& key, Value* removed)
+  bool removeMember(const char* begin, const char* end, Value* removed);
+  /** \brief Remove the indexed array element.
+
+      O(n) expensive operations.
+      Update 'removed' iff removed.
+      \return true iff removed (no exceptions)
+  */
+  bool removeIndex(ArrayIndex i, Value* removed);
+
+  /// Return true if the object has a member named key.
+  /// \note 'key' must be null-terminated.
+  bool isMember(const char* key) const;
+  /// Return true if the object has a member named key.
+  /// \param key may contain embedded nulls.
+  bool isMember(const JSONCPP_STRING& key) const;
+  /// Same as isMember(JSONCPP_STRING const& key)const
+  bool isMember(const char* begin, const char* end) const;
+#ifdef JSON_USE_CPPTL
+  /// Return true if the object has a member named key.
+  bool isMember(const CppTL::ConstString& key) const;
+#endif
+
+  /// \brief Return a list of the member names.
+  ///
+  /// If null, return an empty list.
+  /// \pre type() is objectValue or nullValue
+  /// \post if type() was nullValue, it remains nullValue
+  Members getMemberNames() const;
+
+  //# ifdef JSON_USE_CPPTL
+  //      EnumMemberNames enumMemberNames() const;
+  //      EnumValues enumValues() const;
+  //# endif
+
+  /// \deprecated Always pass len.
+  JSONCPP_DEPRECATED("Use setComment(JSONCPP_STRING const&) instead.")
+  void setComment(const char* comment, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const char* comment, size_t len, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const JSONCPP_STRING& comment, CommentPlacement placement);
+  bool hasComment(CommentPlacement placement) const;
+  /// Include delimiters and embedded newlines.
+  JSONCPP_STRING getComment(CommentPlacement placement) const;
+
+  JSONCPP_STRING toStyledString() const;
+
+  const_iterator begin() const;
+  const_iterator end() const;
+
+  iterator begin();
+  iterator end();
+
+  // Accessors for the [start, limit) range of bytes within the JSON text from
+  // which this value was parsed, if any.
+  void setOffsetStart(ptrdiff_t start);
+  void setOffsetLimit(ptrdiff_t limit);
+  ptrdiff_t getOffsetStart() const;
+  ptrdiff_t getOffsetLimit() const;
+
+private:
+  void initBasic(ValueType type, bool allocated = false);
+
+  Value& resolveReference(const char* key);
+  Value& resolveReference(const char* key, const char* end);
+
+  struct CommentInfo {
+    CommentInfo();
+    ~CommentInfo();
+
+    void setComment(const char* text, size_t len);
+
+    char* comment_;
+  };
+
+  // struct MemberNamesTransform
+  //{
+  //   typedef const char *result_type;
+  //   const char *operator()( const CZString &name ) const
+  //   {
+  //      return name.c_str();
+  //   }
+  //};
+
+  union ValueHolder {
+    LargestInt int_;
+    LargestUInt uint_;
+    double real_;
+    bool bool_;
+    char* string_;  // actually ptr to unsigned, followed by str, unless !allocated_
+    ObjectValues* map_;
+  } value_;
+  ValueType type_ : 8;
+  unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless.
+                               // If not allocated_, string_ must be null-terminated.
+  CommentInfo* comments_;
+
+  // [start, limit) byte offsets in the source JSON text from which this Value
+  // was extracted.
+  ptrdiff_t start_;
+  ptrdiff_t limit_;
+};
+
+/** \brief Experimental and untested: represents an element of the "path" to
+ * access a node.
+ */
+class JSON_API PathArgument {
+public:
+  friend class Path;
+
+  PathArgument();
+  PathArgument(ArrayIndex index);
+  PathArgument(const char* key);
+  PathArgument(const JSONCPP_STRING& key);
+
+private:
+  enum Kind {
+    kindNone = 0,
+    kindIndex,
+    kindKey
+  };
+  JSONCPP_STRING key_;
+  ArrayIndex index_;
+  Kind kind_;
+};
+
+/** \brief Experimental and untested: represents a "path" to access a node.
+ *
+ * Syntax:
+ * - "." => root node
+ * - ".[n]" => elements at index 'n' of root node (an array value)
+ * - ".name" => member named 'name' of root node (an object value)
+ * - ".name1.name2.name3"
+ * - ".[0][1][2].name1[3]"
+ * - ".%" => member name is provided as parameter
+ * - ".[%]" => index is provied as parameter
+ */
+class JSON_API Path {
+public:
+  Path(const JSONCPP_STRING& path,
+       const PathArgument& a1 = PathArgument(),
+       const PathArgument& a2 = PathArgument(),
+       const PathArgument& a3 = PathArgument(),
+       const PathArgument& a4 = PathArgument(),
+       const PathArgument& a5 = PathArgument());
+
+  const Value& resolve(const Value& root) const;
+  Value resolve(const Value& root, const Value& defaultValue) const;
+  /// Creates the "path" to access the specified node and returns a reference on
+  /// the node.
+  Value& make(Value& root) const;
+
+private:
+  typedef std::vector<const PathArgument*> InArgs;
+  typedef std::vector<PathArgument> Args;
+
+  void makePath(const JSONCPP_STRING& path, const InArgs& in);
+  void addPathInArg(const JSONCPP_STRING& path,
+                    const InArgs& in,
+                    InArgs::const_iterator& itInArg,
+                    PathArgument::Kind kind);
+  void invalidPath(const JSONCPP_STRING& path, int location);
+
+  Args args_;
+};
+
+/** \brief base class for Value iterators.
+ *
+ */
+class JSON_API ValueIteratorBase {
+public:
+  typedef std::bidirectional_iterator_tag iterator_category;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef ValueIteratorBase SelfType;
+
+  bool operator==(const SelfType& other) const { return isEqual(other); }
+
+  bool operator!=(const SelfType& other) const { return !isEqual(other); }
+
+  difference_type operator-(const SelfType& other) const {
+    return other.computeDistance(*this);
+  }
+
+  /// Return either the index or the member name of the referenced value as a
+  /// Value.
+  Value key() const;
+
+  /// Return the index of the referenced Value, or -1 if it is not an arrayValue.
+  UInt index() const;
+
+  /// Return the member name of the referenced Value, or "" if it is not an
+  /// objectValue.
+  /// \note Avoid `c_str()` on result, as embedded zeroes are possible.
+  JSONCPP_STRING name() const;
+
+  /// Return the member name of the referenced Value. "" if it is not an
+  /// objectValue.
+  /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls.
+  JSONCPP_DEPRECATED("Use `key = name();` instead.")
+  char const* memberName() const;
+  /// Return the member name of the referenced Value, or NULL if it is not an
+  /// objectValue.
+  /// \note Better version than memberName(). Allows embedded nulls.
+  char const* memberName(char const** end) const;
+
+protected:
+  Value& deref() const;
+
+  void increment();
+
+  void decrement();
+
+  difference_type computeDistance(const SelfType& other) const;
+
+  bool isEqual(const SelfType& other) const;
+
+  void copy(const SelfType& other);
+
+private:
+  Value::ObjectValues::iterator current_;
+  // Indicates that iterator is for a null value.
+  bool isNull_;
+
+public:
+  // For some reason, BORLAND needs these at the end, rather
+  // than earlier. No idea why.
+  ValueIteratorBase();
+  explicit ValueIteratorBase(const Value::ObjectValues::iterator& current);
+};
+
+/** \brief const iterator for object and array value.
+ *
+ */
+class JSON_API ValueConstIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef const Value value_type;
+  //typedef unsigned int size_t;
+  //typedef int difference_type;
+  typedef const Value& reference;
+  typedef const Value* pointer;
+  typedef ValueConstIterator SelfType;
+
+  ValueConstIterator();
+  ValueConstIterator(ValueIterator const& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueConstIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const ValueIteratorBase& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+/** \brief Iterator for object and array value.
+ */
+class JSON_API ValueIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef Value value_type;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef Value& reference;
+  typedef Value* pointer;
+  typedef ValueIterator SelfType;
+
+  ValueIterator();
+  explicit ValueIterator(const ValueConstIterator& other);
+  ValueIterator(const ValueIterator& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const SelfType& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+} // namespace Json
+
+
+namespace std {
+/// Specialize std::swap() for Json::Value.
+template<>
+inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
+}
+
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // CPPTL_JSON_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/value.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/reader.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_READER_H_INCLUDED
+#define CPPTL_JSON_READER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "features.h"
+#include "value.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <deque>
+#include <iosfwd>
+#include <stack>
+#include <string>
+#include <istream>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+/** \brief Unserialize a <a HREF="http://www.json.org">JSON</a> document into a
+ *Value.
+ *
+ * \deprecated Use CharReader and CharReaderBuilder.
+ */
+class JSON_API Reader {
+public:
+  typedef char Char;
+  typedef const Char* Location;
+
+  /** \brief An error tagged with where in the JSON text it was encountered.
+   *
+   * The offsets give the [start, limit) range of bytes within the text. Note
+   * that this is bytes, not codepoints.
+   *
+   */
+  struct StructuredError {
+    ptrdiff_t offset_start;
+    ptrdiff_t offset_limit;
+    JSONCPP_STRING message;
+  };
+
+  /** \brief Constructs a Reader allowing all features
+   * for parsing.
+   */
+  Reader();
+
+  /** \brief Constructs a Reader allowing the specified feature set
+   * for parsing.
+   */
+  Reader(const Features& features);
+
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   * document.
+   * \param document UTF-8 encoded string containing the document to read.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param collectComments \c true to collect comment and allow writing them
+   * back during
+   *                        serialization, \c false to discard comments.
+   *                        This parameter is ignored if
+   * Features::allowComments_
+   *                        is \c false.
+   * \return \c true if the document was successfully parsed, \c false if an
+   * error occurred.
+   */
+  bool
+  parse(const std::string& document, Value& root, bool collectComments = true);
+
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   document.
+   * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
+   document to read.
+   * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+   document to read.
+   *               Must be >= beginDoc.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param collectComments \c true to collect comment and allow writing them
+   back during
+   *                        serialization, \c false to discard comments.
+   *                        This parameter is ignored if
+   Features::allowComments_
+   *                        is \c false.
+   * \return \c true if the document was successfully parsed, \c false if an
+   error occurred.
+   */
+  bool parse(const char* beginDoc,
+             const char* endDoc,
+             Value& root,
+             bool collectComments = true);
+
+  /// \brief Parse from input stream.
+  /// \see Json::operator>>(std::istream&, Json::Value&).
+  bool parse(JSONCPP_ISTREAM& is, Value& root, bool collectComments = true);
+
+  /** \brief Returns a user friendly string that list errors in the parsed
+   * document.
+   * \return Formatted error message with the list of errors with their location
+   * in
+   *         the parsed document. An empty string is returned if no error
+   * occurred
+   *         during parsing.
+   * \deprecated Use getFormattedErrorMessages() instead (typo fix).
+   */
+  JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.")
+  JSONCPP_STRING getFormatedErrorMessages() const;
+
+  /** \brief Returns a user friendly string that list errors in the parsed
+   * document.
+   * \return Formatted error message with the list of errors with their location
+   * in
+   *         the parsed document. An empty string is returned if no error
+   * occurred
+   *         during parsing.
+   */
+  JSONCPP_STRING getFormattedErrorMessages() const;
+
+  /** \brief Returns a vector of structured erros encounted while parsing.
+   * \return A (possibly empty) vector of StructuredError objects. Currently
+   *         only one error can be returned, but the caller should tolerate
+   * multiple
+   *         errors.  This can occur if the parser recovers from a non-fatal
+   *         parse error and then encounters additional errors.
+   */
+  std::vector<StructuredError> getStructuredErrors() const;
+
+  /** \brief Add a semantic error message.
+   * \param value JSON Value location associated with the error
+   * \param message The error message.
+   * \return \c true if the error was successfully added, \c false if the
+   * Value offset exceeds the document size.
+   */
+  bool pushError(const Value& value, const JSONCPP_STRING& message);
+
+  /** \brief Add a semantic error message with extra context.
+   * \param value JSON Value location associated with the error
+   * \param message The error message.
+   * \param extra Additional JSON Value location to contextualize the error
+   * \return \c true if the error was successfully added, \c false if either
+   * Value offset exceeds the document size.
+   */
+  bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
+
+  /** \brief Return whether there are any errors.
+   * \return \c true if there are no errors to report \c false if
+   * errors have occurred.
+   */
+  bool good() const;
+
+private:
+  enum TokenType {
+    tokenEndOfStream = 0,
+    tokenObjectBegin,
+    tokenObjectEnd,
+    tokenArrayBegin,
+    tokenArrayEnd,
+    tokenString,
+    tokenNumber,
+    tokenTrue,
+    tokenFalse,
+    tokenNull,
+    tokenArraySeparator,
+    tokenMemberSeparator,
+    tokenComment,
+    tokenError
+  };
+
+  class Token {
+  public:
+    TokenType type_;
+    Location start_;
+    Location end_;
+  };
+
+  class ErrorInfo {
+  public:
+    Token token_;
+    JSONCPP_STRING message_;
+    Location extra_;
+  };
+
+  typedef std::deque<ErrorInfo> Errors;
+
+  bool readToken(Token& token);
+  void skipSpaces();
+  bool match(Location pattern, int patternLength);
+  bool readComment();
+  bool readCStyleComment();
+  bool readCppStyleComment();
+  bool readString();
+  void readNumber();
+  bool readValue();
+  bool readObject(Token& token);
+  bool readArray(Token& token);
+  bool decodeNumber(Token& token);
+  bool decodeNumber(Token& token, Value& decoded);
+  bool decodeString(Token& token);
+  bool decodeString(Token& token, JSONCPP_STRING& decoded);
+  bool decodeDouble(Token& token);
+  bool decodeDouble(Token& token, Value& decoded);
+  bool decodeUnicodeCodePoint(Token& token,
+                              Location& current,
+                              Location end,
+                              unsigned int& unicode);
+  bool decodeUnicodeEscapeSequence(Token& token,
+                                   Location& current,
+                                   Location end,
+                                   unsigned int& unicode);
+  bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+  bool recoverFromError(TokenType skipUntilToken);
+  bool addErrorAndRecover(const JSONCPP_STRING& message,
+                          Token& token,
+                          TokenType skipUntilToken);
+  void skipUntilSpace();
+  Value& currentValue();
+  Char getNextChar();
+  void
+  getLocationLineAndColumn(Location location, int& line, int& column) const;
+  JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+  void addComment(Location begin, Location end, CommentPlacement placement);
+  void skipCommentTokens(Token& token);
+
+  typedef std::stack<Value*> Nodes;
+  Nodes nodes_;
+  Errors errors_;
+  JSONCPP_STRING document_;
+  Location begin_;
+  Location end_;
+  Location current_;
+  Location lastValueEnd_;
+  Value* lastValue_;
+  JSONCPP_STRING commentsBefore_;
+  Features features_;
+  bool collectComments_;
+};  // Reader
+
+/** Interface for reading JSON from a char array.
+ */
+class JSON_API CharReader {
+public:
+  virtual ~CharReader() {}
+  /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+   document.
+   * The document must be a UTF-8 encoded string containing the document to read.
+   *
+   * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
+   document to read.
+   * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+   document to read.
+   *        Must be >= beginDoc.
+   * \param root [out] Contains the root value of the document if it was
+   *             successfully parsed.
+   * \param errs [out] Formatted error messages (if not NULL)
+   *        a user friendly string that lists errors in the parsed
+   * document.
+   * \return \c true if the document was successfully parsed, \c false if an
+   error occurred.
+   */
+  virtual bool parse(
+      char const* beginDoc, char const* endDoc,
+      Value* root, JSONCPP_STRING* errs) = 0;
+
+  class JSON_API Factory {
+  public:
+    virtual ~Factory() {}
+    /** \brief Allocate a CharReader via operator new().
+     * \throw std::exception if something goes wrong (e.g. invalid settings)
+     */
+    virtual CharReader* newCharReader() const = 0;
+  };  // Factory
+};  // CharReader
+
+/** \brief Build a CharReader implementation.
+
+Usage:
+\code
+  using namespace Json;
+  CharReaderBuilder builder;
+  builder["collectComments"] = false;
+  Value value;
+  JSONCPP_STRING errs;
+  bool ok = parseFromStream(builder, std::cin, &value, &errs);
+\endcode
+*/
+class JSON_API CharReaderBuilder : public CharReader::Factory {
+public:
+  // Note: We use a Json::Value so that we can add data-members to this class
+  // without a major version bump.
+  /** Configuration of this builder.
+    These are case-sensitive.
+    Available settings (case-sensitive):
+    - `"collectComments": false or true`
+      - true to collect comment and allow writing them
+        back during serialization, false to discard comments.
+        This parameter is ignored if allowComments is false.
+    - `"allowComments": false or true`
+      - true if comments are allowed.
+    - `"strictRoot": false or true`
+      - true if root must be either an array or an object value
+    - `"allowDroppedNullPlaceholders": false or true`
+      - true if dropped null placeholders are allowed. (See StreamWriterBuilder.)
+    - `"allowNumericKeys": false or true`
+      - true if numeric object keys are allowed.
+    - `"allowSingleQuotes": false or true`
+      - true if '' are allowed for strings (both keys and values)
+    - `"stackLimit": integer`
+      - Exceeding stackLimit (recursive depth of `readValue()`) will
+        cause an exception.
+      - This is a security issue (seg-faults caused by deeply nested JSON),
+        so the default is low.
+    - `"failIfExtra": false or true`
+      - If true, `parse()` returns false when extra non-whitespace trails
+        the JSON value in the input string.
+    - `"rejectDupKeys": false or true`
+      - If true, `parse()` returns false when a key is duplicated within an object.
+    - `"allowSpecialFloats": false or true`
+      - If true, special float values (NaNs and infinities) are allowed 
+        and their values are lossfree restorable.
+
+    You can examine 'settings_` yourself
+    to see the defaults. You can also write and read them just like any
+    JSON Value.
+    \sa setDefaults()
+    */
+  Json::Value settings_;
+
+  CharReaderBuilder();
+  ~CharReaderBuilder() JSONCPP_OVERRIDE;
+
+  CharReader* newCharReader() const JSONCPP_OVERRIDE;
+
+  /** \return true if 'settings' are legal and consistent;
+   *   otherwise, indicate bad settings via 'invalid'.
+   */
+  bool validate(Json::Value* invalid) const;
+
+  /** A simple way to update a specific setting.
+   */
+  Value& operator[](JSONCPP_STRING key);
+
+  /** Called by ctor, but you can use this to reset settings_.
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_reader.cpp CharReaderBuilderDefaults
+   */
+  static void setDefaults(Json::Value* settings);
+  /** Same as old Features::strictMode().
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode
+   */
+  static void strictMode(Json::Value* settings);
+};
+
+/** Consume entire stream and use its begin/end.
+  * Someday we might have a real StreamReader, but for now this
+  * is convenient.
+  */
+bool JSON_API parseFromStream(
+    CharReader::Factory const&,
+    JSONCPP_ISTREAM&,
+    Value* root, std::string* errs);
+
+/** \brief Read from 'sin' into 'root'.
+
+ Always keep comments from the input JSON.
+
+ This can be used to read a file into a particular sub-object.
+ For example:
+ \code
+ Json::Value root;
+ cin >> root["dir"]["file"];
+ cout << root;
+ \endcode
+ Result:
+ \verbatim
+ {
+ "dir": {
+     "file": {
+     // The input stream JSON would be nested here.
+     }
+ }
+ }
+ \endverbatim
+ \throw std::exception on parse error.
+ \see Json::operator<<()
+*/
+JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&);
+
+} // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // CPPTL_JSON_READER_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/reader.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/writer.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_WRITER_H_INCLUDED
+#define JSON_WRITER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "value.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <vector>
+#include <string>
+#include <ostream>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+class Value;
+
+/**
+
+Usage:
+\code
+  using namespace Json;
+  void writeToStdout(StreamWriter::Factory const& factory, Value const& value) {
+    std::unique_ptr<StreamWriter> const writer(
+      factory.newStreamWriter());
+    writer->write(value, &std::cout);
+    std::cout << std::endl;  // add lf and flush
+  }
+\endcode
+*/
+class JSON_API StreamWriter {
+protected:
+  JSONCPP_OSTREAM* sout_;  // not owned; will not delete
+public:
+  StreamWriter();
+  virtual ~StreamWriter();
+  /** Write Value into document as configured in sub-class.
+      Do not take ownership of sout, but maintain a reference during function.
+      \pre sout != NULL
+      \return zero on success (For now, we always return zero, so check the stream instead.)
+      \throw std::exception possibly, depending on configuration
+   */
+  virtual int write(Value const& root, JSONCPP_OSTREAM* sout) = 0;
+
+  /** \brief A simple abstract factory.
+   */
+  class JSON_API Factory {
+  public:
+    virtual ~Factory();
+    /** \brief Allocate a CharReader via operator new().
+     * \throw std::exception if something goes wrong (e.g. invalid settings)
+     */
+    virtual StreamWriter* newStreamWriter() const = 0;
+  };  // Factory
+};  // StreamWriter
+
+/** \brief Write into stringstream, then return string, for convenience.
+ * A StreamWriter will be created from the factory, used, and then deleted.
+ */
+JSONCPP_STRING JSON_API writeString(StreamWriter::Factory const& factory, Value const& root);
+
+
+/** \brief Build a StreamWriter implementation.
+
+Usage:
+\code
+  using namespace Json;
+  Value value = ...;
+  StreamWriterBuilder builder;
+  builder["commentStyle"] = "None";
+  builder["indentation"] = "   ";  // or whatever you like
+  std::unique_ptr<Json::StreamWriter> writer(
+      builder.newStreamWriter());
+  writer->write(value, &std::cout);
+  std::cout << std::endl;  // add lf and flush
+\endcode
+*/
+class JSON_API StreamWriterBuilder : public StreamWriter::Factory {
+public:
+  // Note: We use a Json::Value so that we can add data-members to this class
+  // without a major version bump.
+  /** Configuration of this builder.
+    Available settings (case-sensitive):
+    - "commentStyle": "None" or "All"
+    - "indentation":  "<anything>"
+    - "enableYAMLCompatibility": false or true
+      - slightly change the whitespace around colons
+    - "dropNullPlaceholders": false or true
+      - Drop the "null" string from the writer's output for nullValues.
+        Strictly speaking, this is not valid JSON. But when the output is being
+        fed to a browser's Javascript, it makes for smaller output and the
+        browser can handle the output just fine.
+    - "useSpecialFloats": false or true
+      - If true, outputs non-finite floating point values in the following way:
+        NaN values as "NaN", positive infinity as "Infinity", and negative infinity
+        as "-Infinity".
+
+    You can examine 'settings_` yourself
+    to see the defaults. You can also write and read them just like any
+    JSON Value.
+    \sa setDefaults()
+    */
+  Json::Value settings_;
+
+  StreamWriterBuilder();
+  ~StreamWriterBuilder() JSONCPP_OVERRIDE;
+
+  /**
+   * \throw std::exception if something goes wrong (e.g. invalid settings)
+   */
+  StreamWriter* newStreamWriter() const JSONCPP_OVERRIDE;
+
+  /** \return true if 'settings' are legal and consistent;
+   *   otherwise, indicate bad settings via 'invalid'.
+   */
+  bool validate(Json::Value* invalid) const;
+  /** A simple way to update a specific setting.
+   */
+  Value& operator[](JSONCPP_STRING key);
+
+  /** Called by ctor, but you can use this to reset settings_.
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_writer.cpp StreamWriterBuilderDefaults
+   */
+  static void setDefaults(Json::Value* settings);
+};
+
+/** \brief Abstract class for writers.
+ * \deprecated Use StreamWriter. (And really, this is an implementation detail.)
+ */
+class JSON_API Writer {
+public:
+  virtual ~Writer();
+
+  virtual JSONCPP_STRING write(const Value& root) = 0;
+};
+
+/** \brief Outputs a Value in <a HREF="http://www.json.org">JSON</a> format
+ *without formatting (not human friendly).
+ *
+ * The JSON document is written in a single line. It is not intended for 'human'
+ *consumption,
+ * but may be usefull to support feature such as RPC where bandwith is limited.
+ * \sa Reader, Value
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API FastWriter : public Writer {
+
+public:
+  FastWriter();
+  ~FastWriter() JSONCPP_OVERRIDE {}
+
+  void enableYAMLCompatibility();
+
+  /** \brief Drop the "null" string from the writer's output for nullValues.
+   * Strictly speaking, this is not valid JSON. But when the output is being
+   * fed to a browser's Javascript, it makes for smaller output and the
+   * browser can handle the output just fine.
+   */
+  void dropNullPlaceholders();
+
+  void omitEndingLineFeed();
+
+public: // overridden from Writer
+  JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+
+private:
+  void writeValue(const Value& value);
+
+  JSONCPP_STRING document_;
+  bool yamlCompatiblityEnabled_;
+  bool dropNullPlaceholders_;
+  bool omitEndingLineFeed_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ *human friendly way.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ *line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ *types,
+ *       and all the values fit on one lines, then print the array on a single
+ *line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ *#CommentPlacement.
+ *
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledWriter : public Writer {
+public:
+  StyledWriter();
+  ~StyledWriter() JSONCPP_OVERRIDE {}
+
+public: // overridden from Writer
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param root Value to serialize.
+   * \return String containing the JSON document that represents the root value.
+   */
+  JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const JSONCPP_STRING& value);
+  void writeIndent();
+  void writeWithIndent(const JSONCPP_STRING& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_STRING document_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  unsigned int indentSize_;
+  bool addChildValues_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ human friendly way,
+     to a stream rather than to a string.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ types,
+ *       and all the values fit on one lines, then print the array on a single
+ line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ #CommentPlacement.
+ *
+ * \param indentation Each level will be indented by this amount extra.
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledStreamWriter {
+public:
+  StyledStreamWriter(JSONCPP_STRING indentation = "\t");
+  ~StyledStreamWriter() {}
+
+public:
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param out Stream to write to. (Can be ostringstream, e.g.)
+   * \param root Value to serialize.
+   * \note There is no point in deriving from Writer, since write() should not
+   * return a value.
+   */
+  void write(JSONCPP_OSTREAM& out, const Value& root);
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const JSONCPP_STRING& value);
+  void writeIndent();
+  void writeWithIndent(const JSONCPP_STRING& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_OSTREAM* document_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  JSONCPP_STRING indentation_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+};
+
+#if defined(JSON_HAS_INT64)
+JSONCPP_STRING JSON_API valueToString(Int value);
+JSONCPP_STRING JSON_API valueToString(UInt value);
+#endif // if defined(JSON_HAS_INT64)
+JSONCPP_STRING JSON_API valueToString(LargestInt value);
+JSONCPP_STRING JSON_API valueToString(LargestUInt value);
+JSONCPP_STRING JSON_API valueToString(double value);
+JSONCPP_STRING JSON_API valueToString(bool value);
+JSONCPP_STRING JSON_API valueToQuotedString(const char* value);
+
+/// \brief Output using the StyledStreamWriter.
+/// \see Json::operator>>()
+JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root);
+
+} // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // JSON_WRITER_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/writer.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/assertions.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
+#define CPPTL_JSON_ASSERTIONS_H_INCLUDED
+
+#include <stdlib.h>
+#include <sstream>
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+/** It should not be possible for a maliciously designed file to
+ *  cause an abort() or seg-fault, so these macros are used only
+ *  for pre-condition violations and internal logic errors.
+ */
+#if JSON_USE_EXCEPTION
+
+// @todo <= add detail about condition in exception
+# define JSON_ASSERT(condition)                                                \
+  {if (!(condition)) {Json::throwLogicError( "assert json failed" );}}
+
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    JSONCPP_OSTRINGSTREAM oss; oss << message;                                    \
+    Json::throwLogicError(oss.str());                                          \
+    abort();                                                                   \
+  }
+
+#else // JSON_USE_EXCEPTION
+
+# define JSON_ASSERT(condition) assert(condition)
+
+// The call to assert() will show the failure message in debug builds. In
+// release builds we abort, for a core-dump or debugger.
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    JSONCPP_OSTRINGSTREAM oss; oss << message;                                    \
+    assert(false && oss.str().c_str());                                        \
+    abort();                                                                   \
+  }
+
+
+#endif
+
+#define JSON_ASSERT_MESSAGE(condition, message)                                \
+  if (!(condition)) {                                                          \
+    JSON_FAIL_MESSAGE(message);                                                \
+  }
+
+#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/assertions.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#endif //ifndef JSON_AMALGATED_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/jsoncpp.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/jsoncpp.cpp
new file mode 100644
index 0000000..6ec7dde
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/jsoncpp.cpp
@@ -0,0 +1,5290 @@
+/// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/).
+/// It is intended to be used with #include "json/json.h"
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+#include "json/json.h"
+
+#ifndef JSON_IS_AMALGAMATION
+#error "Compile with -I PATH_TO_JSON_DIRECTORY"
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_tool.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+#define LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+
+#ifndef NO_LOCALE_SUPPORT
+#include <clocale>
+#endif
+
+/* This header provides common string manipulation support, such as UTF-8,
+ * portable conversion from/to string...
+ *
+ * It is an internal header that must not be exposed.
+ */
+
+namespace Json {
+static char getDecimalPoint() {
+#ifdef NO_LOCALE_SUPPORT
+  return '\0';
+#else
+  struct lconv* lc = localeconv();
+  return lc ? *(lc->decimal_point) : '\0';
+#endif
+}
+
+/// Converts a unicode code-point to UTF-8.
+static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
+  JSONCPP_STRING result;
+
+  // based on description from http://en.wikipedia.org/wiki/UTF-8
+
+  if (cp <= 0x7f) {
+    result.resize(1);
+    result[0] = static_cast<char>(cp);
+  } else if (cp <= 0x7FF) {
+    result.resize(2);
+    result[1] = static_cast<char>(0x80 | (0x3f & cp));
+    result[0] = static_cast<char>(0xC0 | (0x1f & (cp >> 6)));
+  } else if (cp <= 0xFFFF) {
+    result.resize(3);
+    result[2] = static_cast<char>(0x80 | (0x3f & cp));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[0] = static_cast<char>(0xE0 | (0xf & (cp >> 12)));
+  } else if (cp <= 0x10FFFF) {
+    result.resize(4);
+    result[3] = static_cast<char>(0x80 | (0x3f & cp));
+    result[2] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 12)));
+    result[0] = static_cast<char>(0xF0 | (0x7 & (cp >> 18)));
+  }
+
+  return result;
+}
+
+/// Returns true if ch is a control character (in range [1,31]).
+static inline bool isControlCharacter(char ch) { return ch > 0 && ch <= 0x1F; }
+
+enum {
+  /// Constant that specify the size of the buffer that must be passed to
+  /// uintToString.
+  uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1
+};
+
+// Defines a char buffer for use with uintToString().
+typedef char UIntToStringBuffer[uintToStringBufferSize];
+
+/** Converts an unsigned integer to string.
+ * @param value Unsigned interger to convert to string
+ * @param current Input/Output string buffer.
+ *        Must have at least uintToStringBufferSize chars free.
+ */
+static inline void uintToString(LargestUInt value, char*& current) {
+  *--current = 0;
+  do {
+    *--current = static_cast<char>(value % 10U + static_cast<unsigned>('0'));
+    value /= 10;
+  } while (value != 0);
+}
+
+/** Change ',' to '.' everywhere in buffer.
+ *
+ * We had a sophisticated way, but it did not work in WinCE.
+ * @see https://github.com/open-source-parsers/jsoncpp/pull/9
+ */
+static inline void fixNumericLocale(char* begin, char* end) {
+  while (begin < end) {
+    if (*begin == ',') {
+      *begin = '.';
+    }
+    ++begin;
+  }
+}
+
+static inline void fixNumericLocaleInput(char* begin, char* end) {
+  char decimalPoint = getDecimalPoint();
+  if (decimalPoint != '\0' && decimalPoint != '.') {
+    while (begin < end) {
+      if (*begin == '.') {
+        *begin = decimalPoint;
+      }
+      ++begin;
+    }
+  }
+}
+
+} // namespace Json {
+
+#endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_tool.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_reader.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/assertions.h>
+#include <json/reader.h>
+#include <json/value.h>
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <utility>
+#include <cstdio>
+#include <cassert>
+#include <cstring>
+#include <istream>
+#include <sstream>
+#include <memory>
+#include <set>
+#include <limits>
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above 
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#if !defined(__MINGW32__) && !defined(__CYGWIN__)
+#define snprintf std::snprintf
+#endif
+#endif
+
+#if defined(__QNXNTO__)
+#define sscanf std::sscanf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+static int const stackLimit_g = 1000;
+static int       stackDepth_g = 0;  // see readValue()
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<CharReader> CharReaderPtr;
+#else
+typedef std::auto_ptr<CharReader>   CharReaderPtr;
+#endif
+
+// Implementation of class Features
+// ////////////////////////////////
+
+Features::Features()
+    : allowComments_(true), strictRoot_(false),
+      allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {}
+
+Features Features::all() { return Features(); }
+
+Features Features::strictMode() {
+  Features features;
+  features.allowComments_ = false;
+  features.strictRoot_ = true;
+  features.allowDroppedNullPlaceholders_ = false;
+  features.allowNumericKeys_ = false;
+  return features;
+}
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+static bool containsNewLine(Reader::Location begin, Reader::Location end) {
+  for (; begin < end; ++begin)
+    if (*begin == '\n' || *begin == '\r')
+      return true;
+  return false;
+}
+
+// Class Reader
+// //////////////////////////////////////////////////////////////////
+
+Reader::Reader()
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(Features::all()),
+      collectComments_() {}
+
+Reader::Reader(const Features& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(features), collectComments_() {
+}
+
+bool
+Reader::parse(const std::string& document, Value& root, bool collectComments) {
+  JSONCPP_STRING documentCopy(document.data(), document.data() + document.capacity());
+  std::swap(documentCopy, document_);
+  const char* begin = document_.c_str();
+  const char* end = begin + document_.length();
+  return parse(begin, end, root, collectComments);
+}
+
+bool Reader::parse(std::istream& sin, Value& root, bool collectComments) {
+  // std::istream_iterator<char> begin(sin);
+  // std::istream_iterator<char> end;
+  // Those would allow streamed input from a file, if parse() were a
+  // template function.
+
+  // Since JSONCPP_STRING is reference-counted, this at least does not
+  // create an extra copy.
+  JSONCPP_STRING doc;
+  std::getline(sin, doc, (char)EOF);
+  return parse(doc.data(), doc.data() + doc.size(), root, collectComments);
+}
+
+bool Reader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_g = 0;  // Yes, this is bad coding, but options are limited.
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool Reader::readValue() {
+  // This is a non-reentrant way to support a stackLimit. Terrible!
+  // But this deprecated class has a security problem: Bad input can
+  // cause a seg-fault. This seems like a fair, binary-compatible way
+  // to prevent the problem.
+  if (stackDepth_g >= stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_g;
+
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // Else, fall through...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_g;
+  return successful;
+}
+
+void Reader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool Reader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+  case '-':
+    token.type_ = tokenNumber;
+    readNumber();
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void Reader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool Reader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool Reader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+static JSONCPP_STRING normalizeEOL(Reader::Location begin, Reader::Location end) {
+  JSONCPP_STRING normalized;
+  normalized.reserve(static_cast<size_t>(end - begin));
+  Reader::Location current = begin;
+  while (current != end) {
+    char c = *current++;
+    if (c == '\r') {
+      if (current != end && *current == '\n')
+         // convert dos EOL
+         ++current;
+      // convert Mac EOL
+      normalized += '\n';
+    } else {
+      normalized += c;
+    }
+  }
+  return normalized;
+}
+
+void
+Reader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool Reader::readCStyleComment() {
+  while ((current_ + 1) < end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool Reader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+void Reader::readNumber() {
+  const char *p = current_;
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : '\0';
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+}
+
+bool Reader::readString() {
+  Char c = '\0';
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+bool Reader::readObject(Token& tokenStart) {
+  Token tokenName;
+  JSONCPP_STRING name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = JSONCPP_STRING(numberName.asCString());
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool Reader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (current_ != end_ && *current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative && value == maxIntegerValue)
+    decoded = Value::minLargestInt;
+  else if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  JSONCPP_STRING buffer(token.start_, token.end_);
+  JSONCPP_ISTRINGSTREAM is(buffer);
+  if (!(is >> value))
+    return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool Reader::decodeString(Token& token) {
+  JSONCPP_STRING decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+  decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& ret_unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  int unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  ret_unicode = static_cast<unsigned int>(unicode);
+  return true;
+}
+
+bool
+Reader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool Reader::recoverFromError(TokenType skipUntilToken) {
+  size_t const errorCount = errors_.size();
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool Reader::addErrorAndRecover(const JSONCPP_STRING& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& Reader::currentValue() { return *(nodes_.top()); }
+
+Reader::Char Reader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void Reader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+JSONCPP_STRING Reader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+// Deprecated. Preserved for backward compatibility
+JSONCPP_STRING Reader::getFormatedErrorMessages() const {
+  return getFormattedErrorMessages();
+}
+
+JSONCPP_STRING Reader::getFormattedErrorMessages() const {
+  JSONCPP_STRING formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<Reader::StructuredError> Reader::getStructuredErrors() const {
+  std::vector<Reader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    Reader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool Reader::pushError(const Value& value, const JSONCPP_STRING& message) {
+  ptrdiff_t const length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
+  ptrdiff_t const length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::good() const {
+  return !errors_.size();
+}
+
+// exact copy of Features
+class OurFeatures {
+public:
+  static OurFeatures all();
+  bool allowComments_;
+  bool strictRoot_;
+  bool allowDroppedNullPlaceholders_;
+  bool allowNumericKeys_;
+  bool allowSingleQuotes_;
+  bool failIfExtra_;
+  bool rejectDupKeys_;
+  bool allowSpecialFloats_;
+  int stackLimit_;
+};  // OurFeatures
+
+// exact copy of Implementation of class Features
+// ////////////////////////////////
+
+OurFeatures OurFeatures::all() { return OurFeatures(); }
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+// exact copy of Reader, renamed to OurReader
+class OurReader {
+public:
+  typedef char Char;
+  typedef const Char* Location;
+  struct StructuredError {
+    ptrdiff_t offset_start;
+    ptrdiff_t offset_limit;
+    JSONCPP_STRING message;
+  };
+
+  OurReader(OurFeatures const& features);
+  bool parse(const char* beginDoc,
+             const char* endDoc,
+             Value& root,
+             bool collectComments = true);
+  JSONCPP_STRING getFormattedErrorMessages() const;
+  std::vector<StructuredError> getStructuredErrors() const;
+  bool pushError(const Value& value, const JSONCPP_STRING& message);
+  bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
+  bool good() const;
+
+private:
+  OurReader(OurReader const&);  // no impl
+  void operator=(OurReader const&);  // no impl
+
+  enum TokenType {
+    tokenEndOfStream = 0,
+    tokenObjectBegin,
+    tokenObjectEnd,
+    tokenArrayBegin,
+    tokenArrayEnd,
+    tokenString,
+    tokenNumber,
+    tokenTrue,
+    tokenFalse,
+    tokenNull,
+    tokenNaN,
+    tokenPosInf,
+    tokenNegInf,
+    tokenArraySeparator,
+    tokenMemberSeparator,
+    tokenComment,
+    tokenError
+  };
+
+  class Token {
+  public:
+    TokenType type_;
+    Location start_;
+    Location end_;
+  };
+
+  class ErrorInfo {
+  public:
+    Token token_;
+    JSONCPP_STRING message_;
+    Location extra_;
+  };
+
+  typedef std::deque<ErrorInfo> Errors;
+
+  bool readToken(Token& token);
+  void skipSpaces();
+  bool match(Location pattern, int patternLength);
+  bool readComment();
+  bool readCStyleComment();
+  bool readCppStyleComment();
+  bool readString();
+  bool readStringSingleQuote();
+  bool readNumber(bool checkInf);
+  bool readValue();
+  bool readObject(Token& token);
+  bool readArray(Token& token);
+  bool decodeNumber(Token& token);
+  bool decodeNumber(Token& token, Value& decoded);
+  bool decodeString(Token& token);
+  bool decodeString(Token& token, JSONCPP_STRING& decoded);
+  bool decodeDouble(Token& token);
+  bool decodeDouble(Token& token, Value& decoded);
+  bool decodeUnicodeCodePoint(Token& token,
+                              Location& current,
+                              Location end,
+                              unsigned int& unicode);
+  bool decodeUnicodeEscapeSequence(Token& token,
+                                   Location& current,
+                                   Location end,
+                                   unsigned int& unicode);
+  bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+  bool recoverFromError(TokenType skipUntilToken);
+  bool addErrorAndRecover(const JSONCPP_STRING& message,
+                          Token& token,
+                          TokenType skipUntilToken);
+  void skipUntilSpace();
+  Value& currentValue();
+  Char getNextChar();
+  void
+  getLocationLineAndColumn(Location location, int& line, int& column) const;
+  JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+  void addComment(Location begin, Location end, CommentPlacement placement);
+  void skipCommentTokens(Token& token);
+
+  typedef std::stack<Value*> Nodes;
+  Nodes nodes_;
+  Errors errors_;
+  JSONCPP_STRING document_;
+  Location begin_;
+  Location end_;
+  Location current_;
+  Location lastValueEnd_;
+  Value* lastValue_;
+  JSONCPP_STRING commentsBefore_;
+  int stackDepth_;
+
+  OurFeatures const features_;
+  bool collectComments_;
+};  // OurReader
+
+// complete copy of Read impl, for OurReader
+
+OurReader::OurReader(OurFeatures const& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(),
+      stackDepth_(0),
+      features_(features), collectComments_() {
+}
+
+bool OurReader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_ = 0;
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (features_.failIfExtra_) {
+    if ((features_.strictRoot_ || token.type_ != tokenError) && token.type_ != tokenEndOfStream) {
+      addError("Extra non-whitespace after JSON value.", token);
+      return false;
+    }
+  }
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool OurReader::readValue() {
+  if (stackDepth_ >= features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_;
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNaN:
+    {
+    Value v(std::numeric_limits<double>::quiet_NaN());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenPosInf:
+    {
+    Value v(std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNegInf:
+    {
+    Value v(-std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // else, fall through ...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_;
+  return successful;
+}
+
+void OurReader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool OurReader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '\'':
+    if (features_.allowSingleQuotes_) {
+    token.type_ = tokenString;
+    ok = readStringSingleQuote();
+    break;
+    } // else continue
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+    token.type_ = tokenNumber;
+    readNumber(false);
+    break;
+  case '-':
+    if (readNumber(true)) {
+      token.type_ = tokenNumber;
+    } else {
+      token.type_ = tokenNegInf;
+      ok = features_.allowSpecialFloats_ && match("nfinity", 7);
+    }
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case 'N':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenNaN;
+      ok = match("aN", 2);
+    } else {
+      ok = false;
+    }
+    break;
+  case 'I':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenPosInf;
+      ok = match("nfinity", 7);
+    } else {
+      ok = false;
+    }
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void OurReader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool OurReader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool OurReader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+void
+OurReader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool OurReader::readCStyleComment() {
+  while ((current_ + 1) < end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool OurReader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+bool OurReader::readNumber(bool checkInf) {
+  const char *p = current_;
+  if (checkInf && p != end_ && *p == 'I') {
+    current_ = ++p;
+    return false;
+  }
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : '\0';
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : '\0';
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : '\0';
+  }
+  return true;
+}
+bool OurReader::readString() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+
+bool OurReader::readStringSingleQuote() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '\'')
+      break;
+  }
+  return c == '\'';
+}
+
+bool OurReader::readObject(Token& tokenStart) {
+  Token tokenName;
+  JSONCPP_STRING name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = numberName.asString();
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30");
+    if (features_.rejectDupKeys_ && currentValue().isMember(name)) {
+      JSONCPP_STRING msg = "Duplicate key: '" + name + "'";
+      return addErrorAndRecover(
+          msg, tokenName, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool OurReader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (current_ != end_ && *current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(-Value::minLargestInt)
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  const int bufferSize = 32;
+  int count;
+  ptrdiff_t const length = token.end_ - token.start_;
+
+  // Sanity check to avoid buffer overflow exploits.
+  if (length < 0) {
+    return addError("Unable to parse token length", token);
+  }
+  size_t const ulength = static_cast<size_t>(length);
+
+  // Avoid using a string constant for the format control string given to
+  // sscanf, as this can cause hard to debug crashes on OS X. See here for more
+  // info:
+  //
+  //     http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html
+  char format[] = "%lf";
+
+  if (length <= bufferSize) {
+    Char buffer[bufferSize + 1];
+    memcpy(buffer, token.start_, ulength);
+    buffer[length] = 0;
+    fixNumericLocaleInput(buffer, buffer + length);
+    count = sscanf(buffer, format, &value);
+  } else {
+    JSONCPP_STRING buffer(token.start_, token.end_);
+    count = sscanf(buffer.c_str(), format, &value);
+  }
+
+  if (count != 1)
+    return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool OurReader::decodeString(Token& token) {
+  JSONCPP_STRING decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+  decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& ret_unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  int unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  ret_unicode = static_cast<unsigned int>(unicode);
+  return true;
+}
+
+bool
+OurReader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool OurReader::recoverFromError(TokenType skipUntilToken) {
+  size_t errorCount = errors_.size();
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool OurReader::addErrorAndRecover(const JSONCPP_STRING& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& OurReader::currentValue() { return *(nodes_.top()); }
+
+OurReader::Char OurReader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void OurReader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+JSONCPP_STRING OurReader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
+  JSONCPP_STRING formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const {
+  std::vector<OurReader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    OurReader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message) {
+  ptrdiff_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
+  ptrdiff_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::good() const {
+  return !errors_.size();
+}
+
+
+class OurCharReader : public CharReader {
+  bool const collectComments_;
+  OurReader reader_;
+public:
+  OurCharReader(
+    bool collectComments,
+    OurFeatures const& features)
+  : collectComments_(collectComments)
+  , reader_(features)
+  {}
+  bool parse(
+      char const* beginDoc, char const* endDoc,
+      Value* root, JSONCPP_STRING* errs) JSONCPP_OVERRIDE {
+    bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_);
+    if (errs) {
+      *errs = reader_.getFormattedErrorMessages();
+    }
+    return ok;
+  }
+};
+
+CharReaderBuilder::CharReaderBuilder()
+{
+  setDefaults(&settings_);
+}
+CharReaderBuilder::~CharReaderBuilder()
+{}
+CharReader* CharReaderBuilder::newCharReader() const
+{
+  bool collectComments = settings_["collectComments"].asBool();
+  OurFeatures features = OurFeatures::all();
+  features.allowComments_ = settings_["allowComments"].asBool();
+  features.strictRoot_ = settings_["strictRoot"].asBool();
+  features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();
+  features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool();
+  features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool();
+  features.stackLimit_ = settings_["stackLimit"].asInt();
+  features.failIfExtra_ = settings_["failIfExtra"].asBool();
+  features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool();
+  features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool();
+  return new OurCharReader(collectComments, features);
+}
+static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("collectComments");
+  valid_keys->insert("allowComments");
+  valid_keys->insert("strictRoot");
+  valid_keys->insert("allowDroppedNullPlaceholders");
+  valid_keys->insert("allowNumericKeys");
+  valid_keys->insert("allowSingleQuotes");
+  valid_keys->insert("stackLimit");
+  valid_keys->insert("failIfExtra");
+  valid_keys->insert("rejectDupKeys");
+  valid_keys->insert("allowSpecialFloats");
+}
+bool CharReaderBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<JSONCPP_STRING> valid_keys;
+  getValidReaderKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    JSONCPP_STRING const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
+{
+  return settings_[key];
+}
+// static
+void CharReaderBuilder::strictMode(Json::Value* settings)
+{
+//! [CharReaderBuilderStrictMode]
+  (*settings)["allowComments"] = false;
+  (*settings)["strictRoot"] = true;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = true;
+  (*settings)["rejectDupKeys"] = true;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderStrictMode]
+}
+// static
+void CharReaderBuilder::setDefaults(Json::Value* settings)
+{
+//! [CharReaderBuilderDefaults]
+  (*settings)["collectComments"] = true;
+  (*settings)["allowComments"] = true;
+  (*settings)["strictRoot"] = false;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = false;
+  (*settings)["rejectDupKeys"] = false;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderDefaults]
+}
+
+//////////////////////////////////
+// global functions
+
+bool parseFromStream(
+    CharReader::Factory const& fact, JSONCPP_ISTREAM& sin,
+    Value* root, JSONCPP_STRING* errs)
+{
+  JSONCPP_OSTRINGSTREAM ssin;
+  ssin << sin.rdbuf();
+  JSONCPP_STRING doc = ssin.str();
+  char const* begin = doc.data();
+  char const* end = begin + doc.size();
+  // Note that we do not actually need a null-terminator.
+  CharReaderPtr const reader(fact.newCharReader());
+  return reader->parse(begin, end, root, errs);
+}
+
+JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
+  CharReaderBuilder b;
+  JSONCPP_STRING errs;
+  bool ok = parseFromStream(b, sin, &root, &errs);
+  if (!ok) {
+    fprintf(stderr,
+            "Error from reader: %s",
+            errs.c_str());
+
+    throwRuntimeError(errs);
+  }
+  return sin;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_reader.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_valueiterator.inl
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+// included by json_value.cpp
+
+namespace Json {
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIteratorBase
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIteratorBase::ValueIteratorBase()
+    : current_(), isNull_(true) {
+}
+
+ValueIteratorBase::ValueIteratorBase(
+    const Value::ObjectValues::iterator& current)
+    : current_(current), isNull_(false) {}
+
+Value& ValueIteratorBase::deref() const {
+  return current_->second;
+}
+
+void ValueIteratorBase::increment() {
+  ++current_;
+}
+
+void ValueIteratorBase::decrement() {
+  --current_;
+}
+
+ValueIteratorBase::difference_type
+ValueIteratorBase::computeDistance(const SelfType& other) const {
+#ifdef JSON_USE_CPPTL_SMALLMAP
+  return other.current_ - current_;
+#else
+  // Iterator for null value are initialized using the default
+  // constructor, which initialize current_ to the default
+  // std::map::iterator. As begin() and end() are two instance
+  // of the default std::map::iterator, they can not be compared.
+  // To allow this, we handle this comparison specifically.
+  if (isNull_ && other.isNull_) {
+    return 0;
+  }
+
+  // Usage of std::distance is not portable (does not compile with Sun Studio 12
+  // RogueWave STL,
+  // which is the one used by default).
+  // Using a portable hand-made version for non random iterator instead:
+  //   return difference_type( std::distance( current_, other.current_ ) );
+  difference_type myDistance = 0;
+  for (Value::ObjectValues::iterator it = current_; it != other.current_;
+       ++it) {
+    ++myDistance;
+  }
+  return myDistance;
+#endif
+}
+
+bool ValueIteratorBase::isEqual(const SelfType& other) const {
+  if (isNull_) {
+    return other.isNull_;
+  }
+  return current_ == other.current_;
+}
+
+void ValueIteratorBase::copy(const SelfType& other) {
+  current_ = other.current_;
+  isNull_ = other.isNull_;
+}
+
+Value ValueIteratorBase::key() const {
+  const Value::CZString czstring = (*current_).first;
+  if (czstring.data()) {
+    if (czstring.isStaticString())
+      return Value(StaticString(czstring.data()));
+    return Value(czstring.data(), czstring.data() + czstring.length());
+  }
+  return Value(czstring.index());
+}
+
+UInt ValueIteratorBase::index() const {
+  const Value::CZString czstring = (*current_).first;
+  if (!czstring.data())
+    return czstring.index();
+  return Value::UInt(-1);
+}
+
+JSONCPP_STRING ValueIteratorBase::name() const {
+  char const* keey;
+  char const* end;
+  keey = memberName(&end);
+  if (!keey) return JSONCPP_STRING();
+  return JSONCPP_STRING(keey, end);
+}
+
+char const* ValueIteratorBase::memberName() const {
+  const char* cname = (*current_).first.data();
+  return cname ? cname : "";
+}
+
+char const* ValueIteratorBase::memberName(char const** end) const {
+  const char* cname = (*current_).first.data();
+  if (!cname) {
+    *end = NULL;
+    return NULL;
+  }
+  *end = cname + (*current_).first.length();
+  return cname;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueConstIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueConstIterator::ValueConstIterator() {}
+
+ValueConstIterator::ValueConstIterator(
+    const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueConstIterator::ValueConstIterator(ValueIterator const& other)
+    : ValueIteratorBase(other) {}
+
+ValueConstIterator& ValueConstIterator::
+operator=(const ValueIteratorBase& other) {
+  copy(other);
+  return *this;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIterator::ValueIterator() {}
+
+ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueIterator::ValueIterator(const ValueConstIterator& other)
+    : ValueIteratorBase(other) {
+  throwRuntimeError("ConstIterator to Iterator should never be allowed.");
+}
+
+ValueIterator::ValueIterator(const ValueIterator& other)
+    : ValueIteratorBase(other) {}
+
+ValueIterator& ValueIterator::operator=(const SelfType& other) {
+  copy(other);
+  return *this;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_valueiterator.inl
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_value.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/assertions.h>
+#include <json/value.h>
+#include <json/writer.h>
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <math.h>
+#include <sstream>
+#include <utility>
+#include <cstring>
+#include <cassert>
+#ifdef JSON_USE_CPPTL
+#include <cpptl/conststring.h>
+#endif
+#include <cstddef> // size_t
+#include <algorithm> // min()
+
+#define JSON_ASSERT_UNREACHABLE assert(false)
+
+namespace Json {
+
+// This is a walkaround to avoid the static initialization of Value::null.
+// kNull must be word-aligned to avoid crashing on ARM.  We use an alignment of
+// 8 (instead of 4) as a bit of future-proofing.
+#if defined(__ARMEL__)
+#define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
+#else
+#define ALIGNAS(byte_alignment)
+#endif
+//static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 };
+//const unsigned char& kNullRef = kNull[0];
+//const Value& Value::null = reinterpret_cast<const Value&>(kNullRef);
+//const Value& Value::nullRef = null;
+
+// static
+Value const& Value::nullSingleton()
+{
+ static Value const nullStatic;
+ return nullStatic;
+}
+
+// for backwards compatibility, we'll leave these global references around, but DO NOT
+// use them in JSONCPP library code any more!
+Value const& Value::null = Value::nullSingleton();
+Value const& Value::nullRef = Value::nullSingleton();
+
+const Int Value::minInt = Int(~(UInt(-1) / 2));
+const Int Value::maxInt = Int(UInt(-1) / 2);
+const UInt Value::maxUInt = UInt(-1);
+#if defined(JSON_HAS_INT64)
+const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2));
+const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2);
+const UInt64 Value::maxUInt64 = UInt64(-1);
+// The constant is hard-coded because some compiler have trouble
+// converting Value::maxUInt64 to a double correctly (AIX/xlC).
+// Assumes that UInt64 is a 64 bits integer.
+static const double maxUInt64AsDouble = 18446744073709551615.0;
+#endif // defined(JSON_HAS_INT64)
+const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2));
+const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2);
+const LargestUInt Value::maxLargestUInt = LargestUInt(-1);
+
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  // The casts can lose precision, but we are looking only for
+  // an approximate range. Might fail on edge cases though. ~cdunn
+  //return d >= static_cast<double>(min) && d <= static_cast<double>(max);
+  return d >= min && d <= max;
+}
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+static inline double integerToDouble(Json::UInt64 value) {
+  return static_cast<double>(Int64(value / 2)) * 2.0 + static_cast<double>(Int64(value & 1));
+}
+
+template <typename T> static inline double integerToDouble(T value) {
+  return static_cast<double>(value);
+}
+
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  return d >= integerToDouble(min) && d <= integerToDouble(max);
+}
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+
+/** Duplicates the specified string value.
+ * @param value Pointer to the string to duplicate. Must be zero-terminated if
+ *              length is "unknown".
+ * @param length Length of the value. if equals to unknown, then it will be
+ *               computed using strlen(value).
+ * @return Pointer on the duplicate instance of string.
+ */
+static inline char* duplicateStringValue(const char* value,
+                                         size_t length)
+{
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  if (length >= static_cast<size_t>(Value::maxInt))
+    length = Value::maxInt - 1;
+
+  char* newString = static_cast<char*>(malloc(length + 1));
+  if (newString == NULL) {
+    throwRuntimeError(
+        "in Json::Value::duplicateStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  memcpy(newString, value, length);
+  newString[length] = 0;
+  return newString;
+}
+
+/* Record the length as a prefix.
+ */
+static inline char* duplicateAndPrefixStringValue(
+    const char* value,
+    unsigned int length)
+{
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) - sizeof(unsigned) - 1U,
+                      "in Json::Value::duplicateAndPrefixStringValue(): "
+                      "length too big for prefixing");
+  unsigned actualLength = length + static_cast<unsigned>(sizeof(unsigned)) + 1U;
+  char* newString = static_cast<char*>(malloc(actualLength));
+  if (newString == 0) {
+    throwRuntimeError(
+        "in Json::Value::duplicateAndPrefixStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  *reinterpret_cast<unsigned*>(newString) = length;
+  memcpy(newString + sizeof(unsigned), value, length);
+  newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later
+  return newString;
+}
+inline static void decodePrefixedString(
+    bool isPrefixed, char const* prefixed,
+    unsigned* length, char const** value)
+{
+  if (!isPrefixed) {
+    *length = static_cast<unsigned>(strlen(prefixed));
+    *value = prefixed;
+  } else {
+    *length = *reinterpret_cast<unsigned const*>(prefixed);
+    *value = prefixed + sizeof(unsigned);
+  }
+}
+/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
+ */
+#if JSONCPP_USING_SECURE_MEMORY
+static inline void releasePrefixedStringValue(char* value) {
+  unsigned length = 0;
+  char const* valueDecoded;
+  decodePrefixedString(true, value, &length, &valueDecoded);
+  size_t const size = sizeof(unsigned) + length + 1U;
+  memset(value, 0, size);
+  free(value);
+}
+static inline void releaseStringValue(char* value, unsigned length) {
+  // length==0 => we allocated the strings memory
+  size_t size = (length==0) ? strlen(value) : length;
+  memset(value, 0, size);
+  free(value);
+}
+#else // !JSONCPP_USING_SECURE_MEMORY
+static inline void releasePrefixedStringValue(char* value) {
+  free(value);
+}
+static inline void releaseStringValue(char* value, unsigned) {
+  free(value);
+}
+#endif // JSONCPP_USING_SECURE_MEMORY
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// ValueInternals...
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+#if !defined(JSON_IS_AMALGAMATION)
+
+#include "json_valueiterator.inl"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+Exception::Exception(JSONCPP_STRING const& msg)
+  : msg_(msg)
+{}
+Exception::~Exception() throw()
+{}
+char const* Exception::what() const throw()
+{
+  return msg_.c_str();
+}
+RuntimeError::RuntimeError(JSONCPP_STRING const& msg)
+  : Exception(msg)
+{}
+LogicError::LogicError(JSONCPP_STRING const& msg)
+  : Exception(msg)
+{}
+JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
+{
+  throw RuntimeError(msg);
+}
+JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
+{
+  throw LogicError(msg);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CommentInfo
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+Value::CommentInfo::CommentInfo() : comment_(0)
+{}
+
+Value::CommentInfo::~CommentInfo() {
+  if (comment_)
+    releaseStringValue(comment_, 0u);
+}
+
+void Value::CommentInfo::setComment(const char* text, size_t len) {
+  if (comment_) {
+    releaseStringValue(comment_, 0u);
+    comment_ = 0;
+  }
+  JSON_ASSERT(text != 0);
+  JSON_ASSERT_MESSAGE(
+      text[0] == '\0' || text[0] == '/',
+      "in Json::Value::setComment(): Comments must start with /");
+  // It seems that /**/ style comments are acceptable as well.
+  comment_ = duplicateStringValue(text, len);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CZString
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+// Notes: policy_ indicates if the string was allocated when
+// a string is stored.
+
+Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {}
+
+Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate)
+    : cstr_(str) {
+  // allocate != duplicate
+  storage_.policy_ = allocate & 0x3;
+  storage_.length_ = ulength & 0x3FFFFFFF;
+}
+
+Value::CZString::CZString(const CZString& other) {
+  cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != 0
+				 ? duplicateStringValue(other.cstr_, other.storage_.length_)
+				 : other.cstr_);
+  storage_.policy_ = static_cast<unsigned>(other.cstr_
+                 ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication
+                     ? noDuplication : duplicate)
+                 : static_cast<DuplicationPolicy>(other.storage_.policy_)) & 3U;
+  storage_.length_ = other.storage_.length_;
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+Value::CZString::CZString(CZString&& other)
+  : cstr_(other.cstr_), index_(other.index_) {
+  other.cstr_ = nullptr;
+}
+#endif
+
+Value::CZString::~CZString() {
+  if (cstr_ && storage_.policy_ == duplicate) {
+	  releaseStringValue(const_cast<char*>(cstr_), storage_.length_ + 1u); //+1 for null terminating character for sake of completeness but not actually necessary
+  }
+}
+
+void Value::CZString::swap(CZString& other) {
+  std::swap(cstr_, other.cstr_);
+  std::swap(index_, other.index_);
+}
+
+Value::CZString& Value::CZString::operator=(CZString other) {
+  swap(other);
+  return *this;
+}
+
+bool Value::CZString::operator<(const CZString& other) const {
+  if (!cstr_) return index_ < other.index_;
+  //return strcmp(cstr_, other.cstr_) < 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  unsigned min_len = std::min(this_len, other_len);
+  JSON_ASSERT(this->cstr_ && other.cstr_);
+  int comp = memcmp(this->cstr_, other.cstr_, min_len);
+  if (comp < 0) return true;
+  if (comp > 0) return false;
+  return (this_len < other_len);
+}
+
+bool Value::CZString::operator==(const CZString& other) const {
+  if (!cstr_) return index_ == other.index_;
+  //return strcmp(cstr_, other.cstr_) == 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  if (this_len != other_len) return false;
+  JSON_ASSERT(this->cstr_ && other.cstr_);
+  int comp = memcmp(this->cstr_, other.cstr_, this_len);
+  return comp == 0;
+}
+
+ArrayIndex Value::CZString::index() const { return index_; }
+
+//const char* Value::CZString::c_str() const { return cstr_; }
+const char* Value::CZString::data() const { return cstr_; }
+unsigned Value::CZString::length() const { return storage_.length_; }
+bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; }
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::Value
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+/*! \internal Default constructor initialization must be equivalent to:
+ * memset( this, 0, sizeof(Value) )
+ * This optimization is used in ValueInternalMap fast allocator.
+ */
+Value::Value(ValueType vtype) {
+  static char const empty[] = "";
+  initBasic(vtype);
+  switch (vtype) {
+  case nullValue:
+    break;
+  case intValue:
+  case uintValue:
+    value_.int_ = 0;
+    break;
+  case realValue:
+    value_.real_ = 0.0;
+    break;
+  case stringValue:
+    // allocated_ == false, so this is safe.
+    value_.string_ = const_cast<char*>(static_cast<char const*>(empty));
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues();
+    break;
+  case booleanValue:
+    value_.bool_ = false;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+}
+
+Value::Value(Int value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+
+Value::Value(UInt value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#if defined(JSON_HAS_INT64)
+Value::Value(Int64 value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+Value::Value(UInt64 value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#endif // defined(JSON_HAS_INT64)
+
+Value::Value(double value) {
+  initBasic(realValue);
+  value_.real_ = value;
+}
+
+Value::Value(const char* value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(strlen(value)));
+}
+
+Value::Value(const char* beginValue, const char* endValue) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(beginValue, static_cast<unsigned>(endValue - beginValue));
+}
+
+Value::Value(const JSONCPP_STRING& value) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(value.data(), static_cast<unsigned>(value.length()));
+}
+
+Value::Value(const StaticString& value) {
+  initBasic(stringValue);
+  value_.string_ = const_cast<char*>(value.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value::Value(const CppTL::ConstString& value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(value.length()));
+}
+#endif
+
+Value::Value(bool value) {
+  initBasic(booleanValue);
+  value_.bool_ = value;
+}
+
+Value::Value(Value const& other)
+    : type_(other.type_), allocated_(false)
+      ,
+      comments_(0), start_(other.start_), limit_(other.limit_)
+{
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    value_ = other.value_;
+    break;
+  case stringValue:
+    if (other.value_.string_ && other.allocated_) {
+      unsigned len;
+      char const* str;
+      decodePrefixedString(other.allocated_, other.value_.string_,
+          &len, &str);
+      value_.string_ = duplicateAndPrefixStringValue(str, len);
+      allocated_ = true;
+    } else {
+      value_.string_ = other.value_.string_;
+      allocated_ = false;
+    }
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues(*other.value_.map_);
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  if (other.comments_) {
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+    for (int comment = 0; comment < numberOfCommentPlacement; ++comment) {
+      const CommentInfo& otherComment = other.comments_[comment];
+      if (otherComment.comment_)
+        comments_[comment].setComment(
+            otherComment.comment_, strlen(otherComment.comment_));
+    }
+  }
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+// Move constructor
+Value::Value(Value&& other) {
+  initBasic(nullValue);
+  swap(other);
+}
+#endif
+
+Value::~Value() {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    break;
+  case stringValue:
+    if (allocated_)
+      releasePrefixedStringValue(value_.string_);
+    break;
+  case arrayValue:
+  case objectValue:
+    delete value_.map_;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+
+  delete[] comments_;
+
+  value_.uint_ = 0;
+}
+
+Value& Value::operator=(Value other) {
+  swap(other);
+  return *this;
+}
+
+void Value::swapPayload(Value& other) {
+  ValueType temp = type_;
+  type_ = other.type_;
+  other.type_ = temp;
+  std::swap(value_, other.value_);
+  int temp2 = allocated_;
+  allocated_ = other.allocated_;
+  other.allocated_ = temp2 & 0x1;
+}
+
+void Value::swap(Value& other) {
+  swapPayload(other);
+  std::swap(comments_, other.comments_);
+  std::swap(start_, other.start_);
+  std::swap(limit_, other.limit_);
+}
+
+ValueType Value::type() const { return type_; }
+
+int Value::compare(const Value& other) const {
+  if (*this < other)
+    return -1;
+  if (*this > other)
+    return 1;
+  return 0;
+}
+
+bool Value::operator<(const Value& other) const {
+  int typeDelta = type_ - other.type_;
+  if (typeDelta)
+    return typeDelta < 0 ? true : false;
+  switch (type_) {
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ < other.value_.int_;
+  case uintValue:
+    return value_.uint_ < other.value_.uint_;
+  case realValue:
+    return value_.real_ < other.value_.real_;
+  case booleanValue:
+    return value_.bool_ < other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      if (other.value_.string_) return true;
+      else return false;
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    unsigned min_len = std::min(this_len, other_len);
+    JSON_ASSERT(this_str && other_str);
+    int comp = memcmp(this_str, other_str, min_len);
+    if (comp < 0) return true;
+    if (comp > 0) return false;
+    return (this_len < other_len);
+  }
+  case arrayValue:
+  case objectValue: {
+    int delta = int(value_.map_->size() - other.value_.map_->size());
+    if (delta)
+      return delta < 0;
+    return (*value_.map_) < (*other.value_.map_);
+  }
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator<=(const Value& other) const { return !(other < *this); }
+
+bool Value::operator>=(const Value& other) const { return !(*this < other); }
+
+bool Value::operator>(const Value& other) const { return other < *this; }
+
+bool Value::operator==(const Value& other) const {
+  // if ( type_ != other.type_ )
+  // GCC 2.95.3 says:
+  // attempt to take address of bit-field structure member `Json::Value::type_'
+  // Beats me, but a temp solves the problem.
+  int temp = other.type_;
+  if (type_ != temp)
+    return false;
+  switch (type_) {
+  case nullValue:
+    return true;
+  case intValue:
+    return value_.int_ == other.value_.int_;
+  case uintValue:
+    return value_.uint_ == other.value_.uint_;
+  case realValue:
+    return value_.real_ == other.value_.real_;
+  case booleanValue:
+    return value_.bool_ == other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      return (value_.string_ == other.value_.string_);
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    if (this_len != other_len) return false;
+    JSON_ASSERT(this_str && other_str);
+    int comp = memcmp(this_str, other_str, this_len);
+    return comp == 0;
+  }
+  case arrayValue:
+  case objectValue:
+    return value_.map_->size() == other.value_.map_->size() &&
+           (*value_.map_) == (*other.value_.map_);
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator!=(const Value& other) const { return !(*this == other); }
+
+const char* Value::asCString() const {
+  JSON_ASSERT_MESSAGE(type_ == stringValue,
+                      "in Json::Value::asCString(): requires stringValue");
+  if (value_.string_ == 0) return 0;
+  unsigned this_len;
+  char const* this_str;
+  decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+  return this_str;
+}
+
+#if JSONCPP_USING_SECURE_MEMORY
+unsigned Value::getCStringLength() const {
+  JSON_ASSERT_MESSAGE(type_ == stringValue,
+	                  "in Json::Value::asCString(): requires stringValue");
+  if (value_.string_ == 0) return 0;
+  unsigned this_len;
+  char const* this_str;
+  decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+  return this_len;
+}
+#endif
+
+bool Value::getString(char const** str, char const** cend) const {
+  if (type_ != stringValue) return false;
+  if (value_.string_ == 0) return false;
+  unsigned length;
+  decodePrefixedString(this->allocated_, this->value_.string_, &length, str);
+  *cend = *str + length;
+  return true;
+}
+
+JSONCPP_STRING Value::asString() const {
+  switch (type_) {
+  case nullValue:
+    return "";
+  case stringValue:
+  {
+    if (value_.string_ == 0) return "";
+    unsigned this_len;
+    char const* this_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    return JSONCPP_STRING(this_str, this_len);
+  }
+  case booleanValue:
+    return value_.bool_ ? "true" : "false";
+  case intValue:
+    return valueToString(value_.int_);
+  case uintValue:
+    return valueToString(value_.uint_);
+  case realValue:
+    return valueToString(value_.real_);
+  default:
+    JSON_FAIL_MESSAGE("Type is not convertible to string");
+  }
+}
+
+#ifdef JSON_USE_CPPTL
+CppTL::ConstString Value::asConstString() const {
+  unsigned len;
+  char const* str;
+  decodePrefixedString(allocated_, value_.string_,
+      &len, &str);
+  return CppTL::ConstString(str, len);
+}
+#endif
+
+Value::Int Value::asInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range");
+    return Int(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestUInt out of Int range");
+    return Int(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt, maxInt),
+                        "double out of Int range");
+    return Int(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int.");
+}
+
+Value::UInt Value::asUInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range");
+    return UInt(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestUInt out of UInt range");
+    return UInt(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt),
+                        "double out of UInt range");
+    return UInt(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt.");
+}
+
+#if defined(JSON_HAS_INT64)
+
+Value::Int64 Value::asInt64() const {
+  switch (type_) {
+  case intValue:
+    return Int64(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt64(), "LargestUInt out of Int64 range");
+    return Int64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt64, maxInt64),
+                        "double out of Int64 range");
+    return Int64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int64.");
+}
+
+Value::UInt64 Value::asUInt64() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range");
+    return UInt64(value_.int_);
+  case uintValue:
+    return UInt64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt64),
+                        "double out of UInt64 range");
+    return UInt64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt64.");
+}
+#endif // if defined(JSON_HAS_INT64)
+
+LargestInt Value::asLargestInt() const {
+#if defined(JSON_NO_INT64)
+  return asInt();
+#else
+  return asInt64();
+#endif
+}
+
+LargestUInt Value::asLargestUInt() const {
+#if defined(JSON_NO_INT64)
+  return asUInt();
+#else
+  return asUInt64();
+#endif
+}
+
+double Value::asDouble() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<double>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<double>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return integerToDouble(value_.uint_);
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return value_.real_;
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0 : 0.0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to double.");
+}
+
+float Value::asFloat() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<float>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<float>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    // This can fail (silently?) if the value is bigger than MAX_FLOAT.
+    return static_cast<float>(integerToDouble(value_.uint_));
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return static_cast<float>(value_.real_);
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0f : 0.0f;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to float.");
+}
+
+bool Value::asBool() const {
+  switch (type_) {
+  case booleanValue:
+    return value_.bool_;
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ ? true : false;
+  case uintValue:
+    return value_.uint_ ? true : false;
+  case realValue:
+    // This is kind of strange. Not recommended.
+    return (value_.real_ != 0.0) ? true : false;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to bool.");
+}
+
+bool Value::isConvertibleTo(ValueType other) const {
+  switch (other) {
+  case nullValue:
+    return (isNumeric() && asDouble() == 0.0) ||
+           (type_ == booleanValue && value_.bool_ == false) ||
+           (type_ == stringValue && asString() == "") ||
+           (type_ == arrayValue && value_.map_->size() == 0) ||
+           (type_ == objectValue && value_.map_->size() == 0) ||
+           type_ == nullValue;
+  case intValue:
+    return isInt() ||
+           (type_ == realValue && InRange(value_.real_, minInt, maxInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case uintValue:
+    return isUInt() ||
+           (type_ == realValue && InRange(value_.real_, 0, maxUInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case realValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case booleanValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case stringValue:
+    return isNumeric() || type_ == booleanValue || type_ == stringValue ||
+           type_ == nullValue;
+  case arrayValue:
+    return type_ == arrayValue || type_ == nullValue;
+  case objectValue:
+    return type_ == objectValue || type_ == nullValue;
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return false;
+}
+
+/// Number of values in array or object
+ArrayIndex Value::size() const {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+  case stringValue:
+    return 0;
+  case arrayValue: // size of the array is highest index + 1
+    if (!value_.map_->empty()) {
+      ObjectValues::const_iterator itLast = value_.map_->end();
+      --itLast;
+      return (*itLast).first.index() + 1;
+    }
+    return 0;
+  case objectValue:
+    return ArrayIndex(value_.map_->size());
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return 0; // unreachable;
+}
+
+bool Value::empty() const {
+  if (isNull() || isArray() || isObject())
+    return size() == 0u;
+  else
+    return false;
+}
+
+bool Value::operator!() const { return isNull(); }
+
+void Value::clear() {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue ||
+                          type_ == objectValue,
+                      "in Json::Value::clear(): requires complex value");
+  start_ = 0;
+  limit_ = 0;
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    value_.map_->clear();
+    break;
+  default:
+    break;
+  }
+}
+
+void Value::resize(ArrayIndex newSize) {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue,
+                      "in Json::Value::resize(): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  ArrayIndex oldSize = size();
+  if (newSize == 0)
+    clear();
+  else if (newSize > oldSize)
+    (*this)[newSize - 1];
+  else {
+    for (ArrayIndex index = newSize; index < oldSize; ++index) {
+      value_.map_->erase(index);
+    }
+    JSON_ASSERT(size() == newSize);
+  }
+}
+
+Value& Value::operator[](ArrayIndex index) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->lower_bound(key);
+  if (it != value_.map_->end() && (*it).first == key)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(key, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  return (*it).second;
+}
+
+Value& Value::operator[](int index) {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index): index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+const Value& Value::operator[](ArrayIndex index) const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex)const: requires arrayValue");
+  if (type_ == nullValue)
+    return nullSingleton();
+  CZString key(index);
+  ObjectValues::const_iterator it = value_.map_->find(key);
+  if (it == value_.map_->end())
+    return nullSingleton();
+  return (*it).second;
+}
+
+const Value& Value::operator[](int index) const {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index) const: index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+void Value::initBasic(ValueType vtype, bool allocated) {
+  type_ = vtype;
+  allocated_ = allocated;
+  comments_ = 0;
+  start_ = 0;
+  limit_ = 0;
+}
+
+// Access an object value by name, create a null member if it does not exist.
+// @pre Type of '*this' is object or null.
+// @param key is null-terminated.
+Value& Value::resolveReference(const char* key) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(strlen(key)), CZString::noDuplication); // NOTE!
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+// @param key is not null-terminated.
+Value& Value::resolveReference(char const* key, char const* cend)
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(key, end): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy);
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullSingleton());
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+Value Value::get(ArrayIndex index, const Value& defaultValue) const {
+  const Value* value = &((*this)[index]);
+  return value == &nullSingleton() ? defaultValue : *value;
+}
+
+bool Value::isValidIndex(ArrayIndex index) const { return index < size(); }
+
+Value const* Value::find(char const* key, char const* cend) const
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::find(key, end, found): requires objectValue or nullValue");
+  if (type_ == nullValue) return NULL;
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::const_iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end()) return NULL;
+  return &(*it).second;
+}
+const Value& Value::operator[](const char* key) const
+{
+  Value const* found = find(key, key + strlen(key));
+  if (!found) return nullSingleton();
+  return *found;
+}
+Value const& Value::operator[](JSONCPP_STRING const& key) const
+{
+  Value const* found = find(key.data(), key.data() + key.length());
+  if (!found) return nullSingleton();
+  return *found;
+}
+
+Value& Value::operator[](const char* key) {
+  return resolveReference(key, key + strlen(key));
+}
+
+Value& Value::operator[](const JSONCPP_STRING& key) {
+  return resolveReference(key.data(), key.data() + key.length());
+}
+
+Value& Value::operator[](const StaticString& key) {
+  return resolveReference(key.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value& Value::operator[](const CppTL::ConstString& key) {
+  return resolveReference(key.c_str(), key.end_c_str());
+}
+Value const& Value::operator[](CppTL::ConstString const& key) const
+{
+  Value const* found = find(key.c_str(), key.end_c_str());
+  if (!found) return nullSingleton();
+  return *found;
+}
+#endif
+
+Value& Value::append(const Value& value) { return (*this)[size()] = value; }
+
+Value Value::get(char const* key, char const* cend, Value const& defaultValue) const
+{
+  Value const* found = find(key, cend);
+  return !found ? defaultValue : *found;
+}
+Value Value::get(char const* key, Value const& defaultValue) const
+{
+  return get(key, key + strlen(key), defaultValue);
+}
+Value Value::get(JSONCPP_STRING const& key, Value const& defaultValue) const
+{
+  return get(key.data(), key.data() + key.length(), defaultValue);
+}
+
+
+bool Value::removeMember(const char* key, const char* cend, Value* removed)
+{
+  if (type_ != objectValue) {
+    return false;
+  }
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end())
+    return false;
+  *removed = it->second;
+  value_.map_->erase(it);
+  return true;
+}
+bool Value::removeMember(const char* key, Value* removed)
+{
+  return removeMember(key, key + strlen(key), removed);
+}
+bool Value::removeMember(JSONCPP_STRING const& key, Value* removed)
+{
+  return removeMember(key.data(), key.data() + key.length(), removed);
+}
+Value Value::removeMember(const char* key)
+{
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue,
+                      "in Json::Value::removeMember(): requires objectValue");
+  if (type_ == nullValue)
+    return nullSingleton();
+
+  Value removed;  // null
+  removeMember(key, key + strlen(key), &removed);
+  return removed; // still null if removeMember() did nothing
+}
+Value Value::removeMember(const JSONCPP_STRING& key)
+{
+  return removeMember(key.c_str());
+}
+
+bool Value::removeIndex(ArrayIndex index, Value* removed) {
+  if (type_ != arrayValue) {
+    return false;
+  }
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->find(key);
+  if (it == value_.map_->end()) {
+    return false;
+  }
+  *removed = it->second;
+  ArrayIndex oldSize = size();
+  // shift left all items left, into the place of the "removed"
+  for (ArrayIndex i = index; i < (oldSize - 1); ++i){
+    CZString keey(i);
+    (*value_.map_)[keey] = (*this)[i + 1];
+  }
+  // erase the last one ("leftover")
+  CZString keyLast(oldSize - 1);
+  ObjectValues::iterator itLast = value_.map_->find(keyLast);
+  value_.map_->erase(itLast);
+  return true;
+}
+
+#ifdef JSON_USE_CPPTL
+Value Value::get(const CppTL::ConstString& key,
+                 const Value& defaultValue) const {
+  return get(key.c_str(), key.end_c_str(), defaultValue);
+}
+#endif
+
+bool Value::isMember(char const* key, char const* cend) const
+{
+  Value const* value = find(key, cend);
+  return NULL != value;
+}
+bool Value::isMember(char const* key) const
+{
+  return isMember(key, key + strlen(key));
+}
+bool Value::isMember(JSONCPP_STRING const& key) const
+{
+  return isMember(key.data(), key.data() + key.length());
+}
+
+#ifdef JSON_USE_CPPTL
+bool Value::isMember(const CppTL::ConstString& key) const {
+  return isMember(key.c_str(), key.end_c_str());
+}
+#endif
+
+Value::Members Value::getMemberNames() const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::getMemberNames(), value must be objectValue");
+  if (type_ == nullValue)
+    return Value::Members();
+  Members members;
+  members.reserve(value_.map_->size());
+  ObjectValues::const_iterator it = value_.map_->begin();
+  ObjectValues::const_iterator itEnd = value_.map_->end();
+  for (; it != itEnd; ++it) {
+    members.push_back(JSONCPP_STRING((*it).first.data(),
+                                  (*it).first.length()));
+  }
+  return members;
+}
+//
+//# ifdef JSON_USE_CPPTL
+// EnumMemberNames
+// Value::enumMemberNames() const
+//{
+//   if ( type_ == objectValue )
+//   {
+//      return CppTL::Enum::any(  CppTL::Enum::transform(
+//         CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ),
+//         MemberNamesTransform() ) );
+//   }
+//   return EnumMemberNames();
+//}
+//
+//
+// EnumValues
+// Value::enumValues() const
+//{
+//   if ( type_ == objectValue  ||  type_ == arrayValue )
+//      return CppTL::Enum::anyValues( *(value_.map_),
+//                                     CppTL::Type<const Value &>() );
+//   return EnumValues();
+//}
+//
+//# endif
+
+static bool IsIntegral(double d) {
+  double integral_part;
+  return modf(d, &integral_part) == 0.0;
+}
+
+bool Value::isNull() const { return type_ == nullValue; }
+
+bool Value::isBool() const { return type_ == booleanValue; }
+
+bool Value::isInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= minInt && value_.int_ <= maxInt;
+  case uintValue:
+    return value_.uint_ <= UInt(maxInt);
+  case realValue:
+    return value_.real_ >= minInt && value_.real_ <= maxInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isUInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt);
+  case uintValue:
+    return value_.uint_ <= maxUInt;
+  case realValue:
+    return value_.real_ >= 0 && value_.real_ <= maxUInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return true;
+  case uintValue:
+    return value_.uint_ <= UInt64(maxInt64);
+  case realValue:
+    // Note that maxInt64 (= 2^63 - 1) is not exactly representable as a
+    // double, so double(maxInt64) will be rounded up to 2^63. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= double(minInt64) &&
+           value_.real_ < double(maxInt64) && IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isUInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0;
+  case uintValue:
+    return true;
+  case realValue:
+    // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
+    // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= 0 && value_.real_ < maxUInt64AsDouble &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isIntegral() const {
+#if defined(JSON_HAS_INT64)
+  return isInt64() || isUInt64();
+#else
+  return isInt() || isUInt();
+#endif
+}
+
+bool Value::isDouble() const { return type_ == realValue || isIntegral(); }
+
+bool Value::isNumeric() const { return isIntegral() || isDouble(); }
+
+bool Value::isString() const { return type_ == stringValue; }
+
+bool Value::isArray() const { return type_ == arrayValue; }
+
+bool Value::isObject() const { return type_ == objectValue; }
+
+void Value::setComment(const char* comment, size_t len, CommentPlacement placement) {
+  if (!comments_)
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+  if ((len > 0) && (comment[len-1] == '\n')) {
+    // Always discard trailing newline, to aid indentation.
+    len -= 1;
+  }
+  comments_[placement].setComment(comment, len);
+}
+
+void Value::setComment(const char* comment, CommentPlacement placement) {
+  setComment(comment, strlen(comment), placement);
+}
+
+void Value::setComment(const JSONCPP_STRING& comment, CommentPlacement placement) {
+  setComment(comment.c_str(), comment.length(), placement);
+}
+
+bool Value::hasComment(CommentPlacement placement) const {
+  return comments_ != 0 && comments_[placement].comment_ != 0;
+}
+
+JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
+  if (hasComment(placement))
+    return comments_[placement].comment_;
+  return "";
+}
+
+void Value::setOffsetStart(ptrdiff_t start) { start_ = start; }
+
+void Value::setOffsetLimit(ptrdiff_t limit) { limit_ = limit; }
+
+ptrdiff_t Value::getOffsetStart() const { return start_; }
+
+ptrdiff_t Value::getOffsetLimit() const { return limit_; }
+
+JSONCPP_STRING Value::toStyledString() const {
+  StyledWriter writer;
+  return writer.write(*this);
+}
+
+Value::const_iterator Value::begin() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::const_iterator Value::end() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::iterator Value::begin() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+Value::iterator Value::end() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+// class PathArgument
+// //////////////////////////////////////////////////////////////////
+
+PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {}
+
+PathArgument::PathArgument(ArrayIndex index)
+    : key_(), index_(index), kind_(kindIndex) {}
+
+PathArgument::PathArgument(const char* key)
+    : key_(key), index_(), kind_(kindKey) {}
+
+PathArgument::PathArgument(const JSONCPP_STRING& key)
+    : key_(key.c_str()), index_(), kind_(kindKey) {}
+
+// class Path
+// //////////////////////////////////////////////////////////////////
+
+Path::Path(const JSONCPP_STRING& path,
+           const PathArgument& a1,
+           const PathArgument& a2,
+           const PathArgument& a3,
+           const PathArgument& a4,
+           const PathArgument& a5) {
+  InArgs in;
+  in.push_back(&a1);
+  in.push_back(&a2);
+  in.push_back(&a3);
+  in.push_back(&a4);
+  in.push_back(&a5);
+  makePath(path, in);
+}
+
+void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) {
+  const char* current = path.c_str();
+  const char* end = current + path.length();
+  InArgs::const_iterator itInArg = in.begin();
+  while (current != end) {
+    if (*current == '[') {
+      ++current;
+      if (*current == '%')
+        addPathInArg(path, in, itInArg, PathArgument::kindIndex);
+      else {
+        ArrayIndex index = 0;
+        for (; current != end && *current >= '0' && *current <= '9'; ++current)
+          index = index * 10 + ArrayIndex(*current - '0');
+        args_.push_back(index);
+      }
+      if (current == end || *++current != ']')
+        invalidPath(path, int(current - path.c_str()));
+    } else if (*current == '%') {
+      addPathInArg(path, in, itInArg, PathArgument::kindKey);
+      ++current;
+    } else if (*current == '.' || *current == ']') {
+      ++current;
+    } else {
+      const char* beginName = current;
+      while (current != end && !strchr("[.", *current))
+        ++current;
+      args_.push_back(JSONCPP_STRING(beginName, current));
+    }
+  }
+}
+
+void Path::addPathInArg(const JSONCPP_STRING& /*path*/,
+                        const InArgs& in,
+                        InArgs::const_iterator& itInArg,
+                        PathArgument::Kind kind) {
+  if (itInArg == in.end()) {
+    // Error: missing argument %d
+  } else if ((*itInArg)->kind_ != kind) {
+    // Error: bad argument type
+  } else {
+    args_.push_back(**itInArg++);
+  }
+}
+
+void Path::invalidPath(const JSONCPP_STRING& /*path*/, int /*location*/) {
+  // Error: invalid path.
+}
+
+const Value& Path::resolve(const Value& root) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_)) {
+        // Error: unable to resolve path (array value expected at position...
+        return Value::null;
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: unable to resolve path (object value expected at position...)
+        return Value::null;
+      }
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullSingleton()) {
+        // Error: unable to resolve path (object has no member named '' at
+        // position...)
+        return Value::null;
+      }
+    }
+  }
+  return *node;
+}
+
+Value Path::resolve(const Value& root, const Value& defaultValue) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_))
+        return defaultValue;
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject())
+        return defaultValue;
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullSingleton())
+        return defaultValue;
+    }
+  }
+  return *node;
+}
+
+Value& Path::make(Value& root) const {
+  Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray()) {
+        // Error: node is not an array at position ...
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: node is not an object at position...
+      }
+      node = &((*node)[arg.key_]);
+    }
+  }
+  return *node;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_value.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: src/lib_json/json_writer.cpp
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/writer.h>
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <iomanip>
+#include <memory>
+#include <sstream>
+#include <utility>
+#include <set>
+#include <cassert>
+#include <cstring>
+#include <cstdio>
+
+#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0
+#include <float.h>
+#define isfinite _finite
+#elif defined(__sun) && defined(__SVR4) //Solaris
+#if !defined(isfinite)
+#include <ieeefp.h>
+#define isfinite finite
+#endif
+#elif defined(_AIX)
+#if !defined(isfinite)
+#include <math.h>
+#define isfinite finite
+#endif
+#elif defined(__hpux)
+#if !defined(isfinite)
+#if defined(__ia64) && !defined(finite)
+#define isfinite(x) ((sizeof(x) == sizeof(float) ? \
+                     _Isfinitef(x) : _IsFinite(x)))
+#else
+#include <math.h>
+#define isfinite finite
+#endif
+#endif
+#else
+#include <cmath>
+#if !(defined(__QNXNTO__)) // QNX already defines isfinite
+#define isfinite std::isfinite
+#endif
+#endif
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#if !defined(__MINGW32__) && !defined(__CYGWIN__)
+#define snprintf std::snprintf
+#endif
+#endif
+
+#if defined(__BORLANDC__)  
+#include <float.h>
+#define isfinite _finite
+#define snprintf _snprintf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<StreamWriter> StreamWriterPtr;
+#else
+typedef std::auto_ptr<StreamWriter>   StreamWriterPtr;
+#endif
+
+static bool containsControlCharacter(const char* str) {
+  while (*str) {
+    if (isControlCharacter(*(str++)))
+      return true;
+  }
+  return false;
+}
+
+static bool containsControlCharacter0(const char* str, unsigned len) {
+  char const* end = str + len;
+  while (end != str) {
+    if (isControlCharacter(*str) || 0==*str)
+      return true;
+    ++str;
+  }
+  return false;
+}
+
+JSONCPP_STRING valueToString(LargestInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  if (value == Value::minLargestInt) {
+    uintToString(LargestUInt(Value::maxLargestInt) + 1, current);
+    *--current = '-';
+  } else if (value < 0) {
+    uintToString(LargestUInt(-value), current);
+    *--current = '-';
+  } else {
+    uintToString(LargestUInt(value), current);
+  }
+  assert(current >= buffer);
+  return current;
+}
+
+JSONCPP_STRING valueToString(LargestUInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  uintToString(value, current);
+  assert(current >= buffer);
+  return current;
+}
+
+#if defined(JSON_HAS_INT64)
+
+JSONCPP_STRING valueToString(Int value) {
+  return valueToString(LargestInt(value));
+}
+
+JSONCPP_STRING valueToString(UInt value) {
+  return valueToString(LargestUInt(value));
+}
+
+#endif // # if defined(JSON_HAS_INT64)
+
+namespace {
+JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int precision) {
+  // Allocate a buffer that is more than large enough to store the 16 digits of
+  // precision requested below.
+  char buffer[32];
+  int len = -1;
+
+  char formatString[6];
+  sprintf(formatString, "%%.%dg", precision);
+
+  // Print into the buffer. We need not request the alternative representation
+  // that always has a decimal point because JSON doesn't distingish the
+  // concepts of reals and integers.
+  if (isfinite(value)) {
+    len = snprintf(buffer, sizeof(buffer), formatString, value);
+  } else {
+    // IEEE standard states that NaN values will not compare to themselves
+    if (value != value) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null");
+    } else if (value < 0) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999");
+    } else {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999");
+    }
+    // For those, we do not need to call fixNumLoc, but it is fast.
+  }
+  assert(len >= 0);
+  fixNumericLocale(buffer, buffer + len);
+  return buffer;
+}
+}
+
+JSONCPP_STRING valueToString(double value) { return valueToString(value, false, 17); }
+
+JSONCPP_STRING valueToString(bool value) { return value ? "true" : "false"; }
+
+JSONCPP_STRING valueToQuotedString(const char* value) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL &&
+      !containsControlCharacter(value))
+    return JSONCPP_STRING("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to JSONCPP_STRING is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  JSONCPP_STRING::size_type maxsize =
+      strlen(value) * 2 + 3; // allescaped+quotes+NULL
+  JSONCPP_STRING result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  for (const char* c = value; *c != 0; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if (isControlCharacter(*c)) {
+        JSONCPP_OSTRINGSTREAM oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// https://github.com/upcaste/upcaste/blob/master/src/upcore/src/cstring/strnpbrk.cpp
+static char const* strnpbrk(char const* s, char const* accept, size_t n) {
+  assert((s || !n) && accept);
+
+  char const* const end = s + n;
+  for (char const* cur = s; cur < end; ++cur) {
+    int const c = *cur;
+    for (char const* a = accept; *a; ++a) {
+      if (*a == c) {
+        return cur;
+      }
+    }
+  }
+  return NULL;
+}
+static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strnpbrk(value, "\"\\\b\f\n\r\t", length) == NULL &&
+      !containsControlCharacter0(value, length))
+    return JSONCPP_STRING("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to JSONCPP_STRING is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  JSONCPP_STRING::size_type maxsize =
+      length * 2 + 3; // allescaped+quotes+NULL
+  JSONCPP_STRING result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  char const* end = value + length;
+  for (const char* c = value; c != end; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.)
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if ((isControlCharacter(*c)) || (*c == 0)) {
+        JSONCPP_OSTRINGSTREAM oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// Class Writer
+// //////////////////////////////////////////////////////////////////
+Writer::~Writer() {}
+
+// Class FastWriter
+// //////////////////////////////////////////////////////////////////
+
+FastWriter::FastWriter()
+    : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false),
+      omitEndingLineFeed_(false) {}
+
+void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; }
+
+void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
+
+void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
+
+JSONCPP_STRING FastWriter::write(const Value& root) {
+  document_ = "";
+  writeValue(root);
+  if (!omitEndingLineFeed_)
+    document_ += "\n";
+  return document_;
+}
+
+void FastWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    if (!dropNullPlaceholders_)
+      document_ += "null";
+    break;
+  case intValue:
+    document_ += valueToString(value.asLargestInt());
+    break;
+  case uintValue:
+    document_ += valueToString(value.asLargestUInt());
+    break;
+  case realValue:
+    document_ += valueToString(value.asDouble());
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str));
+    break;
+  }
+  case booleanValue:
+    document_ += valueToString(value.asBool());
+    break;
+  case arrayValue: {
+    document_ += '[';
+    ArrayIndex size = value.size();
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (index > 0)
+        document_ += ',';
+      writeValue(value[index]);
+    }
+    document_ += ']';
+  } break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    document_ += '{';
+    for (Value::Members::iterator it = members.begin(); it != members.end();
+         ++it) {
+      const JSONCPP_STRING& name = *it;
+      if (it != members.begin())
+        document_ += ',';
+      document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
+      document_ += yamlCompatiblityEnabled_ ? ": " : ":";
+      writeValue(value[name]);
+    }
+    document_ += '}';
+  } break;
+  }
+}
+
+// Class StyledWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledWriter::StyledWriter()
+    : rightMargin_(74), indentSize_(3), addChildValues_() {}
+
+JSONCPP_STRING StyledWriter::write(const Value& root) {
+  document_ = "";
+  addChildValues_ = false;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  document_ += "\n";
+  return document_;
+}
+
+void StyledWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const JSONCPP_STRING& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        document_ += " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          writeIndent();
+          writeValue(childValue);
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      document_ += "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          document_ += ", ";
+        document_ += childValues_[index];
+      }
+      document_ += " ]";
+    }
+  }
+}
+
+bool StyledWriter::isMultineArray(const Value& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledWriter::pushValue(const JSONCPP_STRING& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    document_ += value;
+}
+
+void StyledWriter::writeIndent() {
+  if (!document_.empty()) {
+    char last = document_[document_.length() - 1];
+    if (last == ' ') // already indented
+      return;
+    if (last != '\n') // Comments may add new-line
+      document_ += '\n';
+  }
+  document_ += indentString_;
+}
+
+void StyledWriter::writeWithIndent(const JSONCPP_STRING& value) {
+  writeIndent();
+  document_ += value;
+}
+
+void StyledWriter::indent() { indentString_ += JSONCPP_STRING(indentSize_, ' '); }
+
+void StyledWriter::unindent() {
+  assert(indentString_.size() >= indentSize_);
+  indentString_.resize(indentString_.size() - indentSize_);
+}
+
+void StyledWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  document_ += "\n";
+  writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    document_ += *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      writeIndent();
+    ++iter;
+  }
+
+  // Comments are stripped of trailing newlines, so add one here
+  document_ += "\n";
+}
+
+void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    document_ += " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    document_ += "\n";
+    document_ += root.getComment(commentAfter);
+    document_ += "\n";
+  }
+}
+
+bool StyledWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+// Class StyledStreamWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation)
+    : document_(NULL), rightMargin_(74), indentation_(indentation),
+      addChildValues_() {}
+
+void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
+  document_ = &out;
+  addChildValues_ = false;
+  indentString_ = "";
+  indented_ = true;
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *document_ << "\n";
+  document_ = NULL; // Forget the stream, for safety.
+}
+
+void StyledStreamWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const JSONCPP_STRING& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        *document_ << " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledStreamWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *document_ << "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *document_ << ", ";
+        *document_ << childValues_[index];
+      }
+      *document_ << " ]";
+    }
+  }
+}
+
+bool StyledStreamWriter::isMultineArray(const Value& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledStreamWriter::pushValue(const JSONCPP_STRING& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *document_ << value;
+}
+
+void StyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+  *document_ << '\n' << indentString_;
+}
+
+void StyledStreamWriter::writeWithIndent(const JSONCPP_STRING& value) {
+  if (!indented_) writeIndent();
+  *document_ << value;
+  indented_ = false;
+}
+
+void StyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void StyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void StyledStreamWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *document_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would include newline
+      *document_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void StyledStreamWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    *document_ << ' ' << root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *document_ << root.getComment(commentAfter);
+  }
+  indented_ = false;
+}
+
+bool StyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+//////////////////////////
+// BuiltStyledStreamWriter
+
+/// Scoped enums are not available until C++11.
+struct CommentStyle {
+  /// Decide whether to write comments.
+  enum Enum {
+    None,  ///< Drop all comments.
+    Most,  ///< Recover odd behavior of previous versions (not implemented yet).
+    All  ///< Keep all comments.
+  };
+};
+
+struct BuiltStyledStreamWriter : public StreamWriter
+{
+  BuiltStyledStreamWriter(
+      JSONCPP_STRING const& indentation,
+      CommentStyle::Enum cs,
+      JSONCPP_STRING const& colonSymbol,
+      JSONCPP_STRING const& nullSymbol,
+      JSONCPP_STRING const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision);
+  int write(Value const& root, JSONCPP_OSTREAM* sout) JSONCPP_OVERRIDE;
+private:
+  void writeValue(Value const& value);
+  void writeArrayValue(Value const& value);
+  bool isMultineArray(Value const& value);
+  void pushValue(JSONCPP_STRING const& value);
+  void writeIndent();
+  void writeWithIndent(JSONCPP_STRING const& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(Value const& root);
+  void writeCommentAfterValueOnSameLine(Value const& root);
+  static bool hasCommentForValue(const Value& value);
+
+  typedef std::vector<JSONCPP_STRING> ChildValues;
+
+  ChildValues childValues_;
+  JSONCPP_STRING indentString_;
+  unsigned int rightMargin_;
+  JSONCPP_STRING indentation_;
+  CommentStyle::Enum cs_;
+  JSONCPP_STRING colonSymbol_;
+  JSONCPP_STRING nullSymbol_;
+  JSONCPP_STRING endingLineFeedSymbol_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+  bool useSpecialFloats_ : 1;
+  unsigned int precision_;
+};
+BuiltStyledStreamWriter::BuiltStyledStreamWriter(
+      JSONCPP_STRING const& indentation,
+      CommentStyle::Enum cs,
+      JSONCPP_STRING const& colonSymbol,
+      JSONCPP_STRING const& nullSymbol,
+      JSONCPP_STRING const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision)
+  : rightMargin_(74)
+  , indentation_(indentation)
+  , cs_(cs)
+  , colonSymbol_(colonSymbol)
+  , nullSymbol_(nullSymbol)
+  , endingLineFeedSymbol_(endingLineFeedSymbol)
+  , addChildValues_(false)
+  , indented_(false)
+  , useSpecialFloats_(useSpecialFloats)
+  , precision_(precision)
+{
+}
+int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout)
+{
+  sout_ = sout;
+  addChildValues_ = false;
+  indented_ = true;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *sout_ << endingLineFeedSymbol_;
+  sout_ = NULL;
+  return 0;
+}
+void BuiltStyledStreamWriter::writeValue(Value const& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue(nullSymbol_);
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_));
+    break;
+  case stringValue:
+  {
+    // Is NULL is possible for value.string_? No.
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        JSONCPP_STRING const& name = *it;
+        Value const& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())));
+        *sout_ << colonSymbol_;
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value);
+    if (isMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        Value const& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *sout_ << "[";
+      if (!indentation_.empty()) *sout_ << " ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *sout_ << ((!indentation_.empty()) ? ", " : ",");
+        *sout_ << childValues_[index];
+      }
+      if (!indentation_.empty()) *sout_ << " ";
+      *sout_ << "]";
+    }
+  }
+}
+
+bool BuiltStyledStreamWriter::isMultineArray(Value const& value) {
+  ArrayIndex const size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
+    Value const& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    ArrayIndex lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (ArrayIndex index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += static_cast<ArrayIndex>(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void BuiltStyledStreamWriter::pushValue(JSONCPP_STRING const& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *sout_ << value;
+}
+
+void BuiltStyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+
+  if (!indentation_.empty()) {
+    // In this case, drop newlines too.
+    *sout_ << '\n' << indentString_;
+  }
+}
+
+void BuiltStyledStreamWriter::writeWithIndent(JSONCPP_STRING const& value) {
+  if (!indented_) writeIndent();
+  *sout_ << value;
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void BuiltStyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const JSONCPP_STRING& comment = root.getComment(commentBefore);
+  JSONCPP_STRING::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *sout_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would write extra newline
+      *sout_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (root.hasComment(commentAfterOnSameLine))
+    *sout_ << " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *sout_ << root.getComment(commentAfter);
+  }
+}
+
+// static
+bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+///////////////
+// StreamWriter
+
+StreamWriter::StreamWriter()
+    : sout_(NULL)
+{
+}
+StreamWriter::~StreamWriter()
+{
+}
+StreamWriter::Factory::~Factory()
+{}
+StreamWriterBuilder::StreamWriterBuilder()
+{
+  setDefaults(&settings_);
+}
+StreamWriterBuilder::~StreamWriterBuilder()
+{}
+StreamWriter* StreamWriterBuilder::newStreamWriter() const
+{
+  JSONCPP_STRING indentation = settings_["indentation"].asString();
+  JSONCPP_STRING cs_str = settings_["commentStyle"].asString();
+  bool eyc = settings_["enableYAMLCompatibility"].asBool();
+  bool dnp = settings_["dropNullPlaceholders"].asBool();
+  bool usf = settings_["useSpecialFloats"].asBool(); 
+  unsigned int pre = settings_["precision"].asUInt();
+  CommentStyle::Enum cs = CommentStyle::All;
+  if (cs_str == "All") {
+    cs = CommentStyle::All;
+  } else if (cs_str == "None") {
+    cs = CommentStyle::None;
+  } else {
+    throwRuntimeError("commentStyle must be 'All' or 'None'");
+  }
+  JSONCPP_STRING colonSymbol = " : ";
+  if (eyc) {
+    colonSymbol = ": ";
+  } else if (indentation.empty()) {
+    colonSymbol = ":";
+  }
+  JSONCPP_STRING nullSymbol = "null";
+  if (dnp) {
+    nullSymbol = "";
+  }
+  if (pre > 17) pre = 17;
+  JSONCPP_STRING endingLineFeedSymbol = "";
+  return new BuiltStyledStreamWriter(
+      indentation, cs,
+      colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);
+}
+static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("indentation");
+  valid_keys->insert("commentStyle");
+  valid_keys->insert("enableYAMLCompatibility");
+  valid_keys->insert("dropNullPlaceholders");
+  valid_keys->insert("useSpecialFloats");
+  valid_keys->insert("precision");
+}
+bool StreamWriterBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<JSONCPP_STRING> valid_keys;
+  getValidWriterKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    JSONCPP_STRING const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
+{
+  return settings_[key];
+}
+// static
+void StreamWriterBuilder::setDefaults(Json::Value* settings)
+{
+  //! [StreamWriterBuilderDefaults]
+  (*settings)["commentStyle"] = "All";
+  (*settings)["indentation"] = "\t";
+  (*settings)["enableYAMLCompatibility"] = false;
+  (*settings)["dropNullPlaceholders"] = false;
+  (*settings)["useSpecialFloats"] = false;
+  (*settings)["precision"] = 17;
+  //! [StreamWriterBuilderDefaults]
+}
+
+JSONCPP_STRING writeString(StreamWriter::Factory const& builder, Value const& root) {
+  JSONCPP_OSTRINGSTREAM sout;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout.str();
+}
+
+JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) {
+  StreamWriterBuilder builder;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout;
+}
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: src/lib_json/json_writer.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/LICENSE b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/LICENSE
new file mode 100644
index 0000000..ad76b1d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/LICENSE
@@ -0,0 +1,31 @@
+
+Copyright (c) 2000-2017 Chih-Chung Chang and Chih-Jen Lin
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+3. Neither name of copyright holders nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.cpp
new file mode 100644
index 0000000..77ea425
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.cpp
@@ -0,0 +1,3184 @@
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <float.h>
+#include <string.h>
+#include <stdarg.h>
+#include <limits.h>
+#include <locale.h>
+#include "libsvm.h"
+
+namespace LIBSVM {
+    int libsvm_version = LIBSVM_VERSION;
+    typedef float Qfloat;
+    typedef signed char schar;
+#ifndef min
+    template <class T> static inline T min(T x,T y) { return (x<y)?x:y; }
+#endif
+#ifndef max
+    template <class T> static inline T max(T x,T y) { return (x>y)?x:y; }
+#endif
+    template <class T> static inline void swap(T& x, T& y) { T t=x; x=y; y=t; }
+    template <class S, class T> static inline void clone(T*& dst, S* src, int n)
+    {
+        dst = new T[n];
+        memcpy((void *)dst,(void *)src,sizeof(T)*n);
+    }
+    static inline double powi(double base, int times)
+    {
+        double tmp = base, ret = 1.0;
+        
+        for(int t=times; t>0; t/=2)
+        {
+            if(t%2==1) ret*=tmp;
+            tmp = tmp * tmp;
+        }
+        return ret;
+    }
+#define INF HUGE_VAL
+#define TAU 1e-12
+#define Malloc(type,n) (type *)malloc((n)*sizeof(type))
+    
+    static void print_string_stdout(const char *s)
+    {
+        fputs(s,stdout);
+        fflush(stdout);
+    }
+    static void (*svm_print_string) (const char *) = &print_string_stdout;
+#if 1
+    static void info(const char *fmt,...)
+    {
+        char buf[BUFSIZ];
+        va_list ap;
+        va_start(ap,fmt);
+        vsprintf(buf,fmt,ap);
+        va_end(ap);
+        (*svm_print_string)(buf);
+    }
+#else
+    static void info(const char *fmt,...) {}
+#endif
+    
+    //
+    // Kernel Cache
+    //
+    // l is the number of total data items
+    // size is the cache size limit in bytes
+    //
+    class Cache
+    {
+    public:
+        Cache(int l,long int size);
+        ~Cache();
+        
+        // request data [0,len)
+        // return some position p where [p,len) need to be filled
+        // (p >= len if nothing needs to be filled)
+        int get_data(const int index, Qfloat **data, int len);
+        void swap_index(int i, int j);
+    private:
+        int l;
+        long int size;
+        struct head_t
+        {
+            head_t *prev, *next;	// a circular list
+            Qfloat *data;
+            int len;		// data[0,len) is cached in this entry
+        };
+        
+        head_t *head;
+        head_t lru_head;
+        void lru_delete(head_t *h);
+        void lru_insert(head_t *h);
+    };
+    
+    Cache::Cache(int l_,long int size_):l(l_),size(size_)
+    {
+        head = (head_t *)calloc(l,sizeof(head_t));	// initialized to 0
+        size /= sizeof(Qfloat);
+        size -= l * sizeof(head_t) / sizeof(Qfloat);
+        size = max(size, 2 * (long int) l);	// cache must be large enough for two columns
+        lru_head.next = lru_head.prev = &lru_head;
+    }
+    
+    Cache::~Cache()
+    {
+        for(head_t *h = lru_head.next; h != &lru_head; h=h->next)
+            free(h->data);
+        free(head);
+    }
+    
+    void Cache::lru_delete(head_t *h)
+    {
+        // delete from current location
+        h->prev->next = h->next;
+        h->next->prev = h->prev;
+    }
+    
+    void Cache::lru_insert(head_t *h)
+    {
+        // insert to last position
+        h->next = &lru_head;
+        h->prev = lru_head.prev;
+        h->prev->next = h;
+        h->next->prev = h;
+    }
+    
+    int Cache::get_data(const int index, Qfloat **data, int len)
+    {
+        head_t *h = &head[index];
+        if(h->len) lru_delete(h);
+        int more = len - h->len;
+        
+        if(more > 0)
+        {
+            // free old space
+            while(size < more)
+            {
+                head_t *old = lru_head.next;
+                lru_delete(old);
+                free(old->data);
+                size += old->len;
+                old->data = 0;
+                old->len = 0;
+            }
+            
+            // allocate new space
+            h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len);
+            size -= more;
+            swap(h->len,len);
+        }
+        
+        lru_insert(h);
+        *data = h->data;
+        return len;
+    }
+    
+    void Cache::swap_index(int i, int j)
+    {
+        if(i==j) return;
+        
+        if(head[i].len) lru_delete(&head[i]);
+        if(head[j].len) lru_delete(&head[j]);
+        swap(head[i].data,head[j].data);
+        swap(head[i].len,head[j].len);
+        if(head[i].len) lru_insert(&head[i]);
+        if(head[j].len) lru_insert(&head[j]);
+        
+        if(i>j) swap(i,j);
+        for(head_t *h = lru_head.next; h!=&lru_head; h=h->next)
+        {
+            if(h->len > i)
+            {
+                if(h->len > j)
+                    swap(h->data[i],h->data[j]);
+                else
+                {
+                    // give up
+                    lru_delete(h);
+                    free(h->data);
+                    size += h->len;
+                    h->data = 0;
+                    h->len = 0;
+                }
+            }
+        }
+    }
+    
+    //
+    // Kernel evaluation
+    //
+    // the static method k_function is for doing single kernel evaluation
+    // the constructor of Kernel prepares to calculate the l*l kernel matrix
+    // the member function get_Q is for getting one column from the Q Matrix
+    //
+    class QMatrix {
+    public:
+        virtual Qfloat *get_Q(int column, int len) const = 0;
+        virtual double *get_QD() const = 0;
+        virtual void swap_index(int i, int j) const = 0;
+        virtual ~QMatrix() {}
+    };
+    
+    class Kernel: public QMatrix {
+    public:
+        Kernel(int l, svm_node * const * x, const svm_parameter& param);
+        virtual ~Kernel();
+        
+        static double k_function(const svm_node *x, const svm_node *y,
+                                 const svm_parameter& param);
+        virtual Qfloat *get_Q(int column, int len) const = 0;
+        virtual double *get_QD() const = 0;
+        virtual void swap_index(int i, int j) const	// no so const...
+        {
+            swap(x[i],x[j]);
+            if(x_square) swap(x_square[i],x_square[j]);
+        }
+    protected:
+        
+        double (Kernel::*kernel_function)(int i, int j) const;
+        
+    private:
+        const svm_node **x;
+        double *x_square;
+        
+        // svm_parameter
+        const int kernel_type;
+        const int degree;
+        const double gamma;
+        const double coef0;
+        
+        static double dot(const svm_node *px, const svm_node *py);
+        double kernel_linear(int i, int j) const
+        {
+            return dot(x[i],x[j]);
+        }
+        double kernel_poly(int i, int j) const
+        {
+            return powi(gamma*dot(x[i],x[j])+coef0,degree);
+        }
+        double kernel_rbf(int i, int j) const
+        {
+            return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j])));
+        }
+        double kernel_sigmoid(int i, int j) const
+        {
+            return tanh(gamma*dot(x[i],x[j])+coef0);
+        }
+        double kernel_precomputed(int i, int j) const
+        {
+            return x[i][(int)(x[j][0].value)].value;
+        }
+    };
+    
+    Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param)
+    :kernel_type(param.kernel_type), degree(param.degree),
+    gamma(param.gamma), coef0(param.coef0)
+    {
+        switch(kernel_type)
+        {
+            case LINEAR:
+                kernel_function = &Kernel::kernel_linear;
+                break;
+            case POLY:
+                kernel_function = &Kernel::kernel_poly;
+                break;
+            case RBF:
+                kernel_function = &Kernel::kernel_rbf;
+                break;
+            case SIGMOID:
+                kernel_function = &Kernel::kernel_sigmoid;
+                break;
+            case PRECOMPUTED:
+                kernel_function = &Kernel::kernel_precomputed;
+                break;
+        }
+        
+        clone(x,x_,l);
+        
+        if(kernel_type == RBF)
+        {
+            x_square = new double[l];
+            for(int i=0;i<l;i++)
+                x_square[i] = dot(x[i],x[i]);
+        }
+        else
+            x_square = 0;
+    }
+    
+    Kernel::~Kernel()
+    {
+        delete[] x;
+        delete[] x_square;
+    }
+    
+    double Kernel::dot(const svm_node *px, const svm_node *py)
+    {
+        double sum = 0;
+        while(px->index != -1 && py->index != -1)
+        {
+            if(px->index == py->index)
+            {
+                sum += px->value * py->value;
+                ++px;
+                ++py;
+            }
+            else
+            {
+                if(px->index > py->index)
+                    ++py;
+                else
+                    ++px;
+            }
+        }
+        return sum;
+    }
+    
+    double Kernel::k_function(const svm_node *x, const svm_node *y,
+                              const svm_parameter& param)
+    {
+        switch(param.kernel_type)
+        {
+            case LINEAR:
+                return dot(x,y);
+            case POLY:
+                return powi(param.gamma*dot(x,y)+param.coef0,param.degree);
+            case RBF:
+            {
+                double sum = 0;
+                while(x->index != -1 && y->index !=-1)
+                {
+                    if(x->index == y->index)
+                    {
+                        double d = x->value - y->value;
+                        sum += d*d;
+                        ++x;
+                        ++y;
+                    }
+                    else
+                    {
+                        if(x->index > y->index)
+                        {
+                            sum += y->value * y->value;
+                            ++y;
+                        }
+                        else
+                        {
+                            sum += x->value * x->value;
+                            ++x;
+                        }
+                    }
+                }
+                
+                while(x->index != -1)
+                {
+                    sum += x->value * x->value;
+                    ++x;
+                }
+                
+                while(y->index != -1)
+                {
+                    sum += y->value * y->value;
+                    ++y;
+                }
+                
+                return exp(-param.gamma*sum);
+            }
+            case SIGMOID:
+                return tanh(param.gamma*dot(x,y)+param.coef0);
+            case PRECOMPUTED:  //x: test (validation), y: SV
+                return x[(int)(y->value)].value;
+            default:
+                return 0;  // Unreachable
+        }
+    }
+    
+    // An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918
+    // Solves:
+    //
+    //	min 0.5(\alpha^T Q \alpha) + p^T \alpha
+    //
+    //		y^T \alpha = \delta
+    //		y_i = +1 or -1
+    //		0 <= alpha_i <= Cp for y_i = 1
+    //		0 <= alpha_i <= Cn for y_i = -1
+    //
+    // Given:
+    //
+    //	Q, p, y, Cp, Cn, and an initial feasible point \alpha
+    //	l is the size of vectors and matrices
+    //	eps is the stopping tolerance
+    //
+    // solution will be put in \alpha, objective value will be put in obj
+    //
+    class Solver {
+    public:
+        Solver() {};
+        virtual ~Solver() {};
+        
+        struct SolutionInfo {
+            double obj;
+            double rho;
+            double upper_bound_p;
+            double upper_bound_n;
+            double r;	// for Solver_NU
+        };
+        
+        void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_,
+                   double *alpha_, double Cp, double Cn, double eps,
+                   SolutionInfo* si, int shrinking);
+    protected:
+        int active_size;
+        schar *y;
+        double *G;		// gradient of objective function
+        enum { LOWER_BOUND, UPPER_BOUND, FREE };
+        char *alpha_status;	// LOWER_BOUND, UPPER_BOUND, FREE
+        double *alpha;
+        const QMatrix *Q;
+        const double *QD;
+        double eps;
+        double Cp,Cn;
+        double *p;
+        int *active_set;
+        double *G_bar;		// gradient, if we treat free variables as 0
+        int l;
+        bool unshrink;	// XXX
+        
+        double get_C(int i)
+        {
+            return (y[i] > 0)? Cp : Cn;
+        }
+        void update_alpha_status(int i)
+        {
+            if(alpha[i] >= get_C(i))
+                alpha_status[i] = UPPER_BOUND;
+            else if(alpha[i] <= 0)
+                alpha_status[i] = LOWER_BOUND;
+            else alpha_status[i] = FREE;
+        }
+        bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; }
+        bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; }
+        bool is_free(int i) { return alpha_status[i] == FREE; }
+        void swap_index(int i, int j);
+        void reconstruct_gradient();
+        virtual int select_working_set(int &i, int &j);
+        virtual double calculate_rho();
+        virtual void do_shrinking();
+    private:
+        bool be_shrunk(int i, double Gmax1, double Gmax2);
+    };
+    
+    void Solver::swap_index(int i, int j)
+    {
+        Q->swap_index(i,j);
+        swap(y[i],y[j]);
+        swap(G[i],G[j]);
+        swap(alpha_status[i],alpha_status[j]);
+        swap(alpha[i],alpha[j]);
+        swap(p[i],p[j]);
+        swap(active_set[i],active_set[j]);
+        swap(G_bar[i],G_bar[j]);
+    }
+    
+    void Solver::reconstruct_gradient()
+    {
+        // reconstruct inactive elements of G from G_bar and free variables
+        
+        if(active_size == l) return;
+        
+        int i,j;
+        int nr_free = 0;
+        
+        for(j=active_size;j<l;j++)
+            G[j] = G_bar[j] + p[j];
+        
+        for(j=0;j<active_size;j++)
+            if(is_free(j))
+                nr_free++;
+        
+        if(2*nr_free < active_size)
+            info("\nWARNING: using -h 0 may be faster\n");
+        
+        if (nr_free*l > 2*active_size*(l-active_size))
+        {
+            for(i=active_size;i<l;i++)
+            {
+                const Qfloat *Q_i = Q->get_Q(i,active_size);
+                for(j=0;j<active_size;j++)
+                    if(is_free(j))
+                        G[i] += alpha[j] * Q_i[j];
+            }
+        }
+        else
+        {
+            for(i=0;i<active_size;i++)
+                if(is_free(i))
+                {
+                    const Qfloat *Q_i = Q->get_Q(i,l);
+                    double alpha_i = alpha[i];
+                    for(j=active_size;j<l;j++)
+                        G[j] += alpha_i * Q_i[j];
+                }
+        }
+    }
+    
+    void Solver::Solve(int l, const QMatrix& Q, const double *p_, const schar *y_,
+                       double *alpha_, double Cp, double Cn, double eps,
+                       SolutionInfo* si, int shrinking)
+    {
+        this->l = l;
+        this->Q = &Q;
+        QD=Q.get_QD();
+        clone(p, p_,l);
+        clone(y, y_,l);
+        clone(alpha,alpha_,l);
+        this->Cp = Cp;
+        this->Cn = Cn;
+        this->eps = eps;
+        unshrink = false;
+        
+        // initialize alpha_status
+        {
+            alpha_status = new char[l];
+            for(int i=0;i<l;i++)
+                update_alpha_status(i);
+        }
+        
+        // initialize active set (for shrinking)
+        {
+            active_set = new int[l];
+            for(int i=0;i<l;i++)
+                active_set[i] = i;
+            active_size = l;
+        }
+        
+        // initialize gradient
+        {
+            G = new double[l];
+            G_bar = new double[l];
+            int i;
+            for(i=0;i<l;i++)
+            {
+                G[i] = p[i];
+                G_bar[i] = 0;
+            }
+            for(i=0;i<l;i++)
+                if(!is_lower_bound(i))
+                {
+                    const Qfloat *Q_i = Q.get_Q(i,l);
+                    double alpha_i = alpha[i];
+                    int j;
+                    for(j=0;j<l;j++)
+                        G[j] += alpha_i*Q_i[j];
+                    if(is_upper_bound(i))
+                        for(j=0;j<l;j++)
+                            G_bar[j] += get_C(i) * Q_i[j];
+                }
+        }
+        
+        // optimization step
+        
+        int iter = 0;
+        int max_iter = max(10000000, l>INT_MAX/100 ? INT_MAX : 100*l);
+        int counter = min(l,1000)+1;
+        
+        while(iter < max_iter)
+        {
+            // show progress and do shrinking
+            
+            if(--counter == 0)
+            {
+                counter = min(l,1000);
+                if(shrinking) do_shrinking();
+                info(".");
+            }
+            
+            int i,j;
+            if(select_working_set(i,j)!=0)
+            {
+                // reconstruct the whole gradient
+                reconstruct_gradient();
+                // reset active set size and check
+                active_size = l;
+                info("*");
+                if(select_working_set(i,j)!=0)
+                    break;
+                else
+                    counter = 1;	// do shrinking next iteration
+            }
+            
+            ++iter;
+            
+            // update alpha[i] and alpha[j], handle bounds carefully
+            
+            const Qfloat *Q_i = Q.get_Q(i,active_size);
+            const Qfloat *Q_j = Q.get_Q(j,active_size);
+            
+            double C_i = get_C(i);
+            double C_j = get_C(j);
+            
+            double old_alpha_i = alpha[i];
+            double old_alpha_j = alpha[j];
+            
+            if(y[i]!=y[j])
+            {
+                double quad_coef = QD[i]+QD[j]+2*Q_i[j];
+                if (quad_coef <= 0)
+                    quad_coef = TAU;
+                double delta = (-G[i]-G[j])/quad_coef;
+                double diff = alpha[i] - alpha[j];
+                alpha[i] += delta;
+                alpha[j] += delta;
+                
+                if(diff > 0)
+                {
+                    if(alpha[j] < 0)
+                    {
+                        alpha[j] = 0;
+                        alpha[i] = diff;
+                    }
+                }
+                else
+                {
+                    if(alpha[i] < 0)
+                    {
+                        alpha[i] = 0;
+                        alpha[j] = -diff;
+                    }
+                }
+                if(diff > C_i - C_j)
+                {
+                    if(alpha[i] > C_i)
+                    {
+                        alpha[i] = C_i;
+                        alpha[j] = C_i - diff;
+                    }
+                }
+                else
+                {
+                    if(alpha[j] > C_j)
+                    {
+                        alpha[j] = C_j;
+                        alpha[i] = C_j + diff;
+                    }
+                }
+            }
+            else
+            {
+                double quad_coef = QD[i]+QD[j]-2*Q_i[j];
+                if (quad_coef <= 0)
+                    quad_coef = TAU;
+                double delta = (G[i]-G[j])/quad_coef;
+                double sum = alpha[i] + alpha[j];
+                alpha[i] -= delta;
+                alpha[j] += delta;
+                
+                if(sum > C_i)
+                {
+                    if(alpha[i] > C_i)
+                    {
+                        alpha[i] = C_i;
+                        alpha[j] = sum - C_i;
+                    }
+                }
+                else
+                {
+                    if(alpha[j] < 0)
+                    {
+                        alpha[j] = 0;
+                        alpha[i] = sum;
+                    }
+                }
+                if(sum > C_j)
+                {
+                    if(alpha[j] > C_j)
+                    {
+                        alpha[j] = C_j;
+                        alpha[i] = sum - C_j;
+                    }
+                }
+                else
+                {
+                    if(alpha[i] < 0)
+                    {
+                        alpha[i] = 0;
+                        alpha[j] = sum;
+                    }
+                }
+            }
+            
+            // update G
+            
+            double delta_alpha_i = alpha[i] - old_alpha_i;
+            double delta_alpha_j = alpha[j] - old_alpha_j;
+            
+            for(int k=0;k<active_size;k++)
+            {
+                G[k] += Q_i[k]*delta_alpha_i + Q_j[k]*delta_alpha_j;
+            }
+            
+            // update alpha_status and G_bar
+            
+            {
+                bool ui = is_upper_bound(i);
+                bool uj = is_upper_bound(j);
+                update_alpha_status(i);
+                update_alpha_status(j);
+                int k;
+                if(ui != is_upper_bound(i))
+                {
+                    Q_i = Q.get_Q(i,l);
+                    if(ui)
+                        for(k=0;k<l;k++)
+                            G_bar[k] -= C_i * Q_i[k];
+                    else
+                        for(k=0;k<l;k++)
+                            G_bar[k] += C_i * Q_i[k];
+                }
+                
+                if(uj != is_upper_bound(j))
+                {
+                    Q_j = Q.get_Q(j,l);
+                    if(uj)
+                        for(k=0;k<l;k++)
+                            G_bar[k] -= C_j * Q_j[k];
+                    else
+                        for(k=0;k<l;k++)
+                            G_bar[k] += C_j * Q_j[k];
+                }
+            }
+        }
+        
+        if(iter >= max_iter)
+        {
+            if(active_size < l)
+            {
+                // reconstruct the whole gradient to calculate objective value
+                reconstruct_gradient();
+                active_size = l;
+                info("*");
+            }
+            fprintf(stderr,"\nWARNING: reaching max number of iterations\n");
+        }
+        
+        // calculate rho
+        
+        si->rho = calculate_rho();
+        
+        // calculate objective value
+        {
+            double v = 0;
+            int i;
+            for(i=0;i<l;i++)
+                v += alpha[i] * (G[i] + p[i]);
+            
+            si->obj = v/2;
+        }
+        
+        // put back the solution
+        {
+            for(int i=0;i<l;i++)
+                alpha_[active_set[i]] = alpha[i];
+        }
+        
+        // juggle everything back
+        /*{
+         for(int i=0;i<l;i++)
+         while(active_set[i] != i)
+         swap_index(i,active_set[i]);
+         // or Q.swap_index(i,active_set[i]);
+         }*/
+        
+        si->upper_bound_p = Cp;
+        si->upper_bound_n = Cn;
+        
+        info("\noptimization finished, #iter = %d\n",iter);
+        
+        delete[] p;
+        delete[] y;
+        delete[] alpha;
+        delete[] alpha_status;
+        delete[] active_set;
+        delete[] G;
+        delete[] G_bar;
+    }
+    
+    // return 1 if already optimal, return 0 otherwise
+    int Solver::select_working_set(int &out_i, int &out_j)
+    {
+        // return i,j such that
+        // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)
+        // j: minimizes the decrease of obj value
+        //    (if quadratic coefficeint <= 0, replace it with tau)
+        //    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)
+        
+        double Gmax = -INF;
+        double Gmax2 = -INF;
+        int Gmax_idx = -1;
+        int Gmin_idx = -1;
+        double obj_diff_min = INF;
+        
+        for(int t=0;t<active_size;t++)
+            if(y[t]==+1)
+            {
+                if(!is_upper_bound(t))
+                    if(-G[t] >= Gmax)
+                    {
+                        Gmax = -G[t];
+                        Gmax_idx = t;
+                    }
+            }
+            else
+            {
+                if(!is_lower_bound(t))
+                    if(G[t] >= Gmax)
+                    {
+                        Gmax = G[t];
+                        Gmax_idx = t;
+                    }
+            }
+        
+        int i = Gmax_idx;
+        const Qfloat *Q_i = NULL;
+        if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1
+            Q_i = Q->get_Q(i,active_size);
+        
+        for(int j=0;j<active_size;j++)
+        {
+            if(y[j]==+1)
+            {
+                if (!is_lower_bound(j))
+                {
+                    double grad_diff=Gmax+G[j];
+                    if (G[j] >= Gmax2)
+                        Gmax2 = G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                if (!is_upper_bound(j))
+                {
+                    double grad_diff= Gmax-G[j];
+                    if (-G[j] >= Gmax2)
+                        Gmax2 = -G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+        }
+        
+        if(Gmax+Gmax2 < eps || Gmin_idx == -1)
+            return 1;
+        
+        out_i = Gmax_idx;
+        out_j = Gmin_idx;
+        return 0;
+    }
+    
+    bool Solver::be_shrunk(int i, double Gmax1, double Gmax2)
+    {
+        if(is_upper_bound(i))
+        {
+            if(y[i]==+1)
+                return(-G[i] > Gmax1);
+            else
+                return(-G[i] > Gmax2);
+        }
+        else if(is_lower_bound(i))
+        {
+            if(y[i]==+1)
+                return(G[i] > Gmax2);
+            else
+                return(G[i] > Gmax1);
+        }
+        else
+            return(false);
+    }
+    
+    void Solver::do_shrinking()
+    {
+        int i;
+        double Gmax1 = -INF;		// max { -y_i * grad(f)_i | i in I_up(\alpha) }
+        double Gmax2 = -INF;		// max { y_i * grad(f)_i | i in I_low(\alpha) }
+        
+        // find maximal violating pair first
+        for(i=0;i<active_size;i++)
+        {
+            if(y[i]==+1)
+            {
+                if(!is_upper_bound(i))
+                {
+                    if(-G[i] >= Gmax1)
+                        Gmax1 = -G[i];
+                }
+                if(!is_lower_bound(i))
+                {
+                    if(G[i] >= Gmax2)
+                        Gmax2 = G[i];
+                }
+            }
+            else
+            {
+                if(!is_upper_bound(i))
+                {
+                    if(-G[i] >= Gmax2)
+                        Gmax2 = -G[i];
+                }
+                if(!is_lower_bound(i))
+                {
+                    if(G[i] >= Gmax1)
+                        Gmax1 = G[i];
+                }
+            }
+        }
+        
+        if(unshrink == false && Gmax1 + Gmax2 <= eps*10)
+        {
+            unshrink = true;
+            reconstruct_gradient();
+            active_size = l;
+            info("*");
+        }
+        
+        for(i=0;i<active_size;i++)
+            if (be_shrunk(i, Gmax1, Gmax2))
+            {
+                active_size--;
+                while (active_size > i)
+                {
+                    if (!be_shrunk(active_size, Gmax1, Gmax2))
+                    {
+                        swap_index(i,active_size);
+                        break;
+                    }
+                    active_size--;
+                }
+            }
+    }
+    
+    double Solver::calculate_rho()
+    {
+        double r;
+        int nr_free = 0;
+        double ub = INF, lb = -INF, sum_free = 0;
+        for(int i=0;i<active_size;i++)
+        {
+            double yG = y[i]*G[i];
+            
+            if(is_upper_bound(i))
+            {
+                if(y[i]==-1)
+                    ub = min(ub,yG);
+                else
+                    lb = max(lb,yG);
+            }
+            else if(is_lower_bound(i))
+            {
+                if(y[i]==+1)
+                    ub = min(ub,yG);
+                else
+                    lb = max(lb,yG);
+            }
+            else
+            {
+                ++nr_free;
+                sum_free += yG;
+            }
+        }
+        
+        if(nr_free>0)
+            r = sum_free/nr_free;
+        else
+            r = (ub+lb)/2;
+        
+        return r;
+    }
+    
+    //
+    // Solver for nu-svm classification and regression
+    //
+    // additional constraint: e^T \alpha = constant
+    //
+    class Solver_NU: public Solver
+    {
+    public:
+        Solver_NU() {}
+        void Solve(int l, const QMatrix& Q, const double *p, const schar *y,
+                   double *alpha, double Cp, double Cn, double eps,
+                   SolutionInfo* si, int shrinking)
+        {
+            this->si = si;
+            Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking);
+        }
+    private:
+        SolutionInfo *si;
+        int select_working_set(int &i, int &j);
+        double calculate_rho();
+        bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4);
+        void do_shrinking();
+    };
+    
+    // return 1 if already optimal, return 0 otherwise
+    int Solver_NU::select_working_set(int &out_i, int &out_j)
+    {
+        // return i,j such that y_i = y_j and
+        // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)
+        // j: minimizes the decrease of obj value
+        //    (if quadratic coefficeint <= 0, replace it with tau)
+        //    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)
+        
+        double Gmaxp = -INF;
+        double Gmaxp2 = -INF;
+        int Gmaxp_idx = -1;
+        
+        double Gmaxn = -INF;
+        double Gmaxn2 = -INF;
+        int Gmaxn_idx = -1;
+        
+        int Gmin_idx = -1;
+        double obj_diff_min = INF;
+        
+        for(int t=0;t<active_size;t++)
+            if(y[t]==+1)
+            {
+                if(!is_upper_bound(t))
+                    if(-G[t] >= Gmaxp)
+                    {
+                        Gmaxp = -G[t];
+                        Gmaxp_idx = t;
+                    }
+            }
+            else
+            {
+                if(!is_lower_bound(t))
+                    if(G[t] >= Gmaxn)
+                    {
+                        Gmaxn = G[t];
+                        Gmaxn_idx = t;
+                    }
+            }
+        
+        int ip = Gmaxp_idx;
+        int in = Gmaxn_idx;
+        const Qfloat *Q_ip = NULL;
+        const Qfloat *Q_in = NULL;
+        if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1
+            Q_ip = Q->get_Q(ip,active_size);
+        if(in != -1)
+            Q_in = Q->get_Q(in,active_size);
+        
+        for(int j=0;j<active_size;j++)
+        {
+            if(y[j]==+1)
+            {
+                if (!is_lower_bound(j))
+                {
+                    double grad_diff=Gmaxp+G[j];
+                    if (G[j] >= Gmaxp2)
+                        Gmaxp2 = G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[ip]+QD[j]-2*Q_ip[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                if (!is_upper_bound(j))
+                {
+                    double grad_diff=Gmaxn-G[j];
+                    if (-G[j] >= Gmaxn2)
+                        Gmaxn2 = -G[j];
+                    if (grad_diff > 0)
+                    {
+                        double obj_diff;
+                        double quad_coef = QD[in]+QD[j]-2*Q_in[j];
+                        if (quad_coef > 0)
+                            obj_diff = -(grad_diff*grad_diff)/quad_coef;
+                        else
+                            obj_diff = -(grad_diff*grad_diff)/TAU;
+                        
+                        if (obj_diff <= obj_diff_min)
+                        {
+                            Gmin_idx=j;
+                            obj_diff_min = obj_diff;
+                        }
+                    }
+                }
+            }
+        }
+        
+        if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps || Gmin_idx == -1)
+            return 1;
+        
+        if (y[Gmin_idx] == +1)
+            out_i = Gmaxp_idx;
+        else
+            out_i = Gmaxn_idx;
+        out_j = Gmin_idx;
+        
+        return 0;
+    }
+    
+    bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4)
+    {
+        if(is_upper_bound(i))
+        {
+            if(y[i]==+1)
+                return(-G[i] > Gmax1);
+            else
+                return(-G[i] > Gmax4);
+        }
+        else if(is_lower_bound(i))
+        {
+            if(y[i]==+1)
+                return(G[i] > Gmax2);
+            else
+                return(G[i] > Gmax3);
+        }
+        else
+            return(false);
+    }
+    
+    void Solver_NU::do_shrinking()
+    {
+        double Gmax1 = -INF;	// max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) }
+        double Gmax2 = -INF;	// max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) }
+        double Gmax3 = -INF;	// max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) }
+        double Gmax4 = -INF;	// max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) }
+        
+        // find maximal violating pair first
+        int i;
+        for(i=0;i<active_size;i++)
+        {
+            if(!is_upper_bound(i))
+            {
+                if(y[i]==+1)
+                {
+                    if(-G[i] > Gmax1) Gmax1 = -G[i];
+                }
+                else	if(-G[i] > Gmax4) Gmax4 = -G[i];
+            }
+            if(!is_lower_bound(i))
+            {
+                if(y[i]==+1)
+                {
+                    if(G[i] > Gmax2) Gmax2 = G[i];
+                }
+                else	if(G[i] > Gmax3) Gmax3 = G[i];
+            }
+        }
+        
+        if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10)
+        {
+            unshrink = true;
+            reconstruct_gradient();
+            active_size = l;
+        }
+        
+        for(i=0;i<active_size;i++)
+            if (be_shrunk(i, Gmax1, Gmax2, Gmax3, Gmax4))
+            {
+                active_size--;
+                while (active_size > i)
+                {
+                    if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4))
+                    {
+                        swap_index(i,active_size);
+                        break;
+                    }
+                    active_size--;
+                }
+            }
+    }
+    
+    double Solver_NU::calculate_rho()
+    {
+        int nr_free1 = 0,nr_free2 = 0;
+        double ub1 = INF, ub2 = INF;
+        double lb1 = -INF, lb2 = -INF;
+        double sum_free1 = 0, sum_free2 = 0;
+        
+        for(int i=0;i<active_size;i++)
+        {
+            if(y[i]==+1)
+            {
+                if(is_upper_bound(i))
+                    lb1 = max(lb1,G[i]);
+                else if(is_lower_bound(i))
+                    ub1 = min(ub1,G[i]);
+                else
+                {
+                    ++nr_free1;
+                    sum_free1 += G[i];
+                }
+            }
+            else
+            {
+                if(is_upper_bound(i))
+                    lb2 = max(lb2,G[i]);
+                else if(is_lower_bound(i))
+                    ub2 = min(ub2,G[i]);
+                else
+                {
+                    ++nr_free2;
+                    sum_free2 += G[i];
+                }
+            }
+        }
+        
+        double r1,r2;
+        if(nr_free1 > 0)
+            r1 = sum_free1/nr_free1;
+        else
+            r1 = (ub1+lb1)/2;
+        
+        if(nr_free2 > 0)
+            r2 = sum_free2/nr_free2;
+        else
+            r2 = (ub2+lb2)/2;
+        
+        si->r = (r1+r2)/2;
+        return (r1-r2)/2;
+    }
+    
+    //
+    // Q matrices for various formulations
+    //
+    class SVC_Q: public Kernel
+    {
+    public:
+        SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_)
+        :Kernel(prob.l, prob.x, param)
+        {
+            clone(y,y_,prob.l);
+            cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[prob.l];
+            for(int i=0;i<prob.l;i++)
+                QD[i] = (this->*kernel_function)(i,i);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int start, j;
+            if((start = cache->get_data(i,&data,len)) < len)
+            {
+                for(j=start;j<len;j++)
+                    data[j] = (Qfloat)(y[i]*y[j]*(this->*kernel_function)(i,j));
+            }
+            return data;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            cache->swap_index(i,j);
+            Kernel::swap_index(i,j);
+            swap(y[i],y[j]);
+            swap(QD[i],QD[j]);
+        }
+        
+        ~SVC_Q()
+        {
+            delete[] y;
+            delete cache;
+            delete[] QD;
+        }
+    private:
+        schar *y;
+        Cache *cache;
+        double *QD;
+    };
+    
+    class ONE_CLASS_Q: public Kernel
+    {
+    public:
+        ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param)
+        :Kernel(prob.l, prob.x, param)
+        {
+            cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[prob.l];
+            for(int i=0;i<prob.l;i++)
+                QD[i] = (this->*kernel_function)(i,i);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int start, j;
+            if((start = cache->get_data(i,&data,len)) < len)
+            {
+                for(j=start;j<len;j++)
+                    data[j] = (Qfloat)(this->*kernel_function)(i,j);
+            }
+            return data;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            cache->swap_index(i,j);
+            Kernel::swap_index(i,j);
+            swap(QD[i],QD[j]);
+        }
+        
+        ~ONE_CLASS_Q()
+        {
+            delete cache;
+            delete[] QD;
+        }
+    private:
+        Cache *cache;
+        double *QD;
+    };
+    
+    class SVR_Q: public Kernel
+    {
+    public:
+        SVR_Q(const svm_problem& prob, const svm_parameter& param)
+        :Kernel(prob.l, prob.x, param)
+        {
+            l = prob.l;
+            cache = new Cache(l,(long int)(param.cache_size*(1<<20)));
+            QD = new double[2*l];
+            sign = new schar[2*l];
+            index = new int[2*l];
+            for(int k=0;k<l;k++)
+            {
+                sign[k] = 1;
+                sign[k+l] = -1;
+                index[k] = k;
+                index[k+l] = k;
+                QD[k] = (this->*kernel_function)(k,k);
+                QD[k+l] = QD[k];
+            }
+            buffer[0] = new Qfloat[2*l];
+            buffer[1] = new Qfloat[2*l];
+            next_buffer = 0;
+        }
+        
+        void swap_index(int i, int j) const
+        {
+            swap(sign[i],sign[j]);
+            swap(index[i],index[j]);
+            swap(QD[i],QD[j]);
+        }
+        
+        Qfloat *get_Q(int i, int len) const
+        {
+            Qfloat *data;
+            int j, real_i = index[i];
+            if(cache->get_data(real_i,&data,l) < l)
+            {
+                for(j=0;j<l;j++)
+                    data[j] = (Qfloat)(this->*kernel_function)(real_i,j);
+            }
+            
+            // reorder and copy
+            Qfloat *buf = buffer[next_buffer];
+            next_buffer = 1 - next_buffer;
+            schar si = sign[i];
+            for(j=0;j<len;j++)
+                buf[j] = (Qfloat) si * (Qfloat) sign[j] * data[index[j]];
+            return buf;
+        }
+        
+        double *get_QD() const
+        {
+            return QD;
+        }
+        
+        ~SVR_Q()
+        {
+            delete cache;
+            delete[] sign;
+            delete[] index;
+            delete[] buffer[0];
+            delete[] buffer[1];
+            delete[] QD;
+        }
+    private:
+        int l;
+        Cache *cache;
+        schar *sign;
+        int *index;
+        mutable int next_buffer;
+        Qfloat *buffer[2];
+        double *QD;
+    };
+    
+    //
+    // construct and solve various formulations
+    //
+    static void solve_c_svc(
+                            const svm_problem *prob, const svm_parameter* param,
+                            double *alpha, Solver::SolutionInfo* si, double Cp, double Cn)
+    {
+        int l = prob->l;
+        double *minus_ones = new double[l];
+        schar *y = new schar[l];
+        
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            alpha[i] = 0;
+            minus_ones[i] = -1;
+            if(prob->y[i] > 0) y[i] = +1; else y[i] = -1;
+        }
+        
+        Solver s;
+        s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y,
+                alpha, Cp, Cn, param->eps, si, param->shrinking);
+        
+        double sum_alpha=0;
+        for(i=0;i<l;i++)
+            sum_alpha += alpha[i];
+        
+        if (Cp==Cn)
+            info("nu = %f\n", sum_alpha/(Cp*prob->l));
+        
+        for(i=0;i<l;i++)
+            alpha[i] *= y[i];
+        
+        delete[] minus_ones;
+        delete[] y;
+    }
+    
+    static void solve_nu_svc(
+                             const svm_problem *prob, const svm_parameter *param,
+                             double *alpha, Solver::SolutionInfo* si)
+    {
+        int i;
+        int l = prob->l;
+        double nu = param->nu;
+        
+        schar *y = new schar[l];
+        
+        for(i=0;i<l;i++)
+            if(prob->y[i]>0)
+                y[i] = +1;
+            else
+                y[i] = -1;
+        
+        double sum_pos = nu*l/2;
+        double sum_neg = nu*l/2;
+        
+        for(i=0;i<l;i++)
+            if(y[i] == +1)
+            {
+                alpha[i] = min(1.0,sum_pos);
+                sum_pos -= alpha[i];
+            }
+            else
+            {
+                alpha[i] = min(1.0,sum_neg);
+                sum_neg -= alpha[i];
+            }
+        
+        double *zeros = new double[l];
+        
+        for(i=0;i<l;i++)
+            zeros[i] = 0;
+        
+        Solver_NU s;
+        s.Solve(l, SVC_Q(*prob,*param,y), zeros, y,
+                alpha, 1.0, 1.0, param->eps, si,  param->shrinking);
+        double r = si->r;
+        
+        info("C = %f\n",1/r);
+        
+        for(i=0;i<l;i++)
+            alpha[i] *= y[i]/r;
+        
+        si->rho /= r;
+        si->obj /= (r*r);
+        si->upper_bound_p = 1/r;
+        si->upper_bound_n = 1/r;
+        
+        delete[] y;
+        delete[] zeros;
+    }
+    
+    static void solve_one_class(
+                                const svm_problem *prob, const svm_parameter *param,
+                                double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double *zeros = new double[l];
+        schar *ones = new schar[l];
+        int i;
+        
+        int n = (int)(param->nu*prob->l);	// # of alpha's at upper bound
+        
+        for(i=0;i<n;i++)
+            alpha[i] = 1;
+        if(n<prob->l)
+            alpha[n] = param->nu * prob->l - n;
+        for(i=n+1;i<l;i++)
+            alpha[i] = 0;
+        
+        for(i=0;i<l;i++)
+        {
+            zeros[i] = 0;
+            ones[i] = 1;
+        }
+        
+        Solver s;
+        s.Solve(l, ONE_CLASS_Q(*prob,*param), zeros, ones,
+                alpha, 1.0, 1.0, param->eps, si, param->shrinking);
+        
+        delete[] zeros;
+        delete[] ones;
+    }
+    
+    static void solve_epsilon_svr(
+                                  const svm_problem *prob, const svm_parameter *param,
+                                  double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double *alpha2 = new double[2*l];
+        double *linear_term = new double[2*l];
+        schar *y = new schar[2*l];
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            alpha2[i] = 0;
+            linear_term[i] = param->p - prob->y[i];
+            y[i] = 1;
+            
+            alpha2[i+l] = 0;
+            linear_term[i+l] = param->p + prob->y[i];
+            y[i+l] = -1;
+        }
+        
+        Solver s;
+        s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y,
+                alpha2, param->C, param->C, param->eps, si, param->shrinking);
+        
+        double sum_alpha = 0;
+        for(i=0;i<l;i++)
+        {
+            alpha[i] = alpha2[i] - alpha2[i+l];
+            sum_alpha += fabs(alpha[i]);
+        }
+        info("nu = %f\n",sum_alpha/(param->C*l));
+        
+        delete[] alpha2;
+        delete[] linear_term;
+        delete[] y;
+    }
+    
+    static void solve_nu_svr(
+                             const svm_problem *prob, const svm_parameter *param,
+                             double *alpha, Solver::SolutionInfo* si)
+    {
+        int l = prob->l;
+        double C = param->C;
+        double *alpha2 = new double[2*l];
+        double *linear_term = new double[2*l];
+        schar *y = new schar[2*l];
+        int i;
+        
+        double sum = C * param->nu * l / 2;
+        for(i=0;i<l;i++)
+        {
+            alpha2[i] = alpha2[i+l] = min(sum,C);
+            sum -= alpha2[i];
+            
+            linear_term[i] = - prob->y[i];
+            y[i] = 1;
+            
+            linear_term[i+l] = prob->y[i];
+            y[i+l] = -1;
+        }
+        
+        Solver_NU s;
+        s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y,
+                alpha2, C, C, param->eps, si, param->shrinking);
+        
+        info("epsilon = %f\n",-si->r);
+        
+        for(i=0;i<l;i++)
+            alpha[i] = alpha2[i] - alpha2[i+l];
+        
+        delete[] alpha2;
+        delete[] linear_term;
+        delete[] y;
+    }
+    
+    //
+    // decision_function
+    //
+    struct decision_function
+    {
+        double *alpha;
+        double rho;
+    };
+    
+    static decision_function svm_train_one(
+                                           const svm_problem *prob, const svm_parameter *param,
+                                           double Cp, double Cn)
+    {
+        double *alpha = Malloc(double,prob->l);
+        Solver::SolutionInfo si;
+        switch(param->svm_type)
+        {
+            case C_SVC:
+                solve_c_svc(prob,param,alpha,&si,Cp,Cn);
+                break;
+            case NU_SVC:
+                solve_nu_svc(prob,param,alpha,&si);
+                break;
+            case ONE_CLASS:
+                solve_one_class(prob,param,alpha,&si);
+                break;
+            case EPSILON_SVR:
+                solve_epsilon_svr(prob,param,alpha,&si);
+                break;
+            case NU_SVR:
+                solve_nu_svr(prob,param,alpha,&si);
+                break;
+        }
+        
+        info("obj = %f, rho = %f\n",si.obj,si.rho);
+        
+        // output SVs
+        
+        int nSV = 0;
+        int nBSV = 0;
+        for(int i=0;i<prob->l;i++)
+        {
+            if(fabs(alpha[i]) > 0)
+            {
+                ++nSV;
+                if(prob->y[i] > 0)
+                {
+                    if(fabs(alpha[i]) >= si.upper_bound_p)
+                        ++nBSV;
+                }
+                else
+                {
+                    if(fabs(alpha[i]) >= si.upper_bound_n)
+                        ++nBSV;
+                }
+            }
+        }
+        
+        info("nSV = %d, nBSV = %d\n",nSV,nBSV);
+        
+        decision_function f;
+        f.alpha = alpha;
+        f.rho = si.rho;
+        return f;
+    }
+    
+    // Platt's binary SVM Probablistic Output: an improvement from Lin et al.
+    static void sigmoid_train(
+                              int l, const double *dec_values, const double *labels,
+                              double& A, double& B)
+    {
+        double prior1=0, prior0 = 0;
+        int i;
+        
+        for (i=0;i<l;i++)
+            if (labels[i] > 0) prior1+=1;
+            else prior0+=1;
+        
+        int max_iter=100;	// Maximal number of iterations
+        double min_step=1e-10;	// Minimal step taken in line search
+        double sigma=1e-12;	// For numerically strict PD of Hessian
+        double eps=1e-5;
+        double hiTarget=(prior1+1.0)/(prior1+2.0);
+        double loTarget=1/(prior0+2.0);
+        double *t=Malloc(double,l);
+        double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize;
+        double newA,newB,newf,d1,d2;
+        int iter;
+        
+        // Initial Point and Initial Fun Value
+        A=0.0; B=log((prior0+1.0)/(prior1+1.0));
+        double fval = 0.0;
+        
+        for (i=0;i<l;i++)
+        {
+            if (labels[i]>0) t[i]=hiTarget;
+            else t[i]=loTarget;
+            fApB = dec_values[i]*A+B;
+            if (fApB>=0)
+                fval += t[i]*fApB + log(1+exp(-fApB));
+            else
+                fval += (t[i] - 1)*fApB +log(1+exp(fApB));
+        }
+        for (iter=0;iter<max_iter;iter++)
+        {
+            // Update Gradient and Hessian (use H' = H + sigma I)
+            h11=sigma; // numerically ensures strict PD
+            h22=sigma;
+            h21=0.0;g1=0.0;g2=0.0;
+            for (i=0;i<l;i++)
+            {
+                fApB = dec_values[i]*A+B;
+                if (fApB >= 0)
+                {
+                    p=exp(-fApB)/(1.0+exp(-fApB));
+                    q=1.0/(1.0+exp(-fApB));
+                }
+                else
+                {
+                    p=1.0/(1.0+exp(fApB));
+                    q=exp(fApB)/(1.0+exp(fApB));
+                }
+                d2=p*q;
+                h11+=dec_values[i]*dec_values[i]*d2;
+                h22+=d2;
+                h21+=dec_values[i]*d2;
+                d1=t[i]-p;
+                g1+=dec_values[i]*d1;
+                g2+=d1;
+            }
+            
+            // Stopping Criteria
+            if (fabs(g1)<eps && fabs(g2)<eps)
+                break;
+            
+            // Finding Newton direction: -inv(H') * g
+            det=h11*h22-h21*h21;
+            dA=-(h22*g1 - h21 * g2) / det;
+            dB=-(-h21*g1+ h11 * g2) / det;
+            gd=g1*dA+g2*dB;
+            
+            
+            stepsize = 1;		// Line Search
+            while (stepsize >= min_step)
+            {
+                newA = A + stepsize * dA;
+                newB = B + stepsize * dB;
+                
+                // New function value
+                newf = 0.0;
+                for (i=0;i<l;i++)
+                {
+                    fApB = dec_values[i]*newA+newB;
+                    if (fApB >= 0)
+                        newf += t[i]*fApB + log(1+exp(-fApB));
+                    else
+                        newf += (t[i] - 1)*fApB +log(1+exp(fApB));
+                }
+                // Check sufficient decrease
+                if (newf<fval+0.0001*stepsize*gd)
+                {
+                    A=newA;B=newB;fval=newf;
+                    break;
+                }
+                else
+                    stepsize = stepsize / 2.0;
+            }
+            
+            if (stepsize < min_step)
+            {
+                info("Line search fails in two-class probability estimates\n");
+                break;
+            }
+        }
+        
+        if (iter>=max_iter)
+            info("Reaching maximal iterations in two-class probability estimates\n");
+        free(t);
+    }
+    
+    static double sigmoid_predict(double decision_value, double A, double B)
+    {
+        double fApB = decision_value*A+B;
+        // 1-p used later; avoid catastrophic cancellation
+        if (fApB >= 0)
+            return exp(-fApB)/(1.0+exp(-fApB));
+        else
+            return 1.0/(1+exp(fApB)) ;
+    }
+    
+    // Method 2 from the multiclass_prob paper by Wu, Lin, and Weng
+    static void multiclass_probability(int k, double **r, double *p)
+    {
+        int t,j;
+        int iter = 0, max_iter=max(100,k);
+        double **Q=Malloc(double *,k);
+        double *Qp=Malloc(double,k);
+        double pQp, eps=0.005/k;
+        
+        for (t=0;t<k;t++)
+        {
+            p[t]=1.0/k;  // Valid if k = 1
+            Q[t]=Malloc(double,k);
+            Q[t][t]=0;
+            for (j=0;j<t;j++)
+            {
+                Q[t][t]+=r[j][t]*r[j][t];
+                Q[t][j]=Q[j][t];
+            }
+            for (j=t+1;j<k;j++)
+            {
+                Q[t][t]+=r[j][t]*r[j][t];
+                Q[t][j]=-r[j][t]*r[t][j];
+            }
+        }
+        for (iter=0;iter<max_iter;iter++)
+        {
+            // stopping condition, recalculate QP,pQP for numerical accuracy
+            pQp=0;
+            for (t=0;t<k;t++)
+            {
+                Qp[t]=0;
+                for (j=0;j<k;j++)
+                    Qp[t]+=Q[t][j]*p[j];
+                pQp+=p[t]*Qp[t];
+            }
+            double max_error=0;
+            for (t=0;t<k;t++)
+            {
+                double error=fabs(Qp[t]-pQp);
+                if (error>max_error)
+                    max_error=error;
+            }
+            if (max_error<eps) break;
+            
+            for (t=0;t<k;t++)
+            {
+                double diff=(-Qp[t]+pQp)/Q[t][t];
+                p[t]+=diff;
+                pQp=(pQp+diff*(diff*Q[t][t]+2*Qp[t]))/(1+diff)/(1+diff);
+                for (j=0;j<k;j++)
+                {
+                    Qp[j]=(Qp[j]+diff*Q[t][j])/(1+diff);
+                    p[j]/=(1+diff);
+                }
+            }
+        }
+        if (iter>=max_iter)
+            info("Exceeds max_iter in multiclass_prob\n");
+        for(t=0;t<k;t++) free(Q[t]);
+        free(Q);
+        free(Qp);
+    }
+    
+    // Cross-validation decision values for probability estimates
+    static void svm_binary_svc_probability(
+                                           const svm_problem *prob, const svm_parameter *param,
+                                           double Cp, double Cn, double& probA, double& probB)
+    {
+        int i;
+        int nr_fold = 5;
+        int *perm = Malloc(int,prob->l);
+        double *dec_values = Malloc(double,prob->l);
+        
+        // random shuffle
+        for(i=0;i<prob->l;i++) perm[i]=i;
+        for(i=0;i<prob->l;i++)
+        {
+            int j = i+rand()%(prob->l-i);
+            swap(perm[i],perm[j]);
+        }
+        for(i=0;i<nr_fold;i++)
+        {
+            int begin = i*prob->l/nr_fold;
+            int end = (i+1)*prob->l/nr_fold;
+            int j,k;
+            struct svm_problem subprob;
+            
+            subprob.l = prob->l-(end-begin);
+            subprob.x = Malloc(struct svm_node*,subprob.l);
+            subprob.y = Malloc(double,subprob.l);
+            
+            k=0;
+            for(j=0;j<begin;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            for(j=end;j<prob->l;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            int p_count=0,n_count=0;
+            for(j=0;j<k;j++)
+                if(subprob.y[j]>0)
+                    p_count++;
+                else
+                    n_count++;
+            
+            if(p_count==0 && n_count==0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = 0;
+            else if(p_count > 0 && n_count == 0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = 1;
+            else if(p_count == 0 && n_count > 0)
+                for(j=begin;j<end;j++)
+                    dec_values[perm[j]] = -1;
+            else
+            {
+                svm_parameter subparam = *param;
+                subparam.probability=0;
+                subparam.C=1.0;
+                subparam.nr_weight=2;
+                subparam.weight_label = Malloc(int,2);
+                subparam.weight = Malloc(double,2);
+                subparam.weight_label[0]=+1;
+                subparam.weight_label[1]=-1;
+                subparam.weight[0]=Cp;
+                subparam.weight[1]=Cn;
+                struct svm_model *submodel = svm_train(&subprob,&subparam);
+                for(j=begin;j<end;j++)
+                {
+                    svm_predict_values(submodel,prob->x[perm[j]],&(dec_values[perm[j]]));
+                    // ensure +1 -1 order; reason not using CV subroutine
+                    dec_values[perm[j]] *= submodel->label[0];
+                }
+                svm_free_and_destroy_model(&submodel);
+                svm_destroy_param(&subparam);
+            }
+            free(subprob.x);
+            free(subprob.y);
+        }
+        sigmoid_train(prob->l,dec_values,prob->y,probA,probB);
+        free(dec_values);
+        free(perm);
+    }
+    
+    // Return parameter of a Laplace distribution
+    static double svm_svr_probability(
+                                      const svm_problem *prob, const svm_parameter *param)
+    {
+        int i;
+        int nr_fold = 5;
+        double *ymv = Malloc(double,prob->l);
+        double mae = 0;
+        
+        svm_parameter newparam = *param;
+        newparam.probability = 0;
+        svm_cross_validation(prob,&newparam,nr_fold,ymv);
+        for(i=0;i<prob->l;i++)
+        {
+            ymv[i]=prob->y[i]-ymv[i];
+            mae += fabs(ymv[i]);
+        }
+        mae /= prob->l;
+        double std=sqrt(2*mae*mae);
+        int count=0;
+        mae=0;
+        for(i=0;i<prob->l;i++)
+            if (fabs(ymv[i]) > 5*std)
+                count=count+1;
+            else
+                mae+=fabs(ymv[i]);
+        mae /= (prob->l-count);
+        info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae);
+        free(ymv);
+        return mae;
+    }
+    
+    
+    // label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data
+    // perm, length l, must be allocated before calling this subroutine
+    static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm)
+    {
+        int l = prob->l;
+        int max_nr_class = 16;
+        int nr_class = 0;
+        int *label = Malloc(int,max_nr_class);
+        int *count = Malloc(int,max_nr_class);
+        int *data_label = Malloc(int,l);
+        int i;
+        
+        for(i=0;i<l;i++)
+        {
+            int this_label = (int)prob->y[i];
+            int j;
+            for(j=0;j<nr_class;j++)
+            {
+                if(this_label == label[j])
+                {
+                    ++count[j];
+                    break;
+                }
+            }
+            data_label[i] = j;
+            if(j == nr_class)
+            {
+                if(nr_class == max_nr_class)
+                {
+                    max_nr_class *= 2;
+                    label = (int *)realloc(label,max_nr_class*sizeof(int));
+                    count = (int *)realloc(count,max_nr_class*sizeof(int));
+                }
+                label[nr_class] = this_label;
+                count[nr_class] = 1;
+                ++nr_class;
+            }
+        }
+        
+        //
+        // Labels are ordered by their first occurrence in the training set.
+        // However, for two-class sets with -1/+1 labels and -1 appears first,
+        // we swap labels to ensure that internally the binary SVM has positive data corresponding to the +1 instances.
+        //
+        if (nr_class == 2 && label[0] == -1 && label[1] == 1)
+        {
+            swap(label[0],label[1]);
+            swap(count[0],count[1]);
+            for(i=0;i<l;i++)
+            {
+                if(data_label[i] == 0)
+                    data_label[i] = 1;
+                else
+                    data_label[i] = 0;
+            }
+        }
+        
+        int *start = Malloc(int,nr_class);
+        start[0] = 0;
+        for(i=1;i<nr_class;i++)
+            start[i] = start[i-1]+count[i-1];
+        for(i=0;i<l;i++)
+        {
+            perm[start[data_label[i]]] = i;
+            ++start[data_label[i]];
+        }
+        start[0] = 0;
+        for(i=1;i<nr_class;i++)
+            start[i] = start[i-1]+count[i-1];
+        
+        *nr_class_ret = nr_class;
+        *label_ret = label;
+        *start_ret = start;
+        *count_ret = count;
+        free(data_label);
+    }
+    
+    //
+    // Interface functions
+    //
+    svm_model *svm_train(const svm_problem *prob, const svm_parameter *param)
+    {
+        svm_model *model = Malloc(svm_model,1);
+        model->param = *param;
+        model->free_sv = 0;	// XXX
+        
+        if(param->svm_type == ONE_CLASS ||
+           param->svm_type == EPSILON_SVR ||
+           param->svm_type == NU_SVR)
+        {
+            // regression or one-class-svm
+            model->nr_class = 2;
+            model->label = NULL;
+            model->nSV = NULL;
+            model->probA = NULL; model->probB = NULL;
+            model->sv_coef = Malloc(double *,1);
+            
+            if(param->probability &&
+               (param->svm_type == EPSILON_SVR ||
+                param->svm_type == NU_SVR))
+            {
+                model->probA = Malloc(double,1);
+                model->probA[0] = svm_svr_probability(prob,param);
+            }
+            
+            decision_function f = svm_train_one(prob,param,0,0);
+            model->rho = Malloc(double,1);
+            model->rho[0] = f.rho;
+            
+            int nSV = 0;
+            int i;
+            for(i=0;i<prob->l;i++)
+                if(fabs(f.alpha[i]) > 0) ++nSV;
+            model->l = nSV;
+            model->SV = Malloc(svm_node *,nSV);
+            model->sv_coef[0] = Malloc(double,nSV);
+            model->sv_indices = Malloc(int,nSV);
+            int j = 0;
+            for(i=0;i<prob->l;i++)
+                if(fabs(f.alpha[i]) > 0)
+                {
+                    model->SV[j] = prob->x[i];
+                    model->sv_coef[0][j] = f.alpha[i];
+                    model->sv_indices[j] = i+1;
+                    ++j;
+                }
+            
+            free(f.alpha);
+        }
+        else
+        {
+            // classification
+            int l = prob->l;
+            int nr_class;
+            int *label = NULL;
+            int *start = NULL;
+            int *count = NULL;
+            int *perm = Malloc(int,l);
+            
+            // group training data of the same class
+            svm_group_classes(prob,&nr_class,&label,&start,&count,perm);
+            if(nr_class == 1)
+                info("WARNING: training data in only one class. See README for details.\n");
+            
+            svm_node **x = Malloc(svm_node *,l);
+            int i;
+            for(i=0;i<l;i++)
+                x[i] = prob->x[perm[i]];
+            
+            // calculate weighted C
+            
+            double *weighted_C = Malloc(double, nr_class);
+            for(i=0;i<nr_class;i++)
+                weighted_C[i] = param->C;
+            for(i=0;i<param->nr_weight;i++)
+            {
+                int j;
+                for(j=0;j<nr_class;j++)
+                    if(param->weight_label[i] == label[j])
+                        break;
+                if(j == nr_class)
+                    fprintf(stderr,"WARNING: class label %d specified in weight is not found\n", param->weight_label[i]);
+                else
+                    weighted_C[j] *= param->weight[i];
+            }
+            
+            // train k*(k-1)/2 models
+            
+            bool *nonzero = Malloc(bool,l);
+            for(i=0;i<l;i++)
+                nonzero[i] = false;
+            decision_function *f = Malloc(decision_function,nr_class*(nr_class-1)/2);
+            
+            double *probA=NULL,*probB=NULL;
+            if (param->probability)
+            {
+                probA=Malloc(double,nr_class*(nr_class-1)/2);
+                probB=Malloc(double,nr_class*(nr_class-1)/2);
+            }
+            
+            int p = 0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    svm_problem sub_prob;
+                    int si = start[i], sj = start[j];
+                    int ci = count[i], cj = count[j];
+                    sub_prob.l = ci+cj;
+                    sub_prob.x = Malloc(svm_node *,sub_prob.l);
+                    sub_prob.y = Malloc(double,sub_prob.l);
+                    int k;
+                    for(k=0;k<ci;k++)
+                    {
+                        sub_prob.x[k] = x[si+k];
+                        sub_prob.y[k] = +1;
+                    }
+                    for(k=0;k<cj;k++)
+                    {
+                        sub_prob.x[ci+k] = x[sj+k];
+                        sub_prob.y[ci+k] = -1;
+                    }
+                    
+                    if(param->probability)
+                        svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]);
+                    
+                    f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]);
+                    for(k=0;k<ci;k++)
+                        if(!nonzero[si+k] && fabs(f[p].alpha[k]) > 0)
+                            nonzero[si+k] = true;
+                    for(k=0;k<cj;k++)
+                        if(!nonzero[sj+k] && fabs(f[p].alpha[ci+k]) > 0)
+                            nonzero[sj+k] = true;
+                    free(sub_prob.x);
+                    free(sub_prob.y);
+                    ++p;
+                }
+            
+            // build output
+            
+            model->nr_class = nr_class;
+            
+            model->label = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+                model->label[i] = label[i];
+            
+            model->rho = Malloc(double,nr_class*(nr_class-1)/2);
+            for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                model->rho[i] = f[i].rho;
+            
+            if(param->probability)
+            {
+                model->probA = Malloc(double,nr_class*(nr_class-1)/2);
+                model->probB = Malloc(double,nr_class*(nr_class-1)/2);
+                for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                {
+                    model->probA[i] = probA[i];
+                    model->probB[i] = probB[i];
+                }
+            }
+            else
+            {
+                model->probA=NULL;
+                model->probB=NULL;
+            }
+            
+            int total_sv = 0;
+            int *nz_count = Malloc(int,nr_class);
+            model->nSV = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+            {
+                int nSV = 0;
+                for(int j=0;j<count[i];j++)
+                    if(nonzero[start[i]+j])
+                    {	
+                        ++nSV;
+                        ++total_sv;
+                    }
+                model->nSV[i] = nSV;
+                nz_count[i] = nSV;
+            }
+            
+            info("Total nSV = %d\n",total_sv);
+            
+            model->l = total_sv;
+            model->SV = Malloc(svm_node *,total_sv);
+            model->sv_indices = Malloc(int,total_sv);
+            p = 0;
+            for(i=0;i<l;i++)
+                if(nonzero[i])
+                {
+                    model->SV[p] = x[i];
+                    model->sv_indices[p++] = perm[i] + 1;
+                }
+            
+            int *nz_start = Malloc(int,nr_class);
+            nz_start[0] = 0;
+            for(i=1;i<nr_class;i++)
+                nz_start[i] = nz_start[i-1]+nz_count[i-1];
+            
+            model->sv_coef = Malloc(double *,nr_class-1);
+            for(i=0;i<nr_class-1;i++)
+                model->sv_coef[i] = Malloc(double,total_sv);
+            
+            p = 0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    // classifier (i,j): coefficients with
+                    // i are in sv_coef[j-1][nz_start[i]...],
+                    // j are in sv_coef[i][nz_start[j]...]
+                    
+                    int si = start[i];
+                    int sj = start[j];
+                    int ci = count[i];
+                    int cj = count[j];
+                    
+                    int q = nz_start[i];
+                    int k;
+                    for(k=0;k<ci;k++)
+                        if(nonzero[si+k])
+                            model->sv_coef[j-1][q++] = f[p].alpha[k];
+                    q = nz_start[j];
+                    for(k=0;k<cj;k++)
+                        if(nonzero[sj+k])
+                            model->sv_coef[i][q++] = f[p].alpha[ci+k];
+                    ++p;
+                }
+            
+            free(label);
+            free(probA);
+            free(probB);
+            free(count);
+            free(perm);
+            free(start);
+            free(x);
+            free(weighted_C);
+            free(nonzero);
+            for(i=0;i<nr_class*(nr_class-1)/2;i++)
+                free(f[i].alpha);
+            free(f);
+            free(nz_count);
+            free(nz_start);
+        }
+        return model;
+    }
+    
+    // Stratified cross validation
+    void svm_cross_validation(const svm_problem *prob, const svm_parameter *param, int nr_fold, double *target)
+    {
+        int i;
+        int *fold_start;
+        int l = prob->l;
+        int *perm = Malloc(int,l);
+        int nr_class;
+        if (nr_fold > l)
+        {
+            nr_fold = l;
+            fprintf(stderr,"WARNING: # folds > # data. Will use # folds = # data instead (i.e., leave-one-out cross validation)\n");
+        }
+        fold_start = Malloc(int,nr_fold+1);
+        // stratified cv may not give leave-one-out rate
+        // Each class to l folds -> some folds may have zero elements
+        if((param->svm_type == C_SVC ||
+            param->svm_type == NU_SVC) && nr_fold < l)
+        {
+            int *start = NULL;
+            int *label = NULL;
+            int *count = NULL;
+            svm_group_classes(prob,&nr_class,&label,&start,&count,perm);
+            
+            // random shuffle and then data grouped by fold using the array perm
+            int *fold_count = Malloc(int,nr_fold);
+            int c;
+            int *index = Malloc(int,l);
+            for(i=0;i<l;i++)
+                index[i]=perm[i];
+            for (c=0; c<nr_class; c++) 
+                for(i=0;i<count[c];i++)
+                {
+                    int j = i+rand()%(count[c]-i);
+                    swap(index[start[c]+j],index[start[c]+i]);
+                }
+            for(i=0;i<nr_fold;i++)
+            {
+                fold_count[i] = 0;
+                for (c=0; c<nr_class;c++)
+                    fold_count[i]+=(i+1)*count[c]/nr_fold-i*count[c]/nr_fold;
+            }
+            fold_start[0]=0;
+            for (i=1;i<=nr_fold;i++)
+                fold_start[i] = fold_start[i-1]+fold_count[i-1];
+            for (c=0; c<nr_class;c++)
+                for(i=0;i<nr_fold;i++)
+                {
+                    int begin = start[c]+i*count[c]/nr_fold;
+                    int end = start[c]+(i+1)*count[c]/nr_fold;
+                    for(int j=begin;j<end;j++)
+                    {
+                        perm[fold_start[i]] = index[j];
+                        fold_start[i]++;
+                    }
+                }
+            fold_start[0]=0;
+            for (i=1;i<=nr_fold;i++)
+                fold_start[i] = fold_start[i-1]+fold_count[i-1];
+            free(start);
+            free(label);
+            free(count);
+            free(index);
+            free(fold_count);
+        }
+        else
+        {
+            for(i=0;i<l;i++) perm[i]=i;
+            for(i=0;i<l;i++)
+            {
+                int j = i+rand()%(l-i);
+                swap(perm[i],perm[j]);
+            }
+            for(i=0;i<=nr_fold;i++)
+                fold_start[i]=i*l/nr_fold;
+        }
+        
+        for(i=0;i<nr_fold;i++)
+        {
+            int begin = fold_start[i];
+            int end = fold_start[i+1];
+            int j,k;
+            struct svm_problem subprob;
+            
+            subprob.l = l-(end-begin);
+            subprob.x = Malloc(struct svm_node*,subprob.l);
+            subprob.y = Malloc(double,subprob.l);
+            
+            k=0;
+            for(j=0;j<begin;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            for(j=end;j<l;j++)
+            {
+                subprob.x[k] = prob->x[perm[j]];
+                subprob.y[k] = prob->y[perm[j]];
+                ++k;
+            }
+            struct svm_model *submodel = svm_train(&subprob,param);
+            if(param->probability && 
+               (param->svm_type == C_SVC || param->svm_type == NU_SVC))
+            {
+                double *prob_estimates=Malloc(double,svm_get_nr_class(submodel));
+                for(j=begin;j<end;j++)
+                    target[perm[j]] = svm_predict_probability(submodel,prob->x[perm[j]],prob_estimates);
+                free(prob_estimates);
+            }
+            else
+                for(j=begin;j<end;j++)
+                    target[perm[j]] = svm_predict(submodel,prob->x[perm[j]]);
+            svm_free_and_destroy_model(&submodel);
+            free(subprob.x);
+            free(subprob.y);
+        }		
+        free(fold_start);
+        free(perm);
+    }
+    
+    
+    int svm_get_svm_type(const svm_model *model)
+    {
+        return model->param.svm_type;
+    }
+    
+    int svm_get_nr_class(const svm_model *model)
+    {
+        return model->nr_class;
+    }
+    
+    void svm_get_labels(const svm_model *model, int* label)
+    {
+        if (model->label != NULL)
+            for(int i=0;i<model->nr_class;i++)
+                label[i] = model->label[i];
+    }
+    
+    void svm_get_sv_indices(const svm_model *model, int* indices)
+    {
+        if (model->sv_indices != NULL)
+            for(int i=0;i<model->l;i++)
+                indices[i] = model->sv_indices[i];
+    }
+    
+    int svm_get_nr_sv(const svm_model *model)
+    {
+        return model->l;
+    }
+    
+    double svm_get_svr_probability(const svm_model *model)
+    {
+        if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) &&
+            model->probA!=NULL)
+            return model->probA[0];
+        else
+        {
+            fprintf(stderr,"Model doesn't contain information for SVR probability inference\n");
+            return 0;
+        }
+    }
+    
+    double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values)
+    {
+        int i;
+        if(model->param.svm_type == ONE_CLASS ||
+           model->param.svm_type == EPSILON_SVR ||
+           model->param.svm_type == NU_SVR)
+        {
+            double *sv_coef = model->sv_coef[0];
+            double sum = 0;
+            for(i=0;i<model->l;i++)
+                sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param);
+            sum -= model->rho[0];
+            *dec_values = sum;
+            
+            if(model->param.svm_type == ONE_CLASS)
+                return (sum>0)?1:-1;
+            else
+                return sum;
+        }
+        else
+        {
+            int nr_class = model->nr_class;
+            int l = model->l;
+            
+            double *kvalue = Malloc(double,l);
+            for(i=0;i<l;i++)
+                kvalue[i] = Kernel::k_function(x,model->SV[i],model->param);
+            
+            int *start = Malloc(int,nr_class);
+            start[0] = 0;
+            for(i=1;i<nr_class;i++)
+                start[i] = start[i-1]+model->nSV[i-1];
+            
+            int *vote = Malloc(int,nr_class);
+            for(i=0;i<nr_class;i++)
+                vote[i] = 0;
+            
+            int p=0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    double sum = 0;
+                    int si = start[i];
+                    int sj = start[j];
+                    int ci = model->nSV[i];
+                    int cj = model->nSV[j];
+                    
+                    int k;
+                    double *coef1 = model->sv_coef[j-1];
+                    double *coef2 = model->sv_coef[i];
+                    for(k=0;k<ci;k++)
+                        sum += coef1[si+k] * kvalue[si+k];
+                    for(k=0;k<cj;k++)
+                        sum += coef2[sj+k] * kvalue[sj+k];
+                    sum -= model->rho[p];
+                    dec_values[p] = sum;
+                    
+                    if(dec_values[p] > 0)
+                        ++vote[i];
+                    else
+                        ++vote[j];
+                    p++;
+                }
+            
+            int vote_max_idx = 0;
+            for(i=1;i<nr_class;i++)
+                if(vote[i] > vote[vote_max_idx])
+                    vote_max_idx = i;
+            
+            free(kvalue);
+            free(start);
+            free(vote);
+            return model->label[vote_max_idx];
+        }
+    }
+    
+    double svm_predict(const svm_model *model, const svm_node *x)
+    {
+        int nr_class = model->nr_class;
+        double *dec_values;
+        if(model->param.svm_type == ONE_CLASS ||
+           model->param.svm_type == EPSILON_SVR ||
+           model->param.svm_type == NU_SVR)
+            dec_values = Malloc(double, 1);
+        else 
+            dec_values = Malloc(double, nr_class*(nr_class-1)/2);
+        double pred_result = svm_predict_values(model, x, dec_values);
+        free(dec_values);
+        return pred_result;
+    }
+    
+    double svm_predict_probability(
+                                   const svm_model *model, const svm_node *x, double *prob_estimates)
+    {
+        if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) &&
+            model->probA!=NULL && model->probB!=NULL)
+        {
+            int i;
+            int nr_class = model->nr_class;
+            double *dec_values = Malloc(double, nr_class*(nr_class-1)/2);
+            svm_predict_values(model, x, dec_values);
+            
+            double min_prob=1e-7;
+            double **pairwise_prob=Malloc(double *,nr_class);
+            for(i=0;i<nr_class;i++)
+                pairwise_prob[i]=Malloc(double,nr_class);
+            int k=0;
+            for(i=0;i<nr_class;i++)
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    pairwise_prob[i][j]=min(max(sigmoid_predict(dec_values[k],model->probA[k],model->probB[k]),min_prob),1-min_prob);
+                    pairwise_prob[j][i]=1-pairwise_prob[i][j];
+                    k++;
+                }
+            if (nr_class == 2)
+            {
+                prob_estimates[0] = pairwise_prob[0][1];
+                prob_estimates[1] = pairwise_prob[1][0];
+            }
+            else
+                multiclass_probability(nr_class,pairwise_prob,prob_estimates);
+            
+            int prob_max_idx = 0;
+            for(i=1;i<nr_class;i++)
+                if(prob_estimates[i] > prob_estimates[prob_max_idx])
+                    prob_max_idx = i;
+            for(i=0;i<nr_class;i++)
+                free(pairwise_prob[i]);
+            free(dec_values);
+            free(pairwise_prob);
+            return model->label[prob_max_idx];
+        }
+        else 
+            return svm_predict(model, x);
+    }
+    
+    static const char *svm_type_table[] =
+    {
+        "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL
+    };
+    
+    static const char *kernel_type_table[]=
+    {
+        "linear","polynomial","rbf","sigmoid","precomputed",NULL
+    };
+    
+    int svm_save_model(const char *model_file_name, const svm_model *model)
+    {
+        FILE *fp = fopen(model_file_name,"w");
+        if(fp==NULL) return -1;
+        
+        char *old_locale = setlocale(LC_ALL, NULL);
+        if (old_locale) {
+            old_locale = strdup(old_locale);
+        }
+        setlocale(LC_ALL, "C");
+        
+        const svm_parameter& param = model->param;
+        
+        fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]);
+        fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]);
+        
+        if(param.kernel_type == POLY)
+            fprintf(fp,"degree %d\n", param.degree);
+        
+        if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID)
+            fprintf(fp,"gamma %g\n", param.gamma);
+        
+        if(param.kernel_type == POLY || param.kernel_type == SIGMOID)
+            fprintf(fp,"coef0 %g\n", param.coef0);
+        
+        int nr_class = model->nr_class;
+        int l = model->l;
+        fprintf(fp, "nr_class %d\n", nr_class);
+        fprintf(fp, "total_sv %d\n",l);
+        
+        {
+            fprintf(fp, "rho");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->rho[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->label)
+        {
+            fprintf(fp, "label");
+            for(int i=0;i<nr_class;i++)
+                fprintf(fp," %d",model->label[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->probA) // regression has probA only
+        {
+            fprintf(fp, "probA");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->probA[i]);
+            fprintf(fp, "\n");
+        }
+        if(model->probB)
+        {
+            fprintf(fp, "probB");
+            for(int i=0;i<nr_class*(nr_class-1)/2;i++)
+                fprintf(fp," %g",model->probB[i]);
+            fprintf(fp, "\n");
+        }
+        
+        if(model->nSV)
+        {
+            fprintf(fp, "nr_sv");
+            for(int i=0;i<nr_class;i++)
+                fprintf(fp," %d",model->nSV[i]);
+            fprintf(fp, "\n");
+        }
+        
+        fprintf(fp, "SV\n");
+        const double * const *sv_coef = model->sv_coef;
+        const svm_node * const *SV = model->SV;
+        
+        for(int i=0;i<l;i++)
+        {
+            for(int j=0;j<nr_class-1;j++)
+                fprintf(fp, "%.16g ",sv_coef[j][i]);
+            
+            const svm_node *p = SV[i];
+            
+            if(param.kernel_type == PRECOMPUTED)
+                fprintf(fp,"0:%d ",(int)(p->value));
+            else
+                while(p->index != -1)
+                {
+                    fprintf(fp,"%d:%.8g ",p->index,p->value);
+                    p++;
+                }
+            fprintf(fp, "\n");
+        }
+        
+        setlocale(LC_ALL, old_locale);
+        free(old_locale);
+        
+        if (ferror(fp) != 0 || fclose(fp) != 0) return -1;
+        else return 0;
+    }
+    
+    static char *line = NULL;
+    static int max_line_len;
+    
+    static char* readline(FILE *input)
+    {
+        int len;
+        
+        if(fgets(line,max_line_len,input) == NULL)
+            return NULL;
+        
+        while(strrchr(line,'\n') == NULL)
+        {
+            max_line_len *= 2;
+            line = (char *) realloc(line,max_line_len);
+            len = (int) strlen(line);
+            if(fgets(line+len,max_line_len-len,input) == NULL)
+                break;
+        }
+        return line;
+    }
+    
+    //
+    // FSCANF helps to handle fscanf failures.
+    // Its do-while block avoids the ambiguity when
+    // if (...)
+    //    FSCANF();
+    // is used
+    //
+#define FSCANF(_stream, _format, _var) do{ if (fscanf(_stream, _format, _var) != 1) return false; }while(0)
+    bool read_model_header(FILE *fp, svm_model* model)
+    {
+        svm_parameter& param = model->param;
+        // parameters for training only won't be assigned, but arrays are assigned as NULL for safety
+        param.nr_weight = 0;
+        param.weight_label = NULL;
+        param.weight = NULL;
+        
+        char cmd[81];
+        while(1)
+        {
+            FSCANF(fp,"%80s",cmd);
+            
+            if(strcmp(cmd,"svm_type")==0)
+            {
+                FSCANF(fp,"%80s",cmd);
+                int i;
+                for(i=0;svm_type_table[i];i++)
+                {
+                    if(strcmp(svm_type_table[i],cmd)==0)
+                    {
+                        param.svm_type=i;
+                        break;
+                    }
+                }
+                if(svm_type_table[i] == NULL)
+                {
+                    fprintf(stderr,"unknown svm type.\n");
+                    return false;
+                }
+            }
+            else if(strcmp(cmd,"kernel_type")==0)
+            {		
+                FSCANF(fp,"%80s",cmd);
+                int i;
+                for(i=0;kernel_type_table[i];i++)
+                {
+                    if(strcmp(kernel_type_table[i],cmd)==0)
+                    {
+                        param.kernel_type=i;
+                        break;
+                    }
+                }
+                if(kernel_type_table[i] == NULL)
+                {
+                    fprintf(stderr,"unknown kernel function.\n");	
+                    return false;
+                }
+            }
+            else if(strcmp(cmd,"degree")==0)
+                FSCANF(fp,"%d",&param.degree);
+            else if(strcmp(cmd,"gamma")==0)
+                FSCANF(fp,"%lf",&param.gamma);
+            else if(strcmp(cmd,"coef0")==0)
+                FSCANF(fp,"%lf",&param.coef0);
+            else if(strcmp(cmd,"nr_class")==0)
+                FSCANF(fp,"%d",&model->nr_class);
+            else if(strcmp(cmd,"total_sv")==0)
+                FSCANF(fp,"%d",&model->l);
+            else if(strcmp(cmd,"rho")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->rho = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->rho[i]);
+            }
+            else if(strcmp(cmd,"label")==0)
+            {
+                int n = model->nr_class;
+                model->label = Malloc(int,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%d",&model->label[i]);
+            }
+            else if(strcmp(cmd,"probA")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->probA = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->probA[i]);
+            }
+            else if(strcmp(cmd,"probB")==0)
+            {
+                int n = model->nr_class * (model->nr_class-1)/2;
+                model->probB = Malloc(double,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%lf",&model->probB[i]);
+            }
+            else if(strcmp(cmd,"nr_sv")==0)
+            {
+                int n = model->nr_class;
+                model->nSV = Malloc(int,n);
+                for(int i=0;i<n;i++)
+                    FSCANF(fp,"%d",&model->nSV[i]);
+            }
+            else if(strcmp(cmd,"SV")==0)
+            {
+                while(1)
+                {
+                    int c = getc(fp);
+                    if(c==EOF || c=='\n') break;
+                }
+                break;
+            }
+            else
+            {
+                fprintf(stderr,"unknown text in model file: [%s]\n",cmd);
+                return false;
+            }
+        }
+        
+        return true;
+        
+    }
+    
+    svm_model *svm_load_model(const char *model_file_name)
+    {
+        FILE *fp = fopen(model_file_name,"rb");
+        if(fp==NULL) return NULL;
+        
+        char *old_locale = setlocale(LC_ALL, NULL);
+        if (old_locale) {
+            old_locale = strdup(old_locale);
+        }
+        setlocale(LC_ALL, "C");
+        
+        // read parameters
+        
+        svm_model *model = Malloc(svm_model,1);
+        model->rho = NULL;
+        model->probA = NULL;
+        model->probB = NULL;
+        model->sv_indices = NULL;
+        model->label = NULL;
+        model->nSV = NULL;
+        
+        // read header
+        if (!read_model_header(fp, model))
+        {
+            fprintf(stderr, "ERROR: fscanf failed to read model\n");
+            setlocale(LC_ALL, old_locale);
+            free(old_locale);
+            free(model->rho);
+            free(model->label);
+            free(model->nSV);
+            free(model);
+            return NULL;
+        }
+        
+        // read sv_coef and SV
+        
+        int elements = 0;
+        long pos = ftell(fp);
+        
+        max_line_len = 1024;
+        line = Malloc(char,max_line_len);
+        char *p,*endptr,*idx,*val;
+        
+        while(readline(fp)!=NULL)
+        {
+            p = strtok(line,":");
+            while(1)
+            {
+                p = strtok(NULL,":");
+                if(p == NULL)
+                    break;
+                ++elements;
+            }
+        }
+        elements += model->l;
+        
+        fseek(fp,pos,SEEK_SET);
+        
+        int m = model->nr_class - 1;
+        int l = model->l;
+        model->sv_coef = Malloc(double *,m);
+        int i;
+        for(i=0;i<m;i++)
+            model->sv_coef[i] = Malloc(double,l);
+        model->SV = Malloc(svm_node*,l);
+        svm_node *x_space = NULL;
+        if(l>0) x_space = Malloc(svm_node,elements);
+        
+        int j=0;
+        for(i=0;i<l;i++)
+        {
+            readline(fp);
+            model->SV[i] = &x_space[j];
+            
+            p = strtok(line, " \t");
+            model->sv_coef[0][i] = strtod(p,&endptr);
+            for(int k=1;k<m;k++)
+            {
+                p = strtok(NULL, " \t");
+                model->sv_coef[k][i] = strtod(p,&endptr);
+            }
+            
+            while(1)
+            {
+                idx = strtok(NULL, ":");
+                val = strtok(NULL, " \t");
+                
+                if(val == NULL)
+                    break;
+                x_space[j].index = (int) strtol(idx,&endptr,10);
+                x_space[j].value = strtod(val,&endptr);
+                
+                ++j;
+            }
+            x_space[j++].index = -1;
+        }
+        free(line);
+        
+        setlocale(LC_ALL, old_locale);
+        free(old_locale);
+        
+        if (ferror(fp) != 0 || fclose(fp) != 0)
+            return NULL;
+        
+        model->free_sv = 1;	// XXX
+        return model;
+    }
+    
+    void svm_free_model_content(svm_model* model_ptr)
+    {
+        if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL)
+            free((void *)(model_ptr->SV[0]));
+        if(model_ptr->sv_coef)
+        {
+            for(int i=0;i<model_ptr->nr_class-1;i++)
+                free(model_ptr->sv_coef[i]);
+        }
+        
+        free(model_ptr->SV);
+        model_ptr->SV = NULL;
+        
+        free(model_ptr->sv_coef);
+        model_ptr->sv_coef = NULL;
+        
+        free(model_ptr->rho);
+        model_ptr->rho = NULL;
+        
+        free(model_ptr->label);
+        model_ptr->label= NULL;
+        
+        free(model_ptr->probA);
+        model_ptr->probA = NULL;
+        
+        free(model_ptr->probB);
+        model_ptr->probB= NULL;
+        
+        free(model_ptr->sv_indices);
+        model_ptr->sv_indices = NULL;
+        
+        free(model_ptr->nSV);
+        model_ptr->nSV = NULL;
+    }
+    
+    void svm_free_and_destroy_model(svm_model** model_ptr_ptr)
+    {
+        if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL)
+        {
+            svm_free_model_content(*model_ptr_ptr);
+            free(*model_ptr_ptr);
+            *model_ptr_ptr = NULL;
+        }
+    }
+    
+    void svm_destroy_param(svm_parameter* param)
+    {
+        free(param->weight_label);
+        free(param->weight);
+    }
+    
+    const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param)
+    {
+        // svm_type
+        
+        int svm_type = param->svm_type;
+        if(svm_type != C_SVC &&
+           svm_type != NU_SVC &&
+           svm_type != ONE_CLASS &&
+           svm_type != EPSILON_SVR &&
+           svm_type != NU_SVR)
+            return "unknown svm type";
+        
+        // kernel_type, degree
+        
+        int kernel_type = param->kernel_type;
+        if(kernel_type != LINEAR &&
+           kernel_type != POLY &&
+           kernel_type != RBF &&
+           kernel_type != SIGMOID &&
+           kernel_type != PRECOMPUTED)
+            return "unknown kernel type";
+        
+        if(param->gamma < 0)
+            return "gamma < 0";
+        
+        if(param->degree < 0)
+            return "degree of polynomial kernel < 0";
+        
+        // cache_size,eps,C,nu,p,shrinking
+        
+        if(param->cache_size <= 0)
+            return "cache_size <= 0";
+        
+        if(param->eps <= 0)
+            return "eps <= 0";
+        
+        if(svm_type == C_SVC ||
+           svm_type == EPSILON_SVR ||
+           svm_type == NU_SVR)
+            if(param->C <= 0)
+                return "C <= 0";
+        
+        if(svm_type == NU_SVC ||
+           svm_type == ONE_CLASS ||
+           svm_type == NU_SVR)
+            if(param->nu <= 0 || param->nu > 1)
+                return "nu <= 0 or nu > 1";
+        
+        if(svm_type == EPSILON_SVR)
+            if(param->p < 0)
+                return "p < 0";
+        
+        if(param->shrinking != 0 &&
+           param->shrinking != 1)
+            return "shrinking != 0 and shrinking != 1";
+        
+        if(param->probability != 0 &&
+           param->probability != 1)
+            return "probability != 0 and probability != 1";
+        
+        if(param->probability == 1 &&
+           svm_type == ONE_CLASS)
+            return "one-class SVM probability output not supported yet";
+        
+        
+        // check whether nu-svc is feasible
+        
+        if(svm_type == NU_SVC)
+        {
+            int l = prob->l;
+            int max_nr_class = 16;
+            int nr_class = 0;
+            int *label = Malloc(int,max_nr_class);
+            int *count = Malloc(int,max_nr_class);
+            
+            int i;
+            for(i=0;i<l;i++)
+            {
+                int this_label = (int)prob->y[i];
+                int j;
+                for(j=0;j<nr_class;j++)
+                    if(this_label == label[j])
+                    {
+                        ++count[j];
+                        break;
+                    }
+                if(j == nr_class)
+                {
+                    if(nr_class == max_nr_class)
+                    {
+                        max_nr_class *= 2;
+                        label = (int *)realloc(label,max_nr_class*sizeof(int));
+                        count = (int *)realloc(count,max_nr_class*sizeof(int));
+                    }
+                    label[nr_class] = this_label;
+                    count[nr_class] = 1;
+                    ++nr_class;
+                }
+            }
+            
+            for(i=0;i<nr_class;i++)
+            {
+                int n1 = count[i];
+                for(int j=i+1;j<nr_class;j++)
+                {
+                    int n2 = count[j];
+                    if(param->nu*(n1+n2)/2 > min(n1,n2))
+                    {
+                        free(label);
+                        free(count);
+                        return "specified nu is infeasible";
+                    }
+                }
+            }
+            free(label);
+            free(count);
+        }
+        
+        return NULL;
+    }
+    
+    int svm_check_probability_model(const svm_model *model)
+    {
+        return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) &&
+                model->probA!=NULL && model->probB!=NULL) ||
+        ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) &&
+         model->probA!=NULL);
+    }
+    
+    void svm_set_print_string_function(void (*print_func)(const char *))
+    {
+        if(print_func == NULL)
+            svm_print_string = &print_string_stdout;
+        else
+            svm_print_string = print_func;
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.h b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.h
new file mode 100644
index 0000000..b1f5832
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/third_party/libsvm/libsvm.h
@@ -0,0 +1,108 @@
+#ifndef _LIBSVM_H
+#define _LIBSVM_H
+
+namespace LIBSVM {
+    
+#define LIBSVM_VERSION 322
+    
+#ifdef __cplusplus
+    extern "C" {
+#endif
+        
+        extern int libsvm_version;
+        
+        struct svm_node
+        {
+            int index;
+            double value;
+        };
+        
+        struct svm_problem
+        {
+            int l;
+            double *y;
+            struct svm_node **x;
+        };
+        
+        enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR };	/* svm_type */
+        enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */
+        
+        struct svm_parameter
+        {
+            int svm_type;
+            int kernel_type;
+            int degree;	/* for poly */
+            double gamma;	/* for poly/rbf/sigmoid */
+            double coef0;	/* for poly/sigmoid */
+            
+            /* these are for training only */
+            double cache_size; /* in MB */
+            double eps;	/* stopping criteria */
+            double C;	/* for C_SVC, EPSILON_SVR and NU_SVR */
+            int nr_weight;		/* for C_SVC */
+            int *weight_label;	/* for C_SVC */
+            double* weight;		/* for C_SVC */
+            double nu;	/* for NU_SVC, ONE_CLASS, and NU_SVR */
+            double p;	/* for EPSILON_SVR */
+            int shrinking;	/* use the shrinking heuristics */
+            int probability; /* do probability estimates */
+        };
+        
+        //
+        // svm_model
+        //
+        struct svm_model
+        {
+            struct svm_parameter param;	/* parameter */
+            int nr_class;		/* number of classes, = 2 in regression/one class svm */
+            int l;			/* total #SV */
+            struct svm_node **SV;		/* SVs (SV[l]) */
+            double **sv_coef;	/* coefficients for SVs in decision functions (sv_coef[k-1][l]) */
+            double *rho;		/* constants in decision functions (rho[k*(k-1)/2]) */
+            double *probA;		/* pariwise probability information */
+            double *probB;
+            int *sv_indices;        /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */
+            
+            /* for classification only */
+            
+            int *label;		/* label of each class (label[k]) */
+            int *nSV;		/* number of SVs for each class (nSV[k]) */
+            /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */
+            /* XXX */
+            int free_sv;		/* 1 if svm_model is created by svm_load_model*/
+            /* 0 if svm_model is created by svm_train */
+        };
+        
+        struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
+        void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);
+        
+        int svm_save_model(const char *model_file_name, const struct svm_model *model);
+        struct svm_model *svm_load_model(const char *model_file_name);
+        
+        int svm_get_svm_type(const struct svm_model *model);
+        int svm_get_nr_class(const struct svm_model *model);
+        void svm_get_labels(const struct svm_model *model, int *label);
+        void svm_get_sv_indices(const struct svm_model *model, int *sv_indices);
+        int svm_get_nr_sv(const struct svm_model *model);
+        double svm_get_svr_probability(const struct svm_model *model);
+        
+        double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);
+        double svm_predict(const struct svm_model *model, const struct svm_node *x);
+        double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);
+        
+        void svm_free_model_content(struct svm_model *model_ptr);
+        void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr);
+        void svm_destroy_param(struct svm_parameter *param);
+        
+        const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);
+        int svm_check_probability_model(const struct svm_model *model);
+        
+        void svm_set_print_string_function(void (*print_func)(const char *));
+        
+#ifdef __cplusplus
+    }
+#endif
+    
+}
+
+#endif /* _LIBSVM_H */
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/.gitignore b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/.gitignore
new file mode 100644
index 0000000..5263c74
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/.gitignore
@@ -0,0 +1,27 @@
+ide/xcode/build
+ide/xcode/xmm-lib.xcodeproj/project.xcworkspace
+ide/xcode/xmm-lib.xcodeproj/xcuserdata
+dependencies/libjson/ide/build
+dependencies/libjson/ide/json.xcodeproj/xcuserdata
+dependencies/libjson/ide/json.xcodeproj/project.xcworkspace/xcuserdata
+dependencies/libjson/Makefile
+doc/html
+doc/xml
+bin
+Makefile
+python/Makefile
+CMakeFiles
+python/bin
+python/xmm.py
+python/xmm_doc.i
+python/xmmPYTHON_wrap.cxx
+python/bin
+python/_build_tmp
+*CMakeCache.txt
+*cmake_install.cmake
+*pyc
+*.a
+*.so
+*.dylib
+*.ipynb_checkpoints
+cmake_clean.sh
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/CMakeLists.txt b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/CMakeLists.txt
new file mode 100644
index 0000000..1d27bf0
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/CMakeLists.txt
@@ -0,0 +1,111 @@
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+
+# Project declaration
+project(xmm)
+
+include(CheckCXXCompilerFlag)
+CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
+CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
+if(COMPILER_SUPPORTS_CXX11)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+elseif(COMPILER_SUPPORTS_CXX0X)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+else()
+        message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
+endif()
+
+# The version number.
+set (xmm_VERSION_MAJOR 0)
+set (xmm_VERSION_MINOR 1)
+
+# Compiler Flags
+set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -fPIC")
+set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DJSON_DEBUG -fPIC")
+if (NOT CMAKE_BUILD_TYPE)
+    message(STATUS "No build type selected, default to Release")
+    set(CMAKE_BUILD_TYPE "Release")
+endif()
+
+# Include JSON
+include_directories(./dependencies/jsoncpp/include)
+include_directories(./dependencies/jsoncpp/src)
+
+# Declare library
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/core/common)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/core/distributions)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/core/model)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/core/trainingset)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/models/gmm)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/models/hmm)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/models/kmeans)
+
+set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
+add_definitions(-DUSE_PTHREAD)
+
+file(
+    GLOB_RECURSE
+    xmm_source_files
+    src/*
+)
+
+file(
+    GLOB_RECURSE
+    jsoncpp_source_files
+    dependencies/jsoncpp/src/*
+)
+
+add_library(
+    xmm
+    STATIC
+    ${xmm_source_files} ${jsoncpp_source_files}
+)
+
+# Declare Unit tests
+set(EXECUTABLE_OUTPUT_PATH bin/${CMAKE_BUILD_TYPE})
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/dependencies/catch)
+
+# message(${LINK_DIRECTORIES})
+
+file(
+    GLOB_RECURSE
+    xmm_test_files
+    test/*
+)
+
+add_executable(
+    tests
+    EXCLUDE_FROM_ALL
+    ${xmm_test_files}
+)
+
+# linking configuration
+target_link_libraries(
+    tests
+    xmm
+)
+
+set_target_properties(tests PROPERTIES OUTPUT_NAME xmm_testing)
+add_custom_command(TARGET tests POST_BUILD COMMAND ${EXECUTABLE_OUTPUT_PATH}/xmm_testing)
+
+# add a target to generate API documentation with Doxygen
+find_package(Doxygen)
+
+find_program(DOTPATH dot)
+if(${DOTPATH} STREQUAL "DOTPATH-NOTFOUND")
+  set(HAS_DOT "")
+else(${DOTPATH} STREQUAL "DOTPATH-NOTFOUND")
+  set(HAS_DOT "-dot")
+endif(${DOTPATH} STREQUAL "DOTPATH-NOTFOUND")
+
+if(DOXYGEN_FOUND)
+    add_custom_target(doc
+                      COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile${HAS_DOT}
+                      DEPENDS ${tracking_source_files}
+                      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/
+                      COMMENT "Generating API documentation with Doxygen" VERBATIM)
+else(DOXYGEN_FOUND)
+    message(STATUS "Doxygen not found, doc will not be included in the Makefile")
+endif(DOXYGEN_FOUND)
+
+set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/html")
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/LICENSE b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/LICENSE
new file mode 100644
index 0000000..6b156fe
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/LICENSE
@@ -0,0 +1,675 @@
+GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    {one line to give the program's name and a brief idea of what it does.}
+    Copyright (C) {year}  {name of author}
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    {project}  Copyright (C) {year}  {fullname}
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/catch/catch.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/catch/catch.hpp
new file mode 100644
index 0000000..5b616a2
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/catch/catch.hpp
@@ -0,0 +1,9427 @@
+/*
+ *  CATCH v1.1 build 1 (master branch)
+ *  Generated: 2015-03-27 18:00:16.346230
+ *  ----------------------------------------------------------
+ *  This file has been merged from multiple headers. Please don't edit it directly
+ *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
+ *
+ *  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+#define TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+// #included from: internal/catch_suppress_warnings.h
+
+#define TWOBLUECUBES_CATCH_SUPPRESS_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#   ifdef __ICC // icpc defines the __clang__ macro
+#       pragma warning(push)
+#       pragma warning(disable: 161 1682)
+#   else // __ICC
+#       pragma clang diagnostic ignored "-Wglobal-constructors"
+#       pragma clang diagnostic ignored "-Wvariadic-macros"
+#       pragma clang diagnostic ignored "-Wc99-extensions"
+#       pragma clang diagnostic ignored "-Wunused-variable"
+#       pragma clang diagnostic push
+#       pragma clang diagnostic ignored "-Wpadded"
+#       pragma clang diagnostic ignored "-Wc++98-compat"
+#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic ignored "-Wvariadic-macros"
+#    pragma GCC diagnostic ignored "-Wunused-variable"
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wpadded"
+#endif
+
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+#  define CATCH_IMPL
+#endif
+
+#ifdef CATCH_IMPL
+#  ifndef CLARA_CONFIG_MAIN
+#    define CLARA_CONFIG_MAIN_NOT_DEFINED
+#    define CLARA_CONFIG_MAIN
+#  endif
+#endif
+
+// #included from: internal/catch_notimplemented_exception.h
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+// #included from: catch_common.h
+#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <stdexcept>
+#include <algorithm>
+
+// #included from: catch_compiler_capabilities.h
+#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+// Much of the following code is based on Boost (1.53)
+
+#ifdef __clang__
+
+#  if __has_feature(cxx_nullptr)
+#    define CATCH_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  if __has_feature(cxx_noexcept)
+#    define CATCH_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Borland
+#ifdef __BORLANDC__
+
+#if (__BORLANDC__ > 0x582 )
+//#define CATCH_CONFIG_SFINAE // Not confirmed
+#endif
+
+#endif // __BORLANDC__
+
+////////////////////////////////////////////////////////////////////////////////
+// EDG
+#ifdef __EDG_VERSION__
+
+#if (__EDG_VERSION__ > 238 )
+//#define CATCH_CONFIG_SFINAE // Not confirmed
+#endif
+
+#endif // __EDG_VERSION__
+
+////////////////////////////////////////////////////////////////////////////////
+// Digital Mars
+#ifdef __DMC__
+
+#if (__DMC__ > 0x840 )
+//#define CATCH_CONFIG_SFINAE // Not confirmed
+#endif
+
+#endif // __DMC__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ < 3
+
+#if (__GNUC_MINOR__ >= 96 )
+//#define CATCH_CONFIG_SFINAE
+#endif
+
+#elif __GNUC__ >= 3
+
+// #define CATCH_CONFIG_SFINAE // Taking this out completely for now
+
+#endif // __GNUC__ < 3
+
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) )
+
+#define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+
+#if (_MSC_VER >= 1310 ) // (VC++ 7.0+)
+//#define CATCH_CONFIG_SFINAE // Not confirmed
+#endif
+
+#endif // _MSC_VER
+
+// Use variadic macros if the compiler supports them
+#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
+    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
+    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
+    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
+
+#ifndef CATCH_CONFIG_NO_VARIADIC_MACROS
+#define CATCH_CONFIG_VARIADIC_MACROS
+#endif
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// detect language version:
+#if (__cplusplus == 201103L)
+#  define CATCH_CPP11
+#  define CATCH_CPP11_OR_GREATER
+#elif (__cplusplus >= 201103L)
+#  define CATCH_CPP11_OR_GREATER
+#endif
+
+// noexcept support:
+#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
+#  define CATCH_NOEXCEPT noexcept
+#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
+#else
+#  define CATCH_NOEXCEPT throw()
+#  define CATCH_NOEXCEPT_IS(x)
+#endif
+
+namespace Catch {
+
+    class NonCopyable {
+#ifdef CATCH_CPP11_OR_GREATER
+        NonCopyable( NonCopyable const& )              = delete;
+        NonCopyable( NonCopyable && )                  = delete;
+        NonCopyable& operator = ( NonCopyable const& ) = delete;
+        NonCopyable& operator = ( NonCopyable && )     = delete;
+#else
+        NonCopyable( NonCopyable const& info );
+        NonCopyable& operator = ( NonCopyable const& );
+#endif
+
+    protected:
+        NonCopyable() {}
+        virtual ~NonCopyable();
+    };
+
+    class SafeBool {
+    public:
+        typedef void (SafeBool::*type)() const;
+
+        static type makeSafe( bool value ) {
+            return value ? &SafeBool::trueValue : 0;
+        }
+    private:
+        void trueValue() const {}
+    };
+
+    template<typename ContainerT>
+    inline void deleteAll( ContainerT& container ) {
+        typename ContainerT::const_iterator it = container.begin();
+        typename ContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete *it;
+    }
+    template<typename AssociativeContainerT>
+    inline void deleteAllValues( AssociativeContainerT& container ) {
+        typename AssociativeContainerT::const_iterator it = container.begin();
+        typename AssociativeContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete it->second;
+    }
+
+    bool startsWith( std::string const& s, std::string const& prefix );
+    bool endsWith( std::string const& s, std::string const& suffix );
+    bool contains( std::string const& s, std::string const& infix );
+    void toLowerInPlace( std::string& s );
+    std::string toLower( std::string const& s );
+    std::string trim( std::string const& str );
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
+
+    struct pluralise {
+        pluralise( std::size_t count, std::string const& label );
+
+        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
+
+        std::size_t m_count;
+        std::string m_label;
+    };
+
+    struct SourceLineInfo {
+
+        SourceLineInfo();
+        SourceLineInfo( char const* _file, std::size_t _line );
+        SourceLineInfo( SourceLineInfo const& other );
+#  ifdef CATCH_CPP11_OR_GREATER
+        SourceLineInfo( SourceLineInfo && )                  = default;
+        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
+#  endif
+        bool empty() const;
+        bool operator == ( SourceLineInfo const& other ) const;
+        bool operator < ( SourceLineInfo const& other ) const;
+
+        std::string file;
+        std::size_t line;
+    };
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+    // This is just here to avoid compiler warnings with macro constants and boolean literals
+    inline bool isTrue( bool value ){ return value; }
+    inline bool alwaysTrue() { return true; }
+    inline bool alwaysFalse() { return false; }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
+
+    // Use this in variadic streaming macros to allow
+    //    >> +StreamEndStop
+    // as well as
+    //    >> stuff +StreamEndStop
+    struct StreamEndStop {
+        std::string operator+() {
+            return std::string();
+        }
+    };
+    template<typename T>
+    T const& operator + ( T const& value, StreamEndStop ) {
+        return value;
+    }
+}
+
+#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
+#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
+
+#include <ostream>
+
+namespace Catch {
+
+    class NotImplementedException : public std::exception
+    {
+    public:
+        NotImplementedException( SourceLineInfo const& lineInfo );
+        NotImplementedException( NotImplementedException const& ) {}
+
+        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
+
+        virtual const char* what() const CATCH_NOEXCEPT;
+
+    private:
+        std::string m_what;
+        SourceLineInfo m_lineInfo;
+    };
+
+} // end namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
+
+// #included from: internal/catch_context.h
+#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+// #included from: catch_interfaces_generators.h
+#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct IGeneratorInfo {
+        virtual ~IGeneratorInfo();
+        virtual bool moveNext() = 0;
+        virtual std::size_t getCurrentIndex() const = 0;
+    };
+
+    struct IGeneratorsForTest {
+        virtual ~IGeneratorsForTest();
+
+        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
+        virtual bool moveNext() = 0;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest();
+
+} // end namespace Catch
+
+// #included from: catch_ptr.hpp
+#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    // An intrusive reference counting smart pointer.
+    // T must implement addRef() and release() methods
+    // typically implementing the IShared interface
+    template<typename T>
+    class Ptr {
+    public:
+        Ptr() : m_p( NULL ){}
+        Ptr( T* p ) : m_p( p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        Ptr( Ptr const& other ) : m_p( other.m_p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        ~Ptr(){
+            if( m_p )
+                m_p->release();
+        }
+        void reset() {
+            if( m_p )
+                m_p->release();
+            m_p = NULL;
+        }
+        Ptr& operator = ( T* p ){
+            Ptr temp( p );
+            swap( temp );
+            return *this;
+        }
+        Ptr& operator = ( Ptr const& other ){
+            Ptr temp( other );
+            swap( temp );
+            return *this;
+        }
+        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
+        T* get() { return m_p; }
+        const T* get() const{ return m_p; }
+        T& operator*() const { return *m_p; }
+        T* operator->() const { return m_p; }
+        bool operator !() const { return m_p == NULL; }
+        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != NULL ); }
+
+    private:
+        T* m_p;
+    };
+
+    struct IShared : NonCopyable {
+        virtual ~IShared();
+        virtual void addRef() const = 0;
+        virtual void release() const = 0;
+    };
+
+    template<typename T = IShared>
+    struct SharedImpl : T {
+
+        SharedImpl() : m_rc( 0 ){}
+
+        virtual void addRef() const {
+            ++m_rc;
+        }
+        virtual void release() const {
+            if( --m_rc == 0 )
+                delete this;
+        }
+
+        mutable unsigned int m_rc;
+    };
+
+} // end namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#include <memory>
+#include <vector>
+#include <stdlib.h>
+
+namespace Catch {
+
+    class TestCase;
+    class Stream;
+    struct IResultCapture;
+    struct IRunner;
+    struct IGeneratorsForTest;
+    struct IConfig;
+
+    struct IContext
+    {
+        virtual ~IContext();
+
+        virtual IResultCapture* getResultCapture() = 0;
+        virtual IRunner* getRunner() = 0;
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
+        virtual bool advanceGeneratorsForCurrentTest() = 0;
+        virtual Ptr<IConfig const> getConfig() const = 0;
+    };
+
+    struct IMutableContext : IContext
+    {
+        virtual ~IMutableContext();
+        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
+        virtual void setRunner( IRunner* runner ) = 0;
+        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
+    };
+
+    IContext& getCurrentContext();
+    IMutableContext& getCurrentMutableContext();
+    void cleanUpContext();
+    Stream createStream( std::string const& streamName );
+
+}
+
+// #included from: internal/catch_test_registry.hpp
+#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_interfaces_testcase.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec;
+
+    struct ITestCase : IShared {
+        virtual void invoke () const = 0;
+    protected:
+        virtual ~ITestCase();
+    };
+
+    class TestCase;
+    struct IConfig;
+
+    struct ITestCaseRegistry {
+        virtual ~ITestCaseRegistry();
+        virtual std::vector<TestCase> const& getAllTests() const = 0;
+        virtual void getFilteredTests( TestSpec const& testSpec, IConfig const& config, std::vector<TestCase>& matchingTestCases, bool negated = false ) const = 0;
+
+    };
+}
+
+namespace Catch {
+
+template<typename C>
+class MethodTestCase : public SharedImpl<ITestCase> {
+
+public:
+    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
+
+    virtual void invoke() const {
+        C obj;
+        (obj.*m_method)();
+    }
+
+private:
+    virtual ~MethodTestCase() {}
+
+    void (C::*m_method)();
+};
+
+typedef void(*TestFunction)();
+
+struct NameAndDesc {
+    NameAndDesc( const char* _name = "", const char* _description= "" )
+    : name( _name ), description( _description )
+    {}
+
+    const char* name;
+    const char* description;
+};
+
+struct AutoReg {
+
+    AutoReg(    TestFunction function,
+                SourceLineInfo const& lineInfo,
+                NameAndDesc const& nameAndDesc );
+
+    template<typename C>
+    AutoReg(    void (C::*method)(),
+                char const* className,
+                NameAndDesc const& nameAndDesc,
+                SourceLineInfo const& lineInfo ) {
+        registerTestCase(   new MethodTestCase<C>( method ),
+                            className,
+                            nameAndDesc,
+                            lineInfo );
+    }
+
+    void registerTestCase(  ITestCase* testCase,
+                            char const* className,
+                            NameAndDesc const& nameAndDesc,
+                            SourceLineInfo const& lineInfo );
+
+    ~AutoReg();
+
+private:
+    AutoReg( AutoReg const& );
+    void operator= ( AutoReg const& );
+};
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE( ... ) \
+        static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
+        static void INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ )()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )\
+        namespace{ \
+            struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
+
+#else
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
+        static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
+        static void INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ )()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
+        namespace{ \
+            struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
+
+#endif
+
+// #included from: internal/catch_capture.hpp
+#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+// #included from: catch_result_builder.h
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+// #included from: catch_result_type.h
+#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+namespace Catch {
+
+    // ResultWas::OfType enum
+    struct ResultWas { enum OfType {
+        Unknown = -1,
+        Ok = 0,
+        Info = 1,
+        Warning = 2,
+
+        FailureBit = 0x10,
+
+        ExpressionFailed = FailureBit | 1,
+        ExplicitFailure = FailureBit | 2,
+
+        Exception = 0x100 | FailureBit,
+
+        ThrewException = Exception | 1,
+        DidntThrowException = Exception | 2,
+
+        FatalErrorCondition = 0x200 | FailureBit
+
+    }; };
+
+    inline bool isOk( ResultWas::OfType resultType ) {
+        return ( resultType & ResultWas::FailureBit ) == 0;
+    }
+    inline bool isJustInfo( int flags ) {
+        return flags == ResultWas::Info;
+    }
+
+    // ResultDisposition::Flags enum
+    struct ResultDisposition { enum Flags {
+        Normal = 0x00,
+
+        ContinueOnFailure = 0x01,   // Failures fail test, but execution continues
+        FalseTest = 0x02,           // Prefix expression with !
+        SuppressFail = 0x04         // Failures are reported but do not fail the test
+    }; };
+
+    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
+        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
+    }
+
+    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
+    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
+    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.h
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct AssertionInfo
+    {
+        AssertionInfo() {}
+        AssertionInfo(  std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        std::string const& _capturedExpression,
+                        ResultDisposition::Flags _resultDisposition );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        std::string capturedExpression;
+        ResultDisposition::Flags resultDisposition;
+    };
+
+    struct AssertionResultData
+    {
+        AssertionResultData() : resultType( ResultWas::Unknown ) {}
+
+        std::string reconstructedExpression;
+        std::string message;
+        ResultWas::OfType resultType;
+    };
+
+    class AssertionResult {
+    public:
+        AssertionResult();
+        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
+        ~AssertionResult();
+#  ifdef CATCH_CPP11_OR_GREATER
+         AssertionResult( AssertionResult const& )              = default;
+         AssertionResult( AssertionResult && )                  = default;
+         AssertionResult& operator = ( AssertionResult const& ) = default;
+         AssertionResult& operator = ( AssertionResult && )     = default;
+#  endif
+
+        bool isOk() const;
+        bool succeeded() const;
+        ResultWas::OfType getResultType() const;
+        bool hasExpression() const;
+        bool hasMessage() const;
+        std::string getExpression() const;
+        std::string getExpressionInMacro() const;
+        bool hasExpandedExpression() const;
+        std::string getExpandedExpression() const;
+        std::string getMessage() const;
+        SourceLineInfo getSourceInfo() const;
+        std::string getTestMacroName() const;
+
+    protected:
+        AssertionInfo m_info;
+        AssertionResultData m_resultData;
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct TestFailureException{};
+
+    template<typename T> class ExpressionLhs;
+
+    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
+
+    struct CopyableStream {
+        CopyableStream() {}
+        CopyableStream( CopyableStream const& other ) {
+            oss << other.oss.str();
+        }
+        CopyableStream& operator=( CopyableStream const& other ) {
+            oss.str("");
+            oss << other.oss.str();
+            return *this;
+        }
+        std::ostringstream oss;
+    };
+
+    class ResultBuilder {
+    public:
+        ResultBuilder(  char const* macroName,
+                        SourceLineInfo const& lineInfo,
+                        char const* capturedExpression,
+                        ResultDisposition::Flags resultDisposition );
+
+        template<typename T>
+        ExpressionLhs<T const&> operator->* ( T const& operand );
+        ExpressionLhs<bool> operator->* ( bool value );
+
+        template<typename T>
+        ResultBuilder& operator << ( T const& value ) {
+            m_stream.oss << value;
+            return *this;
+        }
+
+        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
+        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
+
+        ResultBuilder& setResultType( ResultWas::OfType result );
+        ResultBuilder& setResultType( bool result );
+        ResultBuilder& setLhs( std::string const& lhs );
+        ResultBuilder& setRhs( std::string const& rhs );
+        ResultBuilder& setOp( std::string const& op );
+
+        void endExpression();
+
+        std::string reconstructExpression() const;
+        AssertionResult build() const;
+
+        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
+        void captureResult( ResultWas::OfType resultType );
+        void captureExpression();
+        void react();
+        bool shouldDebugBreak() const;
+        bool allowThrows() const;
+
+    private:
+        AssertionInfo m_assertionInfo;
+        AssertionResultData m_data;
+        struct ExprComponents {
+            ExprComponents() : testFalse( false ) {}
+            bool testFalse;
+            std::string lhs, rhs, op;
+        } m_exprComponents;
+        CopyableStream m_stream;
+
+        bool m_shouldDebugBreak;
+        bool m_shouldThrow;
+    };
+
+} // namespace Catch
+
+// Include after due to circular dependency:
+// #included from: catch_expression_lhs.hpp
+#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+// #included from: catch_evaluate.hpp
+#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
+#endif
+
+#include <cstddef>
+
+namespace Catch {
+namespace Internal {
+
+    enum Operator {
+        IsEqualTo,
+        IsNotEqualTo,
+        IsLessThan,
+        IsGreaterThan,
+        IsLessThanOrEqualTo,
+        IsGreaterThanOrEqualTo
+    };
+
+    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
+    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
+    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
+    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
+    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
+    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
+    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
+
+    template<typename T>
+    inline T& opCast(T const& t) { return const_cast<T&>(t); }
+
+// nullptr_t support based on pull request #154 from Konstantin Baumann
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+    // So the compare overloads can be operator agnostic we convey the operator as a template
+    // enum, which is used to specialise an Evaluator for doing the comparison.
+    template<typename T1, typename T2, Operator Op>
+    class Evaluator{};
+
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs) {
+            return opCast( lhs ) ==  opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsNotEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) != opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) < opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) > opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) >= opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) <= opCast( rhs );
+        }
+    };
+
+    template<Operator Op, typename T1, typename T2>
+    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // This level of indirection allows us to specialise for integer types
+    // to avoid signed/ unsigned warnings
+
+    // "base" overload
+    template<Operator Op, typename T1, typename T2>
+    bool compare( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // unsigned X to int
+    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+
+    // unsigned X to long
+    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+
+    // int to unsigned X
+    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+
+    // long to unsigned X
+    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // pointer to long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+    // pointer to int (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    // pointer to nullptr_t (when comparing against nullptr)
+    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( NULL, rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, NULL );
+    }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+} // end of namespace Internal
+} // end of namespace Catch
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+// #included from: catch_tostring.h
+#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+// #included from: catch_sfinae.hpp
+#define TWOBLUECUBES_CATCH_SFINAE_HPP_INCLUDED
+
+// Try to detect if the current compiler supports SFINAE
+
+namespace Catch {
+
+    struct TrueType {
+        static const bool value = true;
+        typedef void Enable;
+        char sizer[1];
+    };
+    struct FalseType {
+        static const bool value = false;
+        typedef void Disable;
+        char sizer[2];
+    };
+
+#ifdef CATCH_CONFIG_SFINAE
+
+    template<bool> struct NotABooleanExpression;
+
+    template<bool c> struct If : NotABooleanExpression<c> {};
+    template<> struct If<true> : TrueType {};
+    template<> struct If<false> : FalseType {};
+
+    template<int size> struct SizedIf;
+    template<> struct SizedIf<sizeof(TrueType)> : TrueType {};
+    template<> struct SizedIf<sizeof(FalseType)> : FalseType {};
+
+#endif // CATCH_CONFIG_SFINAE
+
+} // end namespace Catch
+
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <cstddef>
+
+#ifdef __OBJC__
+// #included from: catch_objc_arc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+    [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+#endif
+
+#ifdef CATCH_CPP11_OR_GREATER
+#include <tuple>
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+// Why we're here.
+template<typename T>
+std::string toString( T const& value );
+
+// Built in overloads
+
+std::string toString( std::string const& value );
+std::string toString( std::wstring const& value );
+std::string toString( const char* const value );
+std::string toString( char* const value );
+std::string toString( const wchar_t* const value );
+std::string toString( wchar_t* const value );
+std::string toString( int value );
+std::string toString( unsigned long value );
+std::string toString( unsigned int value );
+std::string toString( const double value );
+std::string toString( const float value );
+std::string toString( bool value );
+std::string toString( char value );
+std::string toString( signed char value );
+std::string toString( unsigned char value );
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t );
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring );
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
+    std::string toString( NSObject* const& nsObject );
+#endif
+
+namespace Detail {
+
+    extern std::string unprintableString;
+
+// SFINAE is currently disabled by default for all compilers.
+// If the non SFINAE version of IsStreamInsertable is ambiguous for you
+// and your compiler supports SFINAE, try #defining CATCH_CONFIG_SFINAE
+#ifdef CATCH_CONFIG_SFINAE
+
+    template<typename T>
+    class IsStreamInsertableHelper {
+        template<int N> struct TrueIfSizeable : TrueType {};
+
+        template<typename T2>
+        static TrueIfSizeable<sizeof((*(std::ostream*)0) << *((T2 const*)0))> dummy(T2*);
+        static FalseType dummy(...);
+
+    public:
+        typedef SizedIf<sizeof(dummy((T*)0))> type;
+    };
+
+    template<typename T>
+    struct IsStreamInsertable : IsStreamInsertableHelper<T>::type {};
+
+#else
+
+    struct BorgType {
+        template<typename T> BorgType( T const& );
+    };
+
+    TrueType& testStreamable( std::ostream& );
+    FalseType testStreamable( FalseType );
+
+    FalseType operator<<( std::ostream const&, BorgType const& );
+
+    template<typename T>
+    struct IsStreamInsertable {
+        static std::ostream &s;
+        static T  const&t;
+        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
+    };
+
+#endif
+
+#if defined(CATCH_CPP11_OR_GREATER)
+    template<typename T,
+             bool IsEnum = std::is_enum<T>::value
+             >
+    struct EnumStringMaker
+    {
+        static std::string convert( T const& ) { return unprintableString; }
+    };
+
+    template<typename T>
+    struct EnumStringMaker<T,true>
+    {
+        static std::string convert( T const& v )
+        {
+            return ::Catch::toString(
+                static_cast<typename std::underlying_type<T>::type>(v)
+                );
+        }
+    };
+#endif
+    template<bool C>
+    struct StringMakerBase {
+#if defined(CATCH_CPP11_OR_GREATER)
+        template<typename T>
+        static std::string convert( T const& v )
+        {
+            return EnumStringMaker<T>::convert( v );
+        }
+#else
+        template<typename T>
+        static std::string convert( T const& ) { return unprintableString; }
+#endif
+    };
+
+    template<>
+    struct StringMakerBase<true> {
+        template<typename T>
+        static std::string convert( T const& _value ) {
+            std::ostringstream oss;
+            oss << _value;
+            return oss.str();
+        }
+    };
+
+    std::string rawMemoryToString( const void *object, std::size_t size );
+
+    template<typename T>
+    inline std::string rawMemoryToString( const T& object ) {
+      return rawMemoryToString( &object, sizeof(object) );
+    }
+
+} // end namespace Detail
+
+template<typename T>
+struct StringMaker :
+    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
+
+template<typename T>
+struct StringMaker<T*> {
+    template<typename U>
+    static std::string convert( U* p ) {
+        if( !p )
+            return INTERNAL_CATCH_STRINGIFY( NULL );
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+template<typename R, typename C>
+struct StringMaker<R C::*> {
+    static std::string convert( R C::* p ) {
+        if( !p )
+            return INTERNAL_CATCH_STRINGIFY( NULL );
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last );
+}
+
+//template<typename T, typename Allocator>
+//struct StringMaker<std::vector<T, Allocator> > {
+//    static std::string convert( std::vector<T,Allocator> const& v ) {
+//        return Detail::rangeToString( v.begin(), v.end() );
+//    }
+//};
+
+template<typename T, typename Allocator>
+std::string toString( std::vector<T,Allocator> const& v ) {
+    return Detail::rangeToString( v.begin(), v.end() );
+}
+
+#ifdef CATCH_CPP11_OR_GREATER
+
+// toString for tuples
+namespace TupleDetail {
+  template<
+      typename Tuple,
+      std::size_t N = 0,
+      bool = (N < std::tuple_size<Tuple>::value)
+      >
+  struct ElementPrinter {
+      static void print( const Tuple& tuple, std::ostream& os )
+      {
+          os << ( N ? ", " : " " )
+             << Catch::toString(std::get<N>(tuple));
+          ElementPrinter<Tuple,N+1>::print(tuple,os);
+      }
+  };
+
+  template<
+      typename Tuple,
+      std::size_t N
+      >
+  struct ElementPrinter<Tuple,N,false> {
+      static void print( const Tuple&, std::ostream& ) {}
+  };
+
+}
+
+template<typename ...Types>
+struct StringMaker<std::tuple<Types...>> {
+
+    static std::string convert( const std::tuple<Types...>& tuple )
+    {
+        std::ostringstream os;
+        os << '{';
+        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
+        os << " }";
+        return os.str();
+    }
+};
+#endif
+
+namespace Detail {
+    template<typename T>
+    std::string makeString( T const& value ) {
+        return StringMaker<T>::convert( value );
+    }
+} // end namespace Detail
+
+/// \brief converts any type to a string
+///
+/// The default template forwards on to ostringstream - except when an
+/// ostringstream overload does not exist - in which case it attempts to detect
+/// that and writes {?}.
+/// Overload (not specialise) this template for custom typs that you don't want
+/// to provide an ostream overload for.
+template<typename T>
+std::string toString( T const& value ) {
+    return StringMaker<T>::convert( value );
+}
+
+    namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last ) {
+        std::ostringstream oss;
+        oss << "{ ";
+        if( first != last ) {
+            oss << Catch::toString( *first );
+            for( ++first ; first != last ; ++first )
+                oss << ", " << Catch::toString( *first );
+        }
+        oss << " }";
+        return oss.str();
+    }
+}
+
+} // end namespace Catch
+
+namespace Catch {
+
+// Wraps the LHS of an expression and captures the operator and RHS (if any) -
+// wrapping them all in a ResultBuilder object
+template<typename T>
+class ExpressionLhs {
+    ExpressionLhs& operator = ( ExpressionLhs const& );
+#  ifdef CATCH_CPP11_OR_GREATER
+    ExpressionLhs& operator = ( ExpressionLhs && ) = delete;
+#  endif
+
+public:
+    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ) {}
+#  ifdef CATCH_CPP11_OR_GREATER
+    ExpressionLhs( ExpressionLhs const& ) = default;
+    ExpressionLhs( ExpressionLhs && )     = default;
+#  endif
+
+    template<typename RhsT>
+    ResultBuilder& operator == ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator != ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator < ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThan>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator > ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThan>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator <= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator >= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
+    }
+
+    ResultBuilder& operator == ( bool rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    ResultBuilder& operator != ( bool rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    void endExpression() {
+        bool value = m_lhs ? true : false;
+        m_rb
+            .setLhs( Catch::toString( value ) )
+            .setResultType( value )
+            .endExpression();
+    }
+
+    // Only simple binary expressions are allowed on the LHS.
+    // If more complex compositions are required then place the sub expression in parentheses
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
+
+private:
+    template<Internal::Operator Op, typename RhsT>
+    ResultBuilder& captureExpression( RhsT const& rhs ) {
+        return m_rb
+            .setResultType( Internal::compare<Op>( m_lhs, rhs ) )
+            .setLhs( Catch::toString( m_lhs ) )
+            .setRhs( Catch::toString( rhs ) )
+            .setOp( Internal::OperatorTraits<Op>::getName() );
+    }
+
+private:
+    ResultBuilder& m_rb;
+    T m_lhs;
+};
+
+} // end namespace Catch
+
+
+namespace Catch {
+
+    template<typename T>
+    inline ExpressionLhs<T const&> ResultBuilder::operator->* ( T const& operand ) {
+        return ExpressionLhs<T const&>( *this, operand );
+    }
+
+    inline ExpressionLhs<bool> ResultBuilder::operator->* ( bool value ) {
+        return ExpressionLhs<bool>( *this, value );
+    }
+
+} // namespace Catch
+
+// #included from: catch_message.h
+#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct MessageInfo {
+        MessageInfo(    std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        ResultWas::OfType _type );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        ResultWas::OfType type;
+        std::string message;
+        unsigned int sequence;
+
+        bool operator == ( MessageInfo const& other ) const {
+            return sequence == other.sequence;
+        }
+        bool operator < ( MessageInfo const& other ) const {
+            return sequence < other.sequence;
+        }
+    private:
+        static unsigned int globalCount;
+    };
+
+    struct MessageBuilder {
+        MessageBuilder( std::string const& macroName,
+                        SourceLineInfo const& lineInfo,
+                        ResultWas::OfType type )
+        : m_info( macroName, lineInfo, type )
+        {}
+
+        template<typename T>
+        MessageBuilder& operator << ( T const& value ) {
+            m_stream << value;
+            return *this;
+        }
+
+        MessageInfo m_info;
+        std::ostringstream m_stream;
+    };
+
+    class ScopedMessage {
+    public:
+        ScopedMessage( MessageBuilder const& builder );
+        ScopedMessage( ScopedMessage const& other );
+        ~ScopedMessage();
+
+        MessageInfo m_info;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_capture.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    class AssertionResult;
+    struct AssertionInfo;
+    struct SectionInfo;
+    struct MessageInfo;
+    class ScopedMessageBuilder;
+    struct Counts;
+
+    struct IResultCapture {
+
+        virtual ~IResultCapture();
+
+        virtual void assertionEnded( AssertionResult const& result ) = 0;
+        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
+                                        Counts& assertions ) = 0;
+        virtual void sectionEnded( SectionInfo const& name, Counts const& assertions, double _durationInSeconds ) = 0;
+        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
+        virtual void popScopedMessage( MessageInfo const& message ) = 0;
+
+        virtual std::string getCurrentTestName() const = 0;
+        virtual const AssertionResult* getLastResult() const = 0;
+
+        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
+    };
+
+    IResultCapture& getResultCapture();
+}
+
+// #included from: catch_debugger.h
+#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+// #included from: catch_platform.h
+#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#define CATCH_PLATFORM_MAC
+#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+#define CATCH_PLATFORM_IPHONE
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#define CATCH_PLATFORM_WINDOWS
+#endif
+
+#include <string>
+
+namespace Catch{
+
+    bool isDebuggerActive();
+    void writeToDebugConsole( std::string const& text );
+}
+
+#ifdef CATCH_PLATFORM_MAC
+
+    // The following code snippet based on:
+    // http://cocoawithlove.com/2008/03/break-into-debugger.html
+    #ifdef DEBUG
+        #if defined(__ppc64__) || defined(__ppc__)
+            #define CATCH_BREAK_INTO_DEBUGGER() \
+                if( Catch::isDebuggerActive() ) { \
+                    __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
+                    : : : "memory","r0","r3","r4" ); \
+                }
+        #else
+            #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) {__asm__("int $3\n" : : );}
+        #endif
+    #endif
+
+#elif defined(_MSC_VER)
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { __debugbreak(); }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { DebugBreak(); }
+#endif
+
+#ifndef CATCH_BREAK_INTO_DEBUGGER
+#define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
+#endif
+
+// #included from: catch_interfaces_runner.h
+#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+namespace Catch {
+    class TestCase;
+
+    struct IRunner {
+        virtual ~IRunner();
+        virtual bool aborting() const = 0;
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// In the event of a failure works out if the debugger needs to be invoked
+// and/or an exception thrown and takes appropriate action.
+// This needs to be done as a macro so the debugger will stop in the user
+// source code rather than in Catch library code
+#define INTERNAL_CATCH_REACT( resultBuilder ) \
+    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
+    resultBuilder.react();
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            ( __catchResult->*expr ).endExpression(); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( Catch::ResultDisposition::Normal ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::isTrue( false && (expr) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( !Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            expr; \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                expr; \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( ... ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                expr; \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( exceptionType ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+            catch( ... ) { \
+                __catchResult.useActiveException( resultDisposition ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#else
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << log + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_INFO( log, macroName ) \
+    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg " " #matcher, resultDisposition ); \
+        try { \
+            std::string matcherAsString = ::Catch::Matchers::matcher.toString(); \
+            __catchResult \
+                .setLhs( Catch::toString( arg ) ) \
+                .setRhs( matcherAsString == Catch::Detail::unprintableString ? #matcher : matcherAsString ) \
+                .setOp( "matches" ) \
+                .setResultType( ::Catch::Matchers::matcher.match( arg ) ); \
+            __catchResult.captureExpression(); \
+        } catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+// #included from: internal/catch_section.h
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+// #included from: catch_section_info.h
+#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+namespace Catch {
+
+    struct SectionInfo {
+        SectionInfo
+            (   SourceLineInfo const& _lineInfo,
+                std::string const& _name,
+                std::string const& _description = std::string() );
+
+        std::string name;
+        std::string description;
+        SourceLineInfo lineInfo;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_totals.hpp
+#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+#include <cstddef>
+
+namespace Catch {
+
+    struct Counts {
+        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
+
+        Counts operator - ( Counts const& other ) const {
+            Counts diff;
+            diff.passed = passed - other.passed;
+            diff.failed = failed - other.failed;
+            diff.failedButOk = failedButOk - other.failedButOk;
+            return diff;
+        }
+        Counts& operator += ( Counts const& other ) {
+            passed += other.passed;
+            failed += other.failed;
+            failedButOk += other.failedButOk;
+            return *this;
+        }
+
+        std::size_t total() const {
+            return passed + failed + failedButOk;
+        }
+        bool allPassed() const {
+            return failed == 0 && failedButOk == 0;
+        }
+        bool allOk() const {
+            return failed == 0;
+        }
+
+        std::size_t passed;
+        std::size_t failed;
+        std::size_t failedButOk;
+    };
+
+    struct Totals {
+
+        Totals operator - ( Totals const& other ) const {
+            Totals diff;
+            diff.assertions = assertions - other.assertions;
+            diff.testCases = testCases - other.testCases;
+            return diff;
+        }
+
+        Totals delta( Totals const& prevTotals ) const {
+            Totals diff = *this - prevTotals;
+            if( diff.assertions.failed > 0 )
+                ++diff.testCases.failed;
+            else if( diff.assertions.failedButOk > 0 )
+                ++diff.testCases.failedButOk;
+            else
+                ++diff.testCases.passed;
+            return diff;
+        }
+
+        Totals& operator += ( Totals const& other ) {
+            assertions += other.assertions;
+            testCases += other.testCases;
+            return *this;
+        }
+
+        Counts assertions;
+        Counts testCases;
+    };
+}
+
+// #included from: catch_timer.h
+#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+#ifdef CATCH_PLATFORM_WINDOWS
+typedef unsigned long long uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+namespace Catch {
+
+    class Timer {
+    public:
+        Timer() : m_ticks( 0 ) {}
+        void start();
+        unsigned int getElapsedMicroseconds() const;
+        unsigned int getElapsedMilliseconds() const;
+        double getElapsedSeconds() const;
+
+    private:
+        uint64_t m_ticks;
+    };
+
+} // namespace Catch
+
+#include <string>
+
+namespace Catch {
+
+    class Section : NonCopyable {
+    public:
+        Section( SectionInfo const& info );
+        ~Section();
+
+        // This indicates whether the section should be executed or not
+        operator bool() const;
+
+    private:
+        SectionInfo m_info;
+
+        std::string m_name;
+        Counts m_assertions;
+        bool m_sectionIncluded;
+        Timer m_timer;
+    };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_SECTION( ... ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+    #define INTERNAL_CATCH_SECTION( name, desc ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+// #included from: internal/catch_generators.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+#include <iterator>
+#include <vector>
+#include <string>
+#include <stdlib.h>
+
+namespace Catch {
+
+template<typename T>
+struct IGenerator {
+    virtual ~IGenerator() {}
+    virtual T getValue( std::size_t index ) const = 0;
+    virtual std::size_t size () const = 0;
+};
+
+template<typename T>
+class BetweenGenerator : public IGenerator<T> {
+public:
+    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
+
+    virtual T getValue( std::size_t index ) const {
+        return m_from+static_cast<int>( index );
+    }
+
+    virtual std::size_t size() const {
+        return static_cast<std::size_t>( 1+m_to-m_from );
+    }
+
+private:
+
+    T m_from;
+    T m_to;
+};
+
+template<typename T>
+class ValuesGenerator : public IGenerator<T> {
+public:
+    ValuesGenerator(){}
+
+    void add( T value ) {
+        m_values.push_back( value );
+    }
+
+    virtual T getValue( std::size_t index ) const {
+        return m_values[index];
+    }
+
+    virtual std::size_t size() const {
+        return m_values.size();
+    }
+
+private:
+    std::vector<T> m_values;
+};
+
+template<typename T>
+class CompositeGenerator {
+public:
+    CompositeGenerator() : m_totalSize( 0 ) {}
+
+    // *** Move semantics, similar to auto_ptr ***
+    CompositeGenerator( CompositeGenerator& other )
+    :   m_fileInfo( other.m_fileInfo ),
+        m_totalSize( 0 )
+    {
+        move( other );
+    }
+
+    CompositeGenerator& setFileInfo( const char* fileInfo ) {
+        m_fileInfo = fileInfo;
+        return *this;
+    }
+
+    ~CompositeGenerator() {
+        deleteAll( m_composed );
+    }
+
+    operator T () const {
+        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
+
+        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
+        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
+        for( size_t index = 0; it != itEnd; ++it )
+        {
+            const IGenerator<T>* generator = *it;
+            if( overallIndex >= index && overallIndex < index + generator->size() )
+            {
+                return generator->getValue( overallIndex-index );
+            }
+            index += generator->size();
+        }
+        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
+        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
+    }
+
+    void add( const IGenerator<T>* generator ) {
+        m_totalSize += generator->size();
+        m_composed.push_back( generator );
+    }
+
+    CompositeGenerator& then( CompositeGenerator& other ) {
+        move( other );
+        return *this;
+    }
+
+    CompositeGenerator& then( T value ) {
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( value );
+        add( valuesGen );
+        return *this;
+    }
+
+private:
+
+    void move( CompositeGenerator& other ) {
+        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
+        m_totalSize += other.m_totalSize;
+        other.m_composed.clear();
+    }
+
+    std::vector<const IGenerator<T>*> m_composed;
+    std::string m_fileInfo;
+    size_t m_totalSize;
+};
+
+namespace Generators
+{
+    template<typename T>
+    CompositeGenerator<T> between( T from, T to ) {
+        CompositeGenerator<T> generators;
+        generators.add( new BetweenGenerator<T>( from, to ) );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3 ){
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        valuesGen->add( val4 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+} // end namespace Generators
+
+using namespace Generators;
+
+} // end namespace Catch
+
+#define INTERNAL_CATCH_LINESTR2( line ) #line
+#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
+
+#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
+
+// #included from: internal/catch_interfaces_exception.h
+#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+#include <string>
+// #included from: catch_interfaces_registry_hub.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    struct ITestCaseRegistry;
+    struct IExceptionTranslatorRegistry;
+    struct IExceptionTranslator;
+    struct IReporterRegistry;
+    struct IReporterFactory;
+
+    struct IRegistryHub {
+        virtual ~IRegistryHub();
+
+        virtual IReporterRegistry const& getReporterRegistry() const = 0;
+        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
+        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
+    };
+
+    struct IMutableRegistryHub {
+        virtual ~IMutableRegistryHub();
+        virtual void registerReporter( std::string const& name, IReporterFactory* factory ) = 0;
+        virtual void registerTest( TestCase const& testInfo ) = 0;
+        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
+    };
+
+    IRegistryHub& getRegistryHub();
+    IMutableRegistryHub& getMutableRegistryHub();
+    void cleanUp();
+    std::string translateActiveException();
+
+}
+
+
+namespace Catch {
+
+    typedef std::string(*exceptionTranslateFunction)();
+
+    struct IExceptionTranslator {
+        virtual ~IExceptionTranslator();
+        virtual std::string translate() const = 0;
+    };
+
+    struct IExceptionTranslatorRegistry {
+        virtual ~IExceptionTranslatorRegistry();
+
+        virtual std::string translateActiveException() const = 0;
+    };
+
+    class ExceptionTranslatorRegistrar {
+        template<typename T>
+        class ExceptionTranslator : public IExceptionTranslator {
+        public:
+
+            ExceptionTranslator( std::string(*translateFunction)( T& ) )
+            : m_translateFunction( translateFunction )
+            {}
+
+            virtual std::string translate() const {
+                try {
+                    throw;
+                }
+                catch( T& ex ) {
+                    return m_translateFunction( ex );
+                }
+            }
+
+        protected:
+            std::string(*m_translateFunction)( T& );
+        };
+
+    public:
+        template<typename T>
+        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
+            getMutableRegistryHub().registerTranslator
+                ( new ExceptionTranslator<T>( translateFunction ) );
+        }
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) \
+    static std::string INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator )( signature ); \
+    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ) ); }\
+    static std::string INTERNAL_CATCH_UNIQUE_NAME(  catch_internal_ExceptionTranslator )( signature )
+
+// #included from: internal/catch_approx.hpp
+#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+#include <cmath>
+#include <limits>
+
+namespace Catch {
+namespace Detail {
+
+    class Approx {
+    public:
+        explicit Approx ( double value )
+        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
+            m_scale( 1.0 ),
+            m_value( value )
+        {}
+
+        Approx( Approx const& other )
+        :   m_epsilon( other.m_epsilon ),
+            m_scale( other.m_scale ),
+            m_value( other.m_value )
+        {}
+
+        static Approx custom() {
+            return Approx( 0 );
+        }
+
+        Approx operator()( double value ) {
+            Approx approx( value );
+            approx.epsilon( m_epsilon );
+            approx.scale( m_scale );
+            return approx;
+        }
+
+        friend bool operator == ( double lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) );
+        }
+
+        friend bool operator == ( Approx const& lhs, double rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        friend bool operator != ( double lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        friend bool operator != ( Approx const& lhs, double rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        Approx& epsilon( double newEpsilon ) {
+            m_epsilon = newEpsilon;
+            return *this;
+        }
+
+        Approx& scale( double newScale ) {
+            m_scale = newScale;
+            return *this;
+        }
+
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << "Approx( " << Catch::toString( m_value ) << " )";
+            return oss.str();
+        }
+
+    private:
+        double m_epsilon;
+        double m_scale;
+        double m_value;
+    };
+}
+
+template<>
+inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
+    return value.toString();
+}
+
+} // end namespace Catch
+
+// #included from: internal/catch_matchers.hpp
+#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+namespace Catch {
+namespace Matchers {
+    namespace Impl {
+
+    template<typename ExpressionT>
+    struct Matcher : SharedImpl<IShared>
+    {
+        typedef ExpressionT ExpressionType;
+
+        virtual ~Matcher() {}
+        virtual Ptr<Matcher> clone() const = 0;
+        virtual bool match( ExpressionT const& expr ) const = 0;
+        virtual std::string toString() const = 0;
+    };
+
+    template<typename DerivedT, typename ExpressionT>
+    struct MatcherImpl : Matcher<ExpressionT> {
+
+        virtual Ptr<Matcher<ExpressionT> > clone() const {
+            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
+        }
+    };
+
+    namespace Generic {
+
+        template<typename ExpressionT>
+        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AllOf() {}
+            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AllOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( !m_matchers[i]->match( expr ) )
+                        return false;
+                return true;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " and ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+        template<typename ExpressionT>
+        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AnyOf() {}
+            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( m_matchers[i]->match( expr ) )
+                        return true;
+                return false;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " or ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+    }
+
+    namespace StdString {
+
+        inline std::string makeString( std::string const& str ) { return str; }
+        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
+
+        struct Equals : MatcherImpl<Equals, std::string> {
+            Equals( std::string const& str ) : m_str( str ){}
+            Equals( Equals const& other ) : m_str( other.m_str ){}
+
+            virtual ~Equals();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_str == expr;
+            }
+            virtual std::string toString() const {
+                return "equals: \"" + m_str + "\"";
+            }
+
+            std::string m_str;
+        };
+
+        struct Contains : MatcherImpl<Contains, std::string> {
+            Contains( std::string const& substr ) : m_substr( substr ){}
+            Contains( Contains const& other ) : m_substr( other.m_substr ){}
+
+            virtual ~Contains();
+
+            virtual bool match( std::string const& expr ) const {
+                return expr.find( m_substr ) != std::string::npos;
+            }
+            virtual std::string toString() const {
+                return "contains: \"" + m_substr + "\"";
+            }
+
+            std::string m_substr;
+        };
+
+        struct StartsWith : MatcherImpl<StartsWith, std::string> {
+            StartsWith( std::string const& substr ) : m_substr( substr ){}
+            StartsWith( StartsWith const& other ) : m_substr( other.m_substr ){}
+
+            virtual ~StartsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return expr.find( m_substr ) == 0;
+            }
+            virtual std::string toString() const {
+                return "starts with: \"" + m_substr + "\"";
+            }
+
+            std::string m_substr;
+        };
+
+        struct EndsWith : MatcherImpl<EndsWith, std::string> {
+            EndsWith( std::string const& substr ) : m_substr( substr ){}
+            EndsWith( EndsWith const& other ) : m_substr( other.m_substr ){}
+
+            virtual ~EndsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return expr.find( m_substr ) == expr.size() - m_substr.size();
+            }
+            virtual std::string toString() const {
+                return "ends with: \"" + m_substr + "\"";
+            }
+
+            std::string m_substr;
+        };
+    } // namespace StdString
+    } // namespace Impl
+
+    // The following functions create the actual matcher objects.
+    // This allows the types to be inferred
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+
+    inline Impl::StdString::Equals      Equals( std::string const& str ) {
+        return Impl::StdString::Equals( str );
+    }
+    inline Impl::StdString::Equals      Equals( const char* str ) {
+        return Impl::StdString::Equals( Impl::StdString::makeString( str ) );
+    }
+    inline Impl::StdString::Contains    Contains( std::string const& substr ) {
+        return Impl::StdString::Contains( substr );
+    }
+    inline Impl::StdString::Contains    Contains( const char* substr ) {
+        return Impl::StdString::Contains( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
+        return Impl::StdString::StartsWith( substr );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
+        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
+        return Impl::StdString::EndsWith( substr );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
+        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
+    }
+
+} // namespace Matchers
+
+using namespace Matchers;
+
+} // namespace Catch
+
+// #included from: internal/catch_interfaces_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+// #included from: catch_tag_alias.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct TagAlias {
+        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
+
+        std::string tag;
+        SourceLineInfo lineInfo;
+    };
+
+    struct RegistrarForTagAliases {
+        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+    };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
+// #included from: catch_option.hpp
+#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+namespace Catch {
+
+    // An optional type
+    template<typename T>
+    class Option {
+    public:
+        Option() : nullableValue( NULL ) {}
+        Option( T const& _value )
+        : nullableValue( new( storage ) T( _value ) )
+        {}
+        Option( Option const& _other )
+        : nullableValue( _other ? new( storage ) T( *_other ) : NULL )
+        {}
+
+        ~Option() {
+            reset();
+        }
+
+        Option& operator= ( Option const& _other ) {
+            if( &_other != this ) {
+                reset();
+                if( _other )
+                    nullableValue = new( storage ) T( *_other );
+            }
+            return *this;
+        }
+        Option& operator = ( T const& _value ) {
+            reset();
+            nullableValue = new( storage ) T( _value );
+            return *this;
+        }
+
+        void reset() {
+            if( nullableValue )
+                nullableValue->~T();
+            nullableValue = NULL;
+        }
+
+        T& operator*() { return *nullableValue; }
+        T const& operator*() const { return *nullableValue; }
+        T* operator->() { return nullableValue; }
+        const T* operator->() const { return nullableValue; }
+
+        T valueOr( T const& defaultValue ) const {
+            return nullableValue ? *nullableValue : defaultValue;
+        }
+
+        bool some() const { return nullableValue != NULL; }
+        bool none() const { return nullableValue == NULL; }
+
+        bool operator !() const { return nullableValue == NULL; }
+        operator SafeBool::type() const {
+            return SafeBool::makeSafe( some() );
+        }
+
+    private:
+        T* nullableValue;
+        char storage[sizeof(T)];
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct ITagAliasRegistry {
+        virtual ~ITagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
+
+        static ITagAliasRegistry const& get();
+    };
+
+} // end namespace Catch
+
+// These files are included here so the single_include script doesn't put them
+// in the conditionally compiled sections
+// #included from: internal/catch_test_case_info.h
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+#include <string>
+#include <set>
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    struct ITestCase;
+
+    struct TestCaseInfo {
+        enum SpecialProperties{
+            None = 0,
+            IsHidden = 1 << 1,
+            ShouldFail = 1 << 2,
+            MayFail = 1 << 3,
+            Throws = 1 << 4
+        };
+
+        TestCaseInfo(   std::string const& _name,
+                        std::string const& _className,
+                        std::string const& _description,
+                        std::set<std::string> const& _tags,
+                        SourceLineInfo const& _lineInfo );
+
+        TestCaseInfo( TestCaseInfo const& other );
+
+        bool isHidden() const;
+        bool throws() const;
+        bool okToFail() const;
+        bool expectedToFail() const;
+
+        std::string name;
+        std::string className;
+        std::string description;
+        std::set<std::string> tags;
+        std::set<std::string> lcaseTags;
+        std::string tagsAsString;
+        SourceLineInfo lineInfo;
+        SpecialProperties properties;
+    };
+
+    class TestCase : public TestCaseInfo {
+    public:
+
+        TestCase( ITestCase* testCase, TestCaseInfo const& info );
+        TestCase( TestCase const& other );
+
+        TestCase withName( std::string const& _newName ) const;
+
+        void invoke() const;
+
+        TestCaseInfo const& getTestCaseInfo() const;
+
+        void swap( TestCase& other );
+        bool operator == ( TestCase const& other ) const;
+        bool operator < ( TestCase const& other ) const;
+        TestCase& operator = ( TestCase const& other );
+
+    private:
+        Ptr<ITestCase> test;
+    };
+
+    TestCase makeTestCase(  ITestCase* testCase,
+                            std::string const& className,
+                            std::string const& name,
+                            std::string const& description,
+                            SourceLineInfo const& lineInfo );
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+#ifdef __OBJC__
+// #included from: internal/catch_objc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+#import <objc/runtime.h>
+
+#include <string>
+
+// NB. Any general catch headers included here must be included
+// in catch.hpp first to make sure they are included by the single
+// header for non obj-usage
+
+///////////////////////////////////////////////////////////////////////////////
+// This protocol is really only here for (self) documenting purposes, since
+// all its methods are optional.
+@protocol OcFixture
+
+@optional
+
+-(void) setUp;
+-(void) tearDown;
+
+@end
+
+namespace Catch {
+
+    class OcMethod : public SharedImpl<ITestCase> {
+
+    public:
+        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
+
+        virtual void invoke() const {
+            id obj = [[m_cls alloc] init];
+
+            performOptionalSelector( obj, @selector(setUp)  );
+            performOptionalSelector( obj, m_sel );
+            performOptionalSelector( obj, @selector(tearDown)  );
+
+            arcSafeRelease( obj );
+        }
+    private:
+        virtual ~OcMethod() {}
+
+        Class m_cls;
+        SEL m_sel;
+    };
+
+    namespace Detail{
+
+        inline std::string getAnnotation(   Class cls,
+                                            std::string const& annotationName,
+                                            std::string const& testCaseName ) {
+            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
+            SEL sel = NSSelectorFromString( selStr );
+            arcSafeRelease( selStr );
+            id value = performOptionalSelector( cls, sel );
+            if( value )
+                return [(NSString*)value UTF8String];
+            return "";
+        }
+    }
+
+    inline size_t registerTestMethods() {
+        size_t noTestMethods = 0;
+        int noClasses = objc_getClassList( NULL, 0 );
+
+        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
+        objc_getClassList( classes, noClasses );
+
+        for( int c = 0; c < noClasses; c++ ) {
+            Class cls = classes[c];
+            {
+                u_int count;
+                Method* methods = class_copyMethodList( cls, &count );
+                for( u_int m = 0; m < count ; m++ ) {
+                    SEL selector = method_getName(methods[m]);
+                    std::string methodName = sel_getName(selector);
+                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
+                        std::string testCaseName = methodName.substr( 15 );
+                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
+                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
+                        const char* className = class_getName( cls );
+
+                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
+                        noTestMethods++;
+                    }
+                }
+                free(methods);
+            }
+        }
+        return noTestMethods;
+    }
+
+    namespace Matchers {
+        namespace Impl {
+        namespace NSStringMatchers {
+
+            template<typename MatcherT>
+            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
+                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
+                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
+                StringHolder() {
+                    arcSafeRelease( m_substr );
+                }
+
+                NSString* m_substr;
+            };
+
+            struct Equals : StringHolder<Equals> {
+                Equals( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str isEqualToString:m_substr];
+                }
+
+                virtual std::string toString() const {
+                    return "equals string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct Contains : StringHolder<Contains> {
+                Contains( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location != NSNotFound;
+                }
+
+                virtual std::string toString() const {
+                    return "contains string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct StartsWith : StringHolder<StartsWith> {
+                StartsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == 0;
+                }
+
+                virtual std::string toString() const {
+                    return "starts with: " + Catch::toString( m_substr );
+                }
+            };
+            struct EndsWith : StringHolder<EndsWith> {
+                EndsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
+                }
+
+                virtual std::string toString() const {
+                    return "ends with: " + Catch::toString( m_substr );
+                }
+            };
+
+        } // namespace NSStringMatchers
+        } // namespace Impl
+
+        inline Impl::NSStringMatchers::Equals
+            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
+
+        inline Impl::NSStringMatchers::Contains
+            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
+
+        inline Impl::NSStringMatchers::StartsWith
+            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
+
+        inline Impl::NSStringMatchers::EndsWith
+            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
+
+    } // namespace Matchers
+
+    using namespace Matchers;
+
+} // namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define OC_TEST_CASE( name, desc )\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
+{\
+return @ name; \
+}\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
+{ \
+return @ desc; \
+} \
+-(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
+
+#endif
+
+#ifdef CATCH_IMPL
+// #included from: internal/catch_impl.hpp
+#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+// Collect all the implementation files together here
+// These are the equivalent of what would usually be cpp files
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+// #included from: ../catch_runner.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+// #included from: internal/catch_commandline.hpp
+#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+// #included from: catch_config.hpp
+#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+// #included from: catch_test_spec_parser.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_test_spec.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec {
+        struct Pattern : SharedImpl<> {
+            virtual ~Pattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
+        };
+        class NamePattern : public Pattern {
+            enum WildcardPosition {
+                NoWildcard = 0,
+                WildcardAtStart = 1,
+                WildcardAtEnd = 2,
+                WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
+            };
+
+        public:
+            NamePattern( std::string const& name ) : m_name( toLower( name ) ), m_wildcard( NoWildcard ) {
+                if( startsWith( m_name, "*" ) ) {
+                    m_name = m_name.substr( 1 );
+                    m_wildcard = WildcardAtStart;
+                }
+                if( endsWith( m_name, "*" ) ) {
+                    m_name = m_name.substr( 0, m_name.size()-1 );
+                    m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
+                }
+            }
+            virtual ~NamePattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                switch( m_wildcard ) {
+                    case NoWildcard:
+                        return m_name == toLower( testCase.name );
+                    case WildcardAtStart:
+                        return endsWith( toLower( testCase.name ), m_name );
+                    case WildcardAtEnd:
+                        return startsWith( toLower( testCase.name ), m_name );
+                    case WildcardAtBothEnds:
+                        return contains( toLower( testCase.name ), m_name );
+                }
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
+                throw std::logic_error( "Unknown enum" );
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+            }
+        private:
+            std::string m_name;
+            WildcardPosition m_wildcard;
+        };
+        class TagPattern : public Pattern {
+        public:
+            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
+            virtual ~TagPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
+            }
+        private:
+            std::string m_tag;
+        };
+        class ExcludedPattern : public Pattern {
+        public:
+            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
+            virtual ~ExcludedPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
+        private:
+            Ptr<Pattern> m_underlyingPattern;
+        };
+
+        struct Filter {
+            std::vector<Ptr<Pattern> > m_patterns;
+
+            bool matches( TestCaseInfo const& testCase ) const {
+                // All patterns in a filter must match for the filter to be a match
+                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it )
+                    if( !(*it)->matches( testCase ) )
+                        return false;
+                    return true;
+            }
+        };
+
+    public:
+        bool hasFilters() const {
+            return !m_filters.empty();
+        }
+        bool matches( TestCaseInfo const& testCase ) const {
+            // A TestSpec matches if any filter matches
+            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
+                if( it->matches( testCase ) )
+                    return true;
+            return false;
+        }
+
+    private:
+        std::vector<Filter> m_filters;
+
+        friend class TestSpecParser;
+    };
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestSpecParser {
+        enum Mode{ None, Name, QuotedName, Tag };
+        Mode m_mode;
+        bool m_exclusion;
+        std::size_t m_start, m_pos;
+        std::string m_arg;
+        TestSpec::Filter m_currentFilter;
+        TestSpec m_testSpec;
+        ITagAliasRegistry const* m_tagAliases;
+
+    public:
+        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
+
+        TestSpecParser& parse( std::string const& arg ) {
+            m_mode = None;
+            m_exclusion = false;
+            m_start = std::string::npos;
+            m_arg = m_tagAliases->expandAliases( arg );
+            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
+                visitChar( m_arg[m_pos] );
+            if( m_mode == Name )
+                addPattern<TestSpec::NamePattern>();
+            return *this;
+        }
+        TestSpec testSpec() {
+            addFilter();
+            return m_testSpec;
+        }
+    private:
+        void visitChar( char c ) {
+            if( m_mode == None ) {
+                switch( c ) {
+                case ' ': return;
+                case '~': m_exclusion = true; return;
+                case '[': return startNewMode( Tag, ++m_pos );
+                case '"': return startNewMode( QuotedName, ++m_pos );
+                default: startNewMode( Name, m_pos ); break;
+                }
+            }
+            if( m_mode == Name ) {
+                if( c == ',' ) {
+                    addPattern<TestSpec::NamePattern>();
+                    addFilter();
+                }
+                else if( c == '[' ) {
+                    if( subString() == "exclude:" )
+                        m_exclusion = true;
+                    else
+                        addPattern<TestSpec::NamePattern>();
+                    startNewMode( Tag, ++m_pos );
+                }
+            }
+            else if( m_mode == QuotedName && c == '"' )
+                addPattern<TestSpec::NamePattern>();
+            else if( m_mode == Tag && c == ']' )
+                addPattern<TestSpec::TagPattern>();
+        }
+        void startNewMode( Mode mode, std::size_t start ) {
+            m_mode = mode;
+            m_start = start;
+        }
+        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
+        template<typename T>
+        void addPattern() {
+            std::string token = subString();
+            if( startsWith( token, "exclude:" ) ) {
+                m_exclusion = true;
+                token = token.substr( 8 );
+            }
+            if( !token.empty() ) {
+                Ptr<TestSpec::Pattern> pattern = new T( token );
+                if( m_exclusion )
+                    pattern = new TestSpec::ExcludedPattern( pattern );
+                m_currentFilter.m_patterns.push_back( pattern );
+            }
+            m_exclusion = false;
+            m_mode = None;
+        }
+        void addFilter() {
+            if( !m_currentFilter.m_patterns.empty() ) {
+                m_testSpec.m_filters.push_back( m_currentFilter );
+                m_currentFilter = TestSpec::Filter();
+            }
+        }
+    };
+    inline TestSpec parseTestSpec( std::string const& arg ) {
+        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+// #included from: catch_interfaces_config.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    struct Verbosity { enum Level {
+        NoOutput = 0,
+        Quiet,
+        Normal
+    }; };
+
+    struct WarnAbout { enum What {
+        Nothing = 0x00,
+        NoAssertions = 0x01
+    }; };
+
+    struct ShowDurations { enum OrNot {
+        DefaultForReporter,
+        Always,
+        Never
+    }; };
+    struct RunTests { enum InWhatOrder {
+        InDeclarationOrder,
+        InLexicographicalOrder,
+        InRandomOrder
+    }; };
+
+    class TestSpec;
+
+    struct IConfig : IShared {
+
+        virtual ~IConfig();
+
+        virtual bool allowThrows() const = 0;
+        virtual std::ostream& stream() const = 0;
+        virtual std::string name() const = 0;
+        virtual bool includeSuccessfulResults() const = 0;
+        virtual bool shouldDebugBreak() const = 0;
+        virtual bool warnAboutMissingAssertions() const = 0;
+        virtual int abortAfter() const = 0;
+        virtual bool showInvisibles() const = 0;
+        virtual ShowDurations::OrNot showDurations() const = 0;
+        virtual TestSpec const& testSpec() const = 0;
+        virtual RunTests::InWhatOrder runOrder() const = 0;
+        virtual unsigned int rngSeed() const = 0;
+        virtual bool forceColour() const = 0;
+    };
+}
+
+// #included from: catch_stream.h
+#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+#include <streambuf>
+
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    class Stream {
+    public:
+        Stream();
+        Stream( std::streambuf* _streamBuf, bool _isOwned );
+        void release();
+
+        std::streambuf* streamBuf;
+
+    private:
+        bool isOwned;
+    };
+
+    std::ostream& cout();
+    std::ostream& cerr();
+}
+
+#include <memory>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <ctime>
+
+#ifndef CATCH_CONFIG_CONSOLE_WIDTH
+#define CATCH_CONFIG_CONSOLE_WIDTH 80
+#endif
+
+namespace Catch {
+
+    struct ConfigData {
+
+        ConfigData()
+        :   listTests( false ),
+            listTags( false ),
+            listReporters( false ),
+            listTestNamesOnly( false ),
+            showSuccessfulTests( false ),
+            shouldDebugBreak( false ),
+            noThrow( false ),
+            showHelp( false ),
+            showInvisibles( false ),
+            forceColour( false ),
+            abortAfter( -1 ),
+            rngSeed( 0 ),
+            verbosity( Verbosity::Normal ),
+            warnings( WarnAbout::Nothing ),
+            showDurations( ShowDurations::DefaultForReporter ),
+            runOrder( RunTests::InDeclarationOrder )
+        {}
+
+        bool listTests;
+        bool listTags;
+        bool listReporters;
+        bool listTestNamesOnly;
+
+        bool showSuccessfulTests;
+        bool shouldDebugBreak;
+        bool noThrow;
+        bool showHelp;
+        bool showInvisibles;
+        bool forceColour;
+
+        int abortAfter;
+        unsigned int rngSeed;
+
+        Verbosity::Level verbosity;
+        WarnAbout::What warnings;
+        ShowDurations::OrNot showDurations;
+        RunTests::InWhatOrder runOrder;
+
+        std::string reporterName;
+        std::string outputFilename;
+        std::string name;
+        std::string processName;
+
+        std::vector<std::string> testsOrTags;
+    };
+
+    class Config : public SharedImpl<IConfig> {
+    private:
+        Config( Config const& other );
+        Config& operator = ( Config const& other );
+        virtual void dummy();
+    public:
+
+        Config()
+        :   m_os( Catch::cout().rdbuf() )
+        {}
+
+        Config( ConfigData const& data )
+        :   m_data( data ),
+            m_os( Catch::cout().rdbuf() )
+        {
+            if( !data.testsOrTags.empty() ) {
+                TestSpecParser parser( ITagAliasRegistry::get() );
+                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
+                    parser.parse( data.testsOrTags[i] );
+                m_testSpec = parser.testSpec();
+            }
+        }
+
+        virtual ~Config() {
+            m_os.rdbuf( Catch::cout().rdbuf() );
+            m_stream.release();
+        }
+
+        void setFilename( std::string const& filename ) {
+            m_data.outputFilename = filename;
+        }
+
+        std::string const& getFilename() const {
+            return m_data.outputFilename ;
+        }
+
+        bool listTests() const { return m_data.listTests; }
+        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
+        bool listTags() const { return m_data.listTags; }
+        bool listReporters() const { return m_data.listReporters; }
+
+        std::string getProcessName() const { return m_data.processName; }
+
+        bool shouldDebugBreak() const { return m_data.shouldDebugBreak; }
+
+        void setStreamBuf( std::streambuf* buf ) {
+            m_os.rdbuf( buf ? buf : Catch::cout().rdbuf() );
+        }
+
+        void useStream( std::string const& streamName ) {
+            Stream stream = createStream( streamName );
+            setStreamBuf( stream.streamBuf );
+            m_stream.release();
+            m_stream = stream;
+        }
+
+        std::string getReporterName() const { return m_data.reporterName; }
+
+        int abortAfter() const { return m_data.abortAfter; }
+
+        TestSpec const& testSpec() const { return m_testSpec; }
+
+        bool showHelp() const { return m_data.showHelp; }
+        bool showInvisibles() const { return m_data.showInvisibles; }
+
+        // IConfig interface
+        virtual bool allowThrows() const        { return !m_data.noThrow; }
+        virtual std::ostream& stream() const    { return m_os; }
+        virtual std::string name() const        { return m_data.name.empty() ? m_data.processName : m_data.name; }
+        virtual bool includeSuccessfulResults() const   { return m_data.showSuccessfulTests; }
+        virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; }
+        virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; }
+        virtual RunTests::InWhatOrder runOrder() const  { return m_data.runOrder; }
+        virtual unsigned int rngSeed() const    { return m_data.rngSeed; }
+        virtual bool forceColour() const { return m_data.forceColour; }
+
+    private:
+        ConfigData m_data;
+
+        Stream m_stream;
+        mutable std::ostream m_os;
+        TestSpec m_testSpec;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_clara.h
+#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+// Use Catch's value for console width (store Clara's off to the side, if present)
+#ifdef CLARA_CONFIG_CONSOLE_WIDTH
+#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
+#undef CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+// Declare Clara inside the Catch namespace
+#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
+// #included from: ../external/clara.h
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
+
+#ifndef STITCH_CLARA_OPEN_NAMESPACE
+#define TWOBLUECUBES_CLARA_H_INCLUDED
+#define STITCH_CLARA_OPEN_NAMESPACE
+#define STITCH_CLARA_CLOSE_NAMESPACE
+#else
+#define STITCH_CLARA_CLOSE_NAMESPACE }
+#endif
+
+#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
+
+// ----------- #included from tbc_text_format.h -----------
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
+#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+#define TBC_TEXT_FORMAT_H_INCLUDED
+#endif
+
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TBC_TEXT_FORMAT_H_INCLUDED
+
+// ----------- end of #include from tbc_text_format.h -----------
+// ........... back in /Users/philnash/Dev/OSS/Clara/srcs/clara.h
+
+#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+#include <map>
+#include <algorithm>
+#include <stdexcept>
+#include <memory>
+
+// Use optional outer namespace
+#ifdef STITCH_CLARA_OPEN_NAMESPACE
+STITCH_CLARA_OPEN_NAMESPACE
+#endif
+
+namespace Clara {
+
+    struct UnpositionalTag {};
+
+    extern UnpositionalTag _;
+
+#ifdef CLARA_CONFIG_MAIN
+    UnpositionalTag _;
+#endif
+
+    namespace Detail {
+
+#ifdef CLARA_CONSOLE_WIDTH
+    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+        using namespace Tbc;
+
+        inline bool startsWith( std::string const& str, std::string const& prefix ) {
+            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
+        }
+
+        template<typename T> struct RemoveConstRef{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
+
+        template<typename T>    struct IsBool       { static const bool value = false; };
+        template<>              struct IsBool<bool> { static const bool value = true; };
+
+        template<typename T>
+        void convertInto( std::string const& _source, T& _dest ) {
+            std::stringstream ss;
+            ss << _source;
+            ss >> _dest;
+            if( ss.fail() )
+                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
+        }
+        inline void convertInto( std::string const& _source, std::string& _dest ) {
+            _dest = _source;
+        }
+        inline void convertInto( std::string const& _source, bool& _dest ) {
+            std::string sourceLC = _source;
+            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), ::tolower );
+            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+                _dest = true;
+            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+                _dest = false;
+            else
+                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
+        }
+        inline void convertInto( bool _source, bool& _dest ) {
+            _dest = _source;
+        }
+        template<typename T>
+        inline void convertInto( bool, T& ) {
+            throw std::runtime_error( "Invalid conversion" );
+        }
+
+        template<typename ConfigT>
+        struct IArgFunction {
+            virtual ~IArgFunction() {}
+#  ifdef CATCH_CPP11_OR_GREATER
+            IArgFunction()                      = default;
+            IArgFunction( IArgFunction const& ) = default;
+#  endif
+            virtual void set( ConfigT& config, std::string const& value ) const = 0;
+            virtual void setFlag( ConfigT& config ) const = 0;
+            virtual bool takesArg() const = 0;
+            virtual IArgFunction* clone() const = 0;
+        };
+
+        template<typename ConfigT>
+        class BoundArgFunction {
+        public:
+            BoundArgFunction() : functionObj( NULL ) {}
+            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
+            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : NULL ) {}
+            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
+                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : NULL;
+                delete functionObj;
+                functionObj = newFunctionObj;
+                return *this;
+            }
+            ~BoundArgFunction() { delete functionObj; }
+
+            void set( ConfigT& config, std::string const& value ) const {
+                functionObj->set( config, value );
+            }
+            void setFlag( ConfigT& config ) const {
+                functionObj->setFlag( config );
+            }
+            bool takesArg() const { return functionObj->takesArg(); }
+
+            bool isSet() const {
+                return functionObj != NULL;
+            }
+        private:
+            IArgFunction<ConfigT>* functionObj;
+        };
+
+        template<typename C>
+        struct NullBinder : IArgFunction<C>{
+            virtual void set( C&, std::string const& ) const {}
+            virtual void setFlag( C& ) const {}
+            virtual bool takesArg() const { return true; }
+            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
+        };
+
+        template<typename C, typename M>
+        struct BoundDataMember : IArgFunction<C>{
+            BoundDataMember( M C::* _member ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                convertInto( stringValue, p.*member );
+            }
+            virtual void setFlag( C& p ) const {
+                convertInto( true, p.*member );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
+            M C::* member;
+        };
+        template<typename C, typename M>
+        struct BoundUnaryMethod : IArgFunction<C>{
+            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( stringValue, value );
+                (p.*member)( value );
+            }
+            virtual void setFlag( C& p ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( true, value );
+                (p.*member)( value );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
+            void (C::*member)( M );
+        };
+        template<typename C>
+        struct BoundNullaryMethod : IArgFunction<C>{
+            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    (p.*member)();
+            }
+            virtual void setFlag( C& p ) const {
+                (p.*member)();
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
+            void (C::*member)();
+        };
+
+        template<typename C>
+        struct BoundUnaryFunction : IArgFunction<C>{
+            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    function( obj );
+            }
+            virtual void setFlag( C& p ) const {
+                function( p );
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
+            void (*function)( C& );
+        };
+
+        template<typename C, typename T>
+        struct BoundBinaryFunction : IArgFunction<C>{
+            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( stringValue, value );
+                function( obj, value );
+            }
+            virtual void setFlag( C& obj ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( true, value );
+                function( obj, value );
+            }
+            virtual bool takesArg() const { return !IsBool<T>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
+            void (*function)( C&, T );
+        };
+
+    } // namespace Detail
+
+    struct Parser {
+        Parser() : separators( " \t=:" ) {}
+
+        struct Token {
+            enum Type { Positional, ShortOpt, LongOpt };
+            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
+            Type type;
+            std::string data;
+        };
+
+        void parseIntoTokens( int argc, char const * const * argv, std::vector<Parser::Token>& tokens ) const {
+            const std::string doubleDash = "--";
+            for( int i = 1; i < argc && argv[i] != doubleDash; ++i )
+                parseIntoTokens( argv[i] , tokens);
+        }
+        void parseIntoTokens( std::string arg, std::vector<Parser::Token>& tokens ) const {
+            while( !arg.empty() ) {
+                Parser::Token token( Parser::Token::Positional, arg );
+                arg = "";
+                if( token.data[0] == '-' ) {
+                    if( token.data.size() > 1 && token.data[1] == '-' ) {
+                        token = Parser::Token( Parser::Token::LongOpt, token.data.substr( 2 ) );
+                    }
+                    else {
+                        token = Parser::Token( Parser::Token::ShortOpt, token.data.substr( 1 ) );
+                        if( token.data.size() > 1 && separators.find( token.data[1] ) == std::string::npos ) {
+                            arg = "-" + token.data.substr( 1 );
+                            token.data = token.data.substr( 0, 1 );
+                        }
+                    }
+                }
+                if( token.type != Parser::Token::Positional ) {
+                    std::size_t pos = token.data.find_first_of( separators );
+                    if( pos != std::string::npos ) {
+                        arg = token.data.substr( pos+1 );
+                        token.data = token.data.substr( 0, pos );
+                    }
+                }
+                tokens.push_back( token );
+            }
+        }
+        std::string separators;
+    };
+
+    template<typename ConfigT>
+    struct CommonArgProperties {
+        CommonArgProperties() {}
+        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
+
+        Detail::BoundArgFunction<ConfigT> boundField;
+        std::string description;
+        std::string detail;
+        std::string placeholder; // Only value if boundField takes an arg
+
+        bool takesArg() const {
+            return !placeholder.empty();
+        }
+        void validate() const {
+            if( !boundField.isSet() )
+                throw std::logic_error( "option not bound" );
+        }
+    };
+    struct OptionArgProperties {
+        std::vector<std::string> shortNames;
+        std::string longName;
+
+        bool hasShortName( std::string const& shortName ) const {
+            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
+        }
+        bool hasLongName( std::string const& _longName ) const {
+            return _longName == longName;
+        }
+    };
+    struct PositionalArgProperties {
+        PositionalArgProperties() : position( -1 ) {}
+        int position; // -1 means non-positional (floating)
+
+        bool isFixedPositional() const {
+            return position != -1;
+        }
+    };
+
+    template<typename ConfigT>
+    class CommandLine {
+
+        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
+            Arg() {}
+            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
+
+            using CommonArgProperties<ConfigT>::placeholder; // !TBD
+
+            std::string dbgName() const {
+                if( !longName.empty() )
+                    return "--" + longName;
+                if( !shortNames.empty() )
+                    return "-" + shortNames[0];
+                return "positional args";
+            }
+            std::string commands() const {
+                std::ostringstream oss;
+                bool first = true;
+                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
+                for(; it != itEnd; ++it ) {
+                    if( first )
+                        first = false;
+                    else
+                        oss << ", ";
+                    oss << "-" << *it;
+                }
+                if( !longName.empty() ) {
+                    if( !first )
+                        oss << ", ";
+                    oss << "--" << longName;
+                }
+                if( !placeholder.empty() )
+                    oss << " <" << placeholder << ">";
+                return oss.str();
+            }
+        };
+
+        // NOTE: std::auto_ptr is deprecated in c++11/c++0x
+#if defined(__cplusplus) && __cplusplus > 199711L
+        typedef std::unique_ptr<Arg> ArgAutoPtr;
+#else
+        typedef std::auto_ptr<Arg> ArgAutoPtr;
+#endif
+
+        friend void addOptName( Arg& arg, std::string const& optName )
+        {
+            if( optName.empty() )
+                return;
+            if( Detail::startsWith( optName, "--" ) ) {
+                if( !arg.longName.empty() )
+                    throw std::logic_error( "Only one long opt may be specified. '"
+                        + arg.longName
+                        + "' already specified, now attempting to add '"
+                        + optName + "'" );
+                arg.longName = optName.substr( 2 );
+            }
+            else if( Detail::startsWith( optName, "-" ) )
+                arg.shortNames.push_back( optName.substr( 1 ) );
+            else
+                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
+        }
+        friend void setPositionalArg( Arg& arg, int position )
+        {
+            arg.position = position;
+        }
+
+        class ArgBuilder {
+        public:
+            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
+
+            // Bind a non-boolean data member (requires placeholder string)
+            template<typename C, typename M>
+            void bind( M C::* field, std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
+                m_arg->placeholder = placeholder;
+            }
+            // Bind a boolean data member (no placeholder required)
+            template<typename C>
+            void bind( bool C::* field ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
+            }
+
+            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
+            template<typename C, typename M>
+            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
+                m_arg->placeholder = placeholder;
+            }
+
+            // Bind a method taking a single, boolean argument (no placeholder string required)
+            template<typename C>
+            void bind( void (C::* unaryMethod)( bool ) ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
+            }
+
+            // Bind a method that takes no arguments (will be called if opt is present)
+            template<typename C>
+            void bind( void (C::* nullaryMethod)() ) {
+                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
+            template<typename C>
+            void bind( void (* unaryFunction)( C& ) ) {
+                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
+            template<typename C, typename T>
+            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
+                m_arg->placeholder = placeholder;
+            }
+
+            ArgBuilder& describe( std::string const& description ) {
+                m_arg->description = description;
+                return *this;
+            }
+            ArgBuilder& detail( std::string const& detail ) {
+                m_arg->detail = detail;
+                return *this;
+            }
+
+        protected:
+            Arg* m_arg;
+        };
+
+        class OptBuilder : public ArgBuilder {
+        public:
+            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
+            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
+
+            OptBuilder& operator[]( std::string const& optName ) {
+                addOptName( *ArgBuilder::m_arg, optName );
+                return *this;
+            }
+        };
+
+    public:
+
+        CommandLine()
+        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
+            m_highestSpecifiedArgPosition( 0 ),
+            m_throwOnUnrecognisedTokens( false )
+        {}
+        CommandLine( CommandLine const& other )
+        :   m_boundProcessName( other.m_boundProcessName ),
+            m_options ( other.m_options ),
+            m_positionalArgs( other.m_positionalArgs ),
+            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
+            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
+        {
+            if( other.m_floatingArg.get() )
+                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
+        }
+
+        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
+            m_throwOnUnrecognisedTokens = shouldThrow;
+            return *this;
+        }
+
+        OptBuilder operator[]( std::string const& optName ) {
+            m_options.push_back( Arg() );
+            addOptName( m_options.back(), optName );
+            OptBuilder builder( &m_options.back() );
+            return builder;
+        }
+
+        ArgBuilder operator[]( int position ) {
+            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
+            if( position > m_highestSpecifiedArgPosition )
+                m_highestSpecifiedArgPosition = position;
+            setPositionalArg( m_positionalArgs[position], position );
+            ArgBuilder builder( &m_positionalArgs[position] );
+            return builder;
+        }
+
+        // Invoke this with the _ instance
+        ArgBuilder operator[]( UnpositionalTag ) {
+            if( m_floatingArg.get() )
+                throw std::logic_error( "Only one unpositional argument can be added" );
+            m_floatingArg.reset( new Arg() );
+            ArgBuilder builder( m_floatingArg.get() );
+            return builder;
+        }
+
+        template<typename C, typename M>
+        void bindProcessName( M C::* field ) {
+            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
+        }
+        template<typename C, typename M>
+        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
+            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
+        }
+
+        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
+            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
+            std::size_t maxWidth = 0;
+            for( it = itBegin; it != itEnd; ++it )
+                maxWidth = (std::max)( maxWidth, it->commands().size() );
+
+            for( it = itBegin; it != itEnd; ++it ) {
+                Detail::Text usage( it->commands(), Detail::TextAttributes()
+                                                        .setWidth( maxWidth+indent )
+                                                        .setIndent( indent ) );
+                Detail::Text desc( it->description, Detail::TextAttributes()
+                                                        .setWidth( width - maxWidth - 3 ) );
+
+                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
+                    std::string usageCol = i < usage.size() ? usage[i] : "";
+                    os << usageCol;
+
+                    if( i < desc.size() && !desc[i].empty() )
+                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
+                            << desc[i];
+                    os << "\n";
+                }
+            }
+        }
+        std::string optUsage() const {
+            std::ostringstream oss;
+            optUsage( oss );
+            return oss.str();
+        }
+
+        void argSynopsis( std::ostream& os ) const {
+            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
+                if( i > 1 )
+                    os << " ";
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
+                if( it != m_positionalArgs.end() )
+                    os << "<" << it->second.placeholder << ">";
+                else if( m_floatingArg.get() )
+                    os << "<" << m_floatingArg->placeholder << ">";
+                else
+                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
+            }
+            // !TBD No indication of mandatory args
+            if( m_floatingArg.get() ) {
+                if( m_highestSpecifiedArgPosition > 1 )
+                    os << " ";
+                os << "[<" << m_floatingArg->placeholder << "> ...]";
+            }
+        }
+        std::string argSynopsis() const {
+            std::ostringstream oss;
+            argSynopsis( oss );
+            return oss.str();
+        }
+
+        void usage( std::ostream& os, std::string const& procName ) const {
+            validate();
+            os << "usage:\n  " << procName << " ";
+            argSynopsis( os );
+            if( !m_options.empty() ) {
+                os << " [options]\n\nwhere options are: \n";
+                optUsage( os, 2 );
+            }
+            os << "\n";
+        }
+        std::string usage( std::string const& procName ) const {
+            std::ostringstream oss;
+            usage( oss, procName );
+            return oss.str();
+        }
+
+        ConfigT parse( int argc, char const * const * argv ) const {
+            ConfigT config;
+            parseInto( argc, argv, config );
+            return config;
+        }
+
+        std::vector<Parser::Token> parseInto( int argc, char const * const * argv, ConfigT& config ) const {
+            std::string processName = argv[0];
+            std::size_t lastSlash = processName.find_last_of( "/\\" );
+            if( lastSlash != std::string::npos )
+                processName = processName.substr( lastSlash+1 );
+            m_boundProcessName.set( config, processName );
+            std::vector<Parser::Token> tokens;
+            Parser parser;
+            parser.parseIntoTokens( argc, argv, tokens );
+            return populate( tokens, config );
+        }
+
+        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            validate();
+            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
+            unusedTokens = populateFixedArgs( unusedTokens, config );
+            unusedTokens = populateFloatingArgs( unusedTokens, config );
+            return unusedTokens;
+        }
+
+        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            std::vector<std::string> errors;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
+                for(; it != itEnd; ++it ) {
+                    Arg const& arg = *it;
+
+                    try {
+                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
+                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
+                            if( arg.takesArg() ) {
+                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
+                                    errors.push_back( "Expected argument to option: " + token.data );
+                                else
+                                    arg.boundField.set( config, tokens[++i].data );
+                            }
+                            else {
+                                arg.boundField.setFlag( config );
+                            }
+                            break;
+                        }
+                    }
+                    catch( std::exception& ex ) {
+                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
+                    }
+                }
+                if( it == itEnd ) {
+                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
+                        unusedTokens.push_back( token );
+                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
+                        errors.push_back( "unrecognised option: " + token.data );
+                }
+            }
+            if( !errors.empty() ) {
+                std::ostringstream oss;
+                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it != errors.begin() )
+                        oss << "\n";
+                    oss << *it;
+                }
+                throw std::runtime_error( oss.str() );
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            int position = 1;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
+                if( it != m_positionalArgs.end() )
+                    it->second.boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+                if( token.type == Parser::Token::Positional )
+                    position++;
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            if( !m_floatingArg.get() )
+                return tokens;
+            std::vector<Parser::Token> unusedTokens;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                if( token.type == Parser::Token::Positional )
+                    m_floatingArg->boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+            }
+            return unusedTokens;
+        }
+
+        void validate() const
+        {
+            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
+                throw std::logic_error( "No options or arguments specified" );
+
+            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
+                                                            itEnd = m_options.end();
+                    it != itEnd; ++it )
+                it->validate();
+        }
+
+    private:
+        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
+        std::vector<Arg> m_options;
+        std::map<int, Arg> m_positionalArgs;
+        ArgAutoPtr m_floatingArg;
+        int m_highestSpecifiedArgPosition;
+        bool m_throwOnUnrecognisedTokens;
+    };
+
+} // end namespace Clara
+
+STITCH_CLARA_CLOSE_NAMESPACE
+#undef STITCH_CLARA_OPEN_NAMESPACE
+#undef STITCH_CLARA_CLOSE_NAMESPACE
+
+#endif // TWOBLUECUBES_CLARA_H_INCLUDED
+#undef STITCH_CLARA_OPEN_NAMESPACE
+
+// Restore Clara's value for console width, if present
+#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+
+#include <fstream>
+
+namespace Catch {
+
+    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
+    inline void abortAfterX( ConfigData& config, int x ) {
+        if( x < 1 )
+            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
+        config.abortAfter = x;
+    }
+    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
+
+    inline void addWarning( ConfigData& config, std::string const& _warning ) {
+        if( _warning == "NoAssertions" )
+            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
+        else
+            throw std::runtime_error( "Unrecognised warning: '" + _warning + "'" );
+    }
+    inline void setOrder( ConfigData& config, std::string const& order ) {
+        if( startsWith( "declared", order ) )
+            config.runOrder = RunTests::InDeclarationOrder;
+        else if( startsWith( "lexical", order ) )
+            config.runOrder = RunTests::InLexicographicalOrder;
+        else if( startsWith( "random", order ) )
+            config.runOrder = RunTests::InRandomOrder;
+        else
+            throw std::runtime_error( "Unrecognised ordering: '" + order + "'" );
+    }
+    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
+        if( seed == "time" ) {
+            config.rngSeed = static_cast<unsigned int>( std::time(0) );
+        }
+        else {
+            std::stringstream ss;
+            ss << seed;
+            ss >> config.rngSeed;
+            if( ss.fail() )
+                throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" );
+        }
+    }
+    inline void setVerbosity( ConfigData& config, int level ) {
+        // !TBD: accept strings?
+        config.verbosity = static_cast<Verbosity::Level>( level );
+    }
+    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
+        config.showDurations = _showDurations
+            ? ShowDurations::Always
+            : ShowDurations::Never;
+    }
+    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
+        std::ifstream f( _filename.c_str() );
+        if( !f.is_open() )
+            throw std::domain_error( "Unable to load input file: " + _filename );
+
+        std::string line;
+        while( std::getline( f, line ) ) {
+            line = trim(line);
+            if( !line.empty() && !startsWith( line, "#" ) )
+                addTestOrTags( config, "\"" + line + "\"," );
+        }
+    }
+
+    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
+
+        using namespace Clara;
+        CommandLine<ConfigData> cli;
+
+        cli.bindProcessName( &ConfigData::processName );
+
+        cli["-?"]["-h"]["--help"]
+            .describe( "display usage information" )
+            .bind( &ConfigData::showHelp );
+
+        cli["-l"]["--list-tests"]
+            .describe( "list all/matching test cases" )
+            .bind( &ConfigData::listTests );
+
+        cli["-t"]["--list-tags"]
+            .describe( "list all/matching tags" )
+            .bind( &ConfigData::listTags );
+
+        cli["-s"]["--success"]
+            .describe( "include successful tests in output" )
+            .bind( &ConfigData::showSuccessfulTests );
+
+        cli["-b"]["--break"]
+            .describe( "break into debugger on failure" )
+            .bind( &ConfigData::shouldDebugBreak );
+
+        cli["-e"]["--nothrow"]
+            .describe( "skip exception tests" )
+            .bind( &ConfigData::noThrow );
+
+        cli["-i"]["--invisibles"]
+            .describe( "show invisibles (tabs, newlines)" )
+            .bind( &ConfigData::showInvisibles );
+
+        cli["-o"]["--out"]
+            .describe( "output filename" )
+            .bind( &ConfigData::outputFilename, "filename" );
+
+        cli["-r"]["--reporter"]
+//            .placeholder( "name[:filename]" )
+            .describe( "reporter to use (defaults to console)" )
+            .bind( &ConfigData::reporterName, "name" );
+
+        cli["-n"]["--name"]
+            .describe( "suite name" )
+            .bind( &ConfigData::name, "name" );
+
+        cli["-a"]["--abort"]
+            .describe( "abort at first failure" )
+            .bind( &abortAfterFirst );
+
+        cli["-x"]["--abortx"]
+            .describe( "abort after x failures" )
+            .bind( &abortAfterX, "no. failures" );
+
+        cli["-w"]["--warn"]
+            .describe( "enable warnings" )
+            .bind( &addWarning, "warning name" );
+
+// - needs updating if reinstated
+//        cli.into( &setVerbosity )
+//            .describe( "level of verbosity (0=no output)" )
+//            .shortOpt( "v")
+//            .longOpt( "verbosity" )
+//            .placeholder( "level" );
+
+        cli[_]
+            .describe( "which test or tests to use" )
+            .bind( &addTestOrTags, "test name, pattern or tags" );
+
+        cli["-d"]["--durations"]
+            .describe( "show test durations" )
+            .bind( &setShowDurations, "yes/no" );
+
+        cli["-f"]["--input-file"]
+            .describe( "load test names to run from a file" )
+            .bind( &loadTestNamesFromFile, "filename" );
+
+        // Less common commands which don't have a short form
+        cli["--list-test-names-only"]
+            .describe( "list all/matching test cases names only" )
+            .bind( &ConfigData::listTestNamesOnly );
+
+        cli["--list-reporters"]
+            .describe( "list all reporters" )
+            .bind( &ConfigData::listReporters );
+
+        cli["--order"]
+            .describe( "test case order (defaults to decl)" )
+            .bind( &setOrder, "decl|lex|rand" );
+
+        cli["--rng-seed"]
+            .describe( "set a specific seed for random numbers" )
+            .bind( &setRngSeed, "'time'|number" );
+
+        cli["--force-colour"]
+            .describe( "force colourised output" )
+            .bind( &ConfigData::forceColour );
+
+        return cli;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_list.hpp
+#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+// #included from: catch_text.h
+#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
+// #included from: ../external/tbc_text_format.h
+// Only use header guard if we are not using an outer namespace
+#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#  endif
+# else
+#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+# endif
+#endif
+#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+namespace Catch {
+    using Tbc::Text;
+    using Tbc::TextAttributes;
+}
+
+// #included from: catch_console_colour.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+namespace Catch {
+
+    struct Colour {
+        enum Code {
+            None = 0,
+
+            White,
+            Red,
+            Green,
+            Blue,
+            Cyan,
+            Yellow,
+            Grey,
+
+            Bright = 0x10,
+
+            BrightRed = Bright | Red,
+            BrightGreen = Bright | Green,
+            LightGrey = Bright | Grey,
+            BrightWhite = Bright | White,
+
+            // By intention
+            FileName = LightGrey,
+            Warning = Yellow,
+            ResultError = BrightRed,
+            ResultSuccess = BrightGreen,
+            ResultExpectedFailure = Warning,
+
+            Error = BrightRed,
+            Success = Green,
+
+            OriginalExpression = Cyan,
+            ReconstructedExpression = Yellow,
+
+            SecondaryText = LightGrey,
+            Headers = White
+        };
+
+        // Use constructed object for RAII guard
+        Colour( Code _colourCode );
+        Colour( Colour const& other );
+        ~Colour();
+
+        // Use static method for one-shot changes
+        static void use( Code _colourCode );
+
+    private:
+        bool m_moved;
+    };
+
+    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_reporter.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+#include <string>
+#include <ostream>
+#include <map>
+#include <assert.h>
+
+namespace Catch
+{
+    struct ReporterConfig {
+        explicit ReporterConfig( Ptr<IConfig> const& _fullConfig )
+        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
+
+        ReporterConfig( Ptr<IConfig> const& _fullConfig, std::ostream& _stream )
+        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
+
+        std::ostream& stream() const    { return *m_stream; }
+        Ptr<IConfig> fullConfig() const { return m_fullConfig; }
+
+    private:
+        std::ostream* m_stream;
+        Ptr<IConfig> m_fullConfig;
+    };
+
+    struct ReporterPreferences {
+        ReporterPreferences()
+        : shouldRedirectStdOut( false )
+        {}
+
+        bool shouldRedirectStdOut;
+    };
+
+    template<typename T>
+    struct LazyStat : Option<T> {
+        LazyStat() : used( false ) {}
+        LazyStat& operator=( T const& _value ) {
+            Option<T>::operator=( _value );
+            used = false;
+            return *this;
+        }
+        void reset() {
+            Option<T>::reset();
+            used = false;
+        }
+        bool used;
+    };
+
+    struct TestRunInfo {
+        TestRunInfo( std::string const& _name ) : name( _name ) {}
+        std::string name;
+    };
+    struct GroupInfo {
+        GroupInfo(  std::string const& _name,
+                    std::size_t _groupIndex,
+                    std::size_t _groupsCount )
+        :   name( _name ),
+            groupIndex( _groupIndex ),
+            groupsCounts( _groupsCount )
+        {}
+
+        std::string name;
+        std::size_t groupIndex;
+        std::size_t groupsCounts;
+    };
+
+    struct AssertionStats {
+        AssertionStats( AssertionResult const& _assertionResult,
+                        std::vector<MessageInfo> const& _infoMessages,
+                        Totals const& _totals )
+        :   assertionResult( _assertionResult ),
+            infoMessages( _infoMessages ),
+            totals( _totals )
+        {
+            if( assertionResult.hasMessage() ) {
+                // Copy message into messages list.
+                // !TBD This should have been done earlier, somewhere
+                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
+                builder << assertionResult.getMessage();
+                builder.m_info.message = builder.m_stream.str();
+
+                infoMessages.push_back( builder.m_info );
+            }
+        }
+        virtual ~AssertionStats();
+
+#  ifdef CATCH_CPP11_OR_GREATER
+        AssertionStats( AssertionStats const& )              = default;
+        AssertionStats( AssertionStats && )                  = default;
+        AssertionStats& operator = ( AssertionStats const& ) = default;
+        AssertionStats& operator = ( AssertionStats && )     = default;
+#  endif
+
+        AssertionResult assertionResult;
+        std::vector<MessageInfo> infoMessages;
+        Totals totals;
+    };
+
+    struct SectionStats {
+        SectionStats(   SectionInfo const& _sectionInfo,
+                        Counts const& _assertions,
+                        double _durationInSeconds,
+                        bool _missingAssertions )
+        :   sectionInfo( _sectionInfo ),
+            assertions( _assertions ),
+            durationInSeconds( _durationInSeconds ),
+            missingAssertions( _missingAssertions )
+        {}
+        virtual ~SectionStats();
+#  ifdef CATCH_CPP11_OR_GREATER
+        SectionStats( SectionStats const& )              = default;
+        SectionStats( SectionStats && )                  = default;
+        SectionStats& operator = ( SectionStats const& ) = default;
+        SectionStats& operator = ( SectionStats && )     = default;
+#  endif
+
+        SectionInfo sectionInfo;
+        Counts assertions;
+        double durationInSeconds;
+        bool missingAssertions;
+    };
+
+    struct TestCaseStats {
+        TestCaseStats(  TestCaseInfo const& _testInfo,
+                        Totals const& _totals,
+                        std::string const& _stdOut,
+                        std::string const& _stdErr,
+                        bool _aborting )
+        : testInfo( _testInfo ),
+            totals( _totals ),
+            stdOut( _stdOut ),
+            stdErr( _stdErr ),
+            aborting( _aborting )
+        {}
+        virtual ~TestCaseStats();
+
+#  ifdef CATCH_CPP11_OR_GREATER
+        TestCaseStats( TestCaseStats const& )              = default;
+        TestCaseStats( TestCaseStats && )                  = default;
+        TestCaseStats& operator = ( TestCaseStats const& ) = default;
+        TestCaseStats& operator = ( TestCaseStats && )     = default;
+#  endif
+
+        TestCaseInfo testInfo;
+        Totals totals;
+        std::string stdOut;
+        std::string stdErr;
+        bool aborting;
+    };
+
+    struct TestGroupStats {
+        TestGroupStats( GroupInfo const& _groupInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   groupInfo( _groupInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        TestGroupStats( GroupInfo const& _groupInfo )
+        :   groupInfo( _groupInfo ),
+            aborting( false )
+        {}
+        virtual ~TestGroupStats();
+
+#  ifdef CATCH_CPP11_OR_GREATER
+        TestGroupStats( TestGroupStats const& )              = default;
+        TestGroupStats( TestGroupStats && )                  = default;
+        TestGroupStats& operator = ( TestGroupStats const& ) = default;
+        TestGroupStats& operator = ( TestGroupStats && )     = default;
+#  endif
+
+        GroupInfo groupInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct TestRunStats {
+        TestRunStats(   TestRunInfo const& _runInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   runInfo( _runInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        virtual ~TestRunStats();
+
+#  ifndef CATCH_CPP11_OR_GREATER
+        TestRunStats( TestRunStats const& _other )
+        :   runInfo( _other.runInfo ),
+            totals( _other.totals ),
+            aborting( _other.aborting )
+        {}
+#  else
+        TestRunStats( TestRunStats const& )              = default;
+        TestRunStats( TestRunStats && )                  = default;
+        TestRunStats& operator = ( TestRunStats const& ) = default;
+        TestRunStats& operator = ( TestRunStats && )     = default;
+#  endif
+
+        TestRunInfo runInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct IStreamingReporter : IShared {
+        virtual ~IStreamingReporter();
+
+        // Implementing class must also provide the following static method:
+        // static std::string getDescription();
+
+        virtual ReporterPreferences getPreferences() const = 0;
+
+        virtual void noMatchingTestCases( std::string const& spec ) = 0;
+
+        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
+
+        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
+
+        // The return value indicates if the messages buffer should be cleared:
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
+        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
+        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
+
+        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
+    };
+
+    struct IReporterFactory {
+        virtual ~IReporterFactory();
+        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
+        virtual std::string getDescription() const = 0;
+    };
+
+    struct IReporterRegistry {
+        typedef std::map<std::string, IReporterFactory*> FactoryMap;
+
+        virtual ~IReporterRegistry();
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig> const& config ) const = 0;
+        virtual FactoryMap const& getFactories() const = 0;
+    };
+
+}
+
+#include <limits>
+#include <algorithm>
+
+namespace Catch {
+
+    inline std::size_t listTests( Config const& config ) {
+
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Matching test cases:\n";
+        else {
+            Catch::cout() << "All available test cases:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::size_t matchedTests = 0;
+        TextAttributes nameAttr, tagsAttr;
+        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
+        tagsAttr.setIndent( 6 );
+
+        std::vector<TestCase> matchedTestCases;
+        getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, config, matchedTestCases );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Colour::Code colour = testCaseInfo.isHidden()
+                ? Colour::SecondaryText
+                : Colour::None;
+            Colour colourGuard( colour );
+
+            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
+            if( !testCaseInfo.tags.empty() )
+                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
+        }
+
+        if( !config.testSpec().hasFilters() )
+            Catch::cout() << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
+        else
+            Catch::cout() << pluralise( matchedTests, "matching test case" ) << "\n" << std::endl;
+        return matchedTests;
+    }
+
+    inline std::size_t listTestsNamesOnly( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( !config.testSpec().hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        std::size_t matchedTests = 0;
+        std::vector<TestCase> matchedTestCases;
+        getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, config, matchedTestCases );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Catch::cout() << testCaseInfo.name << std::endl;
+        }
+        return matchedTests;
+    }
+
+    struct TagInfo {
+        TagInfo() : count ( 0 ) {}
+        void add( std::string const& spelling ) {
+            ++count;
+            spellings.insert( spelling );
+        }
+        std::string all() const {
+            std::string out;
+            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
+                        it != itEnd;
+                        ++it )
+                out += "[" + *it + "]";
+            return out;
+        }
+        std::set<std::string> spellings;
+        std::size_t count;
+    };
+
+    inline std::size_t listTags( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Tags for matching test cases:\n";
+        else {
+            Catch::cout() << "All available tags:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::map<std::string, TagInfo> tagCounts;
+
+        std::vector<TestCase> matchedTestCases;
+        getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, config, matchedTestCases );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
+                                                        tagItEnd = it->getTestCaseInfo().tags.end();
+                    tagIt != tagItEnd;
+                    ++tagIt ) {
+                std::string tagName = *tagIt;
+                std::string lcaseTagName = toLower( tagName );
+                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
+                if( countIt == tagCounts.end() )
+                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
+                countIt->second.add( tagName );
+            }
+        }
+
+        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
+                                                            countItEnd = tagCounts.end();
+                countIt != countItEnd;
+                ++countIt ) {
+            std::ostringstream oss;
+            oss << "  " << std::setw(2) << countIt->second.count << "  ";
+            Text wrapper( countIt->second.all(), TextAttributes()
+                                                    .setInitialIndent( 0 )
+                                                    .setIndent( oss.str().size() )
+                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
+            Catch::cout() << oss.str() << wrapper << "\n";
+        }
+        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl;
+        return tagCounts.size();
+    }
+
+    inline std::size_t listReporters( Config const& /*config*/ ) {
+        Catch::cout() << "Available reporters:\n";
+        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
+        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
+        std::size_t maxNameLen = 0;
+        for(it = itBegin; it != itEnd; ++it )
+            maxNameLen = (std::max)( maxNameLen, it->first.size() );
+
+        for(it = itBegin; it != itEnd; ++it ) {
+            Text wrapper( it->second->getDescription(), TextAttributes()
+                                                        .setInitialIndent( 0 )
+                                                        .setIndent( 7+maxNameLen )
+                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
+            Catch::cout() << "  "
+                    << it->first
+                    << ":"
+                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
+                    << wrapper << "\n";
+        }
+        Catch::cout() << std::endl;
+        return factories.size();
+    }
+
+    inline Option<std::size_t> list( Config const& config ) {
+        Option<std::size_t> listedCount;
+        if( config.listTests() )
+            listedCount = listedCount.valueOr(0) + listTests( config );
+        if( config.listTestNamesOnly() )
+            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
+        if( config.listTags() )
+            listedCount = listedCount.valueOr(0) + listTags( config );
+        if( config.listReporters() )
+            listedCount = listedCount.valueOr(0) + listReporters( config );
+        return listedCount;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_runner_impl.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+// #included from: catch_test_case_tracker.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+#include <map>
+#include <string>
+#include <assert.h>
+
+namespace Catch {
+namespace SectionTracking {
+
+    class TrackedSection {
+
+        typedef std::map<std::string, TrackedSection> TrackedSections;
+
+    public:
+        enum RunState {
+            NotStarted,
+            Executing,
+            ExecutingChildren,
+            Completed
+        };
+
+        TrackedSection( std::string const& name, TrackedSection* parent )
+        :   m_name( name ), m_runState( NotStarted ), m_parent( parent )
+        {}
+
+        RunState runState() const { return m_runState; }
+
+        TrackedSection* findChild( std::string const& childName ) {
+            TrackedSections::iterator it = m_children.find( childName );
+            return it != m_children.end()
+                ? &it->second
+                : NULL;
+        }
+        TrackedSection* acquireChild( std::string const& childName ) {
+            if( TrackedSection* child = findChild( childName ) )
+                return child;
+            m_children.insert( std::make_pair( childName, TrackedSection( childName, this ) ) );
+            return findChild( childName );
+        }
+        void enter() {
+            if( m_runState == NotStarted )
+                m_runState = Executing;
+        }
+        void leave() {
+            for( TrackedSections::const_iterator it = m_children.begin(), itEnd = m_children.end();
+                    it != itEnd;
+                    ++it )
+                if( it->second.runState() != Completed ) {
+                    m_runState = ExecutingChildren;
+                    return;
+                }
+            m_runState = Completed;
+        }
+        TrackedSection* getParent() {
+            return m_parent;
+        }
+        bool hasChildren() const {
+            return !m_children.empty();
+        }
+
+    private:
+        std::string m_name;
+        RunState m_runState;
+        TrackedSections m_children;
+        TrackedSection* m_parent;
+
+    };
+
+    class TestCaseTracker {
+    public:
+        TestCaseTracker( std::string const& testCaseName )
+        :   m_testCase( testCaseName, NULL ),
+            m_currentSection( &m_testCase ),
+            m_completedASectionThisRun( false )
+        {}
+
+        bool enterSection( std::string const& name ) {
+            TrackedSection* child = m_currentSection->acquireChild( name );
+            if( m_completedASectionThisRun || child->runState() == TrackedSection::Completed )
+                return false;
+
+            m_currentSection = child;
+            m_currentSection->enter();
+            return true;
+        }
+        void leaveSection() {
+            m_currentSection->leave();
+            m_currentSection = m_currentSection->getParent();
+            assert( m_currentSection != NULL );
+            m_completedASectionThisRun = true;
+        }
+
+        bool currentSectionHasChildren() const {
+            return m_currentSection->hasChildren();
+        }
+        bool isCompleted() const {
+            return m_testCase.runState() == TrackedSection::Completed;
+        }
+
+        class Guard {
+        public:
+            Guard( TestCaseTracker& tracker ) : m_tracker( tracker ) {
+                m_tracker.enterTestCase();
+            }
+            ~Guard() {
+                m_tracker.leaveTestCase();
+            }
+        private:
+            Guard( Guard const& );
+            void operator = ( Guard const& );
+            TestCaseTracker& m_tracker;
+        };
+
+    private:
+        void enterTestCase() {
+            m_currentSection = &m_testCase;
+            m_completedASectionThisRun = false;
+            m_testCase.enter();
+        }
+        void leaveTestCase() {
+            m_testCase.leave();
+        }
+
+        TrackedSection m_testCase;
+        TrackedSection* m_currentSection;
+        bool m_completedASectionThisRun;
+    };
+
+} // namespace SectionTracking
+
+using SectionTracking::TestCaseTracker;
+
+} // namespace Catch
+
+// #included from: catch_fatal_condition.hpp
+#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+namespace Catch {
+
+    // Report the error condition then exit the process
+    inline void fatal( std::string const& message, int exitCode ) {
+        IContext& context = Catch::getCurrentContext();
+        IResultCapture* resultCapture = context.getResultCapture();
+        resultCapture->handleFatalErrorCondition( message );
+
+		if( Catch::alwaysTrue() ) // avoids "no return" warnings
+            exit( exitCode );
+    }
+
+} // namespace Catch
+
+#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
+
+namespace Catch {
+
+    struct FatalConditionHandler {
+		void reset() {}
+	};
+
+} // namespace Catch
+
+#else // Not Windows - assumed to be POSIX compatible //////////////////////////
+
+#include <signal.h>
+
+namespace Catch {
+
+    struct SignalDefs { int id; const char* name; };
+    extern SignalDefs signalDefs[];
+    SignalDefs signalDefs[] = {
+            { SIGINT,  "SIGINT - Terminal interrupt signal" },
+            { SIGILL,  "SIGILL - Illegal instruction signal" },
+            { SIGFPE,  "SIGFPE - Floating point error signal" },
+            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
+            { SIGTERM, "SIGTERM - Termination request signal" },
+            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
+        };
+
+    struct FatalConditionHandler {
+
+        static void handleSignal( int sig ) {
+            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                if( sig == signalDefs[i].id )
+                    fatal( signalDefs[i].name, -sig );
+            fatal( "<unknown signal>", -sig );
+        }
+
+        FatalConditionHandler() : m_isSet( true ) {
+            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                signal( signalDefs[i].id, handleSignal );
+        }
+        ~FatalConditionHandler() {
+            reset();
+        }
+        void reset() {
+            if( m_isSet ) {
+                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                    signal( signalDefs[i].id, SIG_DFL );
+                m_isSet = false;
+            }
+        }
+
+        bool m_isSet;
+    };
+
+} // namespace Catch
+
+#endif // not Windows
+
+#include <set>
+#include <string>
+
+namespace Catch {
+
+    class StreamRedirect {
+
+    public:
+        StreamRedirect( std::ostream& stream, std::string& targetString )
+        :   m_stream( stream ),
+            m_prevBuf( stream.rdbuf() ),
+            m_targetString( targetString )
+        {
+            stream.rdbuf( m_oss.rdbuf() );
+        }
+
+        ~StreamRedirect() {
+            m_targetString += m_oss.str();
+            m_stream.rdbuf( m_prevBuf );
+        }
+
+    private:
+        std::ostream& m_stream;
+        std::streambuf* m_prevBuf;
+        std::ostringstream m_oss;
+        std::string& m_targetString;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class RunContext : public IResultCapture, public IRunner {
+
+        RunContext( RunContext const& );
+        void operator =( RunContext const& );
+
+    public:
+
+        explicit RunContext( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> const& reporter )
+        :   m_runInfo( config->name() ),
+            m_context( getCurrentMutableContext() ),
+            m_activeTestCase( NULL ),
+            m_config( config ),
+            m_reporter( reporter ),
+            m_prevRunner( m_context.getRunner() ),
+            m_prevResultCapture( m_context.getResultCapture() ),
+            m_prevConfig( m_context.getConfig() )
+        {
+            m_context.setRunner( this );
+            m_context.setConfig( m_config );
+            m_context.setResultCapture( this );
+            m_reporter->testRunStarting( m_runInfo );
+        }
+
+        virtual ~RunContext() {
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
+            m_context.setRunner( m_prevRunner );
+            m_context.setConfig( NULL );
+            m_context.setResultCapture( m_prevResultCapture );
+            m_context.setConfig( m_prevConfig );
+        }
+
+        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
+        }
+        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
+        }
+
+        Totals runTest( TestCase const& testCase ) {
+            Totals prevTotals = m_totals;
+
+            std::string redirectedCout;
+            std::string redirectedCerr;
+
+            TestCaseInfo testInfo = testCase.getTestCaseInfo();
+
+            m_reporter->testCaseStarting( testInfo );
+
+            m_activeTestCase = &testCase;
+            m_testCaseTracker = TestCaseTracker( testInfo.name );
+
+            do {
+                do {
+                    runCurrentTest( redirectedCout, redirectedCerr );
+                }
+                while( !m_testCaseTracker->isCompleted() && !aborting() );
+            }
+            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
+
+            Totals deltaTotals = m_totals.delta( prevTotals );
+            m_totals.testCases += deltaTotals.testCases;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        redirectedCout,
+                                                        redirectedCerr,
+                                                        aborting() ) );
+
+            m_activeTestCase = NULL;
+            m_testCaseTracker.reset();
+
+            return deltaTotals;
+        }
+
+        Ptr<IConfig const> config() const {
+            return m_config;
+        }
+
+    private: // IResultCapture
+
+        virtual void assertionEnded( AssertionResult const& result ) {
+            if( result.getResultType() == ResultWas::Ok ) {
+                m_totals.assertions.passed++;
+            }
+            else if( !result.isOk() ) {
+                m_totals.assertions.failed++;
+            }
+
+            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
+                m_messages.clear();
+
+            // Reset working state
+            m_lastAssertionInfo = AssertionInfo( "", m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
+            m_lastResult = result;
+        }
+
+        virtual bool sectionStarted (
+            SectionInfo const& sectionInfo,
+            Counts& assertions
+        )
+        {
+            std::ostringstream oss;
+            oss << sectionInfo.name << "@" << sectionInfo.lineInfo;
+
+            if( !m_testCaseTracker->enterSection( oss.str() ) )
+                return false;
+
+            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
+
+            m_reporter->sectionStarting( sectionInfo );
+
+            assertions = m_totals.assertions;
+
+            return true;
+        }
+        bool testForMissingAssertions( Counts& assertions ) {
+            if( assertions.total() != 0 ||
+                    !m_config->warnAboutMissingAssertions() ||
+                    m_testCaseTracker->currentSectionHasChildren() )
+                return false;
+            m_totals.assertions.failed++;
+            assertions.failed++;
+            return true;
+        }
+
+        virtual void sectionEnded( SectionInfo const& info, Counts const& prevAssertions, double _durationInSeconds ) {
+            if( std::uncaught_exception() ) {
+                m_unfinishedSections.push_back( UnfinishedSections( info, prevAssertions, _durationInSeconds ) );
+                return;
+            }
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            m_testCaseTracker->leaveSection();
+
+            m_reporter->sectionEnded( SectionStats( info, assertions, _durationInSeconds, missingAssertions ) );
+            m_messages.clear();
+        }
+
+        virtual void pushScopedMessage( MessageInfo const& message ) {
+            m_messages.push_back( message );
+        }
+
+        virtual void popScopedMessage( MessageInfo const& message ) {
+            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
+        }
+
+        virtual std::string getCurrentTestName() const {
+            return m_activeTestCase
+                ? m_activeTestCase->getTestCaseInfo().name
+                : "";
+        }
+
+        virtual const AssertionResult* getLastResult() const {
+            return &m_lastResult;
+        }
+
+        virtual void handleFatalErrorCondition( std::string const& message ) {
+            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
+            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
+            resultBuilder << message;
+            resultBuilder.captureExpression();
+
+            handleUnfinishedSections();
+
+            // Recreate section for test case (as we will lose the one that was in scope)
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+
+            Counts assertions;
+            assertions.failed = 1;
+            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
+            m_reporter->sectionEnded( testCaseSectionStats );
+
+            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
+
+            Totals deltaTotals;
+            deltaTotals.testCases.failed = 1;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        "",
+                                                        "",
+                                                        false ) );
+            m_totals.testCases.failed++;
+            testGroupEnded( "", m_totals, 1, 1 );
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
+        }
+
+    public:
+        // !TBD We need to do this another way!
+        bool aborting() const {
+            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
+        }
+
+    private:
+
+        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+            m_reporter->sectionStarting( testCaseSection );
+            Counts prevAssertions = m_totals.assertions;
+            double duration = 0;
+            try {
+                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal );
+                TestCaseTracker::Guard guard( *m_testCaseTracker );
+
+                Timer timer;
+                timer.start();
+                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
+                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
+                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
+                    invokeActiveTestCase();
+                }
+                else {
+                    invokeActiveTestCase();
+                }
+                duration = timer.getElapsedSeconds();
+            }
+            catch( TestFailureException& ) {
+                // This just means the test was aborted due to failure
+            }
+            catch(...) {
+                makeUnexpectedResultBuilder().useActiveException();
+            }
+            handleUnfinishedSections();
+            m_messages.clear();
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( testCaseInfo.okToFail() ) {
+                std::swap( assertions.failedButOk, assertions.failed );
+                m_totals.assertions.failed -= assertions.failedButOk;
+                m_totals.assertions.failedButOk += assertions.failedButOk;
+            }
+
+            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
+            m_reporter->sectionEnded( testCaseSectionStats );
+        }
+
+        void invokeActiveTestCase() {
+            FatalConditionHandler fatalConditionHandler; // Handle signals
+            m_activeTestCase->invoke();
+            fatalConditionHandler.reset();
+        }
+
+    private:
+
+        ResultBuilder makeUnexpectedResultBuilder() const {
+            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
+                                    m_lastAssertionInfo.lineInfo,
+                                    m_lastAssertionInfo.capturedExpression.c_str(),
+                                    m_lastAssertionInfo.resultDisposition );
+        }
+
+        void handleUnfinishedSections() {
+            // If sections ended prematurely due to an exception we stored their
+            // infos here so we can tear them down outside the unwind process.
+            for( std::vector<UnfinishedSections>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
+                        itEnd = m_unfinishedSections.rend();
+                    it != itEnd;
+                    ++it )
+                sectionEnded( it->info, it->prevAssertions, it->durationInSeconds );
+            m_unfinishedSections.clear();
+        }
+
+        struct UnfinishedSections {
+            UnfinishedSections( SectionInfo const& _info, Counts const& _prevAssertions, double _durationInSeconds )
+            : info( _info ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
+            {}
+
+            SectionInfo info;
+            Counts prevAssertions;
+            double durationInSeconds;
+        };
+
+        TestRunInfo m_runInfo;
+        IMutableContext& m_context;
+        TestCase const* m_activeTestCase;
+        Option<TestCaseTracker> m_testCaseTracker;
+        AssertionResult m_lastResult;
+
+        Ptr<IConfig const> m_config;
+        Totals m_totals;
+        Ptr<IStreamingReporter> m_reporter;
+        std::vector<MessageInfo> m_messages;
+        IRunner* m_prevRunner;
+        IResultCapture* m_prevResultCapture;
+        Ptr<IConfig const> m_prevConfig;
+        AssertionInfo m_lastAssertionInfo;
+        std::vector<UnfinishedSections> m_unfinishedSections;
+    };
+
+    IResultCapture& getResultCapture() {
+        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
+            return *capture;
+        else
+            throw std::logic_error( "No result capture instance" );
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_version.h
+#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+namespace Catch {
+
+    // Versioning information
+    struct Version {
+        Version(    unsigned int _majorVersion,
+                    unsigned int _minorVersion,
+                    unsigned int _buildNumber,
+                    char const* const _branchName )
+        :   majorVersion( _majorVersion ),
+            minorVersion( _minorVersion ),
+            buildNumber( _buildNumber ),
+            branchName( _branchName )
+        {}
+
+        unsigned int const majorVersion;
+        unsigned int const minorVersion;
+        unsigned int const buildNumber;
+        char const* const branchName;
+
+    private:
+        void operator=( Version const& );
+    };
+
+    extern Version libraryVersion;
+}
+
+#include <fstream>
+#include <stdlib.h>
+#include <limits>
+
+namespace Catch {
+
+    class Runner {
+
+    public:
+        Runner( Ptr<Config> const& config )
+        :   m_config( config )
+        {
+            openStream();
+            makeReporter();
+        }
+
+        Totals runTests() {
+
+            RunContext context( m_config.get(), m_reporter );
+
+            Totals totals;
+
+            context.testGroupStarting( "all tests", 1, 1 ); // deprecated?
+
+            TestSpec testSpec = m_config->testSpec();
+            if( !testSpec.hasFilters() )
+                testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+
+            std::vector<TestCase> testCases;
+            getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *m_config, testCases );
+
+            int testsRunForGroup = 0;
+            for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+                    it != itEnd;
+                    ++it ) {
+                testsRunForGroup++;
+                if( m_testsAlreadyRun.find( *it ) == m_testsAlreadyRun.end() ) {
+
+                    if( context.aborting() )
+                        break;
+
+                    totals += context.runTest( *it );
+                    m_testsAlreadyRun.insert( *it );
+                }
+            }
+            std::vector<TestCase> skippedTestCases;
+            getRegistryHub().getTestCaseRegistry().getFilteredTests( testSpec, *m_config, skippedTestCases, true );
+
+            for( std::vector<TestCase>::const_iterator it = skippedTestCases.begin(), itEnd = skippedTestCases.end();
+                    it != itEnd;
+                    ++it )
+                m_reporter->skipTest( *it );
+
+            context.testGroupEnded( "all tests", totals, 1, 1 );
+            return totals;
+        }
+
+    private:
+        void openStream() {
+            // Open output file, if specified
+            if( !m_config->getFilename().empty() ) {
+                m_ofs.open( m_config->getFilename().c_str() );
+                if( m_ofs.fail() ) {
+                    std::ostringstream oss;
+                    oss << "Unable to open file: '" << m_config->getFilename() << "'";
+                    throw std::domain_error( oss.str() );
+                }
+                m_config->setStreamBuf( m_ofs.rdbuf() );
+            }
+        }
+        void makeReporter() {
+            std::string reporterName = m_config->getReporterName().empty()
+                ? "console"
+                : m_config->getReporterName();
+
+            m_reporter = getRegistryHub().getReporterRegistry().create( reporterName, m_config.get() );
+            if( !m_reporter ) {
+                std::ostringstream oss;
+                oss << "No reporter registered with name: '" << reporterName << "'";
+                throw std::domain_error( oss.str() );
+            }
+        }
+
+    private:
+        Ptr<Config> m_config;
+        std::ofstream m_ofs;
+        Ptr<IStreamingReporter> m_reporter;
+        std::set<TestCase> m_testsAlreadyRun;
+    };
+
+    class Session : NonCopyable {
+        static bool alreadyInstantiated;
+
+    public:
+
+        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
+
+        Session()
+        : m_cli( makeCommandLineParser() ) {
+            if( alreadyInstantiated ) {
+                std::string msg = "Only one instance of Catch::Session can ever be used";
+                Catch::cerr() << msg << std::endl;
+                throw std::logic_error( msg );
+            }
+            alreadyInstantiated = true;
+        }
+        ~Session() {
+            Catch::cleanUp();
+        }
+
+        void showHelp( std::string const& processName ) {
+            Catch::cout() << "\nCatch v"    << libraryVersion.majorVersion << "."
+                                        << libraryVersion.minorVersion << " build "
+                                        << libraryVersion.buildNumber;
+            if( libraryVersion.branchName != std::string( "master" ) )
+                Catch::cout() << " (" << libraryVersion.branchName << " branch)";
+            Catch::cout() << "\n";
+
+            m_cli.usage( Catch::cout(), processName );
+            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
+        }
+
+        int applyCommandLine( int argc, char* const argv[], OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
+            try {
+                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
+                m_unusedTokens = m_cli.parseInto( argc, argv, m_configData );
+                if( m_configData.showHelp )
+                    showHelp( m_configData.processName );
+                m_config.reset();
+            }
+            catch( std::exception& ex ) {
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()   << "\nError(s) in input:\n"
+                                << Text( ex.what(), TextAttributes().setIndent(2) )
+                                << "\n\n";
+                }
+                m_cli.usage( Catch::cout(), m_configData.processName );
+                return (std::numeric_limits<int>::max)();
+            }
+            return 0;
+        }
+
+        void useConfigData( ConfigData const& _configData ) {
+            m_configData = _configData;
+            m_config.reset();
+        }
+
+        int run( int argc, char* const argv[] ) {
+
+            int returnCode = applyCommandLine( argc, argv );
+            if( returnCode == 0 )
+                returnCode = run();
+            return returnCode;
+        }
+
+        int run() {
+            if( m_configData.showHelp )
+                return 0;
+
+            try
+            {
+                config(); // Force config to be constructed
+
+                std::srand( m_configData.rngSeed );
+
+                Runner runner( m_config );
+
+                // Handle list request
+                if( Option<std::size_t> listed = list( config() ) )
+                    return static_cast<int>( *listed );
+
+                return static_cast<int>( runner.runTests().assertions.failed );
+            }
+            catch( std::exception& ex ) {
+                Catch::cerr() << ex.what() << std::endl;
+                return (std::numeric_limits<int>::max)();
+            }
+        }
+
+        Clara::CommandLine<ConfigData> const& cli() const {
+            return m_cli;
+        }
+        std::vector<Clara::Parser::Token> const& unusedTokens() const {
+            return m_unusedTokens;
+        }
+        ConfigData& configData() {
+            return m_configData;
+        }
+        Config& config() {
+            if( !m_config )
+                m_config = new Config( m_configData );
+            return *m_config;
+        }
+
+    private:
+        Clara::CommandLine<ConfigData> m_cli;
+        std::vector<Clara::Parser::Token> m_unusedTokens;
+        ConfigData m_configData;
+        Ptr<Config> m_config;
+    };
+
+    bool Session::alreadyInstantiated = false;
+
+} // end namespace Catch
+
+// #included from: catch_registry_hub.hpp
+#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+// #included from: catch_test_case_registry_impl.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <set>
+#include <sstream>
+#include <iostream>
+#include <algorithm>
+
+namespace Catch {
+
+    class TestRegistry : public ITestCaseRegistry {
+        struct LexSort {
+            bool operator() (TestCase i,TestCase j) const { return (i<j);}
+        };
+        struct RandomNumberGenerator {
+            int operator()( int n ) const { return std::rand() % n; }
+        };
+
+    public:
+        TestRegistry() : m_unnamedCount( 0 ) {}
+        virtual ~TestRegistry();
+
+        virtual void registerTest( TestCase const& testCase ) {
+            std::string name = testCase.getTestCaseInfo().name;
+            if( name == "" ) {
+                std::ostringstream oss;
+                oss << "Anonymous test case " << ++m_unnamedCount;
+                return registerTest( testCase.withName( oss.str() ) );
+            }
+
+            if( m_functions.find( testCase ) == m_functions.end() ) {
+                m_functions.insert( testCase );
+                m_functionsInOrder.push_back( testCase );
+                if( !testCase.isHidden() )
+                    m_nonHiddenFunctions.push_back( testCase );
+            }
+            else {
+                TestCase const& prev = *m_functions.find( testCase );
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()   << "error: TEST_CASE( \"" << name << "\" ) already defined.\n"
+                                << "\tFirst seen at " << prev.getTestCaseInfo().lineInfo << "\n"
+                                << "\tRedefined at " << testCase.getTestCaseInfo().lineInfo << std::endl;
+                }
+                exit(1);
+            }
+        }
+
+        virtual std::vector<TestCase> const& getAllTests() const {
+            return m_functionsInOrder;
+        }
+
+        virtual std::vector<TestCase> const& getAllNonHiddenTests() const {
+            return m_nonHiddenFunctions;
+        }
+
+        virtual void getFilteredTests( TestSpec const& testSpec, IConfig const& config, std::vector<TestCase>& matchingTestCases, bool negated = false ) const {
+
+            for( std::vector<TestCase>::const_iterator  it = m_functionsInOrder.begin(),
+                                                        itEnd = m_functionsInOrder.end();
+                    it != itEnd;
+                    ++it ) {
+                bool includeTest = testSpec.matches( *it ) && ( config.allowThrows() || !it->throws() );
+                if( includeTest != negated )
+                    matchingTestCases.push_back( *it );
+            }
+            sortTests( config, matchingTestCases );
+        }
+
+    private:
+
+        static void sortTests( IConfig const& config, std::vector<TestCase>& matchingTestCases ) {
+
+            switch( config.runOrder() ) {
+                case RunTests::InLexicographicalOrder:
+                    std::sort( matchingTestCases.begin(), matchingTestCases.end(), LexSort() );
+                    break;
+                case RunTests::InRandomOrder:
+                {
+                    RandomNumberGenerator rng;
+                    std::random_shuffle( matchingTestCases.begin(), matchingTestCases.end(), rng );
+                }
+                    break;
+                case RunTests::InDeclarationOrder:
+                    // already in declaration order
+                    break;
+            }
+        }
+        std::set<TestCase> m_functions;
+        std::vector<TestCase> m_functionsInOrder;
+        std::vector<TestCase> m_nonHiddenFunctions;
+        size_t m_unnamedCount;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
+    public:
+
+        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
+
+        virtual void invoke() const {
+            m_fun();
+        }
+
+    private:
+        virtual ~FreeFunctionTestCase();
+
+        TestFunction m_fun;
+    };
+
+    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
+        std::string className = classOrQualifiedMethodName;
+        if( startsWith( className, "&" ) )
+        {
+            std::size_t lastColons = className.rfind( "::" );
+            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
+            if( penultimateColons == std::string::npos )
+                penultimateColons = 1;
+            className = className.substr( penultimateColons, lastColons-penultimateColons );
+        }
+        return className;
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    AutoReg::AutoReg(   TestFunction function,
+                        SourceLineInfo const& lineInfo,
+                        NameAndDesc const& nameAndDesc ) {
+        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
+    }
+
+    AutoReg::~AutoReg() {}
+
+    void AutoReg::registerTestCase( ITestCase* testCase,
+                                    char const* classOrQualifiedMethodName,
+                                    NameAndDesc const& nameAndDesc,
+                                    SourceLineInfo const& lineInfo ) {
+
+        getMutableRegistryHub().registerTest
+            ( makeTestCase( testCase,
+                            extractClassName( classOrQualifiedMethodName ),
+                            nameAndDesc.name,
+                            nameAndDesc.description,
+                            lineInfo ) );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_reporter_registry.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class ReporterRegistry : public IReporterRegistry {
+
+    public:
+
+        virtual ~ReporterRegistry() {
+            deleteAllValues( m_factories );
+        }
+
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig> const& config ) const {
+            FactoryMap::const_iterator it =  m_factories.find( name );
+            if( it == m_factories.end() )
+                return NULL;
+            return it->second->create( ReporterConfig( config ) );
+        }
+
+        void registerReporter( std::string const& name, IReporterFactory* factory ) {
+            m_factories.insert( std::make_pair( name, factory ) );
+        }
+
+        FactoryMap const& getFactories() const {
+            return m_factories;
+        }
+
+    private:
+        FactoryMap m_factories;
+    };
+}
+
+// #included from: catch_exception_translator_registry.hpp
+#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+#ifdef __OBJC__
+#import "Foundation/Foundation.h"
+#endif
+
+namespace Catch {
+
+    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
+    public:
+        ~ExceptionTranslatorRegistry() {
+            deleteAll( m_translators );
+        }
+
+        virtual void registerTranslator( const IExceptionTranslator* translator ) {
+            m_translators.push_back( translator );
+        }
+
+        virtual std::string translateActiveException() const {
+            try {
+#ifdef __OBJC__
+                // In Objective-C try objective-c exceptions first
+                @try {
+                    throw;
+                }
+                @catch (NSException *exception) {
+                    return Catch::toString( [exception description] );
+                }
+#else
+                throw;
+#endif
+            }
+            catch( TestFailureException& ) {
+                throw;
+            }
+            catch( std::exception& ex ) {
+                return ex.what();
+            }
+            catch( std::string& msg ) {
+                return msg;
+            }
+            catch( const char* msg ) {
+                return msg;
+            }
+            catch(...) {
+                return tryTranslators( m_translators.begin() );
+            }
+        }
+
+        std::string tryTranslators( std::vector<const IExceptionTranslator*>::const_iterator it ) const {
+            if( it == m_translators.end() )
+                return "Unknown exception";
+
+            try {
+                return (*it)->translate();
+            }
+            catch(...) {
+                return tryTranslators( it+1 );
+            }
+        }
+
+    private:
+        std::vector<const IExceptionTranslator*> m_translators;
+    };
+}
+
+namespace Catch {
+
+    namespace {
+
+        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
+
+            RegistryHub( RegistryHub const& );
+            void operator=( RegistryHub const& );
+
+        public: // IRegistryHub
+            RegistryHub() {
+            }
+            virtual IReporterRegistry const& getReporterRegistry() const {
+                return m_reporterRegistry;
+            }
+            virtual ITestCaseRegistry const& getTestCaseRegistry() const {
+                return m_testCaseRegistry;
+            }
+            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() {
+                return m_exceptionTranslatorRegistry;
+            }
+
+        public: // IMutableRegistryHub
+            virtual void registerReporter( std::string const& name, IReporterFactory* factory ) {
+                m_reporterRegistry.registerReporter( name, factory );
+            }
+            virtual void registerTest( TestCase const& testInfo ) {
+                m_testCaseRegistry.registerTest( testInfo );
+            }
+            virtual void registerTranslator( const IExceptionTranslator* translator ) {
+                m_exceptionTranslatorRegistry.registerTranslator( translator );
+            }
+
+        private:
+            TestRegistry m_testCaseRegistry;
+            ReporterRegistry m_reporterRegistry;
+            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
+        };
+
+        // Single, global, instance
+        inline RegistryHub*& getTheRegistryHub() {
+            static RegistryHub* theRegistryHub = NULL;
+            if( !theRegistryHub )
+                theRegistryHub = new RegistryHub();
+            return theRegistryHub;
+        }
+    }
+
+    IRegistryHub& getRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    IMutableRegistryHub& getMutableRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    void cleanUp() {
+        delete getTheRegistryHub();
+        getTheRegistryHub() = NULL;
+        cleanUpContext();
+    }
+    std::string translateActiveException() {
+        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_notimplemented_exception.hpp
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+#include <ostream>
+
+namespace Catch {
+
+    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
+    :   m_lineInfo( lineInfo ) {
+        std::ostringstream oss;
+        oss << lineInfo << ": function ";
+        oss << "not implemented";
+        m_what = oss.str();
+    }
+
+    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
+        return m_what.c_str();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_context_impl.hpp
+#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+// #included from: catch_stream.hpp
+#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+// #included from: catch_streambuf.h
+#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+#include <streambuf>
+
+namespace Catch {
+
+    class StreamBufBase : public std::streambuf {
+    public:
+        virtual ~StreamBufBase() CATCH_NOEXCEPT;
+    };
+}
+
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+
+namespace Catch {
+
+    template<typename WriterF, size_t bufferSize=256>
+    class StreamBufImpl : public StreamBufBase {
+        char data[bufferSize];
+        WriterF m_writer;
+
+    public:
+        StreamBufImpl() {
+            setp( data, data + sizeof(data) );
+        }
+
+        ~StreamBufImpl() CATCH_NOEXCEPT {
+            sync();
+        }
+
+    private:
+        int overflow( int c ) {
+            sync();
+
+            if( c != EOF ) {
+                if( pbase() == epptr() )
+                    m_writer( std::string( 1, static_cast<char>( c ) ) );
+                else
+                    sputc( static_cast<char>( c ) );
+            }
+            return 0;
+        }
+
+        int sync() {
+            if( pbase() != pptr() ) {
+                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
+                setp( pbase(), epptr() );
+            }
+            return 0;
+        }
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    struct OutputDebugWriter {
+
+        void operator()( std::string const&str ) {
+            writeToDebugConsole( str );
+        }
+    };
+
+    Stream::Stream()
+    : streamBuf( NULL ), isOwned( false )
+    {}
+
+    Stream::Stream( std::streambuf* _streamBuf, bool _isOwned )
+    : streamBuf( _streamBuf ), isOwned( _isOwned )
+    {}
+
+    void Stream::release() {
+        if( isOwned ) {
+            delete streamBuf;
+            streamBuf = NULL;
+            isOwned = false;
+        }
+    }
+
+#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement this functions
+    std::ostream& cout() {
+        return std::cout;
+    }
+    std::ostream& cerr() {
+        return std::cerr;
+    }
+#endif
+}
+
+namespace Catch {
+
+    class Context : public IMutableContext {
+
+        Context() : m_config( NULL ), m_runner( NULL ), m_resultCapture( NULL ) {}
+        Context( Context const& );
+        void operator=( Context const& );
+
+    public: // IContext
+        virtual IResultCapture* getResultCapture() {
+            return m_resultCapture;
+        }
+        virtual IRunner* getRunner() {
+            return m_runner;
+        }
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
+            return getGeneratorsForCurrentTest()
+            .getGeneratorInfo( fileInfo, totalSize )
+            .getCurrentIndex();
+        }
+        virtual bool advanceGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            return generators && generators->moveNext();
+        }
+
+        virtual Ptr<IConfig const> getConfig() const {
+            return m_config;
+        }
+
+    public: // IMutableContext
+        virtual void setResultCapture( IResultCapture* resultCapture ) {
+            m_resultCapture = resultCapture;
+        }
+        virtual void setRunner( IRunner* runner ) {
+            m_runner = runner;
+        }
+        virtual void setConfig( Ptr<IConfig const> const& config ) {
+            m_config = config;
+        }
+
+        friend IMutableContext& getCurrentMutableContext();
+
+    private:
+        IGeneratorsForTest* findGeneratorsForCurrentTest() {
+            std::string testName = getResultCapture()->getCurrentTestName();
+
+            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
+                m_generatorsByTestName.find( testName );
+            return it != m_generatorsByTestName.end()
+                ? it->second
+                : NULL;
+        }
+
+        IGeneratorsForTest& getGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            if( !generators ) {
+                std::string testName = getResultCapture()->getCurrentTestName();
+                generators = createGeneratorsForTest();
+                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
+            }
+            return *generators;
+        }
+
+    private:
+        Ptr<IConfig const> m_config;
+        IRunner* m_runner;
+        IResultCapture* m_resultCapture;
+        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
+    };
+
+    namespace {
+        Context* currentContext = NULL;
+    }
+    IMutableContext& getCurrentMutableContext() {
+        if( !currentContext )
+            currentContext = new Context();
+        return *currentContext;
+    }
+    IContext& getCurrentContext() {
+        return getCurrentMutableContext();
+    }
+
+    Stream createStream( std::string const& streamName ) {
+        if( streamName == "stdout" ) return Stream( Catch::cout().rdbuf(), false );
+        if( streamName == "stderr" ) return Stream( Catch::cerr().rdbuf(), false );
+        if( streamName == "debug" ) return Stream( new StreamBufImpl<OutputDebugWriter>, true );
+
+        throw std::domain_error( "Unknown stream: " + streamName );
+    }
+
+    void cleanUpContext() {
+        delete currentContext;
+        currentContext = NULL;
+    }
+}
+
+// #included from: catch_console_colour_impl.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+namespace Catch {
+    namespace {
+
+        struct IColourImpl {
+            virtual ~IColourImpl() {}
+            virtual void use( Colour::Code _colourCode ) = 0;
+        };
+
+        struct NoColourImpl : IColourImpl {
+            void use( Colour::Code ) {}
+
+            static IColourImpl* instance() {
+                static NoColourImpl s_instance;
+                return &s_instance;
+            }
+        };
+
+    } // anon namespace
+} // namespace Catch
+
+#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
+#   ifdef CATCH_PLATFORM_WINDOWS
+#       define CATCH_CONFIG_COLOUR_WINDOWS
+#   else
+#       define CATCH_CONFIG_COLOUR_ANSI
+#   endif
+#endif
+
+#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+namespace Catch {
+namespace {
+
+    class Win32ColourImpl : public IColourImpl {
+    public:
+        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
+        {
+            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
+            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
+            originalAttributes = csbiInfo.wAttributes;
+        }
+
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:      return setTextAttribute( originalAttributes );
+                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
+                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
+                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
+                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
+                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
+                case Colour::Grey:      return setTextAttribute( 0 );
+
+                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
+                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
+                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
+                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+
+    private:
+        void setTextAttribute( WORD _textAttribute ) {
+            SetConsoleTextAttribute( stdoutHandle, _textAttribute );
+        }
+        HANDLE stdoutHandle;
+        WORD originalAttributes;
+    };
+
+    IColourImpl* platformColourInstance() {
+        static Win32ColourImpl s_instance;
+        return &s_instance;
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
+
+#include <unistd.h>
+
+namespace Catch {
+namespace {
+
+    // use POSIX/ ANSI console terminal codes
+    // Thanks to Adam Strzelecki for original contribution
+    // (http://github.com/nanoant)
+    // https://github.com/philsquared/Catch/pull/131
+    class PosixColourImpl : public IColourImpl {
+    public:
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:
+                case Colour::White:     return setColour( "[0m" );
+                case Colour::Red:       return setColour( "[0;31m" );
+                case Colour::Green:     return setColour( "[0;32m" );
+                case Colour::Blue:      return setColour( "[0:34m" );
+                case Colour::Cyan:      return setColour( "[0;36m" );
+                case Colour::Yellow:    return setColour( "[0;33m" );
+                case Colour::Grey:      return setColour( "[1;30m" );
+
+                case Colour::LightGrey:     return setColour( "[0;37m" );
+                case Colour::BrightRed:     return setColour( "[1;31m" );
+                case Colour::BrightGreen:   return setColour( "[1;32m" );
+                case Colour::BrightWhite:   return setColour( "[1;37m" );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+        static IColourImpl* instance() {
+            static PosixColourImpl s_instance;
+            return &s_instance;
+        }
+
+    private:
+        void setColour( const char* _escapeCode ) {
+            Catch::cout() << '\033' << _escapeCode;
+        }
+    };
+
+    IColourImpl* platformColourInstance() {
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        return (config && config->forceColour()) || isatty(STDOUT_FILENO)
+            ? PosixColourImpl::instance()
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#else  // not Windows or ANSI ///////////////////////////////////////////////
+
+namespace Catch {
+
+    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
+
+} // end namespace Catch
+
+#endif // Windows/ ANSI/ None
+
+namespace Catch {
+
+    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
+    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
+    Colour::~Colour(){ if( !m_moved ) use( None ); }
+
+    void Colour::use( Code _colourCode ) {
+        static IColourImpl* impl = isDebuggerActive()
+            ? NoColourImpl::instance()
+            : platformColourInstance();
+        impl->use( _colourCode );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_generators_impl.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <string>
+#include <map>
+
+namespace Catch {
+
+    struct GeneratorInfo : IGeneratorInfo {
+
+        GeneratorInfo( std::size_t size )
+        :   m_size( size ),
+            m_currentIndex( 0 )
+        {}
+
+        bool moveNext() {
+            if( ++m_currentIndex == m_size ) {
+                m_currentIndex = 0;
+                return false;
+            }
+            return true;
+        }
+
+        std::size_t getCurrentIndex() const {
+            return m_currentIndex;
+        }
+
+        std::size_t m_size;
+        std::size_t m_currentIndex;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class GeneratorsForTest : public IGeneratorsForTest {
+
+    public:
+        ~GeneratorsForTest() {
+            deleteAll( m_generatorsInOrder );
+        }
+
+        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
+            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
+            if( it == m_generatorsByName.end() ) {
+                IGeneratorInfo* info = new GeneratorInfo( size );
+                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
+                m_generatorsInOrder.push_back( info );
+                return *info;
+            }
+            return *it->second;
+        }
+
+        bool moveNext() {
+            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
+            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
+            for(; it != itEnd; ++it ) {
+                if( (*it)->moveNext() )
+                    return true;
+            }
+            return false;
+        }
+
+    private:
+        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
+        std::vector<IGeneratorInfo*> m_generatorsInOrder;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest()
+    {
+        return new GeneratorsForTest();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.hpp
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+namespace Catch {
+
+    AssertionInfo::AssertionInfo(   std::string const& _macroName,
+                                    SourceLineInfo const& _lineInfo,
+                                    std::string const& _capturedExpression,
+                                    ResultDisposition::Flags _resultDisposition )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        capturedExpression( _capturedExpression ),
+        resultDisposition( _resultDisposition )
+    {}
+
+    AssertionResult::AssertionResult() {}
+
+    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
+    :   m_info( info ),
+        m_resultData( data )
+    {}
+
+    AssertionResult::~AssertionResult() {}
+
+    // Result was a success
+    bool AssertionResult::succeeded() const {
+        return Catch::isOk( m_resultData.resultType );
+    }
+
+    // Result was a success, or failure is suppressed
+    bool AssertionResult::isOk() const {
+        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
+    }
+
+    ResultWas::OfType AssertionResult::getResultType() const {
+        return m_resultData.resultType;
+    }
+
+    bool AssertionResult::hasExpression() const {
+        return !m_info.capturedExpression.empty();
+    }
+
+    bool AssertionResult::hasMessage() const {
+        return !m_resultData.message.empty();
+    }
+
+    std::string AssertionResult::getExpression() const {
+        if( isFalseTest( m_info.resultDisposition ) )
+            return "!" + m_info.capturedExpression;
+        else
+            return m_info.capturedExpression;
+    }
+    std::string AssertionResult::getExpressionInMacro() const {
+        if( m_info.macroName.empty() )
+            return m_info.capturedExpression;
+        else
+            return m_info.macroName + "( " + m_info.capturedExpression + " )";
+    }
+
+    bool AssertionResult::hasExpandedExpression() const {
+        return hasExpression() && getExpandedExpression() != getExpression();
+    }
+
+    std::string AssertionResult::getExpandedExpression() const {
+        return m_resultData.reconstructedExpression;
+    }
+
+    std::string AssertionResult::getMessage() const {
+        return m_resultData.message;
+    }
+    SourceLineInfo AssertionResult::getSourceInfo() const {
+        return m_info.lineInfo;
+    }
+
+    std::string AssertionResult::getTestMacroName() const {
+        return m_info.macroName;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_test_case_info.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+namespace Catch {
+
+    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
+        if( startsWith( tag, "." ) ||
+            tag == "hide" ||
+            tag == "!hide" )
+            return TestCaseInfo::IsHidden;
+        else if( tag == "!throws" )
+            return TestCaseInfo::Throws;
+        else if( tag == "!shouldfail" )
+            return TestCaseInfo::ShouldFail;
+        else if( tag == "!mayfail" )
+            return TestCaseInfo::MayFail;
+        else
+            return TestCaseInfo::None;
+    }
+    inline bool isReservedTag( std::string const& tag ) {
+        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] );
+    }
+    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
+        if( isReservedTag( tag ) ) {
+            {
+                Colour colourGuard( Colour::Red );
+                Catch::cerr()
+                    << "Tag name [" << tag << "] not allowed.\n"
+                    << "Tag names starting with non alpha-numeric characters are reserved\n";
+            }
+            {
+                Colour colourGuard( Colour::FileName );
+                Catch::cerr() << _lineInfo << std::endl;
+            }
+            exit(1);
+        }
+    }
+
+    TestCase makeTestCase(  ITestCase* _testCase,
+                            std::string const& _className,
+                            std::string const& _name,
+                            std::string const& _descOrTags,
+                            SourceLineInfo const& _lineInfo )
+    {
+        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
+
+        // Parse out tags
+        std::set<std::string> tags;
+        std::string desc, tag;
+        bool inTag = false;
+        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
+            char c = _descOrTags[i];
+            if( !inTag ) {
+                if( c == '[' )
+                    inTag = true;
+                else
+                    desc += c;
+            }
+            else {
+                if( c == ']' ) {
+                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
+                    if( prop == TestCaseInfo::IsHidden )
+                        isHidden = true;
+                    else if( prop == TestCaseInfo::None )
+                        enforceNotReservedTag( tag, _lineInfo );
+
+                    tags.insert( tag );
+                    tag.clear();
+                    inTag = false;
+                }
+                else
+                    tag += c;
+            }
+        }
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
+
+        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
+        return TestCase( _testCase, info );
+    }
+
+    TestCaseInfo::TestCaseInfo( std::string const& _name,
+                                std::string const& _className,
+                                std::string const& _description,
+                                std::set<std::string> const& _tags,
+                                SourceLineInfo const& _lineInfo )
+    :   name( _name ),
+        className( _className ),
+        description( _description ),
+        tags( _tags ),
+        lineInfo( _lineInfo ),
+        properties( None )
+    {
+        std::ostringstream oss;
+        for( std::set<std::string>::const_iterator it = _tags.begin(), itEnd = _tags.end(); it != itEnd; ++it ) {
+            oss << "[" << *it << "]";
+            std::string lcaseTag = toLower( *it );
+            properties = static_cast<SpecialProperties>( properties | parseSpecialTag( lcaseTag ) );
+            lcaseTags.insert( lcaseTag );
+        }
+        tagsAsString = oss.str();
+    }
+
+    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
+    :   name( other.name ),
+        className( other.className ),
+        description( other.description ),
+        tags( other.tags ),
+        lcaseTags( other.lcaseTags ),
+        tagsAsString( other.tagsAsString ),
+        lineInfo( other.lineInfo ),
+        properties( other.properties )
+    {}
+
+    bool TestCaseInfo::isHidden() const {
+        return ( properties & IsHidden ) != 0;
+    }
+    bool TestCaseInfo::throws() const {
+        return ( properties & Throws ) != 0;
+    }
+    bool TestCaseInfo::okToFail() const {
+        return ( properties & (ShouldFail | MayFail ) ) != 0;
+    }
+    bool TestCaseInfo::expectedToFail() const {
+        return ( properties & (ShouldFail ) ) != 0;
+    }
+
+    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
+
+    TestCase::TestCase( TestCase const& other )
+    :   TestCaseInfo( other ),
+        test( other.test )
+    {}
+
+    TestCase TestCase::withName( std::string const& _newName ) const {
+        TestCase other( *this );
+        other.name = _newName;
+        return other;
+    }
+
+    void TestCase::swap( TestCase& other ) {
+        test.swap( other.test );
+        name.swap( other.name );
+        className.swap( other.className );
+        description.swap( other.description );
+        tags.swap( other.tags );
+        lcaseTags.swap( other.lcaseTags );
+        tagsAsString.swap( other.tagsAsString );
+        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
+        std::swap( lineInfo, other.lineInfo );
+    }
+
+    void TestCase::invoke() const {
+        test->invoke();
+    }
+
+    bool TestCase::operator == ( TestCase const& other ) const {
+        return  test.get() == other.test.get() &&
+                name == other.name &&
+                className == other.className;
+    }
+
+    bool TestCase::operator < ( TestCase const& other ) const {
+        return name < other.name;
+    }
+    TestCase& TestCase::operator = ( TestCase const& other ) {
+        TestCase temp( other );
+        swap( temp );
+        return *this;
+    }
+
+    TestCaseInfo const& TestCase::getTestCaseInfo() const
+    {
+        return *this;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_version.hpp
+#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+namespace Catch {
+
+    // These numbers are maintained by a script
+    Version libraryVersion( 1, 1, 1, "master" );
+}
+
+// #included from: catch_message.hpp
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+namespace Catch {
+
+    MessageInfo::MessageInfo(   std::string const& _macroName,
+                                SourceLineInfo const& _lineInfo,
+                                ResultWas::OfType _type )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        type( _type ),
+        sequence( ++globalCount )
+    {}
+
+    // This may need protecting if threading support is added
+    unsigned int MessageInfo::globalCount = 0;
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+    : m_info( builder.m_info )
+    {
+        m_info.message = builder.m_stream.str();
+        getResultCapture().pushScopedMessage( m_info );
+    }
+    ScopedMessage::ScopedMessage( ScopedMessage const& other )
+    : m_info( other.m_info )
+    {}
+
+    ScopedMessage::~ScopedMessage() {
+        getResultCapture().popScopedMessage( m_info );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_legacy_reporter_adapter.hpp
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+// #included from: catch_legacy_reporter_adapter.h
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+namespace Catch
+{
+    // Deprecated
+    struct IReporter : IShared {
+        virtual ~IReporter();
+
+        virtual bool shouldRedirectStdout() const = 0;
+
+        virtual void StartTesting() = 0;
+        virtual void EndTesting( Totals const& totals ) = 0;
+        virtual void StartGroup( std::string const& groupName ) = 0;
+        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
+        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
+        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
+        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
+        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
+        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
+        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
+        virtual void Aborted() = 0;
+        virtual void Result( AssertionResult const& result ) = 0;
+    };
+
+    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
+    {
+    public:
+        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
+        virtual ~LegacyReporterAdapter();
+
+        virtual ReporterPreferences getPreferences() const;
+        virtual void noMatchingTestCases( std::string const& );
+        virtual void testRunStarting( TestRunInfo const& );
+        virtual void testGroupStarting( GroupInfo const& groupInfo );
+        virtual void testCaseStarting( TestCaseInfo const& testInfo );
+        virtual void sectionStarting( SectionInfo const& sectionInfo );
+        virtual void assertionStarting( AssertionInfo const& );
+        virtual bool assertionEnded( AssertionStats const& assertionStats );
+        virtual void sectionEnded( SectionStats const& sectionStats );
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
+        virtual void testRunEnded( TestRunStats const& testRunStats );
+        virtual void skipTest( TestCaseInfo const& );
+
+    private:
+        Ptr<IReporter> m_legacyReporter;
+    };
+}
+
+namespace Catch
+{
+    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
+    :   m_legacyReporter( legacyReporter )
+    {}
+    LegacyReporterAdapter::~LegacyReporterAdapter() {}
+
+    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
+        ReporterPreferences prefs;
+        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
+        return prefs;
+    }
+
+    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
+    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
+        m_legacyReporter->StartTesting();
+    }
+    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
+        m_legacyReporter->StartGroup( groupInfo.name );
+    }
+    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
+        m_legacyReporter->StartTestCase( testInfo );
+    }
+    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
+        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
+    }
+    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
+        // Not on legacy interface
+    }
+
+    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
+        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                    it != itEnd;
+                    ++it ) {
+                if( it->type == ResultWas::Info ) {
+                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
+                    rb << it->message;
+                    rb.setResultType( ResultWas::Info );
+                    AssertionResult result = rb.build();
+                    m_legacyReporter->Result( result );
+                }
+            }
+        }
+        m_legacyReporter->Result( assertionStats.assertionResult );
+        return true;
+    }
+    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
+        if( sectionStats.missingAssertions )
+            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
+        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
+    }
+    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
+        m_legacyReporter->EndTestCase
+            (   testCaseStats.testInfo,
+                testCaseStats.totals,
+                testCaseStats.stdOut,
+                testCaseStats.stdErr );
+    }
+    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
+        if( testGroupStats.aborting )
+            m_legacyReporter->Aborted();
+        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
+    }
+    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
+        m_legacyReporter->EndTesting( testRunStats.totals );
+    }
+    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
+    }
+}
+
+// #included from: catch_timer.hpp
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++11-long-long"
+#endif
+
+#ifdef CATCH_PLATFORM_WINDOWS
+#include <windows.h>
+#else
+#include <sys/time.h>
+#endif
+
+namespace Catch {
+
+    namespace {
+#ifdef CATCH_PLATFORM_WINDOWS
+        uint64_t getCurrentTicks() {
+            static uint64_t hz=0, hzo=0;
+            if (!hz) {
+                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
+                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
+            }
+            uint64_t t;
+            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
+            return ((t-hzo)*1000000)/hz;
+        }
+#else
+        uint64_t getCurrentTicks() {
+            timeval t;
+            gettimeofday(&t,NULL);
+            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
+        }
+#endif
+    }
+
+    void Timer::start() {
+        m_ticks = getCurrentTicks();
+    }
+    unsigned int Timer::getElapsedMicroseconds() const {
+        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
+    }
+    unsigned int Timer::getElapsedMilliseconds() const {
+        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
+    }
+    double Timer::getElapsedSeconds() const {
+        return getElapsedMicroseconds()/1000000.0;
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+// #included from: catch_common.hpp
+#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+namespace Catch {
+
+    bool startsWith( std::string const& s, std::string const& prefix ) {
+        return s.size() >= prefix.size() && s.substr( 0, prefix.size() ) == prefix;
+    }
+    bool endsWith( std::string const& s, std::string const& suffix ) {
+        return s.size() >= suffix.size() && s.substr( s.size()-suffix.size(), suffix.size() ) == suffix;
+    }
+    bool contains( std::string const& s, std::string const& infix ) {
+        return s.find( infix ) != std::string::npos;
+    }
+    void toLowerInPlace( std::string& s ) {
+        std::transform( s.begin(), s.end(), s.begin(), ::tolower );
+    }
+    std::string toLower( std::string const& s ) {
+        std::string lc = s;
+        toLowerInPlace( lc );
+        return lc;
+    }
+    std::string trim( std::string const& str ) {
+        static char const* whitespaceChars = "\n\r\t ";
+        std::string::size_type start = str.find_first_not_of( whitespaceChars );
+        std::string::size_type end = str.find_last_not_of( whitespaceChars );
+
+        return start != std::string::npos ? str.substr( start, 1+end-start ) : "";
+    }
+
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
+        bool replaced = false;
+        std::size_t i = str.find( replaceThis );
+        while( i != std::string::npos ) {
+            replaced = true;
+            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
+            if( i < str.size()-withThis.size() )
+                i = str.find( replaceThis, i+withThis.size() );
+            else
+                i = std::string::npos;
+        }
+        return replaced;
+    }
+
+    pluralise::pluralise( std::size_t count, std::string const& label )
+    :   m_count( count ),
+        m_label( label )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
+        os << pluraliser.m_count << " " << pluraliser.m_label;
+        if( pluraliser.m_count != 1 )
+            os << "s";
+        return os;
+    }
+
+    SourceLineInfo::SourceLineInfo() : line( 0 ){}
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
+    :   file( _file ),
+        line( _line )
+    {}
+    SourceLineInfo::SourceLineInfo( SourceLineInfo const& other )
+    :   file( other.file ),
+        line( other.line )
+    {}
+    bool SourceLineInfo::empty() const {
+        return file.empty();
+    }
+    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
+        return line == other.line && file == other.file;
+    }
+    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
+        return line < other.line || ( line == other.line  && file < other.file );
+    }
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
+#ifndef __GNUG__
+        os << info.file << "(" << info.line << ")";
+#else
+        os << info.file << ":" << info.line;
+#endif
+        return os;
+    }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
+        std::ostringstream oss;
+        oss << locationInfo << ": Internal Catch error: '" << message << "'";
+        if( alwaysTrue() )
+            throw std::logic_error( oss.str() );
+    }
+}
+
+// #included from: catch_section.hpp
+#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+namespace Catch {
+
+    SectionInfo::SectionInfo
+        (   SourceLineInfo const& _lineInfo,
+            std::string const& _name,
+            std::string const& _description )
+    :   name( _name ),
+        description( _description ),
+        lineInfo( _lineInfo )
+    {}
+
+    Section::Section( SectionInfo const& info )
+    :   m_info( info ),
+        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
+    {
+        m_timer.start();
+    }
+
+    Section::~Section() {
+        if( m_sectionIncluded )
+            getResultCapture().sectionEnded( m_info, m_assertions, m_timer.getElapsedSeconds() );
+    }
+
+    // This indicates whether the section should be executed or not
+    Section::operator bool() const {
+        return m_sectionIncluded;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_debugger.hpp
+#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+#include <iostream>
+
+#ifdef CATCH_PLATFORM_MAC
+
+    #include <assert.h>
+    #include <stdbool.h>
+    #include <sys/types.h>
+    #include <unistd.h>
+    #include <sys/sysctl.h>
+
+    namespace Catch{
+
+        // The following function is taken directly from the following technical note:
+        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
+
+        // Returns true if the current process is being debugged (either
+        // running under the debugger or has a debugger attached post facto).
+        bool isDebuggerActive(){
+
+            int                 mib[4];
+            struct kinfo_proc   info;
+            size_t              size;
+
+            // Initialize the flags so that, if sysctl fails for some bizarre
+            // reason, we get a predictable result.
+
+            info.kp_proc.p_flag = 0;
+
+            // Initialize mib, which tells sysctl the info we want, in this case
+            // we're looking for information about a specific process ID.
+
+            mib[0] = CTL_KERN;
+            mib[1] = KERN_PROC;
+            mib[2] = KERN_PROC_PID;
+            mib[3] = getpid();
+
+            // Call sysctl.
+
+            size = sizeof(info);
+            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, NULL, 0) != 0 ) {
+                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
+                return false;
+            }
+
+            // We're being debugged if the P_TRACED flag is set.
+
+            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
+        }
+    } // namespace Catch
+
+#elif defined(_MSC_VER)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#else
+    namespace Catch {
+       inline bool isDebuggerActive() { return false; }
+    }
+#endif // Platform
+
+#ifdef CATCH_PLATFORM_WINDOWS
+    extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* );
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            ::OutputDebugStringA( text.c_str() );
+        }
+    }
+#else
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            // !TBD: Need a version for Mac/ XCode and other IDEs
+            Catch::cout() << text;
+        }
+    }
+#endif // Platform
+
+// #included from: catch_tostring.hpp
+#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+namespace Catch {
+
+namespace Detail {
+
+    std::string unprintableString = "{?}";
+
+    namespace {
+        struct Endianness {
+            enum Arch { Big, Little };
+
+            static Arch which() {
+                union _{
+                    int asInt;
+                    char asChar[sizeof (int)];
+                } u;
+
+                u.asInt = 1;
+                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
+            }
+        };
+    }
+
+    std::string rawMemoryToString( const void *object, std::size_t size )
+    {
+        // Reverse order for little endian architectures
+        int i = 0, end = static_cast<int>( size ), inc = 1;
+        if( Endianness::which() == Endianness::Little ) {
+            i = end-1;
+            end = inc = -1;
+        }
+
+        unsigned char const *bytes = static_cast<unsigned char const *>(object);
+        std::ostringstream os;
+        os << "0x" << std::setfill('0') << std::hex;
+        for( ; i != end; i += inc )
+             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
+       return os.str();
+    }
+}
+
+std::string toString( std::string const& value ) {
+    std::string s = value;
+    if( getCurrentContext().getConfig()->showInvisibles() ) {
+        for(size_t i = 0; i < s.size(); ++i ) {
+            std::string subs;
+            switch( s[i] ) {
+            case '\n': subs = "\\n"; break;
+            case '\t': subs = "\\t"; break;
+            default: break;
+            }
+            if( !subs.empty() ) {
+                s = s.substr( 0, i ) + subs + s.substr( i+1 );
+                ++i;
+            }
+        }
+    }
+    return "\"" + s + "\"";
+}
+std::string toString( std::wstring const& value ) {
+
+    std::string s;
+    s.reserve( value.size() );
+    for(size_t i = 0; i < value.size(); ++i )
+        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
+    return Catch::toString( s );
+}
+
+std::string toString( const char* const value ) {
+    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
+}
+
+std::string toString( char* const value ) {
+    return Catch::toString( static_cast<const char*>( value ) );
+}
+
+std::string toString( const wchar_t* const value )
+{
+	return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
+}
+
+std::string toString( wchar_t* const value )
+{
+	return Catch::toString( static_cast<const wchar_t*>( value ) );
+}
+
+std::string toString( int value ) {
+    std::ostringstream oss;
+    if( value > 8192 )
+        oss << "0x" << std::hex << value;
+    else
+        oss << value;
+    return oss.str();
+}
+
+std::string toString( unsigned long value ) {
+    std::ostringstream oss;
+    if( value > 8192 )
+        oss << "0x" << std::hex << value;
+    else
+        oss << value;
+    return oss.str();
+}
+
+std::string toString( unsigned int value ) {
+    return Catch::toString( static_cast<unsigned long>( value ) );
+}
+
+template<typename T>
+std::string fpToString( T value, int precision ) {
+    std::ostringstream oss;
+    oss << std::setprecision( precision )
+        << std::fixed
+        << value;
+    std::string d = oss.str();
+    std::size_t i = d.find_last_not_of( '0' );
+    if( i != std::string::npos && i != d.size()-1 ) {
+        if( d[i] == '.' )
+            i++;
+        d = d.substr( 0, i+1 );
+    }
+    return d;
+}
+
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + "f";
+}
+
+std::string toString( bool value ) {
+    return value ? "true" : "false";
+}
+
+std::string toString( char value ) {
+    return value < ' '
+        ? toString( static_cast<unsigned int>( value ) )
+        : Detail::makeString( value );
+}
+
+std::string toString( signed char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+std::string toString( unsigned char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t ) {
+    return "nullptr";
+}
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSObject* const& nsObject ) {
+        return toString( [nsObject description] );
+    }
+#endif
+
+} // end namespace Catch
+
+// #included from: catch_result_builder.hpp
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+namespace Catch {
+
+    ResultBuilder::ResultBuilder(   char const* macroName,
+                                    SourceLineInfo const& lineInfo,
+                                    char const* capturedExpression,
+                                    ResultDisposition::Flags resultDisposition )
+    :   m_assertionInfo( macroName, lineInfo, capturedExpression, resultDisposition ),
+        m_shouldDebugBreak( false ),
+        m_shouldThrow( false )
+    {}
+
+    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
+        m_data.resultType = result;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setResultType( bool result ) {
+        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setLhs( std::string const& lhs ) {
+        m_exprComponents.lhs = lhs;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setRhs( std::string const& rhs ) {
+        m_exprComponents.rhs = rhs;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setOp( std::string const& op ) {
+        m_exprComponents.op = op;
+        return *this;
+    }
+
+    void ResultBuilder::endExpression() {
+        m_exprComponents.testFalse = isFalseTest( m_assertionInfo.resultDisposition );
+        captureExpression();
+    }
+
+    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
+        m_assertionInfo.resultDisposition = resultDisposition;
+        m_stream.oss << Catch::translateActiveException();
+        captureResult( ResultWas::ThrewException );
+    }
+
+    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
+        setResultType( resultType );
+        captureExpression();
+    }
+
+    void ResultBuilder::captureExpression() {
+        AssertionResult result = build();
+        getResultCapture().assertionEnded( result );
+
+        if( !result.isOk() ) {
+            if( getCurrentContext().getConfig()->shouldDebugBreak() )
+                m_shouldDebugBreak = true;
+            if( getCurrentContext().getRunner()->aborting() || m_assertionInfo.resultDisposition == ResultDisposition::Normal )
+                m_shouldThrow = true;
+        }
+    }
+    void ResultBuilder::react() {
+        if( m_shouldThrow )
+            throw Catch::TestFailureException();
+    }
+
+    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
+    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
+
+    AssertionResult ResultBuilder::build() const
+    {
+        assert( m_data.resultType != ResultWas::Unknown );
+
+        AssertionResultData data = m_data;
+
+        // Flip bool results if testFalse is set
+        if( m_exprComponents.testFalse ) {
+            if( data.resultType == ResultWas::Ok )
+                data.resultType = ResultWas::ExpressionFailed;
+            else if( data.resultType == ResultWas::ExpressionFailed )
+                data.resultType = ResultWas::Ok;
+        }
+
+        data.message = m_stream.oss.str();
+        data.reconstructedExpression = reconstructExpression();
+        if( m_exprComponents.testFalse ) {
+            if( m_exprComponents.op == "" )
+                data.reconstructedExpression = "!" + data.reconstructedExpression;
+            else
+                data.reconstructedExpression = "!(" + data.reconstructedExpression + ")";
+        }
+        return AssertionResult( m_assertionInfo, data );
+    }
+    std::string ResultBuilder::reconstructExpression() const {
+        if( m_exprComponents.op == "" )
+            return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.op + m_exprComponents.lhs;
+        else if( m_exprComponents.op == "matches" )
+            return m_exprComponents.lhs + " " + m_exprComponents.rhs;
+        else if( m_exprComponents.op != "!" ) {
+            if( m_exprComponents.lhs.size() + m_exprComponents.rhs.size() < 40 &&
+                m_exprComponents.lhs.find("\n") == std::string::npos &&
+                m_exprComponents.rhs.find("\n") == std::string::npos )
+                return m_exprComponents.lhs + " " + m_exprComponents.op + " " + m_exprComponents.rhs;
+            else
+                return m_exprComponents.lhs + "\n" + m_exprComponents.op + "\n" + m_exprComponents.rhs;
+        }
+        else
+            return "{can't expand - use " + m_assertionInfo.macroName + "_FALSE( " + m_assertionInfo.capturedExpression.substr(1) + " ) instead of " + m_assertionInfo.macroName + "( " + m_assertionInfo.capturedExpression + " ) for better diagnostics}";
+    }
+
+} // end namespace Catch
+
+// #included from: catch_tag_alias_registry.hpp
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class TagAliasRegistry : public ITagAliasRegistry {
+    public:
+        virtual ~TagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
+        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+        static TagAliasRegistry& get();
+
+    private:
+        std::map<std::string, TagAlias> m_registry;
+    };
+
+} // end namespace Catch
+
+#include <map>
+#include <iostream>
+
+namespace Catch {
+
+    TagAliasRegistry::~TagAliasRegistry() {}
+
+    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
+        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
+        if( it != m_registry.end() )
+            return it->second;
+        else
+            return Option<TagAlias>();
+    }
+
+    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
+        std::string expandedTestSpec = unexpandedTestSpec;
+        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
+                it != itEnd;
+                ++it ) {
+            std::size_t pos = expandedTestSpec.find( it->first );
+            if( pos != std::string::npos ) {
+                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
+                                    it->second.tag +
+                                    expandedTestSpec.substr( pos + it->first.size() );
+            }
+        }
+        return expandedTestSpec;
+    }
+
+    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+
+        if( !startsWith( alias, "[@" ) || !endsWith( alias, "]" ) ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
+                << "\tFirst seen at " << find(alias)->lineInfo << "\n"
+                << "\tRedefined at " << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+    }
+
+    TagAliasRegistry& TagAliasRegistry::get() {
+        static TagAliasRegistry instance;
+        return instance;
+
+    }
+
+    ITagAliasRegistry::~ITagAliasRegistry() {}
+    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
+
+    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+        try {
+            TagAliasRegistry::get().add( alias, tag, lineInfo );
+        }
+        catch( std::exception& ex ) {
+            Colour colourGuard( Colour::Red );
+            Catch::cerr() << ex.what() << std::endl;
+            exit(1);
+        }
+    }
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_xml.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+// #included from: catch_reporter_bases.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
+
+        StreamingReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {}
+
+        virtual ~StreamingReporterBase();
+
+        virtual void noMatchingTestCases( std::string const& ) {}
+
+        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) {
+            currentTestRunInfo = _testRunInfo;
+        }
+        virtual void testGroupStarting( GroupInfo const& _groupInfo ) {
+            currentGroupInfo = _groupInfo;
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) {
+            currentTestCaseInfo = _testInfo;
+        }
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) {
+            m_sectionStack.push_back( _sectionInfo );
+        }
+
+        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) {
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) {
+            currentTestCaseInfo.reset();
+        }
+        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) {
+            currentGroupInfo.reset();
+        }
+        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) {
+            currentTestCaseInfo.reset();
+            currentGroupInfo.reset();
+            currentTestRunInfo.reset();
+        }
+
+        virtual void skipTest( TestCaseInfo const& ) {
+            // Don't do anything with this by default.
+            // It can optionally be overridden in the derived class.
+        }
+
+        Ptr<IConfig> m_config;
+        std::ostream& stream;
+
+        LazyStat<TestRunInfo> currentTestRunInfo;
+        LazyStat<GroupInfo> currentGroupInfo;
+        LazyStat<TestCaseInfo> currentTestCaseInfo;
+
+        std::vector<SectionInfo> m_sectionStack;
+    };
+
+    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
+        template<typename T, typename ChildNodeT>
+        struct Node : SharedImpl<> {
+            explicit Node( T const& _value ) : value( _value ) {}
+            virtual ~Node() {}
+
+            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
+            T value;
+            ChildNodes children;
+        };
+        struct SectionNode : SharedImpl<> {
+            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
+            virtual ~SectionNode();
+
+            bool operator == ( SectionNode const& other ) const {
+                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
+            }
+            bool operator == ( Ptr<SectionNode> const& other ) const {
+                return operator==( *other );
+            }
+
+            SectionStats stats;
+            typedef std::vector<Ptr<SectionNode> > ChildSections;
+            typedef std::vector<AssertionStats> Assertions;
+            ChildSections childSections;
+            Assertions assertions;
+            std::string stdOut;
+            std::string stdErr;
+        };
+
+        struct BySectionInfo {
+            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
+			BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
+            bool operator() ( Ptr<SectionNode> const& node ) const {
+                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
+            }
+        private:
+			void operator=( BySectionInfo const& );
+            SectionInfo const& m_other;
+        };
+
+        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
+        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
+        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
+
+        CumulativeReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {}
+        ~CumulativeReporterBase();
+
+        virtual void testRunStarting( TestRunInfo const& ) {}
+        virtual void testGroupStarting( GroupInfo const& ) {}
+
+        virtual void testCaseStarting( TestCaseInfo const& ) {}
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) {
+            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
+            Ptr<SectionNode> node;
+            if( m_sectionStack.empty() ) {
+                if( !m_rootSection )
+                    m_rootSection = new SectionNode( incompleteStats );
+                node = m_rootSection;
+            }
+            else {
+                SectionNode& parentNode = *m_sectionStack.back();
+                SectionNode::ChildSections::const_iterator it =
+                    std::find_if(   parentNode.childSections.begin(),
+                                    parentNode.childSections.end(),
+                                    BySectionInfo( sectionInfo ) );
+                if( it == parentNode.childSections.end() ) {
+                    node = new SectionNode( incompleteStats );
+                    parentNode.childSections.push_back( node );
+                }
+                else
+                    node = *it;
+            }
+            m_sectionStack.push_back( node );
+            m_deepestSection = node;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {}
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) {
+            assert( !m_sectionStack.empty() );
+            SectionNode& sectionNode = *m_sectionStack.back();
+            sectionNode.assertions.push_back( assertionStats );
+            return true;
+        }
+        virtual void sectionEnded( SectionStats const& sectionStats ) {
+            assert( !m_sectionStack.empty() );
+            SectionNode& node = *m_sectionStack.back();
+            node.stats = sectionStats;
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) {
+            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
+            assert( m_sectionStack.size() == 0 );
+            node->children.push_back( m_rootSection );
+            m_testCases.push_back( node );
+            m_rootSection.reset();
+
+            assert( m_deepestSection );
+            m_deepestSection->stdOut = testCaseStats.stdOut;
+            m_deepestSection->stdErr = testCaseStats.stdErr;
+        }
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) {
+            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
+            node->children.swap( m_testCases );
+            m_testGroups.push_back( node );
+        }
+        virtual void testRunEnded( TestRunStats const& testRunStats ) {
+            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
+            node->children.swap( m_testGroups );
+            m_testRuns.push_back( node );
+            testRunEndedCumulative();
+        }
+        virtual void testRunEndedCumulative() = 0;
+
+        virtual void skipTest( TestCaseInfo const& ) {}
+
+        Ptr<IConfig> m_config;
+        std::ostream& stream;
+        std::vector<AssertionStats> m_assertions;
+        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
+        std::vector<Ptr<TestCaseNode> > m_testCases;
+        std::vector<Ptr<TestGroupNode> > m_testGroups;
+
+        std::vector<Ptr<TestRunNode> > m_testRuns;
+
+        Ptr<SectionNode> m_rootSection;
+        Ptr<SectionNode> m_deepestSection;
+        std::vector<Ptr<SectionNode> > m_sectionStack;
+
+    };
+
+    template<char C>
+    char const* getLineOfChars() {
+        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
+        if( !*line ) {
+            memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
+            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
+        }
+        return line;
+    }
+
+} // end namespace Catch
+
+// #included from: ../internal/catch_reporter_registrars.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+namespace Catch {
+
+    template<typename T>
+    class LegacyReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new LegacyReporterAdapter( new T( config ) );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        LegacyReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+
+            // *** Please Note ***:
+            // - If you end up here looking at a compiler error because it's trying to register
+            // your custom reporter class be aware that the native reporter interface has changed
+            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
+            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
+            // However please consider updating to the new interface as the old one is now
+            // deprecated and will probably be removed quite soon!
+            // Please contact me via github if you have any questions at all about this.
+            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
+            // no idea who is actually using custom reporters at all (possibly no-one!).
+            // The new interface is designed to minimise exposure to interface changes in the future.
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        ReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+}
+
+#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
+    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
+    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+// #included from: ../internal/catch_xmlwriter.hpp
+#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+#include <sstream>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class XmlWriter {
+    public:
+
+        class ScopedElement {
+        public:
+            ScopedElement( XmlWriter* writer )
+            :   m_writer( writer )
+            {}
+
+            ScopedElement( ScopedElement const& other )
+            :   m_writer( other.m_writer ){
+                other.m_writer = NULL;
+            }
+
+            ~ScopedElement() {
+                if( m_writer )
+                    m_writer->endElement();
+            }
+
+            ScopedElement& writeText( std::string const& text, bool indent = true ) {
+                m_writer->writeText( text, indent );
+                return *this;
+            }
+
+            template<typename T>
+            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
+                m_writer->writeAttribute( name, attribute );
+                return *this;
+            }
+
+        private:
+            mutable XmlWriter* m_writer;
+        };
+
+        XmlWriter()
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &Catch::cout() )
+        {}
+
+        XmlWriter( std::ostream& os )
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &os )
+        {}
+
+        ~XmlWriter() {
+            while( !m_tags.empty() )
+                endElement();
+        }
+
+//#  ifndef CATCH_CPP11_OR_GREATER
+//        XmlWriter& operator = ( XmlWriter const& other ) {
+//            XmlWriter temp( other );
+//            swap( temp );
+//            return *this;
+//        }
+//#  else
+//        XmlWriter( XmlWriter const& )              = default;
+//        XmlWriter( XmlWriter && )                  = default;
+//        XmlWriter& operator = ( XmlWriter const& ) = default;
+//        XmlWriter& operator = ( XmlWriter && )     = default;
+//#  endif
+//
+//        void swap( XmlWriter& other ) {
+//            std::swap( m_tagIsOpen, other.m_tagIsOpen );
+//            std::swap( m_needsNewline, other.m_needsNewline );
+//            std::swap( m_tags, other.m_tags );
+//            std::swap( m_indent, other.m_indent );
+//            std::swap( m_os, other.m_os );
+//        }
+
+        XmlWriter& startElement( std::string const& name ) {
+            ensureTagClosed();
+            newlineIfNecessary();
+            stream() << m_indent << "<" << name;
+            m_tags.push_back( name );
+            m_indent += "  ";
+            m_tagIsOpen = true;
+            return *this;
+        }
+
+        ScopedElement scopedElement( std::string const& name ) {
+            ScopedElement scoped( this );
+            startElement( name );
+            return scoped;
+        }
+
+        XmlWriter& endElement() {
+            newlineIfNecessary();
+            m_indent = m_indent.substr( 0, m_indent.size()-2 );
+            if( m_tagIsOpen ) {
+                stream() << "/>\n";
+                m_tagIsOpen = false;
+            }
+            else {
+                stream() << m_indent << "</" << m_tags.back() << ">\n";
+            }
+            m_tags.pop_back();
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
+            if( !name.empty() && !attribute.empty() ) {
+                stream() << " " << name << "=\"";
+                writeEncodedText( attribute );
+                stream() << "\"";
+            }
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
+            stream() << " " << name << "=\"" << ( attribute ? "true" : "false" ) << "\"";
+            return *this;
+        }
+
+        template<typename T>
+        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
+            if( !name.empty() )
+                stream() << " " << name << "=\"" << attribute << "\"";
+            return *this;
+        }
+
+        XmlWriter& writeText( std::string const& text, bool indent = true ) {
+            if( !text.empty() ){
+                bool tagWasOpen = m_tagIsOpen;
+                ensureTagClosed();
+                if( tagWasOpen && indent )
+                    stream() << m_indent;
+                writeEncodedText( text );
+                m_needsNewline = true;
+            }
+            return *this;
+        }
+
+        XmlWriter& writeComment( std::string const& text ) {
+            ensureTagClosed();
+            stream() << m_indent << "<!--" << text << "-->";
+            m_needsNewline = true;
+            return *this;
+        }
+
+        XmlWriter& writeBlankLine() {
+            ensureTagClosed();
+            stream() << "\n";
+            return *this;
+        }
+
+        void setStream( std::ostream& os ) {
+            m_os = &os;
+        }
+
+    private:
+        XmlWriter( XmlWriter const& );
+        void operator=( XmlWriter const& );
+
+        std::ostream& stream() {
+            return *m_os;
+        }
+
+        void ensureTagClosed() {
+            if( m_tagIsOpen ) {
+                stream() << ">\n";
+                m_tagIsOpen = false;
+            }
+        }
+
+        void newlineIfNecessary() {
+            if( m_needsNewline ) {
+                stream() << "\n";
+                m_needsNewline = false;
+            }
+        }
+
+        void writeEncodedText( std::string const& text ) {
+            static const char* charsToEncode = "<&\"";
+            std::string mtext = text;
+            std::string::size_type pos = mtext.find_first_of( charsToEncode );
+            while( pos != std::string::npos ) {
+                stream() << mtext.substr( 0, pos );
+
+                switch( mtext[pos] ) {
+                    case '<':
+                        stream() << "&lt;";
+                        break;
+                    case '&':
+                        stream() << "&amp;";
+                        break;
+                    case '\"':
+                        stream() << "&quot;";
+                        break;
+                }
+                mtext = mtext.substr( pos+1 );
+                pos = mtext.find_first_of( charsToEncode );
+            }
+            stream() << mtext;
+        }
+
+        bool m_tagIsOpen;
+        bool m_needsNewline;
+        std::vector<std::string> m_tags;
+        std::string m_indent;
+        std::ostream* m_os;
+    };
+
+}
+namespace Catch {
+    class XmlReporter : public StreamingReporterBase {
+    public:
+        XmlReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_sectionDepth( 0 )
+        {}
+
+        virtual ~XmlReporter();
+
+        static std::string getDescription() {
+            return "Reports test results as an XML document";
+        }
+
+    public: // StreamingReporterBase
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = true;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& s ) {
+            StreamingReporterBase::noMatchingTestCases( s );
+        }
+
+        virtual void testRunStarting( TestRunInfo const& testInfo ) {
+            StreamingReporterBase::testRunStarting( testInfo );
+            m_xml.setStream( stream );
+            m_xml.startElement( "Catch" );
+            if( !m_config->name().empty() )
+                m_xml.writeAttribute( "name", m_config->name() );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) {
+            StreamingReporterBase::testGroupStarting( groupInfo );
+            m_xml.startElement( "Group" )
+                .writeAttribute( "name", groupInfo.name );
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) {
+            StreamingReporterBase::testCaseStarting(testInfo);
+            m_xml.startElement( "TestCase" ).writeAttribute( "name", trim( testInfo.name ) );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                m_testCaseTimer.start();
+        }
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) {
+            StreamingReporterBase::sectionStarting( sectionInfo );
+            if( m_sectionDepth++ > 0 ) {
+                m_xml.startElement( "Section" )
+                    .writeAttribute( "name", trim( sectionInfo.name ) )
+                    .writeAttribute( "description", sectionInfo.description );
+            }
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) { }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) {
+            const AssertionResult& assertionResult = assertionStats.assertionResult;
+
+            // Print any info messages in <Info> tags.
+            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it->type == ResultWas::Info ) {
+                        m_xml.scopedElement( "Info" )
+                            .writeText( it->message );
+                    } else if ( it->type == ResultWas::Warning ) {
+                        m_xml.scopedElement( "Warning" )
+                            .writeText( it->message );
+                    }
+                }
+            }
+
+            // Drop out if result was successful but we're not printing them.
+            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
+                return true;
+
+            // Print the expression if there is one.
+            if( assertionResult.hasExpression() ) {
+                m_xml.startElement( "Expression" )
+                    .writeAttribute( "success", assertionResult.succeeded() )
+					.writeAttribute( "type", assertionResult.getTestMacroName() )
+                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
+
+                m_xml.scopedElement( "Original" )
+                    .writeText( assertionResult.getExpression() );
+                m_xml.scopedElement( "Expanded" )
+                    .writeText( assertionResult.getExpandedExpression() );
+            }
+
+            // And... Print a result applicable to each result type.
+            switch( assertionResult.getResultType() ) {
+                case ResultWas::ThrewException:
+                    m_xml.scopedElement( "Exception" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::FatalErrorCondition:
+                    m_xml.scopedElement( "Fatal Error Condition" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Info:
+                    m_xml.scopedElement( "Info" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Warning:
+                    // Warning will already have been written
+                    break;
+                case ResultWas::ExplicitFailure:
+                    m_xml.scopedElement( "Failure" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                default:
+                    break;
+            }
+
+            if( assertionResult.hasExpression() )
+                m_xml.endElement();
+
+            return true;
+        }
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) {
+            StreamingReporterBase::sectionEnded( sectionStats );
+            if( --m_sectionDepth > 0 ) {
+                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
+                e.writeAttribute( "successes", sectionStats.assertions.passed );
+                e.writeAttribute( "failures", sectionStats.assertions.failed );
+                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
+
+                if ( m_config->showDurations() == ShowDurations::Always )
+                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
+
+                m_xml.endElement();
+            }
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) {
+            StreamingReporterBase::testCaseEnded( testCaseStats );
+            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
+            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
+
+            m_xml.endElement();
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) {
+            StreamingReporterBase::testGroupEnded( testGroupStats );
+            // TODO: Check testGroupStats.aborting and act accordingly.
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
+                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+        virtual void testRunEnded( TestRunStats const& testRunStats ) {
+            StreamingReporterBase::testRunEnded( testRunStats );
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
+                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+    private:
+        Timer m_testCaseTimer;
+        XmlWriter m_xml;
+        int m_sectionDepth;
+    };
+
+     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_junit.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+#include <assert.h>
+
+namespace Catch {
+
+    class JunitReporter : public CumulativeReporterBase {
+    public:
+        JunitReporter( ReporterConfig const& _config )
+        :   CumulativeReporterBase( _config ),
+            xml( _config.stream() )
+        {}
+
+        ~JunitReporter();
+
+        static std::string getDescription() {
+            return "Reports test results in an XML format that looks like Ant's junitreport target";
+        }
+
+        virtual void noMatchingTestCases( std::string const& /*spec*/ ) {}
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = true;
+            return prefs;
+        }
+
+        virtual void testRunStarting( TestRunInfo const& runInfo ) {
+            CumulativeReporterBase::testRunStarting( runInfo );
+            xml.startElement( "testsuites" );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) {
+            suiteTimer.start();
+            stdOutForSuite.str("");
+            stdErrForSuite.str("");
+            unexpectedExceptions = 0;
+            CumulativeReporterBase::testGroupStarting( groupInfo );
+        }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) {
+            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
+                unexpectedExceptions++;
+            return CumulativeReporterBase::assertionEnded( assertionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) {
+            stdOutForSuite << testCaseStats.stdOut;
+            stdErrForSuite << testCaseStats.stdErr;
+            CumulativeReporterBase::testCaseEnded( testCaseStats );
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) {
+            double suiteTime = suiteTimer.getElapsedSeconds();
+            CumulativeReporterBase::testGroupEnded( testGroupStats );
+            writeGroup( *m_testGroups.back(), suiteTime );
+        }
+
+        virtual void testRunEndedCumulative() {
+            xml.endElement();
+        }
+
+        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
+            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
+            TestGroupStats const& stats = groupNode.value;
+            xml.writeAttribute( "name", stats.groupInfo.name );
+            xml.writeAttribute( "errors", unexpectedExceptions );
+            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
+            xml.writeAttribute( "tests", stats.totals.assertions.total() );
+            xml.writeAttribute( "hostname", "tbd" ); // !TBD
+            if( m_config->showDurations() == ShowDurations::Never )
+                xml.writeAttribute( "time", "" );
+            else
+                xml.writeAttribute( "time", suiteTime );
+            xml.writeAttribute( "timestamp", "tbd" ); // !TBD
+
+            // Write test cases
+            for( TestGroupNode::ChildNodes::const_iterator
+                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
+                    it != itEnd;
+                    ++it )
+                writeTestCase( **it );
+
+            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
+            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
+        }
+
+        void writeTestCase( TestCaseNode const& testCaseNode ) {
+            TestCaseStats const& stats = testCaseNode.value;
+
+            // All test cases have exactly one section - which represents the
+            // test case itself. That section may have 0-n nested sections
+            assert( testCaseNode.children.size() == 1 );
+            SectionNode const& rootSection = *testCaseNode.children.front();
+
+            std::string className = stats.testInfo.className;
+
+            if( className.empty() ) {
+                if( rootSection.childSections.empty() )
+                    className = "global";
+            }
+            writeSection( className, "", rootSection );
+        }
+
+        void writeSection(  std::string const& className,
+                            std::string const& rootName,
+                            SectionNode const& sectionNode ) {
+            std::string name = trim( sectionNode.stats.sectionInfo.name );
+            if( !rootName.empty() )
+                name = rootName + "/" + name;
+
+            if( !sectionNode.assertions.empty() ||
+                !sectionNode.stdOut.empty() ||
+                !sectionNode.stdErr.empty() ) {
+                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
+                if( className.empty() ) {
+                    xml.writeAttribute( "classname", name );
+                    xml.writeAttribute( "name", "root" );
+                }
+                else {
+                    xml.writeAttribute( "classname", className );
+                    xml.writeAttribute( "name", name );
+                }
+                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
+
+                writeAssertions( sectionNode );
+
+                if( !sectionNode.stdOut.empty() )
+                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
+                if( !sectionNode.stdErr.empty() )
+                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
+            }
+            for( SectionNode::ChildSections::const_iterator
+                    it = sectionNode.childSections.begin(),
+                    itEnd = sectionNode.childSections.end();
+                    it != itEnd;
+                    ++it )
+                if( className.empty() )
+                    writeSection( name, "", **it );
+                else
+                    writeSection( className, name, **it );
+        }
+
+        void writeAssertions( SectionNode const& sectionNode ) {
+            for( SectionNode::Assertions::const_iterator
+                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
+                    it != itEnd;
+                    ++it )
+                writeAssertion( *it );
+        }
+        void writeAssertion( AssertionStats const& stats ) {
+            AssertionResult const& result = stats.assertionResult;
+            if( !result.isOk() ) {
+                std::string elementName;
+                switch( result.getResultType() ) {
+                    case ResultWas::ThrewException:
+                    case ResultWas::FatalErrorCondition:
+                        elementName = "error";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        elementName = "failure";
+                        break;
+
+                    // We should never see these here:
+                    case ResultWas::Info:
+                    case ResultWas::Warning:
+                    case ResultWas::Ok:
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        elementName = "internalError";
+                        break;
+                }
+
+                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
+
+                xml.writeAttribute( "message", result.getExpandedExpression() );
+                xml.writeAttribute( "type", result.getTestMacroName() );
+
+                std::ostringstream oss;
+                if( !result.getMessage().empty() )
+                    oss << result.getMessage() << "\n";
+                for( std::vector<MessageInfo>::const_iterator
+                        it = stats.infoMessages.begin(),
+                        itEnd = stats.infoMessages.end();
+                            it != itEnd;
+                            ++it )
+                    if( it->type == ResultWas::Info )
+                        oss << it->message << "\n";
+
+                oss << "at " << result.getSourceInfo();
+                xml.writeText( oss.str(), false );
+            }
+        }
+
+        XmlWriter xml;
+        Timer suiteTimer;
+        std::ostringstream stdOutForSuite;
+        std::ostringstream stdErrForSuite;
+        unsigned int unexpectedExceptions;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_console.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+namespace Catch {
+
+    struct ConsoleReporter : StreamingReporterBase {
+        ConsoleReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_headerPrinted( false )
+        {}
+
+        virtual ~ConsoleReporter();
+        static std::string getDescription() {
+            return "Reports test results as plain lines of text";
+        }
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << "'" << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            lazyPrint();
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) {
+            m_headerPrinted = false;
+            StreamingReporterBase::sectionStarting( _sectionInfo );
+        }
+        virtual void sectionEnded( SectionStats const& _sectionStats ) {
+            if( _sectionStats.missingAssertions ) {
+                lazyPrint();
+                Colour colour( Colour::ResultError );
+                if( m_sectionStack.size() > 1 )
+                    stream << "\nNo assertions in section";
+                else
+                    stream << "\nNo assertions in test case";
+                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
+            }
+            if( m_headerPrinted ) {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << "Completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
+                m_headerPrinted = false;
+            }
+            else {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
+            }
+            StreamingReporterBase::sectionEnded( _sectionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) {
+            StreamingReporterBase::testCaseEnded( _testCaseStats );
+            m_headerPrinted = false;
+        }
+        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) {
+            if( currentGroupInfo.used ) {
+                printSummaryDivider();
+                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
+                printTotals( _testGroupStats.totals );
+                stream << "\n" << std::endl;
+            }
+            StreamingReporterBase::testGroupEnded( _testGroupStats );
+        }
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotalsDivider( _testRunStats.totals );
+            printTotals( _testRunStats.totals );
+            stream << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            :   stream( _stream ),
+                stats( _stats ),
+                result( _stats.assertionResult ),
+                colour( Colour::None ),
+                message( result.getMessage() ),
+                messages( _stats.infoMessages ),
+                printInfoMessages( _printInfoMessages )
+            {
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        colour = Colour::Success;
+                        passOrFail = "PASSED";
+                        //if( result.hasMessage() )
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() ) {
+                            colour = Colour::Success;
+                            passOrFail = "FAILED - but was ok";
+                        }
+                        else {
+                            colour = Colour::Error;
+                            passOrFail = "FAILED";
+                        }
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ThrewException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to unexpected exception with message";
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to a fatal error condition";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "because no exception was thrown where one was expected";
+                        break;
+                    case ResultWas::Info:
+                        messageLabel = "info";
+                        break;
+                    case ResultWas::Warning:
+                        messageLabel = "warning";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        passOrFail = "FAILED";
+                        colour = Colour::Error;
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "explicitly with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "explicitly with messages";
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        passOrFail = "** internal error **";
+                        colour = Colour::Error;
+                        break;
+                }
+            }
+
+            void print() const {
+                printSourceInfo();
+                if( stats.totals.assertions.total() > 0 ) {
+                    if( result.isOk() )
+                        stream << "\n";
+                    printResultType();
+                    printOriginalExpression();
+                    printReconstructedExpression();
+                }
+                else {
+                    stream << "\n";
+                }
+                printMessage();
+            }
+
+        private:
+            void printResultType() const {
+                if( !passOrFail.empty() ) {
+                    Colour colourGuard( colour );
+                    stream << passOrFail << ":\n";
+                }
+            }
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    Colour colourGuard( Colour::OriginalExpression );
+                    stream  << "  ";
+                    stream << result.getExpressionInMacro();
+                    stream << "\n";
+                }
+            }
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    stream << "with expansion:\n";
+                    Colour colourGuard( Colour::ReconstructedExpression );
+                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << "\n";
+                }
+            }
+            void printMessage() const {
+                if( !messageLabel.empty() )
+                    stream << messageLabel << ":" << "\n";
+                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
+                        it != itEnd;
+                        ++it ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || it->type != ResultWas::Info )
+                        stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n";
+                }
+            }
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ": ";
+            }
+
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            Colour::Code colour;
+            std::string passOrFail;
+            std::string messageLabel;
+            std::string message;
+            std::vector<MessageInfo> messages;
+            bool printInfoMessages;
+        };
+
+        void lazyPrint() {
+
+            if( !currentTestRunInfo.used )
+                lazyPrintRunInfo();
+            if( !currentGroupInfo.used )
+                lazyPrintGroupInfo();
+
+            if( !m_headerPrinted ) {
+                printTestCaseAndSectionHeader();
+                m_headerPrinted = true;
+            }
+        }
+        void lazyPrintRunInfo() {
+            stream  << "\n" << getLineOfChars<'~'>() << "\n";
+            Colour colour( Colour::SecondaryText );
+            stream  << currentTestRunInfo->name
+                    << " is a Catch v"  << libraryVersion.majorVersion << "."
+                    << libraryVersion.minorVersion << " b"
+                    << libraryVersion.buildNumber;
+            if( libraryVersion.branchName != std::string( "master" ) )
+                stream << " (" << libraryVersion.branchName << ")";
+            stream  << " host application.\n"
+                    << "Run with -? for options\n\n";
+
+            if( m_config->rngSeed() != 0 )
+                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
+
+            currentTestRunInfo.used = true;
+        }
+        void lazyPrintGroupInfo() {
+            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
+                printClosedHeader( "Group: " + currentGroupInfo->name );
+                currentGroupInfo.used = true;
+            }
+        }
+        void printTestCaseAndSectionHeader() {
+            assert( !m_sectionStack.empty() );
+            printOpenHeader( currentTestCaseInfo->name );
+
+            if( m_sectionStack.size() > 1 ) {
+                Colour colourGuard( Colour::Headers );
+
+                std::vector<SectionInfo>::const_iterator
+                    it = m_sectionStack.begin()+1, // Skip first section (test case)
+                    itEnd = m_sectionStack.end();
+                for( ; it != itEnd; ++it )
+                    printHeaderString( it->name, 2 );
+            }
+
+            SourceLineInfo lineInfo = m_sectionStack.front().lineInfo;
+
+            if( !lineInfo.empty() ){
+                stream << getLineOfChars<'-'>() << "\n";
+                Colour colourGuard( Colour::FileName );
+                stream << lineInfo << "\n";
+            }
+            stream << getLineOfChars<'.'>() << "\n" << std::endl;
+        }
+
+        void printClosedHeader( std::string const& _name ) {
+            printOpenHeader( _name );
+            stream << getLineOfChars<'.'>() << "\n";
+        }
+        void printOpenHeader( std::string const& _name ) {
+            stream  << getLineOfChars<'-'>() << "\n";
+            {
+                Colour colourGuard( Colour::Headers );
+                printHeaderString( _name );
+            }
+        }
+
+        // if string has a : in first line will set indent to follow it on
+        // subsequent lines
+        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
+            std::size_t i = _string.find( ": " );
+            if( i != std::string::npos )
+                i+=2;
+            else
+                i = 0;
+            stream << Text( _string, TextAttributes()
+                                        .setIndent( indent+i)
+                                        .setInitialIndent( indent ) ) << "\n";
+        }
+
+        struct SummaryColumn {
+
+            SummaryColumn( std::string const& _label, Colour::Code _colour )
+            :   label( _label ),
+                colour( _colour )
+            {}
+            SummaryColumn addRow( std::size_t count ) {
+                std::ostringstream oss;
+                oss << count;
+                std::string row = oss.str();
+                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
+                    while( it->size() < row.size() )
+                        *it = " " + *it;
+                    while( it->size() > row.size() )
+                        row = " " + row;
+                }
+                rows.push_back( row );
+                return *this;
+            }
+
+            std::string label;
+            Colour::Code colour;
+            std::vector<std::string> rows;
+
+        };
+
+        void printTotals( Totals const& totals ) {
+            if( totals.testCases.total() == 0 ) {
+                stream << Colour( Colour::Warning ) << "No tests ran\n";
+            }
+            else if( totals.assertions.total() > 0 && totals.assertions.allPassed() ) {
+                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
+                stream << " ("
+                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
+                        << pluralise( totals.testCases.passed, "test case" ) << ")"
+                        << "\n";
+            }
+            else {
+
+                std::vector<SummaryColumn> columns;
+                columns.push_back( SummaryColumn( "", Colour::None )
+                                        .addRow( totals.testCases.total() )
+                                        .addRow( totals.assertions.total() ) );
+                columns.push_back( SummaryColumn( "passed", Colour::Success )
+                                        .addRow( totals.testCases.passed )
+                                        .addRow( totals.assertions.passed ) );
+                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
+                                        .addRow( totals.testCases.failed )
+                                        .addRow( totals.assertions.failed ) );
+                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
+                                        .addRow( totals.testCases.failedButOk )
+                                        .addRow( totals.assertions.failedButOk ) );
+
+                printSummaryRow( "test cases", columns, 0 );
+                printSummaryRow( "assertions", columns, 1 );
+            }
+        }
+        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
+            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
+                std::string value = it->rows[row];
+                if( it->label.empty() ) {
+                    stream << label << ": ";
+                    if( value != "0" )
+                        stream << value;
+                    else
+                        stream << Colour( Colour::Warning ) << "- none -";
+                }
+                else if( value != "0" ) {
+                    stream  << Colour( Colour::LightGrey ) << " | ";
+                    stream  << Colour( it->colour )
+                            << value << " " << it->label;
+                }
+            }
+            stream << "\n";
+        }
+
+        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
+            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
+            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
+        }
+        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
+            if( i > j && i > k )
+                return i;
+            else if( j > k )
+                return j;
+            else
+                return k;
+        }
+
+        void printTotalsDivider( Totals const& totals ) {
+            if( totals.testCases.total() > 0 ) {
+                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
+                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
+                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
+                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
+                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
+
+                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
+                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
+                if( totals.testCases.allPassed() )
+                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
+                else
+                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
+            }
+            else {
+                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
+            }
+            stream << "\n";
+        }
+        void printSummaryDivider() {
+            stream << getLineOfChars<'-'>() << "\n";
+        }
+
+    private:
+        bool m_headerPrinted;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_compact.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+namespace Catch {
+
+    struct CompactReporter : StreamingReporterBase {
+
+        CompactReporter( ReporterConfig const& _config )
+        : StreamingReporterBase( _config )
+        {}
+
+        virtual ~CompactReporter();
+
+        static std::string getDescription() {
+            return "Reports test results on a single line, suitable for IDEs";
+        }
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << "'" << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotals( _testRunStats.totals );
+            stream << "\n" << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            : stream( _stream )
+            , stats( _stats )
+            , result( _stats.assertionResult )
+            , messages( _stats.infoMessages )
+            , itMessage( _stats.infoMessages.begin() )
+            , printInfoMessages( _printInfoMessages )
+            {}
+
+            void print() {
+                printSourceInfo();
+
+                itMessage = messages.begin();
+
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        printResultType( Colour::ResultSuccess, passedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        if ( ! result.hasExpression() )
+                            printRemainingMessages( Colour::None );
+                        else
+                            printRemainingMessages();
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() )
+                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
+                        else
+                            printResultType( Colour::Error, failedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ThrewException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "unexpected exception with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "fatal error condition with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::DidntThrowException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "expected exception, got none" );
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Info:
+                        printResultType( Colour::None, "info" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Warning:
+                        printResultType( Colour::None, "warning" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "explicitly" );
+                        printRemainingMessages( Colour::None );
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        printResultType( Colour::Error, "** internal error **" );
+                        break;
+                }
+            }
+
+        private:
+            // Colour::LightGrey
+
+            static Colour::Code dimColour() { return Colour::FileName; }
+
+#ifdef CATCH_PLATFORM_MAC
+            static const char* failedString() { return "FAILED"; }
+            static const char* passedString() { return "PASSED"; }
+#else
+            static const char* failedString() { return "failed"; }
+            static const char* passedString() { return "passed"; }
+#endif
+
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ":";
+            }
+
+            void printResultType( Colour::Code colour, std::string passOrFail ) const {
+                if( !passOrFail.empty() ) {
+                    {
+                        Colour colourGuard( colour );
+                        stream << " " << passOrFail;
+                    }
+                    stream << ":";
+                }
+            }
+
+            void printIssue( std::string issue ) const {
+                stream << " " << issue;
+            }
+
+            void printExpressionWas() {
+                if( result.hasExpression() ) {
+                    stream << ";";
+                    {
+                        Colour colour( dimColour() );
+                        stream << " expression was:";
+                    }
+                    printOriginalExpression();
+                }
+            }
+
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    stream << " " << result.getExpression();
+                }
+            }
+
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    {
+                        Colour colour( dimColour() );
+                        stream << " for: ";
+                    }
+                    stream << result.getExpandedExpression();
+                }
+            }
+
+            void printMessage() {
+                if ( itMessage != messages.end() ) {
+                    stream << " '" << itMessage->message << "'";
+                    ++itMessage;
+                }
+            }
+
+            void printRemainingMessages( Colour::Code colour = dimColour() ) {
+                if ( itMessage == messages.end() )
+                    return;
+
+                // using messages.end() directly yields compilation error:
+                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
+                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
+
+                {
+                    Colour colourGuard( colour );
+                    stream << " with " << pluralise( N, "message" ) << ":";
+                }
+
+                for(; itMessage != itEnd; ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
+                        stream << " '" << itMessage->message << "'";
+                        if ( ++itMessage != itEnd ) {
+                            Colour colourGuard( dimColour() );
+                            stream << " and";
+                        }
+                    }
+                }
+            }
+
+        private:
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            std::vector<MessageInfo> messages;
+            std::vector<MessageInfo>::const_iterator itMessage;
+            bool printInfoMessages;
+        };
+
+        // Colour, message variants:
+        // - white: No tests ran.
+        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
+        // - white: Passed [both/all] N test cases (no assertions).
+        // -   red: Failed N tests cases, failed M assertions.
+        // - green: Passed [both/all] N tests cases with M assertions.
+
+        std::string bothOrAll( std::size_t count ) const {
+            return count == 1 ? "" : count == 2 ? "both " : "all " ;
+        }
+
+        void printTotals( const Totals& totals ) const {
+            if( totals.testCases.total() == 0 ) {
+                stream << "No tests ran.";
+            }
+            else if( totals.testCases.failed == totals.testCases.total() ) {
+                Colour colour( Colour::ResultError );
+                const std::string qualify_assertions_failed =
+                    totals.assertions.failed == totals.assertions.total() ?
+                        bothOrAll( totals.assertions.failed ) : "";
+                stream <<
+                    "Failed " << bothOrAll( totals.testCases.failed )
+                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << qualify_assertions_failed <<
+                                 pluralise( totals.assertions.failed, "assertion" ) << ".";
+            }
+            else if( totals.assertions.total() == 0 ) {
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.total() )
+                              << pluralise( totals.testCases.total(), "test case" )
+                              << " (no assertions).";
+            }
+            else if( totals.assertions.failed ) {
+                Colour colour( Colour::ResultError );
+                stream <<
+                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << ".";
+            }
+            else {
+                Colour colour( Colour::ResultSuccess );
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.passed )
+                              << pluralise( totals.testCases.passed, "test case"  ) <<
+                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << ".";
+            }
+        }
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
+
+} // end namespace Catch
+
+namespace Catch {
+    NonCopyable::~NonCopyable() {}
+    IShared::~IShared() {}
+    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
+    IContext::~IContext() {}
+    IResultCapture::~IResultCapture() {}
+    ITestCase::~ITestCase() {}
+    ITestCaseRegistry::~ITestCaseRegistry() {}
+    IRegistryHub::~IRegistryHub() {}
+    IMutableRegistryHub::~IMutableRegistryHub() {}
+    IExceptionTranslator::~IExceptionTranslator() {}
+    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
+    IReporter::~IReporter() {}
+    IReporterFactory::~IReporterFactory() {}
+    IReporterRegistry::~IReporterRegistry() {}
+    IStreamingReporter::~IStreamingReporter() {}
+    AssertionStats::~AssertionStats() {}
+    SectionStats::~SectionStats() {}
+    TestCaseStats::~TestCaseStats() {}
+    TestGroupStats::~TestGroupStats() {}
+    TestRunStats::~TestRunStats() {}
+    CumulativeReporterBase::SectionNode::~SectionNode() {}
+    CumulativeReporterBase::~CumulativeReporterBase() {}
+
+    StreamingReporterBase::~StreamingReporterBase() {}
+    ConsoleReporter::~ConsoleReporter() {}
+    CompactReporter::~CompactReporter() {}
+    IRunner::~IRunner() {}
+    IMutableContext::~IMutableContext() {}
+    IConfig::~IConfig() {}
+    XmlReporter::~XmlReporter() {}
+    JunitReporter::~JunitReporter() {}
+    TestRegistry::~TestRegistry() {}
+    FreeFunctionTestCase::~FreeFunctionTestCase() {}
+    IGeneratorInfo::~IGeneratorInfo() {}
+    IGeneratorsForTest::~IGeneratorsForTest() {}
+    TestSpec::Pattern::~Pattern() {}
+    TestSpec::NamePattern::~NamePattern() {}
+    TestSpec::TagPattern::~TagPattern() {}
+    TestSpec::ExcludedPattern::~ExcludedPattern() {}
+
+    Matchers::Impl::StdString::Equals::~Equals() {}
+    Matchers::Impl::StdString::Contains::~Contains() {}
+    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
+    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
+
+    void Config::dummy() {}
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_MAIN
+// #included from: internal/catch_default_main.hpp
+#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+#ifndef __OBJC__
+
+// Standard C/C++ main entry point
+int main (int argc, char * const argv[]) {
+    return Catch::Session().run( argc, argv );
+}
+
+#else // __OBJC__
+
+// Objective-C entry point
+int main (int argc, char * const argv[]) {
+#if !CATCH_ARC_ENABLED
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+#endif
+
+    Catch::registerTestMethods();
+    int result = Catch::Session().run( argc, (char* const*)argv );
+
+#if !CATCH_ARC_ENABLED
+    [pool drain];
+#endif
+
+    return result;
+}
+
+#endif // __OBJC__
+
+#endif
+
+#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
+#  undef CLARA_CONFIG_MAIN
+#endif
+
+//////
+
+// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
+#ifdef CATCH_CONFIG_PREFIX_ALL
+
+#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
+#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
+
+#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS" )
+#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
+#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
+
+#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
+#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
+#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
+#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
+#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
+
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
+#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
+#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
+
+#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
+#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
+    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
+#else
+    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
+    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
+#endif
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
+#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define CATCH_GIVEN( desc )    CATCH_SECTION( "Given: " desc, "" )
+#define CATCH_WHEN( desc )     CATCH_SECTION( " When: " desc, "" )
+#define CATCH_AND_WHEN( desc ) CATCH_SECTION( "  And: " desc, "" )
+#define CATCH_THEN( desc )     CATCH_SECTION( " Then: " desc, "" )
+#define CATCH_AND_THEN( desc ) CATCH_SECTION( "  And: " desc, "" )
+
+// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
+#else
+
+#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
+#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
+
+#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "REQUIRE_THROWS" )
+#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
+#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
+
+#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
+#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
+#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
+#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
+#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
+
+#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS" )
+#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
+#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
+#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
+
+#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
+#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
+    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
+#else
+    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
+    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
+#endif
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+#endif
+
+#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
+#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define GIVEN( desc )    SECTION( "   Given: " desc, "" )
+#define WHEN( desc )     SECTION( "    When: " desc, "" )
+#define AND_WHEN( desc ) SECTION( "And when: " desc, "" )
+#define THEN( desc )     SECTION( "    Then: " desc, "" )
+#define AND_THEN( desc ) SECTION( "     And: " desc, "" )
+
+using Catch::Detail::Approx;
+
+// #included from: internal/catch_reenable_warnings.h
+
+#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#    ifdef __ICC // icpc defines the __clang__ macro
+#        pragma warning(pop)
+#    else
+#        pragma clang diagnostic pop
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic pop
+#endif
+
+#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/LICENSE b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/LICENSE
new file mode 100755
index 0000000..ca2bfe1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/LICENSE
@@ -0,0 +1,55 @@
+The JsonCpp library's source code, including accompanying documentation, 
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this 
+software may choose to accept it either as 1) Public Domain, 2) under the 
+conditions of the MIT License (see below), or 3) under the terms of dual 
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+   
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/assertions.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/assertions.h
new file mode 100755
index 0000000..fbec7ae
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/assertions.h
@@ -0,0 +1,54 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
+#define CPPTL_JSON_ASSERTIONS_H_INCLUDED
+
+#include <stdlib.h>
+#include <sstream>
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+/** It should not be possible for a maliciously designed file to
+ *  cause an abort() or seg-fault, so these macros are used only
+ *  for pre-condition violations and internal logic errors.
+ */
+#if JSON_USE_EXCEPTION
+
+// @todo <= add detail about condition in exception
+# define JSON_ASSERT(condition)                                                \
+  {if (!(condition)) {Json::throwLogicError( "assert json failed" );}}
+
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    std::ostringstream oss; oss << message;                                    \
+    Json::throwLogicError(oss.str());                                          \
+    abort();                                                                   \
+  }
+
+#else // JSON_USE_EXCEPTION
+
+# define JSON_ASSERT(condition) assert(condition)
+
+// The call to assert() will show the failure message in debug builds. In
+// release builds we abort, for a core-dump or debugger.
+# define JSON_FAIL_MESSAGE(message)                                            \
+  {                                                                            \
+    std::ostringstream oss; oss << message;                                    \
+    assert(false && oss.str().c_str());                                        \
+    abort();                                                                   \
+  }
+
+
+#endif
+
+#define JSON_ASSERT_MESSAGE(condition, message)                                \
+  if (!(condition)) {                                                          \
+    JSON_FAIL_MESSAGE(message);                                                \
+  }
+
+#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/autolink.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/autolink.h
new file mode 100755
index 0000000..6fcc8af
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/autolink.h
@@ -0,0 +1,25 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_AUTOLINK_H_INCLUDED
+#define JSON_AUTOLINK_H_INCLUDED
+
+#include "config.h"
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/cpptl_autolink.h>
+#endif
+
+#if !defined(JSON_NO_AUTOLINK) && !defined(JSON_DLL_BUILD) &&                  \
+    !defined(JSON_IN_CPPTL)
+#define CPPTL_AUTOLINK_NAME "json"
+#undef CPPTL_AUTOLINK_DLL
+#ifdef JSON_DLL
+#define CPPTL_AUTOLINK_DLL
+#endif
+#include "autolink.h"
+#endif
+
+#endif // JSON_AUTOLINK_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/config.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/config.h
new file mode 100755
index 0000000..7201ba7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/config.h
@@ -0,0 +1,138 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_CONFIG_H_INCLUDED
+#define JSON_CONFIG_H_INCLUDED
+
+/// If defined, indicates that json library is embedded in CppTL library.
+//# define JSON_IN_CPPTL 1
+
+/// If defined, indicates that json may leverage CppTL library
+//#  define JSON_USE_CPPTL 1
+/// If defined, indicates that cpptl vector based map should be used instead of
+/// std::map
+/// as Value container.
+//#  define JSON_USE_CPPTL_SMALLMAP 1
+
+// If non-zero, the library uses exceptions to report bad input instead of C
+// assertion macros. The default is to use exceptions.
+#ifndef JSON_USE_EXCEPTION
+#define JSON_USE_EXCEPTION 1
+#endif
+
+/// If defined, indicates that the source file is amalgated
+/// to prevent private header inclusion.
+/// Remarks: it is automatically defined in the generated amalgated header.
+// #define JSON_IS_AMALGAMATION
+
+#ifdef JSON_IN_CPPTL
+#include <cpptl/config.h>
+#ifndef JSON_USE_CPPTL
+#define JSON_USE_CPPTL 1
+#endif
+#endif
+
+#ifdef JSON_IN_CPPTL
+#define JSON_API CPPTL_API
+#elif defined(JSON_DLL_BUILD)
+#if defined(_MSC_VER)
+#define JSON_API __declspec(dllexport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#elif defined(JSON_DLL)
+#if defined(_MSC_VER)
+#define JSON_API __declspec(dllimport)
+#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#endif // if defined(_MSC_VER)
+#endif // ifdef JSON_IN_CPPTL
+#if !defined(JSON_API)
+#define JSON_API
+#endif
+
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
+
+#if defined(_MSC_VER) // MSVC
+#  if _MSC_VER <= 1200 // MSVC 6
+    // Microsoft Visual Studio 6 only support conversion from __int64 to double
+    // (no conversion from unsigned __int64).
+#    define JSON_USE_INT64_DOUBLE_CONVERSION 1
+    // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
+    // characters in the debug information)
+    // All projects I've ever seen with VS6 were using this globally (not bothering
+    // with pragma push/pop).
+#    pragma warning(disable : 4786)
+#  endif // MSVC 6
+
+#  if _MSC_VER >= 1500 // MSVC 2008
+    /// Indicates that the following function is deprecated.
+#    define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#  endif
+
+#endif // defined(_MSC_VER)
+
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+
+#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif // MSVC >= 2010
+
+#ifdef __clang__
+#if __has_feature(cxx_rvalue_references)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // has_feature
+
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
+#define JSON_HAS_RVALUE_REFERENCES 1
+#endif  // GXX_EXPERIMENTAL
+
+#endif // __clang__ || __GNUC__
+
+#endif // not defined JSON_HAS_RVALUE_REFERENCES
+
+#ifndef JSON_HAS_RVALUE_REFERENCES
+#define JSON_HAS_RVALUE_REFERENCES 0
+#endif
+
+#ifdef __clang__
+#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
+#  if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#    define JSONCPP_DEPRECATED(message)  __attribute__ ((deprecated(message)))
+#  elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#    define JSONCPP_DEPRECATED(message)  __attribute__((__deprecated__))
+#  endif  // GNUC version
+#endif // __clang__ || __GNUC__
+
+#if !defined(JSONCPP_DEPRECATED)
+#define JSONCPP_DEPRECATED(message)
+#endif // if !defined(JSONCPP_DEPRECATED)
+
+namespace Json {
+typedef int Int;
+typedef unsigned int UInt;
+#if defined(JSON_NO_INT64)
+typedef int LargestInt;
+typedef unsigned int LargestUInt;
+#undef JSON_HAS_INT64
+#else                 // if defined(JSON_NO_INT64)
+// For Microsoft Visual use specific types as long long is not supported
+#if defined(_MSC_VER) // Microsoft Visual Studio
+typedef __int64 Int64;
+typedef unsigned __int64 UInt64;
+#else                 // if defined(_MSC_VER) // Other platforms, use long long
+typedef long long int Int64;
+typedef unsigned long long int UInt64;
+#endif // if defined(_MSC_VER)
+typedef Int64 LargestInt;
+typedef UInt64 LargestUInt;
+#define JSON_HAS_INT64
+#endif // if defined(JSON_NO_INT64)
+} // end namespace Json
+
+#endif // JSON_CONFIG_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/forwards.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/forwards.h
new file mode 100755
index 0000000..ccfe09a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/forwards.h
@@ -0,0 +1,37 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_FORWARDS_H_INCLUDED
+#define JSON_FORWARDS_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "config.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+// writer.h
+class FastWriter;
+class StyledWriter;
+
+// reader.h
+class Reader;
+
+// features.h
+class Features;
+
+// value.h
+typedef unsigned int ArrayIndex;
+class StaticString;
+class Path;
+class PathArgument;
+class Value;
+class ValueIteratorBase;
+class ValueIterator;
+class ValueConstIterator;
+
+} // namespace Json
+
+#endif // JSON_FORWARDS_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json-features.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json-features.h
new file mode 100755
index 0000000..1bb7bb6
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json-features.h
@@ -0,0 +1,57 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
+#define CPPTL_JSON_FEATURES_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+/** \brief Configuration passed to reader and writer.
+ * This configuration object can be used to force the Reader or Writer
+ * to behave in a standard conforming way.
+ */
+class JSON_API Features {
+public:
+  /** \brief A configuration that allows all features and assumes all strings
+   * are UTF-8.
+   * - C & C++ comments are allowed
+   * - Root object can be any JSON value
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features all();
+
+  /** \brief A configuration that is strictly compatible with the JSON
+   * specification.
+   * - Comments are forbidden.
+   * - Root object must be either an array or an object value.
+   * - Assumes Value strings are encoded in UTF-8
+   */
+  static Features strictMode();
+
+  /** \brief Initialize the configuration like JsonConfig::allFeatures;
+   */
+  Features();
+
+  /// \c true if comments are allowed. Default: \c true.
+  bool allowComments_;
+
+  /// \c true if root must be either an array or an object value. Default: \c
+  /// false.
+  bool strictRoot_;
+
+  /// \c true if dropped null placeholders are allowed. Default: \c false.
+  bool allowDroppedNullPlaceholders_;
+
+  /// \c true if numeric object key are allowed. Default: \c false.
+  bool allowNumericKeys_;
+};
+
+} // namespace Json
+
+#endif // CPPTL_JSON_FEATURES_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json.h
new file mode 100755
index 0000000..113add4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/json.h
@@ -0,0 +1,15 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_JSON_H_INCLUDED
+#define JSON_JSON_H_INCLUDED
+
+#include "autolink.h"
+#include "json-features.h"
+#include "reader.h"
+#include "value.h"
+#include "writer.h"
+
+#endif  // JSON_JSON_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/reader.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/reader.h
new file mode 100755
index 0000000..8bc44ce
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/reader.h
@@ -0,0 +1,402 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_READER_H_INCLUDED
+#define CPPTL_JSON_READER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "json-features.h"
+#include "value.h"
+#endif  // if !defined(JSON_IS_AMALGAMATION)
+#include <deque>
+#include <iosfwd>
+#include <istream>
+#include <stack>
+#include <string>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif  // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+/** \brief Unserialize a <a HREF="http://www.json.org">JSON</a> document into a
+ *Value.
+ *
+ * \deprecated Use CharReader and CharReaderBuilder.
+ */
+class JSON_API Reader {
+  public:
+    typedef char Char;
+    typedef const Char* Location;
+
+    /** \brief An error tagged with where in the JSON text it was encountered.
+     *
+     * The offsets give the [start, limit) range of bytes within the text. Note
+     * that this is bytes, not codepoints.
+     *
+     */
+    struct StructuredError {
+        size_t offset_start;
+        size_t offset_limit;
+        std::string message;
+    };
+
+    /** \brief Constructs a Reader allowing all features
+     * for parsing.
+     */
+    Reader();
+
+    /** \brief Constructs a Reader allowing the specified feature set
+     * for parsing.
+     */
+    Reader(const Features& features);
+
+    /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+     * document.
+     * \param document UTF-8 encoded string containing the document to read.
+     * \param root [out] Contains the root value of the document if it was
+     *             successfully parsed.
+     * \param collectComments \c true to collect comment and allow writing them
+     * back during
+     *                        serialization, \c false to discard comments.
+     *                        This parameter is ignored if
+     * Features::allowComments_
+     *                        is \c false.
+     * \return \c true if the document was successfully parsed, \c false if an
+     * error occurred.
+     */
+    bool parse(const std::string& document, Value& root,
+               bool collectComments = true);
+
+    /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+     document.
+     * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of
+     the
+     document to read.
+     * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+     document to read.
+     *               Must be >= beginDoc.
+     * \param root [out] Contains the root value of the document if it was
+     *             successfully parsed.
+     * \param collectComments \c true to collect comment and allow writing them
+     back during
+     *                        serialization, \c false to discard comments.
+     *                        This parameter is ignored if
+     Features::allowComments_
+     *                        is \c false.
+     * \return \c true if the document was successfully parsed, \c false if an
+     error occurred.
+     */
+    bool parse(const char* beginDoc, const char* endDoc, Value& root,
+               bool collectComments = true);
+
+    /// \brief Parse from input stream.
+    /// \see Json::operator>>(std::istream&, Json::Value&).
+    bool parse(std::istream& is, Value& root, bool collectComments = true);
+
+    /** \brief Returns a user friendly string that list errors in the parsed
+     * document.
+     * \return Formatted error message with the list of errors with their
+     * location
+     * in
+     *         the parsed document. An empty string is returned if no error
+     * occurred
+     *         during parsing.
+     * \deprecated Use getFormattedErrorMessages() instead (typo fix).
+     */
+    JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.")
+    std::string getFormatedErrorMessages() const;
+
+    /** \brief Returns a user friendly string that list errors in the parsed
+     * document.
+     * \return Formatted error message with the list of errors with their
+     * location
+     * in
+     *         the parsed document. An empty string is returned if no error
+     * occurred
+     *         during parsing.
+     */
+    std::string getFormattedErrorMessages() const;
+
+    /** \brief Returns a vector of structured erros encounted while parsing.
+     * \return A (possibly empty) vector of StructuredError objects. Currently
+     *         only one error can be returned, but the caller should tolerate
+     * multiple
+     *         errors.  This can occur if the parser recovers from a non-fatal
+     *         parse error and then encounters additional errors.
+     */
+    std::vector<StructuredError> getStructuredErrors() const;
+
+    /** \brief Add a semantic error message.
+     * \param value JSON Value location associated with the error
+     * \param message The error message.
+     * \return \c true if the error was successfully added, \c false if the
+     * Value offset exceeds the document size.
+     */
+    bool pushError(const Value& value, const std::string& message);
+
+    /** \brief Add a semantic error message with extra context.
+     * \param value JSON Value location associated with the error
+     * \param message The error message.
+     * \param extra Additional JSON Value location to contextualize the error
+     * \return \c true if the error was successfully added, \c false if either
+     * Value offset exceeds the document size.
+     */
+    bool pushError(const Value& value, const std::string& message,
+                   const Value& extra);
+
+    /** \brief Return whether there are any errors.
+     * \return \c true if there are no errors to report \c false if
+     * errors have occurred.
+     */
+    bool good() const;
+
+  private:
+    enum TokenType {
+        tokenEndOfStream = 0,
+        tokenObjectBegin,
+        tokenObjectEnd,
+        tokenArrayBegin,
+        tokenArrayEnd,
+        tokenString,
+        tokenNumber,
+        tokenTrue,
+        tokenFalse,
+        tokenNull,
+        tokenArraySeparator,
+        tokenMemberSeparator,
+        tokenComment,
+        tokenError
+    };
+
+    class Token {
+      public:
+        TokenType type_;
+        Location start_;
+        Location end_;
+    };
+
+    class ErrorInfo {
+      public:
+        Token token_;
+        std::string message_;
+        Location extra_;
+    };
+
+    typedef std::deque<ErrorInfo> Errors;
+
+    bool readToken(Token& token);
+    void skipSpaces();
+    bool match(Location pattern, int patternLength);
+    bool readComment();
+    bool readCStyleComment();
+    bool readCppStyleComment();
+    bool readString();
+    void readNumber();
+    bool readValue();
+    bool readObject(Token& token);
+    bool readArray(Token& token);
+    bool decodeNumber(Token& token);
+    bool decodeNumber(Token& token, Value& decoded);
+    bool decodeString(Token& token);
+    bool decodeString(Token& token, std::string& decoded);
+    bool decodeDouble(Token& token);
+    bool decodeDouble(Token& token, Value& decoded);
+    bool decodeUnicodeCodePoint(Token& token, Location& current, Location end,
+                                unsigned int& unicode);
+    bool decodeUnicodeEscapeSequence(Token& token, Location& current,
+                                     Location end, unsigned int& unicode);
+    bool addError(const std::string& message, Token& token, Location extra = 0);
+    bool recoverFromError(TokenType skipUntilToken);
+    bool addErrorAndRecover(const std::string& message, Token& token,
+                            TokenType skipUntilToken);
+    void skipUntilSpace();
+    Value& currentValue();
+    Char getNextChar();
+    void getLocationLineAndColumn(Location location, int& line,
+                                  int& column) const;
+    std::string getLocationLineAndColumn(Location location) const;
+    void addComment(Location begin, Location end, CommentPlacement placement);
+    void skipCommentTokens(Token& token);
+
+    typedef std::stack<Value*> Nodes;
+    Nodes nodes_;
+    Errors errors_;
+    std::string document_;
+    Location begin_;
+    Location end_;
+    Location current_;
+    Location lastValueEnd_;
+    Value* lastValue_;
+    std::string commentsBefore_;
+    Features features_;
+    bool collectComments_;
+};  // Reader
+
+/** Interface for reading JSON from a char array.
+ */
+class JSON_API CharReader {
+  public:
+    virtual ~CharReader() {}
+    /** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
+     document.
+     * The document must be a UTF-8 encoded string containing the document to
+     read.
+     *
+     * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of
+     the
+     document to read.
+     * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+     document to read.
+     *        Must be >= beginDoc.
+     * \param root [out] Contains the root value of the document if it was
+     *             successfully parsed.
+     * \param errs [out] Formatted error messages (if not NULL)
+     *        a user friendly string that lists errors in the parsed
+     * document.
+     * \return \c true if the document was successfully parsed, \c false if an
+     error occurred.
+     */
+    virtual bool parse(char const* beginDoc, char const* endDoc, Value* root,
+                       std::string* errs) = 0;
+
+    class JSON_API Factory {
+      public:
+        virtual ~Factory() {}
+        /** \brief Allocate a CharReader via operator new().
+         * \throw std::exception if something goes wrong (e.g. invalid settings)
+         */
+        virtual CharReader* newCharReader() const = 0;
+    };  // Factory
+};      // CharReader
+
+/** \brief Build a CharReader implementation.
+
+Usage:
+\code
+  using namespace Json;
+  CharReaderBuilder builder;
+  builder["collectComments"] = false;
+  Value value;
+  std::string errs;
+  bool ok = parseFromStream(builder, std::cin, &value, &errs);
+\endcode
+*/
+class JSON_API CharReaderBuilder : public CharReader::Factory {
+  public:
+    // Note: We use a Json::Value so that we can add data-members to this class
+    // without a major version bump.
+    /** Configuration of this builder.
+      These are case-sensitive.
+      Available settings (case-sensitive):
+      - `"collectComments": false or true`
+        - true to collect comment and allow writing them
+          back during serialization, false to discard comments.
+          This parameter is ignored if allowComments is false.
+      - `"allowComments": false or true`
+        - true if comments are allowed.
+      - `"strictRoot": false or true`
+        - true if root must be either an array or an object value
+      - `"allowDroppedNullPlaceholders": false or true`
+        - true if dropped null placeholders are allowed. (See
+      StreamWriterBuilder.)
+      - `"allowNumericKeys": false or true`
+        - true if numeric object keys are allowed.
+      - `"allowSingleQuotes": false or true`
+        - true if '' are allowed for strings (both keys and values)
+      - `"stackLimit": integer`
+        - Exceeding stackLimit (recursive depth of `readValue()`) will
+          cause an exception.
+        - This is a security issue (seg-faults caused by deeply nested JSON),
+          so the default is low.
+      - `"failIfExtra": false or true`
+        - If true, `parse()` returns false when extra non-whitespace trails
+          the JSON value in the input string.
+      - `"rejectDupKeys": false or true`
+        - If true, `parse()` returns false when a key is duplicated within an
+      object.
+      - `"allowSpecialFloats": false or true`
+        - If true, special float values (NaNs and infinities) are allowed
+          and their values are lossfree restorable.
+
+      You can examine 'settings_` yourself
+      to see the defaults. You can also write and read them just like any
+      JSON Value.
+      \sa setDefaults()
+      */
+    Json::Value settings_;
+
+    CharReaderBuilder();
+    ~CharReaderBuilder() override;
+
+    CharReader* newCharReader() const override;
+
+    /** \return true if 'settings' are legal and consistent;
+     *   otherwise, indicate bad settings via 'invalid'.
+     */
+    bool validate(Json::Value* invalid) const;
+
+    /** A simple way to update a specific setting.
+     */
+    Value& operator[](std::string key);
+
+    /** Called by ctor, but you can use this to reset settings_.
+     * \pre 'settings' != NULL (but Json::null is fine)
+     * \remark Defaults:
+     * \snippet src/lib_json/json_reader.cpp CharReaderBuilderDefaults
+     */
+    static void setDefaults(Json::Value* settings);
+    /** Same as old Features::strictMode().
+     * \pre 'settings' != NULL (but Json::null is fine)
+     * \remark Defaults:
+     * \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode
+     */
+    static void strictMode(Json::Value* settings);
+};
+
+/** Consume entire stream and use its begin/end.
+  * Someday we might have a real StreamReader, but for now this
+  * is convenient.
+  */
+bool JSON_API parseFromStream(CharReader::Factory const&, std::istream&,
+                              Value* root, std::string* errs);
+
+/** \brief Read from 'sin' into 'root'.
+
+ Always keep comments from the input JSON.
+
+ This can be used to read a file into a particular sub-object.
+ For example:
+ \code
+ Json::Value root;
+ cin >> root["dir"]["file"];
+ cout << root;
+ \endcode
+ Result:
+ \verbatim
+ {
+ "dir": {
+     "file": {
+     // The input stream JSON would be nested here.
+     }
+ }
+ }
+ \endverbatim
+ \throw std::exception on parse error.
+ \see Json::operator<<()
+*/
+JSON_API std::istream& operator>>(std::istream&, Value&);
+
+}  // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif  // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif  // CPPTL_JSON_READER_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/value.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/value.h
new file mode 100755
index 0000000..1cfda07
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/value.h
@@ -0,0 +1,849 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef CPPTL_JSON_H_INCLUDED
+#define CPPTL_JSON_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "forwards.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <string>
+#include <vector>
+#include <exception>
+
+#ifndef JSON_USE_CPPTL_SMALLMAP
+#include <map>
+#else
+#include <cpptl/smallmap.h>
+#endif
+#ifdef JSON_USE_CPPTL
+#include <cpptl/forwards.h>
+#endif
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+/** \brief JSON (JavaScript Object Notation).
+ */
+namespace Json {
+
+/** Base class for all exceptions we throw.
+ *
+ * We use nothing but these internally. Of course, STL can throw others.
+ */
+class JSON_API Exception : public std::exception {
+public:
+  Exception(std::string const& msg);
+  ~Exception() throw() override;
+  char const* what() const throw() override;
+protected:
+  std::string msg_;
+};
+
+/** Exceptions which the user cannot easily avoid.
+ *
+ * E.g. out-of-memory (when we use malloc), stack-overflow, malicious input
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API RuntimeError : public Exception {
+public:
+  RuntimeError(std::string const& msg);
+};
+
+/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
+ *
+ * These are precondition-violations (user bugs) and internal errors (our bugs).
+ * 
+ * \remark derived from Json::Exception
+ */
+class JSON_API LogicError : public Exception {
+public:
+  LogicError(std::string const& msg);
+};
+
+/// used internally
+void throwRuntimeError(std::string const& msg);
+/// used internally
+void throwLogicError(std::string const& msg);
+
+/** \brief Type of the value held by a Value object.
+ */
+enum ValueType {
+  nullValue = 0, ///< 'null' value
+  intValue,      ///< signed integer value
+  uintValue,     ///< unsigned integer value
+  realValue,     ///< double value
+  stringValue,   ///< UTF-8 string value
+  booleanValue,  ///< bool value
+  arrayValue,    ///< array value (ordered list)
+  objectValue    ///< object value (collection of name/value pairs).
+};
+
+enum CommentPlacement {
+  commentBefore = 0,      ///< a comment placed on the line before a value
+  commentAfterOnSameLine, ///< a comment just after a value on the same line
+  commentAfter, ///< a comment on the line after a value (only make sense for
+  /// root value)
+  numberOfCommentPlacement
+};
+
+//# ifdef JSON_USE_CPPTL
+//   typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
+//   typedef CppTL::AnyEnumerator<const Value &> EnumValues;
+//# endif
+
+/** \brief Lightweight wrapper to tag static string.
+ *
+ * Value constructor and objectValue member assignement takes advantage of the
+ * StaticString and avoid the cost of string duplication when storing the
+ * string or the member name.
+ *
+ * Example of usage:
+ * \code
+ * Json::Value aValue( StaticString("some text") );
+ * Json::Value object;
+ * static const StaticString code("code");
+ * object[code] = 1234;
+ * \endcode
+ */
+class JSON_API StaticString {
+public:
+  explicit StaticString(const char* czstring) : c_str_(czstring) {}
+
+  operator const char*() const { return c_str_; }
+
+  const char* c_str() const { return c_str_; }
+
+private:
+  const char* c_str_;
+};
+
+/** \brief Represents a <a HREF="http://www.json.org">JSON</a> value.
+ *
+ * This class is a discriminated union wrapper that can represents a:
+ * - signed integer [range: Value::minInt - Value::maxInt]
+ * - unsigned integer (range: 0 - Value::maxUInt)
+ * - double
+ * - UTF-8 string
+ * - boolean
+ * - 'null'
+ * - an ordered list of Value
+ * - collection of name/value pairs (javascript object)
+ *
+ * The type of the held value is represented by a #ValueType and
+ * can be obtained using type().
+ *
+ * Values of an #objectValue or #arrayValue can be accessed using operator[]()
+ * methods.
+ * Non-const methods will automatically create the a #nullValue element
+ * if it does not exist.
+ * The sequence of an #arrayValue will be automatically resized and initialized
+ * with #nullValue. resize() can be used to enlarge or truncate an #arrayValue.
+ *
+ * The get() methods can be used to obtain default value in the case the
+ * required element does not exist.
+ *
+ * It is possible to iterate over the list of a #objectValue values using
+ * the getMemberNames() method.
+ *
+ * \note #Value string-length fit in size_t, but keys must be < 2^30.
+ * (The reason is an implementation detail.) A #CharReader will raise an
+ * exception if a bound is exceeded to avoid security holes in your app,
+ * but the Value API does *not* check bounds. That is the responsibility
+ * of the caller.
+ */
+class JSON_API Value {
+  friend class ValueIteratorBase;
+public:
+  typedef std::vector<std::string> Members;
+  typedef ValueIterator iterator;
+  typedef ValueConstIterator const_iterator;
+  typedef Json::UInt UInt;
+  typedef Json::Int Int;
+#if defined(JSON_HAS_INT64)
+  typedef Json::UInt64 UInt64;
+  typedef Json::Int64 Int64;
+#endif // defined(JSON_HAS_INT64)
+  typedef Json::LargestInt LargestInt;
+  typedef Json::LargestUInt LargestUInt;
+  typedef Json::ArrayIndex ArrayIndex;
+
+  static const Value& null;  ///< We regret this reference to a global instance; prefer the simpler Value().
+  static const Value& nullRef;  ///< just a kludge for binary-compatibility; same as null
+  /// Minimum signed integer value that can be stored in a Json::Value.
+  static const LargestInt minLargestInt;
+  /// Maximum signed integer value that can be stored in a Json::Value.
+  static const LargestInt maxLargestInt;
+  /// Maximum unsigned integer value that can be stored in a Json::Value.
+  static const LargestUInt maxLargestUInt;
+
+  /// Minimum signed int value that can be stored in a Json::Value.
+  static const Int minInt;
+  /// Maximum signed int value that can be stored in a Json::Value.
+  static const Int maxInt;
+  /// Maximum unsigned int value that can be stored in a Json::Value.
+  static const UInt maxUInt;
+
+#if defined(JSON_HAS_INT64)
+  /// Minimum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 minInt64;
+  /// Maximum signed 64 bits int value that can be stored in a Json::Value.
+  static const Int64 maxInt64;
+  /// Maximum unsigned 64 bits int value that can be stored in a Json::Value.
+  static const UInt64 maxUInt64;
+#endif // defined(JSON_HAS_INT64)
+
+private:
+#ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+  class CZString {
+  public:
+    enum DuplicationPolicy {
+      noDuplication = 0,
+      duplicate,
+      duplicateOnCopy
+    };
+    CZString(ArrayIndex index);
+    CZString(char const* str, unsigned length, DuplicationPolicy allocate);
+    CZString(CZString const& other);
+#if JSON_HAS_RVALUE_REFERENCES
+    CZString(CZString&& other);
+#endif
+    ~CZString();
+    CZString& operator=(CZString other);
+    bool operator<(CZString const& other) const;
+    bool operator==(CZString const& other) const;
+    ArrayIndex index() const;
+    //const char* c_str() const; ///< \deprecated
+    char const* data() const;
+    unsigned length() const;
+    bool isStaticString() const;
+
+  private:
+    void swap(CZString& other);
+
+    struct StringStorage {
+      unsigned policy_: 2;
+      unsigned length_: 30; // 1GB max
+    };
+
+    char const* cstr_;  // actually, a prefixed string, unless policy is noDup
+    union {
+      ArrayIndex index_;
+      StringStorage storage_;
+    };
+  };
+
+public:
+#ifndef JSON_USE_CPPTL_SMALLMAP
+  typedef std::map<CZString, Value> ObjectValues;
+#else
+  typedef CppTL::SmallMap<CZString, Value> ObjectValues;
+#endif // ifndef JSON_USE_CPPTL_SMALLMAP
+#endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
+
+public:
+  /** \brief Create a default Value of the given type.
+
+    This is a very useful constructor.
+    To create an empty array, pass arrayValue.
+    To create an empty object, pass objectValue.
+    Another Value can then be set to this one by assignment.
+This is useful since clear() and resize() will not alter types.
+
+    Examples:
+\code
+Json::Value null_value; // null
+Json::Value arr_value(Json::arrayValue); // []
+Json::Value obj_value(Json::objectValue); // {}
+\endcode
+  */
+  Value(ValueType type = nullValue);
+  Value(Int value);
+  Value(UInt value);
+#if defined(JSON_HAS_INT64)
+  Value(Int64 value);
+  Value(UInt64 value);
+#endif // if defined(JSON_HAS_INT64)
+  Value(double value);
+  Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.)
+  Value(const char* begin, const char* end); ///< Copy all, incl zeroes.
+  /** \brief Constructs a value from a static string.
+
+   * Like other value string constructor but do not duplicate the string for
+   * internal storage. The given string must remain alive after the call to this
+   * constructor.
+   * \note This works only for null-terminated strings. (We cannot change the
+   *   size of this class, so we have nowhere to store the length,
+   *   which might be computed later for various operations.)
+   *
+   * Example of usage:
+   * \code
+   * static StaticString foo("some text");
+   * Json::Value aValue(foo);
+   * \endcode
+   */
+  Value(const StaticString& value);
+  Value(const std::string& value); ///< Copy data() til size(). Embedded zeroes too.
+#ifdef JSON_USE_CPPTL
+  Value(const CppTL::ConstString& value);
+#endif
+  Value(bool value);
+  /// Deep copy.
+  Value(const Value& other);
+#if JSON_HAS_RVALUE_REFERENCES
+  /// Move constructor
+  Value(Value&& other);
+#endif
+  ~Value();
+
+  /// Deep copy, then swap(other).
+  /// \note Over-write existing comments. To preserve comments, use #swapPayload().
+  Value& operator=(Value other);
+  /// Swap everything.
+  void swap(Value& other);
+  /// Swap values but leave comments and source offsets in place.
+  void swapPayload(Value& other);
+
+  ValueType type() const;
+
+  /// Compare payload only, not comments etc.
+  bool operator<(const Value& other) const;
+  bool operator<=(const Value& other) const;
+  bool operator>=(const Value& other) const;
+  bool operator>(const Value& other) const;
+  bool operator==(const Value& other) const;
+  bool operator!=(const Value& other) const;
+  int compare(const Value& other) const;
+
+  const char* asCString() const; ///< Embedded zeroes could cause you trouble!
+  std::string asString() const; ///< Embedded zeroes are possible.
+  /** Get raw char* of string-value.
+   *  \return false if !string. (Seg-fault if str or end are NULL.)
+   */
+  bool getString(
+      char const** begin, char const** end) const;
+#ifdef JSON_USE_CPPTL
+  CppTL::ConstString asConstString() const;
+#endif
+  Int asInt() const;
+  UInt asUInt() const;
+#if defined(JSON_HAS_INT64)
+  Int64 asInt64() const;
+  UInt64 asUInt64() const;
+#endif // if defined(JSON_HAS_INT64)
+  LargestInt asLargestInt() const;
+  LargestUInt asLargestUInt() const;
+  float asFloat() const;
+  double asDouble() const;
+  bool asBool() const;
+
+  bool isNull() const;
+  bool isBool() const;
+  bool isInt() const;
+  bool isInt64() const;
+  bool isUInt() const;
+  bool isUInt64() const;
+  bool isIntegral() const;
+  bool isDouble() const;
+  bool isNumeric() const;
+  bool isString() const;
+  bool isArray() const;
+  bool isObject() const;
+
+  bool isConvertibleTo(ValueType other) const;
+
+  /// Number of values in array or object
+  ArrayIndex size() const;
+
+  /// \brief Return true if empty array, empty object, or null;
+  /// otherwise, false.
+  bool empty() const;
+
+  /// Return isNull()
+  bool operator!() const;
+
+  /// Remove all object members and array elements.
+  /// \pre type() is arrayValue, objectValue, or nullValue
+  /// \post type() is unchanged
+  void clear();
+
+  /// Resize the array to size elements.
+  /// New elements are initialized to null.
+  /// May only be called on nullValue or arrayValue.
+  /// \pre type() is arrayValue or nullValue
+  /// \post type() is arrayValue
+  void resize(ArrayIndex size);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](ArrayIndex index);
+
+  /// Access an array element (zero based index ).
+  /// If the array contains less than index element, then null value are
+  /// inserted
+  /// in the array so that its size is index+1.
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  Value& operator[](int index);
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](ArrayIndex index) const;
+
+  /// Access an array element (zero based index )
+  /// (You may need to say 'value[0u]' to get your compiler to distinguish
+  ///  this from the operator[] which takes a string.)
+  const Value& operator[](int index) const;
+
+  /// If the array contains at least index+1 elements, returns the element
+  /// value,
+  /// otherwise returns defaultValue.
+  Value get(ArrayIndex index, const Value& defaultValue) const;
+  /// Return true if index < size().
+  bool isValidIndex(ArrayIndex index) const;
+  /// \brief Append value to array at the end.
+  ///
+  /// Equivalent to jsonvalue[jsonvalue.size()] = value;
+  Value& append(const Value& value);
+
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \note Because of our implementation, keys are limited to 2^30 -1 chars.
+  ///  Exceeding that will cause an exception.
+  Value& operator[](const char* key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const char* key) const;
+  /// Access an object value by name, create a null member if it does not exist.
+  /// \param key may contain embedded nulls.
+  Value& operator[](const std::string& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  /// \param key may contain embedded nulls.
+  const Value& operator[](const std::string& key) const;
+  /** \brief Access an object value by name, create a null member if it does not
+   exist.
+
+   * If the object has no entry for that name, then the member name used to store
+   * the new entry is not duplicated.
+   * Example of use:
+   * \code
+   * Json::Value object;
+   * static const StaticString code("code");
+   * object[code] = 1234;
+   * \endcode
+   */
+  Value& operator[](const StaticString& key);
+#ifdef JSON_USE_CPPTL
+  /// Access an object value by name, create a null member if it does not exist.
+  Value& operator[](const CppTL::ConstString& key);
+  /// Access an object value by name, returns null if there is no member with
+  /// that name.
+  const Value& operator[](const CppTL::ConstString& key) const;
+#endif
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const char* key, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \note key may contain embedded nulls.
+  Value get(const char* begin, const char* end, const Value& defaultValue) const;
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  /// \param key may contain embedded nulls.
+  Value get(const std::string& key, const Value& defaultValue) const;
+#ifdef JSON_USE_CPPTL
+  /// Return the member named key if it exist, defaultValue otherwise.
+  /// \note deep copy
+  Value get(const CppTL::ConstString& key, const Value& defaultValue) const;
+#endif
+  /// Most general and efficient version of isMember()const, get()const,
+  /// and operator[]const
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  Value const* find(char const* begin, char const* end) const;
+  /// Most general and efficient version of object-mutators.
+  /// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
+  /// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue.
+  Value const* demand(char const* begin, char const* end);
+  /// \brief Remove and return the named member.
+  ///
+  /// Do nothing if it did not exist.
+  /// \return the removed Value, or null.
+  /// \pre type() is objectValue or nullValue
+  /// \post type() is unchanged
+  /// \deprecated
+  Value removeMember(const char* key);
+  /// Same as removeMember(const char*)
+  /// \param key may contain embedded nulls.
+  /// \deprecated
+  Value removeMember(const std::string& key);
+  /// Same as removeMember(const char* begin, const char* end, Value* removed),
+  /// but 'key' is null-terminated.
+  bool removeMember(const char* key, Value* removed);
+  /** \brief Remove the named map member.
+
+      Update 'removed' iff removed.
+      \param key may contain embedded nulls.
+      \return true iff removed (no exceptions)
+  */
+  bool removeMember(std::string const& key, Value* removed);
+  /// Same as removeMember(std::string const& key, Value* removed)
+  bool removeMember(const char* begin, const char* end, Value* removed);
+  /** \brief Remove the indexed array element.
+
+      O(n) expensive operations.
+      Update 'removed' iff removed.
+      \return true iff removed (no exceptions)
+  */
+  bool removeIndex(ArrayIndex i, Value* removed);
+
+  /// Return true if the object has a member named key.
+  /// \note 'key' must be null-terminated.
+  bool isMember(const char* key) const;
+  /// Return true if the object has a member named key.
+  /// \param key may contain embedded nulls.
+  bool isMember(const std::string& key) const;
+  /// Same as isMember(std::string const& key)const
+  bool isMember(const char* begin, const char* end) const;
+#ifdef JSON_USE_CPPTL
+  /// Return true if the object has a member named key.
+  bool isMember(const CppTL::ConstString& key) const;
+#endif
+
+  /// \brief Return a list of the member names.
+  ///
+  /// If null, return an empty list.
+  /// \pre type() is objectValue or nullValue
+  /// \post if type() was nullValue, it remains nullValue
+  Members getMemberNames() const;
+
+  //# ifdef JSON_USE_CPPTL
+  //      EnumMemberNames enumMemberNames() const;
+  //      EnumValues enumValues() const;
+  //# endif
+
+  /// \deprecated Always pass len.
+  JSONCPP_DEPRECATED("Use setComment(std::string const&) instead.")
+  void setComment(const char* comment, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const char* comment, size_t len, CommentPlacement placement);
+  /// Comments must be //... or /* ... */
+  void setComment(const std::string& comment, CommentPlacement placement);
+  bool hasComment(CommentPlacement placement) const;
+  /// Include delimiters and embedded newlines.
+  std::string getComment(CommentPlacement placement) const;
+
+  std::string toStyledString() const;
+
+  const_iterator begin() const;
+  const_iterator end() const;
+
+  iterator begin();
+  iterator end();
+
+  // Accessors for the [start, limit) range of bytes within the JSON text from
+  // which this value was parsed, if any.
+  void setOffsetStart(size_t start);
+  void setOffsetLimit(size_t limit);
+  size_t getOffsetStart() const;
+  size_t getOffsetLimit() const;
+
+private:
+  void initBasic(ValueType type, bool allocated = false);
+
+  Value& resolveReference(const char* key);
+  Value& resolveReference(const char* key, const char* end);
+
+  struct CommentInfo {
+    CommentInfo();
+    ~CommentInfo();
+
+    void setComment(const char* text, size_t len);
+
+    char* comment_;
+  };
+
+  // struct MemberNamesTransform
+  //{
+  //   typedef const char *result_type;
+  //   const char *operator()( const CZString &name ) const
+  //   {
+  //      return name.c_str();
+  //   }
+  //};
+
+  union ValueHolder {
+    LargestInt int_;
+    LargestUInt uint_;
+    double real_;
+    bool bool_;
+    char* string_;  // actually ptr to unsigned, followed by str, unless !allocated_
+    ObjectValues* map_;
+  } value_;
+  ValueType type_ : 8;
+  unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless.
+                               // If not allocated_, string_ must be null-terminated.
+  CommentInfo* comments_;
+
+  // [start, limit) byte offsets in the source JSON text from which this Value
+  // was extracted.
+  size_t start_;
+  size_t limit_;
+};
+
+/** \brief Experimental and untested: represents an element of the "path" to
+ * access a node.
+ */
+class JSON_API PathArgument {
+public:
+  friend class Path;
+
+  PathArgument();
+  PathArgument(ArrayIndex index);
+  PathArgument(const char* key);
+  PathArgument(const std::string& key);
+
+private:
+  enum Kind {
+    kindNone = 0,
+    kindIndex,
+    kindKey
+  };
+  std::string key_;
+  ArrayIndex index_;
+  Kind kind_;
+};
+
+/** \brief Experimental and untested: represents a "path" to access a node.
+ *
+ * Syntax:
+ * - "." => root node
+ * - ".[n]" => elements at index 'n' of root node (an array value)
+ * - ".name" => member named 'name' of root node (an object value)
+ * - ".name1.name2.name3"
+ * - ".[0][1][2].name1[3]"
+ * - ".%" => member name is provided as parameter
+ * - ".[%]" => index is provied as parameter
+ */
+class JSON_API Path {
+public:
+  Path(const std::string& path,
+       const PathArgument& a1 = PathArgument(),
+       const PathArgument& a2 = PathArgument(),
+       const PathArgument& a3 = PathArgument(),
+       const PathArgument& a4 = PathArgument(),
+       const PathArgument& a5 = PathArgument());
+
+  const Value& resolve(const Value& root) const;
+  Value resolve(const Value& root, const Value& defaultValue) const;
+  /// Creates the "path" to access the specified node and returns a reference on
+  /// the node.
+  Value& make(Value& root) const;
+
+private:
+  typedef std::vector<const PathArgument*> InArgs;
+  typedef std::vector<PathArgument> Args;
+
+  void makePath(const std::string& path, const InArgs& in);
+  void addPathInArg(const std::string& path,
+                    const InArgs& in,
+                    InArgs::const_iterator& itInArg,
+                    PathArgument::Kind kind);
+  void invalidPath(const std::string& path, int location);
+
+  Args args_;
+};
+
+/** \brief base class for Value iterators.
+ *
+ */
+class JSON_API ValueIteratorBase {
+public:
+  typedef std::bidirectional_iterator_tag iterator_category;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef ValueIteratorBase SelfType;
+
+  bool operator==(const SelfType& other) const { return isEqual(other); }
+
+  bool operator!=(const SelfType& other) const { return !isEqual(other); }
+
+  difference_type operator-(const SelfType& other) const {
+    return other.computeDistance(*this);
+  }
+
+  /// Return either the index or the member name of the referenced value as a
+  /// Value.
+  Value key() const;
+
+  /// Return the index of the referenced Value, or -1 if it is not an arrayValue.
+  UInt index() const;
+
+  /// Return the member name of the referenced Value, or "" if it is not an
+  /// objectValue.
+  /// \note Avoid `c_str()` on result, as embedded zeroes are possible.
+  std::string name() const;
+
+  /// Return the member name of the referenced Value. "" if it is not an
+  /// objectValue.
+  /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls.
+  JSONCPP_DEPRECATED("Use `key = name();` instead.")
+  char const* memberName() const;
+  /// Return the member name of the referenced Value, or NULL if it is not an
+  /// objectValue.
+  /// \note Better version than memberName(). Allows embedded nulls.
+  char const* memberName(char const** end) const;
+
+protected:
+  Value& deref() const;
+
+  void increment();
+
+  void decrement();
+
+  difference_type computeDistance(const SelfType& other) const;
+
+  bool isEqual(const SelfType& other) const;
+
+  void copy(const SelfType& other);
+
+private:
+  Value::ObjectValues::iterator current_;
+  // Indicates that iterator is for a null value.
+  bool isNull_;
+
+public:
+  // For some reason, BORLAND needs these at the end, rather
+  // than earlier. No idea why.
+  ValueIteratorBase();
+  explicit ValueIteratorBase(const Value::ObjectValues::iterator& current);
+};
+
+/** \brief const iterator for object and array value.
+ *
+ */
+class JSON_API ValueConstIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef const Value value_type;
+  //typedef unsigned int size_t;
+  //typedef int difference_type;
+  typedef const Value& reference;
+  typedef const Value* pointer;
+  typedef ValueConstIterator SelfType;
+
+  ValueConstIterator();
+  ValueConstIterator(ValueIterator const& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueConstIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const ValueIteratorBase& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+/** \brief Iterator for object and array value.
+ */
+class JSON_API ValueIterator : public ValueIteratorBase {
+  friend class Value;
+
+public:
+  typedef Value value_type;
+  typedef unsigned int size_t;
+  typedef int difference_type;
+  typedef Value& reference;
+  typedef Value* pointer;
+  typedef ValueIterator SelfType;
+
+  ValueIterator();
+  explicit ValueIterator(const ValueConstIterator& other);
+  ValueIterator(const ValueIterator& other);
+
+private:
+/*! \internal Use by Value to create an iterator.
+ */
+  explicit ValueIterator(const Value::ObjectValues::iterator& current);
+public:
+  SelfType& operator=(const SelfType& other);
+
+  SelfType operator++(int) {
+    SelfType temp(*this);
+    ++*this;
+    return temp;
+  }
+
+  SelfType operator--(int) {
+    SelfType temp(*this);
+    --*this;
+    return temp;
+  }
+
+  SelfType& operator--() {
+    decrement();
+    return *this;
+  }
+
+  SelfType& operator++() {
+    increment();
+    return *this;
+  }
+
+  reference operator*() const { return deref(); }
+
+  pointer operator->() const { return &deref(); }
+};
+
+} // namespace Json
+
+
+namespace std {
+/// Specialize std::swap() for Json::Value.
+template<>
+inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
+}
+
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // CPPTL_JSON_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/version.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/version.h
new file mode 100755
index 0000000..9df36d7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/version.h
@@ -0,0 +1,13 @@
+// DO NOT EDIT. This file (and "version") is generated by CMake.
+// Run CMake configure step to update it.
+#ifndef JSON_VERSION_H_INCLUDED
+# define JSON_VERSION_H_INCLUDED
+
+# define JSONCPP_VERSION_STRING "1.6.5"
+# define JSONCPP_VERSION_MAJOR 1
+# define JSONCPP_VERSION_MINOR 6
+# define JSONCPP_VERSION_PATCH 5
+# define JSONCPP_VERSION_QUALIFIER
+# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8))
+
+#endif // JSON_VERSION_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/writer.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/writer.h
new file mode 100755
index 0000000..f94aa1f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/include/writer.h
@@ -0,0 +1,331 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_WRITER_H_INCLUDED
+#define JSON_WRITER_H_INCLUDED
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "value.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <vector>
+#include <string>
+#include <ostream>
+
+// Disable warning C4251: <data member>: <type> needs to have dll-interface to
+// be used by...
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(push)
+#pragma warning(disable : 4251)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+namespace Json {
+
+class Value;
+
+/**
+
+Usage:
+\code
+  using namespace Json;
+  void writeToStdout(StreamWriter::Factory const& factory, Value const& value) {
+    std::unique_ptr<StreamWriter> const writer(
+      factory.newStreamWriter());
+    writer->write(value, &std::cout);
+    std::cout << std::endl;  // add lf and flush
+  }
+\endcode
+*/
+class JSON_API StreamWriter {
+protected:
+  std::ostream* sout_;  // not owned; will not delete
+public:
+  StreamWriter();
+  virtual ~StreamWriter();
+  /** Write Value into document as configured in sub-class.
+      Do not take ownership of sout, but maintain a reference during function.
+      \pre sout != NULL
+      \return zero on success (For now, we always return zero, so check the stream instead.)
+      \throw std::exception possibly, depending on configuration
+   */
+  virtual int write(Value const& root, std::ostream* sout) = 0;
+
+  /** \brief A simple abstract factory.
+   */
+  class JSON_API Factory {
+  public:
+    virtual ~Factory();
+    /** \brief Allocate a CharReader via operator new().
+     * \throw std::exception if something goes wrong (e.g. invalid settings)
+     */
+    virtual StreamWriter* newStreamWriter() const = 0;
+  };  // Factory
+};  // StreamWriter
+
+/** \brief Write into stringstream, then return string, for convenience.
+ * A StreamWriter will be created from the factory, used, and then deleted.
+ */
+std::string JSON_API writeString(StreamWriter::Factory const& factory, Value const& root);
+
+
+/** \brief Build a StreamWriter implementation.
+
+Usage:
+\code
+  using namespace Json;
+  Value value = ...;
+  StreamWriterBuilder builder;
+  builder["commentStyle"] = "None";
+  builder["indentation"] = "   ";  // or whatever you like
+  std::unique_ptr<Json::StreamWriter> writer(
+      builder.newStreamWriter());
+  writer->write(value, &std::cout);
+  std::cout << std::endl;  // add lf and flush
+\endcode
+*/
+class JSON_API StreamWriterBuilder : public StreamWriter::Factory {
+public:
+  // Note: We use a Json::Value so that we can add data-members to this class
+  // without a major version bump.
+  /** Configuration of this builder.
+    Available settings (case-sensitive):
+    - "commentStyle": "None" or "All"
+    - "indentation":  "<anything>"
+    - "enableYAMLCompatibility": false or true
+      - slightly change the whitespace around colons
+    - "dropNullPlaceholders": false or true
+      - Drop the "null" string from the writer's output for nullValues.
+        Strictly speaking, this is not valid JSON. But when the output is being
+        fed to a browser's Javascript, it makes for smaller output and the
+        browser can handle the output just fine.
+    - "useSpecialFloats": false or true
+      - If true, outputs non-finite floating point values in the following way:
+        NaN values as "NaN", positive infinity as "Infinity", and negative infinity
+        as "-Infinity".
+
+    You can examine 'settings_` yourself
+    to see the defaults. You can also write and read them just like any
+    JSON Value.
+    \sa setDefaults()
+    */
+  Json::Value settings_;
+
+  StreamWriterBuilder();
+  ~StreamWriterBuilder() override;
+
+  /**
+   * \throw std::exception if something goes wrong (e.g. invalid settings)
+   */
+  StreamWriter* newStreamWriter() const override;
+
+  /** \return true if 'settings' are legal and consistent;
+   *   otherwise, indicate bad settings via 'invalid'.
+   */
+  bool validate(Json::Value* invalid) const;
+  /** A simple way to update a specific setting.
+   */
+  Value& operator[](std::string key);
+
+  /** Called by ctor, but you can use this to reset settings_.
+   * \pre 'settings' != NULL (but Json::null is fine)
+   * \remark Defaults:
+   * \snippet src/lib_json/json_writer.cpp StreamWriterBuilderDefaults
+   */
+  static void setDefaults(Json::Value* settings);
+};
+
+/** \brief Abstract class for writers.
+ * \deprecated Use StreamWriter. (And really, this is an implementation detail.)
+ */
+class JSON_API Writer {
+public:
+  virtual ~Writer();
+
+  virtual std::string write(const Value& root) = 0;
+};
+
+/** \brief Outputs a Value in <a HREF="http://www.json.org">JSON</a> format
+ *without formatting (not human friendly).
+ *
+ * The JSON document is written in a single line. It is not intended for 'human'
+ *consumption,
+ * but may be usefull to support feature such as RPC where bandwith is limited.
+ * \sa Reader, Value
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API FastWriter : public Writer {
+
+public:
+  FastWriter();
+  ~FastWriter() override {}
+
+  void enableYAMLCompatibility();
+
+  /** \brief Drop the "null" string from the writer's output for nullValues.
+   * Strictly speaking, this is not valid JSON. But when the output is being
+   * fed to a browser's Javascript, it makes for smaller output and the
+   * browser can handle the output just fine.
+   */
+  void dropNullPlaceholders();
+
+  void omitEndingLineFeed();
+
+public: // overridden from Writer
+  std::string write(const Value& root) override;
+
+private:
+  void writeValue(const Value& value);
+
+  std::string document_;
+  bool yamlCompatiblityEnabled_;
+  bool dropNullPlaceholders_;
+  bool omitEndingLineFeed_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ *human friendly way.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ *line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ *types,
+ *       and all the values fit on one lines, then print the array on a single
+ *line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ *#CommentPlacement.
+ *
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledWriter : public Writer {
+public:
+  StyledWriter();
+  ~StyledWriter() override {}
+
+public: // overridden from Writer
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param root Value to serialize.
+   * \return String containing the JSON document that represents the root value.
+   */
+  std::string write(const Value& root) override;
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const std::string& value);
+  void writeIndent();
+  void writeWithIndent(const std::string& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static std::string normalizeEOL(const std::string& text);
+
+  typedef std::vector<std::string> ChildValues;
+
+  ChildValues childValues_;
+  std::string document_;
+  std::string indentString_;
+  int rightMargin_;
+  int indentSize_;
+  bool addChildValues_;
+};
+
+/** \brief Writes a Value in <a HREF="http://www.json.org">JSON</a> format in a
+ human friendly way,
+     to a stream rather than to a string.
+ *
+ * The rules for line break and indent are as follow:
+ * - Object value:
+ *     - if empty then print {} without indent and line break
+ *     - if not empty the print '{', line break & indent, print one value per
+ line
+ *       and then unindent and line break and print '}'.
+ * - Array value:
+ *     - if empty then print [] without indent and line break
+ *     - if the array contains no object value, empty array or some other value
+ types,
+ *       and all the values fit on one lines, then print the array on a single
+ line.
+ *     - otherwise, it the values do not fit on one line, or the array contains
+ *       object or non empty array, then print one value per line.
+ *
+ * If the Value have comments then they are outputed according to their
+ #CommentPlacement.
+ *
+ * \param indentation Each level will be indented by this amount extra.
+ * \sa Reader, Value, Value::setComment()
+ * \deprecated Use StreamWriterBuilder.
+ */
+class JSON_API StyledStreamWriter {
+public:
+  StyledStreamWriter(std::string indentation = "\t");
+  ~StyledStreamWriter() {}
+
+public:
+  /** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
+   * \param out Stream to write to. (Can be ostringstream, e.g.)
+   * \param root Value to serialize.
+   * \note There is no point in deriving from Writer, since write() should not
+   * return a value.
+   */
+  void write(std::ostream& out, const Value& root);
+
+private:
+  void writeValue(const Value& value);
+  void writeArrayValue(const Value& value);
+  bool isMultineArray(const Value& value);
+  void pushValue(const std::string& value);
+  void writeIndent();
+  void writeWithIndent(const std::string& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(const Value& root);
+  void writeCommentAfterValueOnSameLine(const Value& root);
+  bool hasCommentForValue(const Value& value);
+  static std::string normalizeEOL(const std::string& text);
+
+  typedef std::vector<std::string> ChildValues;
+
+  ChildValues childValues_;
+  std::ostream* document_;
+  std::string indentString_;
+  int rightMargin_;
+  std::string indentation_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+};
+
+#if defined(JSON_HAS_INT64)
+std::string JSON_API valueToString(Int value);
+std::string JSON_API valueToString(UInt value);
+#endif // if defined(JSON_HAS_INT64)
+std::string JSON_API valueToString(LargestInt value);
+std::string JSON_API valueToString(LargestUInt value);
+std::string JSON_API valueToString(double value);
+std::string JSON_API valueToString(bool value);
+std::string JSON_API valueToQuotedString(const char* value);
+
+/// \brief Output using the StyledStreamWriter.
+/// \see Json::operator>>()
+JSON_API std::ostream& operator<<(std::ostream&, const Value& root);
+
+} // namespace Json
+
+#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+#pragma warning(pop)
+#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
+
+#endif // JSON_WRITER_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_reader.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_reader.cpp
new file mode 100755
index 0000000..0453574
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_reader.cpp
@@ -0,0 +1,2032 @@
+// Copyright 2007-2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "../include/assertions.h"
+#include "../include/reader.h"
+#include "../include/value.h"
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <utility>
+#include <cstdio>
+#include <cassert>
+#include <cstring>
+#include <istream>
+#include <sstream>
+#include <memory>
+#include <set>
+#include <limits>
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above 
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#define snprintf std::snprintf
+#endif
+
+#if defined(__QNXNTO__)
+#define sscanf std::sscanf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+static int const stackLimit_g = 1000;
+static int       stackDepth_g = 0;  // see readValue()
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<CharReader> CharReaderPtr;
+#else
+typedef std::auto_ptr<CharReader>   CharReaderPtr;
+#endif
+
+// Implementation of class Features
+// ////////////////////////////////
+
+Features::Features()
+    : allowComments_(true), strictRoot_(false),
+      allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {}
+
+Features Features::all() { return Features(); }
+
+Features Features::strictMode() {
+  Features features;
+  features.allowComments_ = false;
+  features.strictRoot_ = true;
+  features.allowDroppedNullPlaceholders_ = false;
+  features.allowNumericKeys_ = false;
+  return features;
+}
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+static bool containsNewLine(Reader::Location begin, Reader::Location end) {
+  for (; begin < end; ++begin)
+    if (*begin == '\n' || *begin == '\r')
+      return true;
+  return false;
+}
+
+// Class Reader
+// //////////////////////////////////////////////////////////////////
+
+Reader::Reader()
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(Features::all()),
+      collectComments_() {}
+
+Reader::Reader(const Features& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(), features_(features), collectComments_() {
+}
+
+bool
+Reader::parse(const std::string& document, Value& root, bool collectComments) {
+  document_ = document;
+  const char* begin = document_.c_str();
+  const char* end = begin + document_.length();
+  return parse(begin, end, root, collectComments);
+}
+
+bool Reader::parse(std::istream& sin, Value& root, bool collectComments) {
+  // std::istream_iterator<char> begin(sin);
+  // std::istream_iterator<char> end;
+  // Those would allow streamed input from a file, if parse() were a
+  // template function.
+
+  // Since std::string is reference-counted, this at least does not
+  // create an extra copy.
+  std::string doc;
+  std::getline(sin, doc, (char)EOF);
+  return parse(doc, root, collectComments);
+}
+
+bool Reader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_g = 0;  // Yes, this is bad coding, but options are limited.
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool Reader::readValue() {
+  // This is a non-reentrant way to support a stackLimit. Terrible!
+  // But this deprecated class has a security problem: Bad input can
+  // cause a seg-fault. This seems like a fair, binary-compatible way
+  // to prevent the problem.
+  if (stackDepth_g >= stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_g;
+
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // Else, fall through...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_g;
+  return successful;
+}
+
+void Reader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool Reader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+  case '-':
+    token.type_ = tokenNumber;
+    readNumber();
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void Reader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool Reader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool Reader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+static std::string normalizeEOL(Reader::Location begin, Reader::Location end) {
+  std::string normalized;
+  normalized.reserve(end - begin);
+  Reader::Location current = begin;
+  while (current != end) {
+    char c = *current++;
+    if (c == '\r') {
+      if (current != end && *current == '\n')
+         // convert dos EOL
+         ++current;
+      // convert Mac EOL
+      normalized += '\n';
+    } else {
+      normalized += c;
+    }
+  }
+  return normalized;
+}
+
+void
+Reader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const std::string& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool Reader::readCStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool Reader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+void Reader::readNumber() {
+  const char *p = current_;
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : 0;
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : 0;
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : 0;
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : 0;
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : 0;
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : 0;
+  }
+}
+
+bool Reader::readString() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+bool Reader::readObject(Token& tokenStart) {
+  Token tokenName;
+  std::string name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = numberName.asString();
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool Reader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (*current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(c - '0');
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative && value == maxIntegerValue)
+    decoded = Value::minLargestInt;
+  else if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  std::string buffer(token.start_, token.end_);
+  std::istringstream is(buffer);
+  if (!(is >> value))
+    return addError("'" + std::string(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool Reader::decodeString(Token& token) {
+  std::string decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool Reader::decodeString(Token& token, std::string& decoded) {
+  decoded.reserve(token.end_ - token.start_ - 2);
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool Reader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  return true;
+}
+
+bool
+Reader::addError(const std::string& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool Reader::recoverFromError(TokenType skipUntilToken) {
+  int errorCount = int(errors_.size());
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool Reader::addErrorAndRecover(const std::string& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& Reader::currentValue() { return *(nodes_.top()); }
+
+Reader::Char Reader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void Reader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+std::string Reader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+// Deprecated. Preserved for backward compatibility
+std::string Reader::getFormatedErrorMessages() const {
+  return getFormattedErrorMessages();
+}
+
+std::string Reader::getFormattedErrorMessages() const {
+  std::string formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<Reader::StructuredError> Reader::getStructuredErrors() const {
+  std::vector<Reader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    Reader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool Reader::pushError(const Value& value, const std::string& message) {
+  size_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::pushError(const Value& value, const std::string& message, const Value& extra) {
+  size_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool Reader::good() const {
+  return !errors_.size();
+}
+
+// exact copy of Features
+class OurFeatures {
+public:
+  static OurFeatures all();
+  bool allowComments_;
+  bool strictRoot_;
+  bool allowDroppedNullPlaceholders_;
+  bool allowNumericKeys_;
+  bool allowSingleQuotes_;
+  bool failIfExtra_;
+  bool rejectDupKeys_;
+  bool allowSpecialFloats_;
+  int stackLimit_;
+};  // OurFeatures
+
+// exact copy of Implementation of class Features
+// ////////////////////////////////
+
+OurFeatures OurFeatures::all() { return OurFeatures(); }
+
+// Implementation of class Reader
+// ////////////////////////////////
+
+// exact copy of Reader, renamed to OurReader
+class OurReader {
+public:
+  typedef char Char;
+  typedef const Char* Location;
+  struct StructuredError {
+    size_t offset_start;
+    size_t offset_limit;
+    std::string message;
+  };
+
+  OurReader(OurFeatures const& features);
+  bool parse(const char* beginDoc,
+             const char* endDoc,
+             Value& root,
+             bool collectComments = true);
+  std::string getFormattedErrorMessages() const;
+  std::vector<StructuredError> getStructuredErrors() const;
+  bool pushError(const Value& value, const std::string& message);
+  bool pushError(const Value& value, const std::string& message, const Value& extra);
+  bool good() const;
+
+private:
+  OurReader(OurReader const&);  // no impl
+  void operator=(OurReader const&);  // no impl
+
+  enum TokenType {
+    tokenEndOfStream = 0,
+    tokenObjectBegin,
+    tokenObjectEnd,
+    tokenArrayBegin,
+    tokenArrayEnd,
+    tokenString,
+    tokenNumber,
+    tokenTrue,
+    tokenFalse,
+    tokenNull,
+    tokenNaN,
+    tokenPosInf,
+    tokenNegInf,
+    tokenArraySeparator,
+    tokenMemberSeparator,
+    tokenComment,
+    tokenError
+  };
+
+  class Token {
+  public:
+    TokenType type_;
+    Location start_;
+    Location end_;
+  };
+
+  class ErrorInfo {
+  public:
+    Token token_;
+    std::string message_;
+    Location extra_;
+  };
+
+  typedef std::deque<ErrorInfo> Errors;
+
+  bool readToken(Token& token);
+  void skipSpaces();
+  bool match(Location pattern, int patternLength);
+  bool readComment();
+  bool readCStyleComment();
+  bool readCppStyleComment();
+  bool readString();
+  bool readStringSingleQuote();
+  bool readNumber(bool checkInf);
+  bool readValue();
+  bool readObject(Token& token);
+  bool readArray(Token& token);
+  bool decodeNumber(Token& token);
+  bool decodeNumber(Token& token, Value& decoded);
+  bool decodeString(Token& token);
+  bool decodeString(Token& token, std::string& decoded);
+  bool decodeDouble(Token& token);
+  bool decodeDouble(Token& token, Value& decoded);
+  bool decodeUnicodeCodePoint(Token& token,
+                              Location& current,
+                              Location end,
+                              unsigned int& unicode);
+  bool decodeUnicodeEscapeSequence(Token& token,
+                                   Location& current,
+                                   Location end,
+                                   unsigned int& unicode);
+  bool addError(const std::string& message, Token& token, Location extra = 0);
+  bool recoverFromError(TokenType skipUntilToken);
+  bool addErrorAndRecover(const std::string& message,
+                          Token& token,
+                          TokenType skipUntilToken);
+  void skipUntilSpace();
+  Value& currentValue();
+  Char getNextChar();
+  void
+  getLocationLineAndColumn(Location location, int& line, int& column) const;
+  std::string getLocationLineAndColumn(Location location) const;
+  void addComment(Location begin, Location end, CommentPlacement placement);
+  void skipCommentTokens(Token& token);
+
+  typedef std::stack<Value*> Nodes;
+  Nodes nodes_;
+  Errors errors_;
+  std::string document_;
+  Location begin_;
+  Location end_;
+  Location current_;
+  Location lastValueEnd_;
+  Value* lastValue_;
+  std::string commentsBefore_;
+  int stackDepth_;
+
+  OurFeatures const features_;
+  bool collectComments_;
+};  // OurReader
+
+// complete copy of Read impl, for OurReader
+
+OurReader::OurReader(OurFeatures const& features)
+    : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
+      lastValue_(), commentsBefore_(),
+      stackDepth_(0),
+      features_(features), collectComments_() {
+}
+
+bool OurReader::parse(const char* beginDoc,
+                   const char* endDoc,
+                   Value& root,
+                   bool collectComments) {
+  if (!features_.allowComments_) {
+    collectComments = false;
+  }
+
+  begin_ = beginDoc;
+  end_ = endDoc;
+  collectComments_ = collectComments;
+  current_ = begin_;
+  lastValueEnd_ = 0;
+  lastValue_ = 0;
+  commentsBefore_ = "";
+  errors_.clear();
+  while (!nodes_.empty())
+    nodes_.pop();
+  nodes_.push(&root);
+
+  stackDepth_ = 0;
+  bool successful = readValue();
+  Token token;
+  skipCommentTokens(token);
+  if (features_.failIfExtra_) {
+    if (token.type_ != tokenError && token.type_ != tokenEndOfStream) {
+      addError("Extra non-whitespace after JSON value.", token);
+      return false;
+    }
+  }
+  if (collectComments_ && !commentsBefore_.empty())
+    root.setComment(commentsBefore_, commentAfter);
+  if (features_.strictRoot_) {
+    if (!root.isArray() && !root.isObject()) {
+      // Set error location to start of doc, ideally should be first token found
+      // in doc
+      token.type_ = tokenError;
+      token.start_ = beginDoc;
+      token.end_ = endDoc;
+      addError(
+          "A valid JSON document must be either an array or an object value.",
+          token);
+      return false;
+    }
+  }
+  return successful;
+}
+
+bool OurReader::readValue() {
+  if (stackDepth_ >= features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue().");
+  ++stackDepth_;
+  Token token;
+  skipCommentTokens(token);
+  bool successful = true;
+
+  if (collectComments_ && !commentsBefore_.empty()) {
+    currentValue().setComment(commentsBefore_, commentBefore);
+    commentsBefore_ = "";
+  }
+
+  switch (token.type_) {
+  case tokenObjectBegin:
+    successful = readObject(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenArrayBegin:
+    successful = readArray(token);
+    currentValue().setOffsetLimit(current_ - begin_);
+    break;
+  case tokenNumber:
+    successful = decodeNumber(token);
+    break;
+  case tokenString:
+    successful = decodeString(token);
+    break;
+  case tokenTrue:
+    {
+    Value v(true);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenFalse:
+    {
+    Value v(false);
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNull:
+    {
+    Value v;
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNaN:
+    {
+    Value v(std::numeric_limits<double>::quiet_NaN());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenPosInf:
+    {
+    Value v(std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenNegInf:
+    {
+    Value v(-std::numeric_limits<double>::infinity());
+    currentValue().swapPayload(v);
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    }
+    break;
+  case tokenArraySeparator:
+  case tokenObjectEnd:
+  case tokenArrayEnd:
+    if (features_.allowDroppedNullPlaceholders_) {
+      // "Un-read" the current token and mark the current value as a null
+      // token.
+      current_--;
+      Value v;
+      currentValue().swapPayload(v);
+      currentValue().setOffsetStart(current_ - begin_ - 1);
+      currentValue().setOffsetLimit(current_ - begin_);
+      break;
+    } // else, fall through ...
+  default:
+    currentValue().setOffsetStart(token.start_ - begin_);
+    currentValue().setOffsetLimit(token.end_ - begin_);
+    return addError("Syntax error: value, object or array expected.", token);
+  }
+
+  if (collectComments_) {
+    lastValueEnd_ = current_;
+    lastValue_ = &currentValue();
+  }
+
+  --stackDepth_;
+  return successful;
+}
+
+void OurReader::skipCommentTokens(Token& token) {
+  if (features_.allowComments_) {
+    do {
+      readToken(token);
+    } while (token.type_ == tokenComment);
+  } else {
+    readToken(token);
+  }
+}
+
+bool OurReader::readToken(Token& token) {
+  skipSpaces();
+  token.start_ = current_;
+  Char c = getNextChar();
+  bool ok = true;
+  switch (c) {
+  case '{':
+    token.type_ = tokenObjectBegin;
+    break;
+  case '}':
+    token.type_ = tokenObjectEnd;
+    break;
+  case '[':
+    token.type_ = tokenArrayBegin;
+    break;
+  case ']':
+    token.type_ = tokenArrayEnd;
+    break;
+  case '"':
+    token.type_ = tokenString;
+    ok = readString();
+    break;
+  case '\'':
+    if (features_.allowSingleQuotes_) {
+    token.type_ = tokenString;
+    ok = readStringSingleQuote();
+    break;
+    } // else continue
+  case '/':
+    token.type_ = tokenComment;
+    ok = readComment();
+    break;
+  case '0':
+  case '1':
+  case '2':
+  case '3':
+  case '4':
+  case '5':
+  case '6':
+  case '7':
+  case '8':
+  case '9':
+    token.type_ = tokenNumber;
+    readNumber(false);
+    break;
+  case '-':
+    if (readNumber(true)) {
+      token.type_ = tokenNumber;
+    } else {
+      token.type_ = tokenNegInf;
+      ok = features_.allowSpecialFloats_ && match("nfinity", 7);
+    }
+    break;
+  case 't':
+    token.type_ = tokenTrue;
+    ok = match("rue", 3);
+    break;
+  case 'f':
+    token.type_ = tokenFalse;
+    ok = match("alse", 4);
+    break;
+  case 'n':
+    token.type_ = tokenNull;
+    ok = match("ull", 3);
+    break;
+  case 'N':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenNaN;
+      ok = match("aN", 2);
+    } else {
+      ok = false;
+    }
+    break;
+  case 'I':
+    if (features_.allowSpecialFloats_) {
+      token.type_ = tokenPosInf;
+      ok = match("nfinity", 7);
+    } else {
+      ok = false;
+    }
+    break;
+  case ',':
+    token.type_ = tokenArraySeparator;
+    break;
+  case ':':
+    token.type_ = tokenMemberSeparator;
+    break;
+  case 0:
+    token.type_ = tokenEndOfStream;
+    break;
+  default:
+    ok = false;
+    break;
+  }
+  if (!ok)
+    token.type_ = tokenError;
+  token.end_ = current_;
+  return true;
+}
+
+void OurReader::skipSpaces() {
+  while (current_ != end_) {
+    Char c = *current_;
+    if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
+      ++current_;
+    else
+      break;
+  }
+}
+
+bool OurReader::match(Location pattern, int patternLength) {
+  if (end_ - current_ < patternLength)
+    return false;
+  int index = patternLength;
+  while (index--)
+    if (current_[index] != pattern[index])
+      return false;
+  current_ += patternLength;
+  return true;
+}
+
+bool OurReader::readComment() {
+  Location commentBegin = current_ - 1;
+  Char c = getNextChar();
+  bool successful = false;
+  if (c == '*')
+    successful = readCStyleComment();
+  else if (c == '/')
+    successful = readCppStyleComment();
+  if (!successful)
+    return false;
+
+  if (collectComments_) {
+    CommentPlacement placement = commentBefore;
+    if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+      if (c != '*' || !containsNewLine(commentBegin, current_))
+        placement = commentAfterOnSameLine;
+    }
+
+    addComment(commentBegin, current_, placement);
+  }
+  return true;
+}
+
+void
+OurReader::addComment(Location begin, Location end, CommentPlacement placement) {
+  assert(collectComments_);
+  const std::string& normalized = normalizeEOL(begin, end);
+  if (placement == commentAfterOnSameLine) {
+    assert(lastValue_ != 0);
+    lastValue_->setComment(normalized, placement);
+  } else {
+    commentsBefore_ += normalized;
+  }
+}
+
+bool OurReader::readCStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '*' && *current_ == '/')
+      break;
+  }
+  return getNextChar() == '/';
+}
+
+bool OurReader::readCppStyleComment() {
+  while (current_ != end_) {
+    Char c = getNextChar();
+    if (c == '\n')
+      break;
+    if (c == '\r') {
+      // Consume DOS EOL. It will be normalized in addComment.
+      if (current_ != end_ && *current_ == '\n')
+        getNextChar();
+      // Break on Moc OS 9 EOL.
+      break;
+    }
+  }
+  return true;
+}
+
+bool OurReader::readNumber(bool checkInf) {
+  const char *p = current_;
+  if (checkInf && p != end_ && *p == 'I') {
+    current_ = ++p;
+    return false;
+  }
+  char c = '0'; // stopgap for already consumed character
+  // integral part
+  while (c >= '0' && c <= '9')
+    c = (current_ = p) < end_ ? *p++ : 0;
+  // fractional part
+  if (c == '.') {
+    c = (current_ = p) < end_ ? *p++ : 0;
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : 0;
+  }
+  // exponential part
+  if (c == 'e' || c == 'E') {
+    c = (current_ = p) < end_ ? *p++ : 0;
+    if (c == '+' || c == '-')
+      c = (current_ = p) < end_ ? *p++ : 0;
+    while (c >= '0' && c <= '9')
+      c = (current_ = p) < end_ ? *p++ : 0;
+  }
+  return true;
+}
+bool OurReader::readString() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '"')
+      break;
+  }
+  return c == '"';
+}
+
+
+bool OurReader::readStringSingleQuote() {
+  Char c = 0;
+  while (current_ != end_) {
+    c = getNextChar();
+    if (c == '\\')
+      getNextChar();
+    else if (c == '\'')
+      break;
+  }
+  return c == '\'';
+}
+
+bool OurReader::readObject(Token& tokenStart) {
+  Token tokenName;
+  std::string name;
+  Value init(objectValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  while (readToken(tokenName)) {
+    bool initialTokenOk = true;
+    while (tokenName.type_ == tokenComment && initialTokenOk)
+      initialTokenOk = readToken(tokenName);
+    if (!initialTokenOk)
+      break;
+    if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+      return true;
+    name = "";
+    if (tokenName.type_ == tokenString) {
+      if (!decodeString(tokenName, name))
+        return recoverFromError(tokenObjectEnd);
+    } else if (tokenName.type_ == tokenNumber && features_.allowNumericKeys_) {
+      Value numberName;
+      if (!decodeNumber(tokenName, numberName))
+        return recoverFromError(tokenObjectEnd);
+      name = numberName.asString();
+    } else {
+      break;
+    }
+
+    Token colon;
+    if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
+      return addErrorAndRecover(
+          "Missing ':' after object member name", colon, tokenObjectEnd);
+    }
+    if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30");
+    if (features_.rejectDupKeys_ && currentValue().isMember(name)) {
+      std::string msg = "Duplicate key: '" + name + "'";
+      return addErrorAndRecover(
+          msg, tokenName, tokenObjectEnd);
+    }
+    Value& value = currentValue()[name];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenObjectEnd);
+
+    Token comma;
+    if (!readToken(comma) ||
+        (comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
+         comma.type_ != tokenComment)) {
+      return addErrorAndRecover(
+          "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+    }
+    bool finalizeTokenOk = true;
+    while (comma.type_ == tokenComment && finalizeTokenOk)
+      finalizeTokenOk = readToken(comma);
+    if (comma.type_ == tokenObjectEnd)
+      return true;
+  }
+  return addErrorAndRecover(
+      "Missing '}' or object member name", tokenName, tokenObjectEnd);
+}
+
+bool OurReader::readArray(Token& tokenStart) {
+  Value init(arrayValue);
+  currentValue().swapPayload(init);
+  currentValue().setOffsetStart(tokenStart.start_ - begin_);
+  skipSpaces();
+  if (*current_ == ']') // empty array
+  {
+    Token endArray;
+    readToken(endArray);
+    return true;
+  }
+  int index = 0;
+  for (;;) {
+    Value& value = currentValue()[index++];
+    nodes_.push(&value);
+    bool ok = readValue();
+    nodes_.pop();
+    if (!ok) // error already set
+      return recoverFromError(tokenArrayEnd);
+
+    Token token;
+    // Accept Comment after last item in the array.
+    ok = readToken(token);
+    while (token.type_ == tokenComment && ok) {
+      ok = readToken(token);
+    }
+    bool badTokenType =
+        (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+    if (!ok || badTokenType) {
+      return addErrorAndRecover(
+          "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+    }
+    if (token.type_ == tokenArrayEnd)
+      break;
+  }
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token) {
+  Value decoded;
+  if (!decodeNumber(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeNumber(Token& token, Value& decoded) {
+  // Attempts to parse the number as an integer. If the number is
+  // larger than the maximum supported value of an integer then
+  // we decode the number as a double.
+  Location current = token.start_;
+  bool isNegative = *current == '-';
+  if (isNegative)
+    ++current;
+  // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+  Value::LargestUInt maxIntegerValue =
+      isNegative ? Value::LargestUInt(-Value::minLargestInt)
+                 : Value::maxLargestUInt;
+  Value::LargestUInt threshold = maxIntegerValue / 10;
+  Value::LargestUInt value = 0;
+  while (current < token.end_) {
+    Char c = *current++;
+    if (c < '0' || c > '9')
+      return decodeDouble(token, decoded);
+    Value::UInt digit(c - '0');
+    if (value >= threshold) {
+      // We've hit or exceeded the max value divided by 10 (rounded down). If
+      // a) we've only just touched the limit, b) this is the last digit, and
+      // c) it's small enough to fit in that rounding delta, we're okay.
+      // Otherwise treat this number as a double to avoid overflow.
+      if (value > threshold || current != token.end_ ||
+          digit > maxIntegerValue % 10) {
+        return decodeDouble(token, decoded);
+      }
+    }
+    value = value * 10 + digit;
+  }
+  if (isNegative)
+    decoded = -Value::LargestInt(value);
+  else if (value <= Value::LargestUInt(Value::maxInt))
+    decoded = Value::LargestInt(value);
+  else
+    decoded = value;
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token) {
+  Value decoded;
+  if (!decodeDouble(token, decoded))
+    return false;
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeDouble(Token& token, Value& decoded) {
+  double value = 0;
+  const int bufferSize = 32;
+  int count;
+  int length = int(token.end_ - token.start_);
+
+  // Sanity check to avoid buffer overflow exploits.
+  if (length < 0) {
+    return addError("Unable to parse token length", token);
+  }
+
+  // Avoid using a string constant for the format control string given to
+  // sscanf, as this can cause hard to debug crashes on OS X. See here for more
+  // info:
+  //
+  //     http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html
+  char format[] = "%lf";
+
+  if (length <= bufferSize) {
+    Char buffer[bufferSize + 1];
+    memcpy(buffer, token.start_, length);
+    buffer[length] = 0;
+    count = sscanf(buffer, format, &value);
+  } else {
+    std::string buffer(token.start_, token.end_);
+    count = sscanf(buffer.c_str(), format, &value);
+  }
+
+  if (count != 1)
+    return addError("'" + std::string(token.start_, token.end_) +
+                        "' is not a number.",
+                    token);
+  decoded = value;
+  return true;
+}
+
+bool OurReader::decodeString(Token& token) {
+  std::string decoded_string;
+  if (!decodeString(token, decoded_string))
+    return false;
+  Value decoded(decoded_string);
+  currentValue().swapPayload(decoded);
+  currentValue().setOffsetStart(token.start_ - begin_);
+  currentValue().setOffsetLimit(token.end_ - begin_);
+  return true;
+}
+
+bool OurReader::decodeString(Token& token, std::string& decoded) {
+  decoded.reserve(token.end_ - token.start_ - 2);
+  Location current = token.start_ + 1; // skip '"'
+  Location end = token.end_ - 1;       // do not include '"'
+  while (current != end) {
+    Char c = *current++;
+    if (c == '"')
+      break;
+    else if (c == '\\') {
+      if (current == end)
+        return addError("Empty escape sequence in string", token, current);
+      Char escape = *current++;
+      switch (escape) {
+      case '"':
+        decoded += '"';
+        break;
+      case '/':
+        decoded += '/';
+        break;
+      case '\\':
+        decoded += '\\';
+        break;
+      case 'b':
+        decoded += '\b';
+        break;
+      case 'f':
+        decoded += '\f';
+        break;
+      case 'n':
+        decoded += '\n';
+        break;
+      case 'r':
+        decoded += '\r';
+        break;
+      case 't':
+        decoded += '\t';
+        break;
+      case 'u': {
+        unsigned int unicode;
+        if (!decodeUnicodeCodePoint(token, current, end, unicode))
+          return false;
+        decoded += codePointToUTF8(unicode);
+      } break;
+      default:
+        return addError("Bad escape sequence in string", token, current);
+      }
+    } else {
+      decoded += c;
+    }
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeCodePoint(Token& token,
+                                    Location& current,
+                                    Location end,
+                                    unsigned int& unicode) {
+
+  if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
+    return false;
+  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
+    // surrogate pairs
+    if (end - current < 6)
+      return addError(
+          "additional six characters expected to parse unicode surrogate pair.",
+          token,
+          current);
+    unsigned int surrogatePair;
+    if (*(current++) == '\\' && *(current++) == 'u') {
+      if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
+        unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
+      } else
+        return false;
+    } else
+      return addError("expecting another \\u token to begin the second half of "
+                      "a unicode surrogate pair",
+                      token,
+                      current);
+  }
+  return true;
+}
+
+bool OurReader::decodeUnicodeEscapeSequence(Token& token,
+                                         Location& current,
+                                         Location end,
+                                         unsigned int& unicode) {
+  if (end - current < 4)
+    return addError(
+        "Bad unicode escape sequence in string: four digits expected.",
+        token,
+        current);
+  unicode = 0;
+  for (int index = 0; index < 4; ++index) {
+    Char c = *current++;
+    unicode *= 16;
+    if (c >= '0' && c <= '9')
+      unicode += c - '0';
+    else if (c >= 'a' && c <= 'f')
+      unicode += c - 'a' + 10;
+    else if (c >= 'A' && c <= 'F')
+      unicode += c - 'A' + 10;
+    else
+      return addError(
+          "Bad unicode escape sequence in string: hexadecimal digit expected.",
+          token,
+          current);
+  }
+  return true;
+}
+
+bool
+OurReader::addError(const std::string& message, Token& token, Location extra) {
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = extra;
+  errors_.push_back(info);
+  return false;
+}
+
+bool OurReader::recoverFromError(TokenType skipUntilToken) {
+  int errorCount = int(errors_.size());
+  Token skip;
+  for (;;) {
+    if (!readToken(skip))
+      errors_.resize(errorCount); // discard errors caused by recovery
+    if (skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream)
+      break;
+  }
+  errors_.resize(errorCount);
+  return false;
+}
+
+bool OurReader::addErrorAndRecover(const std::string& message,
+                                Token& token,
+                                TokenType skipUntilToken) {
+  addError(message, token);
+  return recoverFromError(skipUntilToken);
+}
+
+Value& OurReader::currentValue() { return *(nodes_.top()); }
+
+OurReader::Char OurReader::getNextChar() {
+  if (current_ == end_)
+    return 0;
+  return *current_++;
+}
+
+void OurReader::getLocationLineAndColumn(Location location,
+                                      int& line,
+                                      int& column) const {
+  Location current = begin_;
+  Location lastLineStart = current;
+  line = 0;
+  while (current < location && current != end_) {
+    Char c = *current++;
+    if (c == '\r') {
+      if (*current == '\n')
+        ++current;
+      lastLineStart = current;
+      ++line;
+    } else if (c == '\n') {
+      lastLineStart = current;
+      ++line;
+    }
+  }
+  // column & line start at 1
+  column = int(location - lastLineStart) + 1;
+  ++line;
+}
+
+std::string OurReader::getLocationLineAndColumn(Location location) const {
+  int line, column;
+  getLocationLineAndColumn(location, line, column);
+  char buffer[18 + 16 + 16 + 1];
+  snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+  return buffer;
+}
+
+std::string OurReader::getFormattedErrorMessages() const {
+  std::string formattedMessage;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    formattedMessage +=
+        "* " + getLocationLineAndColumn(error.token_.start_) + "\n";
+    formattedMessage += "  " + error.message_ + "\n";
+    if (error.extra_)
+      formattedMessage +=
+          "See " + getLocationLineAndColumn(error.extra_) + " for detail.\n";
+  }
+  return formattedMessage;
+}
+
+std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const {
+  std::vector<OurReader::StructuredError> allErrors;
+  for (Errors::const_iterator itError = errors_.begin();
+       itError != errors_.end();
+       ++itError) {
+    const ErrorInfo& error = *itError;
+    OurReader::StructuredError structured;
+    structured.offset_start = error.token_.start_ - begin_;
+    structured.offset_limit = error.token_.end_ - begin_;
+    structured.message = error.message_;
+    allErrors.push_back(structured);
+  }
+  return allErrors;
+}
+
+bool OurReader::pushError(const Value& value, const std::string& message) {
+  size_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = end_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = 0;
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::pushError(const Value& value, const std::string& message, const Value& extra) {
+  size_t length = end_ - begin_;
+  if(value.getOffsetStart() > length
+    || value.getOffsetLimit() > length
+    || extra.getOffsetLimit() > length)
+    return false;
+  Token token;
+  token.type_ = tokenError;
+  token.start_ = begin_ + value.getOffsetStart();
+  token.end_ = begin_ + value.getOffsetLimit();
+  ErrorInfo info;
+  info.token_ = token;
+  info.message_ = message;
+  info.extra_ = begin_ + extra.getOffsetStart();
+  errors_.push_back(info);
+  return true;
+}
+
+bool OurReader::good() const {
+  return !errors_.size();
+}
+
+
+class OurCharReader : public CharReader {
+  bool const collectComments_;
+  OurReader reader_;
+public:
+  OurCharReader(
+    bool collectComments,
+    OurFeatures const& features)
+  : collectComments_(collectComments)
+  , reader_(features)
+  {}
+  bool parse(
+      char const* beginDoc, char const* endDoc,
+      Value* root, std::string* errs) override {
+    bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_);
+    if (errs) {
+      *errs = reader_.getFormattedErrorMessages();
+    }
+    return ok;
+  }
+};
+
+CharReaderBuilder::CharReaderBuilder()
+{
+  setDefaults(&settings_);
+}
+CharReaderBuilder::~CharReaderBuilder()
+{}
+CharReader* CharReaderBuilder::newCharReader() const
+{
+  bool collectComments = settings_["collectComments"].asBool();
+  OurFeatures features = OurFeatures::all();
+  features.allowComments_ = settings_["allowComments"].asBool();
+  features.strictRoot_ = settings_["strictRoot"].asBool();
+  features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();
+  features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool();
+  features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool();
+  features.stackLimit_ = settings_["stackLimit"].asInt();
+  features.failIfExtra_ = settings_["failIfExtra"].asBool();
+  features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool();
+  features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool();
+  return new OurCharReader(collectComments, features);
+}
+static void getValidReaderKeys(std::set<std::string>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("collectComments");
+  valid_keys->insert("allowComments");
+  valid_keys->insert("strictRoot");
+  valid_keys->insert("allowDroppedNullPlaceholders");
+  valid_keys->insert("allowNumericKeys");
+  valid_keys->insert("allowSingleQuotes");
+  valid_keys->insert("stackLimit");
+  valid_keys->insert("failIfExtra");
+  valid_keys->insert("rejectDupKeys");
+  valid_keys->insert("allowSpecialFloats");
+}
+bool CharReaderBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<std::string> valid_keys;
+  getValidReaderKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    std::string const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& CharReaderBuilder::operator[](std::string key)
+{
+  return settings_[key];
+}
+// static
+void CharReaderBuilder::strictMode(Json::Value* settings)
+{
+//! [CharReaderBuilderStrictMode]
+  (*settings)["allowComments"] = false;
+  (*settings)["strictRoot"] = true;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = true;
+  (*settings)["rejectDupKeys"] = true;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderStrictMode]
+}
+// static
+void CharReaderBuilder::setDefaults(Json::Value* settings)
+{
+//! [CharReaderBuilderDefaults]
+  (*settings)["collectComments"] = true;
+  (*settings)["allowComments"] = true;
+  (*settings)["strictRoot"] = false;
+  (*settings)["allowDroppedNullPlaceholders"] = false;
+  (*settings)["allowNumericKeys"] = false;
+  (*settings)["allowSingleQuotes"] = false;
+  (*settings)["stackLimit"] = 1000;
+  (*settings)["failIfExtra"] = false;
+  (*settings)["rejectDupKeys"] = false;
+  (*settings)["allowSpecialFloats"] = false;
+//! [CharReaderBuilderDefaults]
+}
+
+//////////////////////////////////
+// global functions
+
+bool parseFromStream(
+    CharReader::Factory const& fact, std::istream& sin,
+    Value* root, std::string* errs)
+{
+  std::ostringstream ssin;
+  ssin << sin.rdbuf();
+  std::string doc = ssin.str();
+  char const* begin = doc.data();
+  char const* end = begin + doc.size();
+  // Note that we do not actually need a null-terminator.
+  CharReaderPtr const reader(fact.newCharReader());
+  return reader->parse(begin, end, root, errs);
+}
+
+std::istream& operator>>(std::istream& sin, Value& root) {
+  CharReaderBuilder b;
+  std::string errs;
+  bool ok = parseFromStream(b, sin, &root, &errs);
+  if (!ok) {
+    fprintf(stderr,
+            "Error from reader: %s",
+            errs.c_str());
+
+    throwRuntimeError(errs);
+  }
+  return sin;
+}
+
+} // namespace Json
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_tool.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_tool.h
new file mode 100755
index 0000000..e65e51b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_tool.h
@@ -0,0 +1,87 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+#define LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+
+/* This header provides common string manipulation support, such as UTF-8,
+ * portable conversion from/to string...
+ *
+ * It is an internal header that must not be exposed.
+ */
+
+namespace Json {
+
+/// Converts a unicode code-point to UTF-8.
+static inline std::string codePointToUTF8(unsigned int cp) {
+  std::string result;
+
+  // based on description from http://en.wikipedia.org/wiki/UTF-8
+
+  if (cp <= 0x7f) {
+    result.resize(1);
+    result[0] = static_cast<char>(cp);
+  } else if (cp <= 0x7FF) {
+    result.resize(2);
+    result[1] = static_cast<char>(0x80 | (0x3f & cp));
+    result[0] = static_cast<char>(0xC0 | (0x1f & (cp >> 6)));
+  } else if (cp <= 0xFFFF) {
+    result.resize(3);
+    result[2] = static_cast<char>(0x80 | (0x3f & cp));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[0] = static_cast<char>(0xE0 | (0xf & (cp >> 12)));
+  } else if (cp <= 0x10FFFF) {
+    result.resize(4);
+    result[3] = static_cast<char>(0x80 | (0x3f & cp));
+    result[2] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
+    result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 12)));
+    result[0] = static_cast<char>(0xF0 | (0x7 & (cp >> 18)));
+  }
+
+  return result;
+}
+
+/// Returns true if ch is a control character (in range [1,31]).
+static inline bool isControlCharacter(char ch) { return ch > 0 && ch <= 0x1F; }
+
+enum {
+  /// Constant that specify the size of the buffer that must be passed to
+  /// uintToString.
+  uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1
+};
+
+// Defines a char buffer for use with uintToString().
+typedef char UIntToStringBuffer[uintToStringBufferSize];
+
+/** Converts an unsigned integer to string.
+ * @param value Unsigned interger to convert to string
+ * @param current Input/Output string buffer.
+ *        Must have at least uintToStringBufferSize chars free.
+ */
+static inline void uintToString(LargestUInt value, char*& current) {
+  *--current = 0;
+  do {
+    *--current = static_cast<signed char>(value % 10U + static_cast<unsigned>('0'));
+    value /= 10;
+  } while (value != 0);
+}
+
+/** Change ',' to '.' everywhere in buffer.
+ *
+ * We had a sophisticated way, but it did not work in WinCE.
+ * @see https://github.com/open-source-parsers/jsoncpp/pull/9
+ */
+static inline void fixNumericLocale(char* begin, char* end) {
+  while (begin < end) {
+    if (*begin == ',') {
+      *begin = '.';
+    }
+    ++begin;
+  }
+}
+
+} // namespace Json {
+
+#endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_value.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_value.cpp
new file mode 100755
index 0000000..616c809
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_value.cpp
@@ -0,0 +1,1541 @@
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "../include/assertions.h"
+#include "../include/value.h"
+#include "../include/writer.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <math.h>
+#include <sstream>
+#include <utility>
+#include <cstring>
+#include <cassert>
+#ifdef JSON_USE_CPPTL
+#include <cpptl/conststring.h>
+#endif
+#include <cstddef> // size_t
+#include <algorithm> // min()
+
+#define JSON_ASSERT_UNREACHABLE assert(false)
+
+namespace Json {
+
+// This is a walkaround to avoid the static initialization of Value::null.
+// kNull must be word-aligned to avoid crashing on ARM.  We use an alignment of
+// 8 (instead of 4) as a bit of future-proofing.
+#if defined(__ARMEL__)
+#define ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
+#else
+#define ALIGNAS(byte_alignment)
+#endif
+static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 };
+const unsigned char& kNullRef = kNull[0];
+const Value& Value::null = reinterpret_cast<const Value&>(kNullRef);
+const Value& Value::nullRef = null;
+
+const Int Value::minInt = Int(~(UInt(-1) / 2));
+const Int Value::maxInt = Int(UInt(-1) / 2);
+const UInt Value::maxUInt = UInt(-1);
+#if defined(JSON_HAS_INT64)
+const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2));
+const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2);
+const UInt64 Value::maxUInt64 = UInt64(-1);
+// The constant is hard-coded because some compiler have trouble
+// converting Value::maxUInt64 to a double correctly (AIX/xlC).
+// Assumes that UInt64 is a 64 bits integer.
+static const double maxUInt64AsDouble = 18446744073709551615.0;
+#endif // defined(JSON_HAS_INT64)
+const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2));
+const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2);
+const LargestUInt Value::maxLargestUInt = LargestUInt(-1);
+
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  return d >= min && d <= max;
+}
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+static inline double integerToDouble(Json::UInt64 value) {
+  return static_cast<double>(Int64(value / 2)) * 2.0 + Int64(value & 1);
+}
+
+template <typename T> static inline double integerToDouble(T value) {
+  return static_cast<double>(value);
+}
+
+template <typename T, typename U>
+static inline bool InRange(double d, T min, U max) {
+  return d >= integerToDouble(min) && d <= integerToDouble(max);
+}
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+
+/** Duplicates the specified string value.
+ * @param value Pointer to the string to duplicate. Must be zero-terminated if
+ *              length is "unknown".
+ * @param length Length of the value. if equals to unknown, then it will be
+ *               computed using strlen(value).
+ * @return Pointer on the duplicate instance of string.
+ */
+static inline char* duplicateStringValue(const char* value,
+                                         size_t length) {
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  if (length >= (size_t)Value::maxInt)
+    length = Value::maxInt - 1;
+
+  char* newString = static_cast<char*>(malloc(length + 1));
+  if (newString == NULL) {
+    throwRuntimeError(
+        "in Json::Value::duplicateStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  memcpy(newString, value, length);
+  newString[length] = 0;
+  return newString;
+}
+
+/* Record the length as a prefix.
+ */
+static inline char* duplicateAndPrefixStringValue(
+    const char* value,
+    unsigned int length)
+{
+  // Avoid an integer overflow in the call to malloc below by limiting length
+  // to a sane value.
+  JSON_ASSERT_MESSAGE(length <= (unsigned)Value::maxInt - sizeof(unsigned) - 1U,
+                      "in Json::Value::duplicateAndPrefixStringValue(): "
+                      "length too big for prefixing");
+  unsigned actualLength = length + static_cast<unsigned>(sizeof(unsigned)) + 1U;
+  char* newString = static_cast<char*>(malloc(actualLength));
+  if (newString == 0) {
+    throwRuntimeError(
+        "in Json::Value::duplicateAndPrefixStringValue(): "
+        "Failed to allocate string value buffer");
+  }
+  *reinterpret_cast<unsigned*>(newString) = length;
+  memcpy(newString + sizeof(unsigned), value, length);
+  newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later
+  return newString;
+}
+inline static void decodePrefixedString(
+    bool isPrefixed, char const* prefixed,
+    unsigned* length, char const** value)
+{
+  if (!isPrefixed) {
+    *length = static_cast<unsigned>(strlen(prefixed));
+    *value = prefixed;
+  } else {
+    *length = *reinterpret_cast<unsigned const*>(prefixed);
+    *value = prefixed + sizeof(unsigned);
+  }
+}
+/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
+ */
+static inline void releaseStringValue(char* value) { free(value); }
+
+} // namespace Json
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// ValueInternals...
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+#if !defined(JSON_IS_AMALGAMATION)
+
+#include "json_valueiterator.inl"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+
+namespace Json {
+
+Exception::Exception(std::string const& msg)
+  : msg_(msg)
+{}
+Exception::~Exception() throw()
+{}
+char const* Exception::what() const throw()
+{
+  return msg_.c_str();
+}
+RuntimeError::RuntimeError(std::string const& msg)
+  : Exception(msg)
+{}
+LogicError::LogicError(std::string const& msg)
+  : Exception(msg)
+{}
+void throwRuntimeError(std::string const& msg)
+{
+  throw RuntimeError(msg);
+}
+void throwLogicError(std::string const& msg)
+{
+  throw LogicError(msg);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CommentInfo
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+Value::CommentInfo::CommentInfo() : comment_(0) {}
+
+Value::CommentInfo::~CommentInfo() {
+  if (comment_)
+    releaseStringValue(comment_);
+}
+
+void Value::CommentInfo::setComment(const char* text, size_t len) {
+  if (comment_) {
+    releaseStringValue(comment_);
+    comment_ = 0;
+  }
+  JSON_ASSERT(text != 0);
+  JSON_ASSERT_MESSAGE(
+      text[0] == '\0' || text[0] == '/',
+      "in Json::Value::setComment(): Comments must start with /");
+  // It seems that /**/ style comments are acceptable as well.
+  comment_ = duplicateStringValue(text, len);
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::CZString
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+// Notes: policy_ indicates if the string was allocated when
+// a string is stored.
+
+Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {}
+
+Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate)
+    : cstr_(str) {
+  // allocate != duplicate
+  storage_.policy_ = allocate & 0x3;
+  storage_.length_ = ulength & 0x3FFFFFFF;
+}
+
+Value::CZString::CZString(const CZString& other)
+    : cstr_(other.storage_.policy_ != noDuplication && other.cstr_ != 0
+                ? duplicateStringValue(other.cstr_, other.storage_.length_)
+                : other.cstr_) {
+  storage_.policy_ = (other.cstr_
+                 ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication
+                     ? noDuplication : duplicate)
+                 : static_cast<DuplicationPolicy>(other.storage_.policy_));
+  storage_.length_ = other.storage_.length_;
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+Value::CZString::CZString(CZString&& other)
+  : cstr_(other.cstr_), index_(other.index_) {
+  other.cstr_ = nullptr;
+}
+#endif
+
+Value::CZString::~CZString() {
+  if (cstr_ && storage_.policy_ == duplicate)
+    releaseStringValue(const_cast<char*>(cstr_));
+}
+
+void Value::CZString::swap(CZString& other) {
+  std::swap(cstr_, other.cstr_);
+  std::swap(index_, other.index_);
+}
+
+Value::CZString& Value::CZString::operator=(CZString other) {
+  swap(other);
+  return *this;
+}
+
+bool Value::CZString::operator<(const CZString& other) const {
+  if (!cstr_) return index_ < other.index_;
+  //return strcmp(cstr_, other.cstr_) < 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  unsigned min_len = std::min(this_len, other_len);
+  int comp = memcmp(this->cstr_, other.cstr_, min_len);
+  if (comp < 0) return true;
+  if (comp > 0) return false;
+  return (this_len < other_len);
+}
+
+bool Value::CZString::operator==(const CZString& other) const {
+  if (!cstr_) return index_ == other.index_;
+  //return strcmp(cstr_, other.cstr_) == 0;
+  // Assume both are strings.
+  unsigned this_len = this->storage_.length_;
+  unsigned other_len = other.storage_.length_;
+  if (this_len != other_len) return false;
+  int comp = memcmp(this->cstr_, other.cstr_, this_len);
+  return comp == 0;
+}
+
+ArrayIndex Value::CZString::index() const { return index_; }
+
+//const char* Value::CZString::c_str() const { return cstr_; }
+const char* Value::CZString::data() const { return cstr_; }
+unsigned Value::CZString::length() const { return storage_.length_; }
+bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; }
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class Value::Value
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+/*! \internal Default constructor initialization must be equivalent to:
+ * memset( this, 0, sizeof(Value) )
+ * This optimization is used in ValueInternalMap fast allocator.
+ */
+Value::Value(ValueType vtype) {
+  initBasic(vtype);
+  switch (vtype) {
+  case nullValue:
+    break;
+  case intValue:
+  case uintValue:
+    value_.int_ = 0;
+    break;
+  case realValue:
+    value_.real_ = 0.0;
+    break;
+  case stringValue:
+    value_.string_ = 0;
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues();
+    break;
+  case booleanValue:
+    value_.bool_ = false;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+}
+
+Value::Value(Int value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+
+Value::Value(UInt value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#if defined(JSON_HAS_INT64)
+Value::Value(Int64 value) {
+  initBasic(intValue);
+  value_.int_ = value;
+}
+Value::Value(UInt64 value) {
+  initBasic(uintValue);
+  value_.uint_ = value;
+}
+#endif // defined(JSON_HAS_INT64)
+
+Value::Value(double value) {
+  initBasic(realValue);
+  value_.real_ = value;
+}
+
+Value::Value(const char* value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(strlen(value)));
+}
+
+Value::Value(const char* beginValue, const char* endValue) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(beginValue, static_cast<unsigned>(endValue - beginValue));
+}
+
+Value::Value(const std::string& value) {
+  initBasic(stringValue, true);
+  value_.string_ =
+      duplicateAndPrefixStringValue(value.data(), static_cast<unsigned>(value.length()));
+}
+
+Value::Value(const StaticString& value) {
+  initBasic(stringValue);
+  value_.string_ = const_cast<char*>(value.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value::Value(const CppTL::ConstString& value) {
+  initBasic(stringValue, true);
+  value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(value.length()));
+}
+#endif
+
+Value::Value(bool value) {
+  initBasic(booleanValue);
+  value_.bool_ = value;
+}
+
+Value::Value(Value const& other)
+    : type_(other.type_), allocated_(false)
+      ,
+      comments_(0), start_(other.start_), limit_(other.limit_)
+{
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    value_ = other.value_;
+    break;
+  case stringValue:
+    if (other.value_.string_ && other.allocated_) {
+      unsigned len;
+      char const* str;
+      decodePrefixedString(other.allocated_, other.value_.string_,
+          &len, &str);
+      value_.string_ = duplicateAndPrefixStringValue(str, len);
+      allocated_ = true;
+    } else {
+      value_.string_ = other.value_.string_;
+      allocated_ = false;
+    }
+    break;
+  case arrayValue:
+  case objectValue:
+    value_.map_ = new ObjectValues(*other.value_.map_);
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  if (other.comments_) {
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+    for (int comment = 0; comment < numberOfCommentPlacement; ++comment) {
+      const CommentInfo& otherComment = other.comments_[comment];
+      if (otherComment.comment_)
+        comments_[comment].setComment(
+            otherComment.comment_, strlen(otherComment.comment_));
+    }
+  }
+}
+
+#if JSON_HAS_RVALUE_REFERENCES
+// Move constructor
+Value::Value(Value&& other) {
+  initBasic(nullValue);
+  swap(other);
+}
+#endif
+
+Value::~Value() {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+    break;
+  case stringValue:
+    if (allocated_)
+      releaseStringValue(value_.string_);
+    break;
+  case arrayValue:
+  case objectValue:
+    delete value_.map_;
+    break;
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+
+  if (comments_)
+    delete[] comments_;
+}
+
+Value& Value::operator=(Value other) {
+  swap(other);
+  return *this;
+}
+
+void Value::swapPayload(Value& other) {
+  ValueType temp = type_;
+  type_ = other.type_;
+  other.type_ = temp;
+  std::swap(value_, other.value_);
+  int temp2 = allocated_;
+  allocated_ = other.allocated_;
+  other.allocated_ = temp2 & 0x1;
+}
+
+void Value::swap(Value& other) {
+  swapPayload(other);
+  std::swap(comments_, other.comments_);
+  std::swap(start_, other.start_);
+  std::swap(limit_, other.limit_);
+}
+
+ValueType Value::type() const { return type_; }
+
+int Value::compare(const Value& other) const {
+  if (*this < other)
+    return -1;
+  if (*this > other)
+    return 1;
+  return 0;
+}
+
+bool Value::operator<(const Value& other) const {
+  int typeDelta = type_ - other.type_;
+  if (typeDelta)
+    return typeDelta < 0 ? true : false;
+  switch (type_) {
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ < other.value_.int_;
+  case uintValue:
+    return value_.uint_ < other.value_.uint_;
+  case realValue:
+    return value_.real_ < other.value_.real_;
+  case booleanValue:
+    return value_.bool_ < other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      if (other.value_.string_) return true;
+      else return false;
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    unsigned min_len = std::min(this_len, other_len);
+    int comp = memcmp(this_str, other_str, min_len);
+    if (comp < 0) return true;
+    if (comp > 0) return false;
+    return (this_len < other_len);
+  }
+  case arrayValue:
+  case objectValue: {
+    int delta = int(value_.map_->size() - other.value_.map_->size());
+    if (delta)
+      return delta < 0;
+    return (*value_.map_) < (*other.value_.map_);
+  }
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator<=(const Value& other) const { return !(other < *this); }
+
+bool Value::operator>=(const Value& other) const { return !(*this < other); }
+
+bool Value::operator>(const Value& other) const { return other < *this; }
+
+bool Value::operator==(const Value& other) const {
+  // if ( type_ != other.type_ )
+  // GCC 2.95.3 says:
+  // attempt to take address of bit-field structure member `Json::Value::type_'
+  // Beats me, but a temp solves the problem.
+  int temp = other.type_;
+  if (type_ != temp)
+    return false;
+  switch (type_) {
+  case nullValue:
+    return true;
+  case intValue:
+    return value_.int_ == other.value_.int_;
+  case uintValue:
+    return value_.uint_ == other.value_.uint_;
+  case realValue:
+    return value_.real_ == other.value_.real_;
+  case booleanValue:
+    return value_.bool_ == other.value_.bool_;
+  case stringValue:
+  {
+    if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+      return (value_.string_ == other.value_.string_);
+    }
+    unsigned this_len;
+    unsigned other_len;
+    char const* this_str;
+    char const* other_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+    if (this_len != other_len) return false;
+    int comp = memcmp(this_str, other_str, this_len);
+    return comp == 0;
+  }
+  case arrayValue:
+  case objectValue:
+    return value_.map_->size() == other.value_.map_->size() &&
+           (*value_.map_) == (*other.value_.map_);
+  default:
+    JSON_ASSERT_UNREACHABLE;
+  }
+  return false; // unreachable
+}
+
+bool Value::operator!=(const Value& other) const { return !(*this == other); }
+
+const char* Value::asCString() const {
+  JSON_ASSERT_MESSAGE(type_ == stringValue,
+                      "in Json::Value::asCString(): requires stringValue");
+  if (value_.string_ == 0) return 0;
+  unsigned this_len;
+  char const* this_str;
+  decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+  return this_str;
+}
+
+bool Value::getString(char const** str, char const** cend) const {
+  if (type_ != stringValue) return false;
+  if (value_.string_ == 0) return false;
+  unsigned length;
+  decodePrefixedString(this->allocated_, this->value_.string_, &length, str);
+  *cend = *str + length;
+  return true;
+}
+
+std::string Value::asString() const {
+  switch (type_) {
+  case nullValue:
+    return "";
+  case stringValue:
+  {
+    if (value_.string_ == 0) return "";
+    unsigned this_len;
+    char const* this_str;
+    decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+    return std::string(this_str, this_len);
+  }
+  case booleanValue:
+    return value_.bool_ ? "true" : "false";
+  case intValue:
+    return valueToString(value_.int_);
+  case uintValue:
+    return valueToString(value_.uint_);
+  case realValue:
+    return valueToString(value_.real_);
+  default:
+    JSON_FAIL_MESSAGE("Type is not convertible to string");
+  }
+}
+
+#ifdef JSON_USE_CPPTL
+CppTL::ConstString Value::asConstString() const {
+  unsigned len;
+  char const* str;
+  decodePrefixedString(allocated_, value_.string_,
+      &len, &str);
+  return CppTL::ConstString(str, len);
+}
+#endif
+
+Value::Int Value::asInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range");
+    return Int(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt(), "LargestUInt out of Int range");
+    return Int(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt, maxInt),
+                        "double out of Int range");
+    return Int(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int.");
+}
+
+Value::UInt Value::asUInt() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range");
+    return UInt(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isUInt(), "LargestUInt out of UInt range");
+    return UInt(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt),
+                        "double out of UInt range");
+    return UInt(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt.");
+}
+
+#if defined(JSON_HAS_INT64)
+
+Value::Int64 Value::asInt64() const {
+  switch (type_) {
+  case intValue:
+    return Int64(value_.int_);
+  case uintValue:
+    JSON_ASSERT_MESSAGE(isInt64(), "LargestUInt out of Int64 range");
+    return Int64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, minInt64, maxInt64),
+                        "double out of Int64 range");
+    return Int64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to Int64.");
+}
+
+Value::UInt64 Value::asUInt64() const {
+  switch (type_) {
+  case intValue:
+    JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range");
+    return UInt64(value_.int_);
+  case uintValue:
+    return UInt64(value_.uint_);
+  case realValue:
+    JSON_ASSERT_MESSAGE(InRange(value_.real_, 0, maxUInt64),
+                        "double out of UInt64 range");
+    return UInt64(value_.real_);
+  case nullValue:
+    return 0;
+  case booleanValue:
+    return value_.bool_ ? 1 : 0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to UInt64.");
+}
+#endif // if defined(JSON_HAS_INT64)
+
+LargestInt Value::asLargestInt() const {
+#if defined(JSON_NO_INT64)
+  return asInt();
+#else
+  return asInt64();
+#endif
+}
+
+LargestUInt Value::asLargestUInt() const {
+#if defined(JSON_NO_INT64)
+  return asUInt();
+#else
+  return asUInt64();
+#endif
+}
+
+double Value::asDouble() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<double>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<double>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return integerToDouble(value_.uint_);
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return value_.real_;
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0 : 0.0;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to double.");
+}
+
+float Value::asFloat() const {
+  switch (type_) {
+  case intValue:
+    return static_cast<float>(value_.int_);
+  case uintValue:
+#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return static_cast<float>(value_.uint_);
+#else  // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+    return integerToDouble(value_.uint_);
+#endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
+  case realValue:
+    return static_cast<float>(value_.real_);
+  case nullValue:
+    return 0.0;
+  case booleanValue:
+    return value_.bool_ ? 1.0f : 0.0f;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to float.");
+}
+
+bool Value::asBool() const {
+  switch (type_) {
+  case booleanValue:
+    return value_.bool_;
+  case nullValue:
+    return false;
+  case intValue:
+    return value_.int_ ? true : false;
+  case uintValue:
+    return value_.uint_ ? true : false;
+  case realValue:
+    // This is kind of strange. Not recommended.
+    return (value_.real_ != 0.0) ? true : false;
+  default:
+    break;
+  }
+  JSON_FAIL_MESSAGE("Value is not convertible to bool.");
+}
+
+bool Value::isConvertibleTo(ValueType other) const {
+  switch (other) {
+  case nullValue:
+    return (isNumeric() && asDouble() == 0.0) ||
+           (type_ == booleanValue && value_.bool_ == false) ||
+           (type_ == stringValue && asString() == "") ||
+           (type_ == arrayValue && value_.map_->size() == 0) ||
+           (type_ == objectValue && value_.map_->size() == 0) ||
+           type_ == nullValue;
+  case intValue:
+    return isInt() ||
+           (type_ == realValue && InRange(value_.real_, minInt, maxInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case uintValue:
+    return isUInt() ||
+           (type_ == realValue && InRange(value_.real_, 0, maxUInt)) ||
+           type_ == booleanValue || type_ == nullValue;
+  case realValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case booleanValue:
+    return isNumeric() || type_ == booleanValue || type_ == nullValue;
+  case stringValue:
+    return isNumeric() || type_ == booleanValue || type_ == stringValue ||
+           type_ == nullValue;
+  case arrayValue:
+    return type_ == arrayValue || type_ == nullValue;
+  case objectValue:
+    return type_ == objectValue || type_ == nullValue;
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return false;
+}
+
+/// Number of values in array or object
+ArrayIndex Value::size() const {
+  switch (type_) {
+  case nullValue:
+  case intValue:
+  case uintValue:
+  case realValue:
+  case booleanValue:
+  case stringValue:
+    return 0;
+  case arrayValue: // size of the array is highest index + 1
+    if (!value_.map_->empty()) {
+      ObjectValues::const_iterator itLast = value_.map_->end();
+      --itLast;
+      return (*itLast).first.index() + 1;
+    }
+    return 0;
+  case objectValue:
+    return ArrayIndex(value_.map_->size());
+  }
+  JSON_ASSERT_UNREACHABLE;
+  return 0; // unreachable;
+}
+
+bool Value::empty() const {
+  if (isNull() || isArray() || isObject())
+    return size() == 0u;
+  else
+    return false;
+}
+
+bool Value::operator!() const { return isNull(); }
+
+void Value::clear() {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue ||
+                          type_ == objectValue,
+                      "in Json::Value::clear(): requires complex value");
+  start_ = 0;
+  limit_ = 0;
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    value_.map_->clear();
+    break;
+  default:
+    break;
+  }
+}
+
+void Value::resize(ArrayIndex newSize) {
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue,
+                      "in Json::Value::resize(): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  ArrayIndex oldSize = size();
+  if (newSize == 0)
+    clear();
+  else if (newSize > oldSize)
+    (*this)[newSize - 1];
+  else {
+    for (ArrayIndex index = newSize; index < oldSize; ++index) {
+      value_.map_->erase(index);
+    }
+    assert(size() == newSize);
+  }
+}
+
+Value& Value::operator[](ArrayIndex index) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex): requires arrayValue");
+  if (type_ == nullValue)
+    *this = Value(arrayValue);
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->lower_bound(key);
+  if (it != value_.map_->end() && (*it).first == key)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(key, nullRef);
+  it = value_.map_->insert(it, defaultValue);
+  return (*it).second;
+}
+
+Value& Value::operator[](int index) {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index): index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+const Value& Value::operator[](ArrayIndex index) const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == arrayValue,
+      "in Json::Value::operator[](ArrayIndex)const: requires arrayValue");
+  if (type_ == nullValue)
+    return nullRef;
+  CZString key(index);
+  ObjectValues::const_iterator it = value_.map_->find(key);
+  if (it == value_.map_->end())
+    return nullRef;
+  return (*it).second;
+}
+
+const Value& Value::operator[](int index) const {
+  JSON_ASSERT_MESSAGE(
+      index >= 0,
+      "in Json::Value::operator[](int index) const: index cannot be negative");
+  return (*this)[ArrayIndex(index)];
+}
+
+void Value::initBasic(ValueType vtype, bool allocated) {
+  type_ = vtype;
+  allocated_ = allocated;
+  comments_ = 0;
+  start_ = 0;
+  limit_ = 0;
+}
+
+// Access an object value by name, create a null member if it does not exist.
+// @pre Type of '*this' is object or null.
+// @param key is null-terminated.
+Value& Value::resolveReference(const char* key) {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(strlen(key)), CZString::noDuplication); // NOTE!
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullRef);
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+// @param key is not null-terminated.
+Value& Value::resolveReference(char const* key, char const* cend)
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::resolveReference(key, end): requires objectValue");
+  if (type_ == nullValue)
+    *this = Value(objectValue);
+  CZString actualKey(
+      key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy);
+  ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+  if (it != value_.map_->end() && (*it).first == actualKey)
+    return (*it).second;
+
+  ObjectValues::value_type defaultValue(actualKey, nullRef);
+  it = value_.map_->insert(it, defaultValue);
+  Value& value = (*it).second;
+  return value;
+}
+
+Value Value::get(ArrayIndex index, const Value& defaultValue) const {
+  const Value* value = &((*this)[index]);
+  return value == &nullRef ? defaultValue : *value;
+}
+
+bool Value::isValidIndex(ArrayIndex index) const { return index < size(); }
+
+Value const* Value::find(char const* key, char const* cend) const
+{
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::find(key, end, found): requires objectValue or nullValue");
+  if (type_ == nullValue) return NULL;
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::const_iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end()) return NULL;
+  return &(*it).second;
+}
+const Value& Value::operator[](const char* key) const
+{
+  Value const* found = find(key, key + strlen(key));
+  if (!found) return nullRef;
+  return *found;
+}
+Value const& Value::operator[](std::string const& key) const
+{
+  Value const* found = find(key.data(), key.data() + key.length());
+  if (!found) return nullRef;
+  return *found;
+}
+
+Value& Value::operator[](const char* key) {
+  return resolveReference(key, key + strlen(key));
+}
+
+Value& Value::operator[](const std::string& key) {
+  return resolveReference(key.data(), key.data() + key.length());
+}
+
+Value& Value::operator[](const StaticString& key) {
+  return resolveReference(key.c_str());
+}
+
+#ifdef JSON_USE_CPPTL
+Value& Value::operator[](const CppTL::ConstString& key) {
+  return resolveReference(key.c_str(), key.end_c_str());
+}
+Value const& Value::operator[](CppTL::ConstString const& key) const
+{
+  Value const* found = find(key.c_str(), key.end_c_str());
+  if (!found) return nullRef;
+  return *found;
+}
+#endif
+
+Value& Value::append(const Value& value) { return (*this)[size()] = value; }
+
+Value Value::get(char const* key, char const* cend, Value const& defaultValue) const
+{
+  Value const* found = find(key, cend);
+  return !found ? defaultValue : *found;
+}
+Value Value::get(char const* key, Value const& defaultValue) const
+{
+  return get(key, key + strlen(key), defaultValue);
+}
+Value Value::get(std::string const& key, Value const& defaultValue) const
+{
+  return get(key.data(), key.data() + key.length(), defaultValue);
+}
+
+
+bool Value::removeMember(const char* key, const char* cend, Value* removed)
+{
+  if (type_ != objectValue) {
+    return false;
+  }
+  CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+  ObjectValues::iterator it = value_.map_->find(actualKey);
+  if (it == value_.map_->end())
+    return false;
+  *removed = it->second;
+  value_.map_->erase(it);
+  return true;
+}
+bool Value::removeMember(const char* key, Value* removed)
+{
+  return removeMember(key, key + strlen(key), removed);
+}
+bool Value::removeMember(std::string const& key, Value* removed)
+{
+  return removeMember(key.data(), key.data() + key.length(), removed);
+}
+Value Value::removeMember(const char* key)
+{
+  JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue,
+                      "in Json::Value::removeMember(): requires objectValue");
+  if (type_ == nullValue)
+    return nullRef;
+
+  Value removed;  // null
+  removeMember(key, key + strlen(key), &removed);
+  return removed; // still null if removeMember() did nothing
+}
+Value Value::removeMember(const std::string& key)
+{
+  return removeMember(key.c_str());
+}
+
+bool Value::removeIndex(ArrayIndex index, Value* removed) {
+  if (type_ != arrayValue) {
+    return false;
+  }
+  CZString key(index);
+  ObjectValues::iterator it = value_.map_->find(key);
+  if (it == value_.map_->end()) {
+    return false;
+  }
+  *removed = it->second;
+  ArrayIndex oldSize = size();
+  // shift left all items left, into the place of the "removed"
+  for (ArrayIndex i = index; i < (oldSize - 1); ++i){
+    CZString keey(i);
+    (*value_.map_)[keey] = (*this)[i + 1];
+  }
+  // erase the last one ("leftover")
+  CZString keyLast(oldSize - 1);
+  ObjectValues::iterator itLast = value_.map_->find(keyLast);
+  value_.map_->erase(itLast);
+  return true;
+}
+
+#ifdef JSON_USE_CPPTL
+Value Value::get(const CppTL::ConstString& key,
+                 const Value& defaultValue) const {
+  return get(key.c_str(), key.end_c_str(), defaultValue);
+}
+#endif
+
+bool Value::isMember(char const* key, char const* cend) const
+{
+  Value const* value = find(key, cend);
+  return NULL != value;
+}
+bool Value::isMember(char const* key) const
+{
+  return isMember(key, key + strlen(key));
+}
+bool Value::isMember(std::string const& key) const
+{
+  return isMember(key.data(), key.data() + key.length());
+}
+
+#ifdef JSON_USE_CPPTL
+bool Value::isMember(const CppTL::ConstString& key) const {
+  return isMember(key.c_str(), key.end_c_str());
+}
+#endif
+
+Value::Members Value::getMemberNames() const {
+  JSON_ASSERT_MESSAGE(
+      type_ == nullValue || type_ == objectValue,
+      "in Json::Value::getMemberNames(), value must be objectValue");
+  if (type_ == nullValue)
+    return Value::Members();
+  Members members;
+  members.reserve(value_.map_->size());
+  ObjectValues::const_iterator it = value_.map_->begin();
+  ObjectValues::const_iterator itEnd = value_.map_->end();
+  for (; it != itEnd; ++it) {
+    members.push_back(std::string((*it).first.data(),
+                                  (*it).first.length()));
+  }
+  return members;
+}
+//
+//# ifdef JSON_USE_CPPTL
+// EnumMemberNames
+// Value::enumMemberNames() const
+//{
+//   if ( type_ == objectValue )
+//   {
+//      return CppTL::Enum::any(  CppTL::Enum::transform(
+//         CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ),
+//         MemberNamesTransform() ) );
+//   }
+//   return EnumMemberNames();
+//}
+//
+//
+// EnumValues
+// Value::enumValues() const
+//{
+//   if ( type_ == objectValue  ||  type_ == arrayValue )
+//      return CppTL::Enum::anyValues( *(value_.map_),
+//                                     CppTL::Type<const Value &>() );
+//   return EnumValues();
+//}
+//
+//# endif
+
+static bool IsIntegral(double d) {
+  double integral_part;
+  return modf(d, &integral_part) == 0.0;
+}
+
+bool Value::isNull() const { return type_ == nullValue; }
+
+bool Value::isBool() const { return type_ == booleanValue; }
+
+bool Value::isInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= minInt && value_.int_ <= maxInt;
+  case uintValue:
+    return value_.uint_ <= UInt(maxInt);
+  case realValue:
+    return value_.real_ >= minInt && value_.real_ <= maxInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isUInt() const {
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt);
+  case uintValue:
+    return value_.uint_ <= maxUInt;
+  case realValue:
+    return value_.real_ >= 0 && value_.real_ <= maxUInt &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+  return false;
+}
+
+bool Value::isInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return true;
+  case uintValue:
+    return value_.uint_ <= UInt64(maxInt64);
+  case realValue:
+    // Note that maxInt64 (= 2^63 - 1) is not exactly representable as a
+    // double, so double(maxInt64) will be rounded up to 2^63. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= double(minInt64) &&
+           value_.real_ < double(maxInt64) && IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isUInt64() const {
+#if defined(JSON_HAS_INT64)
+  switch (type_) {
+  case intValue:
+    return value_.int_ >= 0;
+  case uintValue:
+    return true;
+  case realValue:
+    // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
+    // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
+    // require the value to be strictly less than the limit.
+    return value_.real_ >= 0 && value_.real_ < maxUInt64AsDouble &&
+           IsIntegral(value_.real_);
+  default:
+    break;
+  }
+#endif // JSON_HAS_INT64
+  return false;
+}
+
+bool Value::isIntegral() const {
+#if defined(JSON_HAS_INT64)
+  return isInt64() || isUInt64();
+#else
+  return isInt() || isUInt();
+#endif
+}
+
+bool Value::isDouble() const { return type_ == realValue || isIntegral(); }
+
+bool Value::isNumeric() const { return isIntegral() || isDouble(); }
+
+bool Value::isString() const { return type_ == stringValue; }
+
+bool Value::isArray() const { return type_ == arrayValue; }
+
+bool Value::isObject() const { return type_ == objectValue; }
+
+void Value::setComment(const char* comment, size_t len, CommentPlacement placement) {
+  if (!comments_)
+    comments_ = new CommentInfo[numberOfCommentPlacement];
+  if ((len > 0) && (comment[len-1] == '\n')) {
+    // Always discard trailing newline, to aid indentation.
+    len -= 1;
+  }
+  comments_[placement].setComment(comment, len);
+}
+
+void Value::setComment(const char* comment, CommentPlacement placement) {
+  setComment(comment, strlen(comment), placement);
+}
+
+void Value::setComment(const std::string& comment, CommentPlacement placement) {
+  setComment(comment.c_str(), comment.length(), placement);
+}
+
+bool Value::hasComment(CommentPlacement placement) const {
+  return comments_ != 0 && comments_[placement].comment_ != 0;
+}
+
+std::string Value::getComment(CommentPlacement placement) const {
+  if (hasComment(placement))
+    return comments_[placement].comment_;
+  return "";
+}
+
+void Value::setOffsetStart(size_t start) { start_ = start; }
+
+void Value::setOffsetLimit(size_t limit) { limit_ = limit; }
+
+size_t Value::getOffsetStart() const { return start_; }
+
+size_t Value::getOffsetLimit() const { return limit_; }
+
+std::string Value::toStyledString() const {
+  StyledWriter writer;
+  return writer.write(*this);
+}
+
+Value::const_iterator Value::begin() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::const_iterator Value::end() const {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return const_iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return const_iterator();
+}
+
+Value::iterator Value::begin() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->begin());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+Value::iterator Value::end() {
+  switch (type_) {
+  case arrayValue:
+  case objectValue:
+    if (value_.map_)
+      return iterator(value_.map_->end());
+    break;
+  default:
+    break;
+  }
+  return iterator();
+}
+
+// class PathArgument
+// //////////////////////////////////////////////////////////////////
+
+PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {}
+
+PathArgument::PathArgument(ArrayIndex index)
+    : key_(), index_(index), kind_(kindIndex) {}
+
+PathArgument::PathArgument(const char* key)
+    : key_(key), index_(), kind_(kindKey) {}
+
+PathArgument::PathArgument(const std::string& key)
+    : key_(key.c_str()), index_(), kind_(kindKey) {}
+
+// class Path
+// //////////////////////////////////////////////////////////////////
+
+Path::Path(const std::string& path,
+           const PathArgument& a1,
+           const PathArgument& a2,
+           const PathArgument& a3,
+           const PathArgument& a4,
+           const PathArgument& a5) {
+  InArgs in;
+  in.push_back(&a1);
+  in.push_back(&a2);
+  in.push_back(&a3);
+  in.push_back(&a4);
+  in.push_back(&a5);
+  makePath(path, in);
+}
+
+void Path::makePath(const std::string& path, const InArgs& in) {
+  const char* current = path.c_str();
+  const char* end = current + path.length();
+  InArgs::const_iterator itInArg = in.begin();
+  while (current != end) {
+    if (*current == '[') {
+      ++current;
+      if (*current == '%')
+        addPathInArg(path, in, itInArg, PathArgument::kindIndex);
+      else {
+        ArrayIndex index = 0;
+        for (; current != end && *current >= '0' && *current <= '9'; ++current)
+          index = index * 10 + ArrayIndex(*current - '0');
+        args_.push_back(index);
+      }
+      if (current == end || *current++ != ']')
+        invalidPath(path, int(current - path.c_str()));
+    } else if (*current == '%') {
+      addPathInArg(path, in, itInArg, PathArgument::kindKey);
+      ++current;
+    } else if (*current == '.') {
+      ++current;
+    } else {
+      const char* beginName = current;
+      while (current != end && !strchr("[.", *current))
+        ++current;
+      args_.push_back(std::string(beginName, current));
+    }
+  }
+}
+
+void Path::addPathInArg(const std::string& /*path*/,
+                        const InArgs& in,
+                        InArgs::const_iterator& itInArg,
+                        PathArgument::Kind kind) {
+  if (itInArg == in.end()) {
+    // Error: missing argument %d
+  } else if ((*itInArg)->kind_ != kind) {
+    // Error: bad argument type
+  } else {
+    args_.push_back(**itInArg);
+  }
+}
+
+void Path::invalidPath(const std::string& /*path*/, int /*location*/) {
+  // Error: invalid path.
+}
+
+const Value& Path::resolve(const Value& root) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_)) {
+        // Error: unable to resolve path (array value expected at position...
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: unable to resolve path (object value expected at position...)
+      }
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullRef) {
+        // Error: unable to resolve path (object has no member named '' at
+        // position...)
+      }
+    }
+  }
+  return *node;
+}
+
+Value Path::resolve(const Value& root, const Value& defaultValue) const {
+  const Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray() || !node->isValidIndex(arg.index_))
+        return defaultValue;
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject())
+        return defaultValue;
+      node = &((*node)[arg.key_]);
+      if (node == &Value::nullRef)
+        return defaultValue;
+    }
+  }
+  return *node;
+}
+
+Value& Path::make(Value& root) const {
+  Value* node = &root;
+  for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
+    const PathArgument& arg = *it;
+    if (arg.kind_ == PathArgument::kindIndex) {
+      if (!node->isArray()) {
+        // Error: node is not an array at position ...
+      }
+      node = &((*node)[arg.index_]);
+    } else if (arg.kind_ == PathArgument::kindKey) {
+      if (!node->isObject()) {
+        // Error: node is not an object at position...
+      }
+      node = &((*node)[arg.key_]);
+    }
+  }
+  return *node;
+}
+
+} // namespace Json
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_valueiterator.inl b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_valueiterator.inl
new file mode 100755
index 0000000..ec9c851
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_valueiterator.inl
@@ -0,0 +1,167 @@
+// Copyright 2007-2010 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+// included by json_value.cpp
+
+namespace Json {
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIteratorBase
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIteratorBase::ValueIteratorBase()
+    : current_(), isNull_(true) {
+}
+
+ValueIteratorBase::ValueIteratorBase(
+    const Value::ObjectValues::iterator& current)
+    : current_(current), isNull_(false) {}
+
+Value& ValueIteratorBase::deref() const {
+  return current_->second;
+}
+
+void ValueIteratorBase::increment() {
+  ++current_;
+}
+
+void ValueIteratorBase::decrement() {
+  --current_;
+}
+
+ValueIteratorBase::difference_type
+ValueIteratorBase::computeDistance(const SelfType& other) const {
+#ifdef JSON_USE_CPPTL_SMALLMAP
+  return other.current_ - current_;
+#else
+  // Iterator for null value are initialized using the default
+  // constructor, which initialize current_ to the default
+  // std::map::iterator. As begin() and end() are two instance
+  // of the default std::map::iterator, they can not be compared.
+  // To allow this, we handle this comparison specifically.
+  if (isNull_ && other.isNull_) {
+    return 0;
+  }
+
+  // Usage of std::distance is not portable (does not compile with Sun Studio 12
+  // RogueWave STL,
+  // which is the one used by default).
+  // Using a portable hand-made version for non random iterator instead:
+  //   return difference_type( std::distance( current_, other.current_ ) );
+  difference_type myDistance = 0;
+  for (Value::ObjectValues::iterator it = current_; it != other.current_;
+       ++it) {
+    ++myDistance;
+  }
+  return myDistance;
+#endif
+}
+
+bool ValueIteratorBase::isEqual(const SelfType& other) const {
+  if (isNull_) {
+    return other.isNull_;
+  }
+  return current_ == other.current_;
+}
+
+void ValueIteratorBase::copy(const SelfType& other) {
+  current_ = other.current_;
+  isNull_ = other.isNull_;
+}
+
+Value ValueIteratorBase::key() const {
+  const Value::CZString czstring = (*current_).first;
+  if (czstring.data()) {
+    if (czstring.isStaticString())
+      return Value(StaticString(czstring.data()));
+    return Value(czstring.data(), czstring.data() + czstring.length());
+  }
+  return Value(czstring.index());
+}
+
+UInt ValueIteratorBase::index() const {
+  const Value::CZString czstring = (*current_).first;
+  if (!czstring.data())
+    return czstring.index();
+  return Value::UInt(-1);
+}
+
+std::string ValueIteratorBase::name() const {
+  char const* keey;
+  char const* end;
+  keey = memberName(&end);
+  if (!keey) return std::string();
+  return std::string(keey, end);
+}
+
+char const* ValueIteratorBase::memberName() const {
+  const char* cname = (*current_).first.data();
+  return cname ? cname : "";
+}
+
+char const* ValueIteratorBase::memberName(char const** end) const {
+  const char* cname = (*current_).first.data();
+  if (!cname) {
+    *end = NULL;
+    return NULL;
+  }
+  *end = cname + (*current_).first.length();
+  return cname;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueConstIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueConstIterator::ValueConstIterator() {}
+
+ValueConstIterator::ValueConstIterator(
+    const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueConstIterator::ValueConstIterator(ValueIterator const& other)
+    : ValueIteratorBase(other) {}
+
+ValueConstIterator& ValueConstIterator::
+operator=(const ValueIteratorBase& other) {
+  copy(other);
+  return *this;
+}
+
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// class ValueIterator
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+// //////////////////////////////////////////////////////////////////
+
+ValueIterator::ValueIterator() {}
+
+ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current)
+    : ValueIteratorBase(current) {}
+
+ValueIterator::ValueIterator(const ValueConstIterator& other)
+    : ValueIteratorBase(other) {
+  throwRuntimeError("ConstIterator to Iterator should never be allowed.");
+}
+
+ValueIterator::ValueIterator(const ValueIterator& other)
+    : ValueIteratorBase(other) {}
+
+ValueIterator& ValueIterator::operator=(const SelfType& other) {
+  copy(other);
+  return *this;
+}
+
+} // namespace Json
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_writer.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_writer.cpp
new file mode 100755
index 0000000..0751b06
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/dependencies/jsoncpp/src/json_writer.cpp
@@ -0,0 +1,1214 @@
+// Copyright 2011 Baptiste Lepilleur
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#if !defined(JSON_IS_AMALGAMATION)
+#include "../include/writer.h"
+#include "json_tool.h"
+#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <iomanip>
+#include <memory>
+#include <sstream>
+#include <utility>
+#include <set>
+#include <cassert>
+#include <cstring>
+#include <cstdio>
+
+#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0
+#include <float.h>
+#define isfinite _finite
+#elif defined(__sun) && defined(__SVR4) //Solaris
+#if !defined(isfinite)
+#include <ieeefp.h>
+#define isfinite finite
+#endif
+#elif defined(_AIX)
+#if !defined(isfinite)
+#include <math.h>
+#define isfinite finite
+#endif
+#elif defined(__hpux)
+#if !defined(isfinite)
+#if defined(__ia64) && !defined(finite)
+#define isfinite(x) ((sizeof(x) == sizeof(float) ? \
+                     _Isfinitef(x) : _IsFinite(x)))
+#else
+#include <math.h>
+#define isfinite finite
+#endif
+#endif
+#else
+#include <cmath>
+#if !(defined(__QNXNTO__)) // QNX already defines isfinite
+#define isfinite std::isfinite
+#endif
+#endif
+
+#if defined(_MSC_VER)
+#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
+#define snprintf sprintf_s
+#elif _MSC_VER >= 1900 // VC++ 14.0 and above
+#define snprintf std::snprintf
+#else
+#define snprintf _snprintf
+#endif
+#elif defined(__ANDROID__) || defined(__QNXNTO__)
+#define snprintf snprintf
+#elif __cplusplus >= 201103L
+#define snprintf std::snprintf
+#endif
+
+#if defined(__BORLANDC__)  
+#include <float.h>
+#define isfinite _finite
+#define snprintf _snprintf
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+// Disable warning about strdup being deprecated.
+#pragma warning(disable : 4996)
+#endif
+
+namespace Json {
+
+#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
+typedef std::unique_ptr<StreamWriter> StreamWriterPtr;
+#else
+typedef std::auto_ptr<StreamWriter>   StreamWriterPtr;
+#endif
+
+static bool containsControlCharacter(const char* str) {
+  while (*str) {
+    if (isControlCharacter(*(str++)))
+      return true;
+  }
+  return false;
+}
+
+static bool containsControlCharacter0(const char* str, unsigned len) {
+  char const* end = str + len;
+  while (end != str) {
+    if (isControlCharacter(*str) || 0==*str)
+      return true;
+    ++str;
+  }
+  return false;
+}
+
+std::string valueToString(LargestInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  if (value == Value::minLargestInt) {
+    uintToString(LargestUInt(Value::maxLargestInt) + 1, current);
+    *--current = '-';
+  } else if (value < 0) {
+    uintToString(LargestUInt(-value), current);
+    *--current = '-';
+  } else {
+    uintToString(LargestUInt(value), current);
+  }
+  assert(current >= buffer);
+  return current;
+}
+
+std::string valueToString(LargestUInt value) {
+  UIntToStringBuffer buffer;
+  char* current = buffer + sizeof(buffer);
+  uintToString(value, current);
+  assert(current >= buffer);
+  return current;
+}
+
+#if defined(JSON_HAS_INT64)
+
+std::string valueToString(Int value) {
+  return valueToString(LargestInt(value));
+}
+
+std::string valueToString(UInt value) {
+  return valueToString(LargestUInt(value));
+}
+
+#endif // # if defined(JSON_HAS_INT64)
+
+std::string valueToString(double value, bool useSpecialFloats, unsigned int precision) {
+  // Allocate a buffer that is more than large enough to store the 16 digits of
+  // precision requested below.
+  char buffer[32];
+  int len = -1;
+
+  char formatString[6];
+  sprintf(formatString, "%%.%dg", precision);
+
+  // Print into the buffer. We need not request the alternative representation
+  // that always has a decimal point because JSON doesn't distingish the
+  // concepts of reals and integers.
+  if (isfinite(value)) {
+    len = snprintf(buffer, sizeof(buffer), formatString, value);
+  } else {
+    // IEEE standard states that NaN values will not compare to themselves
+    if (value != value) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null");
+    } else if (value < 0) {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999");
+    } else {
+      len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999");
+    }
+    // For those, we do not need to call fixNumLoc, but it is fast.
+  }
+  assert(len >= 0);
+  fixNumericLocale(buffer, buffer + len);
+  return buffer;
+}
+
+std::string valueToString(double value) { return valueToString(value, false, 17); }
+
+std::string valueToString(bool value) { return value ? "true" : "false"; }
+
+std::string valueToQuotedString(const char* value) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL &&
+      !containsControlCharacter(value))
+    return std::string("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to std::string is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  std::string::size_type maxsize =
+      strlen(value) * 2 + 3; // allescaped+quotes+NULL
+  std::string result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  for (const char* c = value; *c != 0; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if (isControlCharacter(*c)) {
+        std::ostringstream oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// https://github.com/upcaste/upcaste/blob/master/src/upcore/src/cstring/strnpbrk.cpp
+static char const* strnpbrk(char const* s, char const* accept, size_t n) {
+  assert((s || !n) && accept);
+
+  char const* const end = s + n;
+  for (char const* cur = s; cur < end; ++cur) {
+    int const c = *cur;
+    for (char const* a = accept; *a; ++a) {
+      if (*a == c) {
+        return cur;
+      }
+    }
+  }
+  return NULL;
+}
+static std::string valueToQuotedStringN(const char* value, unsigned length) {
+  if (value == NULL)
+    return "";
+  // Not sure how to handle unicode...
+  if (strnpbrk(value, "\"\\\b\f\n\r\t", length) == NULL &&
+      !containsControlCharacter0(value, length))
+    return std::string("\"") + value + "\"";
+  // We have to walk value and escape any special characters.
+  // Appending to std::string is not efficient, but this should be rare.
+  // (Note: forward slashes are *not* rare, but I am not escaping them.)
+  std::string::size_type maxsize =
+      length * 2 + 3; // allescaped+quotes+NULL
+  std::string result;
+  result.reserve(maxsize); // to avoid lots of mallocs
+  result += "\"";
+  char const* end = value + length;
+  for (const char* c = value; c != end; ++c) {
+    switch (*c) {
+    case '\"':
+      result += "\\\"";
+      break;
+    case '\\':
+      result += "\\\\";
+      break;
+    case '\b':
+      result += "\\b";
+      break;
+    case '\f':
+      result += "\\f";
+      break;
+    case '\n':
+      result += "\\n";
+      break;
+    case '\r':
+      result += "\\r";
+      break;
+    case '\t':
+      result += "\\t";
+      break;
+    // case '/':
+    // Even though \/ is considered a legal escape in JSON, a bare
+    // slash is also legal, so I see no reason to escape it.
+    // (I hope I am not misunderstanding something.)
+    // blep notes: actually escaping \/ may be useful in javascript to avoid </
+    // sequence.
+    // Should add a flag to allow this compatibility mode and prevent this
+    // sequence from occurring.
+    default:
+      if ((isControlCharacter(*c)) || (*c == 0)) {
+        std::ostringstream oss;
+        oss << "\\u" << std::hex << std::uppercase << std::setfill('0')
+            << std::setw(4) << static_cast<int>(*c);
+        result += oss.str();
+      } else {
+        result += *c;
+      }
+      break;
+    }
+  }
+  result += "\"";
+  return result;
+}
+
+// Class Writer
+// //////////////////////////////////////////////////////////////////
+Writer::~Writer() {}
+
+// Class FastWriter
+// //////////////////////////////////////////////////////////////////
+
+FastWriter::FastWriter()
+    : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false),
+      omitEndingLineFeed_(false) {}
+
+void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; }
+
+void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
+
+void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
+
+std::string FastWriter::write(const Value& root) {
+  document_ = "";
+  writeValue(root);
+  if (!omitEndingLineFeed_)
+    document_ += "\n";
+  return document_;
+}
+
+void FastWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    if (!dropNullPlaceholders_)
+      document_ += "null";
+    break;
+  case intValue:
+    document_ += valueToString(value.asLargestInt());
+    break;
+  case uintValue:
+    document_ += valueToString(value.asLargestUInt());
+    break;
+  case realValue:
+    document_ += valueToString(value.asDouble());
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_?
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str));
+    break;
+  }
+  case booleanValue:
+    document_ += valueToString(value.asBool());
+    break;
+  case arrayValue: {
+    document_ += '[';
+    int size = value.size();
+    for (int index = 0; index < size; ++index) {
+      if (index > 0)
+        document_ += ',';
+      writeValue(value[index]);
+    }
+    document_ += ']';
+  } break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    document_ += '{';
+    for (Value::Members::iterator it = members.begin(); it != members.end();
+         ++it) {
+      const std::string& name = *it;
+      if (it != members.begin())
+        document_ += ',';
+      document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
+      document_ += yamlCompatiblityEnabled_ ? ": " : ":";
+      writeValue(value[name]);
+    }
+    document_ += '}';
+  } break;
+  }
+}
+
+// Class StyledWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledWriter::StyledWriter()
+    : rightMargin_(74), indentSize_(3), addChildValues_() {}
+
+std::string StyledWriter::write(const Value& root) {
+  document_ = "";
+  addChildValues_ = false;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  document_ += "\n";
+  return document_;
+}
+
+void StyledWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_?
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const std::string& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        document_ += " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          writeIndent();
+          writeValue(childValue);
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        document_ += ',';
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      document_ += "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          document_ += ", ";
+        document_ += childValues_[index];
+      }
+      document_ += " ]";
+    }
+  }
+}
+
+bool StyledWriter::isMultineArray(const Value& value) {
+  int size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (int index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (int index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += int(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledWriter::pushValue(const std::string& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    document_ += value;
+}
+
+void StyledWriter::writeIndent() {
+  if (!document_.empty()) {
+    char last = document_[document_.length() - 1];
+    if (last == ' ') // already indented
+      return;
+    if (last != '\n') // Comments may add new-line
+      document_ += '\n';
+  }
+  document_ += indentString_;
+}
+
+void StyledWriter::writeWithIndent(const std::string& value) {
+  writeIndent();
+  document_ += value;
+}
+
+void StyledWriter::indent() { indentString_ += std::string(indentSize_, ' '); }
+
+void StyledWriter::unindent() {
+  assert(int(indentString_.size()) >= indentSize_);
+  indentString_.resize(indentString_.size() - indentSize_);
+}
+
+void StyledWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  document_ += "\n";
+  writeIndent();
+  const std::string& comment = root.getComment(commentBefore);
+  std::string::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    document_ += *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      writeIndent();
+    ++iter;
+  }
+
+  // Comments are stripped of trailing newlines, so add one here
+  document_ += "\n";
+}
+
+void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    document_ += " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    document_ += "\n";
+    document_ += root.getComment(commentAfter);
+    document_ += "\n";
+  }
+}
+
+bool StyledWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+// Class StyledStreamWriter
+// //////////////////////////////////////////////////////////////////
+
+StyledStreamWriter::StyledStreamWriter(std::string indentation)
+    : document_(NULL), rightMargin_(74), indentation_(indentation),
+      addChildValues_() {}
+
+void StyledStreamWriter::write(std::ostream& out, const Value& root) {
+  document_ = &out;
+  addChildValues_ = false;
+  indentString_ = "";
+  indented_ = true;
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *document_ << "\n";
+  document_ = NULL; // Forget the stream, for safety.
+}
+
+void StyledStreamWriter::writeValue(const Value& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue("null");
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble()));
+    break;
+  case stringValue:
+  {
+    // Is NULL possible for value.string_?
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        const std::string& name = *it;
+        const Value& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedString(name.c_str()));
+        *document_ << " : ";
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void StyledStreamWriter::writeArrayValue(const Value& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isArrayMultiLine = isMultineArray(value);
+    if (isArrayMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        const Value& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *document_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *document_ << "[ ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *document_ << ", ";
+        *document_ << childValues_[index];
+      }
+      *document_ << " ]";
+    }
+  }
+}
+
+bool StyledStreamWriter::isMultineArray(const Value& value) {
+  int size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (int index = 0; index < size && !isMultiLine; ++index) {
+    const Value& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (int index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += int(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void StyledStreamWriter::pushValue(const std::string& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *document_ << value;
+}
+
+void StyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+  *document_ << '\n' << indentString_;
+}
+
+void StyledStreamWriter::writeWithIndent(const std::string& value) {
+  if (!indented_) writeIndent();
+  *document_ << value;
+  indented_ = false;
+}
+
+void StyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void StyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void StyledStreamWriter::writeCommentBeforeValue(const Value& root) {
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const std::string& comment = root.getComment(commentBefore);
+  std::string::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *document_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would include newline
+      *document_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void StyledStreamWriter::writeCommentAfterValueOnSameLine(const Value& root) {
+  if (root.hasComment(commentAfterOnSameLine))
+    *document_ << ' ' << root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *document_ << root.getComment(commentAfter);
+  }
+  indented_ = false;
+}
+
+bool StyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+//////////////////////////
+// BuiltStyledStreamWriter
+
+/// Scoped enums are not available until C++11.
+struct CommentStyle {
+  /// Decide whether to write comments.
+  enum Enum {
+    None,  ///< Drop all comments.
+    Most,  ///< Recover odd behavior of previous versions (not implemented yet).
+    All  ///< Keep all comments.
+  };
+};
+
+struct BuiltStyledStreamWriter : public StreamWriter
+{
+  BuiltStyledStreamWriter(
+      std::string const& indentation,
+      CommentStyle::Enum cs,
+      std::string const& colonSymbol,
+      std::string const& nullSymbol,
+      std::string const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision);
+  int write(Value const& root, std::ostream* sout) override;
+private:
+  void writeValue(Value const& value);
+  void writeArrayValue(Value const& value);
+  bool isMultineArray(Value const& value);
+  void pushValue(std::string const& value);
+  void writeIndent();
+  void writeWithIndent(std::string const& value);
+  void indent();
+  void unindent();
+  void writeCommentBeforeValue(Value const& root);
+  void writeCommentAfterValueOnSameLine(Value const& root);
+  static bool hasCommentForValue(const Value& value);
+
+  typedef std::vector<std::string> ChildValues;
+
+  ChildValues childValues_;
+  std::string indentString_;
+  int rightMargin_;
+  std::string indentation_;
+  CommentStyle::Enum cs_;
+  std::string colonSymbol_;
+  std::string nullSymbol_;
+  std::string endingLineFeedSymbol_;
+  bool addChildValues_ : 1;
+  bool indented_ : 1;
+  bool useSpecialFloats_ : 1;
+  unsigned int precision_;
+};
+BuiltStyledStreamWriter::BuiltStyledStreamWriter(
+      std::string const& indentation,
+      CommentStyle::Enum cs,
+      std::string const& colonSymbol,
+      std::string const& nullSymbol,
+      std::string const& endingLineFeedSymbol,
+      bool useSpecialFloats,
+      unsigned int precision)
+  : rightMargin_(74)
+  , indentation_(indentation)
+  , cs_(cs)
+  , colonSymbol_(colonSymbol)
+  , nullSymbol_(nullSymbol)
+  , endingLineFeedSymbol_(endingLineFeedSymbol)
+  , addChildValues_(false)
+  , indented_(false)
+  , useSpecialFloats_(useSpecialFloats)
+  , precision_(precision)
+{
+}
+int BuiltStyledStreamWriter::write(Value const& root, std::ostream* sout)
+{
+  sout_ = sout;
+  addChildValues_ = false;
+  indented_ = true;
+  indentString_ = "";
+  writeCommentBeforeValue(root);
+  if (!indented_) writeIndent();
+  indented_ = true;
+  writeValue(root);
+  writeCommentAfterValueOnSameLine(root);
+  *sout_ << endingLineFeedSymbol_;
+  sout_ = NULL;
+  return 0;
+}
+void BuiltStyledStreamWriter::writeValue(Value const& value) {
+  switch (value.type()) {
+  case nullValue:
+    pushValue(nullSymbol_);
+    break;
+  case intValue:
+    pushValue(valueToString(value.asLargestInt()));
+    break;
+  case uintValue:
+    pushValue(valueToString(value.asLargestUInt()));
+    break;
+  case realValue:
+    pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_));
+    break;
+  case stringValue:
+  {
+    // Is NULL is possible for value.string_?
+    char const* str;
+    char const* end;
+    bool ok = value.getString(&str, &end);
+    if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
+    else pushValue("");
+    break;
+  }
+  case booleanValue:
+    pushValue(valueToString(value.asBool()));
+    break;
+  case arrayValue:
+    writeArrayValue(value);
+    break;
+  case objectValue: {
+    Value::Members members(value.getMemberNames());
+    if (members.empty())
+      pushValue("{}");
+    else {
+      writeWithIndent("{");
+      indent();
+      Value::Members::iterator it = members.begin();
+      for (;;) {
+        std::string const& name = *it;
+        Value const& childValue = value[name];
+        writeCommentBeforeValue(childValue);
+        writeWithIndent(valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())));
+        *sout_ << colonSymbol_;
+        writeValue(childValue);
+        if (++it == members.end()) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("}");
+    }
+  } break;
+  }
+}
+
+void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
+  unsigned size = value.size();
+  if (size == 0)
+    pushValue("[]");
+  else {
+    bool isMultiLine = (cs_ == CommentStyle::All) || isMultineArray(value);
+    if (isMultiLine) {
+      writeWithIndent("[");
+      indent();
+      bool hasChildValue = !childValues_.empty();
+      unsigned index = 0;
+      for (;;) {
+        Value const& childValue = value[index];
+        writeCommentBeforeValue(childValue);
+        if (hasChildValue)
+          writeWithIndent(childValues_[index]);
+        else {
+          if (!indented_) writeIndent();
+          indented_ = true;
+          writeValue(childValue);
+          indented_ = false;
+        }
+        if (++index == size) {
+          writeCommentAfterValueOnSameLine(childValue);
+          break;
+        }
+        *sout_ << ",";
+        writeCommentAfterValueOnSameLine(childValue);
+      }
+      unindent();
+      writeWithIndent("]");
+    } else // output on a single line
+    {
+      assert(childValues_.size() == size);
+      *sout_ << "[";
+      if (!indentation_.empty()) *sout_ << " ";
+      for (unsigned index = 0; index < size; ++index) {
+        if (index > 0)
+          *sout_ << ", ";
+        *sout_ << childValues_[index];
+      }
+      if (!indentation_.empty()) *sout_ << " ";
+      *sout_ << "]";
+    }
+  }
+}
+
+bool BuiltStyledStreamWriter::isMultineArray(Value const& value) {
+  int size = value.size();
+  bool isMultiLine = size * 3 >= rightMargin_;
+  childValues_.clear();
+  for (int index = 0; index < size && !isMultiLine; ++index) {
+    Value const& childValue = value[index];
+    isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
+                        childValue.size() > 0);
+  }
+  if (!isMultiLine) // check if line length > max line length
+  {
+    childValues_.reserve(size);
+    addChildValues_ = true;
+    int lineLength = 4 + (size - 1) * 2; // '[ ' + ', '*n + ' ]'
+    for (int index = 0; index < size; ++index) {
+      if (hasCommentForValue(value[index])) {
+        isMultiLine = true;
+      }
+      writeValue(value[index]);
+      lineLength += int(childValues_[index].length());
+    }
+    addChildValues_ = false;
+    isMultiLine = isMultiLine || lineLength >= rightMargin_;
+  }
+  return isMultiLine;
+}
+
+void BuiltStyledStreamWriter::pushValue(std::string const& value) {
+  if (addChildValues_)
+    childValues_.push_back(value);
+  else
+    *sout_ << value;
+}
+
+void BuiltStyledStreamWriter::writeIndent() {
+  // blep intended this to look at the so-far-written string
+  // to determine whether we are already indented, but
+  // with a stream we cannot do that. So we rely on some saved state.
+  // The caller checks indented_.
+
+  if (!indentation_.empty()) {
+    // In this case, drop newlines too.
+    *sout_ << '\n' << indentString_;
+  }
+}
+
+void BuiltStyledStreamWriter::writeWithIndent(std::string const& value) {
+  if (!indented_) writeIndent();
+  *sout_ << value;
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::indent() { indentString_ += indentation_; }
+
+void BuiltStyledStreamWriter::unindent() {
+  assert(indentString_.size() >= indentation_.size());
+  indentString_.resize(indentString_.size() - indentation_.size());
+}
+
+void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (!root.hasComment(commentBefore))
+    return;
+
+  if (!indented_) writeIndent();
+  const std::string& comment = root.getComment(commentBefore);
+  std::string::const_iterator iter = comment.begin();
+  while (iter != comment.end()) {
+    *sout_ << *iter;
+    if (*iter == '\n' &&
+       (iter != comment.end() && *(iter + 1) == '/'))
+      // writeIndent();  // would write extra newline
+      *sout_ << indentString_;
+    ++iter;
+  }
+  indented_ = false;
+}
+
+void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) {
+  if (cs_ == CommentStyle::None) return;
+  if (root.hasComment(commentAfterOnSameLine))
+    *sout_ << " " + root.getComment(commentAfterOnSameLine);
+
+  if (root.hasComment(commentAfter)) {
+    writeIndent();
+    *sout_ << root.getComment(commentAfter);
+  }
+}
+
+// static
+bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) {
+  return value.hasComment(commentBefore) ||
+         value.hasComment(commentAfterOnSameLine) ||
+         value.hasComment(commentAfter);
+}
+
+///////////////
+// StreamWriter
+
+StreamWriter::StreamWriter()
+    : sout_(NULL)
+{
+}
+StreamWriter::~StreamWriter()
+{
+}
+StreamWriter::Factory::~Factory()
+{}
+StreamWriterBuilder::StreamWriterBuilder()
+{
+  setDefaults(&settings_);
+}
+StreamWriterBuilder::~StreamWriterBuilder()
+{}
+StreamWriter* StreamWriterBuilder::newStreamWriter() const
+{
+  std::string indentation = settings_["indentation"].asString();
+  std::string cs_str = settings_["commentStyle"].asString();
+  bool eyc = settings_["enableYAMLCompatibility"].asBool();
+  bool dnp = settings_["dropNullPlaceholders"].asBool();
+  bool usf = settings_["useSpecialFloats"].asBool(); 
+  unsigned int pre = settings_["precision"].asUInt();
+  CommentStyle::Enum cs = CommentStyle::All;
+  if (cs_str == "All") {
+    cs = CommentStyle::All;
+  } else if (cs_str == "None") {
+    cs = CommentStyle::None;
+  } else {
+    throwRuntimeError("commentStyle must be 'All' or 'None'");
+  }
+  std::string colonSymbol = " : ";
+  if (eyc) {
+    colonSymbol = ": ";
+  } else if (indentation.empty()) {
+    colonSymbol = ":";
+  }
+  std::string nullSymbol = "null";
+  if (dnp) {
+    nullSymbol = "";
+  }
+  if (pre > 17) pre = 17;
+  std::string endingLineFeedSymbol = "";
+  return new BuiltStyledStreamWriter(
+      indentation, cs,
+      colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);
+}
+static void getValidWriterKeys(std::set<std::string>* valid_keys)
+{
+  valid_keys->clear();
+  valid_keys->insert("indentation");
+  valid_keys->insert("commentStyle");
+  valid_keys->insert("enableYAMLCompatibility");
+  valid_keys->insert("dropNullPlaceholders");
+  valid_keys->insert("useSpecialFloats");
+  valid_keys->insert("precision");
+}
+bool StreamWriterBuilder::validate(Json::Value* invalid) const
+{
+  Json::Value my_invalid;
+  if (!invalid) invalid = &my_invalid;  // so we do not need to test for NULL
+  Json::Value& inv = *invalid;
+  std::set<std::string> valid_keys;
+  getValidWriterKeys(&valid_keys);
+  Value::Members keys = settings_.getMemberNames();
+  size_t n = keys.size();
+  for (size_t i = 0; i < n; ++i) {
+    std::string const& key = keys[i];
+    if (valid_keys.find(key) == valid_keys.end()) {
+      inv[key] = settings_[key];
+    }
+  }
+  return 0u == inv.size();
+}
+Value& StreamWriterBuilder::operator[](std::string key)
+{
+  return settings_[key];
+}
+// static
+void StreamWriterBuilder::setDefaults(Json::Value* settings)
+{
+  //! [StreamWriterBuilderDefaults]
+  (*settings)["commentStyle"] = "All";
+  (*settings)["indentation"] = "\t";
+  (*settings)["enableYAMLCompatibility"] = false;
+  (*settings)["dropNullPlaceholders"] = false;
+  (*settings)["useSpecialFloats"] = false;
+  (*settings)["precision"] = 17;
+  //! [StreamWriterBuilderDefaults]
+}
+
+std::string writeString(StreamWriter::Factory const& builder, Value const& root) {
+  std::ostringstream sout;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout.str();
+}
+
+std::ostream& operator<<(std::ostream& sout, Value const& root) {
+  StreamWriterBuilder builder;
+  StreamWriterPtr const writer(builder.newStreamWriter());
+  writer->write(root, &sout);
+  return sout;
+}
+
+} // namespace Json
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile
new file mode 100644
index 0000000..b76bccd
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile
@@ -0,0 +1,2401 @@
+# Doxyfile 1.8.10
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = "XMM - Probabilistic Models for Motion Recognition and Mapping"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 1.0-beta
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           = doc-misc/xmm_featured.jpg
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ./
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       = DEVDOC
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            = doc-misc/XmmDoxygenLayout.xml
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = ../src/ \
+                         ../src/core/common \
+                         ../src/core/trainingset \
+                         ../src/core/model \
+                         ../src/core/distributions \
+                         ../src/models/kmeans \
+                         ../src/models/gmm \
+                         ../src/models/hmm \
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
+# *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.hpp
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = doc-misc
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = doc-misc
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            = doc-misc/header.html
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            = doc-misc/footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        = doc-misc/jdoxygen.css
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  = doc-misc/jtabs.css
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = YES
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = SWIGPYTHON USE_ARMA
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = svg
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile-dot b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile-dot
new file mode 100644
index 0000000..8bd04ce
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/Doxyfile-dot
@@ -0,0 +1,2434 @@
+# Doxyfile 1.8.10
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = "XMM - Probabilistic Models for Motion Recognition and Mapping"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 1.0-beta
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           = doc-misc/xmm_featured.jpg
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ./
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       = DEVDOC
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            = doc-misc/XmmDoxygenLayout.xml
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = ../src/ \
+                         ../src/core/common \
+                         ../src/core/trainingset \
+                         ../src/core/model \
+                         ../src/core/distributions \
+                         ../src/models/kmeans \
+                         ../src/models/gmm \
+                         ../src/models/hmm \
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
+# *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.markdown \
+                         *.md \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.for \
+                         *.vhd \
+                         *.vhdl
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = doc-misc
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = doc-misc
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            = doc-misc/header.html
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            = doc-misc/footer.html
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        = doc-misc/jdoxygen.css
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  = doc-misc/jtabs.css
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = YES
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = SWIGPYTHON
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = svg
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/QuickStart_Python.html b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/QuickStart_Python.html
new file mode 100644
index 0000000..24b9938
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/QuickStart_Python.html
@@ -0,0 +1,2086 @@
+<!DOCTYPE html>
+<html>
+<head><meta charset="utf-8" />
+<title>QuickStart_Python</title>
+
+<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
+
+<style type="text/css">
+    /*!
+*
+* Twitter Bootstrap
+*
+*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:10px;-webkit-tap-highlight-color:transparent}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0;vertical-align:middle}svg:not(:root){overflow:hidden}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href)")"}abbr[title]:after{content:" (" attr(title)")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../components/bootstrap/fonts/glyphicons-halflings-regular.eot);src:url(../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix)format('embedded-opentype'),url(../components/bootstrap/fonts/glyphicons-halflings-regular.woff2)format('woff2'),url(../components/bootstrap/fonts/glyphicons-halflings-regular.woff)format('woff'),url(../components/bootstrap/fonts/glyphicons-halflings-regular.ttf)format('truetype'),url(../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular)format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#000;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}figure{margin:0}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:18px;margin-bottom:9px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:9px;margin-bottom:9px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:33px}.h2,h2{font-size:27px}.h3,h3{font-size:23px}.h4,h4{font-size:17px}.h5,h5{font-size:13px}.h6,h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}.small,small{font-size:92%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:9px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:541px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:inherit;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:monospace}code{padding:2px 4px;font-size:90%;background-color:#f9f2f4;border-radius:2px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:1px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:8.5px;margin:0 0 9px;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}@media (min-width:768px){.container{width:768px}}@media (min-width:992px){.container{width:940px}}@media (min-width:1200px){.container{width:1140px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:0;padding-right:0}.row{margin-left:0;margin-right:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:18px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:32px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:45px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:18px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px \9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:31px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:30px}.input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-lg{height:45px;line-height:45px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.form-group-lg .form-control{height:45px;line-height:45px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;min-height:35px}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:32px;height:32px;line-height:32px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:45px;height:45px;line-height:45px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:23px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#404040}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:25px}.form-horizontal .form-group{margin-left:0;margin-right:0}.form-horizontal .has-feedback .form-control-feedback{right:0}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}.form-horizontal .form-group-lg .control-label{padding-top:14.33px}.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:1px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:541px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:13px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:1px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:2px 2px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:2px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:30px;margin-bottom:18px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:0;padding-left:0;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:540px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:541px){.navbar{border-radius:2px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:6px 0;font-size:17px;line-height:18px;height:30px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}.navbar-toggle{position:relative;float:right;margin-right:0;padding:9px 10px;margin-top:-2px;margin-bottom:-2px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:2px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:541px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:0}.navbar-toggle{display:none}}.navbar-nav{margin:3px 0}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:540px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:541px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:6px;padding-bottom:6px}}.navbar-form{padding:10px 0;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:-1px 0}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:540px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:2px 2px 0 0}.navbar-btn{margin-top:-1px;margin-bottom:-1px}.navbar-btn.btn-sm{margin-top:0;margin-bottom:0}.navbar-btn.btn-xs{margin-top:4px;margin-bottom:4px}.navbar-text{margin-top:6px;margin-bottom:6px}@media (min-width:541px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-text{float:left;margin-left:0;margin-right:0}.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right;margin-right:0}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:540px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:540px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:2px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#5e5e5e}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:2px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:3px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:58.5px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#000}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:2px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:1px;border-top-left-radius:1px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:1px;border-top-left-radius:1px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:1px;border-top-left-radius:1px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:1px;border-top-right-radius:1px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:1px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:1px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:1px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:1px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:2px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:1px}.close{float:right;font-size:19.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.43px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:2px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.42857143;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-moz-transition:-moz-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.item_buttons:after,.item_buttons:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.item_buttons:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}/*!
+*
+* Font Awesome
+*
+*//*!
+ *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url(../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0);src:url(../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0)format('embedded-opentype'),url(../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0)format('woff'),url(../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0)format('truetype'),url(../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular)format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}/*!
+*
+* IPython base
+*
+*/.modal.fade .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}code{color:#000}pre{font-size:inherit;line-height:inherit}label{font-weight:400}.border-box-sizing{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.corner-all{border-radius:2px}.no-padding{padding:0}.hbox{display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.hbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.vbox{display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}.vbox>*{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none}.hbox.reverse,.reverse,.vbox.reverse{-webkit-box-direction:reverse;-moz-box-direction:reverse;box-direction:reverse;flex-direction:row-reverse}.box-flex0,.hbox.box-flex0,.vbox.box-flex0{-webkit-box-flex:0;-moz-box-flex:0;box-flex:0;flex:none;width:auto}.box-flex1,.hbox.box-flex1,.vbox.box-flex1{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.box-flex,.hbox.box-flex,.vbox.box-flex{-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}.box-flex2,.hbox.box-flex2,.vbox.box-flex2{-webkit-box-flex:2;-moz-box-flex:2;box-flex:2;flex:2}.box-group1{-webkit-box-flex-group:1;-moz-box-flex-group:1;box-flex-group:1}.box-group2{-webkit-box-flex-group:2;-moz-box-flex-group:2;box-flex-group:2}.hbox.start,.start,.vbox.start{-webkit-box-pack:start;-moz-box-pack:start;box-pack:start;justify-content:flex-start}.end,.hbox.end,.vbox.end{-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end}.center,.hbox.center,.vbox.center{-webkit-box-pack:center;-moz-box-pack:center;box-pack:center;justify-content:center}.baseline,.hbox.baseline,.vbox.baseline{-webkit-box-pack:baseline;-moz-box-pack:baseline;box-pack:baseline;justify-content:baseline}.hbox.stretch,.stretch,.vbox.stretch{-webkit-box-pack:stretch;-moz-box-pack:stretch;box-pack:stretch;justify-content:stretch}.align-start,.hbox.align-start,.vbox.align-start{-webkit-box-align:start;-moz-box-align:start;box-align:start;align-items:flex-start}.align-end,.hbox.align-end,.vbox.align-end{-webkit-box-align:end;-moz-box-align:end;box-align:end;align-items:flex-end}.align-center,.hbox.align-center,.vbox.align-center{-webkit-box-align:center;-moz-box-align:center;box-align:center;align-items:center}.align-baseline,.hbox.align-baseline,.vbox.align-baseline{-webkit-box-align:baseline;-moz-box-align:baseline;box-align:baseline;align-items:baseline}.align-stretch,.hbox.align-stretch,.vbox.align-stretch{-webkit-box-align:stretch;-moz-box-align:stretch;box-align:stretch;align-items:stretch}div.error{margin:2em;text-align:center}div.error>h1{font-size:500%;line-height:normal}div.error>p{font-size:200%;line-height:normal}div.traceback-wrapper{text-align:left;max-width:800px;margin:auto}body{position:absolute;left:0;right:0;top:0;bottom:0;overflow:visible}#header{display:none;background-color:#fff;position:relative;z-index:100}#header #header-container{padding-bottom:5px;padding-top:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#header .header-bar{width:100%;height:1px;background:#e7e7e7;margin-bottom:-1px}#header-spacer{width:100%;visibility:hidden}@media print{#header{display:none!important}#header-spacer{display:none}}#ipython_notebook{padding-left:0;padding-top:1px;padding-bottom:1px}@media (max-width:991px){#ipython_notebook{margin-left:10px}}#noscript{width:auto;padding-top:16px;padding-bottom:16px;text-align:center;font-size:22px;color:red;font-weight:700}#ipython_notebook img{height:28px}#site{width:100%;display:none;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;overflow:auto}@media print{#site{height:auto!important}}.ui-button .ui-button-text{padding:.2em .8em;font-size:77%}input.ui-button{padding:.3em .9em}span#login_widget{float:right}#logout,span#login_widget>.button{color:#333;background-color:#fff;border-color:#ccc}#logout.active,#logout.focus,#logout:active,#logout:focus,#logout:hover,.open>.dropdown-toggle#logout,.open>.dropdown-togglespan#login_widget>.button,span#login_widget>.button.active,span#login_widget>.button.focus,span#login_widget>.button:active,span#login_widget>.button:focus,span#login_widget>.button:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}#logout.active,#logout:active,.open>.dropdown-toggle#logout,.open>.dropdown-togglespan#login_widget>.button,span#login_widget>.button.active,span#login_widget>.button:active{background-image:none}#logout.disabled,#logout.disabled.active,#logout.disabled.focus,#logout.disabled:active,#logout.disabled:focus,#logout.disabled:hover,#logout[disabled],#logout[disabled].active,#logout[disabled].focus,#logout[disabled]:active,#logout[disabled]:focus,#logout[disabled]:hover,fieldset[disabled] #logout,fieldset[disabled] #logout.active,fieldset[disabled] #logout.focus,fieldset[disabled] #logout:active,fieldset[disabled] #logout:focus,fieldset[disabled] #logout:hover,fieldset[disabled] span#login_widget>.button,fieldset[disabled] span#login_widget>.button.active,fieldset[disabled] span#login_widget>.button.focus,fieldset[disabled] span#login_widget>.button:active,fieldset[disabled] span#login_widget>.button:focus,fieldset[disabled] span#login_widget>.button:hover,span#login_widget>.button.disabled,span#login_widget>.button.disabled.active,span#login_widget>.button.disabled.focus,span#login_widget>.button.disabled:active,span#login_widget>.button.disabled:focus,span#login_widget>.button.disabled:hover,span#login_widget>.button[disabled],span#login_widget>.button[disabled].active,span#login_widget>.button[disabled].focus,span#login_widget>.button[disabled]:active,span#login_widget>.button[disabled]:focus,span#login_widget>.button[disabled]:hover{background-color:#fff;border-color:#ccc}#logout .badge,span#login_widget>.button .badge{color:#fff;background-color:#333}.nav-header{text-transform:none}#header>span{margin-top:10px}.modal_stretch .modal-dialog{display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;min-height:80vh}.modal_stretch .modal-dialog .modal-body{max-height:calc(100vh - 200px);overflow:auto;flex:1}@media (min-width:768px){.modal .modal-dialog{width:700px}select.form-control{margin-left:12px;margin-right:12px}}/*!
+*
+* IPython auth
+*
+*/.center-nav{display:inline-block;margin-bottom:-4px}/*!
+*
+* IPython tree view
+*
+*/.alternate_upload{background-color:none;display:inline}.alternate_upload.form{padding:0;margin:0}.alternate_upload input.fileinput{text-align:center;vertical-align:middle;display:inline;opacity:0;z-index:2;width:12ex;margin-right:-12ex}.alternate_upload .btn-upload{height:22px}ul#tabs{margin-bottom:4px}ul#tabs a{padding-top:6px;padding-bottom:4px}ul.breadcrumb a:focus,ul.breadcrumb a:hover{text-decoration:none}ul.breadcrumb i.icon-home{font-size:16px;margin-right:4px}ul.breadcrumb span{color:#5e5e5e}.list_toolbar{padding:4px 0;vertical-align:middle}.list_toolbar .tree-buttons{padding-top:1px}.dynamic-buttons{padding-top:3px;display:inline-block}.list_toolbar [class*=span]{min-height:24px}.list_header{font-weight:700;background-color:#eee}.list_placeholder{font-weight:700;padding:4px 7px}.list_container{margin-top:4px;margin-bottom:20px;border:1px solid #ddd;border-radius:2px}.list_container>div{border-bottom:1px solid #ddd}.list_container>div:hover .list-item{background-color:red}.list_container>div:last-child{border:none}.list_item:hover .list_item{background-color:#ddd}.list_item a{text-decoration:none}.list_item:hover{background-color:#fafafa}.action_col{text-align:right}.list_header>div,.list_item>div{line-height:22px;padding:4px 7px}.list_header>div input,.list_item>div input{margin-right:7px;margin-left:14px;vertical-align:baseline;line-height:22px;position:relative;top:-1px}.list_header>div .item_link,.list_item>div .item_link{margin-left:-1px;vertical-align:baseline;line-height:22px}.new-file input[type=checkbox]{visibility:hidden}.item_name{line-height:22px;height:24px}.item_icon{font-size:14px;color:#5e5e5e;margin-right:7px;margin-left:7px;line-height:22px;vertical-align:baseline}.item_buttons{line-height:1em;margin-left:-5px}.item_buttons .btn-group,.item_buttons .input-group{float:left}.item_buttons>.btn,.item_buttons>.btn-group,.item_buttons>.input-group{margin-left:5px}.item_buttons .btn{min-width:13ex}.item_buttons .running-indicator{padding-top:4px;color:#5cb85c}.toolbar_info{height:24px;line-height:24px}input.engine_num_input,input.nbname_input{padding-top:3px;padding-bottom:3px;height:22px;line-height:14px;margin:0}input.engine_num_input{width:60px}.highlight_text{color:#00f}#project_name{display:inline-block;padding-left:7px;margin-left:-2px}#project_name>.breadcrumb{padding:0;margin-bottom:0;background-color:transparent;font-weight:700}#tree-selector{padding-right:0}#button-select-all{min-width:50px}#select-all{margin-left:7px;margin-right:2px}.menu_icon{margin-right:2px}.tab-content .row{margin-left:0;margin-right:0}.folder_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f114"}.folder_icon:before.pull-left{margin-right:.3em}.folder_icon:before.pull-right{margin-left:.3em}.notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f02d";position:relative;top:-1px}.notebook_icon:before.pull-left{margin-right:.3em}.notebook_icon:before.pull-right{margin-left:.3em}.running_notebook_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f02d";position:relative;top:-1px;color:#5cb85c}.running_notebook_icon:before.pull-left{margin-right:.3em}.running_notebook_icon:before.pull-right{margin-left:.3em}.file_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f016";position:relative;top:-2px}.file_icon:before.pull-left{margin-right:.3em}.file_icon:before.pull-right{margin-left:.3em}#notebook_toolbar .pull-right{padding-top:0;margin-right:-1px}ul#new-menu{left:auto;right:0}.kernel-menu-icon{padding-right:12px;width:24px;content:"\f096"}.kernel-menu-icon:before{content:"\f096"}.kernel-menu-icon-current:before{content:"\f00c"}#tab_content{padding-top:20px}#running .panel-group .panel{margin-top:3px;margin-bottom:1em}#running .panel-group .panel .panel-heading{background-color:#eee;line-height:22px;padding:4px 7px}#running .panel-group .panel .panel-heading a:focus,#running .panel-group .panel .panel-heading a:hover{text-decoration:none}#running .panel-group .panel .panel-body{padding:0}#running .panel-group .panel .panel-body .list_container{margin-top:0;margin-bottom:0;border:0;border-radius:0}#running .panel-group .panel .panel-body .list_container .list_item{border-bottom:1px solid #ddd}#running .panel-group .panel .panel-body .list_container .list_item:last-child{border-bottom:0}.delete-button,.duplicate-button,.rename-button,.shutdown-button{display:none}.dynamic-instructions{display:inline-block;padding-top:4px}/*!
+*
+* IPython text editor webapp
+*
+*/.selected-keymap i.fa{padding:0 5px}.selected-keymap i.fa:before{content:"\f00c"}#mode-menu{overflow:auto;max-height:20em}.edit_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2)}.edit_app #menubar .navbar{margin-bottom:-1px}.dirty-indicator{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px}.dirty-indicator.pull-left{margin-right:.3em}.dirty-indicator.pull-right{margin-left:.3em}.dirty-indicator-dirty{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px}.dirty-indicator-dirty.pull-left{margin-right:.3em}.dirty-indicator-dirty.pull-right{margin-left:.3em}.dirty-indicator-clean{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px}.dirty-indicator-clean.pull-left{margin-right:.3em}.dirty-indicator-clean.pull-right{margin-left:.3em}.dirty-indicator-clean:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f00c"}.dirty-indicator-clean:before.pull-left{margin-right:.3em}.dirty-indicator-clean:before.pull-right{margin-left:.3em}#filename{font-size:16pt;display:table;padding:0 5px}#current-mode{padding-left:5px;padding-right:5px}#texteditor-backdrop{padding-top:20px;padding-bottom:20px}@media not print{#texteditor-backdrop{background-color:#eee}}@media print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}}@media not print{#texteditor-backdrop #texteditor-container .CodeMirror-gutter,#texteditor-backdrop #texteditor-container .CodeMirror-gutters{background-color:#fff}#texteditor-backdrop #texteditor-container{padding:0;background-color:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2)}}/*!
+*
+* IPython notebook
+*
+*/.ansibold{font-weight:700}.ansiblack{color:#000}.ansired{color:#8b0000}.ansigreen{color:#006400}.ansiyellow{color:#c4a000}.ansiblue{color:#00008b}.ansipurple{color:#9400d3}.ansicyan{color:#4682b4}.ansigray{color:gray}.ansibgblack{background-color:#000}.ansibgred{background-color:red}.ansibggreen{background-color:green}.ansibgyellow{background-color:#ff0}.ansibgblue{background-color:#00f}.ansibgpurple{background-color:#ff00ff}.ansibgcyan{background-color:#0ff}.ansibggray{background-color:gray}div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;border-radius:2px;box-sizing:border-box;-moz-box-sizing:border-box;border-width:thin;border-style:solid;width:100%;padding:5px;margin:0;outline:0}div.cell.selected{border-color:#ababab}@media print{div.cell.selected{border-color:transparent}}.edit_mode div.cell.selected{border-color:green}.prompt{min-width:14ex;padding:.4em;margin:0;font-family:monospace;text-align:right;line-height:1.21429em}div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}@-moz-document url-prefix(){div.inner_cell{overflow-x:hidden}}div.input_area{border:1px solid #cfcfcf;border-radius:2px;background:#f7f7f7;line-height:1.21429em}div.prompt:empty{padding-top:0;padding-bottom:0}div.unrecognized_cell{padding:5px 5px 5px 0;display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.unrecognized_cell .inner_cell{border-radius:2px;padding:5px;font-weight:700;color:red;border:1px solid #cfcfcf;background:#eaeaea}div.unrecognized_cell .inner_cell a,div.unrecognized_cell .inner_cell a:hover{color:inherit;text-decoration:none}@media (max-width:540px){.prompt{text-align:left}div.unrecognized_cell>div.prompt{display:none}}div.code_cell{}div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.input{-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.input_prompt{color:navy;border-top:1px solid transparent}div.input_area>div.highlight{margin:.4em;border:none;padding:0;background-color:transparent}div.input_area>div.highlight>pre{margin:0;border:none;padding:0;background-color:transparent}.CodeMirror{line-height:1.21429em;font-size:14px;height:auto;background:0 0}.CodeMirror-scroll{overflow-y:hidden;overflow-x:auto}.CodeMirror-lines{padding:.4em}.CodeMirror-linenumber{padding:0 8px 0 4px}.CodeMirror-gutters{border-bottom-left-radius:2px;border-top-left-radius:2px}.CodeMirror pre{padding:0;border:0;border-radius:0}.highlight-base,.highlight-variable{color:#000}.highlight-variable-2{color:#1a1a1a}.highlight-variable-3{color:#333}.highlight-string{color:#BA2121}.highlight-comment{color:#408080;font-style:italic}.highlight-number{color:#080}.highlight-atom{color:#88F}.highlight-keyword{color:green;font-weight:700}.highlight-builtin{color:green}.highlight-error{color:red}.highlight-operator{color:#A2F;font-weight:700}.highlight-meta{color:#A2F}.highlight-def{color:#00f}.highlight-string-2{color:#f50}.highlight-qualifier{color:#555}.highlight-bracket{color:#997}.highlight-tag{color:#170}.highlight-attribute{color:#00c}.highlight-header{color:#00f}.highlight-quote{color:#090}.highlight-link{color:#00c}.cm-s-ipython span.cm-keyword{color:green;font-weight:700}.cm-s-ipython span.cm-atom{color:#88F}.cm-s-ipython span.cm-number{color:#080}.cm-s-ipython span.cm-def{color:#00f}.cm-s-ipython span.cm-variable{color:#000}.cm-s-ipython span.cm-operator{color:#A2F;font-weight:700}.cm-s-ipython span.cm-variable-2{color:#1a1a1a}.cm-s-ipython span.cm-variable-3{color:#333}.cm-s-ipython span.cm-comment{color:#408080;font-style:italic}.cm-s-ipython span.cm-string{color:#BA2121}.cm-s-ipython span.cm-string-2{color:#f50}.cm-s-ipython span.cm-meta{color:#A2F}.cm-s-ipython span.cm-qualifier{color:#555}.cm-s-ipython span.cm-builtin{color:green}.cm-s-ipython span.cm-bracket{color:#997}.cm-s-ipython span.cm-tag{color:#170}.cm-s-ipython span.cm-attribute{color:#00c}.cm-s-ipython span.cm-header{color:#00f}.cm-s-ipython span.cm-quote{color:#090}.cm-s-ipython span.cm-link{color:#00c}.cm-s-ipython span.cm-error{color:red}.cm-s-ipython span.cm-tab{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=')right no-repeat}div.output_wrapper{display:-webkit-box;-webkit-box-align:stretch;display:-moz-box;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch;z-index:1}div.output_scroll{height:24em;width:100%;overflow:auto;border-radius:2px;-webkit-box-shadow:inset 0 2px 8px rgba(0,0,0,.8);box-shadow:inset 0 2px 8px rgba(0,0,0,.8);display:block}div.output_collapsed{margin:0;padding:0;display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}div.out_prompt_overlay{height:100%;padding:0 .4em;position:absolute;border-radius:2px}div.out_prompt_overlay:hover{-webkit-box-shadow:inset 0 0 1px #000;box-shadow:inset 0 0 1px #000;background:rgba(240,240,240,.5)}div.output_prompt{color:#8b0000}div.output_area{padding:0;page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}div.output_area .MathJax_Display{text-align:left!important}div.output_area .rendered_html img,div.output_area .rendered_html table{margin-left:0;margin-right:0}div.output_area img,div.output_area svg{max-width:100%;height:auto}div.output_area img.unconfined,div.output_area svg.unconfined{max-width:none}.output{display:-webkit-box;-webkit-box-orient:vertical;display:-moz-box;-moz-box-orient:vertical;display:box;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}@media (max-width:540px){div.output_area{-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;box-align:stretch;display:flex;flex-direction:column;align-items:stretch}}div.output_area pre{margin:0;padding:0;border:0;vertical-align:baseline;color:#000;background-color:transparent;border-radius:0}div.output_subarea{overflow-x:auto;padding:.4em;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1;max-width:calc(100% - 14ex)}div.output_text{text-align:left;color:#000;line-height:1.21429em}div.output_stderr{background:#fdd}div.output_latex{text-align:left}div.output_javascript:empty{padding:0}.js-error{color:#8b0000}div.raw_input_container{font-family:monospace;padding-top:5px}span.raw_input_prompt{}input.raw_input{font-family:inherit;font-size:inherit;color:inherit;width:auto;vertical-align:baseline;padding:0 .25em;margin:0 .25em}input.raw_input:focus{box-shadow:none}p.p-space{margin-bottom:10px}div.output_unrecognized{padding:5px;font-weight:700;color:red}div.output_unrecognized a,div.output_unrecognized a:hover{color:inherit;text-decoration:none}.rendered_html{color:#000}.rendered_html em{font-style:italic}.rendered_html strong{font-weight:700}.rendered_html :link,.rendered_html :visited,.rendered_html u{text-decoration:underline}.rendered_html h1{font-size:185.7%;margin:1.08em 0 0;font-weight:700;line-height:1}.rendered_html h2{font-size:157.1%;margin:1.27em 0 0;font-weight:700;line-height:1}.rendered_html h3{font-size:128.6%;margin:1.55em 0 0;font-weight:700;line-height:1}.rendered_html h4{font-size:100%;margin:2em 0 0;font-weight:700;line-height:1}.rendered_html h5,.rendered_html h6{font-size:100%;margin:2em 0 0;font-weight:700;line-height:1;font-style:italic}.rendered_html h1:first-child{margin-top:.538em}.rendered_html h2:first-child{margin-top:.636em}.rendered_html h3:first-child{margin-top:.777em}.rendered_html h4:first-child,.rendered_html h5:first-child,.rendered_html h6:first-child{margin-top:1em}.rendered_html ul{list-style:disc;margin:0 2em;padding-left:0}.rendered_html ul ul{list-style:square;margin:0 2em}.rendered_html ul ul ul{list-style:circle;margin:0 2em}.rendered_html ol{list-style:decimal;margin:0 2em;padding-left:0}.rendered_html ol ol{list-style:upper-alpha;margin:0 2em}.rendered_html ol ol ol{list-style:lower-alpha;margin:0 2em}.rendered_html ol ol ol ol{list-style:lower-roman;margin:0 2em}.rendered_html ol ol ol ol ol{list-style:decimal;margin:0 2em}.rendered_html *+ol,.rendered_html *+ul{margin-top:1em}.rendered_html hr{color:#000;background-color:#000}.rendered_html pre{margin:1em 2em}.rendered_html code,.rendered_html pre{border:0;background-color:#fff;color:#000;font-size:100%;padding:0}.rendered_html blockquote{margin:1em 2em}.rendered_html table{margin-left:auto;margin-right:auto;border:1px solid #000;border-collapse:collapse}.rendered_html td,.rendered_html th,.rendered_html tr{border:1px solid #000;border-collapse:collapse;margin:1em 2em}.rendered_html td,.rendered_html th{text-align:left;vertical-align:middle;padding:4px}.rendered_html th{font-weight:700}.rendered_html *+table{margin-top:1em}.rendered_html p{text-align:left}.rendered_html *+p{margin-top:1em}.rendered_html img{display:block;margin-left:auto;margin-right:auto}.rendered_html *+img{margin-top:1em}.rendered_html img,.rendered_html svg{max-width:100%;height:auto}.rendered_html img.unconfined,.rendered_html svg.unconfined{max-width:none}div.text_cell{display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}@media (max-width:540px){div.text_cell>div.prompt{display:none}}div.text_cell_render{outline:0;resize:none;width:inherit;border-style:none;padding:.5em .5em .5em .4em;color:#000;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}a.anchor-link:link{text-decoration:none;padding:0 20px;visibility:hidden}h1:hover .anchor-link,h2:hover .anchor-link,h3:hover .anchor-link,h4:hover .anchor-link,h5:hover .anchor-link,h6:hover .anchor-link{visibility:visible}.text_cell.rendered .input_area{display:none}.text_cell.rendered .rendered_html{overflow-x:auto}.text_cell.unrendered .text_cell_render{display:none}.cm-header-1,.cm-header-2,.cm-header-3,.cm-header-4,.cm-header-5,.cm-header-6{font-weight:700;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.cm-header-1{font-size:185.7%}.cm-header-2{font-size:157.1%}.cm-header-3{font-size:128.6%}.cm-header-4{font-size:110%}.cm-header-5,.cm-header-6{font-size:100%;font-style:italic}/*!
+*
+* IPython notebook webapp
+*
+*/@media (max-width:767px){.notebook_app{padding-left:0;padding-right:0}}#ipython-main-app{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}div#notebook_panel{margin:0;padding:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;height:100%}#notebook{font-size:14px;line-height:20px;overflow-y:hidden;overflow-x:auto;width:100%;padding-top:20px;margin:0;outline:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;min-height:100%}@media not print{#notebook-container{padding:15px;background-color:#fff;min-height:0;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2)}}div.ui-widget-content{border:1px solid #ababab;outline:0}pre.dialog{background-color:#f7f7f7;border:1px solid #ddd;border-radius:2px;padding:.4em .4em .4em 2em}p.dialog{padding:.2em}code,kbd,pre,samp{white-space:pre-wrap}#fonttest{font-family:monospace}p{margin-bottom:0}.end_space{min-height:100px;transition:height .2s ease}.notebook_app #header{-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2)}@media not print{.notebook_app{background-color:#eee}}.celltoolbar{border:thin solid #CFCFCF;border-bottom:none;background:#EEE;border-radius:2px 2px 0 0;width:100%;height:29px;padding-right:4px;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch;-webkit-box-pack:end;-moz-box-pack:end;box-pack:end;justify-content:flex-end;font-size:87%;padding-top:3px}@media print{.edit_mode div.cell.selected{border-color:transparent}div.code_cell{page-break-inside:avoid}#notebook-container{width:100%}.celltoolbar{display:none}}.ctb_hideshow{display:none;vertical-align:bottom}.ctb_global_show .ctb_show.ctb_hideshow{display:block}.ctb_global_show .ctb_show+.input_area,.ctb_global_show .ctb_show+div.text_cell_input,.ctb_global_show .ctb_show~div.text_cell_render{border-top-right-radius:0;border-top-left-radius:0}.ctb_global_show .ctb_show~div.text_cell_render{border:1px solid #cfcfcf}.celltoolbar select{color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;line-height:1.5;border-radius:1px;width:inherit;font-size:inherit;height:22px;padding:0;display:inline-block}.celltoolbar select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.celltoolbar select::-moz-placeholder{color:#999;opacity:1}.celltoolbar select:-ms-input-placeholder{color:#999}.celltoolbar select::-webkit-input-placeholder{color:#999}.celltoolbar select[disabled],.celltoolbar select[readonly],fieldset[disabled] .celltoolbar select{background-color:#eee;opacity:1}.celltoolbar select[disabled],fieldset[disabled] .celltoolbar select{cursor:not-allowed}textarea.celltoolbar select{height:auto}select.celltoolbar select{height:30px;line-height:30px}select[multiple].celltoolbar select,textarea.celltoolbar select{height:auto}.celltoolbar label{margin-left:5px;margin-right:5px}.completions{position:absolute;z-index:10;overflow:hidden;border:1px solid #ababab;border-radius:2px;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad;line-height:1}.completions select{background:#fff;outline:0;border:none;padding:0;margin:0;overflow:auto;font-family:monospace;font-size:110%;color:#000;width:auto}.completions select option.context{color:#286090}#kernel_logo_widget{float:right!important;float:right}#kernel_logo_widget .current_kernel_logo{display:none;margin-top:-1px;margin-bottom:-1px;width:32px;height:32px}#menubar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-top:1px}#menubar .navbar{border-top:1px;border-radius:0 0 2px 2px;margin-bottom:0}#menubar .navbar-toggle{float:left;padding-top:7px;padding-bottom:7px;border:none}#menubar .navbar-collapse{clear:left}.nav-wrapper{border-bottom:1px solid #e7e7e7}i.menu-icon{padding-top:4px}ul#help_menu li a{overflow:hidden;padding-right:2.2em}ul#help_menu li a i{margin-right:-1.2em}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;content:"\f0da";float:right;color:#333;margin-top:2px;margin-right:-10px}.dropdown-submenu>a:after.pull-left{margin-right:.3em}.dropdown-submenu>a:after.pull-right{margin-left:.3em}.dropdown-submenu:hover>a:after{color:#262626}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}#notification_area{float:right!important;float:right;z-index:10}.indicator_area{float:right!important;float:right;color:#777;margin-left:5px;margin-right:5px;z-index:10;text-align:center;width:auto}#kernel_indicator{float:right!important;float:right;color:#777;margin-left:5px;margin-right:5px;z-index:10;text-align:center;width:auto;border-left:1px solid}#kernel_indicator .kernel_indicator_name{padding-left:5px;padding-right:5px}#modal_indicator{float:right!important;float:right;color:#777;margin-left:5px;margin-right:5px;z-index:10;text-align:center;width:auto}#readonly-indicator{float:right!important;float:right;color:#777;z-index:10;text-align:center;width:auto;display:none;margin:2px 0 0}.modal_indicator:before{width:1.28571429em;text-align:center}.edit_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f040"}.edit_mode .modal_indicator:before.pull-left{margin-right:.3em}.edit_mode .modal_indicator:before.pull-right{margin-left:.3em}.command_mode .modal_indicator:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:' '}.command_mode .modal_indicator:before.pull-left{margin-right:.3em}.command_mode .modal_indicator:before.pull-right{margin-left:.3em}.kernel_idle_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f10c"}.kernel_idle_icon:before.pull-left{margin-right:.3em}.kernel_idle_icon:before.pull-right{margin-left:.3em}.kernel_busy_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f111"}.kernel_busy_icon:before.pull-left{margin-right:.3em}.kernel_busy_icon:before.pull-right{margin-left:.3em}.kernel_dead_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f1e2"}.kernel_dead_icon:before.pull-left{margin-right:.3em}.kernel_dead_icon:before.pull-right{margin-left:.3em}.kernel_disconnected_icon:before{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f127"}.kernel_disconnected_icon:before.pull-left{margin-right:.3em}.kernel_disconnected_icon:before.pull-right{margin-left:.3em}.notification_widget{z-index:10;background:rgba(240,240,240,.5);margin-right:4px;color:#333;background-color:#fff;border-color:#ccc}.notification_widget.active,.notification_widget.focus,.notification_widget:active,.notification_widget:focus,.notification_widget:hover,.open>.dropdown-toggle.notification_widget{color:#333;background-color:#e6e6e6;border-color:#adadad}.notification_widget.active,.notification_widget:active,.open>.dropdown-toggle.notification_widget{background-image:none}.notification_widget.disabled,.notification_widget.disabled.active,.notification_widget.disabled.focus,.notification_widget.disabled:active,.notification_widget.disabled:focus,.notification_widget.disabled:hover,.notification_widget[disabled],.notification_widget[disabled].active,.notification_widget[disabled].focus,.notification_widget[disabled]:active,.notification_widget[disabled]:focus,.notification_widget[disabled]:hover,fieldset[disabled] .notification_widget,fieldset[disabled] .notification_widget.active,fieldset[disabled] .notification_widget.focus,fieldset[disabled] .notification_widget:active,fieldset[disabled] .notification_widget:focus,fieldset[disabled] .notification_widget:hover{background-color:#fff;border-color:#ccc}.notification_widget .badge{color:#fff;background-color:#333}.notification_widget.warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning.active,.notification_widget.warning.focus,.notification_widget.warning:active,.notification_widget.warning:focus,.notification_widget.warning:hover,.open>.dropdown-toggle.notification_widget.warning{color:#fff;background-color:#ec971f;border-color:#d58512}.notification_widget.warning.active,.notification_widget.warning:active,.open>.dropdown-toggle.notification_widget.warning{background-image:none}.notification_widget.warning.disabled,.notification_widget.warning.disabled.active,.notification_widget.warning.disabled.focus,.notification_widget.warning.disabled:active,.notification_widget.warning.disabled:focus,.notification_widget.warning.disabled:hover,.notification_widget.warning[disabled],.notification_widget.warning[disabled].active,.notification_widget.warning[disabled].focus,.notification_widget.warning[disabled]:active,.notification_widget.warning[disabled]:focus,.notification_widget.warning[disabled]:hover,fieldset[disabled] .notification_widget.warning,fieldset[disabled] .notification_widget.warning.active,fieldset[disabled] .notification_widget.warning.focus,fieldset[disabled] .notification_widget.warning:active,fieldset[disabled] .notification_widget.warning:focus,fieldset[disabled] .notification_widget.warning:hover{background-color:#f0ad4e;border-color:#eea236}.notification_widget.warning .badge{color:#f0ad4e;background-color:#fff}.notification_widget.success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success.active,.notification_widget.success.focus,.notification_widget.success:active,.notification_widget.success:focus,.notification_widget.success:hover,.open>.dropdown-toggle.notification_widget.success{color:#fff;background-color:#449d44;border-color:#398439}.notification_widget.success.active,.notification_widget.success:active,.open>.dropdown-toggle.notification_widget.success{background-image:none}.notification_widget.success.disabled,.notification_widget.success.disabled.active,.notification_widget.success.disabled.focus,.notification_widget.success.disabled:active,.notification_widget.success.disabled:focus,.notification_widget.success.disabled:hover,.notification_widget.success[disabled],.notification_widget.success[disabled].active,.notification_widget.success[disabled].focus,.notification_widget.success[disabled]:active,.notification_widget.success[disabled]:focus,.notification_widget.success[disabled]:hover,fieldset[disabled] .notification_widget.success,fieldset[disabled] .notification_widget.success.active,fieldset[disabled] .notification_widget.success.focus,fieldset[disabled] .notification_widget.success:active,fieldset[disabled] .notification_widget.success:focus,fieldset[disabled] .notification_widget.success:hover{background-color:#5cb85c;border-color:#4cae4c}.notification_widget.success .badge{color:#5cb85c;background-color:#fff}.notification_widget.info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.notification_widget.info.active,.notification_widget.info.focus,.notification_widget.info:active,.notification_widget.info:focus,.notification_widget.info:hover,.open>.dropdown-toggle.notification_widget.info{color:#fff;background-color:#31b0d5;border-color:#269abc}.notification_widget.info.active,.notification_widget.info:active,.open>.dropdown-toggle.notification_widget.info{background-image:none}.notification_widget.info.disabled,.notification_widget.info.disabled.active,.notification_widget.info.disabled.focus,.notification_widget.info.disabled:active,.notification_widget.info.disabled:focus,.notification_widget.info.disabled:hover,.notification_widget.info[disabled],.notification_widget.info[disabled].active,.notification_widget.info[disabled].focus,.notification_widget.info[disabled]:active,.notification_widget.info[disabled]:focus,.notification_widget.info[disabled]:hover,fieldset[disabled] .notification_widget.info,fieldset[disabled] .notification_widget.info.active,fieldset[disabled] .notification_widget.info.focus,fieldset[disabled] .notification_widget.info:active,fieldset[disabled] .notification_widget.info:focus,fieldset[disabled] .notification_widget.info:hover{background-color:#5bc0de;border-color:#46b8da}.notification_widget.info .badge{color:#5bc0de;background-color:#fff}.notification_widget.danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger.active,.notification_widget.danger.focus,.notification_widget.danger:active,.notification_widget.danger:focus,.notification_widget.danger:hover,.open>.dropdown-toggle.notification_widget.danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.notification_widget.danger.active,.notification_widget.danger:active,.open>.dropdown-toggle.notification_widget.danger{background-image:none}.notification_widget.danger.disabled,.notification_widget.danger.disabled.active,.notification_widget.danger.disabled.focus,.notification_widget.danger.disabled:active,.notification_widget.danger.disabled:focus,.notification_widget.danger.disabled:hover,.notification_widget.danger[disabled],.notification_widget.danger[disabled].active,.notification_widget.danger[disabled].focus,.notification_widget.danger[disabled]:active,.notification_widget.danger[disabled]:focus,.notification_widget.danger[disabled]:hover,fieldset[disabled] .notification_widget.danger,fieldset[disabled] .notification_widget.danger.active,fieldset[disabled] .notification_widget.danger.focus,fieldset[disabled] .notification_widget.danger:active,fieldset[disabled] .notification_widget.danger:focus,fieldset[disabled] .notification_widget.danger:hover{background-color:#d9534f;border-color:#d43f3a}.notification_widget.danger .badge{color:#d9534f;background-color:#fff}div#pager{background-color:#fff;font-size:14px;line-height:20px;overflow:hidden;display:none;position:fixed;bottom:0;width:100%;max-height:50%;padding-top:8px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2);z-index:100;top:auto!important}div#pager pre{line-height:1.21429em;color:#000;background-color:#f7f7f7;padding:.4em}div#pager #pager-button-area{position:absolute;top:8px;right:20px}div#pager #pager-contents{position:relative;overflow:auto;width:100%;height:100%}div#pager #pager-contents #pager-container{position:relative;padding:15px 0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}div#pager .ui-resizable-handle{top:0;height:8px;background:#f7f7f7;border-top:1px solid #cfcfcf;border-bottom:1px solid #cfcfcf}div#pager .ui-resizable-handle::after{content:'';top:2px;left:50%;height:3px;width:30px;margin-left:-15px;position:absolute;border-top:1px solid #cfcfcf}.quickhelp{display:-webkit-box;-webkit-box-orient:horizontal;display:-moz-box;-moz-box-orient:horizontal;display:box;box-orient:horizontal;box-align:stretch;display:flex;flex-direction:row;align-items:stretch}.shortcut_key{display:inline-block;width:20ex;text-align:right;font-family:monospace}.shortcut_descr{display:inline-block;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;flex:1}span.save_widget{margin-top:6px}span.save_widget span.filename{height:1em;line-height:1em;padding:3px;margin-left:16px;border:none;font-size:146.5%;border-radius:2px}span.save_widget span.filename:hover{background-color:#e6e6e6}span.autosave_status,span.checkpoint_status{font-size:small}@media (max-width:767px){span.save_widget{font-size:small}span.autosave_status,span.checkpoint_status{display:none}}@media (min-width:768px)and (max-width:991px){span.checkpoint_status{display:none}span.autosave_status{font-size:x-small}}.toolbar{padding:0;margin-left:-5px;margin-top:2px;margin-bottom:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.toolbar label,.toolbar select{width:auto;vertical-align:middle;margin-bottom:0;display:inline;font-size:92%;margin-left:.3em;margin-right:.3em;padding:3px 0 0}.toolbar .btn{padding:2px 8px}.toolbar .btn-group{margin-top:0;margin-left:5px}#maintoolbar{margin-bottom:-3px;margin-top:-8px;border:0;min-height:27px;margin-left:0;padding-top:11px;padding-bottom:3px}#maintoolbar .navbar-text{float:none;vertical-align:middle;text-align:right;margin-left:5px;margin-right:0;margin-top:0}.select-xs{height:24px}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}.bigtooltip{overflow:auto;height:200px;-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms}.smalltooltip{-webkit-transition-property:height;-webkit-transition-duration:500ms;-moz-transition-property:height;-moz-transition-duration:500ms;transition-property:height;transition-duration:500ms;text-overflow:ellipsis;overflow:hidden;height:80px}.tooltipbuttons{position:absolute;padding-right:15px;top:0;right:0}.tooltiptext{padding-right:30px}.ipython_tooltip{max-width:700px;animation:fadeOut 400ms;-webkit-animation:fadeIn 400ms;-moz-animation:fadeIn 400ms;animation:fadeIn 400ms;vertical-align:middle;background-color:#f7f7f7;overflow:visible;border:1px solid #ababab;outline:0;padding:3px 3px 3px 7px;padding-left:7px;font-family:monospace;min-height:50px;-moz-box-shadow:0 6px 10px -1px #adadad;-webkit-box-shadow:0 6px 10px -1px #adadad;box-shadow:0 6px 10px -1px #adadad;border-radius:2px;position:absolute;z-index:1000}.ipython_tooltip a{float:right}.ipython_tooltip .tooltiptext pre{border:0;border-radius:0;font-size:100%;background-color:#f7f7f7}.pretooltiparrow{left:0;margin:0;top:-16px;width:40px;height:16px;overflow:hidden;position:absolute}.pretooltiparrow:before{background-color:#f7f7f7;border:1px solid #ababab;z-index:11;content:"";position:absolute;left:15px;top:10px;width:25px;height:25px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.terminal-app{background:#eee}.terminal-app #header{background:#fff;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.2);box-shadow:0 0 12px 1px rgba(87,87,87,.2)}.terminal-app .terminal{float:left;font-family:monospace;color:#fff;background:#000;padding:.4em;border-radius:2px;-webkit-box-shadow:0 0 12px 1px rgba(87,87,87,.4);box-shadow:0 0 12px 1px rgba(87,87,87,.4)}.terminal-app .terminal,.terminal-app .terminal dummy-screen{line-height:1em;font-size:14px}.terminal-app .terminal-cursor{color:#000;background:#fff}.terminal-app #terminado-container{margin-top:20px}
+/*# sourceMappingURL=style.min.css.map */
+    </style>
+<style type="text/css">
+    .highlight .hll { background-color: #ffffcc }
+.highlight  { background: #f8f8f8; }
+.highlight .c { color: #408080; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #008000; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
+.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
+.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #008000 } /* Keyword.Pseudo */
+.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #B00040 } /* Keyword.Type */
+.highlight .m { color: #666666 } /* Literal.Number */
+.highlight .s { color: #BA2121 } /* Literal.String */
+.highlight .na { color: #7D9029 } /* Name.Attribute */
+.highlight .nb { color: #008000 } /* Name.Builtin */
+.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.highlight .no { color: #880000 } /* Name.Constant */
+.highlight .nd { color: #AA22FF } /* Name.Decorator */
+.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #0000FF } /* Name.Function */
+.highlight .nl { color: #A0A000 } /* Name.Label */
+.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #19177C } /* Name.Variable */
+.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mb { color: #666666 } /* Literal.Number.Bin */
+.highlight .mf { color: #666666 } /* Literal.Number.Float */
+.highlight .mh { color: #666666 } /* Literal.Number.Hex */
+.highlight .mi { color: #666666 } /* Literal.Number.Integer */
+.highlight .mo { color: #666666 } /* Literal.Number.Oct */
+.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
+.highlight .sc { color: #BA2121 } /* Literal.String.Char */
+.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
+.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.highlight .sx { color: #008000 } /* Literal.String.Other */
+.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
+.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
+.highlight .ss { color: #19177C } /* Literal.String.Symbol */
+.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #19177C } /* Name.Variable.Class */
+.highlight .vg { color: #19177C } /* Name.Variable.Global */
+.highlight .vi { color: #19177C } /* Name.Variable.Instance */
+.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
+    </style>
+
+
+<style type="text/css">
+/* Overrides of notebook CSS for static HTML export */
+body {
+  overflow: visible;
+  padding: 8px;
+}
+
+div#notebook {
+  overflow: visible;
+  border-top: none;
+}
+
+@media print {
+  div.cell {
+    display: block;
+    page-break-inside: avoid;
+  } 
+  div.output_wrapper { 
+    display: block;
+    page-break-inside: avoid; 
+  }
+  div.output { 
+    display: block;
+    page-break-inside: avoid; 
+  }
+}
+</style>
+
+<!-- Custom stylesheet, it must be in the same directory as the html file -->
+<link rel="stylesheet" href="custom.css">
+
+<!-- Loading mathjax macro -->
+<!-- Load mathjax -->
+    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
+    <!-- MathJax configuration -->
+    <script type="text/x-mathjax-config">
+    MathJax.Hub.Config({
+        tex2jax: {
+            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
+            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
+            processEscapes: true,
+            processEnvironments: true
+        },
+        // Center justify equations in code and markdown cells. Elsewhere
+        // we use CSS to left justify single line equations in code cells.
+        displayAlign: 'center',
+        "HTML-CSS": {
+            styles: {'.MathJax_Display': {"margin": 0}},
+            linebreaks: { automatic: true }
+        }
+    });
+    </script>
+    <!-- End of mathjax configuration --></head>
+<body>
+  <div tabindex="-1" id="notebook" class="border-box-sizing">
+    <div class="container" id="notebook-container">
+
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h1 id="Multimodal-(Gaussian-Mixture/Hidden-Markov)-Models-for-Motion-Sound-Mapping-&#8212;-Quickstart-guide">Multimodal (Gaussian Mixture/Hidden Markov) Models for Motion-Sound Mapping &#8212; Quickstart guide<a class="anchor-link" href="#Multimodal-(Gaussian-Mixture/Hidden-Markov)-Models-for-Motion-Sound-Mapping-&#8212;-Quickstart-guide">&#182;</a></h1><h2 id="Building-and-using-the-XMM-Python-library">Building and using the XMM Python library<a class="anchor-link" href="#Building-and-using-the-XMM-Python-library">&#182;</a></h2><p>See <a href="http://ircam-rnd.github.io/xmm/">http://ircam-rnd.github.io/xmm/</a></p>
+<p>The python library reflects the sructure of the C++ library. The same classes and methods can be used on both implementations.
+First, import the python library (needs to be within your Python search path).</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[1]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="kn">import</span> <span class="nn">xmm</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Using-GMMs-for-classification">Using GMMs for classification<a class="anchor-link" href="#Using-GMMs-for-classification">&#182;</a></h2><p>In this example, we illustrate the process of training and classification with Gaussian Mixture Models. We have 3 data files called "gmm_test_data1.txt", "gmm_test_data2.txt", "gmm_test_data3.txt". Each file contains a 2D array where each row is a data frame with 6 dimensions. The data was generated with the example patch from the Max/Mubu implementation (see <a href="http://julesfrancoise.com/mubu-probabilistic-models/">http://julesfrancoise.com/mubu-probabilistic-models/</a>)</p>
+<h3 id="Building-a-training-set">Building a training set<a class="anchor-link" href="#Building-a-training-set">&#182;</a></h3><p>First, we need to record and annotate the training data. This is done using the <code>TrainingSet</code> class:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[2]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="o">%</span><span class="k">matplotlib</span> inline
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
+<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
+
+<span class="c1"># Create the training set</span>
+<span class="n">training_set</span> <span class="o">=</span> <span class="n">xmm</span><span class="o">.</span><span class="n">TrainingSet</span><span class="p">()</span>
+<span class="n">training_set</span><span class="o">.</span><span class="n">dimension</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">6</span><span class="p">)</span> <span class="c1"># dimension of data in this example</span>
+<span class="n">training_set</span><span class="o">.</span><span class="n">column_names</span><span class="o">.</span><span class="n">set</span><span class="p">([</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;d&#39;</span><span class="p">,</span> <span class="s1">&#39;e&#39;</span><span class="p">,</span> <span class="s1">&#39;f&#39;</span><span class="p">])</span>
+<span class="c1"># Record data phrases</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
+    <span class="n">phrase</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/gmm_training_data{}.txt&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+    <span class="n">training_set</span><span class="o">.</span><span class="n">addPhrase</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+    <span class="k">for</span> <span class="n">frame</span> <span class="ow">in</span> <span class="n">phrase</span><span class="p">:</span>
+        <span class="c1"># Append data frame to the phrase i</span>
+        <span class="n">training_set</span><span class="o">.</span><span class="n">getPhrase</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">record</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>For most objects of the library, calling the <code>print</code> function from python will print the JSON file description of the current object. In this case, we can have a look at the data contained in the training set:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[3]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="k">print</span> <span class="s2">&quot;Number of phrases in the training set: &quot;</span><span class="p">,</span> <span class="n">training_set</span><span class="o">.</span><span class="n">size</span><span class="p">()</span>
+<span class="k">print</span> <span class="s2">&quot;Labels: &quot;</span><span class="p">,</span> <span class="n">training_set</span><span class="o">.</span><span class="n">labels</span><span class="p">()</span>
+<span class="k">print</span> <span class="s2">&quot;names of the columns of the training data:&quot;</span><span class="p">,</span> <span class="n">training_set</span><span class="o">.</span><span class="n">column_names</span><span class="o">.</span><span class="n">get</span><span class="p">()</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area"><div class="prompt"></div>
+<div class="output_subarea output_stream output_stdout output_text">
+<pre>Number of phrases in the training set:  3
+Labels:  (&apos;1&apos;, &apos;2&apos;, &apos;3&apos;)
+names of the columns of the training data: (&apos;a&apos;, &apos;b&apos;, &apos;c&apos;, &apos;d&apos;, &apos;e&apos;, &apos;f&apos;)
+</pre>
+</div>
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>The training Set has 3 classes with integer labels 1, 2 and 3.</p>
+<h3 id="Training-the-models">Training the models<a class="anchor-link" href="#Training-the-models">&#182;</a></h3><p>We can now train a <code>GMM</code> — i.e. a group of Gaussian Mixture Models with different class labels.
+We start by creating an instance of the <code>GMM</code>, and we can then adjust the model parameters (number of Gaussians and regularization of the covariances) and train the models for all classes of the training set:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[4]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Create a GMM (handles multiples labels for recognition)</span>
+<span class="n">gmm</span> <span class="o">=</span> <span class="n">xmm</span><span class="o">.</span><span class="n">GMM</span><span class="p">()</span>
+<span class="c1"># Set parameters</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">gaussians</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">relative_regularization</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mf">0.01</span><span class="p">)</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">absolute_regularization</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mf">0.0001</span><span class="p">)</span>
+<span class="c1"># Train all models</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">training_set</span><span class="p">)</span>
+<span class="k">print</span> <span class="s2">&quot;number of models: &quot;</span><span class="p">,</span> <span class="n">gmm</span><span class="o">.</span><span class="n">size</span><span class="p">()</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area"><div class="prompt"></div>
+<div class="output_subarea output_stream output_stdout output_text">
+<pre>number of models:  3
+</pre>
+</div>
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h3 id="Performing-Recognition">Performing Recognition<a class="anchor-link" href="#Performing-Recognition">&#182;</a></h3><p>The trained ModelGroup can be used directly to perform continuous recognition or classification with class-conditional GMMs.</p>
+<p>We start by loading test data originatin from the same 3 distributions used for training:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[5]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># read test data (concatenation of 3 test examples labeled 1, 2, 3)</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/gmm_test_data1.txt&#39;</span><span class="p">)</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">test_data</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/gmm_test_data2.txt&#39;</span><span class="p">)))</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">test_data</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/gmm_test_data3.txt&#39;</span><span class="p">)))</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Then, we can set additional attributes of the models, such as the size of the window used to smooth the likelihoods, and initialize the "performance mode".
+We create several arrays that will store the normalized likelihoods and log-likelihoods during continuous recognition, and we can then perform the recognition continuously and causally by updating the recognition with each new frame of the test examples:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[6]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Set Size of the likelihood Window (samples)</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">shared_parameters</span><span class="o">.</span><span class="n">likelihood_window</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span>
+<span class="c1"># Initialize performance phase</span>
+<span class="n">gmm</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span>
+<span class="c1"># Create likelihood arrays for recognition</span>
+<span class="n">instantaneous_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">gmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="n">normalized_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">gmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="n">log_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">gmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="c1"># Performance: Play test data and record the likelihoods of the modes</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
+    <span class="n">gmm</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">xmm</span><span class="o">.</span><span class="n">vectorf</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]))</span>
+    <span class="n">instantaneous_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">gmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">instant_likelihoods</span><span class="p">)</span>
+    <span class="n">normalized_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">gmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">smoothed_normalized_likelihoods</span><span class="p">)</span>
+    <span class="n">log_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">gmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">smoothed_log_likelihoods</span><span class="p">)</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>We can finally plotthe normalized and log-likelihoods over time:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[7]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Plot the likelihoods over time for the test phase</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">311</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">instantaneous_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Instantaneous Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">312</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">normalized_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Normalized Smoothed Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Normalized Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">313</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">log_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Smoothed Log-Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Log-Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area"><div class="prompt output_prompt">Out[7]:</div>
+
+
+<div class="output_text output_subarea output_execute_result">
+<pre>&lt;matplotlib.legend.Legend at 0x112741dd0&gt;</pre>
+</div>
+
+</div>
+
+<div class="output_area"><div class="prompt"></div>
+
+
+<div class="output_png output_subarea ">
+<img src="data:image/png;base64,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
+w+FwhIz/B+FzXWb2SmNVAAAAAElFTkSuQmCC
+"
+>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>Note that the trained model can be saved to a JSON file:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[8]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="n">gmm</span><span class="o">.</span><span class="n">writeFile</span><span class="p">(</span><span class="s2">&quot;test_gmm.json&quot;</span><span class="p">)</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<h2 id="Continuous-Gesture-Recognition-and-Following-with-the-Hierarchical-HMM">Continuous Gesture Recognition and Following with the Hierarchical HMM<a class="anchor-link" href="#Continuous-Gesture-Recognition-and-Following-with-the-Hierarchical-HMM">&#182;</a></h2><p>This example is inspired by the <code>test_hierarchicalhmm.y</code> file in the <code>python/examples</code>directory.</p>
+<p>The data originates from the example patch: "hhmm_leapmotion_recognition.maxpat" of the Max implementation (see <a href="http://julesfrancoise.com/mubu-probabilistic-models/">http://julesfrancoise.com/mubu-probabilistic-models/</a>).
+The data represents the XYZ Speed of the hand extracted from the leapmotion, rescaled (divided by 1000) and smoothed (moving average filter).</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[9]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Create the training set</span>
+<span class="n">training_set</span> <span class="o">=</span> <span class="n">xmm</span><span class="o">.</span><span class="n">TrainingSet</span><span class="p">()</span>
+<span class="n">training_set</span><span class="o">.</span><span class="n">dimension</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="c1"># dimension of data in this example</span>
+<span class="n">training_set</span><span class="o">.</span><span class="n">column_names</span><span class="o">.</span><span class="n">set</span><span class="p">([</span><span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="s1">&#39;y&#39;</span><span class="p">,</span> <span class="s1">&#39;z&#39;</span><span class="p">])</span>
+<span class="c1"># Record data phrases</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
+    <span class="n">phrase</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/hhmm_test_data{}.txt&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+    <span class="n">training_set</span><span class="o">.</span><span class="n">addPhrase</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>
+    <span class="k">for</span> <span class="n">frame</span> <span class="ow">in</span> <span class="n">phrase</span><span class="p">:</span>
+        <span class="c1"># Append data frame to the phrase i</span>
+        <span class="n">training_set</span><span class="o">.</span><span class="n">getPhrase</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">record</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span> <span class="c1"># Create a single HMM (group of GMMs running in parallel for recognition)</span>
+
+<span class="c1"># Train the HMMs</span>
+<span class="n">hhmm</span> <span class="o">=</span> <span class="n">xmm</span><span class="o">.</span><span class="n">HierarchicalHMM</span><span class="p">()</span>
+<span class="n">hhmm</span><span class="o">.</span><span class="n">configuration</span><span class="o">.</span><span class="n">states</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span> <span class="c1"># &lt;== try changing the number of hidden states</span>
+<span class="n">hhmm</span><span class="o">.</span><span class="n">train</span><span class="p">(</span><span class="n">training_set</span><span class="p">)</span>
+<span class="k">print</span> <span class="s2">&quot;number of models&quot;</span><span class="p">,</span> <span class="n">hhmm</span><span class="o">.</span><span class="n">size</span><span class="p">()</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area"><div class="prompt"></div>
+<div class="output_subarea output_stream output_stdout output_text">
+<pre>number of models 3
+</pre>
+</div>
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>We consider a simple example of continuous recognition and folllowing with data originating from the concatenation of 3 recording, one from each class of gestures:</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[10]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># read test data (concatenation of 1 example of each of the 3 classes)</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/hhmm_test_data1.txt&#39;</span><span class="p">)</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">test_data</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/hhmm_test_data2.txt&#39;</span><span class="p">)))</span>
+<span class="n">test_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">test_data</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">genfromtxt</span><span class="p">(</span><span class="s1">&#39;data/hhmm_test_data3.txt&#39;</span><span class="p">)))</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>As before, we initialize the performance mode with the <code>performance_init</code> function and we can then proceed to continuous recognition where we update at each time step the model with the incoming data frame.
+In this example, we store the instantaneous likelihood as well as its normalized version and the log-likelihood.
+We also keep track of the "progress" within the model, which gives an estimate of the temporal progression of the current gesture.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[11]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Initialize performance phase</span>
+<span class="n">hhmm</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span>
+<span class="c1"># Create arrays for likelihoods</span>
+<span class="n">instantaneous_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">hhmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="n">normalized_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">hhmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="n">log_likelihoods</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">hhmm</span><span class="o">.</span><span class="n">size</span><span class="p">()))</span>
+<span class="n">progress</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
+<span class="c1"># Performance: Play test data and record the likelihoods of the modes</span>
+<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">test_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
+    <span class="n">hhmm</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span>
+    <span class="n">log_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">hhmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">smoothed_log_likelihoods</span><span class="p">)</span>
+    <span class="n">instantaneous_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">hhmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">instant_likelihoods</span><span class="p">)</span>
+    <span class="n">normalized_likelihoods</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">hhmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">smoothed_normalized_likelihoods</span><span class="p">)</span>
+    <span class="n">progress</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">hhmm</span><span class="o">.</span><span class="n">models</span><span class="p">[</span><span class="n">hhmm</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">likeliest</span><span class="p">]</span><span class="o">.</span><span class="n">results</span><span class="o">.</span><span class="n">progress</span>
+    <span class="c1"># Note: you could extract alphas and time progression as for HMM, for each model. E.g. : </span>
+    <span class="c1"># print np.array(hhmm.models[hhmm.results_likeliest].alpha)</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing text_cell rendered">
+<div class="prompt input_prompt">
+</div>
+<div class="inner_cell">
+<div class="text_cell_render border-box-sizing rendered_html">
+<p>We can Finally plot the likelihood of each model over time, which is estimated causally with a forward algorithm (therefore allowing a use in real-time).
+The last plot depicts the temporal progression within the likeliest model, which gives an idea of how the new performance of the gesture is followed in time.</p>
+
+</div>
+</div>
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[12]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre><span class="c1"># Plot the likelihoods over time for the test phase</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">411</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">instantaneous_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Instantaneous Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">412</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">normalized_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Normalized Smoothed Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Normalized Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">413</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">log_likelihoods</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Smoothed Log-Likelihood of Each Model Over time&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Log-Likelihood&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">((</span><span class="s2">&quot;model 1&quot;</span><span class="p">,</span> <span class="s2">&quot;model 2&quot;</span><span class="p">,</span> <span class="s2">&quot;model 3&quot;</span><span class="p">))</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">subplot</span><span class="p">(</span><span class="mi">414</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">progress</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;Normalized progression with the likeliest model&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Time (Samples)&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Normalized Progress&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+
+</div>
+</div>
+</div>
+
+<div class="output_wrapper">
+<div class="output">
+
+
+<div class="output_area"><div class="prompt"></div>
+
+
+<div class="output_png output_subarea ">
+<img src="data:image/png;base64,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
+PFzj/wHlQqq6YUq0TwAAAABJRU5ErkJggg==
+"
+>
+</div>
+
+</div>
+
+</div>
+</div>
+
+</div>
+<div class="cell border-box-sizing code_cell rendered">
+<div class="input">
+<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
+<div class="inner_cell">
+    <div class="input_area">
+<div class=" highlight hl-ipython2"><pre> 
+</pre></div>
+
+</div>
+</div>
+</div>
+
+</div>
+    </div>
+  </div>
+</body>
+</html>
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/XmmDoxygenLayout.xml b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/XmmDoxygenLayout.xml
new file mode 100644
index 0000000..6672083
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/XmmDoxygenLayout.xml
@@ -0,0 +1,184 @@
+<doxygenlayout version="1.0">
+  <!-- Generated by doxygen 1.8.11 -->
+  <!-- Navigation index tabs for HTML output -->
+  <navindex>
+    <tab type="mainpage" visible="yes" title=""/>
+    <tab type="modules" visible="yes" title="" intro=""/>
+    <tab type="classes" visible="yes" title="">
+      <tab type="classlist" visible="yes" title="" intro=""/>
+      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> 
+      <tab type="hierarchy" visible="yes" title="" intro=""/>
+      <tab type="classmembers" visible="yes" title="" intro=""/>
+    </tab>
+  </navindex>
+
+  <!-- Layout definition for a class page -->
+  <class>
+    <briefdescription visible="yes"/>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <inheritancegraph visible="$CLASS_GRAPH"/>
+    <collaborationgraph visible="$COLLABORATION_GRAPH"/>
+    <memberdecl>
+      <nestedclasses visible="yes" title=""/>
+      <publictypes title=""/>
+      <services title=""/>
+      <interfaces title=""/>
+      <publicslots title=""/>
+      <signals title=""/>
+      <publicmethods title=""/>
+      <publicstaticmethods title=""/>
+      <publicattributes title=""/>
+      <publicstaticattributes title=""/>
+      <protectedtypes title=""/>
+      <protectedslots title=""/>
+      <protectedmethods title=""/>
+      <protectedstaticmethods title=""/>
+      <protectedattributes title=""/>
+      <protectedstaticattributes title=""/>
+      <packagetypes title=""/>
+      <packagemethods title=""/>
+      <packagestaticmethods title=""/>
+      <packageattributes title=""/>
+      <packagestaticattributes title=""/>
+      <properties title=""/>
+      <events title=""/>
+      <privatetypes title=""/>
+      <privateslots title=""/>
+      <privatemethods title=""/>
+      <privatestaticmethods title=""/>
+      <privateattributes title=""/>
+      <privatestaticattributes title=""/>
+      <friends title=""/>
+      <related title="" subtitle=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <services title=""/>
+      <interfaces title=""/>
+      <constructors title=""/>
+      <functions title=""/>
+      <related title=""/>
+      <variables title=""/>
+      <properties title=""/>
+      <events title=""/>
+    </memberdef>
+    <allmemberslink visible="yes"/>
+    <usedfiles visible="$SHOW_USED_FILES"/>
+    <authorsection visible="yes"/>
+  </class>
+
+  <!-- Layout definition for a namespace page -->
+  <namespace>
+    <briefdescription visible="yes"/>
+    <memberdecl>
+      <nestednamespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </namespace>
+
+  <!-- Layout definition for a file page -->
+  <file>
+    <briefdescription visible="yes"/>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <includegraph visible="$INCLUDE_GRAPH"/>
+    <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
+    <sourcelink visible="yes"/>
+    <memberdecl>
+      <classes visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection/>
+  </file>
+
+  <!-- Layout definition for a group page -->
+  <group>
+    <briefdescription visible="yes"/>
+    <groupgraph visible="$GROUP_GRAPHS"/>
+    <memberdecl>
+      <nestedgroups visible="yes" title=""/>
+      <dirs visible="yes" title=""/>
+      <files visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <pagedocs/>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </group>
+
+  <!-- Layout definition for a directory page -->
+  <directory>
+    <briefdescription visible="yes"/>
+    <directorygraph visible="yes"/>
+    <memberdecl>
+      <dirs visible="yes"/>
+      <files visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+  </directory>
+</doxygenlayout>
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/footer.html b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/footer.html
new file mode 100644
index 0000000..62b4587
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/footer.html
@@ -0,0 +1,3 @@
+<!-- HTML footer for doxygen 1.8.9.1-->
+</body>
+</html>
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/header.html b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/header.html
new file mode 100644
index 0000000..d66dfb6
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/header.html
@@ -0,0 +1,37 @@
+<!-- HTML header for doxygen 1.8.9.1-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen $doxygenversion"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<script type="text/javascript" src="$relpath^jquery.js"></script>
+<script type="text/javascript" src="$relpath^dynsections.js"></script>
+<link href='http://fonts.googleapis.com/css?family=Merriweather:400,700,400italic,700italic&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
+<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
+$treeview
+$search
+$mathjax
+<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+$extrastylesheet
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+<!--BEGIN TITLEAREA-->
+<div id="titlearea">
+  <img src="$projectlogo"/>
+  <h1>$projectname</h1>
+  <nav>
+    <ul>
+      <li><a href="index.html">About</a></li>
+      <li><a href="GettingStarted.html">Getting Started</a></li>
+      <li><a href="Documentation.html">Documentation</a></li>
+      <li><a href="Download.html">Download</a></li>
+    </ul>
+  </nav>
+</div>
+<!--END TITLEAREA-->
+<!-- end header part -->
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jdoxygen.css b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jdoxygen.css
new file mode 100644
index 0000000..399d2fc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jdoxygen.css
@@ -0,0 +1,1199 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+	font: 400 14px/19px 'Droid Sans',sans-serif;
+}
+
+body {
+    padding: 0 !important;
+}
+
+#top {
+    /*border-bottom: 1px solid #A5A5A5;*/
+    /*background-color: #f35757;*/
+    color: #253555;
+}
+
+#nav-path { display: none; }
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #A5A5A5;
+	color: #4970C0;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+    font-weight: normal;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #989898;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+    margin-bottom: 2px;
+    padding-bottom: 2px;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #E2E8F2;
+	/*border: 1px solid #A3B4D7;*/
+	text-align: center;
+    padding-top: 5px;
+    padding-bottom: 5px;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #F35757;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #F35757;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px;
+        margin: 4px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: #989898;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+    margin: 0 10%;
+    margin-bottom: 40px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: center;
+	padding: 20px;
+    background-color: #242d36;
+    color: #fff;
+    margin-top: 30px
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+    display: none;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        background-color: #E2E8F2;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #E2E8F2;      
+        border-left: 1px solid #E2E8F2;      
+        border-right: 1px solid #E2E8F2; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-color: #FFFFFF;
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #C72C2C;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+    background-color: #728DC1;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 5px 5px;
+	border-radius: 0px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        width: 100%;
+        margin-bottom: 10px;
+        border: 1px solid #E2E8F2;
+        border-spacing: 0px;
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #E2E8F2;
+        border-bottom: 1px solid #E2E8F2;
+        vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #E2E8F2;
+        width: 100%;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        border-bottom: 1px solid #E2E8F2;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-color: #E2E8F2;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+    display: none;
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+	margin: 0 auto;
+	border-bottom: 1px solid #C4CFE5;
+    width: 80%;
+    max-width: 1024px;
+}
+
+div.headertitle
+{
+	padding: 10px 0;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname {
+    font-size: 32px;
+    margin: 0 auto;
+    padding: 3%;
+    text-align: center;
+    background-color: #242d36;
+    color: #fff;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+    padding: 0px;
+    margin: 0px;
+    width: 100%;
+    text-align: center;
+}
+
+#titlearea img
+{
+    width: 100%;
+}
+
+#titlearea nav
+{
+    padding:0 10%;
+    padding: 0;
+    text-align: center;
+    margin-bottom: 10px;
+    background-color: #f35757;
+}
+
+#titlearea nav ul
+{
+    display: inline-block;
+    padding: 0;
+    margin: 0 auto;
+}
+
+#titlearea nav ul li
+{
+    list-style: none;
+    display: inline-block;
+    /*float: left;*/
+    /*width: 20%;*/
+    padding: 10px 20px;
+    text-align: center;
+}
+
+#titlearea nav ul li a
+{
+    color: white;
+    text-decoration: none;
+}
+
+#titlearea nav ul li a:hover
+{
+    color: #333;
+    text-decoration: none;
+}
+
+#navrow1, #navrow2
+{
+    display: none;
+}
+
+.image,
+.image img
+{
+    text-align: center;
+    max-width: 100%;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+#navrow2 {
+
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jtabs.css b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jtabs.css
new file mode 100644
index 0000000..8c73f31
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/jtabs.css
@@ -0,0 +1,59 @@
+.tabs, .tabs2, .tabs3 {
+    background-color: #F35757;
+    background-image: none;
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    width: 80%;
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    text-align: center;
+    display: table-cell;
+    background-color: #F35757;
+    line-height: 36px;
+    list-style: none;
+    width: 16%;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 30px;
+    font-size: 14px;
+    background-color: #F35757;
+    border-right: 1px solid #fff;
+    border-bottom: 1px solid #fff;
+    color: #FFF;
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-color: #B30303;
+    color: #fff;
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-color: #B30303;
+    color: #fff;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/python_example.py b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/python_example.py
new file mode 100644
index 0000000..66d7bc6
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/python_example.py
@@ -0,0 +1,47 @@
+import numpy as np
+import mhmm
+
+# Load Training Data
+training_motion_1 = np.genfromtxt('training_motion_1.txt')
+training_motion_2 = np.genfromtxt('training_motion_2.txt')
+training_sound_1 = np.genfromtxt('training_sound_1.txt')
+training_sound_2 = np.genfromtxt('training_sound_2.txt')
+
+dim_gesture = training_motion_1.shape[1]
+dim_sound = training_sound_1.shape[1]
+
+# Create a multimodal training set
+training_set = mhmm.TrainingSet(mhmm.BIMODAL)
+training_set.set_dimension(dim_gesture + dim_sound)
+training_set.set_dimension_input(dim_sound)
+
+# Record First Phrase
+for frame_motion, frame_sound in zip(training_motion_1, training_sound_1):
+    training_set.recordPhrase_input (0, frame_motion)
+    training_set.recordPhrase_output(0, frame_sound)
+training_set.setPhraseLabel(0, mhmm.Label('one'))
+
+# Record Second Phrase
+for frame_motion, frame_sound in zip(training_motion_2, training_sound_2):
+    training_set.recordPhrase_input (1, frame_motion)
+    training_set.recordPhrase_output(1, frame_sound)
+training_set.setPhraseLabel(1, mhmm.Label('two'))
+
+# Instantiate and Train a Hierarchical Multimodal HMM
+xmm = mhmm.HierarchicalHMM(mhmm.BIMODAL, training_set)
+xmm.set_nbStates(10)
+xmm.set_nbMixtureComponents(1)
+xmm.set_varianceOffset(0.1, 0.01)
+xmm.train()
+
+# Perform joint recognition and Mapping
+test_motion = np.genfromtxt('test_motion.txt')
+predicted_sound = np.zeros((len(test_motion), dim_sound))
+log_likelihoods = np.zeros((len(test_motion), xmm.size()))
+xmm.performance_init()
+for t, frame_motion in enumerate(test_motion):
+    xmm.performance_update(frame)
+    predicted_sound[t, :] = xmm.results_predicted_output
+    log_likelihoods[t, :] = xmm.results_log_likelihoods
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_architecture.jpg b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_architecture.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..83e4a51a6749b5d5799b54409269a4fb087c7ddb
GIT binary patch
literal 87034
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%0A`<Ya5zw>PD^+`v
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%0DD
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
B4O{>K

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured.jpg b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..847896cbb9dcf7fbec533d43281676689cb7430c
GIT binary patch
literal 778523
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%0AgJArT^aM=GEJ1!fpkDvA8oHu=}(UqG$
z?)mf=M8#?%-_hIr*jNn5*n%uhdg5=7{(soA!k@=}7&q;k%;bY-1lm*AS5vZ;Kh9)5
zb9>@F&vpxAB84CAdZFJfbeSpRal$Aq_J5Z<bT;iaTuyXqe4V{6-(^4E1w2WQ<f=TC
z7H0jF5<bmbURbxf?jxmW2`glse8DAxuGzW|R>bR*nuJ%P^@0{QaPg9*=G9d${!Kxx
zG;Z}^>9t}V)7h^Jwq+{E6xI!A3nj~a^kM!5<I^ckX<4Zss)fL%)f|RG+6lQWjI-E>
z|K#R*h{8*NCkVbcD|?HM>vHM6OHFlnutcgsxK&$0xXvF-Y^?u8*P^;<(cD|DhUr($
z>&`Ya9omIoa_yY%zqXGTo?ksQFp=0&(wQ%B=?Ipo&||cy*w%c(g#EBuiWm1;%-L~=
zhf3=MPt?|zh2fdl+eza~cR=DzM~gxgrAUf+J9$Hh-9Iy3&s*<F*|gAqCl=?~Pq0?a
zr%4=*`J#fO3a?Tfq;YVzuyE$&W$`#o-dm5y-btbIIAXNE(w?+fkF7WB_(B`h>ECQy
zQv4!Ga>?=Qu#G#pMdcM<w(pXZAWRAA<g*hZCp6kph1jl!xz$~de639_qWkXqs&Y)N
zWl*k*`Sc_?wXKqDY3g|_@$~(!kE<x7=l05+K;+8s28(_FtE4`kiDN_2W39ovHu608
zbw07RU%B#E$mPo=mOUa>4<X7)7Ia00#MayqeRZqh`1Lj42-u9|n)j?*K$Sv=i8DuT
z5pCKPQSYfx8eP4{gPRhQ$)6Y5k>WuiZcQ|_&A`yBfkdoNB;U=(L+5^COFoUjV@Jww
zzYAtDqqEGGixsw4i;Aq+@0Dc2>Gmo|A$zXn$VE2SC6SIP`MLB>F?%1onmqn#^Ma|E
zK;E`x;4z2Iqdo>-u*mGHoX}5Vi5`7(Pr4>!aG(TJJN1$EFC+ymC6nunyup3<YZe!C
z25G>p%|L>84L2u#Zmi!$PDx$JANpsA87aY}L+zKsR#P%{$yZZT)i+t&j{pV)&2LCV
zCheva9XiiBKgt-BbK_6-|D1Ro)+Sd;?}{%J5wz@a_dE2N&2pe3Y^b<ugpO9Fg$}p=
z^WP7>^XIhc5#L9HEwrVlS1^{{=&h-W#U2pi<L$_=u?Y8Uab-1!f%N$a*Q(!t5BlpW
zo_=ZD8rQ1?ai(q*z<qiUV<yO?dbA>RjkW)L=TcPwc=qOhe&_mnReEzPTB8ka<Zpd)
z6o(T{4Y>lyAAj5FFoKJ5-}UMjZ_an+vo_o!Il9n?1E1qIl3@;Qmv0C@__DBIa7lK7
zB=1#N9rLZ2t9)>DRMJg0x{GBV@uyP4Z;eKJPqS*x$Sldo{-F1bqq8!h;n~r~^2*{7
zqSSU(t$ztByl8Cw$12BO(SIRW9_#vUwH=BthfY_aeRC1^8fvw^AeMAe0d;aQtq^?S
z7nU*Bqw3}q471pzZ$u#nEL~)9wcrajVJu`#Anvc-f46MY!lBL<*z~c1;!FdC5(EN-
zD15Z5lkZoYlOBw<@-Mhqf3E4r#d|oo!@ic$l|tm$(CGX+n240!oD7IGxx<Qg6JsIA
zkYh$|sDB~)LjRrnVkr#{6^P=s__j3F|Dk?xP$4k^(0Z0WjOVP?JySqM<s-grL6w%L
z^=I4yo_IlyMSQ8_CRnM-`N~lE)~tB>POKPv|0p1WaQhY3**S&b&k$GFpMwkQoX`a@
z-z14Ybek2E@-00r&C3blxfV9g>c`2M!Xi^&X?zjV9TTjNR_jIS=qY5TJx27fHZrb?
zn941tHnE1@gOLf^;XqkH)wb<h{1gNI)zn|~C!I}DHp;Twi@eFwc<o6txwa&I=SUyy
zBT5%}FtG~rsb^xe@fL_orKUzaOI|(h994ET2;>F*EJ*+<=j#Nt@K4?bxea@92cqM!
z11TeTs6yntl$+Rx+Davk<_Yr}hqOZaha`xG%)Y-_>}*u=I$iIry-i3z2zT0h+sh7<
zc^?PI`*P5{lr>Vqmc0DgF*HGxD|TSC&cNcKGqNpCGz9Gpd*VY&SwcC^ZF~MM&3sGS
z_K^LIj_v8+q%0&nWOKn0fzprt)15qTQUUV&gxha%@eIsycQ@_80Ci5L&0IiWLy0-1
z?<*8(1GT@%OF<p!B!67<Z8q5zU|d%in7{5~%3Q|^U2v&g^Uck5$+SfLE^GkVn6g3a
z68om*l{063#zXH`O-;j{gLb=ece97He>oxfk<WUf@RyD`lzXH{^8%_7vWGKkkkOmO
za5Y7+Yuc)PG+nX!d(2-PP@E?t+9uAZ*TmJ4;v)&h)WH0gz9&PDH)V)S8)N{Af9U*!
z%FNmKb!Px?lvUm?7w|^AoAm~Iv2zuZ{{Bnpe?gsHV3QouknMdd5g`24^$B2}n^X*N
z8A}$F{mlzYTtItt&~HiA+3v#WIdkw|3XKdooe*V#Cb4%_mv3oyT!KB>`r7aA=rjZP
zdNC72?4o*cSA&jTkk@oRhH)S09YiKR0G6}ut;)`gvuMERxg^d`FP7UeeHPJf(ssa*
zJv=kK4tjB(YDvLIyGbv@os_-s)d_>+>OmkNY4PCYfA9Xkw-51qQ=;dMIWZJ3M~;9%
zcsI%iaXJnuWV+wGJwHh1{(1NZLu37s>7@y4aT8IAYfc$u0}qcv*sfo$I5e2U4Ap45
z1zEAUM#!mH?QK)qJ?H-SI|#h-z<_LEroAw`ZQ#Df%1X-ZkBi7i3io?9BE~4o%#)m>
zs*qVuACld;*$PSOZA#m3IQ;fTak=dJ<>&9(^QDL;D{l(N-r|SL8HoBiB{ngbz1VE6
z*f$5`Tad=9Mv@ZAm`afwM?vsOHOKY1rUsv3WbI7OiZz>4A+gNK7^yzEOiS$b6-XDq
z&TsihzRXy$LjOJJ0MI?0(~MM-M$OOd<u?*^6xFv@xNj)>!RfH5_E#XvTXk%PXg07B
zGe1sHru24N+UfsV6q$fpHU!-BAFpnEdHw9Efx3e|K-Yx`r}-~d-OSlP8+f96(3GM>
z@_onh=sRMi0EKH<kkU<7P$P&S0e!!UX(_6(nyxilXhCyoOSCK-Sbs3@`WX5u-oimR
zbVH-#rTNoHN#V0sf5^Ez|DZ3f&-iRCs=+olmT7?a(cmF~8?Edgt&cqjSJS<6`-VTM
zM_B9=J~EY4EW_WzG=dc|V}1>jrhQv!xG5o1&pWLbOe-D&>ycs}v~Q%m=+2j7Fd}Iv
zBA1inos{4AHe-5YZu|FRoUHX$zr4DrZxvS2uwO4N)DO2&D_%PQhGQ%wxka3z7*aoP
zZmC9ZN}I4H0a0Cn2ZG#ZWGmDh`WBy~ni|BQWoEm-_umco)j}t;ej4)po4d}&Lrk}&
z%Gx3;;LS4K&Law!r2Sh3wrr_JDfb+NcK82FVcXNFCZ9(uzqR<pXRfHy{}1HA#NlAH
zPp5KXC3bG^C-OR{J1w%Oo$w6*>C#aiNtE*$b9B2v<Xd&L|F2oe)RRM4;N1Rgetv*-
z5fF8_C-@Og&QCj%@5;0k%2)FTjdMSKVbpa0{co}N1HI}cYz-+!-uov7EZ*JkMJ8ph
z$N+n^=A54fWloNbH9<YImnIWSA3_ehp1~<ByiUj{8XfuiX6F(>DW!sLlkGEpzvd^_
z3`@=b#awl*<2PId>#QAi={f3BYJdCdTSudYhq6rcbf_N24A<>6^#9(@f6d(49>yP(
zh4~T*juT)s21-XX7|`1mx2*P<zMI`NTD;(b#-0~m;m+}3^pnee3Yt=*8}2?-f^bN}
ztv{M}Gc?>oX;Z^&yd_h@Dp|AJX$}%XyQgNCzf#A(gbm4~UT~K4f@o6m?GE1`2DBk1
zHkqnN&r2y#bsG+Y^>z_$w_r9!F&OQvukro6{SR(X9#6TD0TuVQFe%$GI?zXd%>?8C
zzFl(ozEy<N6*{oJ;D55~^-5-XM;HJ&xKhu3y85C2R2yz#{7kQ)t^f-v_+T~KrXt@>
z2RFO&jzAHU$(fh4n>@wf+_h`pWzw~3T4VxL7^7}2vk`UARQiLx>II=nM*fF>+aF6i
zo-^_kDd06dx9q}~M{x6u$qGh=m7AM2c=VskPN<n?ym}5Vh^n5lBdM7@^nZ71a?_{f
zm1NQ3no|;^clB1!KnfhmF3(9I)(SbDFf@2$E8(IU<z^Wh_sg#m`<8(bgrc7(jeIX5
z6@s|dDZNeZ4K>g^Vi~^!pzEccTTb%OK$)dLopyj(5h}DcfBK<MdC=qGJ`IiQp*hs8
zU&}XKI@G+!g(FyA<GI~<AP!WgP^a|81NW(9ZUpp5S+1LI;VeVqN7(SdGVG{2gd;Nk
z_`=dzB?v@<x60JbzprG&FZIx{)hg~E8QeB(6TB6*_2XC$5dlB)k^e&KyCPB(6s>wE
zM_S&U4~w$a9%F<@-KIEo0(RKv-7ehS06E>2OnmeZ`E>jdTz=Xp_*V!9p3C$0E@ycG
z45A5{xGYd@K;fyO9kB=32JNqFc{F+OxLjIpul;I)hhgn7<bbb;Tc%|Rn|7VVfS#)N
z=7MJB&uONwFybaB<a{>f@DXw-;BA5x+gHBCN-;*={z2jYh8To9;mve8(1N-xwK)UA
zJ)xRaQx}Ndwkxz_O1wt35!nfHJdzmaYk2MTPV;VIZ&!B%qClMHFLz*0tbl*VWf;RJ
z&1nNK_+jyk`b)?k>((cfLI)A%(?Y~OU@k|@eUq<5Ba|wZ{M(3|g!L{%yvKZ^>zEs9
zj<`5<1IqFhAs_F2ABG=9WfS_d!1%H9yo-*rhZc45f%Py`fX?yd{80_-W1L(&HxJJD
zPVUSzCHEo6=`U-`i*UWK4n|HFfiEs8{tG*`opdVS5x`lfmXh(!=$2Zm3y3>WxYJ&K
zYf;famTX*6ajU_FI326J)YpS{qk*B%BgLm-iA}099M6HU``-IHZ3?G?pAxjwp>OCU
z(W))2PtLWuy$XI^VUR@DMje_DxB4$ch7tYrpg{uEX*`E1bhLM%)o5k`F2n`KEU&4>
z=7`7<ZxmKKa#W@EtBhctg;!S#+LBln5%hsj`wYEb5xi|<xc(qpNbY`P(+1m%=RU_A
zJuk$ia>dGrhO4PqV+FhtLSoFdD=-=z@X?|iF^iU4AWt@NQ$E2(6x`oVvw8fsKH0&(
z66KB)zwpDM(^%%Z*SoN{^;>opZCR?W&I7(wcS~`W&aG+IpSAPKfC!ZQ4Q&w=S2|E^
zKD3!ug*fGz=ojt(6+@gGI;SGK5QsUD3Y+}ZV8-Xe58Y@oAMn5|c|UW1vGeHX&C6*w
z2(B_iubuv2-B6Ng_3c5XIY>|K--k~Jm`Brxpan5eP0t)aN}meA!X&r72c-z*o5_Z6
zS8TEMnhQO8Tkh0qZEnqyDbc5|Pu66;>aB?Ee0kABQ&)BL3L&?|TLC<X4=wNhnO`Dp
zx5ztmwVA-P*wKHOJ=f%*Sl9{xXYJ0d;PP_2&|06^t_4GYyY6IM9he3>g0l~4k&cCB
zcB|y<kPi@|iqtdApA976V;{y>X9jf1P#`aM`=zHSN_WV#(2v%XE9O-K%>KW&kBIee
zj;>@LlbRBi$)0D~4V_?Mg@8oYPKc!<SNw9^V{^P8$WkEb3mxK&$iAfx0uH-s(MmuY
zFf7vLm|f)!xxK_&05$y9QV=cTaagxnt^RGMDPg*5&9cSfI>Fb|e(X!yh^3nexiE5c
zK;-~BUU96Y#_)9s$GdAdA~LUj?e>56gnX&FmqUY}f6`yo{f+2YF>STx{SYF6hZ=Qm
zS0U7*E&S?+WO|(Bbjy+Klt+HD_?kJ%devXx=qrza<^YaSGtwRvFlhvL5a3)m^xJzZ
z&W8nZa`V9shb}IaOp)FUEKA`I4AYR$j}Q_n{3YfM<;~FxwYPmtJ{(Lv#{&Ctiyy!7
z_Vh%m65CZEV7s4~!CjV{nXqp%q9y=3|8sa_ow?c)M-u=7)?5B8*7_PV+R{T{g`orv
z1#O+RtY2IZIs!<xPg<=;2G`zJHJF1(b<W6_xuc8~p3oP`@|lS&hCnXDttRIKEZ2s6
zIi^nGVcbPsy0_|1LAk3koYw{WedHFOD^#LHUC4`hV3c*9W6@G7hsL#>7h?eLtLx)T
zpyB7;E1tfu`ZcG<)`-uz`%CxggB1wR@hwZj^PIx<)-CNNV)S#dgmWp)U{cmq;=Wb%
zaM;n&HRy(kucaXD$A@B^3+DZ4?OdPe@%0tQi=6@ecJ2e1kA-Yk$5}mm$?~bB>sTTE
z`MK>h=-3T>93<s}gOQK2rNcDs+!b<KrI{>5t2WQ~IBzm$@UT2Y`quO;qwWe8WJE+)
zws+~tHmTWq7SBwV&FvZrIi!(qiA<{Wc=*D0GV9YYd|kcq{_U=`gUC-tYd5BBn-XRw
zRoc6TBBCt*g*Z5ztN4)4ON<BlncYaRCM?2<i+@_pH$V%kR{gpljgUr)o|Va%vaPeN
zG%_7yxUS_Rky5()vs`ZtJRT624(B4nh4yf=#O*Ohq9bO3$MQ5!&LfjQp9DPpL#FWU
zvRM~TC{%grUkFd-GPGzK5yUbz(j^aBI1_HioG*6oc4Ccp7!q;Y_borLpxC_iA;Oa>
zBsT3iDa0dw3D2+CMXn8!L9B`)WOgWo3VvZ`f2#HxSxyZ~f+qx`F*fK=f|Ue8AgZzZ
z)4>PaA@vKEi7e4aCNlw{ih<v@%I4l^qw}@+EYh!?sJmI&{CZ|6zJ3%g1or)3!_STO
zxggCx8<rQ@mMoeV`lW+a(vF+%MKdN|dyNfvJ7TRoC&Vpqu>-|I(gEQ9mkJKK6)AS6
zszTU>dK$L<8))H(37rl$4`|$bB3?hatk`_^zR95f_Nyj(&7y7gBkw<nKuPL&)XnWH
zvI|4<`54ZjwW+jmc<Mgv#}Rt`QLf_I5mTDm%3rJ4^t)?tMw1c3AU|pCAj}=s8``)I
zIh>k$P)wV?!U1beg$Gmu^!>qUT`dYL5I3k{dC?2<fTLwh42uno7NB3?xdWDq8*&vj
za>HJSJ5%(1SQylkV@j7eRU$NfJvib+%2Puc^64*2vSZ^d7f)r+FkES_ftOjX#1y(T
z5`#)~-8yVZ&;#c1oRxh>AFKCew-QRyQfRYq==z`q0*WrIrscKhsW?*0xPPu-o9#61
zRI8w3fX^oC-Ioese1*s>xNS?h#!h$-Fke9sJzu9R_x+a=x1vw1=ZvI_do`Lr%1BqN
z6l~0aQUaXiP0Jvcxn$NDFcn@_)tQTRdmfXPwC1H3O$_~Fu{#NBt~dS*>DYdKnPjn5
zef_1l08yT-3<H5T2rnO2@12u&U|z#$(>v-TwnKH6b8=@68SfJ4Ae>?2)tlQ(*tQ!A
zL)}c~T8t1I8)@yBq5t;cf?@+~2C=&On?jWtml^f91C<qigbwH@SGFXv?=c+G73hjs
z)St>}xYNjm9nT+MBmC-q9~!TlTv1FmT6DAFytnA&Xg4%6@7I8;&QudUd%1#JC408M
zWbPPaxMgu!7kxe)rXTdSl4)+yhP$S6=^~xhdvlg`Sw?N~GVh!4iu?0WF;k1)YNfDw
zl($J*E}%~A0s^NK)v~@`yvAk3SU6w&gzQ?Ce!0?l>BDBrr+1XL*9cPcyz|@mNVVP&
zs&5nxsFU?<2HxLEc_sy?Ac4T%BVtJuCZpTPTeJj*tM(~L^j#cO7`I0|!TP2><p&J#
z_=9-!>1bUf&A_*Fu7=;tR7vgUaQXlfeVr1;QV80|9q)@xOL!jyId*ZZpQzt$W<(5v
z?Ac#a^eE2K^8IYVzYv4<?3zR>^!chp6&_tPfE^?Q%x<Q9>q8}f9zIeXpQ?Vux8_|b
zg-Dz$NwC=8@Mpe(pFxvePzl*O3PCG8#r7A+4h^qS28p%LP$p6lCqeY%?RlZtOYi-3
zv(}Y_2ck3ASIHC4fHUSK1h^G@dN@~-diyE~@YE41t_^*mZ@_;{V*2m`D=Ip?Nfkp_
zeOnYc8McP1oJK-hF8qCpcDI1F@ZfO1$9vwc0=Y2&Z8p1skJ;F8E(h^;K#+i=a=>o2
zFM)Ymd>R)z;gVMN=f~P*Tby-G_uBmb9(0Awl*foslZ_0XH_V>JPj#D#66a@*N{)5E
z9~%hp>YD8DA6#&jl;6HkW^L-9TMurm;jy=D2<P}{|G}cb+bRb0HzZ4G6V64wd-isH
zTtON6N(k-R2I$b<%W{KB(c+0jCn>a4%g28*;j|dYvDMASx|W-J<+`we`%ouS-&{~L
zbx42g4bfZYi@D`GZ=Fc&dpGeVDHz$?-^!(5gUc^g3RlT$?+E@3a=v(oRZ+^mCOY3t
z7ZN^q0I5aWfYMZ>WP;}dMpG>O#iF$1!hFI&eQ8rmeqKiqScnKEFD{^Ay$Qf5c42``
zaUqVcm&JcjbVaX@R|Dmlcd`}I{xgY#qX`2O@4jKr3jt{+vRpm$DQqzHYw1r*%V$9#
zkLYzItWrznZB73J2&X?v{2aE|zS#9U%{2=mtR~F~t-EHb<7`ih1K`j&0Eea)t{2p`
zoPz)H7=d~?Z@JOl9om+Wk9r6JzzjEHf;D`&fX39lyVMc1uUVmvJps&-;O7AB7rLk)
zg5)$a)YJ2cK%Z!Zu*DME(E=^Kzb&<rGiH2Oe$oaNvZDASI)aXBh&I^N-M3BTG)JAD
zmrsK}r92w<j#jwt|0Xh$OJNkI&93scaI~kt)3%<#UQ=WKdu?jRjU-%uEif2mYU$OK
zZN)`OxSKso^t1<cJ?K0j@Tfuj*pk7<t6uprVQ9SAarlx<`Mm9?$vhiq#Bu6&_!8|f
zE+AZ72v~aP0^AGdAX;Z%z0nOr2H3a|ovW&K-gtbEk@li8a7FUHsyv+@vV<rtn@A63
ziLXAf?}-;Qb-hl#tN(;BkWEtIfzzDg6n<igdYe978<;pk)<%ggh>?799g5fA2lyXH
zT{mSaDoea_NZ0q4!poaPI%sfdJ*2XdQkWm0Z6F(xewI=1c@zRkIWBB#_o$;l3BtB?
zMe&qbLcV`~VWzZqj?8k*Ed*v>@o|vCM_i__Az>B<KaoluZtHqwY0>Py6rqN93Glf=
zSg!~VXSo$@L<t44bE_qBYfz-f&d$a```b^BySY)uq`COF0n>w{(|kqmL(1^~o>}$)
zSV@ch&_L@e(|eO9uc|r`6Y!L!n_G%qFQj$if>M~TroV4pm){$F1podDK9w~YM?K~L
zWan4@+dxQpWmIR36!A(^0H^^M&Lt?=?+g&hO$VUy5~yAEQ*DfV1moAlQeU2N_V3JX
zKcbWrQ#?>Y9s<7VU-$XXdYU=VPJrH}4)>SK9XvUqW;FYpPjo=lUX=%|r*8Bc%2lrm
z6K>$lWn{TV!7GUS$wKnU%25pNN_N;+9?3B|M}F!rQeqSe-ZdsEVlU;ZBv8wmeVi(=
z6p_Ab=4n}kpvzRVnU+2csc2k`E?U2-5X5^G1EdZEE1OFN>}8vVq`I%m9ZvC6DmNS(
z^>+Q7y<&6~TjUDf$$CC#=OP+&xCCr2xJYMQE4+0-Hi+|5m{tZhz_;?Z$CAtUC2Q8x
z<@X=C)Pcu5rt#z)tK6U2Te~$+67Ti*I}!y-7_Gl<z~yZG3If(}es!vRT+BCmMhOB@
zSGmN_k;TpxEPi!-^c|l`37?!CIrfwErHa)oaaXsgcE+3a4zR*KT#?IFmMf1VI(ApG
z)>mIzLEdOt1Lyoqr#9_mWULjNWnXy@MSk)TwKcneL7(LiUoaah`m?cIQ>AY``{$t!
zQMmg#VLX5BoZ%KCBDWP5zdGjxU8HfFj@Fom$^@&s%)9+0ov6UAtc5|2swX2-#oBCW
zMu-?la8c0$HD^i8I0l&Bc;7Ujl3=HwkUS|nN!`Im)~86OGxe_>sR8avd}9?SkA#NS
z^pQKQ#_ryRG^$2@cs{|84cKhDc_Vp<@Tg;M!~Io5%T@(*8(DHOPS3@j*qW}MrqHRG
zSXse{w=^SriW`xObg|jl0WAi11>^Q!7>)ke%dq%(&z@xL<lIxysA{joY4w(bSNoK{
zyeMFOwKLKL5vi!0Gh2GW`WkXh09Cf}oB{Jx=mqSQ591+ZEfrw)p))FJU9Y!?-fM*F
z_p4AxZEQ`V1>0`ZM;59PMD8WYXjrNaJ(#5x{oZee|CGog^nz^Xq^#$9LeDBfx_R0l
z4bPvA%_vlNr2r<63yf=;VLtRJLgU4wfl-;+Y5J_r2>f?yVAt>EPWP&=H)?$zertVK
z<vh5}zQzG%=PUPYiWhrvNZ31g3ldO}RtU>0JwXtTp;MkNH)>*qKon(F($lj`p$jM%
zo5>hgjKZHDt~EwVk@-6#tPZKTsJh#!jk1FGEe88WFt<@vWe7n91xm-Px7p*syDgK~
zJ+f|t7>P;_AViJfRwh-2j!9J%3SC7R^BvHJqB~Qo=U@qxe*s%)^0^GxyW)?j4L`}~
zD_|h@Dls5Dii!c&m6GYi8&h>Z-Yu69DbhLodE+dYqdd2u>_$ag`ajFmfHdX;K*oMY
z)(4h$XUu0lThzxPMPGS*XS!^ky4nT?@_!Aa;eV;Smq+umJ^?-WFXS5W$wT`+oWrdl
zaOa}^dVN!r+rmPPRq?_ufDn1O;fcR+p2f2b*mA}}ed0lVtFS#sOBn{3jYQ!3|IG!u
z=d$$Zx*V8+{W@iAf#6ZT6k5iE3bXVsrJ%F?R&rJ<nQ6#glNS9YyZpn$EAawl@8XBX
zQu-(7jzdK!Q_>H6JgI7;$VNX@vFO6zZpLKvc`K?jARyXR-#_{5ui-Wq)tXymvKF8h
zkIi_eW@o1V*fup0j$z|7m6O)NP#VMBBIRbb%mG9y<fnT#t0A_je6Ma&#fOUCIPw>)
z#SXc>k+XlO)#77G@KF0z$Ufe(vJi_t9W~$m4FL~2f<SpeIIRe!Y-{qujWhy7kvkuo
zsV<veF3T!p+0$)zk_ny#f&LTcd82nT|2(mL<-hd><PsZ!cFwRl%e|{IL>q0E7~sY7
zOP%C9R=puHirNtH5&}m_-Ts+w`q29TW~<Ox=|nX-)G(BQOieL%J&UP-rdwFpcF{pk
z!q%9($n0bqZsrSbZX+V_P@?0%5Y6?vrD?40pWk)%B)4|T<a@PVa>G*JBNH0Fuv*#}
zfL_{Vd9NlwUdEnQ6(VK&mb;0|0)#UKNp~%%DxDji23Kd7kgnKAOFN7FFhF*x1^U)(
zBG7|j)m<T=Zo_vr5s!`zGcR&22_V^(CDR?>_Z$`CR5&T=9EH0|88COlA>UfULQ@`5
z%PhW?>Hg}zq=I9hHe{FEN1Z{fgdz{48DZJqZmZ*USIBSmP2HQaZT1sjEN$)wt0({i
zB!=N5ouwKSqb=e<e!vz9>eOA4FfjJVdc4r<Ux>>4FJ&V5N+BsXD=87eU~Tf{oz7Cd
zf`ks8s##)x$l73BkE&_LMyL9wTuiAcdYuqHL8K@7>8e-%TwD2vC#k~ml)|<hoq29_
z5;H4!jrGB{djn3yoG#TKn+wjqi4b0r6q0hCGcbQ}I#fJ&p<1eeuY|@=9ebaRI49qi
zJVBRfvj}&GdT*ohSyz%Q0hv+s^H<pgU32@1tklsW70A)E{lm+@g7#<=RS|0~e7l8^
zSi^dMCi9N+t4Y+Y5I(AVd#{gty&^>vSxp9!!GGBID}n@6gzFTY2BPAFe$gLElh6Kz
zpd*D;L)Ds{K|wXeI{iuaKONxFcDAUzj>}||m=Zt^$&lU92Y*)0)d$k)38qunJfH2{
z^&f7Xb~I;9W^7Lt(U=~P+56Wa*e769M*HG!^ljd$_2+0>?_}Z^B8^n8!hgz|&oYpg
zBIyxP#;;3yDqBy!_w@sE<L$+%Q22Bs+V=Dc{cTh`AS9WKuDzL93%v%q`@iPrmuKWH
zRmWEnOg9N=TXSgpZa27RAz{BV5yYscdRs85eLe!V7xo<cIN(jMLBx$oJr_GUUbxy6
za9($Mq1JX4!e{#24SHfH;Jh2qJ%C0t9qz4Un0HeqF+R-wH!~MEPN~rY!acvU)cc3l
z^rja<5>IwRZb1*}mD;SCqGH30yA)AE4z+bQA%npH?=g+$oGR-ld+#-8w&VfKSBQru
zusNQ;n9KBC*?G}{h!37>+DDVS%NvRWL=RoixzNT3Kxor_Eh@H@^7Tr*+x;83Dy#ky
zA#@3-$%q!qdJ$%C1@Z$RY#jfz#9z<#oiP08E-!PqNyZ~nxQ>wYK86ddklIPN>t<><
z=$%FDn1=QMj7WA}cANLH)oRm?Pxg3*J-%Y+>Kxp+3Wf~~3vcjpDZ~MklOyfX+=ZQl
z^Gh#vuQKl0aeP*~^hOKpc<hEL(=!PHNL%@_du=edKL*};hw<l16}Cx39)pqO(-V<;
zk4~d1nUlAeG{KZJh&usARU=+7v~B4#bJDkjx{>*+tS^c#RMd$N2eS<Z(d?%avqts4
zE;<4oEAHpBC;LxUZ}`=@eP%zStCTsrwmhwQ4Z;@eFH8b5j@xIXdZg;%vu8&?+);vD
zu_-`W!ftDhdo{8t1~x4X>+y)?*7+6GbbJQ@U#$b>xH<M?l4Y;DU2n-^zrBFJU#Sax
zTS4c=g~K9Rzr8m;q(u>wrB9pJT@as|Y)JR4-Cn}X_SXsbUOKq%b>!FTDKMh;aj5Jg
zzrH<+=>~s;!ODhQu+l*CVadq|sx$3-N<j>zuxv?B$JJ=(N8HCFU!(uLbf&dUoVR^W
z-drQlLh7G~6R9N~ZD2J+q;S@ntkA~{zSdP(>Q-i7Q53C{01Aq9%gkuuBE`()(k~#V
z<XBoY;eF{K&^J4=bt3~$5xbK+FNY?bp!75Ox=y}8byA;xQv$*~h{_ct;HCrp8-eB!
zXq2bs2=WbAqP80=C-g4hTXE|Hsk{iD-}%jul{IC=>Sf8FfX)Irq%v<t7rZ$dJWvxQ
z45w_BH@^-YB-eB_VeWO=x0rnK{Rm;N!#QXa%x$vXHZMFCk+EFs%oTR(+S5bPp}&u!
z1$cVni3x+FTIn&$9Zx}LJfKHku%=3htS1KO&V8z$ep)Tc>lK%`;beOMF+%XB-%L@J
zSlWP3c8f&5XUB7LUhFb9@JMsB0`>`WiA2z~s3nzY%kxr<u3VjnbW9nou|RiG-MgHJ
z(Ip#NF+qffzDSdkB?z?4w<|Ss4SR-*s)&vzt;5|%<5BNeuG46OSk_{-Iq5{VyB`<u
zRnmgM&#=?j!h&PgSz#inM|^dM0abq0pW%K3VXml3oT48>MyTPM2-oDx%&GVA*>FAl
zZ0Vs3giOER5tUop=o`|^!wms%Wi)N-NFzBQb;2+z3g_!``Y*nBNC;jXP%3sfR3dAk
zTBJd+Vrl=a>;;zjB+tOob6xm_>oqnRZDuNiZX?xl!|ewqVDzY&1b>o7&YS~7W-;E^
zFA2i4j8zz=C({>!xC5P5gd8(<6US9*sBC#|%=V`Wk3x6vfX<_ipZ$lixc7EL#?V;L
zyNVg0^K4OTQcb`h*CGJ(jFO<RbU$kjRwAV1^aODJfqw7qfd?83PeaulDa%vjK{EeV
zp=_e??VT^2SxucD>xEiyRFOlvKZaUbJ%-%eYH0A3aLT>xfU~LX-aR~o2OoFt2szjt
zjlTIwl5Pdmfc6IiU;TWj;$*Y7!lw(Xh|-|lJ$E+(b|g{1_DHvmocit)8b>CZ(BJtK
zwsoJ>DO4;iKOYX_k%lF_7#qW{>yJ3oha`1#H`{3R=#OZ>F%qcM7?2imxGOC@n`W|=
z+541j1$%ChmNwKL3|SU?C<(U$0cx_d$E92ILHo$(w)Q1tuvBKAg0Roe*Kp-b>=Q>v
z^Uv_QvVIVO*cVzEGx?D`nImKaH9-<m&}GitR~vf0^%5(=0(a%j^m{0&l#q=eP^7*E
zVudNZ$gyAN=ZKOIj`9Ev1Ux^#cffYAdvhuKp6Z{qCPSt;{O1+#1F*N6f7KKH!m>?z
z?=3n;V+jf~w3HgSdAXPb1ER8>wpxi#y+F*~5g|$k9l|!%mu0$KdZyy@ag+L3Vu$fh
zA^lXX>QX0zwQ}Z?!$85e)QY9P1M#o#yML|V*$?V7X2*_v^;JJl_{KC`{D33tUffH_
z%^z-$#ys{h`Q)PlJ9wb}^~CmM{CInAujn0?RK+<Ra;j)=l%=VUuRfBZ?<<dM2!41S
z`KitY@_>@|n7L}+X1q{P4Dc4F?UeZscIP9Q_KBvpAb^7hq!ob@Cj#ku+u`&Pz;Ilv
z87JLeo13k#hmJ@V`bs}Dk<;jg2wwGK!6v3I2cqr?>UBw%WfXfWTxH{q%syx7u@ZhH
z^)*J71be`4Jy)HVToiZ4bI#mLd~5#+dJb(nP-0^uA!~j0DUaYy6rvtpUk=`5GR&xl
z^bf+Uz%&<QeSnPqdD^nVjBczYVQ;TQzlAN!2i*Qn1Hv7Pu7AMHeSjp+5J98=m{`=<
z+G?nd#fL0xn@Yv$O;|c}?A`BLFk9fi<m*#5Q_bHZXfs-{Gui)b;@r`N2t0LkX3Mvw
zr8@Tpqc;6suMeLw)7|uh{OOe+eCrIPNXsSNbpM}z@xo5@<@cNsd`xY=#n&#a=Y=aW
zy50OVCiaGeM16;FWZ$f~c?v1?7cRIJ&7%OSR0a2!0=eu-e3c}NA~}I*Ye}JPog(>c
zO&vX6Q(k{>$=3FGU0R`{ey1wJtn+$rLPjscklKzp86RS=1Tl~)ph+7DsX7c~o9KIA
zcMn~lj6g7#5%I)(<2&Z>PmBTz@Gd_`0n2Pdb}{@FYo-svcFm~^peHH^nzsxa8l+ic
z&vt-9-~R&&PlSaleCOndQ3oer<0{F0@F~5!GbG9Gf!{i*=ki>U|Knjb$N48qH!6uh
zd_wN?&V@KGs9p-|ASI;UOf2{M0YbrX4qe9Q&aC=B)p{3}IL<0ZndnBDDedg~w<QMu
z6~vocS~(CZ#W+Xx$U)n<(yQ)SLMH_e5;)mp{Jyu2z^gY076Or#(lcojUwp9wK9jNv
zTOQX#coDNM_&ck896{ndJS8}ls&vMA9)mtr!<}kcK8q8wx5kpC_*s}O#k(bxVU9F=
z$wJYA1dEsI98}~t)ynL?;Q;~vjY7EM{dFq<A#nj!71dI2Gwwdosy+RGDiM>C3c*@A
zl>@6EH+Ix`0NN~Bm)p|(+}!l+YIfaXU&43b*=3=xsH4q#FQ_Z&dCa@o3^n8ov_=Sb
zo|<cru5mH`ZZ*v1YSr0$4XKa?ZkY{FYmo&d7+Alx@3ke|izCF$ph~$WzopeFk7~{j
z8T(Lo`h|U`jJ#VrQk}ib*hO_3dFgXu^|{&+n->zyQl@QXUd;$SF)7oeyV2cQp-JCG
zxl<%HG?v;z(zTsyXPiv?fM=ui1HnhPKv~&HVb2A?`tZz+cAm29>T>P35Rt8pe0?AJ
zwG!W8M7=`FbZ{uDD0eimIf`6;{5B0I&c%D;mCrl#J|NR61N4QgAbXk{uu(6oUQ!Qx
zqCB@Lr-6MAwxZatl%(%h74_HAW7CQc>CHgtBv<BqxMWw(Qf-<jzqW?$HOTX@%t7z&
zYM&mAT=7V;p=@-fG0P*BwH6ekaYaAlCv8iN>vxI|n$Osk&r*FYKU_*DH+O(Yku0h*
zFW7z+h*?Pg6kXUpwz5&f<i7OzN>%4tnPEzKw&4r8p+ELWQB|Gx6fmw*IxgsQG=ID&
z5F2ZK3}8v>1zv#~%TqV^D~`1qce^k4t+&5aoDDpg*gsM3IP%fPx!Muwp0gjjfJdF>
zKRXps;h{J4#IHkrkAx6#Y1?jF%f7U|MVHvgh;grPXt12|%;q;o?NuJlZ6_5F#Th8E
z`=8OJE>EOx!nUCxgdV=H)BVcrcQY3<Gteg8b(f+eo`RKk?!(%j(2KBI#KEE~*tW5c
zN}vd&|F~RoFu;6v(Ex!*+=K?DJX%$xn2X0Gr4WU<!#vLF3b(y-q@~xN>S3#7us(KH
zkq>2CUo<?t%saV!f|l&4-L`>;E^K2mV!vU5y)alU98=^m9ryWOzMXzPjeoTCSBwN@
zrw}u28@-#;x<_9?$M(V4hKdig;DoQX-CTeVgo_b<GAff|>B`E(VhQJ{wAA{3kQ3Rl
z??}?!est}Bxv+mhi=6>^eQW@Mx}NBkdX>NPV6@<fmgkll-aL7F@9VN09H~JDR+PT8
z8)*A3+)g<IgdW2{UD309hZI-VBL04{vkkf8c<LMzd#~5Q^qF3jSkBhwFHM^1(t`f%
zB`KuV9R|Bj9~M*nOY+a+hfs!Y+Sqd#B_M}n8Q;Jn8={JP1!^~_L!*<HdVn^{(Ievc
zlPHO(D7*pmaHC<lO_>Gjq`oW1Z=5{gDKD4M7Czn>BrYMATjPcMG#vdrp>w9D%F?)`
zV0o#HGtnfVNHjAG%xvpcV@33>X%Gc&6FQ8qrU|Qk&S4kkrDQzv#{8j!CEC6tzS@Io
zKgiw7W%u)`$or%-@52qEp%T=hgs#yC5Jx8mpwvjR?tGr8<v3zA5D-e=exut1(GI=W
z{KNd&&P}stTI-ul7G3~lz%l~cNd6o1Bv?p&c9s;kL$B!bN$Z_`{KN(~Q|i&&`a+xs
zBFX3urg7p?m$0VSb?w1gQQKIRIlsu%2(zE`l)?7UCLiX7t|;4-S-ZTYqkno#TAkf>
z#+}%J4iBlv5KtJe8JNTFf>`oenX|F<9R7npGuJr{L^t)ya$k&hza8nX8ko>=S~9=x
zPEP!9LUU~l&X=kK)Y9-Mu<CvfI3nf)l{m*q@576V3!z7(rkby|20_^5`4|oSEKfQq
zBow@OlNj9ZxAcud<|<J-?j9$bx6f_+vpzB3PwIkzqQb{LCSCCc{hPT>E&-JXUR97M
z@?uIqsz9K+7{LdhTa0^#h_s7d|ESn@1y;sa4k#+us10rmj(7LfM&!-jG#5J%EyQl)
zEEkP;e?T&;c4+Q!Wp2(dP)^4{*v_g81c8|}TH?{Kfb1kX0Bm2$qngq5S@f#+Jik$w
zqv7~Y+QGMM>+F0N3yS=AWB>sKNhs+*@IEP}CP~kz8%?vZL*szR;r6Eu^u9s{&q`u<
zCm}Q8NK|vV1={WA=yqBd`+?AksG{17ni@Yv37N$V1#t>ZVBu^H6h@0!joHVOJ*6m}
zxd7#O*GZM<Yf2D5pJ3YRH9GBmt#a2m$GHMuY0nv@T?w~CJ9C3_9(68$LQJ`Gs=mH<
zlhO~%j@XAMI?vTRI85XnC+qygw3(U7B}Ya^7%Y8!hLAsyqS0gN)Gxc8+y4f__T$7v
zH7g!3ty0?vr==l5nMx^KHIPpnF}oo`-*v%@oK5tvvuv&>%PgN^&bZ5}s6*689_f&m
zgWo+N<9pi)-neS@^A`!k?(1To!EJ-~f4TAppsDAi7b87<h?ZAw+&{5NA#D(HvEGY%
zU7${9c&LFkv;EB9Lm-@&0Bw--%L%MusOSBpmH$2k<NUJt;j(;VazR7Cw}pbXa11MC
zvO!GbZA2R5>7~%Glok@|Gan}2hi~yhg)Wh&hdv~jhK8hC2<C!db_eCF7Aa!l2q3e7
zS&a=8EnD9jQrvTQbk=d=e5?j34O8<=|Mb<>e!a6B(y4s<twP7>x9`B$RYP3410G#{
zmz(ckPLc0c0(w4{ewmqYd2~|@M`}FB#L_v4N|)2H8MO$C1j24SYPh)!gowXzLeCmh
zmHwK+)!Bwg#Y!p9;E5G0LJI52p<-^Ui?SXTwHI7cqc4pN5vRM98VQeyeWzu1Z`B#u
z)aBt<r|oimNrrsS7keRQM!v2fEyi%Yo;6gZZ97~f1oq<~dd)FVQECz#K|llGxQReQ
zn~F<7(JVpd&IL3n{C?!6sO@Zt{OKoNo3djCGQ9zCw;!m~wlOwBtL1Q^xW^(b_VR)^
zMN~2$$-ftMk8<tYHV#+r@u+>K8`MvN%a&WOO3toHiW^rH3>uuGx`!wqX;I3Wm7v}S
zRj&z_sP`|H>2ayRU9Y2_*(xZ#9eXSGI?ER^!56+oyjB%wPPMQVu<bgP!b3SIV0Avs
zuW|I#4D1YZ-|K8U+wv**Ng39ahHKp$)rA$Pc1HBQmO#^nI{e%$B(zQVL(l4VEek(v
zbboeSb;$eVkypVGHrnJHl)J4hEGnli#lU=9Va6|*rE+lqr0eFmSGm=-fg&f)bEb{m
zh?BMBca-_H&EpE!cd{BHFL5h@?)vl3IL@m<mGlX0ACxf~<e3TkwwVfB|3Y|in7s!E
zL&hvU#Ihaqe+4A)n|HhXLoNdokUV%M&s@slBw-CrHf~5q<__F>aQY315}m>tsY%!8
zxXK0mcKX%wyEVMm>w^BYKw8GHq!SiKbAk%SZ(e;|kghEFRXEGp>N1`~<;`5`58B7m
zm0vx)X*v>=W#nC2ResYHaWT-ORP*FpfK2h8tk(A#^<zMGL{T7qYS28|RRq*BY|U+w
zvIeJm^Xce=B4i5n;nfRUiXHAg3V$fI&|lhy%-HQ}i<$a&qs!%ECbFsK?f2~(?&r=v
z0JM7Rb2GHm!OkGgc~*b8oW*P1?yXuD8)c`k=o+X10UBV3Uloym(N%z4=j&4Ra4wA5
zXAfeTq<|4dNTrq;i~K76@uZt|S0X1y8<Cx<3f8JSZP&!z|50SjW^!Cl9K4Pmmp=(q
z(f4--yoiPs)J~_qq^P-g@W-X&Cda=d?P7$x2S85yH6nMxI_Lje`ha>l3aqKrN~1Bi
zfyw@=t~Dpl)FSv5fAu}h^Dg64THHBiCpC2hv50e#gx8CguDf}LlZj_~-F(k|Jx_Ii
zvbtb?*j*2-4>>c3AJeOktltW169M5D^sh!3C=5nR^Pw2QZ@dBleIa%>+El20MJM`T
zOSB`HQBFn|507>OfHH{JHzha~s{rBLDLQ3;8|0|{Cn^k=3usR_@v2FZYF<POy!LE;
zd}CEY*<MMbtZR7FV{U6??to(NwujS?4X2{CXxKjvq<V~U?*?+`ZrMQjmXV>X0Yrd;
zU0?k##=^RB)D3Ehfw^=}c6KE_JhhL!vzt}bC|nv^T?{!PU_V%9ipY<?^GD*LIrjdu
z&(_j)RDS=o8)Fq!x>yT8P<0`|yc=e~6tsZa3f2V(=Yp`hMa<sN^upMQZ=F=RiJS5x
zVdvUFG|zB6dh&{BrtdfOmS6u`C}xsw5;yY(PV!E+h?|R^)XJDEyDg;v9LYKY;WnhF
zsYD4!yNP)}XioLWdj4(j1N1H0_b!mSW;%5&pgx1g>$?g^%m!;<u<XaS6zU`2N6M6_
z(?W`{=SpS;%evjU?DHF5qq7py)c_)5BRR_@)}9oXKiiX3QLx$2GmjSD!)(ukuw8lp
z<SO>4-CG22yb^E!qe2j<lU>0>v;YM|@r%AVZ5u^mC?-+{Z$a24V|I|FJ(@bBbzQy|
z{&t0M!TaURK<RrXQwfQc)3H6B1eJ=+>Vb(SPoNqUg|7n=7&o_cyIdy}yFNqMfItIW
z7qvto=a`8nF(u2aS7R-#g}^}M{9{E1VZZxr3e6fVVhl|gUHW7Ivu}>qo*LkRE-FhI
zoPe-B?yV{qWC$5nh)Ujao48r^g_>&^Xp;d9a&!Gr&ZtQG8*md8lW2EBy*(jgY&V&e
zNV4n}l|AFi@<w*Wy@6Y5&71G<s=nNERW`5-X_=#*SU!+CFFSg94N6+{8;ds|D5xG>
z*pbJB2(3yw$sA8oQY%P}RQyJkPqpi2M`?Ve7<+>+_Z_j-9P#&br9N-(q#|j$26S%-
zyWUVra`iN4W7FB*DE)n%7}cIzK`Y)Gu;@U6U7zrOba!z4ijBg`c4#8=fK<idaGhop
za9rryllrDo$nZd4k3-o}<r7`OO=(4Fu<!pG+l&Iey*^M^8lv>Sk03`)O>UVcpG>o?
zE$s1;7cSH<>#|>#^;Q^BXBBizX&Pm<ym=8VQPa2CcAz<jLMNoh(edN!ea5Z`Z!QmO
zk_U+zKvRPSK_I{BMuU~p&s~GKlEMQFO(qkd0ydS1{L04@`!MMneyfm65T!pq#){yn
zl=dU7m%w9M(Xn*^xe);>5<}jUdXFC&>@;}_c~fpQI_fh2^(kA}+rjLLdu7?j4-^%U
z>NLgEYN6{uc~|mOQqPRY<`jeDvVFf%p<+M?cDjskpXJa=n7qk~8Zz!e755z*tw~4@
zpVSuu_jyRg=@01<p&s|67^LV63;h1P#rtzb@y<qsm^kBxu=1BJxXTFRCRzpD1lwwB
zXpXsOz%NLn_yNny2;R^DiG8!en3}G)Kk7=3X@|RGO<hzkIy`jtaO{V@`eIRU&B&nR
z$;0WyQijwQF__VjA`C3|!=p8epZi;ZKGABODkXHo?pt5cAHsvLvIvkD4wmxrH6U|W
zO!GZs(Kl}c8V%}*B95{upB@tzarK+4*g9m-KXNGfU&v`De(EyDE4i~qckWk=5*s9j
zGnJ+T*DYLM`u2X--_XNIZc+Dki5I`e+bsfq??l>m@w<x+IO}=>-~h4bXCe%WW~IDr
z2#bzDiRt;9#Hwjd2>ab%3?+`i^`dPXO2YVfF2_qYMPwiX*|qv@DQ+y4Eh0{e5uLK&
zW(3%jSubWeaumKTL=P@S{0s5-Q%D}U^?7dmuAYzLVf65Ifv(ox-|WbZ@R*WJ72Z=7
zxf-QeAEvgkQK+(@^hJ;*-HAs#bb{5A#`#NW55N-py^{I`JuMKzIe*Hi_iG;_8s_ay
zxQHX<F8#66860qn%U=H%GIlZ`@<I33Me<WHePNROeCmG!`JgsCU$q{5l_1R4B7q-=
zjJ~=P*zlwRBJ$^5PnlC2P32cJ1p$tLBzV(<c_W5P)B|yC{OlcyECV$_6d4lxbW{1=
z<~MvQu{*V<cLO1Lyv7;kfa>s0)=3^Qb^~!!Fjh|AKQJ01;qsX0r)`=UJ>hzLl@^~;
zFcK8Ax-t|Era%CRMV>>QBPW!vz9nZjdEM?Jdp5@K!YC&)0U@}ydX{NeQV>DPN98qq
zhYUAiK&F}n8H}r)_CKe24~K=h$%#qD#57+-=LAj6!Q1twnTPoaBO<pEaixjsL(|Y{
z(fi_?xy!Hod+h(}$e3*dFXDeqz^=<(wnp$8!*Nu!<|%6ywW0qse|=G5eXWXiuW2b(
z^M^+?rQz3=^YW8XCV$c@HF5@cm(z&~TLkLw9mF(tOwWd-FChfpisJY3sMjBr@s;7i
z*ck00ef^u064S!*I&GPjL*dzW-2mk3?=L0L>srEgFx&kkft`ei9nv!|#9EqMGb510
z2{{}gTMZSvPrZB_^7VX0;njHP6A&?yAE_v;@t$g|mKr+4zqG&Fe7L&vb9{ifD*eM4
z6f4E+r*^OpKE$22)({XIO+!2piT6FJEq`to_2R-es1{Pir^uI$$%V_}iD5-?5pUMl
z#)J!Hw<cKr_iRnQH21ZF{x~hN>OYa-mD>$zl&tVF^lN`IZyHlQD3pA#^pkAlOd>Bv
zsv5&!ohjzTjNWmN#u7LGh13cju~~5u%XblZ7&_*_Pt48_9Rfw&nIlS(O+-!noSaC@
zdEpYvZjmZor*l7-FyZYXuRKW>F7Cu)N_{Wm*e9P5p2PSC<$Rh~5GNF91Bgb65C{#&
zU`!}-1&n&&|HyBtkq~a{<JQdlCImv1783ulHZi@v`5ab2Ec+8e>gnOg2%q}cT%ZHT
z;VzN}*Bsu6ckrpP>@pdWVcZaVKquvBfteD*?(HpVLuF~6Qv1Ra*A}o1MNbK5em$<S
zNHDITX;=<Gu7E0HSst?8JMUKsUMf@rh#3rwCk~EJG$rvSy?B|MfzlkPdhw-hPo|$@
z_cM}&9TkQyE3@GFwZ>P1Q!mRIn?e22P25@qT-BM0!Oe!h;%ng299;t5D>mJ&uheW!
zfw**=r3iX_&|-ej+tW;UU~T@|C7HQ>`VxNMHH_heM|Opk6|*MxPuYH)BV&pOzEvs+
z?^Hj4QNo=4{tT|Cj^fDe1>l^8zRXzp;lFs+an{Bt)KXsyKg*J8IPY3Y!Sj`eC8tF$
zU82;#I*(PZVG4@(53aQa*bbVqkT{tKM%=!dTExs9k$GqLw+q@R8A3HMRQ&LvL|G<9
zE|HzjMFZDh0QmZXkA$8`y1Ji8IJ5KQzBec@DyXRAOgBI%x<q*d`XoY<lB<8&iO7C2
zCF2PTLzB)(?s{3Rpqpn;${e6Y?2N#jSamCvK<Q6|;**-H682dE7!G_YAmCCH&y?4Q
zP);J#`LAQLQhJI@==_)V@_z_Pb9~!bBei8eNWP(V-{`;eshv}SVfxYrpgN#X3&aNM
zOntJsNf{r-tt}l;+Wi(1dxLM_8B(SuC9r3;4%WXeiNpUWVfaLhn=5mpomv~`k$uZ$
zf(PdvBjwX<e*}J>0BTZ3iCVN3VuL1fDLW@&vZdx^WPHeWktXWMQ{XzkmqiPD%s`EN
zy<uQsdhA>OzmU7%JeK-iDrf;Pz-Po9E{-n;X-X#ydX@E=empy4EsVMts;Scp!g)fx
ztHZs!E2eM~J~2r_mZW4ov!oj+g(oJ(>^pqU&#yw*V*!X6!*LX7OCa{NsLyzrO|_}%
zWy|DpQvSWNI`iyC?=dJr%4FeBL*=2>Bbo)Qi2*cALs$6z$JsT{ncX<aO5`C^vqfx?
z-zwMZ(cW%S(Mr(Ag?fImgLciNh|DF*<#5%{K_J7+79gAnfINnkRo_EOd|Nd7|A>0;
zK(@aBe>_@kb*k=CbW&P-y^Ms`YAJcCqNFIQMvS(x5(zp{BQ08+s-k9U#!7TjGggFH
zuT~|9Q6fQt*YBjS_viaNe`qS#J@=k_@AIDXd_Kmbybl8{Sq+80NzV~Q={K$wiyWw{
zQup<Q!Pa;E3$bs<F8!#uKZ=2RFG^}Oyd&^_HH##a(>{#RY}EZ`sH2dtU-#veC|18>
zP*StU^6Ljtb*YCgV2(+~=~z@trdxhSA|8y}1iJQrI2QGlqVaAvu+irY<ZOhHV3Z&#
zYBTqJgT`f7J!rB&I!C(s`*ixgazm-FJ-rv9(8@OiKI6CYEnb_yQv{H$Ot}uUXVE{n
zRk;<cuQxc(ClG4H3@?cA7J~$34uZj7i;1`P_ah)Fr6cw$i+6de+~|*NrbA+f@Q5*w
z{vq_&I&be-a{BApzdk~QThN?)z2jN^V+mg>UnCtAeu!5w>z;a}?gz|4#l|#!fZ(02
z&k^#M$<35caw3@s`M^wd|2BP-t{`dUy5U8>eRb<j;menVTSZ=^$abvtwMN1fCG}DQ
zDsBTBazUaLEgLbW8T?_^|Hlv@%ORM2c>Ltu%+f>Qt@`Hh6=}(l;wjbG(=_V(_}DdJ
zX2-HOED_mdup`MDiP^<{HTbD(Mu!!LhXP~z3F|JdqkU)EM?m=hYBRgRUVT+Qa8*nJ
zSpY@lLk>Uc+GE(!oOKQGFy9A|;$$k{_kT+pb-&bCR-0Lpa$jukqc3<=wrTH|?ByMf
zOP(_$>#T^WQj(2h)BA$=4%d5q-?JL1G)!?9-muRvM39nG7K4|+2h#g8klbM_GvvIz
z`o-(Vqo<Y~6)73u9%2JC1!@a&VLh?K3&`<Xu?b=25ZK!CEJ>fDqH?3WFnX|$WaI2J
z@%^gM9y4IKuJYKw7lbLn1=lkgSXM&T+W|MW->C{|!;S@Nfa-M;d;^qAV;nr=+Wv(+
zgCCag!?4VIyFBgT)}sbX+*P)61~p^B+74toHuH1A3iSVPQXZX(U?t!F1nK2qe4Q(;
zfa_ITI8psC<Y--k<^MJV^f9yAoEJc&oIHq{>;CnycXnmtMl1i_)0V!28i^@}X8%H@
zGgF=~gz38c3_b1;_gm#_;PF{>GgcLoJ{+Pc%S#JKH~s=K*S0#&q@Ylix$xCw08bfz
zv}4?_29^8I^{oJsSM6r;pkNBjfW>A`$CUS#HNinL7b2v*ELk@CRB?Xem`G;2&iS#H
z$-(xCj#b{zp(^SK<Lu78z72uU%{!1YVtPxFjqM$Gt7E0|sN}w+o$!SoGk>cq*DgI6
z04953>+lo>-pEog>-h|x7G?*I6iRQ<+{`X($l#+}L%^c-B<N51xrM$<!DAnx(!@h1
z^Uq%SZpL{SRs-2m{-KQ{)T6gl<T5XalJz2h;H7U(<5x2ECS=R$>5J+}Em4g*iJv>m
zbfk+9ExlOMWP8nwpzOCH8-M(gQ*=kO)@}VmbE`9(x`pJ->*t0QFmZNPM~m-l3pD}L
zamJ@6WA}1qL2zNkuFh9_M>xJ=p9|b5b)6DdJ9l4@46NNk$_;ibn-T#>_@`<5yeC8b
zyHt}5w_~&n+eTrCWlBip-YoOn;n6Qdmy&~OI7#?8fM)DDod;Cpyoc6t6Hmv=S~6Z>
z$Ggw^*7=U|3_v*Zn4TEO3!KmMxa3_wvAMe8KCK!B(a5o3UTQ#Oy=F|nv{k&j^n(Hu
z^o`aAAv+~;b(rE*=i{VHCqZhV;6|VooqM=*-{Wc4q0Kp^5;}X-xf2*Xqh_oinK<3^
zFcj$tlb=oO-aM0)`)K$Z%VQs9{D@<Tu0$Bh2mPIWN=d5G3)51VzMbsr4`7wp+Ayi|
z*;PtIjM8{BF4msBikfq!%uNe#Cs!xQYK))C%L&YT{$-Bi+}UK-6&aqylNp=5MKSz*
z;Gim9cOb3(!*;Rb1h>E6&pgyfn~(I6X`Fv0(UOrkTosnD=f>IFHRSLAW1zQvWsLTM
z*k`^_{@foJkBj^?I(8vQV}H=$+UV$?WWsJkx`p2jx(~V-N4ywq-l1)$vHacQLe{qd
zY_?POx#0MQil8J_BId9}ntWchXv=`^;Xo4i@%uI~pull(@oEDTX0P%@gYEJj@%Km}
zPnv+g9o@!9Na8*KjOe<1P7im;$g(;Qb@&N&W#1N@TZd%;cHc!WmS#XY3^!P;2zZV8
z5D^T9)E%%E-4U?`fC$0*5i2#N;dm{qX88^;DQc(BFY1)-dKRVejyt#%TR&@aXwbZ5
zVcV`e*Uv?37TpM>Z;69uz`W&znEIx}z)+tpkMnb4z<LAs5$x^%wa=&7EP(%=la#0x
zm+F%;t@_yBnV9#FX3&M+|F$^>hjqr;bepj^@+lfwsf6VV&-`{weR}_)^e3xy?JwE)
z%~$X&?OJj}L=85Zb>N74Zr7f)_3*3J!|db6S>!&|I!@9M$c$`LtluQ%23&>V(6ODR
zdCB{lnvPv0$!@JCIwYLhWlTCzRz{7n?1(sZo-fkY_2iFs%CXp2VTh?3Ae2a6`o{oj
z1b1WaRNx`w+`D!emmc9Nq&wo?9E&u`oel;WN1=}MeErB+x|617prf5x?L>l+*}M(h
zo^5;H;QIVG+j&p-PrIx0mfqH^QJ(9MY-)tBdGwJ&S~F6({CEeHbr8!gNN~y#wDR2k
zKv=|f*-mrhHh;js&|23|pTDeDyf(|EY&NGDE&QNp71x5S)r$l=VM;Tjpz!5GVZ%N#
zjVw$H9PXlG-_x*Wa%oF#w;$rx(AMJ|=m_fkE>n;t_xjmjG1H(BX8SMXL5ppB`OZB+
zy(yQK-lCpA%USf<bIodo7fnj58!c+55-(_#JEp$0A1ltgNd-#RWNps;Vd8aOs9jO<
zKidhh8C{809hm=JM<E6Rr%xf<j?5UbcwZ>K=NCW{0we7Y<JL7$#AY6hUy<=BW4V`9
ze*}u_$m?Ud_C1NtqXa4^#(CS*@a%byg;iW;+W7r>!+qgR8DuFHaFtf7nX--cXp+7M
zx^i+-%}eHQ02b<IFZJLv0JLT#AbFP_hMkw_6g-nH-?1h<(QkjjS0U|4b^oB~8xXab
z9Vkrv7x)pX6d^yAUiQJ)=DU0ERPc#dC!B+C9<0U(f{v|LG@R~E!o@Q<#@WSdk;P=B
zAuK=ZnhtQIf&N@QvmjN0Wl~ZzJJ4F#yQ5#q8zMb|k2p3RuiS5TGAU71H3f*EhvlEn
zeShs^cTmG{RXTTM*3_N7=VvFV6}>Ef2d1|H@|KT7rTpQBJ5sXjjRCDiAZ=(;w$Wgh
z0#B0BR6olNKrZWUZlE*kd)Hh!HyCpYj_3S`HB}WI9bxXN0@LldRsv-~yMyFO8?l?x
z#SkwnmnGhBUY5u*33YAUA3doKZ2??-KA7q)-JCh`D$INMZE$0MJa->Dw986iD)={(
zXgjhjZW%f99bB!gB4xg`eqXN&p}#8%R+ys|<o*Qc>PoLC&$%EKOhk8;#dTUXy)i8U
z7Lvcq3lqzk2D0H{i7e{+d`^?KM_*;R=goHjZYriG-avd_T=C$~9Uy%k#mg$wMTD!y
zoP#Jw@8RLLkH6#rcqoWRT3IgP9heltyj=@}R%<)r=(TW{LzHhE&95PQx9Ga7`4*6f
z&suwIzWcfU+1dYo97CHHX<~296N<iGfgG$XcfK>d87_DsgC?2<eeS4bF9FP=Lz&@j
zYi#2Fzj#O|r$a9-zbs#{^*ghm6Kw}0EDl+!)g?0PwRK@3*cswxVCb-<#i3_=Q!{;=
z$j!R`7B|4Yv`dwo3u2IR!UvMOT$SAHez=*sO|7bb6hF?H;wEJtNq)<bdMQR->AvBZ
zCM@V&y~@v(rK2lq`034yUeYhJBb=f{mE7?r8()IuGBZgx#{FHpwk42zhn;;OTQhG2
zmh<>oXJ|_K^Ez=9QC7dJ#PMo{WWA?R-Tm$MjJeaAoHLckke=bVGRjsi{PnHP;N`O>
zdOYCMvip^9=VNOu=u;r^Ji15sJwz{qODN*sv^Jx&Z{n51FRiW@oLP2!-rj3{#A3HJ
zG2;p30Ov2B0!_MMVf%Hx#&wSl+vfadSZV2yiIB4FV1)m8bOg1kucgY!wYiGisC{62
zjW4bt-u~h>)W47-Y|X~fLID$wbjDBR@ixOy`zF5QP!q&}YW<^R#MKd;UIbG^^63C2
zZEU5ucj2$hrV!k<C}^DcHqr^(t`aGZ<9t5fUy!=$iO>U%!+n=$93li`1{x<(w6Ate
zDLdqoN~riN&C))mzLCUWrC-1O7pk9qy?8fAb-=-z=3oHG4}id)4n)w$0!b4Dzp1?n
z7jBwaHq(NehxE`Zs*l`-@G6!)Q;kNWKIjSqh|uq1_5|WPvuy15ubQ+cZ+#_Ob{60a
zOB1EIdt;!uj50~W)jv{y5Xhofd!a5KhGWmf*9<pN+B|wQhTk_1vG1&JguEZLG4Qv$
zYh;6l=Uwg%oM!v5VD2iY_We8c*0`&UXjlSR1|&7|^qxe3vpGygPU+MSkKJbo08oPE
zp$><20Bgt{S4^fC69-0K{Et`yd?0}yoJu|SN}Q;Kx{hD*o7#jOy;!(=aS3~vJNCA+
zf6eSbHj08r5i!S}=DsT$8EQ!tB=g=PdW>eh&h0iGywn@``v$bM{p~+|n`GH?n86{l
zvgBw~xW&STN9&n7!o2`K$$V;rLI^|SFLnGqug%wdnny1CIcFot)qzFYe(lk5-GX$0
z;&wt$Qnb6hbtJQ;dQQ{q@4NSugNOb$qn{L(uh1mNxG`D+*dXkM8jIU%Fw`*i?UCl!
zbN0cf9=n``2wiw;JQ`^yxE(>_{gKxz8g))$<cV=Y^p(@f77I6=E~1-mp9Kk1?dtQv
zH;!9ae$HJuelhKc;}-nemn~T&<0c8`x~=97E1mI96x#>$WLL_~Kl}RM5433uh3pR>
z98hB+e>FpdbD-Ue*Cm#3|M_|=+;X6yEBJ-}rPYq{ZOfgC=2KyABMao)2N5kae_qL}
z71P4dOFNgH)9lGmZe;fLl@qPfQbA1Za-5R<EG9@Fi`H7<ln^-|A%KfU%xG-J*K&Vf
zG0NY0%~eJpMkHrHO8D^RN`fc1>Y#YTz+ULTka%bjMPV7PG8+MoVCU(5_zL<^SwbcA
zla$)br<L&&O?JcnKf1OY?wpxw<RxPoKEi?VMWSgh227a_nUNEYULW3}0rUq4*0UB$
zwlXhNFYI;A2KuHas;MaNCTE$8AuEO70?M7;)^L%DGX{LF9?hb(aVQpaCy<ISLt6}D
zu0l>D#gh+r967Qt=J7SzfmbUM#l95tMQ5wCz@d=I(fV6N21`i?@+G>}4tj5Qqb_gt
zH&Jtg_x0XvS%5!b;Xa33WAv{Nfb{)<$6HXt88JI`ewMyuyH3WL<j=n{oYLFNV(6Q#
zqO?*wpWmG@Lm=)w{KKXuM1B#Fw<;b^o**aIP1A0{o1An?7xuiql(QhJLS}?XE%wg6
zuZPNBjSk!gT=OjN=)INQKDj0P1CY1?0|uIqKC;Y?V*dHXe!_yM$?X{ZuFXg2*R<iW
z-jO2q>!3~Gf7L(~;BF!yA5E2W=fa%SWZc+DBM<6|YEe_sK;Y4In1i)umeI>!oNcA<
zR^3fgHS3Xd!3~JC4rx9QFETIwAm{$-@wv~NkA~1zsizNWKeG9Z<$(>PMWyO|Wl{5I
zfPX~hmf;s8EAbSUOFpByoGBHtqvfTRmHB<01V_f^;~mB{Z<d1tkCFm+zVEqghJAbG
z%4vh0GW$hda6}SzUOUsnq{LRk;M0ZdTxYbTbFhB+SK*r3^Z)3Ezq+~XQ^3*czT$G!
zJ7$gK+wtb56_A0Tjk~jUDCN%8AB^HPD@QLnK0}~PT>EU4F>5XyYsT!{hB2IQwLNnu
zQo-3N!q)t(38C@UPk#C}Z+^?RPTY3s%(<{*TC-5;9sRR)=8AbyTMF|~pVst?gR;^Y
z4%n*GI<jaAwt%8Cg%+?}o#p*YIl-Fs!?$=~o(pul07=bE<J&$1`I^JwaxMO4wOc(v
zNH*;OcHd|t%f0k%`i@i2ztkD`O!<(MC@;@@^y=sRfH{hah88vPC%CC6!Q-8ke5rTV
z!~pCMEbR9W2EV_t5nPa9<Z!1uy5pmixyi=i`p+@v!P9;iN3X92rqFnQWBoiApsm`k
zJ)g^x`ccHqkt6;r4hjscgpW?O*-sBDF8|q`V3(k67rR<A^^bZPENq<?9H0k}fS7y0
z;*ty2rvCdrws<N>PG_|&<~dJ}6Xwp7vZD&)i(aHWUkuM<eEydHl7KV+b^Qd<`Al12
zZRo2S#s;sYv}M`Z?|C-Le;bhGlnZr~8;(;3a0BDu>-0>!-Ux`$fh3c$*EG}5R|b0$
z@L~vY&IS3fhvvO@+GYPj5Qq>#&tg(;8g3~(h4j2NW@Czw7&N;h=)>$-0Z=1kt91FH
z+ea<9^LpQ1v7_=z9)ZM)7u#TDUS&>js=%(<eIy^4El6t>`_d$k?e8zBYpOrXzn;?n
zi?FfWA9}p;#o2`!jA=SRs)1o`lheSRJ(5=oNts2ci<2wg+`8ZWTK$t6{^sql$VD_+
zlr?VQ`1{-kUo)hy5W|))71Y^av6Owdlg?vs{3$ZZSGP9Dj}aw%WpH1=+d3J0JDkJI
z%fQHNW;|yu_IqP}@9QM#YbmF7c8SEyTyXB#j03hWnxTr`$bJ3K_C{PhD)14Krw1Pf
zdXNtbC-h;3EQ}-Ncy+QhsQvvTdXSkg{$MSINz9;`znhMl3V_P2#EvB>$DWwUF6;h8
z`rlMcn357V-#$s_S4Zs1j58f?_R7u(2F_6dD=R8@3zi06lhZ0$3vIGvKEYD??;wyv
zI^@?9mQ>Y8E~<DHasD!9>@AIS$!++3N0*2KLOd+;Dz5t1uLs@{5Xh-w<G9n_Wq22Y
z>-8)nPMn9qOkHC~#Q%I9gq{9`NIi<8U}7~cI#mmd4Hb%-u8YLV9z5LHHjgeuJHDGe
z?TrcbuxIN6+#I;NpzS%gbC33~dp--dfoRdn4@PBt+e@3i)r@;LpfwDRQQT7z=uI7|
zqnbBB7Ifc3tM0jwwg}TwycADC+H{U}GKx0L<Uk|eKcp1$8l>dqj6L1ry!{VsY**-@
z(>K*vA)WJBFYAuc{Mh)-s<>y>&*z(9?{>A`i7L8DwVjopw!QIT*a3e$OkaNEu#!{>
zRCIU12L?eS_ziGr-rV+m!!6(GzO<C7!>3T^2Qyw1C>ER56$~hZI92?+I;s;K%%1NE
zPGd*P^K;)0Id!GTPOzkPfw0~-_@(NY^PhqWNEx(IfVKt+ek;ttX<$=eIycqsz&@pb
zgazqWtv%h$=exCh0O9#uaW(FJ6DX1j8aAhMnlFh(h;W`5{TKrZk24cPJa{Ups6lg5
z>jPTB78J}dc)2rx@?}z;8%giE#%?e3o3jaRdhAxv&Do-BsPW)gAKdz)q~=_1Zt3s{
zt!mlk&7WQW_hXCJ5sFUUEc7gpj}ofOeFAype(=sT8CPBHWbkK;Q(ih#^<=!YW|edJ
zVw`{EW;HSNC#<sM05z^{O!0GT_)>~e-g;T*;&?T)rTmn;DYvz_^lP9lv`I-L(%aD4
zU5?*2gpj-kp7^L-+vN}SK_3Od>+sy1%;a6}oF-$=wyQH(zn(Fv4bR2o&XlYE>6ZgS
zdVw=axBEUAA*TmQC2Nz#@jQ!X{J4{lr%s;<KNcj(HNSR39UJB>7)}vDa?Km(VVcy3
z<S9@vHI6gbuWQE7`qJv>Y+MeH?y2&XGeWmAwn`muLyVVFZyxcTwL|Q915OaDhhZEV
zEyIQi<CC**%@>pc?_l_xEm&G}aI2SKZkQ~gnX`4yZ}fPWM|S`#?4HktUg<!_*hbtQ
zsj(+g^YKs+pI|q*;rs6X-cDXg%ffdZTcx7=IF*&GqfN&?;9rkt#-zo?$kUlFt#^w)
zyD_8<`OE#}S@nYD6>g*Zu_XX61qeYaz+HNyKCdc*)ja&1-vAJ8a+Qc~-@1F-Piwm`
zX#8&d857t!Chs4t!mR6ewDex!y*MMhuR2qzpkVn0I1g~+MEm>pdj~nIaZU>fe0=6~
zcS<RhtPc3o)qO~79AN&!P^cmjl@Bu8Ca8TI(B?akKc+yXQ%eB+ZZ3tf@i1L<f7PCw
z6NCK0RQTDF@?x;R;|gTYm5eN9^y-a}OKOn19^YY*yztlDmq)+9NxJfX4oG$!pF#~s
z6JqShQbE}?@s{i975~-_W_QPTVb|jpa5HA6SHPiqr#7H7^_kL-omPejN2Gk!%k8&p
z)@y)4=Y9?jw<P-S`}$0eKUl$l-Z_@Cbp3+P6$Nw84BoP3D7i8q8@7^sE3`G9+P^*w
zYa9rknNUNHd6#|M(qr%M*;~<ON@-8N9xTF*%I_K9ICJ>rWf%r_|2eD%z5jU1rwMr1
z7*tnsBYa#_*Tcdl^~HsA(I*%S=^z<zQzGv>LhL>{ty51_SO$v>tT;1LBU!<hSF|ov
zFrmcEGGrz1-9$})9~k57=pLR6I5L*3U(fV9((kx0`E66r^7WfFYJVQqts(*i+fnvV
z)U}tkABt9aZ2wZ?IglJJ-hggeMWi?a6o8$5N|Gta>oDqJ5^k`l=4;A8Nsr1jX@(=b
zPJ(ObT~br&ImGxAOCUvFx2P8|dq~*EPSvJ&ai8k6ny%ia<SZ^GRObce;k`GIZ9crO
zdao^J%%4W;&v=}K>_ehEvCy9_wT$3f6!3l^e((u!aEb+<QTnfITktkguDuie{rq;u
z1XZxe{(o)PHn^1-!7b%QG@e4(UHxwReIDn>gnsG;`Qz<fD*uI|T`St7Ufu|n5%T8J
z%M8&GzvG+O=&jq-M0@Upm9J%)rcb@Allu6wfn>e%EoR~pvYLkCV)%MIx36>^Oy+3p
zZLrYW=VnUBt}{TtI|z}DHlw3^EVZ)3TmyKDT26i0uYYd7`Ey8i+T=~A34j18Jl6VX
zchl-R;mk5(M<bB)sf8T;&6&t@MB$Dk=K`4xy-e|#ccY6bLOTgf#_wkqRUCTj`@U5^
zC})}`IEMk`w~OJE8)`J*ffz|p;Zkk*yBbV8VEFR>?gI*0mA4d^|G<pp>2@0O?dy~`
zJKxzZXKfe*!t-S{H>Wcm7Qz(LjM>8drDD6i9RK*;qVeRPXJEO(VF`ZY$vhuVhMSTH
zc>1u~!%eTwrJW67CptwIb*kfh?xt1`4jy{YgOK`2#n%wCZ{k8)C&mc?5L7T4ADPPW
z?5<cj@N8ggx1FhjcBj6*bY!r~>FR>}dHA~%Zj?bSFU0}9)vaPD=szFny4mLV8@u+F
zCl8EP+R`1W6u|BFJ3iQo=E<6m_%mLjFl(qsSFVC5WGAX2{=tG>=nAuJ6FWJYZPF<s
zj~lOnt8&w#cgtR~Z)$i9UKP1`Ee)Wi5CPVpsWIOgavmd*GL6m6_`)YwK`p7n|88I3
zCnCEqJ1#il%n^-OoXPJmRQ8n)-*2#A{J;17HoMD=!kq4JtoeR*9jQqF@2hN9zSD1h
zSUJN0ax!rCeg6hrA#ZL0Ame2CO0R!n1rF5i8eEyGm0!xt;cw|Kul6rf60U&P=8g{F
z!a=|vclqttuTChahwVQ2>*^4j9h~vVt>e6aTw&6Sv<nbobu43G>28$rsCb+Wwb^@c
zt>rK;RODPIwN><~623H>VE+qpY+O9{=)SDdg>UVJ?^hBaCFyH|b+5Wad{AGG@9#<S
zV^ORAPgX&p;kVa6xn=}A6lXmJ+y*^E_JS-Yjv(H5qD8-#{Is*f!D}G67(KV3<viS7
zPjwQkrg%pA27>W+5lOSiJF7S!y>$Y>rRtfO!%Bwb%u}$tI(wy!&&24++I3k5!fESR
zkB)1$3Pm!J#&@T~!lJ}T&XhX}b?HwX+i3}4M|zo3k$J=HL_t0d2tH0Q$JO)ZU||nJ
zqTc{!N*1Tg7CVbIdS`Y!E&tVsVm1C!)g+X^^iWOWl~%f<|Fm*c$M-XKw0I=0gRj2i
zl8dlfc5sTfw)5s&hv|LJX+wmt6LQ<>bRC_heB+klJl-9_8utI1-dB^KbY{{h{@sh6
zr-3N*84tuj<E&L^m-b?l^o7n)J3IC@%8Q6AkVhUO<|=1}>?XtF7F&qFX&HZyd>Z5t
zJ+CvRKN$8?KLl-tCI4pGQFMLQzDLmM1U~KH0h+kAPJ>(P1D4!o)*CQ+52>k}RC4*V
zgfR9&8vA;`-QRpmS^Dy7)rt_;*@15Wj!LMw&||0h;1C9$C8Kt}tde=NHQp|sXZ-lh
zPau9~0IUe}&X$o!A6tGr=t?Lj(uN-yg~yJJ#Z+@tL<w#VJ#}Q@N4>P<Gdr-{;D=CV
zCf{1uKi;dtBXF?9&)BZ@&>4hdfpY3K1ZSm`bk6B6=+pFZS|3+uP*ZhzTd*x1#MJJ&
zI_Y<7vXiWDNKC_YqLbgk%kdBI-qEevSo1dnO7vFS*|ANxQq*A9A}`Qqf&0Knf#J`}
z5TTs!frvd#2+_c+Q{1$^N@K}Hdxgx>y`%MM;9d&6_Yc1`(=o}?+!zN`a%d)g6W04D
zlW=4`{+4uLXYq?#;nzo>)n++yl(&i<k}&gxj_w+L1sl7_g-Wi)S@6HvjNLUj78Uoc
zlH#qq$LOtz>%o&?z=ZRIiULAK)3K_q5OfM7IfG*Uc6u?d>L;&wdpy5amFQs#hd$$x
zg!9YP@A?J+(F7^6PA^?aY$!N&$N>X@=dbi~n$wPJOi{njWa>596+0)1K6ZUHi@ER&
zk`>wipz?K^!T&r#h0IE(ko4rg9cuo@)C3p9kZn4k7QFifWdCP%y;&3nMgf+B$$UTa
zlI3je;sxqQKTkK=BzP)Yp^)T7s7(4)l_D#2Jo;<JNx-8L)|8|lmc0d-VVjQ^79=0F
zWIr6~S&C6IXU}D(EkAK;uGVZz20Ac6fc=_~E1{A|L;N`Q3VwMB0G_Z_>oazt%&xxN
zTCB_B@1n)>U|`>4O@PPyO_(@`TDEuFEG)Q+*jilB!8|QJr`jeElnKmop1M~>3jeZw
zmSVyF?!=#<)yK?Nc5<3-a#CMTp3qO_-7t21iqD>`C-iB1?H$EDjWgA0Vrr0n)b)=A
z)GNLOuRx(E=;){~4U&&T#|aX38t>R%I2@X~@;Gyh{XVhnu!Ii20B>6=@pm-v5^u0^
zGQK^UXS<9Utoi+<uzK{!>(PK}f~IL)+!gqnb&t0<oMuD5gJ27h7!1;pR5H4B5_}e7
zoX*P$weN2Fiheu5(YOB=SiyV{Rq^-MZBoSiq1I>PB+9R2XVs>hebK)7um^jLfXPpv
zZ=o=(D>M8-{h~Dvn%9IXtv|*-9EPD-+d+|86|XA#UyOgcGlkSzQFa&f@xP|`HqyH9
zE7AcF!POMYUTI!jJ-f7eYa(+t#CLS&fy$nD5!+9J#DPmsMeHE8aH#Lm{eys+l$-4Y
z3tUq#)QO5`GY1sJ3#F_-?0h0mL+Dl?L1oE7q<!NY<HMC`Zwo3g?UnfR{JSka(=%Y2
zDDX?FuX)OKH30n|TL#4rEN*qDF=zZQp7;EB6qJ4&{C+DH)SR?drqB9#ZZB<7J4#*W
z20!E<+}=qjSxfFyJPm;u&3aRbGfEsu5vldi=^Kt(z2{D`qbCEPl-juSLpe7BaWc%<
z)?cf?23WyZzb3*7IzM&w0ZH^ZX(qgTb!VB!yOA~L?jYS=qKIRf<#)5GBXxl`QY68(
zy@a&4n$antB$&i2#N+H}0TNE8!7^k6BaPCtE#|<@xXdxY=x+0_z*kC!1yhyaa6$9F
zj{^>R@AOzq>O?*KXdh`p0Uew_l+oUXE%@y0Lr)LZ8<m)D(rQ{K%m|4#Wd|uph&`h9
z_RsoEP+O8yfjt64Okm~yI&S7TE>0j|e47s7SEo~(?18&w<Y-x6>$6dWKQTt%<lR)_
z$vwh`$c5fw9q2WLJrsk90!Oe_Dr>L|C%V_7k)irxd;G0K#b!>C=G}SAYvcZErL`J?
z6?Ri43XU2MTTH&#ehYO5v<RuYa<52x!%hB#V+dft6Uf6$<Mt03r!zZ8`)8Dd&Z0cf
zJsGAor;>&j&iig`Q~tkMKBy+Wm33$<&kO#|em&ZBsXW=P!14Y^h{}&_D>nSX+xhbv
zP+T@9rYay?lMl~6D2C>Qg{^-F!et?CDL~Uj&~{n)8#?#aouFq|kQ^QiuLV{=aEYqO
z2ZC9;MrVO|xr6ozT}?-clRGJ?)9Q{&!;~Dc$e_pYL2R)KmgAA#pqmaX<a-TSZnF^(
zX{e~EiZ{9F!>H{whnYw6?8C)f-kDx-?xLoAJH6@L^7~zuec@rx0gjtPU1ty*oQKh{
zvDN~&q}VeFf3GC@`RCOSERw9Jv1Maj^3YP*zeo%KExJ`SkJ+Yw862#}IzNZHyqGp1
zm2Y(ny$IvtkaLrt#N4c;iH-|ns)5juVy?4h#XV<4^WL76n^g+fe<(8^%F=&vfZ33_
zs0Dkx#v<ShrYYOZfvwrbdh!wM^T_kzP|LU!@ClSi*sRoEZWxwPGL87;?XbK%%zC(0
z#WM-=ISf=op2s(X8UB?!R7hqc9k+crad73wehZzhw5^z0TOtyst>?h<o#h>QUBtIy
zwrxqqs1p75<pxi)I=+>?0|0wc7J*<O=;yyCa83TE<u-E`vc*|^aDe(HFY#z(Qh9pU
z3c?V$6P*3v^Uw1k>f_<=#YAz5o2U__-??g{n#vPe5Uc1&(oiaGV6=p-Z=_eGdf7Ip
z!7f9ypbw_tzP5vob7{Ng;nIBB9z$QF4VGlB{<EX5rIO<Da!xy4>echx{(h_>om~RF
zyYeISoT<(6M_-f$hqU)%?QNpE(^agGybE7H8IE0<{SGG6kZcEx?Y(|dAdp4ixlK0N
z>>k0s_K4<X)5#00WG4Uu9RXHVJ9HWt^BgVyYK7E?m{%4foB7<krYZ4m=EK<X$)zku
z(~-d4UD9;Dm*vpc|3aP;7Hs-UX2R5u{0rH2!CSPS?1EkcO7V-CT0l~3+9US@p&H~}
z{8{p0YkJ_R`YNzJ$bB4;WSWYq&#G^!hP#av?$oQPoEfTD+?VHT3>>_HgAAvrehdM8
z$^^}5`nTh~tD<;)|H1-~#p=aMyi7s*b2_6l{kd@H3LYA~TZp<uQ_9@fCe#q4&dC4G
zXS5)vXP(HAH>3)RAzAJgL(95OrXFKbj|0D(G5SFmD6h-8R-NBF*jMI1Fjh#oKi9W5
zmOH|O?2k6zL7|jO<DniV^P;vimE%_+kd&qLQNo42=(bDq(^3Ze({=t%Pdn;e{Hg9s
z&;bowU`)7PN@^)8?D)u^b*%}gwg;4%$^CThA+z{OrLz%&Gx+*79w+tKw{1fPXmnaL
z6pA>sv@z8LV<Gyjj2hP82cd3u-5Byc$b~0sf@fJfPszCu{~*(`dp?v}G2eG()^iyV
z_P0=!=Zrhy`pr%U&o+A`Fk)$YY(3CA>&dmmGY_DvD`Jm}$vrXve-Ea-tsS0x=j>Se
zF|MZ#)EU5pms}2LHNH+Z{CXF+e`kODqsP9NdgL(rB^Zc3%ePcqGwdxkqX=KS+H0EO
z9g{zvDTgtWCS_e?CO{x=yC>}9ZTWl2Gta+;zENSEA9i@La_AOgA&qonjGr?L%b*2=
z?n3>qe!Lo>XH-g5>6l;ZB6M*w4<x?js4AnLhY?dAIOehKqFMSDlTZw*y(~1{38m?{
z8<1l<d&_3Qn=9&T-G-g@(PFpMW%f=N?Mr8|J&5wMrKN`|P<#iOcck~kf`4QJ5Kr$!
z&QG2_i0H2=nHc`yym)p(@h|BdtaT1`#Me!L+u4z{j8Tk1HQy5q1Ykp;Zj?<0sxX;>
zj^V%qPD}N6hp_#5$fX%#q3`ZekFcsqgJW7K?|=(ohI1FsWI3|w=<08(y|3-;9)#M3
zP1pq9?jJuE6;(3)IDb60bf~AF;?hV+0R91^wEyK21pPq3JR<jDZ%vy4#O*8c`r1iQ
ztw@|cNV-2!7=ZP@o$;mZ42ty<_+H9gb3fBzyzA#9Eu^hZ1#e$W#iwN^+h%$5u}Aw?
z;|<wgt*Mj@oRTH?+3sm)h14~z;gjBBF@EhIBVcJx+(j=+fK3I44>5O`wj36yQg0W{
z(Dprw0-*=AotH^Xj-{;6_EC=)!i>*!1nb&BPlDgK#J(y+H387`ik95E&&=gu=d%fn
z&`vsxAf`LKT(j?S6c{NPf}7nE=lL+=fx!#fP*dNsRDxb^W?vxvSg@%^!L0x53^Lck
z|7-xore>muHqvN2P|(%jCm-KiFm^9FJ9Xp2q_J15HjE?*#hU;_vU7=Vi(ia<1+OJ;
z-YWp{<Un3|nEjM+Xaj-Q{iFviJ_gk?e}~4PHIBCrsDFGo-1B6(yRm;P0vs;{il(*#
z=scS9%dH&|JH4qD0t4cPr4p|)9P^r#AP0=RHzX#>&~J(HtjpIid{z3etLwOlAI(a|
zwzs~>F5o1#kq1h<1gnOhVPTn;tY>`w66BLmx@~meC47kI>t(2Ta_(2SLEhBaav#v6
zsM6WbNc-z79e8%^8;FWZlB3UBYG+#)65SE9A`Fq|b3%*@F85n3j(QYbxF>(BGcWlK
zVX!mS)s;!L=5YlRSna3MNH#nDPxuvTNQdVj9)$ac8A$0_XeANx--vsQk<m+XmKA6V
z#S)Rs4ju_!^DAOYEj-%*-2B=$qJH=QGjjeHB3!H5S*sF`sb)f?utm2zo7#`&Ag7Bw
zIU5>VipyG(?@Yr`+SQ08aMXgP90f)0(tsmU*|t3m1B+>sE|fi(cwm`g<Lh}lxJpFm
zAiOf4Z`xoJ_<rjgUg>J?)CP24pau0ZJG3xLqtWET1xNU~a`a2^%A6#a;}`CyQT+{r
zX1qYaM<UISyIWtadN&n7lBUJ-u!n;U;Q+3GxJj~laJ{{m1OKa@vG7WA2b{^njUR6o
zGcTJ$D~XOQ?`gDy^JF!(GnpElN^8hb(@Oz`^;Mp95dAy8g<AHeTK7SD9R@&0xklqH
zH&8`rajXys>(~e!;@#&|jRAoeF#QfbL3xL@Is6NGK0H(=Zr7Mh&W>mV^hj{h!mkA)
zEB``z!9D=MXDQ45Djkcx`*t8;$zDT2x8LO=Jj0{AlF`40UJ)&IE5*C3M4>Q#T`Z3d
z5dKddFd|bOmuM+#@GK92)Y+k5`-V6$eC6jb>AI8okC9_f!m_-X`X0r_38bqo$Z2_Q
zP`Lv}hXCHP|JU}MK}b1ynGa=kLxdK~@Zw>Bj(U7(r5Dq684fFW_xAe7D1ZgJ9p6r%
z%&$#74|^+<`<{}*>GbVi#BG^Q2Mh3LTc^k62C9oF+15=Oym+egrE6c7&0jlbVKTg4
zt`u_WJgmG&vcvA2yWLQhP(A=^7F#=vq)2h6i;Io^9EG^{{Y&$nCoMBqP8Hnm=vb7t
z`T7w8NkymVShn<aP??ew9+pSz))ZItY2Q(q&1a3iQ4|z>J0Rx*gTb&nH9iV_;PM91
z9f0w}(^92ey5%s(^$=%1pQqx~HS^x**l;uz+R&uu3um$Q+X|FyX8y7x{Ixhwu*tS;
zx!m_HDC+`uQ;$PtI#PzJe5}-x1KCF~A0f)vMhb8s4Eu|FMf&_orx#!GA+pu~4(+=#
zqNJ`JHV1R{9_HAD%D(|bgyJ&4HF&pQh~P$mK=7IF@lA4J``Lu-AFbnSGeyhGrPsfP
z=KbWI>r?7NDL*^7lM@~fM~w=X?j6KLXDUqZ2|dO>GL~PkkSs3q(y`}~*T|mJx>A#h
z1fYhk7lcF4*kSeSUO=L<^=AHsyr!ozf-_poa;HgON4)(?#DVGp1oH67I`&tQ=jf$r
zx_8LXN6iN=se`3e{yqM8z5q*WliHl`kV6e-SK}OqIvp1dG%RjljrSIvv|Z!NnM1Yr
zj-1&ExT6y3Fz~)T)HeU9ArF-zxI4F>BQDtGj4Xvpl^=lgQ&(&lbBhOU`x=dQ6~7xo
z-n<c!gl0)L9p`pV$o=p6|Ey6y$vBir>6ysr4_q-<^fTAYOT@%axLk(B5jq`ns;-@q
zbuT<hbf--7R^vkVwf17iI_s=v3<M_uq8A_%2K?sLgrqX5lD-9D&pn{`K`IO65^l!>
zDe{@SGzc>E8>Q^Lj-<Zf%Hr&vqnOZX67JKr0#YH{PA>bghKI?|9(*=$=!(#ex{!$F
z)&A9$O5LDi^#uR#P!I`>ah)a$)Tzl&;W;yJfs{BkK&kQT@T~S&T=(x=Ja!f{_}1t^
z5tnI$LUz|2Ge%hs$7A`8Qv(^!2J@cx9*`rG7%Po5KvJHsK8mUz{zs6m22T%GWfqK=
z5Cc0vEMAAdNYeLO0@4VHq1m$s&-$!(-tHYW8qn}7uB|DN6x|nXcCc}6Z~LKkmLE7}
zp{QHlWk9cT<Ij6fufxD=sJDoh(jgJ>d@L7u@MSTS&3)}0FV@xShs-WA4=mZJE6H<K
z)=~-H_Mc`DV3~g_LR9VO1u4|s;q*Mjbs1%pd6&n#>&s|1E3bPQIC;bxPR4t!mwqo;
z;u59u39#~!`Xanj1nB#}CVKw8owMz-zX4>Ap+n-Aj<XPv^hkuMZ+R}~0N6tLkta7P
z;CWYp;bqozflig}hgx1b!0X9`A*eu&*s<hihcR3_&}F4<uJeKWUUKlo0vmG|%vLGe
zvbP0Dw`Kz{Bg(g11_1XrfBJK^DW#8R6Hc+digt%-D79>;E!bl~-{_Uy<}~cRIZ(kp
zGvQ_`M#t70X3hn#jZt>)C_ZZXao*1+_UNwS;_aCr`IC3x=TqgKZxL*+q=a0lZ#T#o
zmvMq0cl>Ak_sJ4qYb#tT=dZ7wX^r^<WO+=LzMBtEoxY1^&4#R$ehXkj@!A@tjY-v6
zNt}Tf;Ldw*H$K2x$jaG&LEO%&mZ+qOZ9X&bw`Qd`F#6ITiEL$NIH8;`W^Fl)6mLpy
z44P?p5&_Ofc-_-COmE}6?4+p&bKfmTuPM9HEncg9zNO`b1)V$j@=czrj%-GgF^@GH
zYxX6tsS>ZqVC>d6z8QTDNFLVcZ~whtyyitc*DhVr1F1<ctDC5J0g2J3t|*nOQ2grJ
zGabh^C1Z{}jU$u)0sTRCyc88<O-hj{*(Ix2Wux=yeV6=b5D1VhoEs=x2$gCnL4h=9
zSwZ_S<MyS#d44P7ZXcMI2RkZwlz`>b33OexmKW<g*ppCYvU3h%3E{K|fy5F93060s
zZ)TPi#65I&oYD04^VwtgE->RA=~>oYga0si%2B>J-Z@Z<c&dc#ng45{sl;wK>_I1R
zAqFNqrgpOrv%`Xvpg?||{yNfdi07O(yfXD))eH32|HnbTj?MZZRadIz)mIjhjXGvA
zKc0{}*xhkv=^y3_cIoyOZ%qxUcE`XEBB?mv2CBvH5^D#mwXP@;UU+DbR9M4)2w;XT
zG_jlrlnf~=nEE>UBX20Qp3}II-<);S1D-bAW2fNB;AoYM;Cs~NbjCuhX^4yG6<(j%
z;L%<e&)YtbDvnE|j#b+t0?hoPTu-0bz96;M;@e%X=rlLb>&0tn*Rixr_A>4Es#lCQ
z>|OXH!n+qC54D3&p9Dj8@MvZ6;qt<VqE9o=!kyXLV_Rnlut(RAX~NQu9y05C`=#f%
zvrk$fR%<$!-;}UyW*Gzi3WCngrJ22%CJ9)4Ajqiz>#GtxZ5)6RZgEGABkz{aT+~gX
znJb3ax?W_TJ^0f#)xMjyT(<rt-I^O*Z0TgKm;%9Ye)<=$m1ty|ov|L%IoG1!14<2W
z_?sE%wFtS!JWBSiY&9>pDIfw7QoT%-Ku8I?`mafg!s;@WyqMro6ke}dUuQMC?t}=b
z(j0KoIlnfpMS!i&R3PuiIVJumC31^f58HHO^%ibEcyRkkG_b3HH3T8uaXoLL|8Tek
z9Q|Iej!>!y6kW%8bsUHi;Z-`lbtP}<8UP3H{i%irfpMmh&y0x=Qdr$jdyubl)lY5O
zKHDD6`HMZH=hj+Kj681F<KydTF?JsVl@-hBUOdp4+*?z~Gwk{0dIS)0$s`wv6x6bg
zWlVq9u6&No-DZN?mfikl2ffLQHkkd;0E}XyM@yqwb%DQC$@Dg)<%Fpewd+gfl4&cd
zqdlNe<g+$uTsvqjvX{&oK99V=aqbz@#8gj4YbCIRv@HZ8vW{Ns)N;>ORXM9&t?w3G
z$#}OkBNh$BOFM~j+U1TjcU(^s>m09Fzwh|c!TR+DJcOGuS9^dp78oZHnJYAg5;^e5
zsl8#q(`nk*F>cnXI{DWwGK}squHB>&9T%!o3ol%c=dh*oPU_|N<+`yb#d|k=vbe%6
zDOt`}hgKIec4ftJt-Qx`Ur`X@#7W#)$mzCi<4~4NwG2JpA0Fm!jj`TG<z}r5E}xL_
zi=9HEqIz_G`dVl+ME2_%gNUV==S^>f`28H5x`8{a`>M7jRqWNUxK8>JiMHRVNtJyc
z96cihC?yV!L%Pt9z83ot0vT*2bo*&Tn{J{`LiQ)|?@>buYDXVq&TL<evj13CR(3@w
zU`m^1F$sV7@Rls)4X9upF1>)k`Ct7BMTt9&zaPE#mW^ufVwN3ybZFiQ_>LJs;R9WA
zbdo-_h}B?vm5t~u&`62^hYV&BCvQ|K$@7j5MH6P|muH5?e9=!dRc}udvA0{Jp65Na
z@oxSQ5e+oGvcbH~%r9n+*=@k-ozihGrg~&m<X&H1V+(s*twlDF%XzuNFDru+VFg`(
z(cb-jtz!DQSnAt&6RBi5D+XVDi(ReIDQ_{Z(p|`dW{I-uYlG35N=Oi0VtkWzy+`xd
zD$Tqwod%M9P*LMlKTd{mqBZUsI^<tSJKwy(*)(YS{adw}rOlWm!aU8fNJ$5`!+IG5
zRzbIOYy@sGcva3Z(`>0k7_;pP#56T+U?cpsz7z_pv2u!s&t9<N0Nw5jaO)pZRn-?K
zkeK7FGBtn9yXDgjqN$Ymz9DsmgM#6(FD~`P9C;)7C>*39P!%@)F_Js5ydg6Y+jf^b
z<9{TBQuQ3@>#(K5{IR`>m1}FA4!w2JpGcvVpbl=btQSzdAfBYzm9%dzaO^D~Ddhw(
zfs8vswv1Vh2FmWd&mAJ?osR}{o|WfQ{ZY`*pLSS5qQ2S}@Y^8BzBP6X2>NQ(3&nx!
zmMu+!??t6<nKTslwBtRpTb=t^n)K_NQwET8q7!duY~t<KwsR|mE7@TsM;zD^hyU@J
za{=BC5g?GaBmz~4&7Xk875%5u0dk4)j@l>E(93O*Yb;B7a=4CzmbiGZz9fziDlQG3
z8OIEhtBLEYtx=(^c#pf4L9AB+jr*Sd3z6jZS10`<<CptKuR%0514>4fy82EJ+4;Nm
zR&Z2d{(58Vw6#0G_260e1G@zBo^D+R7j-mkdF@!UqYlk+)>IK3jz@mQG^n1`dx;W1
z(r=rU%RFPMxC=JwD8R;E6^+ylRAXKw<>%;1{N<aea1*lYu$_fy>D}lpXSQ=LH{}3W
zYS?vUe~-Q?+KDiyiamxROgrp+*{!qZ{w{ydQSmLU1p{SnH+CLMI#wFzs1Jj>w4a0D
z*Kgy%!q9`W+>Bw_l;>gT=dal<1~xb?pUaPfx#=oi(8{0|M9=n|8NpO~+T*w?be>tZ
z(>r8K8NzU6<L_<ago5<plB}WPtdW8SdsJ#FM5N*s(v(2VwHYtsrbBTBv@Xk3<37Pv
z61151VuJ?e21Gb_3E5Zb#oH@ukZtXd9_$@MZ_@WDEJ*S8o_v@;2E14!eCK|Ge{KVc
zp<Yt`{Bu&?eI}(bi-hh_g@Cz?^Bmf@G3CJ{1Bl&u;zV&xG?o3DRN$vR9MEDDe&1lX
zWS#{e5mc)F2h<aKVqMJJ#dtdQ44S6k4DVG$??DG3$g1XwwO`da6*g<dJ{^$c(%KTt
zH2SHm?_j-t#xf$_^iQoC<O1}*qU4?WCh@Rc8Xi_^m5AH)_cA?hhJItYkPtLe3(Fwi
zGC1{jWdR?(;zg*2AZE&Z#9tp)bfT9c(7zXxyBdMqauFhsI6bjNcDha<sdP#0cj4lM
zbDP8R&CQkLuo~DeKlN(9bFv**omG=W%rcyEwzQkNUrY4jjEY{a`Bi_ICLx!2<NBQ3
zUoBSO0NFl%)CT3zTPbUY7(cUycZSmcnU*{%>pVi3%seVrxFAW-U&!rQ&dN7{++JPd
zv`;nQufR+9XisxCPB<z2f^B~I?%tm;*#ELUkIR{0aPl7CJ)+ja@?S6a;CuA1l$Vxz
zQGEIW$Zn@35aI`dGMF@2y&hhhb9?jYVtgDN$6cH|2_pJJi@<LlH!%pVEJW-P(51Ii
zSDfNxs^{Y_$jm7YScCzKkqz0_(-rm+%6AH<9jQov^8G|mJcVu<PaNYsR6ejMcC);=
zDiAn(+#M+Pr{;n2OB$e)`kXPGle;)amfgdCDVWfK@X>=Bhr|^ix%<DiRRkmwItoMK
zFjZi1k%~X&_QPUQ83b&8I@7W9W(~^#Y$&$MM(qk~ZmM%8b})+E<_d7A^s%Ck5ZNw#
zx+h%nT!HMq)L|xxM_jp(y@yK$1dkTmFX%TQK{j8SsaRa_9r6hed(YW860b0nnYNIe
zZAItTTa}+nyl$---+T?G$Lsl4eGvE!s5LaeNevc6q66ore*TYK-o6Xdk*Mk7reuN?
zCk#=4*7wG;Za*~sn|m|V41gZp4YkqDd5`n{ULFtERt4hXBzwDxLXk9Fo(w32J4#&M
zj^zo0JS8JdN)6PThljiJ_11ZR+>AUDh~=eAgH&Q*lQN}AW3+y1^wt1Ad&TG_yYR#C
z`>JxMDY5MPsF}j(E9j`+#q!SSP$jFAu6L6W-3#tCu#|YnuuHde2)$dUeC3kLj>^2N
z#N0M3=@VJnb1l$-;s)R^9|8QD7Fj102i|QT4SVf#5R={u=tH$m#FpBqrZ=(l{+e|-
zs{xv=X=H3_7HXQ}50!31!QqO=;WOc~X$;<Rdg$4Y^u>fwleX4wn=5`lC~uyAYcPBV
z+(V<|1L1=}?<x9X{Q!<9;kR)Fh^byIx_P5{(B_lx)Yn<B5td@3r0U~*e)FFR9k`6U
zUT;|VHJ3mRM9{lqf%>J5W8NJ?1@M;qc-`;Yz`W?OjT`7<bG-HSRA2>vtG*uFaR8*C
z+U|=nWWS7ATtvHQloa!V#Y4EN(W7m}rFbZZGjU2d0#d{d!qlfG9JY|?#X?cZfxWkm
zL$3OI2asD5IsX?pe!50l^&7E<KC=dGm;DGeBZMx=>no9b%#w--rnJ^9?ib{${20@?
zOI}wo4)u)_I(D=lyq*MY={YwqPnGb#P0xreA4UU9;9;rq5L5H|39Sb%5SRVw;sNQH
zi>(Jz`rDs9^fm06#^~QaX*M(O=;c3iqO=26{Uk_X{8jLi&MjZ+8teAfR7i(nv)B(|
z8WTTkVzJ(hp~D<*<w{{-jO9c|_sr&f_O+EATsZ}WnXIQ=8DIYT!gbP5sJYl-bMY+G
z-lc<>1}?ollmp##k<QCbT<<Fzn%4x@qnAEXFUr?>7`OSkbp{nS{`ceo0ytOj1QfP+
z#Vcfm+YC4mr%H5fU@r?N^n#$ZbH3kaL!0zr8<e<_wBfa?syVsMVR5-7_Wn_3Yp^F~
zj;>g_^Xe8z_f%~u`Eg90?X3t9EuIV)%>fq7ag1Pag!N8*j;ZQdZ0IV|-IwhDmA@jn
zWg;QD^W7hD9u1Hy4#=!ILq(Xd;rqS~^rd$|y4#-}^f$TQmkE;Qg-80W>t7#qXh@`M
zYRM1Bz7yJQQ@tDBB$<<?+2q|4?ntbB*4Jw*=;%)a_7$FEHmrpRh^x!bFpW*DHyZpN
zoi1x(7h1~{Y_eY*XeWndNfs^^vIS|sFu$!+Um+0egodGXD5{-J!EDyZ<7P)D2VDVx
z<w?gJHGq`$0RoXboOxn<9{D!p)89Q!z2AtKib-6@3z!qm#AP(*TN8->)3Bf=Z!>03
z|5!1;{oz#9wZ^Q)^<eMKP@OxNFWIcprUmB!P+xgu00Bau6`BD`YNrJ5Y~zzBPYcxb
z5M%B$aIv}%eZF!!=VXmu9ONC*5+BZ%mCu>q$ZbR8WbgOQuLcw$s7)T}N*3&m%p#se
z-l49iNs(Rrl8$o?IV8z;$6*YnLT~jJh8|u}+Yy=i+}Fbp7)U}wFpPlF0^^#Ang^~O
z+s7O&U!uMPjZLtw<1w>(25G|InEgQ5ei-S?;1C~heskj06f-m#NhUb2i}uW_lDisQ
zl4;Xl4`%L-+TPt>9X4V+5c_oC8OJ@z(avx}%GK>HT}g5>UG^wbQ-?^0N%*X;3{3{h
zLtcI<_oiq{bZ$YNa_Fxqpe{$ao~Tc+ohItp4Pb9wTuYakw7m`ya}W2c-_@I@3#-1|
zmixwfdCLMEr&e0`XYC0tnf53}H!oWVB5YySmF{r_Df24r^n_jD?Y{BovZ05$<vVYn
zkw{Zhdv5zLyo%=7+iW+j48fxb=EQ~$YB(tvxe;>({6Bx`^(GdxrLF))U=Ha`jt1;F
z%ym17;Y^eUt$Q@x{;vQidY(~5dR?QCHkL<zrqGZXsmmIG<pQb2)MHQmo_#SiyaU-5
z?8?uc3gi~=+DGlhPV`5BeS<Vd6e=yO0lx2_$WKi-0DCB?F{antwdu|9gRBI|*GuXW
z7?IITqesx|zVF=wSHPrj=N5k~-f=61Zu)ch$w0-bwHwF`lz2>$WV)E_c}>3uG7$0p
zl*LJQ4;wGGQq{V<e;Rw{s}gFdlrBZ4c5)FRC^ja(ZNa0%L2HV@ZLDocDOngmAvV3$
z+$<+;f_tax{fYQ{R76HDbM#rL!sd9-`aml3Y8wV-_AS>V=sl@+U>MZVwo7?ZGu34>
zi9j98hBl-ncM)N8<*af>&VEeGdy%NPOwSQsj_A`@XW{N_?eXl5=!x?}s_2Kjqs>Zb
zng@;r2~Iw_cdU^*CI)aApnX00+rP&fQ(yLUp`Ft3G){PoYRu?M1yBir9+%$R7`whN
z-VRtdS<Spzpz0@0ToAc@6lJNeDC$&B|Nppp?|`P3FKYB)$A*YvL5iSQkR}3`7Eqds
zfQS?cMMY|WNH=r~pdz3kAT=nxgoqGA3#foxT0##kAR>e$6d?&El>1G%_xHZ{-uw|U
z$vJzU$(b`Vd#}A#H8zD=Gx~7ZG!!2z{i&j#^wEX>h)4KiN|m+?7CVR2ws)r$meFNw
z%>HT*<5~la2TLVi$(dPSX_b4lqIZ*+&@Pyso9z~C-&k1Jc0>qcEe05o{hkD%O`09G
z!1wR^$j~{*hHx3DJy!}J%+0BUJOTH|h02gfx3+I{eGdngljdvUWd+kYI&!HNH%#%k
zHxSS9NC0s5^>lv(Iol6r-esqYOvJ8n8lP$N8pux`es|v4v4OYBI#%mYz>dTGeEM;Z
z!k}9d?Lz_B)QvLNPj2j`M9jY1+jvc8rpNJD;v_OgnEiAH$}l*SpOM+c653Q??uGSC
zOvtN`qDujWWYn)5F&v<FD7|hX`;xN?ZcMqeP<Atj?_qPifS|O{-uiRC2%76=m3ox2
zwnbG{RBz-<u<7lg#>#CwcX0ArP1bbcdW56rlssLgKd5nu;#3|6HKG8AfA)yU)O`Wr
zRP#IsQ_*<4Zj;NF6}gHPxj6s2l|@PZ3$f`QQ}yS%C3iQZ)Wp(IL*!nVxBn`(`wERC
z8zcPQC^xvZU*vmR51{k1>Pe2BUa8qlf)(AboCtEBspa4}Z60H>*R)I#NJfgk^8s~K
z)rK9sN9M0@0k}y?zj6(TM^M+z#cb{ZEM$Qhn1RgcVhsWULaU)Gm$pF5;OCKxM%t?2
zmKCQ#O~k>e2$Bs#>bVndUH8~c#H{Q67V{}g*=1BQvm#!w8a`Zk`{uV`n{zc7^c`?0
zbo}x*ez2O~zMFJ1y=8>6q;-vPPygYt<ck@1qEm1o>i8=fB}w=!{>9#LSTOkB<UzPD
zz{P1_`v;n39L@7fMarP{t0y*q##@26dHtmm5Oj5|GV}h7q+gL5(tv4$e)5%T2ihT6
zw;`BS#M<lY4-iAbSzggn324O!K<V%>bX8s`X*WRAdy7dZDHik}p&UeKwel#OiZx_Y
z=QeNk1u$Zxl{BJitG!G0eJKZ;HvA@L9i}0e;$}#IZ4jf*Y-PiG?FHkCNG*9YY5|P7
z;5f2HU{0iKxM?4&rbLEfPqb1l-2MKVo6Bvi%3QEJiIw6JM>P!8D5|l_ES*eqa`;1c
zt64T%EEMk8eSW%1s>yJ6^wUyXmJ@iUGDT1c%7}%gjQS!M+uq7)!P<;FAG9P*cy|a$
zOu`WGz8Bdq^j#Lm>cVRy6)BP?P_#je_ar%pxM9-y7SbVH;}s9$EU0{Z;9XqJIkPq5
zkLwCzbD#HCOqEm87s&~uZ3W#PD;=aK8fUhc0#Q1GxM=abqSlM5$Hp{OWX#p4Z}l%D
zLSVH5K*;$@36{Dc6Pw%OT~M9gI||g=#$UUh!u<#;7$M*q3JP0XX@yD^>RTgstLyW~
zqvk%cUwDo__lkx0-kLE7&#a{dI<1cr4mVG#2;Z>?%EcU7dIDjp+LGApFtD&ZYiGcl
zhrrx;O_=*G&_qGY9svXX;>y}R^j(3wM~9VG72+PJnoo*iZM_*C%|!)lIS`BjIH{>C
z8l<W)2t+=<obZ(vDsPU{0#Eu_+ly<s)el?FKsz?P5LN;8sqrtP*vi@$A|F9JVD2}i
zDF+|!4E3u!2g?~Mnc=B<ZV%?QQyerl7U;)!(yOC(P3mFrDtQdzH)&+Y26m+|IzeA6
zciOi~B&sQdS_wp@N->@HZd$tjjl3_goY0+UHF!OIi!2Xdj|-f~9sv#a7Zr;xtf&%A
zdB$asm3d0^SfyAGT;K7I+WQ1nr~ippjAtPWx56Y}Kj5L3y~Zl{B`&|}8}0hM-bPOu
z8s7B!0l=;)SXox8g$dI#qi0I(C>~x5bl*J~ArH{Do&v!+^+3%I3@j>J_?9{0<sr@*
zJ6fu31AAedkv+1YR`nUotGZ~>C)0Q!-;{3SjW3L%)SqxvR7M_E1|fp2c3f)MjJ?nG
zHgp`Id4tIMxinav#!9S)YGgjAxmL$iMXEUS!(R8<;+07^+)E%xW{N*~W9zQs9?tX9
z#dWfnnHaWbMD6j=(!)f0-cg0UnF{;Jh8_2$8Dam%`6V9DFbhN4y3gZm)Tb!cOMQ<@
zntV5h6I%7#L<{|;kkb$k->=qijhIb$+m^2NUvOCFmTy2Zz_?%k!D##LD|xfBi9s2g
zHa;t~<unU2IV}v#R7p+-yfvAJQ5m7W#32S|(swD0<C%V|<Luy3t0;6t{4C%>Gr)W>
z8+3Oi%-n$Zj!TT2PEIKn$OmE9n^`Fw@{xBo{=`e68f((A1|bDm!Hcnel+933+L5{{
zw_oDBO2R*o0;vR56YSnWESVd-hcudWUqvepG}}=&qi0|$MA<5$X=n?p)i#lNBUs_N
zzZk%mp}4W}xl{BkEZ)+4aqZ-ZFmN&3_z=eWN|mA-nDa)=iJqWy<js^o+K$F^sD-r%
z^&Zt!7oMjFM%090mxI+g!_A2Z(-4D$-|ua817A||BrCmG36o>0xAt+^OQ0q}ISS^M
z7PduC{p8hTd2pRXfBl=<DRk*H{!~c&_-Y{2Y82CYeFe@8Jy<h^Z%v)KxuM(H@@oJL
zUjWL=sYffAO<~-Qr3k?-^E?ofZoY)TEnDDaF&e0yV9vS3s_c=JunUN_>9HwBy-JTh
zb!)vyex1F;wZeI>x;-<^^e}W*-j{J6BgCqU1IMZ0lx;+FsuuE_;HfL??=%_Q5%_eW
z*Ny(*i?hi_$>mSHpJ#h!0~@NUB1oNmU}>}ay%yu%9oOo#uRPcjDg<SR?vlSqcr4eE
z{h*Y7K6dL*@W14JdsP^7((-6nHBz%DkUb6UeieiC?FjOk5Y;pRmAEC(jl0|?T0d+H
z)N8Oyo*!3qzYeqoRlyA1UrYKrpp2)ntAWr$UPo@-*mwtJy})g`)G4)>5>YU+z}prq
zFYlhC?4F0dYJjaTnYM8dI}7y284*C+PYQh<C9_mZc<xw!287O=5PsEpPDaq49j#*T
zzd{J6a=mJxxJWSl&xRh^vklc2lf;V6xb8`*_y-aiMvP7@;Et9crsLB^Nxxw6e_G}<
zHqd`9%?fK0VXJKQtbFeceS9V~bvHetP9sxFHR<FNzY=rx`3?=MwQx4f3ncF3UQ5pd
z8IlwY!ja8{7sQGw;w8e#`0W3c-%W|fBMc5yWkTD5g1s5$n05|r59i4;cX4@5GN*lL
zUG6vP!|Pde%>H=1s+h;z&o8W_+;G%?Z5PmvUb^pc>Ckr59|4=`)n@v-<=-CMImEA2
z)T)NnzW!g>&Zf64r;jynO1e-z9G#?gF3Bj=FN0=J3`pkZs33d<^TR;7g|hSN8lM28
zlohJ-+1)&hYhin<_-79$C#0tHiu}xNdUaib_YX-)KZI;WTB{aNIJvU;i|QZr>wcWn
za6(t$NwQVVmtEL><a_klJ0&KTG$Ogjze~P@gUF>F3-a$7aRjPAHzq{v#|>hQsDgOi
z*Rr3->rRx<tVecF`7Ep8^zEONPv!bu1Tt?YX2tdj6OL}1NNW$6_Mw14++29msEMoU
z>ka%3j&k`5Nrr~nE8VQoSpWohulBgFw1Ed=3Bs!9qU!aT!1n>f)a((@LFmjO2#Qk#
z)FVh|@m;1Mxn$)JfE)+d#eo0A*=Dg$m6UE*Fu!<M&XO^MQB^|Q!M=#!xq9Z>qpc3c
z(g(rq{aP1kd?EE(Lyd7)$zOw)hJHd)XTjJwZx*bsloRKeWe4;(=cx8XJ?b~UvV5&r
z+7lPGlAB~Z_h0sTOp1QLhNRXOy1vKMR52tz)EmL&vQCJ>L@d@Th;7*cydL~FOF$`S
zi58GoA<?VbIwIwz%RU|I&sumHW|Zalk}+?j@0ky6^H|pZXty{T2S%6#@8n$#QfrC2
z>uPQ_w!-QLD(4J{)rENAFPOr8N0)x{5?;6LA1V{%DEJM5t;7Cn=^wd)#jxW5t~Q~4
zkkU^|Yv-EZ^TCF2ejQvExA7<_`!|C^s$ZrS9;+t7;5d<o7X{4}H#lFzjeZpMHWgNn
zguQCcUjZausLh(*fTH`j7t9Pt>f4oDZlXb)xAj+7I_kbm860eG%^;1pj~cqp0g|h%
zyu_150i@1;UZDf<qf-&VyA^X7tOa)miNh<X<qlenQMz{{=YtRm7ob5B=0-)gPry*P
zd3kE@mRo%j0d}f^+QbY}LrV4F463W3{^L!KD9?jcBzfJ^Qd}%w%}xW`=2ud6!&aNd
zC$(F@Vcx@Z)}GWwQ<dWp5l5LFL(Qo_1)QvS0LS&CYXmm*&i|DOZM&pnI=4!>Gyn(|
zLVkg5M9A5meAUqM|DL8I_M|IyQ=1_RVNloz_Du)Y3sWgHpri_Fx02t%KYotw96WjQ
z-Y?gs8NyCy(OVhP8-{xScO|v!^lrl%ev3+IL4;myVf&iCY?IMD^;JNPy&;5|`Y(xo
zfxX<9E`(14VzV5LW}(u*FiJ<1Fm&TPhj8%Q<p5E#D@G&5IHORCl4n1?>FGL}yVW6}
zW*m?d9K$@6OR0$NuTNVBfDe9Ugss&#oHdxP<OOb(<vtt5iUn<~Qje+6>*P#_YzD9P
z4fg)xxNI2C*4_gEyb`x1h4+_J+}J{al_f&!E0DlK$pW*7`3JLrDT}iB)Widd?SiZ3
z`pG2rrqApJUxKWD#e|zs`LY4bzgz2Q`VdG{YMOn{r>%nxW!^NZd3%?II>l5ekgroC
z?*|GE|8Aj-ko7&baqW5j-`BTb{5(0Hw>zhS@`oe)(01NdkaSWIvi)P|-mhiN3`k9A
zpvJ-~aN)?Tao<14n~S2ikiA!z(9(5eIP&Mfc7A2m)GCVm*p00&0GBD3BJHHVJ;xiU
zx!JyR|8Z-!k0lghI;8clo~$`r`U1{I#xaCHDYa)w<KXbyn6aYnmaumKOH$GypczZ<
z0U`)jd$Iu@G4q1|gp}VWgcAF6AiAb&%?T8tTqJD8*to{Jn$dv8NF@NE^Z^;@8jLL*
z>011BV&Ay&xEzn%zDkFL@s>l7s3FyY@dTY61|Wx1nj&P?Pcv-Vy1FjUAZhKl-=ak(
zxZDisXu2e2to-HSDwc!y^u6kf1WK)KHmGg~OAbuuw_3;`!<1c7wD-gt_9|FL1CaI%
zr*l~KKKD;Rz2r=Xc`lLiFR}X*Q`X%62IL#Zl5E5MNsiY+F}@a_%8{1UXT@p(;=2gJ
zs8Wtjv+H0}AFFJ6UG}^E{Z)4h-QevL=_2vjEff0Q7BSPs9Hoq3K~LBwQ|>YvhBwsU
zmhKwDCaMebA58pVqgsubzL$QoF-Y^YI%BySD{p~e-;i$LhWuWKoJ)eUPq;3{U0IRA
zi9`}h8k%h9$MQejlIRsRAd;(J^OguOP|OTTbbc(YQcds@+R%n2iA9|-knwY}@B_(v
zXpt!#g-q{WvVFT-vw%J;#PUADQewKYiZawel4}pfs!My8esz}I;O0U>$nKm<S+d{t
zlWUWk0>f(6QZ;nKpuEBEdB*I3uX1C5?nZwuqxbI@`NI(fV-n-oxH8fJJm7Vs7E|Cc
z<3io&PwtUh4dnE-9X@{i3`qjH%3m7V(htnZ%ICL<1`Pz%yEi*ru;67*L(r+sto+yC
z>=zg2lTH07H|Jl9Pr9@Z_|XYxw$f#OalDc7y|IyR%F{hE%Hp$td_>1wqWa2~1@X_b
z%ps5Z&cjrnjo^xg^h8n)+BP71jGx5@pI?>Me1htuD!tV(b(>!P<2JyW3E>g~xX$VC
z>Wzt*HBH5>**LX-Jw7@>9U=tRHKeBxV!vPB0n}!(7O~o<cB8yKG#o?p{)$^33D)CY
zf-ktsRvW~*t-Z(ZlW}dqn=v|hKE~UnjWTP0F_MAeuB<6FAj6KCk=2wzlKaLIp;CfO
z(d;qJuC`}vlhCdLRdFroDc~lXUKgqzLYD$6t;;8HB5)PljN1EQ*n-Q$f!7TWPCO4J
zzhx@Omck#6WTy^xwYAIq$Pu5472mOfJ}PwcrD3$JOQrd6I~^&xOTY<Jj&mORz117w
zCGvSv*Aja}EnpKvSR%()13JY6)z}-*)+UyxXktu0dzR4nIyYesjFHW#my1u6fMh^d
zos{!LU93aR?`3v{>QPM{FjDxBratzm;RFocFYuq$5H=S;(l5dWYs3Dt1j=tZs}qxV
zD%F2l)vqBWDZSi2VI!&`%M0<{-R<D&{iU!IBHoy`36)nVvjs!)Jl1un+c^N4V6G`J
zpQe^NR<dtA{w~-g1s85KuGW3AygLaYC;QWeimH5ls*>BoprCcYNaTrzg`KQqdKYFi
z<Wf9gTh>MSLJ+CA%q>T@&!*aT^#%<pJX<#CG`K$q*tzzf7U;mD>LY7!JaaMk@v^LN
z3sBMmoM^7gYLr}<r5~bpEEvdpc>mG+CffaYZ8<Hxu6o428GCBC(}SMTZ3P`xmRQ7+
z_XNjr0ZF5K(#3p>X=WPN#Uw%eTs=2<pCCom$w{&v<VF+(z<LM}wkk^=3`G$+T!(J0
z_AeJSu#?$4f>3K|lMC$X!s}0%bEzZV0pu$}y~06`VAWfvK#wN}dH2>f=AhLSQGX8=
z&Ryd8Y3&yW;S7U9+SgOxlW-t49ziO;oT^CKHJk{r&fiZLUo7%F8ldtRWL8y=D(k&0
zw}4yuxNr3Ww9_=Cu+0801cBNJKbo0;ebirH$U|Vir*K)K+}lEBO-E0|Q0+aglC6kB
zi>02^wm4n$;@?BT>%*fk*Pe0gd+0+6&6<Jg5TO)Q8%#v=?AKx2PDBm0Ou!PhSfX~z
zWzTFLX95l4oPJjN$+5S`hC^=J*&B!zFwLtugHU&0hiF!*v{TV?ODx~r4p>CgeA!I;
zv5xuvk*{0E&L7p#(Idn>)GJXRq33-Dd=y5Gj(&w$zqID;Fwm1acQ6+oDEmOKNkwL*
z1wh*C<a!5{m_ix}ct@RMv6zSfkJVRzRk+@BQ_0yZ-MuX|C3P6ne%;_uRBk`HY2qQe
z*CLSkJy?i(*;<tB?(45Ul=p>ZzK-nahsC3Qc&znv1<du8YN;w4V``dtgg%uze0oq3
zK7)Rx664etDC@tlSM~uD6MI6|2Tv}n`3W7D^Qso1nu>%3o03^=B~o%Dq`XcHN)ub_
z%uaqIstL>bJo`&h8-^wKYihO2dADT*8rWO!XqA{`h*mDsHO{;gT2ZRrDg6&r@V|(_
z_SVzv<!PS{8^M}_RMNc%lsvjcnvtzHP~QN_XMoh!SIcMk$RYV+)6#~rK4(l<YSsno
z)CHbAM4<kiSBF|Ea<X8mblB7oY<>dxsJ5{*GNYU+aC_3dMA$~pR5K7RWnZ$@-(aKq
zavg3>Pc3Ed=l_5|&jzZ|Rli|9Z_Y&El;1pj5e9&j+p20+#GyS_)vu#47;u#QUcYd*
zMOxJY=A?9MV19LFM^N>c$|A&bMrn1ueAu>sEGd=Z^0aLJK;7swQYU#w7^E{kMC}Cy
z>yVUHlKhI&T!r;G*F4XQvzB9+MX);nP2ijpse`i6_>;yG*8dE;;&phqq2KrNr=n=v
zc&8hnn8?`pOl*vBA^rmE4d<!ZBrM4pXz(nsV;?#S5LRXzj6<B7GhYt=tZ})y@l!V>
zt^tYIkBPy*x8_v)=jS{79PQZm<@)g?pk*C!0Dl@Ee>iCPlCw0tJRdCBfo@K)H__Sg
z`v>qhFFHYQx#7d~p>uW#1dg@E#-(yCqMITiBhQ@rz7I#;O#25y90NMFZQVf|hdzvs
z7NDmq;gjdIr6Zkzyi80u+vysM@5LjKWXZc-GycVBu6OiO)mO00)i&^}M!OjPo=U21
zzWIqpXfBAh8SXIq35<e}@SBDViZ>9GIQKV?{GSh?41VlJ7H#n<vZ(4a&C>BvkQ^u9
zi!73RxX@cL5%#R!UP&%FxuP=_|L@|QdkT@Dg4*<|Y3RL3PDX@A{d2{ggFY7fA>rLc
zlT>9^aKP4ly6g0x*r4jDDvtU$#63{EXp2#a<^PufV&R3ZLVT4@JT|h=KD{jdGdUVd
za-|i)GS>T8GOMZ6!hu<<<eOFhP9`Xw5a|+Mg8@z)SJCxjq!+`1$nRA?<)-Fq3${jF
z*2$#Z>b2D1Tc6~-qe{G1O;L<jj3C;~_+OLAT%}r<snMS1G^cZzRIKHT5aB{$q?zML
zPMOD@sU0iqU%L$q`tvY#-jqN_sKyGMfn2QDYdUss@eLWQvHfN8Zg9PL2#RKJ9w2Mx
zCG9qx<ZxpD4hi?4b9th8te>Orz2KVU!n{DyU`#4&Be8g}8l-BAkX5p0r8pJutd@=;
zWE^0sip`>@Q?29pFTA*^_2Tf^9gScn75Nn@cJ=bJtB2$jIxnd5o>Du(eTr{2xz`Rz
zT|iU<gs|{8Dkm<b_WDP`d_a+O9N5Gi*EP7dRB9I_my&@gmyJ#yCd$j_1-7~ld&iB~
z_2h95N=`SpVJiSSQx=_^=anRqb9ZWHMma?demuL_*Uh5(KO=m5fLw^YRljx%ca^I*
zduFcB{LXIlfdF-vGtjv`)R@t^-^*5E+x%yJIg!SHgIyZ`DNa`5vnl+Y=kTWD;yF8!
z1=qmupy;6_mVh~xpk`Zbi;(Pt0#Vb!#!?DSg&<g5mq55#mUW%yY9YNCo&a=A!hms}
z=LngS(OXB_%L*9Zww&Qn*x=)<Cm6kmIFRw&xD&j$XQX<aGoQ}dao&$5c);L9hX(5_
zif!_HGc63mw7Z%{n1HL=;tM{h87EOxY?o|@lSOWf3Y4?&)$K6zBj%PMc8*3!y4wir
z5s9!s(|&!#e3(S3dly4B1d#B4@|<rrtoa41E4bEqcyJ$YRb+z;gmyP%RIQr8d5W5R
z)`XFo3@4kzu%x57kzl9T6P?W1KKKWYSy91i;RC)pVl-fyTQ>Sc3wbxg^YS*G^CTE9
z|4jBETdzJ7=$yqEXoMfA33&t7uDcXmJ4>q8(>N38%Knk-4@jj^nm4j(T+`su6m*Vs
zWm+ZH<O~G#Bf3ESSnXX(&a+j6P^sq#1qp6ZW<6R2q)WfwX|UA}wB|i9i#T@`EM)#`
zifjPnNR7P?Nj~&le)!pvzaxEK|8ZRgbZj48$ahxB5y7p++}_qMLP!wLDiX)!pqNbh
zaJ}}FQ<3c-RC04-ovg2n?J)V{QTjgN^kP%Nl*f06S6*e*V6iU4Ok?5stF^zkAP-?&
zi%fp)BHAxScjy!+50sdg+?sJl=^NLLZ!#x9st7uMO)?y*eFB%e)96PQE$Y%(2P`~!
zF`)04D#Bma=A+QNlWP;SD#olmgSUOPw<#kU-ZQ(_;PYjwE}maVHNa{mq<6C-f3a_q
zv?z=@NT%???Wk*`(eBM|zZ+b}GAri6cBD}^)c@LZ@2fW|KGIG_x*S+QXS4b8yfxET
zjZ3Z7?Be=s>fcf>&drw-4n*Dg3gVU)ICqx>8)@;f{G>q);FC6<>!G++jcIYOhfn^9
z!RzycbU83FDCZD-i)#Q;+J8;{po`%E`AP}mq%wZZ<K_n7tD12R`)_XC^QHkux=<r~
z{aRI3&TVSo+D@R_SX%n=7&&NcHphiP^7{fHV7J=t-R~O(ftn+Lt%w@c7xKEn+uQa|
zvmGs|qrM<dTS08g7JwsCVR?*=XZQld?jrY2X%xsjPUcZ3?S2CKg)jB1grT%)vHjGR
zo;48#f64mnFo-#&Vy7^KFk3t7q`&+i*<_>Z1lkOcMch51<mPSRhurj>>!k7?H#VPr
z(owwf6_CFH)<)Ls*GBbQ%!@|DITTMjmqlP)j?cDs_>u|(HmjBMdx0objpU!*^6A#3
zU|rdiE#Zlv#y$gI-_PJp=0RUn2YvE8@5_N6pqA)!G9+w=Av}?z*(Uh)Y3A(mOg?O_
zmy>QsB>Wuw-0vfRueDsWZ*l(>_*V+ytK#QJC0&+QoSWqx5lbc7p}S?W=R7Amw}BlQ
z&|hf_%@7ds^{;_B^@efHKhXzz;q1kS;Lknj9;TTKHnkD*oW5Vx(RI|sTVjdLCc1Vd
z44kjq^}v)dY1WChO<8-V8~n*pR6}OTQ=q053;_V5t4EuK;NOi!)#hE5_>ziKqZ%@T
z)_tj7`CwFDMsgMCk~r7W9gHQS9)8Pt@RRmlSb0=qQjF_>JU`&NGs0y<P`Dm34<TY8
z8UEU-vH2F26IvVCs{i42y)vQ*^ZshD$A$*#1Fm=bEc$3oZsDyk?!nxqH|<c;IrItW
zoje>0?=O=;t08LQh7i!XVutE&la49Jt(r-7ox3bqDb-`Y;^Ez`PT0@0cQ+QtY0E+P
z8zrtNkf+@ufo`RG69%7Kz<Cs#A!`P6?Iw5kHU9ccJzi6!h>>-p)wxWw#elsX9>OI6
zCdPTW12B9MFRaO=`hpl+e1~1<?5Ym;*|tMqcWKs*%B;UZ39qRi0x2rbxy>v>Pqea*
zi6mm}L;|MLzuN^OLzrQWwX1BS&gqArkv7sQPiih&k2A}zCe54B`Dk`Z!<czSIiY?1
zCvM*4Cy?xPi*SDo?TNnip$fCC(1Api#C~6{wiD-^v*qAVuQtc5T_Ra9UFW+tCA#yg
z5$tnUr6b*--RO%E(X$A>wUq89<zZV3@6m%%sHVSvlUucbr;zxSFXPmtpe2zzU?ZuU
zMN?LH<i5StI-Ag`cb0sH=Hf#oa|(Yv&l_2=C0zecS`d(2{)jDGSsh@)5JG(mIKsii
zgq&ypK(C&1_<lI7kn)4eFKrI1Qj)w=-Zzzl`KejcAtx(CvIYS+J+m<tBknFNZ8Swx
z=k^zv?{;hC(<dGyKQ6{v4`r3r4K99B@r8JUE(WcT!Pq%q-o!t^(&u{*y}CKsZ(=ob
zLE{XxD^Y!<?9Gh#>z${`1Mk&d&&Fv=*0+)0LL8TXA#B@n<ubqE?R_<6@nTL_Sal6?
z@f~2A1P>ZAeS8?Y#u(`LDZwtK<vs%D<r(dB6tl8`NTj5!Rs<=B<j<C>CHqeWXL6mB
z2n@*m*7>L5a7~Y$A!81_vtJxT;Ie}3d3bl<>wU2BG-Ab1u6lfRO5!!~)FO70Acb`H
zC`<N@(PPmE6t<vI67`e6-uKYd>7VCkwmE@kl+_TW$BbJvG^X#-+^n24vysUI0@O81
z>`VOtGsobzR-vx=ZY{2Pl#U27L1r{o3<T!vjU(ur0}8?FYyCZ>BI3x*lKQ}&^g3qz
z(~mRdS3I6M?v4C1I#M|H`C~vDirpjo1d$Q5>8K^DDPy5Ovi6GClu<35ma^pD`XHcU
z(n$&N71~pFCb=DpibZ1;XNP9@50Uo{f0F4tR%TW6Zz`1M#U1wx5B#ryuJiXLQd~=x
z7o2WUMN2;F_K4p(9v%`OavATeOP+C|%~;AxeQnewVe;5#!hql0_Al_QE(~&gLbB_v
zIO6}n!F$p5&#pOQ{q315K2t^RCX?qSATueHwf*WnR8lcaAhlAv-VXEt#Q59B)2<cc
z1<Nn|A{uQ%I+8L=_Gop_Z+O{rkZaT@YAy!SFjDvWsJ>*0qZTlB<YGpOkS$4G%-m<r
ze!(5gJmrQZZRxnVfAQUmG46nn&&&S!E2?sBN5d3aZ@6=8)no|O5Z43<_9ry#^q7rC
zeREpS@%Mr`Im+4}-+rM^N~;iv!Ar$K{yvN<wa|SBBM~i}h^b(sSnp=ebr31dK%&~c
zMxQ4U))~|HR`K5Cx~!JXC%^0P3)6oQLbHQpKi=`NQH{#y3R`YJ1jxh=olIQ+l~qbx
zR@Yksr}6w-;O$mV9XIs$s>pINehcl4s3THr-09pqbE|DD%JIB|nMS26yLV!$gv`Qs
z_P3?8!0o`@J3?<H<KbOeF4oRd4ZOIlmu#!4kVwVuKm4ILR&1VAHQn{GvNk0D52Nhg
z07rObxKvRsrSdX4-+wk((dy1pwRhr>3R`T;&Nu$&eosxv0WZJ14p~_JRWUDU{Y{Lg
zNcShO@+h-L4W1h33>eDHsTSEjK}p$RP>IFh?N!)Y0b+X7>W|g?gNhqZy4#*Ydxk!C
zls$;=Z^k&fN|a8=2=Az?*~Hq2D%>B!fa*<&#sEOMMXn5!GcBqXF8*+7t$a`m5O-F|
z!Ih^k37OSVf82R1dM?JHlc}0w&YtteH*$1<gFMN}ZFQIRh%Zn{hSciVvQF?`qh9VU
z>tD;M?8{FN4Xc_((}{qO_AN+TT&J&n6NY!XA}luo=cA}0h442V|Jq9TV7m@^e&52H
zw?$<|OuwqQZKcG)Tf;8%9zWwg_uu=S)5{u6-V>CIN;roE>Qd<J)y7r2a+-dBP%dy0
zbfBR~cZ?A7DlGOq>#YRunmt?5&IwSg+J%a=yv7W^`Qg)R`9VVMc*UBLtzar9s&G2&
zbs?=5)h6%Wn!AU-_TC(6HJYon#lm*(0bN_<{l%EVmKp<vGP_urS0F_+*$*Dd?Qu@9
zN~-;mA|SWD>*lJuQ~BBl5ZtjUa{n)Mz6y|+bBJb;2v*dX_-M_fh{xva;npd=CmiP8
ze~7L2`2AXgf$0@#qgnLFV&2nEw2OGISUmR<xUHmX{zv~z93-lAvm$ydFC{Sly#?{Y
z*W;=r&!*r--NzsV2R(_D`7~R4f_Lf)1*?mjsJQ$vb)=9m$kaZBH9`I$&+grj-0c5x
z0bzLeQ2)0?oOZoNC|2v+fK%ugU>xvND}{4$bv%=R>ZYns+5W?$<NE3ajM+ezzzN2B
z`bkD?Tw5{MmF;|rQhTc>!!31s708_Y^3RJl=Jgjs*_9Z|7#ZC=_Pn>Orv<-^TLQZu
zbY+nnLi?_-s#V3>s8q$TPqy(pk)H_od)`ci-%+~ZJFx-ry<pvVLGXQAUe@p2P2||E
zKa?a3j<M{w)zAX-xm6eAPeDM;$uP7#KftXWfXnm&1g|K-->gF|bv94R`Ew>7c}J3$
z>ln1B@q*I(&o$K$4{L#2uYh(2KK$2I*cPVuI%~4~*}@_dZ)%6V$^uV{ghBr%NO*Q)
zAL!-LKUT0Nn2g$X_t2|H<99@MhMbda+PEGp9ze7j7Npz;zjG1u>+QkXf{`XnO<v(L
zZK>n+V2@b<7}=oh{ty!im=zJ0e6i@D{;V>9j0>R_>p<%F!K`=)^eo&i=)|mtGjt-D
zEz|af()I${dF(?S#>_?}WPkZ?L|2;97bTrfi;VH#XIb5BoK5^Z5{y*gF>Oy#y)#N4
zi&n*}YmOV|K>|}~*X+Tpl2+)uN|UCOU-@J<fpG?c+#LFWd{H8)7VQ0b_(>(s5=)8z
zOO05kdcI<TONH8-02vq-YZ)<DN7Byyw*+<1cW1wH`M`kt57aj&GRme0J6z|*#V-bc
z;+-^C`r!9IAGC2<h;{0CNGZD;*Npb7!%t}%TUNXCnb0MZTdaR?14<9%?2eL*sVQN&
zM)hd))crl-<S)fE>#<qX-S*r7VmPvmYaQ$;_<`_vz~)?p#*cF(tO&l;DULk&p>HIq
zf26aEWJ8_lK6IsK_(Uyoc>1gR^pj;O4QW%_W1?&30~n3&-=fjrx_v%=2O}eReM8Nb
zf?I>KdEmX}xqYlvt#2I{YHXh(|Mm!ISTr`R9k1J52f2L58<&%uZtSeenjmL@rJql=
zQ4%>hzJIvRbPN#3gT}*;zVpiaDtLqkdey1HFs)yv#T^y>k%|^!`*rkb)DrK0`^i{}
zMM@c-ttiIJAn?MaZ-Kk;-?j}yyhnEh>n}r7y+0}6L5$wP`{xd0Jx0}y^bOT5<lk$s
z6>?eQyA7&lxE_A=Z{&9v%c&f=y&v@&tLBa=dV9Aj&_Gt#t~B*H?`y0gLc-;B4kPEy
z@Ru2aY{$%+&nnkXk%#9Kg4JP|%<aY^A%SLOpSBFC%WJ>C^~h9Wky>15<PV%mS)W@@
zXPw^NVcoX|Q=MlTXE7dAj7W%%%M+ic=hqdNe^p4=rN)6gS}^AP3}@xlLKLhbJk7~~
zxrS{CJm66yLhNT{H^*n&dZv!D0plTLzKp1{&~9<{)X<HJW>k|<y5G;kUfsh_%?j85
zJ<lQ><z%cWh(WN&fJCkXuD1?Q{nf(F!WUBSa$N$$Mg53@)n6SQV)FZP411SwVO#HV
zUryyl;)|Wfz;EJNN>xpu^3UD>-|WbTPM+)y#vuarCmG+5Gv`V>g7?~&t=@`Ae>v0)
z*r-(T2$?5<J#uK29@J40ETuk~MkvYHT-vWQq<RxWDc0hiA9~e*Clvsw%#EWqQW$l(
zGD5~p#P|_k;)|g2An@@4$v)|RpJPX~cqWnb{5iq*FP^>(S~r&d#n}i#y|DUTQD3Vf
z{K)MEJ+R>qsUSIM!D%RKxr~t7|5ZTOPcTyL>`9R&jbO}_zeg_9i3n!3i`D*$R--R?
zim1w}c?^y(`RMz%&~^dgT@!ELw-tZ~D<JJwJ6T8xx9sctg7r=($EpA~c7#WtV$UD{
zASf&(<?B$t6@A|Ge5gBnsB20~*Ui;*2FRKy>(crAC_9cGyAOL(fjE->2H&fx(Yi2p
z^LpyB8{Y=<td>oKE?PI?8~Dn1gd{#G?5L5wYQt)Kt=dhLvTBn9G?|^Vf!~}*b9AiS
zoTXEHGl5}n=krXE)9oxb-!be-<u~tXJ<A<^Swzv<OVV^uaLKEwiJX8*4G)RhCPp$m
z;U7Qx^IRP|gtk*xJ4*Df=Ssu;Wq=ehddj#1*l55|y2Gg6I~U!573>CDlPc)SL3+2B
zsRcHFM!^imU9eh=78TvQ8&3jS0|^d*slPZY7a&6F?{GcYhITNvrC_c@*MYJlk>=6C
zKyGsj5EP^{-foi^kELiQR<fS=sU?)-eUI91eBXAb?M?twyIYHUENEgEMsWByAzz`r
zKN85q%UUJ&!->?(&^2mTCtRj*3vItGFU#8uJMF!vR_#4!F7o4u*Y&7iw3^dMK8V(i
z;OgYpR=?-9!>v_Q!l0Lh!?6t+5`K%gjDMgnKIp$H2bh~+&_EKUZr&*#ZN1P@Ln%_^
z8@$xPpjVXYC>&aauEq6Z7e7g+3IHh7ooDF_8^U~aJB7;iG8)=QJ7-`9^~vw^RBHEU
z?7UszG8i!-wdVM8xy3`P?)}<J=!;dGsI^2@N%x9LNo6k@D=<U*v={^`RGz>033|`R
z*M0ANweWn-AJ(QC-M4sUj?&zWWu@=@Q858VpM<=dHy{U(vgox`qB|{L3<#(4)4<W(
z_H_IR<KoK$^l?{AMY*$;qt@2D+!wEugHzAV`Ud?AN|e+o9P$V7-c|$^dMJUm@OghJ
z;~h<0Dm6gpRDGx9{9of|pF1{91=uu;fTuX@?wr+_Nbt2@_f_Vc7gd*6N*I20E{uCx
z==@O|9X(vk!w?e&5cp2tI~+%8DV7Uh$Jjg8?>MmQABY4hF(96E8GdtEBTbiL=$t<i
zp6_=mw&0nbxD;#Y$U$U&`!~hD(XxmAQ|#!sjzMcxleG>_!X%$SMIp^V02WNmp}3No
zWJia|nB;dISzR6~av<(|uqZ#WuMDzayFc)q!J1otg`i79y?C{Qp}k=c&u>sDs$D}}
zJpHGk%7&^&O4N9-1-=k`ZYLgRnYfRj!6H^r3%C~mLL*V5NIOZf`1Wph7iIb1IE!Id
zmm#tWaRxDDV!mQmY6-CR?!Q_;2>1uZUP})YObEkt4(O9-o-!Ba^4bT%U4)gFt4OlD
zgbMox^arGx@}y74TkzTJ9g9gA=;PY>x0$WBNo%;xpT0eb!PqD|k;k4EFizQZR>s1g
zDEeMP1d&6uZuM2!We-*xX9TuI07dLJ20U|U5p44SLB<#5T}xL_MERw{I{|T=j@x8E
zQ0(&nzc6>W?L*&u=c~iKvZm@jqcUUV2QzwV(0OBgh--NNsnPjVa!a@vwA$_+RfhmY
z<pAv!hVL60D4)>+8{|==G5%S8bLu5(iI3k>DG$CXqN}t2|G9VM`9zM48ZpTEAg)lY
z#2H}fKKfFEm6_9lZf#&Jv}mhCTN57@Cv5Flu^4ROEB)}#yiIXct&S~b)urS0!a@@r
z-8vG$29Ud7MM{8r;4u_bx>mqcLaPzzvLy{)SYyg{L*82ve?T3Pc+9Btt<gcG$pEDo
zm8?GWkcMa*P%63%<|ok1@P+gxGtHAy$XE?;i`mNhdePnvrp>Y8%zSMDK}|K);bWyk
zU=?_J2`Ax=fUc+-oqlfAyeOI*?EmG-G_xhKNF-#Ca1)$KeKp3Z(_2wC!`F0>;Nia>
zZjrz-Gq^+kw5)j?P^AfKNL~6H+8Jt2j5q56#C$!O@I^n3A^2pT?Em(CJTLjN^Ir#;
zGY(>0*S4CM>p|v+Za;$3{HyAF-hS>wVc_luN?2gI_`+1(o$0RD(|T^A-t0jCI>TZj
zwBQm&nWVASAdkTjo+AouAJ-#IzyhH8Ly>nyN_7>B?RC`@37D$Bp-qr<mkrL=uL9DG
zBF%s0&IId>AB|S4oKZ_km3eTOHPnU)srX&7@ldC`N-aMaaef_sA6QQb%zNi-ToA@1
z5JE=<?o5n$q*o_;SH?6eyzk4^i_i1ooQVav=ywWIsn_&f@!FDmLTnjCB9)MQeb3JR
zC@;!<%3#$}QtbzT;5Y(Qp+p|4Bq%#AG<}A$`&n`KSjDNnAaaVfEoIfzDcJX)B7kmq
zbBef}y2@#MyZUgjgqc3yyleCj#2cN)QL;^?()gd}cKV7M!^*_KS9gg^so`*N)fcZM
z#u?3;l~jz`5>r(v!N`Dymbz%^L7og46W&l$b|KEqT4bJ;MiHB%b~Qc%ybW*r)Eajb
zTH`QDAB#EEl&QXD@};*|)*Y!hjZnj?UtjFWF?p!Qz<+NWU<qnGl)H#O{_5Q1tGiPe
z4`D--?XWCl_2k70UlGr#f<-&S_Ej-}yU?Jt4tom)Cin&Kla93v@FgFkKf3>|?R?;i
zfNk|f2!6~1z?AVKCiq~ucMIp$)?Uytuh@DNz;xLH+pDq!&_=X-K8A&$#wg2~YxkQ_
zyd8SfyDm-(`e2ATE<Ci>p|N;hARxCk>033l<L)Yu;0$Vc%@*98n>t}|;J(Hr7vm5d
zz&)1R8ucPFT*owBuR+^<6*u}(3{6;Y&?S7qaIl4z=Y5{4GEDE9j2>R$J`DUgFeJz`
zR<Z@2eY6WLoj-sMNFpU&Crq5t_{q<?hX`U9J`~J)YzTJ=+h!Ky)iYjIM)Xsg!+SDI
zlDihTOV3^WMH9+bvS$`qVc(8Lc_mwP`vhjF$0}&(F<-6)G`|nydbHhO^q_YjF-Qd#
z+2ptGPS9+Qp*i>kt$ps<F+=IIl=C?{RF@|Q1rb&;bL9JCdu-=_d!O1JcmW8Vn8Z)?
zO}$e!q@Jjc=bnoB>wJYzpJu%OKM*o=Ax=X>7@5Y|DTywm1?RP>8oIyWD&IjoK$0q-
z>|@=ZT24P^ty|cffkWN_(Vc&rnAWXN0%HID2ZB6h5Hv;CwPAMiS)e6NsQnNIK|3Fn
zfzL(wub1UggO)qx-s|`qez%vD4owekV4%&-fo^#37=W+Oy0;N$%s6N*NPf>r_vu1H
zyEwXa7#<K%pI0yLIHu=HHid!H0q9J&8S8C8BB*`uaH&ya=bb&Bv<v7KmHNPA)DV)F
z8mH+F81D+KiRg1L0jox^=;22mEUN+xK|-j{J|20Al#y@L_I}iwYJ%<@KJDx6^z^Fs
z`Ep$J+k49{AsMAKx)ZhwIYqq>Nx<1ox}D0ad_dmm3oInqS87gR76xz$ea-P7?kxQS
zT@Tx>z*T4)$ylxhOy#BXcdUz5{&4#y*Rn@zp8S?~b)pT-fnyPMbI>-&hR#33HRa>H
z(!n(wx+~yY08sl~1+%O;K1ttp^4_1W+4Dd(r3X_-F3U{#U6*j8F&N<;5~m;X{^^5`
zJhIXSjax5gPxTQ)I>VAnI+620f@p-fuhg40{8lO@iT{bx+>-UrxPi`TrFC?6829|#
zwqM&6eiojBYme*d={R6g<uqNSH8S$eaazjR;tGF_s;`VT{VymYmk~1PTP(yft*)t8
z$@u8oFthdtF!!qkEv9~9E$+NlpSc#;<U+|7fcq*J$soZ`vEyFcEhc|Eb`=d<r*Rr|
z@gJvqDJKte0`Y}4oxt#}(<Y^PB?IPRTeNS6?rpnro^JoHYQtw(Mm-PhrR;nW64QE!
z9T=(}k|%Q|Y!S@nu@!b=T%SRcpAwg<$fR8YX>Un@K?*L;n^0jFs+-KIg@ngPL1$wH
z`UC4O?juL-Aa!ov11MhZ(5s)xUp#7T@n|$Vg=F`Wo;0G|eP7#b_L?d3ofWlsvY55J
z{5cZ>79Vr`j;P7}TE;am!J40O6^sD&7J1CPT=pgO+R)#yKFNqwW%xW47OPkJ`^(`i
zfB4Q*lTNV!Q-5s$Q>1)_7&|-WrFOFBj5=p<rV3rs?(%rda!teWjKI#Sk2&#sw*Mf$
zITpOIcCIyKtg78<xVP;OooTtOsH#X3rA>n~0`ly5qtwNcQPJ6dAc>0K1109HE2Dff
zgzdE}&G)+oIgOKI(0N??Syg;?0eOri<YBbo`FERRCwprYZ29zmU$!&HB-ntBt9p>B
zA<l^5LjC_Y^?Acb9jkPQoSjEL@{X>D7$<N<oH?x<yAc5N73_>HUEU|MAzUBwd;~zn
zuF2Ft-1fTZ;+Tg0IR}gcp+w{Nf(LjYu5m40S@;dA!AgQ!6fp+Q>48ENw2XS|f=esO
zjXY)f;;hkc4I}z#g{(-&eOA3;(Dr*}I=&nHjfVi*R=LVT!yb-(ekP=%&);Z5VLPAo
zIE7`gZ+60RP-$cQvwKfGJhOC+@+}YTZ}H>)?vD8MnwXD)4Zr`EO<aHf<44RL2+J6}
z<H8AQe|9Cv?e@ih(PZx*4&WwXGy~k3-^TbE;NPD1>XFU)3>IXJK7knd2l6b)bH1h?
zfBL}<jZV);I}AV7_4j<-niinbW}gd-E&CvTm<B3xu=_<WeY2NhhY7BHosmSwUIwKG
z*IJ^;R%MfAmtlVqOjqHdcX)No+=JvMhszdDWRMv3)9>?f!B<8*+&24ebI1K9m46^p
zF>W_;8_>K1ciH>3={>J0*ogh{WK}T(E4tC}w5vk{*t&4A3M|bS;Y<kzwj3udo2WiD
zdZ|+O*s1KLV4lgN(NZbtNSzzo!p(Xu@ve?bQo6ArfW7c4m;gYOMWG!<UA}wr1pDtP
zavJ$+&a|KU@8yZHTc2oO9K?X-Mv$_kDlU#gJiqKyDNLKgNuSnM+fgF5#<#NQ8jWGl
zvs}u{!V!Ls8o%$blF_p&$S^ju@ZD%5*Kg3aw~M*>e_|+oh4h@=bo<>}M(tnre_pjf
zVLCSAex%a>XzlTlDN9<hoCZS4yOUo_8yg-da+Q|>q@g})A^ONs(UM!js*EW1WvSlO
zg@n`_cTs_GO<nkM2LM5lzr__0hX5m-+Oa~Bp278bZ_O}}WsQ{2nGJcuJhZ!IKIM*|
zjW{)SU^(j0mwA&BH|OizpOzbzxp+_UqB{HKYClp(4mDSGVbm#4LPdUdS-nu4FMSSA
z<JhF39_v%T9Vp9&PHON8{Ta*sFus|LZ+9Fn=vbsP?Mm{&j=Tzt3;-W6Bfl1HS38NE
zu7A$DxYp`t{n+mGhFVu3_Kn}ECtwo;FsVcC$Q#0uUK932w!z%7ksn%IH~xQZy}5BC
zm*zmUaaW0oj@8`a4K_EB1A|W}368e$=2%%AI<@RQ;Zes|ySn2ah!`^P3arXleR+yr
zZ?5Uv>jPff5P-uzL~fviUGbEOS&dZy%1yZ%GK5ce!0B9b7jVmc9sAnPwW?q=U4qIc
zv%ToNHYp4?UWz8ce>5h9WNh%4#<_M6;Q@C9w2kL9Nw{h9Z+FEop8c)<jz#nHr*`46
z%|Gt!N_9=7bGAoGSPn`mNdZxab<amd-hSqzxrGXLe&-IZKp9VFt9O#m*39n_WXJ$Y
zJ+K<)+9vF4f2siQsfhko<M(CiE5y4ogvd!!qlp3E_~bspJDX-*!gfjY>KdCIHSI<%
zB!zrW30Ql{p8vkRrE{8dVSga_B4{hdF-TO$>he$Mrg#l;SvA0)SKoY;P8%{DU1)Sr
za+f+-<lC^u2G?}(;TSb?;GC)5nVll6@L_#P>S#~5Z4gO5cQyc&E0i&gR}XnH*UYwl
z%YRSasO$QyO<({1p1p<}n6%3k0e|n?$#%=w+$J@gatg2iskf(myB$14B&v*NUK@A+
zp8xcm;1P+|^S)pUjrp)W1#sLkj7<F{D=RFS714CJY;J1)#)p@=R;Ga3@U;f+%u?b^
zf60=hEGzg_qWTs{{#8fOwQ4|!1f5nY&s3J0H&g!mMZ}zNOt?WOSRd^vocVLa+$B0V
zD4}}aJ||<#m%N77&W2X>uzx*<n0rYYPI-ABpq+N<Uy^aXZfno`%6>>j8)Gft@UmP;
zu#IlGMpxSw62=uH4L^tc@D4*&R>@~@f=P!1-gbQKl0m6I!xHb&=+uSRuIha`&4q<J
z5YL6zdGapCrHtQ97dGtq^YYO?5cIFdINT_pUxuWH5<9Dx{A*<H(O%klsHmiI#J1eo
z-Y$g;ykg^qf~imTI_X~B$MQHxWnwd9bNW1*Z|GbpFOeD<^RA+v?`e4v2OT1ewVY8Y
zp}J;ey`5ZwtuJGRZJVv>E0p<wt)6L4@W?}C{INOfKW}$zY_JJFMDAJfXO!d&1Vt6Q
z^@7PE(ZsK}buJ0fPiQ5j(k#^f*D3$?&DK9Wt4<MX;d9hCmDXNfRSW^{tf_xk421Fo
z**1QyMIyl#Rmg1G=%T1J2X#=B_QKi1=Qy?+Kj>{NpUmu(T>)?;=n!@hFA_u|@l|?w
zwfg53-pbWzH}X}4ZLET`Ni?UuKWWrMLO(oaK6>s>_c)^U><dcCUzCxds_TtX>p4F_
z3SNhCk3K%soJ0`)i@cajY+M~(Hf8tTD9Sb40SK<Hw+o!v6JC6CXlU~K>N%Q#8bP0h
z=4T7lJ$zK+gIk!2=*71}`h_7zB_6GxOdpo>Vp;=r(Q0pbZsswrJf8o=qj+;P#rR=`
zy=!sUwntG-Bv6)P$$dtF1tA;A<}Pi6&hAH{-i&TA^14r-UT#jD*Y9=!odDW*sfweI
z{f=Hg!^?lgCMLmm;pC8CSD&yBS@+w4G}Lbv9*a*iC*C>@d$2leXmjc3{b!TXbxE6b
zB4skcIUk?<mD+UMU{-#slWHhrfwH87x3|v9eUYE!X@jpWOpBjhW!%^oEgfBZo|pJ3
zZ#MNL0OVOp-~TfxuBW~hHW~6RxaL=Iz@pKn`@S5KBvZtxZ(CFalR98PLIbX}p$*Rl
zYVSUqJOz2&U9iJZe3Qx}2k$c*zW8o8!DgW)q6zL{_^i4=q^<+3!5}H6yPd;*zacQy
z&eG2KDxYO5w}{<zof|5Y^%jFpa!{vHj7NIn_fc?{&64ae<x9Q}SfBs-te&Y76?&Wi
z9bSk$BdcPs(rd<8Y2(ZDj6bqc=LZ+HUirE`r1@rZpI1!}EbR1^SvouYIDg8LoRx*e
zKHJ;L?u9k(c{0g5S^#sZ9=PK2J34<fdAexZy`=gO*b~B2QL`%3UV4Zi{8)6IQeQu_
zZV?6T5XnWG_WVHH`?Sr0-yokcBY5O+GHY89OK4QI_v^ooHR>p<AgtPQrh+Ek(B%6}
z?rahk17ka2@7R4qq<h4vHXQ+;wqOBjq}yAq?LYe8*!eG>KxS;@!7ktQu2D;C+z3eX
zC)U4f)dHszKbBTjv}nEnmNu)>e)Jgg)SQx_Bo=|0v)ZgzHu)7g%WRI%=mLw(x(uXO
zN{>UwFa{O&uOI)P*X>cB^$%-@ya+efUM{@>-`Mu~-dAo-ea;c1sdsYkgM;;pe?F>$
ztvQxuig<!zZ983>-#T)vU-JUUdc7$50YaEk>KlnMF+NRpspTn^J)^^4ccf=vo=pL@
zQZQLR;1b7^eYUrvaGDNJzD%8Ay1YuSuA$_~8C?Zsd8NdmN6^_R$<lk?MW!N4PBa3I
zFCp|ryJGs%n>n~Oa0Mhpg!%GPFNPt6HcJQnT{0X$wp-ofoSc2L(qyW)a!4V*58;%_
z31GU8W{V-Gx~G%WW3%6YnmdPMp0xA(Pqn7vru{}D#%jeNNhSJxVp{b%1u<~eZTyOa
zA$oK=YzxUFcyZ0Z-52{G68$02H&-DnD?F8hUKP;BX#sh8Bth3PMV64hDf8JmobuAb
zquSxcvYM0IMQ-C#Z}$%W+>2LnSsWc$E@ikfhI{X_uz<)JpD&WvBMJzd6b^I8@xQIB
zr_GY;etCzXS`rTL!w%V470K&pE6V5H8xl@cX|Bg49hP*0yC&$4P%fbgE>#yWr-Wh4
zFV{E=K)G7KfbPX36y=e0uiFQaag`?&|NE@cm5nq1&Qaptt|lJ&J3`z8+|!k><xcBF
zRP=5BN9P_%3}PD0Ig#?kphyxq!_%M0Whkcsyjz<M0)Z_D<sp0-DqI$wTwUW7+!s3w
zH>V%F`un9UZkYe)`S!`EKD9(V3*voQJVYk9XrewYG80R4yyFeDC4Z=k!i}B7c4I?4
z084;9TU6^l^~#1v%z@5}L(1s$%N}Eyg6<qCzm3E8B=lWStxC>+g&89Ew`ll(5>Qg3
z6J|#ghlCCs5PnziTv0o{3QO@J2xy*gsm}gv0|X%eEH!9tl4Vn$9VQ{~-YumX6Oa7i
zc+JAKV#B5F->f2#>b~S{Jn3<I$!EgpN4;>jyWcv_xMuvfD@Jm4G}60j()7205Il6Z
z?w|+=0?nm9XC_%0zvqY_2BH5dRN{1Db)>^J?zMiuu#O|hJP$CQ8B-t{Yf1;l*fT}D
z(hm;D&M1$7OtAPlyMU)A{Y<Nn?tdVc78?vI%9efpzh3%(|HHF7pUiQ(`k5LajK9eJ
zfXk5sH41>pT=MGLpBJHN<x(X9q0~@U6zlQ_D-mK~KQ7)2t)SF)(65JJ1U51^(<@zr
zS*x#$M|yhO9@JsA?7O?V%sgf$K<<52hY7guCMO;-ZTl+1dMg0gN9KY|lqVM*aqIBu
zi%R2#Kxpi2K~W;^sy!oAmVkY5M*m0AkBDG;-9L~?u;-&N;L-)75?@of!jqk;qymME
z8Uy&HqcXEaImK5Mth;e!W*T2EHQznT*#@rGktFxFq4`eTFIb$2$pK8gP65L!jJpXd
z3?L?WH~ohAcI#CAKC9po2Tlv(kEj$(wBbX*mkY#QAjmi=<N1xQzkiY5hjBmU*#Wpy
z*lT+`p%^UTS?266e)GwY1ZUc&|1$em%g2Wa)y=8p9=&f+&UEn9>92aZZEupFGI6=b
ze{6JuT+Af7st!B+AG*FXps8hRdjpDCP!UB1DK=D^A_7uE5f!8g7?3U?AcS)0CLxex
zLq&=ry+r8{0#cID5>!Bx7Ha6AB7_zYLO?*g-vrNj@B7|!zxlB>$!7M-WY6qbYd!0E
z!Zl@6^saeM1{iq%`-#Q1)u2+qrfN}qmx{DHJCdANpykE91z0FwALZn&=>b(p`Hh;j
z^}8$jgeey#=~*?n)jrZqf0EaL2fwBHfnt}$U534EnXiGfMa#CIG%u#(kaeElI8is?
zbe#)HM}})Rqfzf#eN>{J7<6L3hODN?UFn)#1p)6p=l&dQ&lxmxIROcr6R83aVr7q%
zdh9`AeEtUPXA3~d?g*Fm8fz@EeO>b6P0#a@x7!Mz`%b%e9oFLv3Rsmib!B~UL<uO)
zIlVNo9E8K(g%_m9G4d`ujgI2+eN`VJzKCs(Eh8%d8sUkLLHcYtrDTaqr*QhzazSno
zV(WWaa;f)?i~wRO9a(KA;Z7!<AB!*V5vfj;8RqwP{Gur5+RF$ZrO~Rwm3<uEOv(+W
zwoDAeQ(ogo20thq{c?b*W*z8e2pO75qr84r1!1Z@Kc?74tGEy4(q3(v2t^e26?gPa
z-F|1^{b{1wf4-~Z@~G*%rJ<g|=d(eosQqt2{+Q5=5oe5@hqlxo1hne1A2!tH9sHkI
zol$15M(<PVNi(TpfT%5SF|SBJuPSgijPBLAdsTgHLQ{U@pl^Q`b6B&LwKoa6MVK1s
zoL=*GG#CmLX%k*?Yclql{B6bmJ&NO`sx=778H2S~IUj7!v&G0=iAW|xdHSSO8~e5>
zW-0g7(hXigig~*QetwOgEGbErnvW0p2;v!meika#wz-Ti<`Z7BX^L)LqcJ9<&Ij;W
z1xs%2&{jA75u8oOH<n=QG+LSv4WjgV`kuWG%u0uAkcG;itSsyv*p#eF?-v4mXonge
z6+e5s>uws#GXNbm@GodSnytYx>Ii#q<VaN4O@w4K5nh{M%^Qtorqnl(GPn=gH>vIJ
z6G!`?LYMClF_wB2V}5%$57>~R53k;z=^5VYe|472w!7k49XY53P~CCvc@b}uPAyKq
zT#t7UAHwb5=W?EFm*<>XJI<(H_+ZBQhy#3b1USCw5Uir2%uMPi>YPPo+pi$Ti#KhD
zkEorF*v(d?H>MwYbkt~E?h^O;T323DBhxLG=?1b7#_lEq0W(FX2DXNy;-{Qx*v$?(
z2dR*r94hJh@g@I;UZ&Mq{5@BTX8q84Jud!Y%B8&N#pmJ4^t6$5SVUa3#$&OKub_6Z
z*xh!*SzhAC1=T&|LM7l=)gu!uC|~w9ZRXArw<%QvboG}@(O%co@+r#r8d;*nvXOxV
zCpvcDS6ig40I;23s$djW3B?MpXK?`t?X~t#j)0K_)W*Rp!KT*m{k}|pjaZASTS%7j
z?$Q+IeADgU2LFw&<e^31_~k_Z(%rq5c)&|~^xVS~y8_kLbsv=`=s3M$T-SUOIsbZm
zzkX4=xJ5fx%NewHgioUvy8bNb=S%8`rvmWmKQ5$vEu-CRv7Vmyz9qDCx*s-scu63z
ze`YD@G0QZ&<{5o3joeY{ZN72-D>0xa%)vBi&*@j)oT3&j{xB6JMcJ{_yJEEF$EhY1
zZ1eyHP;_Z+8oAXk9PmOT#4=tRR8BYR%=kJ?gtSw0St1}6(&g>tEWvfqvg3Ux8wg+b
zmS#lEPy<z1^KWu{due!4mq$2-h<R0v+vLy2$_H4G<a&AiN6PT2v@rZnR=3u~zaYg8
z9*u^<s^~;7RO6Jyu45oAp^u-+Kai$;nfy)FYhI8%zjxD&|9jwC{THO0GplyNd^Hes
z`#V)FW@<A`D6r~|F;T0W$X$(oHRHeW;soY+Pwb^Gz{H%kZ!~&<9X_ApkZZdDlBSS4
z(!A2(fgV^fJl*Q#-3yjZ3P`(W!+djbTD(U;PrTfSZruG5+f!aNZM(G7UiZwRgKVWr
zWZE8gP`Z)QWb535O<IVwV0cb=UHCRjB>K+w1~C046edEg?|%M1@X>lKCX!=2V6<Tl
z1%&fyb<3g4skyDXiRI-1ilZTYZzCHj`SDKA)hyE&6q@tV-bub6FcjxQaYc3M#Ch{Q
zd=pEQs3O@{TgA$968brSckH$#djisml01KHb3C~CaOdzhdn{z6$|N8t#m<G8qTjOl
z37C3M?Fcer6OScA7G~ipn%S-)pNmbG&8ij2p2^5R_ocu$czfgdz~;~;pYZ0f0IE7>
zzgqP{mC%$j!7?|yuF6_#zpO74V{Wbe!BW`YeR3SWACw!F5g~8+Jkn~<ng<PNE5HIb
z6%)D^5|T`VMz3KXT$P>94qVZ$7+2WKcTz@2qP}%UZhoncSqr0BJfuPu(|br;Vlyt!
z9qFY5h(QvId@S8>zx$)Ga-a3O@*4W5;Wr?vJikp9RI%$pyty?2B2mGaodF}*Z4ZEO
zFyJo-#WRaV9ULWv$4vgm!~7AV?7Mn5=cm6Z`?_lVHg(6i(9b~cPAz^>!}juZQdCsQ
z2_uC5*w|rbP*<7cR@Q?aT7phFIE&w!{Xr|Q_ZFoFoAj<d;W7E(9cJ1K*v?L!S<TG@
z63k*HU-#Y^?0~1-%WSr`R+ah}L<-SMNw6}SzP3jLZtvaY;BXQM$7w{<d+G;eCS!(%
zddmV7sX4lhv?2%HL08z8kN7FOJ74+%eYNwxzLnxG?;kC|{Q!+e;E<7K9GNxN4ira5
zz3Y<O+Kzc_kPp-%GF>{#CAgwhq=v{HAm;cW=E-cROUY}0O51XN<gC?1`ATRiGqflr
zZ$mI~uzxe_215Uunv+?DitNzmb-JDi$0I9@F#ovTA%GielT?^Q>G5zPNiZpL&iyVT
z)y9u<l@-p(D*UsBqS@8GL6b6T7FyuLO){ok$D$F}_K-7<E6m)GnJQkggMn<gh5E<g
zhV)<{RcqHVcbi`B-F5fLRPc}nqtHqZ$dp)|mI+uQ@sg<4G))eBA_axrUb1w+PpwZ&
zOblTi3>T(GoM-L!H|?|aL{51{3bu{d*~j`fj;rvhmlI1Zkj*z@xGS$XFE>X8F|Kh-
zS0xCK_)G9KTc>=8BxX^qKLg_o{ZR#z#oib9C`1iXjIwi+cccXMbkdLM2~!m;iE?~w
z9KC`3npS{nw%9mAMJ+se0*l-o?$z{oNKJhrrDU1weo|Kug?I4z&<d98zK>k-wW_hr
z5H;wVhwl>3#ngTj;3^?BYd))esn+rpcptQFFWuK0+U8YST7Vbk=U`Nidbi!OQ-2D4
z6P1PgZgOO!sxj=|IJG~z*T3=EAx?Xvl^WU{tR@J=PS3S>cZRdYjPD0FHoNrv?hYLH
zoVKP^SYtkK^?USQH_YB3%+^t<C^^%|`7KY23Y??%Ch+}P4Lzj{z|M8^fpH+I$5cH~
zdz?J8<9L{}Nv5rz7O0&9yTBbJri*>sEBD)VS4kk*MLBk=Wp#21rZk$G1eiuJaWFKh
z9D?vSZ~S;dx?_zM&<sJU!cXag92`=+$GiT9H-CtVbjZfTvK%~QG&E^wH4QZ9HX9en
ziw6=*p)ImkC$?8(&c&hi$1L0If>1@->@u5#b!#+qv@oUDO2>UP7i8I8ABhgVbyVE2
z(Ze7_8gL5F=NoU-d|7llkRD1iFwjh7n~W0xpQav|G35d9w}0hzKJb{)iI#{{sutBv
zKI9rF`!4+;hM^_fGhfl}s+PPU5YbR;#mSybxbEZ>7L+mX+=ksWZkLX(r7WNrF!Y$Y
zjW?TP2GumTWM?7`EarYhJ-pW8s>O8x-dShHc2r;}WpM;`U@ThMTEm-@?B$7)mL4xz
zg9PH#=#_~qGMgpA*||hnvAlD-y5L^yA*L!lc79CO2D=_$ABS_E3iWpy%v*}tmK5b<
z&}Zhc7JY_ly@=V(cmYTl|4R!Eom5GWAe4mUQGh%AdqM%eS8{4^^T>sKQowqjztx4=
z&y~NLRH;9nU@(<1OkRjc4{YbJaIa6UPJmhCW>5j}q<Pg}7c75qU%3aL3$1fT9BC!J
zII+k6=RlP;j(W4@Q4MOMI}Jzs-~`AI@Ya?9YxTUzSN@OEiNe9aYxl0Izm^I<I!(TQ
zQvRS_nV=QXeG=h6drA1>@-3pQIdm-4T1-Pe*1HkxIUz|d-&ezAm5gn@a@i@aB;FJ>
zGZx68Ch`bO=Vu4M+)&0~3Qw3XsfyPY3Z)HPH$Fu(1QnvNu^bDaUIgMnf95hYH9!p5
zg(mP4D=!_GpmJv@Pa@{`(Cn?hA~x_s-2d9%7`_xmOm+daOF`oIM_l)kTnx5W+sEh^
zH*JWIMY!;7h~VOMjlziI(1Jow@m<4aiSF)CaE7ekj=Ag)4`nu#DX4z-rRM%&nbk`5
zs{8d-X`?&Yz}xw&9a=14kx&DbSU{H0*@$^vhTD5=oNm6h1W;{Y;#>b9X&q@xDd%ue
zP8j_G=$J#+!DB!7dev9IXZmigMeB$bECgLiI`Q^s*_3Hf9*bM0m7$Exr4BbH3Eplm
zC-zzc58qMzRJs?Y70KQL?W@;StzvkyEmMA!VfVi59inzSa29$2_~7*mK@i(`T!y(}
zWLfxv#ckYd7CNuf%^7dd0Qkg@d|Co3^rxFE0fK}I=+7QvXX6_aSVO;kK}A{w&iw_K
z>c^pyPnFK$W6>H;(7S6zQzsRsZjuTVWQVFS#~9By#RJLBdnk6E#5JQCOM{ya8mQ04
zsjqnU)`Pe~jaYWtPV=IYZkCe$i`p=`%Iy)Sw5@8%PowQR-g(%#p5U`X?;u64Tq1uf
z+bb_{mpslOA+Vd)@gC(dsy<*<@c?EqLViM@uKf8!GIYa4Q)i}P#>K0qi2oJDVw|*z
zTT_lc{1I@ohQ%{O$VZo+X-n^pd^i|-f6C^5`uE{&`fGcXmA$e7`W50DYmWI@Mwk?B
z*hSfJk)proc<t7*>XUN=kJ5P8@pBpoA_M;2ugBxff^R%cPj~Ymtst80W>;%}Z+teb
z`u9OoHK<mZ(mlE~usd@|Py*~zHc1(DB|#Nt+nR2hbE=&`W*;tNeQbpQ<n1Ryu~)*c
zHoDPj&jHCu@|B7)62|F`cbA>a>Zqv%z)stR1=@QIO8gjOTTB!(MMc9#l_YpS(A7+I
zEa!)I7zJN(=pZ%sCZ_v>XIG(0KPHlEUQ#SAumMcc`YSf6Wj#G@`&P%;<`V>&m7YPh
zo7gQqOLHNhfT*`F_Q1s;Z%$YYGP>3|N0iy2r9?t_9#-^Fr(|bl7Oqb$LZAvfaPb)q
zVd7wvv{!XG#yTjt+W6L9RN8P($(%Wdc5ZKT`vIoG&1XW&Xbrb>klTm`xHyKQ_1B2(
zx{Qq5O@E~9bA5~P2X%^2Y{uH<oWDOr7;At*`LXg$3}3_W&&@}yG$hPtx*O%rss{G%
z2U4m)w?bEvWTw7)qcX)I{>VLiHgcheg)?WMl{MIdOY23ay5IIU;{m7PzaV?;Uzdb<
zEFFf;6Ui-a4O&pSi=+gx47|oGPfy@$#M$R)9eT_l+Sz&&vE1QST{I@VZI%vxBxz6q
z4&pt4`cdm9+1)$H7T`@dfDNAUnMV1V2@L8_lhWMbhUCWV+ZxpK0Z-*(Cjk}673Uxl
z!TmbK#TS{TPk9LcmHA2wdII<uhNQhY3pY^A1<)ESaJ^J!B4sHxr}-&07Ew>}f2}e+
zdwY6;K%ZCH?BaGO7)YBNgqgr+hPJfG5uOFfme52g^w_7v6)c=tBG1i%Pio3yosgq?
zTT0oa(oj63=8z<ip$SUuTOCXGk@lU8Ebfo)Y;~d*>*7ycfgi1W3~f1}G;I8Wg+nZ(
z<KpN{YLMTk_CDD9g8Nj#D$&G^)%bFkJ|NUJ@#+TS@a+(QMcXcjn}EfK)Bb1Be-|}1
z40Zp6jTw5agk<ezdMb^?ea-m}_{dF+1dMvd=oj~7gxDh<uGRJ$cSm0%yEDPIRY?->
zpZeX7f3!Fo#FgARGc6xK|KcZ&Fon~eaA7L?-9y4pdC}af<;d+J%d74!6I%SckgG&M
z^&y2?&kk1(A&tx0EP=hkKO5I-c+G0qwd^UMmkBK4b<RBg9nUE8qIY|F2<#O}mKU*B
z_P}>;MI@~qtg{TIy>@#pW#o44B+!r~8&#%QX4(3QWdX4H^$A((O-zodfFjzoN=+#A
zQMCdjc-%4Hky8Bl9pzF!D0;sVY%#FS4B+OxK0UaS{{HD8<qB9578fr3G8;X!#d1m}
zG`*(H?#?Sn|G4%0v%4pG>V{xfhdxY%Q)qfvP@}#H%s){KbJ~Y4A53O#GoZLnd9*_(
zxpEP?V{WdD5kF9Xy0oLHILFSnUP6A4g2wZhUHc10UYIDwMfl~OhLSc0Z2nFna|VM?
z{DPU6`_bj4va@#=9nQ?(F7Z5O#`yp=uE&q<(o~Ho!nYEo<Qf|^4de-x8Od8u`E(ZD
zrBw@G0>Ck2PmA@WL#(|w);ko@Ants#qlQHo`+$2qh)y($h#1e6jWP7HuxF}-nM-W;
z2@YCXW^)ae-s<<PlPe|8$jI8sT660+TGt^Rk|6c>u^bIdTSzMTAl1cdBm=<Me9T5P
zdB;1OQ}-BH0RJ4ZNs0%O#8~8G203*u-j-Vgp--uNjmodlmUb~}jWv5GlNB<8r1UB;
zwmyTnk45`jQ_Qc1<=@hRQZROu2xIVk;tTOz%LN(AoGn}BI0a)ive#kXSb$mzhWc&i
zuFF>}J>PcTe8piC+HOF(GldX<E`J_<`mW}5(fbB?YZLR%`oKq=1VThW6YUdbgyq&0
z>k-1|gQV&$A@q)&K^qe7ou8~3%;$TFYWF+_O`7EF>~y<^KtkS;t@CYdhgh*)c7zAb
zyb0(7)sh?_TzUX+Xhioa@Yh0-rkwg0g`rh$OIOl{SM%C$qj=M)`eb>pq`MDw<4I)p
z0r?b^FOp5^pPXgeu0-1-dwOBW{F>3mH;*CY!i(bO4I!oZ_#X1a#6?^|j8X|>y843u
z`hk))n<ImNP6A4hgQ4%EH=ou|3AARae>dA9Yq3*gU^Pi6wVQ1li(5NrN%>rLg(ePe
zQm$fWy}W6aKxJP*z=<EPl~y5IO-cN=>;D|LG2{jrLPjDY4MuEg(P%H&+5e7Z?2k~@
zvm4%Gv|}v2bke#7!Tb~C2gGSXtO4{}?HLZ$Lh<qtF1!c_FmT_#gWqU}*T(`vyPzU9
zv<`&s*lmxuKhw>Zj<k*vOJIzhUJ$FKY)ZI+B$q43k&!dvs~L84;{?}1yYyO}+c7_!
zK3Pu864GFnwSQnCTr@5)O)V8GXxUR;;@*xSl<ozqHL|*DGV1u`cjU^{nQC3UZtZew
zl+&Oo#C2|MeW7B7<W0#s2e{xzGi?{pdk%xOL4G&FWWd3z(rDDWGKr@NCE6=`GQqr4
z>#q^udT?}4Nq%O^mWiCX-e;8{AoIKNg4>A!BpNN&S*qoj5F<;Iae?tm_`>peQv*i(
zM_Hu{LWF6}Ylj}w0Z^x9(A|09UQhXli$BcAiiX*0DuK-48+p%NM_-frI#5skr_-a1
zrq?aD$VLgig5fkHPx{W*En9lpp0%duV1Vvs!Q^lcVh!3NNr?<L{<`ko48CuYU5Afr
zPbstO8K~yAuOnK6SuS)t7OFq9e1pBQ*1=*Q`8tz4*`0QZ4m-+Thy@`EoQXoxbBmDz
zd_NpiB=yU)W;P=i)Ugg|*THFxr{-dBLAJj>KQ->%>BK5#q^u!bq!mo$v7Q?kKTfhA
zv_p%3<_v?Z3UrhoUj0=tL0E4~<{#d5h`t>Gf#*?i{=%Tx24VPstI)G$ZMm;<87i0@
z`5Cfaant|HPD1V3Tm6K+J?L{UNn0%M6lN(CK}6tJ|H7cEH4dyQ@&fSJ#EEiPTBuKv
zwR&h9%tl$;_W6Xkb+ax4JyXd%CnYS(>(*M0dcfsV#*j&QIg*auG-?aK(yWpF^fA?1
zR|Q?CPZ+!JD^Zoz4kg{!F<vtxuGJKqJ!QG5d<wM1(DmW4NcLCPi?w+h__<5RzQj7@
zdYc{t2(`sg+)}B^_odMFG!PpF#VFas6GPjs^-^;`Vis4~NA(Dk6~SlOyED;sfd*|N
zL)ZhbomF;j1~d=UT&#b?QcAi4TB$bcw?Ug${m<cubkXOf#V^%eqXAEiqd9ljCZP9`
zqzYkFd7(MNL{eCkvQ0N@>im*cJvw4cBl~zhbz2+EU&^>Q+in5pss={Rv7Z3&pz%4@
zwJPp0d&FD;YNg3)#-QKhM0jJH{&F_C+H-_;P0>p_aY(JVTEo^+NOT&V9j*2fdk;<x
zeXnWYvJVMpJD8r%i9}GauJ1(7_5I$MbZ&cIqk(hg`10Ha2wZU$^ku64dh~VsaeqmE
zN<p5nYg<RV<p#?c+LHOkTW7VjuVNWnp9dE;iVaP6gN1^x;<4J=mcRB3?C{1R{+cR^
z<V@7xIT_F&5AS7taMJH~bl(dxC+Put`2ZF7N$j!kulvp;A{tCNZIw!Mkl`*nzxN%G
zCYF$99(&_+EO1KRTux2RSbsY{P238$lTdsXR%SJQ`|r*UEj}skznA&u8kC65d^6DB
zAnj7{LP+CYkxsDCZ9q~cYM=^txPFaOf{20Bmj=_%VIiLM8*I|dj_tMs$G83(d!9hc
z`D@aAe+)|#_M)8OGi6TZD$1NvRK9jB?9zuXHvTW&zctXjS4TBoVWCU;F7U?@E|`)N
zpzdaAZFkBf$CtaJn?U;UrRgeZS6q|GPB#M!E+zX%xnaSFep|{Kw`3Hu0~J6rB)v3&
z*gZP*7HV%GZX>u#?+(9MV{(I4eb8zj&&~cPhM2;Q4W*4^+d=-<>wPmWzBNN#2b4FK
z9#(7!iVjsGyUT-(q31#3y3L_)%Iw+T9<VBLJ@!D1e>>t3te;MPbusR0P1>WvR#I#W
zohV1ufX&+8W+$;sE`VT+Xz}sNSm=2D+Ej1q)t0ZD_c&Mtxy;6y8X5}f4XB7Pf1mw?
z_yRa(dX$X(=r;QNNfgExsA<bE6oY9e9!Qbk*Vp1-q*``gH=Jc!u$fP<Jwuvngj9y@
zZ2!5Wq>AfQ@d<qkRwhtp+FpSlX=aCNp6AYf9r#|w1Rr3Ku8=$8Yo-$T78J?6NU`kf
zSt>qD8p^e#d@=v`{qpyZ3;yN$xMqCyz7K5)Wgi7{79IMI{oq|r(H97Bq3hb_SBvd2
za2Y9oL63GKgfyg`S>n^DKI6JvI4!v>#aNMIkP6NUrGDn@THz|y4v(l>+Zx5I8dY2r
z5xD@FD;nV^Ze7<*$9!n`VB~5aXxg`=X0PKf$@L^EHn3stTRkME4&2fY>P^-I{U9G2
zN6y8wXTZvE><^!YTO*L=K`LI+tqi_C44x%A1PS_z?&<CEG>7~M2kXorAis1>58`(?
z{5fZg={)=AgBwdeiyZP?;6m^c3MDCV)6I#HlSSkjXLkX<*gqQ&UpRf_bvK);$I`W+
zi(7wKaBq2~Ts9Q|r1?6v1Qb^%ZONv&V;6t)tQL4KEpHV0&)-^`M}21lm5H>WM9ly6
zxG)Zqb6`7*6+GbW(TSSZ^>Gt+ZUMBhnq4Pc0Y#+R?q1cL*$wqS?<aHyZAi^Ttb>fz
zscmPom{l&cgKYNa5Js;_)tBW`XV4{Qx8^8*nAI}B8fJP%i#b{Eb!XV4SnrTb;Id!x
zI#F86$g>X%9R-h{iJ6qi1ERci^;eM68wL<`6T;|$9`G!ZH7bP%kd#;el9HbFm2W3i
z{2k;$aouK9M<$2KdPR$253w$Qq!Ty;%?7#nXjqt8pSIj_*Y`BtPaDidHwk{{+lN<X
zoEV+f7nkoSV%!YKUnzP{A#Ak~@u7zRiP1~{_)vLsZ)LxcBU|pu3}8(HnCS6X-{E3;
z`uv)1)IJ-hDzW>D_vQ_l!~+zyXPFwg^Zs+&wifQrCM@^HweX%ij?>8)T)YK-VbGj}
zlSih9hN&*mQql4V_sJQJe&5)G!A6As#aH~h`c9L|m6NOccZr<fBM_`z9-aci6`Ag8
zvPRNIt!u~>W4D}+r7+#s(Q<*GhU)!;FuGIf)QPrp;7&LAR^$=Vio3OjlY|H!*58ZF
zrxVn~d@_a?=&}WGwkhV!p6N*w!$qbH7oP$()ZaI)`H#bHyY|JQwXrm^h3(MvoVQ}a
zc3?CoIL^}~jgBK4=trMYsbZXsvqUG7ARx>;GFcVsc5Pq+wil4w#Z=LQQ;eON^V^K8
zzOrPpKrF8w<~no|cJHXn<)7-`+I#x%XY>!0u^G-%TU@RBlHH1m!{oAyQPD>Qs{>XL
z#=-4S{bl<{EnE4YoOwFF_0hzL3L17y3*sssQ}i(#m5@B?=s>R^PcDX`ecZt;j$55>
zVcZj354;|D_*;;?K|g?WiUB1|kiJ;S;M$uggHKjg9`v>ZqqFsVb;fWj!F4bPx|;y<
zyC)QG{l{1T>*cL3AWdx=d>ALsC`9k~D9X&T^IgT#YGGIBAFhDnqL4~W!TykvZ{jee
zNBl_!vYrz-N@LABtLN-RUocjijaTCG74H_&lg~l8IXU<&;*V($j2;HIS`ip9`4Y=h
zZzA=29#+Hk#D6WSw5L`_7N;x0!`Hb`rjtLtW<)z2<J=vnMm;#n*(Y-*%3c%o3dV(?
zKVC1ShD@{4CYLbcoiIp{Z%GT{MxcA1uM&%Z!W}4a?;fu1wnwog!0Ji4LOJX}!UE_9
zAWunIPlPsgfTw=j#|ixyJB=zp{4mcqH_-I-_>vRc4o8sEs=-!?&u-E!d-bWxbmU6)
zB$ypMGqv+mwTe>fvqI}Tw&)Ev=XMk!cO^c_@k>zAxCnz+&Vbm0S=^&#k^$NQV9vOC
zlH1ue84=X##xwHqrTQ1}FKs%N(=XI`r<<{p@5J_6E4#ar5Pr{}*mxobjhPpJ+f;w~
zfX0%M{a0b@%2)ZpUUsrhJm}1v{J@ah+zf6>asR7nwWh9}r6AW6(brYzV=-JXm-XE%
zLkyq+@MN$lW1p8Fzx=8czi^PEIr+1N5cLLB<b{;9?s-Cq>g=Bm)183!s?v`r#I42M
z_XeOW-%mq@r?(|WpS3NGsLZttu<2Lyv8W+yk;bvV4f?-F6*uiBixqs}q7zU~T&j{w
z=@yju9T!lqHznj{1QCJDjJF{M4@6-h86rKtVBOlt=NeD0@5?>m&j4F$*;In9ZeD;I
zRl`Is#|+{U7;EWTMPrVLm{tS_EX+zIeK_<3{&oE(noXSjbKAiKqrn)V`R6Np6YHyt
zMh{lb?>6HEh0;p9y8DEyRuP=sMIN3Fb|cVMXMG0aF!VzKggSx;?6)~Fj`u-Ow(6%I
z_4kENAa-q?px}Z4>r7<`7UHff!OSRUeH8xX=Z^|)24q=Qi6GUZoIC5ioLV1cbe)&(
zW&Av_5go1de+S^NS0H6zdS%4*n8rRqb!r0nx7ysE)GC)z!Rq-#JeD7fEt`TWI=&xW
z=-0b(!_#hDXWn;CH`pX|$nSqTyc|-q1}a}i<WUg6T?lbamJ`M0otxXKsRP`P-OdJm
zGhh2ZZdI*)HL&uCR&A)oCC`ONY{$DH%f=U<mn1l35Ba8ZD84vhG>)((-1|e`bKUZc
z6#57dIpSCvvT>IYtj?Y;SV!~T#zNN8US7gVo8cY~J9zGho(|mW$HKJVnBK`s;-iiZ
z5UArczNf8^rEK;?dwXnf>i%l}fE(WYMmv?Q5jePC*|9y~hmY{DP<r}Xx{{WlrcG)p
zJ(CDfB9G>4Amh0kcC(f5vh!b*wGCuv=f(@=as&^Mi{wDKxaSD$1c&&Enh@u|F*~ut
z{V}1;yQ6{bb&2kSVQx@(Gd&__iZ@AzwOI09az7}wcd?rW0baBO1;k=qjJCP=#`(*w
zMTz>O-R7*e`^og?2V2tJ3^aBCKG-Njk%}N$VI_10i4U@#k&{VQ(#W~0o*#$~+=B~9
z+f&7uRjva4y%Wz&k8ZTboOhn23`5+f9DKt4#Z8Ak5rWId*G|@+mKP8V5Bk%jw_OT_
zH{KBa+7%DVcRz0$@*jsI%VW4l!|ktZt^*ij)YPUr7AI21DY+0=j&ciYb=)6eeI^pq
zzXAKceUa61XU%BHYOKT)NC`D|bKCyPEG+XeZJD*~R|Z5B`^9p!ASB>k?%o}o9g#QO
z@?nd<PFqcg$HE2yv(~qg&G2|OQ>^gu(@g{>IG3-)+iYmI@@E#rQ5~+t+qPs#-w@g-
zQsLrB)B<)spqE59RB)+}4~-x$MyB>rQ>Y(-V?RcssEEeDSzl{B`IRI|_6FtMU@PC`
zEJL{PlbNA)gq~7L8T1?c#l}L%0vWwZSxnW3qXIE|jiOOeqb@pg|1ko8zf^g6){PLM
zbnkW)+LUfRdncQ9XV+zWITd&2)9+iutec)2bs;+6?I*)sGAERaLfnSd2X4+6%qwxW
zl)sz$d+vmw^JTsOv!+<BI?$gxx5T}VR292oEdfCw#b{_xiMk~(^((vFn7T32oDA*K
z2dX3N)S$F!^{i`d?UTw!a9P;j85}60HD9ah)si6K*y5_RL*-M!HTYgOxS_}fN|d&u
z*}c$~;rwFBb6)Ex@QDDt|MTg>kHV;=Tlp&ln5dH;`qS63?(PSmJFug$%NUI;8i4L0
zY&TvK<8yuiKSe*^AtdosidtJ_^n+FNFMZV?lRzB{)P(5w&Rp!X_fiR|k1;B3PAi);
z9|yDOkMi}YD;BfU(+pg7vHld@+{p^`Yf?lV53n009I;T`-CMK$@tS94v!=}+x8$0D
zn@OZOf8hI{z4PZ$obKzvMSE~-a2juXk$$Z*BI)H7gQW6OhdZ9LP9oJ6GGum~fmHIy
zhR3aaT9>o5F6Tgt0UmO({$idVkq^~OU^a|2+2Wl13N~B<<e!d8DW9=@_>GVr$tur=
z+{c>VulnTu{J9P)6^8X!!j~RMRapk=&)xqGq=~7qW(i>i{@A?!e;jtSjk}n&<%Ijv
z`j$KiaC+~w_kB*_j3W-iXBR02YdF|A8ifQx<sKRdQxj%9VGho(x&o{czXK(m#59|u
z4=jjs<>$QZJS%bJ8oTrJ&sNSs+{Yb)fPmxAlJVYL*0Vn#p0=_vn`j22Qm?hodT8i9
zL4f_{)5@EL&Y~Z!ID3d^t8;ouS7)Cvsvps<B-EB(d>UBEqa!pVMvUQ(nkiIWGCRO_
zK!-emwy&P|Z}jOra!6z~FwjGNW0sh^LVOEtX>)6AoAKUub^IKZWwG?4TG&Fi01F*5
z1R)}{@yM!s)3}7Aa&y#GH>D_7t^XK;zg_|ce3F8VzxMen9HGA%4OyG+Th=nCWviF4
zJ6r-cg0Iehv0;43^3U}TF8mtA`m$0v8&Pbj<580PcYnN((yeJQL?RYC03gU4Or#qB
zAE$~D*@b~`AuhvBQ76FF%LF;-&}iRAK$#t8PPY!8%u$%+`rG9PHx(yp#nYrhWGF6t
zdUiLFp=>+8ma*<5b_+Zwh>S*9CF3kxRA@vU3vK@%1#~|)GDoz)p8*g&Sg~W|0ZTc-
zEA5IySGNG8WvFVvA#^kH55RV|t+{nJQra??yH*i4!A9`;A>e&X4gX-xUKdSkZN|8l
zYmn?WTwj8^WwAH@{mkN^n(}yz*141o+EM8gT@6>Fj!S0d8;N{!Xn#oafQP526R7qE
zW^t3V5zTkj^E_JD?<Z;<Q=IbMAi&mWGify6yM7{(J~>Mp<c*zPI2E^{+$LZvXj?;L
zQF3LTX?7uT1ETA0CKlNAnxeRp-i}ZA(?(e7Sa1rL+Qrf(lt!$=mS>mpqlax6b{Ep3
zaxcx@(E?unQ<|om;Wux<Y6)*H$OlRW6>bVklaV%R4Y>*!(l;=qlE@7c^PPD2mZ@s{
zO#ix(IpnpPHO{5~(S%vi$s?@m=&EyQ_zDU?$Udth4HWt|oolUZP_8w12XHA}D7#fb
zx5b|01lpsGKi+!sj!c_c`<b*!QXm>;SoO7RC#6;vR%UzEOkQB;z4sCDZuRw3U^jHb
z`NTav?J2=r%5rgc59v*Evo+u4e%bsv%E>*w-FtcYs+f5@)OJ0vK(4FEZXgXruLBeJ
zEr=Bi987x7T`;+Pd{@sY7$De8eE|tX?5KN1x%mAA#{G)vMDo;hHU>b=xA*ter9305
z&PAMtEZE-1iOWSK+exs#zP4+}Y&e$tbWT7p<aBVVZa(%OUw`ur?k85A+EatNFD{D_
z<IrX!AgH=a-`TZj1JUyA_%=X_RDN!5wfFJ#vvT*@D&FF)V@AuQkB=*tj<8D?@%zAf
zvDxZ1LgB`)gN%qih|6@GDKmT^^n<6ffKqyLroY=;u&AiUm#<M{&wwfpjJR*t{Kc?4
z5K`r#xKC&CMOyVCp-o`_Zq5V+oP4(cWE1CR;xJOg2lp(fQ6EHj3xcai0#2|phHMe3
zM*`yW{L$KZy6Q3(y#M2Ca+tL5w3g**nG-UKS+nQ3J=3;Y{2Dp31|H`iP#aEbN^7!R
zd%-1ZWEitQUZ^M@c-Vw#+n?&U_meFz=D#e;GnjImjdZ@v&F{rmL7DRlLx^8H`VAC)
zpRK&RnCG|r%XjTS)y^{pve)>B)YjMNHfx{3UCK|Ow79FGTr71%qSVB+1sHZfekjw|
z&6?dYGIUEEvB#dAn``fDBUa)f!7&87jC=wRWS}#UJxLE)OReb8iwL(gT}oVxLI<}^
zxxVF`1iOh?nLDro#Yk`UVGN5m9;D)yjNQ(+U?Jop`0J%Pu&51~S*=OE-S*PA$Y=89
z^jyMgTR#igCWE+e*kW|Z`&eRR?<nvGFx-RBrxI$6=WDb$9sg$&b2_8c9fM9*pO{Ie
zb}tF8*{lqN-j{$lwcdPp6DNX)Xwmj6<20B*q4N2=HxNhG?M{_X##Mp)>0RvS6*3BY
z6B&x4kslgU<7nB$Sj)_zg^>xrTiBk`EI{q{gzId2Y6zm{=NLT&aji0I=ozav+TaoH
z)N*lWU&Y5ylabMPJ<)L*8&2`%^w^S~b(aMOE$?Y-qDR_FOh*@u$DkT9RlqvIG5Y{P
z8u#or;9l5QMzZunCUn-dL&=Nt@DhaogFQKqNOKq;A}Q+?m<~JneTd~9Q){UoxkMwp
zpWAdUMTDwDypk%znvTAujN6M-w-3D}HMnV!CjN6g{(8-2Tud#zV>c<OM_-6d?GCb2
zoq5`H4zn?{wBB~%7T|+x&Z~~TQ`h5{-X?w^uDMZ~U=$6Kl(5!ZzZYM6x-g4(4Y9ww
zQeU;m^9(3g5_=3DUe4?r6NPi4SM+tnG8o<6s1<O|lLjI!AH7G52V|yJ40d}PD81s=
z6zUNs=T0g8^gXfjAx`1;PyuJ%+?*7S0!e{+2SY$2o<HpFDw76lFHjYIhUDCdW!X1M
z@+bEXAM65{MJ_?bd`d9Bnqvi$wSUBHeBTzkptksQG(Q`~?ajF4)Ma^|^C8#ctCNi4
z>sBYQd)YR)vw~{ASrA}ik|nCo9=#bLmLZe4I{(llGNSMaLPSCm%ancIdadnI>u620
zSjuWSD4&(QZ~+tv%oyIwZ5il4I}@bvBZ1tRMg~!JNSNy9*CfVB=5XlH!dESvwYN~=
zRL773f`UoG9tor2$tC0P`1gJsJ3ufhvV&&Nn0>*K47@pyCz0eMhnZ+iZQFBCKQLXa
z+kjmV*QN{&AVb>m>EH*uw`TK8wAU=Pl#47-&X;)phKkzLVimUzH7e>|a0Z~8l*wXN
zV#JYMMHj<De+D#D<#;SQ0R+EyiI7op6YN={a?y3@q|M9!=V1|4CzTr{@1Q(%sH3X|
z1~z<6UqjgVC`fSjMxY#D1a)B$rB^dRRFjIjZ`6+6TV^>hP%e8u<|>~NddEp!%c&Fa
z3qI6P*I~y?mzUYF&bm~|{7mG{V(LfUJpzhMgQv?6i((PMZKN6Vz+7rq?44ukcN%Ht
zjU!`{F3ux)>uc|^^(MukA*-qN6zz+PfJDgOBH2vj$3892IBX}liAUVw7aCUSarnd6
zL3jv#@UWiV4*$HDcZ~BJaRRKoUQz(O>Tr!dctD%clhMn4D#U~Cb6R`OOzfwS^{c*8
z7q(-!)zPRR?-u}YBBwu|i?EB^S{(H9KS$!P*MOb~73g;5Rnl?3iSFU-x!$<Z=ECp?
zOU-Skd`9+550C<?sF{)iMuf>_P$Z!5@X%Nj9lJ6JI8aU$2FfTWt86aB5Y!0r#%KVx
z{0wo)R~;TJ5AqBqzQrudgKTlJJr>j>{qU<Yo*9DnC(p&3D?N<x<`6}aBkQVzN+#ax
z*%K<S5uS2tU^by%&>`K6fSrKyMGr3Hp&@usYVZX}!mKxHS1{&!g8i)5&wy>yz>I9+
zfW<BFJ$7Bbu^Qp?=*XY)i*+yZTl;O+p4PN*DA2Y}gmc1Fz`B=Pm6q&W2lTe!)!8p8
z={djVDkUHZBH@Cs=i@8o`ki0LL-&tpkQ8Q|=_RFn53}7dA-;7}<Qb;RMHyhHfmn!^
znfDcod4b2~l{ScIb9j=8y+yMX2b{G>;0P(U0?3*W=4kN)J>9E!klJT)sa5-#Ge^Sg
z5}~Bl0(`NFPBk$C+-00rf5i<~+S%0y2v=l7pT6(yf^W(7o*ADdKH~SeSxH$@1U!WR
zvtF^WRG^X4sl{CyvWi#LJsQ~g>tU;Y-^_#-baY0^BekLCip4OCl#yQ90U>qO^JebO
zt1Nk^_%~oqwJo<j0<1i^)Hu<d|ANZLD*IWYk~1+Jx{rUhU6%y`*F;}ynlT`!UJ?$y
zr{jQl-5KC;cX<=TrLN9ePY=^o+5smX$)OI1UwtRBxCUE7$;C3oo<IQ902d94;_ncT
zaD8Ig6M#=wK3%^Gve92p(QwEo5K!RG1c|8;c42jQDe^*y<=xepOE59*Ga>jIB%P(%
z?*56<0UiW=kDoGI`Hw7nKO$~gD9{)5C2;oRA@sx?BkQ6=q?|Y*q1Z+YdkR-=lk#%d
zLvWF>aHb?v#XtMtb}g`fKrNRV*KL!@V6w#C9=gI?j0a^FMzfYN(7oQW;;BIgFO^%{
z?q}F8EGBJw;r|>3h-+K1qfXv*fZz!yCs0AD$LK2c>W(q0q9vDk-*~QrpFYZ#`5@4i
zzb@h`=b`<2%v$}<>Wiud%}V%VYgKE)aO$niPI>kM`W!0;;ryZ=#O09rW^kZR+N}T^
z^M+pHV2RQLnVNe4r=fKwyZgAw`CcOTLzynE(CHq^g%1swaF48$W3-|KWWCpV9VZLO
zE%QkdJR<GZ3K||--wNpfNxH$n!150{(^`9?Yxk>p?Bq?0jJW#g9GC+K*NmT<2)zYH
z@bCeNbd)vntv;dEs&&ZS$J<dv<PZ~c(&Bf%1PGk7ENYJ&hW^Svbi>h!fSn+4*7=S1
z$&BILDl{u%AzvJ(sfi9lefWsVsG8aF!sW*HJ~DeoW|+C^&P<-Yl-Xka^UXKmALlJ5
zJ-yOoO_jXCs_SzITplp&Rs8~~rk07KH{S3NshS`3MG5-C-C*Vc+v1T?Nk3jw_mQlX
z`G(xAf_~b!%~2Enf$6S9d*0(sK+h!9w-&uZalkF1l@dpvTxaHGEC+!34+-(_lz!+%
zbp<oR%Y4q?0T+M~tO3EJ<ijz5CW!x`O;Y&+qlZzRnNZpTwwVCtwkQ@n8EhcuZ6KGi
zeFwh-{Ps|GMZbS=v$6BvpwG>#|NC&Pw$j0<JQv@0V+PgeTUeRcJyHW7js}HX2J+a)
zvXQEG4ZBGuM}Cc_16cQ|&J(*X4chp+bZ#a~wGsWM(<t1vI+{xEY>`FCP?4R)KCNAb
zmk}I*G6EB=0wdbJlwfNpI*-{!i*1Q{a=3%O=G1U|vK*t1g$$1ces?MKCkaJGRnO!0
zfjI#ppLK24^fbD?_Vm43@7>Nm<^~^faYXW)-}NkyzldcXI?k|sI@kqAvnOQ062GN2
z<yHRBa6@ap8ow?2)-HWQX7Iwoi&1CoMCeT1#_kD2AxzWtZN)d&A{hez&NKge05<<8
zKviI&<Y@Y4SNZsDZh8tSM~ER#OB%S6Ukxl)fzYg~eXj;)&r8(A4N9%vr}uAuT%PIt
zno`r9INW*M*==iXCV^8J2O2lemne^#9&)tUJ>VVcCKAg64h$Y%_*20vThS{UX9gBe
z4JWXZ)1J1$9$)Y>MW{vr8Q+@p#Knn#;aqL<w-wmTy^u`2!ylELrHhkpfOv5=>VT|#
ziQBnsx`XNN9T$AQYF%595X%oR%?>smJr17WR2X3HKdtKHKMDTN6)m+Px8&m8$9)X%
z;~;cxov`nmZB^A~A{W%aeP7F4>=ny_K%nAQzA_Vb^5*aSCu08O_)Mx=QOp;G361?f
zev#~diHMQ(=uGWy4o$6CnF)Qg_j=9OP}Wxv%JIjQw!DZgrX92)-=0K-tfoZ6P1wzx
zyBqm%cX1vl^GZ%+4Hc@)>U=R_v|Y@k*=X)BC9*ZnHIDQScIrqLj`Uc=Fr;$>RZ_K~
z{hV*h!v(09LDkFS)XP9K$L7jL@Tl{lk>Pisd)Ntym%G~@%8kTI0H>0*`_F3~*PH;i
zKUDZ4aQ#RZBkd$UyPz_VD3%4)YhReN_zG%#k5@mM@4G%f_Z3Wy1dvFxM^7rG#Q6^%
z$l^vuD!X^c-dzt&(EQ^KgLNKU{GSbQY5ODF++E+b%^`t=+R~#V%fjo@ftcEIEZ92L
zUnSQbS)NH<z0EQ$$yq}-d$gB9J_u%jFk;?(5^#JyVYTL0iyGP>rG=GM53R_N)ahD~
zz)j`TL<)SaIsRo|rxp}1Pd#8C@?|k5ra51+#Lgjm^v7qmb8Yb&dJ!Ptey-zLVCyj8
z7o?iU86Uu#SQIyMOe?o4>5AvK8#7%_>o?cgWyj=Qtn5c@?>B!jjS3o}TGZXV@&XGO
z^N)@7bfZ`HTNfpZShqvR7QD?7C}U6$?RsL@kpWyO#cFZ!aG=({K}GV6y^Vsz<^}$F
zSiQWMEXFW=!JGSRXfYQ=#nmmezdEgZHE~!@FAz$f3p{#{cR*qWzfl#_?QyC=tGg@T
zv8LVdn2XniT<;4MPGA%4M-pBX)2tC5fSU@U_kIGbRwVWTy%$@fUlqm-ze@sN4|xTl
zKay$F37t!KHW*k!L@7JdFMxXL4ymdlpb6!wv%Rkw57_lTgB~_r2(AhB4%x}C%jIu%
z^J>;!;;pZFikMliqmY50mjgTpEaG9(d%?LU1A~F;?Qf`;)9)DQ+dWa@f!;w)!`<+S
zkPJ_XsQs@I32-V%G^kyFx&E1Jr)lLq?@>b#kxdMCWEbw+zYXE*H`uDF+5x=ci9t#F
zm6P-qsoc0zF?*kv^h{w)&WyG6fS_so5o{ugQk$*<++kW?1v}tZjuwcO9y_ykaOo*E
zJps6I=umZJeRLjMJE|+=Vwfpo3_hlkJ5xJXS7}0==R1WCv;Ks(n`!4*!xBFW)MY5t
zeTyC4wCyHj_bKV?f-A(%c;VF;5LzPuHmgt1z!Et3nbtmqIss~254;H8Q{>DlO4kW?
z$Os1BRqY>8{RJYYoYx~k-raQ)U$pU1y!QkU@5_lC1!>RiB%kZgbR1|@fAjvOnIg$C
zmli9fng7qtATPi}%rqot0Ua!SpGCk95Mn*KG%E)ON|j-U&+llG`H*gV1K|NP>{FyT
zF?!Yi1?l9~u8%bdsHpOv)u|0vy$wN^D)H`yg;Oj}Wzj%N$<)Ck-i?J|+1A|Mv!l4M
z`li32h$^&8d)j}m{GNvnIMoGN+$BqAZLaM`l*5_Hs2O9OV4mKD``yzXF2!ay^?hax
zZKjTaF$OITZ9ED{(u{nO-(85hurV82Q>|FT2h04TEA#LD1~OBB^xQ>(5=4{Hk)uMu
zo!FL}5^i(-%2nzwV&+}w-2>JRjX@4D3;E$(<XMpmJJQQ?Y!{G_P>L9;i(<f(*u2O;
z4~wkke6_nZ$lHJ32W-O$Gu|e_BNfN%db4f=1r9W8VS13FO}O^ixsG8{>^3>0<bU^&
z;c!DhYf-5)*wjOOx8B)hjYbm&u7MXiJzhV3zol2UZ%2Ly+39~lo-tr%sAs4N(Nwc%
zDcD<?@FkWFJa!#^8@^PmSi`88XI1iUhduoj?$d+?3qL373cLetFLyI$9!p|dbMIqW
zg6xrjb&d1J(|uk}AD@7m8ro^(MZ{gAZT`%AG+dQ+VWE%eA*q_-R3<%YZse$fPo}b0
z9yk$_fFrA6cAg(&UL5fDZu4X42K#_H1qA5dO%KFK?asLJT0KV`wnvlSM^nvUhlM@)
zwXVR_H|Qkkf@IK4O}g)Gi5+awN6RDI)nqZxet6lPv@A9Q-JW|&Pa~?9<xK2P11{W{
zMpvY~c_EeF{mIi`d%V~v+M~g}GWYTc`R&z_+wpd`IvQB;bP&6KW4%NXjkU~MSzh)v
zu$s=2gV|};UI)a>X77uLjyLXULFZB;;SJ$t^_*O=i5!A87dsw3dTCx|c%w#Z*JT~L
z7tm}fs2Pr<;q%FXH%35_z!iVv-o%cTbE@$Ppy1(F_`6!G_L^Fo#e~7As}6F}`Afju
ze>Pr#=jv5oeuVL`%RXC?66w;_i?jDLarbVXo}0b9a&v{@=4{4;s;1SRm2x4<(T|YQ
zcKUyO_XobJ#Qi3y<cGFBj&e5`2$7!^Ff5)7jaFLU0r5VPeY(}n#&3inxjf?!>8;`%
z?otlxj?xd?u8E*f*2yYmkiN5luFL_TMG?&pgsLf5NmPeNn*OA!^Geo$MUK-1`HLMz
z!v7EydP7j%*&HPfibpj9Yc@P7-RA=ZFBaTJ6!@p~j&$|lgP!q~UWXv1Am4#1{TGM<
zdO%ZADztT9S$;|%{*719E=j;;l0W7&?%Xy3IZpoz@^5S!@BHu8o8Y>;j;C}5wqFds
zjXeV&-v7u8EjN4`P;o2T!J~tceVl6T@r`L=V%evjma6GE(b_FfB-NjoEeG_@)b!8b
z&z+mMh9-n6mAOlRyBP33Pt09dA${M{SnKOMT_C`Lz1%t;-x2gHWc`HWfeo8GUI<W;
zC#TY*>-a|r<D|d)?d?g-Dg*_m3i{g2LjxU69S{%Klu6fv_C7(WzW^Tq-nBbxXO39?
ze&E+%U@yW~@wQml(dnRH!oL{v0j6rz$;+Wn%fY!^(Xt`-1tAS>_FAVH6CNRy?ArW-
zmbV<X$5}0pfj^<jcAvr23WG0p3=<n?3;O%ulX}ptGH-JXWlRf_8XC@GPdplFQvrH_
z2R4FVfgX{Ujj2rD%%V(-C6?L&5`RIly!t>&S+&XW%IF)r9C4BMB8u#w2|C2LS=Uip
z8P1uYJPz9mauvOz&#V6cy5O?1n>i8wjSU;wjl0m6tK{M%U)Pi0CPG}qaAhDYzmdhc
z^>3KoZT`4JZRd)QjtYo_)n8ULW|}7xpB4941l|BHC%GGY=xAW@Dn;2{r(hZdrwMN_
zxHE!80l0IZ^vFTx%-?(o!0i9sxR0K0sag`DhB0PZcZ}gux<<<G4D7wemsqK9C}F7a
zA?<1t?zMS<rry%Iqz%#aI4}BjJ#eolKBcC$8dqls|5ETT2&IC}!^hj*Etv~m*9+FF
zz2{-K2Jt$ATQ(LQ%jer^Obblzdo35SkXO^n8B)Ot)27>x>CxXMm|LEGIqT9`O%B(1
zCGp#+q^Nh~oyAVuS`*T$L!-W&zZc@Zx;lmYan+=@FwAJw!Kkut<!M8u;S+(|uOLXz
zXQpo+k^a1bq%wTUZTc1jFj9XclgM~`hjZ^$hD{v2-!R6@?tJ4BWE9wc|CO`-e}D7;
z_5W>&*YT<z)a<O7ExQS+y9va_-gqrY{)EZdY$nR6QKUpe1J$vBZzRWVz3*K>XzkbU
zpVqfRJlNJHr-JuVF%b3qh~2I&bKKlg=77d>QBDB3xw##7iB11xrd8(^G;xcd6M^o#
z;}$INQMK_?U)Y5#NJAhY#XJZmITqQqkREN-wS<pSI}KTTBG+BnV4iJO;eu{*9pTn*
z@=riXmp4lvd1j(d8DviRfhz#=DRqDWr{zNljl1=Wl^uPir4{6HroPkpESZnsW2e3Q
zQ#t|%??5kIg6cz~8lu)}ICo#0^+a6LEf1yq-DR&YW(df$(hpwhY{1h12vv`(Wd1<3
zUm8dTbX6h{!RF@k-3C@uZ9`M8TA;(|2k7x~(H1#MT(I$GMNKbJPNJOYLpqX9(R}%~
zK1ZGY-kfQzDomsLoOyZ4o`Nh72t=zajDyEw;|nJMh4w&rN*oVRIxZblNa1%pK^vhr
z_03=*ZK+L3;6iA7{gvtTH3tVyG;{0i(t1EXqAGqEjhxMw#fVyMfByKfDrUgpcrg1@
z)L=K<#CDR=&h=Q=nbvkj&E5s<G4Vxb=QZRNwDYGutINv<0|B9Q1Tg%+HT8OcO2u0!
zhV2PG9n>voJqQ+b!^Vs)R;P~z_<zo@zCJu7m-WVr+a+M-EIc^r5oZLpB}I$DKy^Yd
zE%n|`i#D7?`v5sFu*R*(!`3!<wSTy&Wp&pvbDvAAF3lUKzz+k}^F1sWdYCiX@|NrT
zrOh9ZV~X&|`QAV|t`pZqvm2V{FTCyaHXGK|j#8W!GgDzpk`MyNIF9gkwAYzt%z5>e
z#VWCxZiwd#V^k@3mV;kg!O8z1orb4b8di**f59twvc#@Kb`>oB|Fv;FHotIoD*2$F
zmN?(1R(G@p4(JpvU555XH4=3RQ)^dh#bX78yF*VZ+-aV*M0{=rKxhK&fZM1tmP^wx
z{iJ8$i9%xNYR#UgvnW+0TTx-kef)>>ClGG|P!L%Q2CbfE=Pn@#m?+IxthK<KJ4o3L
z`o*uCv`?5zSBb|;rprbMjT=RHyyCjY^Z_jU(wvhv9bpiMF9E^`z8ai&zzVI9tk!Ei
z_-6BkInuyK1M`a8wYZg|%;hupMMz|=Uv}v568Kp72Mn%~5~2mg`QS>PkM_ov(6u=8
zVZC6=4i$4MT@79Ld=Me#u{+b{QJqbzb3MShV4o!R7sj^cfsqV92@?B&oa~zMaBuU?
z8O~43!)w}{x9$*~`g0(q6aZl8<wbx?ttQ^iB+@53J@+|rhCkddLyGKi3?Pd-=o_%R
zT+<rVue44$$f*F7Heg1|9*!UkALX)U%-${x%vxc;4;ex=;rxNQKiV{c18G0ce*p~7
zy>?!%?WKpojzRil!h4}&P-q7ejsHcO>NDL~Ty6PSe|f9yL!QUfH^aRHsvh|^{2?C!
zIap?|^sBi%Vj4WbFW$|G+=2#jTsZxTu^got)stk-dhy?y;~|xeM$OkH#S1G><J=9t
z3Q=}isf+Nf2wkHk+EIif9~xCvjrf=c9zB^)M&l`Km+xtTU*V9^CF-xT*MTpy1qjs+
z-Q;z2<L$wm;byGUZ&n}`AOAy1V1c<8QV-}0-*wGTKwDz8CGI(%$8P7gcRT^srgQKM
zXZ_D><*6chpRFbCSe!RjVwSb;l_W`j^Pl3(F|e)ajawwC_Q&t`GU}cBGWhW~BhzdZ
zDRMyH$j6{M)~u)6knfNTX}_iDngsOU8}Nxs@_n@nC%<9k<=dv#cRmbPlg5GlLE*IR
zl=DEP4=X9@_?XpKN2}Uc)6>b6il(2-QBOgY;0fMi81$mLGke<c9O@{i^K;1w3hpk{
z;{LvR2nTZhrM;YY?>Nzb(|^`iV$Vx-j^&b#{db$-JU>Xi?)At*X*&BYIOX@9eCW#g
z&iI}FTHp=PP6p=Gr1owi<)E$R$>nr<69;?*>hB7biIYBk2&=OQmIP;$w2$DwENuP%
zc>4;lsJd?9Arw#%1rZSGk`^hEROu8DM`8f!97;eM1?i9mDUohzVL%KzrMo+Z9vb}j
z;G5s)``vs0|33eI<~ehAp0oE_d+mMJT6-;*TR{CC^#~Ye8e@l6zwrd*pI4Z*&GT*Q
z`$Mjw-W!%VbRQO#>rS4YUON?uKdnKwwsKz&Ue-~fhVbx|i1)9lTdk<_p-)xVokwFc
z2KIJUNDluwZwHF1jMqpnqYOve%1chc&Q=6hxym$w-2=aS!6(8>4(<U6YCJbP{bHRb
z;K&KRr+*za^PWB{zckiN;21Q%1nnIs1N*g4S;$r`de1H{X*>W7;qLEEx-_nhX<CV9
zK1&AAyU=Xt4flaNec1`Wexsj!c!XislS-5u$l8}i6Uz`;xn(<j<eHS+)EHP%$_{<9
zr-2KU`A0if4v$a@tiV7)lM-BYY_)O{^6P-F-q^V=u<l#^RQ&q<Yh#Cs^QS_!WM;G9
z_Cg(&Tm5g66WIC5nOcssatfnuiG#o^g!a;&+L_`-tAAcklBgnC^}Xg6mFae*C)nAF
z`Q;$9ZYb<X1J=`COq<X6r;c%|Pf7wJ+Ei@Xs11YuFY!=K4%cwN@iUiQm?49BY1ZYf
zDL%d+SD2(C&+@s*vS;<EK`f8~EYR)UYHO=gZB6g{o?AQjA9z9%Z#q??lwf+JnVx-R
zi@T$~0|TDtFZR_k3lzOWzuK<?*VS`{`t3Q++0>XU8vN5kHNXTm5zoD(Bp2Hp7o*ab
z+jSqz9-SC}W~_Wzi)x*Bo{^yby&1`Y)q1D}khu3slfEv@${y~V1X&nU3-Q1-!AA#A
z>@Y88YG5HddwgR;9i4ObMG3hbtn~DtZ-H-z8l(ZzS$(whT$r<K@hnDMMUH!T@&<D7
z0?36ekYf@$h2rdPypkP_o?zGO=ao6;p9A<SbftW>E9Jn~iWwM4NI-e;dgLp6@@r6i
zC);a#N-S9=*-9eTBE0Sn9BwrX+>5QNCe*<8Po`ZPBXXzu0A;nD{b@-54*H2Ixz0CE
z6I<vgGew>ezByPC;eC-W*qfB3Bo5A>5f*8i(EDMDyw~ng)aX=Qis=yQ2uU)LO+0ba
z^4|)*f9oEsw{5P$?>fh;VkyVV1^~bh87rzE#ou#3K8zn2J#^ZO3rYi^DpuD6C&;#w
zF1|mQ*%Po&eO8knF+Q+OnfsWJ`0yeH1uT$w&Js8-ZF&P7#3~KmU(!%saSn;FX;d|@
zVy}MNA3UsS86#*i_J?8>`qlp$>Lf!fc*sLM7S@}DmJI7NV=f0UZW@o)$I&ZZ6-ceM
z%dgrE$3s`Zn46E&?1GjSNE&z3-0>ts1-{p^y+daI8RTIT`32(x)mm}_N?W0CUD!oL
zl@*1Yrnz*8{I~?U+jzQ7QpqBvsIA2%!|tBW%<Oosr9~(4bgXRi^iYGB8y1f!LM5$d
z=9@by3Ln~tO5U*s#v3UgozdLwi@@a2&W^Mi58Nzj?6Md{mP*H&;7Nabg<MUtI&dBX
zz7^<@=+iU54qxexjpnYwsuK>da09;}6bly**&AtMAwrq4-MfjD6QM)R{uq1Buey8_
zyLtx2UTpKa!#kezXlQgQ|K6Y+r4jIPpfqj*M?Qm4!i5c`YQ;bvj(>ogCD3KtfXM1n
zL#SNeo&b%#GhyEuXApP{iR|6WF@K__d)5%qTg`!ct)1wafTfXLp~td!1wy30kjG%j
zo91ZWJp$|}O$->Rzj+9Jf9RqqS_StNh<s{0{8fjP#}mbGFnUli%2;+`Zh@LUU~Boq
zqA@WaKYy_&Kv!Xd<g%cl3TC&?H$a{HzCMF~E?tfH_VX3fuVSFqg^t90k&5&-i2VEW
z_`&#Og=&Sj!%6+YNdR(}7Ypn=o_I7~OA(EsB1yuG81z7*&Y|7k2X+i4`jo{^A5p|)
z;h+_4TIsqHLLzKWv`R0}xr;$H1>b?MZjI84iZWDL&2bU1KG1*1<*+BlnXe$Eh#G>G
z{1|OzO=vB(AZauwcTpSIgnVeu$U0Zcz+3blyw)#+BvERFw!e+UMzbHbygKvk^B39e
z^GhClH>5r*z7?!PR$0brw7m$y+X}2HWEU+tbJvMJKPvBf?Ch62652C(po`jRC69l~
zz-I5rSA=N?>SFl4a($=-<p>FJW4BC%X~p^beW@k!dg1AuQgtMk6aoEGK+_*1b<2qf
zxl$iv8;OBt&&3pK14})!Vh?r4QdCiufH^A*EOX7fiG*1-8G%{*>p%-my*c<+M}$(-
z+N^YPr6CU)DyS+VaDm+i<UK^%V*jzNG+ts(Zpga8lX**jteH>-{lpJZANpg_npi)B
zxbTzt=yDf!lnKPrathc@OR7O<kox)6Bg8URg@Nn}g27w@114hJ<k9y(X(VK0TfF>z
z&~PuhFhnS(Me&v9<qjh;bPR(CmUKR#%@b4E9&zu6AUM%jiD|%Q&qks_rKGz}sY;Qa
zbRphjA#fP%`p=AbAlb)wbqcjXWlXg()?h0EF)~F=-rzTv^j(>YI(F_Ak7$5qv+b^z
z!vhfOF(f0RfsRU#(T@T>9S}}mbpwpPFF=tzHOuyR^GJ+ghAO8*P@mJVkkvTrtQcjk
zohD8${@N>sC8lSY&#Jr8sb>LDzL!ttk+%|HeI=Q>Ko%iQtZ3Fz@1`T{lp+e0@F5oz
ztRCw0RD!Q>U=M~3@qCxPC6ox9$nhE6oBh3!fBnBALRsCzmYq_;<0hU#JI74un-%{W
z*0!5;>UIUa9so|Lo?dc_iw00EfqXF-PyIOf-H3tuECX0Lxx;vs8JiGY3i}mxvJdB@
zGIIN>+!ru8p3lT{qb?59^S2bgcBDi<!KjJQb~MX6L!s!7238%pCy)atRO_uH4;yL-
zo(x0`^Gl7~^NEF$WifQ)zX}I810qVt8i53nw}w8%O^{>kE@o<qM@&5YgcMtot#U+U
zjz{>(D1*qUn8?$U0h2tTeSb}1%ftltc`gF370RbEm7$-kD7PNCRyWamVoIB>80J5E
z3chsLKQ-_`2&0{WGC6un55Diwr}Jt#$!x*>#mgx6hQ_4bH{kv!8G~SbYv=1o!f{3n
zB#YC7<SQeM$?v<LtDmh3kn<r)vW)_kah{M(A{F4kEs+=6!x>3<Xt>E#o4?mSGvnLq
z5bfsXdLTyc3GvMt9r&{L#YNj6w1XFmFQ*{n0z?zV4v#QISw?MLZm3q=kckunI;hUs
zc6>3E8EL^|ZG1m@VGx{-n+3jAyAa5s!51KcX;+XhOLFdl-~diSt+2kRV|p#3z!S7f
zDTF>r67B9&p)bPa56n{6Alt-1`p*DPBe3qo_a=#~xY%7v4=I+u5W{6|v}g|0Umqu(
zf-;YH;5lU{7@W6JxTxJ`uT0pcNRsDomH+Jzt4-X<&FmCqVdQ3_qs>@73p}`%3=CVm
zXg*uM(d99={ee=Sdj|fy+X~1&ZFYe|-G6BY3-U5|eBroO1(=6B*e(w<aV1+<yo+gQ
zH_&R_1wqTv80c#A^*<E?<4p;V?GK;wpEUs7S~#8Lj5hsCYkx!u!dh~iYcmQ?4Ir<-
zJbO}Dz36ZpixscB3w7bp1DbJ^+Ev5@<jfJu7myU*_U_*yiTG??Wk)ymZTC0YY7V#K
zXr_&)3RjlG`O7~v4Vka40@Zi}NOVDg*??%RsADQk?MnzGsiq+6!$6xS`l-sf&Ue{a
zwa|3xqFXY*;YilmQDC%fHgvX7-2+QgRm-g7x*9PMt!w}Ke!4za51j?{ZeGmCw~QPD
zLv1G<yB#`rcB^y&|43M_4SeQa0k}}E_zGbzf^LTpxK;k%SPFpv6*^2~VG9Dm3iBni
z(@NKO5W0tQdW<Dzt=|Xm<k;oTjr*ZnzVr}`*)V#{p6;1)@M#?~-Y796jPanxHd|T9
z+upsdxqMQSM-2dVi^XzXglO;WErN0jhmN<o1MkrF&jL6cjGHsMbE>j@z0kI=>xq%>
z1rK&}v!z^)L`%*QFe@;zv|GZIdkr9RmQQr@1zdlQ$nVwv`j3hC%H~2_eG(H9nZFF0
z3x5`_X3hwo&&}>07;z31K~W%pjgK$XKePV0Vm~mRns<_77@d(Kl}_YqyVLI`x2sQ0
z%jB@)SZwA=+bjklj4SPquj~OE-i!fYl8pQvy7ER+vP+$XbA6;II`)fzu_f@@N@774
zIDT?c;!Zy^uUEN(sr<3r1m&hAQ#oUc{nZsE*FnP;``YMLtDMwb2)&=YHz96h8R}%w
zbUq}1c;88S{aF|gst?t#^i28o!W`Pb@1#G$=M>n@>!2}P%Hb<{(fJPjbX*E^7G5Q#
zC29zS>D=x@SWIi`nNkFB*m%aF!S!y_wlrgC$BDcG$dFGz+Zb?@v%7<?3XYXuRi0ZD
zc?yuMx4#vZ@}c}W$_W?ZTc`wZgWf-|u#+5C2Bx!$7}&57(xCG6x!{2J($I8%qWU_1
zRjh3Adb0OP|4VA@6z07<3R-3~{5C1vmRabgu{vYZp*z<1pg?YI{C;%PR=|EMfwuDg
zGpdwwF+8co)z96?p+g|c_@t!^!F)!Pn-6@4KQmuq6-hb{7jG{Q>MI8}HU0>|;Ia9$
zJwOvzw2+aBNoncPRiv9dYudw`gDRT$oY7_}AVG~q9od4SCJ^;JlYB&}NQT%S)&K1V
zeT?My@L4Kc@OsBYo~V_(aN6&QfBb_3sllAasSnpF#R%^N0l7(grPMBJ@@zSZ`!N1Q
zW^fYXM2%X#g`#*O25NC}SHvr&kJ|pxz`x!A1nH0JNVfu>_EJ*5(^!32*igx>QfRB{
z&mZQIW>hsR0Xiy^1e9ta&Ye(I00}T5h(s@m%$S!0gT&^#tzJt=I>alz2{~j;GwvHq
zb&1wI^d}1lXfMa5HJ@Ca!2}fL0Y|J!R(>-6e+p1Q384eO{9q0Cc1$q{CTU!a>Uir4
za*i5g0EhvdtA1w<b>Lj#>4HVNg+1V6eMe`|3N=<G^Be0U3P(ojK%5ZRT0EL>gr-;d
zfBAGqI>ZMn%=p}N5BA?CgA><F=I#eJo`kt}PwZke1Q9Rl19ppLzoA=#Tp~V^y9d)z
zgw&;Ro9t+YNE^~MzSc}E9RU0hd5M0@uYH#4RX0w820w$N>A=c%$6$x1sr33Jww}>g
zuj)xn!{1RtzwNO=pc}<aRDpX#GcbTr?Btm~)&{Kn+?*?q21PNpeOXi2gb#MkzQ6gC
zYPqS;UgMXSpN?vOW?fOd^qKzON?|Ot0?QO(YA&@b>v#|u2qwErslO-s%j!I>rJJy1
zf1@WR75&yQ$4sv@s7xB=<?t4%-}!It{GNc*l)60lPz|N-iNP+fe$b}`>&oB%0ZDLP
z=!1EHGt{59{VrXPzi|<cq6VwDf@(tPf%#8h5sDGsHYAXWlLs51Gvn`S*=LQC`if>R
z)1p>AAsGJ2wKecW$A(#S2HN=GSpmH(<WV~#8Wweo(vSpsb=Ev&-|oJo%2^)pM#y5h
z__pQ)1lx3Z6`EC%@5ZZ>4U_=E_QLOm<qrsH#y1b`ZEAojOA+-InK^9-X?Famw+K%N
zu#0iNvl?jmKPP;hHM+02_pG{5>OD><WsXpN`ZpkEYxsSD&`%<jtWBu?8d$M+<;@qH
z()m1uy*ME-`jAt|ZMwaQgb;!=aj!B*K4_b)udTe3b~ax*%K!ef#cDFPqD%Z`O-&(i
z=%>t#Zs;taPXufQtc&VXr5919RA9+fPDV}izx~)-x>H7uxEnzY^e(Of|A`b9nqn`M
zls`><+CCeT->U!lhw<|^fI;lfw12<DxcVr6Nsq^}x_ckJ6B3CCaB)tAoKGnSdi-pO
zFsZ^v5X>mGUMaI7bY1^)&8;3y-goHxUj>Xw-_5tF62ssCId-ly)JDT$TsxEBWMOw1
zk6O=Y$+EF|)eJZj`?f|9U(z6|`$rQPG?tmHXoYwXF45Mc+G`dpia{{EWsuM@b|+nQ
za_=2W^dA^*Z@@IO?T*3JCGzu6Bo~yhuYGrx0m1N+dZ@?vstz1GyzcW&zgGsfnAt)P
z^2`R1;*Twro|h$^;DRV2|Ghg7Z@nK53_TW5jG=}QgzaEww8Kv=#c`5Fa*yj1_9S3C
zok95bkooLFCHz%bMAsE_QU^YsJ>_-)yQogKmqpmhxQLfyJy6uVbfapB#;H{*4sta!
zJBcO2!$pLBMOeqF`e1WK1EI$%rSCo>tJtcx($j`%czB~7Ir{T;(N~OXvR>G3@HQC3
zOWa6jrDXM@!K#3SIxrHKt{r}Q%c}C72$-+lvum2e_C%Ne*MM<GP$31;)c>0Ew|Jcd
zRCcQf_T4pS^Pt}o0)ZR!CyeBZVceAV#3(8W>FVkO>VfB6RJs$PJ)k1SJYB{FFovc5
zw?_UN!J5Axc}O|ZW&k0?4H)>ayUkFRwhbXrodIWXD8T}(M>ka%UC}vsylMEYg^6%z
zsJ<3axU)B-qr>A6(wI!yEq>M-hDaVsnJpjb&xp6l^x(qdnoQ7p%;slO@QD<3I&KfW
z-&sE7N>8g#WsN#j^3%j)vW1=1H0#x$84w8Fl<$~o^vBNk)R1r{N~4O-rzdtZ36(vE
zE*oJqSBP*?Gi~1<BTW`9)bHUFlsC}JfQm8~t)PH?R9E)|f6b}UUS1E(`$1XS&RVG@
z2yRPz7LsjO@zux3gZ%As+kUk9QDFL2P)Awq=e`WH5co?kSj4N#=eq_D&C53dmAcH#
zx0Rhk(_jbG7#C770+bIoLv^Hs$ByqrYb0$Q;9~5y2lVyy8|nW3+CXZO?uYAIq#zel
z+4hy1(V?76{ZO{l6Rf)zK1H=_AX4Z9ucO$%HYWceZTqt-`c7mLeLXWrjlTJZa7i4B
z%3HFBNd*zSRs<L$Yy3TC5P$%^Ed-~y@}Pa=;Sj93xi(W5E0H^(5&V;2N`K4d-#xYb
zqFI74%m9?AI)#@j1cTYrpBjU`Ox>+??nEAlKe@K*mst?zI_Gr?ENlg<jx_IXdHQe9
zKg)GUS>}Ip*4TMQU<pR4hv{eR8CI<FZZfC9cQECFI<xvoz$CiVPf-N=P7j+9^Gq8F
z9f9~TJesro^x}jN$Z$p69z0%afEphyY!}5e4seKSj|Wi+xtF1~Ojl;ZCcX*Sr0$?*
zK_zU(-P8Q|cZH;W-J8j=wqwbO1c0v|9JzY*1sE<q)9Fa7_#ijDY(Cli6o?GRgr69l
zpP#=dDxn_fiGC{96lG;Pr|C?CQf-ZUgnh%wB>-}2zu>OH!bgMQ5Mib!dT+3_jI<n>
z0|`31#?JuuX1EvTD0l4LhaqswNgzXh2O7J2^~G)_lGAu;q1pZ8Y=+&^@5O)d|I;Dp
zFEV~h0%9Z1>l32st9I;WLNCB%Vca!O<2I!gL#q`K@eKnNP3;<KU`{)8K&O8P-Xq`%
z!IUl@d^A$ASVRAh&5DR$61N0aUArsMMF=IzTjNVCd(q}XFiFGdxM?77uyFhOTGba;
zt6%JTqRS9`LbEfV%VOvVg!(PJjtow&CD@rBwC#)(0OMY_(dmCe6`KfyF!qlZcu*<v
zi~?2+FajqQm7Bjl<;B!lx8G2A*t|~fw(AOC__jU~NeOxf!4P(Wu^SfP9yAsxcQ|_7
zvtWjtFDj0cKfH6W@)_cKdp6H*mymq$`STKB;-zKC>?M<au5R`BHc#~9F}xp|TRlN>
zSdR1x9+Yjp5(AnvTqLO_7!rE2)Yz}^u)%g9zP>giTMj)DehcUcc4PQ-IiW9y9-KIK
z;k>T}a&ThpE+`Jn&2SDdawOW<9sMK>zt{Qu|C#aKzbE}IhJ|||^-2BVm>W}PLt$s<
z6I=*}-bnV)p6A&lWpg`c;InoK^x!M6>)d>#TY+{Mcz#TQmtCXmd{2wm-`e_11Z!3-
zwx=ZX$@58&h%qP3vK=t8S9s>f79`LTf)6F=f+g3q7>Ge+HB3847v~Mo_kfX$VmB>w
z;}8Sv>#CDG3qe0MtA77t|5@g@D<(^=&^denIS5|(RT}E;x#dUb91Q<JUu9LGbA8o&
zD~EDMJ1$6D3~a6ZlSXpJn)ATqjR^v~PeH-EvyP~78DMdZEM5W7QFI{nlO{s9r-#Xb
z(8CP>0;W1px+r`?o>M8uhQ9wTpiSCc5`XX*{_yd-0U@78xnMgw=bYe!-Le!n(}{(A
zhiggi#n5U05YBwh{6ii(nL0^bVt7C3lfC|w+7vaU&biF$`=J<`^@0aHmr&-!uY`k_
zyB%QZcweil3P3_nN9SqP>j~ojfDH#%=#zv-$0N#iJ;4*Wh!Dw2X``F7=m-c8n6T9x
z+VB|y&UC^spRg`B<By7fMHL;+hp>$TkKTJg;w)$nMTi)4Q-jpsIlSl+e+H2k8Od#$
z)#wq$qXrv%bilH*!cTsm3xElZrzIsmQA&!0oUi8N7oM=Jd^+47*#d;$&eX4@8Gtk?
zd}5&OCpa)L2+`00EG<Ka-g6YMq(OwyVYduPK@9&5UC@o6+4CUv=GE?X_v!EGAVa`J
z%dMzEIzgoT`TVFrvkLBoKX<z53V#p()g*yjwo)E2HDA+X(ulYLJfqcWTauTa%@FKQ
zaY9=60?^v1ywyiQR+^kl27x@AcX7zsH0=2MQ~nyGqCIz=E~X2xI0cG9`lah`hvaUr
zf9^*>RQy7ts9|RM2attnOu)}kklb5BeO4cAk$|yuk4u^m2z$TlTs%DaKLCPjo|?I0
zdWG-vS=FEQdF@iTO>^TQ0yX?PDcNO(N|V5q_e3_rLYQwo$Uk=!NF~KR0c1m2jn$Nk
z;yc97s{Op^VM`2Hd{%k-4lHXmQt?Vk(31EYe}w}Ysm}{F(Aq6UGNLPz`pNyLasMwj
z5D=iA!^W3buDp@EJ)_wKu{f&N8_5J{CkwU;tJk$(m4b&jNvKLL=j(i5Xk!#3^{>&~
zvWve5lK&y#G`(Vbl+yqFdsVa(8l5(hf^8a_jr)Hu{?j5g5&#r}2S=^|=E~&HESy;2
z>*}tspf!dFL)Y4i%1c!T==y(t6#gvs^9oEO^J?4n%oWC5C6ABgE9WvZH|p){jPw4z
z5JM=dj*@CgQ7ALSZa67}Tf0#^zA@p^c_Vwc+b}<?RrzQ|TE9~(J3Bb&4@SGbGcU8v
z^Y_Z=|HepoNWF8w=ST?Nm2Ex_pK>`z$l3e+RtOCW4BW^s)aW=aJ^K1j;jdhrUzW)j
zm>A&UXg*kW+V9_o;2#f{#1o&PKc>-I?z|<h7<x@|5{P0l-QJEOgzT-8JVF5TbiZut
zEb-uqgkOQ#P!CI$t0$T^@MTI@&YT%yKg%ZdD^wYj?6(9F>`ac_c{UU%g$_U~S*0KS
zt$;H!UaMF=b6y3V`pdNeLO{u+q{`UP8CqB?5X<-%at>->aG{##$9f;nN@GamF46F^
zf6@rs%HP20ap_O=MU<oPKYjJ><^6D!y|p`ZrbY<PuWCA*q37ct;XE}Ds%GGp#pw$-
zPh97CeB|@!wQ{$=cKXcj=^y2Pd4uz#4gy4~7+C0ljfshcfeu(0nAkw$_{vqHYt*-i
zX}D<V?uhX`;^sY1uX~^2f%wB8!w_5y3<$<K%x$gOs3TRKX8tb*oO@q@o58~h91C_e
z2Z_Vc{^>Dle!J7H_bim>IJ;}MVw`Ry_|XVg2PqkJz170%yiWFl-rUTc=oq+}rbs;;
z$-X=3{@Q=yU8&SojFjN{qc9|#UB|v}f+*SB#cn$|O=9$h%n!&lt4&jSS0g_~u_cOQ
z<CB%hj;v3(gw8TlgJY-a`|g2>uWskFc+AM04(!fzs3@)m6DKR7BGS`tyHuJl6fe-l
zZm6{q=cd2{UH3TW+*=Boqn%q5n#xv`#@QNV6?9{KjQ3K|-6$CgLq)IZ*Taqb$H%-*
zuo}8)*mpLCVD+%p{Lxq+x&u0<hM<G)ryuFXIC)^0r_7X?9wA*PmZ%>Pr9}-Y?;jAM
z?u~l!A)b$-xDLCva@qrZ%_JA)PIg|^Du#R1lOJnn;UIL02u(_9Z3Fi>D)6(3tS)3M
zStK<!JkwBG<@f<%I~J8(V$Bhfp&<JK*-Qh*evXVhMn{+)!nZtf)rK=#R_M)ky462I
zt}?d=@a7-9M=%|%>9m~0b<X(t7eCI%BNf$(V2?-gb_P9dl%eTzr;ACT8pk=wT#g!w
z(e$dxM;?~y7+k#j?Sw4lcI5rLtOZBAFqwp0b2ZwM#|PcJ?8yd<g$l!%wqDiAGo>Dy
zj_!7~4_No-4%U^1IVxgSS-JUHe?TZ3UE3*@scZ2x9>4-AS%4#W${xwda{m2NIw!I<
z{<5J8IlDb$q!sjH29JNm%X!_Up6q$L#mo1Ji40%bsX3wsJfhvHQtnA95EB_Z9?xf5
z@cjV^Vmi_pww?BM=$c`as^GWvfI3Arup^*D@cE`_Pm|Juq2v_XQ|RirPLME1<E(I!
zNPBK6tb2gTdw58u+G8E-v<G$Jlq<8Lgd%K;|B4CUyv~v|51l+Q)?%(-#EeR9WGWRY
z`SyrC3B91{i+OWncWamCQ$Z<IF;y$m4#ldMgT=OXa%8X-L5o6SYy*>Be1u!WE`qW5
zdTIu(WqPm4epqdN-qhq%>?Y@j?u4QSTV!Mr9HCLt@h|9QU`MnhZ)D^93XC6#uE5XW
z_~1~%BK<4$^ma1R!%VX%RKNindvtg9NT*MrsUfzNek>jMUC$1@sYR37B_jG@?znL1
zli;}D4(Vy?HH-U~6M9_~88A|kvqICe66{2)367L{laMb5=h|1{m%6cRMRyu6keUVb
zMI)s8HTP#EjOj!6D)^54ygaCPibO}w!1vVF`gL;X;_yTQ0ngr+V!!@&6kdXj&Vkvw
z&v9@6GnR|nfe*BqmTXU1E?zO`aq?ll+n#ZxN)hj&=^XdsJ~QQv=$Bj77RUfa?nm-P
zL5-;+Cx#Pq$-awP{>`Fd5dhuyzj~CN<i1)Z56l^j!siM;QCpLwTSJfsuz%DlF4cLx
zr}VwjgLN0a)?x??^frG~$zbk;uioy@W4@mh81CUfwVRx6<JgxMql=4d8Xk$?{Q=2L
zV$ZQX$%l6~2&c!%q#q~+lkYFtQQd4+7NA)&aVPo-vl!ngoSi(YBT6+`F56h@n3u8u
zrGGJJ)$*ZHjFE+=+#b2Ay(2>GR7|aPzeuVTYvx1V3^iU0JNx>mXjY+kUXSS>Z-l1h
zH21;9;ZjW7fV^&gV^j>lN=kcJ1c#K#?AV9aPLdyx>q@(|Wi~oF&TA$zr4IbpJyddw
zrTJCqs@C8#d~YTxE+Atke3@#K(9nCkI^Q=LCtVVH#hhMi^6E7P^RV{rUhStkW4>Vi
z$vLRle-wN+GE(_m#~`HR_78~SE)AKe148rL9(!E;<;1Oa_54-$-8(KzSC8!k&oDD)
z;50G#NP4S->6*Aggv|Qao9B($U0_=i0ae`A8WTY;Gs`p*BX3lCT%S0W`Sy8u6z9p7
z1(HS->olUt%QQo%toU(+(X3;@!wmvgoYmzJc<j*+h`Qr}@zlb{+5kev=KQdux*w4G
zh?7F30&KQLD-<tT3I+AQsq7MPN>d<ttG<EaQmyKBzn?QNx5Q1BiOtVzI(W#I<XWz>
z6YY{AN8RbFC{k3pHKOdJpsnV}haGb}4-|jlg1NQ3Ewb$^gWy!{J?;g$tZiR&Mj{^D
z>0k%THKu(eRX=PZVZFOt^rCO{*0G+sll$kA5+{OVm${0&n=tQSwvZ!Y+f#PLe#E&Z
zsziAaW&C3Ui7{4J(}MQecYE)K_1SzMm*|e&K)f)Hy4p?$8*ki<kdryk`vHNT_3x9Y
z$yl`1s>iXq=<sP*Vpu}uJtC1G5EPUSMI>0r`1!i$mTda2hT53sYQdh8aO;6i5zVo#
zafv}~h>(LVRrv;+mk9?UkB=gm2O4}!iG$~aBh)$CHsk$xyhqbKRBg2u%=V1#S73B^
zn<YoTHl`k2yTerVWF)=p_>GG{ny!RXHM8z`uW>tB!4FZ@wQED_AN+G@E9IH|^AGx#
zUY=iVd;)b_2EZFTmSw%$n)hY%?N#o}(R*v6-y_`}dlCb+P;_Nxd!uk6Via+Qd7Sc`
z<plo0t9+lSm=hR!9wzOdbPmDYiNH!>fL<wB5Hu7Y9>iTAkB>i$E52va6whS;eY6{i
zF%zh?&$8Mwq!Q*Rp%BxKrlK%d&;^7jX>^7$XX(uRmC+PdC}YnjI+6scF&xm{QHoMG
zt&e3y{I2G3s|pmSgW-O++=o!I%BDV35kVvFkjI3!;@u4=Gmb>Z4x!5}r(7kQ8_khT
zdAzfQ%42DFQbx%*D}O-zWLh{G`VJKPXOHJK)xG(T7a<$P)64p9WeKB(n#l?G$^^;!
z&cGaHZEUbPdrSQDumls?@phVJ-n1j_T4Kc9^LOSqZE;N)E3<a)-hD!I^sZKKiS$HF
zGzW29vavlnk@&5saE57@{B#Hax~)Q=Qg4Qm(2906X`*+$Jxnl-#FI`hHqVT!N}xJK
zTyk-CI0|vLVg`=XuJkRT42|8Iv{aCWvw`W6@m@#ofW3+n!N3|+?5chpT!q)CjqV5J
zk>lp;WUo`R<yAe6k;odIt%+dr&Gf0*mJ-oh!%vfo5NF_aG@ioxc1KeWZ{77(eMv@R
ziGRDD4(SI&)B|K`?OjS4j*chkjx^#OT!LF!UTslaLpL#6m>McxPHS@S;Y&CW=FA;y
zI&R*YnY&<?9WI>1?|<x-o;5p95Pg3iXDwG2L6_LH)(eX%o?^-lyDoZ37`Kj2tB?G%
z_7ex*K~Xv8+T61Ni5m4?b%qb7&4r%8QTJA}=9tx<jV1BZt|fl}q^!gm=4GSvemogg
zBf0`QmRo$KdTy<T+(_LkZpZvu;hX-_L(!Q|fFOzM_e)F04`-df&%Jq0REk`!L9FEF
zZpD}xaS0aEjyl**Te6GK#Gick7<Nw>Fl5pU{1k8JUc=X{%y*ixe9R7f6a-WwhTA6G
zU<wCaZ^wraY@vfy8WY~9)95V|3~ZUqKkucI-%)AhEhZp(UiEO{CNl+Bm!o1U(P?9F
zNBs>%MmUuxT?zLJaqKy$fm(YzoISctPG+ql8h(*`SD0l+8j;?*U%ozVddt<ge^NNv
zimCh!p1)84f+i@FF+%6V(Qwshnzf|Q<@fS^tFdhHq}7H<zvC~;!9C5VIqO@U-`b=$
zi;_bv6A#2r%aOd2e({XarY@PQL??x-qtNA#f@_*R&m`sVpGb_3-ac9&Pg3|G#Klv=
z@5eHcDsgf#W~;i67B8JU1o?CiZ<>Yd?O0;uaQN!16#VK@T3{@M3GdT$sZ9Zja1U^Z
z_v>txti)?;i_%T>?25AGD;cZwG!Cww%aElr8<%VfJ5ksK)Ts=CaN>(blB?}2C6aHa
zcg1}x7sY#fZq!!rCyG_fv3_|G^&~4{ZuO(&(yWGoZR2VY!jw{Aea0uLIlXJ}TUiNn
z$bLoze{ZH9ZhISw3*qCtZDVAOT>ok)z%Okz8)$<js&BQ(KBB@!#5@xWd+g1E{3Kt@
zH?`Xf9^g-G<_{hhTYRol8L(T~mZZ8$NA$++4OPjK+w!3Mi{xJPe%q-4{uRgGf5QB*
z`3~W2wHB%6ueYQdx42QwVE=7Yuw}%tMO$%N%-D<`xZ<Ns@>guicF7X^NxlA7g~4jV
z#{-;mPHGM^ILlNc*G94X?TQnmbh#?-nDke!$+1i-3t{(Le>Bt#Y$cLYcA^0U-7dbT
zh{*D4hyHt6nfn`PYRoe2zZSVb_ozEEvX*)CU6jTmQB}Ezva91*mk0A&i`MxWq9Rj4
z*^c}8qXu1o3?(;-bf2N!m*WV;EE!$k@*9)S(qC2)Ug5kSj_)AYts16gsu3p6<H;XZ
z^G3ao&Bz_uwJ3H*Mo`@uOXWPB^~m-hM>3vL!CU-P(<8P1sl%c0y9LEk4JO{Rm)~40
z-cN6yRxlv)6S>Y#nn1h9h0SxNsgkHzcgsM<Cguaj3}3XDP4j668td9!9KIjrg)~4>
zF>yD2kj3QG?v;RaHN(OJR{e>Sen5J!`O(a#X|Hru*uN1u)U0pkTa}+z?HP}9kn9|C
zMGu}a6~nqW{Qlyek*3#%uNB;mr=;P~Y=$WN0>@JNtaiWN>IqwV-9+EbCJdnvF5dFy
zrP=+5r#(CA2-2P0vYVqT!<}`8)_6CO;halr1s(38?>P*}t*P`sNg;CI$!qoL$8V-(
zJfo%C4o*)W`iw*`*M01)l@t?B5fOP^dmiR*LrqCjcx<<Ep03SA%zP3o-Z+_6kN<#|
z#<<Fofb7IT;K(S{Ev-f|f0PMWol$$&e$6F#{N5}4MK%aSfUN1=7v$<Q&2MC0J|ELa
zp(S<4!x7_B(?S~6I_|r(Y`H!(CZPA_U{?xhuXxWLJjq0j(ztkVPM!4{!^4Y*fwiro
z1iYy6vHnJV>(he!;ddROg_a*ixofq+M*G=HpxU6nf5bH7mPb|%Iq6A<E$?MDffV1&
z(DWepIwmgDr7E@0)i${a_8s>YDC|Ni8?|N%YzFSG{52uhtE=1TR~hJ%%i;~#PU%L&
z?Pc-ieEpVrBkJX;O=9t}&($yK4(`r4(mvnyR!rsVwvgibN-p55^({A$6i>ap#8Sar
z;X3mR19VNwhYy)z|I-`%+bjLI6WZ=owVMY1_G+^8IbsRTSO2Y(-m`KsfA8|I+mE%k
z7QAa`DSwY;Epl#GDY3gkc08<ogs-pIPM_+3zXM%u-7;WU&19|?eI9MEda|UM4v(r*
zty#Vpb}`<}j8|iT0X=&5X7sHx%6jNq{Wl$ye?srdx3B%X#sAjZ|D6O?hTAq8^Qm^0
ze}MjdlZgcCX3^khoZs-E1msoY6Dq|1fEb@8DLK=rQ^SpaIn<7VFwV0=P~Zb<B9Nx0
zxvJ`QAWpnVLEFnGAJ7OR-{=aEtH96yPQUomaE4N5((2c5W|cA8r=?P1a71Ze+r5~V
z51abXD439E2VJyo8z=!yW`(~cw7dM5Ubo$2`*N<3pLP4}-J6DOxZQsa?QbKD{!`@S
ziP!zkWe|3S96jhib9fPHw0b81>SL_Wvl!&LLH!ar_|0#>#+JWMq5p9Ss8rd`H-f(a
z^WW#@<w7a*x%odQo*1_}-Tyuk{y_`0=gNMc;Ap_A&^}7Plsf-UG~<^YUJOxE{YNVE
z%Nl2NDAwWmmY*MP?Skj7-M<gRuW8mlxAuz{fYF!spn>@t4a+U{HZV7FG6V^wX=Ze?
zgAUK_l+pR)1+SZc*Xhu1l^O=t|9D}MhbMdrk6L2Z{)dZ<cu<IkbW}IPbAK2u^e;Ep
z$9=9H*<PTMj<VOo-_1G>S|ZGk9(NM?tsR?^ACUef!Yc8CFqTIj2`)*$IH83~MqRid
z9sJJ^`^UHVA7|WS)x$|E2xCo?{p}sFpIao$$nHcI{{506*#S*Uca}w8RG{e$Kkv?>
zzq~wdy2T%Ri)Ld0pOq`mw&2E80maJMGk9{J8?})9-qbJa{_&vyo7{8;!ojZKB1c7Z
zpFaBfFw`W3@0<I4ME^p~NDl6ar~3qiga+&YFsY5+lru4AK|@R}<A%`bUqBnVqQU!N
z+FtGd2Mm^&q2|u#nf`(^Xe@%lUO&mIUjGS}KjE`LMB2aZ^gD{#TUDf_9RAZdDflHC
z|7=xJE1^lc-x?_&8gVGg_FT8Ft-1RQNkzt5E~7`P%FF+|+TD*8SyQ8Rp$%P)v&J$o
z2F(XUmOGKz*G~!2qXm^w`BGOz`da%Zwxmj!l5~gvId4MoJk9ExodF)7y=*#8kQVQ^
zzy4G{)man7j?q5;xX=9)9zGvUKR16`wYxEpiEllCFG(_v?rjPN=HoJ6^Zz&<|MO)1
z@8xDlESa)PXa6@KEJ8~^{<Bx;X$rdc92QnyYUlP}(2W1yYy3Ha|8(~@Qf!;#_X+wN
zCgjS~3t9brivG)t{l{pgWP{HC!~A>P>Wo+Xt*+_SoU5QM@qeU=|6^+O3s^*I+KG$A
zJO6DOWOt5Bl#`seqd{?#Qe`ZKI^yT>WWGKhqDI$99^`HgK40yE8$_?+Oq;is`$CPa
zIC@8)^+mc!_NhAG+Q(0y)q%xU4au#a2qpwsWV5o3jiU&qRH>>(k-R!)44c8!K|P_(
zytWZ+aS>9-B{P!l8jbhr1+_w~c4DAYSehf{=MoXg<#gQK5jep^#Tnd0yly#L?bAbJ
zLHX>VU#EtZHitcOKGoKANYcN`^Ll`zL{&XAM?_Kg7}ldnz85^rS|Spj?ERvxLo$rK
za@nQ)()l$@-Ov|D&(fz5jRCc=a}GSoo51$Y^&mP==>>~0rRxv+#SR{jY!Vgo)VbGQ
zb7~rfjn<S<g;hge^(AOl1|kLAKlQ=hgsb)L?CE_^vn<%p0bffQQfwYeYZGk8LfsSz
z1#^3Hb_X;bs*a+Ul+L}0Z9dTh{B8fWqXFW>{N|m{3aLQQ<HEt^l0lUjg2Cp+o7LOh
zEg~~;$5yd_S)NXeggzN?61BOBVn4C><vKCSXLqz{U7xwyTA~-|BWgJNG+xfLQcsNY
zQa&xoE9lOi!06hBdZ@qPx6>ZYwh(HyB&n;%;jMvXj;-!IRF+9fI~4;biB_RU(GC_O
zgY1K<n*Ngr>c{<S*9%&q=Z!C4+=zRZ+~9upWvezd)Uj4g6?FZBoy<lj)is2T0L_ZN
z<LE}sAXjoo40Psl|7eEbW)|~06bCNn;vP)wAl>$vD6WyOz~#9vEKn1vB8nDJ4Kr9%
z28a-@+;TPYmai{tzat|BbIP7|avA+t;Tltat9rqk61RD^IL3)0`I_F=t^0}6*Y6Xi
zYU^(H>aE}pVM#MBrF$r$S+H|D-dfeyp;kDD@s*W^`?N#>#w%#nij0E_Bf{xQ59wxn
z5E%No+4wQ1urRiwBer}=90uAI2M$|yy*h0dfS{_ap2y+-5m_N^UT`cd0RxB8Z><*>
zl-}OmS0JtKT2g)f%Kbg(P5^@bD4E@|;&q|2kimn{j{rj}N#0t*^B+ZBrXnn8z8&|1
zY=4(7DkPYO-s@1X`A$s!(2znIw+Sq8gKx4m&@I2?FdNyPd~CL^2)C4&apqW3Iu=t@
zb~s~grq_lW+kZY0kALh=I!->g%NuqSswwv&dFmqq_uhE&j=DN3VmgKKOEyQ-rluc{
z<m_?{w<)o;1KezNS?3jpvc5;4S{7l|$L;!9R03Q5wQ7m24)<@HTKL~?kUFI;>e%ke
zutT&0Q{o!La&8jn1%F|pGs8N~C+3&4NP5q|gO-$0sw>R|bs8<I@?bH{=Iq;%v%h_s
zxa09i@10atrR(M62a3w>*?@&mRnYwDv0+mx{PVGfd5>}zhu53+rJEnibXwNB!!Y?-
zL!M4eUJl$?KkQe~TGiNN4xriOM)Udt?h7c)a@VfL4dSx5^_dyjA=LQa6L?o?pYzYF
zA9Yq&C=z`?o(99d5OKTsI9mTi7%lTn!E317>u=C{IUT)rw`FxK^%MDaVWWLHRNiB8
zzBU?OLX{A!@Rd_nGcHHd78|PTc6pRwQ)XRd$U6((!4Vx}jP(I6VN_Yr>o1TQu@+Uj
zPVMYZ{-Thsg*_p*rJr?w{)H9CFlB}BI&DXLYQ&sd7JHqdmgYevkwG_|Z5TAeihMd@
zO-h*0g~UM>`a-$3e#j!CM>aLkvntkAJV;yFiN2QmMZtVix%KK8)gW}UC?8sx9bn3v
z^gX#`mVoi~zKG{4e*TAJ!rBZp=X7ff7K9Jqa>Az^UAj6$p-)yI#g`W{EQKN|(IX&E
zi2HJ)0%(B~{Oi2}cJbzK3eApD`NdX`Iv3aGW?qjuiL{ksMIO$)9jDr}uObOyFV!lZ
zIB)`@*^O4tE2=|6uVJmigI_Bun4=7g-6o&Pb}w>BM|W?^eV3SI;gC66bLPsdE-H1B
z1VX8~t4{=;?zp%Bj*Z-xyOS$sOxM<lHwGp9en2iAbcwjcjOW`PzVvt?HQ8{K5u&95
zY>)Fvxvrc;gh%m99Nru-7)}`Tmqw@!A>>PIZ#h3r-W9|{%Om({ZNBUS8u4cLkwxdV
zFIx=(r_A?qru{0JUhS@DYI<$QSs7iKIIxTkAM>N-r(1zr^+C_uevOvb@AV!m8nAgZ
zaGGbe>A+c~nTAr%@Qw7i*LhvRNBhn`;QsF??T}N>aX~n)bP301BQsDm2O`{j@HDuE
z*=7w1J@;)_$NBnwq63`wN4;di@>acx!fysw(lXgUE%Y9&q2;AQ6^)i855llTv+A#W
zr>ny9QF}KUmeadx`~#wF%`Y@T?0@<Lk^^|yg*J{|%!7?VaW^?6i91zl??-*U72rd)
z11+9~_rb!I54}dd^fdI3ipVT*3I$u8YwCYyamW2Npvz=wZR0v`D-kA7eAYSgRvSp{
zC)Mk^+M5f_yi=HNm6jxji>~D$RSNM9Nz=mDzn4gl)u7b^(ov^}sr#dWRWIPi%M3um
zn0Ji$Y#(4GjN7@$(K+LlH}H&*h&x7Uzn{qAas=7SDN*Xj^C$V7?1!tNhdjliWEY;5
zN1LcbPv6sw5}D2!(JH_5b~WPAWu`oESnnO+Af(*D*1l5_l;T1C{P7t3`mFC{jiA%L
zno)0kYrW%_{K8tWosoFdiWU5GI($jM!A(x7fcE4X!;uXT-Hn)sec?#I=v~DEe+{^`
zB$3+8ottC9o|eyMBT{NF)T>STb)}(nQ@JWDg%O4&nBUwVhPMw<>=V8dv{^9=`^L00
z+hp-5Y)ydG-t60(@YI7d;k8i3fcXo?tCqAKFl~th7lGSR$`sz6OY_o8sk9bJtg0Ky
zhiQO;f4DtXxlr)MbF7`=h{-TXk>E5ySs;CPEX_u;0xJn>0JXs*GU%DQq^K`Rf=jiJ
zmb+|ROL({yXG082+)>v=2{>3t+DNX^T?rb}%pZIzQxZdMdRa=2X^&wP=XzQzTiFRs
z*aNYs3@TlZVN(ZpM|^j)e#NIE7rjH?vev{vT`Okp?^|p+=qz%k?e(u6KN}{CY|(Lp
zPFj9;)*{;(nJBu2Y-8SpI;>rMSS}J)lctv#a;*2LX)@30*7J>=_bLJ;WpyT915ex2
z5DgkPKfJ9t5uDi*wOl;n>$v>zfWzXeVfMkd{-)KG7aZ^wcd#EZ$?K3^!sq8za+voV
z^Ll?ot=YiN!4d)vtQ_ib*4WeCsEcGODN}v^k~JszmeALJYdZr~8=^X?Eu#9n$6M?#
zr-D;<0(cZS&o@O|yD<@92r_chh`XOV$gIHeA1Wp<5;YK@kQS9)Va*E5kKCtfJzGd?
z5KbD}{*|k#M{3lrpYiSnZpG==_DtYc?bn^souVm!B`mIhbsa9tGV9*nmwR)GUi7;x
zKekau^N3AYuS{v<bm(Bn(T&l-dO}F0p?UAyaMSKMo0Pb8C1NlwF1{3OaX9ZUu$JzU
zD80w`TA)2c7<U-x73AiejBvYu<>$AYth^Wik9oA!P#*8|B$?MNs*PaC=>}gb;$v;T
zNkoI<XCOBFzBU^*r03ByS=BTjzTR5IYdkY4@uZ5)I~@N9#C=v#{cwU}XK)0yxc-*h
zmLt=c+WYj5Np@h)^yqud#Go3|j}b)^K?+yZ3WDhp6ZbBLzl7}(6A=@)NN2~iXwEpW
z58r2=&{)iu$hh(<V~oB$&ei_%CdJM`YEQeZyWP?C^yI8CI1aWI12Wm6;RmE5-+!D;
zu|qoss(-n+EkhLSd{Pp_#741FH6wQ3z#+15`fTQpsR%+!*|4W1B7P)3@5YD&0;?P}
z(yV2(U(Ik7Kl~~!Icxk%{Wd|sq&w~=R)?F?L0P3hQcG?C@v>ec355P)q+39IYS`0F
z1fQIxggxDd$FL)|g&F?EQG=bLFg^thiHpOl5zS{XtU@p!DlyTw+TER6y6vj+PBa_{
z7ID{Sadx`#dz&_EH$${_-BSQ4i(m~r`+$c|fNY>bxL6Y2Z9O@+5!;CTD7`czf%E9O
zLWGLod4i4pEv1|mVc2R_X7{_qX`p2BS!yeyTzo7$-$v^eZe&+k<UB8m_Bsz%mev5>
zh=BW;7OXl~)5iB)W&4Kq>)oBlW0!d`-p412gmo0jH>QvuZmnVY`M!}+Jh6J774H1b
zjA}O$Y7?9sYM2(Qv>r#79y(Z>7{}|^&3j7zIEm<VdproPUQm&_&e$@Rx(I}QK4YCj
zKu60*QLHzzL4vH(Tk&(1;8bpez2gkg6JhbqunQeS#Z^yFR~E=eaU>9_Q6wI$$xVu_
zDf@b#ag>=_osBm0I)|T>8|(AedRP?q@2qFEOk}-%pi~S6!Xf?@{7RYbU3oo4B{LQ{
ze^n}06l~{RLw95HIX#g+LBrL@S$CX2c0X)mH}H+scYeL<d^K@vA`VfJkE)cO7fvI+
zsN(Sk4+*8+tg8r&)(&rMfH&t2zDY*Njt(~J{(!voIsQ^0+lZZI<Nmr^O6b$beWzzm
zXZlz|B@_w6bQ?El!;tc-ay?uThVEjys>KyQAaV|(*y0KZVux&Ka7>@UI^kNV_K4v2
z%R_H8X&k_@xFJ}~>^{nPDvZc|!qqJ;>b@aA?=Y5TCtV^{=N3-Fw5!O(mW4U(pW0)O
z3}t?(U@I&LDCByAJl0@Nu*{vvQrr&VOA16TjE(iW$s`>*Iq8DTw^dEbedhSTunCJh
z6aZn5;Jr30H%ryKiHE=xzyPrQtJg>ON)f$mL7~sEO0A~(-MW>8d|lBhKV7olOZNx~
z%Wa4?rt-|=uu}x-xhu^sCFO{&jpH@q6wj{CkC1tDG~pk*FoinYXJp83-s9o6z6Fad
z^+PoFO#~@68BH@;0s*0iB>opY7J-{d%-&N0y+eW=ne!1w=P|ZM$rD&zHsbPdrbIu<
z?ax#URcTXH#|zp7fe{Xh$FwWLW}J1iY(FfmiD2d?vQ|#^Jbi2_dAruz$~sozZU>1Z
z?<eTv%dPSucxtz`B>Syd$bg?^=w@gUtjsW@ugt29VqMJhf__<6|MI%MnO>9w$65)&
zQuosXtRdz&AMOoaijU!f#WzV-6<e8qKpq$*Mc-kve-lsja}L_h9)eB#lU-wO%@Kb5
zs3Xce_&C*0g_o`DYL()wE9vFvT+>kRCPlxa$H*fK#odz!V8>_fRlzzIcq2~4?8I$1
zPDt`(o9L~SLCMZ%@@w<tS1kHk10>Yg@(m)qF{rqz#oiS4g+Ab~nmaBy5T6yv`Ir_b
z)Ov%7oz^0;04^<gD`{(+owIi`gV(^S)<^dv!x9^XxOJGAQ6=RV$#{OrLBvj<gUlX-
zu&aA_FSGDtH>}g{!q6X(!eO9~6xdEuKEs)g$=Le?(g^LjwP4{u+VMu(VXQAtlJ0G&
zOnI$Ix6ZYf+=?PA1|fK&2p0~iRqm2oWDOKLNM%hwLCRhiwQEXv0#X7Z<1y!FI7U}f
zmd?447aZ$3aMp;6-bOJ$dN>9<bU0|e+Jx9Iv}&L-h_J@CP$dq!U(&KW-%v>2GsYvO
zdvdf^&~UzFBB2TYEA6S=M(<DsiCSe%^v>W7c_yB(6*QT33u}3@gll))Z`aJI^)ubp
zZC*-qU~v(P>T8Ik)LqW5lE!?wkv2ER6JHR3P^k*z&vPMW4zGKVsu9}f_C^M=6MHIi
z8>f*-r6i~(6iz@?ax-IXuwZD$kxUR1p3sEIe7ox!ICdq0Tj)$->j9b^=Ju3_8X0Zb
zS90HV*qgeOr+6CaeZNRM&7nd7c2}=KT~hywLh9?{^Sk#1Qks{&@)P$J&!DR>$ld0^
zHB~_uXBU<hpNpAS!!gBuxm|eqT0s^Sf@k!qMm&?@yre;KBQjbm8p}P{3cHT)<s4lD
z(LF&QaaI>N__hj%UuCQ%W>I3P4{p_=#G4+=I}j|wC8FcsD&aRtBL80QP$6a`T}pL(
zW#a>f7OHkJw@7C1a<+$Uw>$F<oRf4NianRS&~YX`#I+~}!zBMfaEv%CD1ycy9GmTG
z^1ac?UNSdk$B9a}ZtSEC(KTtXtCc^!{kk%yNR?&e^3qh6)QoG|=ndFNY2d?(&@|$s
zw}?&uk(<>F{af<-?&$?q<kkF*Yw*^ta?4nO_)hj%8NcJ{#htMtomQ%<U1TayW7_4%
z=uvg-9WbONvN<2P>S=_TO5~@opXqjC&sNB5`f2N~|Nh9pi(#eU9_iBNc>=?7s2pQD
zf!}bX$&)Mai_<N$tG3g94)6&xD72l<rQpsBtSc9(TgI|UEM-n_Grsm9ZRk)rc2F|5
z=(mto8Y_^G-xnZZtoNW6WXG8ep0f)JcDgpZ<~WUMhtr5&E@wXq;!4LeXix01Sse1x
z+3Ax6|9~(XICR&h)x_ftgH8IZJyUu8(#!mL5oD?Kj7SkhBR2}~bO0r*$dy^F1w&%+
zr5xqM7&eO8ptAJwvcX{nRm|Apw|6RJm(tvkn@3Ws%#Uc*Y+7&Lf~?RVn{Fz{d-7IA
z2t0W?MGiHt^^~x_NypQ+3f9#sQ>Tl0%>s{~9(Rb3eBGU&2uMJ_7lUst506ss8~Y~F
z0wz*}s4^wZq5k`|#5Ze$s@kDeanNfYmDJ^qJ}oJSgk#)4qsGRfRZS<MLyl2Mz(rz*
zZCgi#kG$Wi@*T1E@44Q?NxxPuJsEZ6Nc4Q8i%$U#|4Lj|*}m%CAye|L!Zt(NI!lLA
z(LyPpx;(FAubX9t4(iS&m=g2m9?U<XwioEoMmYPt;2@Yy9^x4jk2iTid$88lV3>07
zu>bq&J4YP~lqtiYRM6-w*a$6EE{3$vz_GfBm`t4*uas7D-e@o~icWqkaVWDt0!5nI
z2KP$((q-J^I0=YPFVIoJdp1YV`RtXC>G{czMCBP_h21t0H*@F1fImB41`2~46Xcor
z0?fH71B*8-S}H|J`}^luKjh6)8I&8`D*W8XfDmD=Fd$hyZME5FIIv=z37jk;x~naS
z7UVNbjcD#v)iOs%>k|~K-ktsCZeyv~Fm=MvHriv4ke&{O2lvXXQh(30dwecL+j?<s
zh_sS_2Pm4L;Fky01V$2*#jkc3G*eg4zoyDK2YWVIUg;{{rRrSPx<Im~EtBx6wKvpU
z$o-)?^)d6OW&iNy+(7L)W^54}bF+{{rq`j?33%-H%mEL?B4XpBdhu<sbMm`fq!Skh
zuCu7sPoVNmt6%TGLey;_RbGE#)eLgSyPkdXB@(Zh?4e7FA_i*WYe79zr@HykuByv-
zkD=a7WA3W)Q-MP(6$5(R+^Ds#iRc`}qlRMn2I?XCV;6c1`oQH7pqPz;d^|?oyqxOZ
zw~B}<-a)1gsaGepvfhczm!gsQtk~_JVd^=_B52l9ps&(cmg>tS$-#+Ue-{mAM7)`p
zs|gt{-?_1Y%2X1}W};w@Q7wP%WcEFTo5_xHN`%L!nZPbFz%beH^XS!QzDZJxI%KFJ
zsvUDZkKr{0g840sB1llvHdcWqb6oHPu4b6M-)P#BtNUE{4s!O3RVn&QrdO$9_|xGi
z-OiTf9f8zc@vv@bv(#|uj|zjErNL}Cd{H<1nxXRMmenMtf(+&ST=qI<5@YylRj_1~
zhWhG6NHg2#!yI@(tZ+zsvF4i@1R?LJ)vAV%dj@~_BHT3TBKhfF2wE4WzQzhV;L+Fp
ze>i)~fVR4>Ta+rL0>xbep?J|0C{V$*xI>F;@IawJ1&RlEEAF&t2q{q9X$cxaaA<)9
zD^{#$x6k{0-@W&o@BFww_`zm}?7i1qbI&#A7-Q-FjHk}>KnddihU|Mhcd!y$A5rmn
zDhbn`tMIWkZ0_-!%3@pwmbIVw@95j3yhfSRInOV%c7L1IuKKc;3@~zBURPQ_N*sUp
zn0mC2Qf&DgNw%6;0if6a!Iz(AUydwaEsYsaMEofO$x<v(d}Z$**LAlJvUp0HrtYDr
zr}KtKG)Qf3$>x8)^r)_z2L}I56oK!fNkN0R5Yp?r7Vj`p5FH|VYdW_lqDXC;v?n*y
zy%PqQw?e((CJOUS#m|i;0*Zz9FAHhfn17SQPrwSzP<zXsK#rKy5<X2`QmeW4iH=PE
zn1Jd&Y#3OC_*5%h&Be?+3HwJdr}hTIBu-&Qm_uG=$==ygxC)0NBZH;Q6X6**(=owY
zPm@F(wtKiezo`uHbT0yQf8Vc7Y<yeFZ2bGvM6Ud70u*TC(W<Mqd=|t#D9I$yeF6c<
zc3L<eZYoyz;ApKt9Ls#(KV`ONqmnCM^8&tP-QO2mi`Z)01At)}?DZ?YvW;u!{=h<o
zz?GQtjPZ40@lrI3DmVJtbOz4)r_vixNg~!R83iUzvXuGB6k{K<_UP6|oY5EMrHOw0
zyzN<RQTs1dgeYCXF+OJ)gAq<kVMNdlOWyZl&Sa;&e+Yoxuk3h<Ov{g5x0kb*|KM&r
zyaXM$+sriDUybthmSyUBl9U#}khp9_PoM$hlw;vH(GS4N%;c-wRfqNsvR#}PEx($F
zpY5h~@OkhUAQ_kd)$!n7KN%Vn_7x3gZ1<E&GYT^;gg$Ri9Ah=LX-#WuVEatuR_F6s
zdHGJYoLDw6y88Nqh1XA=Uvf{`(l$1ZdJdPEIoiiN+EP1bB_*h7Wa$-~G1T|gM|>Q<
zuG{$}sZ+oAmq|r@8CXlUe8q`rz`irKXP#-|)bh;BQ_cDQT}rPnu-;u&Vr^z=!5Y7L
zr}VeSjdSmHE{DG4yXWh-UEIewx)&lPvmT)+%qe%mr-HN!JJ0If?RIjRTh&0%X&UK^
zD5<d;zH<6a^o}f}^`W4XOzoqZ7`MdnD-BM!tIOr^=CPfWP%LUM-5x3|E%0vnUEzZ3
zyrk?ZIr5Y98$Kt@J@;Soj~?pL!>Pr>wY#<vZ8Q7l1xK^s{oxyyoHbUpeA3Eb`r0bq
z8G04wovk~GGiA*tMP6ZzCz`#Ibm$gMhxP^HA7+_Ze9oUTs~V=wq$BZPi&n8YL&LAz
z#IMOtbkFM}TW7G?PmbH|;Ydf$EbZxZ*~rXjwHlJ+Zu8vgiTlhCqio=QxR`*D<L@qU
z1GFTla7`UQsOL*H$C%mH0kNZR@S(SEbeNx*u5|%}Cg;k@tv=1^WS%xXr2zS$>v%^h
zA?t6^yOy`2gTAM~tFHG>RMJQhGiYJSoZL6gyF+m(R$>9K#}0*ju#i_(m^TI99i+c>
zmB?$0X-qa{f(TR_4<--4i#G1zmW{LPOD-;(b)Qpr&HilooXdfEOqeZerjDdk6uK`~
z)8@!ptaaF`aYn(~Lv^V3u94|FR98^p_$g)DXm1B;|7f%I%*sz<1&xg<NOD`9f6)C?
z?%dKu=h#k~Xq#JRs{sv>vzIE-djqd!?=@qt?dt;Dv|Ue%mrwp8Wz=EfeW{A#3fA)3
zEYJQFXsq_J#e3JD7J2W@n7bb#HW>QK2WL?$S*-^ts$v-S;_p{J#V;eTytOD~piZ!E
z=5ZZse*eqe)hgm#png`Q^I~KN?|N|yXoeYD@AZx6!jXH_5f#CLr&$*69f@Piv_YFL
zIT>1;{b>)XnsF-pXDh`+9M4uhH4g=O=0R>`l-p{ko8}k)c;Qaj=pV?y+{8pWB=y*`
zv2~q;`Zk=R17^NE-xDynmy82HQKYC?Nnw(Yl)Ku*pY;C9GR3^dD&f*3PsWN@fFRde
zcGdK(w(Fa<)Dv!dwkP;or9j(h3U$417rlZnHq8tX-~f-VqIm9NqXTI%APABEY?izC
zXG*%pg}qd*P}tV<R4V*ur6GedCXoPFofEGCvim5zL_0tG{`F3}Tbxx+!Yv<*g<4c#
zMDW?KD!-gB(;6Mt6u8bvk=lgM`X?i!q3!#yHDPJuZ@B}qgTi~Xk!u!?Eg@->V<US8
zxOmtzPZ^$pkA?D@({&_wtov>9CjRi_opYjHDth$yS`wySQVYZGRB6|qLN!LHk<;oG
z&OhIr-%j*i(28N%XS6twv<`bMa}@sqJfQxrsNq=aTqL+*cQ9r8ZD5Zs&NZhNi}Ucs
zmTk>`(<Oq;l~BU@h4%&sO^O?rs5a?_^*kLStGwwW_$_N*f!8LNf^K|kA6Gukm$^RG
zqDs(4qKr8giHHYW^<m177a|teGUUamUGG;@yfszBaG$k|aeCBq=#p0{BKn1WWfTN;
z=%49s{CS~1G;}x{Z4Kb+cF8N36@LEJCF!Ey=@N3y(){ot4FvxZyxzIh5;DHJNX7Y^
zsQPOR{m+G_p7pPeiJ8*+5H*|XLe>h|g?I+5a_;B06+9N<V(N1dwaz42iGT8UU>&93
ziJ58ipjT~JA@#|AIwR+$Bq8T`0>LB>`jWYgTGmj{+3X?XQap2l5*t~hn)ep$(6|ta
zQ<cAw=!0+0OwrGJpmffGxEz6rQn~;Ivz-c(bx;I=-v`-QyT_{Sh<$;Y&Gsze$VFhO
z9f5xU%*uDCmJH+)AVWW<J7RV#5fuQ9^nK0n?Q`{@ZeY5Jmfddmpw-uNk~#ah!;4Sk
z^Z_^aEYf;S*_}Ch!h~I`1`MsQFW+T%xMuj_J56C&#0+y2jda}|>ZXT+L+&cu7`k)*
z5c4xI$5rL>W?p<qMuZk9YW~u^+ZRe%N%j$&9$c&O@kaGbp~ZD6$$qW?I4Y+^sGjO5
z-1Ss_sDt*oNp1B`a9(Tb3uiwG@~X$H$qS!jA540_5K@$mZu^rnB=`K0;?|a@%wyR=
z2|W~|dC%qSBj>cii!JD87WB#t=L+tLy%PV+I|)KlO_V7xgx6jl0QETI-$O)E><G}N
zADFG4jEA9@RV<f&seb%f6E8{mfc3Wso#4S4FE+aJrPc?2#;Z~*KIRD^VB5Sjo_#$f
zTgF~NIW_KDGl_v0Pn5eNU^8il@om!>m4=Sv?Un_E96WI46jk$^C?!=lAhd}@R*dz%
zO;F(#P(hmfQ?kZ~p^<jvH|EFEc{r|(c(6Xq?&b?+xgrUM85<{!V62uPFLc>Un)Me^
z%JtIjj?}RDf;I}$JXTs*IsTpbSR;WiCgr$A<#WPPArOO-Rw^ow#}$lLfiOWInprz}
z?u1t9Cb>MW+piYrutj1zCMVApU>3~v0=My(Y1RzSCb8pTf3;oRP#y24#1vR6?VfsL
z9h_X(TCe?{1~tai8mO>#o1;tw&r?ee?Bd@@%iAjn;&W+@i|4z265k1oB8TU;{e1^z
z1xF6+5%Y={;&#_RT9HR~Q|62Z00M{&ufPS=Oi^Qgo2_%xY*YfwgmX>k8osF~e^60(
zZt3IOTa7}Y)JE$NSrf{c$D{VI#hhoV=vLwvJ-1G>+RUg<WbbjU*}uqq1Bk_@affYr
zK<^la(DfXs3xmtOee~-!?JhN~cL|sfX<_u6s1OJPzWSUTUhs^up<_!I%r@!l5`B7(
z(|OGV?w4x4C>;*He85J}%+$d_<=>U^X`q9h@#LeK3H+;WYKVY>q@oxlSEe}OH7=}b
z8aYr;c4Gz;mJ|!hfIsc%d9QTsOA2~CckhsH_?EH~{VvFZJ2P-ntp?EDD3>~Z;+;iB
z^?FB*Ts0s2^yLKxJie=YW9I=RwK2@|63<5^V23XbhXQRkArsTAPy=)LOsqHgXYHXH
zV6SgLs+&t0t}hutyO!0|U_P#lXI)-IDRfUFUukVMs4w}hOaAB?NT?mw3I?6peVjo^
zlic<vZ=Oy+JO%Jn6>Q_6VamCLeV~c32N-^4jgUx=<WPj%KjlQ-6~zSH)+5UKuFS8z
zP9<wvC~NRI5uF)$%HP}PZ#Fy(F&(X8PNUD=-xioLPseso_7Ij1EpYq5jJ{8(8nHU9
zB7umvV{cyZ6>L1*QuS(@fqzw!rm0>DV2t7_?u{III%ir#*qUQ<+ch@yt1IwMXm}9U
ze)9TR@@>IsQ3G-=ka=MQlfX_|DS69CoKgJA^P}HH=W>f}5QrOi8i1zdVv@&+K3uC>
zdFbi%{K!?!?r|huLkp^LWSxe`Ud^ogWaED0O5-EcHib5Nm`iOLj@MdB)o^ktYjH(H
z7}{t>rl4{-TyB#1Sz<ixC<WjH)G<NZ``0<HIyP?r^2(UM_*kbHpdngWjVMb0)qc(a
zygJOahDFtM2y*pbmnj0c+Aj_d^;S<X$AiI~X)eoA+8oU<0>OfmY*MVYGZI(pRWJbp
zKmC=q+ct12y~L)Yhqh_-IVw$<nR>8CEFg<U>UG~e4z2p&_w*+VpN9Ocx25*FTrvAm
zExZK|br~~WS@sGMy(?P&kEk6x1Mb1QRCYbg^Gy?9YW{jpSe|GJ+D=%cEsCFY=#-)v
zNK*6YwR|>F2On^qURUuC<XYzu;wVJDaTJW7Oju-g<a*<HTfFM%T&bnN1y!C9LZR&L
z(y!tgD_>7C0VV<INk<ht>qFPIv<;Ama=-ODq+^crF^AfHxlf#)`LiOJ_11KVOX()n
z<a*$vQ+-H<%@!;uX3j!QS0((kMCdcsAvu*G{oN|`_z;_~1}(kx?X;Zg;W>datm^3e
zZJ2sVkT9>ir_GaH+FH+Z)^j{cWhf;aBV<1iiT2bnX4I;cilwVTZISz1o7n7;8TG6e
z>LHo$Q`UMQSFlezDfhQyDi~4xnkT11f^(XwsV=vk1|7!hdd)H;1qdhN2*``Sl}VEv
zoawr!dRhNLyIn^M<Oi^{i@D%qY}pz`F6D1!%z+l1`QeA;OHRWaB?HIM+Lx@3F{sZZ
zl?Yof$UUY&*7fmfD#nXg`wp%5uadf$jm-RWQs-J%Rc1x-0EY){BWLduzv#}oMxSx_
zjJ*fjyW0&M+dxnq?`C`4bg-Sx(+DjTK?|PDW!7i%A!6)dqHP~qQt6uKV#0yl2rl@(
z9m>RIMyXMrpVm430zj<}NA+va>hWs}@mP1*molLhF@xtMYRJAVwwTYMMWx!!M*C|Z
ztRQcvMA%IxOFhqC5oI#lYS^ulRCJ)!Fhm<X#~E{HTSu-@T2vPCWVgE!=zySXpIY6?
zxq4FZx_%9r{BycAGQql`@Rg288-u*zv&Hy*Is#c#Fif83o;%%)GkICjoU}1Rb@i!4
z@%i@&<lF@LbpM`Obi&)UCbu0v?Y<vufl}Xybuh+iwkD>+Jg&s5re+~U2xV0xd(~&;
zJk&!5BhvSL-xiVXa6enQJ@?WJLleuHU`{c)q<ei7qOXAtM8NZgybYsc_@vX%@=~w(
z-PY7;H*c>1Yy!ZHX*=EB%sDSdrSgQgqm9svoaR-YH9M<?pMI?kD8D{3C)LzBQiH9%
z$GubcjOj>1>;5JpCyNg3q4*<^o-}dgD1khP%MNL=65L&%k5>IvKo(x3HXva45m$U6
zr5-;<^wj%pxC8qpi}Wf5zi>Ac<)$kj{+np7fAl16cc^9v=%7`Vo{hTch=S{e+iBQd
zt^^gWW_H&}JDSWeM{f-#)@B#2&wHYAp@p2MwdUzdh`WwE@y4%tkF}6R>!(V!buYyw
zA&iXg1c&E1X<dxwm+GbIGxffBqZ=|v^B>%-8R-RKXZLqC6UVM{c)yJa2m4m>x@`Ck
z?c!m@JO#mgkK7|L4XR{X;Nm(J*RF54I7eO106i#)B;)P$sCorICO&LJ=F8}YjZw#=
zJT8_Mukk4>A$~&}vfIsWy>Kf6tHP0<MxyeYm6xEK%Otek70XUN+vT%OUoYMQC|Snr
zov*x;EOa@1eS0zXV2b+sHj?u&sY@ZCp{AnC)}hL%l8{`&D~M8=y;E89W1)wdgHf%E
zxjpQNxTMv-Daaxzu-meJ{llN)*|g=vtq8vcm*g)NKuL#@&dx1?1$oss0UEIT2NYn+
z`Q|G!4WDU2n9xrLh+8Rceg$#k_paD-xR$+$PICB2W|O;jd~{@^)0z%deV)NdXh9KL
zc=2ueMY5@9k72#V)tq}cb}w;S?{jW(X05lxqx{Q06yNMduRba*$<pH+CSABZd3vmB
zcdfR1gzM_ngyWPo#T~PS-KthM&5Knt_1wFIi2+54m&UIhjb~^;Zu{kbmtN0h;QpHM
z{Z>5tfKie4w-`b!`=}~Medk^|K9S4EzRYHs_9b)t)wEcnVlOfp_tlbDO|xZ{E2l|7
zQ$&z#^71*=b`LnQ7sZx%d6V5!hHP1_5N<sKvKls-A|JJuxED}jisfONx^teYd?q45
zJY>?55*PiwjJ4{=FN!`^NXL_g%8*ohMRD3dvyGg;&G6wDD7f1TTvoOqe83ioQb2Po
ziK*jut1*I!{e#kK*du}XTxb@TU?Mh2d9$V<IC2heKd~YE7~kBxm}noLhH8Dqi{k8;
zQK^deQ&_M^jV<NsT<asi=F-9^Ve?lA@@^nrFJBj07Y$ND#hL-g)3|UgrjoTFG<Cj0
z?$eAZ-$$_Jox$QWKNf?Vx!&*@)4m@^igXSJ&5@|vDoC;8(&gnlt%j-raSy=ytEjFz
zl;d+4g<PPalZRwP;h4K3T+l1ubva4aXg8uO5Y!f_S#9>LNH@{Qe#!SwAd$fY24w_k
zSu#?LCtQ!j11jC-AT~g5T{s6ANGtl7Yukn;=QIX^KDIP$cvR0a7!DvJ%azuqwmz5f
z*0bC_aTxY<j>M!Bix{N9on?md@*|Qg>(RkTs>nZmdGXp?>x8>GPPb`D8@C@)`S9`?
z0A!WaFXM(|Y{}z;e&`H|y3UtDd&v;B{NF^F282W3>@2O7iSH7(ot(f38D*QP>yO3-
znh4wcFAvH>{q%gTMbckdjX{NR8gbl)AV>7o87}mLA5&q?$zP?HO{m9(>os<Gp^5q4
zMGfl1Ew!|^#Vv|!GB@VXiD}7qVDUf_<3(nQnskOwt+p{h_KFTae2Mcml^nfIp=5b&
zfR+MVyuY=DP+wPDMGa1>NNUU~bVsX4VD6y$00PClT!sD1rTgQJd%CWJh7Qp;yyIp$
zmGn4$?BWc!bld1MB#{l;io0#`8Ey$<vQFOcjEC-(f2gUG!;CYH+nLvDrw<=!O)il7
zjgpP^O?vpc=k^V=tXSVXkjxKz&0^}JS$XQ{6Eik2UN!Utc1-~%Hh5FZdvq|$bSpy@
z<_WCk9b50dK=3g1Ky~hQEinWXrz(Ay8XtP0U&)m3hEksGndlyE>*9XyA3#p<8^1ca
z%vu_A_gr$+ciZ1ju(nan+u}nj&6y+TXLYS?t2&V$*mFW0RUE4~TKB$iW?BfIr1JH)
zx_`~{J{6*!<TGo6WSoG$hee-7&*f07{vISo`LOzvdCe=4^)}{@0gCTY5lPPJgBsQY
zl?{D?TuI3sv&Z|3$fPACJvBu39n_`@QNWnPWtN%5=T(!jih;}@ZG|p|HqOk&Y}=A<
z;jenC`cG%qyjJca#L0rXx%r)fmuP<ytGx+C(Js*=6&3(Y@!E8jyVGOz1ATM0p~i^#
zE)+%IdEp`N%KFEl9piA$YBq)d3)ZAeX^H6V@TEoK7ad`g8H;UdAr^(gLp9MN?8X?k
zWOVMn9qn6?uH96JvXJENBC)rfC#z{$(-Kx;P)OfAfyj@;>A?!u%`1$6fk+H<iR0S^
z{@lHzo04~)zV1PDaQJPJj`)}{C-n*R@XODxK!q4<nIFS;KLhV3!X|yN&1?G7l-JF<
zb{x7@Xht=rs%i*YiFZsOf%Qop$FtY>x#7wb%B`iV(cTFx{lP2Wt}g;0bb>QKc7v;H
z<~PxP_addXx}x~?k@mB4g25(~0U3Tc(#RitIbV|dsZn9W$kwk4y%ELZwL#@KNBU(7
zOSG>LE;nLkadC_VEQ^3KLO<F2o!JkL-cV6j=m<5hoAwmRpFCKHsS()5)!SPMP-2`m
zf{baxk7Et)s4EIz|9blek3eK(uk%CZhnX*s1=<l^av34#Zp6#6PQ+p#g__47tWz<V
zU-}AERlz->P_8RSEN~6%jjS56rnVcF3^LQgWto7a{Z>HW0Rpk5|0C_`_}0)Ursrlo
z8T>MWSR4B$uX;E4xCT@E@p<=oD&6_ROm(=?`6j-lcBSwIhty;1H=wA_9cICilgk&6
zfh>~wiLf;*Gxcm|s4RNc+iu~Jw6N22w?}cuT`@cf=?ghpLA@>4(K4#LauH01QlAWU
z<4r0Va{zU$vXVq5k52x86*CiD>uR%G51=`(eooD>Wr#+uxw|R~TpuSNGl|jQ{y1Cq
zPO%}EJ-(1;%lu|!CAp*`Z0#=UiZrf<wV(0mV+ihK0HV!t!;fQwNJ{(lbw!#9UOp}o
zyt@j<*G>e#Js_B3|NS~*Cj3GN*3C`+$2G}$p_Ov(qf-B&14igKksNhnB1v;!5Rra+
z&USz<&9G%{M6G6!=Yr^sc;Z2!=AW##lbe*pCab%0b*>u|d})?>0bpToWafKL_B~~N
zLm_V(7a3^JO1wQO`}mc$cwj3kPcy4U_P|u_(6tX8&(F4f*&Vj}I@A@e$*xQ;`Dyl1
zLoEx28`SGhs|mgb2nSSAt>GmU*KZ=wGwROb_zJV|8L^fz{bQ%Cq}F~z-GG@+RQ67;
z6ue4XG8gOlZcO@fhhr}rX{4$5TwY7*>K{q>i=8wA(TK0AV1n9!#jj1mHJMX(@E5??
z=k*2s(8~J>9Pd6Z*2Z^w>^IT+uz@5%60;M%ugFbb?u2L7gx(d7^sEV&aJC~=*q!}w
za2v>9sIdDpG2P&z)VL%F;0h8A&(|nq(*E4&H(Oj)KNBfSDg9lA&|^kyd#9o*9rFmi
zN62@SnU;S)TjbD2k-GH+$~HMSUuRfr6UZqSO=M?R0{+qCQS0oUX-KmyGK1=@@cJ35
z3px-^TsEx?^4qcTMniDYS(%5(zMi3kS~Zu5uCF&w*=4h#)u)pO`tYxjmTwT3uv42`
zpWh{LNg^Rj#R&U$-?8cE_UZv&lnt-<Ykrre@<Os!tTfbHm+1jUb~QYC*4`OXZ_l$e
z8O=2#qcpEzH3GUSo0*faXtafr#iyGG&kf6aKkCI;6tNTz-`X5s&X?U2%eT0>!5(gV
z=kwYJ%=8SM5fvc~)mJu1xb1LqFUg6L@Qm@W!BNVQN^#*aN_Zyq9&6Jc+l+IcscyA=
zB44QhXKj&M?r$QK8!uO#DjH0zycZ^a(y|{~VD>SrM*wmT0G~uhLM@8i_W%=~sdi6p
z{v#wES_WtzthXy_M9~Aj1H>*QAG_{i(l_i;$uNc4SZ5E{^mLUiwi)fuP81G@?2Nop
z-Qtaw&ji1u|LviD^$*giZ=nS}fpTm)>u<?-i%I%D8TS~FU<<3tdZ}{G7rU1Oj%SA2
z`g`iKljP=cojr1^Q^wOttZ7BQ&6%P(#by%>4yNZnICRFLjTtrT`(33t-|JM1MYTay
zo<>`Zxl)*0M4AZHDg!U!w$Eh=s>JF6-Z}ZQwT2gKRfif(nL;-D12UAm00jXw-VGPL
z+qRf1)k~4R%s`U;(MqP)y7KAKU}Qq*K@Y#A<2~~lE`Cw*ABRVAF_d6+?+!=)&(=HY
ze^(ymXCzIx6ja}Em&Y!6+DsPr8}^*jC<P9)WY$-1SbaoU!Kkxr02#Yv-~ozpy)Mjm
zqoVc^nHFuoPt+H4mM##>#3gefzviAGt3OOX`M*rRJ`~}moEmHG-b1cU7!>U)I43TS
zUAOYZq7SzN1-E7ds!)Bvtf&TX)&(2@yd#LlJG|7<8)q*}FiA7-M~oX_P|@-oT#+&E
zvq_z_pTGH~cG22J#^QL#!~xPHNbRa<^5pcZkzH|Q%T`~87EC7(K^Oh&142{}V$F>l
z9xj)q9WP#b8Pg}s8iBH)Nmk|V;gqg=bvPmzS(@}qIcZOFf8U@UwCWG;FEj2FMiHN(
z!TV*6Z>-6f4@<X7FghtiC;MJgg)A*#1%I>1{eH1yMO&`gCu98GCd^qHd5U*miO{~J
zmJDj*+2;ktwJ)2xT*&rUP45=I(8Y!f2GoYxz;@*vLLD+W4&(zyzN4;#>nu?O%+0rU
z>0)nK%TuS<3gX(0dMAH8T*O+23=6m|=j!IBpAxn)=PN+2ocj(kP4R)rl2^T0O)Xs9
z9Spf}5Y8QBRf|0LCEijCkg!!YU(pC6e^Do?Z(}!lx-ER(0IXr|s{ZI9F?j*N-Gmd0
z{$U}Nt7{Li@1#G(`a1i?8@St83_kc2abn228kCJWZZ8|@;iOp=_)V0=c`Ax+dM<6P
zXK2lRKwVmYOx~|q*JHB(*f9TkrbFZm(~Db;X5@oU-|R-5PASi}zXKJ^7Mrg*<ZM=4
zNV5se<iEn*2`A*O$jGK+Y+_!cwzU1zegHlwMZCP^1fxC4M70pXqSvAYRA84khu9MD
z>iMQUWBP=mR_l6w%uP)zzZ>{)i6t46bh+B;AQB5o1c|sW^cjJ)$F4EV{<2Y%C1vfx
zaD-d%7>}=Pt=f<u`$ANuw$}i5;CcO$7nK%zhe?I{^zbR{Yjgkic)QrwXN@1c1_`aP
zei?J72KG+y3Q%Km5eB1)-UF!kXq>sWY5IY)SI{_sgS9bO;0|4)XD94fJU0$;5r)MR
z$uq{xgrWteQE5S8|2Rd_0-$ML*J9e@QfA0AJ+54FFWTx(E8D50tQbI3!-i9?<w1PM
zm?NaOFE6L+X6~2U<lqC$69b-x)Tkj^#T7G@#~Dl2G(eVlD`K|++rxD=)$$V?d#N-U
zI9&6I0xhGoP2J@#i^mRS4Uc@WJ8Ho4We$~4EV%YQ^KvqBybm6(=GtjYIB~KH+>}Oy
zSy`4G-np;+<ETU`{D^)=6V^Vql!N^2vTSWu>8|?T)_8fRo6vd%+EEwh;!98Ns|r|_
zRn&P72lQNs_yUGmfzw&f%(f)RHw-aP!@XOgtS}_|Cd^59z|t>8n9~a&L_!V9P!Ykc
z9)Uchs-+DgHj*`9I>hlw&0y6Gc)}(1i)Ih9)9-e|wbeMyyO5>oYm4Dm`&#D3z#e2u
zE!R8ZH61>zx0mNPzwcs{Qw8kB##-gpE9x2}9HBb>+PV&VjBy|o<(MJuZ=%OwQLY>L
z-kulxKhFQOVI59*S3!!ej@g8!w0wZtGw<DNs_m3BhaOLvDn&@USIk&n*|kNM7|)s^
z0OK`hcYDUQU!;JOeqm-#69S`eei*}`{JDXA+rzSQ%x#gchAuN+nxj}pnkG+W!`e?!
zqi0b!GfP>s!=RBn5ShOkOIGVFauu@RTP=@%@u1)-tys?By;|-Jp!7ihSn=z@vz85a
zOn))vcGiyB<He`+;lwPkZ4=D0Vkm^)VVEn(^yN53C;NNVlnWK_?=GqT;I<AY2*k!D
zqi3RF!V5A}?2&kUn_Z>#seXXlx&LQ~-=wcAxN>C1BGXNYOaoL)pbSq*{|wzRgPQ3B
zAP$wVF_WJG-_mhx9`oy-+5UVz2|R=E7hI<FNA{I41$(v)YhixwE!lB>=eIV}oY<>Q
z0-u(OoYRe~IC#;Qwu-xoYbwz%+?ihNQ8s%y0p)TaQ)VHpizQI%^+p7i$?V6W(nvlz
zki-wsWO)`y@d%9l(kUw5-S7-FI6{^=AQL2YerdJ}NbRzZBY4zQypm?92|DjMJsDR#
z7^DJ6M0t*CxMcTj^VQ>=<gtxj2*HH;@B&d$2a$WZbb&8mTPdW)Qm>rFvvfWrCUEgW
zqvNwH+8fuYvR-d-pIV%*%WT;!hf&DsdEB`wHO#y9aLI%uWRMbZJ&`qnZgyT9GvFyL
zYLRVVFe!-!_b+@_9P&q&uB6giWnhG|%u`;{Q4acpg~eJ@=O|^Xe?09!!L6K{6zpZz
z&IlT}l>l6*^*Pq0ffi{3#`K8wm_&kgI7m<d$Giivll#HlsbY0}zF8RLu*2!S$1@mZ
z{OiY8c<<RJIV`Sq!b|ot;$7N_(15cGjpEKw%!E?e$D!tS@W|vMSut0+eSp5v+H8?T
zwnx$iY{jCVd(r;Ab0d|+7POD#;1Kh*C-~ZW({Kp{oWHPtq{08O$5`&hdenhlzs&Uh
zF&eL0Pqv9~h>E05>v$Sv>(nQ8DRZmD?kXG~mNz(X`hfiHUOTa_5OjTOb_*(mUYgCr
z;-ZI*P?W!kDsv7wD0y|j3Am)Rm<|c}uaKd~Rmj$ZfFPyGANb;#%xK;Q(Hqo0&}Y1B
znVkq}`eZ0f^q}P(_EWxN7+5+#1?&D@bNxu8{Gsmvr_oTPY`2pEb>!rrsensE1Mey0
z`lMG)6bVwb<W<R%#KJHe$`AL|iaf1?CVKXcaQaQY9U(8XN-yprpSSs1MJK8CD=VDZ
zyRpr>p0|~jLC>lwUQw*Kv48|Qv?Bet){2KqRgfF<uzvct$K8mL4ThEeGTp=<Z`;fO
zNU~;j!az!3DP!Ls_7G1kyUSd^xhnOO-EoRUtAr}H5>T4hnS<pxp4bgdT}bI&g%ipb
zSV)@ZjH5I8j$#W%1X&opP(bb0x~6G7RjVHztp7B!j`W*w!Dso$QliISt$lImwUf8A
zvCk5T>UID#Dued~8cIp<u|BzuUQp7>NYunt1#hn#Rre2YCN)C|S5{gmd8D+2#7Zl>
z%-h7+cga+Um6!Cr-}YQqBD0MPR$8BJOFr>p?HBo|c{*uuo~&NM#H?c)u`JD|M?DAG
zhd2bcNyuq&U_m(#i+ZGjQ?)K&a?9G)T)cP;_`4XJ`{k5GbA-{A={deWf2-|;jmRnk
zNfz8~nk+lY0*0%tr4~<;FZZ@61IoB5sItI`G#j{spv1>Skrz52=r&PUya@hdV$?FN
z$-QuCjio=ji*Ss7A<6lKmCDs*#4z9WgtkM3zeG}b<F6<xp_rwBIDTh7;&Y?Jnf56h
z|CL7~J`bBlgx4rP<Jd|t4;RzN$U!(<GB|A3ig_w&mRU+DQ=qlxS>ct-0LQ&cW0_jT
zo)dQ3=;TI6`emQ?d7#ZTPGVa(m(r>f(QCVEq}%wZg2bmoR5q!eoEc%)_L9gk^f}5M
z-;*rMPRyC>15AD6wMzTbeSnU{cJr-BA5FLB(*kVIu3TJ@qs<qOus(}@s6N1*^&Y*L
zqxYVVrD~Xwk%T!@`Z`_`PbIH?zt$@Gd{{-D*UH$ji9@g#j#A#a+66CYiRYW5$n_U3
zO<19+(UP18m@fcaCNy~nxxT@^z-QB1C^PltoM8^rR9V<{q8NmJC~O`AUkYy63aEh^
zPkhTt6aaNFRQJ2aj44#ixZbb&(nzriQcFY#Alo!C{PT5g$7Ne1X4e-fMuv)xt3CW*
zb8Kbc@~s+?X7c#DzAvpn1(mF$)^Q!|CXbPR9_2H+EL0{?4DO$<sC`0q71+Kqm~TIM
zI$zMl+&pPe7Z%2hR85(+89&4uk<RKveMip$n_LlyVlWPMC61<Zr#}mIO>R(StN!T2
zD0hTDtvA6ksxUj0h^coJut-ERif|zzLQxlwN`C}1e<C4Nb#Uvj(T_%R<b^HqJQHB2
z8rh}CB;EO99-kR5U0Hk*uwC_=sG?}JX}Cf9o(ZUF4scYQN%RkRFkjWXnn8VL&G?c;
z{mi?8EWs^9KCjy*6RD-65C@3$n9?332;VX(@|%7KJ+3fMeC5$Tp$y!iK1}`y=q@=O
zE*wfrI5T@*UBv)c8hJiKl0j~XQbe|5r)L4+&xm_!+`wP&SyR0t$?4c&{kH!%5oIFn
z9SqRT565MSquxbYx`YoU^h?yfeQ$M5XOoNP=L*Gp3g%IlQyp=J9HTZDhfGjrW2(J=
zQM2?C0|8`2I(>fB9@v~P)TyhqeIrvS?VnWBl1q^p5)K~$NLz*WcBH?&=i%LYs?Wn!
zT^n^P(413+{UwhQ2AZJl+EdSaHHHhRP8mktC!`<r@TzRE*vvjQkDkE%CPK>0D<-mr
z=Zk`zsnc^_`$XHdu*_jze2<>Mi8a+FFcI$pgFnvz5LXzNHOw++v<_RQtUMm;D;7+s
zJ{FC3zcQ|lKFRf88v+9g2DJm7>VB?YIUtYNt1mNl@Go>zAvH}Ree(sq9stXHf}qr>
zOe0*i*Bs~E++dx}N!;0@0nwr^tJVL3x=!gU<ZM*v#SjfmmBfzU2-GH*(Cq72OFl^j
z{GF4#vfS&_@I_Cd!mh&uf!%H9W~Tet>;wH4EbR%;sQ;&ci;a9qQZBfC-v+4Umt(Ft
z=h;_p-+FhO=jW_H%OVDji59QN7CSS&dV=5{T|&{OxU{>@KmcO_0wr~$+9G$z9s^at
ztf5~x{<_49<}jl0Q1i#ydZ8~4o7|>`g^9<{+be+ya7`nLj3zRBXK_#7R}=lmJqS@A
zF}WE2chj=QM^x{pTDpVaP%^YB%zV$NeF++u+jIsqnkH@rtb%nD-8aRX2H)cIok@ba
zrl1;v&>8Utq$*%#CvoU9{Al*8q1B5krcs|lFQpGvn0n?`HZF>29T$RofRE@m{A!=v
zWc@=-pEc?b7bq8(z%eJqC|<mwgmVcsztSJY_5qmpetqxrb88em^Uuz&<P|7K!tzV{
zzONpi0b*-Ee;VoiUnJ9SKotdC-ttA^dX>~=9&WP;X~HH+5d4>S?oE^~!_qf`r^=IB
z;d{@%kZ$gs%HEqdyti><S8lk_ri(d|z0p*ayVq|8nu)L2iE0iiuO9#PfmwEoW^7wc
zv$@a5KPlrCI$p<Q%tm}d;8y~pFv}<7Py2QKTPA6OB>s{jZcTH&c2j41kQLV3w5zQ3
zxrBg^At%+G%V9*X>UevYLyHbtry5-XNZeHu@Su<5RqFIN{4O7F=j(oorAGEwJoR|D
zoX%KI+zc~Y`uUy-p4Nv1H#*W$b_WV!(LXFy;xOT;7sNE{?oG?u)>7J+X<i35YTLMt
zBaw_;(0G&l49bfbpmR4mn3*waY7hM>cxRSc9Mv0wQZ9{(&i%2qd*5P8m6ETDTKvcU
zx#<^(@<&Yng^7LF(sR1Et9%)7NBXWulxcb^II)B?;~Pxh0r58f@dwekiE9!ui~8Nv
z8-{>jmm>5$u0O58OPlbgI>YjnlD&#ZoBEpI+{grmT6_U3<(s`0r|!CDfz|$%f23~D
zX;4k5!1^-BV`)uw_ZnxMlz%<RIf?h={!QeBKc9EBAA9<%$UK405A+f|sQlcsjJa|W
zuffF_-*I9V)$GW8X1A*duPp>=m*Lzk8*~`s#G4V0uv9lnqg!|%z%L`4;ON$x3oJom
zO#^%dEG_q)U&2QDhv&?Vu%Ba~F*Dw|yPDAMdepsSyP#d4nIhui#M3(rX$d5QpeI}!
z0D1tSYvy%*1baO8>J=9&$%eCpk2<xyAn6`cR$-*9@OF!YFssJfq;|2uTm}pJL)V~H
zg9@K;6lJR_AC6_{yO_a`rK-;mgd6yy^C5qyQd(STv=<Mh4FO4V<MO4UqF+q!E39Q$
z$fS^rni<!1tG~EP?I&%vr{u~$UDxk2cq+Y~@~%1ER@Js#+Ig&ii{GQXQoba#Q!9fc
zqpW0Dya}QRthh)qmkF)6C^kJ<nXt}3LjYk~$eCK%%~4SGt)>#tl&M$CsmjHa`8qgs
z*yc@2HRoz}0Qaa3%c|$8A{mibb8N~T0xEK3yHsd}8Z-R}J`3;hB&T!&1lzPq)_*-V
zFg5AjjJ*x!%g?t4lPs>70IV?W4an8L7k*HMwQTudMru6(7IS-kZAevLu@GDAL&LZF
zkjUl5kx6Jb8LBYVoU?hIYf441S;YsfR-It(ov``e2U8vv=aneWp2Y@}J3dnQFpzTd
z78!ds|NrF^|NNU2bF*GhZg@Q``OOtC2)WY)!_!%1&si~YeI|+u6O?p#{b)Kfdhq}I
zb^pg}`2TZo{acYFXZu5)U7DsSMXydR4;3TXPl4h$y07#(EeUu4N6i$fIi|>+!yCFx
z{>KCPitKcy1pz_j?fX6DBF;zr<an8s>MJuJq~~p`QnDZ%ODCXO?@N5f?<$B5NXLMm
z(l6kfBKaarh4yOy=LcF1N}&4;eD&D!-S9_u)!uCqPm+DG>+oRs=ZePr<nMp6y~NNV
z`RAnnTpy3}M*GCyGb>sD+{W{h_JjZYs$;mN$oT0$zkUG4qrnfyZ-C>%-Wwe-0F88!
z@_%l%lxaEse|y>j+L!gJIVQR|*Ils(|2z(-anTCv8->8IPzZ-;a*RzI2-BTloiKws
zxTJ6^FYASk_Jb~y+q!h;|F@v|Ghl;dP_e{+pY!-@YK5qc$5h_rJZ3L;n{HOC|G5vJ
zYc~!4J>$Pd;@&_6v{B{m|32p9pZb)5v(=P)i>yw%4`5aeli3qZtu=vGC(*G=O9z$A
zMpD&$M^&8`Ow6Xdx(wC9{|>G~6qgcuup*Oe;-7D;Xw;}s&e>QJFtO^>_OAUW+M9dg
zI^t}cp||xaOk@ba-$L0({(D+f)YIP>`FA+}$8h<t0sHri4>yM8NwgpQjkU2<?oUu>
zcOQ=yr$^&%(II}ve-D3qeDCdlf6qVjp(xc*IgBcYV-%E(@7^!)%u~#N<;mj=L<%te
zt^bUFR0XZ>Bg65@R;eeEwb60OJb%XWzn&s+qkYLy<?dNOK4nK&GHYI`pyd)~PW|_Z
z{CN)AuAW7@i<J_E#!lJ)(_q?8bSZ8=h%z+G*nF0=wo8*vRm_7=NH<fQ|99FHUM**0
zR<h%Ip0(I8!qDh}Rq^8D8psr{E^gyp;{9_y6I~`=76abJwb>r>Mab5a1)maC(F$At
zM)G-$`aTmiVIBc0tdm40Q_Mft51cQpD*PwJ`M{qpuLkrij@@jCD!*^BxBH)2JAt$j
z`+r{YU_~^KV8lPuxH{jx-)R`%eh{^3-<Z*Xd=RDO2(Y4+tKJ^5zg`&kZ5jM?9+BPZ
z|Ld7Qu-)+goBdMEwK$`jJ$1rkis>5M{hJl)udY`ej;RFyXEqmw3G{nhqG!Oh>0YIX
zAYB246FD{2SY>ao+fIB@+Sp33NvV<Cenh{uZu>uF)PEye_ICdL8q&-E+*Cmqd(YGZ
zPKvvo|AdY~Yo6hMC*glT;+^ngIf-Z&NEL=$eg(aDHvgsp%g2%0pSHd2a!kK!SFOaW
zNAE)Z9iTsHrMOp^C7z4p-%$V0tp`0x&a=UcWHfM}HFqZ++mK|k1sQ)`$uxvmlTObT
z>&LfQB@3H?JlJq?xE=BS+|jQQ6YmTAmp=Mfbm=QxLZ+W2Qf@0+`dbz;AzNbFlX<dU
z!!JY~%34$`gnL<euHesU7iAr*hWj$X7@^2xjlqfxxKewG63F>CQ3KuQd_1yeK_*{O
z9iIvk2dFRbKTU;^&P-m!qwk|8Z~%EuKP<}>tY}dbQ6~1lhGb;S=0Al|G&Ho4NW=)<
z#!QG~ujd*+A6Ed4N~mgO)Wu55s@3PvVO_Fw#SGm!%HtPlDLF+Yt{ux6*>vUHa<Qnq
zAb}5PhN^1-hF<SS2(i^h)ph1cr5Zf~(rX}JiHaStM`V#)f(0VXR&Z#@N<S~{%jDra
z@N^8XZ{Hl+ZZk-=hJ0Fj8fNQsfogs2%sx$Yr*Gzxh)j3u<o7_6FR+E})?0ojDy;Ml
z9jo?DIak;-)vd#;-kIOs%yaeTQ6Z`Sb|*>cLps|?f&;n#b3fKR#!R{<IVEvsO{*Af
zU(G&)$_m$V!XJ^EIOc1`AR^fgI_fktTTLxUv|1S66;3eA%zve!1@t_g&7iLxPH&eO
zn`+jP^Gssylqm5z<H{3MlP4IGx_rdpff854#`xDvT$6bk(+I^~w|FSsn2wx<F*KCI
z6#0_3S)@pIN(H86at>~4>5=w|v&`y86|JW$)+LfiwSx&|#lt&~Q$iT1BO|#(vI?qp
zEzrRYXqTK6*+k}Wp3TI9*l-$;MdI2M=3J6#Re;4Vw7CyxP9I)(xtWGvn=?mN4o}}T
z&Ds{969P#3yPpE{HAf~wo{`5YAzF`JLyK0BeIZ{<YUz+9A}iDT-&<AKXX0}hm62Q*
zkw}Kb;!3n5pi+n{=BEH^-Cd-Ilc2wa`6vG2*#ifS597tl;9`j5UEF8?5LC}a!o_&3
z=~m0=V29S2|5B$YJIS<+teqT@yq%{w;3Qz#C%~B)S3~@|7q7v(GoKMMjME<DVc{uS
zOP@Uy|6vrMrvorQU4n`qdRBUg_Z_bDpSk{23*v|ziotNEHBwoW4m*j9-H%(ohhzG-
z;=?vM;F{XJG;5D8RymfT^+t<+N_0S5OJ35=KG1FDavQ^9vZ@E~??$aOv6iJ`cXd}d
z-*uAq=NZ5Ia@JcKF(A7p-1Ewa5Y5s-|5j-ZRGS@Oa*&Uny&K{jzpgXp$N-Q?q@8Qh
z%M3Ti0?P(7XJ$<*YF~|Wp3a0KGs5w7Uwe(WMr>P}o_gY^E0<!baLC7r7d#pRSQnTm
zFXN|ltRFGe$4R<hk$Ya0rinFSmyoJx3aD|_z(a^tpzGj)?-1ETgX(o9+I#!)tjP@D
zNxo^<@l+|6_{`XYs)Qv~7JWw&fMt92h(y%3cGXbo?KsYxO=?dXl?CJxk%EXn&S2cq
z9Qwl;%|-~FzAaQ&%!}c0u)ZlUL|sji_wqzbKr*>=3B{Bu!((ANRoyxnNe`_*Hu@hk
z9yCp2q+<eH(f*Fi2;p5Vw3j4@d@vKRNaUdFyB`y&Bi@8idtH7B28*}M3hDr&?MINK
ziI(rU?{hYU$m@X_$_HVXK$`DP3#YeQyMJL@FGCFwG-IidSzOYfwMUpeRQDlPuMfu`
zqt5vt3l2A0Q@J!b^eS{-45!{~X(K5aO|u}QO+Co#dDUZCR(GkxMsEib8tpcU(pZ7j
z1`h&RV+_^n8O$Ugq<Mm`I-#AZB6LujG1inX%vaBC=T{8^JH-^RKLbf--zy=zb-I`;
ze38^JBTnAb%2#LGKjCWMin#9L9B@Rf!cF&9R>!d8$BEq=*1H>*-9VjevzOd@->O69
z!$9#Z|Ka3`>9D1J=fkaKoJEjiiW;J>mzOb<iYSoT&dI7b^exKf3tfu$)x-{Zq!%{6
z;AO0fDwv|GcUoKcMcQ}53r(r9A_QL$$=*HQqL6YZ&E$5Svm;@U%B<CexY#e9ThoST
zPfj!Qi5Y^P9mR`8dB!<meel-fPL%AKlCo8tz>X)`Au+0`HWkf|hX&s{a_YNEc`$Bv
z3KbPQZ$1LsE#c=Ro)6bnp}=(s>{IT1Uhk-<l`B6Lnx8_oPtr<JB^$Bp#I~zgrFv10
z^=q;T2=<uiL?g`}t=FB4vI!thotj~TYujZs)sJfc`m8QiKpLvs3{!-!E8LwSKQ{cX
zR^XB9410F)iIQM|`x{mif>-Ppb+Q4pyhq$96Dv5!qYq}cas<#&N!fAg={Upfpuy}Y
z-+7hTE^YewhG;6$H3g%hhM`q^JM2WY;WL)Oh4Xr>H^{G#dymYpMgP+^0?;3pK*jt(
za+zi~oswKk7Uq^*)+rZfyf0Khe)HuBCN2}zF+1#(R^(>8o9pz{BOchZJjm*E+e;el
z?_dCF`P!jdmq^{DSPR(~{M!~iv;YwdBIqcMO4bXH%nJ8+wIx)MwC~yI(*tgS7$V5g
zId|)C@09a?3+s^khE!h%bV@)PLj{;@N&9WPo&H4{)jZw<sI6;zvWHfF^_^3Lqrd@#
z(Ch_#moF*laUR{_JsgfHOYxj%^RWC$KnIvJ3t#vcDtyp{@G#A;Dc6>~b=$8_v6@iw
z3b7<Dd8Y^|a|WqhrtQARJ8`w1+qR2oH;=U>uA-J{cKfHKhr%q}+TE^}B=ZBYC=6M8
zn5BB<DMXvq6xg-qa9(#4ji0qMu}l(R$*lc?UtX7aF#NMxdG!`~L{-x(^jT`+o-!d*
zfP;j5Po1vncA!2)2~5gZXIG=uW>sY>Fl%zRl2Xe*KY5R~VICgsAA_C^xgNC@adiV}
zu)m7oi9+$N5eiHhlTro8BU<AU3C?a%wu;S*ky^mh3eY^uL%jm1Ay13jV=t&rSSI?*
zGYdI9<q6rW#i=JzO6sf_f8Qxvw{NY3+LX_=O(U-3!#?05UeUhU9ooutb1C#vq5HJe
zr#c^KZ#Hw&nw9g@66fQWZUUz%_JJ)fu^sk4f8==YSI*c<8iZ<tpz;{r9$Y?*(5zZ7
zeBgZvl%oT^5ml2fhz?c@EJL-XyCtaFCPit~hVr4U#wvFws}JYW$gIN(d$)|#r~Nza
zE~V0Qkx=hOF|D)7#251GHuSAbt_eEuY-N~XLa^39Bl3UHJ8^D?X=c^es@7v{Y?-yY
z-l}&#W3E8~k@r#Ys3LmK7o_iO>q-@Q^c33h8rSb&dD@Z+TXjQ1=-YNhpsBRBpbJ^K
z;%dQ;o7H#Zhkp}M+d;npmNKi1#ffE#?-?@|XoM3Uc>^RlxI+s<l3Bh=$PTw-JngyL
z_<)%+@0N9Jw<|6G{5P-oGF~l%K%3c6W-TwCtUAs5!RR;R0cZi?ABsQ9T1=q<$JN^d
zc8SbcrLG-(jPYU_xMjV@RTfZ9yf!lcG?l2XgEriMLKXuG5|iW#WP-}E+^02PVQ!S}
zEVZU-An7ap+;m;CPhL5(?rxG~lBos2h~Mw2uO6=uM=VPcYvgLAa2qH$+<!<x&(%wu
z<9x^@VPmeTPAB0hbqm-J$!CGuL6&QB21*}@nEXvNfj<1&V&gkAIv;yx>l<6NJp+zx
zD*Bv0Ce6=3+bR-&Rop-RJjDM_!b)ZS%%ZzUA>zs=Pcrqz`J40@v6w({>a9>07k`0~
z`=wKFTXU-UQ2o2*ZGb_;L<_~UkODnEiH{i_Vf&5MBNf)v$v-tT>LW9+Xk}QF$5ddC
zlB*`BI~ou?4Ng$qQ>effAOUm>Hx0bUFHK})o)Az9-=hH>F-x&n1q*}i5d?Yw11+v&
zE31JtT;UVg?!M)FX$jx?YoDRNgo$}-t5zdFWEkzI*5aMxhvF9#bn`lG6#cSytNtlA
zD@8oiw*Jb`=d$Y=00glYsw36_VGIsDcF0d9c_5FXlI`7HOUl)kkj&OVsQO3@`4msD
zH#!iCAHk(Cl+Al)tGpa}OG|LGxt@h#h7qN8SX8sA?fx2}P6gKtcpr>#ufMdPunTUC
zEk2Uuy|pWTX*%~)F2U)se*~@M!%LxzWe<nn6LUz?x)fx>KR}+(OgZ8b!ulCDau0)-
zLc7t1UPjn@-p|qwy38R)8Y70?rs*L<-?ACYV=;cQK;BC<1>7_a&DOj>$YYHazQ<jE
zE<o*}B&mE%F7?6>|MoOE?`2}07&`-axcR{W3p?k>;`@Ti!srNBxN54i9|dP`mpduu
z%BZe40!N+PdO>n^HBlACQSIhrHLWoM4S~A2b&i3>J$!^cxc3cJWaM-Dg?~|6W^{YM
zJ<mN6rF}`2yP7pbB`^e-xv;X$4&Lyqdln>k>^1=T(;icR3ZH?w#bW8h2D%j##;D5p
zPpsu=f2~l))hN9NxGFa;lwSLZTnQNByr0OH1kgehO2am+4=or!-w|>>HBbs9FdqZM
zk2`RD1>Qn??L<M%;a{^|+MXP5+fSP#R6cJvJXwV$n(jM~-Nhd<VyR-SLlg}TTDV(C
zDd+N8FZ0?ib6Y3E!ZQ(T@eSTkGyyutCG(re!h2#+!HGBDO&M2j`5w%V<^%dJ9zk9Q
zEp0E18Ik3E^QX*+#${f}adlOXZ5ifi1?cp<;yUL=LY1n$8e^k%UGkkK1ukI`a4OBY
z!S_I^cJpQ5K{9Q6TG;U&*GtZ$*PhhB_70EHx*VvfOp%gI4G-=?(5#Zq;_aMw9|f}o
z{9~>NnF?%1O4Auku1e(Mr-znf=3hde=|i--aU5$a+9*_Dsl-@Lm@S2_YmKqS4a^#k
z<gnqB-LALS9)>D7tzXM*Q_w)WK$8xU58LrCs5r@=bx!_}mE7Nsst}2C4x*^H^l|I;
zGJgkb_H|fXy$<*T&c?O_7-d#azDBLw?Uy67y|Bx-ym&%;HuZ+l^8~q?Afb0(8ZTQd
zRj)Jvg=B#5Of$*>R=g@aN3eEx`++NP&($TlEmV5#(zB(}K=f^RxkOmpbSF@I&6sI)
zQt=OE3<R23?aB4Dkv|=KH}d2|+LN+=Eq{{45-HOKQ>y)*0t&5PK1kDYs_t+_nHxA+
zr)&MAfM5~PsN(l%-fkT6f(GQ3XwbMSZHS=I&Ww1157`DLbMRwXLp6E;{!L^RAcuU6
zVZyCfF9*j4Eek3Z2WKp_JtzIrCR1k`9gbfG#4XQWwWdEyN9|ks%VQo=4!7T-wAoXq
zZLC&L#KEoW+)`8?bkTTH8gunq-{LBDoskQie(1@+)@Opzs6&B86F`Qr2@LW{J&L|r
zdiOUGT#kN5gPVU?@au`I3$FiXF-Fhr!v$BF(uNJp+-_HbNk7G);rjog?5*RXYX5z2
z6%iEy=>}owlpK%}rC~rox|GhLXJ`-=B!=$1=@OJ2U<g4vB?X27>2QV;X}F(-_iz8s
z-e>P~&g=P4VKH;9wZ2z;>;1tn&ChCBMgHirKWu&*src6^adPSQ641@E9=tZwvjTw#
z5}l{O18bzHHc19z?4-xgA)*SHIdnR%AiEFZ3Z0);y3D8sZ{q&G5f8QmsD+eU?XZE}
zdj0SfaI=>}8or`cyV3-8)&UXFvFWj#v+Kvvw+rirj20g4a1qbUp;Nc^)Tke{PlVt5
zr7x}B4V~fuu@kE>(=_)%U*mliZx^%YWMe{KgLa7a(K(-p=h(BsscPx^3-=1vK1^ZQ
z!L+0nEmq15VSTktbxMuu#ar6Aa2X|J7}$2fB(L$cON|~DmCz?x*zsI!SpP{uZ1j_P
zkoTi#AobV8v@j@*$gVsL0(fL^MdDb4X&nN~q=`>MUB>fJTxW@wl|P#3d>bvhNTeg5
zton|ev4G+Go@IA7*WZdHS+P=P=N`DPa12~%L?r%o4rG-t(GzW$<aRfr5#?Avu{j9`
z*M3M_OeQ??>~#i&?G4*o8^@nMu~FEK<7oh#Mai?uRnMWyA!pKGBTD6X{AxNsDdheQ
za|zas^fT(FC-WuV0u4{sr?pP~1>zc+?Ng&rEF%Hz_cCBGbBkz*KvfT8S(8QuFFgKZ
zT@M5T9cPhpd&v%zBv5<)8rV&w=TSgcZ@pMdlNPEZW*1*%jNtj!%bH(57odN>Dfr7Y
z`?*?}Y5MHrtoIE^;TJKdTDHB+G<Ad?a$zT01w-2V<VG5^V;1X4n$Mn7@qJtCpczqS
zwT#;9Sspo0^R@f}zMZXPek*@9qY3P!Yh8vI;ZuIis~jXAzCTok|Komu+(AXuL86PT
zQ0kg253k1)0fBw9!aXH4wBJLAE2xP*oR&4bdOs<FMjX*>dUKSH_RN<#e|J#NEM7kh
zlJW^S$-<p=<iPgK2b3pwAwwB&z_L-;_}(tMBuy?HB(rkt6yRUe=-Fz#0{p0clOwC(
z$iu~Y8#tyE+G!VX?r+OdKqq`4-bAm0I#mKQB<v&6ZBn+VyPq?&T3Nt54%|(*M5<*!
zGge<vS6jM{zqx7K^ic_H(s<hcYv!;U3)7eeh@b@x*NC65FqrN(keBPh^lN8kwcjc}
zMD$d-^tiOnnsi<CYC6g=J4J7+OFL4$#yi|q>YGy+6ivIe6roHY@=SUZ?S<%cQpldD
z2GHJ$&q>rvn_f*^IhshUb_TN<Oh}XDH5o6(-yigBTPQNCdM_yXi5+wFTHB&WRQY8u
z)E?6HA~Sv`UNZc?mWC5|4T;@FU9iUtt`Nv@(>C^2plULG;S053EZQUqXc$!cR%6rg
zi`oSxq~<X6#AQI&(W{pC?AV~xp!8)r?;{QWP|ea$nwADayrsgtHe~9g;#mK0F1(Z7
z<d2yWa(C@wQ7tJ?FPS`K?g&$A8l#3fKC^n;IB7=|UiWjWxTk5x*z5TH1ye{lQMiYG
z<hKwJf7mLuRfF8F00m`3xvL$Q7t7~&9g%`#=fBvzsxL^4eZ~&gE4(ed8XmlV{4vJZ
zB}W+aaX%%>7GxjoL)FG3Z8=a1+waCUKU=dsFH(U$`lk9DDB-=uu=F8IOR--x%~^X`
z&!!bkUmaDu`Cw?S6S8^&wOPwuPZE&d*0=3I5uCE6M!aF>y%J@SK<_Bu4RFZ=vz}N-
zh3p|l=}jbmA!clsIFi9y9mA#x*(cqm4iyRJ5g)iRNax>?O8~1?O2A91OMwdoZ0}Mw
zXL)jY6}Py~fLJ*-xfH9S*Mw<a{bv*>UP+>}oT%$$AgR}DSVhiA_|2KVshrV96ivgr
z4X>d?Q(er+^DQ43)m6X1h=TrWrpk{!B(4|lQD~s8ZF4?v4ih~vcps=vJgVX_Am?h>
zTrbm4xD^lI4?aTU725o0Qo*56G$~<gf+~LH(1=6ShT%?+awwL`-h%t=;cLF{^$08f
z2Te>*Pli8EFY%DqL{%oA4B`G9{f1zk<wv_HYuC97Cy!h-j~1S<N(Gq(2M}}_oPZ_T
zniiOtWie0d%|)7fOaj8rkpd2My$xjrth;C~#-}vL%8x(1XSPYYn&b7*aML@jXgre1
zK92}8*<WbC_v>McH4<gz1mk3gjZ852?4o|)DUy)v{!CKMpxY1|vY7uNlWZo4TPF8l
zY-i9Do=hbCgrna8f53ZeR-+zC1Jifq>~>F|O8s&Knyb{8GU5Z)6Wm8(%d5emXhjO&
zR7JBgJ@XR)+=Fm@?C0jY>meJN%mO0#nP6C*z*V1kWsdGLopny0$ZcRiK6}*n9-62+
zD5C!LIML2_Y<np4`Sfxwv;^t)1=dsH-vHiSu=ZeX4Mb5ujF((MbjdU=cd+{T6S#Qu
zf`%Tt3%IG3R}GH`mWURo3{%2$fAD#Evqs`j`W+dEqJPIb!;vqS(WkCMRL&Te;p07-
zP4S&i7SeC_Q*}jdDF;2@m((uR@o0P8*sJ9y^vN&&3o%_MbYpMfxxT0KrOU?F+L5UV
z;;Sm6^ChPp6<}zP@p(-ZgJ%bjk}DDBUOJE@o9<Rp+vJ^BJV1zX&#Y+gCOLGlrNzW0
zVluP3(%piJ*AidX>#@FM{lBV%01&-p)%HuY5mBGecXHT2dF{`-CZ1w#DBL!{P3Leu
z$q%{(WyQ5|9Q7?OCC#q@0-O%IULl%>K{Dmul?kQ!0r2Dca%D8GjH>P7yLC>NttlI5
z0TZd%6U$dpkG9%GbG8;64&~kGM~Uf+<E-q{XDYB!tq|Mg=}k=09Hs^Gx;@6u<=X8H
z=ffDlU4_44@}|<8AUJN{D2w}K2Ql08c8m1-%6jSOFPBc$CzcNWf)h4WiW8K6?^H<5
zUhhja;OK7|tsaG7B#$woO(c;)sqSk`lN#2Xv1|M#Lm3Me$>R<Z`CZI>x!z?e2(i8_
zZT{u8l-=%c*|)vf#S=)%MW1_<{{H($q6k+*;dw)`4exU)NwVy$w8~B~M7wg>zTi8q
zOrPS|&mV`QVZ@4ypV`)!VgR6DZkhD!{U}wf*_6*7{Rbw`hebvJ%|Hww!+!3aJmMs6
z;i3zdI9mDTM_xAlET2xOK>v)#I-z5N3By^6Ks#rSCqy370I1MLImwixCE`j%4{@!o
z&lLOhmLa1A6At#-c#3cO$^7_}pZ`?j{N6>PmACfxkLD(~;$qh#jkvKS$9J9%(e5vA
zJk38Jza(~C#Te~%Eo98oSGJ<?I(#@8n7^e+cYiE~_U(3GaVxJHhV(n^%IDoJe1QiA
z*tOn}sXzfup2+V`Y|=mOQQQGmLJO}qpfW_|TI2AaAd6Yj6Zi^Q<sBuH1B0qm11zsD
zm>-ZS=7U;~FSI+g?#h4OFjAU~mH*sjbO*o+-f6#Q7ZGyU(u>JxY7*^yLC10y;+uQ2
z4NP*-iXvoUA3jpCFP)XZ|FK8>bK<M<Z^~UVg3twhB*AN9Jdtz=RBNZ1;|0)a`gT3}
zF;LO&IB>b_t9FMmyoN^`#30r;x9Z{{p2nK;#+I8$R9?ZwOud_=dFP_Yn6}OsUTaNw
z_sIw(79V~m_X5yTJP~}=m17^zEc%A<hU~1s7kb@9HnfW?aLxomE%3Q_SMo<@fJUbe
zTYHQYx$RWPECh+9(X(`&niWmMGrT=}+=F91`~%6VAaDP9RSzh19yU>@*p!;O9o7+~
zm`Rqd4@Q0-o_)mqh^s2*RWh-_AW(ba5X>}}6_8g?vTYZ!$bWLv=Rs7ft2#DJQ2M-I
zoHETnhiaG=TJO(qg#TMKpevrX<`%#O$jVfIhw7@KMw_e%zjuW8TiPCQ8(0r+Y5~P|
zly=Z>Eri$vttpj#9_tu8`rmOw7L?~m!?mTL)Chm^$4&Rja?|-kmJqA8;dih6yJEPe
z+!H61BJmSo^>oSmFDgH!K8=<bYW({Kuhx}Ty^g?{Iq2a2EGSgVv3Scqb7-*X@%su)
zI?eo@zi)gYTDb!#5x9O$^wKKo-!)loZ}pFFzIy+m&FNzhExCc`gshDesRAJPt1aX}
z?qY+aC1p$s)LmX!P<E`SQHI{wvmlIbSBPHW$aGb(qYt@Kf&&CncDttpJo%RIc!-#O
zvxd;ax}ZXbClxPcStd7C`Exd#=ih$inS`p$&5`tiOnwHn3cAcRC<itJmKP4X;p7cF
zsC4d;{hZk(iUiP(zNraE=GK;j3PHL@&ts?h70?FNOylpZQcb?_j0C8zb6RaB1@CWr
zb$u~?Tan6nFUxXT*z$gu?DL-<02SX=aE?E_Nxjr%1nxa}lBc0ljJ)TTouyVIXBiZV
zsH#eP`PRwbmA&tB!Xm4YZzTc(wU!dO4>a;p93!RBCZ0%=(3f5bBwiM5hM&@&-mLD$
zxS17faX03we+|N<FT!gkHC1H(z;+31tKZ~d;zQ=~^f>@sHf+vCY`GMH`NShrbP}&s
zb*3f!`&kLk4XKJcNgsutvJcbCb9!@?+9#|I;ymia15vYZ-~@jlZa%2mShN**j3^C#
zlh?$Mjes1!L>o+a)oKhU!@v}ZS9&w)033&=&|HGjU62oD*tj&OoVDGegh6V*=J{s2
z(kXbm6<RrPo5OPP<ak&;n8884mzdr&2`DGEW01pNP=25l%QklIXlvWiPH?1@*sE(N
z&UIDr@VUImbGe({Brk#=b(QcMBV2P<gYs=m3xAXG?KgH?P(m9#rsqt9lV{=KUE7}8
z!*P@`K4eeQFdspo>RHA85O%q{V@6pSy<k|Y5W9*7gmD%>2!whZw4@SB-&f4(e<9wv
zuW>LGonV!%r=?L5dMUnsxo{o@<8NAYQYzkFo8`~>^4&Sr^})EO#wG30@iYJ$P+Wn(
zxYi;SZZa}zNE&jHb<+7@NA-r%LghnG0)&-!@~Qk$xvNTAaa_mb!1O*fbnvq;Xl}Th
z)9f1c|LBQ@$=^3j)X_o1$!MnRldj@K-?QwCVmyhj1#Pd2JI3$hK+UE}kwjC2pSsn-
zFZ_KZShs=hJ}WmR>~(8Emg$nB+kI9R<u%Tcs#CiTnc0uiIF9?f^v_WbyY1Kz2214D
zrO#G~i{NYs*VqbruX-?VIACQcOEnad76ybVDqTC_Khv^$ah}zVQ008*<eN<+MNolp
zKPVSrHBiaC<Ky~pA08uWH^k;M6fJNbdF~+DHfKiPqHc^6tod@;F?)^t{m~|MRS)#|
zB7j)yMa2^<yy}tFVC&@7IyI>Kiqt(S0~hdbSG%L}15?l(epV$Yyfm=^rMDpH9Fo@=
z`GW#rU703Ff)8S<<ctyxq$ui{!LR`PvSxc=m44=ju<UpK3xnwAUK|iPRU@?orKWWU
z)68Axxr#mnEAndh2ZiOil(u*zgH?*RL0jCyG2+X)``=xQre-?+1VeU(ba{Zl0=2Hk
z5Y~WIU!`?BvtYL844?s6Be-I1U#Cpk>GNzWtFt*MWSdCD#t^ej>mGY&(S!SKW6#K~
zy~eb~E8fNAh(7fuQ0V6QPEZCz3a-JV?UmAaX{LN*<8Z<f*6<sPM_$*W>?t+^`C!TH
znh9Dl859#965j;VDChATg#Oa@^M~Tgzv3SVvR-IFh9M`7g7Zi)?s(qh(8TOm)KaHd
zGqhd5Ix{Kv=3pn)1w3c{#`q#V%GJu4u}6}dAx3kSXh>6vRx?{GL3v!vOpQ9<vTm$t
zs#9$_(7ieCwzoL>bOy_vY<})l&rSFFGb_>vG-Fe)2^WmG%2B5Hey@0}qYR*y@|U25
zcdbhInK?aB@LJ*V-Vr9^u=s(w=L^cpK{QL-N+dz)(<xGFb6gn5*^C2aDBBFp3%$ZC
zO`N?Wr^gGOf^5GGN>D=D&&W>jQu{=4J<VUxiSUd&Gve?TH_Ck0EXk$(8l8W^fuuN3
zSvxn@gbmk=csh#q)!p=@)@hHnx)5uT@`c%2k$prg7y!0d0_8O*KA$zi$-`-Z{?%pZ
zUHeQ<=i?<ZJdxC*>?VyemmbZ8%s5sQ`A>jbvsZ4N$S+9O<Yun)9ppeAv{`NOIDVz(
zaSJv6{Fy5B)wq>M6w!<twpxzX?4L#NXWN=4Oo#<6=>_y`LLb&ATs`JQItFTJl|>!O
z0^yJI_R@01bNVvbRF4C-T0)vL!;ZPtezx8%EnvNS!*?L%+&v&eJDY~<I^2y=sbC`Y
zvEJ^&!bi$9N)!EV*$vb#zJJEdmrrh2Qg533PRdgxqoT${@hhSF$=L4kz1xRe*ur@~
z)uY&bi+#%-<5nqqWJzEJZxGgYgZGQhqwr>wkuEJ|jexC~f2+Ix1Urq_U|raRV1x!r
z38=GmH2G*<ve1*vy826U{O-1bfsPXEcNGN<-a>Y-qQXeUVtKv1hypAyd0CT}>Fx#z
zMQF++ZjZ`fPsyqdB(04KmY+n?+A_YiM^_G>njwK5S5fA}5smtF0$%8x0c#vt2do|j
zB~!^6#^|Ig^jnyisfqrEgDd>|xiu@%JJzi19kax48xFUN#CzQop+nq--2)2ZE6i<H
z9<f9-ePc3lsxQ7<0rEC$d*%_*nj4aIiB+0Udfyp|rhuK#xpg9LJ>6nh;@U|dc;04E
z8Iy7{7r0rWm}I4U`*`A2`2;H>BSnl?uP)5bK<8}RLY?LClgGG_86<M882{tmQ|Rg#
z-1u%BE4CGHYkH4C-BuhoRi)i{=XqptEfDqdDsveTHF(XMebRKbNRhK;kl@Vw;y|DZ
zvW?du{-F`o@JB<yWpkFUk1@TxYRVz1gT8r-KIe(RR-RHAt-@x{8zFX*rctMd-`#}~
z9+IV&Ec5gt+0X0WB*k|nZN3R)`i`TlaxOd_3-W5>oN%$IP>t!E2C#^h#T%usmY9%$
zN<)o5AiV^ASl+d8p1N;?ys8J{;7(EviJBMBG+$g*ZsuHm4_{##8D8D8h5~`-VTN?E
zil}<WWkCFHvQqJnUz~E%U0}FbjbMu3Qo&907l!9Wys-<@S>rUT9@|Q!X>6~VyOO;8
z$C^<!*#>r2_s22oK=1G!4!-GSTspdqXL6PuNvogWe^s=uOyR=Nn8#4WMbOD(9C<sI
zxnYC4^p?QZ$G?8xpr5>B6^EFfHkXWrJ<y66o=G}$)b8!Hf4?4E5G3Z|Zx6H@f)6q-
z)0wpJ&F;r~R}a%KLzVTgZAVXcJ~DHQPoLx*Yr7BBQA<pZ??c8taFhntK)XZxt{!g6
z557=?#Ll6UcJVhGpO2dscahJZvWGi30dUOX$&)wiWFrK+*q9PyK%UV#L;YoPv5{Kc
z;G^+o{d;p+KC&VQt^p<f#y8Vjf+-y$dWKuJQ7q~s4oX{JdY;HDb<y)+ND2vT03$A<
zqwy)l7^GcIM=;o8({OKJsMeNaFN)@jqSb1UzA{LPGk}kCo7&m$1J?Qqv!jK4vmnLd
z9>3axq7iksbo8(BC%*%aZz78MlC<b;tT1~6#cbjq^gZ-Yqwv_Q*!rgzaoMnflebTr
z0(-gC){$1Q0y{fma_~{Y``b6mDrd4$u4+{LUPD#s$rCm42rULGEF*vCTIQTKOIW48
zK;qY7D%wUifMmE2NO~z1_p9$*qqO_0E)22R+L$;VtVWTsa-G>zK7d+j#t0BEL~4$l
zBWA9JX*`tx0M2{n^5h>t?l$q`W}q(VXtW_xiINmPwobE&d{q+#=PeuY&7wDokgvZD
zBrDV`5a!|=66G8U2?<78M?r}bK6}&-6m5MKnFYm!A1Th3dWQW4W9P)%FFb2~W<$2S
zF!^xP_9%ALT=|drB{T+TyA~WE*&g8(UHCb1%$}U<s?H0GFrYX$P8Z@bi>tHnBK$?Y
zDa#e1L4GF(T%|A#B=_?Y$==UK>7xh$+#2TEU*V8Tu(|FaM$8{}^|dBu$DgOpq$<pL
zSDrt=RIPbZ=4VFOOExdy;Aet23~pNiTG(g32`HlEe^E8@QfX^{+jfEz2@VDc-khC&
z>;HY==z?E1UG)HdKvx)?A_8O3$KKB{_Z8oF>#8G3fFkS84c=H2%DcrkH@rK1w2j5S
z>Nf={rYM3Ycn)xDW{gRLfK-kR5Th`U$|~2J<y6~_b$Z`5$}om)&QAaA3P=QAt_Hb=
z66b(pFob2nn`Wb5NdUx9!Bi4`LM3U_Dhz0Q!}yR;3~+rb@HfR%dZI#HYu3bF)zOD4
zEZJb?eT>jox&(3;Esk;Xp#+wWirtHKI-($!m#bKAW2(MZelnvd^<51Sw0v`NGLzwI
zNhr6E)@ob(TueGk_J?QlgG;>bz@tse8P@VsoSoyr#;1o!ll2b@HaN#*NQ7<OxtnqG
zWF72w1t?Tyh8)(ApqqD?B%cfu+>UZTU2)opy04>-&)BFs?({erf3_<_Ly7TG)e_J{
zex(x<Aa9Wks=X24D6Ki<_uRC=X)jFhMbKcnM83)UK|!<aG5RoY=oWp3u)t+Pp0Ezn
z{3{;Gp(4<98g)vzqtvE8O#I!=_fpI!+kf9kcW-`kdywHRD`nW<H#ibnJMp`w*w2Zj
z;9LtWS>B=3y!s#P_g#=K`-^ZRXs4*{21xz6JM!4HJ@RPHwgf3I<kMdSq=B`zX<Asc
zVtyw6N_Vz>c-VlvE5@DPJ8kL0O1H~wNZ1lQ?_cc{B$k!ysXE+aN^L`~cM@`C=yz>b
z@Nz5wtPX&Gw{o3$k(qS$RSE=GffSmPJEXMxu)tnl@_x*@3sgj==I^LKYRl$((+Lik
z!Mu<XxUm5+jHF|}<VqyzughH4r7-#Y0BV3dlmd?0l>@-5G2QKSJge(S+k6*Y^$t3&
zrd7RYe*%-nCYG##4)PPVsAi-7EVVW%`^4||?fV-`!d1|LfL<FOkXw|s>+GHir)UPM
zZ-uBCtPAQ>@(`(cy60sHR}JC=bknq=0?QdIdtW+=$vxYH8mXb!61@okTN5AHj$&ke
z+W?5m{QTnkddoMqX14Ivr5bjy&~t^tWtAhv7Drfz7;-r&(lDLsr^bNV9|sL@YhKoJ
zHt^7lCa5&PN%3#rEb#|@5!S}>8++bkh=WSEkz|BIeR8C}{>m&G#YGar<Cn59h4Q8a
zMXWCQ7h)bRAWwM6+7e+f6T0b?#1>H-5DV4Nnk4rWh{EYFxj)-!dYi#H-~hj4S<f7)
zY|U*(I|f&ew31Utxu@F)?L})Egsc0V&#ME{W2ZL2hQnj!83=)LhGO3owZiWpb=^8o
zGzVt`v7yJ)3_<0Z3*4`^3XdwZC*L~ysP30vAeUFD9pCW2*|;b(u(t5J(39ELMF!{t
z8Uuq)5=$^lcGe~IpIlCfK>xiKcd06i?#K~!Pr3U^^K4x~?&aSuY=eqc(|UIFW|>;v
z(M$AdT`0^G6wmy0(`s_HKvp&Z&3;Wn?uglISsZ<wz$9)NX1JKd|0h)|wUHP}2ZUwA
zT?K|P`Fcf7T2nuxbXS_~s$Ct9u~A0=4wPWal+9cCcZ#{gL&dLD)vKO&-r9xY=s#R0
zzUknYgW5Ouz{W+Nyi&T@@`(M)It3B}uhcJWm6@SZS9iMPA$@mN{aQ0V=3#csG9O5j
zdIP;cUl9}C-8}Q=hAE2Y^?%=Bflqi|iRH}<l*KL>tgk{6#^+xh4+;Y6Zo_50+iYmi
zp3=dPE&CL9xDD&J*thVNJpQQf;t@{E+nHOiuztW;T{_Yx-chE7^zR$0BOO)2ygS89
zQLY5i<+Z(QvY79JYjDZZLw&AXo!j9gQw-N#y^2A2T8IaVG?mdKwkhkc37h&Oc+}mc
z4Xp1YQSLz<Bk^4ujj_`Ks~<4AY@c0lkr{Fus-&~*37}>n{t4gAMJtZw{gGg{jR3v1
zh3VC^3ozSRrFt`X!*H<0FKoW>L{O`f#3AYnn=(y4-Cc7XBzaI4)s73@hye~6viw6f
z){^v{Wk@w*glW)vhq47pn_)qF{D{)W;K!3^X0d*ptx4vGS{Y%OK?5oPMR{hDS_4!w
zquqcw!K=o+t+pxqsISc3zIWt*C2rK~vZXSYusKLamk9h+hC~CMQr|D;r<bQr?yvHA
zSR<hPxTGspzlFtXb_H;f@2Ko<{VuqS1_aI4f2cLr(x#-Y5$CtZSZtg1XSHp8T8X%q
zl~70TDPBV#jS%2IG)etAO<oObR`};K2@^hN<|fC^gGVSn!L#4jDTduv6pgW|SrXdQ
z{k^{UE~imdk6ggvnV<v88G3w;n^s!mEsl(+aS&}0vW&{mObIzq-y4WYkgv)A=|lXi
zE;B}{6l+nq`>WPy|13mVxcBkGJ3Dyi_yy`9c&Pp;CfAf>M=b^FOSQMB7%A%;h?L(S
zZi!tOP^+z);Jtc^8+C*3^Z)$&hCT5RS^p6$Qc}PylN1oz*ma#_Hzfi{mVOaT4tQ(S
z*749cob<>=BmCJ%O4}r8s*$R^_itQ(ngdalPj^=1ZHQSdtlu&hAus?QAaLH)Q?#XL
zcG_2htQhtBC%@ysXnF1lqEV#T*ovcyXr|#9$^+y+g1XnWSiDoYtM60=By@zv(|#JY
zE*(w~Q&#3Py2mCn?Xf?+&x13v{d8JUi%fRaLM}Ce-O%rQ8C&BFuv1NK^h;n)7c5$M
z<iY5A1}5Un&E#`keQW|e^pH=r@(2Bsq2Qp=jAWsH6;zRV&UfPbm)$4CA*NaqE#sA)
z%Ml7ErH~mhp(f=ptX3iZ%-Jxf=*ZW^cOW}%ZE*;T@^<0LLKldkoBU$rq7L2}u*G)o
zk;MxY5f*~Nu9;!ZnaE*Gq1b}Vb33+?DN}7~w&|nGVQahDVh*L<reG?}h3aspw|V-m
zO>n)`?42v6p!9n~=0Cq4#oF2Gh=$CU{FD)wP1N<-OLd?_%%mO*@b1p6_E(-%d<}{c
zX=@vNzL#5hof`-QN)7bGVYYZ~_=cH>Ki%OIi$Y-hSpcah<)F_Q*gn?Ox6S_3U$8#O
zBvoC)XW8cy>B(Rj%{$A2&=-kmFWdUHEz<0FhsyRVN5G`~B5vjzo4Y_0v0xeTd<dkR
zJP6Y@FZ7xq2Vz8!6oZ~QCh7}_=U-h(b%BwWA7P6JZ1qpn>l(Xy#@tOG0lwRiCp`4%
za@3#}`twl>pj%@_2f5$3R@M-&kT`y)`RRBE*~DKj8wF#Zf*C>alX}apO%{J@WZM?v
z6ORP(S5uDvnpxAO04-70F)ECl1A;2M&jtj-$Y@-h3NpCQ;xu4N(`q{=awlAnA<Xd|
ztZ^fN-bGoyV0;6V=KK?)Dp-hiZsO&d?vv)9T4Y43G}SC}mdLp+b{)bXd!w8bqL4(@
zn2{H>ApvaEB7qs%anvf#opPb8SE?8!*)R2a!br{xCph(%;Ft6s8NRnidq8%a6etW=
z@e4t0->TkJf@x{hP3e!v@03C2Ne!$%eenW)ws!x;tQ;gK+Os_8@8M)X0ASD)^9DOP
zE@0;B?@XT7rWXIULv+*k`w|meQeTK{m_$3zvF<lfG9*iKS?D0rz$%1C+uw$Yj^>$r
z0m0KhNC|W_Pw0FJe7-%(^@<(SI9!1ej<OFDuB&gCkSlT*d;r`?^TFjP5T6_$nJ)(V
z0Vnb%9=&k~+8)5Rqv$MDAI`(_3<dUSNS-rz#oP`0qj+&%`zu!ghDYzoks^*GH2T?e
zK9YXN&+h&l)^;ZQxc%7@XHhgj_`hBW4IA@yM3QliLT%iSRBy~`d!xefW{2Z8b1Cng
zOOLLQ8&|zNhL}^O>D<^XLTYW(1CW#VX7LrM+&!)CpdvJNFO;Q)S!7ne*0E=}05(J|
z?Rp^8m;VTIn7@;%Y$K$Y{TFXU+GYF7F~C?BflG^TfIHlS+0L%FLHw`eD*J=n%2v=p
z>zKN8vN4zO_nI)?Vv|yS4-)N4d3=|maj>+t**U|czs=mdn9~CLs|9$+oAIN$JpZ81
zs=fnHvOTE8^j`;q6^|vBkAbuF!t1<unZ?MoDf{Fu11YfM@BTgN=ww%@E^3GSX!}}U
z+S1SBO}o%l{hXH2Z`9DLcR97lIrDtmZ(%u2f3FxfSjli<OI!=MWQFLe|5`@6og|o$
ztV+2v-UISlaG_W11W+7E_mHYl^#Q$ev|_c)u>uPP|2lj&KV11Sz^z3Xzk}1HRASUF
zK2eH;WB-r`DkRWl5wgX<FzpUCvjT&hSQ?o`YVnC+0;wfSgbfF#t44~SMWcz!HPOCy
z%G*|~J2{GGi3Sr=j5`xyVS0?-4%K~yrB287A?<obv`6Qzu5-+<7t;%BqbVIBJB-JF
z_MixV*QtM4JLW0Mm&`@}oT0BJZRD95%=i$;)1Gid$saU}SSYq2X#V|xvUAd$q83#9
zkrZuq)ILL2-uQI^M$7J6q5**wF`j37QCTDUcLKI>+ZRH_-VG<su>C&Fm>DYaIo=*7
z0u;CY1m)=0sCO`cbScTLE1vpt_zLWw#8&o6SHGeU(<5IG!`^d)b%qQNtpB*wo#lA$
z+|l$Y+K`$eA-lxbb+C<H>fudcp5k?(7q`x0UPRpD3{W7^qHlhBVvQl_6##MwDdPw7
zDNPK|7rNTjGqixh_QTz(fkmL>q6EHMZ<AS+8Yb#~kgMX(__%;vVWgL+u&7?qo4uSz
z_f`j|^UNh*&i8w<g^prUkGi)<kys3(`<_fW)^yG2?K>Dr8UpwQAfLHsivJb-jOe~F
z!Yb+ZD$_et!=Ba4{g<W*z%+voLAA^J6LmK|{I_nR-~P56*aERSxh0Q>N|>>A(%lV=
z+G+j%)Z^BC5G~_0E7pPtNS~UtIeP9z+)E$OI*1nvej`&Jbor8VgW7Pg?gL~*IdoN%
zO9hY!#G>vG@x`7IYnYuqrf(AM6?1aeBHA>OGy1X(>H%wdnN8>vKLe<$y40?y=Xu%b
z{E!}w&zZZG9Vn^=T(3Iz1FFcv;#kTW5TU{U%B=oKoH@hiiEohd)syzMT)KQH%0(e2
zrYe5&q;E{w6!MXMPSJ#*m!RQn=d0Y!drhh8Ab9ek#}$A3Now&fRaQD@<HA&by?u~~
zoZ1g_qt+hIhYBM)KW(66-n^c40S+ue(%yYf0Ce8D|7vTk?yfdE?P+6X!_dVKhwD)M
zyruiST!cAewEA;+s-{^cAkFoAk^S4+5}ma{+hXk<MZ%dw5La0>rI0spK0OZjRpb>P
zFC}OLC}CI!^5u7OCIB5gPn;TlKQg`Z!Q5x(qE5({2Tz=$XE~63Lp2V~A4a%BM)X~v
z7j>r~`E1l%!L>2bH#J?VGDqCHRDL6U(T9ob6KEc0>Fi`wP1-)d^7oAsWk@VVQzuG_
z8<v72>szd7bC<}g7grw>inU|XakBB~ik=DiWt#t6Xbi4JLDR|?JljSMlIiOK(D`>y
z-rEv;NK*^0`3UA8O&_uiu()v~q`vNk^uNfC<3sGpG>NrSvNYz1)Zjmb^<0`1=H%-~
zHWtpxXydef@MhZj7XZylvXF1Xqs$GYjqE<q!hxVvIF9Mtd?DwlW)23c1uHU3kIqy-
zKvYm$nxr3HP<J{rq04+ZjPZNP2lt<T@a6jXvY4%533T{c<e>wUnQfP1&zn>m4uL-U
zk?1J*NJ>`hiSw(fA4Ie>4_t<iejkk)SU>f`P5;33y2850MQUOVzz15`9CNO??qN<1
zy=|7i!q-u~Yq6`GmKP;G1*fdeW|TkyY5z`!vZ+>#*YxrN`s+b<<?zX~hFZxC!^|Il
z4lU}Lo^K0}UJKy;3fIo<<~{r)<+6(+zuS<vA!uUd{$^&i`%LpsvKb)m0>{RYFRJ@!
z88Hvb^(qMVGx^q^1*LiK;t}9d*CX2Xcx-0iuh@<toaC%usQPu^)_f5kDO0VBfOIN0
z<|^mlKsj1Aee>fu`Q-?;^cP{F%qi={_xu(VYq338i+GWnqpo8GQfx}rDH@?C6?axQ
z4?9H>WrY}{f*{Ud4k;KJ<qgFFc`JNS*hkAf^YA32g0-jzSsr1U!jf>e^uKRx3_%L#
zFmdZBNw>^*K+q{_5s+)z-qR>DdLQjqtGo){G|fL8mljW(@3|~f+(?B9GN`|5viVeR
z-0_vL131ct{$TR42LOAiafNpDUo^ER>(7=sCtfhtVu$CLLn^=2%UsXT?&ok?Ih_^W
z>&?}{Co!b5+Ar~_{i_d=(O~U)UT$gBk2p<T2Os!%Tf1+$YcKny#>AB_%#Coi!BgcI
z%21X)^W3a9z}N-WxMq9gKy=G(jCmg`D*(N(xUUYz>!p|tw3x!IXblPcWGy^YANkl*
z={=|<e&*%OoCX9z8uZ1{<k(ATlJb1+cEEuE|Lj~p^i>QNQi#7G!+Xj+>(4o1O|>@u
zjman{5LxzU%i3r0)Q9$@A5!S}CtsW|Ab<pp&0f6+km)1b8ynjL(Q5G3r@+CJhTUb-
zbObQfjjFMu^Ax*X3TxB=8{?h%c|Vvx&7Va1ip7ow#m*t@)mSnGwJ3QZz<F6VGAHM?
zdj3QWDr_mmg-KCf0jpoDasB-H8-O5)>*JUTkdnruW(AuYuNFO|T{@DEJcQu%U03oW
zS}0HG1b@}S!guRMzAYI(YiykP4Me16ePcsq{(9y*3NJ$ddDBzzgE=jo)Kbn!*@Gdu
zi{c9y;GSkXX}@%^j{ISI$DL=j3|luE^;Y(*SnN?tY;6}XSKbll2nOVNDr=QR95zNB
z)`LCiKkqnqx}>AU48Zk|UFy^1ciT|gW!9^SL|N{D4wKNCeS03y6E(t&0=OS*lhsWS
z!I3R}N%Um5AV=Skyz}FztVJgJ)PojI>f0F}%ZnKqGH8lMvPkR)iY_ne{fvcq79S2I
zt(coD8aTn~6ko&HE~S!kiuK>I-V5g~%y<CJkaKDaAbUS@Bk>)eS?lrvUE5~lV^xgg
zToag?x8yvvFRMK_Oqx8dDDa4I3KIT}_Cv}gP={Kb+8&vy_ma&B80CoXD8|}xJ4(Oq
zu|+D`-CcTKuWh(1D!%ICg4anMbI1$@1PXkq`WeQ4r(~*(d-!)+6goxnQ~-^;GlS6x
zzRm%~4ls#TB7xAXaOL3Ph~NVSNMg;pxoS$hd)N37lSFWySHuW~*+f^x&bRof@stm}
z)%3pr&`*Ea@$ZaGDsm)M)cz}I;6P)(l)xbR3KyTNl;SnFc)io0PLlM0__fr!&E{4g
z*2zi8<-s{T&ezFPG)VUq$0~=ik$13W0{4z8e;#}5&BepDW*a|^VYtDuMg8LGF0j3G
z7P%PP>wE;`cY_11@pWu5nm(GRp;-5KlN4HYwCizte0`2gt}DBiR`DJt7O2I08syf3
zG-5dL7gU;oy#hjoG;NESjuL*JKiNz<BQ;;>ZY7hR-p`r8_aoiOVGHZS#GUjV6fZND
zD@@xwklgn<|2MmWQjt7~w#e5<0XiCKnS5^;g=H+z?|be&zOA&uzW4z^eD3TH1cdM3
z=35n$Cy^c<Z|+=k6u3O{nUy>G^#1&%hbJ9Zqtz^aRxHursX6_(&xyK>pMkP5UWpu#
z^_^nPu|-nTcZeU2oUK3_F$POg)b#g_5|88wC17^9^jBy=b%WmRyQ?CpQv_W;&x=Uy
zT6a<v1Kyv{m)x}i4jj(W8F4hOE)q*S!>q5DJS)HJzh@OVQF90xv}PV#x^a*FM@>Xh
zN1emm`s%z}8R==fwsru3&GCA<5H=$2vl?D{3uXrTrTi9HJU$+t&q1`1_kwDqtfPl9
z5L1hyLQ}U@qy&&%pSE(B<^*CnpB7r%?E~Kh)5{FV*CLW5TMYr$q|ydqNpNuYT{aov
zZ<VjQ#)^T^hW6W`Dn+Y0*EQXV?P<@zzdp6K?@#9&qo8cd?*M-TsPJ{+>!B2^0hHhb
zfE1R?Vpm0!d$z$HJ7T=O)S~#SEAM>rwAS&6uS^oBu^*{6zzxfb1*#D(K2dcseK8|)
z*m>%mV^U$d06k3m5kK*QobCCG#l9!k5tJSOQ`N$7TOVAfj8SG121?j;m~+|hYCALy
zuy4rR$y^%+`H!km3q#n-E7kF4m4384SQKUGlMkrE-j*hnK90jSFAyBNC>&ik>51&|
zL!dpbqrOaUU(<x;KlkLO{Hm`7a+L0+(l}b9&}KNZ|E4_N#q3Hn@1xd45@X7Gpz!vh
z89=*&>C;kQ8D}Pa0ZTI7gRZ8-gC63ZkJuP?<Idm`rX;wB*^huTtK3|3Vv5U`ENvE&
z6g^|SZo;p?CKI;DWT+>GPE;-E{}?1jiAt0&R;Wqj${~CUzZ0Xu)N4IJcrtuu0Q8Wx
z-dDK004OQF@an+9dn5M*og`tLUb??Y&p#FSoiSd#CiEp#y)vT|GBeDq(Dk0I{1OVY
znpgt#Zv1z;ItiS|JqAN$C35bLVfg;S1J!o8F;mRNGd_rnoZ8Q~uGG*~0j*`OHN6e9
zu-?2B!X@~=E$R?U$_$nI%yX&6;a-!y*K6J77!R~qqg+)oVWuX#P*~h|2XOCYV5;SQ
zSAA51ZAyp7$R)dihgw}z<ZhmaT0eKYnec<q7uZ5$qH>8cQc_MSnz?z#-)Qt91w_QW
zo4hnwOhy)AQ@r#6#SE!2xevtOaDdgdCgff-^AHLbchX|p)-Fuo`#cB3g%g>Xy6&yi
zY!y}~8@@X>OW}*Y94xi5pr7_oU4J`{{W>0NAptflQVM%DR6n2<gm&<CG0Mg`1hd`0
zHWnPv|4GKtuNX`dHs4<qA=_#rpyMS{%Ln_x)DKz_4~P@MEr_L~)vBeirve9(g-7b(
z+ioOTeVOda)Y7@%(unhg1-1(J4|>Bixfw$Qxz>^HA}ehUU|0;jh1tXTj|#NkF?91E
zcGm!O*#kytSE5b--d5tum^_|(oQSF1DXCw?R|_ZJptb6z(Otdn(k8wAt0QrpbMXbH
zyTQek%50mwM1Xj;eqSIk4P9jo%=-^#@td@>J}DLGUR%oh;r?=2&iL6>MaUR-B|z@0
zN?8-OutzxrJH)+{EY_GqUW3mAjaMBY`PSIKWts1sVQ#IL4`xB-uB6Etj;VHonmYs0
zbH_iv#zR2rnbqMgP@OHg!8|m?u`R3H76FNG!=zHZzLtKU2yz_26&){H9KuvN@7@~G
z4e*hfdex;8g8u5yRC0@vshhs#MS8q<O{|A6^vhb*tUF@z7WcH!+^XM8VE4bCtUb1x
z)2zEplLD&EjE#NMPVn2DmVRW*CKbPOXZ;1%Y6xu|teD5nA}77Qo*Fy97H_~cqH3&a
z;)zho`4RWOizzK#yaYn7pUTKt5bhlDCh;GkGndHToj{dqCLV;eNeVck0UJ%Szw6w%
zr^MQqV76-rZ;t;MoHOuSOF|`Ur+9<XWndB1%5|k+f*MGJns_z@V_Q8qeRVCTmgIiU
ze!uE<3CWDC0^nO0Qm*gLM4M1|_1Epd>g2&c9oPB~m0yX2!AJA7hrRF#H;p9|vuHGV
z+inbiRuG0Q4C8EwSH}mWSFggRB&5l?7lr}dpgci7*u@r2i#5o@l7oBx_{Z?nU>W1v
z+e3Z1H?;s)`{l!5L+EZk(=of+49aRQxzsjr;aU1GTiY)+wVua7fQX3P5hcf+5@z+l
zY8|{?q1`Vqxm0y^zSD4SS-;q{Z}7}Rqb@3j{V&r*X#>Dx`SfvXBs=_U@orkXit6vL
zoD`$?i-{|ucz~=$;3IOfp!d_t(v^1=$nPtwh(7ij`)y^aEIi7xc`luzO*#}D^YjEk
zkyU;EI=46#?G^u)++?r~lbxB6c+m`!r0m%GzW#Z3GxL+pQYPKVWj9325h+C&9yp&q
zf^A8pnRegc?XX3pOB;}SeAV*$mgkTmFCnnk!~D>@E;fcbS*H*W$ijL?d{KYdT9=a9
z`>lJ$Mft)zq}_3d&&okYJid%RZ3fE>l!<ck#q_^hPrhxc%^jF9CqN_DBs8l!8PoR`
z3L01OHH?T!(B-;}g$i1(4!j!<cM2juhia|nR`#DfLjvB5BGeOb-j>nr5eBw41nPt0
zV(I6RK%o}?TKIZ`xv$KqA5pIM2k}R}mB}cjotNEn>X1SOvz6;opUZF*6>@(!8OK`X
zvcOo4*1*+}(<Wd0xM(jyKAfP|43+IJNL|YPO`cf@z=z2GzybyxC1<^L{ILS&8pFK7
z?##hsc7lu;Yk?Ll<l9hz6z$g}hpzHx_8Df%)%@ixeAou5QvM-R5mYgtikY%&&xgTY
zC}m164ph(t<ubf^WzV<rO0>14R@P;>hcO<7*LH|~HCb|?@?k_``ptpnrN<4Myb#Mv
z0BtU?_Gq?8>QOaf8K7Zy|9yjV_Vu=%rMO7^!U`at%yT~w8E`kNU{4(?>}Vo#+u&6o
z=|C^QqCYL}-?HLBrqhd0FejaLeb_3z4V)Ka6~yT1YJ1^KoVAH=$HwfxdM69zg@5RI
zdIMBfDwqosU;^@t4_#QjxSOUZaaz#9uW+L5bNV$e^2Xss_KTWxLAC+KB!9ftkM8CV
z>u&A4C{o|7fAp>LaT4)vjI6Fxj8_kce!b<b`w<O9VuV1Ek1&+>Zn}`{-IsKdFJnM@
zu~8>Zc;0SGp-ib%=P<^`G~zx%vkU;4p|FHt2<RQ7?OTPkdz)p}fvRcH@nTM%fzwo~
zT9BDVgbfFvrxCuMF;7R}-iKXCzKER$<cy8dTPpbx155vSvT6w<hBz~{L6{BGw+rhn
z>!9U>QSfcxc-xFM1sQku^VUqyzk;hmg}rhzsc!A?8#X2$aiC~02gD&(S%uzeXUknM
zVbp8#NE@>@qZ1hEg>%1ov-#pNpYs{_VC}2g7>+~(`#DoH{q^HPTLM><!KU};OpSe&
zC(3uWchK=CmYpQh+0@>DA#Tf!B{Aho8F&S+>Gt;1(Lat^L|C<U26p4pN$O%(EX&J}
z7-z{q?svD^2`@_g*`6Nmx4><eL>TnBg}u!av9-V6wg0Y+?j#BPJ!!Z9!DW@*F#Iss
z#T)Qc?VD^+%My(@|CoahoUcg3KowewIL?sCy_=z^A+K*~N6_K!`duw^B9WkawpQI&
zrsaDCLyf3^JVH`mK2Le8V3Xxq^`yGH5V^#xO6tq|_l-8fTH#p7AYuRfY%2ybW7s%~
zA`w*Tm3lyLG&=I~&TBHjE{Iy3%M_L$Dh_DHprb@0Tw!E08SQ(7r^<64?)bT})(O8<
z!enVMM~0_TKunwi>;Dk(_$48RLi+jioUBnB9H?Br_td;!+k`tjT4j{zTc={ewt^0q
ze6KFK)ia9%6Fkymh#iMEiW6z|6t<kw*lX8=%wHyaT$5PzIUw=x8y@N>Uvl~jyJsE(
z*g-&fNX#u_oUUQkJ1h4k<(Z`jE09HgD3|nPp0N8m+I|8EAoPrusPnjj|Jg4xWLm7t
zoL3Q)7apQ@iT83$#^Aw$^G$uVQ4bw=yB@5Ncpc81nd;8Xx1FJWK!<Zbxm(m@_LT*N
zn3y=qUDYxR(y9w#pXzV7<f8&=_pq(>cQY^+NrUP_;hK=S$?j%T1KgGvI)@NO;N6`w
zR0ipRv}A(2{bhfmePr!w-r70<gvxeJ`$k*)_WPycH?s1k+WNkiZfXu^Ck*yo0datO
zVYkcDV19t?F>%}US3v6IOvSIeC-Xc<xDbl-Z<i~GG?BK0i*?h*cf3|2>H5|CU#{kk
zw5s|9?Vqh@t^kWemyRc$laP2AOaafGcD9d2E;{$Z(K*?YbAHd1zELz|NDKdzK#4p8
z_wwa|im)>A_S*O_PSUx8U(AX}6{fOjQcmvhh8oa8NvO)H)td|D-7x2Pj&!at-*R~$
z<??f&3*5@hhV#^sS41{ZJ^d9Sl^T=)3-Y9Ad^@pXqFeh0?HlyapMyM-Py3*6SE-EQ
z<|Dk-Z054asAj-dUzPSIaDI9qRnsR}awsTti8Aj3S=i&1?ac_+mtr_MTPU$LmrYON
zn}lQmBqNXj+R?OV7#VExOtz&Gs;egP2wLl2R6<e*QUOZz=uA{OfWju6S(5Ir27J;O
z`UW<jJ4Iby<W1%NIYA8;pm)<p%kZfl|7(jV>PXZ4HnhyeJU~Z(61A3Kp0DMZ744K&
z%%$APZ#>_>=nk0Pk5H5fHWasV)!GrX;kEojB6OAS@XTS$;OY6jS;B@PO%<>!;F+d|
z9%xKIKP3U;pPNJ@nn?Wf4BA-={w}j|+CH|UibPl{6!yX@HI0ctpik%b9W3aZvuBn^
zi0RGoE*Z=je9SpRYT0uy){$dnOy;{Pt#TYlbgn->+^fWSrV@j@$UFsa07^`TZ*i;b
zwK&~l+EDY?W>JG|=3TYm1Rykp-B`dJ@qJu)p2*|m=6W;{HOw<FD*+RNYB2)dCvErA
zhlm=8t$fL~LBSG?-ni_nP0wjcUg3$vsqQ4pWX9m_3w$O#JQeg1He*<|vQD?Adk~Z%
zp3;cX$mx$6QMN8UEeTbZ7^S?ZK9AQcr-iUef25-*xBDq{qWEEGbu)JjU{ZMjv0%ii
z9|yNg8>YtO-G|uKsLF`HZ&)>)T=viU0f%!!Zbo1s$Q<^Fo#@A%7Cb9qt%m>A<<3n`
zF$KhBnC`a!C7)-wU#g1X7mqKTJb#h8<IwPOv0kP1J(Ocw*CUp4CdXq(DPXgrhIHV%
z_-K4!=ylNQ_cf5o+cv;ca5eFBVOIYrtFLyYR6`&4x}2@jS>bqkM^m*mVey)oA&|mx
znT!7?mgV4QJMPsSdk>aiM+Jzx`TFLa>~Q`7o)X+Fs+Vqt$;d3uBx~n96iUR#@e~N4
z%>rQQvtNu!Ia}7NqAWjX%Z|7MzkOY!0Mv{s(62aK(QCP3g?>blzd?0zSC4OIg^dIF
zFS;Sq!U;?iO}bnMOO`E)bD>V)M@=U7L||h%0$2cU)V)p7%)RGGO(8hZa%rg*$gHcJ
zWq5lf@vq-0vQH;$;_J2)f_*XZASCIx)<w-D(WhSfEvfD0a(~}|zWuUSEc#HUZ}<J*
zHxNkP)HgdrNMs-y6g1D_0lAuYS!Ja_s5@APaT*9TH+fGDR#lmKd;F|OH8XAAUi<#9
z9~LAP{-1tdRm;Y88f98!Y&x?N54$B`BwG`xrs(O?y&OMeyw1<|RtRHVr1?L6Xc0@s
zj^!AGj!>1pTw4A0#p3ck>my04|Lc4I_rc^o(WN<67LtrI?XE~d?ti%-H(yj``CX`-
zuKxq^zrUm02;Z{_xa9gbPHFWlOjE;CnHB7nKmGchz<R?dmHK2K;Xv!N{@;l|Ij6Ng
zW*a?0djIRcQ$tY`CgfKmS|4*ws*Kvg4iH)0WlH|#;wr#c7Yw4n!1cLCvbEl(x(?zi
za>eWXo>Way`svEF|K;iF7SYsRkMep5j_Y<*inT)F|J>vC<-pH%U)uFY|F0qcr)T}Y
z-*eFujlar>r~dh(e?HMcO|j4){qGwbGQO2o@_&A4|7BqRyjDG)swftN|2&|w*kBIe
z&U7e8DBzZ+z#SG;OvZ5Q{guhR^dFzhR<icbAk=iqg9L<f4%QF<+@5oSxTumH==#%i
zlgWgN?#TV$OzD5Wz5ii!|Ne8mC-UYye_mpp9q#}^eCR*l|2&?{>OThMLyE@<*1vvR
zty4R_ECZ|8m;9yv*yi`O5vvR9fL7BA|M@e`IQ@E3^Hpx`Kjvc^@gU-Vw02hczQ-zY
zLVqTKfv$?rDe$@~a$H?Lk68Wr=gV0l*ME=jf0!#3Src(t|6zOAR_#euMW9PJAN%mn
zi@!FAIo;p?WqSR2CYuLrEq`7qx1KC@TE#za*O4!=`tm=|#Q#5!4;b9m!GjH;n)P3n
z=x}g<x?Tj%tyB0ghS>FEZULC_-?N~UOodiQO=ny^8Tqfft0+8WVED&^e|UH`9GX{L
zzvB9&OM`!1P?9ymDP#}i0pb5L3>96TChI@5v&wSvW43|zj+FWo4@D@VGMjtrzd!6M
zT}=n+qJPcOA>$11IDdch8`l%Wh$b?@hV{R%L;tV4mrjiPWKe(FhFnPXRu)s*Pw!%K
zt$N1(&z#F&7q<QPoChpCOIeIm7^bP#|C@HCr$9(musr#{zm@;G61vC1Yl?3t82`m8
zA!JS}_v>?7LE?YEuLxk38c(H<ph$2T*zc~7`}YI;e+~aXjQYQS<o|7!{0}zx|N5dj
z5=ozmDS)of>waYshSgZ#lF5|b8Hz`LIP|bybeG0orxa{9Q5_`c5NqroH<1{9kREQx
z(Xqfgk4P`bj#QJ=@ejD(_0uj6{Mp;@ZsFzu$*jsHzw>eNhRQONdRCl47?l3`5jX`9
zb@CSx(>eg)hRC_dt7kU?o=v!*$k$Is%lobdJx?}{B>Q^SGLBR@x$|Qq<-CjKL_d9N
zmS0mayJ&c^^Y@MM$8nwdr5LoEmdoADXs2q?NNIfia2tSAABbWHlOt=6Ec_p}Rnm++
zyIQSzb^8eGvASN&KUS7_F1Vu15|U>IQeG*;uB5sKxgBDR^I2)U;ot|dgHe0oH?tDO
zfS!0J!auR)@y($hThamXEaZ{;DF^P5eMxuacn!^E@(;n+VE{ln%eCD<5r$k*y%$kX
z^>muII`OOv#^>7W(((5VNNZ+7bY_Gs_s$G<N7=o39XpmARy#VWaqUMG_l$m0Cl5UI
zSVo*wM73d>WY;q%Rp$B2+#3y4Ra-nslJt{%H1JC~IxyX=cl|3;YkmX)EnUCKWX0;D
z65v~{GvM`Nq@`e|gC`SbeWE)cl*aUYH)%U^u|fscC2(5LF%f|LeMbK)kK8@?qJi>j
zhd1mYkM6HTfGSiivU#;IeE0;&`&_95i6^#TZm*ouc*A+jtf+)u(k!7m`PKK(<wY0H
zSeQHqJ2o2Xe!@^XDcPL31&{Bcw+`~9lLYcw&4!p%YJa#&T!>>u<WY%JqGQJVvV0I(
z3sTueU~<UPK6fn?v#7He!de?Q*9R3AvoSYHGLhO(tulowV#HA7G1S(b?m#i2k<0*!
zy$!5ReFzoDZBYjU>L0fmr7b2}l>a~K-UF)1Zfh3>1rZTY5Rl%xG(iw)iu5X?bVRAr
zLJuHK0qMPWlwJg-1_(uZ2c=0!=tY5qCWMZ6q2J#Bzsvd09(SB^$GHwhNZ#Q4t~FPm
z^O?`nky#aw24|aeUR{pRjJ%Pq&593Q7L1j1vt<oH$clYA*_M$`itoda--eO#q`T=g
zF_!h~^~&gGF^_Dnic2MepA4S;5u_=LQ;;pq$jZ^RSUpy#681EZ*^U~({d2-szdWQM
zw*BS90+&f2kMW4VoM59^fK%5dJRQg2VJ~Oxz+jHY<&=2k-io>Mx$)9)koRR<8#yg>
zm_;jyF8~Ts0FUVXi3(Z{9Bx+)%u3?n=q*E~_E$yUOasJP>g@2FQ$|$lK;R)yXopep
z4qYHkV1it4Ld0AHz?f=94@o0|%M<A#!;F51NSo~b)S}^4fv*aA;MXo~vvg|_+275a
zEtM_uV4J)yYH;52V*Upw+B5r&DaGV7*_KDhlH<I*$=YNLc{3K1(=>UfI2}9n0o_G_
z-9GEn3&t#gQ(WuaMxpDX>H-|tu<7ZN@jmHCWd-xe`57tdTdI~$yIw9<bu(f+!jEWQ
zhrkPc))a6-pfkz0K)yjtlUCKpH^;>8n+0d}%KeI`UEVKI+-yejXp>h@azjls%X^!Z
z1<u(t80CQHlLLLFPR1RHz<gLis~c{MXT&nMMCp{I=T|p=s%fTjh5}NLTkU<CZnZL6
z!n+%y)2mV^j{?S2PnB^2a?GG9F5crvpjF#c!MOdhm#`{rGqxmsVzL}|X@l})RQjq0
z^PL-cwoZ^FQHTR7?qvAGce~4cs3T<jIvOs<MW0;jQ_6}J&Eb9ha3<pcXC>5xasO7t
zk?WKG&fnhMv|cN^GXC5)<Gj?)kv^k0^Yye@Rz4l5k+K&H;fQUW6{of>74^JTCws%p
z$;~$sLT6>2vx>IKH%?Gvog(faZzp?C7Rb4}I@>Au(iktfD5E6~)o*%hfhh1z8YAOR
zt^jBsn65Z-QHZ1}AZ7QJ{bT(mTqmikVN{<&6hNr8U+mNJ9MzaJp3?P~%Lrxye}UCu
zUxoaASq^@yPVw8elR0d<I{~$h`&J;wu>;lnE<M(GYb^{8V1+w=J-TOub@Z~FUGbx4
z22u+OeoPV{KOTK=x$LN)0plNxkY@68_=VHY<9FzLKB%b*(exJSS&FLdL|QPG64sd9
zM@d4Sty;aEtgS!w<{C5^1Yq&VO2X|;mx_nk#iGfcboXlk$onNo*j?P+_IiqdS8P70
z?$nm1gNPKfEK}LWl|NV_ZaVDPj-4cq97y|x^9x4-M){S#=YCa$!H{MRqV@-NJ4SPf
zvX;fC%#te0#9}E`xr+4WX$kyki42~}SiK==ZqY}k0^{(2h|_5G$?O{~WaMiwvBc}5
z6C-GT`Zz>jq}4~HW}4L?Dn$-x;8@lw*i&KqG?)v!U{p`*o070-hF-O$h+*iutEFRE
zbelsM`lMirIzoySCjN}}_nbX}9<a3bWLT^sC%3j2yE=^5zWa5wS*s2Q_h%}(IoiDe
z5YD!qV`kIqnBZpE2gZxOWv#yZcHO3zBYTcgMei8VCP*0WT$Gkj+7Kf|ket&Z7J`XN
zAwpW8MrI2nJLh-$mR+sC!5va+mq=R)RiYv+>aA!I&B1)orz0KTd{D*Cf_)ZUWj8l4
z)kP&z)}l4E<QoWe(2V5w??^K9ktzZCyd8jqW_nw{$~9<uP=)Wk0^m^AwP5V^hH9hj
z_v?cFEt5%i^rkV^P@S{&_R368sL(BRpCN6kUtRRRp*bgF$EYQ74o)tf258YJuX!#3
zl21(7Dlt6m<AaU~ZAhOpWU_N5dM;&v&6>$5hjvWPw$i~|pALg*?Cp5vP@@(*mW5y}
zjLf@xs#XTKXt{h^McVg6YabmaEetJra%t<3pR|p=slI<g!X^376h0ki7$f4aoIjYN
z4v?h=Q~jM1%H69uHKH25Y|D}lwiPfTBn3LNWiD^Jn$R>EKyfj<l;@r@kVV0SjhrZH
z7W8bwKj_X2R4xqLTM3}PN;{aNY9E~56R0r^?k2!)kREw)O1ON6w2saLA#f<4ee{de
zK4y4C@j~2&@^$@gMpb7E84$VxVVbmA>fKdA@2@%WVG7||(PI~zcf3PqJ@4oTz>m#f
z;?lHXHqfPO668?B<R7Q{{C%4Ct>X{}^X#Q3LCXvirxCMRBjZVyi!QOD_e>0Y`+I*Q
zyQ*znII48HMV33u)H3r#zq8hQ><|P0z9Q$0=4-f+^%VtJ+;%(q=~O;#Q7jI<q`jSg
z4~V%7W;`EJ-MZqvE-1M@pYE^dI=?Y(gf={^FAlTDZ;^ZMcANhq;y#>a2Hw46G@WtG
z3bkL-mn)iE1E54UGQkN&pLJST`1GB_q2_xZ>`PsQvrjt<*Z7JuT)dM(Q0A(J_Nu$6
zWfg(tllcX8CfI6eO8pCDc)Nfq>rU`o9c*>N(UI*UwBlU$!_wxl$V2X=2d;4CdHe<$
zEmlJ=K?3{E=_<_tv*6Sp=^RxADR2{Yhw1GZ#!q%=)KshH@l!|NO;{DOLfci-p1KU}
z=X_o#6W4e2Bs@(@O9JMV=lx!LU;jZ!i=j<j>#FgzW%MzX2TBfo+wPS~aHt98*omc0
zX(SNg>S1Ie2O2c>O78u>JWie#$lz{LMGmF0&K4N=Nt^_m1S<e2joKAUOIU~zX2zv<
zbFdz=99%gQBCd}&lyJ_R{|y{dheQmKR0g-RP>Y*cTZnmH4lwH}@N@4}789Q*@E5Z$
ztJl~<(PG`6bPgJ&mo@oru5HF)2cU|9s0Sa0&A#<1y59)IJ{#5M3g(Wl-BHU!D2BMc
z9{6sfYi<))*Bz0nG=iF0wh^Zr5*yO2=R3XAN%>yF<ES%!XsU@y+&Ec#s}tl!=~`qM
zIksrbolfU>o_*=;RW2o;a=goi)EuM*X&ykVE3a@&2ZFhex@Zv@0@!?K!^@(kvt+^~
zs-)hxm@j<4f@Ht*g_%vkuNS$8_-38N>0?}~Z@J#TpJ-|M)h?pXWS_Flsb6thoQiE5
zV2)=68->!+*#Vi6xREK~<azRD=dDN->Y_^e`;_;$On>@+2n0k^_kjWr$OL{180N{|
zr%qnvV)$mB_Kba}Mcz2hJSq>{GcD<ZM-gLLLz7uKn-QtBOG~%RyBHqm^U;c0f&?uW
zzSJn=qL0AV_-8wVJvV-aDTc??#;Pkh$%69Bi3Qfc@*So5gd9yt{d97UDUsk#{M6Ut
zEKw%J(b|}^hX1E&1jD_4VZ8{4^%NziYY<#FfCPH~R$YxjE4St1T5-bzPB!Uw;fN`o
zrSGF$!;9AteSj-bDPk%0*qN|{4Uh_k?nx}_ttLdR=Q`CvjS&(35<8)D^(~imCalB^
zX?!+`f4kOfu(^|=QLr})wnAbIZ^Se#%hfTB*)R4{!|gOU;!FGb)b-xN+8$GV5Y7;E
z?)r77_@g+J*P;js3Mil)S2O&uxns><*F#=K22D%H%(7(^hVb8<(oap8rmL%w=6Qv_
zNmySUIAG>(gs(li+6db)RPUknl(@M^J}Jk0MZ*PZOghLhL?USGA3F#kJ{6XUnNsz&
z3LL;?uA?=q6DIy}@>rsfbP6_=g`VMXs*;0fL^GC17(}YZgUpOj^zgK#v+--j!>Q4i
z0L;;wx@V|MUF&WpQ41K9YDDe!t!|@GFDBD>{T#z`z32ihiW)yPx`V{1na~Iy{*}*^
z?{<_Ylnw?W2d8G_1H-x9DP%cs%o3({*;@v%Mfg(XY-GkPIq?};x%y9Raz^M(PRm8w
z#U5v&4VzEnBje|SeGdor(O%AW7c4KGc$D)GS=6UI{OS`Y;dl!+cR6=S%(Y{3H=9P)
z3h=Ki#v*<yjcKg+-j26mV8T=e3!n8*M%y86bNP>d2-OV-UuPl0LasH`dh>%&N#D(q
zBaoV&ptGGIutZX;YjF`M{3eB=@v=z{90tb^<g25_(-4S^O=KOpJ5&YA6o!iaaA^aw
zj&w>ycw6Yr&NsC@*Vk{1v{OI!{j*e~Go-m2jO8;7UwAC9Tg9fp>6UD6_OngzKiui9
zCctsm*ROUUG>k!R=eNSiW-y3SDl*^vRwO~KVFjMTl5g)3$}pmbw^88)O4D*MJ}tpX
z6?E%?i}FOrw57z&BO{%%-kjrHZOi@ZAqwh{)<!Xm0o6uLU-#uAtu<x-NO};_(LeH-
zr^y(!5o(x{?-$!$CJ!OR<W2`%7X~uZ;>}~jeHmk38ti~h?_SDjNh&L%<4^!mfr#IW
z$bL0WY!+51<}vCQYvDJ(SSRsZV&^r=6l6fLTYaN&iYJ`Zz?|oB?+q?G+(ZMWxqT`j
zr~VqCvYJqr-2FSZDYbuO4q~nIX<L56ap#7@l0BqtDcn}zMxXm<<pBZw)@)t#x)Y6H
zPKJ3D&9#)Fm~+><1-*IJENww_0gob{5-xPuw{>i3fz}|Ol_tUgXg0E8i0UAGhugn-
z^SX0sW2sL{1NMEIvZhDl*D%6&2kB4VZ>w<L3Nc#<2ZD%(t)p_MRa2kcRGEHU52kN{
z@z0369?J!l-s*BQ!YqVM0ScjVyEcpB!?uZz&D_fS^|Fa~p!odB!KeMaqL5k+->Gu0
z?>jP;bDJ<gsxX1dR&?8IQM8y&m8)){&LTP&(@iHb<gq9Cvv6l7zen3MjImNVCTK1*
zyt&;ad^r#T3zZOSR<6Sl<?idsrA40a!&|rQD_0#Ire0&hOIs-U)lMbCo12m0B{Q?W
zy{p(=ILunKbB5Q~i#UhB9|5?a<m>NLR^7a3WQ^U-f@fW@yK>Q4#(#r8)fq@qM|ByF
z<Yd1+8iKBkqnjAr^&d1~_3<P8M(bK;l{Y&C^<#ewERkuGBUKx{5%!6r=?#wiwA1Nr
zL!!37aOh!sq+cQjTx9yKeZf?1y!k*)zU;JKsx-W^(*Ry*0Z{vDh4VDRE-|H5FG#}}
z_o-qb65>uG&Ra_76Z?#_b5F75TokTLCb{{z_Ny>{>Fx@KPI*FE4XvjMsqI@T=WFI2
zkcoNs3287de_LXX_2otJ(gtgf#7cvOpXr9Ty!&CU-<N!>sBYh<g1tsBidhU})BwwD
zkoKoY>eQYIR%Z#n1jU_ew-%{fmr&}5=!Po7q~!0U?OYjJpQW|2?W9@)4x0{<U|H8V
zF@1{3K40N;4S6e)k!;?ISq)`I^a-V2f<alU`H3m5r=@R%80}kUoo8lYA2=|y4ZG8G
zSQRU_m&1#(bM=5`t?LERIePogTCLIlc_+AR%*eS6e@L`8HA7=WEvb_zYeA-Y%V*l^
z(&mP<g}R#I!aY+THke>Hlmi_IvPUvt7M!(am699_B)u(jBRjKR5-=NYEUnH*^Pes%
zwFF@dQO4;2zadg5;bP71ENR|BfiEWGujJXzUN0YpX8YK1%_EPSCiUcPLHUt*PlwQr
z<q(D}>Cz?~C7iR=>>hj07U$2F?Oz5yPnAI8&0Gs>)m9kor*ziocs4!<q?NsydsEh0
zmqk<yR0|ifFhgV0NT`YSs)UoEZk!~Ua|gPyMLb#ex4>Gdb6KtC20KyOUBWhpUcRpH
zq2~eeh8K0LcSKbh)7|w0HUVVc>FsDh<p#gFj_G%X5BXi1fr|@bFXY}@%gr^jm8%m8
zeJB)vR<mt#hiR2gr99?k#fYFQ;wgXuU#!u+p=*g@qY8XzngG&6w=^8=ms`|7)xT+`
zE!_^cv3y+fde)kx^Q(Rj<dC}&>WzJd*fjSG+fg$`bZ0apZ?-hU#dv)rwnKHn3O;mV
zVG99p7OQAxRjA_ESutimgsqdUh%-8-yORp*%hj<WU{`4FQPu$f&ylT}-!3`J0<Oy|
zGq+!7_-{O&%KDwLocjw0M-1lxV$uooBmb1UOyk9o{Kk?<*)jg(;6wQHK)8aLd9Qb+
zd+ZNUsUdMQf<jVP1!uMG0rh;FrB*c5ZUVJgb7WHwuh2DrdanP0PTXWvh5M~f(O19C
zLyN*OAKD!iBKTcc?90XB`n(C5boJuJ;WntO8R}b;fVS?dyHZb3lmeGBrJ}HghT!V9
z@}_RUw*MH3wQ<tCi^i!q+rkx&DQ_+M9-#91O4Vu{ahpel5=c!rBe~Ot(qi?Po0a7#
z1KItHjfGx5vi2XGrBAl}g@X!%Gw@bMFT|ZrNI1tLyww*_v=RMYm2b_VkB&K7;_NZV
zD?NjQ6dCa{4H^8@Itx1;mFZ*$<tBX_P2|r<%6puDrZIW2Vr8jBs@?*XT`P+veZ^|3
zsHZrMWRhaIr&3WdqGJJp9}b=h_fL&al{+8#BNm|gxjVECp1>EN+M{#<(M(<yql|E|
z)Z+WtrRwWVl{}uB8A}_&{&5CYwYvFa8vg)m9GoGcC73?nM9zvJ_ynhevkC5Q`!yvE
zDGl!1w%klS_ov82Ju7pkCa=+cC3d*$b3-ye4{OjZW`C^R9}cu&HG2ouv>(7&_Ur3e
zwaw8D!i2Sj--#N`4i@CB*vg!Gwf}fRGOIe<g=M1?luF1zqN1k*nW%jpUGQeLFn5-O
zzn!rqjJ(bF{=`g+%Wj?w4sfKX`r?G4hNsL?%G<geze&a=K(0`FMR-2?xGX`UMepiT
zc24<tvjK(EwRo0QT)5&EDz$o5y-iKgiiUMtB*sN3$}yWomimtTR5|DOcx!?ikp7#s
zRI4bH%{;I#85o$_ZJby#9<6l6iwpS}p|lSzar-=_J{_r9{@}$!r3m!7Ag;yNdQH=X
z<5wG`gp2`f<w9j@Lw**^VsG3bqqjC@=s~R51<-NH_kDz*unMQ8s?OP`ecsO=Vyr|v
zu6tYwZ}5PC_H2lcvo|L0q(L!Q8`nOt_Kfai)h10)e@dvg<n<Ipa*slM3GUF1+f;NW
zwT>>wj<o>y)wj+&?&x~8dAqy)Z0CCgyK=pEN}o59G#;+9HOgK)R0<9A2tg4QBYLjE
zFFy9*kM1)rPU-yWvyO=Hs`5zflDUMG__VluIkUs$%!4C7=?U((96E^K({DD%3{1+8
z3w|tVH99OYM5`ljW_&$nBM+3Yo93jADE^tNdwzKF?FYDmnS4LHLetBG14rlVx@@p0
z6AMf_Wfz#t8+J}ir>GN}Okv_#yuW=Qn5OW`H3o5=04v5GkSS|=E8t=D=*4D$UFmkx
zw1?cn!r*HYG>e?O<s`>aFe)!Y<R0{6yD!f}7d&@UcWqxcG25Pq7fP#_LP*l2YjrFH
zlp$@>@l-FjMm=woR^rzYwR>6$Lk7Am$`Eq1Hnd+N(uluOL3)3$bim0nK7Ny%j<G;@
zhe|bI->oSP0|2G9kLuW=y&>XUw#xd(g!{yK!$n^SD4J@u?D+eme}<&Qjhv*;XQ0iD
z=&>KvXB;dB;h&peoBH(FvgpOkvM(8qHa~!;Cq06f)^~qj4A)UDj^FWe*hQ8lr1Bx_
zdCOv)7sAeT$H!1{_PC$v!@$^a-7c~7Ex8Rf>g?nnd8U+TCOWjG6xWlRerG2eRovta
zm>g9TVios#Zt3;jREO5StZ#v=UYe(@BI?n*(3vF;*mHs`@oB5bCCPy7_CTBTYqjXR
zDPgQGGH+(dgFA(5pC9D4a^8COGd|>@6}Ok2DJpxm2SS#)O|BYquwpQqA!Rqz2h?&7
zWDh5Poa7Up_^Z>RYZWX6uvUzm?nd-gd>B+3GJWrWKeEfuVl}<1N`_kM8|)M+>Sb#O
z(Iut$eIA0ME)JgO6|XTUO|(0y>^x&bCl#F(Y#HbWGScm$X!;@d!_cHf)1iJUbC`bQ
z9Rvfp69E(n=HnmrRiCC|);FU7TJJQ8!zYuU|45`x00}EZl~tNh?6o}I&Nfb+RmWMo
zB0jdeG?mscL)?I9ho@oSd^szbN6w*Lcvy9kGudvdo34Qa!@BRi4m03v_qP<#b$<K?
z_AGsXU9)%G$)x=AY!iaJzN@idz5>49AK3#hNFMQNh(QliXE>qNL3Zp+K%LDJ1GP?-
zvjQx;Fd1wgcx%zmxLi%QLW>p?BOX*$;&`sux<$A08cxFKQzjW+L$YMO3SANCppnEK
zLRHMn(o8egPAZ+Ha9$i9e`dp-F`>K5*J3ViBmvwpSEKA@FbFF>R$z`;BSZw;r7CdN
zVuSafOLT`^PaRc7nEIZhV~fRn9Vr@*^klegmp3Eh16+*Y$dXz6Zu`O6*;2}|`y#pO
z<Qbe<s-{8)33wiQH4bxIV%iw58E)slZL!6&Grr0EIbHuw?1ilZq;<=Lb|21vb%>5?
zyMLp;MLg;KJgFhCdn(u=fSi4e#c+RxD2Te?*rhPYI|kNN98TUm8ZI(HuW2AQ7v0Tw
zJF*0f`qo9L-PhTxQ1w%CxG+|rM%=}VHb5d9t<E7v{b)Mj>7hec5c+8+8^F`d00tln
zkRR-tc9Li9WKx34R##NZ^Y|D!!v}g!HQbu!W0QRi%ccnhQ{zeq!{yy?w&o;ErxF4C
zzHug9*Mwslkcdw<&+mnR451{h`g~|F#GSBr4>22lB21qU8Z{#y35V8;*^jsE+HFjk
z3>t*@6R8$^awbj!R`<l05J8!G!7n+Tda&ot7bbnFdD8QnHMMEaGu!Nes9R}kt;IWW
zkk@$?x2#W0n;P_2z52!1861c5>T6#))5PrC7Gi0Zb>Z^rCj?p78w0GnugrXrs2nS%
zHrQo>4#fN0-fGPEzoozA<zfnbroV@n-WBL`2NZRxF1J&Q=-a6ympn$Pr7sWmsqeKo
z)MBODEjez3tQJ(#gHx%HA>AAnzc~TEF0e|b8Fy!>DhsBTy+6=EXKCn<ZMr6$-Tj){
z<L)i?U6ps6YQ5=)XiS*Ze(Jd{`@K%Ux%v#z_^exu<2Vus?M*iK>^ommTcoVzI0hSl
z^L<dm?k&}_B?hbuph2S;(G}vm?rwr->D;$-y<Vs#swy?~os8o;AwuDl0Dh^k+q`fN
zOwy;{)uZ#r>-vGp`^N$sNPqD`JA^<aNWiqfbs|?=Q9^80+&z|1H2M*_Cj)Pl^BX5i
z$9EFc+4N!QBVJE?P)^SY(lpB4?8@JTUJw}dI%Ldm1(cM{=?>~(`OzT78|DKv4M3?H
zqSjTm*@@hocd7C;j^$JD^n!f&g;Qn^6}IWIQ<Zx~oXSn_?0c<jV94y7WtY_rzm4+N
zg@l!*QR4eAgVt~%@uR(4z>_?=+{vI}`lQOG=QYFSX@9aFUV{jY{s`Z+XJDhiGxba_
zkxWyOnLf@|dMUPadI;^}{<XuF``cx7p>apTaevXM+N<cRK-{pw$pLn*Hf)Asr|(L!
zB$s!-Ln<Y~K^t<Pid(V^a%o~?aB<4GI$2xdqrfo~3Ncp01Upa&A3nQG*cjgK9DsCW
zWV<W3kT~nec?<sXU><7_+$-@52iHflY&JrjO*jG9kGcl;Zr<8srl9a<SnzWq)!XqU
zC&HL_A#bhLRbmG=cHp>?_3_4)dDtzKVlTebu~k)+anni6F(-Kx8}m*dx<c&bUyI~M
z-NmAi@P?O8%$<8U?|A5*5hXMOM#&HHLPcE%z}s$;sBJMZH`tAPkZkDE9Q_3>PFR#N
z#=&ZQmiLh6nc=3Tk3gIE4@htD8YzST@0F&H{o-<FUZqojcDX`SN>Ewv=0eQSeX~AF
zctm!*7hR&$g%q9F3;g}}4=v9!7M{~<oXK`E{+?OOe#kiVl-3wNY$pYc>Tq@c?U_gU
zkPOHVd%ONR2o(w#f;jC5yb?%0kKHc1e4APSRcr_kKq@0r8xtUqvyElOB7lf|#yXy(
zfcIpYFYYMjoXP;<Awy?VPa7n1?Po8h>LRjsmFgTgY3)U!PgJ#Ai+c4+ekQSJEY)+i
zeprDmyx&kE%ZyiVf!F@KkLZ`D1&DN67>+@Gb$D$$ZvxBxD&tt&X<qwdbJ~=cfG!!4
z3AC}5@ZFf~z(Q}%O6+uYLi$6Y=-g(hp6#m02$1iJ%KAyrPf-f@qMBxyxs894gAqOm
z>?#I(C8%C7(1O^angF!EVA9n$TZq4$QQ-<g76sp<^MBOIP3)=<TUoXhde;V}Qof@l
zIQxL0^{{Gr-fF3EzJH&0akk-*f+d-8^qnqZK}gXqw@=X`zYck#`y0DIU86#($!pkX
zpES-JlDR`N*~U7}_Q`ZNXAA7Ay$jXMZFF{sqZWOS3zGKj9KL{vC3X<1=#P3ZD|T{Z
zjA%4et&LaRnGF+#32$}#lX%kHajS@Sv3B&``05kC^F%$a3^U1a2SS=MB>u>x_j>Q7
z;yVOj$9*Vg>&1LW@9u~=@<^L7bvNNmu-l5+4OaDh&GCKvM%MlCj31dDzi@2bEqC!d
zCiYNL`vi8}<x`Rz8(ua(#xM?yBda4*X3Cn#LObvRkbQJGLfaj^5EGxBQ72I6YJW)F
zGe;>Nci$}2G{s!DssWI5^^V+2ed;E|7Jk=>>Ul>YSC_w)>%r-*CQhQPTiT9FV-{R5
zqdnpIgXRjoNy?CL8|ELPUoO>Rb-;3(XIyf#)*;LZtMq1>Gt0%D63Ew_IM^(WAKDy4
zRsGmf>=q+)lim@y6@c)ugL*)XnLieAE8HH@Q1XE}zaSftT!HeSleQh(0qgZMaxS8S
zj)@&fbA7@(w~AzsBjdq-0sW=rWZV?FLT|AZ7KjgPdWK&ikK#p1;n{k7%;c-j>cb0Z
zL*h-z?>A_<g<=sN9L^uwyF@=??R1>FwgKxO<c!njhxAlah=S6Et~(75kEKU|Y;8Rx
zLDif=WUB-`d#i0{P(2T;Vo4Bm(wb*w#=1*_9tLhLo)xUvrTrm51Q(y4p`_7fEY4k8
z8#Lj0xMa}UL9FGjQWbsKfchk8M0VjChr$Sr8Ev<CokpWDwT{&?Wk$L!lpm)$H({1O
z1ceH%6j~DtEVA@{6WSpK!JD4gUax)9H8<1$&co6J-P+T1-k{D9%!#qR-}tOJf?;9P
z*2TBf*{2-YW+pv{;xL>}knS)2nQCn*h{p8!?I*uHsW`LQq@5Y%j7YRkAC&>^SO%%A
zyAWEVET#bnv3YL>SXt!oU)_W&e2;8C8Y0C@x314Q;2c(pJX%VksCb9b*)*Z=BXH`9
zZ!4<je7$nNYK^yzpAv{IwPme-n0UcMR28yR@bLxx>&Y2eZxGKV4%4j&5gnCDoC`vk
zJ(+MC#56@u^=Q^3UvaEdl47ue-kpGj>Y{jR`z%xrG-9rPZ(y0d)m*wF0CcPDeTiPA
z)lyP(9QU<fZGI<)D>l0u_Jo{akN1Sb*8)T-%IaG*!*&NOuo{fFl*||65lk6{VbWYv
zB^HJr8^0IOW~ImXrH(l|lpo4_o3>{l)W>$HsVi5cwaX?>PwcI@MUjI}>fs1SOAM^V
z)Vf(DyumZ#j2SGY;AmJja7K94RDXvm@&`Ph$6np|$CMFiD+ANLfD<SSx+HAv<`=c%
zphe26<ma;L!x|?BD8og-7X7VaLxNkBKP;WkD6*epjN$H(iab(JttSnykD#V!_a}<5
zVRc*1kNLuokTqdy4+b6(ClIP@{u*R=JIPE9t1l`;0IX)VX=us&JH&&pLl7AOK`#29
z&e!!<!MQSn{g`uwqohJxO!m_q9={psVZ9b{S4aF^@7jZ(I_uF?ZvBS_beJe%>JcK{
zfTiQRQpe2lYeS*10Gm|Cg2enEw3S1?!tO(9lXgc-X*Vc4tlS5A>=87guT;XjwU&yW
zM$2+KT@J7gEAYO1VtvGu0yl&U#lQ5`TJ<TW@_}f!vDc^ef7Nw+&6k=hlQ^^485+*B
zg|dQzC65I6Za%gjDBG|sgd(f~{lf`SJV)WD1zRrfipBVlsgE7hm;~Cqr8o>EuZ;pE
zL6~gkj=W1ISihnmlT%u$B=hJO&eh=Uz*`{rM~R{B^tRkSRvThf<m3{`cy_abV34y?
z*d-OD27q0zCjNk=umne&T|t6o#MX3($X=|SVSiHMaEy{p^PTOf?q0D$C(Xi7154MY
zyVPI6@1EI)pJgG#*Jg(O@P6TJuiwdVe%BJm$Kzmf!{n7pJ!6`D(M_V-X_!HH69|SS
zl$e6-ftq^h5*u^iR^Mwe?(mM8BM*BPmY(Oog=eQtQPx>qTyw{EAy+u!UPo-(rtnOJ
zP5m<rhYXH9BXiB`!GNjahMUIXje-xxR5v+~wPAvTfQrwzP1ASPeDQ)-W~u_}{#a)d
zYz*6c`-8*&gzCZTOU^VO?58;QVJ}giXJ6HKe5X_9y)o!4RYS6LP|f-YJ+XLF63ZQ{
z&!fFUmPgI{_IAu8LL5G=lKqEau@~nX0a3>Lz#yuz3$KfupaUtB0WPy_pP2F#Jf4bv
zJo9HXPkC~?j{j;GdG&}M4R?l>Tqta{SIykk!|JQ0JF1XlH@p@Wd@5?`<67Fp0^m5V
zRy**iR2kKE>GE;)uNbXsY|A87MD3JZ^?BGyki9b(g(4=ed~}c}%X!QAX;Dq>baJJa
zKEd9}S__Fy<YxiFy-)$aFUg##-ns<Gh6wnc`)B0q6J1=Fhw{@+$xbhL28<Sg9LPE8
zSLGzC@ZisQZG{rBJsTm;x3(K_dnF`BpU5Q?OfLy`+AVilW!ABMR@6B%g4PiC(UpX=
zhuA(}s}KOCN<Slppr_>D9|tIkCW;kX%|+ne3SiYLM&f4;uy$*@gfzu}b4HH7cw*kC
z8Fw(fPy&gz33<cGRoz5WhTD@?Vt-%bF|;kVCC$^_*ead{iKr4mvIDj%w;v3=a=wD@
zK;_FwKhp5qS`c~>ke+twK4*sACa$MyIGR054zeHv?2EQgkSeV<WMP1O+j6}6wLzc4
zCAjU_e1`pNv||SCC{hjH<@PGVrVjOBEN%C@cE*B)YF_zc16C*xMyJk*Z<_}ahda_U
zvJKQwmQ9=D@<o~YbbI+4E+{%cto7<`BN96d?6@`G>np9X*RvE_=TwjB4O0kiQn0t~
zt??K3^RD_k=}3xDt!Zd}G>jJxh4_-~IzQ$gPc+)ORr>OPm1k3FN@1y?>d<&Q-t!(f
zbnvg&)h+9XXZSc+Ad<AqA)VOL=XKA2;miTmDm#t-o(icLcyKF}!-el+8@t3xTB@|8
zvz@jR&_=`?w_uI!U7WQ^6o~KTJ_!mMz%3<b@nnz&$P<uC_rPP>TJlsb{kexJRG+pn
zoBp>a!2`&y5*3QA@t|WKwvrF>-Ht{&TGcci%P48KDJCp0kU?W7g^JV9Bya!1i7uN@
z5BhSVS$diz=Ncp7dglVR3_rtcBcWa?4E5mr)S{Xz{6^QwsjrHbYqvB^S?rO=>($nh
zg5B`2E*S|g)86k65%~ZxX4C-WXrHon4T*wzHoI~DVW>f_ySLuylgQdF^3yWo)J;O9
z5)7<@+v3OzM9z{N%bX2csfH_6cR$T`^BN*}dSr@!;k*V;w9P{KwKp3HSZ3PWJe_<E
z^DVB~JL^u#qfvsC$|)VRZZ)mT?s5B!PS#9ZPU0UUUOpbtt4<b*rE!tgvY$B1l)$;5
z;&?09UhpEB{WJ%|_)pY9yANMe;wq*<mfV`$VLT%}{IPJ1{j=Ku%fM@EUz(T@QXPp@
z>P?8$KPf*TtlzC8jU(e<MFN>%4E|!`ho3HeHNjy5mXc9&a)8cpCOx7jGx?1b<%ov3
z?}e6_cZ}DpS20?&jbU*NWU|usXle$U8`y?e_pKyte1*85hgSjeAtMkCSSk<s+ZWR(
zU%U_A!+Fm`r%OmL`SJ~*Ml^L8{cD~j{=rys{ihOgXk}^Q1WKI|KwH-n-k_t$!@s(e
zWt5GSItU}WEfypTA-0H45;1jBny~gzykJ`219w-nVuqvsa<ZSvR>jzzK<1Y~$hei`
zBbi61UF0xxZ;Lf^u77u(0O6wnv{?d#Fb2J?EF-a(aUxHcnyz=XgMp~S&Un@#bR_t*
zCbq_vVUzZgx9)ZirtSpAxQ9&L1um?8Biam^-aLov7c{i2-8fwAS=(-=_V}IPPccm0
z<cks4GQJT5@zNbO&)!+((Ke0T1T>8yvGQfjq&iFLjUP>~e<XXIX7p~4?|SyloF?K&
z`z`jpOfh`LjJ3o~qg+7qXg-nDZ#D+?1|gK;{6Z#<qspY4lIf6b9bdW$w9c`!*N^5O
zq0vskeF8;zgpb;bNA7ui?Huw8MAwqW`JIuR&6aQiI1#0|oI<(swB&Er1YL8=<FB0q
zGDVu8;uvZM9&luZlIx}h6dGMhSPz)UFqN)F_B*m0cEjO(gGVRHtq>AqhaI7P9h*(2
zkVVp0stBK2okao=%mtXFEb_M`^ogZM&=*#myL2fnwT6O{oGbK9ErK3>a+mjY1?;{p
zy}a7-jOw^T`c9lQYlnb{4}akjUyc;moFehlN$dJU{8On^oqaxX>vy@ch*#dPP$PmH
z(&YhDg^&1WrFB_a6~|V+OO?e+U7l&BkljwaGK<%%j~(Q&^p}*+0cxnGSp*fAdvWv%
z(6ctR$nh)|znao8FY3Ak-V_jU#2WeaG9RW13*tA4lDZ(%2@Z@E1N)W5nMX6jpKUx2
z^p>rK@dlsa8id80x?1Ff7Mk~aEdq~Bq}B#*?1$`~u~ML*>$MbzhZl{wbY;NBAX1Zm
z+$*|rogXFsWStvE5xd90w8&}Ed}ZL(9hxk0t=p%YX>!QQjlpOu-}#9x^<XQ8m5D2M
zeCG}3<=a(7-7VIzK_ZOEJH6u`-)Af02SMIE`*=cs*s^B|MG<uJPipA-e5<tMW!jhi
zs1h{&Chv=RY;@bM@hIG;w^yay071Sh&Gm7K&1svca%Q$-2{0!Q8jpSoko|;pt}r#A
zPwuuU@5Rk<1OSWkobCm9_oCS9)WdGlT|hMC1-UvM!x-x7uSUF><ZFekce2?~tf&*~
z$V_%bAB$H5i8K5%rw|UNV3l-jT^$%OZ|11+CuT8E8d>#RPl$S#k9r`&&QLB;k8&&$
zv7N_ZC&i&qG;)_NJPvxfoX8)V*#yTtwzQfubs~;@EJc1}1dP!zJJEjXOItDzh`+n?
znwgc)fHo=~oDspIUy`5%2fNe(c8p)awQJ=UPGH0U?##;E@nlJlaW+t8m8%U;GS;VV
zj6Na!jJR-@{zijxjbO>kxA<4I9;(CXxsu6ZRk;d^wuo4AfXMv>ag#+UXd>~BV6qy$
z&8vFlDK8>(tdgE+XwqKV(YD_-P<7#bN9@X+4+~2|O&NNUW!@OfKk`;kQ!ktJRIDMV
zzK81V<(ZIVS*NcH(DCDK2FE1BexcOq+cHn^01Gs%teuV|?nNZt5c2+30Epc+!gyUZ
zkdsa5xBDCLc=05sc`DsARyD;B0L1W?mEttD^Rp8{52VvLPQs&g$smcJ&=<hNfY<iV
zrlXUMknKuX=P4zznw*;UE@#1rgwl}09gmstxR)2+2hS(-HaiJj6}9xEZOZ<w4uHB)
zsW(Gi*^qNTvTKk+Ob$D7`Gg9fM4NXv--uoJbcmQd-B4e*ODqnv<rgFCi0^1BD*1M0
zUY%7bjnc7OA?D}45n%(eyI~#A<6_q%L9|<fVbs8-(VJgkU7FZx%N2193c7#lMyAPY
zZCs-qKU6jQX|9R|6W>T~7;(6;5`J}BGOdY<1%Y41(=lB23&%g1qOwCvTKo>1U{a>_
zg|GH))CAX9&<917<M(n{IDgETZO4C}xcf1bqT=HBSPEh}vp~>6WW!{?yeCeC1>3J~
zwH>)NWL_J{Kk_Qz=$-(0FV1bM@3JxxzROIL0hZ|wQ^U*dAb8u^FsqL}UO}ew#P!)P
zbeJn(>&4zzMfe?vqlaz?MD@qio8A|=T0U+Z^Kn_kX)9Q7U^!9H$YOj@v3mZIG~0)k
z7rN%+p5fPwWYG#MoBZS6lx#Z+4s0LU|LhVrwq;a?=$3pVJEe{bNH4bfz8DcYV4NxM
zWK&<-Qs=OIEh)b!Pyy$^cB8awNl)h+Z}{X=0Uztr4KuCC%?!*iKKw%M>@YYtG+tM%
z2U73KLI?CD8q>!*4*Ap58&G1Ggy_o$!MXZ9r!98b7}pdT81*DWGX*F0wYQ$tX(!S6
zDM75x@pBC@>OE;0bq@N$$guDC9^?cR;De9{=?Ps?M3Oj;w=P!s7Y;vsjL2k7>4Nf=
z8ikEz;}Qfxfz^+ukX^p!%$tKB7?mzGq&mF%k`rO_K8#QLTBZh!Pg+Rd@OW%#9}U91
zq6<5nr4^3&MMiOMSIm98{CMk&V<q@=m)?B$m)4&>kUb8gu?HszI&Y4!XD?5aS+?a~
z^MgRNrIpCS3S--v7ITW$UH(Ynz3+_XAq<b9osh@g-|qixlb@CZlEyN<f7XRN>LcFl
zLBDYBmG{~c;AwuX<Cx#bk_^U6N!A-VD5jvx3`%SLdgZ6b<ug$hZicbWW^tLGO)=Bs
z)yuv!7bRHU)LrpUWgK*7WV^AyX%cR3ZbwEed)8fXdGxL9fwRlcVS(!F=IYN$InNL>
zQ>#L7WiLmM*_30pUpQGZ2VmK1q^kXeGg<s)L@yH$<5oM}4nq9b#Ue}&WZwpvm+Ipx
z!PhxY8ib;F=a6JFYZ%>>boZ%uR)&6h_dgZA<mt=EwyNBsOSO@qF0qSxhyCo>JwXP6
z08=&aSa4QgdLz}mu|i7@C(JTkA|0o&STmMB<4%N^KvT@K(<J88v~)(_5#lSOosKUb
zKjSgS^0B?=bGulc_jEk0;qx~=nl%uDv2BbaZR=2^m?tC5tX<jA6j%K0Kp&Z&{g?d|
zh3F7Tg_mO8e?BD8=H1PQah(o9?4O(mOf7R++tupIUWKfFqhanbq4=Ejg&<Zk4oDo&
zK)yY>fNt7^UNv*^jT!ZnwoprpY;R;)BMGfkCXkR&VH0NP#@{yo$r%ggn2pDc7v>p2
z$WY5E0NZ=^P1WB=J2mvVj1!je1SIlYy@X+G^>O%$q|b<h{=#YRg$1co4q0mFWG1pl
zEt@}#3$S!466&VU{;-mp&d<{(X3;P`_Hl1tuSjn?(DZr`dF~CESj;t+J$Cf#%nxU}
zZcWm^aO}3XHGb*`2MU~<uDH4!S>$PojBMqtw60%5wzrc%H9n^=F;I={Xvz<4(|#w#
zZJNki$miNw9#iu*t>N}JwI}&z>FN>)wK{PwmrF;QzCU|jUf*=eCKDs_0uD-PFTfeL
zSRs7Y68D?)NOIIZB3{!h5FDhlWNykR_cn+vHh65aH>SgODWDI@6M$x~0NdtI_w;J5
z=I**I7U$>&+X_66B_F=teaWAxoe~W_blG{6$bF>?^evA<>3%>DzB9V{(`6PZ_Bo(9
zkB#|>QRKlfX6bKF!9!U6x;k33i28v~|D~l%%eF4#vhP^RKmxZA5pcle9Zi!Al^Xgz
z$F2-O9n3>MBupTh-xI#KGH08l2hL-+`sQg^>w*JsGmi9izj?wlVa^%MlW7v^i*jO;
zKKz&F!mmm0NL<f|M%qJX@)hPxgkOt|VpiqC9*ka|ALS=eF|Ux0)tZtVpr`cVkoSJs
zD76M>vvdj`_Ml=Dpf5|g58(6X{>3bFQB~T>x%f^>8C_;_^V8b}92;@cT6h_9ho^*{
zoiUv~CbvLNMdNg=e4jy<fCql(^fxLmWO`Y>bhH%OqX+X8!2~ey>-;ig*uKbt05AWo
z)B=Z~2XzWv+|NXrkY#m#4Vu^niquf45xu%_JcO{kajee-?`_c;>h`4|Kw_X5{0k=>
zL_@KsNtuv{y_<SB&U!FyD#rqEePTfRKd^->-jtaAoKcMTr|v<qUpQAZw=-L;8g_{@
zEn};y8<m#sB+0-)U@-oe;`(Db-^|%}TY?Fyue5U#tBZ;a%S1HYNG>J?afC{Iz3u)(
zydH*6+bD3NFhBs(g3diSU$P0=tEQ<w*FeDbeh=^rO6_!Zy<{KowGyX!%aRcLwnKo<
zqvVwc9hp1aYY;(aBwJW<xtrzu;C^h;BHUq#GjhS6cG!!-@z{QDjRVTV^1gMnrS{1)
z6>2)Fz#hx}m=KPX607#;j+s{B5WhNLjo3QM`<_AH?rL65N@Y-pWb0cgs;JjN4f|aw
z_z~G&`$dw;Zvh~0e&O^OrAM}|E+E-4zzd>_V1?men?kS)A57R|JQ;smqSX1#G#fY5
z<?^VP-<5Hb*;(F}xdwpj8Z2No!8X2BNKhd-%bK|x*{AtqTE1JNoj#+|8}@rIcqGQ_
z_b3y@^K9R=tQ#5bx%ZKBb;w_*S#tKY%w`Xyn_j$ms5FuL_~ZSBEn2;SCDE$RN2=k+
z4CtF<gRAI-=3cNV8gg>MZ=p|m<kXE}O4GRpAv(5@UoNO`^<b}V>J*j@5{~#03&jBC
z#IseIsdXT)me;vb7`j+c@$8*H{P+$_bO-}?#A14B(-*r3(Z|C&DtqQ1|Hqf&+x7ix
zz0W=*{{R1F3a+NuyA~HS-fvX%x1Va3(~UCTQkAulhU)S%Zla1;;Md<i7gIJpt@+1#
zPu2CxC6DL3SsNSZ>LmX28(p2^K|GWH(VqXawf{f=)@___g8I^>e(WCu{8jVPn3z%;
zeU=8f<UXHjYld^v{Q0J%)O$CYbUdy}pZD)C)z)ZXN)6tBw#C0%=YMnMVMc&^Df_ER
z-T&l8wEX9_5C2f+zlvB^`IX~;caJBjt4vzumvN5%vuFJ-lW3t-9EF8x)8Cuj^og4D
zp3b-bq_F>7Db+e=`F}MRtA)3|(bIpu{<kX$)-9^q?B+p{|5b*+7v|5KhiPAb8}I3a
zmpXY`y=~H;pDc7~Qhf>YC#ydVpcxnKu&|;&{nu?&;!_s++0RXxpAZ)6X2bcP)JU{R
zzvi~=ZIeHDRFe@#x|kXM(@2qAq0iLm|6A!3C)nu+q<DB=YCpTD8em&)e+!#WHdm@r
zvX4u1XPxZtT`Xt#rTjnM=>Pr9qmh`<@@FvGt7X0YtNP~yHvysaanJHwDX7MO_2d6~
zSL2!#F7RhgD2ls20_ysIszm>1=h4si=I9+s>IjT3mg9cIS%2;J-!F`}M%rcl>*as>
zyZ<{bl+N7@4X_@ND~qdDLGYUY^{dEEUYhs=t)A#7`{z?OoZ11lmnMFH&J8V({qL3i
zhO@R!92NTa@6Z3fwdVK7d>TFyt|00E`z&$oV%tPla~5Sp-S6uCRoq;I&ldQfaE$({
zbZhk&k-XJz*gv*zPWyEOy%Ul}P|HPo-kS+M5O&eA#8ufsLkjNs#lQdGKL+@l{r-Bu
zpO3OpL)rh>U;ceRxJ^q;QD#%{_eS`Alkq4C3Xgx^>we$Gk(`zWC*?=uzw4I&<}p98
z2Rk%|WVK0?&=EtDY6<dbEllj9?mt%f-}LZ*x>ZgWZBPVc^1mB1pPVj^wTPZUg(S5@
z?%Y~`w}Fv;p;HAZH@z%*#JuA3^sfK<=1*rk|HDvv^#~5wxs~d>t?rkpWB=YWxrz<h
z&6-5iZ5@B#vui4iw1E4X`R}`r6|zQNReA&7zm&C&{KroEPeb&t3N$^mV)$*~51$O9
z|GCy<A*{l8zf%3x@9U5%9DHOK`0h~~8sQam@)kjlUf%5Zd#xTsjimo4t@=NdDo3cf
z@Xy!THyuogdH;HFPG~9T|KiRjtU?68M_MVHj%3Dv*yjJ<692<=_D_xdzw8b&QvHV}
zheSyCw;KDJcz7FN8~>c+`zA<t@kqemHtg&N*siOZ+fz161DuCt7njoKU9^52ztSyC
zN{77fx(R=Jz31f(c+Kp)=H0G^*^#>k<_EV1x=53LA82JNSRDo43@S3e<9VDLRF<SO
zqRIX$>|4>dqWo8pe4W;#Dr-j}@BP1PUkY%DBNvvgL}r*I?b9j&Y~IL&Hl@e6Rm44l
zM4hjbn~%^qaPBIJ@LuLr<Wq>K9Gb|bolm4nl~KT{VB91>{b)Y-ZWcj$C@m3F|DI(7
z2!9*2x03$Cp#s>)Gub87ob~pce>y=;b{_^NhHQNm9e$!C<n;?@KJ-jN-GrdxWJ1V}
zbW9SOnMVr_#*)w#ztP5MLZ8hOv*<u+!{2!Avo0@DnNTfyjS$YqpXpyY>lW%3^1X6n
zujl?GmoRZB%j4?gy(V}~G4?nz@6vvPk|j87bUW(2k0^BII^d|?Ma||*Ur>{)R@RjZ
z>IvBH3-3R=z$he&+y~B#PYbfq(-KSoLDpS!!-(KLQIRy#Z;}7^0qc6|C%;IU@6ESO
zNhSay_lg;9D-$;pPneho1yuE=2T;TKQwi!uP2Q$BE)UkT;?KdRz@2=jDZOQP)2vU-
z8{i;+{y9to%ngL`2XrO{MT@8%0_gNRemk^I(K8Q3ifY$xa1eX(_3r+{dB`ImkagLk
z`*;ZeXOQ<~ESkh*;`SIVN^cp1Btz<Ro62K8S8qlwAIKpjK&YVefL72dz@|x|a|V|*
z1L$)&`$dgv%MVhNHh3}<Wm&BcM)!>E|9oI6^b1GhQGG6Kx(U$93J?DFzGY7~)z=t&
zF!{kEEKUyySv5EKOzX<(^<+dYVQ7!IwLHBm9uAoNAUyj9vyr4L&AUS~v#*W!71p!D
zI+b*v_3L%=zsjWG<(OUA?LyAtE_`V053$_7sq~@|LMVZLKcsj@m%Uj1Lu)I$*Oasc
ztx8Jhoo=Co(%xf>4$^gt@VfX{Q4pGx0%!iH;lkQi_EOren0sRi&ML(fl^?TNj+tm*
z`{gE5C3j7fqOLRPpW@0){lZxVsCIA)o}rDv(EmhIi^Zabm!S_JJCg22vzk76l8;)p
zfD!3)RX=Z~E`mIt2csRQ0l_K0N@_!jYcs)t<=^-R0WDs$?Vmo@i<T96??`WQYA)N{
zBtE8;PvL#mcg#f4!GO%Mmrh1_v3otuOdTB2^H5zxzCs@9Ydsp@2%igOeB1IR{`BJ+
z7<L~|BKM?Mq7N{E*<SV8eQ222k8Qv_kitthol7MiE2?=SF4O&TWcSvB$2>un6$aFJ
z8=3m4MF%UH1MOxM`6%_<#q4KUrpVGpENE|K9-^dj;J*I0F=(TSW0ZRpQ_5qkN4p6i
z6pT^#ELe}sx~-?Q>PRqhy7xph7=M873?#>Xb>KX_j)Qyg0v`Uw-~aG%aS3s8E?mUB
zPR1<s0RI{}lNO8Mi`(~QZ?HbP^w>%G`5QLVSc-@5E3_S*TSc}BzEa9<{hGqLjC&Cm
zR|fZtwJ&2KA#1>dzFKpj>a<vc-$fUhGVne|ZZ>wOgfw@vwbFbR^|o=R0cIzz=-Z_@
z=B~yO*NdxLUvFp_V_2fE<~;qRdn|PD;jL(CCe)Mt?UN?*i{D?~^NGFzv3H-W@7&~<
z?ET~{=2ae?XOZ)!j>XK23mK;NjWOfleZ?i+D>1!l$Tjf}hy+Xver-?%#mVNn%+-PP
z+3$N__~R(E*yMX-$>ghneha&n$y79X+KTPjS^!fHrH$t&{xi`ulExIM4lzTfINdSV
zi`DSV@s|#3BsZo##SIVQV;VU2C08;(JPa{3?+pysaFn?EzTXd<dAHYLh}k*+uA&sW
zP`cFb0-=q)@@1v=oEBRG4Aik_TV<8POi*K;d4TW2)LNECweC}`xr8VeF*=CD&dHsu
zoL@MMW*yXFSAC`1+~-0PJjW!62%lg&wo*_Q9~7Ti-7iAKI-ixo1E1T~vDLaDhVUe0
z-}G5xC11#Rmb}mFJg$71>0GmU*`j3Ox+tL#F{SAB*k3p=zTTfS?U+w}di_dBzkM3)
zxPUoM{6c}~i!%W^{Bbsx%T?c8UHVg(HL0H6zcGBR+wY35>D{E@_~>nI_*M6ZZ3vaK
zbV$?Vbb*m;s2a6S@((#4iLe#trUXdGXTK@Cn~LTapFVQ^{$5ke=RDO+R2T1CunW-x
z$PmrIbz>)9x5yaGfsxQYT#}!y|JwGj8?U2eG-JOb*5ImPc1330I~U)!>az)oPv4E!
zMR1CcYYjON?lhIjpQy-0VaHGS-G<|lSR+x5Oue%i#d%pDy(g7H8GN!<kd&>BuDI#z
zRcTQg-yaDdH$7!1^xIIXlsftm-tMOGWR>ozh0Gcg-}G(tqo-E>>VA_V+k1JoI{V9p
z*TPI`3y*VMTT`xR?)E<AWRi(^SGXoYUQHKdw71;O((b9T9;TZ2z>t?ER8eN3R6Tde
zg{RWU3g=0MRix?N#3%YjJl2A=E+-G3Ksx$8e&JY)7&G()sc1WUHX@SGsLT1Zdc))K
zkNMnaU)kYmoaN3u+ISydD0BGq>*8yyuGrNf;ETN|C^vB$GA>@H?9gJcsb@3!v(ybG
zo99rl_NGO<k+1%f@n=pt;+D5uYa;%c9(ipkXYU?9vA8a=O!re>X!4PmVunU%TxRWe
zVTi!KR@-6b+kiWovVDHqKb^mg)eJW)^X--<+xD}2;dgR3kdujU5k+{F=r{OxpT22l
zJ<5}CS<sq}^aFsNEN1s27ap^iD|ttl6FvNu)`yG=f~_z}h!|O94%e24wvu`5uw<A_
z=QqauqEj8YIcs*y?*$PT1`RlI)~6+1XJp?VAlzzS+6G%FoZOB*8woT<bu+J0bNU#q
zh+4#q9$41F<h@RLXz!^>VxJ7IsnED;x8Omzy!Qia@7~If7MZttu{`gjpg-t%rX#xG
zmh=n9!T?1<0&98XAjAuCq0@Xsbh|I&h5woE;!tW`enTnrX2^0!>S(E3GI2aTSIk<_
z!#i4{;^A;6pU$Y##SDc`6(JINx;B<>%-)k-62B5Pe{=hg7tam&HflCvCtWdPi5>4w
z<poY#O-4h7y2MOv2q?`Ck2qcwGD<F6X+>Kd=cM>9ytaI*&}Zf;6F&cC!S4||I%@Xq
zL#oGWyH6`!7o=70<p6_>r}sJ#E$hgP211IdBPSbO?&<4vCkYlaTD{OP;SRo7!Q?k3
zvMAltIl4onJ@oFV>_lGTXIn9Tc6iD}e~|Evzyl-s12b6S@(uAQ!xE~+w>njL%Z4nq
zM#{;-RME>X^}}9Zy_F2^Z%Q9RITn`y)6||6?%UAF&;6`r^<QAOo;`IbfB4AAMv|X&
zr;aTp%}jzP^_7!JJRJkdXcEoeV0}_Q(<y@DriHkKGuBi{aD-=4u-^>+#sS%$e|DH{
z{v!+GrJ!G6=%x?+)rFP!O1P!&YX1EEGT@aR@%KaHC&GoSsb}8{X#O9TzB;VQ_lp}v
z6e&TP5h6;AR_O)-rDFquA>A+-DT1I#H^OL8dW_DE5OkD`l8zA$q(>tS-*><FeXnbO
z?|QELdCq;#C(b!=lH&!v4<;`crf>Mk?tEam2#V;0o<bDm=`sQ#S`hEM3F(FNdBpx_
zMuSlAs|t?o0SAqFp@0zuP(trK-^;N#D!Ni5dC%*5?@wPBk=J%Az@>+DJboPpc0)s>
zT`=1b+FNc(O37$Dp+0F5{yk&!_QELf0Y6M$YNjcJqpp{x9$2@BH0qET6fJ#(vz!l9
zipRqkT!b5yd{{0%J_Y&ltwHv@p0Ijw0X7e9=Zf_ED|jXHV$f@4A1#!gaS#6X%E)@g
zyLkB4ENQh^zJux>(Eo4&B)LME8#CqxRNQc@vpBbyo)k-KAg6zyTzRk1S{8a<Rhbus
z+`A{ZbUtU|2V@&B^bc4wrS~Z7S-&396B<B7M5OIrb;cD$Rftw7H%Yf;&fAMqzWn(i
zb^fh(;#C+-g=;ycTU@xh*k8&D8-q5#=b<eok2GDjK3mt=GxWSv^Zn^~1f+8iS4$m=
zI)Er$Qy%Su0b(yF&9978@F7xqYMHC81tF|Iz=J*1S3C&zs^~v2Lj}6BoMC}#gaGhR
z&n-oT1-M-mms0Om<LtLUkVo4tqF115rgwo$`_+CfL9dmK%#2A^vjJO_S|Z1VSD0BO
zKFQ*jCE^tO`vkknT=6>^&OBTF(jVe1e1Gj17R1rl73JsF5RQveuf>W>Q#!Zqs3-3r
zl4?i`4|6H0W0mF*OR-`Pj@l(q$!&d3@NV3uU3+ND3X`?@3xQ$n&}Bs7rmAT9-nTgR
z%ytnT5%PWNb3!5_l;PCIVJe|M?T@3Dc&xHq1;9TF`oAcdIV$sK{q#0;mN2xvk~N6v
z)lv&l(F=_&fwDQ$*hBF5KS~tHFT?y-J?w+-NwSMPU@QB?LoWMR$Y=HYq{Vw5nIipF
zft)bfNmM=c<nKD-1Vf<Xie1k7Vzo?D`@du4G-TE=?sjlB=hD2$!5}5_O@C-Ph?vs=
z1;66W7}hf9Rc*R|L`@(blrPk^(Gp^2!jf&|*F6%gY><g^lttO3%ww5iRNPc8i7TaA
zUs92<&X+ncDf#3t0%X0eHIbCI;erpnPLj%D(yicoKdpdYbe=4QuD`Q$@B6BdjhtF3
z4gE^ga2quI^(0*p180cG+ppM~#yg|>!ft)gs!1&uZub^gB1a499)9eII?FDKeB2Dy
zYhV<F{_Av4=p|SFBenmjmH%&%zhqQs!yo4NS1pZ@s@wdBx$9RT4@@sA@45Kkk1~Jq
z*93VC`(|DuE!fyg3qKOmJVv^HE*Y;b#}nZ~_({3t?QG~Z_5Awf1<Ti)e67;-S8`hS
zSMHy>4y~dRZ9sru<vEugAhq9?>p869ma1fRz!m4o`t=?_SoshIeDPxkn7grg=hH&6
zEY@);w+h`kqr!2t+5{IAf(Au-2rHTE$lW=&AXUO35Fga)(1?;R_xxDEPp!+Hu5r}@
z>R(N`Z-VqH;=3kd>Z#MC{}zQBSe;{;@E?P#E}u9`G6mkebgCy-<X8=HMwWj93E4=R
z&>pW}wM}DOXKEq~gaRic9f4iCdkne@(MRQ(>R)_oCU4_gi(vj+OWh{ypA9ae!PTS4
zh)zSRgv$W1FlNO;i{ReYWFZPyUA7aJ3vJkJui6_{LI~8mtk);c|3~t$ciD@4D@lYC
zH>}7^>(4??;P+ua^QmFtqKs}HTN+X17x^`E=qp5%_iY2!S*z4y{9|*$`m-5{@d0VD
zI07C1?FQdUmWrYq1ZGl+ob6UQ+wYR<`y0m^1#VCTw#6vhP~TD(>;5hCa^AcMuOWm3
zCUd2j;gZiGuU2vpe!%#J#4|PZTMc`2eKvwn>zRVB`^)o9lKN2Qpg|Xy+IZO`afY9c
zxVcF~wXxXCY5~KT89+S>7&s(%Q3M9y3~2-4X8IQ{Ugsu{)(6RiR83fhBj`L#ml0np
z49CyWfJiZU;Y$bTeag_J(t_iaoc~BDi<mOOy5tvylsZX=UQ`peS3&G)>(f`S?))uG
zD*ds<u>_x{PTYO=zo4y!n#||o0kAgZP9xV`?FQ32>QxQ*%TSVA-u9$^W3Ilp6e1A*
zrtEW($nxnxP*tP#xfRD`{P8j<X@p{NfOz<#)JHcXWvs&IKSavp=iMhe4_<imJy)IO
zgb1TVy_cc=RsZ+E?Fj1<FiD8S{B}<4?O@^mNWS0`+6LN#xJ!D6K)++1cUr5F&)BI)
zZE9cIf+Q5AZ2V)9oQ;8^W#hPRoC|6DWnzDE#o~JIFlL~X%E;`6<&Q_g)+im1Fwz&#
z$aCV#0d@{&3m~OCrr?A&wRRx=mhchwEU3V*r;XchVhAP7s3syF)Z7}Ac~92SDTc$7
zKq%+lYQ>h?+<8*I*C}7)jn*}Ny}-O-N>_IMlB{cseEx6Xmuz=*yaGkvgYJTKB=etl
z-hj{-KfMzzCwIE!(wBOF8`}jK{zsxUu@-F#QT=*<i|ptME)80FD&ArQ`0jb7PW8d;
z)4|do;Hy@{NaU>SxWj-$FVIVaMQPQbvvhwNifX+|<@mJqA4%|Ui18c1%vu!HIPT+#
z37|cRQe#02CSOX$L#}RX(po=GT)WOvXNay1V`@3P(=-$Iy=Q8vSJ#MjldWb_yBtUn
zIdDq&<^6pUt~B-lZp!UOU^culHS9l3%tM)n(s!w^@?p+2GpL|UR@h~YJ(TlqfnTX>
z6_j6JCMT9z3VVK|9oamJKHr;lNBeSJmY9x=JKnvvY)tjD`;TPDv}ZhhC1jBo*V`8a
zry+8+0G|rU2xH2@Nm7`u!(q0F308idA&OErdB2o-$W^E!&#@`C_$?pMC(^`Q29d~X
z)ton_kkUpIs}e0dI>g=+%R|%gSA6%c&pN;>F6gc4gE*>pD8Xp$m@`QVwLrOBJnGug
zh<F*(abG_4?~?;`-7~4PNx5h3$UxbYtN%!z*Oxd7WKa0)E_?iIx(SV6P-lgo-L|{q
zfm!TldFpr%nmaboNHl4XH;5Eq#flXheMZjm0i5Im?Wg0KlgVUq7ls)=cgVWew%%S=
z%q%OfID0Jw!`*Ta#bhX@_hb{WKddKPrA`J8voh_~MgZ|!F;}?D5(>cx9uC$ak6}ma
zK#HuH%m<0SHN7J%z_Lx$IFj`uH?~uM!|?Sa^X2H^Z24hcns65_n5Iu)-HJPL21Fkt
zF@2WLw4}W-tASHqiZCY_=i}%4tltR?Z9T)zN0#qk2ul5iC@LzB6-?}N!TlN?y3h#u
zQl~7rcfRPS!m^AO%tk^MiE}5*AFqV3TgRPK*3G?d8B*pTxdWk%{i>qaTuZ$`Y0D3i
z;Nc!guKO$WudK9dR`LYe)f(+TS0_m?#0#h=$(BOqgJ6Ae$rk)(@t3d$#C{KqG!&E4
z)AtZIeBI6qqaTD`Wjy>iMBQ7|TrE1GOkAY*jUwTUD}3*2nuevcGx3IZY0j-Zl(ioJ
z8}E{~jdQE!<0#&uCdRX);Wyzgnb(?U=~93$RcdNyQs@mUC!oEWPbB52GPR68w$fif
z81MR<@lHnE{aHECy7m2Bvp*jQ;=6`Bqg0JX4Y$@-0+@lHow23N$)fv-T8Z-2yI}Eu
zJOkjS#P)4Krgve8p3C~nOX&vB<;6cgqc?J4xq6zDHQbw{#;?aeG+)j{EI1&)H|c*E
zN>!gv)T!@W?UWr4BxEj6FW*mkNTqfbdlz4N&u1_KpvG#0mtX!cl0WVCrJId;>$$F%
zS3k{LM!CA)u~On?8aORQtyXoFkP7%zP}He2O&vC!G7zJip<ChJrXoDZODD(%ir;Ln
zt!f#bH$VrT3XY6To?GO(v_*p+54GZVhE`p*!Y$Hn|I~p7VoCg6HEom8+gL*va>Iuk
z7qO>9Ui<b?+N>_efaxy*)T#SYMyh8C`9d{*`{hIbG;?X1wfwEbhkrEp5PRxE2Hiy_
zU)<e@glt-PdPZr+s_{j1J7DH{d<kJP`BQC_y9^IwR@^2bTxDqq$*ewie}a2{BYZ<-
zZmV=>6YOYjoFd}?D*W5&(b-$!wt?e|e1Ef%0Q?CRMSWyf!s$zWC@HgB_5Nn%Nd-&Y
z`x^&Z_WM!LjrZSqz*M%pck|#cBh4t26!~~Pk}yGaEj=NDKxTZ}=K?jzH2v42TQ{ru
zOMw7!?l03FCM%RL3CTkyvV#;U9gPe0fcR1r`RYEB=O=eSz902gFG%m_qjmb)SL0Wv
z*vcG0t(4x<9e(>QqPZ@hwT!dznbCJ>c}~n$`OM?iv$a#Z55LE@zP!!)VK8#`4iF~U
z6leuc)9rbhHvE%L@PMzee3T;ZL@foPFdaig**(-UFy1-kJ*8jcDE2DX`GET8LYan*
zLY%k1=oKC0?^L4Q|M%6wq^lmiv&s-h26?qTK$&<xZRcLkQ>zgG?R3$CbQ`%BP5KMx
zv&F)XzRIqI32B=OPZ~5#ieFa%DVQf)M}7g{WIeceJfI8y^-^NVptZ7a^I~N*n18{x
zCPU0CO+iJb`LCaG1Is{rX)h#uP$7Y}G@b`n7*|9~QLk5Ad}ibv`Muam9Rn1OC6c0)
z@hX$n?`Azm@GwNDAJP5l-@ai#P-=2=V;3oP64!n@JP(tp2wgsNm&F?H$UeTsqLosT
zSa+jJ1o1udB^M&d7o=zTTwGeWK1?kXc%8vU5=;li<3F`7&Y#84<et;3NBkamF&;6k
z9CeYw_O*iFdDiH6>#NTldzK6yn5C}{t+P5p{|pG?5WzRd@l1+v`xR^gDpWzw6)A5g
zqPA*|HNmGoB|YfzK`wY47K9oWEOjlxUw)Ug;pkG=xXFhkp{liTRts}mIoO~|y1|-Z
z?8o=j=ug*eJSEeAi~U(3JLkcCPKBiz05LASzb;EO`8QN+Aq(<$jXzs}8Hey(h;h$K
z>!?eiOQ#|eA$PJnCkGNn8G|~R2~EKl9))!TC2B|Z_{49Z!)GkU09Cc8P{fliNsibW
zht0j#b3!$gt;_<4kSbTCUCJ5ev%KYqr{E5|`?2bq1%D4Vu+}_3SX){wTtX9D&AQ<A
z-p2sX70$*cG{j&hffCcW0JcIuUwl?2zF+*{IU!;ZG;}a4WbGVjel(rR`oY*7fYX`R
zAEG)`9Kn_)Rq;cy0mqq;7~U<r`Oz(I6~4`qhi95p2eU0<#XffMp$?B(rewcWbn7zA
zPk`f~>=DhD6q6QvP27Z1<~OEN=RGz)N@-#_O54(}I-E*+H}7%*#$=Q6A4$oLQc@Xb
z$-SvE#T?-0Os=jpKzwAA4T+6r<2gv&IzAY=SvO!)f3=5wEhg6PUXhpV_-i`~>RV5f
zRAF80Q|6O+YM?ph$aFnV)mA6GN7yLyEPGfb8N+B2>V;Hso|*<F94|F%_+n*+;TA&T
zK+T028Lo0e#l_E8GJ4#f^!dOuVdpz{2h;%<VK=LF&RJdTYs-8R#9UW*Drpe+Y|Dv=
zLlz7r2fHgc0`L~1PfgmWOpXQ}vLn`{mUaEbqW06=`{Xpm(00(nJ<6E2F~E9j!HoH*
z?xn*#Y}QN|Th;UfztZ|;;p^PDGSG^gSki;5Br4A-VgNu#3rX1`3d#4+z|UCiMfPSj
z2oJjRM}-{9XE}pJ9t#U!U3yA?O-kP~4(HE_Ri@XhB=hW1-+Di*{M<OlAN)R%!CTS_
z4u8`I?JQkwGW0wZ?SBqNJ;y7A*^Gy5y&2TJ589*l{}At&8u=)CB#YTd9d7|o#7e)u
zNG1tT#XV<kYHAl@Wc-v&%u%XO7`~6cnz8FW+N6wzoeq2Gr-oiyjY3{c8XU7j?IuGl
zMisM5;0H_7H5hz*0BNg)Y@iB$J`Pq}Th`cXILg8JBr}I7PKoP@b&nFjQg?Pe4?yC6
zj`uM90SCOcG1dF18^v4j2~M!eKQj>5JnDd5Qr_6^U`e0LM7c*O?5-6?ig)81IH=Yb
ze~7e<Rh1Xb_mjBG&;GL_gX(j+5zS9~#SLC5a#Zu4K^^!aQn<2Ax&-+3`bh|!-mAW=
zxv3?he*6&<5Yr6W{rSlIN{cmubiZT$%#!gOtRMf!m6bAxLBF9k@7UrpSdsQzJnx<e
zH@S~^Ler_FGTvJAg^%V|{U@|tJ;HAx#$zB_Zer@hRjB;w6-_5*e`;YjG%-ko1t+lz
zGku?Z`>M@VcOgRc1BIbI<MZ0TjYA<?@G~beFp7bOjH~!tDO6IXgBZe9jZcVZp-f$c
zMrwY8(f7NwM~l_^Y_Y%e8?dpgk2JNMbWzCXowq}sO8ubLAyDDr3#9)_7E03sq291c
zQjd^1c?FZ*DnL7VS%j5_4*+W2(a$gZ4uTKa3d%f!S!O5LA`XlE#b@d3$auW+$LT3H
znj|F~)I)w}iWo4lXrlDFv?S}m{Sz4v7hVP3uTQ~n$IOWc^l-fSz&DQf%BOIRGBMno
z34}bSev;s>`V*%0s$$cUD(p|SFy?DlG0hdlA9;&1zD<YU8^NN5e+q(ZAx0u_71GUF
z%Ll-$Gmg;Jf50h8PMPgOzLeE&&1)5<9<PlHnC%f^qJdr1_54OrzR(~EXOuILoxGg<
z6@Lnml^6RGurte5;<e#%SqAPVN>6j_rw}833ky7b^s)jxvG<Z%_0R9fo(ZLlh3<LH
zh2@0CA@9YF95lnvh;RJ8e0QsaaR!4rf~KMQniKi+cNZB%yKk94{uUxxMdafr9|Dkw
z^3H;am06m{-R{{0k8XulmTm*e-A=}EY1#mz=cQMQGgDZ*O!gU(f5AeUlLMZI6&$g4
zbJMgiYLL-=Kqy|?E!4SfM1g<~@}Rz|egxAAVIFZ?h{2L>8Yk*XLuxinb&qq3wr$AI
z)bAXG<IXAk@t;0H^_{1%i6UtxhZT-n1L*_nv-rg0^fQQVx>rE{@MBz8Twjw+7oA$l
zVTEozNc9x>(X#t6T6ml+EN#9jSx?d&IW;>J0I$b4ej95UzDj$r36fZ(ut9U-p*dyH
z6Cjc^J_5;XBQTrj)kXnFf8X-A!WBhTNXr3R-ou!=y~Tyq$J<0mhG4tAu#iNa8`HaZ
ztIE`JzTcB>l0(EcAR0P9O|fhyc#pHic9>O(iLqj=57SSt_Xn0b;vZD#Yaxz8hRyoq
zfoe~{FY+}0BM~O=c|?9>@2F`OtH?gDSfU_TAX7Oa!jF?lJi5|mvG->nac=mK11Sf5
z>gnv8TTJ`uX!Z)aY@E<wWD<RBFd5@_!yrYU`i2L3i#VI&IiR-GCZh9}Huo1z`6ISj
zm|2}dw-0#^-@}zSY^k%mkemNy)dVpm2SlR)o@hO3<^M=lUy3XCkiEhU+{iWc%b+<!
zWF{s1nBf}RVN2xe*q9TT&CT7bzeqb@{k*Z=NYw#-dzV8*@$nzUadQZPzwuVMH?h{)
z|HZYAgF^MB0%T!<w-M5Il4}wp_D8Y13KR8sng2-cYt7S&x1WNlFh3@Z2%aLEdZAyE
zXRBA~>eC>?(_f0Di^#o8r3+ku{(rK%@_f{syx2lH$tFLmhjBF4`8nPKy&j8i7yarM
zB|C0&h>jyI=vk>Rw*AyKSE*DVxaVLFU41FcDj3x~7-&&yPp>}T=qj^4>>dTgzpKH&
zu=>ql7+v5V!e}SUNS04g6l!$0{{Sm=sZ|qI&e2=oUgXbf)h9Ponyd0^UU6-f-y$M|
zbF|-UrnWY<b-CUJ06sCl6Brs6yX;q0SmtvI8ddCo0Rlk#&+@{gd&26^Ae<hy-pjx3
zV(ND%`w*eVI`+<kB8(OnY{~wzm7l%Ab$%}SOjGOHe7a};mma1V*6V-dJx0F+-J2n@
zoH^of3F}1V9(mP**q-V~hs(AEn;X8!zCfxRGPeg#m}TlNx#*>{jUFs(i}S?QCx2|c
z5zXBSL8QyYXUe9VhY@+N)lV$uPj=D1Z}Q@i=U!4IOSQSey<ndMd7oKOCn<DNYu@M$
z0g?BvYGt<&`nd7bo@MV4*-M^V-nYy1rGS-LxDAPOQ5umgwX-<`?O_fErJFFyH89xK
zEguWyms+W7`SI1@|40l?Fda3XL8VHhb;OmKYBS#)Wh2}A6x>Z|os4edQO)C9=52ZO
zP-2)n`lR8*TU;MNqvwHvb#bA0rdGUMn}{@H(T1yH^$6U^!)85M&>&aHbh&&8Hxkvx
zp!^QJ(<Oes{(l*m|46vB27Q{oU&#sy^{v8Kq5D5kD7`Cs39O@C%+ArQyXI}4*(zD7
z5&N}6ehrq%=U&~4CL7L$tmV2<4zE|A!!%4OqN+gC9JgUT*66EuZpA!)KZ>^uY9ANw
zaMJ!-L*h3EgZaOP<Dl;mRt|!&JI@s7J=zFWQKI(FMNS5#w<tp~@U_?MNB#4$E~0E^
zcUv#270jj)o0{LO#wTt|cN*;I<^BWazs>!5!;s+d@|`5`4Pgb4L0@!DW|7l8@Cp2H
zGn?a|1SO;qnc4bKCih<*1?&5&o|9T**>AHHY>x3yQDEOlc3jz#*JvQLSq)<cYooyO
zT38ncfQP-m<&-mVU}}=?pd%xo6}Wfz53Y3CErI@@i9^9=VUpK0H?p~q|JCLF$bd-Y
z?Mn5VhG8k|kQdYU)|5Wu;~OCVkq9ixDR;aD%iFU20DEVBjR`)g4xw;j6l_g|tub00
zVGy$wSJj+5X6w6JWl-&q%ZelUPR8E5L<kBh+|%4_En>0Vt8|#-K(D(k$c+Z^va4mR
zL>P6_d%e3PD7%&*NjLOT_9hC_qt`yxPvhnW+<-DrF^&)U3^?Ytx<MKn+q%00o{snI
zd}7BHeN}(JAwJIQZ?@H<M(P0Zp2y!{@1yo#2oYBj%(@2>LDUdM<s38TcwxCz`uwt#
zwK1j41B$eZs*woU9WTKc)WrBmOap^Ex3%}Cj4z~9_mKFDr<tYI=vcixIv`TKPF)tU
zkhgMLcCv}ol>BVLeC^*?`*8b3{?c8kz09*T<^W{m@v1QAkjr)N(Qg^q)oEQ;k|L&<
zB8($c&4OP8`E7IL5PWwRB?vL|dR41&nl~QW5^D6EYB1nbbTea-S?bcDg^iykqy##&
zhiw(9lty{-e~oq;P%pIUW=N<z*~~g;EFYPb72#syvvTNuy4e-wGqlz7>ZDt|O}Rok
z7yh7&wbsaF=+&UgEb<jKXeXLiysmeqPdr0}Rmp_?o&mb@X@lMDz(s6o)jbH+9Gb&v
z6Zr4A4YVU3(OX2F{Q8<mF9U!wVh$(C-JAI=Qid8c77@|*(Ra+|1n^?7R4x}8mj2yW
z+q9_W;uL_Q<Mw-OTAQ~cJE@w9m!-J+4ebS7xrg*WlBiiV)^z0&LAM|k(*_P1xuliy
zo;03kNE#KGY5ET~DZ;E_f4Gg(&#{I(+!c_^cfppgVH|M#@BBk3E6SCx>^UWRQ|D?t
z!zV-XE3l^;^Hd~2P3znb19u-smCdlU^ThSpCI70H_KJp+w^;D^vh?})uh4_51`fdP
z7%<O)Hvq18lX}1y+MZsJBEajrWYpBrUoGA)&x=+PCwQIUKQrggp)Y*s2vFpc%_f89
z(R+cW=ye^O2BUEepW>r!YuBsj6aLlX%#nS0@r>@{7wgKnK}BXdze1i7=fPQ-nXe(f
zYuypj=+209{$b`Ld}3p@Cs9zkR9Tc66xYoEH8X2zX<x5=u5axf?9eeusPPNwlcPaQ
zVivR*ljT&yKg}_)KbYO`z2FQ!xvFMm>`$xak;wWen&j!HN-#i9{mHCqIk-FLLzn~%
z4ckS8BYOEh7BTxXc=xOS6YW=iW(-Ij@jVJS3KM70wVfNd$d=bhAeLU8rB51GozkGs
zKohB*k`jv9CLi2%<pR#Y2FFi@iCE;Rs|@B+fHe;1<`twnIBVE77P|-zUNH049O0|n
z^Xqk#5pNZG6t4pAlm~v4$#^&IplLEUqxK&Oca0}yMw!$(L{Fqr3cyF@(a;F2&m5hQ
z<)VxNQy>7q<vKs>t#@nB%n}%k{K#&G!)VezsFf3zVaslBB`+6QlstNZdFt_1zgl3d
z3N{_IqpG_(bH=lic45EMETXNCt~9BV%=A%sok3VjXP?HrFlYrVGYT`k$nIIsk6k6|
zNLvs7yfEmS$dsVZOa65-ral^b3Ge3J(hhf)dw2X@D?cM5LpI9BMiDG0-cI&CRkyfP
zBtC>LqI{zJG5MvI|9Z%dvE5V22f!bKx4+&yDHL<V+D5u1w9(IvA?k;21!wft8O=YV
zl?eux+71~jk)~XjVr1fgX0UjXi4VQ4!iHYfZE0{QtTB)~V~!nDl=`6fl2+=Du#+df
zQ+W;NkbUOTNB3_m*3|or137o^+LuTLnyx}%+V-9`wPSAxYGA-cLO0X&<pr<rX5W|S
zgOLc7)E9J7y<1?up0rt<ul$iqLuv%h-p`63(7b&B;vKIum13Y_UlbuXL3y0h#esRm
zHVGh*&2a<hgLy%EOp{T9LCqoacH~dldR=(`y8Y82Ux6m0bJfP(3Bkwn-~Q|sU*dqg
zf6APkM?`_yBJs8oU_KM|PE;$gl5MGoX_%Pyhe@vW1>Mr}6p-H<*+HrV-Y$XyBNtpl
zF`u_IwM*ZthP3xLh;#&MEEaX$&Ln{{V^<FT@muluTaEWDRVDJ?XhnXimE4`w1~a_<
zLKuIVSO7M#nr5pTWp7w7GNp|wrwvFn=%n{p$^3;_h!!x5(kGgnvWOolrIl-<NM+X#
z@Uvq(QSzLes;d4i)8m!aN|#_wtdeR<&z@mo9C4b*Kd$0b=CtMK^)gcHxlnO5Qz_jG
zYXayXvslP#A`NZtzQZcI+1mbOtnCAR5j{JAF}(4QKf*J_*AqkF^Xr@$`*{(grWg0N
zpXG^*%S&31(_ES6k6ir1P()T36B4zOSv9q4ti;ZZEy?8bV&lD5F2DOw6?bN-8m5>g
z?4;mpVlG&z;xfaKfLUHz0c2UlezY%>1hy|{7L|EC$+Wa9xVaaJVko&`I^8Lat9sgO
z+&>x(_sP4whb>PY;!e9(r)rr(&sI^yv}6eHVKZZRXaeM?EFy#?FTm~BiJJ+SMVzfp
z%tMwunOVTO>J7*^P~SR5rrFqgdHB0U4&IpZB?ZwPppf1CmkaM4#`7=*O-{kQLUNR_
zCbgpS^WsBCtQn5YxBBa|4n>@JVXWS_P9H$bPsBFv?Vy3}0YR7Vb;QQoY1s-Je}?D8
zd-8E{f1K$dn!-g~8%cA|FX)ot%bx(9s+;p7I+cQ|AChln_D7u$0wKCft$@KpgrqH(
zzF47jS`~_)hL^iAX66Z*);tWCkJ889bmhdzH1B4s01QVaM<$paGuhY%gkDu7kuyt4
zGBP?Gra-v-;(zp_`aBpc%|6Wl`&$jaG`Gqm`9yV$+dy7-HpF3YU+FyXGzSFt8d!*5
zlrlnd!t{Y>`S1ajZnM?8t@3NKdA<+e*?`0M3~Gn<KD=HtL`$(suq%K_VLT{ax>ki{
zU4$^xRy&AcmJl_=yTk$cQkD@$;QKfqWKGEcfcd&CYrp<+4@hk^x#=b0q3s%B!V{A#
z`$-0^A2|K640<<U!7A?#2mb-o^kEJlTo+fjRd)(y{0A%=bKwLFip#FPu$}y%9Wil#
z^JBoo#QeXd{AtKzcZ1{Mf%u+Cl}8Y*oPVI|xDRj+wQ?k@<Yu$4b?p|qSOHjgP+*lL
zmkgzcaL%g{oF8wh#0Bu6JbXXM^dFt36;V-H@S^Cu=(rPF0}u<r1*=}uw($|&SrPcf
zKob<zuIK)QxStdAZ=TGx7pl8Jirb-+no;ASw&nP<4?1QWL2kInZ(mm)G0SIdQWVdZ
zCkjBKpmyT*v3f;nogeX)U3W!ycSgN7WZk<1AR6w_A9N%6c$1;gvY>Oh+`T?-5Mi@d
zW?b9(;||5E&nYb4N;Z@*_EEy^E$JVViaN57m;H7kZa@U=4)~rN**S3C4jB|H?pt)r
zh_XM_(a|otvF2#FE?pW9I27i8RP&`c=Rt8%#@tqEIa33Zr<8ot<$D=1rTf264W$^h
zq3tKX7K@=tGZm>EwFrxZGn2CxXGTHKNBhV`^7KTsu@2VSlDl8O=da(OBX$JV+K`<E
zI{9kk)`g2f{H>YuL`<sjnaEx5V#DNpC^vC0=fxz5)4X?gkct)DEA`A~TDXG4a^e;#
zH!Pp6HBbW|Nba3!t{wDTGq}&s;($G4<h!rWDz!?|w(`8~3EokLZDL36UGSU7Bj9d_
z-YZh&4uzpf!CKJm3P5b$kD}vzKRd?fQME^o(gh_gQ(xzaRv=-na}W=e=^@JSgQNjv
z>z1)~PK|6TN)+D3x&b>ZVO}MZ+A5}XFU#fxXivyUlpkgNM*<sgE8QrB#mr<OV^svj
z31A2ZtKtKXV1-u)yNd>$v~`3?bso{h-W6$+6I}h)wqk%3=<My~>trLHDb=?V>u(P^
z0(U#KQhIt<$$Eu=l=48{UEkGxwEZ<O<xj<0U|uCUcmWtkL_|>)dfQty>B7@YrPmV1
zQ8&!D%C|@3wiZm;;@DMH>e=W<9Mt&AO7}unRhUhbhb@*+G4(rc?H^VE5e4n#fLMR{
z8!t@Y1~auktJpc@HM+=UKWtfbeCbR#eIQCR?D0`+vz7b}BjY3L-h*sprTcAMfu&*f
zQ(dE3oX4b}$gN2yPew-%rC#GW%F-loYDZY9Up}3bl!|T7H*?o&+97wu->yxiA1?>#
z#Pj8><7ysR>wCotp6S70-9h(BAl0G*3^V$xBM#4NpW!v;J?qr^#7<wl3Fr{pk9#F^
zc_7(UEA=o@jt@&86X2tpO2a>?E%qz_!;>pMc5kbGaLP@WRsq{r`}Hpf$9uS3!d7i*
z?gOs-)ty3NO^u)?mY%OQa}V!2fWY*rj479?AJU%vGv~l{ss9x@m{+VoM*9BskwZS+
z44;p54G%e0fRm#|_AB!IKO$YT^nPn05MN3m6YPRi@7AU<&d#&aF9>BN=-wWNNFJ}E
zcgfstCp!-R4{PtTa%8Rt?j)dj>XVlP6&i?I`OLUOu*xeTu#7qsOj)NoR$&q8BpfCi
zVIp)u*l`dP1Dq(#kWKC(rwMu**nA(>hDMd?6SNylKMr%gCSlNPpGuK}c?5}zn}2=k
z-+GU7H&?tiT%#xlmrxSDw*>O)-t8Y2peSRC=g$dyV$iS3s6xn`Kb$pwUPh`K66g2R
z`p04g%4#~;cnnKEGKs_=`nj<DbB~Q*f|F^!KC>hy>VLMFXtn(6|J8<1{#P54y<N%C
zV+8CLCoW7>qAIIeEG^9}8fb(W(!8587Yet3tsVcKUdf*}Zo4D3-u-lYcvBt$h~!Ot
z4<MRfN;35+?T=CjEf2aGj3}ZH&cTMh4#LD7-TNxXXz6FD-b6HzN>j7k?%|J(#LX_s
zs=>8Pf@trj(++0p*dgDt8@VmBiBCU0PIZ|zGpL~g_aU#R99jtFR*}{ftg(EePhsLW
zIYgnHVrs=N)tp7_otn=1sPR9CZeNN*80q_*!uKsLTof`?ngEce$IC!ubi7ENre3f*
znn>WB^`cIG7_L788ao0r=AP}bSC>?}g`~}GZ)NdV6^=SLu<@5{C3TcJ8CmyyzkKH|
zeJgnvojV)d=U&}Yxbnp|UHZyr)<kg-l+e9e^u2|J3+bc%Oi<rjaz*}F*;1VaiZl~G
zF3M&N!0f;w?;0oyW^7?+M62klsjG5a;_XTGo4o71NjINv8Pp@B-4CteRDjQPdV9<;
zUd0gRB&^s4!SK!^k@10K^{54R#8T8)&^rt7Knq-3tmOFe(VT7sHd{@w;dfE?H`bQ<
z6Ob;Zr<>1Bu?p^?y#?_s9f;h&Nfv$g4|vG-TmFbg!j$aDHO!dx%#1Gmd)pFRK2O7`
zX7K^VUEdWqd4Dn6cNCg7HVRSpuSmYc^g`vndBZbCmA$?i$$H}xuM6cxfVfxW3mooA
zaFEFS+u@dSi+IN***>!@?{Pv1Go}oI@#=4t36d9Rwp&<zz}`2Zg|A!aRqwX{F-WN&
zk~LF!XP2lpLu8VwbmpJQeE(PW`}R`aUj7#EYPetszvDI!GTy#aiU8~6l>&S=#o%5{
zWxNkC6njZTSO2tIbB$i>MR?t_D{z(*#bP;RLKDDG7MzbJfHN=kx)&Ze&H^`NM^_Q6
zq;;r#gfvPW_V|mS3wC-u*~Obg0<9@{SWDpP1G2nNYWWR}c`05wHMJH3H{UDC@y@&E
zWhP|HM*gywNeRxlo5QCXx&lAnj}ccNlM@kTV!e|O25})Gez(1(++6d?Nugj3A9AmP
zXwjq%cg;4zg)&!04EJ6z%aJc=i~`JmqTcNnL+_<uPd<kYP95QO`-dTh(?J$9ORu}>
zBYEL&_UO#(bm7j=3tne+193Kk6%U0ZK>No<RBXupi$m{Gss@OnJKueXDm!d>fx2Y^
z#qhxMz=K)79E0@B`BEuaCWr^?ethp|*ljN(;6nYKLV${osXyrfv-x33YO&Aw9@;K6
zfGfg{#tAQ;r+GKRv5V`BXmw6TpS&X4Ta+QlbJ-^S0P(^Ke<3(PXkL3gt7CB>^U3|8
zN9()F^N+7~V$|8v^(jtIR4}Gf%!~?brev6`_oa+2#1LchodN9V4C-`^_!)D7><dC)
zZ<gLv2MV1SOyZBRb+<+L=BXzB@oHK_<H*gg7h_LGHEzCjIz520dF?4In$mlgBp%>Q
zCEwiLK3G*%a$?T^MOFw2X{Zv9$fh=>EO>sia$<#tk;V*p%44U&^3oK=*(-`fKiF#r
z)WVqhB!c{C)-c{!f+)&~2!>$GY|4D#^69^7@~3hsq-^z*CcSDl>#r)&#vP^Az$I-+
zhvBH6k|z$HsV|FKnE6nzdM8K{Jp$HNGR(9@oVc)t<;5L#Dp8~>rrDI3yq-$mcDp>L
z>7lg1o5tzr=MO)^f#f>caTNaAegYT<)xBGWD29(b|M>f=T#dc&_Y$qJC`HaeV^Tb{
zsg>xKH4deW(H$@I=P>;z@1M=H8miOp|7wIX2=PJ<#K?Xv5W=Wq>HO=Zg~)sR>{otp
zUk+B07eGGW5qHlYpFd9|pS@w9{D=TJgqZBI@rt!0xM>?GsuA0-(?6$>d;6ywce28)
zGR`25+D7Tr(-cHKfQvj{l1si<-AKziuV%mA%m@GFc*|oI#@~88T;ExCRjs6b@jlm1
zvt|=pUChf<VaoC`bC&<gZ>Ka=&+2H;Yoktw1MeAfy^D?$8`S^W`i&XksmO^_^MeqK
zIp+dw!x@d{AEJQ=?`?xaDb=|2xQ>Vw!viCTYdtjHaSrZ&$+Fx%eIIuNs@(iOxL!Vj
z@$t%4>QTm}`597@ne2cA8_bu0CoE~zTffR@$0_Mr%cE#)jQT(Rk@Znz6q=b0-#%@Z
z`C4ze-mvO5<MRyO?bzUT=f&DOo-(McvxGiBMh1Q4ucJA2{4*l%VEqnDR;bI)gGq%*
zg%1c^d{t!>zu79YwP|OgZwts%)Y0uC*_vr~AS~WEG@?G)Y;mfk95DW+PtWeDG1Kkx
zCr{Cqzpnf>d6qA<9K4jaD0#7c*L?Y+_Q?xiT@4{3ih6eWJ<w3e1dfumab}Zi0w?t8
zY#+^SX&&RE%W@reSMkd8v`s~sLl1elDEOC54Q<LNRp@Qw#lwDZ7gi~Cc;MvjBn&yx
z*Bf?n!44%1`X?Pl+wdtk`r+;M{1b>cD)}pA4A&g#h~q$v?5IS($*E!cD`6axMtJm@
zawq0)pF~#)-Rta{U~kRT<nh#AZU<k5tQ`NP3~Zn%jIaHDNbz%hc;%!b3bXwy^yyT_
zWim4K)KaoGMCHCYxTdhv3F{We5$&3J@Tgm^Ss5~WH<Dy@R+r1j8fm|&85d%LT_i$l
ze?7_=DI%ANSxz8&$%3|q1%&*~t0rGJ+9PcORlj*6+A!w^TSbFq>^$}EQHo3h5_{`i
zk4a?p1>**sBFV0`xpumVe{<n-=I9gJ!r@+^DPj(M{hnA=G6qZYc1x{)KL>SPMAtqR
zPBE0DB~0F9+Q^X>q}OWjS7{zKv*_54GG6}Irf#XEn|aUKsEtx2c5XZIb*{C@oe`wf
z6)^oz@<}j|wbM|K-EYBRSc*xBMd$IGsIap5y4@tdYjxd=Sa%QBCNJ5q<0dZxjl@7N
zH-gJ<cYWMKv7ek9bRvFym}A*jiSusWQ@p*L(8d#x)Z8gQP0gHrwTTN8n|xmPYMpbD
zlVCvN4^cMvIYdTmE?qs*+4^1ys36&<mVs+BYst&OEu~DX_E9_dddreBhi+TU0bl-m
zb8H<N$l<wM-jiPPT-^w|4Lp5oAP>y=6N}Bt{EFTDA=B&~B&&hrf7&bLx7L?A%v&lg
zZ_5=>U*eMZXo(|%C7~U`L)*)Sba>YG@LX+G=0s1rX|;zdETs$UALxVdCnsi${sDZ5
z6-Dof?yaz{`W}lmo)jas&ytrU{5j*3!G{SMR?7PRJUb&LaKL_lM5y67>n1Fz$4kQk
zvHA!2$&CxzDi?3_c6ok_XG`jex4rkc&+j(dNpdKo=dP+I%2$wG(b#RT!k|2U%fQF7
z%qM>;UR~c{vwqfw(yBAzjGg^cM{t)HJIA7NP6ArKPzH)z?cL2>o1edZdy0J%7ppBI
zEUKDv_zv<owRpH-5_@hR`BRJFO^@407J%yi5HI0{%5wY7PMRg(+p&tdD)~%B4Utk~
z>mvMwxyeo?!I;*=yJxHPgN_@r8z+s)g;ILV-XzQYEV-<is(%FGF)XUS_QYi_ij_pZ
z+zcdlM}4txG7HSe;_b?^c9G_5!r3UWY)PJ4Zl^>(+O}`<MS{cde!awnu$;@&P4=f&
ztqFOre`q#D_E^6)eVD#W#bwu(=b~-;&~s;beHF&L$RyYCZPC>G3R<C?eGmRp<TXh5
z*pixo4WZ%cV>4?IIMzTW#}>;<3H0~HyMgWVT%#EKvL?O-Lhhfr&5Q{8F*{H#2nYob
zYvZD)77YrwmkrD?CeT9vhlzI0KZMkc!~QB{7CdVwiSdxrj4&3+I?EV&R$am2{L4Jd
zaBLv9e*)pPkJfo3kd6Kf{j;ag&gA~USJTgpGsw)V9HtU}BN(R{7V>RD;nU8K0OOZi
zT4Cb|ki_G60O<voc}UvXRaNN9*T0A*+cyCxr-luPD}IvEaNf<Ob6~ISCt_nP63tfb
zMjDbk3P0L1X#ErLSkvm|tnmkzbuz3%yZDl^DFf8qI|$ZT7kKj^Qu8uW4dw8}(oEU7
zf6U47?Rin=PEqQeZ|C5;f7}YWubY$QMh<kKObDW{2*Xf%2+XjBn<(yf;SKADMApl}
zhIXv{T%S%=X1+r<9XE5Ix}6$6XGa^S=bi;i|0R~)9nf5dwtVxlj$b)PD@F^0QJAYJ
z+3EEtOo79v0Hp|>#o}*ge+96#WMj5JCdXaHnq+U+rXX9V_0*o6sputi!OzX8CJfFs
z6#{She6dqgg`cY7vR<U;s_0A&-GUMw^i<qCIzwCEEc559x-pY(q4_poH8(t{0spJQ
zgJ6{zv_ib(UAW9W?DZ@)@+h8(x29eEUMjYHb*cs3wG-{Uaxb^vQun|tsLp#g5!1G9
zd7ez}Xqmv*aod)QBw7FE^a05Es1!p*JWZo*&gHlUops~T+iAg&b&?&T5wgWtd(yK4
z6?7P;SM+>(*ST<eAU|&P7Br}u9jA6<N+(^aM7jPIQx$4dunsjxSk>*7j-)=5GLooq
z(X`++(N86<3{Q9}3)sk=XDe7}ML+{6(En=_+~JZ(^8FB^f3wNqz;2VxGrSR3*xR{9
zVXjZm@hKWoGk7w|74gqyXm+E#xOb2bwd&RDxGA%neP0^nL8pGhFviNcetyZu<1$yF
z!Ot=1USSanzuuEh6tOx%PFqfaR7W%TEy5l#FBfp;AYoM#YbWdHz|R2|sTzDXZ`8cm
z3q6gLC!b#!F6&NwsaV-ElBtM#WmlP~jM7ER2)E?KV@fkBXu&DICC8g{C-)i~cS{m}
zw>RPV^J1EJYIR%Vt;dNQ`C8mEA&R#EFgYVM(I505N%a^}uV1M}F2gMB<%J@hFj>8t
z8641WPP%Be3X97CfDh{jZFQZu{n;mlFe+=G8AgnK!vII?^5{*k0){AGBxX=6f4!VO
z9x~xoyysE4ocynR;6IWkm#_IhmZxp+moeGRofEw#M$Bhc3Jc1u1%9`EvQN_Ce%a{5
z_|XJNf}212G)LGqOsCT30=`!`JvXT>XKSRl+3_XPoF}`b-^(VF59e23(6+_aRahk%
z(ZhxC-ye5*1<^&tbCJ8|<D`@RG=pHre=K+gqSS5TiTE%3B{Sx1=MGAObxXY3sG*G8
z^AS1++RODP6f^!kY?Xt7R6?eoKL5#40Ho~8xkwR|g&^nX^y&)uT3qVB${n!$OeC{6
z7pw~x*wyZ{04;yKDR#S}WNT<&hS}z2YK<sA<wq%qs$P|umzvxm7cjs!8BXfedrt|j
zI`E=xgvY=zYXE6#IDq`iE6{NMHlqw9sb2EER4ktIc-X2`piTnul^vfrTmGc^)mjqj
z8AYUxpx7Ch&bLHzK~+IZ#Xl$%h?IZOng5=zQRX#W!jyr20$QOK=bDhtTX8!IGZOme
z7*w;_e-mgxIUzN>tlRY{ARp{)=TDoI===C^;Q{-ZedgaUb7WS~qQHr^J2c*M0h2um
zS*``4y8n@o1B!6EqI%klC|v(@8_trhn%`SgaT&y?HArTx0XpJi3iJrxZS^Nl`}^oR
z<<^Qq#GzZp!&0^hWyBUYd!9Vw56<>PvRlv1UeA$1F2Gn4Zz8)#ZNWK?OxMfQIAqr%
z57!;BvOO_2mW1?{@A%MgOiJh;ddoP<#5WkU_g=j&qgBhF0=aMg7+udVA*w<-4{I{+
zJfWVfN6mD5wKEFB`k?(eu~Jg#G#N4j&&S`A=-Ed237w40zYCctjI-8TlNYWKW)p~e
zUmqkf%(RODFO}a&{asr?8<VaiTiJ%E%vOucirqSH-7xD?wDH=km9E{b!1pnkC+>3J
z183q8hMlBs-x6>7_lZl}TX6!b41d1MbmwXs&x1h$P!Vv_=6DM>CC@yvi7Hns3l*OD
zeyjY?GuMyQ6p@BcNZ#os&L_I&zs*y#!h<yUqEXn#!w_2{o9u02nL+vW*pK^?+v&X?
zv0o&7IF87m=g0Hm3X;n7M9bIc{8CE*JUlJ4WZm2w6EdIf<p@~;r{9)j|GE~`FIP9%
z2*ubZz)_sTkH{t_-+dRaNJSF6q`aEvQmPM8x4hDq5v|LfjoKp~Jhg+9Z{`gY+>y92
zrw4xmh?G;tZOPxl=8-W)tU9-uZ1#%-Q+8o{vtF~JO!W23?u{SMEoT3}+wqQAtDSX@
zrryseiptV!8T3-eEgx*IeVM<japW_iwF3hZCUPY~u7z7D;WW=p8Hwptq+1;5`F+Jd
zu4p@j2Lbs($XD;{f#vUYL^NNl+vrKRG|B3vQuR6b#L-#lx%mm!lF`2p=l!eHr|`+(
z`5o&Z?r!HSsWkKHGEIjvLC(XXq=!NKRH=zPyF>rDj~Bcsa{V6m>LDAQ_rD$O1_KcX
z;c~oDhyhU$-&3k(%TZJFOQ{<G*pL38emkQ1Fyr0HyCUcm!|5NgKINLcsnhi?T<U!D
zQ&)E+FKzGJ&N3p0`*LgtY}g)^=W?CAq}Yc=#FcuF8V@8rPRbvznw0;plHciu%!hH6
z`B6cUY1CNirX+<Ix`8_X+9>!)=?0hTOJ*Jg?!=ru;2s3pZKGtFZ9m1L%>#VOS#8bZ
z4iirFoV`ryM%paF#LXHAZvf50ZA1>z8&o^9?2lL{#HXdiD3&~dhOd>E^@<%Tu{SY+
zyyvZDPl!s~=iqO`o{1sE7Lz-s^VQrU0;K+whnM`ryti}3+QaEoq-~xExA95ab<1qv
z%BdI8ZX{`3lz8_{N%K2bBT@j#jq_E^tYgd7ncat{i>40)djWW|)@3^1bzg^Pn%d+o
zAb3)lzu@1(WNq4H&zbu!-3*@ensLMfDB^Z<mK-uMW($~i28nh*H+LJPQrDO#oplz0
z-a;0CH155-)lr0SkHKDd&t{lu4UXf&)8Rc<k!dLGpPe317v43|wug?`)>Mi@TyaYj
zg#Cn~gV9ffWEs>Cfg0}*$Me|p-mooK6m9DLsq#;UcMEiC%OqK&E%mot%nv_k$NvzE
zjZ8YM^qLp#%hliPPjaZK@3nhpZ9;-)^A@>3hI?tx*O^d1)@-$Fm8f-12+D*`GGHKm
z!A<c=ylcfNhu4~D;H}6nl0|h8){b&^^g!h=Ov3s4T$fW=2~>K&Dub4*BQ%UiXszi}
z>iN>yW&8o2%fc+Y6Z>ZHdtD-2g3*1k>_HKSQCK*7#$tW%1eEN{qSO)y(Rt4jwArie
zyQC~>+%~4SRf|tp0@h7IxquO<5NAjCAl34?TYL_>BJ#0{s^e*%Vy&0_e;+pQm|nh@
zJpN<7764IX7wTzUHnI)SMXY8A)wxDOdR1UDvc8c@yF@3eg{6tyZv^hL!d9kx9!f16
z6pEKLn&6x+dr2Y8O}f}?tJ~<Z+a39KJ7GR|Tf$50^8;F!LnP}v2m`rm35$Nqiw}>R
z*t@DyjFqR?a{H7EkV==)uckK|Z!}`HZEYZ8Zxj}Xd|<{crmwwuI2t_~?bg#jR!b=C
zW0uZAFkkK;B~r;p%QVeQHP{6rLG<pT3Pb-ooG9t~Um-YcLmp?V_08$>M|AS%7j&=w
z{6<`@M06<nqC9ChUe7Ta*Zx?+b>}(HEh+r&WOn+S>DBp_(r-pHqT9mh^Lj2(EGwK&
z^R{~WB4DKBd$U(Sn)eQIro20&ymX#lvU!kqFQ3P$#(r*^(LY)u=vs<@1lt^m)C{aU
zvp7n~(~RVkR$kiAg|!m<?pq7}`OT5INGI+x*<S0sp`8lJxZKh~U6y=A)}_OuNy$6I
z1p5CqvqQ25@P-X!((D_vVRwOj|M<M$VGMtX2ptH!6I*e)uS>)46<d0lf9WM(D%in)
zS+f(2?uoyDccBdXMf~}D=mJw~-ihFrr!>z3ms6DSLa%Xs6=IW!8r_hRI}6~pJHUjq
zoG47CQw8k;Z1!0~#V5_2h2e5EU;P;fwm!Kw9=`BQ53wa^+5FNX<6g#?onV4`z%%6z
z(|^Leyv?xxNCYpSl^UnY*T+Qo`=WcVUm-CZ&u{Ou_JVl$i593^6G8H_^2UDh!t^ET
z(<Ud<gYW*hbv99bPyaFwL&jFhjqMotO^%l&WT#y$5%g0ILlK`)p?~TB*K$HM9EaMs
zVOMC{t89Nq0QPW{b&Udmh;9*HoI>@{6%CdM>!>?dXS-H@(!7UvI}rU9?um9Y31>v@
zcd_`Lamo-?+R#sN&n1Jd$xJKdnh?mVknx}yu?SjXi=d{TVmd@+RsvZy{q78u&>${+
z8N#S0OZ-~yhnLFHt|^!?-YI3au%Esc-!UUaM{UwoI=}2>h>z+1-#c7h@jboR!PP>b
z5FbhIv!gSxep@Zl<h^*+`IzKx>(abi?M4nU2e9W4__VgRx>2SoCum(>`kR=l1S3(_
zAJIU%_vwuP>NMu%%UCbrhJJv<Z2vW%>D0{W2x0Edk{2Bc<8H5}U(96=Z`12VrE>;Q
zKFtsm^sc*9F!;xZ{dKBer6|;CEPBdqa)3-MsprmamDybEvw7!@@4ETQd>ZuZg{;)=
ze0{^7g-R$1o8;fqrq6V`J!Yo1x$c;z7WuPJ?cMJ*M{1u*fngR?le&^zDr$=3nRTG?
z<DtCPaiw}b8l)LjJ$=2~Yriyca-x;?lM~95++kH@A6>Ms9)+d3*AOea>n0!Yk|1Kf
zCUbQtYZ)R15uWO0X7v26Ddk9RZj~vmb&thJ>VbRd9B^v+GZUV(pW`!Vc{49N=2Oay
z_oQppfD(HRt^h2SRF2Gkn=<4v;_#9<0*Q1uQl8ezyCZOaqwbZxoXFFsIpLlsxi4-;
zIhpC0^4tRtc<0>CcWPwr9+gYRBW+@p8Rfjhq%dryYu_mBpx9ItQL?UDHUDw9Dw$c*
zOdRolSUT@;s{jB0R|?s(cT&c&vbTy5+0G#xWbfk`hh&wk%#362b(~{G#xWwt3L!hY
zgF{Y8_U`w3f4;wSy{^lD=fXL!*Yh#%_uD-Oixh<HX9^8Pp)@S!Ih(=G6OKPIQs<`N
zPl)0Uyl1Gla{pbpb(Z~!(AFllp=f_(b{PqgBa&KF{FOT@z;s4(zW6X?V2|L`Pd>Tf
z;z0kC1C(_(Za3d9c5f?t>e+>47}9vC&$E8jpw}oG_w#T1llVU)pMkE`rwZyJqw8W1
zm(w5N;ul;PrF??m^LYZFeF$#Gtw<nv;p9%D_2@U?i4M69KaK~YTG28_lTGE!BXUqD
zDshkMGo5=Ib%`SK*_k_qJxu4CE+FO@^iF`mhxz#$Cq;A8-)8e(E^%uOgoq$r*0``i
z|AO5ns1Vj=4qH-dYPQC}6;Z9JgLf}pG|V*&uOww#U}5A==i&KM_gRgVsoLH5edfY+
ziAz=-?ml)!b>tX4N>rO@#W?HR$!_#;0IT~B{NJAu1;XxymA#wqcV4y-NWdG)d>XQt
zmYKY6T;7jdo%dMF=rp=4mQB0e@;AM|XG1J}*Z>`T^>2z4n=i$pqwazNn;cAy{c~ed
zT<Tu4-NkL+q8)omKfx0wmZLR3pKE5!LUbIn#sk+^Jtp1<-Y<XChlk~*#W%cawzOGt
zD0O=`w`O;HjET7W*_y$&)w9GP<!S>p*f%O%F~3$SONm>l>C!c$a3tD;N7`+59u{NB
z+LWz?B&e1Ao}zGEhY>`6p3)LMJ_Mznnf2pHlbPRKmz9U8bF<&}yPcLik!KZQEurN+
zJ64*3z-7h_Nh<i%LkcsQ%5doEQ}im*((pourWZJ&j6VKiOk00It)6vNY@hu%h5dNm
zvD>F4p+hB$tG?Rl_L9O@3G7~yn3PetSPnuMm~;<W-=D>l{jl4rkS_~pc<c*KW`!2!
z+)*jCf#|8q;{8juLLuPegUBN0MR+W%YEjFDA>sQ_b9nu5P<ss!VPwLdxg}KFJJR?A
z12vu5o;B%MrS;HaU>*V#-{#)TD-nRw7*>Eh&7BmlM`FXj?<=AcwYU4e3GOSbV+g$;
zz#kS?E%(Q4eH-+OGZ1GyV){k9c?_%b4eRxwVotHvvK$VN!1%~CpgftJrDl}KvU>UE
znk~8ONQ!FOV^E7?N<q@6MR+r`r7~7-^YxGY70-jdonfSFTh2(sFBYmK&La(~wAU4y
zI=-_CqsW`DHe7c*%y4Beg>H!D$BERz5Vchk`&TicpoS1o#O1RPQ?LNh4ZrW_RQJ88
zR;n03VTGkwF<gH@xzT*J_A7_CXWMLZjzN>h!HI?D9f@M%ls9{lKIxyW8O43u-OMeT
z)-zyI*7Nq#Bf+Q8)l=F-$+s3J2w=u2k~2$tSDRvCX~P2QU)LETW9>hte<*=xE1epD
z>{;cBp#Eet>Gz=a5^A&8iTd4h(?lD{5CE3Rp~Ym~8&7vFeCL~P#|M_H)Url<f3V;D
z1m5anF3JgMm#<M}n14IM^T<nc!M73p6{Pv{Z2|<=uN1o*sCJla0SGIs&SAh)$+N5z
z*%OKHO#1oCBcOmMafFLT09cJ^T0VT}wY}Sa2CoquQdTNpa2`M0XqK!BolREMqjPbG
zM@SC5GSQk$__p)LYRIqaWj>6+?`1OJv&o>z=OC#rL#b%D5JSTZa*3z;IFU2QIZlDI
z^9Cs>zNHTQcWnvn++4Km-pv-EaK(I4g)aG}c^&e}{zCzI&av6>_p*Sru(J*Dg^0jl
zxszPtkd?G8^Pib?b;P9I9qCG&tYNBDCpE)*bFm6`fkCU~P&4yD{j4@VDdbf8=9K&k
zZ;^yt77j!)wNefF{Gj%%Ve83T2#HL6CRFrt!2S-E*i+`$&<-Wd=hmi_2U|*fI-`^a
zeCHXz!gg$meJ=TCHl41f&Rl`Ph+hHzWh(A4awZwwSo_xxG<&)h5&uXVI2G$V>xw&t
z1U%f#c|hSg%oWnq^rMi_7yh8)9RCV_2`4{2`QG{E{F1?Vzix|Va^AVXXWC=lQ7^Mb
zIDoZV)85<qi%`R%dzBl%^`V_8*VjgD%9!KOAJ@6ac(2Nuo~FP;ijqzG?(2HTROCN^
zNqkLiw$}z)1j+Z7-bV~W<8F!@n2~9U#DaqZe9rN1-_LT_MQ=0f(uDB;_5@jiiskG1
zTMj85O4%zD@V7K$oGlZ%)q@E?oNXbVy(Bo!PP%etZ_Wb?e$FS)=DF=<gj)Ig9~gfb
z7_vku*o@oR>n4r*^+i$2A!8K;OQbk%e$C;wim-aF?Hw!gIkuk7eZ+soF%9;xjX;tl
z`>UBy3CFlnC7(4?Ms+(K>YQ%;=S-V263~$(R9`NP3JWibIS=CdshT)y?u)aWY^{j4
zv+Oo+q2((0Y)7!`Q(gAAMpM%<TwuGdXTSGvuWw{fIKEpl9D`x)y@Y&L#4bN98P8UW
zg954Q5j4aKYe@)w!y8d4a5PmGtP@w3rboB2hc1&)x|1!T?1&!5c`o=4@YwZoBJXnr
zs@_O>LMgGuu;3t{x8;?c)w}n(mlIbO${)AYS%H2Xtj@|~r0WW^;Uwm~qJ#)PtiK9E
z6MjE@6l$DAeo7fNFj-Cl$CkbVasClDH3vT(jLD;n(l9mYjGkm&z#7nB2ETfLm|(_&
z+BBGQ9^YA48Ov#uZMf1?s}~)-gz_xpy%<hw)W6G7LrE(1t=~aKQB(<z_2?YY`RZ6J
zfy|(H)-RhrS5~g0fr?nyD^=#?esC50cP(u!vP32MLEi@Q2&!2(Iedf9j-X);<J8ws
zBH|jMLd!3NW99f;%qS<?!$`VkqwWM(w~T3x$KNs+F!o)Y$B%Z4w%6Pr>IHVHcjqUT
z``uap!$cHMsnYq{sj7}5)L9)wl}dIKEs7~x(at(%5B)vReVfHQ0D)!!y&ReJY6`;n
z@CV2{FuU`=8}LYvHOQkQ+1ag0e;2dbVQZ}S&YI}@H=gD!dJcZ{64l$X7L0K@t0%=|
zDSETO%0l+GJH=!~w|OG30;fB6aMBd-n_T@b)3$r>lKqfuL{G4|d;%>*)Z9)b6KR=G
z4>b)9$$1k$e0%C<vGz7a^Gh^;pCZ6|qEF~xx#=|x;iwi(E5^g}#g<=VsO;%%F3-bu
zJ6DnEZi57;n2w5W`YH6J{a>L;pMTeoZ?|Xe&z5<O=a`3>IN2_eHIyu4Bpb8Q7=x=h
z2UwnlKCjjk%2oIRlO5#5B;CjN=GWU+l?H$}#zEjgKmC3D^_&+uxaxgo7odV9@ex-S
z8C+rFBEP+WQS_Sp1}Jbq@wQ2#G&&y_PfQm|0X^}20H`%6u>>rcsbe4UmO98bwfMr4
zAFFK7{TCFdSlcmVV~qD(u1K?a{JtY(_Y;bl$@r?YY~h&MWRexVMBp3_&F?X`HR~P8
zNu?oMRJOC_9Eq)Zk@&;PQOax7k#`gs<gwm1s)+V(qm9&NW?oV5dtWWd#AwGGA-+G4
z$<C{H#RNgSvlV@3WFTC5F(9E3Rtl25YrgAW<n+9B$@|`A0&+G}QZ;N^^F5i*mx~Z9
zcsxD{V$dVi1)9(Lj***l!t^b%h@Jw{2yw1@PJOWrQ`nvvSrSTz_Sm-^=Dtb3&;NC=
zH0dU_n=;luM9gPJ|MJTe;O0y>()OI5Hc6TTkwh5{=3f0agvvr`MIL3SC>R<{#>>I6
z5%TwYq*c5Au=9uSp<n*edh1P*_-VKK$<|ko8K$81c97gzoEc}??*jr)tn$~s`MVDZ
z^R4*$ADJT;x%1U5q!~A(q=4DAoxKg-#pvq`G12ZwcQF~avV1r5dD-+?#b+ngT(h+R
zM`apdIw8IBPF1U?!Xzp9I#!|R)Hwpv{ZyB%F44nh<#<WCOF1i*8rxxd@7X?c=jhXO
zC3Cx%i|k*MtGyz-U*(A^<HsExX&Fi}XPgzYffm<W^S(S?*>P}ETaiK#p_(}$^VbHW
zY88$|-0evp{5nv=@Gl9Y`vh|zy}2%tC*N)Q%iZy2i1|bG+UCR0?%Q7g(LMMZQ4>Gn
zZ~uPSa{mTV_9y4RYq)HQigVd!rf`zmA1y$N>at#A6fYjvQPd=%h;A#o-GX8H!)a>Y
z3}uPV=1LkC=TaA#?hh0(&_&KKV2_Vt>w%`~#6D(J^7TQNco=vB!LdI#!@9sNqx<0*
z2@rDR%<xcix>nd-jE(DE=^nP~3teyL>Gps_<pZe^8-kK#IRDpNrz^0>muu?~4jARd
zky}-susOzWBw%8>*r93a2E|0j#n2l~|E>5Pjh=IvmKKaaW=s$QYJO5S05_d0U?!NP
z@Vgp}!8#b~Lp~E@M7$+vO=E&D(btH125hs6v2%>SxTVPzHDNjCe4&Qbu9Lhbq(F6g
z`eL4dcp;}>86#l2teaXluvc6<I{nU~E2IALy<P+QBn>@T@#l>;T<sFgRnC#EwzzDs
z!HWYnRIY{_3lmHc8mc5{>E`GA5$YCNt)&aNU@by(oy@$7Q83nQ(!rt`{|C*WPcBfp
zTitYKi;`q5p|R?%!TNDFPQ@HfQw9pI_00bE&G!JEgru;Q%3RiNF7*`EXL6VhezGq+
zA4n{+pjn)x>KD*O=Y<O>&<YfUvoQHn7%%VWVMk;P<Wt3MQ(7v(ayS{jm)PJM-yy5P
zK^FUjvS$n8eCdM~R?XX_y_E6-aX$Vr>t<gd!!+?qxLE@My)41`saLn8UtIWJKsW>K
zl@mkuaQE4WF{1ut!lE)34jB8Mg*5RmyO6!pr(CHWEac^1M%wzEpU&7ho;KLQPmLa`
zbKfZsO#YF#V}nF!X=IX?xz>Viw<g;vCOT@u0eho_%&=haeiN@f-eP9m$MgF)r&yt#
z9=$0(_(Wa4!Z=k;xvY~_DhG`oOe(^yildklP!i@7TYg|@#l%9W-_u6kZF}|@kC@(!
zrpj2GVQ!-{0v7*&TbJ`V7jH{=VD1t7ED)x5Ul60cj|7FfF8isFo(4~_0cvOGGNU4~
z!;3BrbwY<WrEs5$m%$p9d(HA%=w~83K-d~Q2=O@jbySS?;FHL~bal?6D<){jvjv8F
z?^ZU424<-HyTdu>cf@4^{EAnACZm!&CsH9+YZY~7isD@i_4|ler=pl<wfq+H2s8`D
zC~83-iISp|`=2c|7<>Ci+s20xjJ%&=F4@RlL9MesJav1-Ozb?wkkKA8BGUFlXwA4y
zHz-z(mPl3SM69=QGs(V|tq6OLgY^RA<6rN%FAYmm2N@H=3*6;S*zUZvNhG+F*cXNm
z(>5IyV2-^LB0KCY7d75CSxd0xlSHMKP!bk-(3W%qa8M=o3!$|Hfw8D01qBFO{V+YU
z3^}|XVs1f`Q&J$hgY|g*6`PiRS=hW$W2>hmG#?;-3AXN&Vf;HHhO5m>zc?~{RPjY8
zEAxS`zvbQh1sc)6BcuxpC|@?8<V@OG!%v*stx8BnO;-{%7^@xNvz_u$IBrdy?CqI<
zl@-#asaqdmOJVO*IuQGL#-A&^8nL8S;+cgwSu1gIzs6PT;wxeVqionmCsiycRpi>r
z>H4cENh)B>;T)oV=hRb5iYYSD`KXHudwR`j(B|uU(eujnOBDs*(30X^WuH?B?Uzxc
z{x=w9Xb@8O8(o7xTlVB>T!RI%;mDlV&Ef6hnSd^Po)Bnlues6Ci&yI*<ar!HI9l$O
zvK!AK-8X?arc<HFf<F!z*CFa32{Gqk`hyz|CvVSi(%yL#()#2R%Avv}(=0_CBQeG!
z+c!Mvc#IwNyvA#{y%172i@z@MAvp6igO7Hdtc?L_jGqZl<P8etwbx@VH_%B;QY-u4
z1n1voLcqh}EZSIIccSyDVIM08>nyFoiPmII6J-4xkFZ2Bs+`Ai>Xi9ivdK7p`16^-
zHSqV$yl6)QmCt0&8jjB&p>7}Zr#+qDNpu7r00*7u3a_J`THlnj$aBQq8upR07d|Uq
zUAlNeDD(cPW(`2zIIzUqkbgA7_P_wo6<J*<RC&%n33MtBdi$f8q7m!lGwXrkPW)ws
zkn$Wj6a7Ak<nvZj8-r-S{{i9jKSZAF|7QoK2Dm%3GcrcxS)D>%-xNxU8&CB|QU}XJ
z`6;(*p0t*rq=qNRuPs0RE~sCUck>0I$B!~bFI+?^Ed-bQv&#pS_U)=@IXyPkIv#h%
z6=W|z8wN6pT=QK7%Td*M0fwv?WKpvKhv0kyzCe&NY&DM~gu*w&@d=?j>wk+;wQuxM
zXs-7=!j9G#zHN9*lGsV6yLBKbZ$F=5={<bPn%$$nvuLm{B2&Bq^8J9&*L3V!=(lG(
z%OXjNF1u8(Yw_CpOZIwKG`&SkewU3yt+3!wdOHUg(BBV`x7=(kusr^*JryB`Qxuwy
zu`?Tbpe<m1_YbH^HMiDF@`-R9T(x?mY+(7a;@gKDsrv)1<*PQ%;ZNSyWCEw+ziVw-
zqZ(BDxp)eGEe#s3Yf!JVo*~}wj7<*os{|`U+%bSchtEu#fDu1C9vIw5d?cga^dE`^
z=53I1Q=PA?J;P}Y2zqB>g9|}-qR`&^o-m}|rIz8?`F2m~%0Xj8lH<OhN+gfRy`u<X
zdZTJZ9@C=0be1+>!+_Sa>6#q1`ud;tV?ukmns+FEwoB$K{<}7H-LA8GT>`#E{S}GB
zo;w6+qHKf_eU9Cfc2|VI1ncexdP3!SpQw?&HJR|wWx5MS^5V#c-9kLUzEFt*lhgQK
zq;d$W#S}!q!oxk(XYdEx`$6pjrJ?*!hC0LmJ2(4zDep!G?+j;Jf5A>%trMFUA&?Sb
zy&#qPA6+p(cfszrK^;E+EWZgVD{}2?08}T);%*eWCDLLD_ji`HJzbBxU3l~MEK=fN
z_SscQO}Tt2DA(d)A!`|~X{Rb~YI0)_gFm!t1-X87Fx(%#TZMM&S$N=j#Ho;3CjNIM
zR<(5H?3TH>rsNtdM1ylabRLFnKUt$o>Myv&)Scv4tbXzq4eVQhQJr%c4oJEaffmvR
z2~-OfdBU+XOM&eXMIVILcOE<*$rW|NtG5{DG(N{Hg5ATyj2uPz1MKc5sLkYu%<hQP
z+^E}dKfi0)w9xl#W5~wEu^1Cg*X9psoPc7TE0@Yq$R<M;TlGvCRv?~eQIdW3NoX6l
z!i<0V&8uFFOrsC=O>;Pd6xAZdm3CwA8cH6R?bWZ)oZTpo+F(fDu0VAWVKL4Ho?XkS
zbN3zd^ZT{Z2eZ8eiq4MQzuuWS`yZFW^$&d<lJ8p-!JNnR3H&T<!sO>gVg-jwl-gpe
z7{#{*LSKQ0C}qDCW|g)VY$46L>G<VBiN`JP2fr(M{1-wu?e+(3iRWEa)1$TZmD{Dt
z4$+BU^CF)~+-l9-J0TdIs}Y>}J^=HO#6eA~O9P*B?!p5iOP7UDWfJSK@j%3Sb01bu
zd~>xApMz|AGTn?@^h_y^Lvg!xSXX6v?rc%4NZDS07iz<~5@wX}8i*+Pr7viqQ^o4!
z!<kqaLkX7OuljfG84ZGrQjCQbrnpX0%x;-WLLzCx18KR^0dT<pBY1qn_dPcM2J#16
zjOP$9#=F-C{O=m^LwK(F5qP%FjY*-GYZMgtTC(wq{;YnZzBs2800#X0-KTbAmiye_
z{ezxsK$*#7UMK3Q5G`Z<9Df^1_aG7iq?0qlhMbVS>U>pHz1vw{Dqc*bc<aS7<YMp9
z?fmpL3|VQw?&)iv`N4X=3CE&({2e>n_)y{aKK7%pavQ-riSDs*&FSV!avUCTF5J@z
zpz{GyycL+N3l@&7eT3wos`;|06U(dL#h_Kn_W?JCI3Qqr--T8o%?@u#lN@Q@!%|CE
zmov%mm^AHnRtmcb(_UpgeRK&F{Mlt!If`J#WeOS=?b|(l!q-G@;2Ac?q1Gag_3+e;
z3yRr=SHB<qyVi*Zhw0()=UzDQ1x*v@N2rLgR&c7@k|^SA0#C7gZbn?)>ons*o>g4b
zPCe~}&?3(=gKMYM3G96y1uu?+MZ7|PnS7orH<or|crpD;2@5Qd%UlH=%t%>$7t9Vt
z=%*y&)1YF!I0C+ARCddZbXA3CHuo&JM(SZOzIv9!-bNYiB&jx&H#6nV&*{CWY(5RC
zZdCs;{_h$hRHLiYIK-V@g$*N@KGAfAoC^Ezdc4#=tpx1r;VpyH1Hsi9xaxvRehYv2
z=5AZ5pRhVCXcpeQz7ANR{Tsi++QkG%i@MXOdoHHVqneB<A8onhgcpeFP>IP~WR5Y0
z;SG3`M*<1l9=CKCUS!Q)J6wFK5@4KjQwB1+*&Bx_F|99;zt;s!qgMX-s`s%7G}Qf|
zmHdv6K=Xb14MVRJ<tUR0wSo)wDR?rnH~1q?iS&ei`_ZWWWS`YLmlC%c)2FwC!^z{L
zfvkX(46eYzEf$|)pcNA;eE33CVN7<9g{$LR;T~Ou@ZkftT+@z=ENNuW0*d2Cltbaq
zb7etNeJ}w`10mTGE8uWA!y(B3U7H_ZSI~^<HC#kiV|u>S{P)sF*FF1FRADqk2#s7a
z*|gyqulh6eXRj#;Z7*>Ly+-thM_JtXqw+3!n0~$|YrN7|!BBS3PH4wNgvcbkXn3KM
z$TNZaf#mo<kOdnk>d@`sD?Jx4UqBWt;v^94fB7i(EP2X+_0@o_pN57UB(r&Yp72Cm
zd--+^EqOo&X&h3d&&;xbqKx?Me!%!tP}{{hr)cI&8lc0<EEoOzLl$C;a28wlsxW*$
z?GjKwVUO5rhKkMt*5Bsw8Q<GAo7!)xxqdL{-^~{RqdvvA9k<#VNgf9z&iVVTcI`~5
zzdebH&gqjy#nV7R1&6Skmr5v(=3Hk6CJ`(1YmhrJtdJ4Duz=^7_pe9AxACLBx1A$G
z)C;H(D*zd*p*{NlHi{!H%g>F@s+u59-=J)nsQ%Twnre^KM3K{-Qn}avvnz3oL^fAY
zwEVamHpl_Wz@vg%Oevq~Tp(Y3Lh`mT55_NXTVig%{`dyr<zx$(O<!_gP9Ew_vh%=}
zWWdsynsS)Ak9|L3WzMyqT7y1Dgy^diEh2lC6EPZ>s)~L`dzI$??|^&Hp59WZcXsJE
z+5P@QR!)UyB3RweLR-N3C00eFssyvjUdfeI{Pp?XxJT{)DQv)GdR{=daZXerz7f#E
zQm^~a2v{)?9N0e3f<}qY03_}13b8Uq&+6(^(uMeD!RBct#!^(>lLG-UsZS9r7Vq;8
zG*hBh7#|oz)|z}YV5SxN^06fI={%SuDlVpHdQu_Xrp!Ka=2wSN@u^KoSmc@3iA^c+
z!(3T>eE72RU?R-zQlzbsLWvm3L0TqBr}`%9S<dnIW@=%U$gcTw{QzViSKy0f3OD~L
zjkn7>D+{6rG(A#w;dMVgeoct7FCb6l;xRY}dv#+<{XzbiCVXC(H?M2Q_P9(dYI^xn
zdPC8m3eZ0xt8Vve?&Ilx#t&Q$#TmGAu<E5;G!8@b#v)FIq0<XpO}6THvn2!`AvL!o
zBQ3re@kB^#nDxir`NLW083hakk%kL(L3n99J(u{G6ybL^>p-V)^$1u~{i2Z)BQN;V
z%^l-rszfhEZ{(!tAThvaCB?469&r18y7R^^O`PI=NBr~9v#+)1MP4JXURMu+`&ln_
z<lf(42WHVjn-T>dQO^3L&AC*+dL7NgEsFL$m;2mAUC1sfEu}`9p1+yW=H`oQLN>h&
zD8LhQEpOLPJWyzWfpYDV3wHnx4gAC~tX$_E#3<7e-Dl(WSg@OIQhZzk&#w7OEjgdA
zG!92!*Ge<{(xJf6AijUoht2&MMSy4lUB7@f5USb{tb%oAZB{8#QeBc>K1)O$^J7Ru
zm!w)(nON<AQO}UStCU$RF+JX`(9{@gU!UHe(j034iZ}w<6J@`;76{+LhS7K=9}2Le
zo>2BKO!Wxn>2K+s834PLCFX2U%+qkZ=CS5hnipW|aq`=$M^$tIzruR$+^HqEm+`j^
zV)*1*b~i6>5%NGD<wRfHS^2rsxcp_}-7lDYhd_Tq@IG=;mgPkMtakKoeMy-9>g=qV
zx7v7z8Lhk%pj2tvEr{$?{2Nu&t9kMI=nJ?@dk9h30{O&-k_<F_sKsrSEXSEX>lKFB
z2KEjbSQ-}5?=0L%(*+u`!K*AZtCe1hB{y7gR1~U8lLqLF_++J=Y76{3taIhH2#eh|
zQI>(~ycw#@f6$e&&71Ib8b@!5S95{W977Jl)qc>&FYV24I8W=aS0kmohwO_3KdM_h
z%x2htWC22ts>1H{k`_}h*RSgy*yM&MC5YA<?vII?&5&+{n!mb+T4=ckOJr+dPMK(8
zbW@@)RmKnWs>ffvfvfEo#F6AvbHj0~MJ)`vSIK0-!C%0wse5auk}FC$A<zp^2odY&
zTdE*?CR3y<(Py|@$YZqj*Bb`hu-Kr#ILpiSatgWhXPk81(&}9X&U(Gk*27gb*eMdd
za+2||6BCnG&JkNJrL1ySq#i&rr6EhZp<olG{<3rxEL}wvzfzCBD$iT_{)r-Zib=oi
zy*Joq;!yJ6waQJ3xOWrAaWc&TNG*LKd{^rVLM0HMKrhF<MG>wpLKP6%!`mf9qR|A6
zfx6HOJ6^5%dNmg-97izf;l2z<i!sg{*LkbIE^bHTV@=a_06eNb?1{-}`pr<5sp6kW
zhXXvw%EwTUuHW`8@9VAuP{Y@mfeS%L1en?S>5E~Vl-hHK{7u!8(Rclcg-SU7KkAa%
zlq1(M@57mG*>6F3v(2>YNe2=;+OZLf=AmS;-%$fq&Y^vr_vHny9U<Kv2Q`6^;ef{;
zZ$5dbL<3yr<0G&{^tbPRkL^H$J$kHW^r;NH3F*WcIjHR8b%nV1^&{?m#1^cZ6$~Et
zke^aU2WB*8+Hpt&`Z)J+N=FK70r0h)m^uTm#otoN6JR~PxMfE3DhiYC!Ct7u{+ugD
za4`Y<`Pb~^E4P5i`Z8xzLz>tc>onSc$T}}XH^+M-#$M@f8zkuW*Iafqr}dw`qL;DC
zeAZzZxVq1&7VHm`@V~7Nng=hC<_&HiLVtqAzcoHpp^&mG$Xvt6i8psPil`YmoD9*B
z9G6<TVfeo6p$Wu?!M^sdJ*n1J@})<g>hCt+P7lwtg6O!RBtaD32IPAP3kNiZ3$79Y
zs6cflI;|lRKM~U>NNNRinv{cQ;cQqWABWOw{WG0xfhYWTq6~%^JdhC8ZSdYtL}DDX
z>NqKeB4r^rhmQ*-d~ZELC#7cgY3_>NVu2Ejg{%bk$V}kk-pZRl<w=!NteE?BJvKwu
z!P+N+rKei5`(vDG05jz>Tfh$G1qyhHECV+)>Tj*YA2u$54RAqrh*)Hc0Jnu0ubgJV
zop7lKwaqWbjO6Hg|4eKAyM|@%C<}UYe}tKsZH5J!)}qX@sd}R(?V39;5@a@>=*?ul
zqHv865#P<#KCa~dtrJYGRIwK_Lx2TKEVrty=(U@zGnptRGp;l5rL7=uJtvim_Q1B)
zn!IsgA#-9SY2TYQk`i(Ag$*QRIo9L9^~#D<h6YP?WGD@;=(lwTiwnPRo1T6}c%gD@
zi3L~5l1Th8JM<UqG|p|$hq(FqMIG<K{s~kS#Q;}=^a$0_lprh|mmM`U9Y*vRCnWQl
zjR#K`6NrOLQ$hP(BhEi<!*K62m){YjXEnW_GR#NzK2}i<hwse7j}Hjcd$I7=S$I}m
z_Zz@T(H(AkchL(r)6?J3b4gKI8p1bZm1#WQxU8=|S>rW$w=TrmgiSi}pkYz{%kR>#
ziI;^}*@^$I9g272!eiN=xMWA!^JU}H)?K~xGU(91o<5tby&TG4Ms}4Rs7hiR0%fk~
zm^outb^A%IE-OMxG$uYPSL8(Hy)|uPQjc9UdxX+IMzeB16zH*)1vjz`d?jQ;#dMkC
zg|)<JG+E?ut8(s{_|}zASj~Q0wFZ0#qdV|6)1TS1+KWu&(&m<hQe>_c)1T$I8KEOv
z)7&}gW%?a9AEX*rM}x1C@BbY0EB1@tv*0L7!NU;(w7b~cMUZ{8abo%!m*ah$;1GaT
z{a*N?_hBlo(^0q%M}ctyJhxWbG!!Ylbw>^`2CuLvNuXWMN;G5wFACP=uN*ryzpx@0
zDmTHG|2rF4UP1N#bAZT`6`}jdwIEU-0U^I-9Mbhr1{2vLY$t4BZ-`mxTd=prkxY)U
zF7Be&`<CVu;Q3j{SYHXfINT!V3{}#-!#@6jy1*%F3ID6-ao~d=_t@J~(~lvk&=;U*
zbxQPO!TbLip>=4JR)nbuJmjYk6o2GXDR1zfFS}|my?R)M6Z3oYtm5*QNwxcKjrBg<
zp+^{H58#B%SLgU%H~e%VknxXlzbjWR1iJ|hxE<er*KU=GOa8U!)KHWOV(rjHfr+l0
z9bi!|=WzV$K>(Wxt?8S>j*;+8MewCb>#2<}q<8c0Lojut4RTa51|9;+4!cD07Pt<}
z^k$1s4$9e7r0wKBZ#1<K^&@m|QiGdjujlh{HvYlWuT+R#O#$N70@{2F-&KPK?}uKP
z<)(xatB9RuKoq@tF2=1uV(;f+0jbVVy}vx?`gc&k-tqf{s=a_X8jTyVoX_A$oBarI
z58;EMg-AdfVI8=M(D_Dx{m<vjxff>Nb)6yV&)jUh`Umad4>cFwK&?{`5H!>ij$bg5
zdUu_+)s-inc!R;)C|l-X(@8`@B#L(@(o9@aDZwB_e&FE>>*;q+sb+$i?5<KB?q`H$
z9QeejB>&jx`w&*w-j0={xF%FF1Nn3$PuL@I0nHI5ER=8#(qF&=`5v8v3%-Rgc7M#V
zby1hOnG%<J3nUH~2%()HFv-zj{sOXh%khT~NIlG-RvF9HGaQ_YT7{%JF-*c@zZOs|
z?1R(fKl_B?pG)0^xw%>iwN1BgRaI5bsrd6k9&z?voTPp<>KKZa<8lbF1ZmkN_Cn$w
z-5+yu9I<s4ZF?&!ce|!fBG6JGPPGf((&|I!C;Z;zuuxSq_So}y`=fE+Kor}p$p!lD
zf7di-)FY;^^e76#y@ZUq7|mZ^e_?&Zb7Hz-cM)EKqI-NDs#7}ru<ol!+_`=_R8^Nr
zcGj$S67~9X@9AG=yRuXQPXnNwnd>gnA07%4>?7aC>v%uYwyb%0Zi45@5VF7Hu(qx!
zXS-+uwmBM%>`kI^^Cs<u+q>p23&&I9W?n&GSZ7{{Cr)JFY}Vj%@=w0Om1E%g3WlEg
z&}^I#5LIHy-^HG#|Lg01YqKqjy4ajck2m?qR~xlNdjh=T-OC<1sGXey73{5J5VgWz
ziXx6k1sj!RiWL1SzOR=1_>p$U4wgGkZ0ha%n3w&Ni*72}$pxQVi=4<g)@s-nhGrNL
zAM1iK*@^ES?Fd(_cr#?<8*kxj6){l=)^#zEibTHO><`d8+YC@f5vEEm*_cuTLEc`?
zJ(U)}*?C(XD)3<dtTpMF%4sW<NIUV-=AMjEyUv38BEAaO|7dX01<lvRpjMkvX>9oY
z-Q3<az|&PzI5py+w2xfjUqD%Fy%7At`Y>_yLxs6hM&Q*w`&erT>LHp`yF=APU*w88
zQY+Iqj;YXuQpM|n8vN*k)_Lf$B_?Lq%48r>l7+_ExH@5-Zd)a_8BH>WmdwHULwsAy
zVJKv`Yp0$;1krSme+8sv>*jsv(>R%*xxMZ6vb@}vZ~*%lC5NhC@b$e}G^V76N*I&>
zxIH{f!%7jvMQ^B=z~kZg3w%&p;eWk2mU-e+X>VmnK0Q~7U%>*lCnLG)?|dK6>v(SF
zne7%*yiC`2k4hr5S3>(wf59gZlAAT0#Q9h@GC{7$A4b!QA966|KVL6~EmW@mo>Z=3
zqt(p45p!>Qy>At6#}@R{QZlF81|oCdmG;$KcPZ8HX^Kc^g;3q&*{CWgDXIt(@oP<E
z7>D-@00jKWW>YctpF)d^0rBo=8)k(8;eeC<6L0GRBKgI+;!hS{4wK)W`yF0}2**Bt
zQ!4)?02nR<NgHeB@uIj!J<lc9>ZpOf%T$hha8<YdbmCWza5~13ULocDEtqeMvYp)p
z_#FeI)A-#Id8?#)Au5AAx8O$$E<rEzCjT6i>kLM%%z}4U51)QaMz&llDNpg;q@dte
zKU~LvW|_0mPJSqc%eiJhyf}qom((TnWMa1~dhq9eXE|p@9ubGh@`=hNl3w*v<vmjm
z7Og5{meccg#Tq^nh+{#Tkf|A~0KmB7+r#e3+jzfAZAH}MN}?h?Q}B*yG>e}Y?&A4x
zJ74%>?$S4p`d4*){j*yvlrY6|(Mi#sL#dC_#V|taDy;5(zQQP7auYjBx;rHtzJku1
zMA>IhA~2SF*c@*YCA^s&lhkFr>A+@<uT*@|i$B{o)sN;9d`G7BvqmRtb+D$~kgJf-
zv8B<~hJ6C-TTi_F`dF~iZYGaW@vkV%6>G)!q7%&^K8FO!yeVny{2QVY;9!ETbDhh(
z@3uD&u6O_;D!#dZ&?+mkzkPb;<Kvg|YK2Kuyk?!~M<*5lpK5%;btsBw-Y4P5eB9v5
zw@>7|ffI5M6vntH&|%vwcgy9FkLM)^W9&jMf)GXswivg(g38QkVhu+d9eCp9*P@L~
zd00ikn{*z3!QIExKJW9)NQKtuy5HY<UKik<T_q7?-chlcLY@P9|GIoIg@dxK`6ZaT
zi<PGvR*Rh4@fxgEfHH}nnHg>fgUOCs9)ni_@%G6*aZJ8gGIrumDARvvk!)R>6DU_R
z+Px0|HR8s!DAxwEQ1F(y1$F6@MUIaO);nu~@p~tbl<XI;_0ICmD9eA3=D!UtDlTP7
zp9eKtsCrWpG5Sl>Zw;UF2nAl4M1Hwteeow5YDa0C)ww^U;fd6JflC;PS=0n#7LE{y
zF7zFk>~tNJUkMw?!rxe~bU3)Ws&;F<fBcOct~wR1lsD`Ct8#g&QcOK`thgu)Me;e3
z-BYH0zev8&t=1FuNO|e|dP}9osnx>;oBF(I;IEi(X1>7iOeBo_0JhMnv}vTA;TTpo
za(3TR&-LEb<wTZm@J99Sxo>O3I^GV<&x6n}W?3yRm4)yj(mPHOVq`EOh6g-4K(KF*
z_N;*vN<QC^|M>CpLbj0sTPjdEoGu*C8>02P00Ou4ii<w;eZVSGGF`4DT#1=E*c<?R
z5WzC-n;eO{8qa<|Ji6&iPMIT2`YT+KKkfs=2x%I^M2QL(kQhcWeNfx0G`_aTZgghi
z>v@_W0ytIhU&6S@KGY|g;b6F;nnV-gfHtQIt*QF~pv#|&<fOhZS&J1JEQsOaGkajU
zxa#YN?$#`$EkDP&B^Khg%?4L%{$10nd@J|cXVIv2T<9^pm3_a0yTCq5b<|fG_=q^M
zPmi6o=fy+~-sfo&s~UF3EbEUR-w|ysdGmxk3DHAT+>1)Mp-}C!bKR&Dt&gkBny5gu
zBvEuoFqveke0yL`{CT&Z>js@p7}J?H%jSKn+mSm{IF6|DHJ7(jhRs}$DL(&j9cs2L
z#17SglUFkb49JtI4BKep!vC_a#hA1aDUyGH_+}xWDk(D=OBnUNke}Li8g@EExxbw{
z9-Kn&@bR6Mm==|N;8Vkbt#rcoPih{B>*O~3G&SF?L|rQ18lK!7l>6y__ib<HPUNKm
zJH9?ZQOh=$>BTogr4Og3pLb#!FH>`jzMePe_8ZRss`kmesryl1K3AtIwTzz6WHfSv
z16SfNcw<$9ATHlWSEhhow0()$i--&&6M(jEwp^>QbZS{5Jhc*lx^(tSl0?P^DZ*OI
zGb-j4ZUW&TSfe%$SkqCVv#IH)0_vn=N&wWR9WIu++_VZ2NqC#5^^38-)hwfZ-4GCr
zs4_%i@;NQ4nzr9#*QgXlw=Y!GKjI7&64oB5iLz4UhMs^oO!wZP`$2CnxSocX;-8w+
zwoO@_p_<EAdM_2d>&;%R4>M>=R-id_zuiW{*%YY*(BAA&U7{RVqlFs=PbeFT83DO*
z@%ceza}IXjwOHaULCk~%v({<1M~0LL4i6^n(fPupo2*G|`Sbotjwa;!Bs^*BcrBSM
zGl+!k;VnIJy+xJJIhOY-DjX_h$1s9yx&R8cLwtWLx2iC%Qr->yD)tT#IfS9Xy>F}I
zUMWc>`CEDXy>*Iuqnpbg`(KG4WVKO%RD$cQ@4cP(ee~>hy#*Y+)ze$QviGxGbPxOV
z713gKu;F!g`+kX62}{B2><=TM46J=LIfkcCXXzanIzM~o(~5e!EAp7k&=e&_jK?~;
zu+Udtnw)t~<mz{}^f(cfHKo0R)#<gKV}cXf1Q%mTfgut@OXZghLy<#?(E_%BOIi9>
z!2f03|7zpew|iHRCoLrTMEeMz5+{W>8@p)BME^#B^+F?vIktVfEF9`fC1oBAdh1GV
z$k9hJ^FVjY$fo}PZ<qi04djm&7Fo$(q*e+9tktYy_yOVtM^2?Gef^Z?$^c2Yd(K_v
zG4G6}VAcP+SBXHIlz9AWe_NNpL2;fs-K*UH(DQK-c)P-k!u78##jmEGibYv6RaS4m
z-5iFu!m6-~#Vax@<l5}Wu!T<L!OfIbN58?%G<GxckU2}dca(Y8QXuhnjpUI2gZ-_v
zTi<Q{-%@B>6?;;WO~SGmEDsXRfY&g*(2H-P*tHd3XHhB!`fZ|=z6Ls8tq5HA8g%pj
zws5FbZ6JVx;KC{_<0We?iEoHfqU5HN!9t`g%omr{$XNoLJ?z(XREfoMZ^iWRNgBx7
z50nu*HNIR<pgmLu_?Z^UIyp&W2B+rmnB6Zt1aH^YPcJ$Ay|e1R{)k%mML77W(hbqM
zfHyA8!P7+f)ZjRi21}v&h;!pOo`9%N<EKn~iYX0DrWcHBdn?9PD-!j9CveeOp)yKw
z%h!xKiREH1-cDBQZeEsg>!11>g=^*VFLdJVUQrH~GRH0Ct5(9R<W1X&#YDLWjCpeW
zt(R#&czN1p-0ESgdb1+y?&Ar9xB2T&^ZlOn^{Y%FW`1lXfmUEJo|U~QW-vsDKZ=q!
zxzm#m<{grEDsBIjSHpO#o8f2rqYB}mb0EEMcaM_DEBCmfm+;`R=UsJ;+rzqI3c6y<
z|E_ffV=6p}Zrp*ycbtC1THToSv2^{Phw&HS<PHYsq=pHkyXf!5F#V|mM?bMg7N2Vo
zc&ZGVH`@HKZ&}G{GOU$9vk#TPL_IO0^InAXjv>FTi*|~sn4h^lp)^1bh8G-4MYVkx
zfK~LdLTr0Mr@AZ()oJTHM{hby?|$!#qE2QpmYwsr?)x1(;pcP^@*pfS^r=+~+J4iq
zzB~gXvTe9M0kQJ~a|+WDhXDtiYR>hSQRYdmvynLae!kLOU@voT^AyPHNddy6NS0*u
z58U#M`^xqE3t{1$)kvi9S@K40uo!N4O^q^&L#2CgCE=i99|%>ME6msRXUI@VRxO=~
zmDJzd#$8Y*4CJuk;qrSyqZdB4+)+&RkMwo;U&82jCUDN7OdL1WDIqN`<;)Z52_K<A
zm?DqyQgJ8d5jspm*u^z5EG1zZSsnbE+dC)7Y!R%(n{<c&?06!6dfKS9@8Sq5y_9*Y
zhr=zd`gAJfF<L5cqo2o?L+z)>@D9Pfkc7iwKforRSV|a*Z2IFn`sfyXeJQBsz9+d?
zK2&?TscWOYH1w|^Xv}%hxIm)?D054-Jf-to-gOZEY&NuSm46sqS;<LZ2a%n@6}-t-
zD_`S>yPi$$5Aww-rCpRZOC8L*Zauv!Vc#*KrI;CmW2#!kq51_3iq&ipr03_dYu8it
zAdEbyh#Od>frV}K<ErO-YI3}HzASYQMFA6QjvA3~x-`4hUzh(vVM^T`7eUv{X63+x
zQm6bAnv2NjPu(2nUZ?60x^FFQyn>p@M&(fi+y6Bcfs5^y`YUi<L1Gnr6)~V!n7r>F
ztclIxqiTPJLp(bwBeZ9V?5`LXoU+-YyCiTB-Q-p~^I~Q~G{JF5b-q&MbRkglRbLr9
z_DFELU|X~L_o1YM)y^zA)UY^kk%F(4F?lEFIh(Hs%hfwIK0Z{zDX<Afh#yS)ICJb?
zh+p1lt{(4B@phzE%KJ!>l%!$F*V;D<*cy>xg1J<ZTxp|{U#$`Ax4o({a))d&0r39C
z#H3IFdx>&|cu?miq#tSF(4PAmj3zI1=um3@TNT`6@(3$ac_`z3_b3g+PgK{$SVzrY
zuNWM};3lMsk?UG4Z6;qaLW+p%@K2FDZY$IWb-l{A-hg4Wi~^dSzjg1|Zv+&!e#_L8
zqMRjDz@?b=1zF1;W~Hvp&t^3fLjO{3*5rB8gFS_C^}3rg_Ac<{x#A?$wT|C@-=Xl5
zDAtY}NWvd+l>)peI5hFz_Mm_nm)Qg+yHZI)l0ib({>41^@@{OI6KP21;h9Gve)>=+
zlYRJBa*v;x?2v}&O(~$L0@o?>+5eet1=s*+eY%owKy+J-n+bI;#Tbdh1x|r+3%7hC
zN2N}YEydBHFb+R;579ddu5c+T=V{K`t0Ot6-7}eIQhzPk{J^GrtxUmbv@tnPvs__v
z{2kU%XD;(;wM`0pIM(3>U(2Gmt2e+1;>(0`dtvzMSL#9}_u<3xQMY<A37#go(z9?P
z&$x-^aftrLUgiS*tjdp40;SIr`IRGVu$}gt{#W-<ea|t+Hu-p-iZ{s>>f^tG?@&eS
zy9bO>0#?$?lhWJNViQ2a2keA?B~}3+>p|`lxyLE6ZI#d3!jT#is7_>W8PUM@q&D$&
zjf}8uIS<Gp`dN<t1`2nQ#&oNb_}^1D#c$cMu`TL3)2U(Wc+K7U9s`vbfcX-T@2x~<
ziE>~rGj8M5^NM`2Ah`n7(QkYniyu4K%vP?RGV!A9V8Ok|E=JP&`lyw@JJ`ivBz~@^
zjF5p!#$k3U4=C!<4Pz^mXHi*W5H^GLP88_uqaW?$(rd<kXpn*nHd4#{gro3C=#*p>
zhld?}?qFeJ_Jt;15JSTWK>z?oy!}V87}bz^+~BOS6q`vW#Z0}kO$M!FAwci$g7>Wf
zgrMKHZj0V>ujfX&khl@D!HcTO=<$l-zr2U$hHXSIFRJvOz5pBK)v_7j_WE8XvQU&V
z#l(o^NsvF}i6f{jP*I<3+&%zQe4~GjDV5qoWTA?>hWM)`1JAKD4+d-V-!M!{QKQ5m
z%bj8gCC=A8&XOPRU_BqK5xH(u6_n9))Z}>iyi?aZwQ1NZ_P;#`P$kKV;|$x>YLn2K
zN5|dz#3a+VS`2)w7IjRupH4y7U9RsXRz}6=1E#;Xw`5u!d-Zg^ttz7BAhi;$_!Ph2
zto!v}IKShtj#-*tSPr$wEB{@aEKTRPDwEeHsWPli^_v^zrD)<cxzndynFLw}Eel_n
z@)FoqHLLh6fAT>uGawrX44sZ2<w4RTL$%2HG$FPYHFC{_$Ceu2tLg3(__{+kOT=C+
z0>?+2fx#DF0YS2n-^pIIAuOM$ki_JM4dS7`rB7vS3<}7VwcTB?rHde6o@3th_O4IW
z^`)sKAGvpU1awLnP|nmLbL&7ch=p<yxB_{MeLV*fdNN6jvIkP^j3pPEO{hK>AR#K3
zyf5VLmN>})v3XyxL7pt9kR6)LNGp?Zmw2xq)Oqg>wPT%<TUSUJAK^`bD8cYT7R2PT
zTHdr5=u@C4-ZVFxiLT|r^#F6%jMk&*{z#QPk(LWk6v8rsKlQc|kWXBa%Exl0l9@I2
zK?VRQS}I{k5&Sf}*wW0qq8vr5`51g<%w#sYj#}0rtNIXt_Rnq=qa=S9+dnnGshmIk
zD|4yH!lB`jU7w=*+g6OulWQ$gUh^tSZlqinXjVIavZU9(v06;6=toUDD3%X5{Xj9H
zQ>P^Fn=N@W4W@zx)_#ZGHexYqGP}^PjD{aWLVsTsTurdE9TbYdm`)ku!0XX*3Z~<V
zStpRa^M}An57{r+D_xB&AyS_CRC2<~I>(!JVFEArGH(Jio=D+uiQ@icx3mQG{gLK8
z7IzeKtcMa!LsRmHRX-KurNgSK+-2D@<x6~?Eqx1KRK|*93mzSY|EZH|ZNt1G>%0C4
z_e*{^Dc)^`Q9f0<d!up_XblZ5>$cJH4;PKK{eK3CnjYDxvQQP#hi<)-MvNwp&cAGN
z;i&k*8!z{=?8E2Ye&eX-b*o74rF(M&ue}S@!%o4w%S65Ft@p%J(BZR<#-m}+8`b+C
zF;8h;m8iG<JX9NR0&h^g!4$;`&;-o_K7qUVW<_U@X5$>6q5yQ4_dUL(3V*%!+Ebxw
zsu<D|3=*4dNsuEB8^(R^Id7ml<Zl_P3_42ouW(&d`X~qfKKN?yD`>D_Qn}5s@7KR;
zX1W{FPE*~Wf7i5)XSn1Zhd)<i;~X2-+);1+iJ429_(VQ=E`6#MYDOXTYA1FVYuV}j
zUxCx^smgNf3*0;>_KwAZHTNzM2Ex&wP&(h=1K;AZBodg6Nhjlpzq)mh05BZe?jo@q
z9Ry;yYzW>Av0l3!kicH!ox#7qXtaDPH2{+TXhnoFMhaL?Zv%+*=!kJ{G3j$SmY`)?
za&4@AFm-}iCkwkYz5lWULsDUqK>H9digQYwIEX0i2f;Za%VT4!##^r-S<0bLAZdwZ
zp<L~i8@unc$H?`6m$GR4Wjqt1z8x<v59EAE+<e6Z?Q>p!SsnIr&;28ou9S7&(cK5$
z>g!F(s8zF2{q;<*(Qw@HJ#lGcu#6dHw+J6Q2iWUxFXvxbf;KGj7Ruh%$ESTzd{7go
zuPg6Mp@B2lvgHsHSw4HahyCU$<%&TFQ%I}QmkLg3*KaBdW5ufCD(|&N+Ip*{KNVbv
zq)myuA5_FZ`qgn82ou@a82G3z`DD>XxQ2z9J?!5#S8rE|(dd`uk*N*!PvB;ZKlhBT
z&ci04d~vNwM+7;*M2PoxD<6GmFRMkw1rlppqx4H)%^izxk~5!l4fk)P4@I^8m+Fx!
zp%F$IY9Tah?>)$Du5;k~q_<ThpP`T8Ydo-R(H>9ytpbgD9?_pz@oJGi<_)7KePfex
z`?I}6>k9~3bENiW!aOGV6%_lXQ9ZVh4JkfeE~ku=L-v|-U~fGYnPIxt`_M*phgc&L
z7@-iKFa<U}jMNtWOqOgTR3qXqfgxkI|A9{icpT&|hEPdmi4-}gwPm|Rn|QwcI2LK9
zQB*z958RG2kCXUOEYG$a)t~1r)WdQUUmyK()LgbWJ*OLAO(`v-liUDnKelYe<bs=N
z*K#QhuzHbWa>Jo=kn&-Y!D5yVd!@|LX_{MFn?_EItwoqLK=2spMSJOx*~DIT_d18<
zpPF}vaLYY*5!ryst<BlVTnX=1o2l^}H)$w8>HuK`(5h}p_Nz2PRaHy3DO&a8X_Wss
z>i-qt9V`}0BUCse;B4_**kRkMDuKV0Zw#-}3o8Dgi5~a>McE~&HNeQ|vD`@0YgM=<
zrhBw$9!}cm5x6k~c_W}{cBkx8mxaef`l&e$g8q;-bBk8b|GuP_4DMI_2vNHbF!%4!
z21RyH<!?L&mW1-6E!(RL&x=PVv<`W$80l918Nc6{NuA@&ouF?82=Qe3uTvn5S()d*
z^g;eb#bmcz&)#qwk&AXgM0!c)H*%eNJ<62PR#Ar7b|(uVRu;-6G<Z1@#ebF>bqB)d
z$t~`mA{MVcFcs_%$TiCtw|fv!{ZA}g%^D8dBG@vXO;GM|6O{SWA-GzA$X=~R?vVNW
zn5y0&$d)y?ENx_`q<O0`If%53{g=Ps^oiT0Z*`F1MuUqyquQIL`(~>^_KDP6f?3lp
z)2VN+6*dq%%d;4EQIQk*?x$c0k&Yqv-nDX0A3IB%+^Av8@@9H!E$cx|{CmI;Ugkq#
zW)~RX_@ey*45P6EMjdMjCbC)11OFYUB2@Q_|9K#RuFpY9ptE9?ce%cB?g4H-u{wcJ
zAK_FY3pb%Pc!(jZyP2mj2f(fNg1m3JGadZGhS;MMSwe*V_CmN>oEQ(h%EHnMzfWq<
zBd4ZjaQK5CT1Io2vm7}Rgbnuq0dJxN<Vg7c%x$DTof%s)ad0hQ|FYqcqs7;3_~i#;
zW@)zsMoL;cU>Ns!%HsDoLj8*VflT|*ld0#r_^a$23-|z2W(ByJ(^1Vs5&PGxo*&;Y
z3sVf+afq7^@zsCnuHXEG1FkR26vKaq?hKfB{Gm=N0Ssnlg8&5OB}b79A29sX%CdPc
z_w-0+>&r!dWbet7;#3CJ43Jy+MC6cYkZb9twtexW|5#_GJ_nwM6TKX62vL{lQB%tI
zg7KRJB1gv62mwy5Trrd8+;_K+K&5>b!bT2%gu{EI<g^KfT9bLz5FfunF{4M<@1m3{
zR<4#9frtHxV7xj75bE~^bG-<{-^Jk5q%YS3`F|vxbzD>L-^Ni?kVd*eln&``0qNR6
zN*c+*fYBjHw+hmo8`3peT1JU5YJ>v;nSivCKIi*;{^QTRIQKdCC$8&#Y5vi!q)jj;
z{$h|80T#D@oF>&GQ%>VRm0+Y)O?&;b{M1fySRjlZKZxYNV7M6)6_D0kweNLFmeh;I
z8y^=5E1h`8g#4q<R4M7jYB+|z!|W;9G2GI5eNP<ifee%AgN}!f`_CK0m{LV@TU*a@
z`Q{Hf!X-5a>J*D<C>ngTqKaufJ4_1RfwuI;ENG;sfN{A<%)w`B5lLFRhkFBIse<~P
zMNAs{SBmr^rp*J7FNB_IyC8_^?jvaY-hQ!S$?`3?GQa&e60{pqM}6)6fF+C8`5^#_
z{v>MU++t)RC%;;X%}A}w`Q#5Q>|Gj6d#!$22<)(+eVg5bo(rOix4hgW&sgbcb3=rj
zfb<Z*F#NgXU_kpt46Cdr(NS|UVben;>J=dHY2DuEqfs2riIRlNj~UrLtGX&{q6eb{
zG-1QrLr1LpJKkb^btNrOSW&Ub_*0Lq9Vr@;#}6JrLfkfyNVM@-<Wd<BblM<Cp}ekm
zz#L(lM(n7Ls*)~sNGw1;5!}`gNR;vE{ptL*5EA9y(212P*+iFOsc)pdSheG)kE@$v
zbhqz~#EL%)$(VsvkYfCN_Zrm=O*U_iX<%l%n_b$_;d+iroy){@1B!yOpMcy+gR!vS
zIQV2r%ADkieBi?86Z}`#Y_WxKOo(%lC6f=t_3RPLJY*sJOj?4uNo9y<H4H5IQ9WD|
zbTDwZKTz%ZUKAr}T_xpwigkeekCV0u)?}4gp5}3lF;<J4t9ja2&U2SlW{$~G#<2N6
zyhWW>8L{VgZl=7_y}LI}z&WB`1(oh`sPBedyc)UbLTGgwTZal-o_7a_Qu;B%&@6(}
zFbfZi5ViLl!C(F5FV(7Eb5uQg)9)-1ky*{e6UpwW*HIy~cWLjcCzc{$N~O9p?rsc+
z2v_SnO^qjCexzDe!*xfQT1<2onNnm9f`)$kIt`}mF4F|IYVo*FCy<*eHMtCZr$n=W
z<-A82ffa<dtPqc{?f&}*TGhtNf5Q#g>u90InukcaeUaW@Ne%S<azdgjhIjo<x59s2
znK9QNHXk+}H)KTo_wGI*HKkakowwrRc&Z@=4AglO@2*b8JAENHx&w_%n>~%_&|xY)
zjnNZ&$@1meHvsrU5)05iZ>yfwGq-m-G&bQ(zeBy8DM$yZKLATbVhU3p*(uHWIiD?K
z1?yv_Dh9yNz&k}Eo#-(m$CWv_%H*0o{|;y>x+Xr(Kof}VDapr7$7ZX1M@o!QHXphI
zEo(XRwv_jvaYCXPnGz#nQC#c1{lk$-ON<lm&{ef&@qJY>=oL|RC!p4p_g#2u&WbhG
zv2WWUZcuu(pon`R`)%<j<#Z-<m{zVN_}gi5KxVyg4BTdp8T4B74&YPf(M{EJFh4z>
zU2I*AkwAJ7ELz}F$+~lX#^hCbCUTGkGa;6B)?WU@+riWYluJ#^HV1*(n`wvdKtMa<
zAg*B$$wypq#KXbjfwh`eO>u0zIW4Bkrv@l!jPPSO4Vr<qCT~Pc=WRvB(8$zk*6Egw
zwgXd(5BA;nD%WG6+rSBK<~6%vjV)By0UT>8iOq6Cn>$dt*Oj;S>6o4Fv+1)ow??p6
z&}%Q5w0&&_bukY=v#KTFd%JfnL_a>6Hrg(4+mdGmLHxBWz4_8xbo-%E{4z>#{OLbD
zAH-{;93HkP%Zx9pyq|~FwU=Lb-|C18?yO1)>)Pe~Ri(G}Y$JMo<|N8;(K#qF8W@Lr
z{Zne!4J)od$TIW<!&N^{cYXdY{!xXi9f#_*om&u%_B9lHfYtcB9GhRw5|~?)=b9gz
z9|fp=#)Af~MyHnSK_4Dsjg>jx&0E;yA8jDWEZ0}Cjdl)&0S8e8x*k+Xyk(MKd4Gt#
z-|?Nnz0Bh$(NwLBIsHK2&VV4QoS&8SJlzJMgE^B_F{Y+4C8u2BXsdY~s5Lu0<4?yr
z4!ATdQ%$4&o>H?oX<Qw5vSzs3GSwRtpwaUSV0@A`wE!WZ+X6{8{<mT@uY`#Rb)%{O
z#AmDeHY(y+Xs>sq<dN<`f-+0G6m<$wfL+3HAXvXuZras?+j+<*_`%O=mPEPQE=91w
zs*9y(fQ^!iwbPIrsh*ac;Qj>PDBm3q_2+w@t|ut=7T%8N0|-4ZxhqIzW?OD$-lK^E
zj#44~P#6RE8h~TBa+=knTixC?fLaVP05hPhG!qu2?`9Lf``f!c*lL|Pv2BX%I8Bj#
ze1PQ~R68oBD$6cpc-qQ*0i_CxKU#GX<aE5GBOv!M7T-g<w(J31(8}Nq&tYKRQ^@Xb
z%B>ttRbc7JlMnN`p>{ttif|Jbv1CVj-nn@ZD09!k)ICORHjeF&kg$-9n&#$&8_~vx
zGd{f*BA3hL-d|`2Bds|?_vtO=6RJjPmZYY4H!`_fC4I7VFn0TT2*b44*dc*Xr0Sh5
zLQAadg90iQB2!Gp#>Jln#q(tDATZU&7cP<6Zo+mA8Q1mDgTC_4DXd4K0en1Z!ZBZC
zHH-cOiJn)c=9&LjIZ`z+W%nKEwmEPeCibj-l1GryCup*3L%j6H5|b_1x7rs$!%@0w
z`lC{e>;uY1ee?uHqnX-Q4fq&DaZ&~8R28r`Bi2ny*28%?6pdNAClI}8kiyAw5x~SI
zGQLDRkhkkj7^kH*;&rjZODHrW-AgB})ij^{!@Hw7SPJQ=|E6}6F!!uzSZ6RE=x62W
zr|A4mXKc@gM9&eEKiX5(R4b*Re3UVfcLFT)xuytzQd_`%nX6|1$_DBlKj3;J%G?5s
zb7&8G6FZAePd=tds_pCra(XhSTE-X=<_dji;h-JU<Hg6h8cJ0Wt5*BV<R3WTno7eT
z0=N4oXKChsxRrDBsrXRKWgCb(wyB~~LL!Bf)Y)_gq~sm_fW66q^h3%4NKc&vmA!g?
z9&SdK`c-Cqbsxjeoh-{+4aX^w-_GTeMC>al#m+UnjJ69A<p3-H{4wBTb*E8_!0d!@
z8&VJT@(Xj1?oTxaJ|+V|xovab+4B9`cruiHW)|x;x25v@5*JCAIh4B`tU@JvpLrE?
zSi^ap3xCpRLFNY#S62r~E88<9<dNpxj)7K2ZRwQ%rQ2t>{O#~43uiMZ^pbY)xy^%%
zNossJMQmTb%_{V=9b4P9c=i1*3CW$5ul})Fa)gGei%fQiPY7JFW$BXkv;226_*<dE
zI9XkcIqT(rQ2==pWJ;!qSSydZPyV`vzpklw+BgCbod@+5IrrQ+@xf0W`tI$};bJW~
z-Y>Mh3Ex$e<7IPg*z03`UTLf+2gNI*!ur!m6*M)$W2XGs8{RPtA%DbCd)~!H7#v;{
zrMfcN0s(5lpc4n>CG{+&;{-ri><~uA5Al0^67$M?wktEFR#&rd_W^?y?Ywc)ixR0c
zIzF*0_5eeJnJfh&nc(o*ggHWvapPXIX%Pev=ENuB@_Wlrj@o>$UGIzFoHJHeply4v
zz{??~k0hoyEZ#Xxrc1l3#&La1@guLl&81buN@+<#&XNI``SGZPkzA!>x$i=s2%^!V
zbWipKm@d?E#$^sO1@^xRnv-JIcLmgXN;t+|Am72oBwvJT3b_G~XdF~*Z%0)@9@f#A
zKvlnkZF`<1^R3R?Yyla9gW*B;gs+QLc~etV3w>)0OQCZmYClReS%0d~e`UwpKScWZ
z$M>NI3tfg2=7}WRc;enveyIK<|9i^(xk#s4Q%IxpzG)0t{X)V-XBJI12vFdBR_y$%
zPde_I6FArg6o&F%$kZf?4%cn}kg+L@hsS(HzYs$AL2|f}y~bN6!g@%H(lo@L&fDiC
z$l4E}xfxJ9J_e?PFC8YOl`GDJyjA324>|<|zgTEO-jg1VVo=|&)J1&;Ml*8Q1_yM0
zMY@t$!ZdFj)o?qIu}nup*d4#?gzw!Twdb71<XvC>64$m>`YG*%=)F!bk$i0^T0Ew%
zW54XpoYHrJR?AvzCz3E}i)o^!S1kwOD?2$2BhLPjrl8I?P5A?ODdl!=RfwP9IK#qT
zpod~JXA5C*_JaH(p9QUYelFb2Ax0^_V_msP!uVESx3*BYe1%6k8Yn~H?@UZYp`LS%
zvfQ=-l0|%V@e%MxQeF*z95RaYJ&61rYb>7<cAsz0+PCRR@+~kI3MsuUj;ml5gWLS^
zeYn@>*#XUljx1@6iz<%BG?Q{#Z+UdzHyemB8ZI3W{Qw5t<_iTx%e?jYI=1-1dM@qJ
zZCSx|ogab5&%P?2PKum@GZ}LEU+VFSU@@p73chG>+6l30H)gYGlIJm>P55+lAk%Kz
zbeakKFa6+swycPl<}BhizxwA~cEZ^06{Onkrz*h8a{i^O(eIhS++sX|3cRcbXF@ip
za>y=)NC*4WUqHiNgGZlCNnZ<+UKOsmgwNa&S^O+NHN>+%=c3T^08OgmK}P~B7X&UC
zck88Lrd@}NP~M7uIYpTxtzb}UTSbJPQkCV~*L-bjqFaA$^75`Y)^<n|e~T7;TtVG2
zG_hsT#MK}gF6nE-joUx8>Nnrr=&Q^vIMn`qSe$wKErFpaE!kM<m!uJRR_9a^x7hNM
zney9@MP6jBIM;+Us<6%N!&TZO^KFZVpPuV^V2F=z`nT&1X~#|iIiDtM)onp-Z(=uV
zhm`uGx*~o{1iL&ZiPz)rj^#PEc<W#z<J}%cer~Q*O|Zy-%uG9}oY~fNtmJ`jw-DEF
z9nC^3-KAu&Lfku7=60~^G-&j^!?3_|6X^oy{x$4-M&7Jw#(=nao)e(!#TRdvf{0n_
z=ru%pqViWk_uFM+3fq52-pHuU-&}Hr1cP9{Vt&&3MaxCj0&l-HQq?~eUemwhTY6*7
zBcmj~(73Mh9P=t71x?&AMUeRl^Vw``BI!pt{VUDI!;#g4fK-qJ^>@C_SORK8<1VW4
zo>b;vpgUXQi>q=AjELC15F>{i1jG5yPgXfE{``9HNu`O-rJf;8_i%86n3?-D{AQ&#
zIxVC8y9KOGt<WKdCh1heJ-{Q%*{6v1LZIC~5#@3+WdbU*WoC;*fT9+ZiXzy2BQ>hX
zd`<OVY`DmP^=6J5vWgf`8l>7$I$%J1A}fMKIX9YoFD^Z&Vf~xC-#Tu=Bw-e@h#kM(
z)lK!`K=*3L(;IFH10(b)syN`cRErzZq_K58dDK5GW0gkhW){_QsRq_+Q8!NNVKE%v
zBj>C3*mK8ipT~(ueX@sL11F5otsY{iHRm~hU6%4K?>>p@gVW_!ON4aidvmkNZ;?|E
z0nu3XucPI6xez$EtMRWoNe^-<vduCC!zJE>eG8+u=XyZ;aW_SjNyPYD8zl}6UWmV;
ztOBM_DOWD;5$9_Nc<1JW-AMueN4-YVnP7@+`y|kJ3-5xEa(~)YuW*yRXPFd3hm^-~
z^=*R2*u751N|!=`UxKquu)a5cK{K!)q`yNQoGPn*n?8z&b8$nOT^r9~7H+LGt_X%2
zY6?*DE`SH2T)8I(%y{2PT10Y=c-o+u)lR8x-=0yAK4eM`+$P9`4Nl4WcSIN-wu6oq
z)al1il9C)T1(~H-K)CL(Y9_~yrWh_#%GjH{$u)(&b~mk}>*AN^Kgs2I;w%LzT=+JZ
z4s)x_2Ms)d;4aDiqsY2Hv)o1Gl~DR9)&_;%A4O(a17_OfON~DMH;3zUN@tHq;s7G6
zU>0q-Z2MnL$<)hAJAYxmgg+3f372XcFRlGI*ldb4v{O^DWWEr)@Ew3l3%DxSZc*zQ
z2g72CDT^@+8)i)JCmiTbPa^zK{>JT8R+2X7859O=?QxhX)JLJ@KyVwd?7#)DiGs!A
znU0f^Ca0x>d-!*es|MmgwaN=-HZ`9tJFU6v3x2n>h-S|6Z2z(32uZbp=Usg$+;Ib6
z*ktzPQpR!s8px1nu|~BlBE=|VnaBBc)$ui?=KfocxA`->e06oMPZi6YUXXal0{Lkl
ztBKD+vKPJ%&z?z;g$lMgByK>umgRjmVh<cb{WGl;)V3fs8n`%-=;G?h!uEs8g0G!`
zq;_C`=GBG3yc^cNs>2%`dPD0sQlWiN9-VTf)!>6(P!9Hh7sV{-(gm-5ae+@JX4^EC
z2iNa~^01*J>rU3I{Cn1kD&Y-I7rakH*Uh)6rxF%(LB0=j;(eD<bavj}bG(>T(Qkc#
zKa|GZd&=`%UZl-oT8LR#VSzGW@7*{p^G!BOlqvEtjmR)XXF*}RgskKjF=L~=OG+{(
z_V|k}7P0j+E|bPQf6PkRYh$~xtZ5;}iR7e2t!&#Rg*V%j^gcXpjL7JX;ItU{m@BGM
z-ea&cVVl#BjMIO2Q5<9(&RzH`R_T}X&O0ONHjQpx#wQMWjTTItrzLwb25iyty!VSR
zKyzw(r!;3o`k>TVs^z{rpN8MAIfE4|{}&+FD&Tv(2$bI8<GT^%!f&%NCVKIACH176
zS&H~0mCgq?%D&F|bmqwz@NMRSy}sQoW2z)Ejy#BnVWIv#2YCIuJ|G?6surjjin|GL
zzA}DuZch0I`x2a4-=^Ip76O<ey|jBqp1RjxfYJu`q{h77N2O|=&Zy`w15o6Tf3^lo
zn}O<G*C!>(Lmq+4(Ycc|_B-r(b^#)#RC-ULN5W8y`3+km_UkVZO!|Ez6T$~lZZ&R)
zK+6rBaDB{nH6l3WGt5dgce5H@Y4s0p1W}sV%5bawVwItB|C2xc1)2@Rmu{afxL2*d
zV&JIxwcRK`V`JJ94t%_C@#6-+r7>Lh#ErrrgYP%K#^bEx)KIvaA!~K*&D&DyBhrkP
z30ZFO5hEENcSwA5QYd>)`@r|T)1F@d6o5FvQ{FB@f8h)c&@=WeCvb(^4bFWP$f{oj
z#*(gM&|vQ+%rl0<<;Xy-LwH^+KcZ?Q$fzA(X<A0q)$&SSNXfGNFm-cvd2I5t*R&bU
zjiy#C)L7~1jfB~miQFyCr_F;y0I@I_hT1?YXvSmyo@`nf8jj8;;rLQht~GS-Qwv5$
zNxF#ZNx>3xZp^Z-Xmm%W4@<%cPUg%-{#qx9uQxC;l@z*E1BVasaU)?hQ*V@bl$Ry4
zVjQfo2elknP~uM-L&F0Gup)lDaVUpI%?Lhdtd38zwcPIc&r;kMvi?W0R^KDhkL;GL
zGxot$3`Ox}A02YIP`woyoU}MsHW{4!c0Kg47jR>J8lV>5{nC1Nlgvq?r<pH+Q;_;L
z^sNr*@M&Wm0PKBZ!BPPsLglYSLwVP~MUNepzP8Xv%Pbj))mX`yc0BQEH<F_MsM!?R
z7R|R{pMAW+{pZWks)d-_s%dg2Rgcb*VV=&O3Ah*kW1?(!#ie$mDgWb^^U<jCcMT-!
zrc<w&ciaq5&!@Z_G6{zcWyrOwr1KI04RQQ-IfLNEl<;0?9pgVdwX&mg7&z)qOrJ4S
zNIJDAL%6>#e}I9jiwP7pwF6v&9^ZdAV)t9vFD&b574-QN@*cDXn&c^;>?Jpw4XtQL
zE*87hcvf*JeFM+Xw`!!)xlxqGd%WdzL%&*g802iW=FSZH(biOzRzYlmaK!1pYT?sZ
zu?IJYe=L}i-D_ek?ai_&?5zNk(XF^tZ=ZhWhm1%!RLaq-Wl|ULE^n5~=e;kFFvi<5
zVSTul7OfCPH<v#_4rVj6lQfot|2nQIA9lX4vBJp!I%23KIWAzC(uo<3dW392?r;ul
ze6y|E{coO=M1eF?D)*=c=G6+_cm9wPCnU{MVYNPhVvkwD8pr0~t~u2*uW}$*E3R#X
z!5UDMres{?qdK;1>yMjP=^y*ocHYp)^%3)>lI!o-+gvh7+&cZkD*>b}6Md%~r)L>`
zv-`fD^SWGxx}u~s3KAqot*Z)VKX;X`-B10BZpC?aE%WS+)amI+H5N1lWm+qi?%_p=
zd<P`tALuSDXn-jfg51~D5}1Xg%H_KspRZ<vJihczFG^G#3{Y|IJ`?HUM-V}(>hx%w
zG*#LdOQC<Rxui#+5*p_d<9lFTYr2p77zHu6`|Zc&4yFDCsi+<6{x08oSngLTklq;;
z7D%HPOg=YZ=}?9sGy*hH@XNk8Rq@m8_L5&i?$btVO1;JrCw-$Ec>)=0(LClqg+l0l
zmM(J7$Q|)c1TNV#l`8ATYAI%tkfy0DfggzY7xz5^T;~OiU9iw2AILADh<|2-_A9Cz
z8oAM%F$5Q~$T>6dR5-4+v1!l!h;>gp5(YFgvjbtTLWO^-o}2c(RYf*?kzV_M5z%-_
z*#g}vbr}hJu}vT|r4!+tP#_y}V1!xAM0U{B4s5ja)szZeXOUOmJhgO`bBrVha%!gA
z9*oDCgjd|w-u;wqGW4oY%l~oj2m6{|Icnra%YTpaFKViK>-b|1&u7%5$&D=EBiNz{
z<U_b^V)%n0oT$hf4J%w6>cWQTy{>2DoIeXS*I~=?*VQmRAn(u7x}#L!1$e6ErRuj~
z??2{KUYV!BSR!-VT+8s8I<Ye7HMRdC0^=&YlX2%iIYJ1?+mEyDrpOd1>IhV_1FTf5
zs`mt!+~5D*3i*lPyDuk(Hfx<tEkWNCm9pUv0m5q6;OnXUVJV*kT6a_@t<uhGskE`b
zfr{=9R3zAU0#`}rnMD)MXuQrJBL+7f-)rx@*dpux;ZN&B9G46x?emoL*0`Io5t3km
zXm==>I;df5Gl=Q@&#{@Y^b2d1W{3`#I)`?lMt<{VnutByG8keIuGIY)&ukHZYeBP!
z(3ly!v3!g)?flI~9KJkw<qvxM=g!VxDvz%vCVh-~xlhO^O?!Q@^h1?&XPdiM`1u%k
z?l%9W8(^>7Py1=u#Y8cy=ofn!h0tKIlDQUQUol$Wa~)xH=G^jb{E!HkNpop&E!e8S
zgOuzAy+Z0n><k1x#Y2yDy=ht}j!)8N*#b)e;n;Fv#nVrTWpzoI_+P^Sw4nu!+9i~Z
z%%W6C0J(F}@rf<5b>va18hXO9+?m5ZR~N8;KTLgur|AhmG9R^VFF4Sj^B=2tFT8rR
zPMjb*<vxEqruNiuLX859XR+B-@t5H^=B-CL)HlIMj6@~In=ib)ARwH#?AZexSNtL#
zSju;mV-?z=1Wi6n{J<*!FLD)b!Zg3>{bmjYHgLM%D`W)qF7zWp5g)FmKv6RY+STE;
zuRWPG!s@*xxeTlr-^Uxnlun3-p81-~s1FrJbNJlCyUPRH*{tCO6w^<H2;d%NGA}EW
zNYYKW1~-Pe#F{oTS?GiH=8k3HPbtNbdx%O2u}%X%E?Zi+S<GLi>TLSYGv~~b{KyIa
zEfNj0*k~Qs&xchRQ`hRu&8*YpMGr*^&>k!=4<uO7pp6P-#FO)m*wOrhVa|?urcP9P
zu$Cpwb0z275Z)<wr#qASG9c1_cyIn2A(yX|>~x>o5fiEu6Z106#gFb}W_D198O3r|
z>s2NymGcLHhG*Yz?pnM@%88)c4E6!vbfq)lG8z=zEb}Yva8Um@`njloA93W7uP*Qw
z>zuOx+9uk_f5k}qv0-($anc;fKFmkb@JmA--5Rs8-uuo&h<0q^8VD#aWUd716G=%S
zl)p1MJtwQ=PpvFIoVKPOHGP+`4z?n@%-e61(mu$ek$?P={WCJg%tDt_x%Tg0u!ND}
zkPR<5)7NYgExSi|538E@r+lsyvX?#seSHdl77@_=7qR&J7g5T&w9!I=*rkuvL0g{_
zQ=^Ggfygi+Sg@Zz&dJ1Ee;biyA5PO$?#}=ei#<H7z_Y;3NyNAVOV*fq-`pAibF)T^
z6S0j&*winTyshElEY>W<MHNvsW}2JKI$LDOpRiJ`EoyM{Zi)3Vy+gm4%F)z^z1wv0
z1~u9GQ}y*-m@BXNEU|uJdLtfaIF1%&^-CLk#s^21a5gPwv3%fJL^22Utc)a*2F=N#
z<BCXLe*(bd8TMN*yzeIHp=A~e4PeUM`g+DBM%5`5TRoX_jYH(^|M2!oh2S+s1QkoI
zqA$1TvqPo_LQ|5hafsU4V9V2*-%UXyXBYnS0Jc*N2T&N+PtCTb<d+Kt4qiV?)$H>V
zmCo=vdpr_bc%x_HiaE~TI0^7iG5o?8U?**KG#!^WL=ZFdfWct;SrtS&Z87${Gdb}9
zAjaWX0|(t)`D|#O$4x^JT;G}V?>w9w*g%FfD$@}wS(;I?sQ_7wCF@>lbf&hUzSvJ^
zbah-;c+>LZ(GCm-!1!hqW=>GUWH|k5x%v};;`WZ3#ZVo}J!06IN?Fyml@~NE0qFi?
zai|T4bCJMv6q`0Y2|wtXZ*(J&mHJ>{ygD!C+*DYSIJW<5rF$qs(jl|NRH=$8v+g?`
z^?fwNf2HCd9$51>H{tJ6QuEu+Z<)gdE}xGPlcjw!q(3?{R{t20h{QY>Rs1q5p+aD+
z`&v1HTfM%S-^6EU*j33||7UC$pLvm%;lf|t%%*0<@R@TI1DEV|Z2aBh;$#)Nzu*%X
zP9z10JTU^F7Vk=#(+C6t==9Y}XPG;Py<t~29Ed2zWL1u)X`<q{l`EP+X4)SG+S*UC
zRscUQVVN6BNbs%i%z#8Kq5Z@yF|Z04oTE?|OIA^YhB^z$axgP;4I6{mRWltlgo^|a
zyYOSBvG>Q_PXGWuXkdn;Hj}-D-Cxz?2gn(vJHQB6UykhyV|LbzC7rdP$G7MW!@e6r
zIQ&FyAGf#5$)<evGk@#3fbSVymG3$H^qn+A1ao=9`<B*??{(b$j^(UrCZUz{peA`r
z<dV9&iKQYfaS?y4cQrD^XL1xYThPrFoI7`pg%Tg_G}Zfa6JnZN2CJM@x^5yX-J+gd
z#HBU9YgZxpI1jMldtNdbc~yAJ_RXS~M!DU3X`^=ffI)rCSr~upS3eCY95ORP*$;zQ
zcxq-&!zBBj#@d>jGK;G35GhRXIl{!KZY5U7Y4k}~S=y+BN_f&~6Z32&<i#~VdpU$7
z`e*jWXc9XFlM0zpy)7e9$Rby2&`kAvaEOO|>#20Hw-KH&j(XCunA)AK<4c^Xb0y#&
zfcDm~Pai|7aomFW`~3J~H{vU|O;-^2Q*L5gy0H*kAqVlZdqJ(p6-H`L3Jt_l(axWM
z_?{@)YZnOA+OlN9By<Un=G^)Gw$xi76VRta+WtiFBRKxy8Om|khJKXgU5ygOB1*<7
zPA02}BU#PnDQU;3#dXopEPI5&q7Wr5k=1LHi67LelYPR+h0wghP;m>ouA&XNWukMt
z(@W2XJUFV=H*}$basZy57l9G3SWweAE>mjt3YKA^>>^4^h`5OId~SSm|78u0LsMw-
z>-j6*zz+nM=5Pd?NY@2eiNrA_DD-@u4Vd!~C0i&RC;I2`*=Uvv7Xrq2o0{yya@w$-
zLM9$T5t{a{I_=VumW>_I1q;W}!OxRmMG8sw`g^|ExUb)lHDMl{O$)U8w6LDPn1t_~
zsARh;&rG`>wP_(9pOl`4q#ij---51~f$9D3Kr8WO@KD}W0I<u*0I2?hWxJzEC|N<q
zYWse?&bkkPyK-m9sh^DPKvU<jkO1iDJI^)0@4KECd!`;f4vlSC&k4lqGtP^hLAJ9-
z()1bCYqB8;D^ts7np>7~`}@@5O$7x;_Mh6DxR$Cq51_|21<vAp8kcp|9Af$cZw76}
ztweIW>$rfKO~S#h_!w4){$05Y?Z>V=XoFkCo7G|jouk7Zwr)_mX=ADvuO_W@+^MN=
zPWv*Em4?1W`AV`AcscC~m*@zSm@hC9{Au6(_&O&UWFibqA3hd8SaQLz0+7rHxIZB3
z#Xjh=5GROtbFjm-i)b#L@~Cs;ETX0cigD6mrEmU2ru|+XU*hPuM>Pjdn*~eGmr5mG
z%tG^gpdbcQ^+-SD1X1hA`f+<p;8+{7ncHYyV@>6xW$pDmiL*+GNhD#Bs4fmp_eHbq
ze8z0nZ*>k51MVULE}Zp=eEs{+>|6lio$bKXXOBd}ZOSiI#I0U`Rz#Uzy$(yGPW|i1
zR94j%1R9+UF!GMIi=!)4F_dCaQ>~BCFBmOCS2u;-ms<@GlVBE6T@j!)ZR@N>6CcgC
zqI$Bqy<ZV1)Rn)!(dWc)blpTD9RwESrWf-E0vmTYnFJU8_<G-+iYY!FaF20%cKf|P
zv}<vU1=v_$i>v(l0JgT^9nLx99-9lO0S^UcfB=Z~!6F~3<JW3{v)RM%J>-}0+dfvB
zLB+b@9w@JDW~%&Xj2;=KPpk33(=iH*)KHwmZXUvH1JCy_$j25+&>YJY*Iq;{<sP-6
zch+(e5Obq;n<qHIj1FBjX2N>EY*0x<E!<L((OHM-;iDYHECtao&ZS`reL?F-m_fUt
zjbmi=yq7L}>yC+ZtmyuH#|b-&$>wf%bJ3=gIomc3bGH877R8@d^47yZvPiXMygj(S
zSs4`fM|oQkR5wcKgMctbp?5wM#29c?=l7vvknHXcR?c-VX>q>M{zj5>`xiThNbg~Z
z1xi>cex`Y=Tv{Xh0FXca?2BsjMl#I>MYVNJ_>jyXY%U_>6)=~J<Huw=G?N^y^A2->
zHfB<F=|70_L%eAW1*eZql9ZNW)rbd2P}pVHgE@Twk_hw*?=^MzycT-z1k{g_g2;ws
z4%>qZ<?FcCbqrFM+rDRCVfeT<3c9iM4o&GBLHw|x$!+|$2Tlp@lLLSFWAlam!odtJ
zli<l=;w&l#k#$cdlKKG(JYtDZ0KmEkN~LVMehl&5u@ts&_%7(XC2nuzsNyDba-HdD
zDvf4F0{<QPbE1?RnP&wThu4L%djIg4qjJ?Gooodg{BLK}vM8!{yAYG)d{tPd?phDD
z=^mu1971dDO%zIk%PasyAJU99<v3k4im+lqrurB#&9ot3Tlm&MSwtC8<c(CEztMj?
zYTqMsD9Kw>lu1mY0}vO;3FNJ(KLt)E{u1D7<l$CMtG2<+=uQRa2?=UlqU`&tXS^>a
zY1Ez^A;>)jDZZZYrZrVo`2njhg^4KsOcNRS`vXhNz|4Y`Y5i$NYQ$Dkth^UqZ9|%e
zOWA9~8p}N%hh4Q>Bfdn|Bmo#-FQlx=hTkgc)2G2JBj)Rqc4tIX72RHkSFS6^AEOss
z$#N(}QW-B(z>9u<9V=wIh_vdyDyuwaX$ID5Aff&J%A4UVUotLhk8B9_TXA__(TKIy
zii6Kmy0$5iDVRmYNe7Y7p6xyI)~0rRKuhYf4EsR`WIO>o5`nAdOcOhZc76^7mc09Z
zFCCpzIT=&^c)F%PBC=$!r`1MrlK+`%|DL%Of9la;h1)Dh!GfcbosJPJ{K@v?gH^0|
zA>9a1<u6G#E!D*0%Ld`EbN}$%#6Pr~*3XXL)RYLHSAH|#{)(m}4C$Mb1f9M!3F9z@
zat;1W6Rj#zEL%Zloe{pS%mVa4jdNzxF&!P=Q{*gM5Y}F^olq&I{{)oK9b(xuVxUkB
zh75;xpqnW=K=lJ2X@Uoljh%om9@ez#J?Q%4WI9&%8|4;MWS5}uN1Zr6R`_-;*tuM~
zf)5C}u>&xU{6|lf_l(333MaUq_^BA=39sMd3Wy)Tdl1{MGVLcO32Hoj$%xp(>FTeX
zn=YA7qdyKRx9`;?(d0|0<zZ5g`tjCjy;zY|W%72X(rG8vi90T>=HJJR#R<cR8W+pk
z`jtKT4W1z#>UGgW8jM*okTxshh}oH5yK0cp86N{9gH+J~oA!lCAH!Y@lEXdJ-+N^H
zj}YJQiV~Vvp86K;zpL50u}#<Dmp21oj+-t)7T62#X)olvRjr2#B{nm#oM0Ey(-c}%
z{wqTYJ*n5y`fkNmz87G8{woj-<MY$I_YP>?C1CY_Cv64D0-&T3sLxp}^gZYO_{Zjb
zg(R%w@FX@w=rQKM+&fEG5y6`SMy23e+AqZER6XpqGgiuL6|1%M>Rn1qd=Yw<;UKPQ
zS1>*`ggAj5!{#~2Ie`NF$%C82f(sPkgr9)sANF5j$?YVKm5e>)OAw|IVVZD1k<Q^a
zQa1pEzvLULRYmI(iU?`Vj;%g%*IA7g;-GMM@Wx=6^Y5jIT$l{lekk8Ef4cs5pzUS5
zzCZU0q|}*K0`ZZOgd<Yi3ac?QlF;h}<-W|FW{&UG?qw$Rr_sKW-SG>5PYoHRm*0>~
zr>Kxlbx&v;km!U1*|}gg3@GaOevL=$U>~scNUOSkUE8FlsJu#CkXe9rt(U)WOM>K&
z3rguGYP!s=v4CFqTGS|&{(bwSN6yDe?5){s|7<m*@Qq|OTSde!I<PlmjS2L7Sf&3T
z-u3V+S(p9N+FA*lHgVHFcI9!@Z7Bk$_qFd^b=fonnxtU=RtCYdClVG-2`gm$j|TDV
zkVdzZi>?%s>eg0M`AidW*>$VxDj*$;U<lqHX|<B|crvt)4pn$@1X;V4(nGUVJ1>_V
zwt*qdG(27NxI00Ie^kSWo$eq_NEUun(MGHt{`3`NX*oA&5_G3N_gk|(NC72(W`d}A
z`<qv+nbC!<Fm3h?V9C#93e9Mp78e3v1>Nreb8<|>B-NIH=r6`p&EECpvht7Me|VKj
zS09ibz&u~ea8fm(%CL5+G}P&m$7TD&E|CxwpnNs_sz!0?tMOv<w6h-s)s~gqe0RZd
zqcxD1Wv)J4%?*sgE$h*rC46q4+pN%82p>E|r#A$zRBS$L|2b)PwB2I&(TW2cVcaAS
zH&5CEE$Erw0zDwn+c$II;EGcTW25006VGBi(>(nOq*=G>Wu^B6E-Zap=iZ&JSx)Yc
z%wZ!@Qn0%WtbRV&Q&ztRXhG(m)~-Nv8)!W_(hnAcYw^pURQuD9fs6pKy!`PD3myo9
z9H?R_Lm35j{S8%+gpt)*0(UnQ<^(8%vv)}6yKlj|tMmr%+xs9u@QS*d3|ieG!C2=F
zZIRo#hK88m<@!VPBMu|(_jxuZtf_`a?P+HW2_|UKPnXoDBm-!UAuY9UDw^-Co~}i$
z6DLbflbxW}Vs1=~Typf41kLUx9(UR|Pv^lbx%==v+P6nGfF`~<w(To$@h8<wbU?*^
zx}5XhujtDNAZiKYMwQ8=r)KF&v$C9@3HP%;?ep6q0sJ3ZYAD7fBjWBN<`UrDPIc1-
z8tcKCeXHbwsyZ^1-#Sp24wycwV{X~cg=g${7=PKdPPv_wwyd2KYQFf^MN-T6$v*o0
zh;}s+FrSmK=CGi0kUQ=`JlE&VFYZo;dnU+p4H4FLo=dBR`id{XxildWuK)1ZTqx)h
z6NU0s3TaCK$Xyxmdxji`x!4Gu!madeDmj+JL5<l7UY=I|(wWrRDz5wGVM{U0v-flF
zrYvTYKd$~lm4v9iY+&u*yC*sWR#|wB^5^RM12egF5CZKD^ITZbCQr+}`-i7vB!iH&
zuXd~RC)8d;)#<kkZx&HNA}MEK-CS~1Dj<DyugvIKtrc=EkZ}!MIb&|dB!P$zPK<wL
zi|%U}*@UILxO}FV%`j9n*){w+$~O0jsWz(&D@$n86hIz*^LT7U5I|*$10!s=8yd~?
z5;a4Z8?&fd&8IlR=o{zV7SIv-3w=N6FUJE;?MbW3jnkvMS~KLo^dHT>evvZ_=c0eR
za9g3RIbSdYH^1Nw93;53#|5{~g}JS-P9gkf2b`4>LsE1)<BYRcSU1h*{Hf=^L)aRy
zjf)JlNpZtb@|GP?UI><A$;KYRbt5P8Sf}+IY1IaeKZtT@KuYrza@qP+r<FZzGu?wW
z2@a7!z!Z$G$>B1lMTTxAUUS-PdVfHrCvgG)NyE1nOj77j)eJVj8NZ!GLrQI9q9pff
zG4{=7tn+PF>e<fR(_Q$`FZ0~VdOOM!;`>(W3)SAg`Qy6o>nP7aX*a8UFzLFhAmY*R
z*I;9x^FUt_U1on9f_B}n_m}Q#Jzvc85i>z+;tc|BPc*@K$xt@T&C`l}W}L)Jza(b)
z-YvsToz0~K5T{N?zrT_<NUvDt$6M;0VhkE2pYy2L6nuTD_9!b}|H%G_l{KOj<8CFy
zc_YhqmC^avAl6NH9ePX6{HifWQ~1{NAKq`Z%cvH&e|Wd=ZcFNx{^8wlLp%St3;)Bz
z2Zllg=0?JE$HisU)hMp4h)kUuDF7IKHbtW~;0o90YGevH>UcIXFBN7QEj$)(`mmOi
zUenVf;EdGJW{V^f6sZ4H<N8yYWZvulYJhM<xqFeDhVd%O0AC&e6+#GovWrC=jp$)p
zR=><^qRB7w{+j*}V?fX`YuowBP(mT=nfElz@hNC&St7j`_XdEj$=I0_GJfsLa0%>>
zT|GB@5kh6codo$Q<erJX)=YJvM`uyJ!%j;cJUv}iXz?(HDlqa|fGjvQIRo|bcuZ4^
zm|kG+k}t^TGa`^P);n{6Gu=$|sYpNNke?0F#bV9sn`5+hfb-cfCiFfz(O(61=tVGk
zxcCPhQ6=T!dGAsI_;kD9_r1)0{v%ct?IzswN{ONx6I)OMmZMSOhYgc|RY=6<k@NKj
z0tI=gQpc^?C|6$7KRi#1y+N~4nCnd!pU72~CZ}zS6o~VeJbY>egP8M?&le#M31)vW
z17q8Ah{#yZahQ-%A11&3-kDm;5FRHmZ?Ot8Ym+aVRQOL)?sn%r<1qtMNgkw+dNyW(
z)g+b+(^iXwPxo|UCtKLIAk~(^Z_FqpE4?i_&aCBE7xpSy>o&8SdIiwD!xT@Uv`bCo
zElb{ip<@9qGA_9y6jXQ)jMS+k8=K?8HMW)M<NW1v=hr|G_M5nA$BB_~_D!aA=@Up&
zxZm_3A3oYq0#v!*_`^h03iKPNL7r*EreVCAHO;YRVt7~yi`DLpX?3U;4c-t@q-~Rd
zS@ETur3%`YS2>A?aV2+nkGwh-;^uk>XPdQ)a0>X2$ct44^EYZb>0UnqjFVM7z8PF;
zz>=K*GO{r5xK5@O(X#qE5Ty2P<3C}@6832G<1HPEsE|tTFnXk^po1^*j~tgvL4dOX
z*EFXeZ?}f$Y+(9zZXCs%Tb;9(e|Rf>*81W;0aUg#@D;uJQ^z7}!xNm($Y!4aC()+3
zO-12%$E_QsS9}i7x^QgQHFlHC7tAx$;KHZg)=oECU>A(;U>)LJ<do3S{;yKS0`L>*
zFimjJ%^@}Pbkif8+UU%2fYLkqk>A59;gG_B=XY!Pl#B$=8ACjSQu_Z#7_Smyk*I%Y
zrA<~Q5)(eA{SU7PiU{@aR9=8#!JWqlBbWZ;UK+x#)uUB?U-jo6-w^~A9+j+V-Pnee
z9Q{>n2~!Q=Wp6$AleE&x&R+QYC(zf+coysFcW!>4$y<yl^G1vL0NCNteGl{jf~B|1
zCWv{}H@2y_cb2fpElz7j6X!T@1d%)NG0Tj~xAU4y8L!(1XC@BZ#bH-PJE8DSFDkjl
z2%N|5P+*=?BkPls(<E**@H4C7O?nWa2(ud1UJZDE{n%$-Y4v*@o#KH6<VuNbv!`s!
zdHvEMekr1{1x32<q%CR`W>2Md`jWMR#^r@G0a}}kT;YnHv@OpzO&eGM*Gy<AhksC?
zgr2z3es38}&hftI0^dFkUZV6kRfW!)Br`OOFRsyp#-XtrL5`un;`K2mdH3Z+p@=wk
z)Vb3H2v#Vz)|eqt<}Du;iOB4e&FQ4<!0h#g+)^L;<p&)g>~SRN!w)+XE1HO9@W-Y}
zS7jSh^lN;3ql42f)60ea8hsP#Gj%N~b5uVy+Wt<7>Swz$edGrM?TMYenTaq4W!sXv
zPNHHPTcIns-p1%^eV*LzV=QFwnHRvN4<zmuq@H%?6!w3^Yjv4J99v#S7@I~O?Z0#P
zqh42_yO)qK%Uj#rXV32GbH8u1dcNi!c+RghGmQ11QSNq9_WmOCO^#Y^AHkOR9L7>+
z$v65s#z<;5A+$EJl&v{JzF6kuYo#+)7pp+n)iIU!bj8?I$Zhk1xE)J6v##262_ias
z7vp4wH2O$4nUJ~3LE^i_G3`|2fO0NO(2G}}e!R<;cDh&0|86zuZa;Xhd)jN6)C2zb
z=g^(GlTv3HO@OvlMY&@Q;FeOR8;xl1SBVt5)yc^{D$SaCQ!Mi~7L_;ueXA8M)7Z{A
z9y|Un3D7Vms(C*lb`Lt&W-k1d;m>^w#20Ad+zwfoN^gsjDpa{{w`dkWYcHdKrcKZd
z9%1^LX2@}njIz(k>pNn}KaNjoX}H%kA$8>I0jTsiMps1t?&f|sccxu;3i$PZ_O28o
za?7-sz91`!Yyd4vl1>LoCkou}tVf8lCYe$PZGQ>^KA#;b{km%omO>($my2X98i}#+
zx#lJV#_Ief4X*q&7a4BaArTsDLpMYL*QmMyn_h89@O>TqSHRY;u>=?f43}QlAsx-L
z>YhrKKl7<Cs+>xnyDB1%8%w=A&0Gcr?jr=*BlQSAm&-@AtYeAGD2;~}FK>uKboD>)
zXY5dyS7Tz3L5AejC76fJQL^`@;YxFB&+Tci+Maz;yPGINrKYiRigx)=E(d681O9Bs
z$m`Bj+y2#$NxjTik(COQ;dNan(_FmZbB1vWoE#jsZU3RE)4KQpUrMzdK(Ixoa=7k&
zJ}3|DhA+*&n^Ymwr=$I08Y#bWC0^T)uL+Y^2vRl(jFo>ywYE#f?Y;!@-_KI7R{+<p
zJNlX(u<>?ensMZ+am>}eTQ!pUX0vWOt`*i1T6<9GOn?Rb9t9#PAB<8MqMkyY9u`ZN
zx_=ypY3~`fAY!rUt-8OYghHL#5JJZ-1C-Kh*%(d71?#LG`lidM@a`>ISeL}i^QnB#
z*Qv|EKBR1*Hk?qqUGVPI{0ictvk8Dg_l4sSip8DGBib&EH=vAzrB|5D_zND9Vabnb
zou2Hgl9FO7<FEWu$f{jr1r0cJOX=0G>y&gZ+mdBlO{Q?J_{*i4%_C2V($~a^R*m|q
z3~AhncMH*>b$!)*!Qw(L*ID<gZqzM9NkQ9(^3-eWU&B<0kV+klhzLHuWTVv@G0ec|
zd<Z*)SJ|YC<jG0B6g;32B>a%@mm?NxANd&Eq@;&_I5v5uTJBGoz&ttap9KgmXkM&{
zl#~)>+r^U^<*~j7GmL2qgzyp6{MLZ9d-9$xk(&LWq3mWyj9@cj+C{eXR~`Y6x+khN
zCQgV}Fa>Jn+>feWF4$>?(Km<erflNXF?!w447}Me87|aZ`Z_$HyQADX4R|296`(Rg
zmW-=zW|UcQ9!S3z<f07MhN(T-sno8N*Bg6&O@1FAdNOT{G!jY}9><Df#D7N{9>dE;
z`W_WTxs02P&~X6lTB^yGA15(cU||WWj!m!uxi(j0mmm<pW6ntZdskz}2N2v1K3JJb
ztVNdg;*3(F?~xH~RX<-B=`2@j_hPP&S%)cO=3++j67M$w3N6cP-c;^YRRugg%Adm>
z=XTByM5+<=!D$^crh4Dfew3WlBbEKT(>UI5wy;%XF%gv4?=By)-%u)Te(dz+wnyIB
z?7|Q6ak4xNDW5%3OIH_rX$CrF1Z;>HRrS_dXs=jVSZV2kOnYB}NPdpYBNAkr9woii
z;A|><)e@`L*Ku6^WLH<724W@Y{(-?to7q+y$h?7e?2K~kA}6Hu=-1)^5x-hju7~Lt
zN5hH70#WI9O0dC_MltFj9DLVWG*uc4vEcpt#@VO}J<e5Uc5L$WT}LB|_3_b%6O|(n
zu}2M$Zg{2Zp7;_-b2ht`+$*+i#{RgQ^UT^%GdO)~s34Y3(BR@c(7n;51u#y0EW9;T
z%j=L{>K(yJZic;UJuJZtZUDQ703l9^F9}^CbrYQLu9S#^g2jJFq*~NQ8j9Vs4VY_&
zKVtsnF!c2h?zr1UP`K#yb1W>gf5xzjM$T|1&`Mz;{ywnc98+IRkpGKO5P5;Hj%)|*
z4*^S1P5T%~UXB`ju@sS=!&Dh}?Zwy8R4DAi|8U-IYnUz1a@r8#{Bt<T&sXZaGOgUS
ztYBWd|D~`&jFa!GvVwj<D$02&#dQg!c-%Rj<bAllp5l!fyq9fLTH-D8=~KNOEJTUI
z#!?9@gM>_H-l!S#@!jLp5Z*;N(8z83*S~}^D?L0I(6?YU1MLk`8~{b4boaSo+ld5}
zz&7Sfag}sA)H0w4nH?Kc)|qXWQLWD<n8{fy$;J~_h-zH48(cGz-qNLi*+=c;!dphH
z$zC6>4v2aPoL)@-wx^5mlu?HuUAy_?iFFOX`ZA{1#8fEmi$Nzw%Ibv}F#y(O<G~3g
zi$b!hy|6z=jbmLKMjXqgMVvtVg6I?E;fmr^Dr>UpWr1mqZ{=$ZcC_Jbd7aPK$5@IH
zlT^+K=O%tR`t^c(l)v8^SnTMT4J6!*oE~U=<d^qUNKmtx_f}sF1`x-q0M;bcIOra<
zlRw$u(v6o{!itZq2Vi46dkw_u#A@2_5^eZc64T;JZp`!l;VGoj$7D7zKh>Y0V$0Ou
zgSH^3Le(<yCcW4H;l*2NAvf_ewvXjYaKR8=K#4(a{{Z&HUA`U#Bw}jPY4g*VOPSh4
zhb=KdP|K$CpMMr~KDN-hrbRH$1I;xM6)T9`e&I5-HSA6bGm`TF7+-B$<O;RYE!GcH
zQ*0`8!astR`Q37enc4-z`^zW?s2J(zTRf^uaoUPB9tG0V8S-@;LJv-3e{HTlSmsiy
z#y{t`FG(Ld#5U18zwS34aR|TLt}hAL!Y-o*;@6EzE9uJ#1!?5Go5{U(rJUw>b9qI#
z3>9A740(tu;py5sc$3PQ(`f0s>7AQ7$%WoGG2PW}yG{*_wcz1n!Ed}<lG#c+L}ShN
zV$)^JBjoP~fg|oBpA6eddl~LPE5V$OH9GpBJGF#PUa#NwVkfQ4%WCLQEFY2-2Q#(@
zmx`Tv`%R~AK6x4aRh7282V@ezI^I0kE2>}m%K?r1{<i97<@3;<;y7kDz2$_RmLguH
zYfIw**njSLX;)N}(i34T57}ahU(t~SRP;lWS{hQmt{2fkqyZ%fjn(xbpX4PZH7TwL
z<85jETo{$VjDuFmMiyL2TZ;OkjwX)F((b94j?KXpWv=-yE}QI_LST&>&g^aHUaQI&
zkzo%R%LS)&`phZ#q<a(R<C>q7%t%T8%ZPYbLe&S{KfHa*$EiU+r2)n{sd9DPoUW`F
z`jNr7Dgt9TmO^zgH}69o0uvP=m5oOnU_$at+}|6>o?s(Rl>2&@he-)b72)t%pWZqy
z)9?nZ{adf&xi@M-@OB#Z@)wG!J#>e}F$N#1EfdN`Vn8D6ubwB=X2}-@x+s}~LScPt
zCO6g%MJsn$vNn)Lr_w?^f}94KJsm$G$PeM~71kIrQ{<^?>d&9ew(yPGS3e~+d!*Dh
zU)wR7V;L~Z2KOF36XIGgu47jU8{LE3{nBzMwm69_FjoWp-W}M1v=Up^aRSql&@1C-
zFII$12L$$mTv3hL*+doZryGBS({}KT>J>}eqo!+e?*3WvY%Iwh@z`Up$ybLAzdq=P
zk$Qv)$U=JKxUbT7m~%^x=Rx2{M4@87T?JSNou4UpY1pxf_9T6O3wH2~!Nn|PqbZxe
zYz>Z<XAVwQ5+TFKcrT>k*6)0xUp@D0N<muM?Rk%^mC;2%(Eh0SsRX1olSYAAn^9<I
zs3i+MT(P1V{To=QG^Z*?9AnlMrxS9i?XbK}KuUz~1RsQr{^~OzSBabZeM>EJ_N4FD
zbl%c3`^=@JeC;{?Oz~AX8!K<5+<zIBFJA&&7Y1mz)F@w0@;3&BTNW<qXMrj-gH_GC
zPEa1G7-H2lQrC0oMo-d6bIY)uyX&1E?eC<YTX#D1o!h|p5gphD^ByzzDIB4-NQ26!
z$PO18J##p$kKz+8Fh71QLSrCTEFCqpv~&wrS5noL3s`7|8$=LCxClryy&drPx2XI7
zk6qd@uUAZ8^FVn&FVH(U;dFneQ0yUCTRQ<^lDtS^mfW-#;80i{F-9gM&EI(ao)A2D
zFhq|y4jVGubnjXw8XfI<)Z~;GUF_ASq34KFbqVfRu-d&8x^HOp#C1uczu%FLBm<UY
z#^ALV7ij7G$;&ubU9Ry9h-6^6sW_mXJhRaVC~%~C<EjcYodg2e-AzY}ew29`>+)$5
zE*nIL7Q)2*9t*E~`7C@XT_GO`yR?hN3#~`3z(;t&Y7OeJp7dt*OzUUxw8|}}t<tbl
zUo-MgPN8=;Uxo7isd5h${?(yt9G_PPxT9%h^we71AXzqP*L4Cb5|CHak56L%;MGQd
z-@~SyW(8SkEd+X{8h4R6t<7zG>j>v-Z9C)R^lrBxu4GpIhv#gvnzFTemfC!`%yWI}
zPLM^KtnW`tj?(DuN|rP_xAot=v0<Oae!+UOh-H9YM?uhsHE6FU4+s!q{Y?Tf@L3cl
z;`(mu7BqBh`0ZDs+}y~yNzxTHAgQpDn9m(gAYbl_8N$47T?-!ttI=sQ6&NUdLRwjT
zF?;lZeMpqh)yalS<^}M*co*ClQ!mv{&%vhhRAbMM^#4dY>#!!@_x-DgA}P{RB1(5R
zC<02y21<7`7)VJ8GP)$BTVkUmH$q}`OUFix6c~sg9iQLx{{H@k<KO`H+|PZT*Lj{V
zuq<>GM##{?LBcP+lZ-o|&x9>jvuQ!6Ar<SWBksZB%P`1Klg<SXu1{j|ir7MyWH|e-
z93hxfTVzAjRO{5nWV@v~9im7K&sgKhoVO<j^-Yn3UQh5y8haq>KUY7K(fJBy5=L10
zR+tt7PsXMBA6_)>E3S2D&C_uV6L2TQIoYph=yiTiM=hczdZvCyEqXTO6O(rR)s$ba
zMi8NBg4jZxTJoCMuU-x*vA;Nv1ffOAe-4rkK%+*YYcZ2Hp%FC7>0$BoCf}sdTl?S=
z1C<HjYk@=ecJp#XC7o-KSdZU_Xp7AUYf`T*Db)_C69u6D;JSZ>64&kB5gnxGfyGD;
zxjwws%tMLye_cU;Kicy1*aVO7KGIA}u)GFQ_clzZi-mB+=@879N)Ech$D9j1lgt%S
z5ma(vLSK}AK(O7W+YjPr<nGbVJ6G`3UYZomDHyXa91ll=KHNw`Dx5ASuB!-<7V8ZS
z(xsv;9?x(JV?(*Q?~Hp6On6jRVO8KVYG7fqiSJ@d&@NwK9Jp1>)gAlIof|!HhA+<y
z%l+BP^Y+K<S;UU;X!7;XU!`<cLIQgLkq?nxC70|!oJ-;<h`kag?L$v1q#?N(|62<_
znG5?;8=LUyXmzY%UTves+BJ3w=w?7HqKcvV&4FHPR570%q=jt04cPKY10UMXswCQ}
zq|5Ya>;<sx5ge`R!xMll#qdwD)l4G>X3&SLQK2o;RiYNe?ZMwOR72el3`NFv18^wg
zr(z~6X^(G)5rENES)+m%`vGc9z(rMWK@u_78Znq~8$T_oCinVn{DjkjhtmT(k-f{K
z=*jlnzhvH~3Q78}rid5`yip|al4r`-N5v3sD9cis=%*C%68GSt2e?o~+p@z^g_P40
z9$!J2AHs_R$M$=_b=~8i9ZH)oaJwDzwX&+iw4=5dar#Z&kGJ1q+VY8Z#<EQWhp?H+
z!B+0$I9X1UKhJ30u7V9jAupRvr4|GHP2ZS53H%SZVj#&#B6rm$kFxAYt8;-$-9LuG
zu;<Zjr+*i;`7l*A<KiDFxZ?9@9yQ>MNIExrA80DtXwaD}&7@siBi<gq{#9YS3y{Dn
zbAZOmv4P}uul<1$%{qcdXkes=fktF_)Q$>Re<q?Ql)N<QbFFJ!o*)S__5Nc;%qa6Z
zGsN+<s43xXw3QX6iteXmNyC|*PTqt;y;Zcvb~D51jl1d+CwsfCx*7bZtJ(R-H391&
zb!a=?xa(*yB~e_ZUaRRHy$(Jr3vX?piJ3uYrh$;F%~n7>WdmGxiY{hBa;a=Oo&re0
z+zQt;F~8?7+CvEK66J(pTp)K@0!1a<FD3C8U&jeUAH2=rYBAFU(7<2Fzg|7Q;4%Jf
zbE*AO+%?&KtW?g5BF}f>F;hv2V$1_oM|JdecKNeTh~5;1Vwx7k#-C<@pw2;bEdacp
zUL96!>~u#CHTI?j{(R?wpFwso0(}<`*7M1;-|Jipuu<q0uG_8$55Yg3JkS9|0}Uw`
z8`cOHYj^~=3Em)Qc8J~jI~|d8RbUD%*By!b^>1NXrrAOuP$r*j^HVi^2U)tL-Z-%p
z5TQK`)=)GT0=qIZ2(zUFt?-FuvQaAwhbS+oPApn3Ls+^}?bkz~Iv8j{S|FHm=Z!E}
zYsKd9FX+nCy;(>%z9O(?oU(Lx6+W@0gqyS33leR)|7o+p@7n)1Xwe}exd)WmlgPsv
zrhKTqhI2uF%+Y#-JLmvEgC8@J-+B!c3A)oXpgmhP!}%xTS{d^XE)g7`s(rS|pHMyE
zOmKLfnW0bO8FCreWGan>lmA`xF_q3R{_mwN_{=>V8#WCj6NKp?3HG=9KxMWS;E&^C
zOfca+k}=am@~Jm2SMsjsSpR7@_4@MBVy2A2&r~sbSm`>!oDOKl{3>MK?R~@DYhlz2
z5MWBWU-mt7S>0oPpYzT;Z0==Y%erg*a|Oy@JQDMCz8+g^S+}xQ5F&hu&wpy&D}aYH
z<8kS)iRmenNXe!8`LbPMto8zDayEkZq}nt<-naBBWHqwo7*{j@6pl|+9Mt6d-<`JD
z8{h*Pdm|>!6F*z-Ttx>gbedFg5@&1>qAc3~dLm?BS9ll5?U{Xw^m#2$0)hTWwR$vx
z+gOSToi`=UM6LUoDp^O;CD!5&{}uPPrr%(3i51V{)&G(R`x$2!q2e;E(26gS%|<MA
zHd`WKzCIe!A2cU~Z&ok@M@TJ+PoK?(e60q>RunqnyUglW@w8mqZZl@=1*2Jl<vwjk
zzX<!vZse)@)4DA848^D)EQ6pY%;C@92q(hWhc^Uxk6ONIe=iwcZ<?dkj}!R-B*bIe
z5Nc*9FmFp7G270gg#X>CvUZ18BwpGf(~P~yK<v*qRfQF9hd)d~2nmFTo|c7Z!LYl|
z_sK4Fp#CR<B_<iZVKBG1*I%pPw;S6nI#t6$m5DM@Eq3Ieo*QIM)j7KO7`>#(^H7=g
zMc-Qp>KlqtsO)5>yxn}oT-e)es;cQ3;inU#m5_pd(JFc>=Dz!8B>~#jxB3?mJ(`(*
zgn*Acu{7R@fEkWB?JNnxlqrnMRe!9}Gv!SVHz0(4E&6L8)i;wi7%v&mS!9*d2K6r<
zz;SzTpMGvqP6GX4$jys!dPBLc;}7i#>bMz(b#Ltqnbd+0Pl^Gx^Ka8lyAhRLH;cq6
z%ET@1_&bDq9@xpE*P7})Fbi0i(nFOduvV97mY7BS#b}PYjpIIkvK}sL{83F|nSpsj
zggO05Fzo~Xv*V`~Uy9n9gNNfa!Z><whAymlj|^KYKco5N5nJ{w4IbP2UF-%dHlA)#
z%H|(yghyC%(<0e`oP_I3Ai;KBHDGLOL<7IEvtoZUWT5$Ld)Ge~0+-k7->xI@)&(qU
zDqlCd8FvC&eFp*dbp!XZ`O#WJ)Q%-8C*3c~?ay?5*~^I7>wplRaB~m;y{{mf(|T~k
z(W&;@fJPruwI?!=XPJP^rlt0iI_s3^7gvo?kN4-^CLGY_r#wwIVX7BevQ-C(u--ly
z2U)ZNFi`f$qD;I3TIq%52-(nRf2NqVh!K|{#Dw3Ufi0o5e=R$uxN?N36aO}T*DOJ$
z!%3fsuf?)wm3Gyum^R@iesIpjB3o;|gw|IcFtPvdj?d%4pG_?#l1_w#lxVy%5T#c&
zj%eDif-qno<Y5@2=k;EB;QS9zU#cDv6;PK^4Yxjcja`Sl^!OD%CtXB<_CV`Sya}RH
zp2i^hZhOA0{Qp?6vcMSQ|Nj>RWiV{#KTe^Z_hG@0?2@p2sxXuLxZ+MsXO<2c?IL1o
z2QyzvB_Im0Fl~r*f(6cCT86bmjhEBC1gyI%HQzBV;#w2r?@V{1qBcQsYxHlLe(A+v
za~n-};q}m(=={fs3LN;|WOV;{?R(5yB5);&l{k7KyP9R+I5XvSzw@uc(Rhn#^b9H3
ze(RRzS@&ZQyW|-jz5tLidCoj>mA$+<KBn)^t<jR^#4jWcc!~@}|FQ;`DinLpP&{nE
zZnDt*G4qN(?tRc4sa@9gg%<sQvs+OdH<LMDBl?|VxN=AxF8NbVcZUN7yz5E@Y8?FC
zOm%nKQ<{J7<i$C+jPjAiRMI+pm$f$pi)u6D#s(rdFjPN3yNyQdx1@fUwcvrK-Okx5
zQ>Zhk8F}4lorJUf?h~kR*zF*ipkSFlf&qex!N5z1AP<5ib;IZPud+lYa)-v(Sh4fA
zV_a1)+qtRMxecpaj{N7(qd*4cIo%To1EehhLT8uuYHWF&6vCPAcTkvkpI^b~aSGGv
z-#>!}q>3g}e(|#H)UZ0nMp+Gt+O^3Ogc+{Fz#CW)amzPnPFp$80$5iXkdHLa2Voz{
zSGR_ImWlxB{qL0cGT7^rx3=@jlQnOPlJ8y#tpcnXmxzpc#i4b+`XX7T=9~i>qHY4l
z^-SF~p%xOL+E)tjrg|tT1UP+2P=)E=rfM4>^{~_D76kx}tFl)o&~-cX)0O^aC2Z`)
zzBi+XnjKs3bEds~dmLz+iPZC7tC-i|V1{xZVQQtm<RdkeW}ey%_=`tHf6!Tc{7c;?
zj!^&YI^aH*RbduEN7Es|^`{^JeD5!d7m{QEbkNhOr`JkajL*ZfxkWn*V(Kb<Xn9oE
zQtEPy*%n%?TK&<GUa6DgC2f(bCg-O8C4HvcfoD*0xerTiD(wZp#xulzC=|5|#G)8?
zp{9DXWbS;1#>bW&lFo&Y$EDuQuTNxYhp2vo#(Js1UZP*~t-5hLYH_;<i(Eh6(0u&)
zP6sVr`6@H@%*Njnvjlh0nlqNb?q%ldLdvz-rj)FFSYD}O$<TQac<zWNQ&Hw&juz-7
zF2i&eQEtN3)AN2SM^O2tXwrt5#k6hS^OMfi8+ih`G_^-rnn~RR!S}MXD`9&9)toPf
zZ5RV+;&0l_sk^C&Ve{rFpfI#Yyj@pi<%AAYdMH-2TWajXJ&N5V0^G4SQy~id<Ph$^
zeiq5Nkp{o(>StGjk?12-T$5#-vtfso0iCv{vW~+J=*QCh1x0gNVj0Q3qD1OB@SiTS
zu)Bb=lkxQwRQGX{9N)L4$mp#*vatTdADp^Un)<_0Z)!6{U&|lEdRntH;6}A^ySXYL
zNwYWyc%$?wFb@~vmeNhQMBP$Xz;kGi9{$sYA19mVz?Eh!f=OpL_g+<g5r#}hFs~bb
z*en?H9F=3#Ef}u1<)u87r;wW9o@f`}#mK&m&Q8hQgsPd1x?3HP*r9Vz8mc)ktDaAf
zpK=QVcPm^xuwym6KGV9N!^>4PDBn9Kps*YZI-2j}%qG<9VZs*=_;2kZr)XO){B(x~
zF*Av8$Y!&yN~EF|&G%DsEV9#wq(A6MiUj?fj@x+)>@kabL;wvZsgdcF7WhwVj|K9r
zmD&Uf@L)jc{vYmIcfg%B>m?rK()}BKS*wk!j*W}+hzxO;>f^pwhV@Z(%@cS$Q2M*{
z@*6z9bG8AHmmLz(YY9I{kH@3lg*{$5xS|Lvad>y5=t??6<whYi=@GsTYp&Q19@@6f
z!U!<oLD1rS-dr$cFM(-AW?13=Q_pj4cU>z0i<>IQJYCgIaA*5xI;q<RCmKlXd_Er7
zMSZ>53wZO8gjxZ(sMfZ(UVsEziDaK6Tbx=2Pg!|tXA?Kw>`KjMs#|{mrfI9#U^UR6
z@GdLJ=(OtowpIziDXP=#U+NLin`+7C7CJ7I45!h@ihRZNF#3g>T$ys`n<OgG%iq5+
zeK-G|0KK4-Dj=UklIJ#3b<elLTuVY)u+lz<Z;!{zhljxLX@%O&D>cDSSyXbNvFmjb
z-mKxAlq8SdV3T!cj1=#44xa6<@2Y)6oNdcOg=+QQP35qX7+G83UXMUnc^oXA6r|sH
z6k}C>K_M~U+T?I4U_H&DuMUI;1n~BTz1^At`$?k{8ewrwkLy&|-#8mJ;CioiX}>00
z&88Q7iYXI>>2VqwDb9b*z=Z#9s{56Uvh3Am#<>A`RUU$v%!<qAj^<dj4}`l}j7QH=
ztrm@OwS&MH!X(7CZ@-uHe_SC1X-oqTFaAZ`TcKv!Z%pJf=9j)0xIK(fnZfEzS8XOq
znChDbunz}TngW~=+_pQarpPP7GyuIt@a>!S0DGn>M}cr3oqN%m*o|Lpym1Hcsa`3s
z2$&;|{5S3D0L!XMtO0;(ee_xK85D)C1w7C(Rh*)eGKDH{uKEla)l+lVLK{na8UsOd
zeIMrjg|eh>cJorlEIAefSSu>Wze%s7mP965JnF`1TL~+CuOc_b9CAR!KS$xi@ENet
zxjztO&Z9B#(A>Hb8wFTo#pB+u$G+p1X#z8zD{@`g?I-R@7(h8BIY{6ffu%<|S3H;)
zUNZ1Y6Znha9huUBg=1@mji5<X+x)XmMFEGMmJ+w(huEsbXMmS{%mpkL#7U#U!4bPZ
z4){7yF17mg>-i6Yx))KyeD62qM$6)-<kf8}%6r5;zXNw)+2@eqs2>UmO5)q9BdWVO
zm;3Xyg>vt!Xx`S9L8OgmQ2Rx|y9#{d4dg$V&ck!xX$12B1S}{9bb1*P?F&2{w0%FM
zKVsqY2L*&+nTeEzkK4e}x_Z#76WK4H{wRe;`rPzGhAsI~2ep@$gl_i~z-eUeG+i)W
zpkU4cAg9t$wNF_y9RknXb#eOxLaoFKG&Vu}z_j2MnfEcF|M3+C?EO_61@ktr){qA}
z>eY5Ox?)>$_Q$BK5f99=ZkD847|xVJeDf)!3W*zxZ7}*+k9<gI1{?YD7_2E2@nbD>
z;CDsBQ(qqg(u*DeP(KkKHfMn3MJU_Yp_hC<0IXjD1S6ncFBe3Xv4~cDUBLFIb+ex^
z5U+_W@)3B~F$i#6{jB_ZN|E>-FSnn6q2EyV8qTq25Lrb8;+sAP|C!oU-K(O8^gNzx
zo8JJ-d*S|d2-Q%JwikjtLIXbnwcFaZBh&oe+I~+Vh~FVb;QL?xf~chwKk2~1Gel}-
zpm%bJ@4tK2H{J0gSV1;LZX#1sYpK+TiIsFBA0DNSN=8T4=i%1L0~_}o(RWUz0zA56
zhoVu-^xs3Y<y?$-nm>7@05?lqAJ%Qgc)@p~cUOe96<67s^S6$`vdCSX<8xVv{_D-2
z@8~Yp{03Z2FJ&TH2F8u#KsC;1!OLibA6}T+lC!YvR~E!gYtAEI-g#h}-4Y<<@UULf
z6Uj9ilVr`b`@r`~=Dp0ML&03qu(qiT$+DVb#a1WwF8Mk>P4yZYR$;R<q%`3y>%88t
zt%RA!b)R)#`}{`~Fp#AllUtTWvjF_lHdzk@!?aE2LdzQa?f1N!BsvL0vMD62A0SQ{
zQ3nmgv9Eljo~)yc?gtPcs%k+D&)4<?qJGX)ah`+34~nI?s5I;x10BpRtjXpuv%|5Y
zG2hj0+Qv`AXCoTK0+J;eJ#uB8i+4q@dHhLO^PeUD?~cnCnM3(9NFejPt%s>yMlrd?
zbfb^Mj<NSlh|XkiQGq5dg-WYl$I_#Yk$<QJLVr*!Wy}17F>bn8ym3a=4e*JzoyiI^
zooNyF6Ay7sMZZWH93z8>y@NJi@ni)`*P6<*4dLD&b)d)5!$YM0mnzdB-=LfycK{GO
z(~`HL0Ot9mv@3!+j84kA!IboN`b+*QO0+6IHm>fR`1}<OP@J&hb_M^CP*~{v4v*V!
zl)3<KGrwX1@NL@M(WkpAC7wLrt>gc5#{6oT&#YTnS=>43_w@bqb)F!n7$WH~j0@(u
zdo{{D-9Iy?2-nFDu%$P1Zz;QkG<A51NC8t2#XbhTrqz&sjHy<Uvhx0!>j^Y^5XgCj
zqS(pwvw!xwqM~m;%N;Km#MO)e3jd0Lo$&le9XjhTH!cFyZc)JY<U8UopcStnPj6}D
z%=`&-hwJU$(GnTYm~cqDidiJj&Vu#5?Y!D<U|ynq(n*k~65vBi7kkF)NBoPwDX#g^
zB|vz^P?ic`EU~HSIZ76=|52-shhZahejVT~i3ENhC{ttl-yQuB;?Ib@$MpB{im!{k
zLO{O|sO)F|kf60~mf}PO&X<Qh5~mf6PJ)}DrYY968_8Yb@3^>%>U(%llf@jx&M#Dm
zX9;Tyv1LC86@CgyO6pwTwoQImu@v@Xg%<~v+?wxS1icDhvz`+V{6HS^s8ZyUan`Rs
zocq$@>BrUk2XO0tA!7KAl<8(UaMC$QEV!S3eDZOZ@E@-?_l7qThIW>L@X1Jr7*4b!
zBNfX|#6z^F(q~U7a3c;dD2G)(UA{e)&48_e7f~#bo#d#x{XZ?8=|pa^oBc5S4y=km
z3GqTy@#)2Z!dU4ZY}op}uc@}&m+NOj2@|XE;vG3;M`ZtRK(Vk$OC{@lnOeQmIHneo
z_o>Wo{_&PPkLWZoZm8m*?haJ$@PuQ$o+w<3x#bQGuZ)K{qE!2P?_P*?QGpV5jYy6T
z&uvi5H(Z)i&HwHU>dv;L&fgG8r#LXYZ&JYI%|p%{sS`!yhJ3fRv0k_{#D^*G*?6Qp
zq%4teMh-Qh_SckV8UA5ApUk_Al{ZdK0`}*yB<&<6lf2qgA@Lveew1?zMBV=5O6Y?%
zwsH~@{)3tYZP41VozOo4`jNa%r2GtlOiH95c)W{}MNb)B6{3D`MbTbKnns?3)qwK8
zYbXm%*Lz6z{cXbqVoqk$%y(2Dm8^8JKb;Rg;<O=o*mtAdLqBI7-P3AKDVLF=dBYJM
zWXdL+PzmcYfkWh`OZ5w^$V2}F;CO-h8IuE5;PF-Zt<(vgPuVi-{CoDUyo<(Jxps4e
zC5CsP3XdgK^jjt|Lo7EMhbmCKq3q<-a*VI_-|<c$Td~p)*`;zghG=Wkxw|RV&;IX@
z7tufdpLw(pTap-xf8&rjuxpnv%P3H?+wJd~AplC~oQ#<l;BgE6`ISU%G_30_B*4ap
zqjXaS7kT#9^sPBBF!%k3dv5J6{J(i)o_%+K-9WKm<n0zDCQCb2I|SA-uRh}1HHz%@
zw$Pa_5sq&#RS21y79WgnxqSLMpca)@sOgOkojrY^Ze8VG_?V?Q>ut!Crvpt!2s|tQ
za;-=$!{d{?tw`;WK&;oec=<MPkFw#+cWy)`(!t)3m+W1FdotBvJ<A^+@s?vHEv7`h
z+3IdPnoC1<W0&+}2k~OSTX&8CjdQ)sK@}g{7@h%-E{9k9ug{==Tk^D7UL(M3U4uf?
zTJ~n$B(%yM*3IBc2fX}%n5gucgf(zca6kP#kL5tg7p{L?54Lzz?M1d&{1vbQx+i}L
zPoOlAb^AJ=^ZWq7pcK2b1@KAm+Is6T!no>){PZPBZu^p1+PYf#-Nz$(^Yw<>UCDMN
zKZ*>06Bw=v%1wKbE4c>NJ7MSNUTD4c$vHq}i$0;aIDk0Qeq4OI)C^HCaNE7NM&7Nx
z;j>-j*B<lEgr%iaeJ-wX^OmNSi#aAY9bDC|>rZ%I{Q}c7wLXt?J89l-;_zm9YOpkw
zNEhxkH$Pwx25tGSELOYUZVSTH-d`$1GY*R~Q$!Kn!A2cZHGtEqOZ)llKQGqxToTBc
z+|>;9guW*DlP$ugH$%6r*SaR|-pqM5@t?~d<kvg-6JBO5YaYR+@e^cocM3!`F5wS>
zB9);_|GyGeRepf536NjcN7GHb!sp?ze$Fkva>lS6=Am;u4!Th7o7S`9IZKufjCjQd
zTlM{mN#qqp<0Pdk#NAEVLn}G=M)kK2R6-XkD8GWod!ISL>Q)aL4TAmgaEmad8+3Uh
zoH4_2)3u0By84A6lS6BS<gcSd2}!ET91o#<rory$6_!n}Abw8;Bbcbi&n_jX>Z2Lz
zM>gGAksYS^?t3c&s|X8!5dehCuzkTpx#xcXQT=_iBr24fZl{xm#MZO9TjlS38HQ!6
ztEKhyu5~y~KqVG%-3!1%_5k2EaPdg2<rdo+dvtEQ1G7zLTc;o1eae=KaAL5+$Y-i$
z;ko?#umUOPrxmI^z5-kV3<m~14oO0M4a{vKylq3kYH^Z%yC>iNfxpR3#F;_;{cytS
zn6Id9M;XELEyVL3_21V5G@QE`=#Wj2EQ!d50kiFtHD4(Cl=hLU=$kdU%4&d?v;#Ne
znigPv1c%$m6&CQwefvMzDJow9Th-Suh5)kXup4fMhCil2GNjg)Nm<EalKiGZaIY`q
zm-sRbyQ=`;ET7%%2oi;A-kUb_IK_qSMadjv&|jCNuzyIdZ{T;)y;^VG{U!!Ur>UFQ
zLY7;F${E5Q|Ka(0z6FS(Q5~dyayQjOVJ6+-w_Kh?*@8PPl5<txz8L`N`<U+OxVPd=
zt4m-}Y6|!I|6~n=W^L&)Y;92deR(b@WWz`KO<#H%qse{0K<<s*0kg3)od9;0qTHS$
z_ep`w9&6v3<R`+H{PMY!gG#pzua-ghoq^NSTQ(g!eL7)Ej0P?Hh&{>xD%A{JpN&_z
z9L7QGFinkI&#bk6Q?C4JEr!!Wq*+Nj9hF-S^LCQ?y($QgLtp@tbcR*$HZoF_dcIBI
z#g+1Bcl=*&`~+3VCaZH{Mq&5(wIkd)R}-%_g)S?%Gx-$vfeBMn-{Y*PCmS_oE8;F=
zh>K!XI725ZWDjiD@I?Ipw3cL7)+W6Pk8R5ecLnYqj52-q303+zXp*@6DX#EQ>VA=9
zbT+TUc)Y~ai5!CKu<m+Q(i)RZ79*YDQGegf`FO;Z51u&*>@uHtzZ5j7(wZ^3Op#s*
zxHITJS~RLXid`OF87jXVT=D~vcY($}dBScCA6|2Rm<q@|9^ycpu7zLw0zEPWo9<)r
zz$XZt(0zAX*NtGj*--GwVaIa>#({^^?7JVJNE>u8J-a$mWD37fHu1>?C7|i1R}D-;
z3%s7Dy-{?h%R6)*_NI+_wII|g&~z1w@A<Rn+*06;cv{iBvxF%(eT9srOSBJ@dmQPn
zCKQH??>YKI64f$7wuv*!o|XjyQ@~2z6t2~p<&jngo40GpL>00@DgB^+XHu^6QX`Q@
zZ25L+vNDu+5Z`yzbrhao8+<#z;+eH&#Yw(=y<(8Np3WHFWH=-_6QU{hZ@Gfi2If9q
zapf>nn8GY|B)jFw;3Xrt>l`bdx_$(F%hX!#RDQooodaO%$Vumqb30HUHzd4~Bq@NM
zEkV;igk5(OFYS66owN!crpuzsoNR#v3vtwk(B+^6Cd?Rd(<>z`r5N{8g1*t?V0w@L
z-SNfBNaUv2I4+n`v^n-B)7m_h(2>e{XR39UA=!`7AD_ytl#zB^o2;(MT1#Us{T?_v
z0PAA<+hY~@slY_e^1`6UI;kGrr2e?Q${@=auQ0-~p6WoHWXgXbWlhT!8*uo>K1tYk
zIG}h{fR&s*?l&qNWfBgF9OqpEO%wZIcfY3{$x@B;8@x+YVOF|scETU_FJ&k;0=KJR
zMftfUaMx52rp(6JtmwNXCjZ=27-jPUg37KDU?qXrywv@-1^f_|^KyFj3G(Hqe?B-a
zK~<MNpDU+d7)UZf-1Dt-QEWB=em49Jz|m`Q71}NzcGySPYI~O6O4Vo_peDAp>hGkS
zL)D&nz6cgK;5CVJj_}X<X1R?C-~npNG-ze_%Gh(;={655-EC(hkVI3<ONRX+x-+B~
zPJ^RQ>U!l9!nX=?<bnZDG5Xr6vzoo9umIvPU6N-!SgR;0@L*0d@(nAZ%3Zr;^eNjv
zO#ah^H4!SpEa@pGd<U=Bk`R_##5;^YVLo#@RUCk*stlWJ`)Z-u_`R=Y<77M+L`CwG
z)XZ&h5dImE<cTEss3`d1BRS3u{I@-GQ{j1d79ExS(`3~>{p=**7uIHODU~EpR$a=G
zGIuqnd*WTxy`2kflnq<Kq*}*?D_&agG$J7{-|WdXx<NqX|7ZiII?9;OHh*6Ev{VFT
zCIhJizK<5$88iAMuVvRpV<EaULdw~<*+C<(x98(wgH=C%Y`(n~6(1@=!a7fPk}Duw
zv1)9`m=*#`w78a|i?V8{69BFp0rc7B($7d`@PCQDJSa)($4zaTR|hiX32a#pUq`qS
z*CNXT3~#6PGFj*)wHzIP7<&;XC^P_#4xn7AL1Wm@v`#wi13{?&9KOU}YFK@7Qx8ch
zh2*vCwGz=s9iW(4%ZlvHix6fp1`8jA6XuPG%Ad$SObf&#w}Pn>sJ-x)I&df=aT?sb
zuF?q~p{|n6HQeAhE>Edo&)vr6=AZDyhkpGG@Qw;JWD9SXEhY{cmC?7=Rv|=b#aCff
z;Rd5qkPI-d8<C0cVbcvnmV;CqnR*;15(wCePlWU6@;A#fV=OByCc_iuN>a*?{wTV%
z<moSTvBtRcbhJsnac;7ho?*$@iM+1a$#P##_9~e0h>6q7NGOE*iKV(D+MU^wmyGJk
zUiqe#)oMcg3Cne8<#rjYBY$>VbulFE`q!coC|jb#h&sXgnfX9L;5YRTCU<&3$t^b1
zpO9P;&l8-x)P$GrvEmO0g@%Fh9=={m--OGk%de~Ys_*^p6xtJHh2{#6cY%OVKUlk;
z8_)UTIO-_MOnzSdp}-=YWiFyQqu>)$%%ipb7KwEaXK5ewSSlOPk9b*62RtZSjfE`x
zA3wdN8y8VLD$M=MQtS<yiK~PN4x>BDkZiy~V1dZLbE%qhOC$Oz`O7+<Ntl~qifd<d
z@e)+~NY&}Df@l_v0D-vPjWSqoH+C|c>15JeIC>a%nDM(l)oc$YOC#lE`T^xExCv2{
z8MyqKf+P3HmS+xlCTT#S|Jgdkoz!ka;1Csi*#Bi*X4~>}BJcVicKSs5)aRRTJxz{t
z7GiY~Y&-d||J|7+?-6L~P$0c(96bbtuC3OgD6{)ZAb<<AJmd(Vl}-<v074?iUUSuU
zPvU+<K-NYM-x}Ro350_yH$n+X0=WJ~aL0cPTjf}K4G!=;@!#ylytX_?g;5_Mmw?~O
z6Tnp47s|4qQLii9sK;3nb1qSnGhK7Yfs}~$=Td+^v|Ox=oWa`PaZiBkM_l8>oru1$
z;O^VH-sy9+N9vIf3OAeh8Z=8<!p&lyfn7ucC{KM&CHU=qA!nvCe0%~&s8pm!oGVZ%
z2X^1-{F7fl&7B!x%0)_wM%KB=w1?%LzPh78O?6usx~Du=xb#6itZ@3EZ#2bxA;`^m
zOZJ5iJH|v&mEnbF1SeSY`O`GUH?E|Q;BAPFo!7xen<3EspBmKnMv0w5YtptqZgv8$
zPOTnm2LPx*VIGaYFm>x_r}%0+5pFV%D?W`rD$kCwhZ$cBHA5;`6AF7tfxqxKT;<PY
z;JRwu3$%cf`(gr9&*)IeC=hCONA|Db$(_%D*-}vNGHb5GuFENoT4G60=U4g@L~P9?
z>j01BUlGQhYp(xl_tx8ZY#hA8mqIo94&3Rpj}ktx`f!cZkRE-$a~H<~dc2l`@G*T2
z$rd6rZ5U3!08gFdTNPNy?L-7t*5Fk58!Zg;dSwqanW#tlsj^po&S)B$J!pNy?n3Rl
zOYOz9?`4Y-FHhDQx9ukpQ6BPX=E}A#4R)rA@@ZHYVS6jwgyARqhTSt}ko`Q>8YxPn
z#A%nwaJ-~6_Pwi2MfOnjC^8_Ao$z2mgDv^>w)?@@*mt|w^?u=Ru>s}FRv~(&L$OgJ
zHJr95b`E6VuFYOv72Zz-yF7E-KW9kzCjWOw(dGkl-?I)D8vzv*EJm#Miw6zszZ+59
zlXtn(Vzqj4!s23E#H;pQ`=(aSeVfg48xA+3t&Cq=rhN=@rq`#u-%2XiN2*20<^sJ0
z+-~dn)V{xFj?Yrp6$YrcmeM#O`aj-cUrN!BJ>-$JDRoKMThAv7X3$XGixZ`mYU7Y3
z&uIfn|EN$2WAvDT?el%08}tt1*neDsD~R%{k*r%Zy`NK(G#{sm*Cby_F@w$bRoEes
z?aoH&gI>$plu>2oYN>rV2xXZieH2N6@06c%s=8J1XzCY5<bnZd%?cF+RE?%loP(&L
zaUz)0obQlFM0f_zYI}w#63EgVc_QhX+>3Ys*`qoOH;eD>Pwgia1b_uATC-umo2e)`
z=x>gU;P6W&cLJlwZe`x7Rb3pc_Vabbv>(?=_idm_)1A*P+e6>3v&Syg@K+j9g_P9Z
zd{2rTnPbno0A_Y;(_o9K2`Nc^6yJP?jbcnkT9dk(C2S1K{}@1tX}t=h_kC1D`@_&s
zCnVv|u5k`!lwxy;mVvi3(2X}A#uT>ZX&TkHyfq+kB)t51@EaqcKGQ-DIa1SC4+%Q9
zTB97iL42p8La&pyC0$>MX?1J&0vKc1aCAO~V5pr{@6C$n^-o?IT`?ZydQMvJi+@du
zP36Hv?>5ofJJYeh^`_HI^nOLCHNT>SXQ+yEf4NiFWC)^Rb|grD{H4SoC{bq1=JPfG
zO+*f7u5>M%wlK;0mUv5U=GvLxN0||SG5~a6U>PRIX$R)cdVSzs|8EVgP>i|rqeB>?
zs}=dYJ)rNE!Qf1|>`<N@)wjY9NOUL73jtPjR{@#w?5Tm8ypNUrqW9oFMDO;?eJhC1
zHR-sQlXA04ecfT20H%D%el-L3cRadj@<06~Zg5<!KBArx2*<tTpuM~4w$f8t|3>-N
zX#A%huxd2%+1ZtOb|$uze*tPUzW{}7icFHa2EXe%L)BHT2`i_5XqG<+Xh|G(3l51Q
zeqb3Ti8sY+q4Tih-7DQfG7%E-UnM0-Gz1>wMXgNDI_hKlWzDR5u&m74<)fH!JIY#p
z`(8~E<*!N{4R1Q-xGkmw#uc9Jjj1L6{QTac?oOF}N_L*N#|a}8fvf(>ONq&+2vPTG
z2G_$0BJ%<SIL1qEa-=h!^=<>*Al8mx@?LJa^RKOoD=hn#4e<*8Gm<30AYSal5t3l2
ztH>xnl)jqyL^|)X|I!1dj)jo_#oTEdW$EGQ&n8Y$>9A8mV(^8u4uSk=>gpb_<Yi7&
zYpVXgEs8@#$BZX~&tF={+btwx<zq)n7gg*U{dY3`*8A_<*t2*V=be@o?)>9VdEoL2
z-?tZAO?%Y`$S)BLcaJKHPk^Q8giR_{-NiocuXPG5tcRnE<!*<(R+?+>yTPlsAEK+}
zew$dnvzT@jHCXT%Y!T<@R7Nb3hSdapcFzkG2oCRLCU!3q$>x4EncR4=4rcyT_O&VY
z^VC1bt|e^tV2KW=zW#sPaL-Isbs%RBTQAgpv1E*xI~=-T(08%>#iYfzoHYrR>KCiH
zuP~z3MeqEd*%+V*7?|L|t@p_lN7Ps6hf@*+k1EVr4cx*QSN2_&ev>j~;H8mZ>LN$X
zvn3$!xllxLU;$KRy;}mx_b{73=ZLaN6C$tDA4isV{vr9RtU2}Bi_ce^{@v+&2&S;e
zslGa@Rc|<x9u~t+-aet_6mZz6+C`<zSg`%-4z#zfCjGvjFYn*>>$(RA6JU+$;FrfE
z_8TG)v(_bL0XB!{F)htTTr``2ZQ?Od9V$th(YJSmtn-?yk3>=zoSUl5Td|J|MGpD*
zK>Q7mL%G9t+I!Ria<J}Pzo#?-Zt}Bp+dbKS#lEng%>WzT6Xd!xB{}5V??7%(FAOoF
z^pO_A(=N@CNhQP--WXZS)Epnc_^e;ShI;eT+1Km!?24TDB%QRg)JW)f`3b+BZ8LsK
ztXskBOjlT6_mw*=b(#6)$qA+!k^4Mt0+h&)V<w(a79eb13FHyevIF?h@DID983dbs
z;jrrruT1jik6`UCl9;Dvj-Oli>&ks3(;<4tXEu`0_^{0fML<>E6^r|V(y&-#%Y7Y*
zlqf61o?lV5b=L;LU>BLxo&&nIh$xa)B27yd<1VCP?_JM(5-xg@K7r>z14a2WL6&)N
z@kA_ithVDFNV_}EfBW?xJ*TNfF2vl*B<)i1cACM#bs8gIH%3*E%@=ll){l_!oM2i^
zoEdjP#9=~^OQJhSFT$yW$4K4mw=s-qF1EfZ^YKISjdA@1Z8gJ4U|f;l&qB)mW{4@e
zrSbYPg(AE7%YLQho+`FAVFl6KdY#RY?Ip93qx_n}rNP*%O!_ej^bKmY1ohcKBQU<t
zh4z-}B+#h9_iU0&ti|~o9lV6^9!Gxz*LicCGYxhMpTEJP^6O=|BIu`J-<z<7c12`h
zwaT-HjyY4LDDt5^?KW#2UR?piN`k?9w)S@(>0Yo@N{5x5nck(duLe%PXE$?xq9r~w
zj`ZpCVl^D7qfGnl+;ZVlm~7-*#P7JCR7?Ms)rr*#7i^(a@qNTOP#(Q<UMflTS#6g$
z5=nX&nA&N2;)}Yk`+))YhyVL8iXQmr*4m&(gIbM9^pYb=>?{iHGXafBoB>OBYo*^W
zyAh|-KA6jK7jCX2OY(AXl%-*pfuIu;z^*%ETUSDiwQfUH(drl<?Gf{WcKK>XGOV4f
zmt(tnp74DuL^Y%#-K1*narXTnVfcQO>6vrZTg~8SjXXm`1F*m_T+IpY2$d~=cR0is
zCdnxcH8QPjJJZi$Pa^vCIu(1wk`{B5pNvbm%tB?mIaD>zic*uC96u_ie1$Uk>>7bZ
z!*Zp%K{fqs@{4J}QNya~K5%uSYeOG4b$!*qH~bWX|4&`tN&UFLT0Lf1Tw&O2&_U3h
zy5H9?4nb<VMe>~D%6;vm$D7!F!bL2Vzm9s$9|@XjYtcu%Vwz6e=`(M<8i0*kjua+o
z%Y{La?j(xuwG$t;aFLX+{~*)@lodqjY7XqMt>U5Nqa}G1GXz9=!g(J^o^zWd_`u%d
z#Wqe2WoeXSR<LllHMwnw)KK(nl2=(UU1C~C!@BL6jeI}o%#!HS0C#-no&7>qedhfc
zw=q$lvRK)?A*<h4K3j%gS}47xkz4=-d_%0x3#vSQ80ppNG5&E2=fkon)gqM03GPs!
z9a#o)j43ALF--G-!bAd3l)sm(sbU&WEn=~|O{>F7%pjxx@Z3~w=8k6t>pO#bx^lsU
zElI}8ECR-GpkYXZ&QOCV^OIgWzyDmv{g>@}Q+P~vWtD3xx^I`(Iw)mn>V6d-H6q0+
zk~rw`u2#t!pgM(?{N5h-pnFulqi!Xm*r9Tx0p3Xf=;60HC2gfP=fy~_U(+ySs9NN5
z0Rv+4zWqQhIN}MQX0g8osU8YdzZjO#!|NfL_MKZoQO_L>S{bpMJuAB|AsK51=7zOK
zvSr#zEBjcycAxj=&!L#giB?8WP}0+^i2hCCCVR?)?OQtH6ecM;%0!ads_K}vxcctC
z+fivujzC>*g|>|bXZ_t%V_{or%BZ59_-4Xa<kG^qX&--bSV77%W<aBJsU46-tEF42
z_oflFwpsl7PAnBXkA!rx0Nhs$kjLIyB&mM3H*L}{KchEDM$Jw+`qq`UOaaQ+M=aNu
zZYn*SwQTgn4QF!f1(oQfgaq)=cW=>6HPPCnih~r(C_PM8P(kX|<_#s7pfoK3zx5e2
zN~@?VHJs82Y4>RwG<I!)e3>+4*W<z%d&I!O<l4Kbj(zg@bB|#t1eJ92>yP|brk5-O
z#OE8dn|f*y4`8O(Ube`(1*29n+4j>MA2kH@2R@q()2;L817%>$jwrhGSCgsuN`naw
zDzRv)5ge$>M850lud6&2mjX9&829cr@z(&<&p!)f#{&g<P$|^acfgn<2!kNmq%5Iz
zacg$JjOs%lmC;o!R;1kbcMdokG;HtE7iFxs_!iXgdctDC-nB!<D>?O3E0ZuuP@9c7
z(rHE&Lnz$Ak^R^R)>3LOwUKDuq-H)<SLL8>t$KY+BL-|v1N^*%dcDoB4Jg<1DJAok
zrTYZ-ygq+G8nEgzZF|=-9Ta=`DQ}7`$hp>@l$!;CwV{!I${O4Z;hUHvRG{C6z`RdR
zIz`M#Z_C;f?7zO);6Sa7HX*muB$D>uH|kb?w_rvHUcGUp0Z9mbFOw7kLznG<9Ez%g
z=@0pd@Gh}tanA59Dm3e+`{G+VsHt|@30Tk*2P*v*UwmXtEw1#Qy=q3oQ{m*nCY1G!
zEey`<^31IWH`c~a5+!mZ-5!+iR8U&svD;`$!UKMAK#jiIF^$Lxk4$WI$Mme<m09W^
zpl%6b3^QIe2?rvzu3jxR=T#3CVcq!?K`~W{aKdl1n>`<5n9SufMq@B3TIsV?5rMa$
zs$It_yvJ|oyJ;E1B8F!I@Z!fR)`+d$Asv~W7TqLq&tIogao=ug>z}w~lq7HMa<03z
z27?b<AM0xJu)UN<y<@?Xbv-67oZsZEE1cUT0UfC23b($sh`)N~^XL_rzn_x1@xSBw
z)T7UK+kYPy*H$tdtuV2AykaJ)PUWV)g5Tv1k>DF^2ZA*j<BLOM#Uy(4uFJ~+|B#<o
zv-$Asgu4sqDdHj0Z5lQ=)ocGIi=?@F#^w1azVEPSn<yKIBCDlSduPpFT+N$UBDWup
zY9-;}@(luw8Uc!p9&?|tE4<P5lgtY*UcdVMy9ig9&>ADNk>C$xBri=jdzP||k(;sP
zj#raNQk2o=P!-A+l+e>#cYav@y=O#09+7_X@|^in0?6a4ebDa@MXJeNS<%~^T3<>}
zrRnl7{%I<sJ8*0^zP}!9{&>OJh+MJdA&`FO{!y_e-(rgj_se2kuLr0hac#Q?^Vw5z
z;_7&J=(aH)OupGt#?lV8?G-*bPMeees`yAv7|2C%R34SkMUTFc&-e;q4v+v*u70)%
z21Lo=J9VMOxVJ}VX6|GDGRf%|CO0|H(R(h%Wf!1YoCBa)oUCq~Mn9ktC4JKT#SU=(
zm)D2+K$zQDib<=Z7p2`onA_|t{!J$|m8o=dD;m9@<zzaVO7T{EqwNe0@%8TRQ-QL@
zF!9W*G#?tRMFXasuvDw$;ot*$Y#wkPc!}}!TZI=ErOj`6b!6OsJKP9X=SUl4bu$j)
zcaX)1^VU8w`nPwf_TBgOsa$8X5=N+4-q898=y+&uLog(WtT?<5ZT0WO*BeO6wLUQB
zF2?$PHuZq%P^g4P#U2$#mhS;Z$Ltci!4DXD!<Yr!QHA~P=php6qRK4$aL7?W)6r7@
z?Ym8q!{3ShR-4@%JFVY8dRE#KM~Vf+K{zAIa!9$h^W{^HdG)jSsK#E_$k;f1aF484
z{x}t%e)JvkkoFWRVU_f5I|DTFuh4NHSJ~i~uou;Sgz1N5*1$|84NY8W0ie8r&V?vQ
z!7%IWi#@O@X*#&lMXaIM{$dDz3=zvD1TxQsBhhOUw}*gSC`b}T3Of6XdDN<R=|3fb
zBl9QhUWl;-RuYP&Z@d_3dU9h-nA`sr?P(9FA_{iKkH8NOkglAhg#*Vj2u`bVk|;?U
zMY~G=@qkm0)5Tn)9PoWVld9CMU#P2-FQlljl{6O!HUPo-;oL_B0%s1>v3K~lXxelE
zSWn(ViV6P!OF&z`cIkMdwJIxjd%%uGkX25{To=pQR7UGIJGUQaUn&7H`?}4j{tLl`
zFh&&%4bAy0o3;iUWUx$j7k&uM=W*0LvRVj<m&O-5=qpW@`Ve6Q*#?3_9&J;_Ch}Lq
zBd!<uX4qPrsVp1!fqu3ad)JmR_9L3=heJ%?6X{VVm~4|M98jcn_h*{~Z`**6sjA7H
zt`6CaGXDfR*?nW7SpLe!I~<=}zxzm9%N()lDbO)|xu5HE0B7ClOi*r2K(B6<bI=G&
zyaM#92|&ru<fIha=)IACH)Vs+uAXqS_0l6m2=?+v#F!B$0oIvCO8a{i+J-#vjF;^L
z*Ss}5XUoq~1*73Svx_A+*V0X89ckSd|IkBJO4TFx)HBQY{{CY*k@BaM+=t~Wv5#e0
zn<~7wy4Q0x4u4z&gbqKw0V@wLA1%M6hw&6rDi<Du5OjClny{5$NUF+|dRnfuhGBcp
zgEj0t{v~D9bG}IV%I}GH_klhtVMWA8rbP+R#K-qfD>(Kv{tg>1fkr38TfKi?S<@#%
zN>qml#d5+JxLD)(uOKGY;$WTK#uP}<&zK^JbXG-f7#$6YX;Z?<xLFmG#)g))miWpX
z;Fvod8q<h!rjQS-NvzOzL&`X|Og>;QbLHz|G{FJR%LHFYA!u|Ws?{6bfdLyF^d1Jx
zj}>?8(q8G8I_PES(JE(1)Lv*wWikI9|Drg3TFo)8!94D*FZ>#ZxjQx-;8hBcZ4Ue1
z(+P0C#4;`z;=SZ<HprUyKiif{a%RlDh1^bjb1L2M5G}ImJOst>s==6p5I(E_omiey
zRbMBJn8Xgw_DqsI=hM#NCh;+nmPx!@v|+zDgaIrY-6`*jW>RI{fIW*OM^IdIFXn<P
zg4-hiba@;%U$!Od{2;`QsGfG|2MK)KR&ht1S)fSD*2&aRPH+7%Go|%Bj+4&p%k$4K
z77z*K;r_dZZD)13k$yG>I?7=B{Y~bJx7U1v`0x+uD)&8!w){0+WxaJ}#_AT7AiZFU
zeF?pmUZ932)r!~FbAWrT$tIsXk-8ILlyMOf{I~8a*;QX3spjS^sXRXYDoKfy>Rqvu
z{ULIF`Vwj%IrZQGMBaH-v3BBv`Fn^G*S_~#XLBS-1*Ez7Ub9-00#V-G4Eh!Gez6NF
z6<NAlY98m8CR^u{8nz1W%|o7X!-|}%rE)450nBfz-U;!lkINlXUE7%+SV>13(h*eE
zt=);TagQF3Zj}%>WD@%WfNX@jT@-(Fd;!*hNsBtir<1Zw8)>(?qlWK%fzBG$VX;>4
z<4up~xYRAWU^yJ^rV6KafgiZ`<T-m<B`U>Z%xu#MujJ}~U2YK=^Yxo@ZKon=>swx*
z(9ih?yIkR<l=tZ_Ktk*3@E_phe>VUAj15O?#Gk8vX~}RH@r+KFhBJq==lx8QC8<OX
zH^esWRJZc|aSsrn#tfMHnCh)GJZ<-%kr|;?<4uBNnhj(we2}{>)1FM{CUss$R1WZJ
zW>`TSk7~vk%@Gi0znl7}sIhLlE;RQYfqLeWg!EvGPiR{DlXR+Z8+YUkXzF05+GTgZ
ziwCFI>#jF<z*F1_C6jexPRK3GCuy~JA6g^py}K1y@z7RpxK0#s?jL`C&;RSvXbsK~
z#sM?D_I}teixG+Ld8g?AxLy!LkEYH#=ICM$fRC=ayUEtRVe$o&b+KpTYf(A({5#PH
z79{$Bp)NMy#QHF;?tGKiL;4Ngsw9xVvV7$m&22!A$Cg1fv?t)7erx#&frn@VKs5?I
zEl_B;0b$WTW@!YxRqfNZe6oeK#5P_d_FkZcreT~JNV0+|dy}>1+BdE@CLxc@%f{ar
zsGon?{Q+n_GI|os89~-O%Op0APuxLr9qVsU&ZWINU|<X<=OBFdFT0%KGKP<k(zT7}
z>z>K+H<77tIVcyQzHNWy9eh!2g<yqJh3$^Yk=}OZy`gqZuk4@_S+5SM2fpABv1|iQ
zFvAYUTWb7H2N7r-=t?@USz@e}1Tz)cOBg!pefSOd?D351Q$Pr4Nqk$Jf<c@#@nW0N
zRj8U>Lh@fkr~y-yG2-j)nWWyvFB*&4oL{)`VvXlz;cw{fOAABUuB6%oxD>uDRlg<W
zCnJfFn6MaHBX8@#K{<nm)$+HTmLfEfujaM-23Q+1=NY_@auHrX2v4#v^pJP%x}t*A
zUVHd#bwP~Sg^K*XhAx9fb_QY0uBa42MrIsyP((IMpUlARsy2iQ^TH4P9DDAqaCgq9
z^;yJQQuQo>a6k3R><YooZLyzR!xJz26@IJ0uIMqPmw*u~Z#GA|JlAKX@eA#{b&{(6
zMBWIA5wCPA--8ELi85b&znv?K$+O8}Pj6qnflLf|;r=wt0=8~JVE4AnrfzZd)w!@V
z=oMNF*o3-DDDQO0<56D113IuCiwIeN^8kxy@u;DI*c?;etFXHUN;VTtW%8+d-s*QG
z4_G=+aol*}<;&xhYXNFJDE@q7{x6q~)+!t`ov_qM)+O!kLbecWX{92BFLKbE)kmpL
z{vo=M+ck@L*!qXvZOK+-IP(=#m~@`!20*$Ug3Xn=yHogZWdV2}i7Be>1>g<P39jzC
zD|c%|En)L8KWMZE<6|f>*1M@EJ83c|X_X{R5NGOZIQSba3)sUfi8IrsE8hFu8iJl5
za4syp2?{*Zb1b37r<%*&RN7GPa|wRuwD-SNPuKQff{G8>TYeq+!+a=O_L$g7ctHK!
zr2564D&uwrARCx)J#e-ea4eCO|93D#sFNLK$~|jE64gDKB;^PiMfEgwNRqnMd1=RR
zT|y)L@H4t9VN55yQ5w@JL<`Ool2XF3e%p5(+xRm*B#D0yA9d-bx=>o302=GmPpe)h
zr%6HlO*{M0|Ig|Sy#_qLaDw9HJFal)F|dA1ljkwqR3=G(vN8LhgT=5V&+5M2?_@8Y
zjIGQJ=L*_0hD;JA8lB6Wn&Hq^t{KOlvgwp=xZd@a2Wx3nCa||yp+;~k^_Z#Fa;a$l
z@eBH4*J>ufJ2c);FEF>yo9l?D{KbC+PW%C?+?DcE+eON7k7^0MxQqbUj~+Y1{gLQ3
zy+x&y4MdX-Z2z=aDkA8sLa%z~-{j}R<~A?Id`AEm{$A@Uubr*eAkC|X;Q54@7D$et
zYDutk<v~p@aF)HzMtacksvav6bJ&&ycahfb%kVh31{iC2AkKR{!^F4(ObB0Ng$RLL
z{aZ(WiqvD@<RUlhcL|c<l~JW2rbroI%W@|$8L%$fBwsR|#b2kB+0+01PY>lLkn@Fd
z3-vu`{kRoLLL)Bh)GBR!RX%Sw@ro!aXhxG+v#+hj&cofi%i>DVCB<5{K&XaT(mIa%
zFYHt~|1mB6r9VD&C1y#;+WV_YU^UC|5KX{gpRuHg*P1|sRN&2~tS@ii75k{-8}V&@
zxAYJ)#Rl9u64nZ!2$4Gq<D_nzz;ZXU!K&RKk1A}<SYfr2_0U$D$~6#Hr4c<GNMui{
z`<^ltewq>~l6Q25{j*Y6k-{*lU$=M$P}49%`Hr>_pbX=`$fsAxgnQ#>hegoqU1eYj
zJA(WF+6J1-A3Oz=YQOz52SX*GFe&Fv{I`mLnlxbQV*GzJop(H&@B8+(+FC``u2t2V
zrPSW7*(xy-)U2(F*t<s6-f9!nCQ9uXC9N%1)r<%YHJjLC>vMm;zt{6Z{_+RObzj$Y
zp67AAk1<94$qc#5Kfrk&H1D2bDBc;8(Zg|`#A(drx<Ve`(kI(0yIGt>_pp2GoCqG6
zNfA?A{@+GHhhL`s0U-S5H5PQ=u!psunZ_Ooe#k`|A}ek&c1}iaGkm-e$13)BVL(pc
z8XJGPtJ(vjZDgghobZOk+R+c7ePyDbkX!-rTCJ$8?0-=GF0j1kIf~TrCi5>wtHJY>
z_%>>W{vES}-(!d?!)JXIlwWKr{LP5FYm1*5#3^dNF9@vDi2!_azzQc0!MxBa^;xNh
zKu1Roh#An1-4ip$5-6MtK+`8|N=pK&9wlmJkU7l+iVIxt_0vS}<*!eucBL}e6IJyp
z198&$;9NiMuXa!07(RYC7toPf=AHb#k3lCgUutti0{M$k!KOfz(H!d}LN{&MBVj%l
zCC&G3aQOh~%|oXNb8R#JPM>%l6(?=2h!iYBR+hOG+#!DBrO6`&YS;^NgszOr{MNOM
zscp@scU9Csp3_*XZI_Uy*YrHfS|xxRflb13CB2QBoKT%rBjAbIZq_Y#p50(umEvvO
zJnyJ-!aR_O%;nay*lm^2iD>(F3=!$0tbtO*VG0@Cs%j7B2VU1q%XFM3UuE5PEA0gE
z>L1^812a=!mv>9sVLB|Hngyt9xiCz_=k=u?j=x?(Z!Mg@@3($*qwq_1jBFVNM(%m_
z3ep3PbUy1m19L`F<IdlJCRS5Kun0gnc@AxsNq75>f0;zfk@4wF&Dy!}ee!n-om-A~
zaz&3h7^u5{5I%;O@zcBm5WHLT4a!a+`OlP}F)ewP?<Hpw0H(@$mg+a(-NAz=La|*l
zjs;`?O}K!LWPzsPox1;c1z?Ao%Q(LIXO$LC|Lr*Z@oVLd;QKXD@6p2*0xs41TY>T2
z%$Wq=Jpr*7Y&hD+3h3*$UQAVDn}WIUwAa}uYbw2{xN@Nctpe>wZ|)FS^B8-8dGwiQ
zu!teJtG#s4&s;G1@J`gW55BUJuCaW~RZ5VW@%8XR1#3-O;sRp5+am3Xl863399nI!
zkK#Asu8NNC*w%u3fMG$JLEMAV&o*_;EL80E_zS_rt7=BlGtY&~5^U^Tn>L=V5|gCv
znmMyJn<=+qsChq^j(@43@-Fp^LBom<kGo8BXk@QRl+F8dF?JC%;&roP=lUw!Jyh?$
zi-UQ1VllVFK0<`+R<N<)>8@s&^T-<W-OTT5@|&29nTuunX0SXucCMsr<A9Z<lH?O9
z>jXeQ3EM(&jtFmQ&A_9rVmbz%!gY&iDN3loK(!5x%i}}Si~{y5eqanFI@T4Ooi~*t
zskIF=X7jxetdi5GKc2ZFjpkay<DiFa)v@AJv%Vg@SA%{@8~L%}XK?)-z<N#UO63B_
zPF3FDh`Kn5?bFkYL}H&UXskC?s%JbOZ?N_Ab7}Re8&e9h@?|w$)m!jjI#r!3hO*qN
z&JQR=o8rNpi&v=nthg)LgbXv$A%~4BE??o=mWC5Zqt&5&##94&)C1V7F`fmb0K*}V
z5AfKWm7V6kG*2et3IL(MSdr3YCbtVnWXQcNeK3l2ntcSU5_XHGr7g2UpxJJ2h<vF!
z$B_>3bV=Z7xyH1*HF033Bn#X226O|>6VsZ-X-bB-7Ds?3`y32=8V)y0;=9@PLT;?i
zK+}~8mc1bM+V^$q>vsTxJ9D=p1$8WQAl*L5mJj#=WZE#7rK;o&lNmDLywA-PMC(!J
zyB?f&WK@ig9eC_@MBTds-V^{JO<tZb_StL2_Ua&M4heEQ5ziBo0Mm_X=Nt_x4SV(2
z9{Qx<^x9T%e1s2ibD)&L`;8*(F?x&>0_y#7Mc+^H7;X~oD2)JM^2`Acoj!4B_2_3~
z>Z5-ol0qKW=`F&Rx|NFAfdob|qC61vBwvK8KW<bI)UezkG#{FCobYUL0g{Ga%gNW!
z#sg8>mPU~tQkJ6sNI1vh_$&}WkAU8svovmyjQ{sQUJ8kwY$AhLj)hee%LAa&3DEw!
z<<-kp8|S1w{*>c9oRmgup~QZ2><-L>%OPV{#^~b66Zd3v)ZE}P{mMS_a&es6ZRbt*
zGN^|tZ@plv2#wR1TGet-+Ao&M09M*<zp3e7w6mfses|`73cC=N`1iyepWZ)hF1Bv#
zl@{-!4rCd7uu(2Tu|VRZKfW3&7jPZZ!i*EV7WL#{WUJMCsbME#C3Y@F{ib;R;JR?v
zAAjIt<BDmIu`81nf;uXl`B`ODAaEMnpPdYD^A1CQ0XrJ2-9cjS!9BE=hvER9Q;bT;
z6KmKwk!a99*4-tWOi7s+$eySwx=i`fLac2^uA+lPEvs<9*ioD2<d(qhc}n5DW{PRV
zo-JCY{#<cVJ#YRdiWO)a&M8l?14mz}2rs5DM0Jkb+5Sebi90;@hPH??@+qDKxza!f
z0H**hW1QgUb%M%y{{Zh=p9?Qa7ZdzbX6j2rY-_&#KN2^wV%&sH*1fNJH~cmJu4JDX
zy5#ed10^ql4k0S8a~N?DVk+q&9{$*(v2Vt;AKrhrC|l8fEC9pyq}`T%zo=QkO8kmZ
znbrCGC8)$(Xrm@Z3og@&yp+B&;v4)u8~n;S38nfeYg6#KBNvq0`6hRh8gX~>yjPIN
z|G8mevuf5|S2)!-;;)7&JTU6+J(l(03pAb9!;8uQ3#<y<NE)+WRhaa6n(Bz=oGa3F
z=Y`t?S9ogwON#x^P;vr>)I$lymkndbX7qIG{3N;`<I)kRWxAF4J81R;@W6CTBMR%f
z)bQb)(Ya)E+9b4lLt(2Vc2w;RWTuIy(0=<V1cK$?lQ--YbUSyQaA}&h@L;V&lw!|+
zLwO4AbQ*H5ruc5;2%m01D`{APV+iJ7wFkWes03WP9vCzF{gS<?8uQbW_7VS@RY#pT
zz%%ai3@^z999LrCrFq=QA#;Ga&Q(ielRu!7wimeyq>sc6e(o}q-+jRjM<<a<azdd}
zZCxrH6CZ!sAFZkX5X=R$ao)N(RzJCCv9gV`A02m}mc9>gozO4b8?L@fNt35|aTI9b
zw);r6z5r+mscmJg53Os?zJ?+{=wtAF)Y#o`mx-$GFP@os`u8vJsXbx)DHG<7myH*q
z4o*JLFmE}8zuoJ&JCE`EMKzqfQ1J_!k_Q;)l!7cEm(u4_4*HWVVq278hde(G7q_vn
z`676eO@$|a(6x|PQR+D<wU78JN}0#ydZKc$AGxiEkOsaw>w3W<({uyceOh?;>kvYZ
z>`jO?8->11q}3%vYz|9@RGenFkRqvG-FgLR!U~lmd;fe3SLSlk7DviN@m1uB9`M|)
z<uLlKx;aWM+d=?;XZPS;j#M||IQkQ@M{QnK{r1clUNj5YJ?ttAF}le<&EqD;15j;s
zN8z6XJImMp@()xBHb#+|A)@mjH+#kjB&}gh+vfU6)i!)sTSJ{yow;y}wNR}5)CA6h
z%sPBAG<QVO=;>9n#`)bP0idJ!;hcIJ{8iu`)=-%QGSW6`+S3x7c~p}{o5v8W*uC`M
z=(tvmg4K;bK`EWK%24xHHUiCh-{Vpsh5m?J`(BuHfQ1R?{5@^xRz9Q7vp9v9y#<<(
zbty5=@)RJYWwxDZ?hOn8DE_ACznUiG0?z&Q<|)t*9<7}G7sKENrEwbjA{t=H?1;G~
zIc{oBtsX|Kc;N@K%?{9FbDWewBHV7VIMFF5oGH?n&&XzbJ||GLZP@FA7|(cm$uIK)
zQz1<{ESm^WKm^=eT>F1d;h^5TM-S3Vd{;*T43mD4CSysm7kJtgP-)!b_OgdTqVf#4
z`FGGg7MnnG2FeUbi{x+iVB*XGsm4sw;M;&Hwr2-K!^Aq;-IjI82n|qWA}1pV+uv{$
ze^7u=nHMLt(iPkFX~#3KfgTQX8n>4@42E4_Z@=avOCaY#ky&SMIV?v+{87wo8gx$t
zn{p>yYpBes=F?{%P<r@RtY-aAZ$Q7ImaW5qM@Qz>_-!D_k1ASjHw@@gjrzEJDfrb#
z1w_w=c<&uqvQ(rz=alf0#!pT`#-9$p0V+vtDAPd&6Z1Zt#>%VfRxuPZ^8N3VBzudO
zR9siZpMXoc<j;Vgyaq48+%BdM+%OtT8p?`IYkkt9@V<P)Gm#^bHo?}baaZmhd1GoN
zKw7i(+AqU=#DjjNAvOPHm>HZdiqZV<h{|$OBahnw;Bu+x4iXcm(DtzVa2w-ZWjDYX
zm|W+pvboN<=wmcwI25y1#hUrn8GXf|{e6KaL!y&{^jsQZU>osXkm$YEE)+YEk}mue
zuTHh@drL6TGPAPaVp8imq4@xExSdZ#2MVkV--kPjcQBzY5Dm-VPy)5l%(ksZMsqlO
zv3>d&kqD{%=Bsc8w4{I;D@2-f@Y!);BxvML)CstQecWT6yXoDnrKjamlW5AwliyBq
zMHp?o$8|$hIZvi@Is{#J!8Xk9t2ANRt<mi6(&>q!UQ<bh9G}excysnUii2^VUbc79
zoQv$=x57Zf`h`kdTzJQJn04mD&ZfD}OoH?{R%LYjJ?Ya5IWHx~m#D>2(t7Z<l}7uX
zd?$B+ThLlU)+)lV0Q-;gYsy4iH+Kc$R^5n_j|Zs2_r}Ua*JvYOJt{2Z*&|TF+dKj7
zoBx<JPY$vksLvx22#UsuS(v6Ie=nV8+5ywKoI8RL_F5n*`0R5ONT91c0%xOgp|>Mt
zE+sTHwOhTm*+?4t$fX9|iwz)sFWd$=!@I==KmVbdV9yJ6i)1gD?%~*UH`i}#UMNex
z8+U(7kKYqlw`Ok+(vHyD@cNQgc8xRSmzZA(jz)*cH9e`LZA$)Ei{Z$K!jnN?_EV>&
z24$_-Y_<sBAMltnl`l}Wb4ZUo++(x7Mk&v?*Hs8uE(mELYIOqymCDSYxFNT2Vyg%Z
zyq7`hE-DG~7&LD!`c{M-HEO}r>>}C$#3Z!pO$<p@>E`fmNO#qVt!YIE>C0z6<|=P{
z&<*9utm{<}dLNr^ANHeB_sz!#tXL2JJyH4YdsrPVBR-9qXpyr(<0&psoD7=HU87cu
zbUa}7rn1GHN*pg3L0JnImnW5YqflGOW8;)k#c2n~?Yo$)rkx7;(cUW&eC(PF6;dIb
zi=22pF%PDYQ`HW8dJjgPkEC&OnEaP@4T&xGQ?<wjovhnF^J^#DxY}>8-viGAwr_n7
zM;K6g)XNnv6tG>BRxRs3dHF#F4<VR&;gYAT<HV&p8e<Vtv;R$HhsM<z7=$<bXHE=h
z26$l6Pa=Dl{F;$oY+@PB9lu!xbcXQR3jh~%))s?vLxb>l!{O*So(0K<A}9;A+9J-N
zD*zBDxpF!3h{`nPMg9;VY~E$i-MXQe2LA-g*8MhigMW_aE$8qpIyX<{8n+PupUp?*
z%heF`n)|EUFZu&T{A3CwX@FD<4xpB&-g7Tt>CF=0{=IZ2hOcJQ3+CJ8(%OdFJOO!P
zzRWbp`%PRrx?qXMr@R5T-PCGK?}lIAZDAk3pNpwvok)=GuKLemfVwzIZ!KVvI@j`D
zjeWnLU?DRntSg)EXO=#)CED!lv3<dBk~p(XM)`5m&~}pW?6F7@XQWxhTPbOCg?abZ
zG&h<j?A1J*Bbvg-v<~EA0ou&>1#|&V2=}US2jeSbu9xcka}&fbLWY@`B>3frVe|C6
zK4v>J?N=EMUqUO$AqgGzzWB<O?%@K|%l4-h(CEk(E#~Y+PDx55AC|Qmrmc1nSZh>t
zduGPunzy#CEt8wPX9H3`GWbi*^M^T+^h>WEP3w46LT_zEsgnN*Flt4SvK4#1k|Y54
zY5u);z*S;e4RcfI=P_xFOt>OUU@=S5Lj&h!E=#k;v<#!p@aO?8BapI}Zq#Z~s|~zY
z{V4O?R@*P@v_jCudw*X5wqB+)G5?+YR`6r0EQa9W*G!kmAxv2(#>jKhsKR-k0eez{
zsQL5k;&yf*DyX%n7l5Io^&2ZdQ{JY)zU3K}&oK6VKt5&l58wg|dD8m!kyz13k>BBt
zWmW4+w(8t%0LZ*X_*+RE{#HNEjtE4@6Pm|fhKYsUIEcyO9ODo9K=g6xzN!$%84a{T
zKD{ofXtXz$Qe<Q|%h<!KEf`$eM)3HoG|&e_mIodoWYv@B5Rw%xwoFy)kC5+8`f2aC
zI)5d3w=CRrtm&DX>;$>9B9rvN_|;_epQ21n%OEr}i5TNo;h#)yavly<KC0c7gJzgw
z-+P&GW9w{2(*?*j)t+KWcTxOT-ar82pikdsJa^FbqE&o~K)-0Yyi#>8nk`C2<1VS~
zT1+m4f#{5m3r~$~Dqt3iT!&#noB6&OdLk3}?cB#x3%T&odHL3$e<VIhhCPh3RQA2a
zhp{RrI!<175i_?WMBg&<cxa1M=SR__Y~u`e*8bWy?om&$0FQ~-Ck9VjmJEq}zJ<*l
z8MNXY>XFuk8_-K{Z2q#PAZ9k;h$_jez5~TEEJ8l{*xWSIoJ>zvfEUyEK10h9@TDbB
zVW2a;Yh6*B^D5nc?yYY`QUkDCH|i`u-rdQLbcs~e;@n!fU_-UU0_|7KD<d}_XX~H5
zRy_ih^Qf)0x*&0(-F8ZPOzZSeFgA?OaYxPLCQ|9%xt1x=$7g!@XK|Zh0VHCsPjoh0
zuP@wU=9t>9@4@5Yv_<a6rbRUe*cVr@QD7vCb3a)6e9b`o#(hD=a&}Eyq~%q<tXm<G
zmQtD)2vVl6Q!LY3EVcgzj7`MFde?|ztyp_2MIJi|Gqn4RO-dnEtnv+`{crnJ_IzI|
zq?X(m{ME<nCcH1grw(LqcqxtY)M<CuRJgL$cQcx~YvC|jBc4ry6;=@iix1qyH~~|?
z(ieYu&IM<g7>eZnYs7ban}}6)y40c1Vw`{$8I{;tp!-c6@w7<LXsO||BT+N~L=Xfn
zIf#0)GaXCgKg?8qGfPx)(!6ahdfV4ep;bk9`tMac{MFX@5sC$_UeL`+z&=$l*q2)n
zY!25&(ARxqpkWS=8DJ$()O0$lZS`Izy8|Ev%-!e`Q|reYI!~;=OP{~Ui#foGwNPv$
zg{RiZ*Bfe*h@r{8L_zXh3BO-lFAOdzpGTb2#di&r%tmsRL4t+1i+xIL(?<authBBp
zL{7Zj>$W4swEM<aKF9`BBEX|e2YRP(@i07f-`>SicU3Z*Q8=nW`LZ8h^{D<$Vul3v
zdF1?gv!|77R2i*c(WTV;O18vP;-~8+@dv)0Q($k0E);sH@b;&^5pyj?u0i|aFGWv|
zdK+2qe0kY@{bMwnP5w1kdC3V9-BO1lTrVIZammx9_kJg0D=r19`Ow}bAFClju>iqO
zKe8KV5;2x57Kv>`-jA<~<k^G$9L_&qe*1P*3$M9U?pH*su*nf#yj9cs+ubx_(ubf-
z71aoYH_y`h3OoaDqlXETW72QXf)(8rz7)B*2F1@CU|RjKDz*rm8L=J+sD=e<_u;to
z+X&0a9l7INcup2q0k?EXguVP(>VKCaFWC}xq-@S)N@F2yGCRU-Db-vo(-tt+*DHv+
zw5UtU%*%hxkeB9iW$+t0CsikD8wI(d1)4&BK4gmwnj`McT0T_}c{r@av5tsp*tY>>
z19gpL1@kL`S(gRJ28ar7G7xI8v6u1j42v!|rZ{z(JElSgg`ZZi;9YAbDjCwdbngTz
z7hfhyX#&CW`7cm^-RdehYNyp6GxT5eNl)6hp8|mAtP6m{)%)#1v>R=7wG>YSJgbPc
z<znDTWFOb2v+Q@-go&ZbwLg+zhrdBV<uL17NG*_j1(Ci{$}>0P!^y(1o9pC4NDT;z
z&xf}du@9gsWtMCTx~IR+;fq}JLR?tl0=ne|IlShG(Fu=UCwtUvDU%i2q+<BuBlQ$5
z0gl_<BIXoEfySqXauUAVl{%Z**&d>@vaOaXq^N?_G<nu(O*R`SkksC4>nUQcGYh0x
z(%kb)56zuTpEz86&nLA)oBli^tRzH~GVz2fQS!%WvYYdNu^Df=|B*BsDYH#K^kqqv
zUX#!tm=Y)<-zm$hVSAtC{mXmRIYU)$f~ok9k#gL7v7w_#c8|V8swe+QoLdU=4`9L*
z>N<=vEn6Yn>?YC@XXv%X;Vb?2hVJcOvY>w?Z!2?r#0f-(?Qu#a*}A!+^DsWC!9UTC
z;Z-K#_Ze09hDWLvqnl+%Z>PxQ#jhaLpIrc1Z;_UZu#?REZ%PVY%e$=+nPE+Cn9gbN
ze_m$%J<@kkk?V!at<HNAk-a&QxWynDm~Z;a^-RF~r9hVzu>KpaVHF84J6U@~TN<GU
z&Jzm}a^^!^JAbj#n=6d(o|aY3f8J=cI4xBFy$93tCUUjQ_^$mN#|mKOzWw@J?ZXR$
zsFO84gAV%Pu3zo)VY|&t2cx4juIZ`S`98Pj&SASVD}pAs$J)y(TA;>VmSf*5S))W1
zvFXa1E}C}?S_WX@dzVpLQaHD_%=~uriI;%p<z9pzr1po9p_zx;Hb}MQ6K8}!LMUc*
zIz_Ub<_D_tq(XRaObW+7M}G*!Hb&2G8?ZwNLecUJ!0qn=MkiDuS&4&dJ4Zo;|DNsm
z)*o8wyr&y5lL``?-J17Us7?Q}PYR3YItU|x4RPf5)){vN2SVE?T8JAaIY4|aC!k9c
zR)Mpg-;tj5A;Cg8u2(8`_~KhVF2faon2<2Rmf!h3EgxE9{;RNz>3lwuqA;hZ!M%aZ
z;s3=@KW;f>Y$(g4t;iav_W_GA;V9bdN_|Pp!EQW>$2!-Fds;p{=Aqlc>W%-(#4rNQ
zt4R1fDic&qnqe2rN{)6~R5E-d1m_6O$N^yz!mDb$7qj;X{7G1{DqCg)4N7;OjO4d}
zW|$e%t!3xBx*wOC7T9hH#?BQv30Ac}y3a=yA<wb^r6z~nMn>q2p3-lE+^N;FoC(wn
zg~q_2{~^Bv?T#pf*n7O*Ce2D(yf>~|xauK&HveP(*vb~xJbU?38!s+VQlXed6T%8q
zM_LMcHVeMSs!6naC|*`eo_8b?w-9+|2~iO*60>$;Zn>v_4E512%?6G4Cf_vJzDjzT
zNX;4~mp&36(9XUUQvD>^(Y}YnKmNV%r1A}dykMqnOwwFVI4`0*|72AJ-xsaioZ6ag
zYFKlnsmL%9OHWlY!q0ct8AUV#Wz-mqZ5k>{1Iz>0nqK$w!$o;3p9V0(V|=&a=Q)8{
zXpfL!0n9R1@xQiI<}W_nUwA+|r_UtyM{iw|%=C@X2Z$DT0@jAl5`$w&8v4`Ow+=?}
z@4?RRGlTOy_w#d*Z9Nu&LH_1qM6aAx58go29d>*Jgw87FjbZP@EnPSABvkb4*W4(L
zBS|$nA_M*+ZfbqdA#d}Y$A489m5Y2e&z6|w)gZtrZ6qZPj-iGzI1nhS+T`b~>KY;h
z8bePE@>&bFS)lCGJs^Jf6Z2=L&ctqjOto7EbkB|HWyO%=uee_JRW>P>GOV${w4$Ev
zHVI~yCacb9>RRu(*h&hGB=;r-z|kHiMF#4pzCFzPOXO7c__xri@~v);_6dY(UM-t&
zY{GVHx}rw(iRtmL$@Z#6W<vK!!!-z`y(lyp8gL<$!Jeh-@X%C+tf{<VODs&FwAb_e
zj%%)U$CL3@_x1k{1Kx!vWGFfG+YjqK=zwk@T$JNr<gYytH->2Nt@Z&tF1iEIHuy_X
z5M{Na!Cj`$N%Icg0Ehp{mbL|^mn({0d7<SWiB%KMXLc28uX1rWyxh^?=~MuQPI>|Y
zR-$;yDo6=U)2;<%^^sYXlx=hO{ZI<190a~VXicdf#p``!>WJ?b0gusP#5!iK#)hN1
zepw%2sm>B;3=lW6^`}F$a+OM34Yl+C!z8WaKmcT6{sLaPt8^6rJJkg}8f~u-!%JZ`
zO*N{IK35o~<2^S%mr)<Jk-A*AYb>X{4>~*}*3Fe{aeRvB3c0m#{A^mjGuOgsVUsKA
zj-i>T_TJ$B&D+yAEMyv|fGjfoA0O>A&fhHr(vW&<3|?O@antq%N6P-u`MSM}up`1X
zf5RAGFV@IMD-WqM8<`2PKe%~C=gSkbudo{YbN#X3NDzVfne{MCr#&5~2^;IE!R{7}
z<qZ;jA^85_Og2V}A&9hYdQdS-99H5rA6skn0<cKD0&&n$!v7k6S6WQVpHRkD&M;tm
z{X6Q$HMR|39&n^q;Q}Hb>(A1kvLp$o$V7I_Rti$7$2rgMloB0r<^qqLCBcJ^6SpJN
zmL_$+C7tR^QwfjbNZxF|ixXpM46fyR0@5bi*E|o<SYi8!fwMRyV0?JwM1&Pf6s9F;
zfHsbmo!G@qV~FGAb1c-P#@lGW3${>N*_ZZIQ|TFQLQ^{ZHG3f)d3AM?PC}d52l&f7
z=UjsHz8}T`3Dw2IuhvFrzbuD79#_A%o}a}KqHVR5F{$Av2o6w0{24yLMe{Yb26{g`
zGKqnfy6N<N8{Ph#T+RQk(htNe?^B5vitU)0@wW_}ljk4fpT8uaJEwu`4jIQ3Kp!z1
z3G-B3kjxVCTy`7!g69(AyFtV$98tc&LluGJkHKgZK!P-rgA2aLb~(<Y!OCU#{UV)}
zu({^7oEIL}yR8ZS4!sCVEnMnC4)fjM><9Y*_~3ss{^-Ky6GM*`a>sGQ;vhD@sY3OA
zq{{p9pZ`ca?WmL0tJ-HVMNsv1Z^aGTuLvL3Rs#gZ5Qi)TC>G~@Z!oBmgV_ol3I*u)
zfXwtg+-_^0D2ih}hrP<?X<Lm!XPs!<-Iu+F9q+K8DJGiMKHkI9NzXRW*~=c8Kud?R
zj{TjQTJ}FQ$7ploZz{I3zYgFqrjDPoGuJYIyh;6YGH0*?Nj}7WZl8os4!i{ox=(2v
zVi%U=aEXD>ggn1}nfL{$utzk}l-Y}0C3|3Ls=@8@votUMJV_aJcFHzx;J9YheZ`3Y
z6uXO5C+qu_Y;iu8cv0DRDqno%vbfgQWBPX@Ys~~>-18C{73OG2i(NC)UX_eJ%`*jd
z+{#FZ@&Xb}d;DZZLqfMkIp+09?$-+SeR$bG3Is^x;Hf$NM?$Q!`Yy)hLJtqOY_dK-
zz)hN43B~@1S>dSbKFdN^r4CSu!rL1KzGE4qI!i@L09YZ{vB<a3g+xPfWl6rfj#n6H
z9>n1+Yq~<-;%$yl9{g_eFsYX44Q_I^Df5}CM|>dD;0ytz*s7lV?au**Uj`^n%xd)6
zYb)j4du)v9vX%7A5JG%*!zDRL1mD?PPh9QgZ-wJsw1;LG9#Ej$^{qEXsc!*O@Runz
ztTgjOa?LdU6SPD|);{gAMfUSXvdBJGr+Ya3F3}2bw=UBR$a2bV7q~~#PbKsfihUZa
z=)v7F+a@WF_T&D2?jcQX&_TE6V-Tp>!Je-{RwE0;x4zG|>sj?+*&B#;^Qoi!q?Eu7
zZvi#+CT1Svm!n3V-(R-CHM~)BzJEG}B%`kIk9(LH5gqL@=*yyKtKtFB3f7<r1f6Pg
z@x~vzk#o_|O6H{ZVkeeBgM!!QtzS}LG2`R03TeY;6)RHtKfWS_DceT^M>W&W8(ms}
zrm9<yyxyP*Aoc0{pVY^i58zLPwY99O{J3ES)b$OvrZjffW7>m6i{^0NC%fl~(5F$E
zYq#D8s(5`Jb2OVvZJo>mm<dY^7RI;Ey`%4!bH>9n*JypD;M}<|9Hp0oa7QIAU@4NX
z)A|Kxi{qmS5@8v}{*CQAG0i*TV+ZwJT<rPe**gb<!%|xex~(Bc9I6pDPs#1RV!T5b
z4q`A4m2-B%2%Wc9b$>k7!IKNip&dPC-!EveZ;iHCZ@baHvvyTwRJ%onGusc(KjIzL
z*O>R;O=Pq;$@+<9nlUZPWvz0sd$1!2eQ><WRmR*lUvN@BR})0@)-Iyf!lr!~t}lJA
zgRe@=AIFK!(cCW}om1hVYQy}h@v>@vdK(`F?@2Eo<)(f{+@g+b`-QCFcQ^HOKc%vJ
z%vQ_IDN`%;ChndvImE+z1(9LKXW)`a#Cz=`xRQx{)Y27*kC<l{Ps4z{qqv=)h)3un
zDp;UDUf^{_6o`goKR?v#cdbZ1_Lm?$c5VhmBr?X#&b7PPm8)ErEh%jJ;eFunbvS1l
z<az8LRIeJ{t(f3p`!T9|Qk*ut)bZtN5+v29^crONmjgGpkHb&G|2(jtw%ShKZKogT
z{vhUVC!S}!Z{%+Q%`X|7X)fPe7(gX>1ZE4;4>mS?lP`YeB>`Z|W0C?Hb?GuLCEsZL
z2rzxBD)pNnXIJif%P$cOh>M^Bko?XW7~dVx0-Qq5(+pJ`&+e}=tm;{LzyGT0ry%;w
zr4CD%(eadA=R8x5;<^`=u5+0CsBC2P{IuGL5Xj@Ux;CCCds-X1<50^r>Wr!Ez0)=#
z=pPtRa|t)*qgvo#7;W7yUx0hGf%E>rLD<8w9)8a=F!?7@FedUOfP<OVfrShO@F-ky
z+IX?HmCFz9)lut}Qy~lq^zTX|fBu=)1)p@<&=?`0>MunT*@m`&@mOBLxBeV>py!I;
z<Id4Z^XKhJpbn47N>jVat#%+p^r8M3MnJ|HeOT%5urpyQW9E9jy5^}JmJzXj<k(RC
z#f4QIaxA;HJ!*M1;)yYQZ$Uh_h69gV)7JrV02cnpeSNpec0h^IkjIQ-C=@$Zidm?X
zJz#aHw`HaR%_#H}JMH;T1U0;|k?(>3bU#udpUKuVuVlpEuy%7Y6WH=>+#Ay{7`8Jv
zC(!lRc$j>0q%N0%)ieO6xH)*Rh$<xv)iy|_^R)~#aS2Q`4^7QXFtxg(HY5k^1maW5
zNxfNS2&k(+!tFUTgi56ys^C&Dg|Ahe-;~~KZ*pY#JbCTI1~2{idE`j2>%E-@wxcy3
zxkdFp_}dqtZ%Y?7dajHD0IV?G<a(!e#d`MVS{P1G1jX^a1$DDYYfO7$3niGK3CHA2
zJ_2;}&r#({=`E)13$5N9Qa%>&Wl2_Y&5H{AinoLC=mp$P@>7_L?3DA43f@EFvwI#q
zK#kB__L=t$C{C*7)*+D+4*izh#_1(D`sSFwwA)Mft-pE;{?tI?#Z&cGAEKnbdK)3K
z6|&tox;EO*dwTwaB?=I2@V)mfJU0|p;xg+*dF49w4_Cx14Xsch9JcZ_d2e&S@B-%*
z5GFy)eD5l`{6o8Ip%f@Y>1Q!Hl-NYlB11ATJU5oVDTJKkqB2zArH`!M)J<lo2ZOo#
zH1*atbCZga0p#*yAqrzsL*Zx1YR7WHjFM7Z`m41uXFht9IUqjnl)B>+yZK(dgJInB
z*C$aNY5wsf&FQcgA>2B8r(LyvXj;mK>d$hvhB>n5p*VFB4x?(_cUzY;#*|lsgILb7
zd*_X`K&9-se6=0;x|WS&(XzEP+w@+3cDL+QUi)xRkk@5!dIh6Adow{W+}vd|KZ`DW
zZ0lyNb5zeH%h=zTSE2J9MIM@$)JvDq?KsC{*pgzIfinAZ!^R2$QgwtMkhQg*(OdYo
zhv@=aE<F9R<FxxiR^T;9wwj4E*2l^)Y~9V@0b(V=*TK|T_^DFbr*rP%rq-;#QBTO+
zqOI@!qGf93ErAmNi!y1NM?@RSbEv{XmK)^dSyYu9<dz|+zmxx5CYaQ_VyJ39<#!}`
zwVWn<GFeZDCjAuA8+`C`cAoW43wwWj)NpM6gVs{%#(AW&R(bT-`xHAa!sB+wtn8Kq
zqhoa%sEn6D|MpJ2p_0zJK-+O8Ksv0p*U{SwruUC{CJ66&Qu?-qQ04o>B`!`^P=mDC
zT^P^$w&44pHKyY}>Sj}?xgXv;FO0`w+o;8bdJ1(|Jo|W!IftxdQs_i(RJz2nr_!HW
zV|rXV={?gv@=prwYd!TvZ_V-9(T%LZ-0&J6h`YG2XW7Q|$@i}yVn>gd4I8XtE=r1*
zp_eVv<L4CkyV4Z8i6g$uLM1k(rDU5!N@R^&DkdyQ$k7?1;uX)K{$!U9kRI*$tDdp=
zr{Fu!1HaFrfQJgn9>qs-orabf8eJfCfRq=E`#|c}?v+r%*156T{joksPNd{k<<yBr
z)$rFR8M9fa%U4-jarCDuMvOr0sD5DhQXzHP?bi3T4@Nwg{nxxG!xiYrM0j{*<KOfC
z9RvH7d_@R!oXa?WWd$<k-tJeGi6ZYd3bNXbu{nuPyb`x^qS$@{0CV=M3*$-wIv_ta
z+*BUq9QATb_&+S`&*6^f#@jOA;Kz$DLLos9@ER9DIObMaq8aT%H>S!W%y+v~I<%t-
zvhQQ<+yQc??7<cRya5nTDB{GRk<A6Rn4_s%5AaNSZ+7*=&X}+@QbJn*85YULCrv?g
z^<l6KkZ$2!EBB=%oTvhZS(Cu0KJ;_w65;)PoyVSsgiobm-~pS~L=Eu?=)$=Dt8LN9
zE|HU))6ds*F1MNfHjnNN#(xo_R2Xw+VgQL~N){(+YiZaRA)MX{91<t)tW{^^x_|^_
za<Td<mnkh<e!egM7J3j|auj$}mVQVj<{~A2vZfjSJig~rBv;iRH)}8eea3J51OB0{
zD&KC!<uVr>=pg7MXJBh6c2wkL6h0g^U}drDAt3U5(OhS#m2KrR8o(wv^40abw^=u|
zH+YNXXKj}3BDKaT>crY<9M-4k9?a^2ZKP98yL<3HtRieuyoXv{z9vhZ+jLEx7(t*`
z?hX0ziD@JE_a$S^*w(PxW-fiXhv~VrigDu4LKMBEIj52Fst*WYJbk#7y|*fUqaL>p
zd+dUIMDNimj$(>aIHVYR;w%33N&kkECy<4N8&?`**fB#ddJTaMvm4N%TiT@R661M)
z73ZZTj%_?VfHULS@(}5<8uv)BRuTw?s#Wli@w?_(Y?UO{^cL`l*~$??_&aSVvSlVb
z8BJ_0t-%1!iP(3OP4(70W9EWcHmQx%V?T4TW9MSP?8EtIyN7<E<ve#VR5U8o_Qi<q
zR&a)NgnY5j5tzzp%*clLxFl}AMq($j%>wi{F9<Ng=~|CiLwu}1YY>?ABP_SdTg`|w
z<(HAyV|(Bt4;N}`mPqQrZ0U@Io!wbevjEKyO{FCOiF^+O)f=v3m*ZawhNNQD%RAdW
zzb}!KFiwoO%q51qW{c2|2?u<`ab9+HGeb*RN=}W{uD1)TNF~xus3=N<^D?A#h;OMk
z2fESv<1;bxK8jR8oMOAP+3nD4x_p)@NA0z~g3+P%k7BeQmnPz6bQ_*jLZ*;;SHL_r
zpZVyza~^;H6v)Ik!ouFdz`>X4t<o?ZG&T*W%(j|+?j?L7AIHh57<Cca$QT}Z(x2*N
zL|&&9%qG$bMp>4UWSB8)f%lt++)wIX0{IFCzmrLp3Q*w4f|bOMw@Z^S2G8-Xt3KOZ
zaN1QLtI$%NU6jTa-%&Qlst%WyDwiv}|0-!WFl(nHEI(;_UI2k^c5TRQ9N5<Jep6I>
z<f81#CQ=^ijTT=jPAii)_da&UM&&Ol`_!sKp1s}y724`>z03|lk=icNrvvGl2bpvY
z_Yn<4^)lreKa-r5)><}T+%n5bf0Q?+n@FO>tG0!L;5j0X6*J>+9C#uO{wSVl{>~`l
zyqvb1+j{zwSDD4sm&`<RS^aUyrM!4AWUQ_SEnjoI%hoVdai`tO72S}$VE~(cIgG|d
z;r;henPoo}DO=qa7)?y3E?eH#xEb?xu)%hSLUZVwu(C4mK!@l{^b-IbegtLgmgQ~g
z*cesSzURT!++t)d6%;a@nF~l)&+<YhX-`$T-Bw74y|wesGsKQw3z;ljG1FxB)&U4b
z8BB8b=+dfz>MsY5X>Y8_Q$Xyz>gHxIrA=_^hBEF+FD*kG&A86*ktW?)fpdJ5Jjph}
zdGHhX)5hIyCrc}O2t0A{-Qx?KAEz>;BJ!_Si03-Tduyl2LpD?oHSRKN*XCvE3<C?E
z>i_?g@kK`LBjx?-BQnx$AFhOKeMHQuT~*%$P&DI+UhKJx8#aagG32nUt^Pfuol<aP
ztrnBdn?0h(AN|QzwzrWmIu=lHWTIS&w(pw?&r4aXloWNwWwzO>_6{eWYm+#?vA($C
zl0K2B$+Ixw9g=a%1Bb2dG|heXAlW`G{AHcWKK4#JlkvT($Q<^A<d3t8f#`*aYr%IK
z@0I%UdHt-ih+PWR-gyaGpR|{0m@Ob`pMkH+WIJl`y9kqUw~PZ|=G0=eDqp9utc<3u
zutOS1s3Sp66ECp9^m1-hIW8$4nAd?#=lXIPf1c~PKp7RERoWjfwKOzo$a!pag(jD!
zw>(RFf8?3iFI`z`uj;|Sk&D*ObAfNE-5xgVydXjf-R$*(6{p+=K(xqSj)0h51hDt~
zY(FGyf6gkq-?h~uQtH@}sg!VEuu2TIf-&SX^;7ViP<>K>!Kk5QRDx=&nf0qHr)L~9
z{_lI*F~gVfLm7*Tm@HH3;@ox^HRVe&&eO3_>z;?-G?b~Vg1a969gZGYv_u73i^Sr+
z9VNVphok!Hldj|FggDlu6N^kny@fp*45NL_`7?)H(TL+W*z$iQy4d$!Wk-^VEjuw5
z+OA_Icz$fst%9pZA}SAM)rA`fg3>s(ScZfi0&MCr7};QKf-nVqu5u{8*XS1u)^7v0
zbBaAZIywv3ch16=6sNa)sF59)qYSl?bJ-9{{i$Ht2QIPHEHF<)1(mDp&{XU0=cZ2M
z>*<V7DrEUQoT(Walx+P9=1a~qiNN9!OmxNeSoq2*dw<<8^$3bjs<=$-vG8A5qJl1L
zGw9y!XD?4K<9<i(P*w8x#Vu4h2xeE~Hh28nL7Ag&kRz?x4AYK1w$S7jQ?aU(9Qt{p
z!5pEUk&nAoNRe`CnOX5dZzljb=YA@xTd+0bMEuK<RJIiSSSRK67OZ=~+LN`K%R%Ps
zYfl4ehU@Lf3NnbpkuS_N>5Vm&7+Z!=U9w+y*+Nh#rQ>g=dnE<$nDLM=s_X5r07J5r
zX$Y4gkOnIMbImv7%22J`IE$z%d@1sVqh6Wv{tH<5l9gv-7Jtf*PY*jRhp>oUYN^0`
zSQY$pt&!=Bj9PpO)4S|B;T`;>{0)MqESvA1rrluw(zd(bJ6A}LP{rVJp}z6nMY>2I
zmBsvXe)@TFDP3Q_CCt65#3f8SZfA4s39_A0J6m8FId>tp*s!G7=f3GF779G$P`M9W
z<aVttGWRU~%(a{gvW><rjt$5EtDgvDKJ3{8<4CAZ>JN&a85Q25`E54W<m}ed7U>ha
zdhb$q)7%x6aU)pBEc-s`IyJm=#Fkk#DwYni?5nL>-fTI)EJu<0`X!`;dduuPcSW*A
zZwl=dx(Gb#&XFYeX!#HikAMi$**}x^@1MWGaAK!yerQ3BhWEi-Z|2;O=dG3$OHkEW
zWfc2CZtZs2n1gwUr-=et#Q=0aceoruZlFwu?@UYlNAkhCL!`v_dRJXOTevfONfNs1
zAsPZB5N^kH@g(@pDl@8f0j~M0#Gf$8sG9HXj@a&nSL>L2e3usAGgDNYKSn8LF3thk
zGh16Od?1;1m75<bPW8X8D|h37y@Z2+sH`eQ{t11&b<+7w06CX9Pu$bQjyih1bZXW1
z1FLxr24_r<BgE>?1<6(-XgSA-;EvlO?pL>pY06zSRvxNM7Qp+sw93P;5c~5>PTIai
zo)8ZDTuvsd_3f=<n+)RMlS0>Z61C;&x0PJ)lMzC71NN2cROusK`8CX*N|_}E-&)!O
zI=Z^0Sr$04DpH;O`I%j2B9BC*ardO#YK5gKY6r4SH!<uH?>e7=5+W<?yPc`hSnVGc
z$SZf}%xUh*19?7Z_Q{9b=JJM{_XPN^rl6}l_3W25(_($3K_a*8WwJh5{3F>|{2NuM
znm2g<boJf=0TwQI{1aJ4?iN{jEc0<k)-9Q+z(+Oz$9v~9{Cgl2{2dim9GSiX$ilWd
z%CYjU`TyfFWAOpjLuBUm$J1nZA7)@!6OcUKSk%5uc7r9f<3up-y-Bldl0&s+ppfjm
zV4zt+$qYKU>DB-`?$w{Nq|@_ywfG39{;O5h?EsGJpOufUbzxs^<N57JD=2hi!c#Nx
z9}ouZ3u7^Vi4wY7-<6o!4l+S$RH=Y1lc>=2=fe&Ag(1<;#7?>U#xH79Rrt8cEi(mp
z<%Nx4{m->MxPFH)${v~JCui8Mnkb|sBYG_2_-NTN`P1OK$*j;b`EG3901tkOOFiYR
zvyD0j@4gx6`Fgv?4SM1w2js@>AG=)*+Sd2e7MzzGX-!x`GCp;-zEo}A0mMb!vu~`E
zA5Tc)&V)=XES%s^n|KVQ$RX*1roKAdm};i2=5xB@^krq+<_v`>S<?Pt)ZU`{EMw@;
zrQb~kYG_H_66H9F$$up882)>4r9wU^`S9gDDvt**ftz@$Z3^@@ndrU>RSS8wuG)aP
z_v3pc4CJ|5Uy!eV70zJo(VOML|078U@pvY^N5yU#Et@)z@!}}KUSrxhMDwTSBBH0N
zPqbR8a2~9Cro68B29?n}_cs?Nqt(#gYAY=?YAZoG%=BNqle&Q!XZVe#g~!Q4o|NEo
zzhfC&yaiW*wFe(M5jgQC7CBu-IRm(WR^bg#9!#awJIpsW_Oypv{hZRozi-0xmxSIB
zl>m<@yYR^lqQ3Vb;D9?7?o4^*tpmGyb@YaOs)Q$Qwo#IOecza767Ob}<cP<mRgs!E
z5oJEsLzqsk?p|h|XOG>F>RctY8~Rq=JX}6KL3KF%e_x-O)t;z=%XeY;7eQ%q*i^O`
zQ~yY8ePp}k^FGC%q}MN{yR>_BGj0cr9twB$C4E=zhs)j=y?fJTT5Xxh2Fpxea5d#=
z{cM>qWQNH<N#0FSI`zHz<jivQVLt1}G1zfKO;)w6lJX@x)<FKIs+O#$QXj~zf%Pw8
z>eA>9=Kyt{NLt20!`Rh0LvWo2a9rEw8&mt05spvN_Fk~AU}n(*|E+-^r;)V<7v-a7
zmxa{6{P8ry`il&;{m06o%fiPJ1CNl+p6x(C6bat_?^{pd$rLTsm-eyOvB&GuiXVA^
zARya)Lrr<Vemq4jjRq~nm+xhv_PWW9W!2u&&_1~?A@g??`IGJ2$2=*`<{XMEyTH7<
z`HC*-yW!sL4!)t5W1F;Ume7pO^agL+r;O{shc*Lya#NNeI96x%m{&S*X)Z~Xt*3ub
zwjsgQxOEs^omL|cllVts2W|DL5#<a%wcFA%?^2phek^<cxB385&-Wa}e*P*Nh3WDG
zAe#S3tX2MU1+JP`XL!~S$<%blok85*LH%$qzhl^>h5f8<cDk2l{_}A>zQ!$3_VI_l
z?S$|Q;LZLy?2@cF{d^dUo1EWGmoV3O52b5%1Gb$*Xn%j3n_bWVig)d5?o?A@ywT-L
ztIK?EDDHN0z0ioh?3FSavLiOgDW&#01A*9uFa3%sY>hmjMatLiH2qij;Tn_;J5J(v
zdm`Mfx^MN7#@Jun9&5Zqs2F2P->K*<MyCrxUwWQ(r3cppj0K1O7~p=_Di>txnfr>0
z7I&y!i25t0<k8?2e{`%G&k@7Z%ex=jg}h3h_)n^^{%xyNMzh5SV60(mN1!y&BFSYv
zPOSV`ra4F#LkDyj?KV*Ya;ap(WQbD>57{SCVhBu<zS7mEPwF_qX(>qxiHzymxxIJQ
zQxUTCeTvJlqcTa*w<vq3(wD{3F#RrWuxK3{&@uCm<i`Ln1I-h=H5i^^47ta2&i3X%
zU@_;;nX~^|kRP}Z!-r8ae0~@dDil2)O|&S+x?$k8X;or8muX)`*w4GoF01=4QGo2F
zZOIe3t#lr6E~2~~?1>AqC&iEVmh`z(R~L<z@b_O#Jbkw6MxH{KQ{*%0;53_A=uSVz
z<Av=R$4daSJM}qW4&{nsULIOpCBRRw7(X$6b}ODl=oof)F+R>lUYg<@2tfe_lZRMC
zHc?tPA7EEqxREe*_b4ZpR<U8|m$m2Y8{!+9v>RaoW?WD>C;{Y`fn2~>EoE~3@0STc
zR`H2_&pN`as&F!_0{|h2RHp{W)fl!tHIUTdUUCCwu^bl?SD4JfV-IP&{sY@DAKI11
zwp^lj@hQzupKW6e=ds{FeOKrIdPx-NNUo8Rl3u?FypWRKASEHaMsl6>2Ho8|++z2i
z-=u#as{izvHIIrOU{$<jU}f_mmGPnK53qZEk*CDJc@pw#*RNeuzIJuLQbQ~$e$(|G
zrV|(_#?BW0YPi_a`2ad<{gnH221tNI#kOg!b0O>8v9B~cSJap;pL=yTtdw2SFgvxo
z6`e88qq0_BviY#p^Ly0DHpM3?XQrnN*D7_V?=uGlN7#&#>Z60DG^bHjp*iwPUxPD(
z_9B-uu5v35{?6<ES~QLuSe@$lz4s;mO<09h;#SU;t%$Mx5M-y{tgve(L!VdE&Y#E~
za?|3?)h&>GIy=ojl6`ndhI+ES*tc5GvSbJG^%L~N?|d@f&YHYbuS$QLjH}^Eu;BLP
z`D+)(?sw*UUavd~1r^f0BQwFI8Hb+aJ8$ofN6!6);7xqA7nWQ#AL$_u_fM~Gj<|%6
zQ)-cfwiJ?LE_;<XHu?XewZsJJGn>|fDN|cz)u56I^Xf~d@3PD$iK1-Ecphd?d1`Cs
z;Pn2H_S8Aa@n=hV9zwm?4wGHv#3;##?zW{o(@5Hii8oRegldsb$Y9&^<=>9#-q`yT
zdu997qHAZrJl*|{W=LI|p28sAjnMCFSv=O=aoRe`T>Dk|er-ct4cALt7ncV1vJ5&#
z7oPMt)2+6e6KYh&-^HGEX#68#ywlOGP}ILAwPrLCc?sHBx!;}|88u*OS|FypC!3$Q
zZ_!-q^JQ9P(c&xW!-v#s7o20OuU^dVGNdZe$EPkO+f)h~yL1$Fhwaq7z=7rS{js80
z#FcS-m2~J_-P}haL-7vQ^RKhE^dm!#Fw6TFR_;_?rRFzHc)_h-5BK&T#rnf6U3riT
zQD@pxXjR?9N+1gBNG?v^r0B)KGnYT1_d46+8K_DEtp~|&o>+XT<k;xr>d18M6g-v|
zy!6jlEn=a}eIqcdAQAw6?gj>YXkmkRjlxK(0|($!4tEhL_bKw&t{V7DQmI+>kE9=T
zp)u$>@ccv<N;}(-+M1uPDOJmMVJO-$yKN5lHG#bJCV}j~o~uG<1KDyd16PlD>d8fX
zs(n2fH5Pbgc>nA!Ww;_EgV=;TJag%(zIZDtPCsk^FvGw1S>~@0^w(#feAm!-71ECT
z<I-7p{|0v2kc<wC5T9}=stA*@{I%X$Nq^mhW3}Hh>}ejqZu)OcJB$wJ8$pc#drk&D
z)*+5)ewVLkojWiqeU_50=7b;U_izD4nS%LWNQ#<+W03#5PoDnIU1w&5qbj`YUp~oU
zar$#V)CsH^kL22=ta$AVA^`7SI;4Xo)-Y<qL_dDWM{No8M!Bzbr9ETO_UkVx!^f?|
z#YLHrq{YE)*9$|Ivp9Bptc1l3l|$2=SdsPT^*XYVLhiw->-Jbfsg)}ptWloYi}mLX
zm(@{N`ZSbP<73HUsKL_8Nr3HL1oHzb8WCM|VL?Sgo6ccM8>tan%Z7UrL1@EwsAKa4
z68%ea|ErY!?E9|X%F#Jmq_!f}-WOG-DxC%67<su*wAZ}Gns@q{CH2H*O}mVvUgq;W
zx8&nw6iIMT?lBaW&bryOqBZ!DMm4g3ep+)42%R$#3pq=3B#W3#p*asl1wZ@!V0qh^
zs-QJ53-}-&x4!Z@2V?RccNK&d=A#vo=KEdwE{dDZs0;(nREpR>RYi$OpR`B6Hj%Dq
zsPx;!6l<)a66aF7$gc#mP314Xc9*+iKjqI!Al8iq9pO>tc2SrO4VytARn|Gb7227h
zT5nSU1(QVIcUD=_2vzPiR^Otfv_+biFr!uQIl)%aHiXjU{w*?dr}-_|9A^F0^rHj!
z;bk%b(vLs>KHy4ueFHz`=b3T(t?j+@vRfOqCDSO3pm0|^+hiB84Oya9N}@+$oIglW
z?u{`sZ+pK8n+NL3r6NwjqIDUh2jree*Dgl-{dlhACf>o;8|(~?Y27@?My!O5oIkV1
zZ@a2L2d|@k7;1J791Lu>dmyXLFg~muz&(NQt6$|!(@+CcBC^8!hZWhLv4OHk?UtWg
zoR@GVR(pZV9)!=ifRO&Y&JNdi5X`bzDT-#m`J!cBW1ctUw+>nVBcb~uUD?u^5rovW
zS5r3n+j;npWCiI%D(b-Pcg3j@d(9ereby#$OS5(><&0gjOy0~iwV_<jw;=}Ib81@h
z{Y^WztM|PixU+L33e>O;+M@F_dD#dpxOlx@)XpE`U6Uq@g)-8Men86kvqv^s1%17j
z%%9L1zFWB)FMgh71y?VZyJ9r=*C`xBUNe4*Y1SV?n_|8$7}D>hBk;AbJ(iC247Y$o
zJQC#<bEcK#i7kj8B)-N}zdyWUb_R+|U!KDdNa9eYIoG<qR3eS!YFsup^B+mt40{=(
zyVBS2rhcP?^hsM`*k9hB2M8~Ou2uKni;bVvY+YK37^cGIu>Z%=mB%yv_<tQb2=yr>
zS5l4<DfdVya$j3=m$Sm0+ej?3kQlL$E4R&+iP`3eoO4v}VdR)|=DtV2eSZ&+J^Zmh
zx4mD_*Xw!xu+vky<htwX(|@Xp12&TRD*Z6UXD`?c=F{c41CA%OTB!W_!g$|V*0U$4
z6}<|b=K4OoTr84~4e&TordE?VFg>N?W$kJ>b&6S_O<GwaP15xN8OKHShVl}P1S=j}
z3^e^i1?)=swJerQ-{g$$vAH0poB_ykAL@l@E=Bc*|9MkPp}n1Gg5yg0g0wVwE%qw~
z1C2yp-J_{WkR)<8Dm+{-i>5Y?)UQ0Fn#f=^^^x1JLomXD{J>&~_NAStb1KCD?(8nd
z9ozj(GTGg?PshG@KK#c9wDf8{gfamx^^LQe_c!>(NgwijmK71aKfv5QW6%L&Ppi&2
z^%L*_w9-1HYmk=C(g}BHiMD)q*s(`n?HrPB>uv<gRQhq`;Jvp~-9(u>*3Mlyn7<+{
zOScBvc$^hTSx%0_r;1LO=)t9+kLAX$`$5|(MIG~<k~Ni`t~L9!YIBl<3AcDWGG$R#
z+!Dvz*D1Zj)q_$DED94;Re!;!H-7|6@#a0mp7GE`xoVA#>1Dt<RL%>20;*Pv++~!o
z|1^7)T)Hvaj(=oyCn2jHsmIL2`;}eZa3i5AG1<NFqBvFSfmQN*y8{O@6KW(UB$ixv
zW4M)EguOW<raRbfwh!{@6${guakCsx$8T2a&0h&q5(Q*XSQXAmj?GIhFBqwJlL424
zjT%3MeDfY&S<a;JnvUxn4TFsv7O}0*=sJm6b{VM~tcm&)%~qEK2TiZCB*w5smr4~U
zbKH#%87J4B>1D*vW#Jbcy1u3r$}goGitK1SrkQ9?nEd{+R0bm-a!W)#m_yq+SB;&j
z;@uB-+fK0AvB*dZeQ7dtY%&(&6JndGrXgld6Z*Q1rxx;k_{XNcV;-wu3^80+nRqrC
zXHT=AdBgu+nIX5ZR^(wg%&WSM-UHuQpPVUd0Df$qwX+>zb~Fj2Z>AdfWWIEwbp|v!
zRICpDa-SZ2#{M3qse;GoOL#N4I_NrV-5|f{L&@rjS?NWp0L2RA9c6^)_+X@gr}+~s
zRWAF?19+Cie?4GLTyZ~UnQmn?+S2<H=$*9AS3$K7Kc<P*>H_C(;2JBY<oaFz7cDRJ
z45d(kS0@(2o7b;?qXtJJPV}ZZ#b+Z8HLd%SeW0KaIjSU*vwRF29!uvB3<i6DPZ3=^
z*u50Z8Sedx`Vk0lpKxC?!GpS+uTM@pdX44bIf{L7EB!x9v34F_7zZ4qK_`;>)zeaT
z8EG1-Jd`}T!aB@+N~RQzqW5y`H$9{lf5QFWaM7a!u9$U0bqqd=!o=JaU#TdY@Hqz)
z!128W^9BwOeg@d5j{Gs$>$JG1cU~>UT%{{gZ-V!6)sDl!q_*(gD%CC>QL}k#&UV)+
z8bM*gMeY()y!IR8Yl6|$`zwdi1(%eUX4AjQ)}BkxJje?>Go$_0vX11Ye^sz#QT$=t
zkB#U%>SO_pA1L*;FZ6T1^zbb@$pNggEBBABr*76~;3v#!Z)T$)`}><b@naB}?;u43
zA!+Z;2Otc&JYW<@m9v~-k+v5RF;i--y<H_l42+yv-}}`GX>~S1pJw|Py<r`FPgS1k
zv^xHmO8)YV<Su@5QpIA(Z~|`8O;KIg1HDTQHs@qFhrC|QTxtcWc%{(T&Bv<b_d;E8
z$tdKc?Y!5?9PgfEC9dA?2R=;Wwr+c*`Pg<C`0*AC5|8$)9}KV?2M=XXX7<&SJb7G+
zO^=!64?qYltd(8nt~u#sg<roRr1|2^m>|W^+eIXQCf2IaU#@3gu5*s2K_N&A%@SSw
z_*h@-z!1O-Ci!ivF<cD98Oyv*SSm)5Q?uF~Im+VOm9!=HuBcg8g5-aE&JIkVlCzxD
z_F+T1KF$JnhdiEL@$S?a*K0)E@TAJAf%^U~e}zoM0<7m+DTd>tc1((<uV9;2e3m_o
zV~DD<QOZ%6<S9D4OkMT_za+ig1L^jekt1C$>#r;EwAQ=Q3!&t=&wXP6)lEl9{><|M
zAu@FS5NW{-*wdpe)Fu4g0(9TeV@^-OkEUC`c?pK&?+dJA?=CQAo7{`iHzH^}WKnde
zxN3UjRKoRgIYn`a8D`)e{@0n!$5|@AS1PX_AG^R)<a;x)KbLQ7ro3-I2<D|#20yoI
zSzWru=<s2h7<{XVbmbZj=-;!vfJ}Dpb*kp(RjVBGgGq5^DLt<|yRV+Nw5$%&+Nsv*
zuD2E5M%SWG;e-`QUX3E-I;$sypHrJa>5AB*eP2S;iP*RL&q&xJ7jE*IvxZc0Wj@`w
zVPuuGuo(U8=p(5*x6{g&7aZ+=g9C%_h(>a4X)v%h>0Y_PaZL+v-Yf`dpN1I+h4_om
zTq&=0R!VvuTRhHsH^1zH?t|qU$Y&^ci}l7wNJhc)xILtiWNLSV`U@wItAA!(Rs7RZ
zHCQna3axnIz#>n?wcY20hm)CJsa~`FeoPh|-4>k!r;}-hV-ICZ+3@R1+?{(_>a(hq
zcifN6pt^jbJNh3(B)_#d2+&DXFJ6$TYyLe{{Y`Grra<=Iq88FfK6zP0T}(7TRgU%(
zD)&R&is%}?9On!(CZ^SdRu@CKkMEwt!KV;?{6ez2#|7dVRjy%c>0(RTCq8+~Vjbp8
z=igwTOr5f;c&{fiKU)|}hK(aGg94AR?$eCi3<dv>RN|@le0!TyE}>zU%|ts5eI&o_
z+Hex|eov%P5{Th@>4D8&hat($t4<`_=TK0P<IQDVAM`j{x(3}l!v1hPZj0T&PAOG4
zoBXmRBD%Jw`bJ+?eCJ9Jre}k!As3jXC8xuCGp#*f%vRd_Kz~#V308IS6Dkk3dogcE
z(Xg@VtdVZ-iz@5PZQ@Gnw-NbY+?v_#y*FDwm=c~17Z1wAaagxDrykIXsDt$OMG`{5
zO2RRb)gl<?)cKe`F)x`>0P5aWYHT44dH2Wb9YMJXxB>{plhZ!{e5cB1ql~z&x}ur@
zH<?l*pyeYfdmAT)Oc0M9h$I_Jva5Gy$6#(V`4SwdP{mzsX+I((l^yO-Q6^J^!w62=
z)=aeT)qJcupLZg<KN1eUuzAL4eHSfxwUaac;`xs!)P~&pL(NVo+BxyKeLcNlH7e4_
z5n{wGx%c5+uq;V_6st#p_R3CUVgjsFaM!61=oI*i%dJ^D&pYuBDQ=fYXE$z+NFKp=
zBwrVK_>=7NkEDO{d*!KdzfZpyN>-r4hmv1Iux7>V)8z-(_}!!%(B-5KR=iEh{$S*%
z2NsHVmB0DraZ#Yxt4jHyHts~){hTsE2-3*@%U_yXbE&&r7mi-rSEKPom}+ShTd5(Q
zXTaSpHTz$c!f>cW=C{++j`ZHo+8T!sKBpsPNnV)rfIt<8vc3l@!pU(89bc2W-Ir^M
z76JSooCY+1RPobXg%MUX*b^Au{!HI#M66#Ec6YMz@i+uSjX8dp&W`?K_^dA6l9Q|z
zQw&8$tPH?RZ}nQ>`Butgf&mK8T_<+I>+@y_G~u?cpVv1%_z%K%g6qDPo850!%(73}
zw~x&s0s$6qUh`0?8_PHR`|AgIHU;A=N&M{M{t%qX9mEGF;Klm3NMb7s^!%b`v0SI_
zC-MZL)F;4mXu*Il9e$x4F<JKBob~93!5<^U_uv@?>M*Ms`Z87|0erc1`ArFi9eoeq
z3db>u_+G!I#^R1XBvTtZI=|VI%GxiYmXiN`n8)VSfEdKp3cd&9Jdk8B((=VNC559$
ztoX>*Moyw%0}2Kq#?)5lIq`U;slF1FWARmhoR`XAuoy`Rlmc9Oz?8{BpoJ)MU{IKA
zQ2EZ_%I1mlKhOS`he*9h6Wu`?sU$OjGTUAETxgnYq2rC$G9!T5KK`KFEfW4HVa?K#
z+_7$sPe#Bi@ZlZoS=!=IS&E8iHw-K}pgyCV2tSr97~Wz(BsL`XBW3}akq@y+kvFjx
z$vNhn9joo@_lPtRb)B>!bNr3kq0jeE?y0Ng^t6;*J-QX7c=e%u2=>d)PiYS-i%-l7
zXcQS#%yNAoq7&_~^T^8UJowFbIdaYj9s(5t!2iy|oTkEPg18sN#9Cq#++m=sbw{+N
z<(I;+Ls>r+tfHL5;5tj#bG#0jQ&MzFrhZ>np_IK^V@XeC)<`FF-Tjq{8ZsH_ctFrv
zn655U)YT+nHB^hkrJ6VgF=>6UZ1@4jEX)w~B{>lp*eIwWY*Kp-W0L7J>j9M595z4n
z!cZnFh#2qYBIN~uILv9R=s+&27peI4qE)@=EfBD~*w6ag%{+=R{pn+KytHhC(pqLw
z$Bs4(RD>%}>U2A{xHTkaI^tCkYPT?@ee1Y@3eu+;gxcXsP^ZGkA56-MLKclIvU8Xv
zI}1SRBCi|Nf%w4pjG00!h-TBa1mlWs@%N&)JJWETbrQr%`^RIw#uFBe=T|7FFOR{(
ztk3TItrZ^6KV_It|6^+<48t7WU;|(f5<=8*RZsInxmE#+oF`J+z<aJne||42{j|yc
zk`Sa2+Jgql@`nxwHYJr7k9Gaek5--VkBxyiixhmMVVG;CZcP0}9qgf1T_T^H__cz|
z4g2q62=+O=VjR={74QyT(Oe9rLgFtA&v6!R768k!cHVyuAdLXb=WWErli^wBRQO``
z@V=$WDW8By54J+mt#-mwpW6+W^`a8$3?|D^&1-YEcebhiWAZ#cX)Jri7-rH<=HbUy
zRm6FUsh`IqgR!!R`I~e5KCOE62u41i7VQD^tpn@aQ>6UcAM<MoArA7YT|9>t>mf@#
zoA{P-*F=@z)L-$xWq)T>!7XLQAzAlE{{09Gn8K&@#xjGga&qO+Gf*69IP}Gt+nuLE
zj{}Qj+MYUG#JdKYPQizhhcBkmTL<kOU0?%Dz~|u7)`$Pt01vs^UdP`BZHIZ}Fu(c~
zl3)E1>3*07e+^ve+e8E)O%IESsqOV6m6m%hSMRcVgUv0k1$QSNZy#qA|JVP;hP?xv
zC6NARA?XW(@t&qQ9bf|8@=*cHR;@Byvd5SAELbq<L*@v|J#%b^i44Gdf`h5qNF8bh
z_~Ow;M07DsyxjV!#K-ZdBC~N!>%>=x!n+NU-IM<Fg)H)T#Zks$wm%!)NEOCgX?4Sl
zYL0*VoxVh|5PFw&Y2W<7&P|SC&nwosyU3zpsN7e$D=qO7jHpA?Bo*bcJw$Va;OngT
zBm0+6dT^Y0y!pn&rAhRu-Y2^b%gLY0il9%Ka{*{Ug@}$&6$b`C@@{V;6{R17O<f@&
zkl6d_o`-0Q3GzgGIaML9lvP|`UQC7g<mWE&&p@e$a#!pt#`3r&{;_oo2zI)v7s3F1
zvyjHKlnm!>fzCXOUQM*vIO+vt`3A`bX3jOJ{XGOQ|J-=`;xySTP9_uneg|}WYZgV;
zie#CYn(thZl#0+SO<ilJSmOa6nLOt<`%Rglx9r^RX%tOIsiODo1+l3uK1_fC=XA?f
zO`%!xtJ!@s^hW3-u0$#qk-IA!COOp%>8{ncXv8QW+sN-fT2u{`)aiC?wUbNgN(nTJ
z?xmMi&vChBm+7mRAT*y#@5kFKzBRrS%SNdtxO&)??oJXy&SEyxC+yue0Fk$cjdEp%
zrp6T<>l9Fo!OuzLe8`=5teh<cMV@I%m>J%|X!o1>y@moS<-@PCr(R3Hmp#2^9oLi5
zVBOqE1$WWfKTHW9HJ%Aw9REq4Ex(olp@~(=4_+>%jhPiF&JJF$sz%oeBF;lSi?7$L
zI-y+OPQ^T`C5>h7%HW>22ev!lcYgIl`3{#hW9_#z;mpDVyAMqH=CvIcLv{O8>CRc*
z!pvK`Bu}a_WNXOrM#Jj|RodX5DRRu=G)lU8$`^Fkm0&_s@hd?jBu_Y&pG>2mITiE~
z?gb>I>2e$bkTGiX=Ft3O!KvI-2T(R^zqP$SnR(M;fYG^>R@+7rYxaE8jN(Y3>r8=q
zKIUjPxNuqs5@4qD`Sj)D$yD&Sx$Y<_#@!*D{9Pc@L_X!ZFi<AsKf#cu2h3^vCB1$2
zsXzpC6}+9@AIohhr)JL}@dEGMGVirL)egvl4YUZAyo^)CiyBtfg3L&<_pO0>#3|!$
zo{e5c12p)8X~vFm(oOSm^kWFmx}5U=;MVak+MU_4e{4b~DFgnNz#Dmd&(4=sN4O~<
z0FN)cL2%5tQ#B^Tiqt|O#t?DGrT6#GwiTQRWP8DCTq1g?O$G)Nv50he)<^Q|LQ+?%
z;@WIe<Gz_zA&QJu_D)#*TTD#~q*<x|#l9bjdzC)9r>8UTpT=n$&pgyegL*bZezB$s
zaI<L2GQFmKtk};hMB**=eKn-*<jH)9|63>mC^dSut-4+kZ6%`XGj(giB*a1Ep#M>t
z>r~9b3nCLxGs}CgGDxOUbL+KBEKh;bkGQ0xyHewvN|6(H5b^Z*CgGlgLYS<HfJO-P
z<dkLRwloWwB{dg{VnPwG3i<fKk|FX}VDwk?Y=W6`M@4bYBHy(zUa6yJz?a6MFw+A_
zzF)9B;H-Oh^2)|+Kwwf)0%kIXDtOsVF%0yX4!v<GO`&z-3X^(JVdlFcKC6F70iwtJ
zdv-ENU9)+z0Oh`36Q4uGXMIC@CRtDrxd-lM@LsNeBGbIY#MIjZ4iK8iY>ttS;CtWF
z%1!<*un=lb8sfHGH}PC9R>-vJ?hT!|)`C;MB&?N(-QE|L+f{C&s}}T+O@Dn*PByyM
zzam<?Avc$ePzI{Bcbzra%97<anb|Xl%hQd|0<GeTymvME8k$%bj{nUv)#_umGge4f
zXPs|G?H^kS1M9jmqb0Ms&iMZMAj-{nRjCJ;a`+l7yfSRKyix{a6%mfVuYh<z^x0*~
z@cX8j&X8R%KvH%^Chyo>q7MN1UIh`0pqW09l0yfP8_Rn9@A1+~MLucwY@;AaM2;70
zT1^@h{KLsm)(COPU%@}rJ{|h_z`-Z79~Kdj$bIGRGq`2KJk}@A)(UnpO0?bB&%;5t
z+<Og^UJ1uvCs}dJE!5Xzwd=R(xqNYkK4Kiz6p&`)`EhYF7AAYkN<}5S7{o=8>l63D
z;-|P0#+~aFDE$gS>4;s4QG-6^N31cVkiv3iZi<g(>XFN3KB8qC?C2!BF(7;At|5oy
zl#Ih#`nK#ll1w-y2&$FH?U5qSTiiL#N|?&koBLwy@1PhV$IENBeJKh-3yRZ9QWKA;
zHE&doTK>nTgU+%m+o?!UP|s;c3K2rL4XXH8{<LxuIwP7)$2pM0C*Yv=VW#ma!J!`O
z;e%Q)uqO6!?Ss!=9S5t{y#=T;$?qlJ{)sPt5pw5Itry}Q2DVqxZbH8j-$Pcm%gu0n
zkO$%78s5N+)fg6x*#zY&du5CIQQ_cE?rV)ABmJ}Ne}DCSg>&RnYM!td+0J2Ox_$gx
zN|VaKz<SIdl0Q~3wqkckI=SV@pw#OPI|6~U>=H_EucU%S1S>qR`>BXfeOt?X^kYZ^
z*Xk5%JTohzRHSh%9g5Iox!!)<Wb%}EV|WH7+OL$PpidfxS}KoO=J5?-Y7GqwV1732
z*9SIn5f6S>6aYsj7CL^YISuJ<#CbVM?L{5Q{A08D$5x<BR1pNaa_bzh+~9-y{R1<u
za=Q+9oX2>4)-rD2cu9gpU2F6A{=H1coGo&SRA!SD?qn3e0to-uqz|k~&wdx%HQ2_3
zIlXze{!*<w(QoZ-nu36<0-UXs$T%(a$6ghGdXsybh8!4J=M5^J9o7(kqPf-Z=jDO_
zg7d^y$YB?E(+V`_F5up$eT7^Jtn7eu1Zx#Wc4ROo9QvPh-(<o-rgbpQ6r>qV>r|7Y
z_}TRH`<&mj05QWTo;b5XD5x8+OP`=yWjK%peZLr;884=$`|MUbM9_8USZ-O0j@(u-
z1%#J~z+^7fBnk@tW8<NyjZ_OCl`o}^n$56+U)lD+MO!Ny#jUf%HFrnnnM3Q&VPc8f
zkyBHLzltW9yXC2rU1FnI)IBvh(rShB`8+l@Gd0zUi;%$h!!##a&9eVpnZz&>#qo&C
z3H_JrzH2YoUT$$-(gD6Cf<|wL4}-aCqC%6qHw91=?VR~j`j=g-?T_Nc{!CjyBqmzs
zRu_>J_Q?tyGA&*HztFkcdrqd+y=2Q`yBF1Kh5y+6CZ$3(UDC0syIp(NQhZRXU&|Qi
zuu)&-c1YoRS%BPcn$96mG*d_&ZdXh%3+sZ$*vRDOg`^)<bLqO;ABqW+0^d7DO4Bsh
zXX~$y17$?3u$op4<jfSR-^wwKWz;@Hcc?B>iQ~p$TJstzFJ!xJx;q%s^$?L0T8x6e
z%Hag$!^!@J`tlseg_`m(Q{rEnpnH`8qjfLwp2BM}KhZb4Wx8KZ1+*KC%;tr85izkn
zDBg+Dq1JSNj?YfgBPElgevJ)18oaf%6bSF&J+RFt7m6d7M{JK<-BY|5h<&M$a9YUr
zO%p}?dX|J5Sa-Jm4_0zYsR2q0ASc!ehNie_q^NIz@2xBxj^;HB|DIz}ozs}~8l#P@
zyL=|9>0iHiA)=Uo6dxa-U5N}Qrq7h|>RlbMA2n~voHL4d>cZCJRrI8JG!I3S1vpOb
zI;+oxnVR1_v$f~-v`P`K-aOVo_Hgc6*qIwwJT7NFlm@#t(j2w+*^_R$W@{hbCli<o
zFx-rH(33_EgD*d_ZD-m#2)&GV852wD?URGG#v!i!uZ}vipLA8HgvaVlW8-&BRbvko
z=OrK!EM0|jk-IjxSKumCBh03DhVfQzM8e92v;{oMhJr;IB0u9gH5JQe<&Ilr6!-!8
z^T3RTawwY8>7N6+q?BXBI~CWKSpeHP*YT7U?C8Q|*DYVp+blB}VK-EfG`+IYy2D9?
zEO_4Ycl!`GVaFi+UKyZ%IP2yOsnri0`$qqoS%rs$MnCHsU|eMLC72d|T#FN<H|G0$
z%K%GG6l^I}jz=!RV0x&jj=rvu8=S$`jU<XGWTyXzCFw>kMBFEUh!q}`-l}N(9_6eV
zkw<y!$+mqG%k@R40;brD<8Z-Me?U_V&B(~whirp+l4q7S-KqMu`sgViE^Jd*>)GRh
zx*agDToUZc^^mql!H`$)o$nWHhe|E8*3RtsRyf!q*xx>E<?$#vS6-HC*)`{7u`kl{
zems!kU}HD(svW3gX@GpN_uzHumpk75lW^(3-Eu>#zo&xe85($A!JpHjoK5qj3y^<o
zxb+vc>9xjwo*O3DV=G2$`!Fd2>>Y;!!teNjS#Q1Q4LhN;IN{$T4u+8B;`cYY)=1K4
zZarMCS;oC2`7jkm95gAwuo5|Iq2-B#|3_K^;@@8S3ps#^n-_}(4^$klDn!a1DH(SX
z*vD260eS9$Sujh|30xcjJ?1pt2u(I=s>LJQzW?+GTa0k2vKIHQ<Z9wbc1a+&mMQrf
zY2`+(ma{1klRZ~UDx9jrEUh0{+3tUck3MnGSs8w4m3MXrgW<mKqH1pJtiquZBM3bw
zv^aIUEv{nUN+@5<7-5|4o;LQGSw5q^_&*Na3!0ewWIE&A7(+bfmyU94m9^jzhTl&3
zLt>T<-U7(mbMQ<VQ7Nd=d{UXs=5ms5L*NnKigd0#7vir}vWsf_e9Nlp+^B4$AK%U^
zm#%^P$2<B1@2mBprm|<MxyEj?P@}d0yLmT9LDC&k(Kg&<rXtC;eP6QsRlN4~+NHQO
z0$08IOyROf<Drab^3&ms{33i`^e#{`Ju5BqS*}m&tmbGq^aM`5Ur@DtqMdJu1+&r9
zsBfP4t=;4Y-DK9i2fVu@S?tcWJ{4(1TP9k!w3RP8{z8W8j?)s)rH(I;_ZXO$48%DV
zVUnaGui_&T((HDP%x2k2zQ6l#nnsw5!tf`o_<wQ9uFbh&jz8mmnGAW`sL)&|lg~+Q
zvztyV?GcyKw;iCYTpyE&Z`MRCikx&)dGh~{|F<3<es9Cv+HhkB=>e|aHg&%-$q_f<
z`ow+}!+$k-?(cGFoY4j}LQ7bY(TP9oG+SEOe1^hwc$&*%dPYc6CNrWxjp;h`<}s#O
z<MNuFNys<Em#jAs{I+x#mJpt191!xM0CIuV-P0_QH(BJ}WajaCnrDrdo6ugk1Lp3u
z!ZigH)2#H<51hTf6hOzJ*dj8^4bPEPa?1J3-{bquIO7|5|MxvLcmhS^J<`f*E)*ao
zta84xI{Wbg4Xn#D<OMvP4g#E5P;o$W-YIYaSp}o~!1{boLlj8-5f$~@1#mLPqb<)F
zn@i{ptpm;P=D7R59}jJ{x(6}B8^7-+3d<_{3&s=OpN;K;c{ZlypNt8gS*Zl~R;z(-
zlMBj)Wc+ET<uPKFaf4d#T86^D5*!noPdhHIabL^m>vxXXW0lVrJnk0V?I-cs2lgxl
zn;%`Pa~->JXA6B%-;tYKogxU3R*=CZmEUi8^gTc2)Y1$V{rTJ*PjBxP--5S5n2end
zMAzL3o3pFTky#si*cV$Izr3@2zA9p6ScD;bCGQW^YWr=S3B>?)Xnosk;?dJ(J<Qp%
zFr}{$hCk;T)}$ApnP_P+TQd{ccE8*nm@Izj<WPB&aMD}2^op#1+_8&Kg}N1xD*>z!
z3>k|cIhpc;fWc*;Dn2jT@ulrh&6^`)<c3J+OrUM1`MhtvK05p<As8h*0A)M!%;H_?
ztsnMI;N!a%bbHeHrUu#){%xp6URfz54nfAcd*ceic-X`Giaj=;pZ>>24ayKPZc*6<
zoaeNEN_zS#tOQ%QyZcK}TKFA=M1?n+NLR&%t&gQI%5~q;kz22DGnX4Qg|n`sMfcMY
zT$an|vD}v-O8V#F19k5s_trogZ}R>a2ESVMnO=7A7hH>J#Y^Yi(2|a;r6@kN;YHE>
z3R0j?y6bgU_W-)V>Tb{o?+Np<NacZ0JKy5eyL<~DU9<ck9Y^}s3gs%A;t-1$<^$^Y
z_KZUu$53IIV=ofSe#u^(<8{O)t|0%{0ONA#jh>mJ$ek$Zr_M<%4UEP}v(M03+Py!#
z4JX$Y<$>uNC0y$wzXXd-jT=};V#y0%qH&zbvY@qTNc=xGcR7$b+@ElmGtPT6%r1Hn
zqwIWCuTqtaFauf4S%*~o2R|PC>Bt{L{Gmb%vI{kZHy0LsDi{(1yncbnp%_dPdc~qp
z=%szf3N)AgigdSEy5v3fUk3YNg}L#lNf6L?B1JI0FqTankiOI{5m-+sx%!wxa_)rX
zHm_*a9tgMpv1Rl3AOE*MeQ;;Sq^G)IxtiE_?iFJdQ1Qz1c`6bg_3QqoSDK8!>UWM3
z_C*bx+bq?+I?%p-WwkeFbzc{!1t3t-EQd<UysgCO#nntVl|&UZ<%z)|{{aLA2WuUZ
zF{vQ6V#!7GZe(-Ju?^nfpgb?koAtG-oF<J~dD@trh}ofI0P<CdV}5<RFTa^4pY{l7
zNWO8GwTTImH%80v^R_p?xvf#upGf{-Ibmggb0ONTBI?nR1{Z3|aG5;sIfBXC$g;yw
z{R@0PFTat>Owx9|Eaesdv4S_c^J>x&Rx&t1Y4Uv0U|1Bso9|)BwmhM|T*Y~Nk`Z66
z*Ugdfx|&|V?;Jh)h-$gclvaK?|3@}enJmFiT<|K-e-UJQ=58)b+aLOt!qTT1(`mQB
z#6K4?g2{29kDYYLXX8RYy+k!+tUtj{1XTKCY&BomZE&^G#Apx*+^Vd3_0_w4HS2>r
z6-1o)rOtb$@ctG5^JjEf1J6PdEn=H(SWf`+3eX45jO{hrean2DtFsbstS!F52YV2U
z-2K0cqAgeDRDi7hJfyA=HVmiv2_t-HTF(H<cRa<ucWKuaU^Nt|3L<}vjAUK8GsY^L
z37v#K8L!tZEIkqv@muK&BEF?&YS43^xgezc+@|BddFt!O0HxU+FQ3ZlwmC#|-II3a
zo2Lb3M+Y|+2~dLU-gI8bY-^m-zFh-&`m_1e<wi44xgksZsoki^P5AgykSPUkEO5V-
z`?biAsSoWu1~gcsiI>XJ6Rbh3rreYkbla~F<k&G~W$>=zkKtHjApB4P&k>|AyMuKI
zaN8RuV*kg8lkXq4$y*3k<)q_|0&^KMnOjmkkCIVGH2XxNWFM-zOeKqozU&vr&F>nP
z`9Ek7ujp3=A*kpgLzI^+-4OeZ7f!u&abDM(v7Ej*i!twe@+>FJB`jX2C`>XGkhd|%
z6p6Wd^D4neFvq_T!*f**!5N7-M{i^)n&+$Uhpd&(Z={=TyyfZ}jYCI#zFlKp_l*(G
zJ)?((l`ruH<IXkTyyI#u(e6ZEKXdBkS;&_*8<x^fGDY$Gj(J_nPCaJi7tdcz>eJ~-
zr13wtyUNTh-y(PJ-T3Ckw$(-_n&Rwu!;-H1<ucP*cB7vt?Qt8fXaE!7gq++njB;t7
z(akTvtM+i*u6T^KuEruyt>Bn(F89BY5WM1*&;5k}^L7{cqwxOLQ8nAQnK!<o<SY_P
z1q)3Amdu_d+_>Oj8_i_Zp|dhs#VNi@T9Kww6Z%qZ;#PacZu<^spkK_p+*BJ-I(p15
z<WBd3$$({zcEV2YQjL?s9`~6%8o500b}DAEuH6nNdWsUD@%u0S<K$G3*7BfY1s@dS
z$jeeFR$4Zy&{iJOO^cwM>z4RC(Jf1Im#9W&J~__%_m6PqKjY`M5hP%VlXKQMSK^HA
zyWrbvjhf<9mZU+*mlwO8@P@3L%fC=<taJbVW9x%gQ3tQxdnBRL+Y?5{UbA`avlSc=
zv0gfq6M7-d3wwj1zGTA^?vm0*kduyN7k8<!YS#ZtY2bv_RQ;?^?4_W!R3`{It8lv4
zfuWv8k3FqZkktKZwcwuDczylQ@voDuCVXd(yXRQcuT?Xe!Yg=thgVQj`=~xdii<L=
zcfWuFv$*gfr1Cj{FyWvevs09<Bi-AxFEtj+zv6@x^oOYr2r6(Z7KdHJ>bXhoIdZcc
z=8ku}G~@T301iN^>ExZKQkmh_wF6!sko$O+I(gGYdA{&*<hzskF~0@bdHw#e&6<2t
zQ<ah6Ua}F`$X4Ihyql>M_o}1(b<c+^8Q-r-!XIV=CqT|kh@Cn<*^*Pg+@|~Y6%bU#
zakssJP{7m8=&Jd`%Cv9CtkS0-hm^>kIi0H^@_bR}16V%eoKJm(dZpVvC5<E?onNxz
z8z6(44b|F-ugbPD=e$>_?Lm3y?>2De*D;@m{gyG4buC)FpTAt$8P#7*=_KLzvdGnY
ztx@DXj>_S5-YNP>m^HFyHF1)2383)SigXW0|C&+>W(kjncBr67?>2-&SF}l$3xa?s
ztUG+c1@ac>8PFOXYWw|l!j_Wi?0Z~?|4y()$3omlPG*%Kxv>&zA)h=r85YQa4Xvx$
z`1-M9IkHVzAvUyd=T$kXD<P{DQ6N00!K@7GU;oI1?zoBd;BPs<GXt}jB+A5zg*lUR
z(#Kzbw*)2ihBvYe_1UjZ00W&y4r<MH<LCD{YJ9?CRQxoxt<u$xxFGILiq5i%D^L)9
zNdzj<)XL@trx}S$EjDsZnaC6b2lOydDvm;9mZ)F)94dUg-@_k|za}vX+<EZSK{eR$
z8kU=!>I9v1YAz7@u4l3>ovR>Z!ITL!5OlptFgTSvUI<e4Lh5pC+HBxBrW{Vo)9nlm
zH1K1%Yj<4uCOYDJr<Bua!3q@;iZ3Y?bu=~6C8AcSgtuKibJy&|bg$XVmpEqNjzgk~
zisoe?p9Ee7Rf!dhz{IzBQmllDi;vPiXC|M5YW06uw?43K-Lqsx@F|Q-*##@~uaQ_)
zh;7xTlUMF5VnbWer_RU)J8~>*_Bh@d&vj|ING&k<Bjc+ATCJ^IjA=#H>V~q?XS<Rh
z99nU~rg0T~{-5G{rua1La(B`1GSZC^{+`!*)OIpX5zJnCCi@4+S;V3bEgVn(GDgX?
z&r&|JJihr!-Gwg~nAm70;js|RKJGC=#Z<&D+5~38?I@svw(uFXj@F%PHkkFz3-&1W
z4?jJL*JoJb&)SW1<P6J%<8Agpy%Uo@&4P=TUf1~d`^>BcT>AUXWv4-B`%a>kjxWt$
zj3HGENoOYF!atu2=r<n|M4Qr)@kO+UkYCe=<!Xj!o0({t*sOUtsI)bED##9DTo*<=
z<^LKz@~vF)EWZTsdV#ypOLB<rSd1xq(dAtfl$!FW?SB4-<80eZ^Ne220_V%e<M}W5
z9Ja#=nug1Fwj9S<rk~~xnfSv0dYX$$c(xjo&uK!$a%pCg8HYRej1OO&q-4|`4vTMG
ztT`T22_24kl<^?G>qs6Xy{yZ#>Zq|Ya_KLY-)oK;637yb`a{Ey?UK@yti~W^B-sqr
zN2PGrm$p`z+sz89H+alFGrX>tpW)18KR(u*8_;9H#b+}WQ&#$@V%8#0;CEXZ!t6Cq
z*YSxi$+)0sL9I?-SZBXFCA-i+v<Ktjp0B?qns!C9qs(Yv{d9j(XyCj@za<Rx({0j<
zrFBk+QbD?NDDw4c!K@TT1M-(-o`P#0++F09DLdl{{*1qA_GZ#a3ggLKf0nh7ms{dG
zq*&VBe{4k~@j{>ftYupva)Nsu0}_gTO|aH3{fkXc)#}P$d!Qs{)t)Q@Tw>K<IRv1Z
z3n8tOF6MF^g}^P#tXlS5)}jd(l)n@@*FIwab}19x2YJ_J&zKhr`a6^|SQpaJ<ft1t
z?y_8t*ABt#)86$msAi_Lx}>|eg%*F{4z4K43k-5}we!EUSWS4SxMSvd*7e+;ja=yH
zXIHr^@*6#9)rNPm73WbLPqNX|8^LHE$1AJasF}k06c<*@*>LtDw#L?Jqj)m;X<==Z
zZ(dOGhowT%TXRZ}Sy%4xM$XJ?I+hZm5fTp*6Sb~9Og{7L@L67w+(ANk+?0@++ce)*
zua9v3zI0LorCv$Q>Po+dSo<238~?EUn=u5U3&D(~U*WFWKEkF_vs<!}GR)5NVD7fN
zAd_CBH-%pE8^r=Nt2SPsAOAksbe!ukF~UeXE#XP!P_As-b5UY&OW=TdlNE06pgNk<
z^FdF>DtgTJ$%qpT4D?mfz$V28D$Q3}lqKPgbDehO)mg74w|$e+pxMGF-;bO-aSH#~
zw2235`bOSv!bZ~vcni>7h`RmXCV%WJjY*@6BQAOICuwFfg(`H+vzFOlrzh=WF`9&k
ze(HlwGoYJLM4hD{a0GFl3Ap#MW}o!{<?aw`Z7cYnXh88rKx3u1T<lebPN<ZYp<<sB
zUoGsZ>W*<i0D%>3e}ITs{g7F!rBC8>8lmaY(?i8QQdzZArqz&UepQ*L@0X|LnngG2
z*!J&Tt6&`!{Nz>qnb+_7K6w2)9DhElo8!r|*C94A96D8$khynvInFBzh<yjQu|gTH
zgqqHg#oWhiYn6L46ZRJYCPZ2O&y&d6_O&<xU&?)cJ-7u}lSEL~t8=BE7Z%5@?Is41
z^Z1jXlf_}6OKwa49gk|wf)Se9z0Pj>he_|8DlLE5kX{F?fG<ri$7A!ViQJtngkg)C
z?n8kFB=;}jD{a5<cI@f#+0|B@%1fn;D~!!s0b~xa{mSU%|G4p$AV7G{hh-d)Gmk*{
z(|(owtoOnDU!eHr5bVeXvPVOlsv)OD&xf!-WFFW~_xpbNyE16(XjQX1*vulNpL?Rk
zeM4CSKGa5|6z9sm`S(XxJv;$X`#5*&D6Q?X;}z2+XIooC@dUF+0ikN#;LBwa>OsZ?
zJ?A|~1>XGsP={D)4T2W=WZMz9fC}%{=E?x^XW_v!>(ADo&0n6G$?Ni?BV|ZAj~nyP
zZ}kd^<MGY$lA3q<s*+8%E1(m93Lc--NDiqNjsJqmT}q|wI3@Ql9&_hVt^^Gg97Pm)
z<Cp0f3P1^=?<`5Ui_hPn9Z7hKKoHH&9Xo7$hZTzL|B01VA^gtj!MAf4?A)YD6@Qvz
zD6!HM7r$bw)|ieLVdK~&_dxc08_;C$R{XUyRNGOQzB^X$`BhQQ#8U58tP9+89DsLd
zBJ%Kve?khmd}=I;L74q_oTYf6jK0O$PJ5lhlq$JhmE<^~myaO4Zfs^5^_QfA-s#_V
z8h%7!<zT$cmMI+1SuX?aXPo8ue4*zT$IcWd3L;h%-Jj~#=v+Lv`ISWAa9rYdkqISx
z%-*h$j>mbn<QVayY7iW=GV*54wVEvPe^d4@pm471YmruA=oc5592uQjLkokhOWF#)
zDW6@Qk=>vO@5}r=u`wP7&4)m_UI_<oJo5s@ZJxZ*5jb#9%x{+~x{hA-!msHW|L1RF
zzVWTb2n#*g7S#bx!kwqD;53s<(VusglFDVO1%XQ(uZ-}@Qu%?VwHAiA&T$<e;Ctqc
z0`CUzRQc=Yd!=>{{aK+HGBY96Hzn*sZJJ4r+)Iy3%PPEBYhZ1zx(BqUnged5GoEsC
z(s|0ywcjPwY#`MSVXm*+9Br%QAR+c^PxoE^2h1><oL1YSq~V}5F5nFij#a|ke~ZyC
z6M;nK&t{FYG&;DZe{912U*_Tl%b~242ViWma10I@{{=p?0LYbB%Fas23TtQW4ftEy
z$~-s?8;g70nUz@lzOTUji;O`-Iv{m5PAAI?cJ334WxXBR?-Z)_Dv?mBN56Sag!lA>
z@d}(=8g&pYG|3eAbG~93{PAodR+FJg$PB<da5(q-S>HiFq2m3*`%O3Z_%0b(U+dFS
zP(t;TTKvn(9Y0AVuhMb#v&jOk{ox(z6Tx2nW=09mBEX&6fwDH9)M0JWYq=`Vj?Xh%
zShdPAPBzAn>mj^cxFTpXgH+6w%{(=6_2a4^@q^PH=&<^qnGFJ<dLJl?)akZMAtMRK
z*K)i&ECty+7sL0|Gzm(VT=~!cRh4#@)e5j&Ssx~*?Xh1Dkn*~0_vuBu#oCuig&}((
z^AQ%f$KS~E8Zhat`*fweb9UQK8yDz}7`QUvmLXxd2Lf{?WuDN5LPJdt2701$qM$<V
zR*=rJ3*PAkN43Z3!_vlqty-&};`%}r7eY6lGYYILS<Sc0ja3w@#<LLALwVT;F=}Sf
z)huiw>ViZ}9opF85*uv9SejlQ_vEp@FXQomAwGw)iVq}rMX~0;4ptA`6Z9GfP+cvq
zFa83~jAn=&?D-x!uOcTan8l*ddkRZJPcbt;j=o#)7bTwJjB+)Q>uRVgQcw*wS^}02
zEyTj(zZBQC#beZ`D7;j#)jJaCZmP+lM6IfQAhNB=^5ViZYv5L9FInp6$t<JT)5<%k
z8@+rwrl56~tp(Q2h+OP0F_SabbQ$i+Qeh1Oy)KTg?wIj~Cc(Xj-6jrLJbU27y9r#u
z$|eW0bx+Lt#A)nQ)m>Ay`a8BjF7KpDCnOaN+*t;}*`&@4_h*5{t0L9-&ZvHu#*F@B
zd(5GCb+%<oc;ECYTA(9vmx$aCH7pdB8u$D2gL*mf@G=2c6ZQ!ov$JObRIXlb7C@W(
zuSZQ8?l5zD2I-K?rY7uRvole}Ygqxn5*S#v6T4#!9iA~5qmdCD{2o^||0n|iHg85o
zx9#}1w$CUue+`pUxB^>16Yi3S?svsSz~)0w8JM7G&(1nU5!a`!>FN%41$3SRR?<6R
zX?!iOFn~Z&R<4SK>$-(3Z}4i@8+~6t_3Rq&MPg!&itt^?09R&UkU7E&!EU*dFlIwV
zab)6Q%k{)xfC4;6=Fni#Wklm&X{V%8b4|4T;IJ({pKH$^lCRcbMlO1>rGonku~KCE
zW1?<>(!JFGhB;Y&(ReNLd*>kOi>+7Kv`erO6Pq&WW<16<H2d}U1iyMboCTp`>xXG9
zWCykMqNc1g;D9F*cADDJx9_=I>MVeGZ#9k^Css`P4J-D<q`@6A91&tysobGMN77}a
z6qHp=o!XQou&dZJnP>%6)!wP?liUyIek~v;quh}nu~6B>GwUgk&;iIJ+0omNeuHIH
zx{6vvlmDj!ouvfb(i#Ld(n|_Amqc$MYae;PxsCr%4c2HweaO5Vm3sNTWIhAbv&o)#
zwLGj>S%AAUkB?&A+2XXngxUIrzDQ~}xkE|``;uCRs}<&6MwyW3(cm*@rYw8Hf2<Er
zeR31<XcltmH{m<PxVFgTt+YzqvVVLfapw1qdzU1qcbRV4@6E*r!STBNEQdzpxOukD
zO6eK;Vj+L>t0uU3m352({QVobVf_fOZe{E()A7O++z*D*2u4Lv1=4mZl`OVsqSE*F
zx$zKM^?RB`b{06$8rrU@bb*1%9>btoAOA7$23L-3mX_=KR5CDaW{$V`{&NRb@T5qs
z?Kz$h*-#7GN>?EMZtM;(c!LJtYCB~`4DkBm6;1>YGJrG-t<NR$=d+ihSTnQrYftX;
z4(--Rktrog<OFmTYTgBucP|*?vuC7VJ4s#+Bc8RPmEduIg)1#t9Ha#wy^$UX(M)=2
zKvReleQYYK8A|pe$T?M83lgwzy$I4hc<m`I4++Mgai~_4@pAerRV(#5GT(>;tnsO-
zfJBCU#p2Mtgu}(`X#4V|^yTFcT(EyJJmnIoyY~^>KQ^X3hg%nQ0~3`465MV(l;pW1
zdBL;@t>~<c6Bn&v-NQ0`8p`h{p9o3dv#6m;`towh-W?_)YgpSEG-bxN2)6s!^Zn8*
zV76f#BV5~(vID#!TVBrF%qUFIkpq1au*YE5`0vxUZiVp*zUlmFxGsn=UM_M#;p95;
zPSxh3{q0lSnzc87P{Ll{4s8GIo2IH!qO`d66L+W1{}LaK7m6p3%{w$anFK5yIMG+!
z0!K2eUN%^7t>+m}bgrrTHe^{aZ=72W@plIly;PYEkyRd-V3R$Qx0%n_6mc4_AiLPl
zJj=iRHGgcUxXq{1>68<PH>Szyevd}|hc9vq+h)8++B~RA!0?pLFIhXHUnRjTIFUj^
z|1x=5#kLPB>)hRYc<GO^>{!JwlZTF;-c-lA_TnvkGVfN1?v8(AmemTys%!3EnDu;4
z#PZK<q@H*LX;%H(_}-HXuh0~N@YW34w_<PScIcqS=Y!;r-ExOZYDA1%X2MX;J}>LR
z@cbEOECBJnm`?@7473t8A->q}vJIUirc$t&W7mS8M6DBA3mo-B?k6mG20FuzUg$5W
zF3eN{c1b9y7n-J2m1k+qMIVi%8aa~3c`X~47}y3@MLKJ|BPT}d3G7Gs>yW7VLTO`<
zFkTn7`@T<bA*F;vF^VORg-nZhuY3pSZm>Tpe!0n|En6NvV;S}9?Melbv=w{*(l>9i
zpPY&&FIW5H@eC{_2n}3MmLJE^?vO<$I$SISh*|ee7nFl6sWme3QHrWhixk_d>SH=X
z5<Z?-=_j3kYO(WvTxQZ}0sdt9?|)Ih&G*218vunD<xvCCwf4f>q8v_TI*{KOZieWO
zx)E{0q@}N5*@QVCALlx~TOrsY<BL*}R?+St55XaUX8DgTpa?4S&HMM?lO@@;&N&{d
z=JB+k0EMELjNGe8v4&3_;+(&dXu5ac`5U!kw!!DOu&Jv{udb~XMnAsGVri;VDX}$G
z#O5AQ4}lnmpD(E)D^Ce}k3IRA!Rk1;Svy|Q8xA5#h799AqpKK$H|0@o!d7_)NdOy3
zDK&oSSEEhtc^Pd>S;<`E;Tj>{q*}*^^Y1I<9;loz3LPe|y`Km1$EpwD0BtVPpx&NX
zT+V%b^_vg``gGQ__A;CrrdrBGfbsq;ZX?wqyyU=#e4KJzFw4vO)0zsF-+Kz2Vh!%)
zJ?lf|@AY?2Q2DE4wzban&W=W0mf*3}87@++yd3ro&i=$l?S8lS2mtPO5mtv=vJUo}
zO(i&Tnq@S&)V})1W;GD~!WBhAU-n0fDCI$}tT>>m{DlMCV+7q4gSNdrc@>`u9-$ST
zYV)>TOA1<3OQ6<7THaJp2+Yq^;Kn#K(k2!U2B~T(G%dod11FT`p*DQpwV=Lze;X&y
zK)pP~XJ(S==sK<lB}^_(%0t8O$xDShPJ`$phkfG^(aEB?8=s~??JhO-m6rD;#`H;-
z0z)5rif{Obr>d*~P8I?KEwkd6l3$yCpFXU(l+sy5bnhWJB_GR{I0T;pbB3zP_kK4y
zy7P}MQxc}INHz51kjDr|#D)%XDm>Q$q;6oN&S9IjFqEW=^S5;{9#GRQ_~N{COxG5*
zIUpmZanvf-M%A@1i&Ka;Ret7!ic-+KcT288s};yb0sBcb=<ptMt9Lv?@QSjOV5FY*
zrEve}-26`%b%2uoSrTsD&`B*<yTjaoW)P?%5ZEL7CDzCUW!C@A<l~09@E?_(RquY2
zQJ%2@;MGohdvRRGac;B=Uxu`8Wlc5##HnT_SZ#Ua^kYE1xhpC3Rc4LYgRzWy;%5dg
zuw1D?3tyZOEcLjbdJ0i3e?s(0HbKu1VMcpGx>|}FFwCTo?J*RV8dr1-7oO_eG81dj
zXPw5ib!M!1_CNe)iO^GIR=)c!U!?;W_|Ea%QJGPxSL3ygWrDWI?FV+)w6u<EQT?S{
z1P+g9>UVMXE1Y)@Y9H|X@+YcI6<4nud?DB~2DiO)Ucdo{4_3cQTGnTjTpBOAJYI|u
zrs^6G`D%WQs3+JLS~fT}dkbFGv@5k$z2*fo%kMbg-4Q3QsjevaIjU}qywitHf2@&v
z^%XuapbByy<lA)#{zxspxN7c{l|E^gd<#L|%-(1$(c(O4Y(6ePnDcL6*mr#6+4E}i
zT4`V1=PNHQiu`58jTU{}Tm926!KD-`F_Nbu?aee#jI8CR&>sI-D}4%IKEfOqehLjI
zzNn7KQF%YQgInhxP0b+-jw7cAjvtDZ99db<8w#v9ueBYF(<pDmCpycxAmXSO#gkFz
zn{cOh_<*N!#vI|M0(6?p1@|sgm_#trSN75zxzJ4AC|-T(*AiOq_C@;}zZq6};>cz}
zFLi?Dx5wiS%>l;xU2s4P1e*A?B(S~0^M;%(sC0v7ZZKCRA7}XSCCk@)H#2{;)N9i|
zL)VrSlwhj(CPIw(CO&xaL*bZaK&=z)B%x1odUj2OnuPqm%CgJJwjO8k8m)d?sc^ej
z>DC-W5FYk<6K1WxhLv3{c;K}x-uq4PKJ^Yy|Fu5k4DPj{C>cm6*%)jg&FT4mtbW*<
zbN(ox_&3l>Q)>BA@$n#)-5h*R+n%0RU+E)V#^v?}^Q#QRXeNN|+M#=_tEtOa&PrEu
z-&3#f(+>6eP$0aPRlvG$5qn4c#|i7IuH+diq7c9w<+<IyaGufG&Rl*>e<co<BOAel
zwUAP+3oP@cC`Vas9mRqqwd+vIas*DT&~wn$3c(*5k`973HAGpVtoiAxr6EwwxTGc1
zd{)y_VnNC`r~b}0<h_Bw70A)xo9u$;oy(OPGBdx-u4DDxO#8z6Mu$GW?6jX)VD;qs
zmsNkC1w6I8S3ZTy${J&Lfle$H!$C#M9H%_+EcKjy`6&Cn@}p#v6C{?*n9gpMet)z-
zT@yaMR*+W7nY{1Fs%t2*(FM(|ifR9dMSV|e2YNOUfs8Arop?<asw8b+n_%^c2!Xu2
zDLiQ7?tB-+NQWORx*1IY0r|ZD2zI-#I6av`{yN9R!gl~KHk{@QUwoTc0hmw&!>s@R
zWAY3D7IG061iIrHjgq!c;DCabl?td@oA@SO-*i7Ln_0YQBeF_8QTqK)PcQkEhxV3?
zlie6{+dulj^%za>ZQu0M?Qhc_Odjh7j*N-^R%~p4be)tE-4~rXuYf2T^}c;rAsn`j
zoW4+}vIl~EAIa%7hVgVw6s4bvnes)5P|4deFP-t$0NTmbWRcb6(G<7|MtI1A5Ns?x
zFs06aWB9b@+x9CRYzK)UE(b|-a`u~j<`i9d=R(x&=4xVra{MAGR<efb7n?&~+l9<6
zQ-bp7r!I|;%X1ZNF6kfYlwpoPp9MB@wosEv$JF5{l`Y+2SCBW^cM^8q%a;{I60TO8
z*Jw2JU(G@U7pm?gl4Ya`1KT&)KjbzPgp%nQhH)&<mt_#q^@hPuP$FLd9n`<yd^B{l
zogiyphiCVE1qxOAL(Q48G<f%If0*cVEy!iVGi|-}!Vd>f!`x36I{s#<L55f`11Y-q
z(#W3g+B!I2fq{%7HzI&8-q_q=Dmm}e%<7rLq^<hrMJzprJ!x51tc|@s6N0|9U4GDd
z)cb!Vop&^w|NF+fR7+7cTdS%qVpWaQR-4)qs%Fhvu@kDO-BO#{dnQ&zYa~jk8LPE}
zRD)ElAolF<`FwxQiT|9#BTt_9ecjjfx-z><CNp1O+J66Lrg(mT&3N77oCWQrI#y^p
z<XsAA$iX0*at;?23FI{&W{pv*yREQM?|{!p$JvmqtoQxKSoha+bAa>R(*WNidLm@u
zK#1KIAb;D8Ixna`&!cpO`dl8D8lY7o+K8D!O+@EDyP(@aU-FYkYG>P4opS3eR5r;E
zsiP#t$GcucI208OgmQ)Mn<{~bRy>`k5MQ3KF`VB}V%jR@iP02wu$JuKT|?~XpVQ#H
zkM!10t)D{uJl_QLVm>Ckiq99WppSo>&OY?p?W7vXM=9=xXyyRV?v4RWB?riNRWN#l
z=Uawz1(nXaN_<NiA*ONL+u{5Bwrc5&!XzqOzN%yvd~#|JB(tSx(R>2tkY4HebF3{Y
zphGFl31ZQOb<Y+f@z2g#g1+*i-nYn!MQu$G2Zt@&SRP@3a2kpWVNsrKqff=4Lz2Xc
z|FSjdwQqVh!zr9UNDuf%7E@@qD&U7GEsCXoH#ehg;%MxpwZE>(c&^YBK)aSG#mq%<
zish`($V!9P=IhcG?!q_J*!M#f5SBhQA(C#K|1OmH;cj#7<vjc;-k!$(^V_~0NH1zU
z`8xZHpgQVzXu7F*%+Bv1P*JWZ4bz8sFPqP4WF~q&?p+CoN1?Ov&DL(cexRFKajY`3
zd3nhdrzN!KtfGg{u|!+Lu<pm1^w8|C)whai3pVSC+D6(*1U+tfe<<chnzWa}?Rz3+
zKTfNPFt+G*onp8|XnrCi9C`(Q&7EdT>x$&j?5Z``=#RX{uQ^ncvqUYDBkB<?np_#}
zFZ_VVKvuRWEYx@$&%r;oPIaSc8o59nwY$3oRSSf%ah`nMwizcg?(rQ#jWaN7`?Dxb
zd+w(ik5dK~O`6#tK)UG7J&EJApC7#oS5vYQ;ifh}l+OALxk=BSaaefWe0A}OB~r7t
zzg}biSO55*S^n37M)U2@X1H!&JI_hA%EX!l@!~jLh>4x<ie@wqo$}W&dC%Kyp-S6^
zet3){jI^GcSaM6N?o{ie(_5%Ieps0fBzJke>skw<Eq*rdllf@zSGarz2OYnYT<uEN
zh1_RHKR9HGYNva!;dbRY{LPD>CL&nZQF-al3hLg;u{OU!!Iy>nHyw4wgftyY;=|=~
z{ys4QwrIj^{^~0sT05~W4H+V%PvNsFqQbdzX7X-AKCbbkg!!jq^NvPbU-f>3g!EiI
z&d^N9F-O-Y+Lec92w7t<SI?`biQ?|Qen-zL6v+g3&1*q-tF3d6GR^}gHy7gGG$Uth
zZC<(u-7+QfK6eJCCR9uAgw41e_tNLz1^G2Uu!#W)Ov$wpBs`9s<!3Qczt1-)4-&Ky
zI&GrEDRP;`e`i|xlep%Jzvx+sqFz{*B1|M7h*Y}BKl~O{q(51mJ+b^H)VQ?ned4PO
zM=pp-!PE95Yp@>ED=t1jSOCk+{6MQccPNH=x}FW3irtEF&nd-L8X$QJeglWkIo`$s
z5~Rf>(tp`2yYnpkJgwq`9IyQ-(K)F^Mw$e-qUeDg_v%u|BFsEAaI@wnIu3~weJ6rL
znK6JWX~ofpu(nV&oJQH(CqBi?jW6h+LX2571_9%tAogp3y?C4=$vE!uYU%Mevw8y=
z#WP{JX!Fxw&Q;H?pTqTECGp<~T&YZy4Ec@@s`uDiAU#>qh75Lzp6r?Q{?Try{klso
zgc;PEaEQa()rN5@ulXucY|1n>CW9?%GLF_{_4NCDk$U=vGK;m-I~Yef(y_E|vF-7J
z@>N<XpPCJ2kvms=a95Aq(c55WC|_EE-dMDlVa_K}7z-cz9Z!Hj#en?*>rZquuc6r<
zf3vk;Fs>i9VXpCE<NAc)s0^;d`d2?e{E*K@B}iOBs^@1Iu*2X7--l~BB^Y}7T<VWU
z%c^;&WAZPhAN4JRo?FQeCD!Zv3KpJ%-akVp9q8}bkS@jvV`mL+c+6RCwalU3Q+Au4
z2_-ihjypDdjZR@UrbaHbbMgDJsF}_MC2RhX#ZB(kuA)4JT}GfLHMh#xk`Yr4p)_Gw
znZNv!N@@GH9_t>!NkrwW3X}PIocc!{+E2vG)K~vZVZskCgQ7kkZC}+R!7alfVx4g9
ztpt+tpb9c&E#7jSz4qDHl;X6W?DZu46=@@-K^mv$c@HyifUXTPT4`%&zgYy+BnU{a
zO52K5ukUbpfUG=1Y4`(!fPJV<v%t`7wFpj`O|CdRdHPZNR>Jc6@nIZ!i{&!H`)?ue
z$8DFAKaFn{U{f^&D%CUVGHSe*hGz0bibl(jSU>#%7Fx>cwGXLyQd+>t9jA?y(>mN1
z>v8@<t4i+Zge=ehY(K1Pyn7ZzL)mSM+M?!KoW$3Rhd7Ow589aNapIM;{!bUKDvgF-
z|NX4<O^8L)zFTPv<G%|eL|gfkvAhP;Qt-1n58T$~1xEEhBLwN#Y(}R>9P-l;PlgPu
z@s}Su!T}I#kt;vG42P_wcJtHdys{a9<kK-F{>3uSGi2x6o>&jCF?bbDF;80t>b(_H
zWvbvxuJl%4T5+`elf~h{`Mk<4|JZ~BTerI|l2S~D=5sV<-TD$+<Yb@}MF^RY4E!GM
z>;6u6y7on8$a&c;5lNI^f_OBk-qFU3hebFrz4Zxtg9eOXE&9SIKwwz3ZwonuFOoJ0
z@f`9Vd&Zw3eaeIWFU-@43_b&0wHe2Xt}?mE0{3T1?%Ja?1sF9+s#zMxOHdgRl@sVL
zG2!Sd14v`bsE-B)A72YDne^rpL!{uTy<sQxxUxy72H8POSk_kt1G6)oX!#eR3OA*{
zKLEVPrV6(>9s{l|WqD*}W2?^a%Z5(g`8#Y^&rR;8c$TSZO&?i$)sR2i{g@a?4M~?f
z?YAU%>wR-Y!5*_{t@S9;ewm6X7~@-<KMpX0%sTVJdd{R3Oh*^>70>gZxtBX0+~Ino
zM((NIpG0<4H~IZpA{-e$iFscBiK$)v;J+onf#A}OnEOB7Qd(~n*z@%Y^`N{ju^vG6
zd+tFcd^2qfaGYW^o@FG+GtXy+T*tOKV$YHfSK50%c)#2&Z`ES{X}{`uZQFZPeb%nj
ziF(HE*}iLhxcJKo5_I4X7ACofYMz!tg*ACU2=OOZsuxWb%lACnUT?L$X+}gq@6Dn@
zgxl}P6wMWP_S%xoL;?2-KF1wM=1~FQE}N&_$<xn4zJHQJjCL=F^yRkvtwPwwe8GiV
z(gSi8rUwVNv~)2Sg>{E8va!mJ%kjGx!9<!5LP2>g9J?*e^1vWdCbIDZL3%2-5h}FR
z9sv2XKAE$IkrQ3zMVJS~eJTp%tUXYToX1s#7^iE@YKFwJ&d8mv7zZl@f<_s5e1m=!
z7!JYjdD0oN%qOw~m`uA9I_@7tjFRcuE%YkCEv#j>_IX$F+E<_h#Jo|Jco84K5xP(6
z#r(Sf>AAhYZ6E5h)%#264POzVE1kHEXsU%f3>5XOU^$8?RUFQalu9f3$9w`$l&bY=
zsBSq?vJpOy{&?>f!0-u*;K(uv&0JW-J>W{hHq$WB1|4KLF6g@iCh*M8lL8*ddxer$
z;ee9GdWCq+peFyRv&=06(3gx?2!FK`rI0m$F3X?6^hSqc*})!|m@dIG4h}KZPJg-U
z8d>c^$DYR-yPJpqjZW<q$)N`KDEAMo)e30)Qi-9uOEXRf&!v!KpS<#nje-&tptU%Y
zL#y;ad{KaIVr26tlunN+m{Qd$uO;#BIqKSgsDXexVvJJpfx4M$-fvSIPk*Nn>~X$x
zT6mo(opm-o$n7FD;7XZ6De2`1<m4PP5KVgD{zW?JHLI>Pwx=5_$bjrm%*g1o>3vAd
z#}zaF4DPww$yH!8tu**b$==Y%zZ2fMdW2bt?{2)K<cycZcYH7YG8uD<s(8r~<F7TB
zFNWvB6($a5f<Gw(t6sbk0+jLMk!*(u_?n!;Y~_PifjQ0z;eg!i#Kq$Oh2l2#=U+l#
z>;6ckPoRe$85Vb}iR|Re%gRk2FCI^eWR5Q;1MfBek_*9^p74r#wEI^4Wwu?uv;MSt
z3G|n?bU%ejn2Maa<m(JNeHhzI<Gh)wS$CRZ#5m(`5TEnMv#3<-KW75ak7rttFW09V
z*G>6J=Kp<_U>=Kqo!WChw3%oiN|&LC|1N}#g&AQVl_zq?E(U5H+T^+N{OR{f6j=8$
z?9Y*PvC3t$Nnc3l;Z(7|(R-1g)-xu-Vh-M8!ax^9dz2`xQZ3r&Qu3h7BxCB+3XZ+Y
z9^-%y>U1~eb8($VngQiN$b~9(5zu233UFEZukehqa(mGk98}CI;=!)vo${IjzEfLO
zR>#w)AnBRAn`r^#l{t~{sV@N4gRq{zMnXXO9CcrV>~?Pd0jKv=_~X*sEVhBA@k43>
zj6Az_t~{#Avq`tM?<5x$=;K74_rhDS;%*hsQjZ0J!SHnLZoP@z%@Ua7#h2t+F`f6#
z(gZ10uCWCDcI|%`yo?5ELxoyEY3mxF!%u2;$UwNi)#b1wX1EqEa7^&$@N(0rh^w@S
z5XK^{Qu`<ES0Ic0cZ+Vb;7vHt1N$g@I4XI~YQpey_Bfacsp-%62t+;SISHQ@EFzDq
zCmrZqyW#h{j@F5}zHSe^s$+9LK}`Id`R4Bu3t!FM)4gU(b9wW9O}ngS=!c=0Eu>8x
zfM6pUO=2=Pcgy?mX-QVBc)B1Ee)ITgu>8YDvn>{-NSRrjJF`~@>rc9=4*?~DM9Om*
zr8sH~>k}0tFVf%E0Dh!Gefj(*SU;<pq$$C(3yaU|EXx~?d9a*g6$%CZ=L}J2&lJr7
zUCL%$f)r{vlD^zaX+1nQD`0aLTMc2X6dY|`c{ye1DUtjew9^bx>3D3WvGvENa?QdN
ze4O^f;;+r}i^<>HM+T0#OmmV3>>E^iyLR61&SIw{|Gx{#l2QfA##%2%_kwn6{4(H5
zG$~5jKE56mj+Z4?HXQbUp9KlV6e)Y$Be#Q?KD>RiV$PqrMGb3PjoN<@(>~4QI84&t
zyX<30MR<1B&Di>~Kj$--Ti$mTw|1kNLx}EfhFH|^t@RZ}NJzy(>9nXNDzT2o?xQYT
zz&F?~gucn)H+SwJunUBt?B~ToG0AxO)dQ=8Bg2LPTP{CFvLm3~$d01Bno%*+_G5-?
zZS&4<XJryTX_q_YqUbjP1mJ>jrw@^!TV;_3hUkAT<inffKxWrBDz0g56GBb+apz@g
z#~F324oB+43c~4wM5zS>6Emft5fJq>(mc~@4+%ypT|?Ml0R3gu><-<m9g@cb^G5zW
z%Z^6}@FISv-ms?COFdnXrtMy)6m|J5g>p^B%8mEb-SEgha0|NY{Xy*sch@ae*<-38
zP<HXiGkRhm8tetMpJmz;m={xGjR|S-x4tNpedQbL%;!9CU4-Q`Jzw4`ey7<f)F#*^
z=>S3Brq|zBdZ4q&_iGUs-`sSuQ#LF$!t5L133pPRNp;4<F_qlu7aOXvYggA>fP{eY
zM#oCEM_vK0$bb5IkU&pf#={Q7Z@iJ3fNRn~_8cJnyD08hK3~rc8-cIj%KUrIGCuTn
zRYip6IkC+N&VR(^eY^%k9N5A%MNwykqU0D@(F&O6_V*)5#khYtd#@kdCSCJxGP%id
zapd@dRYqq`$W1nSsGLv8+M?-)yx3EI4zOr!>L*AEP}wn6#ycG~gG)oz1FKw9y3OkK
zKDXi2NAj@jh0eCRGVUgoDZ1pSpLx5@W~09b`9uPJDqxKDab4{;Qu_Zch`MLEA@$z<
zjJd@r=YIedX{cp1VkQQK$1mQ0C?|@dDGt70uFIWAYjFKXa%Vl6RVi)RzTIzx0hx95
zvGUD><brX6cyjMqy`$3mUIq?itBPxc&l;6{z8e`Td{26=(7nbZ2=#Gc$DzMn<7_;#
zPt@?f+-Py?AZ*|}Az)i*zrg2wAVHI_%%wFFWOQs>(mn3!XDs!TQk+6GpgU82u|Lno
z4S+nL;Umq4<N=ULpB1KVUoU?6_d{U6({lAouA3!=SA=V-V{~8tp}8oKuEaC?{h5vD
zbrNn5L4BMLiD<4@*|=NlQ7FyZm-9NEOfmS>YquUVt^dsa{yh)B<qRtm=?;YIDwM7P
z(A~d2K;`}tuQ6}!)?fdn16(MoLx^~wp(F@?Orh~bb0YInDf<`eb>SX=qxI?mCD79E
ziG#37^wr*9-rX%?!zpsy%)&d|7uT_y;}^ZUfDWtpqIe>_@#DaX-o<$1=C1^{%V~N;
zBU`%>tBB4sRKXgQ1BlEkX(t>S!?r45MoC5R$Cpd2;&x8rgn}4bdtljH+o>UkuOS9I
zcPgAjXU*jJ9gB{jwLRaLiz=9>Y>LBvHA#gqH&r5~$w*!g5jp!qYhIHxUGgC(?<de#
zyiO=hRO7o4|4=}6&2N*eNagha-Di|MjSSZK`!JQZ!7hG5IjXh=LYYk$4!okCXuu&@
zNKdG&A6hn?;%4?+I@5Zj*;8?bLkAseHpl>mM34Ucqm@z^aP=dV&fRbTYQ_|prH0M`
zf}Uvi^)vPP7xn{y)6zXOKfA~2`yphcgLs8a=zHN#MYrxY*T#Ga1vS)ou;S3zZ4p%0
zDHSgBmJ<PGq<LpK{%6{vd9oNt0|JIf40plntAQTq#xupco64TJ&8dM#$lg`zhx)zS
zrFK7E%prGUzpn~)WJO+_CtE*0tq?gJLvPCnUuNMDeGK5o_<YhrBrB!uINcx!nv1q(
zZYZNKKjlCstBq+S2<-|)ffq5BF61rLq^<^RSsSP8Mr@`q`L={K@1^#NYaLrlFGHQG
zIoY_og*>Z;hm}WgS?894=WL=a#-HnlY4{z!l_`D&QnFk&>4vk7$C7v-PfFG84?q?}
zlQcg10uU14?mNgB4HI!pUj{}=ahjceh2-DN`Fwh;Lp~WjR-R)XX<sA^_GB2RL3m{+
z(6tYx{4Y8Qd~vABX@|@Oj@VOCjw8ruAPgefFkt2uTr}yM2CxIw*!m1_l)usq^h9cG
zZ5pQtL(?sMKGdC01T=!)ky1)3uC#<|HVGXo;h4ih4cGvVpjhOpQskeHzGPU0;>~bp
zubZU^zZvnlq8s*+7deGeVwPX@o)>y{t^?q|-z-9+MvKoL_9CuUSs*tC%8mYK-`~r&
zIcq<%X*xZjGHD-7SZn$UIG#*ohcNM3vi)sohAv;mH>5EYidc|I{hdj<+uS7fVapIR
zI&@f8ze9)9h05~`7Gw9im;NIS1`i+3P{Ppmr{5}Kdtup)HsfrI1f;ZMhFdYp%C^$H
zQHv}#hBs0@&VM=eC0!T}1{LkAn&6O6nhs-Mz8WC`(=C7l&wC4X-?{6n^R*8&)hy(-
zONaL(Gg+mIo!&5JAL?wgF_<@Lt)CUl<dpu|^D~3D=nt+QZvZ1m*7oO6+GR&M^vjdf
zZzt_r)9L-uUTzK+>IQ{Y#Qf~Hp`}2EhgA&xX}#XZ-${hjaE}{w{N;=V2*Xqvz+AKF
zsQMt!89_v-dfZDD)2U260IU9xCO)C|iI;aqQ}_;_7PShkvgj#Supe0DjWoPi({$8$
zoCMe<ubx+7P+9OLHcz`s^KbF=3*8LbS9oV%cp?!{abQo{${j=dYwd5~^@Ki0;8C;C
z9l&gX@jMk{MpDY&N1Xqq$bz_X^G~dttu7}uLs{tF&SSv7af$v<jh0o|-alO$Y9fyw
zp6L{u2o9j5#e}VXZ4%YymQMXAbFe&#wwo9Z-n39{Bh%!DF?o%&I3`E2_dO#UH`40-
zhIe>yMNZ5$uC<|AkhLNL99@?xWAF{){`r-6&1Hn|XCzqKYNPtkrcxC3kHotI>X|I*
zGN0cGFx28;H%a<pjDL}i2WCfq@5-h9v4xn}jBbd*UOVN_Ug^0_*GWgW`0Vcs27$4j
zAU<8A@=zQF@UXi6|F_aZYe@U`Z%vN0ZyIfE=wSZUm~H-->JKtH>tGVM<m%|*-pAN`
zp1w7_xSK(HKxvuT9m(_T>O_G}g0c2{D@;jHF<e)7`)Wb8*c!5ZuCxYl$LgnVE>-94
zl<msfGy`u`Z(d`~7%LM`#&*3cO}<?JE~NjvFprNC?0M|(jjb(V^~ms77L!)@0iKe-
zSXHbcKP^`DFHTX>D|Obgx#<*1d(*@@10vNO3nTPhx%3ALZD~)rcuUL2w3Y-Je4;o)
z3@hHjRix>uq3Kfsb(Ath=Ci~Hq3M0l6bA&v=vdUu!#3t&*4NnRg)<CD;{ej@<|fh4
z8`r%5ifceFXomxb(*Fi}+48`>*vW0cqsGy2z`aB|38b&zc7F|giqaqn*=%7!*V+Tg
z3Ev&{g}aSfKN{z#EpB)LX)=AuFj5R~Zexn(++_^L@&myKLKS@9rg7kt3HF{!xsyn}
z>SF1oop*+x9?Q`^A0*gDWzJS$MPJJSp?7lAHY2TinZPtE!iVYKg<}JlsPJj+6jY?s
z0<Z|&A{om)X%C~xc5^pd-t@$T9r=_y-3MjZ(_*;S2^o4q>;HMPKVhk<#Tc;*lo&F^
zOFEmEt#ezpVAU0VtfHhhzS${MY4JyEvX)!vj+M#lGMD{!(Cr8d%)^rstY@uyDI;DA
zXdt-rh4emw-b6i?`xnkd?WxSUZ^LVZT#(czw*C+RG?o!0MRuuc&+cCm7aS7t$DDv_
zEvmyu&>sjHlT0p>)rn8Ya=iTtEV?~VWnja4b3QTvy*%2g$a60*Ea1bhHzcCQ@BJ^w
z%?oqM^Xs=w+2@#Yod~N3_yFAn!Dj|k0clsCqd6nVFx2u)hjB;F0Z~VEE_nVpT|(U1
zau{c45|v=x$Et@O5bd)>pl$o2&&~E1|6RBUpadRt2DLV_l?3XgY6#mjy#VGfzpSa(
z@@u>;7~4;;tj5&C$pE<&?gJY(hA~c8#PuZ9-M&I>*R38IWy*Z+Z8SnbyM4y^)wsUt
z+A59&G)CLR1T645o^dvHHg?awt`}Wd=r0Ew>S?1HtQa5y$)pIL^b@o95;0<QsR${=
z)OP~>W6_lHoX&c&oH=7sw?f;qw?<0R5tE*ju+zIg7*|j^I2RsJzVIA_V<(5-`7El}
zyztHL&;Bsbk^O#fXZ4fL4Q}_G7RxIEREA9%Zp@kG$@e}ATSA69jVB;tcS@8{EHa;K
ztS}u%`tNHs(n4E8fw|9^`K^zMy?qd1fky9EF?a%jETwC;(S611cXa%hysyW1#O<$L
zzT(~i(F{BFA8&Hc@NlK-J%sf7)*?Qx#edD@ij3IVe1dP%2ZK#8Wc2&SSEen74UA<f
zd~7JNXWhGYen7F59(rIQ5?+xo-NVMKqCjJUNI~t}a?go<D~8Gbzcj}a9|S75nN*m{
z{b`_>0^kTpor~qs9L;@Z9QWR0qUEV3)UeZj`v!1e@%|lQwcgA+THwThD_8^0D;|)>
z32I7=G&EvQw9;T@)__4VoXzuhP^H5Thv!!S+4vkeoAkhpLo)%5y?P5vCswoVC1TbW
zL#N%{eqgA6rl+sJ00bq{7t)o+I*xocF-m~PDtzGkY~YN}k*t<SXAxWSeAM=a?x}kC
zhU3i4KIGQxH%)FwMvAk7ckW;Re!0D255^`(bwB=n3yW}%J;JL64{rjPHwZ^T5bMlc
zS(-AKa5rLwjGF!0TW_-KSff93Um)bIl+y@?BU1f8*ubXn{uHLxu{WD7s+~=yT~>MI
zv1t=YYZD~j#wL$q1J*G$&uX|bJOfAE6wB@}@0Vl#kTw0J_25@5()uloIIfXfHUC|B
zr5il<Vr5uijGbMa)&YLN2h;CGf58M5yNib1Czmb!>LWB6Zr9Mt<B~?Jct~R{Glvn|
zkxe9Hu;A5#c(Cp(`^zf)4hZm%t-J<Uw&)3OpDtSpfgTLgIxSk&KkK8-VGe9kSM{Fr
z+Y-+0!KNM3LVryxV@ZLv3R52s1b$yG2nknu?Ebl?jFO=HyRLJKHPm~cw_sN)WEQkf
zqB=qG+dt;CdBOA{GKfVF`<NX2620hERnoo+0sy#<<~+TPf%>!lhC32uq<zQ7qqS4e
zlohf4T2Yl%+&-js_#t+dU@1na*)mFwz?>I9YDc=Bm%SUg4ac<{Jsz?|eia8uT=^F*
zXV$hVHCJd?AwH~IUvH6HRpPh%m*FO_vuq1@TW@B%|0d0D)YPi#9SU{vIN7n@r$Dz)
zQB#ZTmoa5d2JJlskpYnHBXk(v7cgDhdkY)~uBJJ3&&=RNM~j}czzv=>{=MtjvJZpv
zrP1rPV`Tt9mHwUrT{g2w|H&HUiHW;TiIVo{i4{ankQ1q1LX#ptpW%eEA&18}DBQh*
z@Tmftt^0T~o0OkymB3YS&$qx_SFD=Twj-*8YgaYx2+nYkCR~wYztSD9Jx+4w7~d9+
z^tIWzfU(s%0lOKpaev}y%S!sRWb&yRpP)z;Rf%gFfdt{u*t49KskKReF|Q9a6f7iy
zq9%iKPB{(4a|+i=4kAXgH^r;EqaT0Cp5%BuFH{d&?c-A7p-DcH;EDGhIbV(CSy{O4
z(`s6Bj2vpFIq;bBU+}E&2(S;Scq2B0<>yFOR=9n7;)@}PPyHo{A1X=G{d`K7c55G0
zEZoFBGS-=0RKHc4Ov#P)V(kl37$5#7F#G4`+fRVqp*E(XQt)<WQ#}wM{i5oHjPGfc
z(cE3J;$E;hUF$GWf9(t=nJ5k9)mn1YQOC(9ZALBLI`Zo-F}UGBW3gRh@fChho<Ywv
z=Rmqx2-egA{V`En$9kbqJQjv4Ay7%hXQBM&)Gb%wxBbVl*R)3soFx7lG3dA597Hu7
zT1%f8w?wqH@d5J%(GWc(3RpYmD(I}zmRa5Ky6)X<2aI@S(Y^WSP48S7u@_Bf<)eaN
z6|l$2KP4pA<myDK`r`wQ9>(!)9y)|rJQj)(w7=E!!er)eKXp>;?aYo0+;+vUHzEJe
z2G@I{?WZUeHr>Zi&*$Tq;n<-!$NyQTl*OL5ZVMQUY1^A-a41WT*z!0zQIXn#N3Gvl
zzcpM*DhmkeR|nf9Q(Es?u52IfE34s|5+B^DoW;x5^u{MA50h&fO-(IO6&nsyNl@L4
z_r?t4v_!dZ2wl%3S#z<B6;2_v(?S5WjotlCKHI34Cum<V#`6ohV*uwv;f#8ua-sEI
z8}sK!19-WP1*NCxjPK6QqoP$-soRGT_wKAWYyFtQgu(j<KR}fS&8uI=!$%q`;3W-7
za{w~u)%W#Nkf!6!1J^us=Hi`q4rY$J^Lo2SP)jO^h@;M$i`>?`^t~rMX&rIyfL&qX
z0!q9^iG~+}m&a$QrpvVEFNyx|?N@yZK+-i0UW?<cu?&3Oxv>Gk%(@w`=XpkH4c=iG
zG2k`)9w$HLTb6cncHCr%k(|4>2bF7@@riqD?Rzu1%(o}w07;EHru&HpI(v+f=hM)k
zR<)AOYPNWzf=SCbl!R*{C1%SK<)Y-4d^p*cq*#+&6>-)F{eHd#Z0%_iLMHR(KZ~(N
zNWZt})AU9oq-nnVYK(+8Uvp(68MhC>+ip{5Zu4?bEwJ#6J#7k+Y|OvAj&g5RXzmD2
z$3FqUBgL#0+&}S5J}@AhR@<(?RgJvA!?)+d=Hcn=p1nR(o=7j-E<~xQYW!J(Ad~!$
z_JgcUu|Ltpo~y7njf%HGLykBKzm-FqT8wbq-5Ha66f)=EYWaN4?7L3+QoO-rq5n)`
zC(_CL<I1_&0}Eb^SI1#GM}xi2mcV|{R6;-YHqeL>l2doXKX<#(SPtwEjOPg#<<EZ?
zfAj;eZ9`3*8`#1R4fe#_iWXu0L&DggcxzzClFlIk<V05GK|99*r++ujGS8XdcMfSq
z9UcU%t+QW}=jXVA736e8EL8$9$j@#BBe0<5PMOgRfrZ*pUljHpQi9p65y!e?Q6967
zN)vuysFKx)ZcWF&W?tL;*Hrak&_la9BTK3UZ+jODe1O}dQoC(_XH(LzWBng^h<<+-
zxBu^=w)5{jV!e&YX$ZV&cQ9ZWql-NadIN({0_z6QWpQ-4(|h|R_xe^G9Tww!$k7>Q
zKZ4DKzRkPbk6W%gz4u$j00oQ}ej|ubXADwq#n62gWEKA-ko=y(xy*t!UaSgE)RXw_
z<SvJLeYi|j;rK!x6_e1Pc1tE)<8_$f9C&ItgJu=CdQ7k~w-k<UE@B#S5L{A7DnBjK
zpIGW)D-@H7J5Gu>=#)^Zw;6BsG2E8TIRmQVnB)QdwF+1pmEZV!pv!<v`R)Vx#eV#1
z#vE&Uwp%ay4WawWmJU`6)6<9XqmYezbec3qcE#XVP>m(923G({o6r6>^YMb5z#99m
zzKwp~#N|X}{*=6!$Re8eJ35!J1S<LDT7Kt|ov>713zZRI6(RfpUkr$=FZYSG+Hke^
z^>STDUhS$>EQD$d@zSrHG#9`>>JMA(0Zui5QI^OpdkyP>XI=2v&|fdL8f(1v`d7Ay
z?UR*gCW-Y%PEoz^g#1pjK@vEMFK*~qKNZU#ocE2SEyJTD<~`=mNp^MnKKcDuIoGZ&
zCe=2940W2Mar!fQlYlZ^>gs*@V2Y^W6=c~K8gcbk8E3wIsO&hTkt;2oA!l{b^eX@r
zhV1E8?qWAycwH#IQa?-5=1CQ$VnD4HF6{<hdu0OMD3foqRklQFsY{CR99auJ2chzN
zf<+epV<q&bywB8h{DsrxcW2h?kv9u<Dgr1B%I*NY<9}OTmf@19E16v5K&sBGYd43-
zhzNydF?{S&Q6yQA*P$E=w~L0qX2g8z7d#bMxIvONm6A4<(Y_Y?--nB;gyU4ui9}qz
za<IKo3n*!hWjIx0;A7vJDX{Xl=H;po<(i7=&!uXo{a#FQQMP^{mIGP9g4kXZ)f`!k
z*LDRpeKJwv8~tvF1tGU#bEtqg!l5;bKuYG-jo9s1Z(8L4984wUg7@_S*MO!Ct`<=f
zzfUB=r#j3($h@h$17w(qUMzlXkS8dCh7e8kk!*rak!Oim+7pwU{MZy^Cn(M1rxuLO
zUnistA`<%>RsV9#aNt8~K>I8Odc)cs?~0%)7L&cqgR_6r44`51{%BbpO@4Y|K&d38
zg)SN*^K!v!oTxD8zuz5z(%Uk?<^u}cfhnBjeS8WX`3tC$PC@r5Pt2eA19S<7isF^o
zbRy*l`T=2?DlJx~sHt1sysruJMXVSjqm$2G7O5N3p_RiEN*p0`#byni)y<iIS~<FG
zCF^^3>~8u#@GN705&uXdkKM8!(Yg0VSf{Jbth1r*=KDUABHf#B#Y9Tby9s>*H_7qO
zH2qu?JEg=9HJthQKBK!_AnSMg%`F)*HU3%6)~uWND)j)svXmv14l4s~<M_iMEozdj
z2}+RvLw~4hAFP2ZRy<P}A8H;4B|GZFMwt`(y9&dUi*vUo|ClWK4P#=XRTLbb>Dq!)
zLb^lzO8v`t3LM^mUSZQyQ|IDDVJNOOUS&esjlNy32~~HR3c1R}LY76*9uAP+Dm#=(
zA_+@`Ll%Gh=W-M5`Bv*mj&OdcB)zL~!XHwo&z`5rjw<)eKp)u6)&ewl@+XKp&S0zg
z--RYUVQUjHg7m#buaXZcWd*<)#4@MJgkTF$l<bVWJOQ|KlG$JT0fVwjoYDt6kuRhO
zPqEcy$2X6lPMbeISX-2I=a&F%1I@^>)TigS1Zn9yPpM3d`F5MqlmB8|zOO(i@3Z{q
zM)0Y=j>IqAzMNzDfL8YYKT+pK;JMo4ydRb;%;(yDUabN&_~vP!R{d(DF@Q_nqU^rK
z5bOlRc0kh050zwj(l)w(-oB}TN%f6An*n+{*fK|3EI!VGT;!)Ihbv)6w4i8D?>f2K
z)!HhtXNIgCL8a4{6}Jv<LF}(CJo(E}M_>Br#ysE@KIMN6w6<*(rko-dn`q+=q=CpX
zKhxy4i%4n2m?QVdR04~5!}jPv*KKzP+Ve8@v94LCFC76-9&6cgjny!PUf^%Ws2Jc#
zD(l=lbNp{m-`y^f2Tw0;h9nQ`XscTIX{XOt-lODTwvJkn*%KCQIgF<z^}QJRjgr|(
z$#A(dtsoYJ|I>Ms^{0FIkeg2fd>@rM<F@&iO*f<5S^^^59Dsea5%H>K`pnEZAx-aw
z?M1jTk7-G|47R$EJEs<x`&w3Dq;>$%EYU26Sh20>)lx^UW6Rmb{?1<oO;@|>Zp00|
zOC2sDYGNmzZN(2y^x(c?rEqV_7CUv0Dxq2lXjINhTQ&SCU2MKM-y;F%%hg4h&(IvX
zMtAuHXosv_ci1u;6ec$I_@DHxRX%5zY_~H1Ek;O$CAnvx>UFwB;FB!5LP0MQ1`lB6
z$M02rF_mEdbfwWmHp5Ua3oVl0n{q8Y8*SdT<}QFLXE)|hnFlAg%5;I#9wzx1BAWyt
zS3q|fTz6SW;(@x)zq~ffA9r?@3cWV2gx=wz)cQ9zt!z`f^Kpt191o$M{fEHSz{kqi
zu&#q*x;PBQm5gf(nL<i5kw#rF+pK>6m7|oxs7vE0H6C(SkhsQGwgqXcy_ci4mU*^F
z-YZ85#OH$SJh+CER7O0&D3z9vj(>8Kh_`V|w0r2Z*VExs#r44<0lLm~rvE@P&<=NX
zVRm;S5vkeG83CtSgza8HD%Lxy4c=?_iH-aF3No(^wK0M83<?B|kJ=$Li}Mb4QSX4%
z%{9>j{a0S-FUf02|EQ!zoeU5wzJ=RNfjKF#wuPv9UCH>ByXwu-f-~STuMnL6ta=3f
zHG0)WLYm9owlL!|=IZ%x!ld$Z^AM7*f@>+hY9AF5D2ZeTwu-3P55qLccy<4w&N8^s
z<x_!b%I)_g#`etDE2WS0{$0?Snc{Kg?JgVmUO{o>p)ylFQ<rf?J&5OjI@Lkx+<I-K
zts@E+>UC2>qA0Vw^_rg}Y;GY|?0_gA%sA$a3$G2Y^5d+M*{rE##0t?t<<{$T;a`yU
z-Q92hE{ODhe^@LWu5{59a#ezrQq6KU)Bnij6y@YZ93%Q=wGSa2?>8T(zL%|^)VpU`
z=8@3;1&ThepL%o#VI)+=_-S~Eei7ce=W8Z{{^0Ur@VB=$wLokem}LQd<X3xIYj%AV
z?C=fx3?2LxPx!-?;pUebn{B)Z!=>cUwpgEtZ1?$8u2QMdA^dHqQ^gTD&c7x(up+dZ
zgkVi?sZ?*IAkS9RT{7v6{R_GLT^8q(g~$E<d&g73cV-La%V)PrLty-r@{E2LpZDc1
z*9|Uy=n|#>1QzsGja+mp!2&;{R9Vbwx1K3HG5f;T#qaGofLzbk5o27<`v|vz^#mqf
zlxlu^_3QYhO>5ApAoqqN)B`7_v!*4*i4O>BE8p8UzL8T!|A4Dg2~^G?-o#n%$WU1h
zIf_56O1G`9Da#;1w1dMd5?l5wz)6XbGVL}o(9{c5G|^AY0|)ghUm5Ezdu+DO)vkKh
zsP2m5GOY$MB+I5K7WMN|z4JT=cHAEnaks^YrxJ8|)z|OSWG~5+f=1x_=RwP)*KL02
zX7iITVmK8=Hj>QrqpuwOejO2P8+w6mU*%CWKOy3X@$yKnnZ#b*?Ilq*E~(465^2$C
zR_{E1jM-IWT*w|1Nqxcot)s>reo48qv@7%6zXI+Rv2NTO;Uh$e0Ur645=01=6-d+1
zJM2510m#9XD$hzG{A${<S-jkyION`@F8c?+%N$htO1gqWOTg*P>g(bCK~aDEI41W!
zU^Nw1^GsZ^tFEu4(;KjZLfip`ZFMqZnjXp}mhz2h>4rgC%N5Of!%b)#uGo6W(sR9A
zq!H0_0jEJgSk(g73h17B2y;2PEq$nACd4cV^yipz1fk!RX}`995yHQ_amvfvTG84J
zfR#gDkL<5kE)B~EB{oz)8B38-eTgnB7=A0)LJF9(R;}k`UiuXtolmRfih2<`)2dNz
z)Va*v*W8@JrLqmq&HjlGu)it_PXt>{aCizLJ}=s~fY&fYsad<qRkil=e;1JS?$FNV
zsB;LzK)T^zfEkUp8ePA9Mmzs2>HXeiovA<T)Q)QN+99p(kVhDoN3Ql9`qIAz9d`5y
z$1cA#a7B5YcUoG&%y7-}3OgFEDWZ;oOY{b2qio%?rb!=0&qoA1n9Rai_w{^>{qeZ%
z*f3%5=<+QcxmqYKI;_^myDx*s9cdE*izZO9$hYNC8SrG`8Y6&*Dbq_)dLjUMbXNyT
zDU^@Js>9b3UI*e;SuZVHja*NwLrkDO<X^s+b6tD~IuLjZ+&#?MHcvyN+Iuqe@O|EX
zis@=2kKsKeOJI-Arq$@Zi#j?T8Rg1|Q3d)VAeEanw4QvqewoP}8OtW!V@*CBoGOj`
zD<AORD!fXheFCt4U%D}6FqOWLklF8c3^{zAn?H5Im~GRew5T{V4O9S2<I;UF6$4WJ
zFv)e6byW;aj&++<P0s{MBW6X{#=H8}a_@<Z2{*?{NtONid*PQt1xN1JL|VlRDv!+y
z#gq6P|7kH?#;P7G>u8#f;ok)3-cE<1jQC`BR1(#*^jG}_M8kq{Uf`u*x-T}CkRvh?
zTdx^;VEb5JXvqgeG*x1+2PhJY2A#l`H<C%}oY{bZ)kNLiyYO^X2^6sHf8sX*cB{h|
z&Hc}nlNSmq*KLG|hpmEU*CYcUg@=i^pWgK>yM87g!e&24kZO_bJEd}u%8uiny)<Fm
z&n1)#^?i2{^*(0_nUz*!(jC^kg5=I^V>(Ay4i8(4t_`+6lqV5FOc4IbMjy-_dG`pW
z1*M|<2gJ~iq~0nM3UVF~5$AG*xzDE`uBIQ-$r$I_LpFBq&l_|qMF!tn`z}y(JQ}&8
z7R0YGOrramGxMJ*TFI6fZQEqIYh_bHfk?m+O*+4<wqoT4s4`J>zpy23>5D%&vFVly
zcTYh~&Wx0{ONEHarb8tlyeOvigX1nNQHx}vz0~i!@4q}cdAdTBxcc>H{#x&f?vLx#
z8|w7HeZrvS;xe<d$8B~TTdggYGR#rsR~4Eimrg6+e98NhS&PkQ7G)X53DtV;SuWqE
z@xtm`A8c?~t4<=<xLCK=TxXyg{c5qN%;b9e2nOg0y$IU@CUp5vKkFU@ID%8zGRZo1
zDBM%po4dPTrkTfbAT?dJR~s7G{Gs%0c35OgjWUqmc%Gp8qUVJHz!W!XFEdkiSq7Hp
z0ki(wHOwE&M6ABzVk{RY?q^o9rC*~&mpJsY6OxRy_~W*qx;$gJzbCHD@$Krhg%MnY
z64e6y<FtH}3p^TqiTT;RFE8iSqzyHGRR1O>D^3X9KCP3gylFID?uCu|J-7op9f?{r
z`0`K*gf99d8C_ZIuNod74xA7FmO5r~?UZTn0xLDgy^tYYHXm~Fo>HlM3z|a)46nLd
z%ASwJhgr2vCWwJ(MUSI&Sxon7OkeVqjH(YXV-+-fXfg6u;?r7FK~j8^*j1Vb47e2G
zpDuAxH>Qr01ga{AVqZOGVG>`)U&{%SWaxPl5`wcT5h8Jg!^xAmugyXVwn{2RNTw}O
zLtcQqeyk5EAN^v?p*7!t-bDzGiMO}h`6MT{>R|om9aIrlj@~+Y^+X8NyYzcLN@MVa
zRb3G3$!Rk=sInkTW90feP|N0u!0XJ5XBNvoy#1(T-n{M0yjg+H@m$FhG4a5-$2q)w
z{)U7JjvZP|v45$^krhUNHNCwBOnk~Jm$uyVGc~pq02FP{shi$dugr?Lj__BWZRsTf
zy%Ml9iNvQS?vzS>+}9&rvv3K!4PLe+UJQIl69Fm-ymoS_2xt|%L&;tfBS-Ep_%9Lk
z2W>*~FXbI!JzVqJlxU(pQq4pWKRX4Ao-=wS`W-m0?XS{{oZRwgF>d`jALXY+8@cj=
z33Z(qI4UMXd|Zk!qmJqo*c?taXcOB<YObV#t;TKi(sFRQ9=<iUt+XU4SRfaf@VFiU
zi2>B5h@eldXH&p=g+zBO+P)qi8?GvBdzSI8z=X}8cF=%<E4infgR4XTly_8mu8yYk
zys=agxMKpM3`;Bg%4E7y3}icDKXSdV6s?7lq#D_gTopvaI5ma_Jd`6RC|<@V$LN0W
z*c;8W4r$co-IhyS9fpGsZ22(T@(alqUpgQTsvH_T2*wiN+I^cZ&!Y(e{@^`PY;*@?
zc*e;JmzKppH1PE}5YUP1p*Pyrw)`t$x_}L+p!~0QnO5U!?glK@zA+3carZuOsjJ!2
z%tKK~HPQDQJjPp1$ChJ1bvA3-78CBR^zz%3=4z~v#X#)ab0w>~;K{X4=Z9O|1KleW
zHwRBgTgBoq&!f@4PjY|NSSdHJ?xSOAeImttJVee*?{IXIxPHu5baTD(<~rv0nDu*N
zkR&N4H7uaAgOem%TXgPlkAw0;jiVcdUdN|e&(5*@7JvI7C_dvjwVM}qvu7<ScX{yN
z1v7u`XC$iNvE8%zsITkUKRVuxmL6BPuK=D(P^MKM=;dlVL}NR=9V9YchM%;W&^l9z
z(H-owLNwu{w6CY1?B+{D7KSjDr*P|ggU*8?B)nXD53Z(pSea;y*@_@|iMC%W&q1Ge
z8}2T(D=6b-A3>6^Xr?E;MwAbmJ`@7KU~=?U!Wq0t_BmeP%keCeo=LnfIR5D_?;emg
zWhN}$89U?d*21GSGc=wWa%i!D55h6a)j}elo4Ka4I|z58#a3U$JAczasW}EN)k1-8
zx{TM2Pbc+KNgVwT#`SvSTzifZ7$cu(29H06g93K`61@NyA|2S1i*wzG)%)5jeU0Vf
zqUks){ehg_d4I#7jvAC+bA+MX?dPu-VZw$I{FX?bx9IKb^z5gVWpD1=K^n5kA1kFm
z@|liB>}AkJFF$Z%kp~~<%Vwht6?Bp(0hmB@9W_ky_ln+L6nhJe!A23K-2a!(#{Pds
zt8p;U7nuFb9aTb>0{VOha~hjQofmr|w66yN9SM&%s=c!;*(a{(g+J;RqL2{nP0!bI
z80sri-BmUmaRbap?~hIF{R(tEp3vg#9)%a^7bg#rq&oF9I}C?TEW`HsV8S+Ez&<$*
zP%^B1=COZri}Z}V!zh!!SbOJ&-<0jv=I>RTWIVT&U}9ryh1R4`l$vIE1o}7Vy7<G#
zG2p|KJH6Jbhd**Ww_4@8J{6|PeXKR(lE(~m2<A|UWy%QkuDw}N<BKi?*H7lIR~1CC
zFiGUEB^vW<y3>R;_fUUcb}(q>a-iv>pRrRki!yL#&m#nsa{HN)=R@}Q0E$>5B>6~>
z;JvEmiMHnw?-JnkkPxTs0)?V7w%B4C4}8v=R$aP-J@i@Ot$=ar!B>eym5nkjya{)#
zNn<h3<LexhaG_4(j@#`Jw&Pmf2lT<ytqO-DF(c}78;VMbq-Tw2E<j@Ic*^5j0?|}?
ziz(f)Pe&u|n7}+~$G6RUR({}qVvUre5OUF#NbYmEZdCGyV*~h(<%uF_V|rrl+}{h!
zJpApRZZwYl&QIU6i7@MDI{rci`#8yzQ{F$+43VIR+#gdh3E5^T*NDbOXdd&q>e!3S
zW<UY(QA)%%;9>#lH&fAN97UaF9DB;4dfd#^KTuTpSX8~6T-8=t;sE$WVdBQ~Ceh?(
zBL<Z~Y;LP|LHX1hey>DXGw}G-8x)%*>#69>sN9pU@2T*Pvv@xdo3W@R$-9?>lcp4|
zS;krZ#Gt^=XuT%G+)S>0DW`9IxSSJ5H8DPa+XgdOOZPOic3j~;%Z-nB3;(o7^=hf%
z6^lwDUAgeLe+3mE)J%MC%-P%5hpQEr!!Me||B!Q285(Rq`~i!`fseurxDp5tS~P(!
ztsFlHtpdV?Q&YFLfA#9`;iUf><YZT(x0mWX#`N{5%UPF5c;Km35dwn_??s=2Vr)A}
z*LLoEl8m5$B-=rmkd!9sD`^wtqaeZ%vClA&YBFYPawZF7oCqDiL^0QQ@5XbT<MMTL
zV&yGN<=A-FXfzhg91u@+2I(?9IDh{#ng5u}B2-Uv_0OKWhU}r9G&pSsZ}1@cGDdN6
z7+Ac&d;=U?G)N()&*{cf*z(f6=2w;Nq(^6b%0Dooqq?KJgKcyKHgOw{ocjQ*esjDd
zwWfloCc3*A$94gf`l|15katjYO4IFYMx4bh>XQG}V_n4StaD7>uWv|i#C$aDK>Nmx
zAf>-Y8OZP$+pquLFT#qg=OxWQvx!tvV9G7!C$Y%YFbXIP?IzG{;f%}$JsQ!zw6H1P
zVEt1ep=olfVzVmomwf_JYe%sEj2U3;bj@R*w~FMjrR_LHud2^FNPpUQeA2kqgyl%z
zbBIczmb!%hrVyLY#|+d(&Ds!<sRMDRmFBsbb)6fIv!kujY2x|z(Q936^3g{kaw}?&
z!q0%N?+R}(bmc3zS}8IL-)1Goc6E&e$K+Zy8RjVVt?9d;+-nChzUoZQR2bySxLbEA
zk-r7_P0qB|y6*9`m|(A8KB=`RGUPcMFlgaJ{{^{t5yi7|3Z*|;z8bSfxAiAy8I-AO
z^(0!ag*jeElOSL}1nt%Q0i1K^Cr+18->w9cSt8=jjyE2vjYwh!B3><Ad#-45;c<1G
zMI$aYI-h;ki5As+{ekF_rf*xqcxa2EgtOAJ8E5=42&hceQ4keEmmZ5vXk)d6l8}jx
zMnk(OHoJ`pzRUYUw`x2;Nz+`T$W_jM2-r=SR2{vbxq_*6&Z0^kDT0rFvX(mq@dG6D
z7nd7y*5L-Q`-z`p`R=*h`6U^2c^~xIZojFi!40r^dByFY+$r&OBpB?XJP4s43%?_o
zBPLZo9ADJ)&FXYCIGOa2XR!+~Yj?COt$cNC0wA<bZd=8P-dxm4L2AsFKOxW^Xp(@T
z`_cN%LsgHvA@s(Q3RofgJwF6g_w0LdrALNeAXL*M)HQj!$)RTnp_$N<;|$V%oG@$|
zrR5XWv{DA^s<cQZXsz=N=)^b+#nuLAvsdOIEK%k>T$+WHT5i#@*eMrsu5dz;X&lQ(
z5wGjm^~$J1S28lX3-xmC0pyHV9v?&S8|0eWQ;Gy#Vv?f%yu$IpvsrawmFD;sl5_;U
zz+*_8sBI~dt{c4TSHmfIUu@YL0cBXPv_I?iF`Bkgz5Y@8TlN)^-3rX6=>7?k@Ihnl
zEZ$`Q)97lT&$K`>*${72O0Gzl{r{$ns>W%7CGm&NK($<j$9(nW$qH$^b<{|qA2d#9
z6GujM=Oe8Gk|DJ?-cveN3S8k0*)V(FIQb9s&{7EG;sXPv=n|V6f`WB);(`Tmiv&%%
z92~&wL|@Aht8~Bu7O|g^r1Ot-p9_R~D?gYV4H1vSY%{0i*IP9rj-T5HwfOAh+flH7
zUBPD1#9=cTqh3<irDXi(b~T@1gwejMmA&KPfkuDyae`UoP+ExjdaE`4L#`vUmIGIZ
z9iEuZ;zU-qyjKE)!$WgaMsk8BI}E&9JBFK5f48#dZae-WcqvhbrVBlG`5WZRs^-T+
zNu+rS7x;If8N0@KrpFE(6efW##evF^vp)A$ZZS|+d-~$7z;ynta_0<Q&(5$Tjow!~
z4)pisX0r|xvUuKE;2?UGeWCb0qKS%=Zlva}5UEqH(k3>&B~m?cdK@^DFe^&sd)~XZ
znKqfl87g!|sxcy+VX`Q3D82q1vPpSvK=gU6=^e~dM~9Bex735BaL{K*97m~$aHlQ&
z+%x8>(y>Enq{MZvYqMo_`sv5JH>#O4c(gv07zBNkON!Cu<Hu{c50td^#Wk@=c)<lu
zUF1A(y`8a+1;4Ni3C@n54Q+^J66_z?k|LVL4V)|FlLG8pJg3JCUXW3G^#H&Ur~~Dj
zO8QYNijq#M3~jtgFsFXQD<2UaZ&`uy{YCa`njXi#F(Yy_5t4Ob0`8e7p;5XcGLst>
zTsIY0QF1v^Gc%EYmeF3{im`&~)6uJiYrk+slhTll_IhJN7-YD<2}cjn-~D*%_hMCg
z;ZlVs2sy<rXcHk}ZjGy7&{pa!aV`-{SDPzu@2p5=vMcq>6h)cGVccfQq+fy<5pN6G
zdkBJ>D+J>+FqA*a=(F>zHyw@kd*bULVFO1GVNL&>UjO9*HvzZ%blst=qQFk%--YqK
z^KO92QLry?s`q`LKcvd?1sr6)%IBYpu=WEC-M~x3JYPnCNAb0Gcjb9Wn#Xs2OSXs(
z+m*b37aWau723}yOujxXuw6_58o6w=OM9bkAQVfbIfCdf&J~aLnu{MbE*dr6(KwJ?
z&;GsrQ)^xu{{Ia=R|3)1#}TiEVphdNph4<0(Chf2vG0Vxyzut<zI6*fy)&!hBf@{m
zqf2k(HPf~vEH1<<ole<thP*Oivtcu?O^H$~5d5NgaCe`Z=F6cCNzqhFTcVUi=R)eW
zYZt;)KIu)eq!sI|@h2oYY(^1T+JF8ZN$29o^#1>G<>*34ND-29nUH95SBi3HTas(8
z3BxcX(}mnG#d5#jwz)Q!VJ;!Jx!(;-F3WA^e!raG=X`(v!nV(6@AvEVd_EpfmUTZ^
zMNdg+>sIqO(Wm7HW}e=$XM6=i`~VB!z3qP)POO#@Lkx}L`Ex^q{M3lzdGLXiI$6GY
zG^$3|+}|H|j$W&#x}@t}!Qza5Dv!Q1qHFnH-{yx~!4xKebZyT_w#U1lL5?AMwgqjV
z`_{rC|D19A`q^TvH)K<EkcVazng51XW0l^pEE~%M5MRcHdnblv&zrl4JONT1As+Tk
zOz)i$DjMjC<*$SQ60OdZC^OCcD-{LR<#=)y<M-Y1O5LOCZi~%26>>{VGsrk?JD;yY
z&@md?+c_QmDL=MuTuhjiM+@b(pn0!;6cih3VO<nH_sk*|Qq@j--Z53OH}-43K8J=i
zbGOJt$1cA9QM>-d5B+hPr4>LOpPD#Jw|#TwRBr#c0nqif(-TrNyqXsA^qfQ25xtWx
z5uE1=KGh=O(aQjpg!AOG7Z>}>b`1b6QFMpf80p6gpvP-_i5X3lI+2?j*2aS0@a}*1
zDD?Cf>J74!5wj>|LYynR;qZFb5w52}Q~l~A_WJ%iq8AY4lf}n=OT8Ong~0Gf?j9Un
z?*V8oz+T?M_(V!$1`-ee<2<m18>T}j#>0+_J`(uYcW9Gg=7K|)9Pe><y@noo_tX-w
zIMBTBK2{~sLiw@~+;_3<*h^--IGr;kY&s_x+5?D($Y*R`<tnIIju{h0#mr)Uh;`!R
zZK&6$y&nevWInFd&Rq$wwi#z}K_9z1P4iouA$QJdF4DC>d?5%l`T9%7XNVz^n$v2u
zJp1%~t05Uf(Cp2Bn1U-l*j|9n4t&6|&f|-e&aC!`m<tig!15-G>)5TBE|r7`jg_sR
z<C!WFA8Rkt8iJgaPQc93%4q?%uLE;x4BKu+71KC-&5u$&$tvXP>XTrd-Bz}{skFzx
zO+>0Xjvid9t~P9Bgr|dzo>SBM-4T3FoF0+Rx?tG3`6Z~E=u_WqM<Afw<Qvhz&2i#_
zGC^S2i+fJb=If-I@WWB8_>-}*TX@i4(s!K?TjZC{)}I?LCmS_sI<ep3M7_(31CxDV
zB^9r_X{n6}zE5@Rzn((Rrb8TMeEWhAR<~vkzrJ?p1u8;yBHCTgR+H2BF-!E5WbOdl
z6^E^~X8xZ`IMoQIM}mn*|1wlQbEzI{X&;_{xO)-cSe4n97MxxA7z^bV@UjMK?Y@x$
zx>QO`)xsaRFQl%UhQ6!%lEMa4HozcRnbXr1UzA=c-fGlV<v29?3DqN+9s5JqV3(>p
zS-(`W_A0+~IQ@%fQ6<SDt<0?KS@6-zX;rRc{?eCYy7Lj4F@0E@jqC4mKFYvbjp~~t
zHCp3qMq7}lBK74ZQi7k+vd@z-0bhiWgeQYG*trHOYbBou;Z|aQe<=kxCf^h4tyse+
zC9xd+K@<Q5FQEaYWAeoV-H6VpoJ=pKKQbq7mMWtCy<y&&F~B<$J*ge%%=Rf{_)Cxa
zySQ@{Lq2UDHlq}k=XK6ONQ&;1oiOFS(3EJ~UvI!7vYs6wU?Lv%)6^_K-f|hUQ5x|t
zL*UI1l{<;H!XeEcsC@dFlYxK;^fL{S3%?_vvY&lFZC_((iT^gO)WiGcu9C$Q+HL2C
zwgV@_0DDM;j1RQY>iNxg@qJsjwbo0iktw7vkA$IfJfM%wdCC~I3f12}HV?3fe0Zh<
zoKy2w6Qt)z`|RZQP@_;d*1lIGU-NI5@J6xLQXP8pK`a^jSzZXwk0e5ZQ$OQv@&XFn
zp315yh<!1@e;vm!PK?12euF&k#nU3Bvf&0MWl;FZ)$$o1qxIZ<V_6=v>@pWzRFx&~
zR6$h{`GW|HOD=^9OKY!`OI%#Dk8XT=<M)#uAnk-5pGfS|Vp1uI8b|j|)KvA~f~3Wb
z$e|!=y$w9)lcbZ@ae@x9DiaAd(`EJX(H#^Nbgcnks822jh!;!EFgvkJ99of1W22Y4
zfp<x*l5q3aYHrT0Mc~{O{&)!070=XhVUuB0TIX!aiWMk;s={q6#!SPR`Tl^mUuPti
zj6vIZW489_$Q#)Rd5QFI;kba_E`ot11yVaH7Og>v+UE-nSR?y>Bo`l8RdPB|ERRa|
z1{DN3e?=+<&-|9*Ha#)WY2b=4)28K~(J|3^desdq$nr~BUwiNU0|dN!E<f)G(BjC1
zt*Hzscn&<CeCoZw0?Hc4&(U7G7AQ%LT5^D|B&Ic4-Z`JfJ}>pOxmwwKtM(8LJ%}`G
z&igbc&zcYre_1te{~qWS(%8!F2zN;93=4K|6g#<zJ2xrnb>%ux-VDoC12|@L&F(~(
z)Vr>w^jdVaS~do#vAhL)2&o6$e9KCJ5+fg<ZEo_ZjkRkYtUD*6Kv%2uo!f}i8qWbP
zG|WGe)Ys5Yjvd{amHzP?3_3+OC^k1J1DmJm?3rxp!z9*lTaUS%W1R15&1kZ&-q(YX
z0v?gn<UBY4kzS?8IhS5}I2ik29u%gG(IH~4|J5GFw)H5c$L(9P3vhj;kT#NJ3){<v
z#pQmF(sQhBJ#IJ~2fW%fP602g%v%NZ0CGU}SvY5n78P+fhHjq14LRvL`o%~JkUx6C
z<|gD)GSX-NIows|q_fER;b0m81$cj&pnPd(H_pV{Q<~>jUP=n7fg*n^IiLQ)QsUJ!
z0M#_blfH$I3SQtE{Sv{3r39HUk3P()Ro>aH`breBng$4{Unca3@m6{Og_6xc&ul%s
z$13(qSN+I8i9iiMtDOoBU`}zw*)9pMF7wCzcxtM<g1%ffnkaR7d`c{Diz!A|zp2Zy
zQlWY~Fxar$ZtPc;!z018w-(NT|L&bXEkduVKdUExwh#JuMrL1ek#C9grZtmEU+Otb
z<R=qMG~ucc;{W?4Vl37Fv|m+R)f4LJ5DO$A^7zm%9=b1Ld7_s~W9zsH@zpDEj)_(u
zQ0{L7hm+xw&dH6{&tc|Km3*rdU-MHtuu4Msqt7kvEdMgpTS`TfmK`U9_1NG{Q=)Fo
zioWkHbwNH<I_rqeCiv*$bo969;ZZeQ10P1k%uyAi59%b8)CtBdub0%#mQC=O=o$56
zy{}XMxfs5!{-8owIvNj$Sy)8*Qc9K<#`<^XyM(s0@4poY$v?Sp<C)L&i0W+1xMxvV
zSJ6Az?IiYh=l}M%n$z-IW{@!brqHaC?mzis`lI7&_P6ofv~+lhl1G+?8Tr}!_G#+V
z#SdqOSUe)xZELYUt49LNPSqnNcLUl%$qvK6)Ie2<LpmPYg=W$CKTK0NP()N>X8!$J
zN*pj49c;*?-Q|+o7{d3AmtNku@-KtN!^M9YmW<`Ewbjvace=+V#OCil8q<2op9rb?
zwbG1@o|E(k+9}1)0EhNUmq{?)XY3nB{5TWvm~3FnGuVT`|1tni#+Za3T)eO2W(e3)
zV0CKRCSQl9_&?%fceI5}dAIjSRTbe!t?hB!GF5j62z$j&QVuM|)^zx`N(XtuReu7K
zHFFd}8OXI(tZFMpbGde4lIDN%t>bQQ6?isy(=td(KpKAQHv9f!B4FtTeRcqO_()G>
zpDvV9wj(JYuusz;ALD*hS?-%T*+)FCUIhFa6c3gM+5xW~j$7zX<p{Bz8LczBf{78%
z4jzj<x=#R;AKEVMnO*lQhrHsI;rGt(FIjZY=qrCro3S`qipo)piv!3eE$DmY@0_iC
zz8niJ@m9nhe@gw^zn*_O0RY!^nvR^<Bx^mo0&dKo(|^%g+uVKbhjJVIb4koor4bES
zF=iZ>Z`ZxEA$%CX&DIGdM+Sy2nOMGrXoX+E<sTxTy?8`ULN_m@TvQ5R(*szLFv~mg
zg<N2W;{OUH09jzk;7&c$<CXSL*lPg01N6co$V*rHI!tTFrH-}HXdorN$>+b@S7xq!
zV7XG!q}0>;2B<z@6Ef^OQEvHzt9}ZF3ySyrn)MqN1<<Hpf*o~{hGm*lhLd&*(0hSK
zQsVSWuko}10wVoihPxL0r_DZgM?!7Oj&?4Y_Q9lidX3?uQ{Y0Aue4qzkq&8cF3Lu_
zHX3?3b$}!|5-o~>aDq%+5u_){i-TMvJUA24<$tr_8VM>Y_UZ48I&F^aXzYfMK2pEY
z%_eK~sz49p{vLo&JYX_L;G}q8)Y4gLsVSJr=x<*V$WY=ri#iOS4@06G!Bx9$4Nq`$
zfcUAT6fU8@Wh3x2mklt|?4{AE8FILZT2QFVLaC|<ZOp=NgKecRbkEXO)g-Ym{;lwh
z_``nHuim%m8Q-$<Jsa{aIgCHymJa@YxGZn*?V;Ivp>rB!(Wz`{!LFZolGQ#iL4d+F
zXf{X>cbs+MTCHv<@bbATK6n1*%768gXWJDx*Hq2SiIo<BKwIc%bf^yebK`l^wUz(z
z#TUUJu<^%BlP=R&fcggJ<i6{4@!C&#7_sEtd8+p80%n4@rxsv}l%LxkdLBmMf9Wyf
z^0(j;QuWV;mx#LO<Y)a#QYIItW=%qg0C(c0FH1|(n?O>mMM!2=!K&r;%jsE>2Qd7B
zT;IEs!*mX+CFz?qNHv7-oA)s&2cLIfLC-v0`*DVNMxzGWw)%rsAW)dojN^%+Uz4%s
zSF1VWV=AZvAs}d6NB45-2jEieuSThY`%tM9gDoud{P5o+NNdBRS5u`MH1dNl7RiZC
z*UAH8E{hHhqjGXTlh@ndnNOo~4_&j!vOYpUf`!Au3#IK}ey7#5w-|g|j13CNtsWus
z`BVTq)U>Pd+)s-HZ$lR_w3$vptVmBKPNntxKsU`Cy?%_ZhdQ?oHJxj>G~$7a2CY_<
zDk!m9lxYmltA6cg8hXXo_Dx=7jr3>ox#r{6dt?BjA%9hVFp<`re=VZWeEg<Nl**`r
z09W4@zmKQ_JA|Nj_&5(v_UY$?W2iMwFv(6&l5gv%MMd0^y{?;#L=#gEGJbA{OU)3J
zNzRoR7w$Pp4lys0XFfEw<K8Ab?LUu)A1d?!<1Crz<&+Z*-SHoBXcLR)w}0DO*nzTC
z`mrIzgdM}<f>Ge?EvJg&mJ=|Lhzocx!hY8;jfC@A6<DCcIs-z+wO7E4sRZNNrh5+a
zDvFOdl#Xs&JnOrg(~NN#W9FH49h=$w<1XguO@TzzLjf$A@hZnM5ZI!QgW4vZKB47^
z0TXvirS}1=|J_U^M-Aw}{mF`)kCYOo%1v2O)Go$!p((nw^uUXq4NV&Q%UA&Ym{Rpt
z>H!F#wA1Qlft2P7_(FGoBhG5%pF2*b1Z)XjRwiv|rGXPCa;x=048oQBNl9y@R#V+$
zRbgX8Xv;}k7FYYy+s)r)UoVKzE@yw8HZE9SARb9VPcO}#G-u_9v#;V}IHNfo;M4~i
zIMoX2qgtnw)ctLkD!n~>S3IUCxng#HDArj13enj_z_P4{7s@`U*e%Wb;WTrYg_e!H
zQnA8`@P*<3WiZfQICdgQ{31sr14sMEw2yAhH=NE?6t7@WT6VsRfN_q~Q{rPO00CK^
z0b+N+U7<{Mj$7GB!T&|AvpK!Pm;%1Ag_ql?{@tYbDOvwj{<@~%Y9lw~*`eX99dYS^
zscg6J3|jutpHd3EPg4p`v~>NYZzK<ZFIP>PxDzqAw#?5Szx9<!*@p7rJgfo5*NW(P
zp8RVIv^W*UVu~8M*_q*XxwDJ#jH-VBU4nIu1RkgQG0)5+;dsSZ`nur_J6@n_)#h*-
zP-yX7XT9jJ<oAvUp&>q&Xz?PB2zhd`d@OtLrkC&TdxhNu!FZMBoT?ZQ(25m4R0IhI
zJta~2N0bPjC=*G2GAZ@6U?R?LVWEgl%LL?72U;H9x;>>sl*fQssS3!YUV`aJA^0EM
zZJl@qST6ZXc)XR0xNa@Jg<k5i)ElO?lHWkSNExM68WVRhR-b`1?oZPvDsOEUVI$XC
zKh0yKg`TK9qj5d%wy4Naj#qItxQf8RMGlAgo<IoRV?hz%3FDYyX!CL|7WrBu!#d>_
zqF=OwH%%%0L`&kKkELyhm#B}I2uttVtyhsfnt{P5Mi=^oqdP8DKmHE+shgdw-w{}_
z(sxNeJ6(3Wz_`aPFHlE@ijB9T>jwXD4{IoEU3ea<d-iGtTW7npM_*HDN=6wLIUWRN
z_L;T@{zb+PjLKCFuhCR+->m{JRO?^k=EGm`Y*eQNfC(VcgCe%UcsFmTzZ5BRLU_bd
zQurA?1`KQYgkc}%@dq&yC-)NC;}>}N(uv~HGGv6x_f$*v=6s~?G{vu#pbOUb{^FeS
zEj6UfaB#QA_{!#UJ-FmA_oPyP&^ZcSwdc{cDSJV#bip!2FCaNc%GYX$%PD-*lBY<>
za4jAb$a47oSQx6xiBsiC-VAb!!-of@Yun4Y{<-^DAjFPaG|X&8?D?e>myDV1%{9CC
zQYkZmOVH_y4Sd>aj=+#_{ANthAtvXrr?EMuHOFnYP5af-{8i7`l}xu~o|3VlXrnuA
z3;F0>up(N24Q)KEruY?Us!*NsX2Zj_usxe38?jbo>z{+KZyod2Rw})|V|?|vu!Lu|
zb^}bkpwbMGGB^tLMWy1}NLtpDJJ8zYB%+l5;prp@X*0Pq)cLun5n1fvTrzyY-zCpM
z*~`Mlz}tWQvpK|CrN7{<6stb&jH=&7sw&=b?VEkT6SKeAI(Pm8mbSb|!{-t{(8w*3
zH)l{reCEQ1u_nh-R`!3~ZM6c?vs(+Vv|cw?0alC^XxV`^+I6iczxxhr;M)YWz=ZMf
z5m(5{1&~__sSs&_l5;OF-W@Kc#{j3p7}$tTQMFbIsAW3}7(dFb+$26TX&vh?ZFXvH
zY9Z8EzYuyU%*jty%s9cc{V9ca`M4+P8i+9ryk3R!4L=kD@Sm|WhAnHud<|W-DfSmA
z0zA!Un<?DwgQMPZe;!?M&lAWyLoPWooem{?WQ~g+rhfSKQo8xZxX2~5*CPfZY+4%w
zoMi}i_P6eYr#c881EjFzorA$VQoI*8i--NroHdRQS-O>{UQR0TCf9yG!hV*5a$j|4
zn=z_WU4w0fCRyWhr2|OJd8DKq1mxTcCXcF$jA}6pWU%3sIgT&hN0I5J$A@@%Az!B-
zRq^k?VXK^gtS{_&#Zy#3c!*6;rGE<(NkL^)@59ah-`w9>_chZnL()sX>%w@p>5o&h
z^e6KnZRc8aN@LI(MhmSqQ_@@oo0K?Tv6Ki_>3*ao2Ro)CkcQ*8=2e+Ux(^n7?X_SB
zjs7JPnVKxaJO&c6Rv}#a<Xav~hTdOJ+a-GrT&tyPXMO+G76UqCjbrUaI}AkQb`Kf9
z(hJWoSs0~gpJo0!8jC{FNqI*vy}wrg3z`IAy|9b1>!M)16GH|I;<h~wEQ+^Q`Ojid
zcWZ+jj^6b6qaROdCG?d;*ItMnd!53b5XQx98kQQ;(BBoU2O~LlH4}HOh7<y|=f#^{
z?lKE+0(Yq*h^1+>tG9+P;$Mal5X$5f3)zebgAo%73?ypAdqKaB<Rnin?~nyx&s*!&
zXOmZQa^3J>YnY~u@YtA!5C{=ch5W8=rtM?Trn8ypnp_x?w5Vawi~}rQEI(qUqy7Vt
zJOJdudF^&{U-jS;QML|lR?&^5a9wh#J<yREV2yRjxY*F~AF`#H6|j8Ch65>u{^6x|
zyX6q1*>NE@BgoRmZOBe-*@O{2%PoDH(RqH^YU$PM2O4QN$++66VZ=-KhR?AEBc0W^
z0-438g@0Df=W9;9`9M4C)#g-wu!uGqN<ihNJrL=(BAB>v62xmEto7kmrN^Zc+Cit;
z@%93htQ8TB6GK%!7Khpe%(+YJFw+w=r&rTM()(kv(Cl9r{YO57BpyeAc8=P6NtiLs
zGMn_o`=>WN@F^R!UDlI-vzK@J7cFY9EuEt|mk$_21*5C=9|7(g)$b+Kj=-VZVP!?O
zh)Y<uSP8K!KApG-N*jaVDOWr5UL4+%98@QYvyy_VSQ?6W0?@^TM?2ztVHW6T<J|f_
z1X7IC**BG6;lG$>zRu~@ZkWoZT+XE+jTNa+Cgqs)?+2VJitAG$ioHTmg2?m?$M?<_
z9y0?jq+GA=JdhF$rWnUOht6#`rvf^2m!B%hA#ULp(8A?lL#@yn6SEaWNy$~9TBbSc
zeO$_p*}O9yY;+kLTB#_@SM*NnV(}Jpeki1kHxFsd<NsRkK^3p(S})DiBToaZ<W{@Z
z$efmNSU>T7uDbt&pC%1qTSC!}d;=u*;{5a!4u{TlE=Wo!uv)ARy^=nA0Am!R0k1`?
zInC4y?yCiXHB!GsiK1TL_(<MbK<voR1fi4?@3ZTV6aBN|Um4>350b2ZLgV<urBYTX
z=r0Fy__*Bfik<Xkycbrydp3R^ZlZEu>2k6x!dXK#O>*^Ki3%~N(aH;j=DY`Ioiq52
zqco^^^;Q#}z<WOGPYDtpT}R|PoSRU7rQ@^@aoKM1_-5U3*q_p5-}C8BYuJM56qYZd
zOUu<x9;7*UC&Zo)Z;h;ITmM8{Mqd28)~MTl6_^1og3^_r0>B?Ya>ZDy79E-=shd_m
zmiNxc|M3IXiz8|m>id>9IHP2fc^33}!cu=<Q<C0pHQ4r>4gn=zhg^3i7(ZV2yQB|^
zvG`P(K)qldpcTwg^jPVP{Y-qb_J>(j^z8j}keY(VixnQL;c?AVKF(jWfNS+zE|}Vd
zfmddYxT1BA1%Zi<046z$xtD5$K%3MF>qgf&AgWNw3Thu*t9(<V0nZ@?y%g^uDN9cj
zC@7;TP<gP;msF+~GU%Tm6U%!h0dJ!Iux#u_gPp`NE22Mo^`ND_Hw|iiYenXy4q+gR
zPxLIFfLaHnCy#eac^6E}TW?#0exBS-GlPfcjDsA;tzJ2d`*WyudG}9y3~<u&;E&wB
z`AmJ=2IbfeIlSf^vX&8i9s|0Qso`rw#*{JF;n@vLRPF^&?}Nwlk^Y#8TW=VHWw#X4
zji}Gu-&*%{5<xG>LEDhpUftWOi;>CIwHVj50A>4M02cv$fr!4olZ|a(3Kr<b$F0;B
z$|F^~zicikZ5WnI86Iy>n{CT|-^kQ(RaPwQjX9rTXej~oCP+<rl?32JJ#`_dJ%iMC
zPHsoMFEX%qBN3?Z;sfL1GuzpS1=?G|<yKC-UnfcA&y?YgOX5@jdD5d;LkS}|X}MJA
zJk!^!CT?|Yt=MEwF&C~^6@6VsZE&04>+#2fU;KNpD@YB)3@P#6`-q$Zwfb`(d?7VO
z0@L0X%ZK3|{%EDzu3ZY}w_1S#Q_&m1mFktEhNq-W)oDwwaEZ^fJ)_F#CNUs`ZX_%2
zF$}<cNE%~|Wr%ra-IXg`s~uKz`ER!PBusVHVE-sUVqWF{RuW;kKe6w3n4Ee2A&RTu
zG7&dAqtr*5$rN?rxdW5GuG0YHE4`}5+n>@34@<KqZVv-ok{7E1{$fc<yS{@we|Z92
z2qtPky}*uYA8PKkpHnaC*7wwGD~Zk=l{f@mX*yP~3)B-84xSx;ocD2K6Zh)Xwh!oG
zcg*o!7a6PP7xVu}Ge>kqb_60eoIGQ-*6}=g<zK!-)Wn(jADr7Xn?ZS}l7rQyZ;r}1
zu)ogltvwkv=N4Esj?|{%p3WY<LeA5xSZd_0!@Bf4kJ1!gRHe}hLy8NihA9;>!AEYz
zEQGs969CF3Mz^7z>g!y}-Jn8_%DIEOJfjbXJtX@WvRi5N-mGC`w|v>bj2-`gtrmLh
zcI`;vf7Oz=b4f-K4B@N*n9CNQ|80){F`rmkA_UxST&GJFKXx|uU_Ljs-8{)Oo$oNu
zOgFmDBE>p{`T&eNnk)qclazqb!kx`bDSZGRD@DU56UEvj3F_qY7D;04fVE}nIZWeq
zLA27~sMvWdBt`9+)>3eb5rvfb+rUQSf0OaENn|vOj8-6078ULndF7(&<>q|pe;LRy
zNFwtphFA@ZYxFKK`%s5n6fErm=~ly<jaVCRQ-oKv4>|7ZZ7k(8*hpSJ_yF2X#P5YR
ziZ{0ka8AaWmE}KtDAc=%sOH@_R2xBYwGD6-^>*%A)TT~Z{%L#zyEPb_si4UoAZD;M
zw;sH@$L9W~Mqj}*>xJ?2aD`_%k@CUK4P!8=j>)NWZ9uGYZYuHjQ>C&P*H<b9aOm1k
zmn_%mS~cGC0CB$ftad^f?0LCjs!K@mWPSv@mx$YLU^VV475H_g$lr?T`@xBa7d@<9
zYN#TsRF`;HR>6QmJ&yddq^$$=k>VQ=Bj)^MMF*enHVlJQY-rNkrJy0&yR<=!MGbF1
z|L>9MR|)Tmh})!<8uh!AZ&g#ou1CNFY8}a=R>bKIc}s@}>{!&i-bXR>l$-t6c#{_@
zLgeV&Ot#KKopq%G>;E!{g=HTCiSZeGSM*(9dGB6Qru7j><oXB8M4R?9Nax>fOMl?4
zN9EK$Ay||cO-*Buz8Q|@uG(wMi<-SO8^4&p+E=TLVIyV2fuO<ck^XZ0OREwgpJ1WZ
z5R;Vqiz^S?v>3vbEli>kVQ0!yFVi06fH6lCTZb=}P^ayyme*E)Pa`uAT|(roDxZ@=
z&9p7(?<80=eSSzYU{Cbepasj&=}AF*iS-MvMbYg*e$)Jc4=@6BTa{`3GGis#&XWEh
z-#ZGeAtiNr)b?);9ieE#zYFatTN2#P*<Vr$+6dDK7W-jH6#D@EvcdFcAaYvBQtC+N
z$1#?f*~E^@r~cNO)P!6DI$|$zCgwIU!-?g>r3;8U*D-W4G<zP+zIT@ILyn*hG-SK~
zz(9d7!zPpbU1P~O^=0CH-@T&5KWrUz@GxPh#***VwR?fgwQ+rJR6&g&h`HLzMu`^j
z_hWzQXOkcCDH;?Y^02gD<_2nRhP21@0;J|Nb5hkmg;s-Ea8^R2@g%<^;3+z~mCdub
z{>4gx`+3=$;kA)<TuNk!_UME<#v%?N&Q>i4|1OYUpab10-7mt~&t)_>F}5vf{<ml`
z#7B2dx>mnoky`v_tNdsUJm}mzg!zg<{9WSn10bN&paQ8Sr6o{2)-+LlwV7@?l5h0^
zu1$smno<c$TFwh~Ed{OovgR|r`knG}9yhKI73sAiykwJ=(VTjmG$w)H0H22XG}Cew
z0gx%q@ztZ^ixs)=w{=(QeHK0AH1+ka5nhs0#^xrS+Pzwk_G_b!pahiMKB#zHeHP1?
zx}QmadW(FslBp8~gQ`Q-p2NJ@bFufn;+3ShodXSt)WCvkw;deu8?Pd5Iid~3##6E}
zJ#%kq`48KNO;or=-Lb77pUU|wi|Ngp<7~Z+<tkg_s=OQeYMtHR@Ou>#!!h0|MMs)n
z4#&WKf@lhg+q&+_F-XJ7r1uB${5&y$45RNns22_LTcKgBBLBQUs(k9sV+XX9<eap@
zD%|w#FULn$B&fXk|3lgd+LEDaqOJqRD@^*6OJoRPC=i}(pwDzBy69m%+oNXyhY4pz
z)m*xK=#nm(Thc?4afs4B1L<-NKi+|YJ3!yb#(YyCPGoGIqO{aGLG<jmgSfBjc}iG|
z4@UC$tC^Ds%XvsDfOd`e0J)T0z~hh(6nj8df6FU8-8qZx)q5NCt~r$)ngTxUfz-dy
znt>|*od&WFob<^VuxR{*7HR?X_L<cV)5&c>q4W&Jvn?}e-I(cbkVgtP(W$5_y`1f8
zfXy)e8r%r+fmYlfLEPoMMnWFA(((e6k7Ia)EbNtA|2CP?L22JR+a^n~V|rIzKLuIp
zoCIsYFZX|-zu1UxcK{njc=?+94xLp)B%3dIs>*p(`1y0U?C_dUO~9+2hPA!;W022l
zS#3f1g7rustT%U7-dMRBBizcrgB~xp`>iseH4Df-{f(8bP6?O0gb_;%1F+BD=n?x4
z^sYs)g`T3x#^o1&TGSq4qvn@r`N*db!e!#oz)8j`S-ro5_Mi~Ce{_$?<8^N~%`u{Y
zg^%BNunv{}ETZV?$cqgNV?G@_)ikH1zuhB3zbyC<1}kfZOxZZ(7qlXiY?5^ZcqD62
zaPbqlPGo>UrR9nG+>8M`kk0tz^i-$?>vumL3v|JmOxXnNDarGs>t|H@rW9YZrq?|n
zBoYmJ(>W~1`?d!IK=@dgoK-qWQ&BjgSzbx{^0m43#v#ZT{2NMhVPf~@9L1djDmtju
ztPCQ&QpM^^HtHVLYi#r1`mN(Hx{S}4w@>f~**b#0R*tO#*hoon0{PceI>$mu?8_@S
z)}Bfn_{{}pOBG4P@zTA{YD~1$Kf>(?!|TZix8E=LIt<zk?EH3bA=%mKDib+AWWk_7
zgg~(q&^||nxA;k}hiF;_@c^iUzEwlP5$1%wfXL{k#(3#z%P|nJt-wxNhlsHNv*N1)
zQ}8CT#6sg!*-{b~zJlM-LWNn=Ybehif=sM08bzjuwABw^s-`I9eObPa5GYAs&Z_xG
z9wvFBgp)U&e~*(c?&cq22v<TfoA7izH+HMVc<+Les`yHl<4p@2fxYDnWBu4o?DZqB
z4dHj+>K<g|+=?6r4lSXe6hHPEXxgX530Yb%0*%uC?@Ty5Ea&2&&*@aWBdj~@)WGqv
z>FQU^jytE*)cpAM^<ubO0g8<x*sl3hON~^nl&x;u^=<y;%0BE0YV@RMD8t7>-`zEy
zwM!cq_?&zWo@hi?-fftHsPTuNVRf3EZx3m<n?7nec%<vf^TTplGmr(3bsfi2oE}7x
zE0k831ru1R$~(zV`S<#rjn`gCY|z_imRxMa^W|h<Agxb(cfRt)(T5S>kX>stPChs9
zQaw5TKf7h4Zhn)T-8^`29MzjvqZ7_2Z<-c27HAvHvc=L+rY01Qb2wm2Zt~@!KT@{m
zjT-OtZkyOwmahwj5(m%smR>hUan?%;Z(-+w$%%sygeW2f%(_}C(?%Vi?Zeonxpk-Y
zbvB7&DM@=dC{YSOz|=cSb$zdQT2<+5rdl91(SaoU!aVM77O3XIo{_%Bcqv~so87{1
zgkK#RI0z5dy6EBNbr!5>sI+21!$ncx-*9?4OMW%AZ^{_81L;7_U1(m26iQxx<U3}6
z1T#Y=ygx~ka9iFLzE-IXUws?hW3f}@I&0A^7Ey9RPo5F7j^$4^IU;@bvlx76uuvpi
z8%DmrLLdlr0vZCnMD0-Eo`ekbf+}uq>luy;&4Ot;NqF~ai`a2YPnx%Gz>6c^gn8Oy
zHC~bnr>4G!t9YB%6b+l<5nUfI{lmCwM!+OYZHEyB@UeKJNj2l`;W@4pucv9Q{`r?4
zqm$fIFFAdiuUS;hiv~2T*@h|402fc)#4d^_w2S)lnN|Fjb<8r?IYpW3onP=SoM$2=
z;tG!Ma|cYH<j6g<T6x`vq$JHs$;7>;K-al};<#OEs<vN+j}e{vQ^Wp-r41|VjD@M$
z<DVv9d73wG?W@brm|4nwJP4k)2%oV-nPB!F@j2g3Hw%<VJN;`L0p~{R;Gwg?_YZg{
z%>#mZ+Vsq&T+$Zb1)tigNmO;X16x?jQ3a^lxrF1pp{O^Cb2o8SS9d{^@#nQJ1&33j
ztIa<&XlHrPu&OiwZ$-sBs55d7K6=+GS!)3u%EE7DocxqOOv{>EgKokI|2TGP^e`oz
zbIOv+slhimv|O9(U@%RNB?k$0@IPRyL@U7!#y@+hsoARcFC=8Ot?U+(31VxFmD;CW
z4HL~Y^V~D5WDa<krrxit-n637@>qFRu~WIM5Yh)xodqRV?V@YCrW-)N?eA&v2xC3i
zs%nu2)<9BxU|L_cqe>vXPtezXzLesbfq*BE)*B!G%OJ6}x@UQd=G3L76<WJ<e!WiF
zmO+KI>iXI-akoN>Kcl%|L%zLy?6j0Ggyq-qlM%>)MzH=Y`J<wHH58R}S1GG!xNXxL
z#^2(tEb20ue<{Q6w-F5+g2{NB;3SzjPC;DIa{g~o7l~5sO{%hw-Cv?5-WP8J`ftv#
zlP)jq`;ng-56zc=!{iyVx*MN<mapIT_mgRR#7gznh;+F+4H#ccPI#07VuM2$EWtyK
zmuuiP{1ZZfUrBtPquh=$53HXf=~fWmuE^-o>|FlFolX=*l-jfJUEjT;beTv&d8ds6
z=4C~0-KnQ1qe`6aF+h^^Vu8#lw78;*8GCB4GZZL6^^GW1RY7wyxDIEi>_plfarr$`
zy+=24&N9+VP_&#l102^PcC}9G6Z%aK9Ry1<_hx*DzlZ&()DGYSg-j2Q=r`>+T_EWQ
zsDwLO-se^-a^W^ZR$B@$!Cz~;NuXKOb|o+V3y{Bq);J7V?twn92*K6|XwPV7-V|sG
zxCsLOZ;dEnkB_RBpZ;VZIUNl6Ll)`LlUM;uIBGd-ayD$c@bCQSEVnEiMarv!TX1t&
z)PTh62ru)Gg-Pp}t;EI|--^V?W~bB+d=AR+K_he7G{*+*q1~iVo`%OaQW{xvkO-1L
z>_VX?eCAz?X<Q}U7+ZWjz#sfN9`hd9&8@4d;0QU(OZ<VxxVWKD9}`w`+;STi$XM_)
z=70a+D!a|Ibs-`wQmD45#3%flF&EZxY%)jgM4o>h@?Tb*^H!44FqYx~6d;%EgdnLo
zOl+`A0`IGF*kEPQ$2NLH&T{RB<Z`Z0Z~cgKz;&Fc>3&I9oV_lPs(T*w`<*@VZY}V+
z1F~k3NUcWQV}Zt{-6KG{Kq(qt=c4z}5y91({lrNtmT2nQ{*3P3&DI*KEu6DwLY?_E
zTl?JN60mI32ip%!qX1IG16n@VCJ2@Nr!-h+dLn4Ts7QoXn`jDj44>VPp(RV142|he
zVtZ;u<>R+K@xJ99qs3LRIC)DIf82jDZn~rGb%}ZJ=d^v>lRJ$UHfXz$+V0WZ2~whG
zCeIi?X<RG77Z!789QTmW!*hiSV-r<vHPQ*5mB9N*P#>=*uLTAxZK}vB3EMMz@Y;H*
zsO~6j@^ke~vIm<U+V*JpIBqsTqDhW^F`b&-ruNc2qiKZe!fhoE@3FTe522m{OSuaC
z!>%xwaRnsk^<jx%@M+SI_39X^Z&11&Rey%hkQg=W+U_czveY%6r-ls=C6gY-nS}kz
z06fmAVVz@8THCqG=O@i|T)%H+3+8iuq2GZCT3Oi}y7Ykfz4cY(t<d^Cn--_d7nR#=
zr^z==q0e8(P&(XhrH%i1JXt42I`^d<fWX+avZ`H>Q>X%ICQhGn8T(~E6z&-d(&TMd
zqWX4iek~HLMBWDRyo-Pt>`Br{Q+8#86|Zz~qQH_@8bBQWqqORPI^*V_9iFy(mHFyl
zw*uZhn5f%(cPu3gBpc^OL&CnnwQAXfH**6MkK=(+i$4>K#!JS4<hW)0nyY_-3(xTU
zz>>i9fq8yK=Qd{P=V4{|nR}l81&myY3Jlc?6ngT-hkNP_Q|Eb6v)pE-4o9ya)5r}u
z!HhI$cefN<eSG#{weu@UA*jO!8D;XhC3I^nO6R>TbJ#RStG5&>!$~oTF;q;4X#nEr
zr16d$A%lhoP_=R1hm^4;tP%tE%lwM&RP;)H{RurAWiyxI`AZP3*YLpqhyBni%Oj`X
zhx@iNVFgrZgf5jdV@b+1-8H<CbG{*S7S8pzKOL~OtTbdn0cKqAo;i9P<d%QhKRzYA
zKbUyP0Mi)r-nR;xaWtbjrTEZmR`RdHL=B_=F68G`4|5d1*<qSl7(5N-cWOGSZF$2#
z%+=5rqICV)fmV!TEzXB^6hqmC&J6?zpHeGng?d;@VeifAocI{sYb*~~<D+`-4-!Jj
znrkuyW&>QudbV0VQMjEb{KH{o^PPZ8;(Y|;AQ9&gx3{-M`TQ>f|79hfd6@I1_};fS
zOqqbrveXr-e&2n=A&Pst)ZNCnCpaJ@n=qG6dM4TI@<kOYedVr8{?0Fxv!uM>k}hgs
z-rEm3p8Q9gB3r^+mbkxLl5j4WJ*%KVX7HEx*EE@NrJL0^gU6+LP+U}Oj@N*7{?)`%
zCba_V;N-hu)pv9eekuVYMl+ZIkcN-gm%HYbGSw06KcfE1+YMhpt?piIABINXS6ray
zf?Y?}YO&ru4crngz`-^xoIoZ`Y5x(So1A&knxc_HHrAmM1<~u=w^8P-Z;KKXL)55D
zEM=+O;-trG4%jL*)2peJgyu}|v>4I_I(GW6*0<GNPhvNatQ=_Nj2qV7oP?*79L-NY
zY~!Baw^8=)aB0p(x~*K;9_f4y(9advFnn>eEP3l)2YCPxOwnIqV(6N>u5$nTaTcFx
z`;*%tOv<bn2hrH{c1<6P`rmpZe9E1l8y?)i_WTYYnY{b4D1hcXZo>i+>czsVUnj;Q
zY+xMoVmbG_Le;?xqtRzE2|ckjkkq%l-dOK?PzCC%&!ZjDOZ;v@Ey&M#jP-XKnKc~H
zN41XL6njpWf#Qed@J6-Q|D>BvPl8+Z*AH$`6HSB7ZeG5^&G|f)EkZ1X+IF_+>bJvF
z>Z?fwBPEfq>y55E$+~lI`9*_#e4ajnw%AjU%o#_vlcDocA)wU5BAizK;V^g*2tU8p
zoxD_ggqgI?^Cl_3nR|`G%{W$0D~`rI0|gxx540fEr|E@hORNVgf#v$gcOs8GQyNX9
z<^hkEEBA#H%b3ePx$+CI#@>1Gj|d}>R=|V*WBf11j*yE5??_Kz_iRGvTPG=4lzy51
z{xB%S6jF7FWP-@std&KP<&>-@k~IKO)cLQ5FKd{5b52-o)<^A*PdQsF4)xG@u*T5H
z4kGsh*Q<SBLs-UCim<@l{Hp<<ifmIE+t2t~SZ!}_-9yZawB6-0y0Vgf*&JgQm%!&Q
zLlkS$led;Qc|sG$f3Sa0QFs;Y%TZTs6HCq$;H=pdm462$<23cn0eh7`fjrdp@rSwF
z7(`^8X_Aghb9gEA1Mf#1;)~#xfFsnLpd%edQ5X0q+I`~7A^$RXy;Q<l-ioZgg;>y+
zzi=ZZ(4iVW1{8xhKNTSFR~!rHF&;#rR7oa(E>D_HhksJqj6P8bzx~Z^SMG|LeaA|1
zLRV<X-iq6Evi9blOQyB+yCt(lX*#gQs8T$-<s$XJ7XvAY=zqpS<_mDWno!MU;8&jj
zeznq@1^HW_)Jzgw`&ps`h~v`iG3U(phWT#6pYL6xu{MKO2lO}FUGlBnCpGficNn*d
zo!u^r;<J$}&DJ}9?f4DF7!ftex-{MuzD0Q$8|iTY+~cz0BJLV#7Mm8YE*-2M0B81m
zZKu#sKUBrCf?RZ=oLdA|*t^gz$MWxU`4b+b`}YvgokzvnyQWvzD%%ETm2m8I`}Gob
zUN)Gla%b{Tv&yH9GfvlC16_}B8%@x2z3x_wFBDgo<H@1#m%09~;Xk~C6D{70urQn_
zoH@Bk#OS5w^S~=@L!_pyn<CWtU9LYAO*O+St*CY{mkJgnv{l+{aBI8XTU-q<P-we>
zTCO{s;PD*kD{qNor3GXoJVZ_S>hGCicA-;o1Lp9f_s#&$<s~CN$3D@Zw*YP2CsSpl
zcK%Z?<@*7Uj-g>sV~|=lJpQG<IoAKpDXN;-Oq>Cc+|?sy$I})p)LX!=B;us7-R7(&
zkV20KS6d2+7}s{SkRvrV)1|77*^NI~oc`p|4~wDY=gMzq+6DUsw^4P3xbRP1NuO5Z
zEi^8m$9G@O%J2>noYB+dJb5Q4L%uei!{X60=8s9kQ4+0rR!al#KA-?OBm%g{>{`N~
zL--y*SZYwSShKE%!Hf9q#)8ds+PSA!%;6|{CS}w()y(^HN6FdXDnTb%0Nt-CclfC!
zMkdzsyx~n8+#(@dCy1$0k?25yq*VRxc>^ehtu9VR92dmgjm<$m@-b}eLg)D$3H*;T
zVeWBp8aF=x$EHP?(2uTVd>#fQ$}1b9f7hFU_{qls<wP7{uW2{q15mF9@CK4+grdK=
z9x1GfrO}G{;nt&%ss8tr#L&C7*n%r8F<6!8NIKE~^%pIh%M2bx3s<F1SC#PmJQVfg
z8i-bOu<vJ7)Z5lMcj&DxIk9At!v|kxyxX#<ClT47uOvn<jgX3w*YdD;_A;rODFKqT
zT_&rwc@MkKlW-DM^#G&KFd|I}^!n?OO54m+NI+^zqjwDTW%e`uWbmG5$&{#pFfrSW
zR0IwS+$(l2d8NwDg7naPn7Ohv6WQ51&4M<U8YNma<KRYdz!eynAXd<;m$6`*liGD?
zN=MFBn;X(WzkgFiR)yH}mxu}hdZSqco7J`EDT>|0l>%21*1NdW9_rGItNJZm^jQRu
zKc=$lv6M7lo}<5whHwBc*b`v=_T>1FbA8f(A7_6)oqA-_oOffH`%ztiDSzDNfua1l
zbIU%D^!ub7nHaaeEZ}KaQl46Vh`=<n&-^<(@WmWap`}3?AF{_<Fy9aPkx{_4vg}^O
zrZN@^fXrk+eI3=>5e!6gzORxKu8kFc`V)k%`se5pOOUpgt_KA=bS_3)Z3$ENjYhyb
zwVbvZ5zoh(AiQlo1V&`*k<i|G>75AP(O)QlMABV&#>UNl_UkM#^)l<Zg;k9$07w6B
zG6yasAnWK~+<YDk0hwUn`lE6_qdDEYS2(8bb`6=^H~<W7`DVydrU6$SN(&d};bN-b
zyVb8LzUn1aJ&s)oEDjE7zz4b-XTa){Qd0GuEW(dLKMupcj)k9$F`=eOA5U%1k9W|n
zALz|_8Nsf&T4T)`4!4?rm>f%-azh$oW5#yXfT_RhuN{T)cQF^&q&z(4vuJYp_v#hz
z_ri{_(<x}ByF94$T_aifQyy=<9e-}EA$S6xT>d5CdE8Ykj=y{9?HoDRXVqdYw_-IF
z1xd6;O25!@a|lj)p3KKuS%~}z{3>PFQ7fN;O>FKPUxN2G@k$M-(HAJa7Iy|6;}qWG
zzErQ*>E}L3*YMLA`Y{^&`!bF{Qr-Dpo5=$d<?W;|n(s%vaBI9H&v_r1CKb8(UsWb#
z30llxMQbB<T)7HAFeNVNc$uUDr~_8OlnaWrz1;sW`tnT*(C`2_k`kZo&DEYvR%NNw
zT!Ly{=QW`zDwB;jAFmBT;VzB58B-w`3bHDava2zf3-(TU?=QR~7B!K7Z6oWtMPYsY
zA$U*hy;l&ok_#8TW_TBtdS-Zc{w~Cq!ZcNI$?~xiQ7XFPT(3W@flBXerHnaySHCOb
zCalowWTx{?H)tcoK^}J#d+~C3HqSe?3+vd^log6H_0E9t4O6dyxa7<8&TVK~H5(mk
zWgGUVWSMaVI#wQ1Bi<UC0&J&e!N7HT`jrD^J_DeoKlLQh3;BbULaB1Iv`+<beFZL`
zYd60C%b=6OhtF|LlGU<9rS%)Q4)8Exi<`3Qt>M*tZ=ZImF(-3CWMBHih642%bN8<r
zAKDTAE}u8AoM2)^piZaYt$#3j8K)+PgX(GpfCf@u_Fo3iZ@)Ob=QMz1xSryO{#&eS
zA*g&&;MbS#J4}Y~BanxKNMuIX(d#86Xv|d2pArSo^WD}up}n;D-Wo&se(r}od;3RD
zNh^z$W6{1y4*ZML->@5r)r1986q=)TZo<8FJgd3b{)=|l?;<%m#_rd5fqxlnjgQl;
zW7?u6mO)_a2Q%jsj)nBMo#tVTI~VpfQchy1Mm_V5w@UkA?|-MBOW5V*bb0uM5s1yk
zH}|1g?rRJU`*lJH=cJYy9gn!BmM};mNY(t2+{Ri0f%6A4e;)AUxvKxf3VFTHYAn|g
zjN=dgGgq`AD)oCy@UPr|J6Zc`NUKMJ_Y^40*P@tPDCy_~43X{fPg;lMKVaL^o_8w^
z$rvCs1LjP#SECa~2a7;8;h&a>k{T_$1;+uhHXN!~rh#71zSgF?TRawfs(2fze@Aob
z)c^(wN~-=v0cjd3<+bo&^v31lF{~LQ3dAw`D8%7PHjgiF`$->y(TQV08`#Q77Eu4I
zq)mravsFcu=3(1KosZyvd#-qnpBW3kkF$-JXsGxyWVS%Jq&*h+l~{RPlx)#w6}Vof
zu$v;7;Q$P+i5934Lzh;4De6&zJ;V0fEe8r?z?l6D+Dj~7e44Rrx0Cwp+Ik{<GCu{5
z<@ZMgkdmZ4G~h`Val?9><f60PT{Nu4a=QWNw;pFzSi(nxMK3{?6YIYRk*q+OA`o)Q
zL8)!!{>zN~vo+eb?Li=|zbTp%qBRbCPKY!EF3P+{9Co_g1VOZb$h*|zU2=SK6#{Vu
zuDUcvAi%2+rr(yHs&j2XpQd>iYEhrj!f~oZf9`WVR+Y+AlzT53u&vYH)2l_FQ#m|i
zra2vQmJtH!+_D~xld8%S78F(`w3c9+EWpG5t~R8s@Ur>npLV~`H;LkgDnojcfezT}
z-WBO)oP!=d4|V^%^aRSwNfN0MKjt8%GMk5FtzGj5@Y%=EOAS<D6~KG{)@EY=Kvlv7
zRcTZw+*1-DwyC||w<y9azn=-C2Bz7?K9L3aTzT#j_*Mu7v4~;mZXCwt-EW|(PqO!!
z+sfOL*`uzxxY2Zohi`j2ptH@VKd%EdIM%BI^YCsft7ddmylIQK9NUMf^@b9T>FD(3
zWVQQxr?EBWDNF7OPo@J==>0>Z$!vKWc;cT^=ztB<xN7xR3D^T#VGIipc0=EADG2Ww
zm%bu=nDDi^;P-7mKxE?5q%VIv&AC0VM8gVT%6w~jOv|Z7e4r#OdX#HhcQ&s?@!m&C
zz*V;@Ngmw^0*C+X*>qth<G)MHy&%Zi>q&+>%>)JkW_v}@(>z2D(uk#`vu(kv54Y$s
zsMm7{V$UZfz6;wQ6{Pz|f^X)KeV}c<cq~u<I<CFsbX&4#7r02uB2deYrlIdwj$Cl8
ze^tD14L-cp__kPph-35()u{TBYVX|e7c+NJ<*;wYKr9kv<e5jYd6|`<`YvY1n0T>i
zMJ(kO98NU#!DH1bA?$i%RN!EG#`W!#=^3FjudC4Q!@L;29R>FM6BQcH^m7kdsZ?ME
zpA}fdxLPxgh{4RiQ~Iyw$fehLlv6Wwe3Rj-pgmuiuMmoAdA#gF<FTo`A9xG%UV4W~
zYv;k{_p}h^;6%tNAZ}%A;AimjpQgO{rG9?Kl(lB@?4oP?qkkC?Ss@qrHtSFtcQi?5
zrera;4nz%D7cN=0+jlXh;{1ByymZ>HUCT4tHhG-vQ;ibsOn;mcJ`$P#1_m>B7qO{<
zY<=QrFu`Z~VDden>q5#CNcopRTBaQKu(Jb^C?n{q-#186XfV|Zo&t90roFMHJPDy_
zJEQ{Wx{ETNIGd5nMpQ}udzie+j#a5v;%c|+Uww0DvP)uP4cf54|GdmV^|cXxf{n{%
zi`mxw>S*5hWBpS5k>Xt$H4^gCBSUh^H>yI98z6a+n|)}Ykl_d{Ei3>GFY~qT@bR6&
za+d@}0`_lDZT;R-?EHL_!_Krb=;dl7QJYQ?jNiSui%35I7^xLi>j&*W@CZyZ0Oih3
zm!0QoKlmu0rfrufBy498r0{g+o>uQtul>ELaS&+_`mi!XyAUo7EQt@Ft#ATKh{mU8
zZddllY71S{F==rw=>hW4f_|d2QW3WjT)$#=&Ej-3YyXLPae+6~BiJ~igSetO*>%dp
zd=bHd29BcOHlT|XJb5_}-0w2qg51{j;C~<*tgkSd_%0#PBma-ovZ(3uBlj4IdbB#x
zZOxdl=Y0xOa=8y<+p!%uD#{?1j+x)xIItM_1NuwnW+6yg{2X4bechRPQUmMV{<1U8
zk({g{mm>D(67~5t1W#zbn$RHkiGm36W{3)e$WiJoLma-<4QL~I$B2V`TLsO9-c)E*
zh4pc1JIwR$6k3VUD&T_6h{X8A^sCF3fCR!m4*3pYm3H%bK(0ZZ->o$na%NrMZNK0L
zrML_Z3bg6uZvJhb(QmRhB;TfsknX0B-J{3wPAtp7liwVVg$~DDe(G(ueDWCAI`<z{
znM+he4r7L>-n(&R+yT=nF~-=)?7O(|Cx9B*!AaA>PmV>L$3lnz_<$bP_yZbXEgqGq
z4NPB^xG$8eC18Ed7=y<^LOxQ{E<gFMk}4BB_a)YeR<&6X%*g1KU-ny$cc8M}LC2Wi
zw(jrtRY(ikkS>!zn;Js+zYM&rXfuykv?gti(DtJauNz`F$iFPGLir32>+<ZaWG^d&
z(mKb+GPFM_pF7TJsO%*d9W44wRWFpB4kK)vxe>=$5&r}6w&s?JNUJnSd{Nvj%v{yd
z9Knp?P1$15?|bhGRD)F0{IP7xB9~ID-OMz#>;@uS>Az_FUMMY{@!MAs=}G-5m4U&h
zFk0z8wBlgA#<Og!a>T4;B_QhdcR)0#^W5=*K5*=Z%pxwbyoBPPtI`pFTnbad{sA!_
z82}_wL$<JUdN;GSKlzPq7Md+}8Y=cl8m~XjRjMhhuVBs^3qUKmG<)aqWz?6delK5u
zY*TzcZrcFeFgkHXeKO(UV*6FTpcao<NTi)4OI2kyt+6@FJHsu0>w8E9hLt>Ej9kLX
zBR((j4o06Yc%P}$Q*?)a?8MIYTF_Icg6kJkA|yxU!RqJAOdlqsq=)dytDd&{Qi6T7
z(ErEMdB;=z|L?zd-cm%#EGsGFSSfpCC6RrOm6e%wj(LuiqhXYpki8w8BRdY~7*WEp
zvK_}Eak7rR;^6&z_4)q(@E<qFIM3JfaXqf<em#}u*MCo3JM<!&U0c3kJYy+f!(eBd
zQGXRJw98v^5mXuk8KRo5tj89Fyf~K^x`Z&UoopDzhQd0hb@A)N_Tk<)kX<qaEui76
zDY1A9b3NM|%=eC-k7}})+icR_AFmiD@+@Z!U-~CLRv~Ou!@Xv-4kh5e(o)WQo`;E9
zRdcHA6(yqd*{)aCk}p@n*W)6GLytj%{3VnZL%5gY=ls_>0|(;?t6OjDGJ3aKENq>2
zy5T1G-bN|5+|lwr002CkkjlLoS_8{>1}w#X$6*npHL1}#E0Ht9=XyH?%y|g-FglCj
z#S!&NEnSd&!?e5m*P1UfMM#TRQP}+40iMIb@a0@r02=)%sXuX{ZWC@OkbBcJ?bpR!
z%iA-hR0;EkNZUw&vXi*fSd*<9c27ZZz0ynS2Sw||7NCdoV6KM?-v@-O@Y8>;p#Rkm
zsP~V`vw@c-DLnsSZc{C<&L{1894f`pad>0VmK6@<06w%|_>gt^TVzLUD!gW{D3u&3
z*lqX(+l2%=0iU6xPGjAC(pv%QjROD2<0A{;_|J+|pgpd86z<3+Fg;E$^cx8BUGG#+
z2ovK=7NKg^r#NKGuYD5uw8&EfRPNT;VIfBK>Fbk{8!@BdVPcQ&Dd7&xC0jgmryet=
z*Fcu`p+IF~(;_TOhI8T{w>O7T7HzxE+vq>$Rrqa)Q-5F4+oxAIbDyQNId@iYX7<%g
zl-MhX=Ehepmm>b`L6nzD4QC)>vR;PWc>Qn|fg7W|S!JAvx_IW+9-frfKjEYGx7Y{2
z1@;5$d0TaWh`_X<_sCS#5VcYeRDxYt-@pv~#&+8oWVQm3q5H^H!`m>Zp<=WBsXaIC
z^-vTEwNVet@&8NSbnl)1dO8@J?kaO4MF6|qycY^=rE)XWG^iO#<M8>NU4eR)ZKm8~
zPluInqC6>eleoW9i1nQ~o9cJ!w}xk=_wbSC|KeY_m<cFne(_fXR@dZUh(r0x6_{K_
zQhy{Vx$v3ho9eGcXL+p1wQrO`XW;l3do)$xt%Xuy|Nc{Lu<x5g+&Po@5~fbQvxIoi
z<G5K=fK%M9=<ln!6C`2?{v8m7&?@Es0MXi@JBp5<jRtm%jTZwBKEE0F2NL&})^|2K
zTlgjNT>jWgO355)x5dD%`nw3I_ivmFEN>0+R+A!}w@P5beTVeonu%Sq8H-J}tKFQu
zSs7agZdVr~Jpb&(#U<)mlVhVY{o4oM08QMSObLd~V&7UROL=7t_G>qljLQGm19DT+
zr8K(3o0>Gu0?v^}!#7$*@eVS@hbtR-GK_S{Sg^Be2i8!#YOQ#8*aU`-dc8TOV2WjR
z+~nZtWA600vQTi`JocF%Y&EgPO7@MO@e-<ao%E?gML5MQReX~Vc)Wp^IyBebOA|b`
z5!_o5#4<(kZ?7tuCwz{YQ~TFN!g3^siZ#tv<)8(oE_A+i3FVfMJd9Z^!z-lYbB*B;
zA2CSfskjGG0QIon=Iw$#hxVqE>G-c-UB0lYSOE}&_2dtshG8Z9<Ae*FhJPk<kh!PR
z+N+XB6KNAfa{!rx#?Q^5-1<`5?Nt02QIl$NB0plrVYtH7+tRs`4e29mRnv!zk;DxF
zpPdqfS<}8gRj56%Bl|TLrN(0N#|+CwEkGDFQxGd#hw~;3&f_L)Of2sbvdk6n(VvSp
zZddgbp%nar2&$lZcNm8#!7U+ziA#NC7F?8^6ZPM@a7FX}4Ro$oBs<HO8PVC>ZjOk#
zs=`U}SB=Gbxk27V?p}y7CcJA$4NX1DjQU%o#&XX=zwGEk`U&Q$V^oQM*1W9d!XYT*
z<Q<<t=T8iGOVc^!Gxq+SJft$9m5<9l2+VUJ<aTm1odK2rJ%3(MvIoFr_|>8^5l)ik
zmQO&L#StXRb19z%?+4in37c?6Za=rySSL-e%Daw2zVCqijy-c6B7TcyuUaiG%F{gk
z+{i(IdFyv*Wd4!80N38uOUt)?zx$29*D1)CUFOYNTUH<f*YfsytC`#Fgaw~S9iV^c
zj#)3z++Cc`6`~t8N3265CvMDk=u-*rGK6rT3l62IKU#Lw$J;l;$Rd|gmmmI!mjvmD
ziI&uP)zKa;>xZ@UUZH^N3Gwi6_x#b&EOa9IYPQ~pVe-CUwW}aL<&o%K8lCjPUBl=u
zWcYNMPweIapvh6c_drMOA4Fa?zW%6K5pdM>h-9Y$W#jcl&28^DvZ8;{MD0?fq6ZCT
zJj}c~?)#Jp-gQA9pn>;k(v4=tCD603xP!v2Vxa1-wCvfK0PY_)m&0RNDQ9TpB3Gcv
zUTOA<$;ngv8ri_l)aRCp*Oh}9ywRH8C*iKg_il{IueUdz_wpt3mo_dRYlZaejpv=;
zoS08}tnF)5&-7U9FHohuaW!K>Q9vEG8wZP~?VaASZ0qLG;kT*o3}V8aU_KI?K|wyT
z>U<JG>B4$3j-%q6!)E4pC(_fUrrBKPEYiA1&KGjQ_m@sE?y9xP6dNxNu#uor!gCl@
ztc**%e4M=rPf(RQHIjcw8SVh9UoD2YGDm;@wG)x_IeAL9nQzR7T9$Hgqwsmg);P)a
zXZ;dGYJ}%@kEDt#-<bEV3$u+4G=vOnzF^9oTkatl)m&NqR{?Czl`{Q#4-Sp}w0Yq{
z{=<aqhvV}DEget4h?7-a`Bxo19zzCy(%5*N#b1}GmuJX4gM1x{$S8fjvP9Ng^`#-O
ztgf@G-^w&Z=urmS?8YGv)0yzO5sbA>y>(^q@5e0Wf_o(5_657jpiZ8hCQzeFLK<&I
z+LuWr11Qfy4(ISGC&(CK)K=ft*`d`>4p+3z7A3|ZfC7t9I_2NFwUJNCOuj;cAKE?P
z=ZP}D(-<^;SLizdb!H=_1X&-LN3v9LE|>ajfXaZ(Xi(kh^h}Zopstl8B$`%2>h<GY
zwvlbN#lV}6CP0Xem|nCT@BYl5I54U1VesF%=_JG8J%P@XmFeEjAwwluCAMeyDnfP<
zy1Cm$;Zn<HWf(N>HA=lfAdMBz<$AvkK&AoG$XA4k!q|huZ?=A{4gB76sS7-@QO){f
zbtW8&D<^P_srEdO8T|+o-K@j#jmr>&CNd9sDmO3=d3_1{8yF)(h68*sO2N@5&>P13
zgGa@MJe?;aUZ>KaXhnli2m11Gh`BVAHNSE5mXF%ibzy$V{k&fPLy)|kz576J-DNcH
z4J`><;pfd#w>}bN?nAJ_$UA*|0B*7a!1yy!vGKoXMKI|RfYW%=GaY&d!Q5`BiKn8w
zGT^2B@eOFj?~k=%vQ-ZXIL_7E!b_9-v!xRx-m*|04~hM0X7Muunw@_A`riro2n*Ri
zk60fvb~Ra3faULC_`=if1J0lcKtMjUI~#16h<rtU!QO4%+4n6!j?OaXzF6HKTU+Ui
z`GmY~+_shKbOd3mXD3B&iex|W@Vo@%(+)Xy6G>J*HotBE5b9{YlZnxzw%@P_%}$4#
z*8&>n*L>)i+9sd+6U#SPC9K_hqSaGE$x~epqj0(@^n+|6TDtJ^Kb@s#bGxkfF9Nl6
zl?~*B;rN7xwh2gOZL__MToEhFshp7TVi7zc-F133XNp8Dck_FXXDcRUosGT(TH6`y
z6-@LN+fGw#d9SXa0X7qhBx;nLk}A=G`_iAAZVs+X#m)z<WZClM2cBTm9KoY+qgQ5A
zuurD>>U<?l)$cZ|yK-wgX;p^zcorpoy&ZI;Z<x(5k)Rp8ZOWtf<9}ymTkH6fb{|9S
zPrxaJY`XqI;JL9{W9Wh(^$^^CE@@h3>cKK^tDT(Iwn`DIssAUiH&ZZ1d@d`_P39J=
z^n!I6g*zh04PfJfH5R=+(6V{6&49ytb)~-dzmF$WxW|QjZjOO2%%lensvA`2#U|I4
ziLSCp5g!zgTv+FdN~q}QzP6VRbCHYVbB~$FwV{<y{2mO!4Q6<NkdR~z_`#`Jc29U#
zvWHz|@G)bdy2-LwVo!KOSgT;Wnz6iN=<z#4?pownux>76a2Ei++RFoo!%|PU9)*Gg
zlDkn$LV+F6F4V+5lvM>SS-<qMSR<H=LpeX2&hwpF0(bD;>+dNMV@>7;kd4}|yHiAe
z@1lqgn=<Gm?>Deaa**@L!ix69qMF)en7W4*kP&A7W0!&;&Ht_KIrwAG$1gENQSra(
z=g}|f!g04@4wRRF?A5@W73x)lfAOWAPxflaII~EUjd}{JfBOb#0zRyYeq@?vCUv7c
z7yn-2@C9@-xuQeuUUAdJXY1AcWwBPc?O%&xyxqL7RF=&1-G8kBqQ)Byny2R4<cDHT
z&u!DpT?UunaheEB#)vz$+eO|XvfFBoc<b=eSGMSe+GxC-j$n76KUv^=PQ3Z;g9kRr
zCxJ<X`N!0O!FqLmc8Q_1vq1GIIvFU=$7RWdI;19$dU)|v$56aP3G~#D3t)hNyN)9m
zQMsK_f3k(Tx~CGsh>PpZ)Dpk29Eia;t3bUnc;BbWvXQ+}zhQkuV|$uVwbZGc@Mc{Z
zr=yzgR)L$)`m;Qe65m<A(=5v3B-il(W!CHWZY9;OL~yX7cwc&_eD2sqs9l-kpZfJt
z2<frbdZop>X^w5XQ>i>0Xv!H#J->P50EgoAnSHz|8P#3(jqeLYa&fH#!u;8CCAdlO
z1z=8)V%G)I`dT@FQRM4zpllNDW!PTKkLc7v^IOOK=1=^6>Ujd->Bz>*Jw}3WPK4Uk
zgmw~tpLM%F1%!%;hGuQ}!!-j2!@qsqrwxuRAOC2VqNX~ZqO)@nMz`=H0hJp29Qtcm
zWZqMBiA=lH>fwT(z-tAmo>lOm*qd8;Px`3nwwvJw7mH9z%BzBIFJnZ{8>#(pKTnop
zJ(9)}D37HH<V2z@WtAz}g+ul1$*17|&i$!I%i~0D>8<?r3*}-JChOu|kVADpMez4*
z1BE9+TDHG7Rym)|=w6hbW*}_o?L7YgM19*ny+7GY4#$gKr>O9S6(H<6F0gW`;I`jY
z&2x1Ei}n?ooVT^BisW@1@Vq<!im01>_`-1#Ei@mjEgd(mvg3+hR<OTQ-<77|Tc`jf
z@PV`22oa@(>>xG(V4C~x%&m&|`Of$gnQx~J_q}HtUSR=WHCy)Y`{#if^VNhlN;|06
z4DW693877_fZb=?t$c_KkjPr#*~r)gAP<cj9J0SG&O*I0w`*!94j3)nAO;<Lldeqn
z)zs3!HHoLUNhhG@ldo?ffrtBQS5hjnVIS@R%mB8k2VE^y1k|4zKuJ>Vj#TE4<t@Je
z6h=BxF5%(S0yxlV%t;PdT?y#{q-mS7x~S%SY*`+O<7h3QCUH4C`?Q|#9e_0gH|aW8
z1|U2jzq`IJ72WsHHT3ePJL7`7?#rn>7tXGI<h^eegzYTlVXJoK?57P~jVO7fvNyp)
z&?*u@g&T93U@zEIEEOE5$cw_%@)%P>*e(FrbB-&AHk%{a%00WT#D{C_2aBvr#^}d0
zhOMy{Pd6Q~RcVcP2&f6}y+bgs&AMe$nKdcZMbs|-<=zjK5u1Z?mX=oYjTt!;h36{v
zy)$bjYBw<f&ux}Uykko;6s@oE;L^^XGoChVV3=Q*a{VZc+q2;5^GV=c6W-9`IoGTJ
zsoWK2`LnW7Q9P(}XgIH)X41!-cAqLEhC^WCdTKErHfdfewVtPBuDXD_zXN%wSa!r`
zbi~Ils0h5+5Atc(#r;TIvxljpYWl-Q$K#pTo1@bNoMiot*)C14Y$?$COV%kdd$-h{
zur;w+g1n1&MdoS%gyE7oD-fK23m|5z8MuK6o<7y3P8IDyiL%4Tq8^~0oVGO^uYyuK
zOL@zq7SG&pS5Cj)0b-SC4<L+_)ENI%_9~>mkpjWd1P8{wgWLNj>_prJAFe4yB#0#y
z6RV$>s3OMk{+OaJBE62ny8j7(DEGqkUX0ko%AP>QUqCtD^w@*Wj)ybka341!_&(>%
z-Wf+&V*h&O53>2do4cN`g@C2BhHgN(z4W-rFaZ_ed?1q`?hx?yC+NZySI~;;ttRNW
z=;`!03uCG39vzI0msb`Y;W|ye#tXingIGDmWPXI6%|%@%dT$iM&F`EFB50w{XPh=H
zPWP#$+=Tf`*Ia;nQl|R?=Xw42!>8@a?b%{oIRy$%tyo4~7s|zYXgQatpHB-K88Cww
zD=GshbQEyBb7Lc+!&kY46OOZ$35_S`_5HbX1-u6g_Sr$eV{Q6jNZT8iui4<PoWOZ=
zg%>ea*L`1hHSIHV%XnsX4bGJvVp5h5Dq>c+UU&_3=#K0$69eG|@?kO4b2t&9<YiGz
znX4e6hK666a6}OA{#x7HMTsAfQdjKfolHoHSt)RRk{mN(141YA61YB@HLaNVxptOa
zf6#Lxbwi?@=h-i1;JU<l1p7MwWCsO<YJ61E2ypGBwu?s@s%J@rFdmveqDc=u9PD~H
zlb58j8f?<o-%d;-RE77rH4F(h(Q8OhyP@Y#yMn!gb&?m$$r)e;wy}d4ESGPIhx4}G
zCNTgDpTFuVlC!}TI}jhtVt)8TM8K@fk*C?Ram0b*yM|$~i<CN>;{tzJvDM%DPW|<&
z>r0`@AY?Zr_On$QP;H<eB)KZwp&n!h0nVm;H#;!XMnq;g3~IE$_zgJ%5UDDmpS@sh
z(PcTns=fT=x09S-TjF&&MJEbR9n%Lix$Qx>>;3z2%tkb^jN34=FI_%q>}_6}o1>T8
z4AQBu7!sbR*PRr+1Mcl6-EZK|0ig|1IE+B{&;r;C%`bGZc|=7$&5$dZFG-~AePVa%
zqeaGJ#tX}|?OWb?RPq@_VrN=8OvFEl@gFy@yLkQ52UQs^%#;Vue!LrC4#UJ)fgF*g
zaqaBGiF3ZpsbJS3P0ACIkF5LQU-g{p3?nj|{^y2MnlRo!&&DFvZtz@in2?#FT5qp2
zt}(p|&=+vMuPOhytzE^xUOx=bqbS^p>0S1#^Fgn?;q)??DW$8x<%Ax4(&rVZmr)7f
zQYK7IfSwt)E>D&vr%$BKU_P!11-K^j;n2>rOP|WEKV(i7!9pWIHPc_GF<ep8`Du`u
zJ9VW9Q=v-1&vRZXHE;9Ec%&=8oRlhDAQc%Jmy5~!$1idrGwj|}HSY)Ju?-p-a07Vc
zB<u0-19t*&)C%T|@~+u-00yyQhUM<I3$%H6K6^?3qqWIEQb9Gjg5N1P0DRl)i{wTQ
z_4q;u1h54g^(ovA8ZX+cb8nn;11ip+t2|Bry;DwnqfT&a%Lqw2cau)%by;|7e-C_8
z$1lSn@;evqYZ@Dm@l|*8luSxr-6?kDz~FhtqqOxY4ilNQj$rTx!_o{I!OA6utZPwy
znxnGx#KTqr#GJ>W^f}kex7q*wtj^WXo~h82p|MN4BQ!KAj{0CE8T*0a9|TYmDG=ou
z4}h_S5!%W3$>Ta&MnkcTnIx%IHji+$P2|V*>I<uw%dJqzF88T+Buj+;jk9q*6YjgJ
z9uj#^RdzpZc4_q=IZ&9zY@meAktL^l8Z*t^HbIPyHdGamVtYWk2olZk_&33gxXR!<
zGzIWGa^FZPncVLWc38sb^qBs4&c|9&EQaf5jOJV(CIxOFp^VN9NNHPE;b#ZG*_R5o
z0&Zc4AZyjpLz6yAMWljVRR!re-A)d`z|d1xv_3FYfc{vpx`N^l6)&#6#>~?962njk
z&gM9R(D3lt>CuFZB=Tgt;7eV<VWsc)%oPbHT<gj|8h6s+<51^Oh$1M1s#|a3&2e*P
zRS{A=98nWFD+7oHMx;nnO~`#N+rU@;#V`r1^>OOuE==K}=r-0k41~2i8~v^YxTG0d
zkbmPA+|{ITXT=`IlW>&B>3QWaOqnA`H-N8Fwc`)HJr>}q67HEw#qVpKL<1NG&hqa@
zlLut8gu01OAHV$Ka-Ai#Y)oMO+2^47kOS)6zgfY1e*9+LL3upe8T_CiWrF7~Oc~&s
z+$zfN<z&h)D_r6%jh~4ru@Y>ok>6|vCb;KE-ggw@Zj~t3E!%C>xzC8kGJRdx6=pcC
zXzcyV;OtDx@EiM0&Pe^!FZHFG@r{`3A@l2P#-uwReMF+B`x-unmL>gza`s_0f3pv3
z5u7be@^3neN=fKTV}lwE4?krOy9&{rM4|^WOn!3oRb}oG!AYa-yRu92=&l^|CkPgr
zK7!cnu4F3TVL;on?D{RMh%n284y(Y}rE2Zo9~mkEsmCx0y7Upb^;q<qKI9DOX}r96
z?mlCOwuMZ6%8Y%`W<|p5<XK14`~L<FSK{dSF_R0dJ_L2ch7S&6D49~rh}4N_p|N>n
zo&vaj^h4ByI2LDO*JEBiBWJ4X_(3J{eTf0!nSnN_M4skkg;x=@Q&J6U?2esbLYq7)
zSqV>Kr321TUg0zTIJwg&b_BVb%xQsDA+YvlBZ>Wg@LW(2V_2s1K!(SyQ}kEiQXVDb
zI9uhd%}UW}z~c$deG7DObG<0+YB<H34|Wy2zzEN34{NB=_bp(`y_Ma#JRsfU)G>Yz
z#fD?C?iJc;n%G`)xnlDbFgP3P;^xR2yY$rk)LLlZcmZZ{Y4CfOfTeBeP8gyw_kV#1
z1t1VHF-~GS1BU~sEDzgF6CY!^?fMqPpsAN%dRRo~Nw^Xy$flwp^~%n`kl~ZG`*5J<
zEVD8I81<B2a6FB$m}888dKYOq55_8OYfo)+w`v)B-kP2V4^Xmi!eTkiFd@)dhg?s7
zbml0~=YBTQ_GDUCi5_8|)D@eMsdvUDa9}8}9PEvRSRabV{0s2xtPT2K|J*kRXJ-2m
zUJG|{rJar2n4Ug7I^Ycq37XJ+FKEf!0f_f{XKF)NgGR<_soI?9@M~6FoPX=|Mj_#1
zG#Oodx=TkK!>(*qLpK5Q{9myPrUIXxy=MaBT^4uWn9k+J`7@ULq>H5e2)8Xp;9Xb@
z9U3%XePMDkN43@hmfF*|VN&2uC;w9P?ge^lzVxGqk$O^1ro9=p6NLagQ`CxYb&Oiz
zX0t!hw)3(*^oGTg^s;$V9Us$;<^z7ok@@$v0Az(hczsib4e(tt>V`ypE6;pevzDwS
zE$RS(H-B|$_^hiEQFmSD;oZ8fO#UCcla?etVIIT-7tk2EK7x#tD}8{PE8YRl#zhh!
zATc$3e($uN!eYpjWC_3Cn?8|Y{Wg5uI|Iu~IFTM~kFs6E0WcAlcI9C#H-nu<OVCR2
zUfT7p9>Gaqk4raP-5Eo3o};33pL-%9Qg{w+Z(zUed8-{=v0cpVN<<gPT7|KH+JJ1V
zParOlvS|T-*M4=XnCQiR^ZT{$m9CVm^*|D(UX`4ptXq~!!aXaA20(3xyWg;I3z{dR
z)-+oQIa`d2*4l1Yj=En31mR(2b<gTGCO(sYz7VdSHrMRk@Gs*`?As~N4vA|`TrH9j
zk`X^yIfK-E%ueKxJycXr4O-BZ>}WF8dta+#`|mGX3Xk{fn?Hu`&uVCT<m`>4ivg}y
zYdPjj-ZS_rO9FHeCP|SieErn~+8ISm7#p?%gsgc@zCoSfoZs?4$Ir~CgF!z*p+S#f
z!N!eN*y3;2j%OTfpLVifBpSR-B)^j~X|ar+`F8_s48M+7_Dq;PUoM{j<az0P1#Pgq
zGCWt`_S{nU%xuEVx$^kS>*~9K%J$C8-3i7DrEb5dKoPLtNZRbDaKNUhF7_?3r{m@q
zfE593_a%+A$FhgeO3T?*@&<lxD^*vF1mi;34ZfP(+XGYs=-7hGZg!nRu1Gq;z%lb@
zsRE}B@jV>UI0%e%qwfxj&3(FJcF@G%s{bm_qIDM4<Rl^8KAwet<76V3%(k5NybNUW
zayb`c4ylOEL%HG>K_#*GB&AZ@TdNe_x#?=Omh-nO$fvm#Yu3B;;M82IB{s9sX}y9c
z4mx?WC0w-u7{UNVU3P(lWVOpc<^i+f9vD9!n~Pmm|L2J@xm;@}W9W8hcy#01vM10b
z)tr!F838LtqV1w%#&Yh$+t`?=ujnuV(EtH=yG$uSBK0>?0*X)LI9k=N1-1ZGdVJ^t
zf(7T%H`WBQbYh407f8tQ5Lx8P5oXKlRXIL^!*Qm^=5)w1so4Pt(%LSijnzFl11%(z
zT`sbF9l1iH@3mzTR;&-~jse9u6~c7<0D_@E?E#_ikM0Mi)LmD>L35tFPN(GoK56q3
zgQZJY1G5lU@2z}JQLle3bvosQPDWS3Kdgxj+|Sh;v^CQYIe*l<AmNnYY<2t*<o5`@
z5w)0~{Nykol^MUiQhp368uX7tU;+?(J^mr)3_sA(l!rhb;dc}Hp}$j(6R@bQaO?O=
zMe9~*usxDAQxWkQmH95a#ZO|_X|!u7hiQUwT}X&7mz{t!t}5v!BhQ*|y=STnja|D~
z!F14t6Ili)L>t(-%4YJ23N@}ZG?cmy>Q+@52$52%y)eBmzB&?3bsTY<)D{N};`KP&
zr_Ip26%Ij8ia-&cM^J=Yy5k1`5QBN;TObcy0qQM+Aiutry)S~vOhu^9`?<)yw|nHh
zh|IOF--up7b^eUH@0Y?qJthyJM1YqC`!*vrsbM!k!}Utc+-Mgnq4FkGPKp(?I(~u@
z42)}`pW25sfM^>;7?3QfC5nynkECcq<#VnisuRL=b;JtBIS3`(8f+|vN=46pyNt`7
zSeOFT;u9MD*PsXA@WRu^c`;BXQ3o1^p<9h04pN1r91LR&wQJsD+?GT~x66%I%Aq;v
zT*Us40%Qa^^0JKrQ3A{HIRR$B+0NyhL|r|@;yW_Uk1ynY0!ndk>(ue?pzO*&%6EUk
zFoM^xE|bb4P{Or$=V9G}LAr3ZZLqo=(_P*02!MAnM+HvT){{rFJfL((zHz|%4+}hz
zQuyy&=hiSK{>=0wPzBD8YAL#L23{Fjw+ElGdE|si8`z4WdJ%Oe;>9?$ylXl%teW*%
z4-(8Gg)3Hw3^Rgf!p)%clQCH3Mu*a3nhPdTmjd4Sfi_z7A|fpJ)4*FCqEl%`Y8wBY
zliLS9_leETVLw>%eM`IHwjKy!?lq!nsqBpd?<huulfT_&MO5dp?W?wAbs1`NvzRr7
z-J$N@t%Xmui#eA)mHd}ad%_<}nQCGUU}|u)kQC&F`aa6*!uXa=^4$wzwvp>ePofQt
zxSJnQUvI9TEiS~F?q{Er+q|SBMgi~Xa-)6WY$ZBBD#71B-nvyLu8lA^lnm8ZQIaL&
zwkQIlBfD+@5_0_0>vaP~yp=-=yVfSHtmUq4S#Nf|A>a&^`G6+nybLsJ+@alz*Iyro
zNT3tCErHD5{~VJIZ|yn|v>V_cC;S>yJq(0uMA$FGbnb>YKBmz)o{#(ZH#zXf9?UR+
zxO|cZ3(ZunGb~Zpa@{L;+STL+Pcg4r@FX-BbX=@!Voj9S0-3syopL=%=Po`y9Ap=H
zdkq3*g}f1a6!mb%ilM=BpI*fmQ5l4`&}@U6wA5@=zhAxxi!Oj=NId9AJN!0S@&cMB
zkQ_|%Qez4V(UB9sX3j?e0c(?3mlEMI`rlnU3EH}WN4AR$Lxwi3nyqxWD(Dn%38x>^
zS0GBzU_rfQUR8h2{_;#&JFvGQfl9(bsbmy5Tg9wYu{H?I)2bmcuCJgzpt08NM@X2$
ztt{L$-Ahxs3#WxgRb|PXqbHO>)1GWt!d@K##bir*JlPVK{JCL71BrdQs=ic3NY!E(
zZ<$){P6cpwn9SRs3hHqOiI1}yq$;{|Ej|7{$0fZLLjl*(@|qWSilw!ogAE_tpj&96
z8a$r%fhE5a4Q+x95`zw=?}ew?X2k1)GV@&WUs2gN<c(oG^rTYFxPjD&$7>t8HHPFK
z@7XN3xv_|!*CPDMY;lU^hSPHDAUZ_gn1I$z&W*Q?eRb;k!S$)n?*L5!vuOruLA3W3
z!aYC7Nx<#a8UO~7i7!0OFE$4x)te~THLSzUq{a=rz1xG#^?<->kllU^E#H-{=EGXs
z^eCRKF1K0kiu;-DtL#PdCw-3q<Y({Up}6i!%2srPB;gw10vlL%{PtQUJU5^UNN^xX
zrInM(rj5h-&~-e}P55KqKQfw-TY#fD6lGXr9dgBoP@j$_nusr7U^tIAx0)CyZ-&9O
zS3qU{m&U7V>H-ozl_ky=6r>;IUZ^#A>KF7-vX^#Rvbi&5$qcXno1kNZ1Cv0g;bH`E
z+X41P7LcmhzJ}AEB?uU>RE-<O6nZq;UtN!BuwTy_w++{jrt?8}qkgT|nyc%K%QO=H
zY$$`0O8Xi{4?|%CkWRqnI$(wy?D8)_I2w_zVXSk4Pa~Oo`|9FDllSCQ#$t4|xB1xW
zxm>F$Msr5`48ShgrTbZoZQXolSbR>A^op78n|40`t_&j6cZfgb#{<Ubh^fViqeMgQ
zL>&4>uMCyz6xi&c)B6}j`@cz6VtxEIN67}HD7H@~3#6o+G@Fy&4Mm9Qk>8@p($uqF
zNFwIrRFu(LV%utvl_>pjAvEUXyyJ1Xm)R_bO2Y|o;=r=Xd|Z(1)NhM13L~gS$Y9&c
z1zZt1otBju2|cMkPO=NAOBaaJnsJgknxvQ{4YvcVNy#6<W^uI-p|>_ii3Tvpt&X7o
zSqW?BA5k;IHNTbezD{dO`*NUrDPflpn!#SZd!^3sl#m>p`(ysS5x>2@f(utT0Eq<P
zNp+ds6c)+yheWpQSElhd7_65U#iH+M`7;6GoO8-foNiGT%7DYC(t}()Z^E2o*<*6K
z)cs(!9Sb*8Q@c|T$8P1UVAA_R`HV5zXKLMpw9>aOp6}1CBDGdmj=T(1a$cxTa4+u4
ze6hk)d$VeGliuLOX6)d1zxlI$*=nZn9EJv~wSlC+hD7lWk|Q#uvs|DQy%$BKpVK4z
z=Xj5)8QIbUCcrEYNu;KNpD%juT@4s32=6XOTT}3JB~Yw(HV82@gGryVDN6^XFRlgZ
z_jkP?Ul4T4@B>hJf$IRqOU8K!Qh#yy_U@<neya-3o#q7;Ud*X4lHZvuLzG{>lFM>Z
zH33NzmdwX_y*c!-tx}py1B0Xcm%zJQ7}T!O3`ntta;3XTXHSg*367?}yQtQ3QobXW
zAf0k0^&Fjm^8v;$<SB>A9vL~C^~x8`vNVMT0qEJ|vqgHci~N7*UP7pv+HLi5HK2g!
zBvT-+gB~@3trd5Tt+#kZ1I0JD=E1mWzRs;9Z<(MOwfWZ+{arykuA8DyMFq4$48IFw
z!Cy@7U(6b&j>R<~XA^bO|K&g`Bf(X_0D&^rp$?QhxtD9S3RGc%P;Y4pkZnhxo!aYP
zrFLs7O0gy%z99S_zp4V7m^N&J_}~@nsw>6*?qy<J798P(lT{Awn#6@PqnSJ@{C;~W
z3X?h8O#!zrY5#F(W(HnANh^;!m$_N#*fI!l`cX_MhEhZpNV&}qwX(-qO{cQi4?e1F
z58uCM+VmZ4mq7xzi#Mc#Lt;3FE&-EBcqS=u$&H$rkKL)rr<wDFTc-j3l5_dSffLd3
zk81GpJ{yPTM(dNmB)+W^O`00DUBj!Xz|}3pSgA*Us}_nY6DZy6jGU?>Bu{XP<NRuj
z6c8t32uG8+9#(304c!s$Ik~C8&)=~ZV_`iPWilj#-P}BvF+-o0!V?GC*yS5J4Dr@o
zDn&fQdx?H2xAToAmFK^y)7X1*_pO!GkxHr6&b)Js9**AlqR`!p!$+`8VXp)_Sari|
z=Ujd&NO=?Zox0Ta?xh9Vp3kf2%g7B1O>DRy;s-bbFUCjG*Vu+tt)iic`e_r~G`KNg
z_yoj#^d5L5O&4*cp0WR;YA0sWPZufTs}InBGjA6I$|>Nu_A@$&qFrJYFy<;|uhCLi
zq?d*JR(~8fnl%mr#6#)A-m;O`j*|1bA{o*LlXVsO{faDYtCr7z`*$Qj+_>>7rB<7m
zY8Qt!C>k>5sXM*LYYpedua6qY(-d>xO{R7`C9MKw(BT<H0|Y%8ABxhXEj*6{{HbFj
zbv;SPS?xMTmpE1Z{WA;xi3yDn>&T1?2DMHoVuWp7@bLD69Tc?F@mm4nKswgB<x7mH
zf5CP2r`Y*R{%ZRfvs#ez!!MIY;aU%h*PCpuS^Zq(70l}UT{~~}+)7*x#zz@Tsqp8Q
zgj&Y*+$Nu#q97T%v5k?3V08s9QK7CzhrKGpaq$;Gu31?O$YPMGD1_14w#BJu>a+%$
zoTEWwQ@Ow;g6kKVziT&d;%zssNFFdC_V~W}w8x@pd?!2hw9)+00Ao(*``NicjT1ij
z;A-Y+4#pY|jBXM$ejB6p3NZXeA<U=N49_V=rUTXx1FzRd@89FHTd&lHNulkgR;CHp
zs|ih@pJLCuS5_$3&cn4MJpH68tV!Z|%34{H8)Lnf!%A~V?=@yh8ysxJQ-drfR}_L6
zLsYxn0H=ag^X6ucG74s3g6D!IEli0mu~_V=oRnu==cXfqUcwGVHZE$n8v`KoUVPLX
z>UW1frCay>YFZI7;tK%bEBxM?`sP}(l0Uwha8k+}-N4e7EhWpN1PKrGGMO<PSE=U|
z^~ZyhYLN`>(|ms%qRiEzCB&1QnkU={3D`7*&{MzE^@AkNhgN%ISFC|+&&R)xwjb#3
zDxmFbIO6j=Vi$6)?RZoV8k_gv)Y%WtV-VeOPRKL)2v6K}g}|ucD_tnxF)^NOKULvt
z-RG|=%splExJbKkXgA<vyh*lDQA*>Hyul0a9VMhSaWK{K&=}x`!Ya~)c{6O-+OI3E
z#Y|gQ9qQIrlVz=}1xg8T0mUf1E=MLjH81^R6zl2TvbfW@gvU*_#%>o@uLmp@oUvOv
z_K1qGF%@H{4uOhD!-jGsYq|Arb+%3(sY8dC<yJg=XQ4NqFn3OEZ#<?x#qa+q{zrhK
zwWhopIeT^P?@um-!zg}V3xZS<G~pTw0E=cKsigFbd|f;%=htok%4m`P$=BHU(DjqK
z8-Vg9(`aoysl9(b4FFGsRCXz$@L@oh!Phli1%vo?&s@5>%dfGDqIPD56OpQ#FstuV
zn0Pe9KKTs35J|LUP42Q;D%GO{mq^Xu%f0xNH6hXLi|)wVx*KVASyyJ+%{XC&T^$ZY
zYK6$&PY&4!&WH1e?z!}ey39rp*Ag`VhfYy@T^zl14^LBzEfgq@NVViz&9N%y^TqEC
zdUGiD>_3zk`g3{V2Og;H1qJvG8?7aH@~w8;uYyD5%H1?IP8gqyZZ&c7mb+f7QC|m%
zu*xr_HB$m6$rcZmI3CSCa$kE$A{ci!5cMS%M*prpoma6#hMN1<;3UIiD~WLubp=4I
z^6g(3#Cb&~)P0mNS^3sP#K>Qa8XKY6ja9Y8%mVa)?ow2qO%J5H_vMKfUCn!envF7~
ze=}K%*envdi2Lh}+wUDW=__}5hpq3xB^q=kQ?y75*7>PjfG_9JL+1M(qkE}>Bz;Hs
z?2RX%WBpcvP7Tqg6CkTkKGhV1q5IFW40Ik*qYG>cYYao)5oL5l)3CJb4wTPLRWPH5
zI-jJ@!X&44D>c1@uOrGHcJJ*@ab<`DRZaZAk8Vp}N%4PRxlmPmhJOKCcy^;ayB8w4
z=TL?#KTa(g0tq4LMwRx{&VBaGv0H23O&xi5I*#Ws7I9S#nh~rkk3Or0<*DWdlt6ok
z%Kfg%N&tv_8IvOPc5MUjmz$id`~kWB+GneGCGh%8sDt#h&2vRSqAzVdTsvPFMvUZr
z6;QS@GUZYcTj?QV7?VV&3Z2wI%RZyspjD3-rN7_Z!>tNm{4S|G7u;@2F&b!uY<9aI
z@%cX%@^rR66qbD?G3O34b=Mft^pG4SLlV+tR)K6M6uaV%r#5i{cYzjLp28W=5Oc{U
z$Zs<H5`9=1ug++qQCpQfQ#u)7Cf9Ae#RL5XkR^Gt0Lq_3qRm>64*utGvm}WXdn<22
zs9rTps2TL!Z2@l7Zyn3KHovgyzfMgvQwzV()Cge1std-KM96oY`dAW?<B8uExw>#d
z@9QJi9+$-N%hut%m{R>NHiHMw#)1xV{5-^Wf#>h9A)lqv=JbEa<4jaPRlZ;{onHh}
z_gUw!=!5qE4gZLxo1@#4BBnDy((V;5+TiHG8ObXMt;X?4aoEm230JND-r)9wXqq(s
zW2>0+8UNHgBu)*&T!m(?lJ)IN6PHnsI{E<wzG&sQC8nw?R&*Z8E<~|M-$#@-soI7|
zd8hA129HJw-fPvExeoQP{`~~`6_fc#ed{fje<rbihQ?9Zq61;l*V;Nfp2F`P*wPE`
zUb<tUyh%1~9B3z$aCa)}W2U0O^{<Xh!j*IRR^emLqX33feeew8ACf?S_a~Ue(V(-l
z+PCaAsljGx%8LmI30z<nBf6TMWxDK;j%+un{r!y8c2HqnPMXRmKiz;yiKgNZh~L8a
z-d3FUk@4FGx(X|cE(kcpS+Mi<b1*g7AQ>S3kA#@1)h3L6P<{^5_Z`k|`?i&&raP85
zCs8ioH@0N`c=ImNOb4K@*4JwqaDS#JLzvXdaH)XCW4R7EFUq5049;)b{dexC2<~W1
z<Z`Oppj`t4oHwCy)x)R8*5}jr0h7x)7@o$*FAD3*or==wUTLRFurhuqnk(Il;6F0*
zbvM5sQdKjL1Q6p3d}D^Yx9g5WMM>_j4p!-j>3TCF@wQoOE9A$1jPi>n3-$!TWSaeI
zCQ+eO>@h`dAQUcciV_7E#(P@#rK{55!oxIjRYi2a+I@w)T3#*nXIB+;f`G-QAKm6;
z+xkund}eR5-FIATAZOFfz6vsYlq0OtCzjL`CJT0=+P{gaVk_~wU}UCB0P0EB$d=i>
z=1e}T4h^z)6AnrK<-RB`#{2Ik9=VZj$?UDp!&MRU|D$4-G6k9qQF0hBobArN#D&G}
zZD2~ifGk{sY?<AQJ5}-u>zwP|gX+mfC+8o0tL$wwhwj^%v=5(M-M89@wD&p98&DTb
z8~gu}efqUz3)Ak2<^?&2?I{5*JT(B7E$A$ut~7-?i7D;hNU<AtxDOrlYDe7Zun&PT
zVA2)m4E!UAezUD2$ftAE1Fgk;5n|m}OwCk#VBwf(7gD16hOBRoRpr#;=*NW;parDW
zY^N|@p#o~#-)z>E#JG|Sv}ijR#^$Aj)!x$ur*VK?`76^^C6I<`|DC&NgZqdAJ|Rsu
zDLn|}X{O+>?kZwSy~3!FF}TcAj2dlKMZ1YavD<89*BpH5iC%*!@Y$Ay+GoMYVQ9M~
zMww(=W}Js^>3`?8l<4zenHQwx4HVp0mWog_^!iF-UvFw!G<;9wGV(|OzQ^U)7PjK<
z^JMTi6CiSiE>kg{OoPnYjy|5vv+sWZ1=cRjKZN#dfgPj}>w3>jwu`zNuQC7vLlAOi
zVEC$46ba<`LnX>UEy9ySWm{RGTf@)iQiHnqaY2G{XTZ#V=MbOBQ?$7#AeOO!)tkXY
zKifg)|Gu}BstA;40&JPK(<eLGH}QMp>SC7wdemLDOy%!0V)G1<-M9xP!9k2<zmw8|
z+ctO6w*%X)mrn`Jlc7bNiOVM-ztqmNbqyeIz7AZNqUZnR&~R6Hc;fjx#y@AI6HVzG
zp}43k=Z@b#<Zd_K-LNnWdInVgbuXH;hXF79K!a^%<BbL<UtslVOr-jQ?hW%Ry%Pr&
z*{)j10>DS9b!t8%D`w~B0?aI?aV_+7n6hPDjxEU9d0452s3m1OuO%@)ceH%FU$EBX
zi63k=xc+*gY16|Z9udI@DW?@ZDf1!Hf3$K>JE3<^yDmigwgH^ua-kaYYk@&0V!!);
zDIW3<Nq+PC{|2I!4+h}sTZs~ud<rMxNKWZLR_y?kwR)wRkeAfAFB2ZdXIq6TbsifV
z(IL20KOeE&uR~J))*eT$rnlY`6R77<6Majjr7{ZS*D@MA1^aX+>MEoXvn(^lR<hVA
zfw7`K1a~gGR-79}bQCC#Zw+Yt4n*DqA-E23<Ebgr{WAuILuF4JFHn$em>kQ#s7@B^
zywQwN!~3P<SKucU^{rPpQP`(~iZ2VG9@Yq-)W^J-tejS6ha_0xQ48krNn=FbTT;r_
zp$kv}DtCe=A;=o*R~RjA%d?-wC?7(KCy-M>>N(@;Qt9eyhu;PPAp9O;E|@9?CcLgp
zT)6X)#%p<7YBg<&z_Yt)DDqJX?^5j-9){+7Yv7Zi1^apub}#Ha!QFozi1tXQPA*Lh
zyC`D}7a{APpPDiOcN)BC%X2-FD_s@7;um{Nzu5NA=84C<+!fq|pzB|c6)h#_!Gm{r
zXdilRIr^&{Cy7|9oYN0qye&$KjtQ~@hLBYCg-@k9CJ1L2`L*OT8?L44ZDAWZedtZb
zcQi$~<yn{2nobe{1v86z0n!YK=mxkh(;!U*0Hp*naFBtvH$F?hkSsU`$xe@2)83C8
zW?vgR7lNchVND~VaS4R5H$3kjrUwkmPH-#CY+$S-%q}9q)4=Kg)-Aet#cn($??%p&
ze&Jh|Q0wa{kp$ldsJE+iXp{&-yh!5S$_ttHy0dq!ug~HrjE_6dDLA6e294SRKb#A;
zfAYF(8QeTms&&30g`rtX&82Eu4a=#GDa117PAJop;P(M!^RKH*_RCDT9w_$YqAx}#
zf7FCj!(p`cpoey4zm++Q^^dt^+j6*Ab~AFu+`!&}@#BkDDT+_`L;p7Eg7OM$;X#tU
z63|?z+-KI)hLU_zy5J(usqN!w8RAElYjghevR)GixB`~-um+)tB>Bm$w=A5Z$n5t@
z3a;YYm)`XI^8_ME7}G`vAN{{h`Gxg6i1YuQd!})#>q;4%RP^Y#1Oz4_DOSRF_BWUA
zoXUK7=;hKo#nRW1zF=c(XQ9pslAksIB1H7xqz+tcB#7YdW&GUu$h3bT)-7@^ONKi^
zRTZ|d@&011U79wmi)mZlt_maYmz%|d&Q6ICUzu8!k_Urhm{WaZIM`oX{ALx;<5HG8
z1J^N%{X5Wf;M4jUlix4TNb-70(|Lxr&M7zvs9cBZ2&D6$<hy-*;%&OZpI@Pu|C@s}
zz0G-fok&pN?Da+G$7L6ef&M!;RbdO8H~|UADFGeJFx!R6n|SYL*fMqTYv9!dxJ*y^
z1qlt{LA}L70PKJ)uNH+L3*fRYw`#JwDC@hp_MDs3&oUtY851k*ewKuLq_@692x3Y|
zt+kWi=2(gofrz+@FpAbt_}|X=UWnep9$YeqVE1c%<|=MstxoGt-<#H2crF-@xzhsa
zR>vxA(7)!xr3~PEX%m+c2KrW(|5`WyJNMe0Mfq`$H64(V75gR{t%LY+oRaPAdUbjY
zS01k~Z}SZXv?D%WDm^qv-Uh-!_kfx_LZ*a&_#HdD2Nu{5xpv$OfnIr=CDsp~tE`Df
z?7S4fk`~F9dI6LuZT=$;5}#H9v^NNELW+O?>r{^Qknxh=6d=~~rKtwT<)w7Kw9bch
zbK-B0Mp#apt6-;kWPtMez_I$ikpCMa^r`c8>+1s|A3GQIgoJum7F?~Uxv|A=5(9jv
z>ArZH2wYX2@w$ZhhVm`G02S^Tpk4V<Qm(sBA<NMrVD3x764lzQ4YOSqGV9*uS^c#V
z%}H7@ea4jbxQ+8BMwY78F~46j`R6(Zd)3=TcK=3AKWapprJ3<ctrN%Q_Xac9J8c}i
z!QYJs3-g@6nm3Y&7rw8Gsdm7!4?#uVjj$M^s`ORZfPZR;4~WbDCWSrk*)r2NC8x}z
zeqdmcx>|1IuH6<&E?Kx%pm0NRN(2Vh$pD0pGrI4q*Ix_<I&UjnN}(eJGOI`au^k77
zf%$;W#A_j%g|XIEGJI@?Nh3)W`N+a_a>R*lxWKsx(b2rVW1mA|nNPOMveDwFkI&7j
z5wdJs4JZM1OQYjZpKx{Ho<wge9tGe?0DMGU`@F3*jiyUZnknRr7sz{uc%O)iw(%{1
zkEdyG)<6a}nwRIXkV=yDpF5Vr$h^PPEtd-^jZ}t1BM2FR5Ctx~`w5?UKu!1dWxxby
zrJLGk`OYFQKIQII9xyyZMP%&E6Uv@Bd&i82Kk71(A9f(Ww~Ko<qTwH|)Q-|Mh7uM~
z<P`ds0)B>fzO&HoV)#<dzWW_-I5eKheZp(wF=7%_V}_?<cL80Z0Xc0x7LrYWwBlDI
z<qrgNpWc|!WlD0{N_sF1kkw!eu9q{J_vr#J2*CjQU=QE;&6Wi98zW5MSDQu>JC^J1
z@Y{~dUp9K*zXT?VWewk2Bai1L)tyPMgvM1&KAuChRKRpzju?k^7<}J4%#+9tZuCL<
zSHnW@(WQaSBc5C(`4tcmVD&!NQO%D}gyS{np31w*NAS=1b01!+y7IHgkK#jCTK9oV
zY9c$XcqgQ}x6oV4k3^(BTI)*cEXk&8XDA%JJcB{URqcM6muc?doWORzYN{7-?CdgU
zPP?BB#&e2hXLkzdqn6J8o#e#L%WDdSgZiR)H+;r%-k*X-;=TRPax0DzsY1@+Qm<e$
z!jfNM<A<Td4z`Gz0DovoRIBn#MMd7Lx<qN2e|!+DrKyT8gXV9KTR&_bmOeU+@D~2j
z-mDd^PR5-j3Phdq0<89nVM5wxlR{eCU#k*S7oy2N<ciTbVo=MFf5ubcJ#!{S4qD~7
zkW|z!(V;r$Cj>8FK9Q(%_3A&<=!VD5NFZlo5Z2iBeih_Aune&HO}Z(=y+-0NH-2+4
zZ#L#wYrA<Um*Ui~3;HOL$46wBpKKVD?D%*Hh2N}SABX!lul(+T`ZPJ$idEs%oerI5
zlIJ37E4h0k(sq<xU{Jv;+SOaYB+*(;)|Srt0+i!mD*ii{5O+0cp|s%uCImo;VSNiE
zRiPoQM99CRuMFXP@eWg!h;_y&Z2vO&f&|@c#dMcIBul!@nrcY=>st#uFGtgcKt(xN
zzfM#>L6QHeg09Vhp<fK5e69Ti{o$T*$+G@Obh4O8;G8962cOY~`3Pm1F<R|pbXZp)
z?dl<2T(BV~D9|%+5k~O}%N<MTjRZ|BPBfb+4+bCu%gP6u^0fYs8&Nzk1?v9wZv^OF
zTT9zj81U8IwKwZ~jA5o9GW<k+F?InyQTn9wiwH>P+?HaVlY*yL<Qw5C__dZG`>-=h
zpy)N#HDn`kna4MY;*ZLk(_hN3%gtU?_W8k++$Hns^;fD$*|m+lN!|L_jH_J^TkX{9
ztzy&%BZTQlLr!H3fA6`S1X-g+A<eDDRqL34e9p$<&SfBiv2R#z@-gBs?LM}2=6uri
zptX;}tq}&lvcAl+&Xr}~l#u-I+`qwnPBFUh`~HB|D197bOn6XH8W;FT`X*zQ#GQYA
zqgT6iKdUu08?qJspS|g6Uw&ho@WwnuwO3d_ONKZ2WM#0iXW{5@)rJ;hcU&xh_Q92Y
zBq;?P$Vt_7Q!Bnx)g0!{?_ZMtiBUL8-Xxq<5kC4|zq#+AwWVavVYye!jJ@Iag9DPO
zX8MTk$`Xm1JB0lM?uK^0ezH@Eyvn^zwZQK)0`3Lim!wi*KYMC|x4d=gs4QUb{e#)C
zGHz_|xB3<u6ZW`yZ~rLqNax$3hK;>kK+V6YzwG}zw^Q`Y*_YRYDAVTrRjY=!+C-hi
z&V$>z&NpfN^nWgD-nUbdxw%+y&fG^T1xZNw=sE;9n!)h=Iq;N+Pp;RcHQ`-)qg5)>
zaVrU3jk>FhtZqqvZu@g5jJjUAu0U*UL&=_IA0$GDq3_pX#hLPuUn<Hj0G^gR48fy?
zIsTjsIH>B<M<OFvo}DYl{aeSf?ak0D6{)L_?Rs>-4m~e3Gnl2HEcdVJ)!V?51Q=yf
zYF9D<&E0N7x9Y+og>=T&sZw^?wn%~R9-h<g;k^h$6&MX&d`(WN^xiv?wa~T8j2}e6
z+4S@l4rVMY3+rK^-d06=J(lNziYq7>_zKcuCai|3HHcR3_OI1x{AT}Yn(rykiPYB;
z?+T&bOpKB$mWZgEcjAyUg$-%WlM+IJE;c#vEnp#`moKv~p(RoRfNwvtg}bnSKZ4Tz
z?{Cu?25WDm7~{hM=22A<OwxUXHDr1YX^M~{hf|9qFK&aZ`gIVKt21Sv^=i#Jt=15b
zaV{7`KC;gEu{$I=B(cwQr(9^J2YFW6UcN~P@b&XdAVw-p&O;)6%i9~fw8%4?ZskCo
zi}L`tZDI6ukRhkQmPJzy8KeAi!}5>iGJnah>%C@!_A%2#0vnzudpiYh@MqK0q*<(C
zN|Eys<5Pgb^*w)UQB7CCU)>wz7-BP`LvlgDTjTae5_;|0e^zsb<1jo<XtLj^8KMi!
zyt9Jhgiiir0iK(<s^s_M59wz8>yMe+ez-)`_Mu^=&nA&EgYRp4J{RqOANwXRs#oWa
z9LBZJD5nPM8=C7>ShH1;cUALRmV+qL5@Sii#oq0BmZY#!z>ig#qdb;*KoOlueXtDe
zj4e=kE^Y(&jXonTxZdA-zC>NMNoBd{8=6Cx{cfJ8_A9_7ex}5?pJ>^&mpZ*mt~mZf
zD+_*kTBuy4r&5Tmw-cU#Brp09`A)lO4XkI|oyFNN><Ui;4~!KXSBgbmwol_hrXg9I
z$Vs9v4PN82zE}QckdwEvySUw;Hm3es93NAf?EL@Z?XBbDe6oCDTtk2~65JA8gL`mo
z+=5GR8h3ZM1b24`?(PX1+&#Di51#iSGyC4zy*t0Vdv`wfpC;*kq^ge8k?*PV6k;Fz
zw6zjKbK(fV4QXFLB%cu;&?6iqWNK?<byh;E?aNKjzbSMaH+n}O*pwH0`xY;mwWsFn
zw>-A2iKBkAxe=s^<6)!i-bSWyadP&|dt=n%rGBrRt~b84cuzyoy%wFk@n*&ONuVZP
zdU=o<Xc*DiOwzcbfZF!NQ-~w*05kd<DnOQj_I5v`86LHoWB=0vzwjDE1`8^Svv$-B
zm<1^5o4ym5>2U&@z*`^Qxe*Mjf1>I+e{-WZIr=p7_-5@`Z*m;?2j6d~W3h$@%8?yg
zWlN%!cLgB{X?i_d`5$ByUZ?MlwiFbdrycBm3F^!xy12$>0Bpyp2zI>_z-SvW>1Q8x
zU9dX_y7!zrb&U3sYPJ%$d_8rR4wsiQ-v|1q*LL8%zrIdCd=X!H@lj>uJS7YWG0D3O
zBfRS=HxS$qqXK-?{L?a`K#PQCsqCF0U!A_kz@ACs7894*Qb47buDW}ah6V<F)Z7aX
z_F+kJxgH-XOJnfQ3!(bxs+VDCntHmnPNx;`=1Du?R=yxa6@U3sx56WVYF5Q)5=0P+
zc5RAlNa#2f(E<1bW#$m1&SmZ>*V?!Z2el1Dc@!?DE3(FOoF-+7`w$-V@fv0Rj)Opr
zwkuV1*C!0<+}<ZN)!HwZTSYa`6_v3f853K^bXCSZQO)fxYr6XZR10VgvqOdH{fC5%
z?k}IFvZEe?-lF<gIPoqmaHz9}P^$AbwLoO8PXbas%8F#WuLx)?jxQ@!h5fT&KS|_2
zVJ-l1)R=kM<rK$N{wA^1*2gs-2{Hqrjm-_8EDMSCrA)OS%a8dL1F{lCPV}#sS41xe
z0G!ob)F6@iHR7)HH`EUSs`MYyzWmb5GTop5!by$IRFq}U;;p!?4$O!)T-#0S+`VkY
z#b7~!)9U`qSI<&tljhamPyi^v%gUP1QC0a?w*l}$&K$mTsA3?C^%$*yt`+$t-ysoP
zoei~Q>d};xJI3_37~ywExKkU|FZ=i=<c!#=T}G59x7FUL)cja`18gwZ6+><~Zv_vS
zR7OU-uvedkf5DNh6~?;*l@f8EoVM8!pdVsS^39r&kIskqJou+vukW!%pU(~9=b!F5
z?rh;wh>Uq4&ew66;l<`XN)PS_P9VXS9_D;IcK1tV^XEPVLwJdA-yvs=r{S~|AJtT!
z8}c;g9SYlIV{G(trQ(lxa)+iB2?>WouwQkMJ<#|r8l<&@Jvh&${ejnXX^Ft=Y(<0-
z-uUy@{DwSLvh%%WwK>nRZE0R#8m-iqW$fx-@-!#sJsu;KD%H32Yn_c(_BloG>`Q6T
z>E+i<J-nvGf<Lpe?Ifpz-d<=vCkuF~N=*#=xO9$+8v?xoH;;yk0QWcZ^Sk-dWLd^4
zAnwMopfaWBTqt=%<U}~?;6P-WK(X|CMT#tWMM-44;bd1Sz&d$E%NU@9&rrPKE_x83
zx0SQ(5Tc2jqVzX`&sh`{cj3jwOkA8nU^!iD;3z3>pP_XRDo2mYF8cnZ-%wLR;JN~p
zhRwt4dy06j>#=U(?_YZ*6mfBAXLpwgX%#ykh>PxBkdB-WT!#}p2~+K@ha`+zpuQev
zv)~YsG(65wFEJJ|^BHc_Q?iCXcmU~`U2sCkK+@!+P6CAuL&soCx~9xMMZ)WE*G~w@
zp6%(;_hmujlFFm^TGs{YjkXdxN2;<yy~d!2B9nl&ZXZWa+UARe($B>2B$lEwKPH0B
zY*1^ygbc?q4lYF+kBfcOYoq11yQKL3OP_Glm&xb$y&*l@o7Dr#;5s%hKQr6D%8LmP
zjv=5dZCrWFDgc*;!qK|xN=50mqp+}fB8}4+O~&Mboc_y~<_$xY+UfvrmGc%=DH$8(
zBrlJXlDskS4N13JBOW7fb}3EU=v1BuFJ*&-Ef$vZUD6~yHZQY@z;f<5McxA`%NDSB
z3Br?b8$c`2xtN+&bsH<xbRXKKr7s0d2}{dG)@!FOFOpmJzPQ#bQ-0mM213kMIWa`z
z@;yOKgL8CnQGG??dl?Z=zZ!2;80I^Vd}s?g(%Z9^OM=!Ous}w&35zGV_<`W~si%Rw
zQ-Qgf3djcIVf|%k0MN6dAPd%S1J=>2B|MhEcUugUdFU*wZ?U_S6Ja$+=B#>l8^5!<
zY?L$l(j1<<km^-V(x^y=C2;VKi;C5^1y4)MY=Hs0usxt`i@@D|Cs1}-Id%PzIAbU^
zqsBHrXrj0@3-=euLPP!Pg?LHShKz=f#no3kzEXF2IydY&BCP5Sj83W>;)D7m6SF7m
zuX^gVvm3gzijCa8j`i(XE5=In#}X)HpMFDK9&21~7s%Lgb1p>c0V|@+IbUoIZq{kM
zz7Is;^XWnAzq!690!d@Cw72-S`f5Xtz#wBBdr#|_17N4QDCqeOg&aRA)q_QH#k7Zb
zA6KlqmcPOuZ8}TuHyrdNFj$j|<Leb4HKLInqIV3h6cy3w&s*3&vR<g_)9iNUSt-C2
ze^B@|y{~(6cpAJ0p<p#P*g!vC>r}_*W8cE1$#x{!5K*%^1bYzkzl9H*9DX`{I&`XG
zG!m#OsGzvF;L6}ul-TAZv1yNmyYnbyV`*xPGA53oA&5*Q^nev=l-N+~Pux%%-cDmG
zGZ^zzm2x>Mq3BL?nI(&_ATd@LX%z9QFEDPTYrg|<uDQ^p5)=C_bY~Mi43@V_iZP2(
zgca*dls17h`Fue{Xt%Un3mCNsMP3G`sb^;ogi(M$gIzs;-q^5r5<FZ}@O0zSc&jQh
z<>iW!(D{^3Tjb1mV5058avv{z9tU*oFs_OHFnhgjEeDuXkJFoz9+$_hk3~?&nV>yH
zmdZV2;9w{$#*=L#K7~gzhk@22_Aftlz!HgP<&qrtlt9_q(YEzlTb^+gXtTl7#Mw0`
zIu>t%{>m1HS4UTG36Ae9#v>n?fHbI@bmteBd-bc`$FjS#r~XHv2-}do6B>V?mkBtx
zV=vREDTRP+1NGPS*hx!)X$rN^plFtKMo0Q%;>%3cfM%d9gR4|Js+#(|Flk7!ag>a6
zQgEOy_nhtV6Tt`mCZ0XpyqFPcDE_q4aFa3ClZ;Q7nV<d0tUb!m6XIg%tXrt7AVUwo
zp%B&4GLrSw+QSQ;_O9<~#1<-@Kvsf}yv(hTBEF(Xuh7SFbQ0wx8^fHmA8Z1n)BvUj
z2`J4d_qZHgdb_sTsPer=uNY7brm)voqhtE$NM0F|S9#-lWD=L?H)vXRac^%92`D-O
zVTafzh`&y7R_WaV69qP*sozisdf$DfJF|gqaVV(v3i*-t0r*__ABY}1yHw~0cpol_
zuH~V>&*vO5I}Kx`B-%UZz&0w*rrES4x{SG~#2PiL{jd}kR9%ay{Y?6#Y`(H0@j503
z=%H0K?p!(O^czZEwdH;@&ouQx7z*0p;myQtIlWrn#+sIUc?sg7NBU7Z^RD=d^x$4#
zEJa=x1U3el+XN5{f#I~z4v=HfCG;EF&10%HBfER^91thgPGT$Q=l90xU9SQWFHVt&
zs{zJ)#%FxmY%K@b(@zKT%9}rjC<6y?8JpZ66Xy?X?C(=t13h{xjwEI`ZE8MK4snVH
zbygMcQ<%=G6EY0c!A|O2C;hT6EomFq_RO<qIEj9zqHt^V_2PkDRX}3YhUZBYB&Yt%
z!f4o0ZdT<?%LkZK6VMHq)!z6%XWFY{?~x{|&yc?~6u?X!IV(nn6ZrJ#F8d*Q06^mW
zMw`Y5+9p;4vVp_1<JOE%^R(hd*!KxbM?Y{4*R{T+yPp6d&Mw_|khox6gC~T9lp&_2
zl6$_=#N*g~d@<=welecF;5*gO%XsIdFTZB*CQ#ppkaR^QfH}Mi&l`cPX{M_vt(j-9
z!{FJgiJ1A$f~?0<9trPlLP#j&<df4QFL%weUOxxY+R;FVXQOHU*1LG{khWK=PHXNm
z5zvvi0WklX3Bn{|fCH~^@w`T51+>1jZXX9CnCD^I)IHE}c(v?@JZJED_S%Jo9?(Gi
zKt(sd^3gA<M#`7PM&Cpy^?>f0#sVT7_G!PN)CD#affAA%-qKP<($Vxhhkd?#{<zos
zFNbj4z=JoDNslvgf=^#c=2zgn3zU`wwo20Oy=DmP<0wv4YAvG>0h2e!n!fXaG2ea8
z!^5iqD87gMVwKpb1r709d3E;Wo7j5`EEY7l^4m2+8~lcX^&p_Ib3xJ2L8p5<r0<9y
zlFAwz1_)&P`0etXvj+9td;JNEzB?z+Z$?Q_ktB%D*2|yoxEK$cz?Oj4?x2N7RV3g-
zyNtxtx4IejMi*O**{9e(l!3#!-;3|^yu6t!NFFhsu>$Y|Qgd={l^c#bRlJv)R3P)M
zyGuwBMUBJMXH&0Rk9-@}PFsSHotBou8oiQ8oV2jh33=~LABTdH>$0*Mig8VJ_~XG}
ze?xUkc8rOChHkd7)D(yfgVvHNfy*pBujV#9@m~A&LAjP2GN*j?<shdKkF07oBULG?
zK2?ytsR*VghIsrBaP<lQz};DnQ|bMlvkwu~$Je{3*@c#3L!CCabHDqbgfXC?VPFuD
z;Nan4p<tk4;h~|SU|=yZNXb|f4PG(7V--@e`$YcUF9#%S__>-w!M+<#-#>Q(OQdFl
zP1)%5EbjLr6cTU`f*{PC$o}JP(;&BnA+T%Z++Vb0(a&yLfSukONO7SHzU9)h`1FeV
zfJkwi50el{xNMMMnsXN-{-_@%(?Z>m)zIH};~D8}DoBC(Fh=?L2*;Wl+E%<|tWO|~
z22Ta6$yNl@m|h^$N36BbBSVtP;0f1z8+GPoru4_JG}Ya`OqV|uZ!SVeVcbTAY~+_@
zDxF4=lJJ@q!RBa*8Yu<)KQ=C(9u{0!GTsSLod>nPI%wk{CY=s+B|*M=yj_t`gpF5m
zcBcGQtTW<c5a&yGxk4X)#xWvh7Qz#0@|Jm<_NNIv%d$0Fk2gAglB1%RAS3`CBuK$%
za*On(yHurbtRKDInHVH*TET=jjTN$9=T^!-e>(+(dFDAr$nMUfi+`<Qq8`+}f_{S0
zuCV_j0{W5CBYrN*|Kr9}#(^NQJzcGi@;lIDUF#2=cePoA{+2AXB0>CofdW};sgXYm
zpoM&hQBzLT1h4qxuXU%1`NcRW1(W4}%{d8tI2p^+I!OO19cc}FEfoU`WKn-AIlUcv
z<JUL$QPxV4>~2zp^Mb=Y<j=5^C_E!^y_C+;Y*<TKno^27p=nQsrbmtndNJxUj09=F
z)orn9p6n@Ug^yqna!u~&du{|ljV|j27f!Y@oK(1cL`MyuBnE{FV;R{1vHYbC_nfJ(
zeLk2@44G4WRF9m~-h2x*yKlxyc4@rlN$YO1yoFm0HY^;Kzbgw;pcnnxDHvI&`Hsta
z9%<xOrFaG?02$Gvj=Y?6-sicfj&-SWYXmz_4(#5urBh->Eu+2ULiytSmZb^h<PIX+
zwV)V~2$|;1jo81pGTr=1!N(vpA9lFGnowIzFofyCB3w;~GJ^GzO&DR*Sn5#ClQ6<I
z-%HJ{f-8CgRV=Frb@{;Y!-2)l67_fQv&^mQJ>6o*bLJeQO|}ja#F)!9fQ4-K3c_??
z?E2U0lL(;X!@VtQu<NSiTv%jHV27R=ycq4k%pnGv{feuwN}E1Az)sEtp8dg^-+W^I
zjA>10`u2m7v69_;1KC@NqwN9=8{`>s!g!9|Vg^o(j>7mkBUuwuevv;6&;O8X=0^Pi
z*>ZDxqXc6o=S4jxZ=rK8L6t3Avq)Iiyal0HvA$KI;h6=T-35HCr_H7-d=ciN^|&%w
zo#hK6W3=$K#HUa$ynuTvCKVpH*IDwx$@1N6`yF{_J6-+X{P+r89xJNge|8qwb9MAB
z6WAn#Ox<6+w{M6dW~B8bfQX9`p*ZqEu<9QQEsTB*Iti!|cv<lMNM<eGHS{sVL=^Vz
zn?~y^IggULsAscZkZn#Yb`is!x*m)+B>1t(nQ-@uH+k%{?R&eoQus&CWc*F|D8Ua}
zJcM<2sh`^P6zUO`^M*Vt^5MDXBe^8RaXE1<zFlJX7CXXvFc1ksf(}CDNtLrkOl9M#
zHrFo4fu*-yI`HkHNO^B?ueEu~=~$W99on}ephhD9b5xvr$ahsC{lrM|sE@KWLK;rn
z+=SsYYmI37R^6CP;e|96v|`lowf|H<d+_y`)9YopX$eE)lHlJ^VwjnA-7Yf>e_QkS
zCdR9BtSn|cdt-MBSbh6%QOmDL*A-uf8yFkEl)ci_Cb}&q*^6LlNU^m|ic5?1KfNJ1
zsn&c^-DW(fwl#1pl5!|Qeu{hf*nnF~#2094H<6&UDuMZw0?4q{4=DMA>_*VNZs=mz
z#&4(<7rte<x#`W+?k?$AzW8TJ_NcaF6Lo$oVy&tZQ1RXl65k&Z6Y70)QUr8-O!d_V
zMN=jM_p3ilhb4riES1=8*R%4{O!iEpxjYN66-7eLx$RR)qfXw)IxTxs{H{Jb3xYJ>
zSaMW10REZ5(`CRWoF?*n{~f7K(~r<I%&v+iBNHYHv+mePQ?{v$5Y4$2MMQ3jPq0Dw
zN~9>(k~>3<l?C)0O7@B*h7)5atgqMz`d+K~!v=OQSG&2baXr<K96)W3Na#;0C=vyz
zaBNy~P|?!wVD-2l?`7#duf9YpwCba>`4h!;@ht`|_k8^9`r8r*yH`TXnifKWvSqE$
zqWaO)@Fx}W4VPthZCR;^HMFQRrKB<`rOGmWsW?3QeAonDldqY*X~j#3h+n--gjIfR
z($}w6=<djzaN4fZ2|gj{Heua%c541O5%+ViBdB4w!%QoWW1kf%87mZ6Lr-Pt4+YHP
zca7P)Q|-FEr*G2V*OoTi?IO(AHMNb!iLHtQY&6n8HuQGnqu(~D{Mr!11t%V<Y3d~v
zbJkDm1JC^Gcg1q36%wsL`8wu&Q>q~$OfU;iQ`D$1w{%it!pzEq*yUrzSQpsipzva^
z?UlYRImtAQRcHJx&6hrTP47fMB}z3)Q;2+7xRIAy5^AX+uL@szPN%YD&bQ1umZ#vt
zL=<hb_(&qt*c))$nq<g<lf&)k@GD4awd5l1WF67IMk79bn|2C@9Z7x9GkGE|zp4g5
zsl)!6n)&V<WqZY!KJ_C0T&__rolpU;P1zGYDYhu%Z=cnw#;WNAT4pK5BV8+^Yb>Fb
zF=NQrpQ|g=w~~;n;-e}1hCJS<$zS@EL2n%J$YL|Ucy{BQry8+h5b3O7>B%o{?wXWI
zu65C5fx;2ki{hCkPq}4`k7<3lI_l^H>#H-ar1LVuWUXN&Cj`)P78pPmn)x<Zz0TxP
z$6aHgR0q#f<Zf0WJrlJ9=s7uOSv2S?nkJQNjB8ZJm)jL7QvYgP+EF?Qqi8Tntrb>Q
zk}4$Bd+vGr7N)CqD^=m#TzFaqjI(G6Zo6!MnBb29iVRAJjh%Lhtx@POFkTU1EZ1ir
z3r~>?5{u(Nu0=&3gvoixqEpyL8buF3UpgRLv4F5X3L^DYY~7b#4#0!kOS^28MLIsc
z5y;~?3JVGw*}?Mb-qdSvEjiDC7Z2P@AZuE<SJCb(6|pG|{R!6QT>qHMipgW}_&)q(
zFZa%S4mo{nI*F%?EBAyD<|c-i^;j;=dFdqeXHs~EM%1=<RRSNRkfI8Oz>Yk-Z%Op*
zy?#;mboD&e&L(vxf+IKUY?3~tm?+$V-<*D@&eFtMQ;!Kn#I;q;xXuc>e4}3k0%mdj
zfIr&zL6j?<iel=z3D}C}n&;u@Sof13Th~PdSlzm4lz&4Fy45!{7Nr0Z%KpN=FcQY0
zR$)M|E|w!}13#oSsGAd4OV;N+X6Vft4ZsGKjCR%FIa_SDG@orml+WAxxfIp31h&|#
zBf>_fZ1r0|c%%)t?rnO5wtPTcG!O6X8I%@6nXD^T<l{pfO6Xz8+FUDYDkt#@Psta&
zrw1+svR}i=QK^IIRQQexL8q=?PQsarj%}BQ77j#luI#6rdwtkt8^AecX$ycRfjXoh
zDa@;l1rM13YD}b+aza4MJS?G<*hB>*hZiUC$GE1*tp%4|JNtA9YR^ktBGX>TvIVH?
zL)pZ7-(K)9ir7-&5mgVnhQx964$!>{u&Y^a5f<pOGCKm$4o3-XOpjxS$Wie=$T6$X
zC@Y*>46tcPkiyvGJ<a6xy#Dp&mt7MjE522`&~GS0JHW?tlIsAZUWfe>wM?t(@IZq5
z8}~eNVIzoEM3ZvMR&5~eP9u`bU+!Vrb;DJ*?}H4BP2khQ=|a0pRX%?rpLW1tao0h{
z^zA#9vxcxVm^e>{vizys4Lc<cQOMSH@{6yjpLo8B?DK1-g?_fIVvC>Kr26njnzoEL
zrnz_hcRYqH5m8#SKUlox8LE297O&ABgURREG|A<Krj_bam@VRk7LBjU8SRsT^(zQS
zGyu5f^OT)f;hAEu|LX`E<`~7Y3G0RH;;li|H@lgrxPMFzIqsRs?GO0n&W?!$x!yh&
zz(xx8Y)+@^vtc#8x73eH)I6!rKw5io|7Up=(WlcL6tt2b3&uIwz_@A4raG}zbw&M`
zSiOV<n{*PN>h%OD-EX`E+g*A{u8Kb`LV}Z{`}>MB-sJqsA9OmYZl^x|NnmO5jw(k!
zB&x12WP~l`*xDn?kB8zq<5*erNVMu|hPUM0W?z1yOC1xhj(^IKW9wd|BhgQB5X3gS
zPG=S&y~rb3KNtRqAT`)K)!^gXzb(@0lPRbeLjqNr1>DoE0oYMCIPrs<05t6-{#S;P
z)F^8-IcG*;e>*lAsG_j^N3|&oFKN6xv#9*_?{ll}<g@#N*<j1mv-J3lHlEm%m&GLh
zNr+0o#upGmBztp;lthAAJZoTGQ8hSfF}2<Ywx32*YsGx;;GAj#(p^fYx|e-suXWCM
zmc4g=Bn>=d%{jQd=Ci3I-A|w$eu=G-IDaad!bsV;cPWqgB3l?kZKK`X4^pzG#B2lM
zt{E7)f+;gE8Ec{%erZ8Y8kSZdjV((yP7SMvkoMUnkBa~J^?o3R)qmka=AF2nnL5e_
z|3y?YhU`CoC^N_?41inH9hdYo_FVlfh1$RMomwm+m%jwreMUpK3by?7$~-DG+?z@*
zAqd>{h}>!N5eo1KYWYbV0(XZ0IGBGj#((+O9UxscJg+v@4G4T4&UY;#w&r7CJZk^R
z@&K=%V11QR|9@D;|7?VgP`0ejbY@J!=$iLJx;TEeH+HN||J(ZiXLtT{YW=sbo;Ec{
z)o$=_qYid~>&|fCrPmTd^rsX=xdP@bx@7^C7XD0)s3{y??0?T98C#I~;y7De-TyNS
z{kI48pYh>;c!-#-hY3MAtmNN$?fH+xHyrqgbY%@fU=Dw$8w8G+(N@lY_wAqmt8tMY
zb1bs_B{#E~BO@68VPEPX5zy<hJxj-+VKXYiDbfC6fU%SJe*ixs4-zPgo>YGzKcdVk
z+>eJK$p#Y6?KRoKdvcALg>^3z0&9Xnyl`5t`^-ET+6<$PLQ~I!BHzgUIrN`No4hQE
zYW^<r)ARMfSb2+hL8a|nr#NtwqAM0o^}YTKd=|~MO%=d2Jzt$|)M<79UohPNlx;-f
z{5pQ{{a2L6--uO+MrOqFzi0suzbHHy^zXUo|0(kn+lqv+R;UO45outRvARJxfphx}
z6TJTghWo4ac6`xS$nckJ^;dWQBU$9*mLN$*l7*vONvPHTk|+N69wKUv%q;yZ`+p~!
zCh6kk!t&CyB6L-nvd#?Vll~)fLD0E7K?MbLY8MMO{E2`05%-~hyJELy)q~-meNa%{
zhz*-V7z*kd5+@h6WX$C^@gmT|>FRFu8{!DO!cJOd>SDqNke3@n{`MF~^c2(Z?dPjK
zm}#OXzX7+R{f2tA%JENM@h|*==0U1$e&TJz-^Yr8`&D3Ewe4DK-1y&reAM6n5dIId
zCLVS>YRvqrkK`4>k2?94>QnCRy3bEnVi8nqod4^4{%5~_8@owDUVeU;JnJ`Rx|xG3
z_m1EzfC4yi_KRB5c<DR29QFwSWP&<!Dk<3VA14rYllg6x#_X>t`!8GerA1Qhzb`n1
zA%9+fWL43v85q~!c}7$JD0|Ym92hw84f3KV^Z!PTe<O~fc*gAWO`oXI-nyG*Y(uDc
z%qz5X0rsQbl`*Jo2JU|`=AcLkA;kJt56#Y9G6p=8d{8uAeA|7M_-mu|aDN2wl6<uF
z+=XYptE(ft<^A_7QxV46B_-Po@%S^inZka6oR#Wj&x_m6Jq0$QGe^hXX$E}=M54WW
zpK%RbmHJ4>b@@++{4e|gd?sh+UG!J7_-_;oUE$5g`6G<LWaSdRl7xB7{3H4QXMFcp
zQqY+BZG5tA{{N?T0RyjwvHd>?(mz)u|2Fvlb@2_4n&JOssA*em>p_iqpWUXm=>A&G
z{VRUu-gz4ZYL;!8vUt{l&)k&`KU!^`_AH?x=rZP$%_90<J1)<Bl~CAiL4`FtwowVh
zMrX~UiYzYO;+xaq5lLYXUxDEtPD*b)ixv|_2l{S&u4FazE(Oir%)>C<TAK~EC!NZM
zMdz%5KX4FaPF%nd_i|*Ie}$@Z<-91fk|W_1MXDoNFfw7YU}=iK@U4hNibS!j#*$A~
zBJxw}Q${^VF8||9E8wNDf8(SQ#F{;8J0Knrjnf%YU?*HvC(>3oypRQ2$e?wqQjqby
z4O8w?aeOk2aIG5(ZbeiYE6$NIWHm3TCa}{KzFty@rukChr^!^kmYT}^AVG}sabz}$
zdZvb?L_RFYKlnwNY$ckXJpP-L%Mb&L3?4)aqO3X~23Xj^+EJ@rOtt@5(ghLhVQ0Y`
zq1ql)+|gu4_T$P)5v=oM@f4x`=|hZMzN3VzEFeBAh=7LwdGipXOX~;O<<nKrGM7bf
z&~d#_G$M$H{OWVi1U6bSM;W<;E10QIGuc%~mh&_-Z2w-OJEV#unkT87lece0q$Sn=
zwE%TixB%vY*NRiMUS{@;;8tr;#bY9fJ3|R%3sNLXFEe+*a;Se%oJEttf}pGrZC?nw
z)u#Is`B!Ns(A$VuyLq3HsOhALh&(F7g{%_28a;!nk5SMIdb3<19+D*u)kVb%QjGd0
z_WGvS9ZQ}EUOv#7T<24EZT;VZjAcf^35Dm^x}5Ti*x$Ne*>D`JUJjhKeYdY^oGd*2
z1f^pEYW`R!U%)Ulr0K2hDu4W(xT&N9@xLd`k6Ek}&@ft4hW`zv(t7IygdteabGezE
z(2I`o`N+cD=P-gs>x#tr;U&+arXI*IJR%RwPW8ne2EPI+go8`5lUgmbbl>m0h9;@Y
zFo7f5bOP#)eYE_^Sc981MmNjuPs5OijV=LVrWp<j8}n4lB{OoTmFa2k7pLK{X?07&
zmi=R(S@zCLr<~D6NDc?-);$Hm&|>tRXzWOw1}EI0I~C`wKTCe30-um_b|Eh&&zI+r
z)(p{_N?FrGZkHdge51<X1w3Xl-ZY7_<czo=7zh(862+HfQaTEj+PG^jgE6v378G-Q
zg=6i73(ddWp17zMGC`!yEM60^FY+xm8d}NPyku*w(1AWEv@YmIE}`G^@G}1lT7pDB
zW&*Ks_6eN;X{;oHt~OGH^+I|VOj(ol{d@1p-IkrO+%1pDvBJK=m}L23_n5(yOpc=T
zDRG(HcuG&%UD7(q8=J1P$N0Ez9<tlWL++jRu=X*U$euic3(;3U72<3~&+LSf-H?Eg
z#Roq40L>p4zNtobY_LO<mK`KC2@F2W@*zQWeSxkwAxEDPHw6>Q1{^<pWsmmt*3z16
zZAsPMvIQw~rkQ&Rh?Irei_IU_$(>MDKYnJdohZTD$%!c}LvYAh&`euQirke|yrP!a
zFT@d6)p-v8=Err*6IgPcalp;mZk4^<rjtlk@%>q*%4iC$n1@hAs2%hIk6g_p&%PnJ
zHDQ{2J~s#&rG^)i{wljMXfwy+bp(46!a|vqfXYqsJWYmFiJcNwNba)AO;ExMfdnXC
z7W%8dubsoIlGA}<ADRio?0)vGpgl~xTvj_X!MX-q+$@L|A`ZAi3rMu}-cfvp#YSrm
z6dW|~n7b?zx}Uv&`g+#?gnt~!#F0>FZTx=B5GDvoyPGG_&MB;kv;T(yAhQx6{W-oz
zX|iv^hoYuC1Ui+wB;it<OUkw`!HJ?IG}p=`RkA5Brn6(h?V6Yfj<z8I+Vgqa52WiR
zXr@kVZFVlf*@T;#)#wr94cQiKI&H=w*Hm0U!sRB-oC-dLJ^cu-WQ5c%rwCIfhB*~B
zekeI=+e`g9e_<YJpJ4Ywdwj@Id7!&2bUB_=-@@F$BC`<H&hbE$`<n=!T$m9MHgqZe
z<*tZj%w{|=go4GT|AUTw&`RT^)X2P1Wvb_j!l6Fe8NX)hnGe7wSoqEG1yRD!i^!)Y
z!y=*+CEmHyyy98WL6w$TR5<$szk^Wzg`QF6bC}FQoC&LW*Eh9)jHVnH&ba1KEd)nl
zq?@F!?bI~TVyiZ<t+DvQEtvCF)&y(m6elw-)^4l$fMWxNjZKT?lBN8S?Z$Z&g{CJc
zE9zU`4o7NimDO^tXy3wQwkfq-*r*|~Fc5B3&Fk*WaGb7oOcHv}*Oz*yt>IYm92hqT
zdy{7cJLfFy_m1y%lVHxDDu-_#HMxPH9vT`8fR*hwRadbb95N{?wY$~YAQq~YKph}M
zWE&xwH#Gc-CRwzv5Hh3bnlgEGEJ8<(2rJ8Jh$X(uW5nU&t6B*=1Bns4AQAh>x<WFw
z5gt~sksjZj{Fqa|<7CQr3esrqXAkh5<!^dcFl0h5lkCh(0j3J+(w4TbaxzRs#2w_E
zq%QC#-pqT(Wn+n9B8t+PWrQZWPh7T4$c8h#Kf^s(9M{p%Zy%NkU?|IFptU~Z=1L4(
z#wwG?W>n?F)kJjzgJEky7u!Ubb8v>D^#i^;DO{Q;Rzd?$Eze2Tx%bu|r}Fv-B#9My
zV4G1U);C09uVk)6`nu?^Aa|(}i9mdt839`6RgteI;ad0?Uu%xW`^RXyi`a@>Ca<vC
z1xR7#t)lB!5gTRIvA#l9=s%qNcF@1!(Q-_MrK6Ot=JQ)&Yc%ZTDZ5vil-CP#Nr-SC
z`U?{~w*_$B7Dzz1!e=R*u{uANFdOR%+Z*a<bfzaahQ8DG^1V+i=z|czBxWDT-<%wb
z&+7xgqS8PhOL7@DYiWyBzZ%+zPx!8&2<TlQ#xU0JB%E2;OW#CK)MrugP7QA+Egc`|
zU;G;ilf5lTEnz);&iz)Bz6<oBDuh6qX?@i4qMntGRwkj(!tf(hA=#Y@%a!tXMS7S_
z%Fn=oO@co#ofDw(U#z$a<!s5IEEKi^ysJp)sxpOJ??w5jl~HDQE9M8=KRdaI8a;y+
zGHl@~%yb&W6u+Y8N|pgfs?r=J!vqeCdi2cdCBS$bmFVFVn3&T65-X{D;O@HmCb(al
z#-ieeAR@n<FI@pY??t&tE}dethBmf=)XIpcv$-E%(YCR|&N15vWgnrBK^Q2ZSdFiu
zih-i;-ix-^#CZ3v_yHUi;M-7md9C&S3U%O{$qYxz0f45sVhA~~T!eJHdXi~wx|bmn
z;l}h~Et%yke4p@@=W1qe8-rCkB4#U@+#FW6bxL3(YJ52^&!)YVi}<Qe-&Jd@_Ph|a
zLC4afwWN^s%t_<>DUW6bbS?VDkAO6zG&680*HbqLL8_jNb4JWrskA#of}MR{NgN?G
zV~SU)H$y4wy@M5*{)X$cC$-iXRRZ`&+vYaMjhq@oXDGA#S-0T1dNAs^687i7clF@D
zw#@?wYB%Qbp4yb&OxYmfv3*^#&j?MOKMVd%vs8WN)3Z2dSaBM@$z_G*`LvMCle~M7
zzw<Fz*s<;VR;vC`BIhd_PdP<4R_r(Q7S+Y(Y(Y7%N89FUW+r$s1=-9!D<7tlUZRSw
zvQvRf$}f1jQpX4_;NU@WF1T0&`j~{SY80W=yjX-03eMO%NXz#UdT(~oYK`1ytb{yd
zzmp$7C-5z^;@%h1j7h&9a_qCVz#Eb*w(hTe%zUE@w=ksvAUKe3^%QT;Pn=<*{czn&
zwlumqd1kL3gQ{*<G(J7&luim1;%VQJl!k#O+qx&XDqbggX%+*Uq)b-SOr62w&^V^D
zTS^xlK1>}<U5Yb`Cs!a+Gn=VM4R}-tZ(R8$70svo0DA{+X`}ne`MjXOj{&JB=p-x*
zMdv|W!LDrDd`;wos6t>LyC4ZCHtrkb9M!yxd<()SKAtk0>9AOyN>so7k{eS)s@?G<
z0)HmXmPKFv>0QGEQ_)jwZ7$tl@*$!Opl&O$*RL2&I7=>0!M3F~YhWjG`deDmu3iCh
zf5_WBlCBeL{JoeRJ9f$2EJL$(2A=g3bp}E)VeXU?#=fy+@Rg#@zU&#zAXMrySo{Z-
zTnKIoCE=cnG^MjJ9(L{qvua}1vU<1ALuwP&+`}AiDZ^Gz(KMqnZXhA!v`m1LJpn`Y
z>)>BH3b|&^jMc2r5Z3jBocY{kOeA~+@*%(DMe}5^hqZ0irwIa#@~iTR{!F4jl<E8`
zsQS_w#zI@_{Y$L+<!<h_!chLV_pAkV0IITrn%qZGt9!w$|1{HLl(5z&0nlYkj7B13
z<`w-YT@8b%!d60q*HEkCv)>8m<-%>8W(<0EI4;XDPSfKM39jC8)Sec;7{~>-4n;=B
zn(|RUvxb3kg77$t{f6yqYa0L13>B8oR0*lck$oywiUU1aNLSbbu;YP8S%<?9TsW-}
zH*iv{l;@sfe)D0s#V3WK&0%UGpoCt<YyjZsgfI6F1$@e`t*x3}F9n>tu;!HC%c2L9
z`Wq^B*Xd%MP;Ud<&{^T4p)4b;l*E5xCnp4xR(Ba$)|uR~wq7_3$ndmYXuY@UeYj=7
zy#X+v*CheWPIh_$e}GkyA|CY<?qFf=p?pwSVlG{kxo|8qQo4=|4`Z=0L^ApkI1OHO
zVkiV33RhuT<1n0_Gw3SfV2>y?E0wByMu7B6lj`G~L)A>{d+=A06JK1EAZSqzeJqJB
zV=7FuQu}&N)MEZQ(VZ=bdN&`R$X5YMT&EAS5$MV0Xn*LEd894hj>$`H#64|vN^{(&
z$f!=T5CH#uuw5BBq>E`(ZpW}7*EDjbp>A2d%k7D>9DtY60Z0v<iY{{7_lC*K4AZYA
zjIX0RtHi=0N}C^JZALZ&#Cmcl*CWQTi63B$Sa{k#^f6GT1n2_PQLu$1P^tv?Ogcq9
zl%VtxQ%7R(IT}l-(#N|v;un{1@RJ?NqyWgRTL7J6;Yl5Gg-C2ece<V;vU%jWid?y6
zcPP`6O4gWim7gPsGg}Lp<y6f7`M%H#=4I4%2^-WqCEMgt-0pj<r2`hB<EA-4v(R5%
ze1En$R8RVfAzdn|rtSqr;Ym30gsHY{eJ45B1--BeMKg`&4fxS+&ADbxt6Qu;E{U22
zZw@Zqmf_U}p;A{FX)18h9MYmf3DLwm6T0pX$ajq;i@2$cX!718N69-$ZJNrO+NS&4
z4*3odOa?0!B1RSSZgb!_|7|ORx$l?4PJ-zmsNB$Cojw?buJfqicC9YuoxDhoX9>-a
z;3#=bs=!5Kn0kb!Cbr#K6#EhL{3gnkX@i?Y=MRmvZIKjaH<dF2EJROo(zivOchHXt
z2G%1+PgvR6#Ft|ATf>AZa8OW*>`CW$;)w>Mq#QVh?qUX$+(voXmg8E6GH}pCy^^Ad
zvZN;sk_(4#NS`<{vogaUU=kFOw3nnEjlQdX$3>mW2rHg-zyi7x#1Zgm)}@-z0iM<z
z<5o{OKrrX=T_s{JMT~VUmMaB$*630!y<2vw^NwkQw1t~uq<7?-e~iTO&nfRTF^&QN
z=+3SzD`3q4^dfD90^0)!AC)*;vENV(qx<hmwGUw?H@e6$@3j%IWlhk3V7I>PRG1^m
zF>1M;ujY=*pydaW%$y)~iLh$3v?XJkP=2+r1)4`1^Zt@vM5VLP4B;#lVuW4=)`;=O
z1Po$ND*fM3n#IhgX{9wd9Px&>HnE{=CBlN>x5C~G*z>EV;ene9uTk(>v$qZLmJ|bM
zi7y;PXX*&Usjv`KBBS1*#hGa$nrDSK90~M_%QfVfD{)rfLcA?rStB)_%}7F;5l%PD
zixt_p=iz2A@GE=@6pj?Fk%E$Sl<ja-zw;^_&AqZlK12J-T4}r=L&BU{^X$D<$9y*r
zeg;vQ(ned8OA?}CYDJjdQwMY8;<>AQ<9=X7S!vX?K*|dWGV`n~fnHN-s{|}(Q(kBh
zf`iNln5+sCv{t!mR8bACbewoj^B-z))|<~<J!O4-P1tsUH+Jv^2s{D_ZD!k&T#lIf
z7kDa32w@D2M#?>u?5vPwaXP8Oa)GQBFJiQk?4_oXj8CNud}iL}@j_3mGoof4XESnf
z426pzo!;;)lopa7z%dmkKF6|nk>VXQ*~6s2p?<loi+``96eSdUd0^%;`JJxcgxpEu
z=D2O~BsC_G5%)?DbBSX4yTynV&-ST~>q2F&Gx>+ZUE-5Bk~At|3nD+&kjAAv6@Npi
z=36UmbX5l5pJXtn=QbqnDiqB&T+f?N{IE&<?tRs<rHspjrv8k?0NKRa^?{*>jFpI$
zA+Bf#=Aqu7b7G2>#x6lXJ3$n{r+(X}>u4Uz9owbpC#tZKK`GJ)xbio46;w8O2I5-6
z6KWDIpQ@#)oHlIP5MaITa>3o)j|r{T9aXs+DWq<Y(w!~!T)YK9<ABnl>a_s)CGwmZ
z>gI<Mv>)$gpQAYql=fJy`_-^f8qcsLN|Q-JV`q#9@<QK5cdKhH^HNP~4su2YnwUQ2
zXWV2A4WJ4&IFl#n>E-yomJ|tMA&x-UJk`*V7xmDVUS6}a5&9@*ZjIHqMLo<|VNT~^
zERT=MmjS?@A+)~fH@U7&g^kb(+&yy{3~F(*G20)Eni}!}ni;yDmSnF0CpML!*2{4#
zAWnyMDWa1xXp7sX4@w7XG1f5!JEz=K+{sT2`#);fk0w^asl^4?eEiCQ@B#5RRO>ZT
zto%6^Z%Hn1M~Qk+R&ZV}ufIb^-65DVN0a;)>4fbU4K;Lgu<O;A=RLkMEd<H-48Ovf
zQI3nFT*AIVT6{aN=S)*f%bD#)^eZ23SiY=XK?qNfKoud8F$>AavFxfB?tUGcNn_E3
zjdlguitwX2&JM0$_srro1a3a6Y3|K3rrT}g0UzM!57=(~FyI!msgNx1p6S{)W*igZ
zq)By$yZEd>2Dtgj%%|`JiIMQd&2VP6Lph1V6{zoz-wowb4Lh{Z1ll^~mZ!H7lU4vH
z*H*4KJ|%uyfS819tf^wIhN?O{Pk#p7WF6d^mtC_)H)(f=k{d5%l<|^p>Yssa75e>`
zea?&uX_qtHVcFcWNjJL(Nk=iE)@G><7v{xV=MgZIoE?ijREShPJrhcpL%Pa9M4*Z=
zH-vDSQjyH#2;AL}Dg*AvA;!g`s-tHMjcW5KY%hce*wdXk32)iT`MgS9<umV}r%40D
z(pm80YNP-*erWqFWt}!$y#s;-b{?qb$Q2(57#xf&*LCP(jmN-8gimY@sy$81C(d9L
zMoukdej&8EWk(_q{vI$0N4O+ZX{L)5V<X%E7#BZq4}|zNO!CR00NZ~!^B5<HY$G68
zu&Ra$2r$SUm;vTolMhXXd@u*u+ML40=bPYP7T(Nz+u6=~x6iWZ?YS)3HZYc80GR(S
z1sX9sPOom8upw6!N;t@JVF^Zldls%~0^zrWXz&89I^p3bJk)67fxL#^xVUX4{Voqd
zt;A)Ht3%&vbCiQc9>eQ!xTUG5UI*n5nxjkt=eXFjZyI{CYoRAz-V|k@GdRB#19(?$
zb73wjKBS&`DJ(S<h+>4QRMWbuc(l`m+n!EgE))hTWSgLY$?Arc<%g`;J76oV$Hh#h
zAox+39`$l=>(w6NFR)usbP~dvmox-X+EuD@C9xS9YRcBL()w16atTr?BcgVuN`kIj
zot{ZtI^i!sQN7+~_o7)#Kle2zQB;BS+Y|s3#5NIDfxH?{=cP;(;P?0`ws~Y+I))GI
z$DTar%y32t>>Y|n+dlDtnMwc4P&ryEkDVSKIz5N`VL+8_U`h~)B!1q)lapl1?Z|U!
z(>^Rmc_U)g@Ad<PtJPPTBUSgObnM241>h#+G3!s}4!EdEGSoDztUwa1VpKQHQF~0)
zQ<~_|ny>*pnUYC=?#kLuN?QDlt){8jAynUYq0J0|k7Ik$24$Xn!VPy>*sYA6r8ja5
zoR)%e6e&sYcafL~3{_>?23h4yFT}G{H$x{53gA3NqPopRoj<K}q0e8+O$(y9DCM>y
z#KYTT;d-%gKe#%ntrc5xfo#Bv2;UV=4J(!)!L2$M+9w^x&v9uw%%L|$Bc^IdLyiw>
zzoBNF35y-<kc(gyxOgPkH&G<|re%~5o0Bz@$4o8QwAuuQ#Tw$=;~;!Gn)24MnhKtJ
z(rHrWnpC}@7nWwcuERXx-wk{wilv&Ucq77%n2E(HrAaJepR&bVzx3}UHX;=9;ws6#
zWpAP)kq+E6W8_3t86SmU68XMYI0<Vv3z;oT>-7f#K&dhy0N)S@XpG8&+3@X^dQDj4
zh%MeH%O;?gm$H^``A&7T&l!rmxn)qW6Lhx>K4pZLN)u0+A?l(@fM3<Y5)eVF_W}88
zdoc3HX%kaUv2!$G%16^ll%BHuyw-hfWuv899;}iJi?r(`3B*vQT_abzbFVf}YhzW+
zhC-v-^JQ`aS<7F-V@4<f=DJUH+o?^UiWSTGY8KWd_7CN>A!U-#LI9R`D-Sr1mCh;%
zn_*p4>DwYJVX`JLC9oeCar_odH;cMMJt0k-e6umQv9!(0j7Sawi<Dk4jGWV^?w^PN
z7v&X|61|)e*}hoiQBy({&T)HUmm0Wq{MF`U!K>w-WLE4CtOYZ!$zIswM{Uec+gq%!
zRlY;I%`-k#=;th88}4DTrq_ogQiZB8IAvGB?%8R+Tt)YC>ed!C25`I^atA81KiHW}
z>54H1Mg+%lZaDgR#PcN434D-vx3_d946cbg3~e}0Va|PFh03qAjJ2p}v~Ah?1(gEd
z6%&MghDG^U$7NeS1!M`}MVv{MHvICWNsJAhoQV<o2F@G24wJHE=UA6jD(%`1-1J83
zbPW2D>^N=+EgGmdd_<9&W<p&#dzB?3o)zXTbyOcEFRT)%%C%e$$rQpg)Hiln&--Ti
zfZ15&%q2K>)iC3-Zn_FI@j@s=5kq&a=hK2$LI**NKUK9v>Y3Ji-DA}>xhl%qW})0J
zb|!Ah7l*Hor))-{zC#hhIAy*LkTU0(-H-{EB&4RMV*)#~%Yr-@_sg7L;In%QysLQk
z8l{}Pml5S_<$d@W_t?R~DhZZ=SbneIK`21}igzD@$cfM3Z>XoBSF+1ClqGvK=A3E~
zE5e7gq*;Y})dG~zT3&Af)4Hh%Fstx=PxRBrlx3MpjfUJ~25P~p0oVm+jsl4hpn%4x
z4sFZ&rqs8-Vqd94Xs97$PLT~j%*DqMscDjMiV8J6W1K)_q$k9evG@q=$CA!9k+1gY
zIOzSd1^*4)fT0Cg#1sz*MOj##!EaPc-smXSUy4s?3LFR@+X#u;rSG{Z_e{V1Vq~64
zrY1gUORL3XG2!%ydGHr6(|Vw+NlqiKg%K+z+fB$eQWAs!EF_cV54XC-4@rAj#}s(D
z<m3hjDSBe;nHVSBO(l=qrpo9}ewL+OxA|%OcS0$p66of!iZtPav7zMWU=UzY^FTU7
zl{fljwJqDPj^-hLo~96jdUwX3{u3@afGyMgQ>BZuVfM0kH!YR2(1s&5(AGG#GvXm_
z$?w_Ejh{25Qe(NZ;GYL#a=r!4aB|cyXwdqGl9_>8$3#}BT;AkwGAKkd?=;}EV0@jT
z6NIPi<V-P?^#-FLxPa+4&dyTvb5ttrlXIcT51sQ<O;Ohj?Ma7sB4j)j!7D|S)r}|u
zq#bx!1t0>-B)CN+As&+A(ywidE@0(MU_Vc3TQp12g)Yc~-((#Qa(VHxNDlAQHSI7V
zlet2>LWxB@(~L_^y1M-ShAx#RK4><eazpjFza+YA%$NC%cmGRV?gy0#+;*UXwd6S^
z5fH?@Hni?pRQzCx40Km)7?^nNMc&pd20x!bUm$`Pmg;aT=0#R>bsDufp&)8}V;C@R
zC1A+1&d1Ki#qzrFmv*80Bx9L?qGI_Db!)sz;E0ZOEuvwY&UDtMMVjm$#Qba>hmls>
z^)PD&%*jLOkdwh4Z8}`HnqcdKNW*2;Y&LN3pC%VO{EJHDK-hN~nkV_gXi2Qk{@QF#
zRlBtQP|kGXSsUqwQEI@FT{$^whr#EU=E(vIO^dEC6g@_kZNR1_6&R?Yp95Jl)LTDw
z0%iT!9Z6cMTR<ae3)}ALMjq+O^*XeHW1Al9smi^IdC1)g$Y5QaZc)L7m^_a>Ch0UF
zXyDTeJ&fVWyfxqVy4nh6O~`Is?It<bC5ZW@pMd%!k1CL?HKmGQxQ}RehPW|=MIPbC
zJk;THNJhyP&l{WgDf?=86grpKzLxNcNFFQ$f($1E?4;<|K^$pl3v@O`8!>k?o|LPH
zGp%TK2T+9sUMdpqs-6xHT2kgs^BFHzr`~8<Q`fChTegGJ-rG;~BkC8aueX|KZYhzS
zg?bgodCKWh2o4nVVwS!%pRnD`3GEf@-ND5|)h2wG*N<J>rCESL^2qO9He9n&;x_Vq
z;<KGHZpqn}>K07$k#P7j$vp_jSEx_~(2G6jm3Y`8S9Sp<UYiTIf{HgYDUi+{8gHvF
zzf3X~*hpEZOY8%6Ml74#T%Ck^%?sF%o2Dn*L(E8bQtHmm`_lX;cUTL4^1&pW*n#z%
z7@%G7`{z?XuTQ)!7_kubp-yZN|6cTR!arGQ!5;D<bI7!2(s|-~E-p;*r8J2qf+Lsy
zu}Pfsf>}lG8FLZ(z%o}QGCi##K|!*XCgOn_hP!v~rb|S;ZYS8U9ila^UlDf~MCF}U
zJHtVGE8T~HZ1DjU@1KG3Fi?^mXR9p8GWTGz?3~nNciM6k<>PxCP~%fcDfJH8{2}in
zO%X5tWM2ihoHV2*Uww05jUoo6&p?#Qox0)*u<oTp(Xljv;sW(qhjDn`<;?)svpG+-
zW6ot#Z)JnhJ<4mH$<G2B-k6H9f5P(J+tB^Rkwl84+g=(B{ZoZh#^`j4xg;tGZ$ZAr
zzx3Y<*)@@GUEqC}9*Ku)LZ(O-L0C+-vj}CjNA6A7#)%4XO;a4<Q+o+GAx*ObpoU<)
z!U2Ock{}#Nn*X?xt~FBHpApOq1IXoK{FU5~px2CM3F3XYd@{39Eaz)N-#B@x$xJY)
zYZCz*!tB{F?=5B(cx@ym>H49}6r!a@gq@#Rq^*$a$u$$UB65`1Na|zYF*^F3xCAqK
zLqogS3FU5>lv22YMYyFCqm{INJW6b-=biVyy2>}1`Y;B7%kPQ=CzuUHMN)&`<%w!c
z)NM0`9P+Bgo(T`4WMOF^-sQnvL3D7fb&j`lH^rmGg$E`hZdfEC_{Y{TpTRxT^0-*D
z_ThfZx{mb^U;17BL1$8Wd9x9+NdbMT4GH<jl>;@y?hFgMlw4GVv2vrFv;+z0*5vL>
zoHljFdIMeR`<)ZRMv`6}Ul?e=7R}CBN3>&Cb?>QG#W-0Kc32PFEZ7LI*0xk1|J-&=
zcNCro+OXlori9rn!hVX<>a=eI8JtvrY?w6}&w6{|2&b5x;6>pUr<lM%$d{6^Y|qX<
z3t<L7cTQW;;F3;kX<+WgX0>tcn<v7G$8V@B@fcinGdWtLnl$sEjQY#q;ZAnF*|2qW
zMFm1LnnPLLnNL+SW_`0a!aHj-o~E`7Wu$BwzPjY|BF$<8KG~?<1ShChcw{4tl_tFv
zs2c=JF4B=<JzJANwu;VXOL1(&7TiCZMT5K|9KM=BQJYhS*2Ljh-PFuK&+#c1Yz@sl
zp9<KG-b|-c7~5}OnDV?<OL`Z0G_7_?O?|wl$Uw~D8l;G!{bP@+_=^a7;OZ*MI@Y(8
zK~*5*Yje;+_l1DxYY6)bV`Z5@7D3HQSo03jA|Y!m6AWMzu9L@_bE)9n$SBO-;gwVq
z<Q*Ks^ceZZIxCOr1etBymWgv$J{`{;EMVZO=hEMPNV!KceI2YyfErep`}AU_`k|XY
z8E=XxB}Bc=62Q2t98;KC$0vSjTQm;>A*v-(s&Ezlk{jyVwFkOWnT@h%v7a0YnS<cX
zJcDObwR`*ZujA*U*+r3p$ANYqx@s@@WDoe4xkz;e`xNcAKIEZVVD`^auCHN(F+Iw`
zfY!C}ByG*sYGeWtu1VKWn=P={3Piw%*O^7mB&ItlZTYvpH)&J$Q6+sVlevcc?$tnW
zq_ka^!u8$v<)hg|5)pp~5~DPO>91i|YCXh>Oer0uU!$*3zINV}5zm~HsMZRqw$M2~
z4b590HPw}ox6aONnz^6B^sl=*cWB9PE4%IC#OtBjZq{kOp_R;gg)@$`UTx3@XubgL
z3IVvK62=W%rLNQyK6t+uIySL){r$2UJK5KFk#vYv-;SFq$c(-?*q+0$v5(@Fq)D}X
zmq!h9_>4EfF|QI6G+YWKPQPfn=1#d5J79_Jv!j-ma?(-LT;k+}*5rx9_({1C_@m)A
zBXDde3uS)kmdaga+_XpnTABkzPS-bBLRAsnr4l0y$d!Z`<XZ|bp0cO$^AsUrGsOQN
zY405mSNE<DBU*H3^cEy~AD!qW`V2!DB1#0K6D1+h%jijn-bU{tdhdxEy%R<VgM@?x
z!Smble9v>v_q^x4@9*<@|21aM+H2o?t#x1bbzS#YY5YM4_Y@)`KHH@*tWyQ(7J=w;
za7MJJc+vaY$7?4H;%G9ZbBTs)@!t}&z;>9&0}|PAP!xnW`eUk71IwBM=wbh@4bPgp
z@WIIzLegP!*FK{FW5q{=v=Z@06e*5Lr&e-M_Fa`RU6R{{?+^+W_O85clZqoJHXo$~
zEVq4}EI!$`lLuVhE>a5rRD89k9QfXHJfnE;;Zk0SZkQ6UdicZ#^tVgno5KRn;Vj!q
zHj^9V4Q&3Tcy7W?_lt&26Ge+H4=Nx#^l|4fp40S1s$$_;;QU#BJ2Bj!pDJGo<!a`7
zV&LUC7{xOE?kz;X(dDN(rqtqx)pSN<uL$_!@v+y0Z(m2eE73RRZ(DahEE@gjUjQ-o
z#hlvBwdKaAFpWcVK_LFPo=zc+Q2qY0wn6VQUsONefiyL&b;!!gLQZMOf3+yd$XR(8
z0rGq@Gb4&-l8a&R@NL8Nv6n6nat$MRX5FHSVtc<&XIJ#`)G%Al+70a?FYmpmvUtXW
zoz?$3NvcU7?Coh}o#P0?ypT(b=~>4BOVMgB^4nb~g7C;n^%wML&wL>h&)MIzT(XNc
ztY3u0uYQfnTd$|;h}m7VpSvT{Rqj$G$!rNCMXr|MRKTA!xcsDqvt3HYYTAFsN!le~
z#%35!9j&~Ml(BZ?J0@DM_m?a9URNExXdjEoT(vHplbV<74r9i8))amsgZ<!qA5Tv@
z@PMQ4H!RZKb(LRse8IyY`k;hy#)aeik})O+s8P_lIuOPVPXX$u^u(l0Y(KPISqWY~
z=qn=8#&LV)pjaS@AtTt<UeCDO|8H~`W3P3{^f<bJuQ)I7i$en*ZznsZI%)BFX|HtS
z*BsTqPqS`pJV=YRLas0@ZVb)?1dGl0Q+<Nw3D!_9CU0Yv74j%EpfJ*|VK%@+&NR-z
zYV2brO?V>Uc>U%JvC=G?M98Dv5%DbkWvt8lvOK!>R~+hx{ALX*zLe~>ojhXMB7ST)
z<NEhFrK$1(X(0VN_BFy%20kIrz29I}a8!2t5Tx;b8&aV0rvHNP;=Z3Mi^Zv|Y*uyo
zMWw!*6nY=L6S=Z|t*BxJ0r@nH!KL-RPhprN@4G0xdV^(T!~T-%&|BvBLjysOc)^H>
zB8`M+1dykVZ5F|WuRZ=Q(DG}bP?NOnc;jv)ZbxmfB1)hQDVI%tYc8?yPSxwX^D*w&
zcA*=^#mrAF<n9DN(0S!F9-86Fw8_M9$eJJd!gkIv%fj|jCMUtPFRdTZF6=EQ0?wTg
z0gKBanqFaPUot&6o%mV>03nU_t$b>3k$%-8o(Nb%^cJZ`sG2dC*E#vfdYj_|#2wte
zPzrie;f>w|bYm1D7bp`ZI))oNn;7{#8D0BMktsK3EX=>hQQr4?#g056inFW!3um+L
zN7GbRroA5vp5u6pa#+R_OJNS}IStoM*xgiH+C(QS-t5rG?Zk}5X)0?>ej62^N54U6
zt_mUM9RZP@woFEXl4Or$S{^}fe!{nm!Q+|l{q(YQ3XaWig|T|>t|+FA8xcjoKYIQP
zE@3+0aa(-xIGf`w=m+fJI$xFxSzw&uAprD{9OubmDLh!d7P!MRmLGrftX^EJV%fLa
zsPm`{+&J(;!}r;Eg``4r$=3S#6WB$se}Yz#_DkuhP}jDxJo&7`7Qf0sx5*BO!X%e$
zW#bMPfL=b@GY)ksD-_9N<LoQ<uB}RMvDG<Zd~$zOh@P2lsxuXEX=>QUFhQ(t_VZuj
z9@h|y$O>h%6(N4+V<<A}wW;MnPIlf!trj16+8kpiRrgB(KNt1>Qw>ekzi`mm^rQq2
z7;N`e+(?5kS5iX6@o$Jis;HZ3$robGu59Gg#Rkvk4oE3VW?o2&iTOoFDIA)04A8yV
zm9x+;k)+KU%f2rUlJI(K2);_j4OYi&Wkim{_^TuLq7CdCGafm;b8WhH1Uy*R!KyX@
zdHfE07zPD*oTiXa;JNKRXujSxe{!!cBWd!b<Er+I20z$tNuQ2at3RuuEl8K@_}3z5
zO8&^QaEbE-I<K51%2z_I=JoF35eKRlBO5p$A2QNcII!XGXF>P%IY}dPo6ze;^P87%
z#uJUYU_XW`x+hj`fO8U2ecsVh*%f@b7LE-R+ta1+vAh6xI)Isk>F!h8-Ruf`>hwB%
z(6K*4d|apx#^q@0Ha0*kMtLN8Mfx$miAD3B&aX@+YGH_HeFj;L6uHV6S$V%=GI87z
z(nWK{$55e=>0x$Ry18xu)OeR-fX>F1Qr3uff?oV1+%|L7PbWT71kkIw2H!;1MoU@7
zT1r@o(6SH=P6VH2+7k>vKHh#doj<U{M%MIz!$}H%!7gGub;PNY<4@M3aYw~h2s{WB
z#TIVniAmmS;wx#JDp(CpAplA$*NHn^YMp@Us)h!z?*!j%mMLa=sqZTxF4}zhz+`IC
zC*P5^*tx#>kmP>L03kW_Jo~gLe%z_LA1>UF7L^=nR&Sb%7e=sv^!2$vg-*HKOMU7`
zB0d_!o6AzHk8G>>dn5&7(n#ip%uLWuk<aeJd+?DKM$5G44!c%390}OPj^R(!jAgB!
z6iDTJM&rqPW{$7hCLRPA4xioHqHYd<Z@r$VadV;m>8WVf&P+5wsEOZvTDsuczUDzJ
z7OD@XlkdDa@u`04-8RT*OQP0mtiI)R)y#TNQW04H!YHpwT{wEDvKbC*jqx|_wX%{A
zNyUSEd?Ykvhg2E$RorLg4ic1N%L7gKGv|Tiscm8I)J;(;Adz#<yEWBz59Cm%ph3?(
z_FNd5p}-J(R<8P3xM}DfDtwiKbBoJnyaedP>SpX0zqp4{O7EYf!hG%tHk9ScU^G`-
z4*AX$w0Rk;(cQ4XzT63MX9nCl6iczldoJrWrYXEZK2W3-0~QwTZze!{l%+tvIJ#+p
zdH2Mf0SOdzClw<Axb^NHk;KqJ{jH-Q>d4ZLZGGZ?zr1ea<5<G{e3@Cs^yxfb&Hz^U
z<I6h+ku0hK9uoE2)Xp`;B~xAv5{IoQTcjK}F5$&EuY@IjxuS?jxU(V`5w>XsPA&89
zu-;#BSVD8e(YcIgi;kes{dwyqc)zY^uJT@BaiIa0U7OG7W8q6ZfX^-VOj~VF?$s8J
zn%wLDNfLJ6DT#hxTrmIw>tD#2^q_$adZRh*sSKypHZZh}Y?9nk=}3w*{V0TXEkV)u
zLsE>q>)KLdQ%ZfkHN6_Fs+%|dq^4LT3X>NHPx9p(>#bb2OJ3ga_#0z>bzONav#+=#
zN+136K9nuiv0mintJcw!@Y*fgB?>Hk4EUVZnWZ|&{)exHR^2indU>>{p0S*(+%D+3
zXL}g@(Ffz{^|qCZp0D52S4BIXeAgl`KVQ-L4tnpcItHl__&UE2FJoUdY|6^l&BL+3
zW||_#tL5%b=|}<hMJq~Z&K(|RJUf3Yq`s5Pi-H45eBT4{s}!5AN%hCZ#Sl3;l&4Qd
zWR8Ll8xUToutzhNZp3Zdo&YEul?XT`c83|6r3gZYmpBsPI-_}_hJFG;k}K~mT?``k
zmbIO$dF#(<(Z0(jZ?#5V*bqt0Wd?>ZepvifRC}gAo&C|F$YXLqC$;@h+3E{;E;b^C
z?MicGs1IP6%f7Rsm#y$OS<=FOr)Cd(9O_+rvj7CpWU7x1T`3q6xp?C!9+ps#epsrU
z2&zn}W#2^}>34n5Y1r!__#%G0YQmv%?j#qvNKG_hY8RDzYsEPIZyY{<4$|-k_e`EM
zeI&K^%{q+Pnl{#wn?!VMzJ9B8a<jYoeuLpQeaw<y?ZP_1Yof?&d9RUgL*~+$PF{kv
z56zK8h|)5B%QE}g`U+fI7wtB#!{rH1p@8_-JIsR56Wj<She8Wwtcv7#ghC5vq%yzV
z_35H*qwM0k27IE=GK_7>OW+JEsI&MG$?TIkgfYj_=3K?Yo`VZGc1Dw;jImkn31CNX
zkD<j7_ntZ?7$7sJP-pjgfxF~E;*HTl<4+9J(ZQZbE+T-!LanVNsQVn5B&DAp2&w-#
z_->>2l;Er;`XJ<6g|jE$dywvLZlj((HE)_~mFAK@>DuA2><XYRj97*k`GsTZxt`B<
zGGLt!m#X+3DX=CiR5B)yGu0|Fl>{9mhy9BA=G5gs{T_<=czkUP`fkzX(XRK)f(CmZ
zb>Oan@eHav6eZWwVV;yPe`(G^!u|1vQ6O;Oa0r2EdP5V8)U7wSk8{>1QAWXwmu?6c
zi<P&=0!c_S7u6HfhY>>TT!9AVz@U1S_}&$1T}l-@*bAQbxYDdomU@dd!LUk9q53`a
zxoNvXY{G8=z)}yEH7%B$ER6x!2A|-}!3Mq(Pe}NHRc+$S4|(Xq!G>Kc{Cpsvi1a-^
z+j6`y&WS@(+!ZJlX?3A<1NXtlV_IfnAKrdxsUEm|?0D*HK*RAp@f_GCkD;yO2}Mr?
zO7qhfw_HJ1yn_3c6z*EIO`z80=;x+`sow>9$g6hvmu_EC&{q+s9?G0uiq-d10%bi;
zXX5S&sz?!^J>4+pwDFFg6dAG7@eK_Uj6pQTY!0&)b_1Af?r%h`Q}hYMcbk|#k^e66
z+^Q*}8uG8SZmAz#iETq#8f%&`iAg>&7}dS&1Ir8>!(V@#nZ{YD(9YMlB^7=ivQQ#T
z3L73y@Uq6ZN^(HLw|&MV_hP(R>zDalRJ<$inkLZ0g$8HQQVem%0oC(PtZBaIbCg>?
z_YAOL(_=}_Cc5!-p!$5x+24hAU?rO~*nWIRRk#;3dqQBW!TDc5yHY)P30C!kqMP#3
z5O2a)8x52LrelpuRQ@Vs^{lW6vgQ6V@|RCls%ptCa)*}^eeXzi=?nYf!9~|K^OV9>
zzVbTPs@uLJW^oSW4Si%;tl%=>ueUtxW+gH$3sC)b9Md`dIkl&F0Q}#!>Ttr4f)rxD
zSiEJgMMhE7I-gq}8o?w}W;N}p3Rb&#p!*=CU{W`^^x!<?hf*1pv@k!^T%_zTob&4d
z+TTqTD>dLHC|oAVWs`7XEzRMd*rdcDWt&mlImWu2Ug>3r8t+j#0D%<?U=}bCy+2F=
zM`OG``O6O`vkO2{W`m4KNzMZHtl}6p(Ilh(A;V<Y%@!o7{(v0ySrDxvBxu)B-ezsE
z!fLfRy|~}?z2&d(s3{<=%(PPd9_CTlydtDA_zOJexoNC!<#G*NJe7H_)Wt`T*7}4R
z^@<2rj&V{6Z8IL3MY(?`@mr|qC;!dFT&^vt2()jyy@+hK-2eqZ8GEbjDU~s1jR~eF
zH%MAQxmV#IZQSz!pl;8SP4T~Q(gb|Tu|D<e(!IZsQ+8pI@Ud}n#xi9lhqRUYwF4gb
zsolI0CWF680J)uUrSJ@E`-Mv#c3i3@_cA@KI6Jx?XsCh@c`Nfp_ak$%)M2*SThYV#
z0J}sC_60-dF;JFn01okM!F0G)8K7l9)NCiaq-GXN^gsi{u0ikZcAlx|@$(|RS`z<^
z1ivDHI|*Q9N&I5X1k?)|oL%WNVhf7F9$s8@6GyT9ifr^xDvp@z_Red<FJJqXZ1gEA
z^58Sw)gg0xch;K9f<LXvZNf9^pliU{;>X~i6S|@S8qg)_={+nK!GM>~-G*Ft;}BH@
z9VT10)u|><`;}l_lp3z9Z`<VE1{N`<H+yU8>S9@wcGUvv=d_0y*F%|!{i^&TdG#Un
zL!wc#H|xKw7>H(vd&qP40z}S8{aI%#PHfKK8Zd`7bn*bXW#IJG?1tUy?w$3>xf6&L
zZ%KhmC3A3zcqDw65}N<EG3rX7la0f{=+?D)4~o}e+hcN8^r!|{exiYr&aM*nEup1M
z9?+|6Y73(5eUlduD2T0wI`&UYMwA17G#91%Sor-X#L{Uaa4u=5)Z<c>day-b2!dkS
zy}8_)IUD2FrWU)(Z%#Q2dT1EtLaRuO-75AqKPw+)#C%UW4|)Ns+H$4J%$m7xf7|#O
zY!WZVssBZv{Y%0jb!Ot)#Jh#S>B8wuKQh!~F0Q|Hg1$v>zj69O^?8GV0~?W~YlP#W
zs~Xu+Jv`ITt?ka?!@qF2J6~Ixc_P<7R+#>L*iRtc+>Y72kCi5ezcubQdD^Y>E}uEq
zaj(p2+aBLGQo|s%DZOkJgr$xdWr}kse`2UpIk3i6<4rzJqfx!&8u8o`@Ai^DD_<`D
zmy0jUmV*~nM{>;!_}lAFK|YiXnk+M4Woj6v7$SfyIqe#WggRVPIniJ-fQkq^GfU5|
zSN%Aku2+?hWk+&2h#kOQzNaKDe<O#fr_5Jn{uQ>?5=D3=j1W2z(C92-)fnFL5p)o6
ziq4<8fvf9P*W%P%bt6D8o`S6$;IOA`Pjj~0KA@Ygd(Dj9f;d$g5~Npq0k&8C(v3x}
z@3YG8;Hn?GGF_MQe8Po@+=*Jbn3%i`h#w2=O1x>Kst@|`?wV}E7bceSka=mX$PDur
z4u(FGH1WH*72Vs;y#V15e{{#E<LcSFi_?PCzLGazj9duGAUP>0jz~iOP<daIhUpEK
z?VtRKk2EQL=pq)aG!@T&mDVt#Eb3@opz1c{mc+p8)?IqA<AlnbIYi%vgKLpF!ca}`
zS#3G?k$`9L)NvtV87qM1={lJA$795nLT(O{WRMmW{yEYom_C^~;?9@Qfv<d(EFu+j
zB4SB@;>1V{5HA2EeOo9)I_C;mX%KvvF(vnH(04{4xBva)t2=2g&Vf{K?lht=o5Jsr
zY<zJo-Va+ltzpR^=FdKtFzz3&${YR-M5OU|5}E-p5>vHCdeW-lBzFmA;Pfmv;I8%d
z1?sv0r#T0Gqcz5svP@Oh_y)kf(4bwh;DUc~)k+?9FI@=Sw$iknS8&;`&wdW-@hR9y
zG;#Z2v^^gP_%?mgIim2=5|gtML)vuD1?gl%!6RToT0-AR@F9_Ap;~NA<O)*^0EeQv
zJe^b&xaEmpHy0G(fsh|JIp<w(aNXCKV<T{E>)jXt3WI<qWjL3)sz<w%(7M)vUWo1{
zxeGUQ31sr_!6NstazEMwT<-uo_z3-0=>(mB#>XkDytmb#A3Q_VN-L*UJJV!#epA`#
z$F5#{REUuxeS^g#6@NoUbZFGPv5cYMNa#^7#aNNsgB1~cDe1C|BTYZe#m{W}Wq>S6
z*#;`+*ycY%?(g|jFJ4m#FK0zVX?V;SQrA^_asT$A#>#tbB>^ghL8Rl2MpqxIAGY2e
zd{H^9;#lL=onZP*FjPhy{&&J9yHfcV&hOLNv9>`3|DTFgpD$2hc!0mMXEAR<dqG;6
z|E>F$Sj`b7DS<Y5<Z8z0I6$_32VLx^y!L4NJfuMPMrvZe5afNklxy$i;<B<#xF%r~
z8S8Iw%;Xt))sH3HpD(D`1u7rtn>T;pLx2Zn`!v3)r8H)2tuW<yFm*)?au`X+R7d(F
z_{|%alRVlzfF~^1(&8lF$kYU0s@#2WXgK1yTk2f<Tx5J^w6Z8+%YzRvCQ{$Ffh7YL
zQvkLP{uqXTat>p?!y8n%;$Pw^Z*n{2EC$EZh?v^H0Z(R+ku>7#P7wm>zm)czU&h+l
zfU|%?y8xu8_9_xmD&APifN$wW;t*fovcMguPh}Asp(Tx{${Rj!ORewA=_4^PsU%r%
z1#AWJL;h?Cz%cg6bU^Wq$PL|?sd)D(aB$Lm&}(MG9qF<%GTz8HGhEcA5uoIe4hpt<
zqI1r%rwViqMpwJpWv^^TpiA>L_&jZsZr#`|z?SxFH2|O&xzGfm2(-t%wUtCuD0eaq
zjg5(7V?GDK#}W*8($c)ye5(4V1>uLKqI46Sl(1J6gw}J>qZ;?Jx${}J?#UoZ%5v!P
zoS!8Q_@}k?)&VlI3_A}R=<@fbey3nBes15IBLn;T=Hl)8W=ZPNbzUBtFpsyIFNELJ
z+4<2-&gDBbqeq4LR~tV;W!qFI(y1&DEbkxT_47Vbv@MCSo_q>a=Cs4e{=(s`T8*8F
zn6-g`AiG-tkM1JNF1ak`MG@&~skvUU{8S|PNNv#gGOlU6qeMc5hO<{;mk^URN)qaS
zRB;>|O3Br08nP()WheY+wo^3`8{e0^md$E3Cl9Hf%{te1)(pD7cM6ntkvEBLCMeuH
zag)6zRw3v^hUzwZhUDCG74+p$cO!h2v2TVx=k8+WXNeHs7FQEMcJjzKOtJA6Z`Yux
zmkb6|rEeId(5*QMZOt)^FQNQ&zRAKA$nS;8mTK|A-w;Sx^I@SM;KGB2Vp%(=+{i+!
zSI|grH2c)eGM4AY`NQ<uF#Ik4gg4WHYOqaf0Y4FwR<_0p{Pw8R!_&5t2bb_SxFA$f
z$qggMaYS_GCcothHFEUUMpY_JBwkgVV#OB8&x()})9~qN0|ur9239p_LHB#5Jk!WN
zcG$x*>W?4H=tDu8K6%pO)swQEPl|<A-;kBBA9=rt4Ud`hd#3fK!GgAYj7Nk_am$tP
znDpsBmGG0#RiqRZ=p0GXv$AVdab*o{7Ed7`7i}7^jAyZ>#pALTb3i>Q&=d6+jt<A*
z08pS~r_cIejJueWwvXrvSH^O(q{0b_ZC#-jvBhZiA~kjsGKFcm_mIRJA?nO5f}F)k
z%eE9}{&^aM1$mi?sIIkY7GXPxZWQ4{NxUm0pt`U(+!eEh7REsB+-TA2TTF^3;pyfB
z?n~{|h|TbeSjJJT_5f}u4<X;WgUS%u&ST#fLr2R#9|7LE^8+`X?{~pV4qKTFPxwu4
zi+C}R>bz{BThGAOVW8az=a6oMqnj@lC5^um^#x+YZz;o6hgs&QawVWUT!$wt`!I<f
z$W(0m1lyJbSCBcV*Kd0nO}`wk#Xn8oki<06CG&>wlSHqmV|CxyXdD{=QnRQ1Q-e0h
zfJ<HpeYM9o5LT|zxG0Tpkbo-gJYR_qF5#?DYnRzZdeYU&d-re9LyuClF#rUzDRDK^
z$5zf&F4;_y0Hh5nQK)QfZ(0Rrbq8yl(r;yX6BHazB&dfsO>ZlLGM_ztqekC8bhppp
z(G&2P`raMNLagZ4Jzv6SX|-n$)E?|=rkwzmY*jp=qZL9H;@Eb#T#XGJQ|DT~vFr^5
zAFw_+I!^I2d`z7hcqFEv-&(5QQ#dh*for4UY1hR+l*!zi2d$fO29rmKhRG{L6hAO|
zYq5)br@e}I*sEA%#zc2`ZdP??!2IU$D&2Vvi$Ra&gPE!YO;xM%-s-yG<@j5q!#7CO
zmg}cQGk&f(tHvgV&qRwgs0|P6K8?_Bt|1L5lX3h4J2<J7OB^uTpnXMXoN=h`+)7Jz
z=pLc=nA_=Fx3+l@{)a#`ynmqcR=&I>W0#KITM$g1n{3(~g$8*z@hvW7rj!EXE<kWK
zZrYXal1FjjuL;pI{k)dmbu`Hs!Y`QD!Lozv+$H_VgtYeGV|UWUiR;M2Vv{rd=!FO=
zEuG)d`^P`u`2FVaa>W0|R=bkd8heX7C1B_B)uQj0(0~0PJ(lBQ(uFtt@|ljOmDRqb
z>3nO~ss;5&hwlwUees2qbN|D4{@05+vwVNFcpy~s<d>7Bn4a4m*MQQZ>f}PH*Tvt1
zc3lGs+*?VVS0#2m2ma@={IA#j|MvkW={Ds|C!=hbWW(3Sj@jy_n-!M!;eb1cRI7%r
zjsdo@V{X26>6eAop7W|}Kvj*;^}qe^f7+?fq(EvOn#3G~TVTEtl2@qFlj4)-j497L
z9_sJu_*K<B`NY_k{{ME1*)mZB8%uwF@LsMDkKeUd$z=uIKcg`CK3hn|F~{<6gP?2P
z*_0Fcm#xX){w8L83H*S^iB%S6moN@qpAbpn>K;W?{Bto{rRcrdVF<;$@_*fzW7LSj
zShc|a7!1kv)paKgUs0ZE#DwV}+kbsS)A1=ylau_0yypGoJ3s^p@c@&9ep1a)F<ai7
z4KSCNYD{SxzUJ5YWtskehuPmxuyM%Qh3(Ei)2q2$)nQfd;ADh0ZUJs6@5%o(>odn4
zb6KCiT<ZRhV}GrdW5`-`eZ`#)tNhoK>W<QYsm}49zy9?FDREFNIvogO<@W!4s#DI<
zxidgeBkuf|bQk~E&8j&kAh|Lf2pYcT{A@M$6aOdRpd;D-Z>Elz!P2%lO!fmnKvy|`
zXg>J2SIEV7ceoGpe;Ypkk066_?z-G0^-uX{S^(59qvPSTCV~wqU_gID(K%d=&->qg
z^q&zbw=CNM&mlUuwF6NIFG2pXzPbG4edDhppfNb_k&)DFRn0mZ_1}Wqv~ATYH>E6n
zp~e(?+w`B<`|}1A-DU6}KW1{1t$O$G%f&xG`_DQu)blZ&oCWxPB+FwoUAj<>4+UeB
zc3(^uq)_(BOC}?(5P^SQt88~NlbyVEK~tKkrtlNf-?VN?Cl-r78FdiD%l~{rN9w8f
z1?&>lBm;))p3lv+3fQ)_*17S2FgP&{UMoVZS3yoJaLpYw{+TcXIV-^GC;8h0+H&=Z
z*~qPbK6prqp<?xmjrnh*em(T$IM71(?_oW8FCYCX0O8hPRiixqnIa_{xD{bxz!7*>
zysC{hzi4Xq`f?MmKkKJf{nv#PxTYihi)zR}6Y-&knsVkzN6OWnu8z^BB*qi6Daq-8
zrb`l^(&T>A!}6bR$(!`wua6V@l5m#xz?__njz2_Z0(%rb;6A%k-6jdVY8>O~IDtbU
zgWh~wjrX`41Jp_9{%_x~Sj)4p6CO41D#m}!=cE$^3;*iDSL0kM`yYP_<)r>WN%P+(
z<v;g|KrMA~$DFB#xf2U3tj026w{aa)lh4~-jRP*Z3$-VEoptSVQ_#~Kv;V$a>OcA!
zSM$$&{MVglwNlt~(h*bijx@|Ozd>Tz*<jjJWgp@+uPMXI#GZ{xw@}xzJtyuSjv^y*
z>W5M&)!lQAMVK^F`y0`9=q({b1vv~8skd}nP(}slTpFkwSms%AMtU+4!LFG!?QKGy
z`y^~^Tt@18A~%X&T0nM+27~=qkh|omOL1HQZWVdc4xs7`9+a{Tyx!&Ne*cU2xbZZc
zHcryM&r^FmuOtQAxz+pcC#<kJ#wex`Uz%`IJf@|eid4FC1c*+}>)b^HAINyYcQ2~m
zG-<SX3X+&)E0WT{o2z32`5g~^iyeGNe#oUh!YSI6GxPBBA83$^XL>2m`+V2^S(O{!
zHJWB*MxdZi^{%my$NCr!341*#gti=&d`Lbo17yAuAI_phPjhGes%AOm36pzJMcLD=
zJ6TJwy0MI)mor(ct~8rH*6Z(jQ4;$8*^8cE8>21k5npKSRE0g0h}(~p1GlFu03&VX
zb*BcB9suK@0615_)B&M5@-LwI6hBT+Y1RXE!D7dz-YbtHD)S!9CN$2GmA;%~jG`%K
zVRGkwBnPYNVMj^%Lau66<i<{OXl2Y_I4$lER}sJ1P3&}A30f5!1#}VZFoy{N6+ffO
z@U^8u>A7^TGE5=-%7m+~zNM<dKHM_wbVbwWo;29Z-6@4*rHFczpU!JCPZ%hPO@&U?
zdZ^40SvvsdX+Dv&YIhS<-WPlPVriVTr|l*|BW_&Us!B$V-AQTmXrhcIuH16%_->vy
zn!LC#HPi?Ny)Lo)nAq$fxOHayEHhPLsSGnkev;Ps<7Y;U!vIwCB!29oiq0SXg7#fN
z%yhhSi;tWogF^C9lBt_UAIq+*rH#C!O-34osn-LcwGGLS9~k=DQ!k3q{*`~Z<LlG{
z9j&}f)^b~}6uO!jE1b_Ac2R_8;f)`YQ;bP>Xh}=V+Z(8EDc+HK`+^Qe=5W{YzDG{<
zaSaA!9OXV$)iTFa?LOwO|ALs>vqYm!>!F|vkUj0h4yO(a@vHXertQTDNy(PV#}5|X
z<2fTa@_v~YXKG`R<^UMQ<S$yNG4JVag}Rx}PJe;SHD6R7Hnzq3nx-EYMr12v4<g4(
zxcl5GpS=s{)3i6!GXxMTqLr;yhn1`^^^FeYX^^~az89uI^+eOB)Zh+o#9abSvM*}c
z!5O2=Mu0^Cy*3)oy*>%36SWD$QaX3jM`8GvMpY%>`!CLX`_?zz)lakDFBSZF3+cGM
zPCYyWDWiIZ<$OmKg0}P*+(}z9ZjNwDu0bZz&|Z-mhFf(CG+OvQa8b#K^eQ7i{Md(j
zk5?5@C}v;b4ch0QyWogTevi7?P6IRuvw$RxXDvF0mC{duPsn46C<Fmj(Ep5i*P9wQ
zP2vwDa8_M?SGNi|FcmA99+DT}{e!&d4Gy0gDuO(F>l6C+?>eiWcl-RYt<Uo%)vY5R
zz>zV!w%jj@;_oatG6-IbIxC7lG2qJ&Q~+EJ=p}S24CQZ!beDz^l|8wd+`UZ*zPr$z
zd{GF3q^o~#`al<0JU8P_Nh^>wm2otfAL?$uDoGhMtiYMtMU%mgBO<Wgeb=h+lTl^E
z#Zmz%>m$GsWhY)%n$?^;6;Ud7Q)vCrf-)utaPY-R{O6pJSsLVgeR3?KN_Dbd#T_-d
zPFF-pccqcH-Q8aYA&DP=0D0>-o!9-GE98usR7{bL3GuUvJiHlAMwY8J!xO#}6@^j{
zk)mS<7f?%>XZzk(D3ChO*%Mw2P9dYwKiBFFM)pfTWEHQ)oR2At7W1Aba~)4B2*IB7
z0dUizxi$%hf`X)AhgcRG@xIyBa;@Qt)Lk0A>u>Q~Ul9DZjH?d2kVW_US9O<QS-Ln0
z^b2^)Yx&e}$5<*$-@HN3S5GmypIsaJaTYpF^*KLoHzOJeI9|i(#R}kmyk1nAllTYS
zr{L4?r{ItiDC@9;c{i{mmu#WcG2f=$f0-1}^JFpWj^B}al;I&sXp2az-13prfBPwg
zbBZ?pgx^)EV!v2Hgp}yW)s@hlvTlN{2%tEYOSFk*rlfEJ))|M_x;F1xVi?t>4#T-)
z!hUxJWFtt_N=)iU3~P3&j~3d`P{M%3e_8#lac@C=_!3^q!TS9^-(|N^(@D=uO*8Kb
zLT)1U8DKW5`wjA3E;#6OLJKlui113(GD9k`O5kgiOAxL2BkE+$g&Y;4h-hiB!OgIU
zou22_j<p#6-WL?Fq7~7(nFtuR)#Cb<A>lZWiBwD~XcJWknOu{ao28CYjpOpJ-h;iA
zvHY5{qB&iO1S^4TU5%KZPaDxmqY#2LOl72FC?NK9KP<NU#FsBksp1=7uwEiJAoK>W
zkAtaXUcmrGFT*}Lxhz@?tYFLYo2T1t#J6<<0dwkXRv?cW3PGWrwZL8g-ymcGtjQS{
zI)!nfCB$2@W!E<aTq}@Q0)h(g><u3+ou5k?U+HNfUgsK1-#yG<g(2@*f+&1|+uF9y
zxRPdTkO1Uz<Uk>p?}cyi=X*t~)UqT`n(4+2nVrN37(F3nH=9|7oNY+co%Rqx(l{+S
zm`<t_$$LFFj8*0jC0|IuHrLk>5`UL$S4GO^`TC!}uoPf=0-zsQyMgI4JK@3%0-FA^
zb$*tyYYU*8X|07?&-s}>eW-|L<@#;xSxJb%a30%9^UW<kRHy04DF^WbV#o8N3i1|x
zbziTdmWhoFr{Om&Cma`Sp9Y>LlIfXr(nl09_kMLF%y&@&8}=q0DO6EAH)lV&_E(X<
zAs5j;R&#ApQ~G|lq#Q5ws{_;4M3DYMU|AP+D}*gVR#JM{A2;X-WKqSw{ixj&@d-nZ
zI%3_sQ}+T>Iqj|`g0C;c#U~>|l|s{F$P|3!Q(FHCsPF^irahClGJ&h$fx$vpKRE~N
zYzc@;wR@Rf52ful9<^3=_E_-XTQ0|!Th>!YU&oSKsM5;<m8j$Qt+o2r;RnV8fJWZi
zrUE2F6CFH|8yW*N=+fZ|0vnK6YNG?kc|MG~07RjJG&lbHvPF`c@ygSUA8%H1yruYv
zFsCHd@$TS%3<b3O7b@{>rq`9A+nG3;fD-r_Jo)%jurZD8T8q2GtPaHfgrIO*45|_r
z_)y?z*73VkS_u{!H3g`maCN^oMsWk|=gatyn;r})5GSee+=>t*>3OG3&+mGy`uKvq
z-f#68;r>IS+X;7Yq3|gT)&V6~{O)B}_M=W?ueZ|-v=|5b2H{45=?vlZjA?I|z0VS!
z#_Rl#;i*To%it%xebRDyM2~qQ-?4`6M((RduaNEX^L7s>`H#b2hoTf5Od-v|gm16S
z;^nv+a~$9;gUXznemM1O3JyzA4z9{u1*V4e-U7sTshkO4f5hp$ZA)hOxT*sZ=K8R3
zlFW8bXDT3eTzF2lom^XXidVKV%m@y2SO|#j#Ksky<q?r^Gy%PO_NT=gBR@|$Yq?RX
zXs{cFzsSJZx@|h;S`+1H{QV`D+?)ys`;}z*be1a_CuIBf6afXmHM^0JpZM7qZAb?Y
z$F<vg{MjE9xJV%pMhuev8d(o|%$=m$Op&7NpMPSOlCrb?ueU21TV*sy4}jo7iz&6S
z95g(bS5IwHQn`Jg=X)X~-G<7QA)vZd-HMbNyXW&Uvd73K{Y%SsQS+rX^Pc#O271U0
z_*x6*3{-HXj_M12S<SkA4jMZ6Te6DbeJ`YV<4$HrGNK)1O-|TjIMvtnv+1IjpOFL5
zV9%rdSB>!?ubey5rx|Z8Vs(h<!dL2}e#T%OeIF5kFZrp?OG6cNIk!FAeM}epXZ~YN
zf_ioJ29?(_zc*V-48ntg#~xQLOYd=NY>Ttys4KgEZCK@-@=QXAUI_jY=oNe)iu*;c
zYC1qDo_*6+*Z~V!HFuV2aH<`JQx#+?-p~DJ%y`<GQ-m8DtXMX+5v_7fH+Hn?zIu<A
z;#l0fuia+1)|MXMsS7Z>!9A!-O=4@hH<IKW&1J@9_T{ml^rbPHXz3U?gj(nuMdch)
zh~CVcy}DnKpXd=O)=A%^dD?#Wr5LTPJ(r%e^&_-2wf4i$O{W<)K>M%qhuP6_8n6@8
z9y7kx?{m{r7e(B!odQ1z7N_Q|k@v($^<zcDGSTa<rnS@d9kiX4!-ukcS2b3AZDl!?
za1IOqqQ&r)csiIph_e*jB;XXEoN2`D$<I{_*7POEtGE0NH5kQTL7^cK!WQ;RX~d_?
zr}vaL1K*#pBlymfIa0_Nr+RbvAp(-rjM1|$J6VXvl`4WSSR*_&WAtR<KHdu3hGR!j
zb@%L_Q<gShk%+jqy#Ns35_Jud(EKLCc(tonBpgqms}!H8YOCn$-!8Cfe7f1(;=lIg
zx6sIQS1UTn4#L*k1`Ywx{Rg(>Cq`0CmKTD>nx8GcXR1!f>s^?*XdXxu1IV61LFd~d
zy)(TDmR>}yhjQ5lk`NH*@w}`L<cwm&>kc`~M&7{5GFBZ5qz@Vn+dHist&eKG8^j^A
zovzM(88juE6se-iOvUh2Bu46C5F)__LwBt_+Jx1dRo`_Id74B#05Ix|_VrQd;+WIw
zmL{J$^Jk9~VV_xkSqd3M@2#qM#|2|*t(!S$?!@)ca-(oEp@ZRa4F*4%djaX4<PA>$
ze7k{Cy7Vvv*O~eRn(x}A3@Yv<$tLPU$ym%%>h%66z0!6|hx2Zeb96<9bM1G-Jwv0g
z+RFU{eb@U&4<eFBm?dEk22F2Cc2RkB=97ws%(Li6lVosi6}siOESFBNAKM(cYV{}$
zHP}hhC6iMC`X@fVzV!M51>DI4U1sbxeLL9BHe%WAG)vfBr|V|ap!<;S76$4_gZFC1
z@wNKQN7TY(q44w0(mv_N$*EZNxxN4ag~FXkPm){R<N5hlTzsW={0K<tuT6WAAPA}y
zz){iiAa#f5MwRonivfB0ZPa(Dn;9pxAOdeJ{aL7;BV!{rhXU`rZLH3!qq;NYOn{>*
zFTSx?Aqxo?HSD1KqcLL^kJuKsf@pJ#W1mY`tArI#NKc^jVe_WZt$tpI8z$-I|B9Jl
zZj|kP6=jAbNwLgW9RhWBqtI`ddRqw@zHZ;7Ew5zFH!QoUw2r6x=QUPzV=IF|Y3R&V
zzL)Qj0{+asv<13Al1ZP)$OHu>qif?t*l(b&P?5*}c`3=(`iT>u?yK(JQ)Jxm0oLi9
zg2Qyu)PCcSAZtAb3JHbnj1}VqVhByFegg6ltlg%byPcUh`~F`zN*@f5dC81<LswAH
z<*XSk`#S{9?auZ^#rurNI?~?}m<TGN?ZodiRzwY}<P?$q=y_MEJ}5vEB>{SlK>Osy
zlqBx8X<t+!V1g`6GH@3~i%Fl`Wu%rsFRMOt@^)s7qDI$df+CM`-s-}yht$9EHsXaU
ziYM3o>Q055_h+{w2D;8w_T`jkC%<@rvqqCX7(`e1<iTI~PI#;F0~PMt9rCn?*_xTY
zwF5e({pMvKal#5twQd<vnPcga*{5HykO+B9dbGoHB*5J$go1|oVT%&0GK>E-nL~L5
zW!kRuvA;)IQH;?1Bf3<OUIbPLjvG7!8fYxe1*{LmZ=D&|;Xi;z2nwQkhk#C_chvl5
z2q;m*+*O^gj~4(V0jNFFsXN}>aT#S@Zt1>G4_OJ*xX?EiVDK-KO7)hS$oR?<__B)2
zGe4obBu;(Kgk>Mk*;A5n&WCA*;F`G@p|xe}<}Gn!RJ-ct0^=<}wgALd%&n}g(wtEh
z?^LX4NOZkG?-I#~51Lsjv2MaXm$wT1IiGA7plYNRvur`*G>gFo?l-?bGpNJ)3unl&
z{vJuBg+A@Q?&2(sdzIbe_19^B_G@J{)i{!`8;09uRiSm`4oDt443L&#oZJwL4q(M!
z<f(|clyP-8<e{KC3)D<Y+>j)1x0e(3!wb9DI&Gon()B$K)QhbO@XbUzFMEQDc`<}3
z_u|LYWOYr60bbI8f;IA4VlN7mR;<=LbDD!1?-qKk7-PnVDH*2kcUy)k@zoZP#*%0A
zw*$8DMbUcL{J7Gc{=xN`U$$G6eA(s!qZ#1vMN$f$DvQ)e3C;7W<MW0<BSzQAA)$~}
zx68TxUj~nZL1RRuEK?;%bVnopTVmAH^tZlf1e9dd<$E?GvNi)^@RDY1bLhxj?zO*H
ze@b+BQ2AzwhR-*NKst8nj^}tM9M(k*x~xD`oS(_8KP-`BjkO1oM73kZh1}K>W#QLe
zD#@C@!gvJ~oN&>S7`7G4eM(fss!7wD4~=;RlEKAB&UD%K(yVSMX0Bz`(j;VbXY1UM
za%dRFU_O^S?H-l2QqlxUn>nonv_U_>fP}8KI>bRXLQ>2}4(~f^9sHKoLQRVl`-G`v
zy{Dk&og<u=)y*DvExl6P{3t){u5o&(UGoYu5Yj;LQRgi{^`kKl4H*p0+P@8zDen6s
zLBg^Rm~7Ir?8EeB;$eOtK9M5z7Qk0lq?mU9RbP`Q8ga}9Y8#CYNfyauX1)EHRc~y&
z<{;qOtJ8IAV*K$2<NYgDWfMj{y+8EyE+lQ`>3Q|fHK>TD&9YcXZUQc~*~tL>QohLg
z=EHtFH2jFZiuYmpxRqQjPP#OKv<2<_=XA;>y^|_opd6SjB9rl`6&^K*NX2}j`fjF5
zp9LkSxe;L&C82f0^<J1HX_2aIgyZ$ONlOV{8YxP`F&=HMH&-{$oP5PqT+iNghL$;h
zZ6IXmMgcXPQs~2YGjYnt73RMK!9IO%dMZ!I`7V8t$Z|V*J~sZ3VOx>7Mi#<e_d&Fw
z8<9EM&2J0f^vwj;h_lVyJxv}w!eov}7~CAkU@`}~!oS!$dW@<14IiPAAL-a1i4*g|
zm?r{wwr-_o4M*=Y3t7eb>HnHZy4F?m8-gv2)k0cJ!$o|G3`w$$86)dPra8VR-de!>
zg?I-2lB*HB0=4c!l`i!PxVv706GrwW>mzE%r-SMNDXCMOhnz%6m~nzIU}2OICnFc^
z!EYABBF0`TMcncxr*)(hXuml8ynGp%9(q^Mn95?$H2_exK61p`!@fxLyqcn?MIYo2
zFtpfWvQ~=IysIC?1N5kwzg-VM-SUu{-L1G?RyhXZM?OAx7?#wF-7(JJbSz!Ff2wb`
z_+c9ST!;GHkq>+G9LB<MM|a#vk8##9Kf6JRyzRrAXC|jY?Q4Lly|}_`tb~KS<H(5b
zFmc3BCzs0VV=vBr=SRV%hm)dTpuDaphJHm_xjFzQK_HqQTP}M|#UKF6v6D$Kt?Trj
z#72I1Znx<e^8=8yOe$q70|)j*;J|JOemFph8g)Q`o~6*P5-4rTr!ggB)4YoPEy@EG
zjSoKGc_LQ-ZI`fK8(n|Y;N&$U8!j%%Aul)aC%1ol`}YKp)<V=01qA31H<US#yqu%J
zKriULQsHZIs@{i}-?ml=0oUs{YA1%M;XC)7eX|~cIASwycghomA0&Ql8laauw$4FU
zaC*=mmw|}<0owxJ1e>Zz{omZhiGs<%Zbjab$6W71x)GaC&Thqbnh6%e#?9RFwdC20
zpbmNo{R<}=im~OFo(bT|N-7o`*wRpf0T~q7!FCtf$?S^>AU8v;6(&il6hB_ix^Oek
zu#d?lw5W0yP|*5dl}jJeR>Z_*6T8`#Fs4rz`pX(55gg^fY|{1F*Y<GGxwTREgyVxZ
zsm5*Q*Z(4zH}(1Memc!y+3eQWTLV;1e@r@6cI6U>m)O$h;1GF*-x#^=a7#dqm#tp$
zGA42}u+XO{S8}ubV@%{-Cmx*OK@_chl@SHktT}REVRG`ueTXfNN11{_QD5u@*N2a>
zu4M}J53HgWN$;)jrWf3s2>`kgGU2bd;TmdmNW8p0tgO!jh~2E&;-&U1oe!L6YhZes
zuKNxrPgXmxqy+RtJm@Fjs3)iS<{eGeK7nQvNH>xQYPoq!rbNS!xsH}JzK7n^Q>ER1
z_Vg<o&uUW9+xH^?wfdSuAEF<`rU*CYU&SG2b4D71bS)x8Gs7H=_=a_;#-E5aH&Z_Q
zcC((k|CVQ7Q%b)xaIBFn_h5Grn8&Jmj3Q`(63wA%KnFdxS&czzs&H^b0kGCQjQQSE
z?%x`kpP&tw&3{=&wpI4X#`7@yMXZbUk{6lvYoM<#Ke4(e&_NI&sQ}(Mk_)KWYlCLJ
z>rRts5fjoP>eUGonbzTmEb@F6-&^6+VJ{gP)ZHk*pR)^!ebYUp<HqbcO>d9|OsLcg
zu_rA}n_TPhZ2&!fOde~oKOkqWa02G*Tkn|j!(QKM#ha6|*%E`ckF&0zxs1!A7Dd=%
z-}oZ6C@fmNw|~%E2H&O)ASuZvz8$MA?SKo%+!j<&Ej;vq8F(2NcFjK4Cs*jtHpU#b
zbVzz>ltgGB3TTn!YIo)aFON@sfb+5mH(3<Bqufi9CYWJ@c_WSsAoEomLA-397g-{H
zLJTf|<cM-ijSi<NR;*BizVR3ru#EvkRanRh4~2IDw2dZX1^?wv+6ptQk1F)luCfff
z;>V-+-~C?3l3qo&VaU^RQznd#hcmhA>QckUXP-1nRS+W5pl5+vL$b|q4u|(J*I11<
znVO<|f-}QYKBp#bzB8va?4{pqG^q(kUQ*BiXDJ!^{(Aqq;Ydcnb04Yf2Lt@00W?N-
z!g$6}!It_job7y;^1#7-U%a%id8pER*LlEt!^DEvv%U&a_i@a$@66ptb=r|{B5~xj
zbfF+$lku#I>8RX)OmqvHWy~C0I-X3%?0T=|9{dJi;*7>QFR?5kV{wduWQ2RAP^V7<
z_NSpudi#}*Y$@iH$p-Dl8R6mpV&BaZR}Spk;nqGPz%i87E+WbzZ<$FdJM=nAyweN6
zxQdPw>fGu#sD$jAUZ-ec-gT*2mOz3w@yqr+za5?DONb;hEK?tzrL0R>iyD#Rs&>o}
z_ML<PCbjrP^kAF~-Ny=sM@+ghhd^28ri>YY!+tS?h59e??;J+o-Mt|@<H4fMJHqPT
z?K|!34W<G*E21sYy1HqlE@uVo(a${cPf0;yKBa6ba`?V$%dC@59{w2<nBM%hki(3Z
zt@`R$_UgmH@wQ0mbV!xmC?oV!AyQX!#*m_3i4^-dq$2NkGwq|;u^wAYk+#0Wb7zjk
zwBNS~f}aw3z3b%_Uvv!t9BE(hQ5R5B4i8_utzG!KWWT+f08|tZ{OKR0<d6FwPv1X1
zC+ZWDvz6b4E}sB)n#z?&VWs|KkRmeKr}KB`ud$k%r@1eIcGkG_vRVE<FdiF1cnHcs
z7Kz)>DJp4*093!_abH1`Y&qIB$7Qmp2+4Z71q-{@CDyqK3mbp+*>bm9LA=)il{)E5
z6@pOk+g#owxstzdINAlD>njQ>114^N8V@{D@s1E(y+)2m0zARsEs<gqwtXEt4_Y2n
zNriJO$A-rMz06qu=xo4m?!>gE{}3RlKfV?qv5dmMdh0k3ydP#t7?Vl`_hdtP(>vy7
zVgLjXkSn9xrXn9rIkzZvfcp8Y9o=V$e^7IJvm^W0-vK0G>Z~1a4~ei4bzA<sovk%j
zYQkqgJ*;xVK5W~USj{?#DcVkU>b(QMfd<*Y{dXy|Hb7%)BcOw26bnd`JMHP{?^*A+
zl2$T({JaC@jOVYTAPVnpQ7G~lF%Aqkc{pZ^ZX9wu6g^Cs^qsvgdZfJa=MbZO6kw19
ztSP9;g5#klg(<WpsHwRIz$REf`V%aa?0Wh6Vhfj1{mm2`*?riQXW)zHNFfaLEr;29
zGXerizA-@UKiV^d+w&6!^qB?Vew`E8rBW;B7hBn6aT2q|@=3t+Z>|b^{#~OP=JaYw
zOMRgbbKSDV3U}4^{;aVU{!a6PWOai7sl{h@P;^@rg_0OxFV&h<fazZ)jgq|gT&cCF
z8blxmYJM;kIlwNo2Q<?j{^mdd9!bl4s=fo@K65X;Bz#Eo(Pr#&3pe7czZ=uX{%IdE
zFDF7Ao}t_$gYhBvC6KX);vd1XPeiV>q%N3{5ahUO@@u=EhpBq1iKv5lUrfVD@7f-6
zG$lCYE;Db73){$}pB8sqXx$?$UO4yC7Fk%EnmRm7h#h}kPNm*s82;knz@1`DG-fK}
zLPJYMAyEHn7nRa^+{MT3U{9d#dov1K%rUGTCRgoVC3-&G1-O_0g(LYOwo=cj8G&r*
z0(3;xJ3&GRyT+KtFIJtT)zZid_Zz|j#~UA|g{s&>ET}K%jz&%hlZNz*+YGe(<PbAo
ztocP9l-)_kw7PI5_^+ErqWOC2s<+5~Kz^e^tr4^x<W$*V?^C0{iYFOW{q4+Q`P5wP
zM`LO++|3tRs6Od;dd2N!U3iFiQB+Th9dXuvBVlzxWrrVGRDi4ddm4le_pYE$``1=Q
z2naB*035GGkNP+!QPwn`GCKm8XsDs6qN%;2h~z5Y<oe|8hoep?W_IEVF0Utw^i4&u
zYv+{`mAe|olu08~(NPjddwSXrZ};^ccs^YX-2AP{aW?)c+6ze9rx7A(ZeL!zxoG`O
zz6_f%?+n%R3}Z_fRB6(g9x#^ENqX5U#~bt!<jv`&3EkSt?z3gyW8L~r%&ShtZe78q
ztc2^c{VATLebjxk2({LT&4`66^jf|<-kM>a6`ky`O-Rf<?W5tv`y|2^0`~rKts>;A
zP&_~eLvh1w!L?(k(lwa!)(4>3Fw+ft)TH5<^{#TH@L2*bA&{&B8V8?D7OQ1S9YACw
zn}xWx!ZPwOKC4mbi>Jz*DXl)v&%MX}?(dw8Q+j@!UgiU-F<S1|)4LRc;&THp$OSZ0
zxv{LT+<Zt=VX!Z_Lf2N__tRVGYKPgk^uzj4rUR_05eNJW4pXx>Lb5^~BA?qme$%#j
z)lq+K7jmYL;gA(z`Xd21tb(}Pdy+bNpiiEf-mGvj$Fcy{jY;hbe>`_g2ib+9ic~;h
zuQzNQOXr)MifyF0+&r=YJ6j#X=z?8-#`97EHD>swlbsmEFo?H8P(w(D>EoXaauz5T
z=Yp8|fhlDN^*fKXxzzJbZOdU|^}{_)zY$>CSJX6}dt@S99m$y5$%O?@SeTPKTy_C;
zr!sPF#P=?EgZ+#TJ(nX%i7@jv1Rp;@l9e_&elilaHL=YC(0~$kzsCfAB1aD{B5>9}
zYYOERD*+8rR3rYv(QLDbeJLZA_H~EXreEik7%>aK<N~Wb+S#V#O<#ZrnC`?ljK*AU
z_B`nWOYcMtiCVu0UD@Czw@rWEptMFoWZ7jobwo0C4ABi!>i2zrwoRU0z?nZOGf4tW
zXu`0fZ@mw$eG4G(fQ9U0$kq#nC6q(a?c^_>*CJ53`O_A)NJSXJbxnNIWEAM+4fSZA
zxe=~%`$2GiH87r>Q4+g`{PtnZxffKE5CTQ6=9@TZb)W5Fj@}c#qvv>0l<8AtI48#I
z8<GVBMG&G>C)6ZO=QnIL`DpUsI%pN8e~vIHQHvdqm(#q$)jQ4FDq`;6mm#=?!wADf
zPE}^giQsFWSb%m+_g3AuW@<o7Yq9;mWa)NLG3m4gk$IBzhwfhxw(b6(eAPbm$BsUK
zof}GimSv0(rh{<-<b5+>RUEfznd1?gum3Q?MG?X9_{$Y?gqc_LQUl)$#RpWmXcweR
z(mW)d2vm`ef0Vgi7<ac=#(l3Ot6BO<B$}C6JoyT6OFjCzv&c;WkvP`oU9v$}k5jFy
z5RcpY)+8Fd5>)=G>f$xaLd2sf{yJJwU;T9HBN?#95290^X9!#HcT0M2OZ4@0@{ik9
zOYw*vNPL*u=tqE9`{IqSr2;_b-?~>ap&<j{O*IO*Zn8GLH`7Z4DekOYUKV8Eb(e4R
zoSWm@d~w}yJ4G1Ax2W&4AF4sH?pBLeM>$MM|7v(x!H^t#Khk}t9S5?C&|Rsz6w5d=
z;267ildOVhWFW>3^)jQU_eia5=W%Nc_dC9Vse*A*jNDgRpjr5=XFuTH%TL;p<J_XE
zP=mfTjAS=A`dHGph0eLrE713+Njv;wdjA9kVZoqN6n~sA*N4-5u~pT>dg<b~UqG<S
zUH|T477b1L<nhXDxXP{#n?mMx2QWd3b{*LK0VgByi<>e03#T1SZ~g7taK~RbyoZg~
za&#hGSD~#)i3SiewGb<E*W;OJ{6Sk0u-69a-n0CD-SA1XpTz~pdYLtAdD!rVNiy8H
zmpJ9a_w`uxiwyq{ZEqPCb=$RlD_ui4bP6ab-64pi<iHFa5>kV78-&2npwitiLrJ$v
zqX;N4ARr(N5+W)?C~%_ZdyMCGUw3TVbHC5~;r-&~M$9nB|ERUrzJ7ZQ$?i?{+ei7o
z&62|(&9KBs=CAuh%XWFs;JS0a*m*n21YIu|6pp9tv6EG$td0Km$kYBP)FhGgwKc@1
z|L+T$a9P^Y%z3<gkz>O8nNjbqnl^zjDs)G}tcY>H$rNuqtkN?N8c7>@1~30Cn^0iX
zo&wG-a_q}Ow497s-G}-d5&8ToyE*OduHJNPz<t20NzMChaKE5d@VC0k!*a$l`P=ZE
zB>p5^pM>ABgF34N)Q21nIZ?4C&6`RTEX*LgS3^VPG@kfwHX1#UT`kj^<*t%WGM`$*
z$oc`*62^Aw)_Kv;DsLwVCrF-tFAcN+-ThJEgr;a7d<To<NSI2P9N5aOkfZq27S_$K
z%p|)V2rMQ<WCaNtD>z-1)syg4OWYSm)dsnsmCj2mhNB-;Z#HzO<Pm!Eo&l?lhn8_^
zp*I@XxhzvhR^I?L1Y-1EH#zMqrB3#AHUW0!vMkJV^WDt=DIVXX-FF;M<oJLD-bcKe
zIplpn<gLHnZQ+0#W0ozK?bNdGyd3%A%S%zHOh>NzXppL_>Ff5Z(K$teRP~BU&NNuH
zERcf05K6s|OhW{MZu;m8mtU9)cIN!jtHd;iP5~|hVh48=ynh2O+dkBk?;e$*u@ucO
zIa+s)4|BFo8?Zxa0w24MmWNsK?+YiuC>wEKasQ7br&082%tOXZUH{BSE>f~ui4&1b
zl(@H-K+M;;DeHkp1$hu(Dvm$!{8@H-ff0Tzr1{yDE4f{&BpH3;;<;nu)KTQ=Bj?`V
zK>XRps`?<=xJg;^UHqG23^n-^!o3c&ZxSIe3{q5Wwtz+P$|cSN>?z;;mfVxFM>+2b
z4Js&4n{F$E&OAIIWqFp!B-XDdRDOysOM5e^aPEIzVwrbd>r;?M<!>A{l+?ny>w%Z#
z(N@&eT0^8PthMo3{U+zqYKDCrP7aRlYpD8Y#)eGuaD|onmo*H(F$3MH^<O-w^G=OZ
z!WQHzT{f*`Fckiolc5A0226{kbHB~#ZA&A-Nf~{({TKYX_LNRWZa&W~q272BkA&-R
zyu6SLv2v=90O$*^lJ3t>&-%8X^zL8GU+aUfDi%Ndmb|@gh>S*mes<E(n>4LLd$X-c
z3s+-CF&+#Er&Q@v8i33sLUE=YD#odCGa+Ud_I6gQJ8x4{X`-EUc|@*@5(WsjS<-{!
zHUY+L*o2R_RiITCg^=qvH2E!cvxX6bXdYBwgs85@An?JE*Ogd7h$b!Ht@zKTWJo%E
zPDUudDqqD%P@Witmr6QpTwxbyf5Lco_+^9TMgKP5<hy7czMM|w3=WBQR<|F!n{lKh
zQ%BPDyKo#gGZk;^MOci#HtI*7V2a_a6tmFAWe?Qc?sN5H-Ba4LY}X5A+cM~cbM`9D
zqQSLznFi&r;<V_S6T)*Pq?I8h-ky|QYfO*r)U%SEDt>2UCHwqeysMrM>rSnC4N&;g
z0EMqb{gGflBC9OC81MK6m_K~$Ci}GG_Ja+!#SQRa)x(?~flX-Org2L~)bo*A{&yeR
zvR`l^vHsH>t>8(@X`Z$X<)_TU3Zzp%g-aL>y*zqfP;0NoJy7_X{!k0RDO{{Mw?&*f
z=M;ByA3{f&tZ%$BG26n2L+ZDSFFFHk0(I1TRrgKGezVa)dO0cHwY#4IXdu@1P_|l~
zy_`mK{nVIEpx6x#S%^Ie%X{as%cvMpd&NXQc1_47qu`67Mv)$@3C})FSMDaTl<)H)
z(WhRUrR8_Ajn1Y-<}%EsqaavUp!e$BEykg&OQXYNOclMmn1Ak(W@JpudAr4{mJAw-
ziKUX#<<u`Q;jk&4_Xz=@^{X1{ABLfKSGEZ>W<#*0E0YP-of+r)jNjT&ZqA#Y;{`F7
zX$1gmCNF9NGY}6Zo}zpdCst6X;f5nl^$EZCynLmu|5MZyw6Zr=>U(XF%n1D#&TDcc
z#^z-M$HYxCH8W+z9yauT8k6lcR;09wRNO}c!%GNezrso9FjY?>|Lcr;5tzl+zsh2+
z94!xUzfKz|MZX=>Lu>9*5PB<2E2cifHvaI!()!XAl6o}fTtQDaY?C>^tB^V8lsWR;
z=~fDaEj(aVN>!H3&k?wGX|j!_+w7l3-i!LiK>nOha>FGDEbm=ne>rwW-AxfHNWUcr
zp@<W-96bX4x$oTI5Nn^4O|6N7FWpZX<?Y**H9Dsnm=sb^XRxn`8BJ^I&CMXRS?@;o
zWAMT4_t^Q=XW^u|Mso!e{_QLWUQ7PmutFoTGm>LT+{U^b2cv&e%}rHrrqTqIQ|rZX
zXVe9^HB&Yiz)auTj(eS3fHcXSipj!sFB-IZ>ou+`(djovT$JmxLv)$VKj<}{XD&!h
zd^h=3`hEV{^`wDG8^l}s80KuoPLa#$wZYXjsqL)GL<xIF^dFMrw_%^&nzOpABY9P(
z0n#2ihy~!=O+Kxy;E>MT8kI~q`STn8-hx+T&_mIOO=ECGl2aj8Bg^8~jikpQ_lu62
zYOLC35l|qT=K2U@VqG>a-9(m%W;P>JmbpGv5+nttkAJ~Gf|RfS3&CUye(DmJ9&Dh|
z=rG|34a14h)R&DZ_qe!z%-VOjtKdbe$LB8$7-}wI{^g>lT6LO<ufC5*@L?w)N!*Sd
zkIH%ezR)RT55FBNt9zp$3)3(hjftJO7)*mwv_a^V9LRM%n?>nu$&;QvsmdVAO!R7i
ziiR-niSw5^u>7Rfcc95k8*iCY2=n9AZ<(=3pYX*b4tTy;c$qFe?}xfRF0Mdg^v&PU
zaSa;obdpAJ-+}RrvK5KDGzxWWOIG*Y!vrKXa=L2?;P7a02}cz|QG6)Q%`GnaeXXv^
z(b-%6O`r#Ijb%6tU*c^!;{ElxZOa#kAIKOyC9w-OEjq#`1;WmdZOlY<W8jjxVra)9
zFdx2lO_Rm;89DJLs3b}`I|l_zcr5jSsN(WBF(E}e?^;?~2WZ8#%}+sIjq(RKU8Ll0
z3_b$ae_^*k#^>9cP>Z=~94O8S!VSL;ciJp~MAp62$b=6gU#?08(}>u?7`xmxRO=hq
zKI#)y8rB<5EnNnEhz*(<*I}v?<zY$&42IYG)QovIgdv)?Q6?b*IouWq)E-0v++%jz
zaH`uH)*H%#(e~O_CIf#KGfbENM%h$9C@jbTQzmvvpR$ds&`PY@xQhRUQ-UU-Liw30
zX<}E;5(kaL;gt(r$d5F5ig>GaCp6E%fHF5THqgIa5ku7os4-3ZT@9dr`$g%t2}0VC
zjrTu{05v~O>`t>KSl}tr#6&oqGBRhefw_i?OrI;h<u2P5@3EKC)!xhPqJz+dAUVRu
z-STeU9b@5m^h>YN|Lm>>Ys~MQ&wx0*@;SYH4#14Y@2KitXy763>N%EH<HrYIN$m)W
zGn)~hBdwwyURI2Ax^_J$mZjTMd7&ifB^PeCMe<O_Byq~EE$lh*K*w}-NIBasFEBTw
zbLt+{*TK8;N$!}UfG2@*h(MWAb&3``CUdH+hFCL0*sGcQ_BtdX^cb^m-6Eee95VE9
zs;M(>UGJ;>kbO+Ds-Str$Ty;=K+@M13^#HFj0Rnrn-Flk!%HUI&A;~xbmn3p_fZZ;
zG0KneYGMezFb-wJEQf?~tS@uYv+o9|TQ$m%3xZmkm(a@%XnelYc!K+G)g<n)!b%}i
zP(63%)dPu8qrk;O2j$a%w)|@rc8xM{(V2=7hTF+iHg;1)bt~X>jVkMwEdmn&K_1Mg
z%|>u)%B>%mJ@700`@(!VFWCHyL6j+?B8m)xqnGOspU?)>pYaI==bmeQ{^tnC?eZNF
zSj>|5j4O@juHJ95Xu4(e9Fwq|0DFsNu_)mOE>jT%EcpB(6R%DVh4*|yh3gOQcCKV^
zLsbZ>!akpn4>tB8t4~c^1L(|kj~A~>@|R@0Nr(a`C;u@fEay}u4XYn`RZQFNagZnE
zo~)G=kP?``Q`X7)@;5^MQ@M(qnnjU8$;2%HH!*Y*DB{SKPlC7v*(jQ4<a5f{W}k_@
zIyQ45)-f;qn6)Y}-(Gr5H6YTW(y{dYS9r~#%AnBn+8c&Qmdsb0+tN3vQH0eFr}qm@
zFx%n)o>c9`w}i{cosjwdn{Gfk&d)TH7mye3PMF?uiPe*>jv9{+N66&+<?@|>@TwF!
zJ!9sPoMA`P?Cv^qR+gn~Ys{$uzqSe$;25~;+?$qCC(SM3`SugH_GJI5pbE7x1h;X8
zj2-PC`3dWH8doNF;!rbKF>3CXN=kF9qhh77mYC4}Di|keJvZ74u0)GbRrvI`j-Q|T
zo!-WAJLtcm>J!9E8)C4g)KbdtII!4%_|>^JWV@WX(VJni0QA5}E6XtTQ4lmFqIy@N
z^1Z@SYM~Q{rjx_G24~el7>4e*Q_#eETE2uB`m#cZ+d~;|NwB5cf8T`OOmyB<B_-AL
zfe@7`=FQkII^+7p3o=J`6#dIDPX^uI=;iqpPOhFhR6A9{duUVm+tj#(6?N}@YdUSa
z1IPq);n5SZnRwAts`-U)q#iwk;zH7L@iDbvjpn_`?wq@nH%Gw_ief(AD;}|{#KXam
zNEJ9w^waxFkN&=JH5VdT1Y~-H2#sSV((au5r0;G8%a|6uL-O^KmF7=5CwFUKY-k_t
zk0CubR{r|}?FTXTUNIqst><Iva<n`W3FRAp?a+}Cxxz9v-tI@5jn#xlOC=5@#4aNT
z?H>EV(j!5ouFffY{aA)1Mpd`GnRo?;%{HB3mFu2)-7F8v0k~u3Wd0RMwvYLD&By+R
zJ~^IK|LnmSov5`YR9qVtcMYP$Ia`v59dehcQ~BI%lALmU7*97e@r9@`_dF&e`jR5g
z6%hYK8m`nOe9Q;NM1O2xG`C!>%|5Lrl*1@Dl-+VyueM%Ck~^BRf+H23c=WoRFmpPU
zH96WgF6R#fYPFxaAh})?+i&bvCN-UvPTx;?45-1PB3gT8KdV)GAetGBPMMz*Wb)%@
z5E`L#5?B6%WPheQs{f!o`0`Par2>)XE{i5C#dd4ek7>b^pD22?-p$e75CrFzVO#sN
zl)xnuO$-%DSER~UC6f56JIv{8!wH%pfMDtG3rr^-r;v-y)Q9E^bX4TYU(0VEI(w1!
z8`y<A+lWXD$TMBy`DN}EU=%|3B6+NlnmG{I!R4LU7|AeFxM0wqWQ-Fc%##b@R*I&~
z;(}U8;!`d;hHgNoe)dV$RJh>``d%lFar-L8ox*SKTsrA8Q5CwGe7{{ZD>(8TzkG62
z@a-&{djM~FLw;L<?OgD3!WID!r73v7PZtiD37CX|2lY2*@PnUjlBcs@(0cb{0||mI
z>@XW>GiCr`SO2M*&SLX(<OANeFK41591+i-T&D^G*Qy@0zZ82euoSH3@B_BeiCHAb
zvfgPe-v*0|sH)V>ySq6YQTb<t+!2w@3WfJ<#6|Kk{7YJ*T$8Stipn<o$j6Y;@h9a$
zJ}sh(CVD{_skRSr`-1|ARgCgO7A=?$MK?o2HKVFsS&4o+WxTQu;`;fNKppP}61YW*
z7@TNw|JHtY;;>q5eax9RlU+y^D~Y#E`(6ujaCU`z90n`NQ)RD<F<_Z$+D||WqW|Oo
zU+wsZXP2e)8(lxiGXtfyEX!?v1FA3#&9;R6-rh4+h!i=tERwxt>(3f?AW?mT@fg62
zu>hTr6*{m5965kCLRynFad{7JeCxFOQ}meKHol8yUH|~`jeJ=c$rxqG!rC{7Jc~ur
zIkn3GXRowqwrogDt5ATsPy#ABU{pQ95IpRFz14^H#WHr0xCZ=TSU3&g$jbSp?xJ_9
z9}!>KPuBvyDN!)p+3Q+l$H5F-`KV>|9W~W^r!1P+_l;fZ1MezF%`a_RL7mdLk^K9N
zWC5|j__%CnOPSzHiLeUe0R16zo@-V8?{IN6AleKTlu~BjqY@i7o86@8U~{bOeox}y
z3&>PbZC_TWUO(%{%qLP4SIPkm7E(nN8rV_X^EBM>-GqK+CiH06MJ09<k@klxR-eJ{
z%u^{mqE6XGt)D4BUTLVC=-yxc-b&}igYpVG7T~e8;j}Jirv~>hQ!#9*XwAANyslV3
zeo>}fBJ%RnVlv=rN7((eLm+0g->Zk|SZwve!JYQi=eCFnvE7>b=J>h0X<vqCM30#S
z6U_Rt5A0&RF10nwfGCO*od&EUK*4F3Gw+L*#oD1JSG2JYUpDP+x+gSiqq}@60I8$w
z1k~Qv@eF!O<<b~cvBSGQ0=;Ku=d;pvq#qF&aPsPZJG;O*{92Qsz`>%Hw+)-^MaXf5
zZxKWJz(?-uq=vfQdk;uLWPSrmamh523{GIm933zaVnx%v{%YmQu8wieW!f5jp6K5r
zw^mt51%JZHoU;|rt2|ovV8w%vn@lMS$rE-fWXK~=O?XUUQ+%E=$~<3AP1Fq@q0}nx
z3v^x-)8K5N1UD50s0eRo6rM*ApR4NK=PXC2)MfQiftE+A>^tz{y-)&;AwkuGjTiB%
zkn^fmb4wy0a}IqJ1~Q17#-P6I^Gr+5{J3{2t@EMYTZ1Gx;3VF)q=XOOzf_R?K(4Hq
zb{}jA07i9v0c3}Ti`jEiUu%X0-`MnLf3yMowvo-blr_VnlNKpbssK9TABorw$gp9T
zuGhe|8GV(uQnf>*#@km-dP}nuKy4H$y?E$yMSYps^EExQO9A~KJ)2O;Ig2vTHlbn#
zbV+<<q86KZh=;2y9cx_0)S5^RM_k>mKY{uMV<iAeS?I1fH$`MTd$k*B%og!LrTpY=
z6Xi~`)fG>V;Tl_EVMV<eA=EvrrwJ1;r@M{Ji!70}vpZle=JJ1Lj~BQ%4OL?2yCVRs
z4h=mXa(!~v+LC$3us|?P0XC~kt+Zr00&}Q<Lqk@|_kQD#36>Uf?vK3U8I(crJkyH{
z%$sFc=mv)|qvAnJDXaYBWg_v>GOi4}=Qm^Tp)1PcGsj-Ezug$B9i9Wh1O>Nv$0LNi
zKk+NgWI&0kxSg7~{|kBNix4>jMqHI)7J4=8frdY+-*trK-JRlS;9D-MN98;^HYjHl
zsuBt8LCi5PjgnXnK=K0R*-eQS8`*#ZllUi`qql0Zm-t48chZHxVC3~VSvP&S|NM~`
zha+=%ixNqu=BOE{QSG>i<B?_HwrrwmjVo*DHv>%QXnSGDNe_Rg?CLPK868q`XCas8
zbQ#hM@#|ckfs+H!L&fUWS1p3&4^+JyU*#t4uOB4lJM0m;0MA!!H}I!+7BrLb3p!>9
z+@DX_`&5=DU0kEl`Cw{*Oi~YGXvl@DAjc)!T?vk&9=`ymaKgRkwkj5>d{F(a&3IOw
zaY(kC>Z-;K9KGZ7QN4?P<yO|FX-6i$ApRP;SY(e#^Md+$w{`BYI~eP{OD?rp1sV^~
z+xgsqC6*<UzW$N!L32dqjpcmCqo65?j(E_1my(edU?!@)vI`VfpHM;3N%xiPtsA!d
z>KHzn0X+Jne91r09I`x_MdHltEfOTNOZr0N;Q1;8+Dj=(Vv|X5eEjYBlAW}X(i}hW
zR!LTVqAA6(sjj9CvjaQfiMLr&Z(as@DsW}<mj)+2Rr*(hG|w23MotM``sjgIDK_Pu
z<X<9K7voNAf396Kbi1mb0K*5r(B40J;;M@iGgK9?rQ;TP(6Os2**5EukHb=QDWf7q
z9<Q&-8AbAEDx3*+&XH4()ETM_2~Vm?5C`~8YK52?o@ppQLg3qPy4QlHP<>v7l<EhS
zsb!w>3xa=NVDIr=RsSHNxLuMvsp(#OfB%vZN+SH}<6d)c6xUwH8>4)ko`z2WVikjI
zN~TUA<*tKt<u;Pd+Q5WcO?&DzHKsvlfJ^_RdMn~V#)qe<y)VO$!ouR5H~dVw{i{wF
z^0L~4vXYkYD%Gy8dZ}A?kLjIopXcuH0}A-=4I&@;3o#MCx!bjI(BDRifF0HI%Q{p{
z58&>;w4r8I&F_BjE+gN^MKj0fY8s#ro=&Dkk5yR(4K)gPgEUoyP!W~it4hsXBtbse
z#TCTZcT^k7y#n60TT{lAHb7pqa~2d`5^8@x6ClSaZ6y2m1rCIp^Th_zTq4jaM>3sQ
z6~h8C$hhtiyT>KsOtV#12)ajroldNxRajbS8l>4XkPVyi?NKX=mrAeywJc8Ldbi1>
z>MxswA`j1j*F((nNfTUu)^eLrSl%qOC4MzGZRD8KpWweao$B_Il%a6a1bDZaet7o<
zl=QpY8roKoEi4%0#5a!B{HG*+nL7Jwyc%U+`>T6JN(`Q`E>wceY;)|<l~p8YXdLpr
zh*R#WAHgh!WoqiAJ(=DtN`L_of~DgHtWM}mlrHa8H5YI*mg#Ft$OX-rhM#bZsqsXW
zVu~buqudf%UE$jg<u8Y)%;!)z-|GU$uyx|V*Poyx%D-xCS|gP5)!A<0G6WJ@9{AAn
z+E(YQ9Z16Me1jrC?Q=W0^=fr8J6Nl2Ej&F<ErKo6fd<CpRzKF@Tv;Bz>q_iP>PJYa
zKh<b`v?H!f(NA$&WFmz3dKdfS)?6%TbVB<|+1OQ>x%8~N$oZ4g3yA1pRNn1IZH)do
zlE26I+bEmQ`V2kK83;Xp_d9djDupw}IPj~UVp1Aw>}+&-n9#G4IcJqvtUNyRbFAWc
zM9`<Jrem_xS?aK^2B;HD5?@g5dOkUWMyM1F*tvPUG%PR^bfth_cxaO&aPQsW8$q-8
z&d?9hrE!#tUO27cS3!;2+(cgg?EZ*APz&pFG!i#NFYg^*S;su2d##{6(l=QSWJjXv
zJM90ME(pgLPKqm%2q~3iwHGcU_Dy_e$_hDI4xHvGG~Kvr8r)yTlYpG1=M3(!>QmWB
z|4x2tguEavw04x^12Te+-F%3g+6cxF!U#3g>ndWXPo-JrgpbV`7}5V#)0=me7^q0a
zr?LwJw|dsa({v8@-(_K}^GDoaUCSiX>M}`Q+Wohb0m8`-BrLmJ(lUREFtWE&sIXHG
z*GW8=+t`9)dsRF_EUJG1T&<YK;Ks8D#;VHopYJk+6LehT`C`p6o^NzGg0#hFptLgW
zM%iihR-ux{?!wQ?H#S^RK$I;SQjC=ABH4CE=A4lVinU%{Z!RCO21@u&1~cfs9~O|X
zvMgFN1z+awasZQ8X(QB!g8D?dOl(F2mCiSE82Lp{G`mD_f~=j~*AxlYUm^rBpnW7!
z49^{talhfqtyY;DwLhp=gaw-HrbVpwHqD1*hn@;v5z&gcl`=dtAE@jQJ~ceE@zi4&
z>*X)H(G-SyHw?SUL`9{Ubiog19~0-Uo||D>!NTX~E!je{YX@#wI?glnr7D@_t4@YG
z0X+|or@2Pg=k#Bsvt-hdeXwA54#tI6az0_hI`yYZ|9*;fA23|<NRoz41($-NB|Qj)
z&8HMD$~yQ4SLb^78)=6KAeczIWX;a^s(?i@@E!$GaN*q_b1!(i(Oq9Tj4YkM5b(;L
zKxIG(-oTP|7ExhdDp*A)3<;9FJzzWFp&xAa*D9EVFO^!O{r1@h!}DYVP05AJsz@g4
zVXaW?4WBy%r^k7mtCmM@&+Xn`V8EGG`{qPIbMw+1pe64fDay5cOZJnlB+;K4VTMf|
zN&36Tn~mKw)1`-n@MX|Zx8vv+U27Tu__**~-zyAXsp-1C2u?|=+e<|P3x8i2f6}xY
z)UBT*+4w$L@fuegRAe$b#AEFm23nt~mVwEK48|ljlVO}(Eq}ren~eb}OzX?_^YY+w
z^-E=)VwxKzxD_wH<f3)CAp3w3;0O|uT3sROp8SfrASp=ZU@oIxl`13tW|hmRSCmzj
z%)KL>3c-O&Y>35NF^I@aY6)h{1LcIUc-tWW{b{*Yfmc~T!MB$`j>HiuTSKY_A;dby
zm6rZbi7ExwkxAe6ff@%B;NAed029jj17Isf(%U{goYz!!O)Cb<SPt3aq`D|A$(aeA
zU5v8{hY;3YnElWrl+m}+IR5_kUU(=BJV{I46wM0LMXUVql$~t(%fcSRGXa{)Uqh=H
zbg?f-BiNNYZt%RGi&cXdC#OEj)yx^$<m-&alPXiaB6;sD(qj=1VNqZ@tt*$;-NFdb
zATU%MVRQ`hgNkiQe6)1ZWig4ui9;!$fL^m5!dZWg&RZx0s81cf$ljs&I8cMpChfa8
zqx=eNtaf^ZQ#N+kOqFt#%exl_6ZX$k;A(JXW2BYY`?YGhX9+$?AX99cxtzRmZ&u|R
zrt<5?S0x0v>YF)_)zg;!aaKTQe)@s8Y+t#FFOY<93|3AnW|A=@Sml>o2kJ~113T&p
z5}wlb&&52>a;KG02JHb?Azek9Rx34ZB(J=?D{OvHe`l)nrV4GvTN>^qx7HCt^LydU
zW1QE5Jrxbz>Sx@wwkGmKg`7;7F2Bq>ruJvD*@G4&7_nv|4Pr>1gi2M*oGDB-cjc$D
zW^QEZ_Rhp>hBEH>E+G@=OBI1F7WCn@5m1)!J1s(dx)Qx5Q?0ZkCvJFLEgldo;X^95
zki`2kYiZ|+lr)zpxMrh^#f9tp5vW!7i)hqC;T=m;^KR=cR!Qiyijg<GNT;dnVJ<4C
zVGB30eKhDosAUyLUEkFTxvJ?ylpr>Os~{r^>e|YeZd}(qY*)B4hLe*K#)kvH?QYQQ
zmH2!Lyf&O&@cdMdkZ4m{D4Y=W?AZ1LSZZa+(zyj>#Dqkc>WZCl!u((eZ5DY<OooGE
ztnI*~ThHOv$H4RZXGgWX8D;8ljmm{K|K<zgJiWuAl&@t}5LUTiIxQf&F=tp5<_qgs
zqP*d9Yif?h(KG(os3)hBK`(@&lf8syzt`p!@u~9D4L{=u;fB*^vY)w@)hFSPv+U)+
z(mgcz5Di<&3QwkbvfphqYM{5$j{q{S(O`pSS*2GrFv_$k^Ku1pA@|Q1hQenJWZY2y
z+R;G9?SNE}At_k*dEw%G^+o$O-B*Xp8dHhAgKx(l*Fg$heV+hN&Db5E=hfX4X0#qh
z)mGI8n|$>;+omhCa5AD`0eH~_NFY?I6lQF@j*Af7DS*UVIYN|tR{_P#*)PX6eY0p5
z!_M;yG5zUo?H^OkYSHG1s@KJBL!mOBg1JTpnd6B<J{!VZF0Yo<7|_$Wzvxvtysh|^
zb_Jsu`|jk;*Nu`-sECRdk|sT{NA75g`-t%9PlNRG3?Yh5^Y5apQC-~t($x#O%SMtd
zdFZ`ZwEw`xw5kDF927-L#wj3owM5ng;zXA`pF?JA#x0Hy*Pu(A)8)2>`^j6h;632f
zF<DQ2^|!Cir|Sc4(ZvSh`Ka(mL2nbQ`<n$~GL?3nRq}?>VBgjX5zr@&!2I5y$6vj>
zI4uwR(Pt|f5;51Sj$A2e_j$Y2>HgKW^+&_vUlx16>i+!=*}hvV%>VTZ|KleyDS=mI
z9`!EX{flqWuCiKDH0zCC^5Yz)(3ajsxib}kP_d7{|Br8jPUTh<E4gE18==R^wED&!
zyvpUZ4?6lz89XEZ<9+_~FCu&+@}wO1`r=WImS6k)a^nxn`x2<TGd5<q-gWMa_In-P
zJNW~2m}%U9ex&bzUtqKsJ+M{#^Cn^?uC04*M|Tw#8XE#;)Fo{cnF6})8ZAY$#=pD%
z`JXWNRYO0j&45X}m>@uG{_FC4F@eN=Tea6ix{HJ#L|<8yCD!VHZNEo&ccJKpC1|$~
z5Ip?X5yT$YhN3nJ13~yHv(RydK-)I+Rqz)7{u-oh#rcjD?f0tx_0#_M2ZOcRc}SZi
z7D(aOlqmW<>px!a?q8y|>e?<>cL;ybKVQEyx?{Y!{GWsHzdXkOKD>Y4u#9zxe^ZUA
z_0K2#*9*?*k_L2h&|8XTZU(6FxI&g#(#-!gfxw4{U(5WD5f=9N>)N!mCE?dzA6_cT
z5wKRWA^c(d>px%%yd@Ny|8=1L-{#=|_27j5eIZFaYn!xnuj66%+m<V<QAAV8gjoe9
z89Q%*TGqcOd(08F4gL{$=4M%6Bw@;Ge;$e_vDZ+*zZOH}NzE|dd$vE5OZ52@>E5e(
zqJ+8C_(M}WgCwKn|2V2u3{QRWH>5Ir|1}p73QA9>Rci?k-K$W%<<nMY0^#{&thcvz
z>TiO^ivNA4yMHx8*|y&O@AJm;zA#VrupLMH(|_ic<$W=MmOBbr|8oZZYhV>w-M*QJ
zwk-azRl|bSK^U6FAI8((Ah!MAmj3^zVfUZzTl?25|5;>E3D>KwdqwUo-S!$ppX;*5
zHv_t5+ibp5`40P}F^m1zUFJl)W%exWUo&j&E|@G&d{X}mSYZC^*M0vvH5GU819$)8
zmvVYd>F}@jGJ{+>f=e!w<Nvj?FK<)&b<3SsX<a0mZt;WDw4VIW4eg&#WhS<=7_j)S
zl>+tz7H(!zmym{T!UHyPOPkIbzfJRBcESJaq4@W{dC4|7hwn;bX`)pE4r-tD=Y_#z
zD!HT8O4w$=XxOE)fMukmMEUCTe;bbf?UB$WEYfDuK^l5SBv7B%ul!VcA?y@z9d0*p
zU0{6k-;?{l&P~kJyDk$~I=U8_K1yERhn;*|E%(I!|5<(i{_OwXN9%w4jka#BcmHIp
z<~4WJl`#SGi1w3(B*rI6lLXF)WICGx{5(#4YA&}0_<eA+dq+t;tf`Vw5L9m=-jdIc
z;04U2+QY1Hj+<g~3+GgU{_H#dSVP3jKiz|QUvYA^@;x%;_+kdsz=#Y#?d`3Oe~QD;
zszaQ9KS&=zslyzk-fM##BLC~|w62B1F>l%NHkl%EHXui3E%1oX%3|H4seSp}%I_CK
zFW1^oK2VWPc>_@hV>O${AqR@)<C3LnZhg2N$LKCcvndi3_Z9S_+iC6iotCUKITu!z
z(QKR1;j!H^^SRw&m;~v3RAAP%fmJSRfi;5vYw$8?ts@AZfM1M@N-37X^cP$i;T94e
z;MX{hOKvLL5OGcRYCpGeEA6s_eKy_R^o>QtzBOlB)Gs;UdS_-N##X~wYxuQbXU1n>
zJx&4`jWIk8JHAb`?9;ei5S1?;{H<-yA9t5B<vWa9qiU0Kz!2XKn$8e2TNJI?9XZUq
z#HPVwiXXIO60^IrxTcjNQ4!BTA}nDs(UkF*KK&WO9rrn6Kca1dO~DH^=^UH#Ol%mu
zKDuG<a-wRa%p)end(d+)TSW<EK&MBmk&y}vm@CUr+@bx<6B>u_gV06q>O#2n=+EHV
zQJnj2P#PT>?bFD_0%!Cw-YaxcMY<}~LclikI#NXi`IcNbkShAT8X3&z{GFnXVbQ9r
z6N>gy^ICcTn)RLbOBw%pBdNl$<Ac-`aWxi;9c>`RGt@bFQSsND=lBy%&>Q#5VwUc6
z-eJ9agD%jU26H?vf_<}063@BW$G1e>j12UXqahfNYoS0D6bY;(jUkn2?|}-lPj7AP
zmbG%)#eK+br41V=CXbX!;kGGv+Z2aeVSgHBTs;pJiws6-Wsj-L(6iA8->1gEjStIo
zJUjV5Ws{D_-&u;+cle&abzG|}^mJxRHYZSZ7Fs37Cdm2ub;pbbGo#f*A-{3dL3c1U
z(TlQ&PIM`nB7>~mpud2FRPTvWk%X|giwLa+wuHGXroPeEE|XM@)s*@)HRy6pG?P=Y
zZsa{wXWlxCBV$*FCY|icU&E@I9=Syf4M4Dq9f@SKsxsicmubut7?1R!ZF#yHvU_{=
z>9U1m=^oP4Zv#WGgEcsV%Wm(l5t!PQ&{o>n`Q|gNI+GS){`ocQsHZI{oB2`nm@WNQ
zS$cJ;;)fePlv79Oq0}sAnoOA@E8`7eL>wI*1L10JKQ5YP6~X^2T$7ms|6pRw64FPW
zaB4ZEdQ&W9)-cub2o1L=VS%%CMIp1-U2piwah{XB<Ftbj$4Qk$5l?lkyBb&Pxtj4m
z7a4hFT(7Wp2k=u&o7vhv23OFsp*9Y=naVna(P>AOG<xhc0{5^fA8YdtDI2)qBKCBT
z|3Vgxzoq+qOgqp41o!Qw={08OpFt1@B*5WrG)B%At{3CP+42Qrs&n_WAJTYhR`IbC
z_K2U(z$Z;OCb#Ia^R7PI3@B^C^}OXXp1?l7TFcXUd`tmEz?FWetLAT2iALT6uL4pT
zSQ(ypoa`Ve$gkz8ly;v6&_c(YdNGn-W1Ia}(|}UT+zK?=Z+KA&=y7|t%KIExbd9i(
zrc!xXE7|Wu;!9%lgk*-*lsn@7i63m`klLg{hi01W(-z*-FoG|^WMHX$`5G`5ed3O;
z+b;q=KwEc>llxa@iY~St3ATJNlDT=`2M<iC^X9}Agp1#REhdRpRrE6+8UHxDd8*$?
z))^TcRSFs?m!j6ZnDL$fKVNC}ps`5r+4^;c&j<xVk=YIk2=ojG)v^q}6U)KINxlzP
zRGX5-AI3LW(mckL73usk;;U=zsL&Cp>`uvuC_pNmPaUR(Fj-xPPu}#Ga|YCG5p_|x
zOsmEBY7N;#w%LnaeaOPRFJ=!WtJ3>lD-{lAuK{U76<)I2Hj@2&1kvz(AQNw}wTm+`
zL{G6JZw&z;0$Ih@6&I}u6zF!o;Br3x%=cbnBr{?pu<i5rvLFfk(Tu+Z_93ydTHzv4
zhR)}3&XOU>Hk`A}R>`KdH1c<&r}DUBzQPD;!0_i|`gOdt@|n&Yd8Zi4LdwqZ?uC52
zJ);}H@0?iKh-N!kSn=(73SQJYnewb<dt(#eLERH7dan6bb$AwQ5G>%*GjWSJ0ulhW
zII;fM8!~yJ$EWsx))4AI;n1KtI9jStLZ}T7T3xS`LJ|jF?>Du<;5-wHyCzt{TU?J7
zFKdt1r!Bl_idw1pI8#wVu;B`>&X(C+3U)8iU*f+bk?^Gpp{Tqxq8&HxrtHP%?i{~b
zp%YjNn*5Jze`l4uBi$?zK6LD|!;x&(^KH5~FfB!;dET^rE4CYpRaKXXe6Hz~ynH7{
zJIZ>qga+TOx1f!}u(E5IawK3bel)jGCl*O%rNk1l{5+q{D9+rs*(Z#w9a-R}F(M;f
zmqZBWLA}J+?R1?tA>D9t;Uaj(b)-fFZI%=Vs7HKm`AzvmiXElFBayg-x_K--?bl@S
z=wm$+RPi084VC7?`cFNI>ZD#^!0JEaqpK`m*7kdO@=cAmH5cyx7|zkL_xFWwf3n%-
z*)n<k2qj9GF$Ik$k5PMDSH}{qlTO_D=d`3-H6jtvbi8afJ`&aXaZ%P^KK}_HN4~6X
zW{85>hWSY{+<qw4A4<J@si#ypuvz%=35Wf(u5Yb7LR!$4b^Gey7eq~xX?E_adS7R}
zMHx|ZR8Ci=)c5Qe=k`^~=lV(CqBX|df0k?@iGl32gP?n1I_Y^r7XvSMaV%BO&ryMD
zHhW{@qg#r&uSsK@7ufS}ZcCsZip0zB$HeJgA2lNKoVE{NkE*%heVq~*(7;9%hR-cr
zt|NCK<t?~M5tC%^XH}W)DTJO5s@QiNj{<**Jg(BH=D=Svwf+KQXcMDsCY@pg(1aI)
z<_UY5@;I*^sTWsQRL6!LfANQHHo6qcE7asNpx)Gn+B7TAGM#f=nb-r>ZaDhKrs=7*
z8Gq|jloYf^m%ug}1C1WfcJpQ)OG!WDdTF;i3>Xtd*;U{AjpVxW5IaM)ATg+y7gnp~
zL#i2qctQF5W_Ms}6ru0czqsuC=%-P9-@Nb4OfY<4j^f6K=>~)PHT%ROcUNb&5Ad06
zPMW&7Xcl3ur0o=l<0`E1w~Hae7c<^7bfnf)+i+-=CxGqc2G~5rz8kOVbv|RG16?MM
z<x8ABPPMD+Zax1kAvEgbErv`~y=p$W9;TVsVewRK@bO$#oKBDq;Um+Z<@X347kBW3
zr0>zW;E;miEsq`Yhj5*c;o!~4Cm91j>}@JK%Nn->FCm(cf-FL5o4()0&gzX4U%6Gw
zfo{5c3F-Zpg#uIijiC3zMIov*O;y-k|4QMim~i^ADbSncV!OK$Vphyql_GC972>44
z)z3rrQeXapBLh$TEWRqw8t~E)`icizTL4)Fjze_e>$lbsz0`=~6rYRN7xFVkgP=)X
zUaIbv2AQQwakpdWU!&%;WW3Ve_-jwKPqoc?g(rz`G8NGL(c&|QKcdKmGY_br%+Zg0
zl<FrmEXPZ|C*=NopX<77tSuwlXc1$MyRkyzXUOMmT{zFcCMeLBFo`%S?3NS;);{gQ
z#;^7n_RHNOm|805f<)<04A<gC!h^gyJ33PC%WU@kkmQG>y8+)p!M)4ca|I+0UrdZN
zcx3jBI7zGffRDhOTE(mgpexi(nOFCeN;0v{<i_k80)r705FUVxkJ-lf_^oOy&>O$}
zwQ-?1PI3#_+qN0)Y3DA9karw$ii-d~m-*$pEhBiycl12<@|`FaI-#Ft0nIdDji;6#
zU4C8yEWB>J`qTS0&FB+7UN+3&rB3}tPt*_PD$F=*Y?xR5R5VB1uKsGWLF7`7j4059
z2$8bXXYyuZ2^Ye{0)6smsNu*9Xg%QqB3JmWQYJYYWU*jt-Wpx`(dV4d^@F@=(q+N&
zhruS^Mp9wVAF6tJs5q`<adUm?xH-I`hmtQkxp`l#4f`N)Y;b9K4G6YnNe3Qiezt#h
zRI9_Q_f>k*<)B$c1u5&879#NT8P+^$Ia9&C9<oXKc1x~=arq;~mo0+Vp*V`V%xR=;
zN0Z(7T#Ughb(=>{evzq@kKzeSl8rx=Z*!M0b!BnkG8OP8Ku?eB)sCI9bNVq|ow$=9
zuC;6O<b{9JFC)upgnz$f?4GSiQ_)U&=X<kJ9K0wB!?w_SHm4*rUvFBRC4>6_kEj!2
z75HI4gArIOVZ`@Vm)o&9O911gkx-Sqr5c)>jBOybM^-_HRjqH9D=JESzB{Beb4=Ux
zjA7aJa_;i3Ziu7V@26GKs?*o*-mnx?U|jR{Y}Zs|V(5yK3ey;@y!Bwv0gV7H<gLj`
z7wklc2U$xp1H1Msdx4LSK<^B2U;%PHKm+p9TTZ4Utw<`l2;+vddv--sd>@Z@MFzN|
z=MA7&5NcUmg;!~QY1~j6Z;h8CdgL$M&@WKzZ1P=vV7^r8t|@OIg!j*bBRi1Kar{6;
zp4@<`8mTJ<|8!KZeGzKGBVEQO1TikZL?-Ssm44~6P-k5F(5l1#T~)HOYk?>b-+cj8
zMIMiSReU8d<UM(*LEKA(Mc5xSfH!W<C)35WrvY2NE=n+p9*_a0-&qR}MXwVi4s!kk
ztyJx#R1Na*{gkI(^Fn)AxoQeyS*Pxl;mPd@rnq#joYb$5<8v1$@yd5R*{SXU_~)jp
z-o(Ic?bbUTd4!83<@e$7%Fr#2t*zv@><z4$#zYk>iO)zElpW@7ZORy(#kODbAwu#4
zjtHGh;-7~nh?DgcQ((AyEL+{nplr+N_p+SUyA(@L3aEl|bP*H^$w?3vs(m2mvIZw@
zf4LNs#zBg2gInjE(rT9N{F4GpT??i~I&97GW=pB+aK6p5(RHF-50p%C)zsShw?e-s
zMw3RiEl8;s?Y0ztZ8h4e*O=^~g{L|)^LfA-hn7jp^uF&7fG9qUOdP58Qcg?5pLt8O
z<=ZXaJhJDMdpri$Bs1rAdrv}3Dz{w8{*Em%KVgp@U@?W!VgnUFvjM4NE07ZHuSo1`
zbVsdZwOkY*OczP;4#${B-bTh%;}~DKWxmG&YddBxE`xY(raL}n>-`PnxBIaL*-ws`
zNSHxZdRB$z92*oEc-Px+)fBE91H5Y&<ixq#ZSYaRA7)M~<W}l1c85U=m%p^O=B2XR
zesSEjHsPEgP$_FgP5(OKwxpuEhuQ<agO0$eYRlUtx*dFC?z|#^WJy%>z2WeE#8HxR
z3~Ji_!LHa0V%2blP;mTeXjl(B?5O0~Anbo;->w1P+`xPTx0sw7@ekwIzcCV_cj3jq
zYLFcNF>;%!2{dy4WI->1@nD^@!8k~<bJlCBAoHD6YLk`*d*4z&aue@(O5i{n*hW=>
zco}94!FK1OV?G1^ucrM$&)ojXXM^;ro1h>O$^v=>#W1`N2c#ZtC5D4SPM%|ObJgTj
zW$LR=;A6NC+>GvhBz<}G;z}P;<u}JZv{7b#kzNeBU{HQ>!$$*H9m)1D!4yuou^6l<
z8QI=fZ#=0WYLO;z`}uWXZ@gxqtr^OZ)(HBf`gGSA(RZ$i3FA#PY>3CkWw|UK@F3se
zW;GY51ZxAs97JAWxW8zBK-_vEDBLxHl@JMiK0-!kbHlq)Ktq~!-NvJr!&5MwgiPon
zVciXdmQUkW5Zx({Rm*`=I^!?ikFeiaWx&bSy%DXD+aPXgLn!I|IupMc#CTjaj_8il
zQ<@~)!sgx~?!E}R&}F6{JHf8H7)c%HUX38W=pcD!<lYI)b9GAp5RnOiZx4vC<^t&^
zt^lQl8PB*yI{Bid=6M>A`tP~)Sw%TdwSIY9RM`};>?9Q6C7+SLL>#A0AoxjW`6^Jf
z2Vh_BM36Dv2J%kMLMd-2>u(zaQn~r5?lMsrX!{l5_8Q--gshO+<qZ<?e7Dk%;h5{y
zP@Fq){#hC(y;MI?%)iOG8@G@-ziDuLaKln}Yt2%0$%2+8=_$vMpGNt6MgZVmUx~JD
zSB(FC^N!RZn|boi!;Jev?qYWC!LU(rCM&-%QynDBEirCg1`DMreGY%&Z~a1$vzos?
zj1hYn4u>K1bkh@%>qo!8wD8EhWHhW%zmz*A-BB;FPp(%p6g)-I{=ujTOSdVi8?#r=
zXh@6J+I-RQjLM>rf|?W;bkI;fyN3KD07XeHy2dm-<Q8wKPUx;P;b=Ezvd^luTS9|$
zll^DY?xmzaJeI+#7%n?K>4r(!q~ga**U3S0={}Z&Ad11*luRGmih-OrlJ!~JS0Xi3
z8_}bOigXI45}~-42r|YdcQilKwQIHKUk%5{@y38aRH1VPVw-W@OPiA}DMyAr`ZOOj
zqbGie<t6AD0@alh4?3-evNVg(KuQ$Dpe}Hj<sM@6-Fidh_KJ*(DAm)l$4y`-8XPdA
z7+i{5_@Frjm=m@|J?Pc=MJ+b8`&Dt*W9rOrywdhYmVm|CmioP;4tJPGCp3C*W^d1k
zi7!xPSiMTQ$EfA<PdlsqDn^gOo2%{mEQt#RIV#J|;eB)DkB#eEd1gHOF^<NVu?vM|
z!9|vZ6lyz#H`$oDinw4IfK8u@N$nR(8!kI)D_L!LE-hGQ9G_YyEhzj0KBxKl*ZUkY
zN|-LoLP5*}^K$LKFFet7PR&`khrLfnAB~%di5tb<ME#b2LSUaYtul5LMcJ`RTRi>N
zQ-WG)-HQnW$Bkp9T(3@l0gYdypLgclbQ1Qey1+p64;+*$dX8cI3LqXDHaFj4P|TcP
z$M{XvEhaqmYLWq49g=lC*hwb#D81&4q^X(li~>jH)y$X$Iq9g^J?QX&|5lu;XNY^@
zK}Z><g5~3L^Iq=cz?>6-rJ2k2K1T|^3B_D|Y0>byxV=p4?+Y1b54e!ma6=8^3e@mI
zU;l2oK40a8x5IC&X|{n7&)By?XY1;xq3~2U1;Uw<Dn&k1R#Mwk>j2U$3SG<jQ>w`8
z%MDfA!e*bAtfc3NCx-Wi-?6d@ClAtcS`Kr!JA8XxKaBCi@P;=5odmb(x2lFg?Dm=2
zg}#L-PDUNS!VzEAPNubtF;|J$&5d7@eSE7fHdl;YP5|tga)>CsY)(Z5s&mzZY%cvA
zq2SD@kq=6^?R<q==m-k|w~F4&>i5FdzSEny@yab%5rgL7cDkWjaI>p7rhKceRK%{z
z<}9Vy)20|k#Y2})TSshqqKqYHUewZ4Kax}S=epchRl2NLWH)(Ev~@pedSe(Xwc^*@
z{-$dm!y9N(0u5;f^n^M>Avgg$Oekw3n%w2Y#f`pWgulLGpXLDk{p_;0e<B`>WR~B$
zXC!WG2T2d<rm%0T$5YPSmMZ<jAsBI6sC@#4VY%V(HjSMGNRPtPh$?mOA?=T4*~^w2
zwfhG91YG5qerNICp_~H=*ESt|=3tSsofV3<)#h?qqm8?3Ns*y?t<Ss(k%&r<FET~l
zGQ-6WS`Ti;Uy9qFMBmsznA7V{dV(L!a#qj7g7UwOjIk1oOu(j#c9&5Qc%PSl6<Dhh
zV@_kTr3TjlaL!xDsOpX@;=2%m8QL;y(^`rz4<5wIJBsv9D=EmoF^9asR9xA}vZ`Rt
zA{`fcEw`~L1FvROb5RCjXvj<bguUB;%{t?qI;&{G%}lXn7@+cufuQ(XYjY$jUUi>>
zE^kDxeBIT87J_HbzfEw*mKGFCoY-R2Oz!8nhZMtWDabw0tM(a+n)|HsPK@7kjX9$;
zeyITNq~Q6w-eW&n<bXr066d2)YxDXbZw_3he#s;Mp?Y%qQGljAv+2Z(nxQhTRw}uI
z3YojIVO_83DvjGzO_F~Ri3bSPOhZl*0qq&Xmdhp5<g|{HBT$b5Fd*P|aNkuxUX6ke
zV+Em@N9P($&NS6!oP?(Mh&rU|L8}Ews^WnvyE4Y#*q6Eb<%@>5s*K<7CwY-Svj+!v
zc8j2X3ywZS?&8>M)oqbsa9Z@9&C<I87*|pTNboaG4=*7H*o^Z6lB}dnl%{F!?Jj+@
zjC~JUNjhQMI5@{x>ZPjb@VA|rUXmR-jPqEKbk%adbnVNt*oiGK=8eBERL&+C{kExi
z{4~ViH!|zouBRg*taH$lKZYcO&?w|DUCtfy`)G@!@Jh1rtYOkD4qyhC{}S?4aUKiC
zg5=%&9W@$gSyMcRzLcVTbCPf333@BF%me+y8Ojq~bEAY)Mbx8ngmIZ6a4I8p+p<Eb
zuuGW3#-gClc-<1G>g_*Z$d<GOQIq)!=M9)u=(Vv;welI)=MO9{`=bQqJ~v9B(a)}m
znbQEW3^#S6!c`~qKY1PV$EPVT-`RxcCOsrM$SYNftu-jBu7~%Bc@nY>+Xzi{g@o`&
zxI4^wM_9$JTxoz)sA}X99WkS00)ZL(6u9-wJ6<(YX(c8+gnit;8q~B|7r_4yZR8>$
zHG?0=35QydA@eVr_aG6dis(klh^i(k3U7E@h8SVBDhqFBlc6!C68Fw*J<ZS@6L+E*
zL88sr08>#B>>mI%C4<9y#=A%61=5I?o@!J8>>I1NM^0uSzN-G%II;@3%3ZJ%PFN)$
zmYe2VUuTMk^(e-E*Q^Dpp0P_+F{Hi+wlV3OnqRf_6i?zvN7s=-n)fHLhI_D{NhZoJ
z*@z!Jz|f-{0suQzQopci!v=KrhH51%W=5~^bQA8HABP@!oTgUS{R#Z1{c6AIp2X><
zvBXZ;x<Vqy?}lni1shRB2z`vT+o;?Ke}?n(HSgn28tr;UBdJ_x&l}~yu)ZavV4(kO
zMxy+#vgk3#wZZ)^b^*g4%+0pLYeq^1^qh)cR<9$80dq@^#zz3j-*gE>%T0v6y(6c!
zhCO`4Zv&_y9Ie^qyhq?}i&lLUxg*Ji<tx$BA)GuI(i0UB66&fhlVB&emV&~QN`z`x
zIF@4Kc_et7t{>BeTm-)5Pe&&aPDfL18iiPy%-Rv9TbgWhK!_RaV|d*7BeiZsR}yb^
z9TdURfCr0@MxSCP`!!-S`&TQ0D6-NJQUmrhAM#gEQnT_uBDRrS@8FQtB>soUq_j|4
z3KP%y{3aB)i2YK<6cAMN@fg|Z;AW~4o{|$q*K?{l03=}TqsTMo2s1l-S6wC9d$Vc~
zDEifMwQh9}=XW)J;Az8XT#9jq(%QuLUfBco(C8xY$QBcY<H@Pm=pANamfU8Mprl|j
z0s-L{_%K~`A34e1;Yno|hRSppy59$v8?Q<ap}_%CS1Mm_{dqJdx!#CVLavAt-`t+k
z@d3xgJA5R(k8gwTJMTSc9I!^_NmFZ{-;Zcd#33g~HT0oDha&HvJhmXhbv~SH^l%W0
ze<!^2nWwgi=%7v8zGB7J*QRoRtvaOWnddO#Pf;zq6lA>jj10#iL+12nLJcET#MYDG
zRL4W>e>w`pgmq!4ngN?EvUDhfPFpP(uz*7lS&;L=pdJ4NS5sil^Ac(rqpZf({XX0m
z_2Hz*5Ex7&K!k^mwT;fQ=p}59b3oV*5=D;NKH%8zNk~~&O3PA{?7_X@=&%p9*SMek
zq<zZlbaLCA;e0B)=kioV0iez!6`fU++2Y#MEO?7cBSCbDaTZB(Jyaeh9~YCW&>9*t
zVEY1ZxPl8#_n`$yNYGBHAI!Po2er|}iZM7cX@2vUu~KwUE$osXw_lV6Wjpi_p4?k{
zU#V$ZIMrOdBTY|q<pnsWfq|%PqOPp8=|fTN2_lf}0M{9h7GpQswPYMy-!!2)r|}3z
z7WnJ<>#0d1=3jJ|FkAt>ZNl*7t-QAP;9=EnL$Xh7b)ven?^V#B&)HIT_AXqWUm(p|
zCN!7M{J{4Ks1tje%qDEn5dG5a5ro@(upg)!zPmQ35K#~a2vCJ~Rbt?{|5|tAe0c9n
z_c1v!ECtk{{GWlcQcA67iIKHpJ|`e7STBI<gIHD@IBbaDczYOah(^A1cI8WYC>APd
z;x3Hdd0_Pr0|7J=Y(n5u)OBPKqg(XG*tm6@4>c4+d?C46j&h)<Yx1pr9nUztU_xZ)
zAl7~YN!U7&%XweW@f>uNXqzud*VN*G^YO=fBj2Sj8ZN9}d|;W*(8XmZfX_T0lQLgi
zLRrA+I-i6eHK@W^k%SbRFfg4j&lvweG^6lhX;Rf82ou=lSM>|3JWE&IqBw<oFu=Tq
zMEM5<b+~%NmJ!(*zSMf*EGnelM<~Zapt!ifQb13%jwogjo7YMnc)@TR8v&&aum=tF
z_YwnQN6%_9H<Igu9ZhutVLkeFEzNZ3Nt3MjpDR-Bv>)|JoTlHb7v<Q`r=t$fjC=VB
z@QvyilU=oeELxDG*zyPVx~_1x4<^0U6?)#S!y?!FBq+N&hA@vic-Oj~f3q=FH97ZE
zyV57R17}V(JlVJED*bqQ9o#*X(C)$(AWM0}U!c?j7o$C7Nms@5iDuh|;}@fjv!Hd#
zCMYJPW;qRQ`SI+S#?M%mKLmbP9*0yh6vga341lu8qT)H~mZNeZ3Wuu{NB_JBSI_+T
z=}qdZ?)STea2<0#6(!`tH@7*$O5EEWjvxpZO92%=&F~nj#&-Is1Mh^9D6|97T~#YI
z0i%$2r=huz{lzs6ce34uDHpN(w0w2;JIVglVKz0-0-KnM78PDpb6p`gx|fz7D);BF
zvg9xE{j`FDW<`XaxAFjN3x!~u&Te@yLB+8zZQ{lkYz!I{{Da#Kx;<xD{3+<&RAZdZ
z^5Yh&JM#9uy?NW|M(SOR=e8TbdNCfy{;mZbKt-BGiDv!6xV)L*(!vBdATJ`HFJwWw
zg}&{mM-Z5G<zm4j%p8Ly6B4DsvP4~Ul7PZ7SiM6e#RG~5r8imRk9KNG>m+^`c!&N5
z4)$-_maJK*sU#=gp6^P9cZs`qJ0FJ6d#bxfjiw6h{bm*$FzQG;)7g|+{C~)M52&b?
ztzER6oM~usP7);N3{B1%m87=hoDonIXmZXu2gx8H8B|h}L6Rgv$w@#!P(Z-DaPNK2
zK4+i*|Ic~%j`8kzkFf^bD|D?{-<(ye)~uS}w3D<wXT!sXxnV`)+iaOz-<_UX^|Ash
zo@be`-Yv5czZ-rHz2S$cAY`_=4wg?PW1Awn@iy3714&mf#vkHPW{Z4u6aJNHPTxT#
zsKQV5{&60&@Ck0CHb-^E;{N-3Hs(s{juN%FUj6S+*qz3zFs?ji#06*db%vqHdzh=m
z%O-}oG7P4K`k|vVL#yAD>8WO2o$KDha^FynRb~d&3R6y+e0v2ou0GZFE_v~G2$<#s
z=uGA0P_3GH!(E=eFWA{@S`f;<8G?{fKu7T?5~>5P3lu4^%T&Y-J!)@)EkP}JC_dWT
z<^=7(1UM(mT!gas6u?eeJPr<OGUObuO3Gu-O;;u2^v-lB8QgHs+PoHhmK0*`st3U#
zwwSw&^8SU9pG@K&gZW!BX%1}YKQ$~!x$d77X|+3j$C3<#1cl^J6rR5!Z!ytybsZ`O
z#s^e70w&sZMOF>szbBl(jUh7I)(HU!vHR~FVN6Q`$)@moxoEn9d|3^nHKM|rXSo}K
zjtai-EnoO{*(tuo$<)1mZxyN1z1xzFlCjtDX<I4_$a42vjt`0P`IrjkL*f#<AZ}9(
z76b5-sfiLW@e0i50^BYsk<|Rcg}s{s0Mk}15ZJK$Yrf_VPbGG41@qPI;c(c|nt?p)
zENWc*xN~R6TBXA?gPf2Q6F#bzstbo3W>v0LU@GIHw6{~eN-9vIpY_SE=S|d4@wYH^
zF&FO7_8;tzdQWU0U<^w;8l`7AYz2~LOY05|Jy^s$J?JzxUWy-E(kUyO^+4NPwoh|w
zVSNS6#M($wlLxNjk;fq4!#bJVgcN2P7i(}-o1@enj!5buyL#cyPAMh}pYUf7#Q@jB
z^fZ1KxrM6j8o<$9Gq85ne&>i_TH~28UC|M2AU=1|K%oAWY@*wskU5Yj;~qiRica#V
zM!I^@t2%%*2_chl4e+Mcel}I<y$NOM_C2JICD~DMv#8gPBGeG!eoeSec9k=Q^*kl-
zb~3B&m5zyyn@63{rO00MakRxm<8v;#i`bPR;m4)j%RD=(kvv}8UEX)!XH`pKaH`F;
zERtn?4_kO0?Z0q$mu>FuCfmZDcp8Ap=+qnokE)>nyE#_4_VMir{>Z~t6R;`cL&n6z
zi1Iw>>y9GA7b;fv){pNB*a;9nU}VzVFBXMzTgsg5xVKPUn9;FDi8V}HN;zr!v!~cH
zN0(lQT`NES!8Yx1j(92#5LG9up^n(-Rrglk%wn)!)JNEE0v)V#5MfwEztPQ%N?BLL
z%o}>n@QPn9G-HjW?&Ykg>Pn(H5tAD=<`E{(PYop&yo#>={4!$l)lE-VdXDXoy^EY<
z;0LC9?gwhS@KqK*Ep7e2$l2I(?}-((t8H$HO*suS*ccfak%f4Ar0GIEY8-NkySpsk
z)F0JX+fumZ+muo00|Yz+ubpKcv~I-O7EPI!Uie|h9}hC~^v()-jSDiv-<gbGl$+m!
zWyR<CWT^fqE4p!#>QhS_s$4JuYx&>$bDzJo8&!=UdW6;34KMdASq)|n{YX%?kjd=x
zxn3^lJx0@tu5!2(J$t{jg9Yxqzq(luQhlqTnm7FcM^?2rMm3wsT9=>77g<uzM<PD$
z0S_xQ4MMuqq8*;#Y#jFAoo%c*CY!jYQ&InpQwm>2l!%3pEc1iHYvm2+S4DQwpI&I!
z`g52_(cRM93aDj_s;-!Eb4$BmIWH)kp4<?Gc^H>JZH=Cy3@8(T7Mh81qxw`X3k)NY
zE-^pcv1<ku`*HOcZ80p`M+ZtQ@en%hwuY{fPXqbzkYbm8o#|tz0KZde9WYueQKm<J
zyh|c=e;uo8b2X?|C=6~>1L?=rvNJCouJBh+piZ=?6&8vQ{bA!)!$-D@jRc1f5tcNL
z_Nt*5^P1Dt)W-#j<oGKI)(>mJF{b3xYeV?&sWpcbOWN<vxx7~MU`%NgYH3?ijr~yL
z<)_xd=^fj+04Sm8oL^`;-G`b}{#47}<28xOlY7xJNeWrW7s6)|lRrT~gtc%5l;7tk
zNDjz!DGD^8?{XG3`d*7P!D1g{D;BI>mPtly+%HBqOR}1oe}cH(9BMcK)+3=EK_BUv
zBuCff4kzy0x>-L#+GY=q8$LPeAn&vJ0J*rnGt2;lm;vwYdftZjzw5BN%K&7*P%l<U
z29`z9xf0JP%A^Rn3RHcgW75DBD(P@57+Z7IvSw|NEw=M7lzXhm2C%MUNk*xszXS+l
z@mt3#mv$6e4voaP8BIHPth$~TS*1T957LR~d{PN^2bd8nj-)P(YaFEY9+TY(|Dxr<
z<Sx<NM=o()R?mw3+NHgTi{Llo_FCcuQit3;hYZiGx3Ga^p{UFobk}mcOh-8uz_J4?
z1~;e7?zJvr7m=B?+moB`>B0@4x^l!0Ej*`aZ7!lXAss%i>{!nfe9=$t0ECC8FuQZf
zMD@#tOHa5pj>!Sh@)Huu_)Re)`)&rbsqt+!Nzddbofh&!hg&l1mp_oD2{RVOM4BYd
zVk4s2p3o?{#E|%0-(9Hyl2|dei?iWP=}@w^Q`KIO9A_;7(E{t{h{pss(;#we2%go|
z^bxdV*<y14{DDeQ?RnYv=r5r-7Dz%;?h^Nu=TWsnO$f?0|N4w0v1-u|&?5u2899Ik
z70e*K7b_c8p<{Ix^2qLiXn;)0GF_u*PAhN@7vq&S-7HaDUMeZoo;<KPjbcP|DsSjE
zG-3uCRiWa7J@&SjT$+OQ2a^7VGl)M<&O}H%<|jzeqSpPHQBYu`Ad%H$L8#F8<H#aO
zyD9Rh*(s#v{jv|Pr*~WXX9vm61HRn#$#GQm3BH}$qDgx3oc|!G=>G5nfNua8nY|D1
z-kN)IuAKDr@`2LTXUt__{AEU46%UxR`As@L*V!gk5t8i(g@^+wl9xO{oH$NbQDllo
zPPmnZ<mbX?`a-4_AxJaAiYf01U~Tq-+4N5HG;i_8lG~$iibzHB)Gr|4eA+6r1CZ*8
z2lvflVyW5C3m~@bU$vt}cJkm2t3E)wf`?_7y6%lSkQad_m{uSAiU;F$A_D3#R&C+K
zy5E*prKf=~-k!b*g)ksWET9P>8?XNflIMDsUxa@hM&(&>MjM8{`Y4rYV<lW!W5c^J
zC(!4kwt83LM{^+S<$Iw|mh{)_AYuw%Oa;K#U-v;vK%yF44>0K1#?uHdXx9A%r7%D0
zxwCBd*r9j%V``<@7I&Uk-N8Mg-KwXEx_wUbXE+UHr|+d~bS0Ck=^p9Env$GH@A6qy
zg-sUS9~s)n_TjnL@DkSwI>#{K+mS!B$SJsc<X@;XG<{LK`h-3H${}HhrJ*%OKA?Lj
zQ^B$t^M22$?UDO{sc{gu=Uvy__?cm92-VFqVhQg^sRrQSKWFVB?-&H}95ai|c(}oi
z(6ys@u_O&2)t(A(AP3+}7HyfaHgs5$oAzg!Fm%~uGxA=qgSOU)ZDBn7r)3;L;F{n|
zIjVR}Y6wb6(qn&Ir4O=^Qy40w?1jc5A}x|HM0aRVn);3-yK-NUUl^i&{Opy<Pemj6
zfc$mqgANlt*#r}ATiZ?tX_eJ5QAqmw<|=!_2NIKFQHv!EfPO2;O<=nJT5W&rN$53=
zEsz|^VATR%$b6o29ai{70l~Lw^kr0sgs;Z+6o!9mCG>W9f?~m;^X&&}b;z;9cKta=
z=+k)ksn|L8;+|pdtq1$y2m=|x+?VF}$pg3EJMQ?C+D`0pdXdsC$~)8wwf6tcPeNwE
z<rM-3LNGlWq4Upg&kCWlesp1N2-)nNiA8z1ozTa{@%~|Wqk<IM?I|7qn+d<$a@IU1
z3Ra&ogQ=6_3QP#!27bM@lxn?D?aXR&rsu!@87@lh0EACg-SoMkpAtQ_@rX~4b>F@4
z$f+<gaPDb@if~gr7R}P*0p2Pssv>4y_J%bgTgq)SPUI#O!+6;50Bi}#0O{8)M6M7x
zVz%zGW;*S%`tp6kL$!zaAH(!I{JmCLPKAeKx}d%J3nq(xTV<C9q#ea2nQU%IztRbx
zkv<X)T$1x7_h$XQ1$+XRAt&5Zk&J`Vn>8>YkXOxDP^FJy=ta<pMf|((iI`*KfgXK>
z7Jrt+Xuo96i^}C=`v=}zOswQPZN{W^GEt9zf*OtSE?!axY*&%3`h^rY4i_H2J-{{h
zN7^V5zPJ~QF`gCWSfmh@d?rwY@uUxL7dc?(i^WVxe!+Rc7R@OQINHu4U-r(W3uaW@
zADA`?7a`JDQvGhiFL~}CDs4D6P&HCL+e@QVWb*Ds@n-<K>PhGIpP;pMBZ7$|`dd=?
zt_OE`2+9k87{}t6FVxeC!pWoOL-T=k3+&(?qbpdIIi0AznTIANkZ<^9v`oe>%(aOv
zys&2{M}Nva;e-=N**P2PZDK~P_pbY$IFO<8?QSDcpxoShf5Wjz=GVe}_oGw`?}?ci
zzJb0*IZJqahQ|)9Y0$VLY22T*GtvDCx=RNz@=g`tw>fumi{*;F=@}+Grk?l-`ccD-
zB=d^_9;{ABLZo8P8HesE+^NIFB@1jlA@^%W7kpY>rj2SecB<OT4Sni3i;M`Epx>_9
zE{gt)`4w&3ujzdlkl``{I#~roH5RRk9QjnTahXQej==AQLz=oj;5u@@Xx?kON}an4
zdFGXIh)YgFZG6!Ej**z2V@CNg2;U(|+N++)0_`DY-<US@gFe5a-Y;y>7w-5-YaD{U
z(!j}K#F4^}J7aqtTr!otpZTcr-|0u4d%ejFH0qIZ2EzH!Fjy1fXXB%EhO8dY@L0I0
z%M`dL)JC@5Qk|1e_%M@3jbMua5}ZuiuK9k=EjrQ^eZsLC<!k@8Tyr~cv)KTkRjHJ7
z=KTp$&B|i)5PqK3E0+^uihiA1az_6x#S-&ku9Wha251Qj6QSc18v{)6YWn!S%t9``
z3o}g710otOSLkQMhDArEk|U&_WE?r;0B^<D+`4|S341^CB>_MN3&2%q4X)B5Gsz09
zegCw@EL|*1%ZPi(Gp*Ssyt|oW(3q(SXO0tI9a4AD^lYZ<E`l_cvlo1CJNuMuA70{g
z+s1a54Z6<QyL`lL@o8lL2C@ssE3uZ<C^{iCF^A`j3lV3>miDN1O6jKSQFSoyndY-y
zbbZ=}FIMSt-K}H20!?YzFV>myv{QT%;s~)yR|SrI`kLQ&R?(38DZg5YyHny!O7Y2H
z>zT@G#&JgZa%oS@JufXvH6VFf(vVygA+y>~kVe?}bH8~DWM0S`mFDu1a+Gpbtvw+S
z81NGWBwYCNog7bo$Lb;JCDz^ESA`Ss_zJ;hW1{(?2KMwAXifb|A7Qe_73mUGo9RwC
zQaqic|7cC)SGqdv4|l3I1uBb0{bQb0<94r-ja=~J7I(-y*x$bs>gkhBQV^#PWMUR+
z*X>G+cO!p=tO`lbZ5+&fBd^?#n}gu{$Z}NaD4Y7-^SBQ4y;-aj#5-Y}JSD#QKH;qH
z?PuIYnop`x`*!z%RHNm-?*`=k`BKaadRBSMOO}G3-zgE9My_Z+ey<aUhDjWx)LoPp
z6Et=ahvac)ijEmp2rscMv%vMz%Q{JssQZ)~cVQ-z_bDd>F*c-WYdid1Y@}<;s4KOW
zMol=^=M}OB@e!JLA=t*vMJL;~A1yYg7wogZ0YQ$ut?)GH>$>w6mSaqMLfsJ;k^d6)
z#e2thg-t_TcAR~l%DCOa_|9wt@y;A0q7B1_2Eg>sO%0WYnQ$W+BE*c8E0G;uHOHm=
z(#p!?4L;2e)LNL<`9(jo`f*)Wvs<?BaD++2$}s7K$Z|RPf+{8JDL-g<G!NJvQ_jEv
zCxS4r-sN1YuPN*C+uP=+{2%m+Hv}4DC(5lhgj;++>7A8*TQ+PtG&o0eE_W!a%lB0?
z*X9Bo!g?lRly_|21M9am0Pp8dkX}@FWNsOrb|bKqwq!L5e;*+1j~EhC0jkV<>^|Y;
ztsr%i$Ai$GSM(6)-fN^VV&yKEre=uwEH2K3sH@DgR@3#I(->|;GV^_pBx%32-mus7
z=Uk^KQgWA=-!}@{r}WZWF*%|d7x3F7r$q7L)}rOOWoV9RI=UPbxb|2<1tv7KhV6i+
zUT9!EklT~xOKiFp)->?bc*aTA25<>%yHyu2y|4)`r^l`IX$Mw?Yh5F%&P3lmi9^DC
zL!e~hKAG~hTH0(@iMDH%u`=b;zvA>=iLbstep)?$&}`GTl>7O=`I>pIuJPZT{vUt;
zfB6MFFDG8to8G>O&-xV)x;`ujB!F<NPN{F08Jhp?Yr8a%ywCL2lJh&SKfa20HOaiM
zZ@T-(CBJ<oYuS15e|dfXJ5>XsGq2?C3gX(7u!M!&U~p5xholIVa09D3(&FpkRVkm*
zdG6ni>wd_06Zwk;ar3?NV)`30X8(-PZ_xg6w6tB`kL;hJ{S(Un;;ZhbeCw&m-xc#q
zKDh-+hQEmMFKjwW=+<tK5ZkRkRQN9n|3@AFae;~Jd;#>h*hsGHcSxq92bYomaWQ``
z98Gn#=65p#u;3v>Y0xV81MfeM8)mY&<qHXP{sGqS>d<~1JUIGGv<WIS)gbZTLM_c|
z3OC%@RP1gFiPCTsBE+w}G2%kBl7?EKKn<l|2`K+8!atbvA65P1f@w98exFppxH+m)
z-*1Bnx-$P6&~gfEKfLKEr$3~%+`Cip2?!KU8ScE5*<0RXNBUcnxNSm~<?=_de`!Yl
zeBXcb0zbPa+`o5S+dfzc$luJ2<CRm=|8S?=;D*c_Jas!nP=)`uH2B}b_it9?->m)q
z>(qa5O9Fwg{T&_y=~n)Kv<=|~fsWKS>Lq`Vvc2iWyZfr+o8;$lExF^vQ=)+XzjoLy
z6d#*5ef#TX;snnYlx*P)v#OWmPMCL$9kzUI%3S{|k7$$1ZwFO{H0RwN6sX}T{~tql
z@FT_&B0?m{YnNF_C8Qtm54FC5f@4_m>bCo&SgRS?z}_El2+)NeNof2Rb~a=JvPMZ-
z5D+kBbPNF$gQ%xKCFg~P72VmI_wl?xt>&|`eR`vu-*xn_KU6H|>zY2eFE!Wyr(1Yu
z-$*n>;-575hgxHgJDr{WO(hP*_XSM|r3&Rn{TEgJAIlli3I3SRJIU?Z)#ZQTdy@DQ
zbaMRp)<sA(y=vxR5BlQRYv&L1|NEPmt;obL)%}8;Y~bdD8&c<jQhX%xk|5$wN9zGC
zmMF+4iv(sSJuO%FO#u%4<7rby5EZK<%ui%K@i*jSmYv4{Zj4_er1*OrYT!by-+!^!
zu)y=$CoK3^bHf^1G0z~&x(gJiK*j8U-tJ=cA8wX&T|r&Xvj4C%HWd%d$iDfm{|X+X
zna1wVMCbuT-5P&0ri6JPg2=XKWL>5LyB*GZ#Z)(i{niy^E)j8#{y$da|ETE!5d~#)
z<R3M*R1R_)G?|e3z4yV+CF)1~k9Hga;WOGX`=gC1g&VO*G5xK?{}jyscdvKy1Kt`h
zqR-6;Y8YprL0;%3t9e)-d$`RQhk<u16>lZ-38jnTeZQZetEP8%0IyZxf;edda@8N+
z!QD(%&t&gfb)lX>Eapq;279!=`U<t&Zu8c{7VDGi^>16{2@M=Q&9{&*oOCK$xC5G`
zXSz)3cKgu%(#T0g&s5ryl$-phZY$HPX$d3ohZcT<)LLyNu1Uxr%e9p2k5nH6vtp_V
z+QFYc9I*cu&@~eQuE=uqQ3<3|(fs&Dc2|~E0Xg=j@(Hcw-JA8Id|e%9aTh?C1yG|$
zC%an_Gm4Mhr|ZS8dEO&$XacTimq;Eep`RgyzeJ3E;dDByCVzN-j7RrIFK+qUwJ;_r
ze!7UsFWG5Fgday#=MEi{&6_?ScA0mPPI<|hRdE>MaMD^`CZFP_u(b0~v7DMDdw#Rz
zDYxhYd#Poqbmkt2nPF^@vY-h!Fl}vI{DJ=5_;Zis$yLzw^V_NA)W}oWEmOd`^sSJF
z@hkNc{}N!OB9M=zwIx_sbEnD~2>iyM6(^IlD^W2J#_q5ZypBDH<Sisz_XP4GJhrEi
z(c36~hQsX@OZB}SSE}gYz`i2zw)!+l+TR_RZ@Y>F$ge@J6)PE+vm~ODUc~No-#GG!
zD!xWsMX9y>r{q%YGdFyh1Kh*SNS7;|SaAo_YuNTKo;U8Ei_Xd1GugMN>@i*ah8T6#
zo%UHY_dOc<R=(1ogn8;cBe`onEnJ(`Nz1&mDfFR1`gBdwuUOf9nlsH^^uhYOhl}A-
zdUhSgKXBcf8r)7ZR|5}6)_EkpZMp0{(fV*%b(*>-@)I-%IB?!13l_RAH%ZS%Z%3mf
zDTX#6SaI^gn-d>%5dJPfkN6LJBYufKQEAik{WNSgg~wA~L`<&mv<rnc_BY8&VMF_l
zMxTzQMy~HUD7e*uH_TsQY6A?k?Z4#c)yC-gftweRVtZw?Z^nD{;S@)PSta~oZfg+l
zyik_KPtffT1XTGmA9Zc7!ls|g&I3HKKS9%_BcmEmKeG)9BP5@j(oX3vJ_KxE6|nuu
zfCEC8HDh7?Y*_Ql4DP#g%CA@>&aGv0>R;lg<KH0f!7WP4cE59ib4-1oaJ@Nb-+)=w
z{FBJcGN-Ia<UZ`UJ|iZ~0n~dv%5O0pp3tKgVIXM@VDVaI?J5(9e!WshZHv)}HR*4M
zR&g`IOS@%x0S-#D&4)WY+l3c;M`AsKGx9e0MVq~vjuPG178^n5v=ZYP5yu3Yr&p7T
zTF%{v4FoAd87tm(N+sP=J=8gmX^c(mDg-Y?5+|!W9#)15=Iwo(bJO=OsG{P%Z9RM4
zzbi}snf_-lh!X+=qo877pn}0*(62u*h=`G255ge#$SsgBp`h#V2v)Z;p$q@H0Kx*U
z0n0M3dFmub4n6*c-vy5!XapRO8*H0U<>hF7B1LsKw%yD{kf|~NXy#yo9wsJAICe->
zaX@?dAr%dHOEPhhP!)YMOc4a4z%q^O>y^VOAe{)N;x{pw^l!|=tmef4()p5n>$KiT
z675_sSQK?ZAj$A)!yFV%VCr;Y8#wxu)Rm!q>0;$+5!9yZ+*#E~ee}L4H%?o|IR9)l
zD=3q~fmWxuffEVGsKHNA!Ln@|c{im3+8`IoyAbNQvmJUNR$)-%yz6HR|I`(L<4z;_
zfL{dCt3Zrj6WZym3|b2Bl6Ro7heO>i*oHvC1MFeFTOy;~8m)><+Br1qW430#)_JUs
z(f;dOn+_MPc?_&egi8HA<nduHho&2&T2hnZ<==$CC@Z}+d)6zRT5I`t##jdyxdZkK
z$Atv6XYjk6v6Wp2cFt(+d_;eOL?77HUY&8J6Nsz)IHWKl7Ada@bodH!-bo9PW>1GI
z^3cGH_s|CCx=tNVc$%D>q4@Eo#PKFPj6&nf{^<s)MdwucAXEa}aRDQSrLY3nqSpgp
z{YvMACvUJ(*{es<dXW@3`EJ?(|5Lq;QI~X}zao|bu@)Zw_|i|%uqC5AJe+hr<KEMF
zx{)^`#SGf~KNM9da6u7O@_c6m5yvs>T_RQWC}b29@wW}k36vu)@CF=dkOVd%sJ3Ym
zOw5K1KC;Jln}WXbThh!Ya=A`+ZT>x-mV*Oycm`(UmQH*Mo@%YhzQKwXM1|}`c0IP3
z*fa%6IurX2SX%iZsuE(qgTNBtY;k!ePIs$A23-v@r@WOBxbIuSc0^6)tu`yk#`7$7
zLdBP1ISjk>O!0I%R6CG~haojy01e91ild6z*jpteLo#vBYfi~BMn7*7B%p(05CqU2
z#C$c-#E~b`X8y)7Y*t@XBVVHeu;y<0Q1OHu(n7eZdj~}$;sekq5Ru@%xa2kgz{gI>
zyb(qWBd&b(gH`!O{G)F_L4snA@gTl70<`gT+(sEM{pMsx437Ed*O-duIw%BJ)s{l6
zOF}e5LcMb{?BSq(p)uRhf|h-Xj0S$74GiiCAwoj7+};K-7ePf{ojnBH)Y00Ed<H^p
z)hQY4jBrX54d&_9`fupeCJ<&*v-J3{b*2+vc$%4*lh!F*B_<DDuALpY8zlXpx3D|s
zL1rQS)`9N``qnrYzKWnFr{SRxv7=iGj9*zY3ShpXY}q&q0D*C7C<7QKR59T3&M<dc
zDZw-icMAFq*+FhpS(5ehy04ZXkSi@A`>n#WY$wJZ)_84x5Je%$*i<gCf<f}ebb`>V
zE%I-Dx6`DoE4!4IU9<G7{W>vfx6J-RKI5f?!sV;N!9h-%Xqu>AETv!-B_J8AV+34j
zDwEIqOd7f&itQ`<l%?2m+RL&W4&nl7V=z)C1-o}vg_{(WzwTx(0$|ZPC~LVDv>X=>
zJvCNFnKhGjDV9ZAq2f@HpezvK8i%$TKftIr<U{bIqx71gch-vWlgL?|1oH_%9If(u
zl?&Q`gT^9+>4brCXYEimP+2IweSyY176bLs4-eC#`m%(tk)ji>bK@;@)1A4+E4>8a
z#@XVd#0ETNtWfehD{do6)6*tvPz=WqHq=WSC8}uGqb1@51B@WV2et7#Ab@bcs4)q|
z&KbeCBPI+q)L+0zwm@WU4(6^qbqWFje{)R2ai6KeTPsw<vbIO|3GeBT7qvz5PK7to
z`kd3tnwnkE3)e%s4xg|MSr$!S8!f5N`9Q@7x4PHz3EA0_JH0V;xGgtj3`qEhF_^EF
zogJL*(P(B4cm!XZK!Al<hvO&JEQ`ZB7xij74(JioA*JXI%eEEa%2S`0-3G1?e_4l>
z=N5)6{+gRO#ZkI=yoyxE<~Vu0gfI~U77GKBSc^NBwPQY)`?m_o>?_vn_*W$Co>7Hk
z`HWcW{rc$%8GJT&1Xu!mDlaH*kH$8&nmahk@G{HmVaJ0qJT-$0A>;Wl5Ex@c?>c1p
z*&THzi8YIevf0bu(Fiyb04qaf#Tzg3E6eiC{MT6g>Po>ET*=T<Vt+EZtjl~zIw&fd
zJNeeLbWMyUnQm@;^p|(|u(A#4Q72>!c>9xaDQ=#-xzC7P#iH?bsiQ3wvkCBnCBk)_
zFD-w9j-iveThCF}3dC$_@4*OPo)hO_7>)4Y(<)!5s^*H%2{Hwe4Jm)?K2OV@Weoq(
z6vEdWhWgtR#F@pB`fbkuc!9=#0K3sx4);OhuAFfBcqA)Y0cY?ox6LrTBlNa)ldYX}
zl<_qBx^;TDj?w^PI-4uXqGtQnr<JU5G*yJS2a{cxAyS4YT@_t%notJnCPbA_A^cs1
z;^~~3v6Eds8VVlac`im&fgehEFTN&J_eFo`Q{X{#Hb~DU+R?9FjeP+>^*{a;+h?sn
z&H@4lzr=tmh8M|HB~z-scsYq_fQWy7(~ocjSz&Y9R?HDUKX@C$>$%t4k#2G_fI0ot
ze?YU7>!a4_J+jQybv|JHbSp!^<e@&$cgNw$grr{&qZ7;vw~Z^j6Hdr;M#&&hEdcW|
zBCi`dsDFYoNEu{oe}ZJ_<OqVktqHAu$*D2iy4)^T@VjJBKcL{qvR^kVEUUy6W1s+A
zykzqN%}=8*TNilLpa(2FRiP;uYTC<#5X*i2B;%v;>&tG3>Ka71)cKsYs$*34&`>ez
zRfiGWToD&cj^+WM#*#gea009_e1tb4%}Gz`Z>V5s5EehZKTPvD?9wtWm0g^F2-g6u
z539e(KMkC=HFuu!?XjgNc6u<6qtsBB7X_O{B&)8N41fqPX+U7EoFM{IHXzrrsF}WP
zu)<S&_~EP#mUS)TTT8-)S0f?huC)-hMQuE4&>D8GJ%rIc3*S_4p!mwkLl6b-QtUOw
zGWiJ_7_f82Ok@yXab%DSyz@S!f%o*q@~6v@ohJ&-JvM{~&Vnb}&%9f{S#A20!LoBF
zVBFMV>1d;%0+ektpmStev!+RXI74+@PUZ#nqPHB1L#!!q7V5<vK5{gRIO$oIWNKB}
zti{m8G>A;nh(k7>t(}`q_?T~Ms&f!2F{n`J`Q|7!J~cX^Al#+j{Po~r5}Nh7KlDlA
z>lL}qaj{?ir7EUQ!(v7mrxM-UybV-VoMq*3--tJZ=quAkGKjl)7*UcGj1-^?W<CYW
zaqC>ME9g3q{@s0P&%Kx6U?>s#>h*GRF~pLM5<>trh6_a#d%0fkCn!#9D01Z|sB^oE
zA`t{akzev3{|RDA+3+(Ei!{#L9Zp^5SN?`WwsDmEnewUbzLT1)(f7AAX+i$S-PX#g
z!5QhzD_Y~jM7rcz?D-7r{gY?|;L&BZAzb!@N4=i2hjg2FZ5WJ^R}T_;;$OkmyIv{4
zM~U|eTMZdPq>LAbi{tQMseOI^h;LqCAIiCT!sHr$wCnQlY8|O}E&*KwMB@xpgRHVK
zi}#gl+GB`DDX`j@ez04jl0_&nx)GPFelwbOd*Hs#BU0O9?gS~*WeANR5&H>ByBW=O
z4uB_~fA@<gypW3YzpXMvEv3~~Yg%jI#UPF*JLnmI>0PUEyL<>Dk+>`zET$#C8p_8v
z)E|$RD@$MK2QAg{L4<E(?^|k_f6d&H+u}Ub!nh{c)be+@UqnF#bVvScTVwa>n?+z|
zof?>$MFO-P{)3&O=O|>46JXtr6#)l(IbLnD&L}jgNio$e@*PAzAL6@CVh(;axn%3?
zvmkGTtt&k`A12O*7{Uy6fhDM1T)^1vuFBEv+f6Y9!F;_%$McvQIs1i0((D~qRlx<3
zbg<3Ed{Vyr2o-yJLOTCUcNwPQ9gE$tjZ9gZ6&pjD*}$B@UQO&?WsKBV^+2L{4OTML
zaIHJU%r#PvAgj7%dbcpOwE~4esLA?YBkDWeD|qe=&9rj~G#D@xaX|X>DVJt5Bm*@V
ziRLp-e<&RS<UBVIvw$BzV!T3h4IiXj`$)v{uY&U_N{Q|s=B{;;oLXjJ@epuaE5;=Y
z^wa)eby&<RHMdzLJiZ^ng{D`u-LvDPCOeQ9md@rW_Nctczfxcn2D?a<&i@GlPso63
zVdi=W)I1W4s0?AUIGL~72(e`3Y&rOX;2VFLx3`X?+Wf)~<Cq0{wf$s#mC)Hf7oYGi
zKSA`OftubeNME+Jh7D@&P*#g_K9H(^;t?|T@C#f=gYsSS{8~R}5ZdENG}GLE(c&{W
z#>f3b1({(WZ~V<znv-P4O_Bhc&vFCb2#*7eaT31VgxbBX^ehrpH-Ldp)a)o2B`=gI
z5j;URa#20jdtyw{HZLlyueY!6%7#@$P9))QC@|3T1zt}UaM`~)?UHa+kLB8G04C-v
z!|fdF({#*x8tqs5UYSD9VT;Ftj(tQKE3y1GYKoJihtRSVRcgChTcM0FZ$2Xi95uD|
zP3$9K)I85HJrZ-rQt2UdP5+b|`=wn^z+vO>6U{tJV*z3q@B>>qvhy1PY6JA}mI<=`
z=~-2V2q)i8NN12)@!M@(MjLEKU9~Y#JaoasgtONQxj4XhzPz2SBH`=}Umzgt+|Ks!
z1gk?FuNNUwPzrRS&w<@(Y#aoZS%Qxk6-q3rPwO#Sm^O*gP=j#hd|PNjuvlEhbgoSc
zC_sW8_Z_FIqDMsBpT*@#8^`Ll5Q%qFSW3XRla38si}5mih;7857hG$Q*r?9Ev)~Wy
zSWD@2SMG9@*dNitj~pD^Zn$1hXd`dC8KmC59rR{8Zw%wM`(YxmuG+MuMZo7%SXuXh
zs`L1l-l~_VJ`8aE8Ew|+NOo4il&m8oz~iy2l}&qYbQRgj#1Rqh$yV7@{z?#~>XVvR
zpbzE3C(WXQmT5JV0+c5vZ1-Hlt1wrkGAVzUO%!#aj|Dqsn`yn_cnwEQYZxo$fpp_V
z7K+(sd<<+`UUmuq1u=zRUhe${Hywx4N(Tgw>YLH$u&wjh;>)3u@MAOiJY&6Z`G{!3
zfrMi@O(Z2BpH>*%@c;t};2-jwWHt4Cp83PoI4gu4jeRE)1nRy^={X578mBX66q;R6
zPl-j6HEu6HkLbfgg7}r(^=ZFo8ByXpTf&Y5UR|sk(|VY!T@OfaW_B7c@pZ0~l5>jf
zlWYq-Y+f@`D5>L}dP{xT6WpL<%vU=m?fw;|z|U#~b2NQG6;shnyE8gkGueb&Q$0qR
zT4^)_1w8+~?piyWEx*C2we*<;cHV=6b})Ok(cXi_wKh^kB3MgETnInOl&W{muSUR;
z^bQ4Fd$p{=e#-#y6}1YKAT0Vwk2;CuJsbVPf#LSc4-so!pBhJy;?h-N;;)$!n+)>W
z`aVaM9*4wjFr%%q30QKM+w2AR_WF|Gh7s47k+ama@S;jurt>S7qSxFFbSwO%z9>XL
z8)`Eoemmfi18Tf|02~v;3d<ed27Y@I86OF@Zv6@3X$ZcKsD&b&C$I><wU_BmoL}Dy
zEZjDGY=7_G{<F!hby*+@aq8gQcwHy2L={H4Uj#k7ZlYELnN5OOpMMfaAFGJJ<x6vj
zjVkd~_4A$+4lk`Us>S}DDqAf_Fg6#OK{s2EwyfeB6CPU6?l}QPp^PDaLG4TI)m-6S
zvV$xkY48sd)~z|&yLjvT+8;_#IUn(Ic<YE@>`R)7qw2zd7d!6k9xv&@F-`P7gvdm|
zw~epX-zP?~7{II`Oiv>|{E?w}15xxwX452PhQcJm)Q9T=gWsh0J0IWaeXYS=Fu9#i
zf<7mJwD}2wpxDiC#`G=53Vk05nlm&Il_Y!p>romJRAu;s0ChA>GC=buXx|0Ih6>3w
zgL(GPh_b)CPq6K}JiD&4|L%6)<dI$2E(g~Pbz_FBoYMR1;d}@MnN<e2pmahva}1x7
zVGT3Bw#TY@zQ_o6@GT34Td{>}cH$>`W}yu*<Mdi>MFYfVaxp`W=>+V3x7x8;0tk=i
zQKc=k086L!u(Thvt1z|$V(2AJ=(8^w`0PppX-=Q%y47RE#EpdwjFAq7?&C(^tz1{|
zew*-w`kTUKeH>rJ(7K1<6BaI>L%p+O8P%fBowY7XIBTY-?4ZLDH=5S5ARkR36HnHT
z9{icnhnI5kdHS!CnKikhC;NDm->E!^eNFpB;>2tF^Tce?%fIh#-&Izm8T#w-o6Cxb
zHNi>pcKqbGW?LStJPkP@|MihY%=e(8WQ?UsS=hjq7@G#V3s-ypG#CbA>xlmeQtl?*
z{XC&ZaE}kRdUL&4c@jUd;TzWUm#(k7gD2AKU@r~-D`Eagwts84B2-gR%Fyxk<agXf
zUe^pQ=ir2p67oM+@$<yQ0Y_JG+CLuq2NZtY>7JsXx!g;u11LwsyZSM?r;to!_Nyd&
z2uvbsi4~QosCDT{#lHsXPk8=YGRKw{n+Szj9gy%G(<lwW-Hl^q9mH+8HnLwOgeuaK
zu)v95clX20gNU)f6+pEZ*b!)Q!}Va0CX@HU>+bJZsGBRhbbqe^Q$u%YMz2lg{~_Ui
z8H%SR3S}Ui;pX<dfZ~7;W<6z_Ocun``heQ3ksD?HI#uXRqUd^u4vlGs2eUx8Jqoxw
z3OA65ibFk!>96u^n@B^UXTN^R5X}R&wag79W))^H*RKF!Fw$gWa4vGq-eU071FS9B
zdKhK<<~CSZ42o1t@nAusQGTpe#$`c}IXnn7nV^ZMh%Fb!NI@iL6d<d#T^1M6hc^zs
z7zQNBQp1pABZQ`FQqicU09LCP?3MUu-PJ^Ehl3(LpQ%cr+z9--+frQBMJ($^0jcg|
z#=|$dNY<KoZU}uqa5i%v`j{nts^a(K*`b<@DA{P>U+PMlVPfzIypfiIbfVkkJz)8N
zSIb|k{~w(7R4|KEN?Zx~S8euJF?V1YJs;v$|E?b{WrQT}o&S?f3+OT=J1D`m$5Bha
z+W@a?iLhp`5<w?Q{OkMwrD%WeU2Y^T?5c(&{zq649m>lgg&(m9;eZ~3z&<50wSi^V
zy#HA0f86B$)cxf{_NybU{??xzKzWmdI3kHszHbA)2v+A%^h_8k{hVPu<xAJ>>xf3}
z^9w}q9t+pS)~rnH>ARX|9-s5f{<b4ej7H9w$@!Nv<#fVNR+U*ZkI~n02gu`j86Lno
z0)0`&+_m9&NVOBSkXLfPC^#eC2-^YN0f;Iq(;a&J>~}T3Fpd16aukO_;L>ALb~|AZ
zlR}VrM<6i@zh&Mw1m3AQ^N;uc2Vwq=ofo4VovFoS?kpqqe-lkPOvI7cc;g+<--<3k
zfD+Kje(fIjs0g*b_~&YSsFP5-YU=Y)fTnJ<rza6VTEcc74DTfbZLi-{lLa|QL&6Xy
zXZ+$%h5i-1|4!aqd9?K2AZ&h$p-KQh2Cx7e{K^m}{w#?oyw{wcxwEzK5ts{?))$4H
zz#=hSPACn)So0E0fKXTHzXf1UwCId&L;wB{Re7RxO%qwx`nLV0CV$rEe<#o%CA}*b
zvaH{|d;q$s=<gUZGq=_$ex`zmU;L)#-w(6tW3#0W^k9M7Wq-R8dV4*Oivnv9{cnZ+
zZcYJU2pre)rbM{-j&b(G3RhJy;*khmvKFjMaN<!torVCeguN7S-T}8-ryk9|{sF9(
zAz^p{Zx14@vqLPfUMI&c*F`MPxy7o0dQK_uMm3ruu#yQUkAk!=FcaJhNQ9kRo+UtC
zh&>nrzytjh?5WC(7A2Jd=-mlEQX`+Lsbr3+W=!|XPHC`a<oGF~m6?B`O%an35L$Lx
zs;O%$B*B2Pk2X|tN1!}Kv%*SuM3XEaoJ9kfL<H>Ou7Wh90Btd0Ett?4z`z)CiT|?E
z{97>pLPj^qdXqAPCY$E(w)tl>5-Mbb@QCOv{Y??P46t|DjE?EFg8#8vf7is{1XhQ!
zq=V(R99b#;XuQ9)3ay1F(RA4){iVhK^Y3>dimnhtJ)3{kYy1^}$iT$fLZxZFL2KsV
z9>#w*kG~1^Z`I09V~@f_H`d`G^wyt%k>~R<_?AC3VHJAQAu$9bj-Ny|q#*)+nK2qn
zy;rj|J`<A$Q*o6^gdm6nl>pkR3ao?PF#gmS?ZW@#CBuO6g8^j(>h3Zq2%@Lfk#N$O
zUn{G(vR**5{$*ii@a4DtcbAATAvI-3Or?uAZcsG!5D;1)Qy3kKTC4_6p?gN0t$7%Q
z3TEW69`-^cZh&;>6eQqYuilj9a@>)}cRk$9{A%!%kJ#98hI&ULWa=1w(bBNo5w4*a
znb|0Jkmtijz^n5C2r(lrWukulHMx@}*`Pfeb29AsfDS~!?gvN5dgQ7!6gR8#mVi<F
z)WO_OUa*Div89EPb8q#1YJ>>GqlS0^uC6_&V_T$B?0r%FV4|D~ejH<77PVQWn9)^y
zJy$tt2oKmtdmbXkz=NfEi}VoYcq;+nS2%fHc<Xz_>x3u$p*w`hNtFx=(S?r#Vph_l
zi9)^n)W4uDf*FF{Gl@Rl#mVpHM~imkC(=t9?ST80p3^Bu6}TbZ<-3PDEO(dBX88|-
zlfu8oDWYQZ1Z)jhlzofqJ0v;hwZ49y)KDO3Xe?F%WG9bfS=1@acq=E@2oJzY%v(T(
zg5ca1-A;X|ZG%BASBqnDJJMPYT>>Y>Y#i^7Hn{d~V?o0(=pHsnmro)r?p&^Br&q-V
zHdZ<JV!A4NH<l;OOL&lfalGpc5BmV*<s{mF!kkMWL4e!#15YL6i1n_~-Wr}N2o;|9
zPHLn7T_o`t)FwbLgGbH7PCWln18X~8_<=IB%Mqn;hIW9Nd+p}QtLP`PE)t|##W{00
z0{jA!^LemLFrv%Hb>e}Z6d6+=sDEGhcPHFn0CR?H+C28U=a^JMx7D`j9geYC>T=Mo
zn09iwp>l8ELI6+kWv7n3NbN>D)q(GzXtLCnLtyb8b<ob61kmEsdJJphMz8TEMH29C
z>AsiZS&|PDazJ!gzSFV<33wo;zXD<=;jZuWRMU38F5i_TzK5`e?MxB9?}^mC6&gt_
zC`$AybE?2o1Dg-Ub`J{;QBoV3528b5j&DtsV4@Ds<wy#%dma7sA@QfY*?rlwYhVV!
zEh0~eX3gtim#;zIasKLF^K(}_!}|<cN5y^#2_adm)gaa+eZ9IUNB<)Yc6}9hwxS0}
zX<O=uZWhchj>!zzFXNvl+wjwUr&fkJ8@v;vA_P=rTYegPOAup~WNTN%MsT`5la{R9
z2~B4*WoBEf8G#-PIK{yj3`OhldzB<wZgtyg-A`-x82pjAy&!Wvvnj$@g^K`GY=fY%
z&@J6)GzuS&teiKep_Ev{D5+uu)bpKa`bT)xd^pz2wf9B#Yy@?WER_hDFGa01=oc?q
z<_eaUBr~Op8fVp{$aFv^Lal;kQeJgao$?fT>ju_Htg65SVn#H6LikWR#8~nx?(1Lv
zi`$`MB4L)dJX5h#WVOkx!<?bCDrt?I@fR)gU%@L5;~ofbkjZ;vsobgQmC+p%iTR2s
zLM@v7jI)II&WdsZ_Wa@+-$ewYvn7((3+kCBtReSdtLO-Z@lp|0L$o2hXUd`sR9WUl
z%#mySc*CXmeeB;abqj6AxtY}Zc2+}#PPHr?xFAF9{K~gNIn`iuNJp|(!)V{DwBMBU
zs?HPE9bf`a2O@hQ9&Jeq&P#M2&t(S#<bvx;h2zi<1hIm#;j)y>>zF8(kQk${T$i^@
z79fw10nCqUjV}>y76W5K^hXL{kh>mh(ASS*d}dWmVle7ZHc7P{gcJ*5?TP11z+k`z
zv3Zgqc+MD@WnN+Kd!9>%hcfD2U`Zx1e}Dy-ENSa1fnLQ@X?ilv<lcv8V`mA8w6kN{
z0!|Ic_YSh@<+xfA+OgYmwJUG*rKZk5h49lV5etaTb89+zYDweycSw<27_U54i&1OH
zr<g60Qs%ACyJWgu262GT3JUe#HF3Vs?2StP#yVqti1nj0&Bcj0unm2Ti2pqYnxS8p
z!xv&YWX-R6lrU{|(1xO*;3)Md(T~;2+Bea<APSgk1!_CV_rN#bIY1EaFziqBd5voh
z<^d5QR&a*+c!B_~RaOvRGc)$K^ET_AqExhGp^;iZ=BR1O8!PGKSFoPy^-fJ^BSI^&
z+fnNaFvjTAdm4)0M%>(6#x6w!<hS&5sli;>uw^qD^LUs~2%0<k%aC9k{|$(4i-Io_
z)k@0S#cff@*+^<?4T`q&o8lTWMqte(6WN>bFPM`veZ%w1l#Dx<=XZ@{->%nhkruKw
z<IOE=Mau}q#nYQx<;2H!(o#cM#>|Vti7>&b;0*{K1rt3ppFGF#J#PPA8@z&#&u9fP
zIxgQN$T``sxKpLm4tWzxFZ1vxnJy^`Q!_X{L@jg;<MR%Nh_#h%zZ%S5PN!;B9=j_-
zxFo$<sFm}q&16*Ts(Mm1%~b87iqw6m9SsD?#1LRBR;UK!l}Mv`tlhZ+2l3&Tl5rFl
za)z@~vZ1+J_fX`EiZW*tzOi_VpCUBRwy?rrf;saBq$*bS=0|7ePf#$&jyn_2X5vSY
z=!U?l%t8eSF_!855d=zqttC7l*_;tOUOFQbmu@{h8g0y?Vpi%AsI>K$uL{R*^Y9}U
z23X@=AjTD)0lmP=w7KQ83Lf&wHMnL!qXLKmatS7VIVShRgP{#<$UM!SU9X1@CrN#)
zER5d+%w-!5_I3ypX$wRtJQdEId@TJG%Z(~TCYqL^vTrmIJ(k;w@+39G^hjWR1!N+a
zhlK##N3OC<FjBzuvB%W<<}?`4)7yfA0`g+r?L64R1A5i47#Tbd_!U_pwmjwos0(;m
zG&oOKLST7FlmXx5(I{0F!>a(X(4;haU^atCM0@P2I<+gQ_rS1-OiqdlUj;+ZDI`~N
z`Kf>6D7k~ZP2MbFl1|MhDwP5Jb4WI+xzohbcr<N3eI+r=5MsV(Y}%aYhxyv22%X|I
zAMF<`BuKG)2(MOq!1<9oLsV?fss5`yn3>H6wZXFX$zUd-E$bOAG&roKtWyF#BdThg
zV1u~ksrRd{lWW$FbtYVEY5e@;z{q4l)O>>Ym{5++2~oe51eO3n?U8EcEA7Y?c3T<T
z(%99Q_Cr>(Ew<UG!Fgdrx{BysY1kP&n<E#C?7`56hbkz-0v>U@_VTXwvRzJ+0@M|z
zG?|QJIKlB!RoLYoMi0bI<CA;)gk$yl8>?mkXE?c4x|BQYbznfS2fO!u-9U3u0SpB#
zdu}6yHL?C>A;UR}av2j=dMtHm2e53iKK(+aaR<A6*<3x<!Q^lt(6}HZjj~w)dM>cV
zgO+OH*MB@|L~I!mk$!4y$0(jXC6bCaTd=_J(Y<9@53a&NL1I7nfvhevKf6%GBk|gt
zSqWH~Hq?JNjIY-O72K66ETM9%6ce9<>WAx5NI$GlXRmw8$$9`~B|t8Kbfih?Lq3v(
z;V1)GV!-G%eT(W@pJst^5l8?rR6Q=r<e>0@ck>hegxp|xAy={wSc488ouF&T(50ym
zb2E=Z?Y@EP-OR%Bq!9noh;LOIdNIVqui%C7F8&DrwAL2k7JS=Pi;zaSL&P)8_iR!I
zcC?s0pP((Cf=3ZWJN7(emiXOUGy0V&<_5@Xs&+>MSGt|%S|f^phIn~Rv>{ej^I?w|
zU2#8xh%OvuOjzQkod<Fd0pr7tEcElx(Z>`R2-vL%_kEbD&q6nXy^CwIq`wIJraj+f
z>nGBIY?agb%CvTzn*mHHyuQO55^-QZ&D7M@kK(D&Va6CtN%EQ8ZCU~Ge6>C>BHc_>
z&*70M`rN$^*{;R)>-NPV)b@J!>Af#-zQ_elE#VYU<Dn~$_D6E6C_&8xF{=3zfBD9#
z3#~_C0;p?=7MPqlIQv{fiY1ym9zJq3;0$>)a6)^wE2~OIX~v0SdTQXjR%QULQe4jn
z?MLz)Ltjm31*3uia&VMDo#|!88e6UGbJUmoRag5nwYU;pCyJfP(49)_vG(d|6X!BA
z6Q)JC$6s?|$>KE$>S}SKVO96(sn|<u+oOeg48ISf1Pb+O(5jM?R9B0KMpSPf&L<k#
zh2clYDnkn%E=&a&!P$d_>YDj5?frHU_vI}r7zM)?4&b7iT#Sl*K}_{%744D3(JrnX
zgCXJK`LTgm9N~UqQ>AOTv1)-$dDOp}w!2NnWmCx8cash@Q;)2D9BYM(u3)_?<9xFH
z98KcBs=jGZybBI*K*?fWIr!9aj){h}keqadFP`)UWcFr-`wBXTv^Fs1@?sm`P29qe
zkDzw2w;(~FJ4(@46&=t1{YT*r((*{hv}Q2B(MHd9HgwP8{2^rncJc+~jLI5i#QjHj
zae<Y+Y#WanQ2M{_Ixu-Yct@O``I%LhJ%F&tp-g)nsf0=0(Y64?5Kw;ZGjd2DzcZdO
z$~ZW5o&)7)wIbGhhxF6jH174@>df_n+cGX3#K0_7R;4iNr3AlUd+3q&5bN@hMbn(!
zdOy`#CQ;86Ms$th>WaB{wP@XtM>EwBxR#RNpOcYBzcduBC~Vy6;cSN(S)`5+Ng9;K
zSd6EBO}uZU$fwBgT23Jluf$yu^Hh5AD~YWzVI2&nD_I8hqWobchL`_CURA1k@!gTE
zY{Gtg*qvb!LZ;Hos|l3FPkZSPg)qe#zZ!<Gpd$Gahw==*?SN>yO3L-Pi_i`*HnCe`
zX0mf<5aO@R!c=K{9?SpWmW$Qhcd$<LwmhnyxG3OcvWpUYc02g)hPh^rlu_A=py%#S
zP?MPDeJma${!B4HsiB;S3UuOul~KZRC23U@l;vT`^s>Ei&z{Xxg-_iRz#I+<TWkoa
z<Qifcf`Ex)_Ynr)JrF`e#WK;xL7$n{JXT<Yfi`H*f~AyM%R5pf;ziM1EgzW&CMl7a
zkj%3d@XalOz(g3L^oG(6m%}TPRXF7!@7}CLLQ^+w#sM*@hp0;9EhD__x!)!O#>S0z
zrX#!HnRd#ek>0E3PG|%)k%QC)sMj1^%(vpR)Xgwk2pC25Qo-A2^)h15b{QY}mfZ&x
zVk=>_WI%ntpX@2Tl|7^sm?l7o<`sE(I*O%@2QUOsm<_mYt1@PwtgXSZ%S#kKHP$s_
zZLjAsae`7$v{#9iPqabl5`{{GA@i7gI1-G?K8f=~s3P%@ZVam6IVARE`gZQBgtJk}
zZLYd9)S^;+%Tr@1m0H<s^03@Rf0K!DaSTS1sf?3KIhwf-B!T5;k>)6_^o+}K9G@bg
zEA+9Yj64G9c#ha1)=Vc$9JDk?84>LY;=qUxJU$}a8T2YCS*;wYJqgzpC(FJ|wy4<_
z-@<EEkoILOp$|3R0Houyc=&{Kw9JHn#OM_9#RS6LTQ$!~c^DhTVK6gaDc!TUon}8C
z(QRHpLeANp?Si$=Q<Mbl-{}ss6k|{Y=bfb+x?w*s3H{9HDm}F+QyH_e%rW%x#gL44
z*!KWyhJB6fg(Wo^@zNdG(I5$^uCSbwU%nnfE>PDl`2l@!KjT7ss=g0}AN`9Pe>fbA
zHOz0h6ioRFFG+9N`ca~|87n4)ibNXEfOxUMI?#<(EPDSbN+CvfI^m=Qj~SLg?DsZS
zLsmmm>h>xFroE7!=kl|BIC{Dp^v@&8tlzqz*MJ}TIlm&NE8h~7s7&W7WaqO?_lEqi
z1r;qF%5CRaP?2M~<_H|MYZNilvE9s7Iu##-xODLb2G~Rw<Wd8x3+dHoMIC4xb`&nn
z+r7Db*+DEkAT<^czZ~D_AsEz#js*<B)4N!RFBLfJD%hs={UeyyV#o-->GpGtGkCL8
z%O5giw`cZ{6DfrM1fisz#%!+yzTqf?+qTV(u*vV!^5-L}U|0K*ON?72eIB!y`Dwl3
z%bwbx>M`;*NQ<j7Kl|qA2o?H!XIhM*;!A;gBX~G-FPU;nJS@`0j3Kn<<$)4;V+0n<
z4v0tGR3`5j&yrZ!ewg+37yHS{B0bmBQIBuyxx+jXpvUGpG__x^A7t&XO{dBq&`U{3
zlHh-1T5*U=JB8BrSdmjxe%{lO6dK!>0bZrzB>4u!GFY{6h^htN5Hg43<9IVb*y)92
zI9jB4pV12UtMZ|Fa&@n6Ix%)9ll5WDnv{2X>L{^`*0m+|OS<cEWjon+O?VXEugq<m
zIH>zyBz=cJmH+?#S&qXwj&sa|gJT^dbnMN+v3De-Iygp=>{QBe?2(=9y+dXpm2u1@
zqB6@SsYpqZ_xF5$zdzxA-1q%_y{_wdjeO<{Tc7$w2KaCT`MIa41<G=&U>M<A-XO%k
zn{QcVP{CXizxq^qGHI`GxrJwPRcI}$D65=D8MIi`|N2g*Zh^pY7PS`n`4?3nzMYz<
zNL~+~Ikv8k`a(udDT)`ex~rYnS2-yn0=}__j98(+hslvs7!T_V`|wF1C5IgGfcuWu
z(KwmLuIQS#2(2_-uP!02L=h`xoE!K^d*Xxo4v<^~Q-7F(glB1+qI<-gsx?k8tPdU)
zaO4{99uFSm&LdR#3_*Ubc+N6~;XO(|VRP&02=3k#h{d>-)z+r|3`(c-#s6f1%yo}V
z9Ju7E+s11OHn}GbzfLdj22_RK`y#xLt@)Sm?$2RMr&9_^!Hz3KtjI;w33`39x#F7O
z6#e)ab{V9?wy-*Kw35?s^JlB9xsD$w0?SMdmV09V@=gC4{-^?d;I9y-O=eZty<n9?
z2jQXq<%xXve&>0e*O?sy^{P@hTLi}Z{Y%y^)e!w&CeYcR)?j~~z)nRpHMzW~7jvF3
zfr!E&&cbd3M!x0|D@xMg7f8(^H?U^Yh`Jub-=Css^=vU$Zd^AAg>YH*qiKO4q+>Mt
zBEYun-%(UR4wxgELjp2v?OX~VQ2#Js_B1rsPp8y+ceYH^_~4g$HSkx@?;NG3(P*uA
z!Ycilux!Ic7W*e=WVdpER4zjuopAX9SagbwfTR)l81f%Fz{h<QvGDWk(~R=gfs>7c
zygxUf;OC1!%|}Qfok+`Z!>7+AdMUo5QA{aASC20=HeM?(Ey@;zej*HQk)B-uCXX`t
z^Bwiu+#63DU_J9NzZ;iKTV7RnuIUth6lco(Bi3OYCJ5t!BMB3xtirtLoy6!H)lm@8
zDFry;vS}LvdgEVayl#KsjN&sYU4LBNRsR^<(0^u+2jyI-&lzP|8Dmbjh7>1zdW9Al
z+)kS;bv01KQrmkcYlfT*0ZxDel)TVnE)oH=%FD-SK;HFCk6dIz1d)j9)$I~S!YJYG
z)VTnUgi==*e}1MK_a})^RaztRW|z&<&_jeFxlO#y&&WG5`;zz)r$r@S@-Z%fw)`q}
zqwMv{;*XbqqKVC`|5FeSzD6}geYL21h-YIqC>ySojW;P2E?Lbu6v)cVd(ma`o)0W?
zo>jUQvP35EupPBju|CdZZ<oVzsVTA?^PZkK3uEm&p|8}5JZoG#y&-Z6l<{Yv?EDPj
z87_@(7mD}*N14IH>rO9%ofV(drACFW-AxLJKKtpl|Cc|xQ!0!xd|i@Pf7xcddsFzM
z_};@7Xy@4wi($(!%Rw;Wt2j`+8Mc|TQ^Mi^Ou?!18*^C>79~0#3H#*ogf}g9isPd%
z)^>gqDGeReV!eRIVV83aP_}&b=17}ij1epaB%W=6N%9sR^ZJvzQFZk+?NQs^li||S
zPq)2WF~7S-<G@))d|%_upEg%^ny&LDO0Ab_!9anQ`oS8m;a-M+O~7?`N&&D0MYU*j
zt=$BnK7t-&UY4>=be+&DqpWH!sZ;ZrgGR7m68vpcCMk8)<?do*by0s$c5LJ1LqU$O
zm-d_nbs86Q=QuYb(M4W#yeT^rXKM5K>o}*6`$Z?oaDBJOy(6oXpR0iRp<3s}?kjr$
zvH7<y>Y^T-I*zeRvJ)$R+lVyXM>;uKaZ#Q=&uPVplI`Q}q0N|FZFGwwZIUBEk@k1m
zy7Y@%a!-=4kgwFYf0n#X`l_=5It_P43tWvRZY#^!f=KRhxYw6@-K1hFCgQeZ#?q95
zGS%K=2UD9->GU#8I$DHkh2BB)2>7%fe^GiNHCt=q002M$U662-n^J7u6CN=qtEk)J
z2IyYS<&m%t_`H$zdmi9XlO(TMr1{r4%oUEW#CS>Oip2k+DPGyrm|oSEorBy{yv#tw
z;o4s@k-$KqS{~S-r`Skj<Y1t%Y2txa1|$dK9v2p5ReABPtKWV`HLIlDp<7TY{iEQi
zY+8y~M1R?3Uq`N>t14R(ibH)g$HEBh(6id+u@Z{zsbe?bmS{>~?>wC??=|^e=q2#B
zXiKN(vIfcfc#w=veJb`iQ-*YGE!N|&w{mIp1LuPI3g3VNmT&VckB?cey1V>Oi*2~x
z#k9ob{MrV#_oDy+kUBu)Bk)<4<T0PG!v3^gz`wiQvSO7LX2()rde~>q{8pZZXd$9_
zrJ@7kJw)NrBwNTW0DCzKvqC3^uY^!RlyXM)>E;#n%-(cP6$vy?mA_TXvd&4{u+ODb
zOzi;R<LrP)K;iUx*V6=9g=JX~Q(%$7Vnke$^eVT}*$#C1kAai*njaIeUwJfg`C55t
zFxO}==ZO5vA4osFy1lHkJ9}fyQm7K2oK-${F*r9&Cp{E24_GKCxiYR&pOJiOpgV3o
zl=qu@R&Q3DZJ>|dYV(c{7~b%OdvX`cQS-dee@_q%SxTvo?w{N?xN*QddGo34RPnaz
z8U7hnCF~iTzW-&h#>OeyY2yG$KW88A481sd_lv3Khv?+{_&YvQfK}tQS>w>VL$L-i
z)Rw{V%WeiYntD_0&3fGoT#?4TLfJ^zTds5Uz{lt(3Fa~qxKgY2Kt)dvi6QA)rvVxJ
zJDdVSE$}XTz^VMk3X5?_=V4%?CoIQkFHvjF<O5uOXt3*vkoQpPR9B$Eg*^i?rLVbv
z|Noe}_J^(UHuKHU*f)|-eY;3kN9p=j>{3FXR{LWIyOe^o$=8#vftS=jM7`2Ho2w7^
zGd>^)7%83$UNt@He+Ia&CAbIMf6Ydoy^BlIK$Atcw?0a-LR14aCSD5xqndWq?Aie+
z%6(y`<Xz$Xu~$u39y*C|{;5X&=x~LL;%Ub0g!&#F)z{b)AV~Oqd!Y=RbpeP8<R)x0
z!*xpeuG!@!X0d$Ten`tLgjNBFb$P1vvA8HE1YnkENM7+Q;~MZOXkvdv@UBjKgoNXz
zRQtM3{stZix!DYs6|D_<DdmhPDqPjDx&h$P&g#>Nf3Z!00Y?>K%j=xFp1)7Q_?}g+
z>r3j9IB>`B33j>R<<2Z3(P0_=ELfwc@;5Xl)S!(SpCp9yWs277{4g?E&i^0aDzR_9
ztZG+3m05X@0>!+zc=+&%)>2Y&dF|B~!(TsySv~!kLR`nh1Yy0do%I*ohs7X?nKSq@
zwGtPZm^Yw6u<b&6#s98ZAIE2%C@od}%IV87EqFr?JI7j4skU@KSV4TS)Csa=)ZjNt
zlE>+6Np-5yNO^@V7Abm=4XOrb!?xHaF0W}ixo%uw`srS<tl$FM_<EH?JE%)R|J41&
zJ!7V1qw&Ow{e-zR3E;F}!qIA^^kmI|JvFQ~e$ViEDTq>`vO!CntQ9o)JIxKaz33Hv
zn;R`$+W*<ZN%LJRK#bAd7<G2On<5EY_*`l5$$+K=xk==tahGxg@Ud`m9J31d+_jSP
zCVmmSQV@a>?|`#PK2sya2aZ=7ilN*a;z8v!%ID%(0nG)RD>&vGJb^gQ&uuxx>b}}u
zH6J?slqu7as+-37KiU8b(=?jqQX|^<x;wxg0hr%^Nqy+;S@`B=sF`lB!HvBwjNS5n
z?vCsI#|$j;m2jZ-nh-5$5Q(ty5LRlBXI2gx9EtP^JId50cx}w+HcW6xX>`rvN|X;Y
zHwH;1W9{;tnAkKA+w;2Ge%D{?aJh3bB}e}#GO{lRmd5+W0cq>yZ~d6xeky)+P0`f-
zrb3%+;_mlg-x6ge#lS01X)C^p;4V+8b}YeAJqSWl!-ex{%}vS27!WMW?ZL?N?c-}v
z=O0NSRL%^%j{;qj>>(A&%I*T+UG+X#X*c@*@M8Ouka)CR(pd%z@WXbei`2JXLw<Xf
zG(gzHw5qBgaS-@N@Ku_Fl@7T0<<^lTlkJwsb__rsVN^gi%cNNP2mKykb>9#HkT3!+
z)+fW8>x=KF-7mUYFW02EI~i>O0)-iwiyQ&%efK1l1qpv@#&AeVlEJ0YOJP(lujb_H
z(c$Y5y(erjAdMuEUILG3+<q@Wzqg_e2fA0E3m_GuM}7gy3l(hY+49%LaBQW1jCprZ
z4M#Ch9Jt!p;Cg_wlRD50sxWX!rES*w!6k>J?tl;OmhGBUa1pImRG@OG_sls=O2JgU
zy7JbuCaSVlwBmzZGp{`&L1oCFc$`*b50?BJaqdwCEiB*<``6!bf^5~kmu;@jixs?8
zo0Q!^wFmIT=oNm`uw-iRXZXVWb!b+VIf<H+B<|Y6v(J4L0#7h(3f80khGAFtj@AQf
zDDEu)*}!nB7iyAPMqP1hrPh(^(1@$~1!+K1oVUySh5`F?=3Ita4a%>dsJW}d8&3QZ
z0Qwn5@;Ju;Nbh;UrY=}8=J3lvsP?3(yLBi#81lDo@MY8g1Cu;RQy`BztE%v~k)2hJ
zRAmX`9*Y}nC(Z&;_i**0>;=C^uy|!KyupEHHWtRP4Mqi?3NY(L9e=>g2FFAoDypRb
z2;5nH52p5GN#gG_sqX|mJ~2jR*?T{>%7^l=G^U5q2EDnXp=nX-A^hwgHiG!pd=qsx
zx~|>yr6i$Bq)y7)=JauVYk@Hj+HHKo?*}}oS3}P&4lM-{T_X_eAFr6v6yjg{=FJLE
z{%!mDYA2U;B?Drk8wgyIf03OHyHBz&6?@Q+8Ita~QLQZHc#MWuyJAoPdPO1iprhK0
zZ0rr7Qp(s6@#uOc)UJ~`)I`WT)hx|$u}9%Xgu>e7eIzUqMIff^cd_Yal8#ym+0-e(
zgg}D|KG;j~Y^^as=EB~vvt+4uEc|YSgX>BrS(f6%zPDh7o+saOF8p+fhXjlya84-#
zc0|aVU)`D@z(h$&@tJu`?=vwYZ|f%04)OtD7#!b!6iuOXd6*iPT1`Z{g=4K!`pRq&
z=~BWHCu)u*Ci+yM$W5Hkx6cpJcjP(x#xur<4}U3G=1QgziHePfJEqQs3EQnCRmH?z
zt}D4{QKe{S+I==KmuaDL(4|NFr+6Rx^9n!ErvcF2e=4@`DC%Ap=E-UWoC=z#n9(=a
zsxiTWd2s$#7x}1Y@$H*Q+X7{pL*l!{yNd)%W(gjJfT;UJAC{j4x?%f6md&=iEdRj|
zUt(%*cXT%d>m}=_8vf$Um>81D-XN4{$XWX<eb9L(X{bzHcT-9z-fz=%=ea9@fi2rS
z*ZJv+GsMKQSDY;)ZJm6ncDrAfiECb}Ed<1G!|Bc9qvw>^u=v&AsWLvTr;ia#Jge_b
zH8SN1?yW9@=$5UJo^lMsPa*<nHyZzax8~SURo#-yE{3J2_IvE7&KXRN5nJD5wk-AM
zXr0I7nI#Ev&)GPw*Zat+92#Y9T>4DY*{qb1gdf)Aug*nw7#@!kQHGWSR;sYZtLO#8
zMJL#JGYFImMI58E`;O)^!%=QsgXSNk)4q+vz~`1s7;QSQ{@J&MUDEU;9P9Oka`o|k
zp8oPH@T-B&<-4^;8v-lJL_@C7@u+JjcNWqG+I7WKrC`5zh*4m$#D&B^G8U9y2<m;i
zq$adVr(x{+>&%qz;EN3I)rnjlk(YHe`qF!66IPm{-F_&>IX{{$8HnQ5&4Zg!#*{=B
zhSq&z*dRQ2puaI{ZTAve*@;|#3oErUtQd?;?ykOvhg1yPIGebm*={OM;o>b`SXgal
zCJg$KHtC$Js)+TjBN&H`GmYdq&D2^LDh+NOc!0QAg}TNP-d%?1p*NXlJp!&Mx~GKt
z5Qr?Zauq42msJz6%P#EuS5|w&IwNI2_8izS>ncp>?A}vh_)3|V`ZJfWV!%x@5{}V(
zh%GT~)7<|5`BiAk@z4Vn0sr1RL4P=1&ig?4J(@W+_RhL;JrOd(xIOI<*U<N&7k$I(
zD<C%zh^R)E1a*<za;`Q(qpyfhniq4WcG{*cZemIisMRFC#Z$Yvw+1N8*lDZae}MA>
zTgg98{4HsfE2&J0miNx+(X1``m_vpxCLl*ZP6ER3=8O$gq#1#V_JQguow!_C;QU>y
z5z5f|pe}6q@XKCXh9D0^UQZkLozSLcTYFs1avtF<F8w8PMn%@qiF`5rx+EL-MbM!_
zU#3=puW4Mr^uYO^ba{|SANM8Em{!%&A_Y!1yRo&)^(kI--}t<b55NW`_3kVhwY*$k
zLkkGgF^B1_9{iwMzh*Mia&$GH*P}V_&RIWR*biuyAXjq(izEzA6lE8ib6>R7w{$L$
z&ijH(Oo;j0$6J`d*tzN~g=YNe5iPLZ?H*qYLzdoQ3BKZ(1dtQi;${p<RHp9vOJ=l6
zDx3U=e*C@KSb<9YJli=24&q(|#-%`wk1335@CEhzOL({lH%|I))cv!HQp}=vFVrU7
zgqs#JWalu?FJ&V14bJ+Z0Y0Wt<K|lw*<W7aT+9vHEQjg^0zu6;??jkkiPuphN;1;2
zWUyYX74<cs@i0(FL_pEkY<fsLJ7VyimFzWg9ppOXhC=iR1!T&@nqqe`P+heP)Jbrb
zk}BC6^=P@jthE>kdX<;}--ZDI2(+^kvi8uQmz7S&`-ZuEK-Om0;xL4cZ`9&Cu^IZF
z6H(uv!WZ*f)G38mob&z!?H^kgM44kKh6~Svlm#WUsaxJ^RZlOh28jAf{=~16^jI=j
z)jr8+;GAF?_ecFz$L^M+?7@4&pS#M*iMG}C=!7z#hR45X;qogvTKdq7f%O5_=L%!;
z7NufK<!JoN=$Kx9sDMcgqd)G6dCaMgbtrGCxl|~>aMCu2Z;D&0cRnb@+F~4AU>f?b
zyexqi6UFBapc2hDFzjCgvt0ujJ8L*K;909lV|Q6M=N9Up<5P1N7U%%Vof;<rFo53T
zjiTcmy_*H#^p^4JBtznF+v=2M^@xsDaeH+VW-~t-1TAR#U4PH6eXXUc6_@vCMnO#=
zbJaWK)N-3g7_N+d=gG*UMdoX;VCT6l!Z)L${6qa8i5^?9B@&uh<)y4!wVAq9LUH`V
zvE!%lOYJQTT@?P5-G^<3M_EaP7gS0jJX3;!CYkD2J<ddX_R_`PCj7%q-f#Nin3=32
zp8l#WAjlZ7Uh#0q8KI6-z<@JT|3H`}O1|sIo~&0-fmT$dZ-&|Af7Dn|psYFaIh4f>
zxOv=+VU6OG>G+{KZ4yv~p$_{>Jz<$nl`dEK*OUdwQNjUmo!Xo!bPkaBmhDilHbBNc
zH`pN=Ides0V?110!c@`6KIYf#Suvxjm_w>7m0Nl>XBFIiGou%b{Iu}>x*$`*Z1$g2
zeXB{!K;B@yAdkUa3+}bW$UYIJYWX5PtH6eFuLZ7eB15N({Ewyy_N1J{55;x+;sJd!
z(t2M6)Hr88-Qc@ho5Qrb9Yog{A&>ehPu_9C`ro}0V}+pv9w=`{Rvmm>Z%9{%CXVD{
zq7C==oq9)h_5Agj;Su&Wy^{%;6ui08G4l6C0_uBUa|tP&Tjxt|q`%#Vc33e^G%T?P
zrO3kdp~0P#hp9+nt6!qCFi?dZYbUQ%V{k_nTr)Z}9AepcKCG_hE8iGa5v!<#bsgSY
zN-H~N4J4CL-nr7b0#U$^FrT2c(~R|><;8os%NtJ%(&*#4?4u!tjR6QfiF8peppR7_
zk~ca3J~ctlv{n7%Pj4ExT@p(l*HQM5Gg&)YnSmwJmo?GrD&>1D74u)Ey@PCXx_4(>
zR^_)=V*H$mv*$~8pBg7TEhhnDvh2Qh_K0!D*q=V0`002o)j#fW41==KC8=Mt2a?=|
zINqv>Wm=1N(lq5!`cK&h+$B5u@*3+Q*Zw?UI<$!!+Y|X)^O~6?Co=u9NImS?7VSz$
z*UxHmp8!^8p0cc0ChBtIu2(nDI9mc2mb&C7X@0B7C0~bfCvQ@)I@74CjE=>3(d1{%
z7{-|mWa=AQPuzlRDTH302;2k}<GS2U)y2U;ccqS@-~0W3YVTMIlfUH!h<S@#H?4I2
zwU&R63O8Qy*p(dN)IMzlG^sJ^WZ&~)bQwyo6&|$Y_u5COw_251OGwewZxys+3~=$h
z2>X5MpW(93>6)UBEJu;HHqn&jj)&`!;U<q|S<;EfzEM>iEUU)PK~G(9<Sd{YV)Hp7
z$rZ8vw;?D4(;z(xBJeUH6k|YfE144xq0ZLD$&pxwLIsk&pKEfbap+L=Mx>%mX~JJ5
zGCYdMm1GMDXsK0TqC}+aRR;8dRd<55(;+~BEIB;-ZzLMKU?#aKF2{OP3;#Kr6Q5+)
z^C2B~g{M^$NA;oJ%OC_iA8Jke%U2qS?u{T95U{n;c^YdzRg&p=@M0Zlmz(poy~V`S
zb$JcM!=R9%!w<r9YBT$$G?plnn~U}>xK)CsM0wyPiACd;goeOez!8UGzTrFH5PY%y
zJJXsX(yx}Oq0@cD;@%3QYYmVPeWn2%n_)Bjx#ZnXhibrKtXjf2FkMpMT;v{6X+B1j
z$V#_1)vhgYYuC+4|Bbt8|95$nJ1cj%Tws|l=lXj&DhJ#R=2q~IGekZ#8!d{8p_)nM
zF1rz_!2ud+tU_)S6{nqYwIRipkR-kSLNrGJtaj0$@=U!%bS31yS6MZ09v6ZTl_|tX
z_DI<{99SA^smsyKP%oojdIypXqh?<#Yot&YrbK|9-XRW_rqzX*OWO4Ut?KILyPd;%
z<!3d?$A;S8n#IbHSQPDny8n41urHACLC{*~QHZNR?qUR5Crvjij=*1%n8h1flD^G4
zwD>Mw{r9sbhWy9hUvAu9j5!G6-{9`4%Hb^?ES>rY;?x_In8;bI3K*w`Y&vrFWV|ER
zR#&u6a%Q;HAGA<LwuC;@l=4)t-^kL}QF^f>=N?`@$d_QeST^-*&6Y;HT!Hd-lF?#Q
zT&<hJru>~d;heXbC+|P#j*&cWyGl~B7Du(IvGzT<;Fb2KD(ObvWGi!_1)kIl4P><@
z>BE!mdE+03%=*wJ!R$F^-@2JN7C1xRP}VmP<|wSBj?D$+-E9C)v-xc6RU!p&wLd@^
z-YCH50FW$loh7dI0Rv$2@`QOvD!J$<b9(g`-493Na*6At-TwdqLsJ=9BYfWm4Y_1j
zRL(==WGdoSV;{>N({-__n3&`P$lr^VSKjTuW#xgIE$=1XwVyDXM@u;=CDp9=9-sGP
z`R-=7wM|hX+Iwr&@dp&X)`?uW?=i4fA5PF7H+uV$zSWdKSnky0iU*4?wgRag4GJ4Q
z$JUrAHuHtYvXilMBHEllgDGNfkpEfff-+DRd*D&jMFxq5<<kT%sW_E!Nbd{CoIg%4
zHFc%f4g<XGXLtKUGIYV8&2LcM=$x}=>mlf&zYv}NcZDI&#^wN9ITvvK%}E;)!uJ7m
zXggITs}Cw&?v%Xix5Z_cmBvz|v*m^sdSmNw^fczer?i#3Lm*8HlS3!5ipcZudiTD%
z{{UQB0o)QFxm9kn0+2A#m#AIbc=pe4c**_qMp$T-0+K!3)~$S;(Q=}lS<jTPFuWqd
zk35grHnhRQmP2Dn3em)PDCk7NIa7@#O3HkQs&HFu>hTGq?EPX4Y>N|BsjoS}B#dhr
zcRXO?FyyR$$tuyuxkJ}8@w;&_W%aJv-V3o~^LbE#p8*Z;ZG2aZoAP+L^F{K4mU7q~
ze4y*iC)Y-rRYNS=pW?>x7t{hv)KRj`T8)FlUV1S*F#SgYWkZ1ym~0q7v8>&0B+L+W
zMfucsck86)PMeL~wh9aV@tb?{_E(p}w|N1}v>-($YoI1&bG_bb=%_yolxC8x8DaW@
z#C6H@weyMp*2D2gxp#);WB&ne#==!{9XnZi%7PUbkyt6i=~{2f`^OJ=^zAwejE7|O
zS=RV;M~^|mSLjOtJHlU+gMN<ervA9m!9q=VK2&wVwis&h`+4T$7vP<D3c%2O@r(h*
z6~z*fBrQ1e1&H`H;R$m$)AFmxSGTm+t`6s?{Ot!nf17Z3!~kVl4nVoHM(!JuHW4W(
zjuZ!xAIvSZrFXJfqIDKeVzsJqLYvo63%uyi_e|xkIW>@z%@LMWvj!9Z$+=?l+-#K+
z^-l`W@;%SWHK%V7JsB^}pXP7<$us;u6NCY)_nfEUt)6bavhKT((~-EEfq}R2fnUS9
zR6EkK1+8}~n^RPXIZzED@l+Ic@GzYit)>~L`i+SZkn_Ck2DYKxdVoTw)7$s(K9c42
zU>Fo3o)8820W5~!V+zEF42sjaQ|!)5`!)54sEhuO1a*r^DC<(u!cLz}T1;bv`Dj~}
zN+D5G_UF=VFIU<5U)U&`rq6_RTD1YRa-49Ipeu||G9VrIcMeK*D4B<VY5Y%FsW5de
zRCY$DlA!5~tpT9e&Z;|e_?IqMVlu?Mn91x9ZsI^$1Fysn$U{{aBykJy?>7|h%hTlB
z^;<gcvd>+J8)N?7Sr0(wF1M#o3f`j6nLp9%h!aRge4F^f^D8t}BtFdH4LMfjoOP%Q
zQ(=_n7C2O*K7otQ?&ua&4%O~lNnP};PZ{KcEVwkD7>J}2U4c{>0as1rR3n!d)*kRx
zLnRqWXAX{`0xU8StdMm%R1+spSj+P=z1NWx1=VbvI@w1bHSR|ba{)M94kkq+P(Q_N
zZH9}%GvWpp=vkbeXMZpqb^s(5=!aToOLq#C#pcx0IjK07^o-c|=b(c|Y*|BV{ZTCs
z)<sJ$8}llEDW6CT%K*R>WeQoaSqbl5Zz={i7f)(ldd;<^d^)M@*4!o1$Y~l`f8$mH
zWi$ijj`b=5cyMgnkpPm)z1^d~xz><@+?W{hB9g6A9XHB7qg%x;zE(Ct)*f3Ucx-Zm
zN^fCGG0=zfMp5f;MS&ewqe(?oxBhy6_wDdbwGg?d|JQfMYNrIF6-4t|HF3Bu(O<75
z)X%FJS$ng2)K_>k-0xHXX$%Rb!Ri34Dwc=ea_4k|T8vqWV5hUu4X)9DgXM43F<I}L
z%u6Ggp-)#?%ld&*k@Km2uK8Z2g?KEO>~fV#&;d5^s4$b6TRjOXm5eJ2tCE+X?zeOq
zA*J6_t(d)};X}aZ=IZO@v2#+D)u;u<ajAn*_=M1{_W77Gl@IRJA*nV@M63P&>`s)j
zf&qwYWZov37VN?7&-Hhv7+)^zivX9OT{S14n=J$pdq+y!V$$95*9fm4q$QDJ7V4;}
z`Q3WU?K-pmkpe|S20APxRNB`85Blj4TpD{r>mq^6Uo?MxDGx-cnSvEqf&l3rb`V=s
zErJr1ftALh26<OX+c<Tuhn#vqE|@YX>vq7Q%m{>s(fp=35zWvMM>(T6D1ZPhSFInG
za)=&f79dVg1$@7iX$4eKp?{|WVp1FU%Hcl%+XCPzW`0iSq^#2DrzFTUZU3Gq{Z$G>
z%uxagmR9{8SU+j@kNrjBV~&0a#ga2LDzu>|U7re|$coHZehsShYZY^V$D?_E@}Le@
z0J1)$%C8R3aI2T7R`m7fo712I+01F&gC<iRgnM(Fyx}|8z6}ouL<K3VJOyYWe2~?B
zdwo0_b|BaI43Brg265-G<;lR#Fsoiq91(zW<qvSWr~ng@h^{`Be5W12X3kXK54Hxk
zpL3L{UED~$R`+q#Bt#!B(VXgjnrhe$d?<Ic5l|@`4*taBQ(}+{#PLY9z;(|ItoX9;
z+@Qp|ISfLUKZ2<b6S?|9%lkBU3m~tt`t+Ue9!GEp)5(fNCfdcY?lzz$Uuh2WjEb6r
zmzIa8kCXaxJL=0#mIPDDMuYU*rTRll^9&CD-Tn2~sY#;g9|SRqeI%uh#azUM^mwFQ
zfOxl?N$(r3N4K)Y*;repmfc1}m)S<J26v~f*dMM8c<9eq994TH{|Ou?s%if{cOg5R
z9?dBp_9g}DW`qawULK83b!-7Df1oq3+aFhTEtUtWA@Vni*vfp}9~%C)xt4Ze<FREt
z`F;|CN@hg%NQUAtD!ET=weA%}JQOyo_sCj`fk#R=jDE{zL>sEM=n%vvuFxqhJsR({
zntFW@sUkXs5g+IZSxQL(0Cxf`UyPi9v;YZ<^g*3KU&|90y*$W$`rd9oyLig7xqAuS
zV}e$#o*%yTGNSYnqH?308>|bXhTe}<WwOA~QAEDa41Ji=^DQu+d&-e>Hj$)Y&mQ{;
zcqLZ%mn2Q$(2X0%QCewNAeEoT$$iGYMA2itJxB94ME|$c7vb|!mI37N9v{99)dzJ{
zYOnWTv~K>#$RS$qwZc5n9hdE+eC`nYg3m1lfB=T^sq2mPrDb>JMks<SAD2yysQCo#
zX#Ic{y^jHv0Ys}@bz)1o(0;Qa>_NI%=d^K!>;~(cq_y|D$4w9I;PWv>t-<SZuXQE`
zNf9Oa?hRc!HPRC|9Myl`#%V3xxGMlWI71Y`<H}o=99cD23WuP(94UWVHKe61r2>W7
z4UAKl8n20KC8(Rc`i!;~3?D-)cWrZ2g9~Xx;j&Mu@3+c(e}|dARHhNGK@EwyxtGW(
zIa2N<u^V7-vp)R%RV(*RI}W^05bO?cWHjr_M11b4B%p{@VTmMDJeupJf9%Y~PS)hZ
zf(I$V>wT*gGIfb3?f`v2w2G)U6S|xj#6_PpS03XO8GmK?IrtSGKMN<|v}-R^;k37H
zK|>*2I&l=UaqB;$Dys;R5Nr>N!XRyN6^ds{JUPh5fn3k)7M<05xQ+2=Dw~6x<eGh2
zIvsggemV^?gCp$eqL#|Wn^AF7w0@7w(e!51H|^60B1zz2$kXK)ariP5r=EA#u!yt9
z2_;Wr!6n?y>&zmt0`o^RMc+3|9V4jSGr?0WpZkHDZ^y5ACZQo@J{mV$W(qm|tz_=g
z@qr2%Pf-?=^M`pgejyee<jS&)^h~QTI08K((mdDY)SKH?Yc$B23ATiS)`e1s8mIA>
zDeR?tuZ&Whk-r5>HRU>?rbY<~9SOhYmQg0;JEmexqekPG)hNKO{Qa_uVt)g`Xg1KN
zc|iEE-%0akP}{N~x2fPDFED=0j^OM29{?BPmwo!m=MUcHOuLtaU?h)a!lJL;ZVaRK
ztZ@07hu_}HbD{TMO7A>6^%DN|tAzp@hK7x@2X}7`-tM6Oibg%k;l>Eu@4cm{z6QL`
zLIrIMql2U#FmWM=H1Y$Y>gH$Wf8nU|#sLaT9?EJpnaVhrTSf|9He8*hM8tFS{t!hY
z)<I1SgaTaV>wgu^Q2&Jmb1H>SSK5dkiJ#k=G3IjAOW<$j=+QSLefMwedA?WkvGU_<
z1g8`x2uLIrz%*;`XL*z<0PQlpapsK%w)RY-SVQjguQf5k7BC>xh;MEP>E)w4*x*gk
zPP$39v85Qd;i9Odv<ayy+Q1@#2mr=Dj`KW{JR<6K^yRDG%)FN;E%b1=f}(hvw>g_P
zQ$Y#UJ;)Ml?S?=^UyYthGnxz&9SS&S0ztQAYV`retGrO$XEJ1J<&swIBXUew?}!5z
z=7-)o$<7{UK}_wE(cPh&EcbnTfAloL5>!(mBAseZLLPxONWY;snI+=TGSZDgfB8P7
z?jul%UNqL-UBwwCD~`%zX)J3u0UT8Q+xw=V-0faIU-Z&txegZN#(NIGrYDLf8kWeL
z0(#Y0AtX~gr<SPT2mO!xIBS;lrY&!YQAH}C7r*jiZ=3mR+BKzgN`LLWrrcoj$?5vB
z^x46|#X`mpghax&%O4^bR4mFcA?YNeAOmeZfj1g1sNJdHhUyz*l=7-ycG(QY<x0G>
zqW?wKMdh;;9i?C2=6d}fpuKE-Pg$S}^dzl^Nr@p3fs))4Qf79GL(?8zokY*C$eSpO
zI!V}*w3OIpGI*p5vO+8c0f8|;{^6S^4adRVK1#vX0Sx6Bg6*J19YbrG_8O^HGu;08
zKR;cAl3h<>Ao4g$>Y<OTyI;UfcVP6D_f*b&n*Tut`B>Sl*g~HpuJEh_3!Fg(gEK$L
zKVsINDq20%l$h`6%08|!50D+}ClYuB9*M=A-Ol%7>Ua4(Q%B@L@CCS-d;g%Wr>Q^b
zBzQfrt+DO7;tTQx0?!rZB^ZsmuH^LEFSseMFyH@xR6;RLbD!z9Re6HZ(}4j*Nt#kj
z*C(<=ot27nT4cEO&r~%~7B%`{{9_Q3s(3#z+RcCKMX=2zJiaa&(LzK1*1p9$l3k>!
zaLd0(h%Hxkpnjr8x`7xnX$ovfQ(L>)y$A_hS-u|or!?TQm{j2zE_HabNM7BF>gueV
zdu>l}Gp=}g;}27D=l72%ST{8i+kN%K!!}9t`thOla3zPBv^vvu`&Dv*LSKNe^rdX#
zPJ(Lx9g#3uuF*}ZLI@<xmdnJ*K!el0up$)6t8WxDq-f<$0p3IWohcx?6CtBAAY^vo
z3^<onQqU>0!a(NDsF|U*b~?eJ7w*b6o7C5=zZUSsbPFn?IlX)CP51nxxGoV^I?1+S
z(Zr~DpdPA`b4|WPeNYvnH={Lg0kURQ97ylebIa@WCpJl*yAsfszjJOOm*s&i(L-S(
z?#n44EX?{>#q$o*A1DtGc9g4H-tw&0rHVTNlmNp&KRinRw!AYeJopNeRB|;}5{0YN
zYL)&BulfcxOd`$&UQ2riv5d+hD*!Bkp56v<CCv;6Re74!W&ePm#UF4dPCmZf!|%W$
zI0zrNw(Th`zSn0H-F&}UzyBLe(mhSHt^s-DW#Q@qJl&bPuv+-1fQ|X<xHD*0)S*ey
zSAaIs3$o-A*#HK<*65jrw&%b*EPfWKut1{-mia>~w`c-N$~ult73Grv9z%dVoI_P@
zU_5XHjY>5u^|CfG7m;F8X!#GI(cr`{Q*I3$S@zFHyh^i^2|MSAoy;OSDIds>HsZxh
zs})ILw@zDYj)%(yKQ&SuAQb|c95+Ht%@O(UZNTpR!<W>7+^?#A)-IPC-i#i-^`&o+
zmE}yQe0@X`R{hpg$8H+>NTA`tEB7xuPtUiUs-^buIG279A3mRd?T59OkQ-e5bH3^}
zMtOsA1?zgk(U{OM#rRPRN5+?9eg0L!94*pj<JFS9ms>q!+%JhUGc}ebawW0fip@Ca
z_N(k|dHdd}+b3XneIPl><8e3FG2YTLp%DG$i;w4&z{0hy89|*0pl9m*IH#D9!Sx$I
z-pqeEe>?qKelbXOVoJ+WP<lTxYwOJYqFZ0*j8vzBZC`CK<VkP0NMyKS$k085%=EM9
zLY<V8Pr0FQ*6KwD<d8_)X6S1%Ls|rY4vJexhqEcLEa(|f0kq|@zuJS-aigO~K@i3I
zQcD=CI%&mV=Z2Di>%?<g_y|=rv)}#dig$D<;0kf%B=_gBJ*R;Zjxsn%aH^*uiW+n#
z{~BNz=)-XRER7$WnXDwxQ7v3wxgpNbvx_#tE3DEmb+GRgx$?p})as~ab*e!{)k5Ns
zhMl-hg3Lf{WwV6=iq2E^&v~VuM!rGJ9r_Qj%5*wPoEB7ry%zlsz&o8NH2<gjKLF3j
zDp~c4Da})2lBL%2VKEc>x3?A-!T@DA<7;~i@fc1{bDd(ftqC|_^48=zC!tq2B^&=L
z#1xl@k%B>Si-QUxP@aqowLKmqR-xelGhKc9S9Z;XBzMzZY1kYTs7M*DB72|IB?s8V
zMoDZADmeh3KD&8z@0rsN=$Sj8pr|JskAxtpum+m&iye4*kX;9_)f@sD<~1J2e4cw>
z*OYXzwCq#sZMt8vx-(C?EmT}IAuIVX{|{L5vK5=fzRG(;{h{TWe=XzW>*xu*h-p%2
z9IJSLss}hsyc0_|%WdADQ#;T9aHAn3`o7K9d=um~TIb?}KaT_=ZTnFm(4@J+R~H;-
z7q_@F)9|LHie7a6jo2x4Lp&i-3;c2(GdwHyxJl9yU^VpGq7063lBKiKd1yYdJWsqy
zg8}>RG)h%{pS@aEHA~c{8*k5UBu74i{n2<AIy<>t+{~-AOGUy&+yaupQ>FvBof^3y
zn~>Aev#*gx+Qfb!j($xyydR6uHxUsxFAFD)t@W06BC11r$)z{1V4jj>rDe(h%o1qM
zjkya{u_mc>dGB@l0jqGsEWCG_6Xg(4<8-PHrT2!7iKLkAG`Di^8b~pj@1W8V%c%f+
zz<M^sYt<v~sSPm42fD0b3siQ%uP9)1oJ$-#@iWphWt3%VoJh8nqIQm!rRfsk)}4+x
z{AiRGqO3fXm2l~iX~27cqk(8qO>hw6M`k2lBU(?X^A|DH>e9?nN@)RKOt|rEf9%Mw
z__xG|j-YrUQz#E=MQc0*pZipe<R5jm3;-Y^r3u4iCUbxp_(9;MSC!WH#u%$OW$o>@
zR-xcFw3hPdxSrfWqt?Ph)L-e3l?$4Xw06sYB~Nv@*#L3pF|eg(x1VP`#gbWhqwgP&
z=DD=?$Q*TtF7-A%_+1VKTy_6+{NGm!nCUrmecJNI<%$WO9&iR{=O4`Ax#*T<nN>^g
zJ10-2k%RfKifbFLfuFQV3v?d=77+%@laa;mDN`nfiQS13x6z>*J_S<<;@ud<L67*u
zD8Q;1I1HowPn9W%$X5%{tu}3NN3yIVeuUhT%A-(m2<c#gfka3Y0G25mHHC)_lBG*S
zb}pTiCuj11;Zb2io6hs@E4ZNC>x4L4P!~2FCblCIBBC<>T_J;N9_WK|bzHQM<SiGf
zQdtxF>hDMOOL$}$-1gA)T62Uv57UWVWgvy$=5Xno_x=OOc7oMehCiqFg+%MO@_kk>
zbhpUjye`FT0_jR$<*Wwex%mzW?=!2wsb;-&?p)<2c-~x*#n~6rzQ~pNH>!zy0m8Sy
zclN{sfN#kf#8h%@SBO|*+UVANFgm%p;%d&mb(y5LzT%Y(-!AZc2keZxmB#}Cmjdi^
z%M;EqRn2KFACZ5{`j6EGn{=uCT66jd`)4bSu-GR0t)LcR&?El0$oCv$B?i+>m22K<
z7hdd*+<VB+Wb$D%F`2li_t15&F;kFv;ByY2TA%MKadCF@(XBp(y0=NtncPtOInp*a
zuvYe?eA*k@XcnG`0p@G3^T!GB+4V6*qU<J~r&3W$ug`3cGY&DE_YD~ewUr}5fA)9<
z?2<xX1wBykeWm)@haeB`et7ATpCssYOPNu$aD=RSjFRedF0&b<Q$wA@U#>{a68cuD
z`TBYRbKZzIaG9++6{~2+ZkX#d!xeO;^y+Pm!NlYvDkjChJN^qWaf%Il@x^su0we3=
z903Y^$gF7QY!{g2(>-FGavZ4<Ky<?L2j4rq;1-7ekp8a;p`?~GsFZ0FBL8j-DmSX_
zkC)ToMW;drNJnuz`(3sd^@X>TC&Z+-*|NWU@GffDfe!3rSompck43!3a6N4Mmb_pS
ze!;t|5AP*5#W>J!^{<mqjm(>^hU<DyG)p8>{UdW;2qDdpu@&Szb?{U$uDMh{D=BS)
zH2<kGe&?-C-bph_>Oe0+_Wd!>Eha8Kkm}Xb5H*S)1!;T}#*35)95?D*uP%k7?MTjf
zo!S73)QT`6k5YojZV+S2BnC`mdvs+&;lXGf$4dZXM$8P@>*k|P=_hr%n7dBfow?h#
zV<UVDhTO1-sBh`p*A(1mQE9wBF~+se@E}Z@#A}v-+c^UE5U-YfBlh%bCgo=Jz`_|*
zW)-P!UxT#5FXOVJaBY$SFawFHse2>u(N}UitA<kv{%wdG0Jr7vix(lVOzym#IZUys
z@PDsyY;TN|SmabO{l0WHm3+@>yI5=Xw-C(1LiwU3^t_ZqsvwkS>%G>zDaev)G{oYm
zPK0<j)#BWuNEXZlmTXJ!t2D~{)*vqCt<9T)8Ukekg246M1iDi{F|84iM%5~}x9enM
zN5)5q9wpH#0Uu!`vYk{bN3ry4w2zOrYD;K=WIfT*n{&)%=`7C}sNV8qH8HhAey8vF
zLHUbsug*(84YB5jtXWm=xQ7EehUi#>`=6!wm(>J2K;((~GYXsj>GnRS()b%kPgi3K
zlV~mn4Ckvrx0f=W>UJxU6#&CM^}ZTU?jp_G-W736$hpbqMGlp*Fx3?%9o;t#N?TA=
z`nKC<zx#~_m<nc52^O+2h%U<0Eq*E3;JX_)M8=<og}?3P7S_D_SlBo}VV|FTeZtU1
z>D&quR!`_$3WxTA>@DZG3X}LHWA47osO@OAfr12f@nCrb-Wx1?WkHoYx6$2l_w?%n
zR=cW(1ad~IPid%L2oM-RA>DtAHI{yopmZ7q%-L@@P{_l(R{2EMo!n0xz{zXh<5c+7
zH`d#xyfiA`4I+sUlx3<0*g(uwd)_7CoNJ{&lBPzs;Q2wDtb(X1Ub(R;{t>Ba%FCQ5
zoKXM5yuuK4_m2^i#XEs{w`_YCl$TU8CA8vsGJaL*vvWCMvI(;UtgQgR7;-TmdsZK^
zG<ln}91e;`VT$0rMRt%e_t(a8eGM}yIXTRQ@0(t?LH?ok-)=gpT~8DHIag8@+nsjs
zGjBxu`CJFOlt;rT6mqkzH$if2z|r62@GS~MOTBD-oOy7jxvPtkVCgggO)#N~$XBu_
z)Q)CxEX&wNk@0~V4K?|=KJy4PcI_?CR$-orlSq;zT%Ds=<6X|>xP41R>D4qtzg~GB
zBCnnH#Qwg|z)|yZRDhB7bl@l^`U=#<X~>w=wk0j4$xYBlL}Z%5aaRVF+IZLMYMqip
zqqrNq#s2>9^B=%-l<IhR6sTJH6)yoqPx^B0Wh5Q&(fV4<hvTP$Ji+NU^<-L+WOz$&
z<auI>(}h`(uyvJlnZYGov}@^KMP=s8+xFI-Pq1p%@w$sr&Y~rw#I)T|*NxXFk|TH7
ze?baid4*Q<+J~DTS~6Q>949W=!CI!XGJOC5*yZrLXhWK!drXY?{nsCY(?TzLT!&-p
z?ZN=RGLE%5md|4*pqeqiD+9n?Kkg9kHXQaXnVjnrClIIN`p5sxNJPyod7W9yd>vd1
zUEB_Hc7cr76<*2-y68kUjV1(VqksT)S?Tp5^*_?{&{+j0j6&gTEJ|ca@cXR0*1?+L
z+l%;nIXs#?-V5EgQ+YqV>U8yE=UAeabzr}>rrSLIWRp0hE7r?lvyt*%Sh9Ts5PaL<
zSUQbCJZ3-!IIO%xW?U>}4Nu`r85;HC@ZG4Ii2&YNOpWqCzBakEK<I}M=XYI?*YO;=
zY*$FV%qJG^;s~b4r?UL8>KE@l<vv5wBM>~IvHDjU$1(Q`EDiajtT=-b<J7VrZ+d#!
z@*vM~4EAKoS(fi65i&4cL0;jqDuBzjKh&;NX$SQzzv$3YJU8^m!77#XAHWYd2NvT?
zUd#YMML#6j{Lp*!2+!t}9DN2yF#?_Y8WImX*(_&)MQjA*K&DKZnKiY;w`!G61j&V*
za&*(dfy_cER74FyZq7lHId`K0sd<eRDZB9-28Q|WzU^w?f3`_?Bq#V+H42w+I<mS0
zSP)Sb=d*8#0L2Y1KA<L&x`LjZ8H0!PtX=J@Da%{bDLa@LTUW#BCN(xL3QV>g9B1d;
z=Di`Hlzhu#t|IrB%}&;o*ZCh^E~BMIQ4g;?D?d*k`R-UtJVPc((r?86T1WCrZ>YEO
zWux?(o0Q6%J<|_d94$A})B6aff{(9V4|Y&f9IeXJj-HjRi3@Uu!d*H$pS;A{wpiOk
zr&{l8sW~?<dDeay%qPr<5t%jVXzac9ZFyB@amxOymlocJq%kY|NVN(XQdhRw4wmnC
zowjzi3INeCzG^<U%#>CPb~|dPn~u@M__;L9yRL~K#0W)|#%Dmj8ZSUvnR8@Bjcp$!
z<rYVP-yIej&q@&OPRJW6k3#VACC^Vs_OE;7&yfnsM>)??uLcCK!ri)9@8B=sOf6S#
zgl2$p)0ghuH5$AAv#}&ZH6!8Kz$ezbj@8c@2S9G2$X~r{s9-{24dBjPT#MZ#&aJ_R
zJi4^@AxSEA{D+l8T93;lw#j5)k<9zmqb;Rfh+82s$*Wv&`nlb1ox0d;fHOBLzzeN1
zb!D)ZOGYPK{65FA@ztT<z@rI7|HJLEc=Vw6`WO41d2?^iyz(9(4m*zO`!=z}-d~;g
zs_GrdEW=@mGC|k7vKnHO@V`PO4@P3ci6y1j@R!d*Zbj}FHn~gFukc^Jc7u5S1F+O`
zAP^?|2MK{(^n}&*Vv`ik8WXK_DxxX+b61W*(PDFxX)a5a__P?^mxabGI%%Iymk!u^
ziV(-%71gS-G&w(7i#Runy?BC9vK>&C85dE=_@FC|AE_%>&Fznl&Gxo@*R)x1+kesy
zABJRpxTn)Ns^~nX`claKVhr{Nh54<~x959yofi%J+*+?I>wo_EmX>>KlZt}@*`pAF
zrHZU?VUwwM6?wcJu0d^Q=}vz<`D<k)(nGQ5Tzskoc)i$_UM@$=cAv#Iz9ED-^A|s5
zD>AKCib@LiU}_?b81cTAcmQmW$cW(-M>9gp4+c**$K%<W!bd`FsV7<aoFX)g2E2Uy
zaS^(!Hnaek<ILQcS9`k^I>%KC%k7`|ej~2j0LMIQfD2PcYL*7RL7DS#jG=<u?KiXY
zW@>e@6C)<-?!nrQq>Xk`Dd&Jl4$o(Uj*MoCV{)3*;#-?dbz}rYbELsuWxo_66%C1S
zcwi{19qzq<u~{3yB5sKLwpt1k_qf{c!JKU?FMJQeSO^NWvb`Tqfi#TcF1{J8Wkt@N
zN-c^I<~o&}wXY5sOJ~{IXPFSfH5xd7;BZ%y%S;ek$}s9o$ylFv9IIGcer~Z25p^w!
z>co-BOtK8Lzd?mtmTBUq<6UY%zw!mXvCpM_ah<wRQe}E&<J*!fJM6UY^p@;d(-#0r
zFSbS}4<6K-9{Y%NFsfOh;_v4dK?ypeyVr9i<CHO96O(8_O?Rg}1Skz}0KF`&%$sDx
zZPrcS8+N}t?#_wk#c7*LU90$|-BeQY0(s){A}$K}%kxfr6RZtnMm={>nC8XEez5?a
z=LvY01f=&WHh$;^%~Uk$ah6Aj)jR+M<z?m-htKxblzx8mjnCUz!-!%hbn8-j`r?+}
z9)E8-!v!l<$^Xsi{)=E(g<en?lA*ofGAJT9D>Y{mB`us{faq5Oe9L)_u`@~ie@7&N
z>{t2kKQ%UFb2N*N<BW~UGWqiwWg3+*^p&{&d@&g|bU^~3*dlw4RShZRswO*wDdOt3
zkGE&0ER3zl=Ko>)ZAp4M{iQeHYQh1;<>=L9K^FdY;{jSkpg<ADlJHM<ym=Z<RdT9G
zcFtWf8sy)hlKV}Ir`iM-8F5;xgQ~D)1x?8Q@9+EC5KeUB88|lTf36N&(mIn+w8A&q
zUJJ2WB7q}a57m!PB<7=N0OI9)(tz#U@9zH3zbR$Ir46qlWfxW}jF-r%uk<CKSI$qD
zz_UhyN`O3P0B$T%f|KLc4S^tc^F~pYT*cDIPtqv;LuXm29myha*%;OWPBcqgdJ{v>
zUw+e>G)^WBxoLrQulI*@jFg@$(r5Fx`)OJ37g@zth1pXx0Dy=VDc;=7dF5m-8&~s@
z`3-|<9(e5m>T|Hm>E$C-!r<p)U(9HNs)2|qSIVWVE;00DfzQ{s@#n4;0~A$dZfBK8
zmw#wT_AF%iU8m+%sv;d5v&z=h0NP-$A!c8Tq#MdjA61%0^@PO9duo`F_KbyY_{!Jc
z?idc=NlBW>E{Qop5*W6#Hpyx?Pw%Az=U)o`WL2wKu`Ybir8M1s?iPH8B=l+g#RXS1
z$a0^jbzcxxAIKT*WNE}~s0af>Qo`|o@oq-Mpy9`i2<|8^h9fs67hrEPgBlvS#Inae
zxvnuk7;u_n;H`LTMqkG-K%J=(uB%?7m^E{HR$TO7hAeheSWv+k0$UOp(+l@2q0%Sm
z@=U+Ms6@YaO!me^twrW(!SQ}2g0MBe=D!@4B7F~n`^u!`wVO3uL9gw|?c^1c&jL(p
zuIUgc3?TouC{tWll62(t#PhkO7Ng=Pe->MsKgVuz*>K>Of&<Il*$ozvYp6qSsmM4)
z3S;RW<P1JAwvS3MQMG#oiq5-9t#MMCGUcG8o|**SU1CCQ>q4iz9jEXAA7$?y)MWRr
zjiv#ihu$HfgsO%rO$iu!Xo3ic8Xyz}=?I8m2rcwbL^`2JR{=$esPx`Jq-rQ4A|N0l
zBKUss{q3{o>^<Mine*qGNuKA<x=U8M?(5=M;sXFC&_n1l*zl|=gSqG(Q-`Js*6+-V
z@moazy_-w(&W_o|ye*It-Ah*l#oNbstE;h7W%t3r3U&o+rOqz|E;tM&8_|+S1G!k9
zJ-5vu8y0x&)3#3by$FZyN_pEqi36=JpZFSkAEJ_D`?k<K7G989nVzRFW(A?)Zw0C%
z1C?bKqnx`CF6zmn23Sc&^DUXDp7NgYm&}DTP#!s`e*ivPdw?MfL*wwDuljgH6FyNU
zLSv@ZapSPH$ZzSMfQ8p(RIX>qv5#c7%xWXo6+ST8w#rWv_m@lO$1c_`&8Yp#riyOf
zc3J;&YM#kKvNzHuH`~%!kDwrN_($-oG;Z5745x<qT)}ft935aaeL;cI*I^b4je})x
z^abS<?YH~dUXJ~A_JTQ>kuzi(gLGEpb*~nL!_rtbT-nM9_e2$xkIMZjy*YtnQqk4z
zk?zeV!!6IsX#_F}<qaiaYJn~NPxojYF@Yow&MwvIiVHTEt9|zwNx8J7mCz9Wu8V5s
z(p<m8u$j<WCQD$#Sjsp~(|6i?>@FqVkK(>;dEy%*tI#iy%WahwZJk@X3ZUVs<u?#P
z$c<QxsX(>;iXSF>dQApJ&>OhGee@=tm9D)Z>9hY4w)GlxbcmxV@O@GfPVvvYvOhhB
zSI1KK5pcrzn&42h-5CGx8)^4-@{pSBjh7=|RU?Jx)wG?@=CHqi(MQj+7$GP6{tE0t
z$#VsZFC4PnWE6m=d8PU#cZw{wIk0bE&U-~~y%5gQ>1}BZ;}Zb;L)y@@NqPzg6ji7z
z4FR)C{EZcL?;<4KT|S=qrQ72U4r{oX0rZGP5K#TH7qXinbl0kK+Nk}&+A*KljZ6-7
ze@B9sNczUqWm3l8N~w+BF_adPB}f_qzHE@sV$*QXL+APHRENlGFBB#&jh{Yz(19Oh
z{3W>C1)1PvxZqR{7f$W<N<TT7!1#+Z1x0b_YlD>Bc_4cJEP5JM`Ako<zq)mK3Fxbk
zTB0{uT}Fwvn#w`Gu{Q1gHs6_NXgJ+r>DZ7(XyCk6(zfrd24^P8n>@JEyaqNGaJ#Pq
z%Wkx@WE#?fvn|s)OX#JX*?_SYkJ(*a!VcQu3mg9c&(XQvFAwAyFb9>-FK|rlxi<Ab
zxYJ>7b@H{N_0I0aGA#YP`pp#t8Ka3qX+1E`Edh^gk?VJoxJDG;H17#lQe;zR3z-~C
z_4=&5{CCcPa4-la>51=p2+n3t28w2(XMCEubm4T{t<i+8YyM!sy$RnfpK`k6LDB9E
z#xbikR=+=%-Y0|(b^+o8mH@jOUNZtT!29{jsSO1+sqa!2ubr1HZ~U^%F=ytGbDA<J
z;28YPsj?<NjMjf-Y4f8j!h&FMDq_>X7E{YnuU#3-b1%zCTnN_VW^_$3vfuKo@J&}%
zB(SW{RJMw3+Xc_WY4l}5+n7Nf2gZ#4U}94-p_6l~D|T}woQ;0O=%k_xiAIH{cGC-<
z{c&p3@bU=u;fO(ffM8aYMzwJ~^{fU+DtHQhYayh5N*>VPNFi{Ei*a-Dy<$={172$N
z<OhZj*oHkyDef^U(!Xw%5Q&hKn}ACsdC+fy@%Q!~7o^vrMceD?_6WN(^C1u4Ik9k~
zql$Kkx&AiqM{sX3Rvc+kc_5{b{^$_XC|Dx-ax(qx`R;Xks4kw>iwE-u+Nb_;|0@!t
z7qR@|6A0;DlpRM?Dv@=CY%-Jc`I)Me=E$qXb4PWJ$znd<+;nLn(#^$W=u@(yRp_ip
z#dP^sy@mM!_45bu5JOfYmojegez<xIv%JG`YBx>oE6i?iA*%{_p3=lL#RKPSCZw+1
zvDM7j%ovaV1g@=LQZN4{e-nI{Z6zt0tLoUn@nQcTqdXIJ^Kr)qQ%|D$jFL>wW!XNh
z|IFNwt^wtcq~>yO$!(NT0*S&n$R5v%oko<j73=$FzfBGwZp+VKeevwpjmg)K!~Qe0
zS_X8dYbom8sm}8?>r#*$&RmpT!A=Op%5eVtzkK}PZ?D8wn<^hXAG8(X-Y-eXHoQ`3
zU6dUVtOrOI_kgv^DWCI`R3y@EjiWm7S3mr(_x=AKV!XIu<}&#&#jANk0|t3g%r6OU
zAH(6DthO$>{)6omMo9jd(14*r$NkTbv|DIo-2a!s>l0RPNy6-AAubbpl~94}arHG!
z*C`p(mrIlAHm56$$}re6(|Cr!Ac8^AAC!SV=QwVNw;2q7sOh%3I1(b>xgk>r#ohbg
z6O!rE$+1G1DzrObVS3#!ph*|Pw97-4eTfn`<jMbQkIrbksW7;kqQ?;l7?uu*?D#Ju
z5!e1e5K7>_>fwMJptk>fO}_mq;TiBhLqy0cTOp12|24KS#upQ(l<rk9%t6E|J9ra#
z3}Iwn%-6raRt99W468gB`rjUv$%e573QFp0eBzkZE$lCLQucoScXHy!ab5Ld32Jck
zvs(tOEAoZb?EJM1{(+1SRSh5T1tNu?Yd#`TF874nhU#-kKjQfB2mX(U$?Q8QnG$L>
z%lXT8Pjd(EoOQotW$r*UIR`@z7*Jds=A#*nd0Vy|sPR9%BI_hX7jKo{k8VHrKcY`G
z$xUHDJ=Vw|ls9)Yz<$&dMzJh!XPF83cXTU9u>d2%GWU$;j--PvSqHz6gwvJ$w1oe7
z*>-?+o%w^6&zgeW@xKOLZyCiy^0^fDi)NKkWafWkPhZp+uy#mdZYAsWLxpKAfDCo9
zT4wH#zB5VvS2pPPs3p)}w+;XQ2%>+(Yot=mDe6`R$KNS^@9TKaPoAC%c~7c@AyvkY
z@>@hSp~HXuBF!bA4(R>wB%=j=D2D(0S5dk`>-r-KDlb<YLS1iKW1@>2_56?DFX8?M
zPvJVrede*NBMdG9T^S&ugLb0Gws?HbCz`UszvhjgZz`HI-bLhQ`E&kxw8x>C#N>l=
z1^w${nt^5FUeiW*n@Ugh$PCb&AG$14w*PM<{xkJ*k;Nj%wfjk>@p)Ap1hd*H)OhyJ
zCF9@Z2@D+yjd1@rjpWOBg;P?$@CQH+LDzW8h;_i6@$6BG#YowwcvF<PKLrhrl91P;
zg?WE+Nj~d?lJshParGc87uRd3GJ@v^;NxAeI%}D=B0@4Fu$8HoK6>badw_hAHEct*
zT*tKC>XlWlB7iJG?gA5;5Y-#p>Tx!IB+u?VKlwMV<>mGi7m#27pKA3<Of&>v&`S$=
z1qXTAZ7ub%sP~gR+O#mCgA~eA9<B-VjLCC%+${G<ES?n*FRnL&S@Iju0+fG1iTS^a
z9+5FlujcO~LoH0eLO5`C`(1+~PWAl!R2wHSxYa9xG0%1GVm6p*Z-=k#Z<S0jYL7*1
zsO)<5#$@IJM&9Cgsfv~DS?ZN~-N|*T1>rr~8|UYMqEy1cVZ1gV_*vO+{7(Aop8qPX
z|EttlJ%V&|C8(ve;cWl<^6D3)98%yk-50v_uV<q)!RNC6N3uQKmYtSW1$9T4n5!0E
zZRpfQT~ngfm%oLgyk0sewt~AYB-Bif{+c9;-yhSy;ozsM{NHs@(5$<z9RMl4vH#xz
z5RxRuW^6{;bk`Zu1pW-@C=S4We5yWe39S2xf6p7FkhPPj+B6Py^I5WWGvdBQwl2Do
zh!Z=}HBKbUokerz(jb)U+#{U2jBaL==Ls^GG7;#Lt0;Vs#T+cKpM!<uTn4a*<Ud!l
zxikC4gRb6g270YlQzFVEXHXu(pzN~=AfPxMghi~8)CRXpKiGakJCSru()oHhMXFlr
zD@2lS2}XOUE~Z#Xz2awl$=5QP>h7W?e;Ej=u26biHbXfx1k5-M2e5!4Zi+}I<x4{&
z7>{OwSB_5cDrgVOIlBa5pD)x87iQ#n#V^dHFsM70Y40Ak3C-pE-L3CUXzwq7m<FSF
z4lhn3tCH=k4RVV*-Y2-Ey+p+8#sUM|b<=t7&Q~ZV=<!O9-s-8~bm@+4UJs%#jiM`k
zOG8u@_C6vXe#<CmWeRj41~r>JT5R4a-Y^?XDRp`i(>A8x1<&<Vh;(I^6olSw(Ke+u
zM~vaQ7WlrW$GoyxXWArAUj25IH=3WEaS$iYI@b)Sr>e&Fp~eyIV$&IeYnIs?4QE8|
z;N8dbDgF+m3nNY`r$;RG%o|RgLx>L@%OKa<_$fp|99WaeEv+?<d!FeVDkbz1=3d#L
zxhgnZ?si_vOr0Vl6YYDR&O~qc1MKMQspVN9XPvy4Ob&{<)mhwNSz$`DADW&DVm#7>
z(`J#LxqpH|suQ7&IwtVq;Wdclq{WNRHt`!Fu8I~>RH*<7mSTV}(c_(7k~1uT;LBim
zL(0MMH2=*}hxG~Z%`|NTmn{n$&l0=QT9SkLHEvUP(XNVhVu@KxTs!K;<>T9qmOui)
z(s%h);*$aNAR?!fpe|D<ZZ~n^AnVpe?Adl*8F3o~{q;s?!)x{|?qHty?l2+yTc_3J
zM<tw%J^8uz!t(2u#w13COkE7MyY?gJXy2qHUDs0DC%TdXW1F(5o}o0!6|XyOSEcfL
zpjxO)?{JYy*Zw%VGEw>-9h~81^Sz-;7vy6DTQgqFvEN4!nC(U1CSnVVYR)ERifszp
z8U#tTyqy*YW<T*pr81vOE!*)6TD%{8Uc8iJKz)OaHH0l)3;ZKXO>Hu{Y8P3Zd{@9A
z_CfSPkAkYStWk~%!Mx0~BUI+q;!rCtk1Buyr(54@e>>Y$*6NSNh!TPPksZQlGJ!$n
zX})>L+*1bl3(IwHCwkUvCBvl7=cO^Z;S=n8hV_dwM%~%S-vS{VM>*>}#p!tnzY%wJ
zUR}Bc$AOYH8t?udce++hgS3!?iP}wB-EZ!>u;sdaFP*Eiy270*E^>u~A`m#$w{_fj
zL|1ZDyhWUz>U$@}{s2lZ?5=H)iWR@U2asU08#Q9_q6auY;rk<)actm?z9tdAeEoj_
zNXPS@3>YQIXBlTk*r9;TDT8z~BIJC17LsKSv^<rWI)`hGq{sK4`_u#x=lX^HjlbCZ
zr2fHdn-QrU+8W!QC9qDh!JfH1%%u-|DGsmafTHWOM~{pGP(!L*WUlH;$Kh3#!os$d
z`WcFt`Rl2pQVtn37lPjQqD<Zmkk=+QX^BsOzQzcMw8nIcnnloCLBN?-&EI}el8IUp
z2u{efPe3=4c;{*rPp0mS!zjsN<%E;_UEu(0+r`I)7n?mP$Ve9cjg#Y}ZyX*mAjy48
zjwpgPgK6G<;TdaoPyIqq%TAT=%(*{aY5B5}3K~1ysP(_uq;fN&0ND*$_sW?i^P#@R
z$7m-I`euG*xuS}tf!Yr2qfwLe$gO+_7FWi~E+v+Xg@>v5Wt=reAkrqFUq<p|ecSXt
zE1%vnmur3p9@bSdvvY5b*1Y{dp@TJvgKRxCTaFuFiS)-1T|s9CxUM_tPFkt3QfooV
z&`}|)8*QzcOu#qH&zMn}WX*Gqm3qE*Xb_9;6{qo9GpoHD?(*l;2vtjgIPk{lHQQBY
z1Uew5lN#X0L3kwTjfM<*fUxjJ;)UxOA7x@+!l((=9l-gmL`+D?z5IUw`P+B1q{@e@
zN-MiN)nXuAb=P@W0%re|tguV_?y$CFxfP+P9G7f8Avhl2c8%$d^|*!HaYEvws#P+a
zC@jtvcdq-6KUQK$#X2WTpg%z<<)zl9uaNUezRPGQn>HZOq1!gaU=7{hE>ogH_b$Ww
zUV~um?Q&~P*Um7AMZ+bkh;>D^NB3gjqr8>o*{TwT2!SCk_bQsmf!(%m=rQ&^U`@vg
zm3xk}*e#$m?X<pncVII(p#G!gB^rI=qWD_vV>(?yfzkJKGmjjSE{eY9mGwoL^}(De
z>*)><M@4J7IsC~qQ~K~mG*}upo@fq7<Y4NyYTz6*eb(0BqCt~#KyTTC5OLTj7g~LI
z$&bO0WX>d?eDkH#_ZS<rnb>EMXuQ1oBajQ(LLgl?7%Kl{4EVyzbW`}Oun&O=hiLEr
zQ1MY$XTi5byilNFR)_zSOuq847vjLai8V|A#XU(}o3M*7r-3tzsxBD5&n9d&S|SvW
ztXJzjFnmTSId5OMk47~{OM^&{Sw~Q822Js90ChXaV6W3wDbnnPY&tGq_bR(m464~|
zL?E|yeF{Jf+qQ~)XHwh;ldaypV=LY#1zQsf7U4!W(~sDs4Cy2Lm@jt-p&cnp?lmkk
zcg_<*yy>HuzTtc2%8bl3LSkO5*&UlR{tg`vgB0Z0z&rhs?VrwOgILZgse`}cazKWw
zbh-;UhkAT+dHGqXyxS9Q0h$UmtRt6#Z{j<gYMvC68b6e9Y;B8hk?08)=kDc5Ynu7o
zssa866}<1l<&y+&C3AD|W7Vx3G^<48>*Mp{l)?h7xsZ&te`OY93UxPH-Vuizep^HU
zf4KeVkK4(eu}sfD-AwqhA6!zjGDP9%wBipkh`jl1kRu07u_`xzuBew?$Gj-22U0cn
zGMceE3%RNX=rwI1;Jm+%=ZM*o;Yu>i%f$YB)F?kkWPJ?*i`z_2(2j+rvAaikCl5d`
z-r7mR$@wz&N`B@X5r!~k5Fe_H+A|1A6q=$^s+!fliaBm)ZaHk46fN>zIZe<yQOeCZ
z25{qsHXaNK-{L9`lvkNuZ!jA*IUmpdk;)VK)2j&!<P%{8A7yST?(oA-J42YR2mZNM
zz&*}yw;FQhV`r`%c1cl;JHdJI8tV(T@y&o`R3C~JOJ184egm}5>(biF?%BNU9ca8m
zJ}aA|bXMcJMJHZx1n|Str9I+nx46h7gCV%C%P+%%RLiCk7wy>*jX#LY*|}YIr3O7|
zL0Oj8&*AGwxDhUw7+rHZ1b*)EVi6AwzWGIWj9|rh@>Yl?A=K4LGm+^db7R}vPL-s>
z4z3?vAVN=(hp+lZ!P#5VJ4FE(2hfTDXa-R${o%JhMtg9nWSOEJ{j0j=FCza+b&{&`
z+3a|1qMWqca#=a%ohE-K?y9v`ifSO)BY%79JwAAD_@=Pq(LRZP@PTU!K=+E;RfI5;
z1N5}PTcX=<NBe6CVa2l6a-6Yd_cjj)SP|@z#FE6}r)U5C7F!;;Ls=-v2adGrH@sUk
z-CxU)(C@eAaFxVKPuy#yIPNLxkrvdV2>m6TcI9?(NruQ0rye{t2vr!$ta4ZD5Zmb9
z6gZ}`3>YZAa$eb3K{@*ubFwYnLBq!H`sLACuKA4=+Pm1WtxOC6ydzwazY>mT%jIEu
zthrYBCGXnd8~J$#8eEVgtglAnd+RAjxK4a7WkYA0jb&?T)lHwg`Miy_g;!h5@0{oQ
zHptGr>IGyLxoJp*0?@B1CY<@kc4=zv+t}qdAqGHZ`&x|)6&`FpS4A$dSN{W`G5<Is
z1?xv3q$L$-x<k4TDkf*^)m;m}G<vA-?E-YZ-^&i5IUX=xymZR|aogR2%(2^#MO)at
z^qEjqj6p{hNj})NI6r8_EOv7%s@)``Rq{Hy*Vc*0Wztv8RTuvwX}d!+vc!fdRwV(b
z`Ox;_E|U-ii)Z?SB=l2#Z|6<|M9|_1`Yl&#vOnC-pi{2)EC9G!N^Z)&b}I36LmNtr
z(A%ps30u=E-Kl;54<POIm3aH|xzBMqcE9aDTVF*78j&OmO$qi#OL!EQD6nVo_=6sk
z6P0=pw05&zr}2Wx2b{wF&%)FgB6BGyW&{8L!rL~r?ppNWcah3U-Dgdu?r^kRd2S~y
zE^~**^)C&lmFm#z9XbNb8-5SYxL{u;AP3jr52R3BoF3KO3c{oAacP|oE`6)$KwyP)
zCHVTMe)zU>G*x@Gb9$8QEyxSg2}Vo+CvO<Rz$<3}iWXJQfx=r6U@Zzqi%!;8ia&8m
z_cKp?k=L2w$O$23D4>GX)V{2u_#Z$QWG1LCsym~zdtMC>g_Bvh_(;A*0vbh($9}jQ
z{H+s@s>ix&D}VvvBJa2(wHiRG-uIjd008+#(OJehY?W93pv!hlYvSGQ4tH#E)WUAJ
z_H=xHm(*ch%#G=3Nk%I@EEBiU&vC0=!t&Ct0P(>U-Yd-~AU4?I1TcyJ=1pK|hmMz3
zWizc$N6S$s{%I>q&or#AzBX=X{$AR;Sk?ja*|R0q;?ck}46jRN;gTgOh_5A)d=Ojo
zw*?Y*w$r+f?%_;?v=lyw!cAl|q|0#@=_Liqme3B-$wJQP=;p=#0$2LzDILc3I{pCT
z-4GJzb<Ui}>U3xN?$!0r#|xCcTxT&M=0=)B+j|il9YT`$q99>`bXW*lI9@Wx-9@u_
z8{VFSx|~8^U(<7D>{G8flHp1g<iPIRKH=NFNWQ9w!#iH0ehwZYwR>mIEveS#2t?62
zD?(}9^(VS?8VzNI_`(Sd%=1^D<3+#raEg#$QYsWO0QL|0ZC%CB6xqz>h+H@VOQgkt
z(F8L##!~iq-o<_xhhSy&U7uY6RW?OVB%MbNTJ_hwng4`!#mYP8XWN79jCw!+rqDTs
zPU5KFgu7XJ<0hY3PzFL9u)40ptH>CP-|bH&pYE=ae47k^wpF#gd+SMeD{ks(oW+UU
zl+lB$Ijotl1s`!kaQyfjC44_1H$Y|j4+H~%xiJY$0Yt=CAzx)?UNoOl_)!nZ3jn3+
z_z-D{$hI%7F<QaRM@Xo1p+*t8bE)5KQR|EXtR-xW!5$+xrXac%EtN3j^cYb3hCWJ6
z8Pmz32|*vioFkPW9Jxy3lA9nOL20IyuU2uJJDAZ#`?dbkGA?qbyQ*1|#P6{=Pf7rB
zLiZE5sW9~gJhbP0J4?x3k|??ZSKK_nH%fOQ>00!?YegYn@5)gN4zYmXx-1U;f!>5h
z<vfGSWDA*AU4R$YKY&6B`nzLOCwwDQI(Ny@8tKWLxf|{m>EheDhSQ}1#OKE?tj^Mx
zBl+m1^;nVXk(a))$fmtu;Su?D@zFt)IdcjfK!&#Ctb-u+WMb9Zas<HV0Q^D$+)Q#q
zYV9?@v+!RJKQ8zFj4kdvS#M|=j1(PbiR5r{)#kk~?T4|~P)mwTsZlU3Q+G}!<w@I-
z3)uX>_);xPUC=8@;xuIwKs!AzXZyozf+0w-zPZu7QJ^q7mmWS|Nh4RvuxB&61G%j9
zsQq#@=r;06iK3A>Y>#ZcwUsFs9T@SET<RbW9jaln_e^x01;NKDpnRuG$sgJ65^w&r
zJTdz$YIyh|GE|vk?n1IHplJM?_Z|A3L;?>_zh~i7i5b$dDD(VUe>bJuPOfn`;DuWH
zY_u8o7Eu5^fKpUUNcXc8QF~I$CC6>c85plqT+@}46Hxm8jOiAECNk716EnQS!~l=?
zzkO?KGBrO#u<m<7wB&{{Q=eq}cnKF1C!CSZ$~B$7Mp_{q;4szk*)xxg98r5_6tgc@
zgNcZ!4LgV`eBVGiSZIvzu%CE^)R(^c{5FH{QpVEl(ipC=e*i4)89Bhqk0VJ*=Ay1)
zH^G^_g%;`*f{Hywt^O~`sD_E|=goC*wnBP8>h0V@ydhys#WDRSM_MO;8AsEo5uz><
z0C+?<%7SP?7t%@i2j0?sDW^ZuylL;c#K%Y^G7U<8_;-Qz*&6Kfhr;HHQkH%k{Y~2b
ziY6kwC)LWr4S`wZ!~^tWl5f|(VqX0S@5_lomMnE|#cG^hn=oa$ePO7$1lGV<*!#wm
zfz0@>SAr5)Un>)K5XiubGb&Osba7|C$q2p!BzyufA#oZqt-FmK!JIblDh;>i&vfYc
z!or0ZlRZkGw~n~HYAh#sb_y$@LNkg<Bt$2&;ej4>0QOT7zJGDN0|4M;EIl{a37kln
zVpq1gb2>QXW_idi!rPdJ2F}LUq+c**t10I6yfR>r_gkW2c*V?9wX}uPdon0u;Je*{
z_l6_mDG9j7x|<Ce-;d}SU~DXb*Pr^9WuBdWQVcSv8t)&M_E`#*5zk;t_8b-#{hD9C
zy2i#KL&podN>XA>g$q!u$U&>E$}H!3lv?JafG&O+nTrCy<xswU5tboD6qs(@QAox4
zT;sY+t~1fsmKO$~DKLVD>#0Oe-F%L~+Matbl=5>M$C+~-E@S;-3-)fIZfMTQ&fJFX
zjr;r7jvjJkhJb4m9lxO%n)sgwJt`(6Qn_~nhOS^C<bb|EGb8>Uk75cvL=zyG>+=Nt
zYU~;T4yWsiDK>-?T{Zk^QVYEZ3XA#~Z1OY?_C@%rAB;}F&l=Vr%P9_UG!*C{(^}j`
z&SGSwb8J9P1*zCY2tWMdQN{fpzvAX^@CTlayNCgI{gm8}ug5tmg>l<H=t|T3H0s!o
zJ#oDrv66N}Etyjs>;1E5Lh13bg2sQ^lq7id3j<A?Vb1)pjdls+^TsI9L}B}&5=xxT
zP$0e?dBzy=n4H)z`%Odq%5OYrnvVvm27u2hz8R`bzWzWpd4{$-bGWi`V*Xix*_;)P
z-DnriW3ao2e%&$)ellX@MtpA~UFo>z6%J2|8d^$unZ3`x@Ywok-VbND;x(PBd4}u=
z`)t&r*uq*g|9e^0oQquK=lp-dYRd#I#TJU?;epyFvbAKE7*-bKTC6Xh_P$>`v6H;O
ze`2gM`czlh%w0rZQRoM?nj^^thF5LLt28^y_|-R7VOj7$e<lG^$u=(Ej!J%5ygwXM
zhLkILZcEPj+s`(rznL~AOFTcLcR6@i_^!@73bE;$5h)-GB*np?#s2IEFnr7ao7-i#
zD4u&0k0SsWnfXf@ax*6+y1&%nv}6b@M;kPdqmQXo3q&);NRO<*!(U3j;_LmIU*NT2
zSP~9uc+-{}tXkx;#A%DMgcE!XIwQvb0`gn>mgV_JG%}q5s9G<$8OLQA);Sinp~rMa
z57^*L*-Vc@J}Nt~s^b!2(vD5R{fS;i5Z9UIz`wZw#}=Elkp9rpnZ7S?(%mX)4c{A4
zd6VS@z=%b?Zp&5{D6bStdjVPwAlEYf5zpHGiJR$>O#3+1N{m0r-7hY@#OuXBfUwl%
zNLHPRgSrHI5B0vii*8CECz=<tnK$KpC@)-nbteI`X3?7=4~;&V)*#J#W&2*IfD5AQ
z?ki)0Ql91|bMft|O1T^RWu^*Vk$Ij>p8Py{D^6o#>`3>sr2gXjMT>V&a<4CCtT*Ww
zPV0HQmWO<DnT#{LO?qyjiTFd$n0aKVT$H;jPFZPBy7yGcUk;IUlWqmfY01GTdnB;a
z7jR-(ye9U-i^KSbGysX@P46@ZvbN{Z4H;Ug4#FYbmG7lZ>m<n@Ny6o=Sb<o~VL(yd
zm6q{8R$Fll;ZGR8*sPG3lk_xxFv};ab5P9;1*XBVToZrP-j88$vFju!D4_fb-cFrm
zJS5`F`!mx|MO)byN(3&EeZ95#V+66u36(!e5wxsv8CgW4&xn^U#B&Cq=WBg%;69Zl
z5{V_6>NQY$qA-5l@)6^wdW6$unoy);YFcNpeY%Zff@<=7bHznC0)c952A9MKyi9sf
z!*C?|lYy8Gd1lLdAwBf?hId>eJRLNN8&(>n9N1rAYZ5$+Uf!slHnXnf4J%fWq3bPY
z-LT+||Do_5dA{IT=xe)z+R(Taw@B^O?ZOA@o?B7qUj%;xu%p4(kLPev>K@uwMyI?|
z>V2?N<Gw8l0QGRmCdJoonemfQAWc1~R*qq<Ejui?X<w&}-b@C^V2KGn@_T{b>sQhv
zu(Y$By=?H&E7E0gn4%ERIzm48S81WsJrpwAW9+XG$#DLUy)IPL>dhfa0>pg_yBL#o
z*&S^^476+)Vm43%Y`l8$yr>$|Cw*$9<%ZxMKhjet?C`T4zV8+^l7USKX4k?hp<4Wh
zfv+JBYT3k4#YA)Qt^O=`%jBt-4!!yrR@}@n67sTC-|?O+*?GF$M8-mZF&dJ>U8>2n
zui%Z!Aks^u7^I7E$wnSmx=(#<V4NQ`dX?1Q?V_4pJAD@r`IJ8)`u<CQbB^DbS4%$9
zhcT7p7hEl8;Io~wZ1_LY-{Wp}f3W*<+(0?F_Lj{h!C3!bwyTE-U;%*TuSw4Nc3FX1
z+zb!PBFj&7krez3ZpD$3b#r~_grWdzHXPE{O@ly=ZRK2oiECJv%k&dxw_;JMU4mVb
zwsQJUuR@nOvw!-f@*=jtKfh8hMv`icB`k3Y?NR*g;tfv1zu_=N0Nrb;@p<YUWsH3V
zgI<+ZUhtM}fI#)+r`|Z>rntkIuf}VKMHS$@cZFEMX-n?sl)JZKhWS&Owf8@{9QB3L
zlo6HF;2n-Y20(g%zfB=HMm)XBcp+MW52Qj666eZwf)D(Z4`u3-cz8bWMDI(X(?z~?
z;k8IVh!F!ypyXBjxy`2?0t=UCn4#T3GyrpBI6)Gw;PKE9XcT;TPe3NJ+=&J0|5DDj
zA0B;0cD>|lhN@E4;F+iA1wWmq5B#gcwYL%^K@&YWd{NKAL?V_WL?u<M#ikv3UDJUC
zMmuS)cJUjMYUS4UIjg7Czo~ao*m4ST;I!DnDgLef{^QOzvewT!cUkW1w_?a(cXR?E
zXWyB?iT;wA9}cnb1mTSU>4_wM8o@ce-HW;EVHK#DuB&>;*@2pK$I<~meDM+-fkAP=
z0UAjhwe@H?hEQIelh}Sx$j6WPp|2IQ^83EPq6VFKw?Z_CKr|9qUz&pG4n+m!dOJHQ
z!Smv*ZRa($fJz9rtl0IPJ7TxX8C3D6AdkY1=<mtjG**_jEOPs-gUwnkE*;ioFeYaH
zL4sJIZw6vG`OeKMzn5qs0!(g8{V7+umBMX|7-q}_t!5lUhO@nm17DYLd~A3p<{qXS
z#Z4nd`vKA4GCro*L3`iRGZ4|hg;{i+fez&8k&ZPwHk}_r^vnzY1evxDZmG6j(r8Gr
zY!UOl|0(P*UptS|F@X2NjY9W5)yonUn;jnKbzgm$?N98}vww+ELbp?A2cB!MF5$Ni
zi!1>7a*j{%1GPSc{&YLYrC;}qXlu1-`p1|1bDeW1ehV-;;C^CmyGdOl!W7|U&dsl2
zrK1(^xB2QYaB6#nVD^OsX)VE=^UV&gfX~Xjjf4n%mvDCavf9kx-@ZHPOXKu-9#~{K
z^SQCg5tzt%EzEwLiV_)6KhCZ)#7lro=M8~9m1KziN%U*2r<IFNKhf5s#n{M8Cp$zY
zg&@m)UFE6`=_}#-X*U&hM!8<fjB(7mS1VG1l`K^NA@a$affZj;GxbW)b$<~Ua*MZJ
zG6#b9lYuDUC7x;<DuXitf7iRf_hN*BqgUs?G$=yQa+XzB3iOIwCU3ad*-s=Dz^Oj^
z`1*qp`npl*%k;X1!;kXG<)a@Km!5{EtGNOSs}-h$(`YSlK&p<GX~joCw#n!mN#Xg3
zvA%cHxOXJZsl6OfBr6jyf65JtRGp=~j3;T$(G`0LpO;rMzNM?zI>)^#Af5spP>sB+
zN8*P@1NIbIu``hjT9j`ke3SW(UMhT|lflwd;TdoNEFVy~cf{(|6qX7G!*XL$zBH6n
zN<a)KmBXP^TzU%4g}pDB)nZe~9W{7;>JLsUYV?sX{s{g3w}oeI)pY7m5GM2qFS90O
zLcJ+)eT1+Ld1vgSc%ha-%7)@Yr@x|Q(2-`y$$`rJISl>kmMTKmj12Lh@8a06WC7`|
z+9O)VtyIY2yHxI{tkTNBLz`QI(i~SH6F?TdZl~t5`;U7GHinV$+q<mE%&ClrP99({
zSC1Etcct`rzsQ`b^Krb`)>S)u<;mygbuABxSHfYN1Q#nlDOI~mkJsJMKdg{%+Si(f
zKf4gBL(AKPV9U$6v<d#rhK5l=c0iizLj@-3SgTVEkrRj9sMzbmYTk&e4z#)tUAQ9b
zePdNibCRx{&NsS)3gcwaHPA5%zX+Vw*j4P0(zXR$$0c){VLTZ#wv+p|C1~5G*G}(#
zFIHII_`8#d4lhzrto#{lVbVM3e#mjsYD(8=#tU*%)^Lk_nQ8tEk}}8yox|jQXix27
z+zPHbKm+(q`n5Pu+hlh$Sk0P2f<5fKFs{-|?d=~_<KCQNIo*$!)GmH6j{+$+$x<Rx
zCwXl|<KyOwrO=<FaW+ZZ`8uV3nfT>tLNzz5Nd;XWI=ff{AZHT1qn<nLI2c52deFUQ
z#J5Far1bJwL4{e7YW$hM(>QhGQ5p?3QGSINymju6E$f)Pd)>Ei*wk;@P=eB^F6By}
zsDPg?!x%iw&$Hhd2gWf$QLzb&_j-tDP!w?dHJBr>I0Ay*<5o+{A$;O~0Ri|j7H>NA
zq;BRWxde43at(aw8h!)T!vVR=W(GNJWGW)7dX&&fBE8hL*~OCf1DLdhq+t4eMT?|j
zqhHmPY=D`LXbp6<-etaFuJOWyx-4xmu6pw_1#gTSh4*lc4=q=AFLoqoCN(VAZ^Few
zdaW>mzApuG@4>}@TCBL#w>EZ=)Gh;Or0}m_?UClWGuYg(i2ia9PTf5g7!%Kk8A0TB
zF&|6?3{e7h7<RMUGvO>HRE&j97Jz6_KO?;)5rnzW;Vx0fSgV&F`SiBJF8!^B?DG{9
zf0#)upn}><Dls{_UF-2zKwsRvLf%%*xDqZW`EpayKvzc8mGBS82A8t0%Hvsm?TEgq
zFO(|4N!xsoj1&)l^T|r-af`$ES1Y}T6ymNvr(7@7wI8!^B?(lzIFYU}j+$gNz9n`9
zsqs9zG=J)HzkH@iia1EsPK*gBe&Y0Yy+~wh(%x}4GSgAwzNnn*DF_Me)e?I}<n&d9
z_UB6+L?(i7uNHLFBLbl<^UIeZ>!3)N8S3ujH<5Q<5~~mU1~Xi8Ig|v8C$PE0OTSV-
zHP;?&UTQ77i3yXdH91}Z#%xUze@9i*PCO-Cm=R9YLz|RP(Gy#P-dd)BfE8y_T80QZ
zJ5SX<!c(H*bMCH2=J5St0r9v?O7YXyGTJ}C_2~iY+NLmC71gWrUBQV8&8eO#)j%u_
z3LqR~OY&*Jku-iD1+U^r#{Hoz<5vfn=b#=a0MQns<d@|l<nWZ?=JY3cVbLS;cc6yc
z*1s7Pwd%{oMzC9(=vTV^ZgFe(gU-SeCq07ajX$3fy!Wo>;Je!@6Q=nrFKVIqHjA>H
zi-<)&(<j{zJg<-DU0ne|Wt;h<5)_kqZeI26M2}PRbJtCURUdbX-dfeTx$yX@V&Yqu
zjfI<t%>osx?*o*?53`HB^}+@WHsffRqYyodK0%+q5t$w6`Xobl+p?U#Vp3q~r_{$1
zX>oFfQYm2iPh8+90DFFx;xDn=*3sy9HYx>*j#JDU=GbEWke5lv^L*)JY+nta%b0r+
zvm01qbkf*15KyvC0Cbx6S?(IavH^)CHiBua6500>EIB^EXXK<pFF)5YcWNNFfDlqk
zDM=RWUF`zW_zzRJdmeE6Q1epuLq__Y?^gq}86nG3rH)A^QQY)%C|=G^EXetO!#)8!
z>{8eSgY!p4qxjc_Um#OmZgot24m=T5c4Vc}Iw?t4(UDrNO3DDAi&^O%y9T{U_iCHT
zISLJNra9GgJoryG9DMcCoACsybL`Dj8|KLGh20mx1RC~zEpOjalptX=_BCl(@K;2q
z7cYFJ@Ey_fvi4J$f4C*69Wb~!cy3g7;E{g2+Zls^W~xU~OC+_f0o(%oxa_7U=zxYQ
z(s3qAq$l90fV0>U1Kl1{sUZPdOke?}loDj~)d7@_^sh=$O)s)IaUeH>BY3bu>`qk{
zDejg-Wb+=F^<#A^i#PVH);jY>M7X2d+m~V23M~+)784Ap6Iwn!wj1*}WDAz*SNpzG
zph({KN=bO6+R}8b$sM>h9e!O~X1`fRD)Grw@wu~k6xzAjV@gmS%*N9g{T|qIF0^Ze
zD>hECPlm3m1M*keYQ4nPgSBkmppS6|-8lytc<1tpb?FJS(eb$t>o%*c_iJ?Y#w7T;
z9@H=+46i9qJ>khJkg?}42TqHA1k=qB&KX}9B16V8dcE2mJLOjoD+ZZ;wO2okDR(|^
zn?T(bo$=Ha4RGL&3Q+X>_?CgOmX(c>Xl_@$a*!)FxqBoL{?I6>@su!suW?;0K7o(?
zXA#k15!fE|@vjJ~rnbh=wH&9-21^lz>8ohE8IZYmxTAVYC4f`R*EZb!@;jgL-0Gdw
z)Jk?Y-r_pCGUuwI0KJEiF$54cdMY`k=_n>zQu=8JA6&t5iAKZa^hLctAY_T;n<uV$
zp-#nUV-b96lrQm|b#6-`>>*`&qKCioH*5b<XP;w__xFuhV79rse(P<?oRoo@oQY$*
z)o$-02Zn``V#5zOt=ZYu<ZIHDUF{_;zFmP}ix)fYUmcyM9t$x?6&b4ivCkeV316Le
zEsGkI?IqLz!XD8r*Jn@nm4I~5N_38j@QL+8V@x0i=r+t#6y!Mm$mw&Cyx{t);<Uy2
z-R^b?YWF@P?ckfRVt%VMOA?Ze5)L*;-OO`Yw>4x(m2;VQDEQ;JOi0=5mVlhVA(q_s
ze5?^acQ*PKjrqMsn9X=u$K@U<)-StThQM+7;Lc!)YmV+<#}>aOpMYDuTQyUd2YOA-
z{!m9HyFU5~dr77+DC#QlkMoXc<*Ku`@RvvxyJ*Y!S(G$>FzSW2C3PT7#%@($?Wan?
zaJITmLYWv7s8@@;QfsYMoDhyKnqcPk!Bs3sv5<mLOzyD&V?OqvK^J<#JL~VHz%5y*
zE2d>JYLIa!&wep7`^71{0b1i#N96n}4w_nTUe)(CE@v?fq>*hGoqT4T&r<){nrKm?
zW1->UXyn})8{xTyE4doXcdy?ejCYYzz0@dgg*sWS2-XfRTD};9<bYM@H3P=4ti#(q
zC`lZL6XQ#6zH0`i!uQJywmCGIHHH3=#9io)dZ5kTltG34<^zgoqCxXl?}tjgejJm*
z60W$0I&m~jHVB~NI)*TRFAkk<m1(sV6SWRLe@sZ!x42rPVi0!Mp;YAeY)98u3vVrC
z>&)${0}&WsbOd^XKcXa7NsrfxVpw-j&KvCV417s9fug0ZkktMOAi{CvU+IzhBS=*u
z$LxXQBY2bfj|&cmWnsbC<F2=!^(JQnUi}reqiYSIAcrG48@PFkt^_cx*8W^DzFuri
zmS`BU{^FV){*0Ob&xyzK#r8)xYwRpmL?I)m(kZ!PpPej*#{s#$NQZ0<+Z|B9AkU*d
zIeYm;qP`m?fsqAeXCWMC1q3Eh)%f8YWHzhvnG3%i3peQX`XW7ABye>F&#CpZF$M_L
zxV8uh;4J83n)})((R;~LDlD4*-!}d6_!6VzVs;e2OdIY%bPyk?hSjy!txncd(%7{C
zpsA(N=|Q~{ncdg9va3WNL!(2&1X(nOkarO8_cT03lb85~l!XUKI0lgHF!PJs@!NqA
z^li&5uKV<~{Y?p1&*Xq^WmWUO%!;~^KqM!+D4IPkP4}@D4>WG%K{Om)K)1@7v+b88
znHsVcee^8CD*p2i7r!d>M?Dm#B}diF?{^?pJ9`7xP7l)SRn%~CeoBJ6`e0gbuQ<z<
z8~NFkd3pOqnIzscTE5RSIp5v$l%J?|XoD&!*qRW7BM(jLFdJeTGIYA1wN!1ie*UVT
z*M13(U~CSNdO)F*-0R`ubiFueT*n_;@ntl3pfG@XAxnELyCyh)+e5SXyS%+(^Sjc0
zHfX9*rL+d8&npI${#|G$z}ukpa{Xmo71J$v|A&F^(M(+9X3Ro16q!iFgSw(9L9T3B
z#R4u<#n_~O06g#|rT`Ir{eF=hk|CQLKH<$IUaP9yx6y1}6mY<tYC{z!{|-xz#p-q|
zU|_24chXmS#84g^=$c#CQf`Q)eJp5s*jDUW(y*B$aICNaOT^Lf|B6oxyRFTN<<TO2
z@kN?X2$?%B@y!i?4>(!61CIHwubxl39$eaw;v;ZE{V?}+g^wQgPJ~}B97uecuc%lA
zh39jrEOFRDCk%y4t6;u&OixRx^ksA^8vIEHm5(GT{17%5DR^V+dd0?>_2R&-N!opg
z2WzI#fSKojL}|(JVv$tz-i<K(hi?^6^nP0MAf@&G%)PuAv(DmG{!Qi4gOm=7Ruon@
zW~=wBE<V^qZQ^Dft@}fcA;tDZLxl0CynvR+hJ9yY{QzMmCJRhjN<!@sh2?cg|99P_
z*u<p^rU$v$0OaHIU>nhhCwH8|YUt)L!Czxi<s4%%v42-nkt$yYzz4h+zO(r{VAqmU
zkqNI8Gh7rw^gz?%45vyaMgUgPI>f0}$0xzp0LcF$K{QplPDb1`aO$VJ13T+eP2?Qc
z*B^nBV6rn4VsW`|FDPlb1aZ;t&k{{@t%YOVIIHuQuDjJ{T{iie&~Ztv{=85M-{TJV
znMwW<-+G7<wG5Yv^4F74Ip89A^MK+hsrXw@8SgRuK)1_0-&OXn8o$7}l><5L%H{w0
zLIHEqiD+xBD~p!A@78BQcOmXoxVZ2%7W>EW^tsgMh=JTVazurPsLRpwUE}!+X;cyZ
z74($m2gSxw4dWdB1Lxo?@2m}EHZLgvQ32;vMtD*0bj4kn=RoYuJn<<pf22>x3B)AA
z?PtZ780uLgtrUL{l9Bw~d_V~<d7DeDE*>`>Bd(XmO&3}14IKsQ7gH`Tdft%SY#Dd9
ztc(Kg@~^Uwedv#jdLvt9&>jivj^Mxoh5;R_uQ``%eI>8I-%e}f;x<zE&_ZZiXD)I4
z0#o>L3^_QKhuI?*8c)-C)wSKeg{j}LxEszC|H|bG;O<GUsFI<S+T&R&O8D7@6ozQH
z?uc95OP9oJZ_*$1j%!r#!+Pdw2gI2*vUfH58!~yLA*<P0Ok940TzzL*E=a$0-~7dx
zjkFE$6ze<>Mnvma)v>~VU$=LZ`66EZp<K}t%FTcQF^)Lw3<;Tg=;Sh7b|?X-Z<67U
z*^Ck@ub>5B-_3Jm%q3-I!)y2FxW>KWPpZB&%0+k?NC1r=@&PxsS%?}>0E~6hsLQ#0
z=3^~Q+r9TLiRcBggerLJ)_gbmqZw<KMeFbGaPz7ka6Jm28<!z;Gji2gW~(OW&Z&sL
zLv3dK@@>BcefXT&f9ZmE1~<r>Up^9s$<NOym_c={R+(28JmPQFRgELlgMQ5yJ*Y(E
zoIEy(^KPYXR1qkab93(FSRj`)S(sosirLKJL0O$SFwWs|+$f+N6enFOev^TB+RKfD
z;d%_zqCi;%WzO%~g{}k04Wa6Nem`|(vX~GzGvrg6{$vMVZsKff_Be+URr7JAoW7lg
z%(zsa)(-s6wDs=V?6`{@x5ppc_i$0X1zf-SRr(#(=Go5fg3$Sr(=F$=#zLz7Je`xb
znKW@m(RjpkhObs;8A<5N){DOutWoiepNtvGkE9)1mUxHt;bTE)E;hDo??fZtUK3TT
z&F9GOGdIq@>4k(oJ)#{^x2L;Kh35$dirj1no(?>%6XwrGdII=VGe3phxUONV9h3Ef
zDfxC2>z)Jqk9uSsY8*INO_--dch()^LUb?J!N8w`(q@bNDzO+7s-HOGDKv~b?hE&O
z<|w~yMXhebz%NEIrlBM590N|qfH>#WtV{Z~Mk&qnEPSF99!i3jDv`XdA{+_M_dQ~0
zVs0g$&wxy14*>o45P^v6Q^|4Lb1*mF;d^j|Y98rcgml)iUcO&(Q|bVwhhVXVtUpPO
zeS8tjd8ydG%^&fqBEUlVC}%)BZZr4@7ffw~6b?r`QB1O|wYgsaxJZOBWWK|%M`o}A
zEhcN<Od;MGDwFMb2w%cVPE0e7E5bm(XL%-_89PHfdd30FH-3OpDh{Y>^op`0u;rTX
zBqNY9j$^?Xl;zj%Yzj#5w_qs~fmu*vn-NSpw{*P}Flq3$EKpTUl<;WY^^HeSBHhLU
z?F+U#Q4z8ylY47VU#%!Qt@Ir}N6@6>h!xKpa}eLfhQ>bKaPBKbm)GlxY)yV&T3E-Z
zZ|?@YozPT&d2)W#oHe|;@pt7MvvK&==y+`-16Z@Yp<9hvwi`uLi{-Ys-~Yw0`rEG#
zZ@m9>G4p&Um<wYZx|;h}#|!93&`g!RB@$+m$Zgf-sh3O^ki3LL!aa26-67{dfbNUc
zUP8L~LXWE=<Lnz%atm>7V;T;<>J={-tS1jl=uK7zg(xeZWL_zI^nU%E6tpMuYgU3g
zVRW>PJ&I&dE(vU4xW;QgzBG|ANqsK=J^myoWm3;}O)*d3^>z1P-T9j~Iyzyc2soRq
zdcXaZkoiSL*h#e02rxXuL0eB_k$*(rF=JeVBp4~s^oK@^03B5GpT|`S@JT?9!81N9
z?8x+x%8eACbSH%MIY}j0889Zg+ww&()LyX`w^5*CQ!DcBSu9bFDN;!~0WHqGqUpXy
z*Bb>$f?bmBp4qW1knqhCPfp4Hfi<9MeT%%hxe2O$8Xy_mP{kH$p3iRS@Gd79aWuPP
z)p-2#JCF7$Qr6t!?yFx0+b*=5z5R6~vH5ZR66$~}&U$a2NlmX<wn0nYPuZ+_qQ+rl
zEy$j!@R875Top<f8dgY?Y4;Vd^bn%2ul+vt!z1ne{_vaEP?OKOKKGo+f>yQJb_Zv?
zTVzm2_!rhzq7I6mJp-+NZq$%Z+j!rSf?0jP%Wu8SrAK_&;#K_Fa}j&pVu9$26Vm7B
zh0Z=un3Rh0M-LEux^op*!T`7%hz^`Fw^@8$F%8Yo$(YJ<j5P*V_iyg1(3z(=yY~L1
zT^Yrc<xJOL%-Fw5XPNDYCmIV`>hrim6{Zy$tq$74V0WKufQSDemo6|^XdWleg-tX5
z@eM$TgewS;+Vv+O!qSq8Y%B~641og~W)eq^QH<goGBivW6ou$nvC}3FXCAS)t_Uid
zi^9xyMIko=kKz0P3nkZI!B~HA%jcz(D1SAd!SnZ|ma)k+t(6+7l6rl!>x@U@GTyF`
zJZ2rC1{k4P(MCPvjNFCXX$_sLh0V{?N6ZUNO(Y6(G`QIZ6|qP8nL|Hsv(P=SYZHut
zZM}i%AENC7G4B3n*Zd`I0KyGrL)Z{?$Egjcj|td`Cf(n75ke4Imc*ugadDV4SG=(Q
zxjdI=WJxXjX4EC84Mdo8=wMQ2$EFQe)YwI22wx9ZjO*^1ggwx$o$p8wWr@=LRZ;0#
zIi(Q2HC=xhCctu|vt9MsuDqXiwY()3>a~H<{^m|cE}pE_FsLQSqkLU&NV>R{9^s_G
zXzn#P`c)C#V58Qm;@@l<odwjq98(r&`by#3(U*L@WAsdxh7`dN=c0okP?f@j{!rEk
z0MhG`+Rm`5sH%u6`pl=*1BaFpzVzie1IJJ<W^Iu6PUlq=M}VXJl^B~%=#nNd6~$Ux
zn4MLvnxebPnhCm#(Ou%~fZo<C7A@!WLJ<KlLhC8x1-f1z(6PNo_(EA<cE*EBW*yL{
zU{B?Jy%pyRmS@2xBjPEm-&fwsaENjDXXL!i5E`f9<bK%Uej$5x@LnF}E3mV`rW=Y5
zetp-H-x)2s(Y)`QP)gmj&`O$#8om2XxixfS+t;zz<ct=f<?pr#xIt!1knH_@&LtCb
ze=YkNJalyUHv1a=PH(8*pIC7XU9P*p^Ro;UU9w#fRWxu0BId~tw~9%xG-dp*`R7XZ
zoiEQ~jWy8e>~LJ2<>YE0gIR$AOGY!qV9nDvFU&p<pm$3T*>434H=2-Hi4COs5+y>!
zZ9!ZT@qG}m0B6TUJ@LBIRGjl|8RDr84`+P2{1?p^z2xxMo#1!|g=56VOtZuaRe>PR
zOoW%_Bxl<Nro3^Qmd?!E(3+k2F}8HOJ;=2TJTbHI3)n$A3#BKD)cQzZC-kl!+-mWo
zzvfShjHF9xLcFD3{cr<q9iv3r%Zt@>j_1V5+_qv(0-(Uu7oRz5_F5?XWz5s{>f%?Y
z^8s4Uj}6Y$tE%TMaqgB|@w~Dqtq2ohk4Xsn=;EK-PP^O!Ih$iQU$F#XXOzRhcV8F5
zHxjrn#dg53#u>7tKsLG}z&`-lUpigDpl50b;Q^&Bpof<wAgSaNiV6@VnR;&g0~nmV
zCB(_arp8A1lBFO3{EGWTQ~zhtkjP5$75eY^JxU>OGAK_y4ayJ526_*<%w?tn-Y)@$
z6Vl^zk>5k#)~hy;O>y-M)-#R>oM1bcjiV>{yO{%BKK#lPD~6+?X>4b1P1uzg#EisD
zHd9neSkSbES=*A|FVFHv?sym@`P-70wSI-<(OSMb4W?b$m0U~T91@EAKa9P1T$4?-
zE}8~}9!Tgd6e$Ww??UJ;Gy$cF0Rn;`(u=f&-n$r@(nOj_l_E;$MLLLppmZtH6%o+y
z#&4f}?mlPl-|yZ(lT2pjU2DyHXJ)PSJm7k%WWChid%?wl2VQ+yvTbKL42^h)AjRqa
z(`(T1arf+h07I<EQ3U~E&=T+Ox3f6$)I|oAH0j{q{j3G?b|&x}dvQ{h^-H9erLGJD
zO#w!XT|HaHq7f__NDfNOcjKD(pZZVu2Zi4Dp9;-bE9m>wkD{t8&ePw{KvqmHw1*nS
zhnj4d$p=COH*dT+OZFJ3)B1fENSUtPA0J$vM%DXNKoCq_(hY>LA^4p5hur;>O{Us6
zkGT~?KWbZ#$_{MVziwl%9ZE3`e6z|Iw*NPLPjoA%ZMIf-$%*r?URxMoA*i*GhoiRF
z^>b5>Mtfb}7DkxoJ=3}<^3h!B1V(&N`BSU2g_=~vm&i)ialVT46Poi-5YsNk{!V&n
z-DYN#>HWLij;HPAP<;5r+ZR9?@NLAY$X3iN^%=xWqAR6VOq#_?4f9tcD()oddzG>k
z^iK#c_|-?1eK~f06o`%q=)qG9#n^2kR&7kb>RGds;_B^bv%S!S08}fg2N*X2oM$xl
zHjUMToDaNIp(=NjH9E_ML#A1ci6&Ai4*f3l6Lt&**e0wxbYH~32V}tA<f2L4M_+9B
zT~nt*T`=#}upnl~1e3@oQ5xYH-ykdeFjD$8I4e_h%W}#g<VCz<+bzjgz)4AoH<Q<K
z=IM@zA3`S!Lr8kQ{3To&j<L9rkFJPX3)GS~ly;30W5f(b1^536WtM67P4vbt*3=CA
zxs20l@T$>~{^h&9?kg<an|hySsLstzfy(A4m!!a+BaMcqj4(X%GCShD=X|@>n-N$T
zDR?zszW$tl>(iK>;C=O@(R%<MMPx|azR~bVp63`?xEK&<<ag6)p@{c4-*dh=jz?fk
zo&=pg2e<xEm-UeYh<ABE(0<Ke?q{mkYGMQ|GJND{)FGTz*^5g4Zm3Kw;(A*YmkwQj
zm#=rjv=9uv2s9%H(9iE-P#!Nj{nK3)Y+7wL)~1iwWSrGZ4}z1^#pbb07k_N51c(rq
z{)A9+a9r}eTvGlx8dMmC<Sb_}kwKUJeCk*-TGFrTiGz0Wo95l;1X1WbB8zsCcG*bR
z8e~6pWZj@nvE+>U;l@Am$C`l#4HG6e3aOwT84b4OkSh81tr4_;;0$tbbvSbUX!S>4
z`2tIdVlEg@wg^A87=0L>Di)BEkk?}8pnq6>!cnFh{?QlH<XF+(c`FS*eY_hi5oY)A
zc{@*ez}<fSJGs%~v+DUhth`KC6(=q4LW^FQSTb~{V<+vP%Wvb)5CD`jFaoT!#L<_F
zWM^F@hfZx>GFwq0UA;sS6dhyNRQWvo)T+cKI6}o6NK9vsQ*u1~Xt=-Z4qAnv5|hmY
zFw0*^+md>u<0k&mo(59}=Igee@CT5UTcp3HZ)8=HD_{H@lc(F<!>oPdWA{a*cuMDG
zLUngWo;>n3O>3HXi#Hd?HG26{I@f@_CX|No)3`Bd^7+&HEKzaCD)3Mu@OeKrq8_xe
zZ&5r^elki9WFXg>B)#9AV1Hik_L2*Tf&{V!SYyd9)Or<-@L7WB{FMf2oLic9l;Fgm
zr+ER1!UDPq*hE<rjcO^*yof0AVml8oX@1Gf*-xhSjO{~1yI;(ptYbkrwUkx*`z!c}
zJ{s{za%HApA-}F%Nni5f`emmWuTgJesUQ@5NbB_k?v)DF!K0nKAp+#&7tduov_uXG
zj98fWI3e2@lp}2(J?8b48!UM%K%;vt_G%K(2vX%s<ifJh#6j?9t)-Si_!JU0Q`%qj
z(&y*VQ2{IBPaH5;svG>7YhS*?HzD)0d^?GX7$xl?ra1)B@;1Y6LFUvYEwW^q{H`hz
zty{{764XEIgvLe|4DU$!zLb+z`m^Y~KCkWz*>ytPtAIr#apcTxtK51$c`hz1DL*+P
z`))^c_=Y$-nZ-QU1}l-lP?8KrGV3}4+eI&Y&5SohWLtvcY=t@RM15v6Kq&?F-^<%9
zz5FdGMbCTTa-(Hg3D-e08%!?|K3_>%fIh-j*kT0^Bt`l=)*QOZmG~*m=jW&U!+Af9
zUfRHi)owALb<B2NC6gEC+q_-$oA(br`V=A}cf(loSy^8YxBY(0;lYjCfBoxM{@u52
zsod4#_^DBcLHbYmxf{f=8HU=ZcHb%<!$&FuU%R?g*_OAw?IMrTT5^R*2-|Xqu~Hw0
z>DZn}x4;YQIa7v|ajlw9p8lEh<d80~6%IyW+Gy7X1Q3)`?uIKc4@q)8j4;;RR^zi_
zdG*Y1a_%GR*f5~JTB}p#cLsTDwmQG4y`13?lah#4H9r<puHEKjb^x;}e6cX^R$FLf
zm2OXo|HLEMDVJ#ObK<zlXJ*9%xRAbXbcnZxI9ha2z;;kDB7Ws%M6LiJQ)@U<V<7WI
z14swEQz;$~2?5tUVC&R~1{h+<g&kc73VS2~0yxUdXdUWQu==sJdBS0-@69y3$7xfG
z#Y0BITMF`ZMkMQ`6-^!DaF#h9W#*cs!|+itLG+W-BJmmcf`CKo^e3;till3s8}`mM
zLIvN7j^yJ86E2Wfy{LryM)rhi3LevoxRI4(I9X`ZlqYr&t<l5--h)gX^#+D4`~W1g
zL_qy@O<o`9%8;CUvQOmh?4^)Y1_|8{cnEqthE?&=s`F=yk7`MLdC8ng8@IPf?DHI&
z(q#Ib!|74n-m{X$IP5t02_W~gOJWW8g#ikp<j}FfYTChs*>5*U?K9u;A!yq@&sB%A
zH$>MtHt)tr8)_1~pxVRyO8|hwHL@X2kP8qHimw?t<Xep<G32FqoOClU3s)Q~BpbI_
zi6}$=0l>}T$d?2}k-+OfS<sOp4FyA%Ok7j^_P~`P#RWYU*f}Q?bR1m{8{(`<tAa5?
z^lDNHYp0*tibPmFdtaM)6*G_39%&tmd3N`M%jTn2E|k5FyC`_DC4^lh(fbwGp7c=C
zYq7&&aWc|vC+Nw1XT<Ycwj29j5S(cnqeZ?vIlGTtW7p5iZv!p|!<6UmJC2Gy9j3Pn
ze8b6B{qJFq5275C`~7id&})%r*gao6&+t~ZI=85-^qO-0Ei~JnDz%tgU5>;ib}`M0
zE2|>e#4`!vX8LO<))$Cd8B~8!T;*tNUEDgEe5+W+MR1fhX548Yy;_)>p$|@~1%`a-
zn^D!jfu86OV0pXj&yYY=QlyaLeh#jP&tBD&GG*R`f3K{R@*FfCh~j!3hwa|Gt?V9&
z8A)LhOHpJ>@B9Ek*|7<cYOCB{erkX3_rvDmT{Ec`I-(k#>g+U*Q6uZolH+-;bH+?7
zz!c=m{J4&n>^H328y6X=eU({qi99?jK}=GuY{JHfci*@WkaYjKR$PS--&$B`bUKOc
z?h1*P(FX-k$EOfMkyjE`C|{_P1@&e+F`IC^I?$XYxV9QnxfB=2&s`%GX|LgWt!T_l
zR=@R>L~hE>y|~)hkUc}^X&9$<{kt(J1d|>G3n&Q~{^KPwGGU}8elOGf-J^avl95nc
zy2T`iqWq4DIbX4x1>La3XI#mh?k7GX+KJ_f6#X$1C1lG0^>_uo@H<A)M`YUwozU>d
zXN%Vbp{LrQ*J=$QQ?jynMp{r$3_F|j1urB6u;@;VI>$S%q5uE^1^R9)Kxx9Wf~8t7
z*)E_riIoQo1P+Y*kr59LTd)C5IrEYuPabkp3tLk7^NDMIGdeQn-=^8$DqnAr&f?E>
z$;peoqIT1vvZ+@vfT8wbRQo)Iu=Nu>cG?vKE(m{R8eV_tY%|YJ|M7ME*d!2#@;2r;
zyJ<x6f@!(<nlUeAw9CQN!ih7<jHfUD`g3LrJzjE|efC<w+-Ku0itV>6E1&lRg{o@s
z=k=d9<iQoxgQLDlKNrS1^RA5v#k>jMS5xIE3(6z`?0#RqsX#tqsnXW*;B(Z)e#|TM
z+gs_~3;~h?v#kAV6f8cW<IL=*WlmH5h2UfHr?O%rvh(k+zl%Qo*Zr20Jt$rn`0*&+
z-c9DgESJVlZURV2+z(+!sz!)kHD_jJ?-5kbs&Yjv>2{?lu&-_WZnML<M^dk%qJ;q{
zs~=XOBX5q_WMbE!ZM9LG?x`j=aqdz9ow*sV!vQ8imId0+!JtGS{<T?1f6sXwJCDHQ
zS-r0}{ZX5Zz{s7)xezj5{Dkkhvw`(XGnfZ|WK~p{w~=3r(IPu*6*eYW&}qu;P)#G!
zKiHB`$OnVd=x0SbrZqhxkjhIei7K1TtDD^yeEoXAo?k5@ek6PHMPSrPOi=ebtU&`{
zL>-laU@<TD3FF(Ru6Wk`<Q8+sl;$agaxdqflKW6$vRO_cxp)9M5cdl>LuXqZt^}YF
zfS<8)P8%x_T~&m$HV2(1$;!ciJd(LDv&l?2J))>+vTB{H2w*D+D<UsQX%l7kLma^c
zU>Z7C6MjcWD6kRf;^#BTwKTj1&=9@;k#o<3#Qn|+kcBj*tXw+}HIwAzm_gAN>0IUa
zC5G_Hu_Q44I%1g>e4nC)vdasyrB?C9=&6<pllVE`3qc)n70MzE<;oauqgd*3%&059
zhCjw=hy=-|UK!^%3#qM-V=FTG)*jb$C~MtHAEVRv^nrWtAl(K)fW%)p)S2<8=WYM(
zw$jK9^&DXkG~0eNl%Ug>rGxB6u+4B!PF+Dpc4HQOY@3IfQ!GVQF@*RG_32j|b96uT
zF&mCe4kZ=%Fz-ghY>Dml&({Pg%W2P@o+0LHwTgX+umml5+x1FU;X3s6GCWGI4N}D*
z*5Jy@qTK&Ibn4jir?fn}wfk|}7^ym6feUrV;R4<Ho%b{Gak|uDB{CuXMz&1HKxb?p
z$zIBTyD4$7=#i630`7$B3J0|15p_0)XZszW1(S`6%<za3`3t9KPwWM(3o5o6{BJyz
z@aFS~$T=e&&4Q=TFc!V&-dz_$T=>wtveN^n@hj^SVt&5=06w^S>ysIfd&@Fxvex%e
zbyG%te-2=Fe^tfXFOW-R!g==9i0yf$z6?KGLS<`jZsA`+_J6!t@QJtYWzknOw19*c
zjZj!1C5w<l7sSe`#f&Q9kE0c^E-3+(2O|hg0QYQEN^&la7$td@yPZm|SbW3Byebg(
zxHuNDJ?quh;AAl_(@rZZOr~N*KP1y}ot_^n;`<<tlnC~N&&ey|kzl{4yzxjOd)j?@
zQiA0hzR(=eqf<j+)xL_JahX+-pMgd$o%gUCYJNZ8>05fFR5_Un$FQ#PE?ayr7?15o
zZ6wclm)G=`8+nt+d(s4WLMl)Uj4LeZq+C1K7-cctVToh#ce))zyuci{xx5A!lI%-e
z*7nb?tpWta0)2HdHD$J0+_q<h@N;@6HP-im>zY58u|d&W(;1C66zw6d8`QF=8%L#@
zd#P$)m32rF-R#f`&TLXlIOzogH7Pp8R<+fGhX4A_QiqdU<iAaKvSd7UF7B_We$(oZ
z+aDeyvCQ_ZK<cN|nYn<otAf&aA>^T?7fd92^R;2JAt%w|1#l#UVL;}N85KDoU6Nu&
zQBoOg$N2#Gv&X^9qb&MrttLHd#U+Uvss{n_W8QVYD{pd#nMp%q^t*Dq4LCbeatmA&
z*jCb4)vI7*X7wT*I2r!ahQP{BxT<02*JQZ-S<^XB;jr*fVf92{pVOO4V?|L|V_EA~
zv)BlPM}d2bpuoDYIyuTn#O<2`23ha;7kiekWxgCSr!AsfXYL={QVXXrWibt(HSjBm
z_88r-F`rF+KrK?iIMLJD{S>*bMPnQEr7Zp;O9vbf*t*#JW9{?4iTfQRP_DK*iGT0s
z@yTOhD{ZoUtga!ACECHcj^owM($4C?_!XVEI7S}0v}On3fKK-*BvAmdaf>1+Lx=GX
zDvc6#pIPDejqjPdyJUiz3Hbxhjt=?XqK}UMECoeHo>&|OIXL7h11lr5SLviHptf_1
z547HN+hdDZpvtFhjLtra>2#;j`mN|=yh@jrcNrt;itoJj4~(D-;~NHCf)p|w6kcd`
z<+|u)mqdbP9{vLecIZf`>>qUI(GvQI>q2wT&@WU^$R*CTeTH`P>D>4&Iw<};x242!
zb30w_weod|JZiL1fq8x62Hhgf*IAzClpveM7l~d?%rfHvD(Pzt(cf-zsdop{+g)Ck
z<Y`={t6N4r^yldp8Z`q53_?DTf2D|;R1n-+-_ziQ>d3{fTYs$*ZBCvYl(pIe_>Bg;
zOKJ73+1zPWpc<H!8?;oW{h<2p+IUwc?4Yn_pzmsUHpX835p^FxL5g7mvitP-kZxt&
z*{XCmG33}PWm4JZx7%8#WAf3cvGo?hoA5R<28o?m&z!-K^*G8TLR!DnQag#a{<*`}
zWX7j3UM1|)u!@5U;nnq6!RzL5xQU;mcN+E)Id><3m6D)SC&2580)#zXltR#WI;Nej
z)p66KH6GDVR4&e@yoxP)`aq`(N8B)KqAZvmUcd-VXua%doushvp|<vC_`ujTEC0K1
zw!ioH+ZR_!hn5adsr*{;0FuU$O7+FHUXCqh0))>q>AuZSnqf-El4_G}I`2+}de)p~
zCCeHUSCox~#pPr1i<&M8>^X|UlVpzgJcb&FNqsiltm$d!R@KD?2lp}|(?ftK(wXf>
zqnaIg;+qKlH6m%t{-)fT^7|cZ5bwh5eRawOM%r;s&d}FSjjQ*`C|m3kMl*NY2%Mg@
z??`bAds3|wIsVP3HJRJ_=~h(|b_*ge?>RbEO){h_2_*hDfL4O7L|{<VXI*tf@&`!|
z^{qnI&SJm*K`w9~&F{7vD3s1HL$G|=V3x`eq5%ickR`wNhM)7eWqDg0b_H(Xy;k`a
zM13ARvA8}E6hO7&C{b@XnG7ZF<Gtjl=>plf<6U9qt;T{fPc!fFMKLZ7$ymqxq(mkv
zN^4&MgZ<#x=()_`ij<AtR^MH`MinjZsXS~L$@l4VWG%t0>X%nhxy>{bVL->C*(mpQ
zv--GnFBfJnfBr9c@Mc(`j-k|Ola(K;b0Ju|+-)aawQM>R>eo?a33`I|0-uyi-xOob
zD=-<Z{rbQQ4H!p!9F}`QEL>5RLwj;;OHTs&Ik^+MZ-T!`GSiIUCj|KwvJ{LTAY48C
z@lwYj+}6rmRMRWU1Cgu5JB2Z68}y1|w-l|G;Vp7bRS~iMLSIq^r_kL#7T(A>=L^(l
z`RT5zXkScPiVhS6jk-2Qc^-8^Bnua21)^p*ytycUTkFrN-Mlu=QsUEZ%~d$f-4f`I
zzi0n|BC5p1!M`@|gH`XZN>26nJF8K&`rqL9Q-$Df2g7+?CegnjHzg!BJ9(}vz8z%k
z6>9tA%?p$pB7yX08R?zN%-l<!2K#Cz&Q=4dO|&6p(PosrMw>v@s?&mB5Py-^$)~NF
zvBHE(so}=?^1G83K2q*QcVe6=MlI1s9Vo4)o)Y>)8X;4SWDN|ZSMTK^HP9cgZn_`8
z#p#I~F`_K}>HVC78r8P-n(pF8di${+g%*pG@8YAHO|^t7-_p~M8=+In{=gu%`NvMx
z^F^JKXBD;`Z}actpK4y7k;z-yJnR2Tyhj~R9!XX6M80KE;q#b<&rkQJI|+IF7s=Yj
z(Y;z}!%HTHmw#G3>9ya2E8o0PpJo2L0SJ2%=db3tl*q+=!0j^5LZbP;$%1TA<PdDc
zz3pGs=tBv{6y=Uwr{HU#Zob{vpKo$oZTxiiUBaFa1Vy4C_i&i+G$G|JU=t!w5^QBP
zi`^otlLu_+Xz*V$A6|!u9wJ4${{c*e+)t$Hy_LyT8C?bOKzNK8u$@p)UZKg$%K+n#
zWQS;g@c_|Ykk3B=+n7Q;JI~a6jK2-jmi0P8&_2R3?JnMxkbMl4Cf@=Jh=cj$<*!zA
zk}8{atge3Cqn|y)W>#>Ul8#c|Vby2YQ={WN$XX!<p0R6Kac8(w>my?Acl;lDnMLjd
zq7-)C@jO17*;5h&5spmKjlU|I!IU3Ob`6pR3KHplVod#Lmp0jPg9**`5}RcbA$|7n
zN886$EaJ6$T9Gj0vGlt@fkT2T!<#b;U9-(61%n*9;xET>d_f|6zN$RUIVMwu*k;C%
z5g=IfrPe%l`7IGIYx$}2E~MBXQeVq{baAr%%h2X_!;yRp!(q{kMxo3yZMv%_5R)tA
zt}X^fK$Dk4keY`KT23wy??&DQi78D#MPc<Gtds??xJ!}14%AE;z=YuwA6;0t_N(t+
zxPOoD)6lf)t@wP)=Y!lk-o)P<lQ|MBMRv4f;i9v*IEqay`nP`4eN-0`$h!T*8Kieh
zLNd;0P@`@xlpI~YrJ=asMcD^PIWFbRz=lUFedg_-_2m-=68kHPOI>e7S>jY{Zx~z4
z+j0<ad@6$-m@F@jE(tU5XE;AK^DOv{9C$1~sG07sTP-9ddkK5a%6e}xiHm!(&wlSe
z{H6*-J;4;xgc1BYEik)rmYMMFH0^8tY=d{7ysjRxEwy_2XmustnTelbIK27Y2p`p*
z6mzbRk+60>Hibw;GIHY{34Y;r0;X{5%?D~<QxY>0U5+`(pZ}MyMQZrV=g%BRoP63$
zd;PCMg-T$1G}}A3!o&kf{GtiR`c6Imux)rMgsjAyva-D|f=#8X^g@)`Ug#R5zw}yz
z`#^qD3K;2=DiPP|PCH}GF|gG=EIkXoYXU;ywwDimTuajnx+4c|kq;>ND3N@Ma1{&?
zDj{$j{FoXDpcRXU>|=#KZp)Kr)whM$ly#llMyoiUXmKdu>Wc}##TbROJ!5o&f!sr_
z>@~DS4XFKZ4e5rvZ=W`S`p-nmhe!;K*NwOnHW31Bb%MVvtek3wtIOphODAO*bl8O?
z@%jhiiFPEf2?G%KR1;Rns(_zob$qvyDIG0tv{hV{%l{<#vuon^y%4BZzusArp-qyA
z=7}l?>={ZSrD6LHcYV&cSY}6ona^^n96gx3^NOt2EpH}+m=!oDVs0sNKCCb2nEc`C
z5aV1TTIfJ8v*X~yi?bo?{wUE9&;$m$o)m<83F;-uN4mT*E_y%~SGIYy9M=P#h`2rX
zMO1;d9o+G!#y_6%n^B#MLQFx9dL}88Uy<QP+>h3AFQl|JN3?=Aood{X?$2mn;sd-^
z#`N(L8)8R-COm_4Dp%48!;kDPtBv!gMM`J^V&GQC9Qi=xoJ`P9q2?DKW>sCl?JrRz
z7EGHHVoXh3j{-oT%VuRpCq_*epG8nCQTtYazAI7dXY^Z`5IVUT5l;|2d!{c408l|D
zdI#<dR1TI`PbP9g33lxmIf%<ZrLw1T6`8a!-$&BrFl$fGA~?AInGyF#N57%R7{F!C
zW{+qth4H^8oZZ?HciP305s4fIL-pdAo!|YM2M;KEQ3sKr0ssaVLZ(|x+`Bxq12$13
z_z*ei^iO&H%!a`B4SU6b&f#hGC1RqhfPaHruEuDGE}Z27wF+sg+F_-c$0~^I9yw`e
zw!A}P=Tp;NlIQZ{FWKBFW_V)@6RF8jX37AK_B0%3qgLxljD~)!{{SQ-6^1JK07Q*p
z^eLVZcgFLaoU&}VB<GuB$r?lWRu{S$5byPLp11PeF%*6qM|^*1!^ckk*-We82`UeS
zCpr?^=>3Jv91^X^fEKZ1t%p?-imbxGkv{|e6jYS5G5OlycoXDMG)?%eXIh_8;nPiB
zquZ9qG{FO6kN~*cB=@QRD1=3aUXed27Z87olh}Ky35Y~RmL@SQJ?>}Fm0&ePteil~
zoqWr84PV=E$O<3xe!bL0VsM<|3Edz*Kp(rGNDFV17%*NzxVN4+)J@DYjq&LTAhk5A
zPyi%It2v+5#S!#44p7*U_l}y}s|iE*Yhg}MHT@~x;A~yN|D3m>E1hrZq9PwV{%UC@
zPlAgTnq#ZO94Gsvz^<my1J_N)iCHWjhgCG;pUA=~uH@hOfO(fMwX&|(LF>ki3tt*_
zjW%Od2M8=n$0|mam#tZ{=HrIA^qb?)UyDTvLD0+>Zav{x+P2Hq0}S{yL~yk;W^7cF
zGhLih%PzoausvE5OOrv3U7kDH%J)sre$HjM=c`K>z5de|`1uQzd+k>Zk7D@;q4tqN
z03rG!zb4FOd%2gw-T755&x=(l?j9;w^5m&_oG_YI5DmA6OMDMsoPgO*c*xI^$7mKQ
z6@8UcF`#%ka)z$wn?1n^y^Q6WY$vkS9=1Kp*s9Wt1jgjrJSyTP?tl)Z8%JL-?-h1f
z-r|B<Z#Gz@#c`!da8Dc%-LNrZc4aXG9d;L=M@iVW&Ylk_AM>^mx{h<t?>-<p-K$^3
zPfF)2eLiH@-S~UwYVS6trhcwnTcEciQi{6)8bQ>n6@jK2AKdU51=MT+gAXMojV)6u
zsL}YDhTQPzK2sjEUSI;PRT(Z$VBH|UPO;#683{#+{OIK6tK{7KVg8z_LkTz<`-t5+
zSLxWU2X5t5jf7^@ng`8<B7*XhQbxVN4)y9|AbTWj|5?5Df@1=))=YoKY9mf{@HYzN
zNv8srtK1Z%`E=x`eu|$00djo=_Oe_C1I?M^Ncm?!xt}Z}{JL5MW^qQ3?kr8~@C5`|
zYlF*$$$1c$AXHSMDntJ{lMxxP00eV9T4xa{>tbskb9;v&m2;3sgjs4y>GXU{rU>WJ
zS|O+ykAuiTEB7gTHy)gO!Mo-b;Y?2nyI5MkSudLt1G<t3ayg893N?*1aG1ALI1=P2
zRM>i*N0VL1#Y$iOdKn9UdVxY*9NyxDx%KlShhY=E@)8g-$i)fr)$wh9h7PeepsyCP
z(O>0aC`6L@r}dNxG!M0fA7<E$kS@bzYe%KGIz7QUfRyoK659e=_pHHt+>_cdJS^cG
zZaKF!IrW%9tBa9$Px_NWWSa&yNTAN|mkHNx9vaQhci7;4K5*z<Zq>~{cW{%zSwEK@
zb$9y1tF=MF5KJHnf?(mSh0pMvO#&al&iC&@nQz7@sbU(_NcWO^z7lR%YQRBrW@ePc
zXEOtxqth*cA-Pl9&ZgArIzkTYke)2Clamdh?Qycry0w)O^$_~P{{3C`i$$*)f6eyi
zxK82I7X7c;K{rtL<N?7F5L?}a#Soi=lOHZvp%Sk`ErqcPNk3Spa17nO>MI8NWaDzc
zIQL&v?F*x$(~W{{&%eHD85%sPq`<K`4wOJR&GU*LmA{1ey)|g>S^C!~om3z^F6*Nz
z7kl0pWuFMesP5tZTLKh*7ev}kD+bN@lIAU?>sRP<dj@?RU-TSg(*(3*N}9BrFi%aF
z?$2iB&GY^^EViGB2>&JwbW-FEC`M?d7v(m^S+4}+uLwx=)TFteDP782y-F-X4HnAA
zizp?@7m(iHyYURdV64-3vq3cLdZgg!<Ie-C>A?x6_V-W}z>`Iu2G^QfK9-BrHQg<&
zp#lDrnb%51;h~e=y&l>ZMAI@1<$7*vH#lxm!Dw2KcLNe)=es)6ILVnXp^mAKegc+4
z&eNeO$cp%j-&hk=qj!i;t6ga7*;v4-(p4}TSt1V4cmg+fKRjom>3lw3k}>EK+q=U#
zjMW24QI3FVAgg~AO|aBISIkuF4zFf!_8-x)mfy=iBraa_V#YK+AGO-!FZ38kNPT5x
z7bV5GPm@qV8ie*q`WLG+y03PCcy|%CjzuZ~(+SPyh2U9L$Tu?%F9}L?qXt8Cm$a9)
zY;Mk!656lTMhLO+^xyzIB6XY65y16cM4Sfho%>zq<DUr6L4^&C6bDGMudWA3>-}k?
z1@r@#E<iiF*W3pB#kDPgRhCtR9MEFuPqDF>R6j^jM)|PzHju7W^rlCIDXoL#k#9DU
zDs;fPAfx5lU`-{3Z7x}~qq>A*UNm(a<25NfbxGT+)uu~098MWq;bSWGp|C@FNtEu;
z#Lnc-GKYCE(&eD*UkBJ*Bor$^eYItwvRG$T?n3~3__Jhh!8^Sm*OE(m+$ZkE58`(h
z4hqHZzCDd~%3J(y@J(FW-~VA&#iR6PRY4#Ap4PGw{f^_rsfw>5K1M6|GDsUspgO-(
zg5z!F$>y&oifOBk>FYcd`ijg{0k>MDe3@U1QCusb{$7D^kB3s~2sB0qx9Z-U;;PQ{
zX1pyeZ@1iHb7{J_RHw3obBD0mnqRp>q<jZGGRN0a;(Iu?8B~+xx)$7`61eniHpcqt
zQw<_UGd=M<x8p>~%#cg(H6W8W?;xlYGEOL__->BlEN`p7yBBL(5jV$2bEL$q$~zL$
zSU_Q#vI8r!$iAQ3_E`n$Ihu-pQ}ZSB4K2WxQj85aNIw;KKBA&i^PK15td{zSDMWIL
zo_10J6_*yy_J<9zK6;=0+$WVXUO?2GNYDyww4`Pd5NgVf111(35P{@6(5C2yLAiIK
zYm);({{Zg)p?_oWo_0uktpnNeqIPkqQQKUN`Kz@1AUgIT1PpwP%Xl999ENhl9NHe;
z7<E2Q{W*#@Gt)3F53=He0VIX-M_INaKU+_Uen^7lj<r%ZB`yza0h=PP|1QE%_stLO
zgsvq7;TVqa0=rg}xQf=cS2T->IF!oK8&;&tG~_&%cfk57STo?afu|rDZ5PAj{!`$P
z?opV00;YrU=B6=a82!6v0J>H}a`wh3zM}ivGe$2H0pY=Y{78)8K%R<((-lx8mPYr3
z?o~1sB@O~PW}G^AqoaKH2C%{0f_$@X+q*PBpB{8-pvvI`%gPG;)%<w0ikwXB;|Q~b
zcUyMK{1U?u>X!5qsjgAnu6O&y&^hBDAM3DPOy<l)-=JKfyq``vHJ`Ymh5(@wDOM`5
zqk9rHL$-X+!CoMCFpLo!R`rN%Z)lSv{vSZlXpUjg0nwRfM-{R$#vIk-^~ng!Gub`2
zR3>HvY^8c{dKv3#vUhBypUF#01qpRfD8a;PXi1fezPlYCl@MP<m7X;?>36Nx(E+Ug
z^a=a-)VTd>b!BC%@2rtnfP1Jd;B?!IYdWta<gV8ZJwn55<an2Aj2h&{5RLegyi&5U
z${qL~wfA?18=ZP*kJlH}Y7=~Xt&s7(utDPcZLwY1{^bT{HCga^B)Pbj)SW~oBhQ8c
zzK_(H!7}so!c+4f@Z)~~*7EQXy%<HB%J|PTqU3yvLGPaelJQB!olU?@7NGv0ud8Dt
zn<6oIZd3v(O$ouG{6ypKt`a%Le%>`^p2qnb8FSztt%dODbgSqUcD*ps0<H%k%gDwI
zgC95avTGQU8G=O%th!k1e_U#L$*|44PXql6Qr;{$Wcc~A7BwjFahkILe^?diOG`En
zuDY5|uI+d=<()wSR0%{utM_(o&0WL#?CTcl$XG!-PO8{jA9NLf2k9$y+SF4HQn1-|
zvXmxG$T6HKjgnx_>f=RtIPAMcrBlOeyfDhPnEM>71qMD_4OUC{eoUmKL5@X|-R!~~
zzdA0x(q^UKcJigu!+cP0CHp=Q*&iPyu{ufNr!T|i?3XN#F<WIn+p)6y{YAXDu=IO4
zeYG6<5i*XTdA&&3U)L1UHB8k#>mEnNjBjJ=CLj4Id<4olY5ncpv7S4^?Q3*qn!0iT
zU6NTJS$yer==AN>h$m;L;Giz0U;3-ShO*+~0;a(N2-dV<W*zY@UXqnPNg0_DEMbd%
zU41o~VwE+ZIj4O<{rsb?%$qk=%f@4~onK4-<K<kxKqJqS^Hr58kWFbmt5`|zMYtH_
z9E@e7HB)CUa4%Pr*5GSFy~dw06YW=<cyxEsfqz<l`eoei`^}6?xb4RP8~E!Hty8iy
z(Ml7;5ure8H$Uff*LJ3Ec-_GLOLs5p)$}T&M{%lRCszB_?VLv89Bs1m_Ayy#0aXZg
z%bdnesXY0;3JjJENYE8qmp6ISxS&-ZACisqxxe(7r}5|EJWMcTlIK>wpaY3>ebMy+
zx%LB5sy3pYI-f)Ch|NUC7#2w*et=hUfS|QJpvCBg6|J=$$oX&YJFgVuRwaegR&Co6
z9Y23aaSb4heXfFxCv+o&RwmMB-Y459>AiC;8p@X!jk!Vtr~i?!amb-A?@h5^@C$H}
z<|(AL!qFC+f(E&lP!=5i17M~WiM-*3b8u3IQeDXxa{csJt23-saSP&+FTFqDx2zXl
zt7=|4qEIUZK4C6oPB!3wsz5~pUy+xa<J<6k3d{Rw<GFtj0GowUr;<N>SyC0Nyef1L
zA!??#R-#14u1WSDw8oVaH?%N6>rq(LC=6j37)kF&0lHl6pMU$q<jd<l4sd+BD~vtY
ze7odDm$3cB?ktGL_CQjkb$r#8rk?I+yc25-q5v#!h$RkcEtDb!U0fxAxO5io6wsrx
zujotI9a8G_gH%8H?}QMWA0U~l3lNkGnjx-CI)n0kE)4sSBV`e#8xCnv5S@gz^%YC9
zlBH%c75{EttExLUIbL!m50q?O)wFh5yK>v|MG_cheut6ahj&zU<~5A^d24?V{YUq7
zGh7SlG%CKM7hri*_WM&)D$45-DT`@uWX4DB^%N?goYQ5$zPoHM5J<<HmQNrEBCmIu
zD@vNkv@E^n+n_kXR|(xZ@T{a4SQ}JaT6}1dQB>M~$$~1;;`Z0ICF=zRL3OT=NM~P{
z(oz2&a-Cm$qL%4(=vBv{z44ivxV|=)=R6fUOY(u%kNIvrz%9R)3ZzVaGx$p04nhJ9
zXFWtq^gEd|3E%Oc(c6OS$J@=>phpm40Og=dsiL808E{}-$xv%9{qCOjhmhfk1exYv
z3TzC?i@eEJV^AlFrHJdOd}B!~hGt$+at`<jZuC|LIJb}Wh~l<NF(sT13Gc{qRES`C
za@$Oxugz>qn0$uIj_#62QR7)9X}{o^y!G3{QM~7OBraZqGM<$!3$L@4{ITJczx~eJ
z4<S`QE%&RJZnyvan0GxEMDgFgO}HuU4QO=LLS`YPK#B2_Dvm|)`e4v8glo`D5~}$j
z=Yg~<0>-}}3_%iBfBf&x{`P%p;Y4tZ`liRHQ6@mlD#Ad63d=Nev}lLoW&e+Mf9Ie)
zmTOUv>DqmFf>m@W7U9Gv;W!B4_Hv5J$kzmbuK*+ww+^H@y{|j}ogn+xJ*}=MZ&&&F
zn1Ntdrd4X864u`g{D}}rUD}{XVaUK%q-g(*jdkilmh|gLdsGKLIPwZ18>BXTO!n`W
z$n`v~3%+!C7WdLeQVSHFMz0c#2F(nkVHS|)4YP)D_bN+!pq|D2+gkK#d~qraTe_v!
z+vt{$USR&k>ooGVW?boi39od^n>LhVVWj+lv|BEUGFd7D96#15LTc$UEtlIAmLP#Y
z5?+~eIeYx=KV|)YiT>?lHh{D*C=uf*agFqkQBqF<01l~9BL#zE-@ikWI*Q6b#|>(S
zT>UQ^`@ehntIrSdUUo8af~2YZ{o6z)43kNEXeha_KCC|ZuQ-hK3l)m4K>65!;<SJD
zpZir?4R-5_Hv>)lT(>hj%2EKAS-?O;(yJRUS$jqlWSw1f*k$5_h7^uL>Gc0Km;Y(-
z|KZnLA%)BbDPHkWv$2*;FZmcEW214DB>Qu=A5H=R@8PKbyn_AJ5T^^q#a>oGN&&W=
zj~+IhQv81YSJiMv6m+bl`Tk##xN0|nOX=`H01-)&QR!T3ssgE-|7yl1=CnzX3J!yj
z*OqQKl<HE}!mUXSW8+9``2kz*#vVzGv5bTC($-J?|C<FanZ2dlHzE5^t&s*K^K!*%
zpA`SA#L?0tNIl!*+^_#-JoCHcFFRuJqm?=tWI!O>J_F43rbg+N|K9U|tgrtjFqhy-
z9(e2#0|QitDq9%9XaplsVn@=Ah;A=a55fdSB+*d?I!FJSFNmZ=%6+2fy<-Cj!Vyd(
zo`z=k-({;2ZP3pPnf<G7bzogLHE8*--KhfQC37$BhyM<#G&E$b**!y{6EDu-9v=_X
z0M^V+URhN(<KHZ!Of3rh@qy(%6AWnESjF(jD(b&H-tG1xK2~Jth>3H-UjvkPpeuus
z=kjck)&NSB4@-?efB+IH|A!0tZ;$x**KZa31(MTA<TCbvdMbXam9pePCMX}^*d7qA
z5JQ@G9RoQqlA8FxmnzA(JmSq4zyKLdp+LY;Fz6bah?Sl<&Dh?RgX;PJNtVOW+OBH|
z<EgyV;tnA!Td!VGvSfO(-iChi+<&go|L}K=u|Ur6DjJwD>8dAfJjF^5l9Kn-lKz+f
z`yVI&|67^=pK`F6kNU-ofbCoG;d<8erHCBK5jl;S3AI#iUdTqXlu~IV_KKm#eV8*a
z1lVQqd+<*QCrkGP<(@k~l(NRogz05aDo4yY%U+QPD>yS*doG8j&LrK_-RZ@IO2_yw
ze?l(iGnDmXeD^w3xIRmZJzB^478KgWpdj`<A0-~1(|OrCrkt*-R8CF^9^NqF`ebD#
zj%f@gv(6p+%W_fCTK=dOjI)VnJn^Sj3EJ@P&Pww>%Uc=7D5A<iLTw?@#EPfOy{=VT
zJhlhjFLM8cT{8A}P5uKgr{KIDZ6I&{X{B!voBanET(}3-eBPFBC<yAIMHt<7;!zWk
zmp}Ww`{+fb7K4e?Lex3e^i1rtcSGL}qg7{Aow(#2DpCDSIo6l{PnN}o%I@$*wZ2K~
zeNeCS+7XZ-1-yL^`BXvW)?GhQKP{8kqC~~IE+@WF%}LBhY3WKbJzWjCc83p(t7+g0
z9(Ur{oPpzL$<yIFwuP%%y`Pyo*S8PEOJm{X;K!0{(xOUt84xs?5z|+#^{C&BsD+);
z>+oh56uV!SG%1K&8<$VL%k`ePJ=!tXmRRgK>!L2)-7j4ucbbs07M;$O2z0_ddp=Ps
zd*xhZT&+5J2ELXzfn+{-*7WmrB4CGC&_z!2=6=Egvwu^aC9saQ51j#sk3+equ;*+O
zx7Ui|!yyIoX1?93x0+Y4Kbu>%%1rto**?e9u1nMpV=ZC@;Fu>$bIQT(4`UgRDNs*F
zggh&wqS3gG8c#NV2tD>Ux*Y+=y_{9AY#>D|KO=szk~4SHxXG$^U?=XAP*tcuxy=k{
z(T>=h-uQy^zwpvPmwLS4vrMNSazh62bbbSuW@QfYs>UslwwcR?PP_QBm^x0(Mt&D#
zg(;0V=h5uf?*)`uDOCLfK0TT%%UeI?n_uQiPO2<3e_r<zCF@e>#8c@;-Xzc&h)^PA
zC~f}imbTtK5lg4gqskWZw0PlU(;xca00&c`?w7)<?0?G<XwkSP&-t0t<%9VCP7%DZ
zxiQC#%_S_d-U?bP>xHp{X6Cx3Ij0*aFVc#t-XwsKajl=pjgQ?kcEs5epG*4v2wQJl
zFRWa(c*ig_?EQo0&jfIQcB@Y3O3aUvaQ@pDXnN1v1!3BaGA5vydpLh1LBE!W0-`)r
zf<Ut%%tG(oek$T2)DXPd;w;#I-7|?=CaGj;I&^fdb9Dc{x+~viU59V`dvx3^*EES~
z!2H)nSy_BFhX~6|bIWF3bB|7FpHqfCh05KrK$>j5_melX0$y{;J_eVl&=p+=E2D1e
zs3U=dBwMJLdZwT%_Pu=<_?)OqM-d&F#PNhjdRa!+h8`3T5&A+su4?wi%g4@U#}%<~
zl{%OEX(x|?(yMids$>HN2&Xf9Gw$iu+;u58l{J@d?M!KT9){d2`ZO93QifUS_IITa
zd*ZVNO@kYBgL8+Iqfo2g%2~1_&4j!?FLbW*6p)$*`dB-6OI;?b#_?&4668rBS>$p>
zS2XX~Nf-&#`)il2#UTH=%J8~$w=0P|UekrIfs}_fRIHvyQMW057ds$(BfTx}4sSGT
zWJ*kY3eBr&4NMg<p#eQhz+*OFur6r50CoeH_9#H!6Ib6I2nluOG-ihgu^aP&qN7BS
z)#fSV7l55Q6MyDqxJjrzDTCQX;KrO_J6R2-^l+Cm=^YHV7z5zcUP+nwc)xRhAbig&
zB1jA`!PZ2g(5iDOgNRWP$&ew@+@cg$i{c}f2M@Wf`LOO$#@Dfyk`Ssj1i#;^i{o+o
z-7!Ms`dDC9z+{rSIYbqlpmq3xymg6O2p>;{thpKs)m*3V8_Tj(A?x(1rf_&d{Aw}Z
z+T|;(vuqVy6~`j{vhgHl0BG^m@;<Nkv+5nL{U&%IrsA2!*~4DmU;U6Tl#!B_xE;3N
zC4fs|{vS?1-ibD`KSB`Mq6%lnYHy89`X|nRD@fuu3_b4+Yy}_(qfc1JEhpgh5~fA$
z8JQvXWQA|0%hn3QXZ``GKA?+g*&C2l=bV9iF95^|e-c6-8-L(d6jKilX*I})4oXti
zkR<@;BFR1qC*@Dgt|J?XcwsvFzY*$@mr^p42k!k06jNgq`^_H;ZkTbMp>cL%A92yf
zES(l}jzZ!r`c4J#6ghZDkXUHk^Lkkg{2MPGeQbQV+)A)Lr8Qtj)_`CQwqX-ma$3`#
zX#TFXdX((Le7~KkNbyzfpF1T7F;?BD&2KYL*JYGXTXgGen;ry)!rI8ab(~<NES_8H
zSLrIxHgC<nSTgiwCfD78xNyQ+ErPuQ2~R(&U%64`5;1XAgVx=>5U2>F{n5u0hbmZ{
z0}uzh5YJP9HIQhOBy=oFNRu{Zto5_!J-H{1yf};Z9Dz5Mz<I%`V4hcHJ*FD+%e-f`
z6KYjG3iN9-*eG@l>6R+G=iIj<42AZie|F^K_Un?~l5I3<Yxp{+Pi+6`O4x+qf$>TO
zoh&6@G}Uhg)OlXF@$iY2LU_p!?}*<s*`tX=_VTMjA2!#@VZF{-1DDhLg*Stnh86Q(
z81{T`-yURpW1k4r>tZxZGkqU9w>cq0MRlVCc7<0aAmB||UEYY&R&*VIVHJWZ8D-`K
zFyzu>0W9^SaonmyqiO2B<CWJ)@vbNvP6GT&maRG?u_NOH(-w5s`&@N4$O?rUELGMM
ztxg%R?~9H5v9~0<6xG!}_P*9KU^|HjGKT9?KkVh9tN}sSNf)>-@!<GWI%Lj7{W}i9
zZ=W^Y+YU8L(hP?31fys8WoKMr03bjNn}%E%%DDwo)7@D!i0*RGDy&axQ<9)q3>Wkr
z=6dJ!9zVf=IBEk5=Q(crd~IGNa4{&o92xE%+TUc6eAiD@qF=J;4hU#uN(A;#uKdl*
zS$x<nJ<Rjo`qAk03)2Vta|Lx@Y6c)z1Ys7-1rQTSi!Uz=`k_THV84r?G(cRtggL&Q
z^%vMHbS|ac^qLL$?R*Oh@5AK%h_5@R;X3xM63yT1U!mwttFF%_8V)2-cK(3;!bMq7
zL8iS>lD_rq`HxvS?l;7QiSb=)c;8v_(G7TRo2S)aDjJkPP^S?<=FL_)b`Y%J(cNbQ
zG+A-zCwq@t?DM)kaZGTMX8w7{BG?1&_q_Ue^Ge$UU+&?O``f0NO!_Mok<37M6Qomx
zG0gGq!XXsuW%k|?U-5=+h?^$z3$&0CAdZ<d+2r>XMLai{NMp)aSM#Uyxn5K>xkB-{
zex8~D0(*b(y|$+)t<1a^Aw)Kk*<?Us$dSF*;{W7*75I1Z7%D55;HvxM>@6I3H68ry
zdF@2V$JHnp7p@FIlQ0hH|0s<egNpi7u1l(2mu!IL4K+p%-z7e%^qs-6Wotmn6k2t9
z^=f1zx%S&5cuY=nYmjtkNu6mW31ghwDYIk2d@%TQd$JcD>xsj3f3rNu{t+)w8;CTp
z|LO8PSzU+!eZZqtl?u*2ISGoA4Z(BK@j6Qc!yUIxk<Y{sQ|uc<Rkf-`b6AdWGvRe!
zZlyr4P=Fw6ubhgjo_be#zHSaVs(KA#g^RBnB(3G!e;N-RO$S`Mj_L^7ns~GZ3)*x^
z5y$0`TM~|Ic*w~p_tTdT;v2IxBHy~_6D^5q)#=WyR9TX@K`o#kLD2Ss<!X}kf=3fU
z;@c?U6iqjArr3=Z^)9H|nZA4Oiz|=V;i(8yLX`x|>=%T?Mfcx0Nb8<!NZNaE(_UEy
zGZ)YeF<(UqtqRj<2S#D<<r`36EBeOwco_H1{Q_R#XXz8=`OD48z3!B}2kw|-8`Isu
z(2jxrM;PeV+mDn=ezjzcxErEloyG1ShPb{4LnRDz*F6$ZkRk2C;+G#H&Q++zIZtBV
zdGv24eRHm#lmt0nld|IOdc=@Fl#+IpOaeVr@$&;mjyAywJ2|i;)%;iz6}S~$3!sz$
z@<4?$G$Y#Nm6O#I_Ku)dd0Z1Ttk$-<v0LIC8oZuW*GCo*eVdV9Tdn-85UzwwbxK@w
za`6x>bQJLH2!O<BDhh>LbQkUR4W(woD~Dz>@rJndZyv}t51ok7$#m2&mlTUPRpb0M
zAzzO7aLkG<=$$+l;{a$x-SuRyg{sCyKINlFLS!jLqeZy$=GPKVmBwe!Fu_y(jHX<=
z8*gA6PCu`GDe+4c3UU1P?&vfh-=JB1X!jjq!S%kxZ^<J=5l<*?UFPE}3Kn=xR$o};
zDv3S}iAt*M&yDbGh_cFD_!eB5uKke4P=Eo5!?7TF849PDC=tY&uU~#9RPZ1x_(KQ(
z*!iT(CcmRlDj(^mZo?HRIrQNfn~UnHN2k9>)92d>)HyFwX%<CquZ3-b_PH~tidVv}
zx5O7D2%e=lfZ!vRV3y-c$;;J1qa$l6=eNqh_L+~LhZ3up>rV-Dlv|gr4&Y>;a!f|b
z@C4=qocwjWlvTn+l_l8qYTa6h0Wvq$F`o@gPZ%=$x$8ep@G%OFE3B_r9Av$2wv3WZ
z3u)VwOHzVxlW0?(EXc+va4K~x+#$tx19|7;X-n!}Cw5Ial~l*XnJHU`T^{Y!b#(W{
z*Jw)IEWDlx9AOgWZ-lH<23}XbWIiClywJPr`FVITTYH40Om#d%<k+n4yv?djBNx;C
zHmBKLc^Q3Ekaj!M3=Tu}@_MHtJrimtpSB$eErc<6YQl%b-SvE8(o!hvbpu~>-5h<p
zgvC&hld*295(KND{Be|kttZaH0*-{o3~uXM@umc1TnMYC)XX2cYK~OOqGQ%yc>z)1
z-CtIT+}N02mC5bYd|Pw-iO4$$mwBFa#_ND8GTlKVAN%VqhCLz_5J_nCQIDjp4Y2=;
z!g7<L;8B6L<UfGwxIApDL@7Z(PhiZU_eyjPi4D*ib<|D?W?Y}ZI)cKo3hOh|9!Z!Q
z;N@SOrw-K;xq_MmvIn#p1uYmzIN9<Sv^C)4WOj!QVT=HcF1*BxNoCzVa<B`#JSm#Z
zjV-1#x{>mfVunFMtHIfcp-vFF9D9vv`D(?{N2bUi0j>(3`mQP+S~CfExB2A6t3@;;
z+O&(ef9e7GY3yv-ybWGZYf1`&#1qPWqPx{!kGvf7k?F-v195LN`dS2v7=HC0tCQE?
z^NXWaGM%P=v*ebT&X^atvhx?8MCujqg?CLCABt>4#vs?Si2vo@v2O~VwyjmDVVoE|
zyloh{gIZ;1>qQFcy;Jgc@+lb_3}WKkCD><&b8lU%L(!+pY2nFq6k)QaOXJBn>jn(P
zAg8C?wO`2+@-pch+>Cd2CnfcXiZxZVBi|^uauGj;m&Ik|zE(V{ftD9`VC4`LQaAt(
z_BvC0K{&Ld5cUBKv`sAsPB75u1Nxa?S3Dy72LPVh3y20cHaPd2ed#1y$;y?KfE-h&
znTFM}{N1??If4+9jJC|pud^sj3vG<{km9QvkzVVZ9OJ3t?=OgMbQEaw5oOCuJa=b-
z=x6Y8>uhDXJ4$0SkNY4gV>1fqrz-+2F>KBAbhTrB%<HN9WZ@NXOKbJppfO9K*;n!;
zs2-1XzAOD=gcuvi-WEx~1SxHZbKeIe#UDAo!G7tx>iAOT_4=q)#1Z7?ke~>Nr(to7
zhO8HJNUt03#GMFwaIMG;gA#S57GXb*42V0+7MXJu8<s$*%Ss<cIVoaC@_O}36_ILo
z*E=QFMUiw^hHK<hB~G4}dahKw6Q-;fA{nVH^hin?K@|QT$M`bpj)U^<*&engWa`C{
zXNeM1HGZ%?q^(v-G#;p?0va7Fnbd6Jsfef}cb-MQyJ0GfJ3Z)M^)m)FMy02`%uV6~
zrA3Q-h)W)G&6;Vfi7FQ_8?PkM(h@9ep>Pt)4uyAd8{PI*1iH5f3gAP=u~-|KS;8yy
z!Qi$M5cUb5A>93<Iuk{4Nvv=F2QUa3S1a>x2RBflN=6Fb4$j}UIFGqdci;1)z;-JL
z(d&GBK`+plF1ot!<fd@zW`4<d9h?fI9kw_vT!dj>>k?cTm7b%&Rt9k7<g10aKa%aK
zGJmcb-?3D@U!K1n1wgC!p$Cs5P&jaWat+0!;}Odss`W3tSx&yB=$^quA3-h(`?RtE
zQUCuC_nuKrHC@B-2?-&A0HH`Pp%)QD0I5QN(4-3}NRbi{q(}!rC4}CqN)u@UA|O?o
zh28|D2nd2y5fl)lh!lOJmsh**=ULzT>wDMAIytjv&z_k*d*+-ovkRkc2vJ>d@RL+!
z^>V`_D|IUKE05nhdWM6cQ6`f-jiHUQ^b(dHEyjcJtoN1Yxo=NMlMLtW9ghmU?$q>u
zzw9dU(*DrDG$lHpb6-Aj=h!6vx&Ik(&mRjP%mhKWHea{qSYX(v?2;(-`IduEd?iOJ
zv73(^?ZFlHwV@b~i-_Gt7N;qAm^+%$SvU#Tz5d{R`g_-YxzFMYm&wC5b49M$JVeW?
zdx8Cs_zg~@UOzm&b>bAZ6ly=Dzx=5u@vZglN7Z+wCY&G}Reds+Xkg;KB1S6pAa(NM
zp!Qn(%PCMeojs3Y1wx-1BP<Vqsfb-zH#5}MONv7^5kiZlZ-@RiXofbT)y7SWg*;RM
zCBUNUptlsp$Q*K$u<;=DL`x?(gDhJdC7p;|eFRnxD!k<gHq4tmX1sY}4o(lh-X!V3
zDBNP6G1+5y#)kVG=!23Vp()v&KK)XKGBjB8`(t|EnhzDQXUlCygIfEC_lzA-<VH=U
z%4^ulkZnU#FU-x<INJso*R+0g%Xy`$U6&nEAI*DD2Nwa;w<lOzKP869+)<ZA+}*2c
z-Jv$*&)w96^KrX>)tY@HvajfUewBt*;gIcx3ttd0GD__2#nA{0Gw8YpIi+q!dtskZ
z^>2U^ZA%$h?rA%@?B+&YjqaqL$alV0wHM!@YVKHcLCuP330w5h_;kqN!x{<V58!Np
z9NB!7`F6r10lUiiD<V%~*ww>6DLj5pylcn)@aT!Ac=Wyd&M4Sq>m<5l;Z5F`3^E!T
zvfz)RMF^cHiJHP@)E&!kFWZp|K2){U3ThrTItLZb1?jhVyb9^4jbziDO7p0Ixm>fb
z@7F)9;z6T_UIO}9<={IQIvd{j__OGyu@R_D%5|#Grlb(Iv2~jylY_uwe|Or%#ntPg
zTpIzyOzXd1+?vK0?+kOUXY#6`bsmvJ5aCzRkBJS*;`q7gn>R7>`+y{oH5*yZlu+1E
z`IHox?LKQ|eIl)CXnDnqV`1NbOhDv*f-!h9kfvH$m;Cj)(03Cjz^{w941F|xF>u%V
z5~~PhVVc#$BpKrm7PliSzF+E&WvZqGsf)5JqMbHb&q&&=qzpzHNj>DtCnRN$o9D4#
z|7do_CE<YM9lTgAljNFAHW0?MIWv9q<-#%pzLQ|xw~Uj<&7DxNFxO{L)RthT;AxrV
zf{FX6OW30_patGQU$*#gy?n?pZtcEysPrI*0q?gHnCc@<oebp_(;J@GZ<C|hW?s_@
zAM2U)yyQ=;-Nl-Qu9Biq+2(gG9ri{P48~H2uq7$#N8k9!-yrG4Gu3BC{Rm>q+Pw~7
zSzuHIGK7j@O|c>~no*ridkg{^IT2wj5hSRzFV-Kj3(;kpmS?{M-;8!A2Lc4`Jv*hL
z0y-yMPg$^EW?VcHzPcsd>e+NWE>thoF>xu{H}O%D^9JKAgj`S{YX&UMr8a^{r$LI#
z%1PNe7<(3e@Y4VxvPp_I4nqm`UyMX~8jL>!T-U|?__tn#pQoHEd(`GqN!_tVvOUz>
zW|ir4Va4EA8Y*ViR+yd7i1WCupVjpaY}C8IM0!7Tic<S(`DXuvlZ1xYT#J|PwAw><
z=#vTS=KZYqm@6`gS30_I+xPlk?p@wmmT`d#-1$HuRB)!DUWVOu)H{)?gsNq59mYMO
z=DAyWy-J^g_~zxao)E4x(Bba1suN@wnk$MFowQvUX>$G7lGtS}?&!sZMAG^`sjfSf
zZ8dZjc0-SfIpZcx%)pRbiOMJU4%!DvVcc?jHq98gn|*6lL-$>9pHZ&Uy&u4-UP7tG
zBVVcyA1B7crp6o;4^urbjnt;5<O9x0C~ur+3hN#1J;9n?Hwr&D`?Er}leTig_hQ31
zbke&PL+SkyWGQIcXamlyOI;Z5+Fg6wx<<l$9#%RR&5^503d|-*Y>Utt?gO_N&6A85
z+u5s3F))dI^!V8|{7VD!c^JkXjyyUGp;;|HPk@ZqXxMkX<m)y~o*408W`6G*ad$fS
z1eY$&Bk|}J!&=MEBqV@h2(CIm=R%x_J&3(X=1&zhi=5xl={DskuYf0n*rRUf-lGE@
zTFGeTfFyd)roP(vR1(GUW^ehP&VFJzOR<s)r{;4wm0T8dRdz>8RP{|;VT(@B*g5CL
z8pyR>&;vpPG6eWUJ4u=5oKj<yfRZy=bfFJneP|o^@fso=V7M!J<_Y;jkfca19IF<J
zU}2sa=1+-R-f87vCvL0EOgf^1{2NP@!YQyRM)ibP!c0LL-m96~Zn<EUf-?7}ktraz
z9>{u#ynp%Y(`dUr(u$KIe4$z6D@TKG=$8H(hk}@K4?R$84$~n(zkKJ>QR7Xo;RBaW
zgO=_urF3H`AIizpO1Nv6N7D{YmP<|ckR6_8ph~$a%?$In5MYbH6?hqtOH%LXzn(Ta
z?{mp5zj}!Ck4GCTrLGW$Axi)CrI!YUHz<{p{PpKygY)#TTey|pufiHhH{|BD-Mkd+
z`H|p$`-~S2`oy!53|i0;4hhYU-aA!yIUXv%K-{4^E9u*l0V`l!aL+sftk}&z1D!6g
zkQgCmL6uWwG-P2Hs7~uWWVWj91OOx%(}x5bRZwl+B!Mr<A}7+^oov8|le@&jD*9%@
zu~EMoQY-TEAZRI;2clw_J$}8Y$hF-Pi2y2@Wm_40Ym=KGD-`kT-i(tHbnCunmDr0e
zk@6V;F@f-<IxTa(6A#=`@sH|<n{*9fBf{Qnt@7RKtGBzOXeKjbtfG}2Xef}wT@R2R
z+>C}ISG*B1TEwjw<RMUNL<$SZV(HQm;y}OpAh|ud@)nl8y4=>cd6|;O-99sLv@pYp
zEBAP#!wkAdb=J7&RyoD>`<>c}S`2TGpS*J%)^9hhUlbw-%_gt6uiPClc_*)aR0-t+
zIEQPToF2AL#m~;?a+g)Ez;{II#U<O$^353yhYUzK@F(Vl9O}pK8N~5HW5Wo15Pe#q
zn9S#d0&`P1+7(9fUnkdVfPd1lVB$AR(mirHyXSshFAyqmU7|4|sotPlR?6d1vzm!M
zs9~?8JHbUfl=}>Bno-YdJ99;bHE~TJ8jf)k<Ukz3*iMO$V+Dl4AMV0)Q?ti(o$H$`
zy!}l#lt{r}pCy6wWu&Qct?HiNGBSbZeukWCe^vVwkkF0t0OVj6s7I|=qldm$W}Kmw
z=SP8Ldap>kKIVvS6Hd)>v1M8|E7A)f$0G`yk1u-ZsHK!p#ojw;+hp>Ho!)9#;rZh+
z_manGc86W#s@_?K0B6P4^ARd9SYHiovIyDQ`+0C|-p@ESNy8PG{>fW_C?#<+V#Oe$
zF9naFYV3~?9H3QS8<f&#!pdT<(Ni+sB?(nU1Y|!$NtN!hzpw<un@cUJsA85^(it`m
zR|v;b3njZA>C#uaVoBz&!%pUA<}^&+)nE!yEj_Wg4dvc5$*a9_ECc9m>F~bC)wC1)
z39%eE%U>m#D$*%fBB&>o;ib7>ZDl&hvCmISaW>@|p3J=(MN!57^xSgd<xc4-)Xgq%
zlS^ETTAoA6g_xNDbK(h3-H7FkWo#pOuX!PjN|a$z;v>y!il_a`F_jgtN_a2RA^GY=
zse!U~cEQUj|5ueXKY(>sR98~mmH}<#QqCx7n#%`AWp>=e6Gauu*S2yutk^bn+Ahef
zFMVM21XG;jZ29$(8wR2`jRjBaMEf*|VB7N@PfZAykq#BE*agr|!?<869umgW7Dgtx
z5H$fgaDfm<{|X>L#m2|v;_HPOlM->uNm8RuYN5h<ytkKT-jsY;zUOFQ>E_oNQK-Vw
zf1DQw23R~+heFl7Y8ZXYJ@Q%dJzM(tnwxApNQz`3P`&7U3Y@Or`5p=i^_z?SXsHT&
ztR)Ras6igP%0;i`t>*pB&Lg$s1rYfe=|mnYvUL;-ODMTsVhYk6HuaJvJZ*T@cdSE`
z{z`n6-!)~cVYCH<flUa*n;Qj1EnX&@{EW=^#;6D3x3j)9K6=ctPjd2gjq9s7ZfP&O
zNbcEXhX)+_)$>6L(}O&U1(V=kBK5SDQ-4QuteYowATgtu4^(xRvAuHoUQZhZ_E~HI
z+X>Fd&kP1N4+irDKSn0hOOMTLzReAO_E<85|9(D~yfyO))l^5Xl%63qh(81B&Umu~
zt~2aCAhZKBW0S9H)PFmD|E0P19T_6hMS79EnB&bCr|KQmThx@yY6m&5o0ORXNM;9d
zCS*wjc~)Dxfy{ufqEu%JuUzfs2SLa#a`elk_qRgc@GYDlF>^ZQ>>;OmCf3?m3nHS$
za(b|*`!G-x=&?~1*T%;-mFDH26y&>mmVsv>yZ!q6BB{{zjfH&)#~uc*f`V^tPIk6t
z*uave@jS-P^YZ1QLd6Tc?bF;B*;lLH!Jvq0zCb1?&yV->4ujV*?Jo>UOOvEq?Wwy|
zk(M-)@UjF=N3>$n+>TBQqZmnPHY0Wd&t~Iocb|uejq0)B6`&NS=UEvLCO5<%m5l6w
z<uy{PQoJx(>v+6wpJNkzYnlSDtzxngN2JbpjYWqaW87@T>}PRBWbF*`s+H8~g5}DJ
z3qgXA33d4-Q9}fuqF&V^T%LQ&Q^fvdVTCRJV<2yP2$NvxG<24Y6}!!jmpRWtcP6Ek
z5a_rb#Dhqzi+UekE6X~QSCyBG0O*-5^MF~;wXEZ16D@*t%*x%XJ^F@nV$+Ka{T)qr
zExgybwZhWGf^!v`%W7zM8DeS3jjM3(!Ad4B9TPeSE25&E-BKLP_k|NC%$FQ_Pd^ug
zSi3f&-LJ<uZbbfif!fl9`SbEfK;kRoy5BO62}F==|0~W2ZE}vTY(Z}@gmUF>Nslz%
zZ|D0!X7#K;mNqh-S?1BCn9-KG%mO*gw=xnD8;vqi%Qbt}o226sA)AQG`_%b*-Z$cn
zVq~qcpd`sA{L_g8jmZatb{R4h-O_96&S(|=VI=!OWfh%7Pb_T}Lvd+qT?FPRm3K=%
z4O8ALO;T86xN%0Tw;?1%$0-CoY<kA~S=sxT>6g#qBHz<>d&`!NqkX$plq{OWtwdFe
zdFE9H1eQOkH(o;@G~YRy-&?JT`|0&-NY*Sdt!Pdh=ILTypUXYMM5T-<Z2|3?*UkXk
z>u6QA^W1KDa-A2Sig&u+xA&*E<ix7I53r)&x<iHitdu~&i^zRm$kYhBEi8Ta#^?7F
z9~T=`*~RP@6$SlP->03@jOZ`BG>QXokK>m(UM-x>3(d^{XAz1tNKWh7I;p^jq&Mp<
zA`(V9q4b$$y|)x?Kf3u-YMpzn{gM#`*zk0`A~X#R-3IZ7-{=o0T|-wsNveA_;)1^u
zaJuyi?xf_P+F@XluV%>Enw3qiP4T7mmdITnQq)puU9$B>(%I=kzcMqn`GV9Lp5mH0
zcWHg-e6y7;nmgCO(tNBsJUcu|^`IbSmOcGOhN~^D4^Kvh%p_D-=xvs)<Xhr^;g0g#
zI$<B)C*VQmFNbO=-V2{%E_6$NYyY`({<JTdV?~0Apxx5Jn}DYssaW#1Z%<A?R}|Io
zP_<M9hkF!D_z)rqWPPJ5h?*MnfRgm%my;d|5#CA-OYC#c8{2eEXn_Qc)jQw^Wd)!c
z<{#=Uikn7z*23c%rZON;YVmv!?R=g>!yciFPp1V!r1bGGo4cFn^{a~wr`GvWrQ>Q&
zC5}ce0PRgZiMMBM?8F5p^UbuAGH|VVPSs%tWgTuVow9*E$NTY5^Y=cx;dqEeVcj~(
zuJ7JbvCRSu=6BuC2!fx`efNG=*lM#8eNCd(=iP(pC%Gbh$)CRYh8Xs4_H8h{DWOB4
zdKKc-d&1L&$0(k5?3r)x@C~wmtWkbJ`arEa;RUzjaDj~Q^{md>2MK}1PYC+xbQv}$
z6o2Vn<<intYC}jX->qVm9X@#pp8Y}@p8K}?LId9j-!UnAATK!plPzL4x*kUvl#t7Z
zi|adW{$>1I*|iY8{Frw@oTNI0<P@(R#L7o}X$I-kDCuCQ^!em-jL;7QL+ggX5m^Cv
z*~fRt7&79P+$AolFRvb;mv=&vvaS0)NZW@Sv7w!B)->7a^Uz2dSviOS@0LjS`*p}*
z_<8Q)Sx|AusZsR>EYHaZki_-?1b~u(WDa-QSA-6l$fv5SBfF)~MbAtvYg2i2A9|hS
ziUD7H3p#;SD;;RPiTuLnVlwv)j3;a)`k8PbzJ^?Yl?#N3Hp>tv^Buc5H;Ct<nr)~E
zCG1!2FL=5SVT?1jK9&=fQOEPUq_e$u_&%6ID(428?Zz5IVWeccn@2!q0U?)XIzZ}m
zv^;EYVcD5{#L}}xJi98@a)c)82D3GGCECkV{OJ}?R?(n)0JYfcgGP~@nN&B!&odAe
z_3#?fljsTiH^BwXC}vNOGDpyKZWYOv?DnIZWifzWL|)bF*N5}VN?}bs6-4%4u3Q|w
zOMJ525RUOG*nY2J$$A*$K-T}znV`2BZL`seT$XhXukPnH$OvP4x|~FI$FMh55Rhnm
z@wiKn@$BN%*QES_0&Smj2r~Wv@+%lWYc6%A1+wk^gk;No`atSLl}JTYkeS*Wcj3Xf
zv!h`)AH_1wXu^Vom{2^!R}A)uu4-iR%1B5yLRDT!a+QLSr%sUf%ot%aP+&-(1)O$y
z=?VCD@`B?q@n*a4$r^2^OgmK`LW`kQSg5z9df#&eb>+Cob=#P4SKc0kk;!SrhT0-^
z5bx<#)tMaETGA^mK3*^;dW$z#UUnd<^&&N<45PI>0l~B=^;dXUlK3fiwvBN`5o2(P
zs-t%)(puluN#da($3xJuF@MUumtF;6%;!=@3Q7)WdDdlQO>Z8V4@&qLGpFx%*DawA
zYVSab2A|{?-C{8IRpdr;l)kY{4WjR{cPiCm{}iGLavw5p694Kv|23WTy0)nl)apa-
zSN4iS?BPJsxjXSY%8ycqadE6~joJA#6eacdb%S_0L^zS+j0bs`BG~zN6#FBlFP7)7
z<X+Gsn-7VL#6Ur<=>2rIsC@hJ&#|;8?pVS6nk{&)kvANN1zCAWaI4kR{`|!MmXBqh
zN3%sf(YBl7V9v=FaZBXWN8s97Df5b@QN)*mfQQpplLJN90ZogzD~+=AOz%DWw_nXo
zfSH>cxr(S;m<9#P#*~L;rIIX@CCf=GP-TlkNvy_gNE3aU5t`je@}=!D??ieA;&m>I
zbnWCP^~ihK#qAFLE3v7&$yN1@jB4r}?B$)Bkf+P=j*QA7tClKhR@$fy#<Q=(YdzAP
zvL^>zly@TAJ?EN7zs8Up&roPkf;L#*C558j59QmGQa+RkNlFr`Gaklk$v>tu4(jZs
zlJ2&UP|!1qxjJTxl`T&)=pR4XY9@MlmitlXT+t7}IhpKoP8bLhlcqSAqc4wwRm^Ba
zh7616r|C81T<9{By>-m+gy+3=gw+$FKEb+FVX_}U6B3HEo^-FzD%O38SIes`k6#hC
zTj~q*Xvq*oZ*+8=DJA1i(XvdH(ZezJrW{BSy%BAcZ@3`0MNuay4<GvQkB^}GTa|Gr
z9x9F~10*U8sFwr?cC4w!9)mzg5+^lMDEfR*SS5dps15;NC%ZU8PnB_EC?<X=`YDp+
zRqG*AzBtqGSiMvpw#q+aK#?*e`$jEgFvN!giYi!)66F_<9gK@hMW8-Lph@caO@l^G
zipraqe$Cg&pX<`q<WM(;X-iVH$~uBz^)r6!ZgkRH$(_up^FIJ(9o-7Gy%xNz*a$m^
zs5!OL$%2M0YE(u8!mMAcaQ77riw8j!C!tBNJAK!gVsy^bUBCX))ku|fqgxL*XGYcf
zwbjCZnjhVap{tkFSah;mp3A>&DvQ9N$j_aMP6zD}4<r;UMTzZL_QS5(Q!`+@6@W}Y
z!Ixqw_!gC3$PeIR#y*+6gv=b6{@HkyB&)%$T`OLw>gPUD?j7PN{k^K4z1mApmcl3|
z*Im@YZZ=Qpb3jbIwXtG@9DDQqr$F&zO3<LPOY3UY?UvbE{HNqiD3LUP6%|7MR+9bP
zb5=^7<*tcwL2`Ag!MmJQ?CasZDs+GsoaI&Y$_dF~G}}%Xw`0>Oba+m~=h+Z5c{`Cu
z(Lk;2ZRGG*{}b<fUod&{mG;i<=qA$OH6-~ay$*T|A-x~Ba-7o3QB2B-W%QAUu9=3@
z>90yt&Q0-td7N%W!7FUS(MAahxCptta+lt~_S*%a`(w%Z+&j7l{Ou}!esKoqT+0FC
zwxE{G294hnBgZ+D<|OR1IMyh&OHX-v^55dcb#xv(O)~7<r?%y1;F^lXzk53jLIQ>&
zdBKcAJ?{3W1!O&oSIC*94Yud-r;Zvv_ONQUVqh8IJiOP()Tgu$tQHlzrui3zRXa%1
za#nJZgQ_j+RA7dUsVCoTkf8W`&9K`O)gG|od1j-;BdW(^JU%b$97VHtyF;$FNXc+y
zJa>vUpB7vp8C~EN*i}r4oKIbuRq@xP2a?lCnu2O6eNxKwxe+BPOO5mf6n$4N@n0YO
z5R(w#vtQTn)we8*V>DH~p*e+Zy7==pcRjq5?B&d8<WDJS34^?Kw7RuHb%mXAFX^<Q
zjUfjLXJj#J3wa>>_E?Xjjso5?EU%JZC$Z>UJL7H(_RZnDwEWQT2LQcCoT+GJ;9<14
z6Z%+fNdcHOhCk<*y6{G>tvj@sNtbA0_L-cKaUK24K(~8qq}#mKjcnqAN7nUI4yM!l
zUgj?*Kr-`i)0Sg<`(pZox+;l4$O7tvO^6qH`;?LQ87zQ>q3mTW_&H-G)HYT9AxYl!
zUeRYN-*A-RhF$ucfe-;|-=wq|9IZRw5bBz4UZ5&l|EcZ;RAyn%6$H<A3iDf!U4sWD
z@T~zkRbV^Cv38YeAaYzFpm59JqYsa7q}JAevZqjj&UqR<?cP+6`_VGbES`!3CrD`H
zB<3Gk-I1`x-AFI?Ai2m8SAanU0DvBbUq((qC^TG}A_B}k?m$xd<Irtk^N06AOQ)Zk
zc&S9vW2({^qSm<Og^%_sXf&l+)AomED5!ll!qf8M5=}P9FAoM-Yv|L9oNV~g6X2}f
zWRETw67}(~j}Rm!z}II7%4A}CE5aCBN1@9%wa&3E6KqHkzG9r=TEyO_9GYBz*~zf#
zdRl*S+BxmCNh$WAXByMjRx$2^ZvJ1iI-#`t9G?!-RP@Kn;|_#&73W+$J&6tq=CQP7
z;Jv3zQE_o5uceobSqb5}y(b);UabZ@p<&`DH=|?8?$fJ=hM(&tKJv62=L8*Oh0TmA
z1T{x3Lx+vz0hNPBfpgq!qF<QDKSYz6qoI1gKEda->Ebt4q0j(EUVpSaZ+6~b$}JZ5
zCd<)hQ7hRV&F~dhx-)V)T;_*{wqXsE6;$O3bVAptHcrJ+AeZz&eBJQC807Vtesxw^
z@Ng@<hVMazI~2!v0wCGnhP6wR&M$In<`~aqU10>1_6-;5Z8NFg!zx4M19<@!blq)3
z_^!$sA4GK}1&xap4X$iK?wL?&)-^wt66TXA%;vL$B3`=dXtUMb$4^5diY9x`u8qDY
z%q0@0SZD`Fu=Ea6S5rV234G;c>C7|I6FhRPMIy6dJ5F>SqrM7XkUkgWQ*|!-CPyjB
zUG}Zm8=<;t_1Ynh<Ol0@{PLrNx!Mb)uy`Lh4`&8_c1>+y`m4due*havPzhLRrGo66
zVktjptuU{seI^P-!T2Sq1t0uyp6VI>#M^ITi50|d^XPIVO7Pbv+w_!6qh2ro3~CWK
z6j#zVd-EE;7ngdJR}cbxyKCN_6k2zb1d2K1X<<!E6bX@<wJCx~szw!R>@38sUqU)R
z4ttMZ`WQ}@hc&z*_AR^*s-W50Tjcjau;|itS246v7?>0EpvG5`CghGeAa<=lF=zWE
z(!KBgU72SV2sSODTsxWgDJQos@QWjc-Y7iH0@=MsE~^%%$;0v}n^Qq7l@ic!uns1J
zEsr^*vuA1<?^G7bZWG=zGMDfJ&`E4v*tvmBj|DMn_??%26>dHmQJTuY-aOGCa9%G0
zykdLQq!w{f%H(C-ZDQ+1LB|Ki^ovC@-Yar^Z=-)MJ+1CxP!~SmX`ZNyrH;jX(~Pn}
z6<U~exY|**$D*KDBP`+p8d^Y<UQjHedajmOWYKT+7^h|-5AtBUfSgY)>6fdOU5l1U
z2yG42EO$l^!f?4aEoUCfmW8dVc16)^<v)Z*Z`m{#&-pRu7j~Q`d3vKep;-n`!$awF
z#U(CjZ)f_2fj*qXsQ4~uOPWufy{&6sYkDI3sW?NVM1+G28S0#x*_KVd*}mXv)<Z9$
zu8>EGAcA~O)4`?bPCdoWo`WmB;dANv2$=e*X`6Y5Z%~1W5FW%Ny7sw=1@{`R1sA`Z
zX)|z+<bRVq)7e_-rAUkQ=+l;?^I|WHKQ18~Ggr+i!oZkUoPC^0${T40JU};+w1S9I
z%Holzj(Iaa`rg)3o_3a8vXt!@<k<!7(aB-tZSWH?y%*Id3U9edB0X7A6x;XA6tis^
z@=vcm8i{3AKNVDI^tapQ=VM3Ty~OwaJY!1u)ZIJ<U*Xpn?v6KRP7bY@m>UZsXbS!i
zDV%l$U3sA_9;=nDJCp-mQ|ZKPj5Lu6X3A;9AxmVE`|jzq92IBJ2P|b2fCtuWvgILk
z_P)e~dju}mIHpOglvr||jB!h!>Dak}#r{N>b~FbIGR}!bPB33phEE@wUxL$<z)GQ;
zt1^0MM}Gj2mpwsE>z2ipK0Bpbwy!NSn@z~D6Kvy|fpH+5M0s|6AB-yovCi`vUb3a9
z%sSe;!qN~ponjIuUx9U#zJt<h#Tzp4Pt9e<tG6+{12uQ)hpZ(=jCXguSh=2Zi+}Wd
zW#fk?tNnW<eWe>v4Rm(dC|C5mjS7Mgf(Q#*p8@RCcz~@A|An>0+^^j}A33kt<f6q6
znI<sy!Iu7h1}|nlkc74-P9N6D#!%iz=UME<+d}84WXDouBxeebCZL(~Z|Dx8)*C_~
zOmM|Wu!>5Zs)0U_Ug6*eniWl9;t5F_E$|Ybjd9pb=et<P;_ZzQ4k7qnYPU|I;;{O@
zU-mV$EL9p1SbUj*>ar}0N*}iOF}lq%j#l|ORi)Scw&@}&(z_3<)K>A9k_Kc=lERIu
zld6OACFZ0EwkA#aVZ}l=TX64;lTekE$ydLIwvHCDLIHltfr`SQyzi^<BZe=fV&TIa
zPxxPskxfm9CSJ;QJ=2}S%pl5fT1_J~3eL?)NjncD4Ej|qDC!w4d+f0jD1<k2^M+j7
z;RIPpSZ9%v_uVh!x5FPQ!nhoHKYjPMqMklOF{GP!MBMQU7~+w7TJkis8k%h4?}17_
zcFu87&O-J}Vu>hQKjqquMwWcW6|!_5jkQh=I$u?m_aSNS;~u(JRa@+jpo{4GatF=Z
z4f!2Fkzoj!Rx}zJic;6i$5*p_Y$OShyJ1c&-1-7%^Xv`Eh=4u)$SrQ_uKxbxrz`j5
z(646%<qQz;W8I*<9{|~EeCj=gi)_85{UVckXk=(|WX{$6)S5ct)Y{AUxAutFf*~8o
zo}$s=4rzm02D%QCE~untkca|5Skkur<~&GQV%M_wYcw&a8Om&)v6C304yBbEKJU|Z
z&X4Grj@w)HKmFbQTgT7cp*ccJB-H7_4<PS!>^Z=Ik@q8RYtp=rynW_|C9i&kXL%VP
z4f<g&$v-=iPj04nUU+-N2>{?Uu;+%i>RIKl1ZxlXybf?jvzAOk?TA(R>(+wg`4{y0
zZVqP&-Z8K**PQB(8tL#^h@843DAQdXI0#moue>6O6ArhQ#WPH?Hs59Ag~Vy_K;w#o
zsytLY=E6anLJQ~0e2ukdoX&ZHUT<<~sZ>fgy>|~_xy>7{%>nGID#sZDwg5_&9_iEL
zMA_NTpl@0q!<{a+5Bk90=fSg<ZQ86byCslnteIvC291B1?#?QC1%SMX@Vg`<mm6>`
zC%Pyrv5@n!yp&3^T@@mwqnooDUsXI#SDq2A+KD!_BiMro^(kTyji$nBjVqy#kM!ql
zDueXHk@UHSwv-tLRDwy#nEXrt$_hDyJg2&$$C`xof90OID@B!?g=<CYW}r1>&rslL
zs5<7(;^+ifufXhYn*^rjQUR2-F)uZOEa^D#XLY@V0bY%XrD#wX1C>*fV|>;FPm-MY
zDnZ`#me6Pi8*{2|pH)iU6fQXq8$a_zP)J0s$0_F}6``$nI}Hi2z-aenC}|RptsZ5B
zrll0A`Wq0|;279wib<cV+2TXT2T#3mvUs(Hjx^5)=}o?qCh>=fUii6&r+f0D&1EOk
zA~^$Y&%v(Nln_V`&BX&)HaDlbr>Q(b*8L%!`9r?8S{zpB@Wv)_N}ZKXwC(Mg0FKbF
zzn*GswzZ9BT*1N2VkD=fJGy#ZgFxZRgqP<SBjXT2C-R2njaG|F$ih6smv?SmE~mho
z>5W6;r$T9TBJxG=b&SkW2EeY~E87iZw8J(uy&ahKGezHX*r$@a$sRS|)B7A0qriCO
zEu)a>%{%b0^<F*`y|(C(@^)bZa@e=NT#j6#Os9Bc*0U7OncPh)`nIV4CCLlR!TcK-
z_P96SWf57mdT(WVlR)ic_|oqvrBn}oGmcJ`2J;y5tD)OQ0rOW6^bIL=nWOCjLmt;$
z{;2YZjLuV4PAsBa0uB0*S%SOaWv$LR8r;H?5k@c~;}Ey(veivKmu#d;Ur-7GPz@ND
zdjiG7gO+^~@fndrx&`cEM&!{0M_2%`L30>RFWO<uG|M%hqXcs)BPtu!%j&LyIL7%Z
zA$z>tjWJ5rvviBDL=2agT_8rS7Zovw;S0YU<HXFZa4DQ@jy-LU=jnxg3)N*rI@|5|
z1-{&dW09Xi@%}9qfruM^XDlP~6prnkze1_Ty9Z{A@9;3XSDZiq$N)>xBIxM~(ngM#
z-i2dK^F^pVi_iJ&#T1ww8OP<)2k~<yYkDL{J;_&vYOTg0-RUJEk4m79ym!rCn}js-
z(>TL!bs^ly2S$s`uGLYFB~<Qe!62crfPAwM7xra^A*d7WN$^1*y7Y&%^(AVB67!vN
zAhQmvx$hr~DqlQW_-P8T*@11JSM9%{3Dw<IzE2^d>-#L#M$q%BU+Im}XfcoFIQ5K)
z`<q}POZCw(#8uUe$x(Hq+%XsD>ap`z;x5SQGPQlG!mNfL`-r`xGA~okz9y8gQlhUC
zW#+|F%7D^x1*lGxlcF%v#SHqP-L8#Jb>Tg<O%>GGl2$D%LNz#sk5%7$%{B1%9$Wd*
zLX3xXb4K*LkhXBRhsB#WVH*(GOdG&GCC`eC9`~Nts&pnUbH|<>%B$o{*WI9KGMLjo
z-)&pVpvm;npziqYm$)8wmDC(UX}{{BS)M8uuGtmsc0pBpQ6=le5ttVxi$)bl?jXi#
zcn$=S9uf8?eb6G>Ei|ZheU(lOc~yb;R^bXwkCV-F|3)qdZn1!$3ylEU<2qhD?B74>
zQT)|{$L1+jH7Xpem*Qw7_~|67YCsPe1%LsxZWgik8`xD@i?i-qp+qW$K2_Rw1;b;R
ztjiZ!*alMTuvc$d4sd_-axW%~;V!^a$uCpKW1qi)GWr^5O=r6zW44nkYu+zjKVpbn
zJN^N*lHz7%p~9z{`gI*YiadI|^|;E>)Ae2qpYg{<2;*MaRHV;sSYm%6mX4$FT9PD8
z%l%|&Uama>v=1Thx9Bm|5+AP}R8*RNsCO6s^oDINyF-)CpDmx9t~HbiA_d`vyfOg*
z2++)yYmiNKed}kWmwnyLD`O8{%{N`uz4BT7K6&bem8ZSB=_~i)v_>u&y>8v`(UJj%
z%uQV_PCAOOsDu^@N+%X+9?!=}X36bU%+~#N+r*@+hGBhIS=Y!DSryqv1~qzYVIa`W
zazo8>TK5u8qebVh>dj^dVH$Wo^m-Woy1Y|uBppt!?0Od|EKkFH$X-0XU}zHyY;Mu-
z%B<Q>F<rE-H7|`0Wtx9dw5SuoW&)F>LR}>wg$@G<PjV2_A`N1tvJ~`kdBP`{n#NE1
zQnH}i*GPt_V(ySw@Oa+qYRMcgeP0j<9z#UeLh%#=bZfa@n#CacW5CpvinLE&AgIda
zc&oWM5vX>hp>4W?+zPr?mv%#?@#qIYg!VU*lq;_o*vnomAYNzZ`;cwfhd3#jpsqJq
z{3SAa3!823gkH)VoQf}v>^FH?SFK7=EZA3ZWdT|>6C>wDxr#hW`sgAFMGvdK5o|jh
zm|@!VP}DhlqK-bLY8Hj`$Q$DED9?Fc<&WFJI0L7NcP*5k=vj4jF)`P_gbIbxQut(V
zT)f}t&{f~49%50I<xp7Z`+(u61oe!0-S-VSe$J_7A`FRKqJ(<GQhK6tT13OQ;o%>i
zpFaEQh_9WF<AGnr6R1Q^L6c3t?dPduI%a?0%s9W>1AA;`3OrCde;$Opx+I%i$t@FZ
zHT?AMgeCO}Z*bQwSE%wk5!U{L)axkrUr&zqyTUC)W6*BIht0w$zs2F9mUJ*^(~1jt
zcO8vUib`su=UI!g)72yg_M?^p1e7uD?fhWqGs=Gae#<SC#Dl&Pz7n1W30_J_m>oPt
zL0IiGFF}t78}{T0d@#(_C#&lQj4j*?s7#*}Yt&>5=bTc6zKX&Y^I>1Aj{6!F3Abns
zzgr1uZy~nlYL_C$W#K*4Q$-w$Ym3)Y+c))}BQM$1paL>HY7;5?!6i73ICMx4Dk+ZG
zDnp|lDov;srx-{z0c~gUbTS$|%&}{Q^8+kt&VkaK-%~e`H-}zcJP&F>Of{#I%ZxzR
zvSA=MmRzd@_?@I?;}0gQ3sYTPn4UKv(wrpXZ^EJy@DXbCylO@sHFvIpxuR+@d<XhY
z5Ids@#@8LY4O$d}u&5%Y>w{XtU=Wl^hBG%yx1400YRMc0CCj+YDXDnA6hD2YD(Q$L
zvMFW}9P(7vuJ81F4|TJF@5W*-=F)Ldp~#QI*hjP@`50z1o2yo-(Q%iw->q3kHyWQK
zlgf_DHG|!D<tW6D?cyGiqfVhUNXj?}0WWvbb~Wy$00CY;bEv8;i<CQ@DkyesZ#oN?
zi+YDzM9GMSpkT`Liu~0=0+;4f?Dc6KO!YqpXz;dBXmo+hPf?|L@W+J(316RVU~$)h
zQg}*1iH^!Bh#(-UatfaONqmX?HNjm(1Bzqt<=n3|<X`9Nv(zV9zbY{Z;!^p52Y#x`
z_sKWtsW0DmeoiYj>!9vf;9^T|%xCiX1`Y*^#(AE!lScu}?^Gzr?oULCRSc>xs4%~A
z_Og{hYEwqLxu}1#$v#Ogkk>$Kg59Xg%^6qErFqye5Y|0TnN3z}n@SL|0ukos;>j@a
z7{m8r(Kizopt;rVmVHVE;b`V?6LS6eB_zo9tlQvQw-^8n7hJ&DWXRB{A~KXy*_ln8
z-)4&?k!O%OGh`a>^&rFoT0}Vd@8OM<u5Vi2y10OEq0Liwk7%)z<!dXZOoQj}WhR-I
zXm4EpPMxY^$IF^>WeD^1^2uicZLgLEWbJCsu>JtJ=}lwLN@DBcI`>Yr012~~Pq)!W
zxKaY%{q~vZIrij1ZR`Dv*i(FpuQl(}wxB9u1EvRAJW4O-iq^(Shk1x^=CAzq$_Bj>
zMQ@CBsYux8>OxUU``2#|e6h-U_#%f_ekMY2)TtQax!S92dwgx*5MWha#ia@!HbD`p
zVwFk3OrNI~{peF>#wa+#+=ri6?HFpQEIAoL^hW7Ck^<RI@a#N<5Hw^j6mvh08!}6a
zWGR-sUXYb2j9z$0M~WQ5v!C!;mBLp^h-9&FpRNTt*UxB3rUN#mxeRK_2Ioh~oK=RC
z{DgnLS(xEtq!{a%FlyNSPziwE<xG7%o|)z_UBJ@<a-|7_j35fBJD>yhqamcNcqa+1
z(s`&#>)_Imde-WDE(LaamMP)%-RHWvUQ@i>_fuZyVsjt#+N^8{VmAk@6>R#ut8gzK
zbZ4rPf=#BJqV5NLFoNRP@N;KJZW5U+R4b1+FCFEoe0Fpcc(x?%;jJ!Mc7+a}4ncb{
zYaa2T_|wT{o9Ak<NgqY7X**Sszj-|u4W_(ruq)GH$J0Zj0TWMY-BcIURR!SBsRVU1
zF!*W5I#Q^(0S5)<bXVhqC_ewTPl)JdwGSrC8e!6{3J9We;ZhM`-)y<1zA^B6)?xTS
zJZw5$xFCw_{IvgDDleh>qtlm6MwGs0KJ<+YIlJuW<lZ2XY}AvRQ(QM*ZTKb#$44c8
z3LD}{<4;RYxj>iiM?A;fqb_BcAKLCYbowifvsNY2<|5%mY|rHm0hzmcgD6_vp;5XL
zM4RKD8ktTUR^)598=}b*Qy%c_=Z=8}uANargs}@Tx+6-U?IIZTQ0x?udUMV*M~j&@
z;JjgP2tR=xJT1H?gEExpfAPd@{T16iVmJ{1fm-p3!TkH@^aAob(>H%As3C5RQ}T|r
zyuz0A$xj`Z26=X=q9Qap;C<J!H8*(;vBHs1x_BHtoJ`m~(=}6c11KYhf4I+N4$i;B
zpJdT9=Bjd*VOt3wtL95cd1-f8x_?o7l*;M*9d}yj0G&7OOIGPxe%jnbyz+eKb%b)M
zh^pAlC+|AOc?l7A{8OzPngsb)5p(3Ie9?ZpE*R-)@HYL!!PLAMM*#-Ru<N{+1&#dH
zA8OGYP8UPo+4DH04}tf*;KZ7AseX%Ys8hTL%8Z%-`MDPzHb4X4<>3dqclUQYX1hm%
z_w{R^u4;a}{ycp~Vw?X^=*6uW`z=Y_E|fxkaX8-x%rce!rnjn_cQZBQo{)f2WXdTn
zqRY2j=WD3omGC9nkK07am`}p2=k9Fk2CJIPq6$H+p0|%wTUZ_vc*s}SzI%PBzeX6e
z3ru`f!FS@728Z>}rB7m5UPA4Z7U8GCVTYf7s8h&h`{s5f$_8o&J){!Z)o1Lz4}tJk
z;vVJYSF9a0<aRvvC&SZEjhM-E`P|Q!Gv38^yt#6-E;`|TYTIb-{3dl7fj!axt&eiq
z)L6+S2#n_)vpI%Vb%5<2h6^=}!qpfy<<yIuT%*n69nK%@B*SH`#ac&%Q4w$z?DsMB
zBd(-rVIR8Gcg@J%rv2~-KtnoLuYu|^2<mNR!_M<wCyoMn&yb*2A3Qmes#hGk1dc+o
zK;bW51>oBtY#mc8bM#;-B;?H;o8h*`r_!1+605&g(x@C>PfdP4KO6TUIthj`yiRtF
z#O|z?cWQD-Qj{-)*ZE6oS?uOy(<>!<47DiM%!>#m`(+6%zn<++3mQA|#~-*kO_9P$
z)=qYeV=-N^9V408?I=`wZ8*dOs?pMU$LxziGc6oN^a&N(ne~v0DV@7KXa5LXdmz#s
zW|O(!IQ@c|bO!w@uJ^VFkM14CQc+P^{A*<U4iP|6wDUO3`^FzQCltEM8sK064)+~=
z%RWDrZ3B(#QEK?9L)SqAlFJrz6=2~jE7`p~sXYwTTh$l0xOy5mTVID|OPUatC96_}
z-RLPFpTB5AG6fQ*xg{G3bL=GW`0;0ckGqTFW@^#f=D#HQkdnNM4n7mAxq-dm{G4|P
z84HS$F%`|}ej9d;SI08d>Y{cj;KTj!#X^%%KbjAjt>`1xv|0W5K<sG%{qc~Ztj4@K
zJ+tG-Yv01y2g0-{oOc#oqK7osU(7d+cn{LuBo4ZeR0{G27hUoVTTZjj1oSi4TAc(F
zS;Cwovh#{tv%@`&AQ{NjL@BK}3Om7$dlM2ZsKN*ot_Vf07r-hDp=jYSf%4dydu<Yu
z;OW#uVOo|Kf3EK>4yT@3E=Bo`bx{!YLQ~8@m`5w`F>e=EPIrrgM*|Y_XV+wxos;nP
zJh*A;I!``nGQmh$AV)B|LGt-89@4kmKJPh(&jlshBoC?EOWgYaC8JKWSI{Kad^D%R
zz%|L;{6JRa2f(#z#u18)H@bDPAT*mV&nARid!9ig0VKl0yPk)A#t<9+k`h!3gM)8O
zGDCw;6%J8{(qnDOdP+><&Wj8o)mxt#g+k<uDM#DfSdp3Z8I4p{K|N3Fl{=JwvJ~UO
zethceO1%T%5sD)2%;+t66ki50o0Ip5UEr5k@ARwm=M4&O_kFOq$Pi4f1I}ck^eizu
z)HN)7bRq^y?!{_h(RAvJ+RO)GUCQ8d(ve>m0D8dV%UsUj4*<SO2sHw~4Nr+(;hU8C
zC2(^Xn_K|2ln=Fyf+0O*dTj+&kdqOoCo#5LY_FMTLH(3HQnqM9|NAcX(Xh!97X!%-
zREe$$j32=wh{#1Sh4QtK6dh{(D<(WNCt2AWT?LptE?^<_Obp@5X0%*RUdcv7S`lUL
z=u8KM-%aKEu+ZEtf1Uuejj_p+hhb7D2hH944jg0-I!<ljG{S?Q?#RqSX3wa%8Uz;1
zgpfGZWz*SQlCDS;=AqO**BSu=7>Yv%p9)%#eP$;(0atZIoKSi{fD>`{EL{?$OG~6$
z4a5DTgrE1n0ROia0B<KMrTlQsatM}jroy?-Tklb(o8{=$<*bWRQ;kJq12lFN^n>2!
zgD!FdSLDh*NC}JKYqH0^Gk?QaF5+s30GCBltz@R4&Zv;Jf9C!yA)USa8$==voED&4
zIrsrY{NJ{Zgr`qn9a=^&3Uhx%EY@B4tL9&=Srq%^7#GdB#JI#q&_Y#cvG8~PRUHoK
z9KdA{n%D=E8i&ZXM~jMa)&13xKbqzLXFvYk(*MBvSDmDSv1HzmTTFlPx`m=ua_HX;
z`$hdVyfL4pN8UG*{r8xl(F_akVfpdMTU>t??gGA~S4F(|=*!w)^cU-#LK!kBRLKGm
z0oRW9H~-12Fc~g@nDOrSX#CAvEId~l$7FR!=Z|6fJL8{SDag64t#Un|o;CJ=#gbZK
z6%%I4qmc(*Thsh01AhueXeh=B#1bk&r?~l>Y`#&llr>#c3SBow_V-Xv6qCVViZ6fG
zP!P!nF9JWO`cotcpcR!jTs6PT=90@+*~W+(LdgzUy3pWx5HHR?mgz5EJIduIXqg#I
z$?d5E?l->Wd&W;hm0j`?W(5t#c+u-tKTvCR{D*jXB9dq2{#*K?lyjZ8`)$aF>|d!4
zZvVv$DR~i_r0oUZSIYnzGQd7c`O$9)|IF$ePjT4tPp<zr-QT&1I@WidoeI3PQ@83e
zGV$Q?-%004TY%x;p#Q-5f0SHtenH0o<@++ghI|q$((526RxFUVRGodtIHk|aTwkjp
zmCWYZ)!j$qk1svD8W9!8Ty9+#IQHpcx&C78+P`{R6yE2r*h~A;<Gska^Jx!ws^Xx9
zlS754|7ODfn=aOpyM=3egSkr0!v}7W8g|++!K&MvhfZQaS^Z;0-}$5&vb%^t6qC<C
zo3~qg>&hHBoc}DHb$H<06KJMZnWg!=b^==L!7!JVAu#q8IP*7C{<pu$kRGEOHvh9Y
z{8g13rPdu{fJj{XCaGm2=Zws-9<Pu8Avb>^{*<cPg+gACLJ3P!>3<8@zYyy_xr~nv
z3b(`$+j)_KEN>Y^nxx$ggclAEBA@nC7?@i>`TuCvZy6pR8t29GXuySkjri|@*Who>
zX5!~%Auk(-WkcI`{t%6yT(GbqCrZL3kT0cLavI3sPE}<8$Rvr+FHYT)2ax&?fRV=*
z)_3CZIC+4G8r1o>;2{YZYOSbBP(K-s4V%tS$#aWgb%J8^;WjPe@;?P}_hAi)pr%6K
z|5F_G+c;m2|7*7Wn;EMlX6RWCbR4_*is7O$i*m95nuwpSR`!5cx9QLRmU3R8W1jB-
zyhMkPPf2{ME;K+UMl-S3WK=fsTl8P2GnfBwL-b!0|6fh1g{s1|e=ZN7oE!VET(#>*
z%H92gsG(FgZi+;f#FYOSnlLghX|=K5b2wHY$aC#KGXH-_?jJLJ$E|<Xd)Mmsl$j>#
znG8vxQb-Xt2Z|~&O{R>K^{MKvZA!}e&R%|6aJ2?2C*!W5M9)+NegSXl4Kc`mODG7&
z87ByjB!*%HY&|Q<!pQ{vx);dU1D?Z>_#qg0iF$MOThCC3hs!IoNcNv^{|lIFS$Dgp
zJha-D$&vgH#wzZ><T->4YS}8OQ!t$JTky#l!TI;qf@<e02}^X!<L4ZPBzRPSg^%Hl
zjoG{_3B9-Q^pg$^^-&%w$v79o3_VCUJLDU8wZK)9y9cI~`L)lRg!XF2-2g6?YDVu6
z>PlUpJq!{3(_uH61aQP0Vi%A8_C=gP>~OoN{-q(*a~cvPh)Sllf$0*|VYVCG`-9Ox
z0N!ri?Y^@~;#_UKteet?*YsY$8@~rSY{3uN1T(Y;mV`Pp>_r~QT(Z_1RY_Q<n@u3;
zuJ9bsWAMGHmM*LkAfg&N-NHteqNS+i#kHtu8=B`cvJf>k29faLuAe8r-%fpTGFC`n
z=>i<-U{S)B^;*Nyu+a}qefwkAgHX2!4iXeb2%A-o8!N$`Wi_(M97J5mGm^?uzN_N9
zZ$%|i#xzifaJV<-E*-%pYD~+}@+G79?&hoRcnX1gAohHhr8FIkuB@BGbC6k*8l<&7
z!Ehu4g(OAHl^IO-q1*HXtEPt`9I29>PFJ<#aRscM?s>MG;61J=!1)KjI;^~;S^;t=
zRI-jeU(0d~4RkNsyB;hzXHz(Y3B3jZB(x|D=Io|PE}GkSA1uvCrqZ+@EYh9S1O_Bn
zcw{<n+wmeO8EJTBchZ34BaLx81r~p^*@8SF6;foX8PaA*@T$rv^S-KHwglNZXv2jV
z=JU+gbcuQlq0AoCNV*WCMpa~p?;LdE(#xlj?ReQTlE>imBpU`X*}_V%n66<d7TQgI
zYY19fmL(=vg@(EoDgAZf35(CB$gtg9bzr^bcgg(V9#%}>%`uzsomtX`<n5my8I$YM
zNx)oX(G}+9AP<Wh%tHqGwm$&c@w=%$Mm1=*Vrk72#|f>+82s#sR3uMd46l8(XZCV%
zaL2&Dd(SlMY>>m4QX=<H89qj7Vf$=jU%Z%mZ!0t@J)L2nm7Dy6UQH4Zjd)=D*%Ttd
zKtUr(EZCy%a?p#hQ$diDf;YG&S_H3c@>?O&i8x-}qVK%)!=x$T`LS>#EUa%K7OktI
z4+@-n7A1^;5J>O)KSv=gJyO<OYQ(xn<7h^2dW50xY=iB?X~vx{xj0(T`xam2_*dWg
zNK<o9Ii28SC+}%_lKxD7V9tGRDik6+fiGqo(l1QJ0<%mRNm3Foim^j#huuHL?+2hq
za;_P<eZ)jlICSgXH4}OG!uF+ce9}5sk02|LDtUr{HIMuSmBfA52#mEkqY8>8!y|up
z#7w~6_&Xv2;Q0>v0VJ&4|Dth;CT!|d#oq0p)uyb+W>gcAkbS4`5wm0A3ug2-jMi*2
z!LRlcYM-)CuGh_Zaun%X^PLx3idx!~5=AA^Lp)jZ`FvhHe9k9$USFE)z}ioW=F$GF
zrLkud=_Kn1Fv@uvq_3%9-^@lQ+^i<!P#RE5x8se6!EU5_EIeY=Gq#%eu+i$bXlsJ@
zHS5?~Za;`|pkb-NNG+)6(>S07e*n};=6=#+NDFs|mJWa;iKTeIhOt*>AEUe)iTeSh
zNSZ0tIO*xUGL*?UdLd)%kI!z1CzAYv&{6nMdsz2DYBN>{C=^6_L4IWOngawn$;Ee<
z=M8uHmp8rM>7Jq#Sha=Qmg<%5&ps-B8`7-*6*cJxU{npv8Q;bFfs-rbBoe1_bO^(5
zj8l9hmnIzPlM*_F)X(}03I;RM>7TTQN{G02k9R1wBR@PM!WL1_N-sm8>VugbazO9T
z_xu3TxqnOn2r!6r$P5NZ2F@wk{3+UyUsuu%zv3MbRqxN6|Nhbc2J#)v%8vYnfXl0&
zC4JtH(v+BGd1><}{gv_i2HE-Kt=p4P>tD&Wj1R6R7C(R&^V=`}uHlX2+iOaHCx6$h
z^&4Un{a;ys*Ma(tOoBM8{(b)op{7zjmzD7+@J~`H+Cup9NvYodk>FpXgg(7k`v)oE
z%fW|t8lQf8J@rMKpZJUN-?>`tZa=#>>Gc!N3%MU;)AEjVL@WN9`>#59%g?;MI{H`g
z&l{CLZXo;rb8CL*{#8@h;hzP6w?Lqxe(vL9;ZKC$q(}%H%oloje<S<{KIAv4Ys#8?
z_`k@eU|~xeuC=F+te+f^fb{=SR-gS>_j-Tf!-Y~T#Ku2-y}JB&aWzKJlhzQ5!oMMZ
zP=NocU1Rdhe-Qj<^6ydMj}ZBV|937EsCm7V^A`~QXBJ7ex3#PP#`zOYg8WG;E|_%w
za{C_{+JZ%nVzG}cT<c9zwEr66KM?{*L-*FL{`Ifct0<j+_r$+woMcb1@>eCyhi*?U
z5*7X|@F)DYlnYOP`4jS=3?RY(9u`#kf1qiB-R@F%t^OqY_k__c|I`wL`47xLl7Es~
zIJ)}-_*LxB`hW`$-Le9;ON8<NoW+0SCJX-2zhBkB;JHuU$Om4+?3HQ!K~!rBU2Ea$
zf1~kH;h)rgVv>G;NO^Km%YVTCm4yFBPSNIS`-9-0*Q9ssZUdss{~-0Vpv{&j!O!bY
zod1awAL;Rb`RM=9btM2Xecyjd)F8`PlcnV~35hV-TV-BTBJ`E9gi)ebL|MXwELmsX
zq!1z_Yoz53qU>K|7gD`c$P%)&X`TM(zBgt0egEcuU-#X6&gY!-?!D)(?|uKEFgK<>
z&*abQd*W9aw{UJjEsrKHAw6VDa+ly<W9K%~J4?%11UqFCMF%x;8Xj1-XsV6y7>W&o
zSuI%q8~If(LV?#GI$_%f(2Gu)jb;*AC}5XcMh)4t_<wOAr5S24oZTqC^9NSjuetU!
z^Bboem;6>;v|4Uv><g+zxA9xHM;N&k8;ot@gs#eFAi7NWW=+wS!41U$f7z$4=L;_@
z|5F_{@s}s_Sn?OyQi{Hga~UbWnhfWF$Wn3TFUmimEGzmIc>Q6Xh4=lSoEu-t!2NOm
zQWEoE%v+^~bj!$%ofdb9*><g{y!2EELNEz2zhF(hg67;X^AAMG(_^KUoq_oO8+a{Q
z)_;|<WfGNda;XEutA!$QJMKpONc4ZBX`vjl3d>ke(Ly%-$`rxA5nG@NHWzVomfJz7
znzsdXSOBE7#d@_B9xe20ZGUs_7DjIOMA0(hYLHD6=YwyHqHIL#%6bQ_ZpLaMa91+S
zkp8P!?wJ2YW<aF9Shr9QQ8s%;5+7nkx)odeMakYaL)mM3{oTd9PNkEJDMfIzLui(c
zk^f93s3LtTFG>v{MuWR+Uf4ZZYG9*j;z$^xY29gK;?pYoCeAhg7WLT(>&k><{G<L>
zM`qWOqSqqoa7Ifa6A>zi>gDtn2_j&jCe3N<deDG$EY16qQY%-Fg_1p{pIQA$;L6v1
z)!`6j9P&T?p5ib~T)1<)yE+Vks6(p-4@w_KdS(?bECDpxp~F;u=h3QlQccKut(0bD
zE{ez^Xxsl$X5rFinqS4zRs1KJVk8~Byyy#C@(dI?woSHefP~!M`Y%E3Z8OwiO<U1l
z1npkO{JX;AY+m+nm4$s2anSG{D$ffFc)&7pQgC+sE!XpJbQ;G`KpJjd4?D9C3hCye
z>^|9lVzQMy-hmdYn{Ck&m=5mIoYLG?k@%Ir8pSq0ny?gK-;XHSti7F`Wy?(_kmXjV
zn%T90R_aU5<%`4HlZ(o{v>94DS!1!PUvh9*S&KUWP&QnmX#4JNdnp=;G4tM#b#3yS
zS)FT79cw26PxG~rpen{JXfST#OoAc7A7WXT=(L6Y+vSM%3rm|Rxy_LYYu^0HK9r($
zGOPTUL<WlgPZQ@+tlO=FwzbLXW;QKP>3)cCnMC28SH<Qb+H@`1)(+O0XIrgH>-}3J
zX0!N)RKB?&*P1E-?Kdd8xrR<2C%Lxo{(9+kXz}`VIE+Tm#y4?PO`J$X@_XQ+TXRDy
zul&z+(t!?DYbk#fn%R)wdEwbTqzWD;MD%5N87NT`r+)2hfm6xBD6_v1hi^}8E@g6p
zUSmQ!+g-LGc6GI;>U{T(EBT*(k3&$U<ESRiZIuM5IdW5P>D}=ih{Vq;a-U$b;R_34
zNOocc9F3jbz)x<$V<N0C6A;w>KhrUVD_ss1iqVlRWr)jNkbvKU1(6Z!;gB2Bl1RYd
z@c8ciGh9x%r?ez8kyzd&Ak#v*uRLGX>Ngy~G|QfWk4hKLz5P2r6Bim2)Yv3dD1oK~
z7Lr|Kr>ky^ZsHu*71%Gru`Tau7ZT@JITL4Y2J<5S1ZDY$5vsp>G;9-9<nX6{z!+J@
z(6^)uhY^kS6;~g(V9M*Ed#xPx4xf$r#<ip}kuH^_X9{qNTEng4C(d<R@`tDMP;b}8
z-8P3Fw!$J>1h5fzao}|sk?bAh1LE8MbL!s82F30N#m3dWtL{gO9^Z%5PEU-9+Y4OM
zC4UHIec1#tLH(JI_jyfazyC`LjxDbRq+dZkm=5xPcygaF%xU4%=<u&MSl7f!=p@n!
zUm{qAQhxoj*CTsIz^&m)xb*q{!;{o^fLP1F(fc})lU8DNBRHIhmP9t<K(E)MiKKSE
zC_}C3kx;bTLjLoq&D-EQ)35Ow)Ci-z>G00;X3hDNlTnJZmL_C>rgN4-i+0eanKb9M
zIvdd(W&ZXN&<mz2^{yz9(a6W@g9k&uuyqLzork5K{{3N)k9T0vvEUlz+e;vQu(Asl
zGvRjvIrS!lo;AMwb9XC@_uErMG<>=k9QA22q$|>P;A7%9*;=1StM@+L#QC}SoyHyp
zof3n&rR$C?JnqD3)56aMwJ=$mLbuf@@+-J;395PI)ZAl{POJZ#$zVUIJ7;?x<!@#<
z5!OI(V@;gKt>!#@K;tguFF+iNkbnR*!rAT&gyv<DPLbpv?tCYuL*?&|To$ld-8{l+
zR%wr*@PmLRG`ZzCc5ubewthA<xA^s;g6EbralS#N`3Y4p-*c<<dX>fbC4Wx+Smzj{
zT7an;Et?_972qj)YZYwi0qrxt|3PL}Mr|d23OS<?FM@J-$ChEk#@3{VGj{ej6Fm-(
z<Kfuev81DZFC=ATV00ZuW@$w*a?>x7)T@b&ySX=Tz2DQpQ(IFNMlkug^BCN+!^R=)
zTfv*+Wo1{~nmFPt8p*sz6IAy1zO>)nOI-6(qz{CLOoVl6$x@>nCb0!s_MRrPB-&f9
zmPMgTie$K&$;J?ujuN`wj%q}Jpq8*EHgR50sU%I@Tw=AHh@st3J@|8QCuxun0=Gir
z04fTTH$O*6!7Y+Lr)L#=FP!m;*HUv(IuMU1C=m>@!>Qx8xM}3J-6l<(jBi;TiD$vJ
z+NROi9jsh#y`5;hJW)P^Wy4K!nFtSEEl(B)F%brlN#6oB<EHkur7Mh;zaFIiMMDbX
zh&_sBWay-3DET+m%1^oJN_kFj$+lm_wUzL7MR4pA8BUv6VRB)d#YHZ5PJ(REhLJ(B
zHgxTf{U1$E@1`KJo7I4WrA)399kkULj9g*Yg~U7X!)Jf4bH3ELH#qL+>3&FJV-`gd
zTke&)?pTrGqIM2om?m_nL%?jcADcbRyjcz_aP&ip4&Kkkn|m-EJ3NbP#MDccSiU$e
zsC(SVXm4g%2~hlu=5jn!x&e#4HCX4@bi(o!kFi9BZ5%?wde(uid4_jztXT$w*eVnT
zBw1&ycWz7jVXzjO?8m$5^BFF(JH4<!6jXkY>L7`8ZAVwz$C;#+RS<>JdPZnf6-5V{
z<-A@dZAd)p)|O@B6qTch9s~Y$hRZf4qP2>|#qiMPakaNRmIb%y^hVTA-9m$H<<r4}
zLac6^)iFragN2OPTDkOY--J`xP`hW#^0bulBeF#dx&^81?D`CvW46gs4uCq8{3bN6
zHseHt@79|O8<Sk($Vor%tk)4{YytvVH9a8*?7O3*Dj}V@e&)$dob?^YJK6+?*}&H`
znm8H@>z|(Q1f`k2k3aTv*w1!#GU~wrP@Apv&MVd(<NPKI(&KvGj_Vb`YRHx}#5)G*
z3fpLnMOguY{0nK{`8QlQ8!}KrsHVvV2OdS+;@GZT>QT+4an;%wEO49b7UX*2CM(Rg
zIi%s(4psuXZYnM;L+)|MRcc2QC-`3%GDO7Txw*a!gv=dO?rf-v)R8hMbrVnJyrMc{
zQJKN=z|=q|WMe%YP&3myZH(i5Y4!0tLN7+%Mye(RBCNkOT5DzB9*};8RYi$c@+Ya;
z6usv3<2y-Fa~!fv2$gYJ{`Cyr*nRF21m%)-E0j7g6^+MC#&L!Ru<Vwr6132Zqx2f7
zPo(=XotQZtmPYZ7SORn%FQ^EbD*Zux>|$RpEmt1qc|of6^ka}!N;N{WAuj9)j>2T~
zoz8e<;q^J!a-1f-_514C#90zPV@FY0y<zsTnm&dbCzK;uBd$`+x+xbyf8=&CT!|tr
zVO96Cg89!zvngybLwwRmNu<%IUu0v6E1d}M&chEuHR;Su7}nLQrHunU^}u`SJ$AdK
z<&TDY7JKYn6M|Yx@|Vmz<a>Av-k<wRWEo{1KsS!d@J*FMC-525j_;!+$j^S+1Wks>
zS>UV2_K~yC+;4nxmHS21&UZmQ%)c70>URF@80ay}&HkI~Hy&0F!h{tBl?GB7FKK3F
zn@7k05(Vj@f{PuC^LVUUEq&q;#l%j-Qnb1PeFhOpuj7^JL05kO`ABSD+1!=j*!Yi1
zU^yGR=oIUNP~}z;=noUty&geiD&^CSt;Ums%y4~%fXNvUxDH-G)NJ>0QE7^rI3rqV
zc^1Im(ZNdO6aw|oP&a8xwpci>hwh;-PV^1Ws!faLe{KxxYP5K?t>~qj{TI0q!8rjv
z0zkbO-isS{r}UTFkTP!PM7mYj3q~+gGEDBCP7g|W8?=d#;vqgpWgn5RwqRO%I{>q^
zNrtaSH*so`^8h8Z{}8v83}?)cU+}R8(AQ$ScIS2KDoiEu0WCSg`)g0rtE9C~LP>lz
zl*_nNfWZfGsLxsu9tcg4CK3w0aBRZafkB}$=k^{MlvqeMaaL<S==G&d*Id3PCr@R)
z)4!#-g_Imb6KF(^@gOc77$Vr$SB-A9LD*{1-TV}lb~mKCJ2cfOqg#=Kev!2;#8eY+
z?Ti}Jn3V40#Pi6>?+1ROiSuMTG%lwQJ%K~01UrZKyJpscjQe$qBT705@4P5U5zV#5
z>zZ?9z38&A^0~nuKfme_YuCitZ^p%BHFSSRi&qjdGcFZ|rZBKcEGF@uD;1w!25h^2
z-^_H&t$X4p&(uGw=|S*6fN!^o+@%?>*mek+kp+88r4T_r@<OyafclZyED9Mg$vB(;
z)G9^78pD({5L-+<tDe+tC7TG>8Cxn!^5pz%aT6y3%I;2oa$e>U#>6I0kq*EJb%s;;
z0M%epxI?dni}dt<LeDe5jtMgSNVjCtO}AO{mdW`ORi@yK8-h~aO}2+&r#p^ad2(U6
z9QzmB?FW;4WTh{4g%q~B-`T$r_ggzMZh7Uam(u$2j|pna!j!NBO47d3NmnlwsmmA8
zerkw-Y?B#oSsv6Y+h$Qnn*sDz!K<WGK!5^|%@Sq@j1~6m;=(2ZquS1K#(JG0WU(US
zRmCNnH&1oLQ6V;Q>aH9H77yIO4DU}`cJB@!s$wDF8cGT1rK6*cCbx4ZaSl0wSujKS
zBW-{FxG>A6z9h?f(Ise$`YCw(M8*73Z!N|tiDCCqHKpk3mnAaajShA8vXMo%X=DAc
z>d!DKC>Ik6JFM$%?pgFX|H@|*77BPH7Ml6DTT^sn5k|T#i=6p`NOS$A1dc6TI?0;4
z9$w38hRRwYE+Jj3g&U_mX}!0Z(s0s4*qb}OqrdDJcG5fR<5$)Cb@8l?n^O=GCbHzg
zpLUa*IT*Z0WfZ+g&%+}z9|}5x=Mkc{-t@wWOV%4Kvfw0b8g14}syRf8+<3Uv(5L)v
zm`8FdV`HIV6c&-PB;svt&WB+p-bM9-0x0i3;D|2M!IAx~EXTgDZ#@tD36kFWMW-#=
zvg`)<N=xnl^)cegZ*2@W4On7MsMPst)<!*0F@7pW4vC&dy4^b0TdT3KA|&1N`x9^F
z`SGdmwid#tC^NT9SrZ#9%5A}s9uXCE0;g@nxHzpPn8F{Fy}Z%EG4Ufty1SG9g=~(S
zd(Uicpn7;}tz`bIA+SI5K}fD}AaN^y9W1YBkdK(L@zG8`R;u{4VQ#TSN>8sGbskkP
ztV%-BuHETy+^<yk&K3QG`_PQZrB7e`m0VrY&wupb6uisQxZuGOt>Q@D(D`SK36<Z?
zQpQ9fx~|K^WOCt0(mU|-NiC(T__9wE=fTD$7Nx9VqnN>W4Kz;n_myzZhFQfCQAH(d
z#qU>Rf+|#!UMdwNK5!wQl(U&j?CWOHEAW2t?|cR4Z|!N~<m-`xT}XUTrIA2A#y<wt
zRzj6y)5GG{O(T8H<1$)iBPdEzEzLqX?PF;8zo2vpX-oBL;>bs+!LRV4S~Tjx@L?lS
z0!!qt<HBbndz!=B&_bGsF&W3Epx)8!iyG^^m+L~_lI$zck_mE`NE?+(qcM+>WsR$P
zh^3c{SR>C&-*geECZ^1A`8LnDYg>ty#ng}o(?%$lQp}9jxyZ$0GTmde1E#&f($qV2
zw!_vY&M}kp2S1+GM_H_QbTNx+e~xR>DsBeTCW#Egpi8|iGF_h4;58oxMN<!bF0T6&
zPEaofQLlnW8O5}XZ>)a6?aRe1vW6pFvO)R&b7o-Vs^q0{o473|!t_?$A0Xd~df}Eg
zz);9?IdK^ue&)oHYi-1O<CUz+3hX$1GWE9Qb5UDuO|`vp7o8~pi*uEYKBy7w;t7rB
z4>D1Fc42wq`j|p*lmpLxifP5D3E9xz$Lo<@nM{-UaMtC+ntEFybRRpqB~*LOy{Tg^
z5uR_vEoR{5=L#RPcIGLT36~AMwj^GC@^IXUnSwQC)OW~9%!6mwVOP4#_RenK1o$|d
z|B`*;O`MiN4B@G{_s5oQuUrpcJ(p{XFZW_cM630A_&J-YswE1M%LeT;**q3THk#|>
zcv}=;+vwGG5-uF!XyVN1<(GW93O$ac8)q2UEeQE~Xpmk{jGXEowqI<E^LNvM9_oc>
zZXmZLFLv4M#n}1p;NT|CzelV{JhMT)l1{B`;#5S5mF@}pj{V2~vr`GfGn&Y-2^<}l
z;;vR_7X8c(+y18Xsp=b{N~h?BL!dr8-3)q-VIvQ(u*H45#nAO(idr?RE3UX7Z`BTL
zVML*;Zpl~#`2Mrp6Roa7S1Io^+Rf3%a>AR!ZbsP75|%PK@SWxhcUwe6d=ux!4`<CO
zrW5%QpE5>~aUF0hIY75Lum4teL3bD(EY9PJf|U3OieB77^r7k*LWv|L@B`7yIsgdW
z@5mR@!RF_`>9aFcaNuRqt&H~MxD6)Vg+%EBq|qTU!6~$Di$6T}K4`x9YOq;Z0yxU)
zU}AR|3XOUeh-1e`jd$bVW4H8x{|6APM|@<>a=UwY<(tZmtlrGkH1;PN1uwO`vZaXw
z%A&q<U;gG0-iROl%mTV`v2>IO9qwFsqowkRIko|NyUVfF<}$^%sBd0R<QMwiUyZW$
zp{M6N&NF!y>L789xNJa9S-KG~_cHDhBAy@QqWh6+k$M7)E(9#aNdnb?&6+VHa?*qR
z=tX69lw6j8Z77j1Zs+>sLGa-?Q0QyW^}3Ly3Jx9E(Zc22m2UL1Sq8;K3gm#9M1;mz
z7a#4`ZNNA)+<F_F@Y$ACQ62?)3^KX#<V57{d&Xw0!RXr8<^qj})7?u%aAxZuJ1+XL
zqEM0VTUl$i%1CT+v;>*xym1<MRrTh5mZSIs)Y#UWNXt+2yl`xLkCdru0OH&6SX7}7
zk@|5F#Dy10k5uDH)x3cx-(0%_kNw;{Y*QehZQgbs8u-tjqt}v?Za#YM8Jv3@KkYLN
zSO!m7bLLsN0NOD<@ulgJ>Vtc^pXW)Z<FD7e@jq`^GnGg$qvQ*ra<od!4-q=wIix`|
zj&BXT`=<vW@uGqG&Vrv3-8n=ys|>n^`<mr#N-M0K6JMm!W0wf-?OS`eM_h{9TzQDw
z9}StHuYdJSS}!?z-CRAa1CE(>Ub!Zj2kGO+S06wi?M9i&iR35!VQ81g!znI!vvsx;
zG^$C@$0X>;zIL9b#?J4+h9<$_TxYAjW}^L0J&BBCaNoH`s^c_#k=hSHR(3MFsy>da
z`*9>8DYl=oWWL9V+G9b1p=;g+1THitHV{YmTT^tc`-C9UL2r3{)nOCdCVXt_^zw%z
z1|00?{9KuTaK0j#{EQT4LiuB<_+l1zr>?FDUI?oyK??+;P;#Df?aj(_c-x1I#ArAQ
zfqDlXG|%EBcMf~sXZT<gG2x`EvQfm$!A3zmxun;EOnRK<*_VMox*cR-om@c9!L0;1
z7WbSK%0{8WFTdJQ@)8)IK0kA&N~#P0!w$r{!Xu<CbQe@YIA5a^FzUR8^^k-8_P<@d
z@OyIdv3W;e#vHgsOi<U_UF&m&#LMHP8e54d=A0z!L7OjMs<>-l4cFske<QP(&0QYO
zKU}0a(x{B4x-MFP<iaQ({I2m2%A6mU2}`zZuw3~-H7J6S=V2_axju*|Dn}M!WQ12Q
z6d6_<wHn>xZM}9={>k&dFgFavq$jbdg+)?V(jcf(BHuoHbA~zA533B>Q-MUKeXFs6
zNxI9DQ3v{6D2$k_xC@*zhq>ai*HA%;Oo`&NW4XD(GL?JdoVb+zd))19O#{S%sXgMM
zh|N4^cNjrV>Y^?xZ&i)0jSZ}R<l@kKYO5o<m~2n=Tip!*V^AQV#kl;DHAMa~VW_0`
zcy%j#B=~g+bdK_^_?c6KE&C@zm9m(Hj}1T?kC_1`&gteJGoLjA+%6MQ3~Ov258=0Y
z_zgCdxt1s&@?Y6ExUFcl6qe%r`jwv5!D`gW@F4*7tD6cVl>Ut{^V3hNhfe^e1Y@y?
zO(xl!l@7c5bnq^0kJ#{Hl5wEv%8w^=W8jt7*5>ozq!fJ|_AZhItAjO4Qm5MuX}$Mk
z%Q^7*gCF)QU0CJf(t9~ZSJ`)5qz1%?KXx0L2ZXj)n_CNXE2XdmGz^12d&~698R~fp
zKkOv&KG<a3l(DBqgj6%5BnKG_e$7$hQfp&aY|_Jw#2rzAup!#(pD$sD=YF?npX-Wa
zdMDPX7d*2Vw9dlvCxXh4t>i8Uz(})oL0z)$Q)~F67`D+9?>vX1qAiWEUisF!Sjetm
zsllDfDNd`;8qx!eIB|lT&}}ZudXe&6B46_Zdg&&Pn^D*$&nC`!p9EI2#V*|=y7fQ0
zJG86l+lAVKM_h}s|5S+Uue*GJp}$ay`o<Gioo9+ZdY1!_-1G?Uh14GW0^v<-#j{|w
zVdkXBnr<rH{=Hi)BZco>T5c4n+4rfN(%{=B8$zJBfX+)&wgHRK>5n5U&EqD{8{7_x
zS>;Szs55Q98aY*%80;Hi3l)~i&&Dx95n&Q~!p>L|qgpXAr?uB;I%xaZuWjggf_o1i
zd1h_GWFvX~5ZD2z9APjn`A#fD7~mpm)^6Lk*&QOLdpy7wkkhMZeJ|Y7<9%KhV)%s0
z$z%`N+H1A0p&I<Z+DeIoL=x}!p@~zg+a5PTHxTrgD|VJYFV>GuVXjVn(O`fL3UbA}
z7h9{B7<X<52^mG7OvosV(|J8qoF<NI)~5vA;Sx4I+4$ebHD?b-F$*Hym#q3AOawEl
zN#QbT)1tf)y^e>6?sVJMZ;ppNkv=)uh|7l>8^2@P!bWI#JshBFd`NBLygIzZ|HOhQ
z@aWiyHmV-44Rhi^39Fc!Rw+}knD=IR?sd2U;jf)ttVhMvzlk$HH$JUfCaCKaF~3;n
zFcikv7xi^{oCG|FwE;XaikMuYsZ4DFvngflA9Rh{QFa@Sa9!PzH|i{m6C|)kWs0U+
zFd|34N^V0MPc%zyYFL*$7xpe^P;McRE4=P^`Qjz$M>0!D->Z~(kw-4w#QAb~QIT@%
zycLlY?O20qHF0j!;US){p*C!SkKM4p_gT_+2kU17NWs)J#k5Iz7Bj~x89gzw)$K%Z
z3J3an;cvtKd5P$2c~Dfsn^t5>LmX_nVWb4N%XUkFA(`Du7&^TuBSp42+K$w{d)Ed1
z9Y1+SWz1w0)BbDkWwEY#&3KgK^sb=;Ozxcf0+~IlEZa$7Z{Vl{Xu6>Lz19&uTsUnW
z<@}sl)cdHdF;M8Vl^spsZGhDsp+l?vcl&RgOKjo62v>Z0?6t4v4nHV*0u=|$K@N)N
zS@zpF91DsEw;c>GTK_z-d_Hc`F+Gl+`_al+ICi~<Ol)G}cyZmsjT0R1y}8Kg827?V
zaHC=z><p8+4c6bQmWM=xNZn3RW~2}zjw8j^bf!tHKg8i*zg?!q@JHvxj+NVXL_n<N
zpY=(uHELN9cF+Ejrmsgmwe1O%ee&#x%yGogwvdr~mC6q@4!*|m`UoE#?r`MZw<-q!
zfaB+N*&7Rr(1Whva9aCf{F&kNtYMf1)1QuK_0H#Ox2&7X4vM(6mUvj>%V|xE%!$mx
z2QU4bI8oE>#RPolh{HKQm`=KQ=-#Z(X?_2Bu+C^@#KwL(;*p%m;A*FQR%I;WaM~Q*
z{mF4d_srHakOB6=J?W3|7kp4|O-eddI|QY2dfW5o^oGA}`$T+bi*Q^1=?dn0tY#}O
ze^sQW=vh?O3lZdYIAC_^TKg1(HK05CeN@%YbF~E-Ba(F@dMT|8d=W$yY)%@5m{Rwm
zb@#{2H5EL`{<1u4q2H&~CT$}+aZYKUBE6UMX?gr>4ri$7hh>`o%|=)m`F8u@mU~Yk
zKv1yhOu5Cxy$`+*@I5TE(wjM~!^=SV4&ClM2UNBBcTfYzp@-x%$LcY$Wdu-jblmc`
zrJUz*#$F44H)=?fMLP}$>M%Zjo$3W@MvL7>)y;#-Otyp}@z4XlW)sFl&3)=I*yD6f
zHe`>_ov-JEarQBVg-nD`u{C7-^ITw$<>Vvtr;EC15QvV4YJ9iaw;t3>uaTZ9^@dcU
zC<nH+M^H|6>IR`2j_R;gr9cw(ED6mhgr5G=J9-zcLj{_jOAOojg$FRJ&s;gJV^U(^
zYO&M->E?cA&Qlk~EgAMaC-w1{HC<(RFR3H8k1j|aic~!$^Sq@PPU5e;*6(=-_ec?p
z{Gd3ZAIOJE+0xHPZZ1J7%|Y=2c9}nL*@TqN<BJ^o`Houw*^Ppy6QA7cm3EdbMa@0I
zAy=`7YzsLlY~J-%d|lcNARP7uCN*yGSU|K3d^;_%VQp;X6!n#FKdml1XHR@FvDBW~
z^`VKBj}{J{?#}@sQ+u_^aX7LBER1muPzaBJAld$u$!*WS2$4%-$VD-^!r^+Z-$uBT
zW{M|!RUIp5zAV{v=@z(#{pYJimynvSX8#P@S3=fRr|Q5m41SuiWM^dIeid$uW6`@l
zi&nz$fi(zSH~Xt#8G=plRG(M1Jybc`eiqC%4F&X~8zPkzYaq0Xp^bw`k-PmZay(ze
zTj&@~BbaIQlD3Vo@OXdza6Jw$f9it|>Fw8j(A+YVE6E<Y8N!f<Y%y++;%~Fj1b{@@
zBD(`dr=e^`$v(m5Z1?uTn_Oj|!DF<b2F}$P6rX(sOHv*d96CR$cblJB*THVD)n>20
z9+;p;Iv?bn$I7s+c5`ckfJIc!@O|(2H2P>l3~V=z;KW(~G7#w3DUlKF8D7%cb63)|
zxvClNK+*@Ew9S;C$D3_z;_R)RQB2M@Z7Y$lpgacOzm-@C{4($Cofae7d>fd%$Ontg
zmzFpW|8UbQ?J%KVBERIc#`zh*KnNNXg(sDd-=`!e?jSZU^z^2K9M8+>P&CiLu_v9Z
z$T@o#CE%RHdrsB9nYMOx!&?XJpyZkk@n-Gls!Jwv`dl4uxTXI(WE75FG+FAn_Un>v
zQeC(q*;;Aw)+(=Dkne@Jaye#sUgvisIZ03z--Ix%ir0I}E@XT$>_7lTJ!rOIM@_$G
z8yoKhgI^k^{1@9i+j!aJ_*$v~1Z<_Aw)YWjZCmw_2Wvz5$M%k0a;>;xn<(%;7MtIp
zTzHH%5#}xa0UvWVVWcZfR8>R>=rtz-DS8mI4{0_gb{Z)(^yLZV4MV0uWg7$Tt@l&x
zy7_~4i@oWo61D!8LH)e&Ek@ZL7)8xi^ZeU#Ra?|G(4k{-(QqLhrkn1TZT8rf>0q@j
zz)W~li4xf`F`wwgzji~6#dLF!&#+t4w?cB7RzsUN2Ic(4(~O%<yjWxO3?r{wl$RVc
z6weM?Q#x7#zUOLMn}L@9SZ@>s!UQ}q_i2u_CZ<t2pYFIHTQg@3Iq^$l43y&CrR0=5
zYbDi2Fb#yJDQr#Mo+DmFWusXJ=utTYlPwML<T<#kx(H+E9j|1<q{Y~a`@P>BqVi4G
zyBx};L)JS_(C@hqi1&SXu)^+H$Hc7(k1-AmSt3f1CF`?_!wR!i9eG}&&%%b@X!EH#
zxX{GOv{yQEtnPTg`fju|hn_3_0=e^1^;!rABAYEN`|vjQDW;GQm|)R<Y|&D$h1X#@
zTSyWYhb=DO63GA#RW0T38tc%dF}+j41>Ew5@&T!T-cbOv&9M^l*wiQA-m5V=Q*Q~?
z$wS8eF?-MygA`WwRAW(N3>U8Z!oXNQk9s57w%@FM!3v|R6#dY)-TV#}2`RjkMIDjW
zm2FR5oH!x1CO_usQ@FQeOi^^{DxyB<q(sF#&2|$Jvr3!ogMpub4!qHIOrxMAHLtyR
zOvVR6?t`o~sEHvHXRR`0E!4Q5wc&8Fg8`lQ59yfmS~=mJ)Cvl^m)rMyPPPUNoXF!s
zX9rPh!}AS3F&T?-qfZwkvZG-at7&5ADeQn6#$;K$aqJWr3@!63cGSm1WyEYpPOvM-
zEgmaYE#1iAI62W5y)Z!(=CXLhk0k1el{|TrSy-xkL{9~@6W2oq4*GV1(U}RM2cW!3
z9E~{P#7ESEb<{IM)ggHo9yxvJ4K)MBWRU{e-!tITb${c#QI9wG7t~VM)J+^)I2C|Y
z$)E2iWlj8?duco%9f3}$VyT_c)UaJ>nlLkOy`Z;)0%{-J9MmrzoDu9Sk^UsopV|sX
z=OMRdK7pb`hfl#Y?l2|Rgy7~IDP-b0HGkYpA|ndp0pr|#<#@@rHtq-n!f21ANJoo<
z_*iuTSx->K2V+CW3r|Gv?#JZ1e1=o6_Kl5EZ-0IV_eqKn0&ew2aO+{!z}v~ow(Y+o
z7d7@}q0rSB7L_K|uf1w2)phLl_{qzVq)O$txg<WkHKR$)ZDu_DsqMxh@PwENu5pVq
zy4=Mw%Ca2Cy0&>gF5L_}h$eTiG7&n?HTIG5_zV98?FuCwC+$B4$=rnHefqXlTU_He
z+LyunCmo@F-GcWevx$d3Cct-kqz~zSe%>}E!hrC0Z_qro^~R`2qStTebs879%{;q?
zF3K?p{YOKmUMVK1PnyS7@lz$wfm(qsB)$e0bhY%H^iUPzO1Z~9wy<TP&=u%CC>k9h
zBTWN?hyiZr&5M3UlEVA&m<j4tRvOIEpg+7YOoJWbwvQI2xD^@RaQpGy4=@Y_0T16<
zN)D)zVv+fDnew~fmHn)NLI1WV9eutr$s5AAj^W|sVz$C2G&nw!T>z`<MB?Ye6v5w6
zhiDqb)gwpMbnJmZAjpOd^lx+=tSd@cy)cG;dFdp+=Ig-B+vY{`U0&cfkygiQt~L&T
zcsvrQQ?DSdiO#DQ4w)ZVMNk)~cU86;=!6p4;3Ot4cv7@J+{$bQO$^48^Vc_VE&@*+
zkv4NR|90x#lIj15W_oHc(;ocpGkfLK1d*#bv%&cf@JraR&&qCdh#J6_MBl0<GE-v8
z4Eu;V&LyP5IyC5kqa!li6{PF&$M(#gqHSMTHs}mBVL7#fc#pcm9uIqATco!O_Ol9E
zSEa2=4&mZvGZy5%r`GcyYqEn()H6oz^WNPDro#){r8+8xp0Tof^vMk|bYi$Vd`P^D
z9lZ0IP+e=?58I;zpU$FTWM3NA1}VBLN?E8APEd!Z>(@fu7ar3MA8JNx!K4R|$HVA#
zip|~C)^CJ|RT;|__uB>!B5`N`x}s^gt-&22f1<y@sh_LAj$MdXPa5xs$%fLlS{ZyL
zIo;u?Mhc@}q5JB=^g>AQcNC6D*urX?@OsQZvu9HNcQvDsFm6VG3prTm$MdMJYP>}C
zIpd@M{LXBmSVy9U_Sx4m^6Qq^E|*U@$4C1B!&pYd2$uxDBepSodtmCs2pk(WTG?XW
z=|mc=rk+Y5MUe+Ze{KdhD*;L}hrSop$DrTi&pt~p^n}Sp!#<v)a2hF{I)aYw({twi
zwhAx$kRadHCBSfLzRQK2SG{LeyuMVHb&%xezP*HPl0_l^gMt;N5RRPtbIcbB>1O{`
zvA)~~lYf1bB3h5SKvDa{QM~xto?3t4W>R7-k-dM~hYYfD3mlc)=rz#2IIyGF*2*cm
zuo7+?H1X!W_LHuS;$P7PXt#3+-|S$J9zgBASK;pz4M%2V-&nbD<v*le^%A2EIM8GR
z9Ox!uO<!rUflE**Pn;_AyK;Gxzkqe12@826Haz7$N_y{mcY3bl%CxOifw^5YDGV?@
z;J)H>;mK(C@7?-(WGXjPgC?u7K6P$hNIC=^EY?}r#PN<>j_zZIKsjJ>u(A+CyQ40!
z_x+V>`zB7cz?P-gEi^cf9Sn1uPTK#dGxJE1o<0-vQdq#x8t~x*yackYzp7oE*P2D}
z$kTYhF)anL4cT?41i%dL&~{gsb;otHJF~LkIxcwZp&{)El^#mD(xn>e<<e94;8b!W
zRpZgxbfLvr7?M*^LE)X~v`BgT2tBe()sxnS1){m>m<9FqW*-UZDmTZjOu&S$gU-J9
zAAL)L&AT!)A2&H-a04(Q$R=~KLEqos3oM6D499xwD&ajXyQ;G(MW_!{n5WixKtJ?j
zh?e?J&38EUlH!`HXxP-L9U<r63JSa9@WJS!dW;n;uC|?!yu+bmNjp!?19GzORAwbn
z*!6xRVDW3O<QlJ@T8?{OwLp@XuwcPsB~;B6HQbtK+dy<@+Lc?RaEXU%G;*R>*%D;0
z4TE56HWGJHEb4!;#v}o^|6#dH)heJC-js^!pXq}soR@w5V#w`GtN9*j^>9)mV5kc#
zXcG^&eDeI;NB>47hzY_dILSJQx`evHjeREB;z&mPEH+o6x)cu8iWKX`WoGZ+MEuZ{
z%<sVSuFsMa4M3iL2I+Q2Gg11=<-pCf00wa4^i(x~>7^u{E1EALJu*6iVyvv}?L`-r
zq?p(X(j8kDKZLCo_Y1xyq~ii2#2BE0_xx^V{Q@Wn+fX4nt@htfzVeq1r(k=LegTiS
zXOwl?0qpSpR>t2tEV(=1VN6iuZBl64Gf^vODT#OO?53D*kCvj?;1b-#@sUsgs5h+R
zM9PYw@`>2YfhE*=Cmj2sHxO&(ksd4#oU>G2b6nQChL_O;0A`J+aaav%=iFsrEoYe9
zqEQUjptNkXRHs{EY5BH$0Xd9&3~XXV?GYR==@tlWG7D~Jrc-4Uz3S?Dcm^hPST59D
zI^cIBn>eOp)mS|5iC)6w9`-2`So`}X3=g|okOJKE8Nl*=ZJgi4tT{sVR7j!5IF>G(
z&Wf^hA>ATB@Y4e7LKs3Me<CzPABziWJ?JJgW73$VzIT^c`Z3FWS3qA`KrRgFb2}k~
zUYr;GqHiSW^?lRU>#*@VUr-3ctu^_6&x`ToW<c8u8W>T)fi}Ik^}?>O3v%{Aa~5%B
zV+Zj<T`>W}Jo!yiFfG@}S`MzSn)d9D3<X_&{VLVv(5g1>x7c%Misr|j#jdwq;<hY6
zLkk(By*|Ga-{Shu7bRo??Nf@8I@gP>Shc}s5rz-i{`d(pkO}gRuz)|py5c0<k7^tR
zE1UK2_8T#o?qY7S1iXo_{NjYUNk?PjT*4*|{Z~o0ei1)p8|ma-{Wi8$!`i@@3ke(j
zpkXt3X1hh;1tETHs^KAt8r!QG<<%_e;kF%1=zs)qFiP>87fw)5;sOid)PsOt2bG_q
zL6u*>#Gq`P-+7oRMh8Fs>M=LvhnF(9-?iaLN;X1FPcaVpF(K<X7AYvy2h$zybz}tz
zJ7bCf6QSX@^*a$U6Lv^7UZUXI>(E77du-qrebKaLvn2UBG|*U<B<l;T7h8|c`@Gum
z^kZzhm%qL}JgieY=kIB4kY7NyGvzUzI^r6z>@74jm=cJK0zBW~*!8W=C(c})H@{IA
z(u6Jj56I<yCut(hR<s0$CbiTPF0!#4e0}pTH~j+i2iKy9@*8!B+<?Om^y1fv*J?OQ
z;O(3Ml3WdI;=*B(@evnWmvUh}9OdnirEP~7qp(ff-5yu;8xb`dz^OLIh=|KvOu?V&
zYo*!gv!?@-Cu*bN`vB4CBRiku((`WZeirxga<Ua>G&<r8oYOhd=1a<UPD*Eo7y~Q)
z5-pr?zd7)7F|vKZfbWCLasFevK%2ERUqnf(X&V8(4P5McSt3oet)|byQzR$_6eFRE
zY&H?LI;wVpWYfrV`>i#dbQOD=IJ?AUDsqk*DILQD8N>YE7hV4t^bR*MEJc;2^Rv#`
zkPN{AH}MNDcWmtUletBSmf&p+Bk3UMGGY?(z=gr8<BNa?GLk6S6co`&Vsrh(@guF%
zN{S|g;FhvJ94KqWyoEfJYjF!U1-e0m2`-6Hd@=}{oGe2arM9XaZ^LHEU8?7$H^Pg7
zWZ`}i@1E9qD@`mFWGmr7Y48bDS8HyNuqDC%if=^$+z<<lJGCA+iG>&V?%p6SXm{^r
z02sY3w~bEG`QQ$C|KK<0!Jl;OWJob8_`(xR300hb(8OtWxzI^NL0ZhG;p_ocmacIO
zE{V&yIU137C7z953=yXjmYrNjIXLd@c<_DgeVDd<jaUulHMEBU0kU>N5>Mhngb99C
zA<VIl-TNo*kwR}|lKfEHFgEORM#I&781p<Jg%1<sG&KG$CJMNW7q$l@3kKtz<C~4l
z8>)uZ(|N!)VbPHddg%?txH)mKi34Kc;k$sW!`=_69u?;|+Y0G<#<!ra?AF%>Btzlr
zk#2`}yX;@@-<S@!Ob`ZxcMcHbpXEWZ!>JL?xXdvlZ6Qy%X$c;Qh=fLCmS%L1q32l%
z`u?j&3Kv}5e%}^1%Sn|mx$|IvSk7Xh(nX*=92+twqwhP2cf5D41d-u-oA$v;S@@30
zEozyB6b*_f5LEXMt*XTo-{W$_;M3yqPLpi31^Hdw7Fa|z+)7dd9|SE8{rW!6UpJh=
zF(A4}JU(1?^tS!w;9wG`w>~N%g?g@)-b}6uMuvEpDvfLGlS+{$C_sCLZ;&pfilB)5
z2DFuQtUdn;3xOO(09`SbA#sf|?B&uP4k<#VHnD@GW#7iOgF|N<D<urbdY70PS~MKn
zy-5jW2e%u-VYlx#P={=71y=~Id`UV?3`Q=bKEtxKZ{jJc`;0wr)!4@OMI&HcehC~m
z9Gk@!WaOj}VCfk(#_OMNtz&ASs*RhI7dDXv!hVb#{jiA>^S)g}Utt3|q;NW{;yGAO
zdYXph2*G`xvck>xz`FE%wU&c~m9Iu_YpP0*#Ba{7GLNrq9J@FW$PZF^nRyHmUzDvJ
z1zp-igC`HSLdr0X@mNy$^afHLP`~S)V<OD$7qm302kFtT?!X~paI$a9qnK<rMQBV!
zFQ}DI2~`MoeWttJ{AJy5+g`@8+tiQO6g?~olVy*sM^-kZOhm|2)HaD(m^4Ah^Zhx$
z0tu@O-Z_KIttda!+UCvNDH2)Oy<0%3W7^9`iC7%em`Ri?-nWOdeGc3*0WF%;eYU3d
z!9DDE*V^BLek!aT%H2zS=xBu^vR*2OPVq3;KT!9`4z$Kw=M7Mj?)?NTh?C0*E+S)s
zrKK9IhPc`L2SuMCjuRQ^iji%*dE~drfwAj-;=)afnEUfCU+}1w?*b?GPz8&iMP4vE
z;59NWa$TGfad-)rwyvKFo6B1@?XIczTw-w`1Lwz|s?(Kzn5vI$w=?%wV={y71*oTk
zy>*<QiF*mnpV>D6AWFfpC17K%50L^T%%5O?w*=gD&7F7zV|{MHIyFPJ?B6H$0}0iK
zhK)(tz$Dd49|fDUHRW22zPDI1bju$MS4W6g#GX8H=@cgaGV4(k0`WS%z^UL14@?vh
z=auU-<sL^?uA|x-T*mDQIFWg^3TXIdBkjOBIPO=%jl6owlj;-0s+Dy8gV&kMP9t<C
z2)*lUijRluMD5qRokl0(ScJO^TCRlIlrGNGok}`{#Xf$ZCB{4SfI~O0Gl)ZKtlpr?
zb>ae;<&^ga{hjUx2bZyZs*D<lV{eJh_KmPH4U$jAryF64nf<jG4smQ}if)BIUU21t
zw4U)pM+}24kZ}7(B;1TBx-;oPf7H{9iDPZjseM6d7l@Sa3(D~d;xbKaLoGu_CiK&c
zvOw&Z+#7EzGb-8xYmZ;R57Q|Kg$Wjo8PdHr(ub|@{^Ri#6}_&5z*LQ7lz@vM8%R9S
zPP#%%jDJJ*Ufzceys0*|e(DxtybRj=Ln+X^J_~Y&bAkwSQ^W|5kR^+y^#_?Rs6^Vf
z>jgey>GNg~MlLJe6_o_^jHKw+nfAwaL&<r==f_cAPm`F}j!WLbC<hJ*d7LTR;_RKV
zgy?%?HR%y&?@9-Y5K1(ur>Mk{JB4W|&uRUGx%4F{)Snw2+PwWGjehs?`%5U8fEf4u
z;6ydJH{LBzf5Zd}E$&Cq`Id}~x)LpeyFGZCz}h9!Fx()pVYgz{I;f-*+kl$4=n4C^
zuWlT@lxrn;D28_!oCYg_@ulugT^w_Sl4f-I<2nr`LLW;8nzZU$=!Nq?#5aZ@vWde5
zE8rkuCHUD!fjIbKKSE%<x-%V^PU*o8<0W{lPYqNSdZgbmUr!zbtRRJg$3Ka?{*@m4
zx2mFB<U~qeWL=q>RhUbL(aY>^L9ZCwWeI^;Mq!FElKU9BPMq}&ZkaFv1Xc&}=|EdN
z)pzqP(f|ta?RLoAE66q2%u@0DY>SKB+=$AX+Sdcp`0J$Lp7jnQo&FB88z_Yb=^l0k
zK1DFx6y<D;f!njg6aSSMrKKC?=kw^r=RYrs8Sp)Zb{h5*i{6vns)<vKS}@*fd|pOj
zeJG1t@;Rvd`uZFvdW2En4o_u^unE+KpuIJ@Rz0)!l(zd`LJIW;(_>LpxoNF(3`{S@
z<grJIQmtn4EwstwwK4Qk(oy>F*$>x?Z(kiHD8z>!Ygl{0ils3*bHX-l9PEp27}6>V
zk~)qx0MN3-fcQTlavN+P>%o70Tieu~LN92i8^OLir`Px)3p?o+K^eNlaZqcdJrXSr
zn~5*SCvtS8;qe-KAmVUbVFW<Y>~?yam-M3VxwnhQfM?LXKG+21GyinsZz{Pu-Nq|t
zebF2qcNwMeRf~_n#ydDH9U>`$(+^&gC}(Kl(iX<Nt+;}i{07~X_0p$ad79o*l4ruX
zDNVF{uO(W3@#gFcWiY=S_!Fh*EI#&?!|7(G&HeLFe=gXq2i0xRUi&G}OW<|V*Pf+N
zrw`fXCmD5vCQy+-r6XgawZC|+=2frY)dO!|3@5IjT_6&l&H+|--4gG#hzxvw>Xe+w
zTC=wJHo|2?kA@`~`N9Dgt5=S@=seX2`omT`W*|>>cq2YF1?S_Ks>1#)q%-vX@Ty0u
zryuo93Gd?tkLdBZvis%3m-2<8K+o)ZETVJZ0GT>`ZWAYEmDmiDJp1=gE>TDaHVbT#
z+#EsO;fHx~nn}<Ugu!3ICuHMhTW-)HI5_H!9@MQ@$in>rKjIo<vKNHk6%*w&v6toE
zAb}%VJJ`6np5oibsI<+-wfl_4wp#Nb>%@C>Xm&szCRkB+VO|h)hg>}yhbu5Py+w+?
zkOAemxqY7Ixtc{Wg=VL!^a-WjV!KoszI&TEv(=`Z`y40z=yhEc*(~gOyP)~_0I6oq
z8$L2?GMpjCc2R@=%S2n02;HHm)$F40W5z=y^WWNG<b<Qb@>dE&X+)h(x@{R47}HLA
z|J%>2+v8F^<AM|EX-14XPU#NtMje+`tt)4reVR#$DERi4gv%|m<O{MaYn3v;ms3*q
z1h={XJ~0CC#oG*neVD|qyrrli@y?CXFCnbvxIJ<ndmnW#Q*{a@_D)ub2YftbUg<wj
z&cD`aG|(bZDJzXRJRH^?7DeZbLP;ND2m4@iB1+ioKd<f4Ef*sVgs?vPIAJR68EfvX
zhsQf{@!a;ijq7=@tTWp|OA8d_@6M9;*_HOHd_7%G6)sh?R&{{o*${w0VFU)laqG9R
zS9w>Da&M6nC52bEUSit?B}o)5jc$MpT|DpjKyVE(-<4y#f%OC&rEfV<AcUHep_x`h
zTsF@LSyf{F^C2m0<+pg&9x5kED;5*Y@OjG<NuNo7FfMyn&+qebQ(LA7YZ0uCIPZjr
z3_9#EKhOF61XvpES3j)LlhiwTuTpZLc7)f5vJB)*2=dv!jLP>x-cQyhUdy8@p)3%B
zL!5i`DJ_&^7tHM|aUC;m@OhV2qD_PkV?Y&cxCD!=-vP#dj1qN+9@mGQk&ty<>{%2V
zFF4x|di<DWP*~a5pRY_TONtR1M=$4W8n~WxuUT==tu`%^2w+6w7Kak{`jYPTA5(;C
z32<e(OcLOnd8gRiKd+$&fdKl#D8nO!zgs1a#b)g&()8ZC^;wwO9L_!UgHNClSCN4j
zRe+xI?P1HQr=C<{5;d*af~k^pgo1+bQvX}^gd;z`FsKa9tg?x?Wxr>z^J|twg~Qx(
zS1P1)$PS(^o3SV!Zsmnr0hvX^jrF}*`iSsG3pkT=QbZi33QEH*r_WK6uyWqLiL=!D
zbHy?(=J}6zLLx~~hf$tyHUXd|ef%a5@9Lq=Z4u2x)}bp8CJesZEh$@4a7-jTP|=_o
ze(i)eZleLOqZvaS5W`Gm*TH$vMkdFd?Ou30lOoJZSdB=hd6s5MZG7TJ=PnBZeT<6z
z^aEEj@F3GA4OVgNd*K+Nf@f8aGK6|0>0~XItR?YPx;Rt^xlLM+=4bK=dMM)tV%=v#
zP8GYK8ugimX|2!1+D$}Q9O|YaI3CSEQ0Pl8JFxDuH~>=Y+gpZ`Zf(1>xqn{c(Z09|
z3=#1Vck8ovL*Q)1dS2FJalon}*+OXvnyS%(31H!Ni=Hq>s^J&>BcO?r)BvMq18`%s
z*2;#C_17nUp09pvth~QU-JCe-d_!$Rxll}8gms?#YarbL+t5YPaSvZYims89vY{Ha
zON-YUXaTJ@I_m||3(h`Lip6U9e_X+K)iu}EQ<qYODXf@)y|1$0yO5itU&b?^CF5lO
z6G@I+U(V+KdF>Gedgzf8ycTYBCaiyeqV1YE{wu|Ktq%!h`d9Cvn)xK$myaI4KpzIh
zyW3QZ0>3j$?3dSUfrI;iW>DD?A7^{ob;5=Ei{kOkiSi!OYxN>hm>*mMCpV1~AYBJb
z9(JF*^BNWt;!BD_sy@CJnkqzKX9J$&7frZl3O)UG2l}*QxSbD1>TUNw*TL|DJwt)1
z%f4=m88axxKRs;tB*eo}#4BZI4B6a2ulyrG0NtVABni2ks2>jFJ7{}1Q_DMfsIX1D
z>gFO7Khu+-+>~P7EUBi%?z<tZ{tF7S5%T{8VfY%`SJ}A7MYG11T!pl8Nx72jOb6T2
z0crU>aBN(xENzO#9eCvi%t8(DfM;yAnni=j;1*c#bBW1c96u-5Yf;rcm}I@anef8<
z;UmWL<0jP;Y?O)#Sag>wcemPt60I>=1-3)~f3!jRbvpsLj+p%CC`{%>T!LMdUI*8X
zF+LC@Qe&6Cz}f=(<>Yx+(}Zr}x(t|nTczFs$795N84OhWJ2<xb7E?hwmQ6XS*PLZH
z5PAzZ`Jj}!7)RZq@4UYWIT5(Q!XzBtJjeFI!gL9w*w3(k&*C{`Y4%EY)J&zGNo6rb
z)t>#n;+Wg4?C@vaLE6DnyZF5HVwt`>|3<d(0Pv=QLyZ~-s}9XFe~(NsSECN`&~{jq
zJ2o$@Jt>^68QCu8n^B<JLK=IXwXyoXF+~&I--Dv)N1TSm)7&K0uRiY&Wc@wQ?c7P5
zML%CQ3lhG~(inrQmi47S3i8egt^mC*ZfPPxCXH~#nYW(6d2edSW{rd%rcMfue7gk|
z=buDHPP|mhgNNZ2l5_e#?1dt6LeB<GH3siK^4wE;bOmS9SIy55J`u41e_cJDA2EHR
zWCnNE7jgTB64FiF&wcNX#f#^I7lQs5{c5S}V=1~PI7Sd%H<XZziL_M&a{m7jWLDv|
z871;jJL^|B=ZXmEe(Z0+x|#Qv&D7Vbv=Y=Y;)W)u<eawY;^wtLYNIL2Y|9`j<~DI`
zU=8T`v&yu5!=%itN-pZ5rg=+aUB#bRq0YX`>*_IEnNaqeM9b6quDJEQP?a{9rD?fN
z8Iz5=MvLM^(V{1>PA0+5P$*Tn$h8&}S^t_f5{6S$&O+*XQc53`@Zl!$i6)A}gC7I<
ze+AE?vQ#WO_eg`fId?YVt76tuBL!}Rs@xEDXB<+vdSo&{_`ARnEBGtiT8i&wG51KV
z;fZRZFO5sQrU*X$vhg2aFnbgDI_yD#Ei2V?sQvd*NW#vY2MmFEdI(->u*ZhS=Kgt=
zm!tt9&ozKcF4O5DpJG%Jl0Jg`y8Ibtp|P%g$=X?ChZdsZiH-1(H5PGj{4TgdTsXJc
zh(8g@!|<)X{ryG^cX`!JaR+=!(c_;W=upZOf_g)Mc0xVUHEMbaOmY`PfjR-kq$W;K
zzA+HNz@D!8fJDDbw@4Cr-^aH}c>$2zc|p*5?<(k0k>mkugA$=pL(ELl#RelMoF-jv
z#fHvhbN{+-E7C(<q^YT%;`!FIg`3PxlTwcJEiO<ew!5!iTg00Avns)wNH$^z%5{PC
zBAD{uEeK&`{DlX%@he}>jxrkJzyG=#DFNXzf`OU<4ahV}6;5oU(MZ<;BfE&c@^Gxe
z2qT{(%5|Fg(h`Pc7racg5}v7YTx|d~e%8i-dZudV=M+ZAe3URG*q*3rvM<87P-7eq
zj3gxFu<_f59%OU>y6z|7DeKATx7cNgz21{U;m?96mwYaCaK5Wn_`=ka{naL^e9B^G
ze`D_sQ1q5Wx;%$f2?YHeUS=+vwl%eE!?ZWrtXjlaoK*{iy@<==pfL44$kBoIP<5yo
zzIGby(jW|ZR%v~O65)AV)hs|fjR8Z9-ECb~C`yIU>5#%jD_=dQHkL3VJ6su2DO<q>
z#sRp=>?n*Z#blEbXRl#%A^G>fZ<F%{`pf8JMuV1PyX?mMO{P~RJx@`yU$W3VWi3P3
z&x@ks0&SmzZ-D1~k}A3&C`eMR_!F%K*}O3)Kg^&g#349^6*s{i@m(k?1rjmQK!*wD
zK#q)yk!?KTBVe}yCj)UuNMqyQF)$ubr16O9vCFZUCNX!W9bOS)3t+8A=Om5GV7<7|
zvOy!+i0VAdfAlo4%3lg!DUS2^WDp?vkDxPjE<rk4l$1m{L}8uV8ujNlc()mlQXCCp
z%G{YshvdPDXi20vAoPb6#UJ@l1y`xB1Xc1USPQoGH=|xvIbSdPe_q2#)5&7^)-ucQ
zo^+5`{FG$0UmO9sHzvx=DuB~sKVts}=H@gidyIq{)DGAh>xeJcd{w&+r#$6Bvcj+Z
zjETW7CnyogoSy^BF{f-u)ggsLL-77DS7YO@-J5L005GBvnKqbuZc~y5r~2{SY;iM6
ze+;3j^PrwpCiO!$<ue+xw!Rlnh@I*Gg}s3<G<i_Nld_%>$6Jv8j0jiGD}PlaXeC$Q
z099ag1p^H9yRouNjgdk0ywYc7rHDlr$M%rkmtV@^1{xe(q?+jShy{Z;uId>LDrk#r
zBMa4So0=tGAbo2-9rS~%fu;$(OFF`C7h08!gwYNxdLE8ao7k!j^=1$t`OjdR<9Uv&
z=ocxw4<{iw=5aw&_KU80Z(4Ebp9h=kn{9)~o!92zhb5kDLe+ZW(lU5AWHDO=e?x*Z
z9kaIkORKbZk$K0xA=i=L12HywCJlf>$TVJ5=NCK*^f2M!*n*V%!!}02jT?d)0aV0g
z6yvUJEMleE(&K*Ix6azv#CiIy1eBj~^}X#OC3Rd0aYyNwVlD=+RPmR>hVf6*bBZ_4
zeRawG9D?}Y@FZMj^vWzBlZ}N5n@2SraxQ=7%~$ccO`PGa?SC1o>3)~kVuog7=$EjG
zP<08f$rt|zAS1$_4uL^&by8-=2r!8Bi)Z;XQlTw0)SQA3L2u_HUJeu`l$ImXY;g!&
zgj-?KR-KLVB8sk^Kx`V=Wy*ogdys8w4e9(x)?(_YeU%vE=KYicUECB}{9rXEGww}>
z>XE|HWf2oo5W@ci*YKm=pFNDP9gUW#EW4g^Z?rc(?OtC|z_}a$o3U>waiH$@60Odr
zsf21sNgEoCasDgF`_iQpedC|8CgG``b3YtPl_JKH)W+jL&h^e2bS*9n_=I|3t{y4!
zg;eIHSkj?L^SF)&SuWNZZOy-*wtq+`aiB32Y%CYV8Gd`Vm6}vp{Z&a$ngyda=&3ph
zNw3qe^Z2xtTvblGtImZv0OEfH;lYDm9%f7Nt&l71WD-s9N|TUyR8bQLrt*LOeo%2i
zIpScg!Ap&an_W)Yo&66?M$m?^{A+^zm*Zl==hSe?d!fx>Sy}gyBC&#^&4PjypoLx*
z$F#cbVg5S6!&$;ikA}hs)CX~D8k2W~6w+BJo(^so_RMX^A3BGh_&yh2o;zRN#Mue8
zB$B+HjbrWg8g{ozBe`#36r#li34a97rPG}Rt!&r%LArDI1qDxEsg$IXWkq8qe85Q(
zvzjTL^%PC4sj_Dk-?o4bjGDu}`X|nBuoJ100GRXixRUkl%NF;YjHaOXv?lf|lzXWM
z8`!Vq>Hq}Sgi*)h6a(idt^0-si_7C-1j6(R)x=@CW3NU~qhe_c2yq(Qc=USK8fo&G
zagR=&iLC>+-bdDM0$0$U8h*VIlO4V%`){`l#k%Q3$=yNX_KZa1)g20YtATwRW7nGl
zu^Ko*1Pj}ZY2x0|%qB$>C)aj8y|^-tIL2uAn~lxS(7cgyOrk~@Ce@j;Pv`gRnP6sH
z&)ksO>%puC%DA9}b`pf9SpW!KZB?!dl-LI;J3)p~W}wn(aQqI0q^ih9LOXp?jk{Rv
z|9XCShbB(QE5y0kX9-+ecg@cUp8z{fuBiO}Gq?>2Y_oxPO@eY=RqeZ8Z3_`6)6_C&
zk7>K~o!7+XCAFVw5d#kx{qp7SX<s;`vj6`<!;O+M4iZ_*h}G5uwZ6RB;?zA&oI<2R
zACF{5;<6G1qJDQ$e-_FXWnnU4Dinpug~#h_r~gE(8hW9s6@gY;8ZTxeC7n9Y%Y647
z*2=2K9nPpd{Q4BQf3X@A67uYieaPctiurK|7%)WrS1@{KQH&pF6K6RSSD3LXzT5c_
zo(;ms?co{)@}sQdS)D7C@FquK8~WE0(O+o7+t$Z+5Xn2F(i)RyGn@aGgThF<@c;Pw
z3b?A4?O{Svy1To(JEdD1>28EWBho0KbeA*&(%lD;5D*R}-Q5ks{Wf~<d-uNod*AQu
z-##;IR?O_#duq*Ev!w!j9gR;p0s38_#rTycXZK&MQi6W=PhG?ug8qO40}IkmzY{~d
znvApMr{Jo_FI*PDpN7rJui;+j6L|fh<`?l3cS$Pi89=K8n9P)IaQzGV9|5g8)q?n^
zY6XU?c7{%L1y7X9P^1_zK;Q!v0mHsSb%yzG@sEQvxWL{Zy7~Xn!2zuhvm>xT_Bx>)
z$gA=QRJ9t=65LKs0<Jlp*vd`=>luzwfGi3uAS&7C2tbqUo{|)3o<v+Kz7S|Q1`5LX
zTOcq#nYa8hPYy76tSo)P`p`e`%+>i2CjJ}YEBc=b&?g>9q*sqmP5zYw=Tr2*UXr)=
zHf?_<am_z<7XQ2=4VAg(*?%)XSD=mos;2?ak^U#zpHwgWfELEH;l@S$#{b81J!cS5
z+REie%U{XDKw+&00ZOQ+=!?!L=(pdD=z${seDzqH^CW0%?ytgL0q%SzHJ)N~H&28#
zZvgQ~0IJh(jEBl6mFI63z@og)@-hi9(~4;@`WNs&19CF!f6gudzf@oTPq#|2e$QUB
z^q2Tp1z@|%yi>i~e{%UtWW02SW3tj=tr5J-HCa22@TWhZUM2BAA{9IlND@0WOmhK&
z7tfxea<o8O?4<uYvw(6CsKJa|>!<%K@mIekwgSTVBZ1cP=E*I<6Xruh?}ldQ6*ll3
z@2zsYe)0X4@K(7oDRl#|cX9dx+@DbY+x5FU_>~m*`{Vrwn%cZw!|rd<KPO%QyY}Xt
zhMxU5KEJ5k=WY29So3J!{HA!i`;NUDRRTU;pwR>}0O&y*T55p6udX*<VGfwh$o$UO
z3!5i&>R;9S6q*JK^z=(r0XFaE1vLUZwltqmDNq~Mp4LvTwVsl%(XakmAqNCtiI{X1
z1CP_tCFPgA->m=h{tUqUeNplJUo`%uIo8Ii-@*stW!-@?J0tyHv_ByUUh~2o8qNwd
z@GieefXZr%B_0E&M8AZ5d<h(1v+^YEsrLn{{EcZm?XRgh5bb;-A^eN(zWsOT0i6|4
zLg&m^JzRGG$|e(B+u(=iK{tdC4V&V*rT@wcMSLK}7SK@3|E~;E{8K;tUt`TOfH?=?
zL86fY3L1DF=WXBoSF|S}FzLs7GjH(*3L03<0p5gP*KcfcApA?O4f8t=efDhF_ID6U
zZ{DdG6)2L+q!vJO*8w~QC)P$o|Ayb%bb6;;C>ZB?mxNKxlliVcX`cSD-l``7e=<MR
z{|5Y9@b~ll*VFiK0cj8b1qQFnK-&s@U%#IBpPN(u8@d7ofOwS#R36a1@3OXko)iD8
za)2T8?^nhNsOMk9z+b&BP!@^eUDH3AeYg~V?BmE*I|#S?C2H^B2#IF)81Tg=ihpPM
zME`>0BO}cR%Fd1slA7Z`^{2n!G^#FpR6tuDl=?L4`d=5)|4sr(e06|Y$oZY)L7I3T
zpoZq${}(F-3YCUg8a`mbpNa$a)Xw<d1$_knl25DN@MmNHtDglVr$Pf<fALHI^<1jZ
zRfEH`gML$fc?Y~bz*dYKV?a~&G!q62D>(@CkU)QWN4gDssiD7VpYD=0TECj*_uCu)
z2L9sw_b8x4{d@F3!U-3NfQ7(c*|wues3LZ%+x-uuzeRbR8ot^AYs<jO=TCURRl;AC
zK$d@tLAq_2|23eZ!1^ut#h~I}Ifw!(5olmp#h`KiO-J+mol`wJP%@>=hrwSw<YvPa
zXkfd=m&O40ItBlhj`U3J=Tnr>bmQN^znK3E^7j8g{*?p-A|(nNCV+PE>9-5W16(h4
z{2p8XlKr2wtxw-)0n2X=@Be21aQ_<}a8*A$@k9hXk^f{6@>d~g`v08zJpmqQ6AYb7
zfcm}|=KtOK#Pi?)#2;Y)LO%hr^%t`b3iPjfpQ0Zu{tf(B>c0Y5f8qZN^7jDs<l&Pm
z>ZjiUFyeY{J?~uk|KUael-Y&rPXq?DKVQwK<(elc0)L(w^5WUwMf?u?{TA}j@Z(oa
zKgAvuD6;46tj2&Q;nhRKuWWwAD*(`8sDClOX8HyDP5)K_t@>9q=g<E8x5)pvQ~Y1S
ze}^P~bE^HF55Up_NJwp%_aFQZ7JrKxoCC%6`wJl=?l<Yrnm@Az*a-n+oqzSUe<K7I
zCjJuh&;LgSx|j3AfH}<X-z?Ujte$8;2LA^Br7`%Ggrz{a`V^qo{2S(z(0^Rd{u%v`
zR2q)`zl#0y=>g$2%$xj!{2%xqSf4tcp}!Ci|19<SpN-TDLq{XaCvm^K+rQ9$WdJVJ
z=GTz<ui`!Z?>8uLa6w35)Se=DCx6c<w1fDgcF*4+K<1FCo;bq(4fv1DJ;9$gDE)sf
zDi^>=>30sM05m$chI#k@jsKPkDDC3E7>57(MsNHHA(*$@f0Fe9>FNH@3))2F`0pis
z3iD~cfHaKX^8bd9{evPk02o)p{T=k|pA7$=^gAs62N;S46F6rS1{xL?_8BZR^wS9_
z&`_9^oRSzCW)vK562TwU^Qup}zpt8}x&o(?B0>X5;usGU9%v~<`<_i#aw^>f+pZ3p
zp`Dl<5szw&$nG;5#zXH_TC73Rd1EtznS=vKmUS*~b=LG}3e@>Ys65TK*oaSJuzrF!
zyW?by1wyN!xp5;|Ts`?Vq95rkF123wk{zZEUB@~Mw3ciUD_Ps%9<SAwrs6srPIsM_
zraEJFKEp;iu7r4kF)G40M=LmGO&%-ai7%QMu~LPKpJNPa%-N$)FA4j}A}OAw-yNFT
ztHUqSrkj{$2c7tsf3+eq2F9}x4|Pl0oEX*n*E73xR@3Vd3#U-Qz*)c}O@i_mDIWsQ
znnWn|%%XQr5evl?ylxcRXG-{FwWT16Lajli-N4*#BGtE-(zS6PLRg{PHDdot25+V)
zkD1;u<2_buUOYqf4#|7%A`CY3+sgWFYhiJnEutgxvGEn7&W*zhtQGd<s)R!Fwp_kO
zM4WM5Bka2Jws$5@?4&|_)qEElM%ATe9!}C&{i4`$<tl<HcD?dJw^-&p%rn8tQcW-C
zqye8r8qb&Oq}fpAJ^&}?W+V}mV_n|qhc-r*edt#8&5ji(PU`HT1bq`TyE7W4Kwjs~
z-g4aHeV(SJrxT-ng0B62(elVXXybF!iZbE;N3Rs9`^#2+n>$$dqP#iuy!4x_Vyt1P
z;>tJYB+B~^_~BH0j95c9r16E>7@;l!s)sL4uetBaobycPFU0)VyaJbQ$!xc;g&Nrw
zU<XR5c_dqfFXtN|ZTZ4x17N<r^m9y-A#J;2X3B+1eD~~dWU9vZh)ry}TFxfSdy?e~
zMEWIN0s_Yf$m&W8`kg8l2(vcKNHx3GEA2#b`IgIGosqeLo!%zn0&?yf-Ev<Uv<3wn
zg6>>vF!l&ygPYZFmv>#Pu}B|*2^CW#l<mHD7@9R=66=sw=+dUayOdo$y%n-B3Kw3y
zFXlc!hc6)(qd{j%It+>(^$~3aUi)tRJ`dO$8E<T`t_?#G1Ch4mXUdGtSVgkrdPl&`
z4=>k-S32|XZ4@*QXFDF+-)|hx^woqcvr|n5kbg`SbL7x;)O(4sGn9b5csAmRKCT(l
zDbrk4%Ia6cz<x@8^eP0*%qRMqLK%XHk-2}!G{(PViD9&R_xR=*<p#EbaODB$7=g9Q
zVx12ghfGJC+2|7^j&87{=s60ZjZrJ_@0AsI+o~qA4m`wq@ZmH3Tf&McPNFHp*^#@N
zw(txDPiOIfc^8GfbN&J+&j_oP2*aVzzTq8@QtSf7dkj>i9m2M;7MT+y^(C)Xt4UH%
z;`g900wG_KNbf1;{V{q~5sfl}$|h^=$QE@1o<}26PX=Y)KYTW;o-gE@I&QM&W$(XA
zRQG*zrA99=gF_?`n!JGQv1Vy35YqWxX<wo4XzylgiIrPf+IG0AFwnwylj@sPcdhaA
zC8v5I;1{yDhGMSi+Si@4-xci9ktnO}jGO06ep?bP*^vLL5j$tb>lH_9y^Fe5{8(BB
zFfvjzHzSQ~;8Ox!#G_dauHPy%1hn}Y{RpL~ZkkGe6!<I>l==}2rzop7QIX5{Q9BxU
zx}={T#}At>YJ?RLCFpdkaB#0qNkhhIU-|XSPNN(6n`XDK4vJyo>(&wdk2{=QwDvzG
zT)fp=2NLB-I(5F?P??@QAf?;9&pv~c9mT?qNp?$VD-w2jY9_wSlzc7qe#JV0bD_L&
zae+eE(~N7Nu~Zf1uvZH_47yW%!-f@U5-s+%(QbauP_}&Hpu;NJzQ4XeS4-w>SFdWu
zQF4UCTPRh@Ao*wjC|SH<t;azMc_Euwv~ad{#qz|4>}t~r{K@dpdecsb>&&iV_2?Q5
zd_Ij{u)0lUn4@SW;g@rm_C>6rxTLdKz=nD+2BWpI$UWJLL<5CSHd7{F_$Xs+r`{OP
z1NktvBB};cx#p~iy7w)?UCFnwGz)!t@8%3LE62!VPP+$ntr~kmjhXSRHc6jPM@!UV
zJIDqZ8Th3G)_LTyHs&hI`SXk1-0a*d-|0A&5wWr3#js{Okb2IwKpnn2`Ci+VDm4f4
z<~YvGpGW#i?zgieAxJUZGxXieXr{NRh5;oSMl2VCtfjKrpOiBsa>f3D!fZNs?MZ(C
zHCsJW4MOz%7q~^#9>hO#pzOw|G5Q24w1k<pja`f=R}AoPPxN>^*Mkw@JA@{tOYS$Y
z0Jh^Rtt?BSLwj<vSaG*~@$|3sI{gDG?s+s?6ECw-dz#|Nu)KJIU;{oot7nTaK@!^S
zj>d;~<5rs@3G6E!G6rf~DS}D$cZK*F4=U_CE?oYO*UEP|>)qe`jxD*2`nhEq89=hQ
z-h~P6RHvz&6SrA|Ad@wAEz4H;IcfUWP<4`V<J2XFV4;{fIkAvAmZ6_r?m3tb60~iP
zR7=W$SE^-vSN^->cW#`<wNqXxz*v4Q3<g~Pm<UpC2eA)SaYI1yAQBa+CLN|fpk4?@
zX0GRzCiR#Q@uFz#lz0j_3-jSz40=xr9088=(vc*kD_P1ktO+<-niFyFl!8k&+?S7M
zzC34kf@UYDhW6tYFvo}{OkC{iN8t96qJPcF?%L-U5gvh^{vg{SWMqWZbWg#{(EbU9
zpOqy01N>DaT?o3^R{9$A00_cTAtOeY|GWt%Jj?hygOJk0yabXKn6j6&7IxbekyQEl
zn6WfA#ej!86E8D&tvWN!-~ibJQ=~4+s6ufa86T`_DTrKEG7ReGI%O!Qt}SAf%~lt$
zbNCq=c8&^4b23o{R~0F^?JRRZ@4<2Rih3-e1d7b+<K(N7JcvW*o=cQ&sp~ouRTq8E
zgx)8o{x6dzA8N6BNrr8b_<lO@LV=4dtEJOCB8!<G$de87U&(H)IqaU-DXIrNo8{w2
zZ_By4W3X<wx0)fXRVb~vQ`z&j6uPB)Ng~f-?`($X3BMlY;}Ny`^Rn1mzH^TbDVmm1
zrF_l;2FZTq!s$8<L|@FRn2{3d>IVu=ZjS|w^=Y3o@27?GVs@pI755jWxUp3-x3=@~
z?zAcw+k9G>>9k*vtCOtK=!59)TAb6)%Q(%~Ez3JoZ0)}_*A@uMQGF>8eD;}?wuVAI
z^Rdz4?9qJ9lc)+3%VP*rl2dxhq+pta^;KMfBF*hleZ^O<pokJ5N<Q#KKQVuKiB5G`
zkOU(?8|;Ys#YxT9ZVoh9c4Z5T?VF_f^{&7vbAN=JBO8C>bJhl7GV+_#WZtDc-D`7j
zY7EE5fZqd6%8^Rc4`c}KT>9K_WdSF<iY$uC$YkR1&E-+4rT2q;`kVTBuBv8|hPyLi
zVb$k~hw2{qUTw#>Zwzvve?FU+GHr@(OW!jW3>P)T95$IHB*mQAF8u(u@Ob&v13ve&
zwTojvFQ$9wmw_00?^GKFt%UfOSzQfWr3X8nc?zLLcV8e93yqQX^igc8q6^v;QpnNY
zhD;Z*H}`O6au43T9!pK}ULMKSUdxp^JHLWRSU!B@aI1>EqSt1-4MjZ?KU&XNSl~*@
zQVGeXQ{cZFCdW)zg$0c>%rUS$;|a{DS)r)BEPSLTh>qhR`;I>(`Ay_8|J&RL>jJoE
zldnF-+EZk;gqm~~Y2>I_c8qI_iCL)oeduZ*&=^QMhwnpgJjI^{p{!<HiA%WWJ<srt
zf^>0;T)J|ll8~K+%@>B|U9?>&=B}Y({sHx&PqrOpyKVxM!lozN)~Wc>-8A&PpsEZ}
zXj$rL3*T~2bVX_M61%OlDM)P4yfs*`u=b6{2ua$4KP|jDt4R(L)yshTosiqaTbUDT
zF(IW1YubMEp~_v|MY4pK?rAOHjgY_)5cg;iH_sigKP>S+Uk7HOVrI|kWxEB+07oy>
zVk%Yl+%V+R6rpbI8Y0_>-AItA21F$<ZzZ@oPgu94;lai-pPE!&cY3ocZ$w#Kh3J6C
z=k5HJ5|?C?f|NJtTs&e=KiOINS)0Y3P|cUAX=U}4z-%)R;X=b}swGuwC!Z8%x9cyr
zF~9^tp-g#TMn$n3y?;Fw_xl?Utcc2!fkPA}zkH@_E9VdmG;_8x3bPWX1!4((t@y#H
zfmB*~ZV-wyFUqs_P9@?2&UdE#@+-jBXre7X`GM*5GBFCCRA&wPA$?Toj2r2+s7{|R
z!Vk25Omrsb(vhT@Ld7Pb?E`p5WX<Bj+0Gmz@{t9OMtzf)B(qq>KR!(x23m#PCNdmr
zIMr;qX|NQzX-1dyR1}c%#})O=MQ&C(C2~9?+W)*T#&cxMcBNFkt*wYhz>9F^E2$_T
zE6?~T)EQ|(LTQyiP#(X@anFIn&PtTT+)-j-NRdM`RaJ<)VtcH?fO`C$vb(vNZ!GfV
z2lH`ptn{3nP_qz>oxKoU@Jk4Z)s``;rBG_D8Iz>hnj?HuR8}wgz947lRn|zuD09VY
zuH@!>r9Q6*cE#He?#~R`*wNv<-z$Ufd%O@XaUC$2j-D4Sj(mi?Y}n5EepJ1z`E{Xi
zs7gh^!_^0))M){k$&ze_gtuMRzfEFN&U8B-8QLMILRN-Zl(o`9Q0SETk#?ggoXQ9l
z8gDpp$F3GdiC}TfkW^n#uWDkb5L)EK&`7S_CqjxKu;T5St{f){x4y)Ci)3pU@&X7*
zTe9owy_LwjAhImwLZ$sRp3tgzo)okN9VNED2e~uuP1?Z6HuEoGln{#Mner&B6H$un
zH8zvQ-7V9q*!t_5>jv^r6%oRElr<~SLLN|*avmQ_I|o)+uzQP-ohb74bG8Vsc>F@w
z%%np)*8(ul7VQsStRBJ3_taS<PR5A4zEQIS2hjty+Y|mBU+oUS9NE+zRnx{%rx8^f
z(GQ&)pT&ZdSn+FgGV6D{vd$TM5w68Go>LU*2wRaCylXO=PQ8rWwx>v0E_IJZBqMq}
zy+N{RksXilKuNi@Bu?g$wGvA}rfTmp<s?as&F8Eip(jqXQC&~QrRC*j=Y_*uWor6%
zQDQ!pIz2!0vSV0dT3lf%zqm*2G$wo~R2S80h%B(mi38Q1xu78aJn9WKyDe>oe;!gG
zkCI=!9*LUxrzv4>3>LvONMB5s0i}P)#Ov_EXh!!wBnx7h>*Uy-M7n&Og1X!-RBM3;
zc_y?I9trU{gXp^`$#z*67xy=rqHK$!bdV^)NPFuDQHQK|sZRHPj^7JM+;2Qjii(FC
zVaEKWDK`@75U}<~ayzKAE)G7tTH<0!52X8?*q@5Z4;A)SJ^3D!ndf1}L+VwcJ5eOy
z${bUjdtyyU0!Ow;2#ht4`4ILIIoLHT%KcQP+Pys^r5l$u%^T_K#mpKAC5>`I3!=1i
zw{^cpDC-DrqH%<v;ikMhyz8V!@8jIh^ROHzFFZtk_TFrlqtb^@rnQr!EoZWi#Hzbr
z<XLI+s|l4)@R}i$Ep9Lc;}T%qFDs$`QgA)9A{C=@@pB-mvR-XFV1Y3`=_J6MK{Beb
zibJuU^ZQNg*hmQ|#jvhtL@^Q<tJamV5xX%<JHfK!#HH%pm+r5i2YUL@d>3}b(w=bG
zxN?ZTfCra3%#yjj-Ie_FYbmTpFR9aNM~4ef-8y3PBcyjC67r(&cDqOH%?(opL{Uh*
zax9V~E2MeA4>F_l?gHrgutiLZm<iG_mA4o9sk#emb|bA-&Yzr_3R7|#Jy8<M%2`NZ
z?9b|mt=>0ZwsDT#Mi8c?UcHs0Q;%C>sL<x&M9&Z7HC(SNNEUG1H^gv*c*2h#%+GR0
z!o<mf!(AHCoEALl3p|k@C}67*nQ&YZ8_^!5`EFB_zw8wr@}dBH1*UEY<^3-wjMKUv
zSgT^*n%RvN&Smwz)@kTe`)p0c<htMVK;P2ZB_}LOm+qa2*e$3NOe*XP*Sm5drF+h0
zz)B$H^QMtlv9+_@TQb-fo_8N!Madpw3GQO`A8y(h1fforI#^SudEyNumKWtlMLC2}
z*oAiWVvwx|<J)XvBG8G;LpSlWVzY422fY}f(>WP6uO(Z2n`-*L=FPNe_(SV0<$(W!
z%vTN9<VKE>??Yav7+Jh1_By2TkWKE2f}*vkxbfTTZ0kf~fy}mHIezYT;mE?YFkj_6
zTmC$eotRYw?`0v>=Ggk_Lb+`Z6xA^d3_@~<EVj(X*+oNBB*yqpYNKsC`DoVl33C>g
zMY`ujg;Zyi`EPxKbtNq3wa!w>h{9{(Gr_g>p}tIPnCi^Eh$IvJP94P^f~l`Ms1%9A
zF^LIvI!Oz$@^!rYmi~b9mSLAp4KBWytpqlxREO-Ou{MoTm9+M<5kMyPa|v!DEXx)^
zVLcp5oe~v}QL1rPQ-WcV{&`iO+}?SlhSR=OQ%YuTeaw$shJ6?wTggdn#B-b=AIY`i
zGl@OPz~#Q7)sHeqsYHz3eK2w}p`5mUu=Us&DRXDvWoR*#IfPL02mq#Gv5KNR>hhw4
z=2PgG=R`}(C9ppINL$9Ufw8S}xXEUKFI%w;O}-JFV!M~K6ZX4xrF}16I~$5OziA^m
zvMr&im^pv;t?(7r=MwR@2NTJB=L$c5rQH<zw6`6!t3RxSze#men3$sxByt`|wqD4F
zy4TX2jC{-a6l|3jGoaFu9I8u2ifDFq4(eGGrl&-zo%en{%@LfIIcI@q{Kbj11!qw?
zIhie2Pnmpt^o8mkYcDp-MZNa7yxpP9FJ%Yese6{xEwY6Kaa_kjL<EBIldC@;^L<1p
zKkfE^pTcm6>v?6o0>;D;&Hb|HI5axbXt#(eW)ZC%diJ`pH4(M}8ExErb|QVuc;J~h
zVUk0Qv6qyZkEA-0fq4n>9)1LNbWRPeNPJ<H7ELRh{wIhmr}8exPQk_}MBlR3O-<2<
z1bEm%I=*8MA<~aqL>C>!w~-|~TP&ZFe~iwC@Q4iHjv2?<GU~S@Ab2N7fyE@5P?XGV
zq&+$Y_I}o`R$s<Ii&;O=Rp=q_+a(tfUp{=|mcRIUE0Bp)d*NGayk$|^slzUU9J^#W
z$DmcGD;#uP6jKb+c}3I7V=W|BHcTW06K6H3jDSicuB>sS1UtejAEU&}?~2Gws{Fd*
zn+K=c9I+9$2z?@TGT$D|*A)GXnVq=TGP%Q8quJ+5C8kx1X!`EAZs@Fjj<Bug*r+|Q
zsUXpY@0u}OhPaH$FCe)@*~S<w9;ly6;!u`#X*uU0t_^@06DV%{{tE<{TR8S$hWdSz
zDKxma=`L-aSD&VnGdB%04Ypr5+0D3R(Wq62bzVct?H${L>CY5*DYW%KE^j8Lva0`j
zInCtZ=H$K_&eR~Zi$+1=7C2bMhl9(+6}I$=%|irAs-O#eOTlzRn!CvoK?5$?X*NYF
zhz_1_DiirsVoUfgOwdBX*i(n($h_k?;ZZ_v`~dWvq!**Vh&C;u;$odv`71%OdpnUe
ztuh*y@jWe@*XlWHPMVX`aCvny(Z1Z0xKBV^o8(Q?s={`vq2S6xVvg<CxGyL_TOYQO
z1S}thOvgJ^X0BV&wytwF8&|UxR->S6FzyV37W*`@1{d+x`KzW%bB{56p&@M-A-N-l
zZg2z{4kN|w=o8K*;gQ1+d6C;QODd1lx_7qkg&LVUITFWr^RH;za`NZ2(zF|scAT1<
z$`*#EHiN?_Hy7sA!FkQ2n=f3suiv+ljxrZ=Vp4Vew0bqQ7P{OxzZV?Pnr)jck?oa9
zmJ@F6D25@J*u%>f67dqjax5_N1(67Tn~Tczl@D-qm#x^WJ2w4K30I5qw_NRU4GePJ
z(`8V!H4(O{K1L7KyR;`_l$@R8-~1KlM_bZdB^Qz+U;Dm9X~$|V)l)%%S#S$!!I<bc
zXO%Zh`8cq9nL>D}9DgrOXJhx8#SU-(?8?2Q;x5am;lz(_&VT1cS!<E_>l>Mq0}!V?
zZc>#Il8X82M4x`(iOeB2ahF;Rib0ai<U2f`0eV9*I^GNfL&(re-_Mun$pNjx%AMSA
zO(?#^CVCARD=EhW&3U?VwPxjNPumQygP~VFSAv>K_~gjp&Fu_kM$~chPFeVUO?@b!
z+gEbk>|iX@5M3@`Wg&I%VM#Phys=sdpIg!0rRhJ$kjwovmv0hZ{C;`z?P@p!MNEVZ
zuVFfEVDy0T9`w2>RbH7yLby9`Wm93ljen}xQg9D<{k@7PivNRFSE53*E{dNQOB-ja
zGzV;M_>OmoySKdH;jW~iPHLB+xe;eP=7heSaQuWZ>qgSp%zgmAza%M#iK7b+1%o{a
zx()s!KdZfE#!S^)ZDCKwBFd~&7R(=}Spl^wLrHtqo~*NUxzoj|V^CmFbznBmg3Zg-
z<Zn_(HxF=qS5}_qw|i^-NBk(T*U`yy1wu*Ek(K;lH0vn%EfRu<NiE7$$(mvYtYS-e
zf>_h4mtfGVqLY5JC9k(Ay2Wtz#L;R?ObrY937s{~0)*#?q#gBM^12B(DF-CV=prhw
z^J--bmgqh4K(W<i99Fbg-MP`%_|eHR^7$T`Uyff?CGXq>_k;v_^Gr!&_8(v__9+HX
zO44FVsJD$&Z9+aV*&BlGICrWHdxXOdfUXcLNu|6-7S59$8i{*E^Gf->Im|+|$Zgb-
z&hkyt+t)U?PLb>*_7xcT5i&&C>wxj9a00i$R^HO>=~ag6kJ@7}tP%*=lZT@;%toif
z06M<-R2r3$FKb9UsWyF@kXDm@+OV}YbsM76E<f6wI`Bh8CU_ufUH&58sP~l@6zulg
zSFH}SH5}}VC0e}^-dLm?Uqt2BH@vLiuXtAHcZ8Ap3Fu!g%2xJW7ph4Og(d8>ixx8<
zse)h6&$KN#D4IdcF%B;c2+T}&glz*)S)KoYvNKCV@`p{>UF_!BuOyy+<qevN+P(^2
z&k6{<{w{BJ9%+9fbKXRb?sC#!TJjRx#aQ1}KsmJ$MbXxy$uHy&sO&|IEW={E$m5-Z
z0Gd^JDTE+W-5p*sNTRGQu#UY&k%JviPx`Wj07Y>Qbg`Jy)-L?I*+Mp=EPWNL_RfLr
z(R_h(x6wMtaXou!`K>`Vj{cM#m9qy!L`5&N@94`{Sam7Q&p9-b$t9<)cvR0S(6zbG
zSrFI)>5=mn=lI@{CC9Ay;*8Z;`?-`ktI)xP5|BHWxsrX;NlnD0*ioyw0Fh$5YB$4f
za_X3InKU6XpA?3AFx_nlrvG4Eapp8aQ^VBac$l~`8H)nZXulS4DWl$y;yk^mpNrM=
zVQwF|?p1hYXz_zP1ec?pqI$(VuR)ugUJZIA2UlEywU_^=(%kyo(XrTl#KokRFavd&
zD-7?|^5GO>!0J}ccwY{T)!9XB<$6PVAH9ZeTlbEvp$4HYun$^`2V6A5ol><bM(XND
zf>B4ZfFCW8!ZOG@G}ERyK$b%E)^7H#JlM7kIe50$6Ek<R#K!T##qEGYQ9o*NIT8&_
zvSLSe>~bPQ%u6(h^!aXdJO~=%CiB`Z8reM{##!7R;=HKyI2XHLP5^;I40vDzv4-nN
zHd#U*-^#NLrUfc{HodONoRua@n&I(D>XnRgj|z85J8>i+i(L1$Ae_UY*r?IRHs>Vf
zl5Rv=a-j)xnAh8*xR_P)rtK9i6nmE*;}TZ{(It)=TG25j+bEohJzLvIDVEuEV|VQV
z@xE!=y*$(h#g#>RLjoqCoIED-db(>hHv{RQ0`BG`um<w*c$ouVr|QxX_J4F~NTY*A
z&^Q9iO#42**lch}x&LUJT2YkQU5KG$$z-iIM~P%NV$?A#p9&h`$4Vf!CF2)N?@JfV
z5$O@S#{eAZO8o%^I_Lk;7%+B<gq+`T*20DXC7sp7-~L4}Bx~#E2bdFa2I3<^g%hC+
zG^?cDm<7+cyshG&ND^=|Ff~-f1ghte2RY;h=uRbx3--%(xpIh=bzh%hJ9m$8s%j=D
z@#mc0i781dQ(V#NWsgCx>9unH49w7SH(D%WZj*LM+z@K+F%qNYoEDcjW&NaXx41jd
zIBGfMN*6mQ>#5EbbQ5`U4uLb0|3*d^+l5rBHkro8ij|6ayswC{2fUv0VA|V}dh;zs
zOYZ=B242~2l=-%v>%>pt!YB5OwxH($X6>^L+7gGj>pOv`7+Pvo$%yA_cY7FC=pw$C
zu$DTjdq>8bbMqCW;K2PEy^i}dX_3IUW=-ArtJA}KWOz45wP%$LRa|Yo(aLoeyQa{k
zP%ri%km~XKS&KQ<UDz_IrD(p<NI{KnIFoXV0qFdU{1L^khFsr3@@I!WH{64YZA1JO
zArrofXx0PMmV|E(XGSMS<1?B=(AJRL2-JLD98S$8FG^TTbEi0Rc4$7{49|;WkS{3j
zzFFPHX=Ru5Qb<@6^YMvouuEdOdZCy^Vl#*L$Ps*OJIX?ohOkLG5Sd?rS?0bV)6M*x
zGm|vM1skjfI8A+_;hkhQ`r+9DQ|_yz1-gg9SQnFWIbjMWY0nFad3Ug1AX-^Xl8sAT
z#itf4^{zaxx7=wU9F>oLh9W(R(ZgRJV~w}9)^9}Xix|k%CVdi7zPN*jDZE<3<NLbx
zq|s+8F`sY26L9$2F)u_a?Q(37YGQ1UuXlee^BQ2Av-B4CcwD=XIIzCRNM9b`$8eWv
zA0zc_Ud0a4Q{@&MLGIy7VxusJ8LnYEz@WvN5KPpyDXZ3sepf0KMl~u~Vp?R4cFNt{
zK!ElPpOvf61(Z6M5?9<}WD?qjwGlXQ`%X%ilZ{|zd_!?&jZZC3m8-V5@6LXi&aCya
zwe&;V&;ENXXi4IxeGJBNNTUeY4Sv0Xlfxoj;H}4Qn>Ocr$@eD#4*p6=AU;E=j-%Wp
zjGZ#%oe~O|OMwD<k|RSpfnE=&tc78a2lv<b&0%!q!q|xiWYGASKy?24`h<u|OI|Da
zFl+PAYX9Q{N#yj8elY=&2kct}vEC1WUn=mWs?DJ|BnZa_hwUJxNBj2O{QT#_kR;s+
zMqAogZnEKSQr&rFtBN<|c4>W{6s^j=IVMxxm>qT6TZY+`7<yO>ZPjq~X>96tYn*|;
z3+)2|lacqZq~ZGI8$;DeY0Z%l9%4TwCa6Qm!Dyjim@w~S43`=TL*o}8=z>B$Vy#)*
z+b;FfLalyMCB+#=;+f+oE*mK;Ce5h+0rji~SA)gbePw`~p@eYhS)m^$u1lme^VRpp
zG>eExtoBalQc~);NRO}9Y)xUttYhhUv(Xvd*KzRt#Qr4m!pXzn{)Cr4cX$(N{@O1W
z-+OZM;Pt3kueaQ_5__c~pYx#=KF=C%L{ae$SAckBPD#X@eWiGBXWIPuF83HNE37l{
zGj1<_B5T20UaaIxr7CQPccbwG7uEVaFcjsff=$ueF)HYRl_0#WzyrmxnZmSe&LNSH
z!vTf{lvwPEeEi^Q)tT~=?soGWKl0nEZusW|TC5e_MgD4og3TYo_Ki}P@nlDz1t9Xg
zF-bm<=Z8<pQ&8X)<l=gVwX4S6U*(j;>`$QU-#x;j7wRS=3F%%(De=4m)gVQ1^FW|`
z$rUY70JRv!q)849{W&VlxNgBbV5gRlqgPR@PTQQUfsUac;+48{lw1eHLCj^YfP7hu
zgrXH!!Rxk1|D3{sts!gB#?cp=V=|!<bx4P$ug20^I~&WY(PuhW)H-(s?73%tPBhg~
zU!7H;LY6ne$<|tEe0pGOUe(5Hh0r*^<xS)3q<R1i%Ez1MLw89^3YfU_k(aNK9I}07
zFx95k)E;=uemYD^tS@6rYe@1K3sPH1i+%rtMjUPVXFBA9d=bOuA+0W4f-}nW%UTd~
za5h@e*B9HmG4lMCzE|{gq@jwUK5V=8tpWV(6Z$1fEKbvFkqA+e>@tn3^3kw<rf?lp
zg^voRoo9PIBGh7ESE-w$Yr+&H3o_-{@S`!m#R?TVk^dmP!*m8cBH5s3Ttwi0WTw9K
ztisk!qMP<or?LPMl4<n^AQ|&B?3Rhkl2eG=CLd3SMLJ+&hgQ{MI8w1yr`A7@GgWT~
zRFT78;ciIjVvOEt8oMoG&tL)VrpeJ}%a6y$$B*@GBe-ZJ+>}P1E7=rpV@+#G9Yuta
zbX|1!b=c@^960e=re6gXzK`CkZ)zDS34ZS~4lYkp*K}nx{h+Dl)rebPNh_niM{1ls
z=z%iovZ55ui$J8=e+iS|*lUKe7?~t+C%T0ePVrgx%Yyqn3FDovaB?k$m%rk-js&*Q
zMRJA0ul@ZGl1tprpHXVOJnXKJ`9gtKv*4-APm+}umteeHCl>Dj8}u<8X2E-eqFfA-
zlN~&Wk$SPg5o?A(y)XTIf%+Yx!q9b+=XwR~NYhgN)Ci=u7D}|;Lvy3TRZG1<R#O0H
zag6>M?1ggK%J*}$${b5LkMupCv}QvmMXC9HW2V(O^Ks-kCvAhI4=fGR`WbEqKR*(c
zEn1XjDWQ09--Aw>;z_)u;mDTM5>Fcy-yL}3G>rrVig0rHqh!4t=tfQ0+%oa_;Yv|n
zB+H4NP$^+=TN)NkVnF~i%Q{J-B5p1srca<blV+0+mB*SCWPHl-^F+4$p%YSDIP`7k
zJS+RfyJULPU{&i+sY$vB98u~Q(^(i$uF97MbxlQDP-Sb#<nh8fKWM*I77bv5E$q3G
z5f$mRT#uBTOraw24d%{q=K3Fn7M?j>*1Uv!|3TZp6xc(RkF5R?I2RtKRX-xwMKiQ@
zjndp^$!(Rm-DM35N1}4O=v0{C_AWs`C3V47Sw~9Vk}GFETSx$gnN%|0nq~Z9<(9_#
z0kxfK>Nc^L+k8<@(cBSwz=f-N1Zm|)9P*GYn?FEP!>1z8!F*=zN?y3(4|d!VQniU{
zO(B^J&lO1ML*`NjRBFnJy#zORi>2Tbm<JwM4X;poLp|Kewgbf7hFH+|O#$dcK^Wq~
z0ZpWk33I(+>1NIA+pouEEQ)F2oVWu8gP2m7k<1KdnpI7q=uvt<?*#~Gh}KI97IfX}
zC{YJw8r1QsotDYv;OYre1(VnJY>UHRz@A4;u3Eae6u=ljKz#hWlkhtq=_cBhmy79+
zzJFV2Y&9m4n5>YS=K0c6TQ?bQ5-BT6$FMNOcQ@4#@Qy6~Xu{{vx4_pSww6W*n)P*I
zX|RXY_0Fayf!!M=-J0)?hMAWjc)&TUZvgTjq?-Sk8;T$QzGPM_S<_2clCG<erBNfQ
zd`T09kA9bEJKV6-?VzL=AW`ZhGY&aYE1yJOtaleK7+qvGk!KGpO^TsXgNYE_s}HkV
zRIwAGt^=>&P@^15<@3HMf9bn5J0-C0o-(3NlhYAPucB$SVKI1b#nL0CU2-&yF#JR2
z*-GS#-KpMpgC6jOtfgW$r6uR2VUK7<k+^-xuDIA=8WBfUZh<v=cJNYnQ-km%#LP&Z
zJ0F((H9JEW*ZTAZ@8DIey4&STIu15(P0nl2*%Sr2`$x*0Zcf0EBQF(f&s8)1u|xIK
zIVjnP$Zbh@JI(C5^V@}p01T_Cn6s=-rIHNFQ|u#AO3VTTg7jRsl&CpDiqDi0`$ipx
z$vn0LMddaMQaA2*FX&Mu5WZc+F*767YN44XA-a!l&ws~@v@pg`RI!%n>(f3`9VqB;
zaWIIG7|FjhjZn&vF8pf5C;GvO<C63>B?rfmX;v4%>Kd^cR!9rnfnSl&_2UFo10vgk
zj5{qwQAc4zEi1>U#d-zm)~7(Gi^7O+-PquZ5Le{^FlmwFDZ4Jw-byGOtX~*%uFZo4
zJ*c-agX>{cFBAX4;VM(%v9YPKiMRA?x-o}|dzhG-LhMhDISgGu8AHxE5UaLa<umW)
z-DZ||KE+QIFXT0O4(Tsca_t>a#J0<7ipAsu2Toyczd#|Pi(pi5JeaCznvx?$Me%Gf
zel0ATk+Q#rp=7UHcycP7{k6eL1D<_)TI@;xYbEI3^#ycoTNY~-*P=$$?&*cJQur9)
zgO<WQ771tuN3?v>LJ3NxQ6<w#{a?s#&RY*z(<+tqYzN?DGKg?9jfFmMS;HgXimT#L
z>T})iUY2%r4mM++a>c<dBXDTc<u;QyCmiPa=_zg3Au*T2nPQk6tdrVLPf!?I%V?!#
zthw5qni#Z^9C$~5k7F!3xQE)$Qpx&!Bgg|aw84lv_&6?7Qg!xrUxo<8s*9FYIP`k0
za7}^2!uDAO{`I3dr*#K<+xOwPy7Fi~|4UBh^*F;eW!{|Ec;Dz+BaZh48ur{K#I@?1
z&3Db0RwH4(M!P&)y2)RM+PoMkJBA+}11yI=w2J37)e$35V>p06FEnC=J%<srFm*MJ
z1;K_w`6$iwvI=xY<pw?kv8Xx%`y2Ch*xpOG4O54@osFS_E400YP<Fa9GbJqe$#xwJ
zU%sm2&i(_+(9aL|HnCu{qw!O%TeDH_$^<=u@6-mQ_&F!}*~p~7XVKZzCGu%1fA-xw
z-zjxA6VjoX1|@scY~KcRb!$|qoZ44V!ZE|~i{GJ~r?I!?=US|)_$v?LOU#TVDff-x
zD&oA=4Mi{bx_Mz(Ms#8Kjujkp8Klu)F%ldEFxPcX;^K`?GPO6+KW7$|f2+j>_(%Cj
zphn)5lF6ZldfAphAnhIbFu3o~Vv!EIYa#x`4jhB!duHVuD3Xa*q!}pm^MXrjm+LJz
zCI*Y?*LSIgaEllCe$-g~rj(`ns%M{S=W%pvp7S|?f$cgewR(J;v001KR37JUvpdmZ
z<U!}w=*Do&i^(1@#2YJf)9?fezN(3KtEJ}eAe$DMM9E;KUqI+Bx%I4|MED~Q)8DFg
zCI$i?rxrtv5kTCah7~VSnc<E?#yTqh0N%R*hFX+lOnb(Xa?YgCh{9&B0;yrSInThc
zv}TzAxQ>G{EORv1R>&*~qeo3kD|-}Jw6GL7z{*fsu0J=9C3VO%9A>{qjSF2d`Lc0@
zSaco=+<G@fv91PLWNG)>H(q2UZTV<VZM5b+>a!!?7&pH6Bb>SYQDD!4jn<q)+Qm|t
zb;e4@G1)^(IMWjf6-P$4`hh++C5F!2T$GD1(^^IP8_on#ISTPX%eFuI7Cru>SVQ)8
zTwQA?soLF}9aPmru5YB5L}|`1oKCcxzm!ku_2;4G(=EQxm`+o!&0m0Qtz1|nC7vHt
zlFA^{rG+?la(K%+p*YOFZUU^ma=kuOTq`7dhPqBVAYdNkZc$V;*=uOC5HVTSScae#
z#<e8IT46D*#wgYlBLUCw+lc(EHMZB!Vbq#qb+kMetgXvkV(?)|+mC9@bb5=urK4!Q
zo0#3ESDZ=5@N_Jq6sE(@{Vkav1Z-o{%*)-r3j%{5_L3&j73^RH-b3$0L0s6eWllPg
z=9FUClA;z(xB+^k8qQI41?`C>lDM)aQ{&Ll#h_=hftaJ4sZPe1M2$4%b%*D03|SM2
zcVxRAGG-|wq!}`mpV9QytulhW&F3L%7)Hb~r+cMa>VOK)2s^QHCcM^E=M<`5gY8S^
z@oZ4(%TBY$yoEs62g&%UVdpnnRQqLyPF?6yZs9%`ZTX1lk(^KivGt?;Y{Sx6b7~0V
z%H5=fov1_Iy*HPO_7hCc6Dcju`U}6W!Nb4KILrLvl%5?6Vr_|2Q}_Py?Av5nI3%gY
z*aVgfOyCo#wYh!2=Cn#`?vByxib{oK@)g%Rgp&-gNb_k9`<YEe!$^1UL7iPX<kGG_
zyN)425%9Vo7CS_KxQX<dm!zwt%KiNTlND%b7RqE&Tzu&}T;28>9AyeJqSlx$({-i@
zq36LNaE76hj`0gRm#dgoM1d|FR21(NY`Igg#r<tGPa{?<x(?`v5t_=qOJp8<N<8iA
z{&saZW4*Xif_wb2Ol_Odmq3d~GvpU$BY92S*lnUnewicsDJ9tAoPrOi*M;|LQ03)=
z23DdDG`aEwm=3I-5RYc(T3$*>S#X@nqsQG#uxq!R=%H{-?=IH6CU`o*jAW`W4P3o6
zMmo47oH8wmqc{VdkTiWCP_zi_v;6VxN?4=^527O5qhN~q$Rnd9k^y#dOmdg&y?s@E
zY2Ph3t=O-iuJ?x!%=bb+h6@L)6yZRmj#S#BEOM9?g<2#^HDCGIoeW8aRd<FR2Ee?t
z;@)`I#iQ*lf~KCe;TOSVf)QpMpLS2kIY@wwjrTp~@hp3p3Ve}sRVsb?1|%wJ(JKLd
zZs416qvyfWkyZix>il_#@;qzwNDyy1f1G{I`ys<nEAdk$=0v_5HvexXA4v++s7nb%
zxpACrhy#>ZvW|ZkUykW~9a<}M7}?i5d)J-1Qfex7iL6-dL~SRSH(~oWu^JC-7FbO@
znnKFHJX1F!L2KDnt3NAWiwH3udNdz4tGh67@zsq8%UGW{k+d;JFaew$2)|w)?|hw1
zHdFFy$Q!QeczsqQpY?T}x184Y4r1*%Fe5>$D_W@D5FUXWIX+FM^z}q>N{^e3Km0kM
zJU7+HSqIGzwqq{~hp`~`4m$8?IwQ+|hOW+R)t_cEuq1>*Ae`h7d5IiGpH6X$cu00C
zjBIqv5B2JWrgs<Pl<QHVVMDaKD;-C2$|-*`)2jrmhRT93S2@n;j_Vlm+_5q``-EzC
za$c5q79C;hXOV$moEEjV!5YL~)aWfjr)NgOuT%<l6TXI!28K6=f4`3UDCRrc!i^4w
zXtXVgipKtcMokk63lTATpih&y{N66Cgiu$6Ve2u)CGoM_9!ucTSq!x*u9O2z{Y?fH
zt28heS+^V7y>C2}lkl=sV2i+}(-83;c6L2zF!&llRc153lGb18CiXjQNl$5wHVQ76
zK63ZCT_Qh|VcYZER5sKjyrHO<@lzVE&EaZJI=UE36I{axWPp)4UgIe$^(W1|!^3EC
zJBQdT?V1>qRpD!r*6aXE%~^8;?R?sxUii;NET+r^o_%}q<MTI<RHe%KUSb_#AbZ~M
z^{*+6VN^e^dWkLyms8EKBZ+RoTl(8veRB|FPz{>VUTh<7EkFB%kSQN$xb{LI4!EIw
zXt}7?)nJshr8G=eGe`1i)Wx8)De@rPWcr+#+J2s;P)4K=Nmmu=<ykG`SdWmPr>tc4
zL!rXz4S3$ICr#TS#Uz_eSc{mLn#q}vj>-DI8o@oGt567|U$2LG!QWR|FUdW3ZHut>
zcy|I?kMGt-sEYg5p2stZALK7(+L%mPy@6fpe2s^&pn|T?CXK}mrnl52`;}`K2i<IU
zB!mkuyjRS*NUJaSFPAn2kEe8KC1%%W>>GM68FcI^MTxS_?J@7mV_Bqx<5yiFGNhgY
z%8I7c5q#<h@Og<Ql$9o?%qt_tL+0~M_L}A^JV#s5>2fjUWhyN28T=eQ*$Us%Jt6(M
z+c8C5ov$4#16Z*Ju(D*g9!#g|dDapee`?%UT8C)Gj#h%;>;=LRDZk_QvX2B*<o{Gg
zmxP9cjJTUGElLfQ-y{+s#ieEY3T$AeTRY>f=ofw+WUE!~Tp+i#{j3+{ffv7MCjA{_
zLGsXQd(PlRy=U9xA~Wtpp7WXrCqZveS{_bmOpN}Pm5v5VJ08Z4D>=783Cd#D=8nZ!
zZ8qf`?5Mdf1&ttZEd3g#WJ-6WVs+D_%*W<$l7Z-o*D-;UXHvHQ66=Q#&xSs@A0tAB
z)ACroQ&EOBPg2SUxMK$g3f_>pJ&U2Ssk3)v^70NFikta_m(ORgZnixm%|XdhR~bsn
z3VD63B%Rg8A}Uvp0pbleNCT-e@{QEbbJNQ%?_O;M>~O+0Z4}v%(HVRQ)Acc3T%mNN
z=PR+$IJ}pkwsqm?Gg;S)YV-0*OuqZUu#5rEJsu-#&uxhy!y=p?=~7V>&aUAd;ZE{?
z94u67fK{NFN;W^DalM?Hg6U!P@vsh}m*r`kE1303Fzw}NK;xVUhB4<jfwbRkWUIKe
zA^RF<Y(sE^zn|Dx3_cmbI!g8a>07fC-|P2z$GF&LHgOU#71x*FA9f-PoXJa6ky46-
zibY!WKltjbVIUNkvsIjnku>{epq2PZ;^NJe)X<W%E0x9rn<M%L&-qPgoV|<ax$*D|
z9dds<@GL$s?MOB!W@b}#D43DlsjnFbG%y~3q%dFZeK#;@iE!iFGxbuvv3dm74W)k&
zR$%AoVRp}5h+!$%EqNL!sJe@NNL1q5v;5pf3tR90HbzIKtEBv#?bMUcs!a)==#Cq2
zHOi)+*fgWHMD;cWxg@d8jHroopc2hH>NJrVaElg6aJXwB2H2)j1U@G2XcoSzFd>R#
z+#JpKya*+w%-@vm)|}gHiallj)^3YmC*5EXsz|t7Nl`pfz+1P1*t8+S^HYwZSL_*X
zCdaLLm1~i3x|gs29-PHoITn_1%6e=W4n~B)J0^zcTme%>HYzelVO>bOL9}httYF4K
zoK;hul7Y$T!osIHh@KdIng-36gK!%!<MQg=^5I^#5HUb;(wVylhi0Z*^3GKDWoi%a
z3cV1TsGViXeP)p<IA+l0?y{bl#a7Fxn|q)lGuDl-=zZXT2m(_w96~|j{EMEJEsXH3
zY7{A|0I|WF+`UG`XVCc`K1mjBo?lCZF7O3S^^FE_(!K`2sg2F6s>%5vw5$|sU8vFm
z8#x4VLfYhJnNjj>4l#%#QM{#t;U>kqJ}j3(&1*fOJ;p{6e+}JRs?+3i<+;kRGl=n_
zH+4GzX3)})XIAssDT5p1<czwO7W*S9NmteQ#GBKS!e%4mG3cNi8z=`-3S`HHpIM4q
z$JqX%VVbd-+R}mZB>qJEYZ<Z{WTK|e7cnstZM+m@D&tgk_#`;>QVgTrE-Xqpwg`a3
z1#U~A++>wfkUY|~k4z0*Wj@XCxOuIg!<=1ykGw*ei^|B(HLysr*O8-MjL&qa3~~Fh
z;ArJ^5wbhLIs_+;Z*N)D&S-w{zNZ_x{O%#&SSV=^8DjVbN2=u2HMsN`mY)+dT{=EB
zO(?QF;+Qujwv6mMG^|w1k03-E<S?QuI=A&5WA@a5pY)DjlXII5@w_Lj<3wFJwJeci
ztsgbNSuu5&B#L>dz-URUe-@E-I-kmPc3MQ8!AKAxm8n3~BKXiSvavFcr(e@qkCe3D
zDs~%Jk?y&`RhJ%2qK}X;p*Ruj{!=E;-Z@jKo`zYWiFcp3nFQX@9Mjd_k$)GK>+;Bl
z6QU}}Qru%mpD3XP4OXg0%{E8-YHH6q85Jm??~Z7I2jvy4Yc#y-z;TJvU_h&cSkQUQ
zd1TetI165P$E$vJ>#2UjgvxSd=%qKsgZw7rO)zQ*!`t+|#&N+|t&hkch9oAz5QANN
zCVVT=BJ7bGeUg1_`qY*Bfz+bqHTRUmpW0<i1Q4ZVBga!QlXsL&-h#Y1DSnaF&Tt<L
z#|&)Dm1qls%a>lZ_g>(e_xnl>Njxw4eu@S@Rx)%|LbsU7U!!uXqb8;vT9nNA!RU)I
zB^(!5;auN<`iZ3~c3dMvFl9e~A_Y-35-V~#zCeQ44J)0FPH6R%gH5BRMy-Z&jvoPk
zbv%oTH?FWnK3wzO{imoS!@VMZ<0+uHhhJmhk)2~LHh?*#=2#O>fa4r<*9hO7vyBx%
z*CO@L)rqJJ{;r3VDP&I8dJ1o`kHGHLkKL#Bo^at?cT}ieg6ut`PpWHQKAm*AQkc9)
zvsAJW*P^(F&7!%Fb)5Cs*EOyV){DiJLmZ7p^&hz?ZtPii3vaFV9p7%}MWndC;JI_2
zUDa;GfWG5lM4P9I?M1TN+rm>q$Q;A7m^dSe(BkN2)FKg8*0iQ3S18qeKZvzXm&dG#
zbIJO8GyXwz++uc;8Cp2Ux(sfB<;}LY+}G0LQZg0}iTxSM?+-WW#etRlTwOczwLHt?
zXSDZ+ObOB?-6aUB1145uh6--X_au|2q_PJLG3`cjUwKcm?mebMei)%*W8x_QCJ^t}
zphTYzlS8+eRL!yE)}NoKR!KO2_@R>--|c5p;iLS;j|qXuCujMY(*llefjjLv<IGqw
z3PPHcH?Z?w>D~Lyk)vKza4~XGYWT*$TW+vDI@ChF35(RpwuJyzb;N+g#vc58>Z%$n
zR)RV_ICG(xT!hN}Q|rFlE0=HbSRjcF8Ilk4Eu!CJH*<&*-Szi*K=$5E87M{gafs}R
zL!8_*YD@Yeq!gzf7x)}<^YrU+^OXn3j5+jcl(xZk%hNm5gs5$%a>eGL;?N_s$Hwj8
zds+OpjWe|`;_EYEJIgFl{_)vEoJH?CbPU^?1B@lk#zTgoLR9bK5OUvb5LXqN^L^pr
zfu2I!LN!M6J51d+>g9AOPZt2+D*LwXz)6t`EnUe=|KKDU=1@S8^`^?iz#|3wA;!|B
zqrMgHMX?uLu5||1FtOE{Q!VjkV;HG0>j`K_9T9tq;5TP%B7T&b$&t6!43Kvk0XtX{
zX@VO#4VkYfwZ$V&d0Z{uGj1_Q6pB87_l|zZu&wnw>&*Av{|CcBJilfky%>gO?6HbJ
zG2%ai{Y~_L6Pu=A#Ff24PgzNFKuFT|d4eC!M(q}#j;`XBiK!-&S)GBH@%{4(+U?Ju
z$M}TUuO-*98b^Tb^_XsHcP&x4!p+PO-g@y<!k~iVPZ6&N(D;UK0WMnc0qtMBC#zBa
z09?O#gFRI)8HbE<4C-Z9Ry&9DHs5ZhIw?Fxj}KmZrRL(gqxT~#Hvl*tPi2(=4NJL0
zQnp*fX))JLN;d{*$%&ZXZmt@FZV1}g2&t9KcrZ;R<s3IWZwfZVaCKXnoJ3<zVi2&x
zkehm$u{Z3UESAXSVpt8GXarNfWWhw=(3>7vZ+gVeaK_5G>r>jF<ExCt4X1r^&Celj
zUmDU|NGuGn7C52>Hg%$ori@0Tv_O)o0ykHgLLgT#1a>)MD|_GCF?El{{{TOGfNU;Z
zk-O#!k6`JU?r=V0hf(>#0acxmxLmzG+Uf$0$2aB|80qihw7EqHm7y1SLr`JAUP`)W
zGMFO(ZZkJ5S8kMgd!59ur*W7ZZRh*qUj}r54<?a@zOYULJDP)ngz?t>bN+ED8-`e$
z(-g~3e=!DT3LtU*$MI6EHZS1q+C0}v`}dTtzh)p0QA+U#r6fBXc9eZN7l^Loow+fh
zoJTv99VmTfNt1JG;a<y~z&3%we=Kd~{IC!Hu*RW{OZBI5NK01&1}BMe<zf=>M?I*O
z67xaL5rLLEozvIYm6o`d`ESr)Y*JEzfUdqxV|IYda+a{hy^8rGTJ|!9@_|~8We3bO
z`fgq8rTrfIBRhjN?gq<^$PPUwr4Ywe2+J!UX&xl(Oi-Ne6%9qUCvKp}f6M;i)X!uH
zb8ukp60Z!bzbr)@n2TjcJ&47n{h)~YPzEq%`$slH`HN7@LX&299$}Rlj(X6)g~Tgs
zuDL6Tna7D(syVoMicH&RX3hJEGOJOzFEPd-TtpBG5kMK7d1~j|X$e5|Q#?VcOW7`u
z1gktST@d2s2>XspHxH8k06vf+-XRnb9TPVOv9ur-;VC&G0TD3JL?)zteHk^?5Y;e8
z9%k#d9EVNvX66}UU!f&Ec29*uwY|NXgS!&H<2`Ea9;kwD2`*p6q!@EE9pj95>wbnn
z_FO5r-0u$=mQP3;<*yK*{m0Om=n6bf?3QExc$!4*>cMchinAznt~6p8UEZBgnO^-l
z7-q7gyU`Y)I)id)Fzg^;eI&MBu5O-d&|YlIP)yBrYgk5a5)e>Yj8~<}4Gel3BXS2(
zQjAI#(8o0FB05*p+%oPe_|xe4oid>ALp@8o8zcPnc9jmao!Ri|Qv~H;zNj5<n#2b+
zlLp&&j}dH7$1&Q$b$mr%jEQKwOHtkn5qtojjrrmXmrq+1H#@XKG!Enc03Ma+uFzRm
z1{nkmeUjwg5oo+1RkOE<1t))7ge8oUAs&Ejj87^@txw}G-m;bG@koC2E+6R$(na1b
z;Rm4+n~X)K7Ys6ucAy>JUK6=kK9%pT(){{wG~y&?if}|$9lg3-(xuC>eLv0@GE>Cb
zzTIeLgPfCrm##M}R|>$ZmFeaB4r`<P#Lai>Wa~+Mv$wX&d`d^2p^KSV^oL0++4QSY
znwx5IAegNdpD9vv=`eIoB&TM2EE3D+J^o;%7KeHkHyI6#d%e$HA#oL*@ebl+N2my`
z^8t&8UOtxG@chFnTrCT3cRLTHNHOWB8(@O3?)&-xQ9DYN7&tofiuGBfs@z<RCAMJ5
zEg4eIXL2V<mzF<qw=kzMJh7M8No1#PfTH#or);As3QFs`)E+SvwkPa)5Pg)o(QcCE
zhG_d_ZWb}#Sk{~LY6DojqTc6#{1Mvy%;Ns%{l|t;D036j648igMD+gvc%GCtf<qW(
zj7i5&!{Jho63;S^60g>rr5Je3=58mJ{{U~|DaNLaP)SbuHX)Ljsky`;ead}YHUOGD
zAz~6_=hL<$f+{N``$8SAK6;HfPi?s7ytODz{Ia-k>%_W>c8DP|PGhpAD52A3hCP>>
z8C5Z?RIoTWmri94q!=w}Cnmc~vm5ub0<&(Vnr69_28RSHnt5Q<TlDu_<~{BVe8;+O
zkQk!1#N-14&r6$@E|_J&dcG=PXp}^-IhN)!>3Meyjdd`h8Cfv1C)5JjVwi>9kF+H#
zW9O-(#HwWJ;!x@!1_+~wDL;0Q;<@hvrs0i1*oC0+{{Y!~RKeEb6d1uMnto;|)Dn<y
z!a2(woj^9do@I$)!Tx5R=|xmmXE19l=6($O#b{jnsgTEsSiWNQb1F*n*Bcv-KO!r6
zLtSpWu`oMzby3mLj;~iE0cMPJd!Vx_V?4@h5l$eve6x&B;V?l|c$=F~h``<McZ-C^
zSQ}DHBXKweT9dg#e34p<S7sl#U7gS<VV_Zf@##x#f|k@3slEEtaRnm+lC$x_7Ok%R
zj8Wkni)KRY)JMF)V3mF12O4#twFe73dURKrb2t>k7?tKO9E7Nz<XVpiwnfChm%Q6C
zr^jMzW|lH|KhzN_;_m+dBr_4?tC@0X{`ZgIlypHgZ@2t_)o1uLl<N7v+(xD40JU?}
z7F9<=($4t3MQ*1>_F;@r=jiNnFmo-Kd4_C+%u=pWxOPG_KoQ2~aZu3lmTC}<HRm@n
zb%8rZ0DRm40}-{kiE$~959k*yUAXA-OuC0=T%|5$#Bjmw(C`wga_W8i{{WD>r|;C(
zWeRA~?uAiMH}q^~>LrZZzwd~xiW|yU8q_bWGf3&gQtPS8Vq&W0P(^Hv;|(!Z8SbEh
znmU!^qjApq9%YJR110;Qyfq$ynaSaR{ocIXtS5P7_xqlELF4G^c{zzrCKNRdV#9En
z@Q-V2ews^y@6OO&bkis#4Nh9=a{w$&Xx!d?ddSo+#%Hz-O)D@`*IXt}wM?Vd^hJdT
zu31d3s}{xwa%Ed(1@e`hworGIAq>)35h?cdH#^=yqP>-*73x#oU%dOJyEDN)5q6B^
zxT9PHf;K}KMSn8>5SwF9EbG>;-3XGFBGzs-Ze;~w>1&v%C&tVDls{4DFvt5tqcQ2M
z%CTg2mjk|fxE^J_q(baVtHl$J{{RVlU-YH-Y#T>tWtX1cClH{_4p+3Y@!DJn0*|E!
z@j#yLKqFPtQqgUZE4g2oxVNvjtVD2Jw>fLA0CJs%&9Xi{b~C6G*GXBF9jO5xNR>A@
zdrMz`P3mPkI_fNnx_t_;4Swm|7xwDX%%~j|9la}8nW@)&uRt4h0b5hG(vC!<9Zu-p
z9*T7o9h14uN<s3>)AILB?ZY-K?TP1eFlDZ)`V=ekv#;lG#B#6Ot?GR5==c@iRfa7x
z>lTO-oy#vk8*W*Uo#C;9L2qLR62P;8HhT}=S<nlnQz{>6!VlThbYdn*%K3c7Ph8c(
zUbdEHD1<9!;)D0SpBBuod<#cu^NCcOW+idK)I+`rPad7yv~PwY(<sM-%;0{qr1?Oi
z<pY8eFE@F$kH~p}*W=w7U!`lh9M^|n5!3{#{vR^aJHH;3jS$Nac6uD6Kv~o*uK9uw
zkI|=QJJ1~vdW(^ROMEQmZVwelQ9;Ij)0|9rGR1%4W$@wqO)RhPp8{u-kFRBrJ4{>%
zsl$kb2L(k|cDL=XXJ?p9b)fk!UsZ}A-1WM~kw-7lqaCa>)Bze5%z6sOhi!1UlPa6<
z*HoF=yEP^W@hHfzy_UVRAaO3vdaTTIJOU0#cbJx1_$C$8)2Ju$HB<W^qrP~9Y$w>3
z$AK*-w-VL*RTd`*^@B%2!`_b*b;z#SpM~C!31fW;cse7Uz^!znsPT(}nGuS0RIZgM
z>QfAEZ=tl7u+-Tx2Xf_Kr)n|M?GuW%eZKI=!r<6DzJI<T0u0~-xB@C0ID3^isg3EB
zH-uEztg9}%(JQ6BEtf5oHK<Jpy}!9X%&W3Lk%(SDWBp7g_)Z{>;p*G99E_`9+wT+I
z{{UYRvKJ`^p@`?y=W&T{Tmpt}HwcZrHTOa}KQY`hE>o)Hg{hUhOckzr_7~a%uGcb-
zznHlJ6$3c<PA+7T`{<R2GfPoQ`%Vycm}!0|15=3@BXa96sV{K_Uh?uAmm`Ts(%w|H
zW+2|yCqCWO%z1MvMX6!XIEX1*AMPOLcKTMS-eJpGpL8)_&3#-+owKCBbswMR18vOQ
zZn5dsrUYjy2?cV>#7v1Om*!Y}g~O-815&Q<GL3B4rG}*q%Q%LjsIExe_8}1PnQTmg
zrf&s64y)6bP)ay;&{CgI6%0q<heHQjhEab63WP*uoHo?4Q9y%l;R!+A)j&W!1Xk9u
zEPVT5tjw+;-v0oG1@9&lo=JAMx8tp~DfSTaK_hPVy6T10ui`4FhpRjSHBRZaCIlyB
zT|uhS&bL`J8%HtD<+oEuIgQOVIGU&+Xq7yj#PH%~jWKhxO3EN?GQreDJ2ec~iC8#>
zp)G_DjQmGJAnscnQ<fN6Qpp%n-1=N<W$Q+$VZUUAw#r<#-?D)z+5iBCT#dsWqEMT>
z$6@gG1YU`9etj+@@j?LZYEfnw3}Cs^1#R3Ev?dB_3Ijx^b-2zS8a~w>BItp?ytEhF
z{{VOU!No({)FV=*5sKk%6tDqZSmy&SOZokW+E@?DFamJle=#Qm!N0_8<3P{z1rmqx
z9HV}56D_yKV`^Xp7c?UF$~-|IZjx297o@7&0JjLm8_X-2WjRsHU=%&B8ld~X#7%0j
zLl4bg?+Y3$w!adFne8?#OOeA9B)nyqZrsbYl>Q~<4UEnpENLZDP;&a#fmmYi_$P96
zaM{C3^6DtFd1Is7t7`0jFoyR>Fg*u*X5c$Ymr8y;cs#7{I3*jVq0gCAM|Dv7M8f&#
zbP|bOa8UxACLo*F(1y%1%U358Ycn8}KsC?AB|adtmZohxb*pL`1UPLYRp<Oc5#afZ
zBZE*YZQMs4mI4|*4q~aJ+UOOM6>|x~2>@I+v~_8*n5>*IZF)<$9{&JiHsaj;MONSi
z*Dw%G$7r$9y~joLs43cBD%<n$;rqh}29Rm88l=sP0ILR}c)IGKoN9L`(Wr|;vaUY1
zrAD&@&#s8YO*C05Q`t9iz1kd38DVfr*Lj7zMbi@$mY(alh|H!qm=1oLrV(C{JP{pJ
zSlriISHmgcm;lXl6TIP-gj1+dzhxm<LOyWKJxdpi&r_Mx0oMEywqn(mPW9`sd6b?P
zJZuO7+RHVK6+!n!wCs+orNE{B5Z-PjI3sSL^jt^3*R&Thx%;P&cl6PV8f1j>p|5Sv
zHxa0=SQ#H^icDheXhM^-(w+hj0!r6$usVW);Fi(LGTjIeSVIq|b6TGXcf|0b8$8R>
zd=6sLuwqTVk&Mk=kdC766?d}H=3VKHLQ{DsBbTaC*{_IU#q5`#a*Sdq(N@vf1aQj3
zr%~CoV*6&$3_sx`m+Oy54UzCmtZ;i|TAU1yzu=tHsey2is|Vc}v2GZYorz3$>)AeT
zeFO!cbgase`J^z7ngQ2xY4xnifPuMo>nOJjOTv5`F4$zS+-OwXcbMw{{1ag-GX5Vw
z<ql4Iqv726Xl3xz9O2KZy<`@g!gqj;b1f`u+F{9!p9p|ufx<?8*5}=rbM8GXq?V5V
z0E||GVG&utD+(`NZw|b`BJP|(s{z9VF^^>n?k%ur>ID`4Q|Jq~x0$*|j^<oF{^&aS
z?{s|343t+sVM4b2?}>^pyQLAVmy$edpk}^N*S4N!>II0*Dys|@@I)<?XqWFT-dYha
ziG0T#moZEfkmK3HaRFdj?}bns9UbLC<jjb-gjIVn$<EMa1r$6>3@4QNU53-^MFJf^
z!PHUR1x=Y^vDCUpRhkVQ*uh%s{X&Hd=8PGlCsAQuCNsOGmjem!1f6tM^r5%Yfl9Z~
zi+30x-@;UE;6!?^;JbO1GsNz7iS~w7>s1#)%N6r8!s92GU+S6sz@mCx)W8}#hJ5Fr
zH!n$1*TBY^A#%_uUiw>or)p18@&vth;D}+U^r4}~AuGmbp1KanOd2L>7jv(a8=BUS
zL!H2_M>4C|T^{J2BjDgy740v??lWNqtB-fPbiIjna}yi#^X)MX-OH<i9C<;9x~S)H
zs}SsT&J6j2a{Nj=%kd~nu01s|=UlIH>tt(;!E&!v$|b<kIq7V>lz50dO09n^>`vsi
zA-A(_RLgOKv$TA!<CYo@w5Nv<{yh@mIe>R5MO()$v1v>=TmczUBRoe}3}Aik14A`a
zDr0lJQ}$~+JWf7_FiIs@4$x`%W-qpBT}(g>%?_gnXQk7J5z$}w#8Lj=eapnY=nC~s
zo`qLQDPA`grH;L8O?0Dq?S(Z1U8X+s9xE@0=TQoBfI+9y;DiCjwGcCVjtX$&s#bA-
zw7A%?c7L9g5L4OlE1zY!Vn73}#I18a9Vj1^e#CWB#7mcm$?7$j3lliP$})@+jl*4%
zgr;U~B{}8PsCe`pQyfOF`Sx74%FWB#f070uE(D>>Ax+kzsG((U_u=ga!LJ8-f!Pv+
z;WtR-F@+SnmG;K7anAj+lx>zvF+p+3ZA2Z;?|GK6nfaMB-Pf0rvTKN!ahg75Dadty
zA%<0V7Z*FBH<Foy;8+ha#H}EbHPqoQs&+}28^P4u+L70Rnak!`-h@}U!(0MkWVzuM
z*}}yw)0nroRQZDiV}B=Fs*zn>Z7NeHqAp|Bi1oiVJ59s%uIRTI+sr{bCc7TKA+|C%
zGK-{Er^7D>vyENpJAau_Q0`u!P(g@#*b_!9D695>$Q0obRy2Z*J9QAbzu&joWVR~%
z<@uLK*dSJx&-HtOaApr8c&CS6dkOID@hlyo?f(ApFF?(p4Ws1LR&X`u7g(&)kz<tj
zALaOB-L`>`&i?>;LnHFP%FKKZf?aE^Ljd#32v7&)ALdvE{GZ5~R2mGQz0A-KlYg{o
ztRyne*oQ2KFi1>I<b)*YYVgn{1S-7#$NGxFpXO)uPv#)Yl`2%LZ0<Dc_`l{;tdiQN
z7N5dSNx!BwA8xr-pMA!f%^uMsc}Nt4WaWFtTF5Y5CPB#pzY7Y#+I`2=>vE89Q+%m&
z7t|m&a`XJp=&Ah`1ald(uyWvn6x5>axY=G<4GVJ^u+&`KOO-QkXTu7s)jlV2FR;Vq
z;I&O7f)#`2b1@prK(9$MYF`Gu_rzM2uW-Oy9m4miMlSU-1$T@Wu?#O}RV{b)75B_x
z8<QQwO9W7pdt$BSfx}d|d=tm1=vg@+OfB$Bl@k%T<Ct8*5-~)?Lne5D7OQhm55M2E
z!CWvNV~976$EIZ5zk+@bPS{08S81{80d`7N<<e4mAOeo2cf-Uo)AU1<YS=xH?MzzB
zcANK<f}V`T{9<K=-f+ruIhcpvd`m#8$++V$Mq>%>8OXm#9IG-=R^VO17A_Z7KVAWS
z$f|vyi-~P|40C-%Rt^%4^>YTLDLEN)pd!5^6O67P5Aw@5X^HRG0dbH)7?*FPS?Vjl
zNlsFDVr9^x2MGiQo}FBTp>mc23Vn>OxIwvfDNl3D6rJ|?^_f_G6(QYq7Ov&X3zoWy
z92p>q&L3ys?7RC3c#_$Pkjk;dL}l(u&(ti97+oFB4wpZh!fEjI*FBSOw|u*a^T&>&
z@m{CNPs$)C82d|=6w`dlqg=-WnP+kCsbj6gd*Jl5TXEw!>s{F_9`fodfoRX{EOn`X
zr4LTpLrE?WDSIWyv#GN!=BYd3x9`@=+BbctL&X?|+3-ZwCU>r?CnQT<r~d#I9Y(Po
zgts)@M)m<Z>r%v-i2nf9MN0VRzp~<xu8qEM%E8^aZtPTIQ$$8qm<g%K`tMr|9&{g>
z#Y^`TK5Xyyo|hAW-~5d68-KX1c7Q9yB_pp|;iE5)T7XtCMN{RNJzMV<wH>2j)8x$i
zfC}+EPnR#uY`=iZ2<9oDeuisIErbjsFh4UFaRwN#rXrpM@gc?&#>Tfna6oa3r>=_=
zDpSxpH#=K7`6kjjPJBk~`GqaMs0(pk;_=@So#Qhl+$VGDcQz?fglgm<>f3_QSOL}5
z+*<q_gFA%_aTTwMI9fE@t1|*-3AW+tJBsnl{M9)l#m@F+FBj|!L{feB24%V+jtOL#
zCDzEMi*RryyX`AxzufsL>tg8|nw3SyUnwjj=a4@s_rGCC`?AC)x#~*jh^uE3%s>?D
z-QRP#9DDi!=6Jg=-dqcS3yj40f$IRxz$vimqJ8E~#=R#orv8X4U2o`Ec7RanB_F;g
z5;l}iP%E3nRRRjd*!%Tebt|UOnpQktz5f7nf%}=s{mkV4_x;Ub05#H}(TU8TllY19
zcbO~eKw8pN5t1q`#I<L7btBeY$43UE0^yE=wFjgoJm}1XcPw8A#H38^FqQ0?!L21c
zrY#M1(eWx~T>k)Z&@0n))GSC6n?ogYC{WDPniikJN5@aO{8SbmXj`;UR??U1Wok)I
z>H@mWHxQJ|)=m=`8BckstU_#}U{nzMUCu?d<|#UW7WIrrOHkaPE<0P<92VbI0idK=
zKI_*l64kh4ckFOw=d=cJ@|EM|EL^Nj1BPx?5e#t=m(kS6ONwP}k=p>MQqCob8*6Vk
zBoy=4frc!K`6j);F=*Jv=OM+3P8SZN5C=Sjunr7$>~s{RNKLRxz_;#^V|4iDRc~*m
z%(yx80p2fG4#uDlGkpa$Fnk(@F2-h5b6O&?=NbVIXPv^v_?bK60Y*?~g-4cbIC|Lg
zj^0uE<$wxqx{^Fko6OZVPB}l!aH?f^cQnAjGV6MaDE8h0a|S4CWKIYCL`=)K5ic^?
zk$aM}FwP#OiH}>A60Po19yo`U&jfh(r{eZdUCUH~rpfsuV_OTAme!(UfiGt=qA829
zsf4JLvA#V#j8+`Km~L1^&Z+&P<c3#VA$a}zt=p&}9?^cznf(6%>?*Fw{{YO#^MR$O
zNcgYJFk#%KJBR(;KwqAJn~D2CYxbxO<o?kJgO#`TTK%DbR?naD3|9;vF)nI3DV5We
z?}*H8!GL0xrHrvqt~fW!0Rw$)>2FNRj$w#AAmtTz2DRzaF$*h?1QltPZdO+K2=eCU
zB&M_eGJT^w9pM(gd278U1!Bh-_mM3(so13Qp+0g%<dpLe+b$CCQl9?ZyUk2FnV$}Z
zd{6K^RLY`PWT{ZYJmrDJ`v{|JQm;^15Y48D&k)2WDA5LiyeIjbRHCb`U8Z;ENtuaQ
zsJp=p-6XTW3`;6-kW@vyBhl+=Ds~zkeeO^Jy_o)WfdY!mrA$Er0@S=UPA4pOgt3QR
zaK2e|6Lm0!G2E#+mmS2g7sL=6hj*>UmLs})>EMBf{dm+3*kzmB*NTQQq#E4J)pPFR
zD^?6sw83YYwOpoU&Ja_)&!-gl{pHr9aSPhp{{Rd`WhZBIb6I170ZXah0yDQz7|?2O
z^lFF<l4Co|Q?&V%pq;u1nViaR)E6!*>D1h6_ZjK$^}7%Z80_KHs5|PdIEj_-(Dh(n
zrru%9(s_tX12el!5!E2r@0Kp|%<a_JKnnWnX@?BMbv4+6KP8xfqX3RPO_G}Tyh?Wj
z7AvR;&k|73Yt!<RwUcOzdVn_cu#FeySi5$Vu*7fO=3^Y1%{f+IT@%Z5v_hs_vEp^Y
zcCj?PbsZ(LAyk@uW~yBKEa5r{PVsW?pFMCMAH<<wP6AzNb2x!zmqIc3kqXCLo7!4?
z`;rC_rr<&!Gs~9VXJ&4tKg$sK(DM<tEtT%shk`Ei+tX=v@%5v>pB3x1_mwWwZ7n71
zG7>8=4bm_e%r=%d(wfhsozkCyo&EZg(h^_zM0+j%Wm|IjTOP@0*)K?8vbWxAFvex6
zO72q|b=Sgn5vfD+B2u2ZRdWy|UiHBdu6XEuk+M{Ji-Zvv*3`h)h*mj{KGK`_l~RnM
z^<;Iqe>laMGPL4%lzStKP~m!69^K{cL&vc9J3yqgZI%oF0M-aBc+3o?d4x9jpc99k
z%9CQ^Q<^^(H*CbAA1B|^@3fWtfeMd<FmE}85JKK86>IbKd`r@bqpP1C-%lPL+2SHK
zADGwoKoJ&-ag|Jd-P~}x7&}45!%vLifzf*`C8Gne_VC**?Sq+gz{V2p5DniE8!MtN
z-AmyJY;z8G%(Hb0j=+dO(Vx6yM{1>g*s5Di`b8-XT8cWA2IGlobBW^o^rY|vapLvV
zxpxi^cCbPG0$N;V5*~0%+!(B(Y(@bC-cq9B*7*X=qeBv;t_m#0)IzZ*pId?E8EJJf
znTTblgu}Z%H!F@IhTnFdft~PBt{_|cN(JW@&%<7m6m)*<c3sZ|0CNDCk3bI2wG6l8
ztzGhG<Ok^#&$3`AbL3l>BaKF7Mbrm;mdtu3Qf~$Zqq_R)jvAFJm+y$J?LMqi1gHj9
zVT!osRCq>CWz-_~L56)Htw1&C@41M??J*A1{1K`*v(Mr@oI8|r2EN*ks4tkcC~!Da
z>oKWNd#0t7{vcH5Tf_w*+(9eMsDI>?r%S0pD4PO_QD%F=Nt@49w%LN1mAZy8`%m>8
zXZD}!FK*xsL$Y4lLk@KWB97nj02QErS$7`qSTboxiMa2HY&$xmEDIgq@%Dm(xohp!
zFMThQ8cyd=uUD7%tbRHm9h1cpE!&5vQRhrB%%gJobtEcS7ch+PYB{nh);M?n0AFcx
z7=Hp*DWm!7t_@6mmwx%;2WW^d1OCVCp}y}Bi+)evJB&yAd5%ZDE8>--eW1pivgiBa
z3I71O%YDul%vDOjPS7jUMfq8fZmX-V^vtVy>NQ>`X;=cFM#-(05u@`f9Sr{fZ!)0P
zrCS7mC`?lKmfYCyFv*^|4ik!o#;}>Ej=pPgg3wKq%)H(Vej&L*IgT<x$COZT?mv0C
zLBgiVzL^twA*}1Goxv+f91Pyh(TL^yOF0}tFfEpp#*MScsb;-J?++5)Tm9`krSzny
zQkhJqQz|fsov&SQ_&140$V|r<Hp&hN?cKNq4q((54MREle8UZr0v%*a*`2*0zV3Pc
z_<@IcJU_l=KGW$@xDJ5+@dK957v3P&JW&C}_o4o7Q%&Cw^(p;X#XzZ3k;LAymCj&C
zV2T6MkPSPPVWqiItn8Ufg1U(VD&~pBSJAktf>QPpw6V<^m7|6t@`fd!%xkP;^9l+e
zbXooFE)Ti}ZhOT#n;@gePR$A51ufj^0|yV8p7Pnbs12s`QIFk2G9cVWK3EH=RkQOJ
zui5Abj?4C+>TM#O-^>2x5{Ym&oxk_|%7!DnM^tVSejnfWEPE2@8cM}Xq20nz=A)TR
zSu@Xxrrw@zAd1r&Bf$RvkJ>H)3{A)HiQo=;Q3+QFWFCEy%$q6qU&0MzCBGa)R(K^3
zyD>=F3eoIF#(74!29^T)OZ&@9!jJ9L(}<Qm+J)_uxX~M9h@|pF?j>QTaWB|0sD!6d
z`$rQVZ$M;1z|7g{nMij>SCQ_5c6+xWkMW6t#6ro;r@6}j%V8Spy*BQ${CM;Cj$SbM
z^AhDTMuu8!Wo4o*by{7VKpfBM3sxDjVLM9G-UUOtGXUy@xHw{`B)^7!yxWowc<IZ`
zpo3ifZ2>&QK<0PggTygz81;r%Q(K(EHmqY2o+oKW9q1Qnf`sI;vf&EBv)Nh@LJY}F
z*H93hJ#~S8^J$A89bf9<ibs4fy+uluE3G_T<w^NU`;(sWTpK@sWZ3vhZ|CW)nU&e;
zO4>iPGuZX<QkQ`0iF1kJJL~p&KGSIUiV7>EuQw^w#>W?fU%D`Q(I|FnF`o0+xC?M_
z&{w{TWWhE;Q^#Il9?f}<2Jk*%v({#Igw#`3O%d95J|Zl4r_Z}cYwamD{{TLHegKvi
zZoVdEk9p_|n7NaR@XisRDW-DmA(`SX9w&+*3OJVIgVVgO+xL!duYd^5^0Uv0<^`SE
zZZOTJ8f1GhUON((${cmrAjg2qJtN(Dl~#EYt(ff<-i%fwxm?BFhhAuP=PlCNOALEr
z(yCK%zPBC8W7w5#OW~QEJ!($q;~u+<c(LjtaOa^>9o65a<<Ewtc2Scz1<k)o2=T))
zz99q)-juM2MkvdqW3FL(lfKOI5&Au(smi;|1fh6k+vXS#a-#PYu__s#nF;2RW_1g_
z%5P+~_ew8lX?uFzMfyBzBBaHu@hJC|XozYQYARQ<VICuQh>iv*(>H{E&}h>gzl6jW
z9Vsl9f1IXX{{Wv~+g1fD*5`ui%(OUrHtgoT)MK@V8UP_XmReS@m?iz?ieagYz#Fsv
zAsXR7tJ^x#p7Qi|h##~_xia{aF=_3cv`hfm)tR+BWf@BYuE*@0DC6C$HgEjJzr1la
zu~%tP3+5$_dTdr;4>vsr82+Mi(!x3FVP6yShv>%9qEg8B0;BAvp`y11Cz*Gd5OXZU
zENzyhFx}Hx`unbg7-b4l&#b{*CIIF!gO>cl(l+X4j10s`sja(COAr(qBbkP}lIX>(
z^AR;8J&(M|3yxnCQ6ZJ;D${W?JisbniYV$<J(FiFAgmU|(2YeadXyK9OM$C}w-LiJ
zr9DClARyzk6HIz;T)A_&z|x<N@E4F^Q1br(>k_^hZ(ewYtC(jM!e(r1uD2}#*<836
zUYZGa#6h%S=~meF^c(9-T{)LNq(+hcAR!*`Qix^Gt_-?nN6Zl?%5IiZ%>_jPwQzx|
z=WmR4qFg0x_jfD)d+{GMzG_qlU8N@F=!Q+!yr1S@`&J$y7_LmgS;A(i{C^b<Uf>8_
z`)YnM@`_Sg=hFC<dX(_TH&vpp@RPzr?a*30&B0AdsV;4)Vp=Nhih{9r*&MeFL8i&L
z#9X?S9K%s(F}6FELItd5*Dz_h<merUF(_W_Q@A8CXG$xw7AhG-En&NeLCKk5S9qxK
z>yn1J&+zGeMh2!apU?AfaBmDyAKuYzFU$Vt{UiS1w*LT+;x6zJ++YUDeyWu!R3H$M
zR_KB7Y6X>_-Y6Z1?;WY$;p8C=e7q+U*5J*T&#hSaeWxniEYl-U(flRRVYk2dmN4!w
zF10E-+!skr#k_S!45XllP~2ub2haDs2GPROnU18zQs`}WG4&5sRravQq08*%T*IbY
zs4f-r9n$_L>|oYMhInG|G-{akqlP6dr()QJ=_oF9nUG%$SDXmuY8G>e0>fwb{Ka;(
zMq`mXt>$0cE+u@G>$Ow?St_}k=2uIWl`qp{Y{9lynQ6qK+FfwO+^Y%?%l*X16&`0K
z30myZDJ^M%K<L!w;t?IWJ|nKIUJu_NnN*Kxg}xi%ocdi=S}dW#eOHc^ZdruH!GsYA
zm$C%7Egy7&t1wMlxugI`SC&}L5;<TQiBJ2u%XToZ8KFOD#O*aaOCOl#o7`Yr%!9_F
z?$87wa*ww~B(OSBMhtFNDpo5aU)0Ffz@*zT1s8}ZvO%psce1%diA)=cs`s6|KuEyE
zq-ohuYpNKSi@(}Sa%^$@7@SE~(T_7cXS{YM!T<wuSD?mUGy9lfaQz#FluRK!u{^ad
zKN91~A3$pT3wVJ~asIHaiA*8+ON7S9Q&wWoMST0jP==am<9!cRD^-=7THrfGbnZsl
zH8iEJEOZ01WF?iCk7ll(AqK_!LlU#sMsfSfjh#G2d6;n%Au_`s2Xi=c=h<y?J*FP=
zGeCR!VNC^pFJ;%tFucJ(1Zd9I`lJT&*P1!H^oy?&km!ZIT(XVpj1y>{Bw6NM^$YAJ
z0mQRAM|ZSB_TcD24GgcVWlFMpw|xz=me=`#<p)APL6&S@AmFjeaXx?E^DATf%2;Am
ziS3{J2+mRT?72ckN4h$Dx|vt+(b@tBteWHjW9QcG#Vf~G6q*?9CBLY*3{Bh`6Y%Wd
z%0F>8@;cnkmOL>$H3JX2QFRSwW-bnj>wPW56KBoD8DHPxZMYg2?vRFwh$@ki%lt(R
z-^`=zN}lBGnP@GEZ(BwhuUqlv<3R4}5WF#_U>g$p5^C4BS#CtC!Ut%?wHMFds6gte
z2nfo+4b&F*W*M5t*<AxQM9V6f29apVNx?DPr+H5D+7m!vm;^-1H<@~TO8GgSUdL9P
zL8CB{fz+gNI%USH1G)$ffY*7Sflml8r9rkQxXclX3C;=I5pl}|I330`JHa_SFnNvQ
zj*he!9AXL_XEzZgJct;tP7>^8aQ(WlrpT@IlLXFUYW?OXzq7?l{{VL@*@AuNGNJg6
zRh^S_^9*Gcpm$)ND3++>P|0$J74t4!c1ru1=V|9i;T@$T-`n0HcXHcL9-~ggOZXuO
zZ_xpV*)~1p+KoQ_Y#rpqqpdwT5%+*=-17+1AMR4Q`Se(4dT)CpvHBy8W@xp<xl4Z#
zjS0NThS(EZ_gk;;F`i+lsmwB-VWXBW8kH^>2F$A{7C~;Aa>DR`LGuEh=%bEzwbsqC
z<NZw&!@u5YAGw<V{pJy0+5)%7f1^7kK|nm;`KhQ)AV4|d0)X2c5#kdK?1Dk967tgK
zWGI>dtJg#w#Yo$UiH$xF?|5RY=X?7>p$=lOoI^Bplkcp@x+eU|mV*=}#N*j_+-Df#
z8O%o(Oz}7l&{Q`lsag)-cQUNG5rS_p*fy~eFu%LpYilzs_Vk=T`jxLYw|Q82Jiq%M
z6uv*Xg79+RvM3#l1Whp-vo~#Ybq($Y5H$Y)aWPZG(L;AkvDkr0wr7b?9CBU3-_mN>
z#%yI;o?SlzUOKpS-cg){V_gm2Bd9c<VhJ|~IN>u5JCB{6poC%#SBNQgGrySk+7OKd
z=i8+|e`t8?pAw4E0A?WW9g^f4mY#!%SyS#;=4%Y)hL5<!dc%F$eJ{~2%l1K6)B8tl
z&mLksiuAg~*_C!`Vw;(mhArHl5M_^aIlOf;Dvr47u6|(NJ|-c-3=TCB7gsZk61ju6
z20G~EW^cheAhR7LW1W-umHTxud*WqFxnMTS1X@yVGKUXTx!snVlYcXi=dE<O=1{{C
z&f$%FpcFft4u%TW18Ga%*!FC(n7HCnOf#P8&BffXJ%>|cg+#S_+cI~SZj<+iX<lKW
zG?$ghse5Dhyv0lZ0A0PCbP}>yglju|%3|z9q7}K_AQ~W6rLx$bwE__rH!w^Vv|<Pb
z7JX^VcV}lGnRA>AKe_(^a*icK8tGjwTvre*?*9M~7Gk5ZiC-=yU=YkaqABi;*k&Bd
zj(0LlH(lh9<VW{{1_R;tF%dOH9)CNO6u$oe%-b)UiFb<d69}Qq&uQ?P?K9eEw9jcr
zM6;>n61%KK-Xc3B<H!zZtyV8ZM-t=CO?blb2Xchc9%Z_B0X&7gzt?GOlzflg;Zlof
zHwGAT9(zofXbuz4Xa%Om{{ZKB3&NoB$L}4BPwfm#xbT$04^7X^yIeAVe;rM%PDsQx
zo)KCtOp}DJ4a5x75q6q6e#l5fgBLSP?D&8#2!5%S0UYK2{6JJ{8KhuY){D*TX3A!D
zP%Suc%L|fG!ZMW61TLa%CMUU-+|S-gQCnw-k)lnmV2Rt?^8%Vobpmg!8ND#vnMBIu
zj(bN?OG%a<wWqQmq$&*L{6W!<IXadc1Vb&ne031qTYweg2&0v^%urjSyjInDg%eOw
zM=i0*Pgg7;CiKf3nEERtCuE8Q`#>nXDsVLnYWOjWuO~>2CVkgQ-gt^Qq{u-6L37h#
z;WuD`fwm=F{S1+6E$Uzj9JrN#E4n<XE#!$lSCS)sPj96nUPuwc;x5=?piUsRYoD2Y
zyZFl$=K*QNOuT6;!>#o!33_9-{s~TdzB;%MDwUoWEZ8?>w$nDI<TH<FK?2{Hs6Jf$
zLAWr|HP)ndJ|KJ_=c>G5L=V4kQL(>C1N}QgGx+}iDQK1B+yf5C!WX%%)wDR|^|V|T
zSYn7>vpLMgyh0G)RJW!(_j+E_l$17fuRFr*opzWNA<U$KbQ`30!L}#d5U6t;?QsX3
zi_Dj3+YbW*8}`NS5CM079-QRLlBBx_cyDW{=~=7a<`O-1Z`z?OasD6*f0x$7aLE{D
z+^N8pLh{rUzNg?qhj&}(3P3iPW@<~@tzzZMm$*gfg79VNJCgpvF9)DTp_O-)hiEKC
z&!puxko-SSc2^RBh<1-;I<6%E(H&nPf!jmZ5R{KlwDy(<Z(bHkC%9T=S#WJ7D&Z{6
zym*!S{BN>AnE?1<5%7U@3EArjdvwYR%mXcf1H^uBk6u{$yUJ5ud12a*cd}9s5WDg!
zN0?$u0F)}{i%4oaZaWGb^%q|AgHZ4c*AWX<JVB29=-ga!0OfIBSk1?74I)LN(9sD=
zw8H9D!w<Dbc}DiR%@E=cGZeTw4)B-iDRj)X%(;)lIeuWauZQAR^wr0Yu5mb<_C(W9
z4ZdTj@aN#cthK8CWih=a?)6!{qPC~g&31vYI-K;NFc{i-fW|V8rI;>Zz(pvO#x1wA
zhAl&5#A^(|X~YwGg9jRqwQVV3h%^_(K|Dgy1T{`j3*vkOp@f_axrKfF@w}q*fn&qn
zWy(5VS5Q2(AoI)u4Lj=Q!)&d5dn!wo5!w|SF$CR5D>aJCZ><{6M11&u$Pl;N%r1>~
zL$Ihm2H#7Cn3NC&SZMkSDgzv)5V$JDTigoNsONE7!2XJl>m&wUZ`(HC8jhzB1T0gW
zY8$$Vd>WN^8OZ~=o4XeHX~!>Q7Z1?ex`BZ(!9rSSXxICGAT(&~Yw@TY*Y}M}ONk1#
zXK0?7<IJGfX8w(^@UMwmfGd0Z#B$DrQi1pL9+s551yU#%v4aW2Gmbfe>31Dbxu{2S
zXa?3X_Hp}65qZ8)+-pPQt%0k#f8axX@s)tK0R1LCk`cTg%*qE`%Bgc}4}^CjJ4Hyk
z!guo=gOKy$S<;S*35e>}K%+3r62`7$Vx4gBH@mYx#-mPSqD4O2&l}i+FME9d0DMgx
zj-gA@`<>xG^OtMi?=9K54G0FrCqzv9T7sK#zP5_;LKl9m#b>mOxhwt{z5-d%;O2Ls
z>qV)n5%3@bWN@w-$8Dit<%;-(H6VUxDa`FA(y5A7txZjPbwzt71br#<e$u1m&uPN1
z_Olqr<NjxO4F3Rzqc5#Tf4=7f8iBJ{Q;~#Wm5FuFr5(cnfQkM&P2XDScQM`rd7D!=
zE~OHI?qO9qiWdc2l^mh%*5Yii0gef_AVOanVFXgfp|m;*QtHuy4Ru;_<(=2!d^df2
zJ8Ev>(0&oo%2GHmLtSm<4BMKgfu&vaz<H4Xe7!H;MhJY1`TBE<<=o3x1--)>n;{Ue
zFP1IJ!1GlNT)R<loN8w4EGKzWPJMg}8-i!d+)nul%XR@-IChx#xbgUa(R_Qpdq-e&
z36SxT@q^|Z#0_;hz?V^iWj@qK(JZD{sX{i)BobOlVNT-qfo0}iYGaMyg_q11c}z_b
z(#^jS3vtOzziXH?A2G_6+qE+|j6)*llPMQd0#g~zVR&T|d$?G~dKiTRPxpJ7`m~g^
z4N+K47)D&7G{b2-7x$f;K56q#WzJB<ZHU})iHwP+ifA8#Q3WMSmdZL;N<n1oMZh$T
zha*!LRKXSRK{>Pw{{RlpwL}rW%9-=jHH6CHqucxDW4nD&0Lxj*7H(l>onB(5!WkOU
zWUH4}j=Xk+FKTU%-=J`XQHVLWPz|I(p@Wp%Cn{}cHwaV*czW#?*x7O{Sj)m=3Ct1+
z3IKr2=MVw9!Pcg+H+(VvC(d&`!BB%cN07@h9FB;Mc9%C3$k0aXZ_LU(z1><Et1$@-
zIh@=WJC`fmaei4y%2pwUn}l?s_OkQq7EBC5_q7)tr6$ZPDJc=Ypa}8(sbc>CFXfy=
z2agul`^2K1uy8^PY*nvG$6{Kn#G?D7mi~YPn!tsh?c!-v*nJ|j{vqmNr@w|*n3j8Y
zJ`%g$#jb&iUum|x%1OyF69{n?IZaRWHr$YV#Q;{sF)V)GeIzCpa(rRgs|n}m(}uWa
zIAL6H!76+ocuH}ZT62j@3_%QRZaDcWBD_WRqszN|LPOb?A<OXtUwS%|C~vf5gQd}n
z+vyGM`^&mIl$UeLE4bxNy74hD@)-VrD>g*Gf(gXSm<2|eNx#i9Q@$V^^X`gCwjK#f
z40Q|2+V*ysX1V$A1;pBEhGuvC)CU`Hu7~X^N88tF`I%Bvc}zLNQ_yA$BdWf4Owg6N
zwU<)R=w=0u*9}~vsOs%LdG4Fu>{VBHq!yQZJj&ai{vm~M-<A{?lYU8i0>=#FUEmi<
zc8?PxB|$LXrEH6|M}P1}#<=TUo`QD-KKv*yP=HQ4Kr)gYMXr=WXJ$CBbFJ5mygxNL
zm7{OwkVt4FcFEXeWKhHEwq@LT^&qPn3hTo6m_Ip}Xlw|L^37LUhh{mia#}s5VcsnX
zE*_H%Cq19r>GU)o%x-pn9ZamfpB`Lx9&4iLqIZ`kx1*SSX>y>{3WO_(q{fr7$7^aa
z%>Mvvnc-%h{yIV;*mNxd%TL6}T;p-}f&~xnE$QPJui?^&Lc#{2a8(S1-V?q%;@jul
z;yeNqnc{uj67&iY4)Pgg-luTGZ%C?~Fm5=WTba)j<L9RgG|D<<x=T@eqm|XL5DX1*
z3UNH8yZ23xEHw7&KP0j73DZOOj?`9}Qa__JXa4|e#M*x_15El~kViq!r@U)3CLISu
zJk^-3?&GO<u^Z(J1YV_WGV;#0Bz1ngQ$*x$3ljki>n-n?eY+6S;;vp>SJO!LAR6SJ
zK_}fMjJRX7D)(7<c9f5PpFDfJ%tHn>6C%#K65=mA;tj+xN3Fc6RgYP=Wy=!2+J^Xo
zcY-Q9(i%6%QcYF-qZ^lB1lb9{FeV`{KD{sKb9A`XnRblv{^f9%$2*oX-Q}G*xx7Nr
z9CtgxVFPi#J(WJ45`Yh%yaQZWe;l3lW`f)U;|<FOHK~f3Rf)(-s{IUUs2^(x7yXvW
zreCOXJ@*LK`ZAdC%nChR1sF0wRqjDp_>FP7eG0R(A`6O}jQMrU;x+a{a?|YlnS+jk
zG}-}Kh1@Y75u4hXT7YbhT4e`^v&3*2Wf?$K^|z(6rse>Yw7zHVyI?%A2AIWIYFMY3
zYK9qL=Y+Cx1B%`8_khg|e8zVG4f|<Da{+-lW@u-Tm(s0RjTgb*Cj4I~dMa#g=g)42
zH5~3amBWO0Ryl#ZMWPNN#HQRpRMb5BT{kR#AXUf|I*#JqN}EJ9F{+{nfzjN2MF2M#
z;&R|%hU=6;XpCnjqn;$<rdx*A))5ttZ(#{y$LxbE=g`?G5!RujznN7@b^T&jdY!yW
zz0M{>+iqCZ-K;@2HT%J>bi0_TXI(jgsA$cDp3x~?uQIZ@IH8DxXC7mle~JG96h%u?
z{2zi_3&AX+MuH=T2%P(KY{0uBd<h8K7cI2Y5%CW(?A1@XBWefUS~?ucqsf84aZ=_x
zl~>l~S(z5sUl^2b2M&LTX2+>`JHa8KjO%Ri5;@<X62e5bcxp15V#e91mj(x9yUFOq
zk|${4iG*y0`96*D1H7-Ld-DGHgu$TetY!zPNAC%u+i|)jStH2t0Y@m|nqoMi0SW8{
zU2_zx2k#3hf{GxmghfO+Vj?9aMatv-O9Ll(0f<KM#0<>6<AUI_!}pf{1BlHnWqUV$
z47=dOzc+d4*r0dcTrN!PM>~`g#Bx`=^SL)ZCKo%-!vXn<j@fM`V%TPDU3a<v0D3=(
zxhc^e`<<f}B<3S$+~o;%EXOk6MY>;0Swq(o63%50GR$QFwF2osFx8-mW3;3Os#8Iz
zh-@@}f7}p1!kvf!Q7DO2zptH<O)#68h>X*!$aX+9$qz7X>r$C=M9+6YN_PNwrX?n6
zzP@8aW)0S}0eeApa9t9*paK;~P|FjH`h0hn1ClDIDaaUUcN&i@T$d}WIFLxp7A=5b
zi&|&WpCtT7Pjy5Sj23?I2aw`ecbOLMd__Xg`Apkx<s3q1{KLPxVpOmO5ml}_pslHO
z24hutVqKlRR8xZt5L41&rco8-ekMhEo39X6(lW+|qowf{#P1Qj^|l!62lEhofTsTd
zz9E#Dkx>UM7fHWaOlgF0&VGR#MZZqv3W09=(CT(&9)@ZE0P<cIIDe8=OZI7uIwrxC
zq^0v8!8LklbYLdLV-Ws_R!dKb1+0f7!RZRSP$)i-NaGxJyZMHqzh-v=EQY%9tGvE`
zFvM*^rv!xR@(~nkSBRAq!$qq~X|r<i!O{{==C5a;DVOR-<LfaHW?c<?{6^f5^8%$%
z+c=iN-5rc)C)r*ZZHg7}@$Qa>HSYpG-m~%50JLr~KYPp}nZWThA0N5&iX6iSFz$(h
zZUmIeWV>tANxVg9?H8XCjoDyHkcm-G6v4v-6)rqSFlthtbQqh|B^zOqcsiE^<|noo
zQd2I|(`ZVW6flP)e0DmPiJ}1=*{hHHA%|lQ)z-s_LY}!X1ZFT_9lhgWPqaSdDvidn
zx5lAZI*wtEznLPxu;^%^9I@dR(`&}1o32I{jV0Qf-@Ym)u#(n{?Tww3Y9-Eh3?72<
zJTCrYf$Qf~l-~rqW5GU=WAOsd%r;E!fJ!Mdez*&jMJ0nyA;6ELARA?e!Wr^)H<@N9
z+_yX^skUN+OjN^6bvK!Gdn&w_^DfGUA`G$tC_JY#WE!_>Cw=xsS&a<Fqimry3Y`uj
z+#^T3dnMff;HLcma6d!yH~os+8m}^;@i}1eAHpX!*HdzdPNNr#J`mEiEZ$-GPocSU
zg&gOmt|^B;XMW##f~w<cqYo@XvAE;cRv+0>3cEit;KoDDJBfuJyJLaSh9Qo(mbCri
zbqn7chNDkaQEq1lwg@fS2X>iA!ppG9Dn;hKJ8oL!ZY)+`mGxXcvHPlg>S8k`#b*4+
zfy?Qnyr1G)`!eA;f5fglOi0sH!V&mbDwtEqkt^RAEuGqRJHo-8fWaq@t3&;m`_aEh
zBKeh`Z{v=pm)bMRZ>Z(ee)8J?02(NH1~NN!?bR67zd)(WhzyxB`I|yh3<6m*LFAh^
z?>~lAV18fs0;BJ@{mhEL5}al<9%mIhc>ew651caB<~76yU2oT4!%4!EnZ&ksN|6uA
z+;h|byO^<txNk6D=wl~2_#mb_#4u3+Rznz<bLrVkDe%-IwDkV~u3>HZ5YXoF9622Y
zqw^k0N8%=?iCSrTjarn-_(ucC{6e4>9vu8Qh1M3|2Wx=s1qYt;@1PuGQGjLXlPlb>
zEXxcAS#Y)Ny96c;pjN%2lxijtCoeWXhB5t#Uo{TD_?1r`N>shiZ??Z_u-sBDKJCQ!
z)NxohKFBiueqs&UC<!uZ#r?TtEXjL(z=GZn{^n?S^thv_MFwUf@Xk(HVmX(B;ekr`
z^u1jM;ladoK}%}M_b!Gi)Vt^`d6W@RBn9~8MrPUxVe3o-oyD`Q4S6H5_V>246NBio
z70GbUH_W&;60Xw;JcJ-%)ioIt8$afzW4Jp-9mEVS50WdSvrMti<dzzU_CvqkRE;H=
z+i#-mN4wMeB|985eHeqJ;G4MC;;>dbsFOI9k@FH!In@vWBa`xC4f7V^vS{!B0NC};
zpj!EYlbl0Yf)I}S0A83~2X9{wCNs8ZzSGG+`{{Kk9T_2%wJt+aiEcSaujNDnj;JL{
z#X~`HzdTHbJ^Xzb@a>hQQoOvG$;j)44NIkPw-_Du@eU+8Nb;D7PaQ@z1P=Xcd#-%c
z3Mk)N=;w1&S`xnT0ozyQ{{V5bVm-0$uluQDz67&9eZPpqUcX@!n9+fv`t#)#7&pv}
zTT9!iX$GJnPte|-h6eat^CC*;f*91UNHnz${)&h_7^g${fLP}L01&l9QCv%{`c&!#
zLffatXZ;LBO~f`aI}h4&Ki!-|_ncE4nSbhJVkHNnqFo3}nRI`CWg0_8CJGBYMpbvC
zuA@zT;)gPB{6T6Z?KzzG8J_m_;-`&7vc_azQ3re@bP9}ORd8w$=6UPm4el7!5vg*n
z9g!o6O4u}EC#W{J+Fp&|jbTeQj2naiqO?Lr%KLv61cfpA{LHB^9Dnuqh8pxSv=}SX
zO7Ne|@GQpJvQ-CZXK>A|VIAdRx|L(7a1*qIyTk9EVF2ww62DwA7-Gz~(CmVte9Fsj
zQo|ZdN)G6uH#ezsdWi%f$i)jtaD~u?sB&Z2_8nP@59#J5cB~z|!<uE6Lh<d=!!6D}
zg3!AkGR8TS3neJHjThU*#`D?}Qa#BMzmS;0C*$vmOFjCcR`WQq$^M~i#*^1*nOW8d
zT1{70L$e0!+EmOq;g<gZp|6zw2&;!sb2$A>z>FnI;pY?y^ifRPw6>RfVh@0UH-$vf
zJG<**(X=2D+J4d5&3-JbosR@aSC8k=s{a7CWR76)?*Jg%H8($G#j~+*wlE>xbasoy
zPkCo#E3@%F7zZqRLubdn6Z5Hf8QLA^Vqvp!<ie-KIdOpO&zyDG@h&IMRgaHLyM!s1
z?6QsHt4DzhUrlSg!Cx@UJgd-7SF8D7@;hekC?>OIN{*e3N9-KW3Qir}ZIgla=oSqh
zEH%!u`W8$*m+c7MmRBg-f?b$4)T2Tx48)@5lN*i@$kdv<56tmDF@-mB<%{+u(%#M>
zF>B+Z2cKr>9iF8xIfdg4!tfDg3w{itDTSCsG$>++&s3vBu+$5K#KFu0N{DV@Pe$Pz
zW0T|2dWhWDiRa_#W#7crW>#KeWR|iGzMKW|znMUs562%zNB2af<6j4-yDf?F*<7P?
zVs>1)QzUw==KW_oLo^=Q_3v9F7TzDq4`G>diD$ZCa|n9E=DV4I{qzdK_=BUW*GeHX
zvm95s*1O+42K^6-AIxyCpk)H*kd_)feg-f;L<N1xXma%BHuT%P;6}2O@{EZ%8c(ud
z;#KBlEM>m3{Iv_SE;hK81U~5CioWOHs5H)SfPWF^92Q)7CLP)7`|Lpmj=Cya8*z+5
z^b0bF(m~ZITP_buw(cO>{yt->YluQ^v;}tYDK3%%S0P?660&n4`Ht4f%w>%poIdDo
zIS35?tN#GAXT-V&newSx?=zDsz+)?)eP&~siE3S}>!4>*w(bJr3Zo4X6C@}q<3=TS
zwsu+1d8NB2bfbjbToG7Soc;QsZXc8~{{ZV4V1sAdFMlrvXT{QK1`OGSi!TrmE&l*&
z2WETjFy$kdH7hqR@hDDhFl%k5b}JUzY605}Hz|d7cl^gkLIl?Ot5}$};fi+*WQu0s
zsi$)x<WJl_rmi)Oy$5o2wH^?75#QJ4d#7w&_>>o1%c8v`F_mZ?<#eP2Ef@ER*)2aE
zDU|wyd#QQ~mTZ{WFhCs5GZ3@1I&=U#ZY?RL?J)&MZ}SJ|5%=psAu$z)ol5K$9?Yeb
ze|yd=sHd?G$l5M{%p~wS7}Q(~v{@VWdp_m+W;Cmud%V+@4fLoySRc$;soL;=pS*al
zhlm8^=iJPy7dj!Qh}1kKVLQyx&HO@2eimOlKFm)X;1veDc>e%@cohB-HaXv?aK@nE
z_(ez8S_yQ;3qs-5`0_#(Y9)Lnx4gU?SdR`Kzj9F?9wxKPD_v?*zI7Wrgv}Xe;Cli1
z1g!+f%nHL0(GAzKd4P~@)UE#R86!_rO|W>+9pjL5h|??z)G??o#RW4TVDpw-&jN&g
z=*Gi8m1UYR%)*}_Wuw{gkK$}^%P!{=w|?wwSNIRyn0SgxWw8$Zn-RUBrQ_DpuJO=!
zP!g(Rc_1h;3mA@E#|&;<Ic_Qt#luG9SZnx?1+6bXyO;yLJDFmbV_h7!%N-vQso;W@
z@7Kr@hmIGS;RXJEI#~ci<sNX%HxQZ#me+}IT<_GvT(SQEFcVtlRa1SXc1rArG)LPJ
z*$e_3zasem0I?8b4^6|iqkZ%u$%E{l2^@AJjT8ZFGSk;l9_Os5%W>Cj!|{(<g%HNN
z7}rNTh;0JBF5o_WpYA<w{@=s^;uoYt{{VBUd{g1k2UJL2d>ZOCF+KzICCaRS#JOFg
z4dsqwPiY+Q*Gz4oLI8pD6@8O3?#f}f3t>6Q2XrEwAe^t_Bf<;I^BnG1OJzD=T0LS>
zW>4BCSN$cqO-$(CrH^?<(8~}zAk5}k%!x`6c1nSXgshrQggNolWU_&5N@L=2?JjM>
zkF-3+9STM}G(@#Ti8nIb*1bCEL81*=%tF##9+#qF9Va|R*NBwPdYgdZjU^`K+`E8$
zpTsP<imC@U67$!N>7&{ovdf!-P|`e!-Z4iJ0r_(`a)y?em+fCNl)RqPElKAQ1{3WD
z#?D-s@}F<{6VK)=VRFb~DCM6fHx{WKN~vL7>MnpEc#M{75ctS>Lv|~@ltXS=e9HMI
zS`ExWmjtw}ZepWR9ws4zTnl{v0C5ZjGL6SLeUkx-bz!-(rxouT@jo9D+Kyt~{{Y&4
z;k}5VjM<#ro|900<=W$^-0oshn(J*`1g1Ox0NkOp%qDt;o`kEUGcxfvT@vYW7jy;9
zpXdV6d5oL%@OtQXE@Cu>dflnJ{ih2Ie9cOdtly<w8DKZ00}-T3gBh_6Mo>wINqo$a
zA0(PAtiZgs$DXNaFVF@&Cy9dbzTUoCv2iMgeM;A9c8_Nw@ILcF`90bjBiQOW8gm$}
z7_zasAHo91CO&<#1Q17e#JV{B-CVuv@I#uNzF_lE7NvH?Lzz?uZ&<KzNZ|3$RHX3`
zhKWnjRy)N*#w;YTN_UHwbouM$EdC>ve$dt6h0u1l7^1eOp~7oPaOZhd3rM;p=xs!&
z*-I8<-bPV^2Pdcjr!WTa63k=K2o<&z4X!43yEuu$S7$LGc_`$%i%@ImYm*Cl;X6Z-
z<DzsdF1WTG77acT6O&UKp$0_a8+!N4dD$2|$cSgH)4Zv6kNKAN<I?11&@&drNR>&I
z#PjJWiODJ%av}Fq*Y8}vZqf}Rq4pp}a%<D)Y3FF;5jjGGXF*3man(}iHS5y%M}Bbn
zHhEv|6(z2EptZ!gT}+6T311T0yY=J3dE4lGm}25fdw6}q5#t;6(=tZj?*T)QmMP@O
zEF!8HtfQ9<oNGyBE9hdO*hDWl6c;nR##z~?P$;-19FoORv51d%U*4VLN;#8M>vmMI
z5N;;ZyFLsVgjlV8rLD}moG+tZy0ZYqk5dNyL!flRuM#{U%qW_X+?iq<sq*OWynfDk
zlnTdJwD2nb0JuHf6_1XB?=Jgg-Hgn8hX_`%Q~SN3+hQ)sM=_+YAu~tzMHc>Plxi?5
z6r8g2${xypv=Jm9zfd&t4>1^_hq0)UV?Am&ENL`Hb6QHS_=WspuYxn}M>aL>j7J&z
z8-;T~(vEz?1~Nk6EHjSPa}akgk53(tYSS)k@OF<?;po<5CQ;Y*h_0eQX15GP4^8z?
zmLVT#hA7-6)T<?y^)_1>Q#4Rwn}cYTlk33T<@kz*F~Q=!WJ#&oMKvy5ROMi6<<f`!
zhyBN}ec$&0%V$^yvkAY6ogbO~bNP+&DqO(XKY40bNAE7XgcH_(TtzKy+^LQnkg;;P
zoto`<_|(NH@_F-c{O%rL{{REbL(V+FMYp^k$4}g!BA<C`eJ(OAz+eo<=0bQH>q9%k
zXV%{m!d7{V1*6?}C{q@hrXg1K#Ci+i6_tOI7~6Swzi#5&?;Wdqxc(re-Xey#a)im+
zKTG4v0hi#P#)z(_$2swwA8LlK<@BJ23ib%P=x`fIwLylGiiEwro@X`HC5hd%A`BD;
z$z%3N@5Sl@awW6F7Q=gv0l54msZrDg8@3p9)TdEape)SEnB{muX!cFl5e<~G&obEE
zV{j7?*)iXkc6j~FN?TAUrlLEP!ZY`buvh(YDr#CTd!Pjyf~8}Kw_SVTiC2Sipma+%
z>zxhiHm&!b65YZ$RV?Q3t_Gp0)3~?(65uS_QRRzmw>Cj}b=2-=u5EBpk<6*6?loAK
z9|V2s;84Gracyhy={rlgIzTN_$DGAYy^_hugJ5>_(DdS<)}=Tf<(^;VjNVVPDRMjU
z{{SU88S?`TJNnEqE>siHb1Mp^U$}A~O+HC)VI0Rhl#Cj1gGEf1O0yFo>vD&8t=JH3
zFydHuscO^TqOoiXtADr5R^712UTO*hGK-iTple+Tt)#7Vb>-m*d7ndwasFU0x(VD%
zvxr_jq4#S3eI}x)>OYjddd&h|Ble0>+#!>pme@)qC3H)MJ@a(Hr0vvQI7%JK+8eoj
zDF~NC#Cxam+4tnc2H4Qq>xl>z)<Q2kPC&ZVM={$--K%{CH3#g8R7X)zFFTG);S~L*
zWv!S2seZi4ml5kSN&xxlIJstxElZ`NQH16u*u+r8TNRH0GZs!b%Pi#nA-lK)<0zXJ
z<<DM8Wo<vsC0+X}H>!%*-%F=(aZ-)tfPs@<&4%Dq<`Ov&U3%$60G9x9FSM*z`CwFH
zazpS;Xdi+phcTsSehFJ!mR?u-{r>Td<qGX=OQOG)4ptyl8)ho;91s|>1#epXeqsm@
z8jF-eXczFrBWtg;3aTcQdwITC1?s+mKw|^u7q7hg>O$iOa>?V^3+SwIuZct-<@B1i
z4p`v-0FH_pNae25>E8!h-q~M!IVA(Fc$HVGT3j;Juz|Ph&4aP=H174PmveHCv^%n6
zyy+?LGTRDF_k?IgE*Ux?xQ=C}`s99N2Iun<mv|gUQN`w`#TN({4*vku%EpKCl>Y!N
zJ(+sGb>M~p%C0_Rd(~t98A7w(Fqywi1`C0`WyQlSb*K@>eP*sbL<6XX%lBL|sTIQ{
zp)87826qqgWoq8vk8E@gY`bFJaY0?Yrg{e+dl42-z&pbz?RX;5sjrx-kyn?pG7i$A
z!5-Aghgx>V-!N~fyi1Ri>Zy6e@jqL@PoKZ+_}tw)bX`--Uywq9UJ}~oQW2_5gcl~C
zvfzBr&k-oD-{Y$7F}4Z#E%5-V=c=rtM8sa-XfDp9RK<2Wmja01_#5d(K)$2*)B|)!
zGLk2nsqoib<~kyP<_MlW0P3n2nwpn(Z|A9-OcWmomLuJn6U6gU`guA7D`mMUh;YiW
z?f|E8M>v%~0ooh5e;+=(j9Uth-9z_?a=?#tx~He-a`Ub@5Ywu<SamkR>kXr5O0MaL
zzqy%u@f$s^{UYfFG3`ZdJs&MSSz9Y#Ls<pr5qj)~)>b{<khMZJjv19l6Fvm8*S#?I
zWsAHrpG#R-96n5Fn}=_WPtWeIG=^hybW)BcTkA0_W-ZR+eY5F9;KzptuXV6u?cOD+
z#Hw&=mjmqXVHmsSI^R7^TrnEjVBF82MUA{dq|R)-xR%cG?Z-2aJQ2;qN;gg2!z0_T
zB(D5^&q3A0t-pCMyO~Ipzp_3_hhW9R0==7zOu6bhWVP7sG_}UO_kncH1u`O3GaNCw
zGN3}EyqTOZ*N(JJS)UM5>j_~T`*#kY!28oMN13Uo4$uNk%u@%s!MRn~f|N}%>Qobw
zv96cy!@3U-`<$fqaXSbHy9JFTAT-=m(QE$zyOo~2+}<HKari*Z;rK|Zmd5(nGT@ZS
zq?UIbO=eU>SR!i#O*wNg`qqnP&fxf<ochjY4^3LENR5zz(J%wvQ?0<Lm$|9FyD5U<
zlxRRjGZ<!64p>$2iJ&`9RKSN2j|;d;q2GVG4?B@)j*-k}&yL?{mEf@v%qn;)ae3+v
zJ)-;}0M;<WXIuo^Pp?D)rHr$i_ngNtg|h~k*p6+~A?*C~=6_jECa;$a2eNP1W^d;b
zn94u+W$Nd@5KtnkpYJdR0j}@cv^we<{{Z8EdxB@4nf>Lt^AmvsG20UR&#RKiwM|T_
zDPo~+6dC9p<Rf9;2PEsQms)1^lYLxR+`qqL@z(m-%M|%_JnG;z6guJ|%rGsmKJWGR
zf~n;G;v2|88D0EBW`R^DoJ<SXVU`8mq~H%eSScReT#n&x0L;7FgBI_u8atT>8~I`v
zq3biZm?j4L?Ey2cH83YI&!4-I2rKaKrPOplA#knfMUT;O`w<Wk$dR*dX^E6r$~~qW
z9i?8^FJ24^dxcaGVR>oKPU^V*x{6%fHH^0hn{hPa7s8cna{8PW8E{5Yuc+NE#cXr9
zsHw7jquUD9b1q<!h9O6iYrFG^_X*@9+kM%BC*dFWG%I&ysi=d9%4>u$**Wg?x`W{b
zljSTk7*v=E&r`ghrPK|nVe5H@3ZEk9`Ict!?wL|^k)yxQVmDh~P@tS4h1?N(kBvY%
zPNp>xXHxHp4sYFHH>H`X^DAB@0w|6(IZqOzdB06H>H`L&o%AZ^<}1U<{{5n{-dqO~
zhvAsvE9q8{?+s~}EZp4W<^V=_FPp{$zLZ7G2PWXGl`)80g$8<5Gz(?dc4`+n2K@Sq
z5Z4m4TsoyQ<dn?jV2<$(=xR{T+4Blnr>eS;%)-$*Mkr#{yuxeI5uIrim*!Z^;%wnD
z3FkVAYW&CS1`<|X##&OMcqLJ&wwxO4%tLY+fodo?+&N3DGWE0=m4)vBUjUA#*V!#G
zYYn~agIbzz-6$w~Hkw%{7T@13nl-M80BnY!{{XXI@bej#Vn_9r*%1^Sxr1qE@cc}M
z%&%#+#6Xv*%P3CIc*2(njiy%i%|tgjrqK{u-lu=n6F=XuigPgHJ<5o4kBH2Cca{;g
zigdE22v{-4q)ayd0231b0EL#d%-HpLLU}?e9#tztw_Q!1g;3iCvce^OYVGk5aWH!~
zFVaE+`3bN%_SSkB@MZj5!7r{Q0nbnlHRn>5JdI4+IIYWN@vvz>ev|<)&rsjWCG=OO
z$~*QSWyjEi(IFwSpn%QYk9cmq>49AO-3rG<NXq!)SqoY}%vy7Lf5h-%Jo#eFJ7$j%
zz&H3Jh>IWYI_T}VoEDC_GJWa|ZJLEgGa7LWOBjpYFU~rgcFrX|T~zqM>){z!bJs=}
zp5v~Bbr{Mea1MuID55I58XsGi#K;Xs2<NEjMx}aX+zXa2hhK>!{l#pzzMwtWh}RiB
z_0WSuq`~f@+wbV47W_+2+2;9Ich{fq*XBmg2w|v3=XpAhz?ap`nwzRmzC)qJFF5ry
zN5UtSrrYg54bD$q0%2+63F9bc3%&3d<8w@j<o;k8-@N%g@`qT6+cNWVpPYT4scgA!
zqpm#q@lB4SRhiFcoaKF>b97nm^6k@?%ygE&w0i3p=Cg;i&Gz&KccrNlL+<TLBL?G%
zPufo-EO(v}Jvp&-zM@-F#^L-*am=xHm-r03FX=>VxGPXm3^27Ksi7OZyOq$WJ&ADJ
za)6FzG~=m@I+(V)K%H?a?GZF}HQyC5e6ATK#(0KP^rcFP96*9&6k~w*JW8VF`P^;D
zOVh-pe9OUuV*~P8Vl-lM!NXRS-+p)(GcD|vE}o{@Yx5P~f<Kov7Yy<g^8|k(Q{Zo8
z`{;kfO7iy366~FAP7sbsY;dc}8PZwRJWBb90#MujCWHYjUjG1TX;!~<;p>=3IY%@Y
zmD&4htjDN;z?E6|xdsTePEv&Zr2z8GYQY>G(6`AizC*L(7%ThvhBYbDh+|MG=2y2S
zpj9G`V<#rwCwN-*1z2a70%2>&^DJ18%s?&#>~?|$-WsnSjm(E|&7x<NV=}b`ht`|h
z8i*P5>msdtG~Kd3BeK26FqE#fADlYEr!dzzdXF?hRP!kXq32N*c7O{oV4b4{?qNoy
zbnWVEGh+^0Z`kuNu6OzM{AMZfK562Zm*NP=$5nWTGcK6METVa+-!w7(AG~S8leynH
zKF}iM-FJIS^;!NBo>cQARIkhm<x0QJ`?ngy5WVx2q5KsZR{PLj!XySObHqe9=U?hj
zffnzrEbyYTw%Y19jcx{<M={LPvTk9H&H3q2t2G_dxq}>-oVhUoY=csM=x~d|j<j53
zoOP>268wC1H&F<401~tx+{$3*amqIlT_Ivc%52;|S?lGmehG~n6)T~=>IG+kYchp$
z!7YJWik0Qm6&$&Q4ZusP_0uq(8i+_?%)^*ecL)o~1de@|#08dg%j88#T9yV2-eMcK
z@dt)JVvBN^gDkXu2xf5-p)f14h=yF;tiIBz2AHCrc#f{QfBT6<Xv+nUI(|Badm*Y4
zmkEG4=~pmQ_KV1i>(9ih1PL%2ow`ywdc@+jEpyzjxR>3;ybfYf)9<D37}Tj=muUQv
za{IyQ$ZlYs;g!n74iq=3+Ad<nvaNct=mW0#ap&yo2IV3!Y9(64HAJq-U6QlI)0@Vj
zY}c;up2R_W`ryI#j(uX4pPD#TFF5tB;RBTP)DB``aqj4@^7X(?G~DxaL-+`-K3Q$^
za-?t{$5tn3)%6Mr>$Ik`P=@SDOz9=gaKx-1N1KWh9O$A@I}@Dl7Cs1wnU^R&^It7Y
zy`DZ|uKF0n4TzX{*zYZLdaM-6M`S`?NFa08phRrcJQ|i5e6Y&6G?{@>Yg5d~DQTXp
zGu4UFFLA~!Ohe%KVU;ri6|>X*#Aex~U5m^XtGsg?bs8NN9lNeD9gpTAcK}~ZFbeGm
z{zSD;w0pd}hTDOdn~;+J8Gko7P9t)LrB&|*PZ28Qvl=yCzX-K%W$!Jg1}GpmxmNWq
zQleX|QWrk)Ai0iE4J<{v`G^eL;xC$ILTV)t^e_8?^Yy6Jxcthp#%U=DF1X&>9Dj2h
zvV=lb3Q^hsvme#V!Ef&naB!KAe{Dh;Nr~n;_nh8alu9`&Q(ogaNNOXt3RE_1_V$-c
z{=T;Q3c_M7F)l_lm^b@9cmp_jO3-lBOXxhjc*;M%9C~h(rf7o|na{1fZqF%#!{^pT
z?1jWijL!@1*$;T6&?Q4G`K!HS4~(OtBzF7830LT?#Ul29C9nkW73;Cx478{x37}!O
zkHib6jeQtc=}ZsiisuiBSVU*Vi)m<w5M&ddi1icslx!uCx)uRGBXv){FE@{I<=$Ce
zW$oPw3$*u?PhY&uxBdEPt}!nczIxSIdXO9Vh|kYZSkF-GCZpEGw8s|DDRrWEm+sZn
zU&Ok1r&=0VP@#eb^A6%)_Cg?83|z4FyNCD*YLjnTv%&zp6O|Ye?7g~xg5qBu(Gu*4
zE%n?(1}zaX5h@v&=R1$~2eg<r$RVLQY~jfpW9Ac378M<$C{q?X=we``zoRtZV_+MA
z&k%7~Bcs1jW+fSS$`_N?kGVgXcH*nA3qC}aeX(sN9pvDBbP&Q7lYDMy`hu22aV@9Y
z(rqRCDi6F?A7nSuc(i&3i9J?r_IfXv7m{WAd;b8qgF!l}r773bxEG_pnB}d1v~<5+
z0|=}1Psoyy>Ot81ukk7GXq&U3AA@3KV7YwM^)+&Ymn*92E>8&?!NV!#68rg(Z|L-o
zQ7ZlI^Df$sJdlxdDa-^e^K1J=O`|WQjx=!{+A?|S6&%caoyPkk(#G~q#Qd>806~f(
z=>(zi)yy4IJ#{jaHTgij*HB$F_Z~u%P!-0WASc}O6Yh-XM74dOT8<YwoP-=)74Aj@
z(HpA3+c|>7&3<RVKh$w-`2?r;mcMSD)*iDMhz4;$j-AW}6B<nx-!hd7OJ-qPL?<L`
zk{6=!%-7JBq}2rZgI!YrTw8V7ETm1`(N{)cS2K~No?rvFu7$#V<5jj-;t`?_Z`*S)
zjQhkK!(`qFwj#YDWpTVJydS(9dvr%FT&{g)HPKz;BkeF0i?Hr-^@@%a*O@~Qvnwf#
z60Kym(}|7g+$7pHG7b-ttiw;wrvn%iM4|>=_Z@f3hd-;l-w<y7CX++}QR(tbIG$MN
zUdxa*aj1NK(eFtPhkBVD!h;g;%<c7h(ioN^mgS3+Q_2~F3sXFR>UWq&vII4Ocj<1H
z)K`^+u6Ab<)Ni&Su7$tI5Dy9PL9(BB{m%;?6aD*66BfU+nvd?k?iq{W9<R8TC-^_X
z6}G>2RS;}bn2UvHm-BJjALR|O9t-$0RDM6waF56OLZ}#;w|oKo1V8f6`I#y{B|#6B
ze`QH#IQ_p9o0V<)QPm%t{e7whGf?5gMSz&ldK@K60pSpk!w*g-Y+^1KFj1ZLRv*3z
z%~;%2l$e!jc}G8DMB)-@m~LTfm_f=h#ck0@xOWP#T6lmn7WXh+hy`xpi;Y@k%eSvf
zXN2yH_<_Vj4fVnD%5hGT<@}`vI<O0Dz}#R@61td_LZo3aS7_#HI~!*M4NTC~0MReH
zS>9X8G2Sm`;I^nd8_W2Q^99u~>sV25^8Wz1ls62peCPZzj4vPkkAVksRv4z$%xpCh
z!R?L)rBPknYFBVd8jjIw;75{=h?r5c<}tgsfAD>wLf(T@EK8OyI*4@J_JX*3^&9d)
zDn0h#eiJ$HGN`Xv(fiG|^9+~a;wT5@9G28`xn0lcmYaxScpCJ&vvRtn6u@v2+8j#Q
zY|OIWy1FufxZ#)>jU`044>LZxw&ynkLL+HD?DBss^M5RQ*Yo_q<LxmNtDiWH44;S~
zu&(YVO~38`0Ae+@o9SM<v*=!KEKS5vk1k`60H{v8K%+3b>Pk$LzmIgvJIXcY&Rr(+
z1Bq=uCIiA*_q|LI+di7Ld(Gr-^UPi-5|ifT0@u-r2UU4ld0y}VL{NFu)_^k=ovbs4
zG|Rad46jSwsfQZWSc5N8RAvM(CZQ<?{5s|@47i?PE!fn&;?ycQ(Hl1hjewx=g@w3;
z!_i$uMJNXtxv_a*)^q+QI-B^I?FTQ9@%Df;nezPZ02b)fq}<?wqT`>L-Lh~Ur#BF)
zhSlbIN;oG`MI3GOD=OU9VWBPqvIxPTj?!WpmmZ>yOuzS1+FstWx!kEmn?p7?DUpCj
z9J16XH~nKv*V#8^{IIi2`DV|9bHA}G{{WJ1m-pg!ly`^oF*irx{4e}R`hE}f9fkR2
z-r&?sFdSyQ5A$=%ZqfaHp^n(*WVDNAMQdOULVObtCMb<x+{Yo0-yHASQB-5RrJCW-
zzcSALZ5X*GKLZnPDpV^$oAEGS*Y)Sy-6+lBi-A{PXcitwggV?3{B<`dBWUts6~Y4x
zyukM9;lRa;4X39=qJiFIJ)<|@>dx+`*~{0!Sw@B?wt(r6WZdFYyz}?>d;(*HxMkQZ
zfa8KUcx%^IcuxVrYqY_yH39_4mK|~~VSS$|zlnohmaJ-GFNw5E_KityDU?G-3siJ<
zM|8FUs5+<Juf#7e%%!-403}~P1f^}L8x7ebIB#-m93I?u+6O@qjSqqxm47m%8TFQb
zj|tt=E78rsp^sAzLNG2$IjusV>#p~PW%G38mB{I#;fV7HF-4Q5P(pDH-Q_6aV|Vq@
zQ!UFq04g0q@|6=VJtlbN#O-K^*0g~~saj=-bC&&WHo24z{dJTXMMG0qW4w`5k_By|
z)RzdXCe~4?Bcue`2^`X4dr8RCH(VtU5?P5m8!S_3ftu)`;x-wz5&4<UN8&mp9-~FF
z{3C1Vxa>ni)MPur6N9BAlP^02=DlXrIXyBRnqE((xbZOZdPTzMSp~S{l!<XF>$+m5
z8e^$a<1sXQw_BC%GVdP{3S;ig>iyz1ocnb|ah|ytu8@7^Uptb;M56lqI|UK<Oe6N6
zoxd|I^cC{S*q%BWcCTJ)RQ0@`Pbn}vnf@m~f1?r;9nQ3v#W}>Kh9wuakB(!j^tsHj
z!!P0(Us@|_V0x5tB^c_Mc1A{8J<^Z5TyV0(Y^`pfxTJF65Itr%IJts|cpSS+A0+Pv
zf|=md+3uF+%&@`N62oVre{`!jmt<zavAAIJM@K+>rv)BAik;a~mxpOu_m}(x<a+yw
zX?%Xu7G=CkDDsw<2H-ZtxH{XGOdP=;WhSKU%?gE9bx(+eK>!e|SCr17U#5(@FIm6B
zmKOQ*?Uh$DfZ|}mDzonp2rOm(k!`QM3n#>>tn(fNb0_ycKkTG4qub3>Y)h>F0DsJC
z$Fu^pIhE#wa9i|UsJ1u|D!qsQ05W}`9ns|}P&8_7Ze)IEcc!5TF}R97p~UkzshH{*
z+&-s~xq#zty|D9OY^a7^yMNf-)A^JXQ}Hq2ejqpe(;DBO_W?JqU-j!Lc_Rg(HHUuX
z{C1)O`gZ^oxmE0ClBy+B8@qjd{KEwhf$)|wrpO?J-gq2v%`pbqbL(%3bv!ZtU;<aC
zv?k(3gGhz#O*bf&088nY{{UI3xVN}tP+g!}o|H$r1z9c%K&?wzY^#7ZI2a;VrnLaE
z)N(Il{lrSon9!%%8B;F3Mj@Lf+oMwR-2f=uXBaq|@0V9GxyeBOBE^lgi@7Sp-ZL3Y
zPoHI|vj92>Ca^@B9K^NfaL5>peBv0JY7w#y*lVmDYI9v_b+(|5vu~u{F%^5y5eOZo
z;^lWLi}ocdaFbQz*3}kN10+I24r7_vnbDuT(9&B-3AjIj{pOeU5$&Jm6Hpq7$~oMs
zhJ-4s!-$sKFjE1miMS5ekG7w@YHP=jyjCs$05XK_HZt0z1-xo<qjA6Bh{BhNORFec
zm2yfYoJQ?_Ahh6)#wuIsq)uuZPCD5dQXo4BV^Xn1z;zQN>#aGID9}UWsuJ+ayOM<)
zj&Vm2@AP)r1Gbr480MFcNU2O}6+I0L(oY-CB{D>)S3N!~)JI)tQ)YePsOA`z?HOtq
z9PV$b_+Y9-RI_&gJrT+4g7{M@4PUw{oTLG00&7r0H4=u%m31HOlCpW<T8fWb@d8x7
z7zZ^c&kxa!4dr8+wbxnRrfAmYels+Zfp|&5Ytmv-1z+79E;{Rf1PX*?W=EE~fnzp+
zY9fNvb`8uJ%4to)7s&<Mh(~YQ33cfes6%9V%%M=>xq2E=V(n>9>8M92)b0KA5lBiD
z#oW%B3Yn(&4~Bo9yr$xT(^G{Ea&dwKbP6QuWgJY}V?KYsv^0%faKz2F#yEtf{K?Jw
z-o~Kwp?{gAD!VaWp3JZ|zJnU;a-s|Xl?5f-GK55C1|_pVaUAJs@h}v-F}^lziHCnu
zsx6c~#{U4CmFbW7dzJ1FO;p36q#e@^=pR4#!~nQTBcFNBW&Z&2`$GEe4UNvxvx`ul
z@(5j1$G3DbTUx^X;{>?)H3+75>hhR*QsC<GQc8p}&oE6MoX=)m*R;iso{>ueI6kGs
z;M8hko~c~!C0t9!J>10;zcc(x5Vp~)C(I6+Q?mW%Aa-{3rNG)U{7kRgv4N3I+-GZ}
zkmd~@$=cjmh!AuOhM4MIF>UqgkxcUyr-*5NH>m#r1icvBrTb<B=*qMl!a@OZ#nvr-
zl>EW#ybY81_2g-}a<%C(4dF%1WryZvNH|l)3^*;ub*c+f%&S-_B@-6{7!OEdJqY;Y
zFWdgjr@y4j<`dN^xoDc>En;szw7G{2z(vS)v$;!g?GWt{I6>OOnql9j*$*#K-u8?w
zBQ@dK+FsoE<EE+@DqLV8E|n2-3Me=+<`Nk(;sV!n0`eh5ZQ2PZC3<Q6kk$401WH`j
zLAb2<gM;h2JVi&!r|nOUOpLp%_=04=M|Tz+-&_62-y<;4<rm6SF?fS=!vHZ7Wtpug
zXB~GZA69Nvo|;;i7Y$z$nDZ|&UszvpEeAgD&jead7Et%4*KE5<Z`_Wrsi1<NT}NV3
zACj>=5A=6vRfl&|S7zhzq_{iai*7k@*6#btts8ZAK^!ue>C{wh)U+v9K-_UN5aNTZ
zM9D4REWG~!Q_!A~39=Y^qw)nG6O<NTm@zns6!8!32%ve~-M;Zq((A=Rw+ft5A$amH
zl{lBS3lE4WcZp3;3QP!U=%;?aE~Y8K#205X6=j$7;i<vr-MbdfyJyIIJ);UWzTM%R
zn}`>4b-vY$_&ZAzgI*7KaTags*LOCpo+2HRTeSd-sgIy2?R7ZPKyq0Y!OK%1T<gSp
z+IN&!WOKi99mPotx;93q%4Ce~i?<Ul8ahtbsw;E)^93g+dKJ<D@ii{m^yzan+ZkeE
zRS^KP8DeSl_fBB#><^_lsH?=FOA7;-S=AD-IE{|z<5Rsa6#(u7QagY430(Gpi9R!r
z^9SZVCL@_gaLfwVKHXsc+bTff4UIrhctjHp-~~8w?4!=0C^|Zuf|{L(j_P4yyY;+0
z!lJ>JQ11FNg>E==&I|~>^U}Sr9H6hGi%?Pr$|~XoYA78pA%qQAtOoB)ZV8vk)!1$@
zAB4uY4EgmI66E4mhi~yLZxF0y+_O`#mVCoNHPq=WRCtJsU@jg*GnQVyH9s^wnc_Vk
ziM9Fbaf8252Hpr*ug_a(iU*iOOu2}G#|K-ty_pjj{{X(4_9|eEn}T9&-=e1GrOJwB
z9+2)(&78+&Oo7y;t)#l%?gHMy5~G^`0PHn3H0$Mxh4X7(d__xYD~W8blO2((?X7%}
z-KsC|6-Tu)tJ2#pQj~5|I)*(L9Nr04M^a`QzcXS`3?f&VSg%{IB!Z(?9OdS7^u~J-
zGf~Oo5YoQ?07pOw_n3P5WNH<dwo^FlhniX)nN`u|P1~VV4VaxhM)u(7{a=_i^wf<^
z!46!-@FijLngd-%f!Y}T_q$;5XP3Sp6MUUCL7mUpl`EXXyQ!u;J#{_TFGJc~etA+k
zK8ES0SC!;`BenB48=)cY2-iAA(az#IzR|{WuiM$&U=}jc$cLCN1fk3}43P;j5}B+b
zf!{E&3MDHOCoy4W7m0g<n3+x(p6+nv7R+(!-sT+zYGU-{4DB2SHI`YvVRk#iDX7*~
z7(UTQX)t}_W8*%YDUm29$1<KT5`p_l!zpg&9WjlS{KJ{%C8sO<MlsY>1R~Y!8$K+d
zeB7XfxJqFzuZZQowtE$P)UNB9ETCWvO7HlAeg6Ov$XD?YRo%S6s@UCr)3}-O@hCI4
z6`)~x!x^S)X<r2V9V~^zZqX}uiJ=d-qWU?S`T{kH+lwL)SZa~cnf91_`Og0U&SSo2
zmUA0p;wcA|x5+f2jP-gyDU@-jbZEyJ^yrS~d74tVV$ux#I$4=z@jBY2ESv`?qZ|{O
zD}m_)_C&THX`C{C*w_7HqqqM6BctrB7Xw;9B51O=p`dj3Q@H;CXd*cNP)Ds2#t|GI
zx0(1D^q3gq0UwluX!Gvt6LaX@GvYaV&Fk<EX1!)9Fqc2Gse~pTf-j&ISYlZ^@t(9o
zcQV*oPg=)(%YS@ygEK*qqE<%?tap~Dw^JN-pf|VgF6ireMF9-@5ifH3kX}D`Gj{X8
zZ3WQBZb$a|1e_tz%5q%&ktu!ASbe1l&kQ5-9y>)gmd?+3#woJn_hk#Sqs*~)4b9uU
z2+m00@|N$VmP%CO4X<0eVn=htBkY+E5{KF@EWqeOE`iG^d(WeEFKOcsU1Pk+cJxC5
z>uNf3iXy@|de}s-&_QMF!Mb*i6xZU*;#Xc>Z+Y>9-K~EFtev9JJkNyAfV`rw5<DGm
zEHc-vP<NCa($U_YCVdT3`ISCz<BqBdDBvI8^(zN6FnE>+DaQ;?XI(HfLACWB*)As#
zZYDHm&+`?(IF+WEqXTZX{1ZK4sNZ@-qMne0tY&EqUNwp#ou*^FUeUN=MP+%5!Dlih
z^Xa1;p%{<E>RhKRwPi*Nz99(W=28`~!<s`cuChSw2y?Y8Pv!M>>lC#e+3}d^RD8$n
zgzU4j!LXq+qt00iak-b~XvFVww9drK2I2({zki_c4HIkb`eV!@A-DSxkCsu)1ZOv?
zN?Ft6n9$Sr_t7tdGQ+&gDAYAMmMN{v5OJAZ84L?NLh6#Ei>N$1H|nfRhp0snW@hmP
zmvO<5r`^l@5RlP_T<NfT4<=u-gsOK+A=%Nsv|L&@1)Cc9jfk-k7Ylxtl|%WQjJkc7
zpEBXiv0AS(_2L*+%>4BanA#k@lgm`74sBbC4knoEbZ)lGhH2~xChq+`j;18uS%z3J
zM6-N*xjB_SjC<OJxV!ZY&m`G?w|SKYoy@PyF?VpzVeI3XkPoc)L>TUv$@Bg3EKPJr
z+U4WC^6Q+Q9Z}5zUowY++y@a16+2y6l!P|0B<FJw_KuEGv6^BPt<9N_5rb<|%K=wi
zMq4<UX{pSoG$d0dr8niNLi_{@uO8hD%a3=7yc>m~G*8J5)2V&Xtm0I+5R}DO)H&>#
z?mNrM$-}$bx%R0`8_)Y9D5Y}t_<%-4&mmCV{{XMGLZ?Bm>z~Y{Xv5%{fDFzvZgs@&
zG3j~1(U&pHdx2W(_awr&j|t4MAKUhHl2eWCC`IU*w#fB$5@>Va#AGb}8@XkHN$=})
zPn0Sh^(H<OE~QuMei-8fTM*@D>h%G&4ZJ?C+L%85BVJ5-TVs}#!$ULiqG69v5*LOL
z)_u=AS^guj3Et%Iz)OKe676s*Z7;3NA9Jk<Q)CBm@e+p;-^8y=`+NEo`@7;6Rq@rQ
zDTH$6nAL+3yqaO~V;nZy_Q~0puhqI<_;;q`r3`Ft9ajovSq>W}gF8t8KH@**br%G+
z3A<OsLAm=(C6hHiguTQTl!!JHOlEl_1hoU^0JIU9H?kle!~oWAR|fc$u7t7liH>E8
zLkUxu^jyq<b12SYJjee4C3B>SS<GOL(B9Fh*vE3J81$FSVbI({#?XLwM!D?#K{njy
zx(ReWrv!WN`JIvb6CGRdvz8BM{mlVTzDVC`R9FXgD^@>m%)#JzqxhL}$_5@1BCv%n
zqOD&N)bL=)8-TFT$LyaA{^4mA`^V&^JRNL&Af<SYXOE}3g~^JSuA=yE6da*ZcnB9q
ze*2N(fC;LyUB?phixulTOL4(2T&lVL=mBI??>3&muM(=mqcSrp#)fXbo~|F@KkO2d
zeQJv?rdjTIl*%Q+)j{;<uMCj+*9@@Y!$o=Yt*PP1#62Kc{rUD%<KbxfAltZxa3$|Y
z9?4TthrAN><E_&f`@MjuIff4hriA5)xCq<vZL{6eDSaQ<@%N0E$>?4^X?d17W@!zn
z3`-eoIf-shPsGZG4~FGmf_NT$F>%!MT|p!TJ35|@#(21ORL4xU2FNYWCgRi9P;NNt
zb~u-$RXQ-Ka)G@;S4~9Tj_=#?3ZDJbFj#5PR4Ro~s(O;wczhkE^gO+fdCqU=IZ@lR
z610j!18s@Ih|`;+xT)k7vlQ(-sp;T7LQ{5<>g8dPDBaW9bdbeGrI&J?otV2N{{Tmn
z2snEG030RZv#pATL#-(=ymJPkTLryLQd+-P#1uU$gmxglrMhtHVpzmT<J`}ber1<`
zw_7~q>rbO!GL~aO9X$YkA(y?+p|yR_f;mCP`p}%W5O5J&^CstZm+V7_x6RCBs<vj5
zIE=i6{j-Z@m}#7p0n03%$5S&1FDv2!jEq}kI<)#}YG}AQae2)r0L;HK>iE9V3z?m#
z6Ok!GR*1=S0*BIIT1kDe5Z4mHDhQNC_+X>OESu$%<6gyF0PK!`FbCkNZRcwMbIiPR
zmt|}UcaM~?<_&5&vS5i`C96gGpL$S>7>Rk9aKyndFQ^(sW|lWl5?1=0U=4Nk2A8-e
z>}4f#_RHuHha3FCW*l}hi@$xqTwKiH{{WBL1x?Lhr7x|&ynUkpRetal<*7%##09k&
zD#a27^OO-Cqj1!3)-@^?aZx$LKsuQhGV2XNZ>1Z+<8h4BzXSm2nr?SI>R~GzmexB*
zZ)*az3~Q?1{Z*7Nhq)}kwikcH(pXbmLixkl)}ZzbRo_En?<%eFKMbhs^{~uo;F^SC
zk`A=gGj{r%GaiOD>>oW};%vW23et$SGUTWM?uJaJySR)7U^{j1kb;i3JpTYQPUHBG
z4j`yP;3ay@N;fbMyt^E8(xyUcX6~Z3EYa#lYc&bnC9{O@6Cy*AmZPyp9MUvRk1*9+
z(b<K6bK|ZJXl^k3RCRLO6jLa|IKovcRW3CvXW|O&=!PcxqJxw!1S27rq<l$vF~9fY
z-R9wj;_FtUN#(C@>dxh*r*e*fBSlJ!wafT6E551)6HkxgErm~<{Aw%#e80lfOsaRp
z)~~Co`xt)YBe6@AWw~EGD~}8|b|O>vN(U#U-XIh>E33@xy9c+7*e`it4N4PBpJdJ4
z@)J{efa4}<?pQnSXfa=o-$HqtW^|MneK!jxJGhH+05~0d#oW~gS41t2s)kU9Ug<?2
zSCdfC9*`ho>V(5EM^ar{Nnx#BdMY2r5#aW0BNsLkM-ywA*97w`{{Ux%yK&IkvD7sT
zu;S`*P@v358{%LeOs+|)Di-1sxR2kD@cZ=LHz}Pv@d1GVFV9jHkx_0t=89!5r2%l!
zIeog}gH4G@1Gw(ZM=N45W?%B3Kh!|Dl}S(rxzxDx_x;59l&2m#j+aC?Yv=mMdk+!l
zZ^WeRhnc-jT(h`aDpYPo)}8+Vz9Q0O(+Sz2-Fe~#?pufKnU^>do1EXI+YI*i3mPlA
zy-U0fAi(Vu!-S64a$vg5b>y)y4p~YZYu4iY&BC@e7B>oGpz61=xPA>6ao)E_X+*h4
zO20)^sYBCJrSYmQ@OmvEq;t3<Q3r9i4Z<3RM>zU~htFV2S9VVp2&L`Z<(B^dA3~Pg
zGvJ?Ys5TIS`D4}p0GNm3XYT^565BAf*brNLm?P;+ozG)uugs^(qo}<7EX^IVsQ&=O
zb#k9*1Q~Y@>lu>2ZBq&Y)cHi>oqARaBYQobV3#EIy~PR-Vqu#d=Y=INbkW%BXCGts
zSF^vF%6fbGw8J&0zRu^d7OQ-r#EE_ILIDS{Fe`A)y~6LN;h)>;iWrwgIdt_%X6V9&
zsvdw9hs+VX?=LoRnZV`tm4R7bZlaJyceh+6Y^`%9pk(%x4%1QPD*ZR~6&y<5c$XT5
z&DyVjyTto1<?Zl!pA70WJgQW9T(@S)*1x^Dz5J+)Y%nIwM7^++UF3;W!qCI{mk%@L
z&!`>Q@`qifX4CQH;6$`#kIC$tWizjfCxN4?C6nk}wF2g4vMx8KucL6?qUQU0IPB_T
zC?2&Efz^wH^<vDbK9f#>7DS8(d`qvNO@7iF0|k8%ZWxz#bIctORpLClYFG}U=s~fE
zfdiRqOeC@`bejix@|*X|Y34F`-v_4Q%a&le(g;b|h=k<(ZdrqJ*MlnF?zW8^M{ayT
zNxNCV^HQI}=G@@)7(j_`CF`TK)DFml6B~t86wK^J7^?naM-_;`uKWUML!W?%_d10B
zSs!0A<spA~!giM+8UlWN{%6B->+>nzdTCSjiFGJ@Q%Y5?QN~6^-Wxtg#B1U2nz`L4
zvv#&-TIjR&78{pO&*l-+TbA1#62i`R73K^dZ=o*n5RMsC-xF}bal7lg`-lw5gl(X+
z%;Y>HUt=i4o)IW5OmCtcM?S({=1IBT9z-y^BK5;r`bvQ>BN^B@h^`|+F<r^+YecIm
zQGMM=t6sX6)k|pBrU-dN4AUJ&0pcv$T_hSWpI&bM(x~7ssf{xk=L8yvJB}HFk4QmK
z53(vF;vNJ`pFKd4<c&V}?B8Y-N<F%qBCbxLFu)10XI|R!E(zfj(?36nY5e2<OYbq-
z2QAKqe)~SmB$v$X^9W?jrCy%x2NPS6@|Lrgl-N1kJAT-0C`T?j-BFnX6@!Rs<=0z8
z+Fd*KzdlpCLWs01^E|1#g`j!|mA)Ov)NL~?LXJ#U$Czn7<ut9V4JZ%e(kn-V%aUVV
zGk^a85XK%o^b@@mUYwrVRCQ9%%b8M`=;?Dl)Ryu?89Gx9PKF}eaxrq1Q6`hV&fprM
zqAiWh7KXV8aMJ80SES80<@@zM#Ib%7yL)CCwb?KMJ|qhExWzA?)4!QQf<OSa#eA}x
zoOt)j+A9N=r{RVa*QV-;Q!AJEO^YzXTp$SQJy@vfwnNl2mK&}gRZ}=UE-8xxPT<!|
zt92+{U!?it+8a(F2sC4@GMRlq?#150hBeXDp}wM+0NhKw=M~V!3|}ovAep|%Bf4Qy
zcAOsQ7v=CuDwwPtTcWorC9a@G?<~t(wEHwa%nHoeUgMq2(841#j<xZq3F;MDP4_}N
zVMVyemt?hwTg2i3bfN`n0=6+~rPZ$K`N01G<SVne0?o1t@J53%_KnmRdqNIqm^(kd
zVe+}u-h7|{J*9BtG3++u*Sx}GwK1Q97!9srvG9YsDGO{b0DuZ$VkNxXB`(t~->^%;
z0^0mWH;lmeG75t_<(NJ3Dy5T(PGj~SyRD`Q<J>XzDt9aeoG}GXWdXz&_$%)++2#5Z
z1;)aYxh$(gf`S>3!5GK2G@Xl!afPB-CU%04h^KC>iqErpI%{fHT&Z&Gjt`?T@)H&f
zM3!Yq0KF6KiRmKtL|pDF5qfdd%vy%(cKbs%_Vv^}q*g|Zb@HUWJ9RY2UXcVibkqq1
zq<W1~eD3=+zRbmcezj?Xz(o*(we6W@2{ym9&8O^xZ&yRTrggBP-@yi(SGo%a?>p~_
z*KcI<FSg*RaQcSCD+VB)I+pFamXpF}9J;q;g&SOf`_15Nd_paqrsmymdu3<4sM#(s
zZ<aG^mWDr+jsw$r<;yJVTJ@`&F(y-c_wbQ^SnJzBA2ke~E)5BG$pf%@DH*QQ<_@mx
zs`Pj_XKEJmhQ`74wO&{Y>IYHC!6N>npZ-o{+CFE2Ki9cz82Fz^Ol7Kad+B2oMz;0s
zJ4-jT!a-J>E?KA*>AL!{6Jx1}kd^gTmSnF^!ccnUey!4b5asrDndMLX>ur>|g(u^F
zjh|k4R%W!YnL_2yY^Cp>Gg;f+Xa4|1M6_|fx-o8uo&1W|yub`{HMhTq3}s#Ks1&d&
zLy%xIB77wQK2n?;Oq9x=u)L6);ftcgCZXlbV_Y%e0q)fCDy5t}!F1Y`b)W4SwmB+g
z9N>NBCSJWw&kw`m<@{Me9h1b<<ix;vsABf@^2%QHr#7$~u$0>9oy)+L%P{-;o0wua
zJLlJagNdfQ{Zns7zc4NNpD^$$GZj~u*4fFA(AAYVscE@ZOo8GsqCLoAsoC+`5d1zF
zrM4eGn03pN2#qr8&hZ5vN+MdqKF(r>>xolSXVR`)4e#i5=2U|7d?S^6z#5AyJWNsH
zFJCU;YM)DwXs8Z&oys>Uoh?BTI_f!<TezA)*R1Yvl$IUt6L>c&9th92btY%449Ym3
zb4zYfJ_t|hukSL|@YhfugDCC;)^dzvnNcx;lgCo>@x%(;LOImzJz%I6m`(l6RoD4{
zc=fyalzK{sv~nI;@%{4%iq1QEmVh+>00)8;VU9?@Y(-6KQtmT6f4{#{r*VWv1KX?1
z1v9BgQ@HNUL97yu!z(R>R>To8Hq6OkSa|jFtWda=zu^-$AG;B}n5wvC8#<Rr>xiYv
z+$GG+LmGx9oKWMNHw`dET0fZHPVcSh9CCFFwSY4=tgy|*3r6FH%Q?S(imA=Sb<qOr
zWd_)nJqmktGKA<#QqEisXB{mK9OcIrY+&5)=H`lxLkx2*R?T%^$(hT9)UiegYqsD{
zg07)M4SH_9UH&1E=N(L+66oz_S{l+iq~c%ux7)mS)XO}}+u~#Y0DhR}BI7tdfV8>F
z8_U;feWF*AzygTmwxXrY%Y&zWo@!BEu7nhNZbqjy^(K@UqkfkfiyLqpLO%E-9+el=
zlJn2m4IdCr&?C6jVtBZU>zj#pW^Kzqj=j>ZvDKoxJyWT2;7FGO)Kx00`^vld+3n{0
zql2e@AT*uM{Z1T0rQTVeFu@%ML`CyCorG2IrLz#cJyGNmqgJt8VAHqz`^6s=&bJU&
zrTQaDa{9rmdhk>e4Po}#_-vn)O+#vr#LNYK-}fq*;2p?r7SqgYV&*EeJq$|_InS|D
zxatbO!aGJ%AU7!>IfaO5bx^}a$A_O{vh8o)Q5%YrmM3*D;WG39`U>c%6tHz_Q@QI&
zYiI8oHb1mH6cf+YbJI8N3GFUrF~%h;=5`Yg#Bx54`>9XfXXk&ky@p5vtw1mAc$JqY
z<eQWa->6+X!mpxxG;>AFIH~CruxDq`wyIVmyYa_U9J3Y$ncL{K=|0m>0)3+(KYocr
z&V4ikkf_b@`sn+2+9;M8g3dk~WG<wE)aD2-1xK{DQ2aFcuc?J)U90%@_8_CEw+wX)
zkBQw4&cHIO<?Eqkhncp?fqugk-V|OO!{)WK{Y|uo3)=%pe=~Eb{B;0dFzxN?Zd&kV
zTiw(Eo@1bM&|yDepA2<Dkcy1;r6<oME-tnC;$^6frPnebyI~N5f+(1k*M@IKZj$es
z3Bm2vGGGy?uO~dmPlWHX`Y?E-DDEed2N8ha#9}JxncV(h3JR4CMQD2BxN4w`L{T(!
z_<jac-yL=ioB|2JiwJnhH=j)a#Xvg0>$5BDXQ<`*mWOEUOoI>EOJ673HIbx*(7g!+
zse-Y6`;Cz<!|m%tkd<`>!u!-Jda5NC*P^LCH!x}q^murCK9dXVpO`(K#qIk+K);A)
z(-jNE7_B_9XgkUU&GmIsmGzjpl#;3%r9J$l?@tjU-`ma}VkeF8dTCBuf`fvhZ^vzt
zirAy?0TBHA<|U^mt;4ymw5*vI2)m6j3ir$a4kw8v^rGcJ#rp7OD&kRIkeXUz*5}L;
zgogkHyWB}UQEqcKVN{P*;-PI1W|ALkoz^FblKS2uQtt`|xs{J3renJGtzKA;C=&zB
z0#(7dtsh6G6Pe&Lk2hQu!}pKN{?DusH5Rn3e3;{j5gysEqhjK2aHS_E7ZS)Yl#_J;
zqvirK(Y)W!S{~I0yYuYO%eih-5Y8kMCfb()uc1$oJ}L>L#6@u$36>ajGj?`@l+<!m
zK-EkpBAh`viRL$_vR%R;TO<LO5|^(?WbLSLE?4#a)W1QJ3)BruNR=EDa31TJh#a#@
zcIvS3HonCDo<ybrPy<~&#l6J7&ob(3h{1c0E@5{U`1TFn20s3py=}*L!eOZ2tVMbP
z*SCnPgMjRJh%LUwG((_q9Pj)7<rUcvt()xo@ArWzIq@%$h&AkvW0!2=cy;Fnh;aLr
zGNF<*o;tLS5Xc#eTaM5uu^idlqfNJ3vmv9&D5kKL!vp>dMHL!z@eFD$!yv(_;zO%0
zL2~MtVO-25LcCVHGyFuW8tOcnfN6~)D~GZMd!mK0pQCdwX;EFsIuH#VYE&6v<<t@@
zA&pH^Vr-v@kjKtZ-EGq0n;b;B>@a~?mmIO7s0K`GqWRg0$a+M1wq=gzS{~$s*jS5d
zyuhM~@WuQ}toioA7RavoO;Cg;na^hC%*FyW_LQqN@2aj1%u|7{PY}16j97$#%hZ1e
z-G`^lRSn8<2v%`nV74b6MTa=@=jugqqK{r&wr=irSV~^k($NGSTxZ#^_G)smYe+1f
zQN-I3H3pnTXF#r@Y{c-H63sE$Elc!Vp%rqc%8bvt;G?uNzi;Gu@h+SOI)lt{2qsJu
z7<akFN{n0F{igl)=KGUIhf!#-Anp>wI*M)=WU=>({)p=A!vdRTdz7kEmj3{WK=FGJ
zSWy5#4KbHjFZU76m0S&83Wtn9W^(e6ZJY@}2WS-EvS2XAOW>6^cm*3sLvWdy9gI4g
zSn)16($sWn8TFsfj9($dpyaabXi7(eEpy%UX>z4WxD5~A`H0%$G`NAxk$C#ct#K`g
z9D0m9e@opW^Go)YW!FK&)f@N{vR)3NkDM2IEc<&SQ9#PF<&8?_rO|S;^edI$_$L9z
z;!855Kq?*Iw@_|N<r5U&wl78f@EdU*J(1E|A_9CpT8%>VGU`zdrlv|*M>8eQ2})&T
z4ykBkGn4a{a1D}*KDD11Iu;-6KECrK<>|KL7TZ0YtIMDCl-ca968oFf6MFtq^#1^o
zTPk})MPA9CVHU}=_v%ndN4r8Rn2ht)Hz7_K?sk;d!!WG8^<j2ecC^z&{L~cjiRL41
zZR!Fh$?fZSL(vgjs(>=(;u(6d7c;uXS=nb$F@Xhbtsif#uHJ=|R&@f6BUb4gQdnh5
zhZbbX1HVEwu`y|>QE(O9PJK6Dlyy4ZKQiC;>+#A#_U&HK$~(g$+Eu;!SR01H`~3hm
zp0t98Z>I`Cx>Cn5yN6wgSoIfDsLe&FR~0bVp;f2Tuv|*^EQ7SGcO|Q{=`b@7<?P!V
z&Md_4=pnnb8%Vib*<0<@Ss+o1p(|9=ewL;gEUWBil1cKUIQHuYW5F~h9c~tezRk|r
z_4_h`PthDJPdS&$)vyzl_17IG*&ND9g3T~bEpzL)1RFg-klea(aG1gc5OJ6~@8w6^
z+za{Kt-Sy^$7ye86T9kKoLi!Vtop$Y24EeTYW9wwd1iK_s`^^3L3x}GXiT#_zOj&b
zfMyApyoH$~2l@J5em4z=3U@!fpmSmYOZ&=Dm&btb`NV3d^W*r844=v-K7L@XyO@`}
zp;X+vHx}-_e9R0mRJmlyFyPKA2OkmBHe=m8FvHILKwwI)<Vu_yhT(>x-DWb*(H)YQ
z6K__CiopKS#-c@CqKeK1#WwY&@1kYm3`YGluscO9qg7LtjCH6W6rD=w*r(YBc%^J<
z3KDP7Hij1oFjG)U6$Wq8qL2xgjHa~=Q^F`Z3?BZjZhn3AgR;xrJz<oZvf3tVTY;hM
zrS1c0Tuxe>+o|GF2-Xfe&2~E_4ulJTkEVlJ{$lfxxyblKz657(pd+EF<K1GISVRa|
z<_`(xI4I|YsN{}!q|+@`SH@-ly^`!L#RYySiT;Gtk*SrPQ0ApL>$BASJ#LM367iDi
z65s{->qU2!4#P1h4-?F}S`GdpwtK#<iP{0E^8)P#CM+b{oo_j&al+Z#7*{$$he*~u
zN4i@tCnN%p5e6CE^tkMLo?vKh4!kIsyXxpTO0MT$Bq#F{sC#0UX>eD1OH1a!5wa&3
z!w6~|5fx~0?)*hU)KQNbmwn$$n>Q09Fz7JUyT=`M{qiB6Jymh!XLL)<vka+=9Ywg)
zUr(}7j8)v%q^itEFo#hxxqy^xpnW2vgy9n|=H8LCa@w7Qf&eI)0-(|EKW>#$MUIU`
zZMFV-(9QxHnKLqCI`pSGg@pmyksYN=!{_lkJ)F?ZtwkTAZD&135!?_qH#^qqHiNm9
z3E3laBP(oe`V!`uj$X|Y-kr$Rd%;;}PxlZG(`(){*9M`Qd4mYe)SHe2u4M~%0mG<n
z3`DzP*-uc-!z{m;V3az)EBoRVOI;g*n&8YuU9s)x$9Ncq$VgOesk!~kUj5~+?8N^7
zpC!T}Rkh~4=24y?-QQh~){>q9+6+~t+Qmb&pS<RuPGULfUs;}Lo#N6t1>m+b9KM$V
zJI{#(Sk(c9Yd(L>$XorelK3OZ6pN1wBDE-if;(A2rM|_12FU4yf1yIcVea2A5fAo$
zI;SxJzBed+MjptrDt0_Zhs>)bDHkXNGf;Q3i5h3uEIgAhio|Em<=XSs>+woI-d>@R
zI@H;EMM7VJRI=Wi<EBx$bp%P4qpi#0X!QBrAh7Ti>FyTMJddq4jm(3*vi;23PUYY5
z>IH^I{7Z8~M|oGZ3m0?gEFT}l1Yhzx)!!z5KzsF@hG~ye71-*k7=l_ilxK-zmG9m#
zM`_a^Z3Me{8A$^jr%+d%&^pqS3-#V+l&;eeE?-f09S1(W)>xbRv8$9PQ=uw@K7cin
zVBs603VXjn@FzFtWELJ0r-oPg>fk4u;>7D;eJidy)7~)7eY(q{@Y-Odlf2;XFEUj7
zv54s$`uVPas#7stRSznJBe$-^Mqf}>u-JV?p15F#V+uxN5XU-)rRGAMGT3HTJv{u%
z24g;#2E(+=ca#WR5q0)6<nLQ;GE{g>r$l`!vgM6TzcjnPC)upS*|%*+@i0a`T_D&q
zq<@knQtp@;vvZ^ymtR8g!b7egh>2nmhlUbxPmmy7c7!3g(*vw_`Y%*8TONbbJYY$g
zMY+WU*?YwXT1Pk$KF7DbPnO~(t_vbJhfr9<xQk5Ke+)`|ABRcSE7xCm{{Ry1;$6Pb
zED+Dv5afQWBfY4gy4+%%xIXa@ztZ9v3s?4+NpR5|?f||SVhr}cNT<14TD{It@8|pC
zCN)q7qPd0NX^o)1{=FvF1!@?cS<Lvisj$IUC%Q`7#35)@4-r7j!Wf6PtsWp!nw(U_
z<V!~X03_Sdc!QhK40%SZ2rf*u>qXRDu{kACPUGX!D*4QmHx*f_yCQ<<m;<w}8P$*u
zwM4yHn%7b8qETCxX&GsC#!`=^cPk*X*nwh#t#=GZFvqK6Icw5cs2ExD{koT8a=E#h
zb5U7uuSHO-Ta>SIwT)}kDjXuOat*dWfAJ}BJaGR2h$_zeO~VYUr?f;bej~-bk7%=F
z{{VWbBldt1^aB$eVhN{EX%^t_XY+vn0JzRqOsDXW=>YA&&i?>-$0gkP9}wEP<{3mU
zn6(L1%b&zCp01d>9;OLIYWF_p(6V>BTrZBd0DG)JX}_z{4ZGFB24%`6R!+20)IzF0
z8)BUkab2KQ4Ruv?Zw`r_X0$lTEed_%fvYU*nx~0u@W<b!_3mQI(V*&p^56K540~mT
z^9qM)$7HNjxeZ0x@SNOJ(1Uj+?d_W%WJ2B#SUgqMS5UQ4VV<|2Eak$zXr=|U>Lw$m
z0Jax&^)X3P`g4?_ddGD{ppQN==3pzG#Vccp*fMM@uVPdHm~{`?=_-Rc9j{TF-=R*X
z)^Slm*dZOdic!Ga(+wE5VVpje!ijF+Q?wJzuQ51Ei`WmcFFAmJ27k|{vF0gY5y-U+
zl)%mm4`yDKe?v%7C^ikw<h=Jx(?nJkr~1p8m_y{mvhtbo1Hu|7Eyow`dFfT1GRE0i
zN*1^2r<>+RFrqfOZXkxCxY4J#x0^h}tjr5J0x}yG8i{W)+ChkD3@>B|Z$G@X+)7Kz
zC&1iB?2bx*R=YM%&5;vxnCyO-mrM7QRo(fSGwtyM3ZW)#m0(lU;BI#-n6%E%TMsJc
z*Q~}SVC!!4DNj<XwKaP8YV0t7nDU&(R*OMC{{R#5qpAM@$w*Vzn)E1xF)hbO81?J{
zy};~hjoD^@4^GgW^cJrK!l~-=24{@181=3JOjX29xlRvAP`hSX9LIt*y<Q4LtonXU
zf^zuk8NR5bB`;Vs%b)O$PjqVLJGZ8-v-r!MN90S@)y_Gqm5H-X^E>|l40oN(Zx-Ek
z8vAM8FQFB2-TFl$tVmhfT|;3ld*P;97F;1;DN5gmt<+IImKf90dM$u{5xdV;Z^ApT
zt9M?cS*IR_;sxiKjCw1B)nG!7u#RT!-XG0}s9Liw+y4NbpN}qIee17@5Y2mhhoc39
z7AHleTQ*m>WH-dgPq)vmm&q+pluDI-e>6@P*p~&)B}^9yT}~R8hw1w!N7s~QB#SxT
zSywTL*3b=6(7#Pb+L{x;rN?s7HG(?)w=rH4%3w>Ec5&8@orYa8ZW#2f!xGD+HRBaA
z?16k6et3qyU$>_u)OVt3VTfsb${$8QA4YJ)TkX_!$51HQ38otPN+>*M?J|drO8)@m
z)Y9P3%(y$>wAsxRwhVejZIDIE+X!wLlo4Lk8hd^vxIDiDTxIah&1os;5Ilp~w75D7
z*d9~I>l|1KV!1Jpa8WFS=}2iE$C4--gLmR+bl2Vq&Nn>&05Qa0cXBP1%C6)_Tx3I}
z&ag)O&RwS(#$toB>|DvWGP4v!1rB!trx7fuToiXw;J;?nR?Wd&kSnbcfT*`&$L|rN
z32YkC3$oL2?D6}{9`EfPt!pqH-9iwB)lkNw2X<#WAV(1a9@y|iCw5-mD1@wW`vwmO
zewRCyEskb;g|fQTv-pkIOv+p??U!xA*ot6a-cx4+L(fsS!7SHIyCh7xbu@Q_4Bges
z2oRUca1Hl$92MFdgC=DI&WU;YPR|?jC|5t)D?P2v9`RQ!iaB86zNv9rI)dO!U_R}B
zH7$a^U<fE36Y_PXCN5|^eGef5>G?zmSm&+19SAXo-Ag6Q2MiJRXCuU-rHG(*3Z0}I
z^cEAX;-bC620f)3cZwOBw<u(<lvNzDSsQm9E&##RZ)Db+`mlr|>Q@2<#8%8T*2Tiv
z&C1QqF4lH{<CCS3N~<IQT$L}>HhF--!hM<`jrp9e<Bu~?8`G<^%&)nNvH~ML-Fr|+
z7<*t<mY<2#mYqZj_;j{*nW>}?XKX-(!b}pV*B+b*%Hm<xAiA>6!LGK(^p2jlMr3*m
zqysX-9<SVo%KCFOf{zbR5ME`-K~}M?CN3k-0UDhUsM%ojnbQW(h$1@&@9AR5Z>Sas
z`#^MaxCh8TGa-F(O-EEi{J6Tsp_X)Cms?ZLrPPZH3n{qnrNMreH#ZQ!Fc34hnUbyb
zI697C#v9zfw)D&BF8F3PfWJmAgggdigtj#fn<Na+iT?n}s0+4aJEcIWw0!I})tv_J
zE8A+H5La^RP{eb-syxnNoYNUnUHzb^M5^=r%p6OmWvjz*(Nc&YJbR9=0;Zk93pocC
z97^evQM-Bp#z!8$PcS=_tsGRa^0K+XxBxl*VBGD-=7A9xG5TAXUL*h?hz&EG3(xQ|
z*gwGQzqk8BW<xRTaWY{liTR83?A{T?m~K+3b`Cn67=4l62BW9XS3usU-2)lRgHdol
zGOpdH{{R?CSC%yOr<_-(NX{T#2NWD9D1?5(R;6!kIX(T_Rm`M1xTMNQpkT0jOJxBM
zQ(|WhGd@u^I@Lbpbb8=SF$N)4T~2CzLoP^idVgYfWA>8K%*gjlOS#>-r9SI9^EQv6
z=HMD*(9G<5Y3>*(I}k1&2Z!OOXPCN7#HwE`#Po;p*JRW5{kcCe&_P1Dg=%U!g8SkN
zVt2qNch*zRE2*X$Wz2O1rn7ThMZcJ<(0H*vXM?dTm>Y*M@iaO<Bb-6evVXrbBX0iy
zw^x!HGx5yjeFtnF-!Gt)o=JT)Z>`olJ)U5Q*E5Rr=Ry_CDxARYo}8*^devSHp0`rt
zt2TW+(n_b&>Ry^r#%3Zdq``O05?sGXBS6GQvGj=ik;1jqAH<dQboi`r)L^)k(&F}-
zj{Qd?8lzE69zAX%38)8bnY)nS-=t#^Nb>|~CIvli;X(*0YgeAN&fLnMMk<n$X(o<K
zhzg3KZEhZc3$keghzg0Q?Qg9BHOx0(;)zp!kOFgGys4ePj9~b{iBNpauu(8~F{p9w
z@ho%1XzqRB6go=yvJb2~lKhTK=6q;NLz#DOezBRd5O&9p^Ej`i)>yBxIk*+TmS6dQ
zHz-Bk{?LyIP<iSpd?PKjF>?$){7>Q@+&_<IyMs7&8?Ka{N2nKa{jX&(HwAo;GiD;q
zGaq6G(zHVrC@;)9x-;-bw#xzApa)wOXFi*(MtFo^m8Hv<QO@PaYEUZ#ak(bX4STff
zYngN$40Us9T?v($gpE|T4>50Y%HJ~!uDRK`jcg3Tzq1R+fa+cNe~678k6i(PqQ+Uu
z_my?ytySMMP>_}KdWBPiGMn%to%{7XOK4a1-c`+gqVXNQlgvv5G{iTLqSOGc8<{BU
z(^+~KE{nUUG$(o3l<O$WFnCyYlCjFb?HuYEl&Jzk&sqQ>ld@_k0Gu<q4q4&ERl7{m
zNCY>EhBft>?VR-%V`GkY(&?f-9-0pXZUb~nKl+BDF^A%O(J2ox!KvTOtdD4-Gy4qI
zZsk$sVk+vQZr_BXha5A)8{B<?fzP>Eu`n-j)Z!qkQ3r(2cP^I2VxZy;29w#@h}F8p
zK&?ykrtyUs01Oed8lIeoYzj|Vg5#levCNC=(p1Rx95MP^jB`&)(1mdw<{2{(O~*<V
zld=_0gZr6y*5IIeMbOa*2Zvm*bnJ`25zW2fg1Y%S#<0N0S7o47+D){=HK?n(sq-z*
zigi<F=bnN!EgZm%B2#Ms5u}zPvjv0<_)B(f^&EA)3SOogXE*53klC4PW>_!-h)SGl
z{*XmQelpcGWsBgNBbRe++$KXhL^Wr!Vy^cU?mDHFEzNg9+nu~i3-J1W^dec<;EDp4
z-v0pNSwW~Yfnf~}QK&hE^X_tx;tzyDuxdH%L}S8HnjpQX))@MH%g2PH?qCDJOwoJF
zsloci)v#h3KPT_>t}QNN-3zIfyD<Y}0t-p=)WCN~JxsnEGb+3itbEFY&)Kh<v@%6f
zg=K8(R>2zDD2J?*!u-IcJD9UA;tJW!Vl->5;{O0gGe>VtHuVuoIfx<w4@pC4C>^vF
zJOKN@8(jI?x`r-TsdUt!xkFG<eSAqb=Ic}kO+FmCdwlguqJCoh=c}B<AK-d#J_xiu
zYEt1oIfjQHL%fpLaGw_ubABGkZ!zp~s1={1KIt0f&H8+PR1dP>TLM+zGii!r7Yp87
z*;&-d2ABh6eIe*`wxmR~5$C~ek>L9585lR!biS=-PzR{J-#uM;N@ZOWlzPA3{iB<~
zqr7^<ReJVieIK2PQ2|^`nB(2Cov1m!^9|po)j(ieCQH9%bW7UseEP=49R$i^r9Cy|
zc=g^Rv)6)bb*XSu9epk3hFbL0!yLC966u9xCWvEUEb$Mq^qE_UPyG6pgUoLOd>)^S
zBYB@f-JKS7iY6zlu`F2#wfT?mj9Z~TNSHts8PqvC?Mt@LKN|F?Y*?(i8J09Ap&4x{
z!|3lNh#NYLPcdSS7@_v5z9n+{u`)-bS@RwtO`aZ;1LOEkMmGG!QZSeT`G(9D(*Q)T
zaNDF@jm(F>wnu4T?;SkY@bsL@zC615mOj{;9}~z6`p29W#bXW+rE*gruw2V}8CMaW
z-xAd-lFM~{YS)OB-3<E@sNtGJv}5#=?;gOQkd1~lDmz6fwAs*Ts4s8^97eQyP0m2^
z01Y3^WF)(W$9sIs3V28u6e)uQi)To64j3Zcn(DK9fNDJTphA-US(Gb|OvZUlp~2U(
zClLj^5QWg5-+9<(1B_7AZ5G$9(7w^tec)3F<?CieJzYDuHQ4E01*5oj^f5dp^}VkX
zvcvf5fX~Fdu$g}Tl72=aHSj$vvrrq$dX6FBCaK5JfNP*u2t!>)Wo-+0nd=0;V{=bO
zKSze;O2fHlp^JGgZ+A1*P-5Cp0HOtCiGeRUFZtBQx(0od3mfWIGlDTr=Erg!PAV9|
zG7>ioezNUD3LsN`b18@&dpPw8!q}h81>;?G97oK=v3VnlI);v=81W1@HQeeJ9}_g~
zb1#i)Eu#g^-0oO(tM^}&VgOIPa0v_n@|TjeAuU>S4X;e*K0RahNT|b1`p<|Xi{6kF
zbqo~OT$sk~TY#adzg=QnTU}6q^oF$!eJ#WvbJKC?%8p@9_=!tw8xkuHiB_Icq5S<V
zE6Ni$vN}xmgJr=#BO1eomD{Vd;$yktmL=;uyvK@y$q$*V+`p1+eQ*;X&S6}|cJvAt
z%=y@L9Xz37_$CS5SThag6?8GwW8Aoe<3)NbmDj>qjO{2JoZK*8*o|_3n3e;_(L0HH
zm|VYt2Zn&Bf^w7@#KV#MpcvOVc4#nj=~pyt{{T}(I6ge}q$%7<Lo&yZuYLajZ??ZM
zX>n$Y<4_jfB|isHMgg~tOA$Ht+zL-LN{2L18%?1BGs#Z*+#&`C6KeWRH7vWo@)ux6
z1C;QIh5r8ltRwt~<}L2W?ewn6@rPR>2oBS9==@Dpr{}KJGl^icq^fnap>VF4tMPL3
z_49s)Vc=UI&;Z>M&OJAS-*Xgpe6d$hQ*j(NVjtZZdrlgU4CG5U8j&u@)!$w&Ql6B+
zL%Ey;Z)_Gsu7SFGDhbkLh8Jb_>olx0@T7m4*2&skhi<d(VAop0U>{0&TbCXlt)bs=
zk+ZY>^;5ZRj8$=uPjf}H&F`fFy-o$;8?hHR^m%g}?kOR&)}S0i0CDuW;Dg-9^dBG$
z^MLC|bqVY`x}LWG0DXFAQa3K4tIVNz>KIQm@!#VgS(fzRJ>>(pT$3$*D@S=x<JUvc
z5=Ghu!|aYj%(gp6MjA5+wfuYb_7d;Bo3z44M|q*%3|656gg5J|e()<k{<r*;8$4^$
z;CYn3(dFn7`VLpMIQqE!MSm>Y70d$?wsYyJbLB90gM#i4$e$h}hZ=g{O9d$B1{ZnE
zt2iTUBdY76xb2y+Gclf*gwEre%w)4ov<2VUFcHP0zXSo-C3J2%x1nS-_sl?aYp8Pe
z)S$jk(V5Jvi<LeTJ{u`vi08Nc=llXkHK<e_dO&z-0ZugW*Cb=biC5)6X{Pb`df0on
z1?`?9shGDi=iDa9ZYEHIr(`i^Jw&XzBCc@Ce%Je)pH2YEE9diar%M;k=^g$*SRrpX
zcK-Q~Qs7MeBc)?<Y(oSEN+yN@%Tn-mapE}^ynlI&Wl5%3mn<`zk`5@GkpcKh1~&T`
z&aEs_wpO~ATI*T3Wlcgl>J06U19|f_#JtooG8m^$kp{1ce9JiEQn&efS6jp!-np5V
znU)YLB3;7SP{z7FHxi8fFENj0e%YSeKFAROJKQsTj;YH#m^K-L7cJ>@hVBi^+n~Oy
zpRGUy-u(+vhAl=&d16qU;r>#A{JQdiraP6s!dq_n^w^%Iu*UxYN@Jn|nL|`KwJh#>
z+VK!GEGGsZrRL{1D>1*?b4K6Wsc0RtOP}H%Vw^^O;AhOR@;K|XRCyq9cOI%Ny<K-P
zCo3D4WbSa|xbHkVg4_gNK>b;gW1IBoc!*z~wrtA$`go4_lDgHE9PV>eN^^(VB{@mq
zqFz_LtaeJk>SHcneH?BeRN$IBClxe1B@@QtS#3|lD{0H96<obHm_4jlwU@s>rR5s_
z`+^{PTbGg_C(pCZM#GM{VIJreiN{<Mxp!})V|+u}rxon*W{|S9YB@U~giayQS(Koj
zFd+|05G;2VX)nwCtaEn(VCSo%c9*==WElRx#CBGpo0h|TefqgzqM?%5ZA@4Rg^A84
zdOapH6U{@Vwk#YWrexGxt?dI{MH+F^hFIaO!Bo%qf7xyK)pKs3;$H9W<>EXN%3itZ
zpOSn);!J%WutGYP-?+}+TC)tffnkN?FK`@9H_Ovk2|Wq^t{983#HV9y3@qvW$qwwp
z^9y6F{vmwDsdX8HyXA_vLx@lh5{pMy?S+H975a!MM*)T%tHjVV33ri}RkbZkfq}#6
z1OvPs5D(%N=t|Zq4=eqrBl^G)u?lhnAEWpTGWfSLp$g_JdJnTsXXC_1pD!_ttvQ7a
zml;|ST}5U-*qNu;&ULIsaTq;RRuL6FZig?~5?b@Ahceb67u=4N_Bw-HV2mDF^z%}m
zt3+1;e0onxdXw6g_U^|<7WO`!7669YkLgB(ys&qVpoQp<UqR}_WU1B3g|%q|Ww+B}
ztsLTPbLnNMKY7TD>Gch!IoklwZl@+S1SW|6I(>iUQnh~_Og{*g`9?fcTr$-1b#n%#
z=fcAy)oU`VuB}XSD9SZCz+n>J%j@8*eqpQc^>k7_7~FRH3btMPUDB!9eJS5Cy_{ZO
zGw`=tp^uc0zE1l`DtWG?0vJbCJ48O==}W}(uU@G$QB8)3dTQa|FJy|3Rj5}MpyRE~
z89t9>pgluz%N6}hDDCwmc`A39ZV>e04EjS%_##-mz@_en<WB7BXdtE-iz0#<W>%Lz
zwX+=*x%O@kNiqfMdE6!Qo$}flSE;eyQzN_a6tqRqIqSmVh_)}$_DTn?R$=A>IJ6~w
zsxnsY=QT~s1+Q38a`;X>7-p%de)DXC9}&7``9am+@h%WSY{4CNIhiMT?RS@m>)SB|
zZsFWj<~b%g;b+e$%#*X}`LK?NRrvn^GvqSP(GGuD0>K=|fktC0vAN;;H}2C4zVSDV
zc)`HKQCvIuhAB9g1l<1sn*F5!<^7;mx)~O1`O;wAFf;gPCOiC0UHdusH&WR|dan}j
zVs8hBSEB<4H^=_~B3zy30HnmhXsxG+6d23psI8-7SHmjREjPB8iZ|)0AOT%$wFX%w
zWs@a6IZ`@Zk4lK$<_~xxSzgOUGX2ZA?QRK>uu6v5cXsY$-Ar*Z+4S$>F8D(*byD0B
zUCe2n!#I`Gn~oL#03{v>=c}XQTJs};sJvODsR*mG<&Ii)^yzZCDA14ZnRT*uDH@?P
zEX2M2M<m14i1Jhh*@psHhF~>Oj8??qa<kyMdUQ@#*0biK1|3|PnANConbxLIUg1?u
zvi(@*Gs#=GTvJaoMRxkU{L<F_MoVF}G1It{t#C@`(^yG=cC-8T^r?Fe&+qKeTqaiA
zs%B3LJ@urhA**BOs39^;1E?Fsa7@FtW41}H#W?C=)fvBsk6kUfCIMJVRv~Lors;Em
z%D&H-=nx!21?85hlwllU*2)@{PtoYa4E;LGIhcrY>i$vj)l_(AeFRtQUY^-3zm-ae
zQs(=RKI)hD9YvXjG1NKCRM7wnirSAStxT2|l%a4VtwV&$okKAmAkcP|XA!dUU{Oa}
zOw=f1qm;|I0j{ozmmKTp>IYH64MM6Sm`aGNg4m8}HXXrp^91m*ao{CfqleO=(~{2%
z2gFsQnbs!r7;XMP#9XH<-XY8$CM?q^`~<9ANuBsuc6ph%+bo<+vf!3W(C2*+mB61E
zOJnACdTh=I_<^&Lgq#9io3>Z`Vsd`4MQPM<*h_w3oZr#WLhL)iu}4u3*f8}ww<F<!
zvGMln`4Nq2n8xy$5>S_<sLk-c&6aurOpvgP3_{HH$;2o#0CVl_3mzNt^>En558gBC
zH7tPVeF2VwZz=+Tcj={OmDh0-1X0217wTh_9Of9C!ary-e8CH}zVDSpN~F(2Jt3i}
zD8Eigl#fY!dyGE%R7R1idp(~s;t79q1$87MkE2t+>TNd~+IVPRn9!xJ{-%c{wxKx0
zPn2G{I-TDV>rqxMQ?zrwC2DCsL_ZJWZF-X>9CYQ%hXfy$EBoXa>a09U$nW(mMj3%w
z>P7LTHJ-Otap}49Gx+sVKW4)jNp(NwcpQ7?L7!+HL$FH`#4D!h6Tpu{Qouk5t;uEF
zY<?%KJFM@94kUZ}aW8pN_O7PKO+|59=1q00V6gg274*55%heng)zp1n2W1bukJQEK
z4$Y}g@4DR~J|%yDe!1x96B<n9vKX<0ezTfMT4hn*SvyP60t_w&8JPnN^`Pc(CEa&^
znpZ{|8~Qs`87?flDb(iXdORcW1T^-TU6_PgnXr0uxntG;00hXBh<0I8^S>QcOW~KV
zF4%*Zyb~eWis{;0PUL;NlQh01%&w}uM8Lekl;mKmIP}}tznSJ)O7yC!-d+#u0-VXX
z!)!8-gAlLt^jga=me_cLix>x)O6-np*He#4x8iU?uBahkg5-jo0(eF|5(b+4G~uXr
z>#gFWmj)@Fv{D+3bD4=MIKgtn%o8;)Me!2vK6^tIHGW{J?=Nn4$^bh}x9I^WH%0+j
zgKQyjmby9Lq)?&-Hbex+3hJmlOqO;;8e5y}KF^-pm7c_`RC6;gnO)7y+Ugxdy==&*
z(yc3)t2%l$)Y<Va7b5{vQ84rNdv>z_0ErgcXE)T_6x){s;U!|erOcvKL%0>Gzo`n>
zTZ-E%CvoX;Ew(zA5Iv@0oIP$9)qc>y=rJzZH$EZNQ3pGP`FLxt6|1*i$xx1u)V<~v
z#B-SEeQq>D7E2-5S4xfydQGR`2zifGFTC-(X_?Qg>P#uuRI~3pk*|Gg8B}+qv!if1
z+zN_Yn+Gr|jl&&@MRrG5=e$AG%2?cXj&iKNJvu-u9FtpzYDYVl>B8(_pm2LtaaiXb
zCTlY8Ax9^!_$lAfu4sZBy)Q_~66LVTPgg`#IQkIEjqj!O@1niNWz;)L)#fFo;5veb
zdyd~L)}<ekWMIZCW;%>0ft&T{sDQN3oabvQIi`>z5W-cn8*p<ETX2I8@RfosOA%wP
zybVPIVYtCtwBOM>#9I1}6h|_h#Zyejf-5qOGYo1uDshTb*k$9)GD9r&vjZ{PG0d#H
z+`#?&$|jfH{{YEUwFkrmb3cE?$|H}6%V}j`R51<2vE~RbXeb_ivpLI{sWHoG=dB0X
za_hn;kQkpQzMH>q{7c5h<-Ki{e{@w<=2k29gYVI)L#5X;!0(@-TC}u~vr*~%q1oeJ
znltQ{>8$*@^!KuH{Xv%I8rwgAWOnr(USYF~IMLRqEp;!Wa(WOHoDj)6>V@Jhn+#R<
z^sE;M(mbN#S%HJvOTO4Pj@?p#l%ioek*{T7aDs2F&1Kz5cQ9+yp(`MX)M?A!#$`_A
z;p~DfLK*3k`DA}x<@6sUjvdn9GH^Y7K-}HC`fM&&cj^?OK<nQy9)oev?>IkFEboEc
zdUxs!E$00$nOb*=UV{iYhvDVqIJc!sA=luZe_pwKQ{^Y$;-KG_=xr=eunu~!w)@W=
z?*^MarwMy{@}Uamc?<<T8}-ut^HuHGCkQr6j2q>TQy7`gqYH{7)i`q8aCO*4N39+F
z_zcv`*L4-eP8<Xh@KjQ_Ykf&g3O1SL>rYJ64Kdp=C6tG;RXf6@rhZAYg|`Gt*y*Dk
z7c!if!7jE%sx9@vEIv~Y_bFlYCP?#GM>9qW*?MS~nV5&96rfS&4N()0s*c=5j@Anj
z%=di4!+0L=5%?L0H1}!^t4**2fOT;6Lff>fcK0{ne^1(s{5>$<^T4CiMRA|Z4$CN$
z#Qy-TRlT_A;}f?riyPF>&;W{v6~hZ4K!d%%zv>7R9+M&Wh*dz*c?rI*3sF!IDGjz@
z!WiuO%+ZxRP+CMn-QX~$0>chmG^R{)S6hqEh*Vj|&GM8LU{V6I(Q}g?@1=tioy&C`
zv`W`3!3<>fR@`A(9QC_I?WWL5nK2P|<n}>*q*^DbXOz0Fzzauq_7j?h@fI=GwwvZK
zf4^uBwlT&#9?1_pBR8~qNYK?>TOGCf>8!;gVnbS<Q)0Im9g&dD=4=MKg1n!^z^A@F
zBU*$Gvk}JPlT@5kwmByf=7%=C&MWFKrP^=OZfTAy++HeoOapMny=YsB*ajU!yOP9m
zVi+F?T7&82=3YB)Dk^GeE3Ll5hc7<;bX;t88nQ#YJ)AsNlW;ljS2$qI)Cr{K{bd<x
ziIK}FYl1anw*7USjmLHEyKhl#hBXXKPYueNbFROV3m--_%nf>O{oa&RbJWzp_Y$Ez
zc{4oj;Hdp(cQBawM5@DrS7&)*P%WKprrdsKCC9|8)E%O6P~jC-(af@@rkXvFOTYBQ
zb!&)v!4r@oyOlXlB$>Oqja1a7v3X@Wb|qE1w7rq8uygnNJcSaQC3M?pk8^xSG0dS{
zLT$n=_L*Ovyhc`rVtW{MNG*|B3LVNAOI1fTaYdo{CJJR20vDdHcN}T~4)TWg_D#Vh
zl}|2uYJJD}mXC#qf*J?kuLe;Fc8(o(<>ld-VtM}n-`1!HBw`LCGYeCQ41Mzyo*0*;
z&k;?Ah<a-)n2m{ep2x&=t##%hx!cnp&O{36=%;hoPH{m2*qQ5?s)KPvZ301tdc6h`
zrP-n*Y;sX7(lORWYfNzT^Hb&Bc2MAoB_7UFXu8)ptYLTvEj-t<9*-DVG2B2FUHdCE
z8>e0jsbMqi634QAvn-*w^rs-;`@m1vqm%&?o}M7>J4lk`*!BIgr;JzA=X93`fUia&
z4$is}=1;11sB{x=q|+Cp(@$s4GY+Sj@!ZN@96qt-H*{8=y8L#K{(gt;nrglC7#A)?
z+3vul=#HL99JCC2*LM?i_V(6U&sx#mRxaIcY`@XxBb<72p3_O+)1-9t60C5~G!RAX
zToJU*TMynNtus*S{pY6=gzI3H9d4E$&eabBvcPi@lbD>uF|lW>_eSC_!lQ4*w$8RA
zP-Z*%eII11dfvFSymg|Cv00464^mb%GYz3nh~41mkg^erl=RNftetr1i`v1%(e53l
zmw!!;TphD0^dyIZUh!=cJJavEAFU}J^%10^HBk+@jhlFx#XkDE?25M>#5Xof60nrm
zW+kJqLaYD<66a*hK5r7M2RZ7{o?={cytO3`rbTlxK6K5|zghduuzzAvyqRt#5}}EA
zE+FnSoyklo-QHIEZGeLl`^;@@IGMsNk^cb5B4Op?08^-A(^*g|O*01AM$$Uf^jqJv
zLhd6jde%E7<a<TE!xG=v#CPiEYY1P$Z<kxT+y=(IO6L7+r!g}ut_)v2YZWTnj*8T&
z;^)`RF|TD|FTlZ7?R{^iV$Rs-_3NF-XS9m0baT1nrr~w+RvfSl<n)rbFXk4$T^Jb+
zW&Z%2GZ|wJB~PXGC25>~AlItY{7S%m`ry-31KC(S{{ZZD^VG;#%fMz2EKR<VV7rvB
zaTg#{8hZICM*ubSEzIr>sn)s;YFx&3i1x#{h{ca&V9W`ET*(fT1laCdcj?T;2n@e&
zpe7h~toWaOm@`a3#V{}QYQ^*~ptqTL@#!(pX*P{f-cs(8UffLwnUsAkt|A1sXZymw
zr}jV;>KK>N`&;>raGXKUt&Q4ZyUtP~*5@}lzh>8SU*=rxkn0=VRi%SFLIj=ZnVET+
zfu19xaO{F`%sSLt#Qy*=vHCjU)Y_VwW&*Iwvr!Ru)~q)dZe;*`%vkH5w>yx=An=QF
zhygFFi}N{6!ZD!q8j7=wx8`CV&zZWFE>7jg(ztd{=2gHF@o+=bp#q09%Lz`yA9=L*
z#J%|^bgo)j57wNm#ig9YUg>^u5bw$J2Fvg7=DWnDcb1PayNokLH+^?`yM+cJHXKI=
z{{T-^(LUWU4&Kvb_nFBuE00}g0k%}?4ZO01sr7}&6E<g`5Q@Ryyu29m9O1+vNumD$
z^TgPz)<?=!qltDN4{#QM?<u?eDsD~8k<4=aCT%d&g`q5^wZC=LTa^}hkq%EwlbS%`
z>q~F665vbG33i<IsZ))NM_1qV{{YNknsvbNg7q?tuhU;H!8v?GQz(740ABINJ7d6y
z)UCWmioJMGd06e#$$r%QM3<+It^nz!U$ne0Z%WIuQ};@DXu9gJxM7_A4G#4@2;Wfe
z5rF0m#1z-Eu7nGicSkTuu6=hZ4B?9Q-5Gb+j~#O4ymSkKq4ZmyRZ5#;zt*k|%+>q#
z*9;OAUrMVnDj;XGa)j3%YE%Ps>JCxedJ$mdiH2hX?fle@=1Z4)J0PawuBK5cEJRQp
z-qH9|q14*;{{S(`e@APLkl>c3%-`sM=BIHc-*4SZV>5+TA=guKD}E*A@9gtk6+}Be
znm;K??oW}W;AIu9!%Gt=B=*1L^7=uc!dc6fQ4T*^%w8n}wMu0&OM>ytMOS-ZjcoT=
z+`}4;fg^$8fg_(mMP7B{HC|qtgPDP}IA<=-rH0#@rjdYw1<4Y~;5eBIaWSoDK4mb*
z`tKxDM>bTtBc01ghjQ*+(<tbax|SX1iGsb5xQWr`UpnRg0NucGkjA3T5h#dF4kwfn
zrTBtH^BZG$;$^s7DS)aV-7dh)Gwr3qX_-sJYPzb2T7$`V0;XP_C~6CTDNAjN*PV3<
z9Bu;y+t}`pDIESE#O~+P;JE()2yJHmvgvUKzYIj0+)P79UP^_=LaluN0N@t4EPf?c
zy47z932Tv-<}ext;qy<ggj%;V0Na^Gq)QiYerSd^>IIbdx2EHhlI9`7(ZTel4903w
zrn7#K)@Do^xP-qwaB|1lMmjn3Fr#`pxrxn1%gB-2@97tGvr9o2cwkvwYp;QtG4v+{
zF2%#w1Ui=i<`rB^7UlMTaXDNPoOznhUcMQ3>z{Q|%5u7`w#OCGgd=cMQp_hF`KT38
z!iZtBtBGnTaBn|b?(F4>8u2Vn7<Ku8PD4>%;5{m^Ls0H{n&z;Q>+U+X(Gln(^5_c{
zVb;UUSMi^MEDvmu>OJ=`+9!Wui05#|x=_bLw<-Z+aJ&dZE(d)@pD-g+akIUWxcVzB
z9vT=bFgcphgJj6eMo^r@=H+byvact)Z_7UrWmF3EIox&kgMJ5idg|hYHx2&)62|iS
zYx#)1;Ql%+;a3E>Oqgdhgto0sW1qYLi<n<9-F@Y)%KrdAt!q8!VuUW~1f0x6b2eq~
zQj2paDrUG~((UxQpE7`bok|OdMIkZfnT>7=GaFn=6J{7f>Km#zHi4(i4@}v8bm#fN
zfT72vxPt0ESANi&gB%i`38vr7{{UZ#Yf|Eppu%K?W4yzOITd{sa2E}729H7n5~G9N
z$U(YwPW?V51x4vH!%vQclU+yQ5kPV5lR%y%OT~Hg+d6~mVU+lt{{Y|STX-hCo~X3#
z6dk|&{{VsTok6tqe=`rjM5(wn@`=m6OkyAzL6ZqF&|yd=$h*O)u50HRL(FGWkEN?>
z2dpm=^j60|S8QI%{qMwZ9(^`0*q@jEK5vwl7>;1qSL_0FUqhx?9lc%LBTTN%gijvM
z1lm~mW&oLI)<eV|?`ZOMz?HJ4#m#l9{{TUF_A#`kv+H*!3^)mE6%g(Upx>q4bi^Ti
zvXFZc)VBKIv-6&`^NQ<XE>oGH_WTZ$^ModOBae0Tnmi7aue}_gj;;g5blC^f4Qn!T
z>~KdEpLFU)Q}<05wk03FeRhX<ZFrU>b$+_Ix(=Vjck+69srK9Up9!&8Ji^k(K4L+^
zi%I_2jh(YRF%UbYis63|Z$5uoYYS3{twR9QGXssKfp}tDe8jY~xpkj!n3uJx04Wm-
z0${L}NIE*XaR8NAWd|=>Dy3qkQ00bU`#lV5TrToM0yVfLtN{oG`@}@XfJ#@iAjEd(
z?@$d2A&#i3{NuFRCw~$HR(ZGm!mS^Phx`+kp=JDF2k=1~H}jZCSirVRNV~#CiAsx%
zbGTwylsrML68bd(buT-|rt#6v{oAtK81CzU>1FS_#A*dlW<6{v_Cv>*UI$6dgmD@k
z%|%zgWK%|>!3nt|`G62UeJO)**UlnR*&PGZe{Epd(9CLOSmwNS3Ujw{4B?-@{sz3z
zZWF_OUHocXYg03YO-jOUyh2&!RLzm!nL>;kfD4m2scTbwKqSi*1|u07A+1k2<OJu!
zT+@i>A4YkGS#pVrr`Oz#B`P6?&bALQ@9dh`Ff6p5pFgLHzNVZ5k4S53dHO2(Ad2va
zh4!0<CA8*3hDo-4FDLOh@7ia(SQm^j44+}zH^eSU_jtJMEuCD()*IpK*hD!$K~lbz
zp)<sHm}Jkb+u~|$d7Lj~YVXg__rxEL8$I_0YCisqz@)x&DpRC#i^T4CiFX-A93?_`
zm#uBbaMU)LRUMZN<sGYD-}z4}1ZP)ePYtjJq1Cz07?;Q%@nW^M0N`~trjQRPM{%i)
z520^K=3Q&qPDeYAW0u*5?dWngF$FuAQ8n$?4d)C8jC$Bk$%*eMwAoLu;IhD%ZqlGV
zJ>DX!^KbJnjz~oJVs0v9Zg2WZCq#4Dm9K2=1XD4`=4||awOdR$Wy$zMzpbZWFiGMe
z54;f5?X3^WSe<D!9g#pZO!`!_t`=fcL#UOT^yD!r&tdAEOAMX5lyoUe#MQUn4M3mF
zL~l<`B(CXHpD2A7nZ}P14(K>A96@xFmKf<$h&3I-0W$j|GMocMyKVRAkf*Cpv54%F
zHZvW?9Q8N$r{!sO!%5N3B4L-=GF-A#k=_}ON2JK{C<YBUGOd06H!D-k4LvDqvUY93
z{{VsWv>I1ut=N0d0?MX2ge3!`{{Yy>A}vkz5Tt$o05bLF3QsW1CK`7{8>8j=MsNlt
zTkCMtsJUx0>x73tWYy2cKaWeT72l;)<$V|%h@ULr`aaC1+0<sDXgKrfQMa^Mwb}sZ
zg}2wTKeC^az1I->$hGNtzhSEP`z1r_oH=edJ!_&c1hq;d#Nc~D7g7YFr*d45rPNnD
zdSoTrG)tK2!!BxWe%Y00<G;jXT;&%StAe_+v$N(5`%uTAwwuhUao6Zf5*=C=%M^8X
z#n+@)g96U)Zq;j0`s#tEQ)v3=^39#HgTF5DdU!Ja@h*REf~x8YZ?Bgp!zYm+_Bl`M
zMl~vBBV$M_R^@xQF=~|T;ya=!;lEytz(I7&ENusKAv-P-mC*nSI^CDVIxI0S)t0<V
z2JkYQ?%D~Y(Bx`f&P*@_DQZ?19Ka1qC3Q{T;VfJj>OwNLAkjoi-%Egk%X-`lkmF3q
zOe50GdTq>8pop7kpM6%7LiHux;yBKy5sg3_+)&S6{E`cB5iIYe7Uo<zj$An@_Hc1p
zhQcB~&)d^RZe~Txs1*1kbe(!>0TeH-`cJluwO@Ds1r6aK3mo-IBuvaeA0jv(j;Mcp
zd(KiI-9dw|c}Wm(8I0|@wh(2_N4jcu&gM|21uJ-c4GJh*%|jaX&@j)R1J#dabJ^^X
zZ1TTNofTf($FaGiJq+N4R)j>|y<End=#F>vh0V1si_|jAGbG8C<NpA#s^7G`(L02>
zwqjN>cWh9q&feV*6|xvW)qAc;uHL-~dx)tDpvEAmOAmg&<xmex1geUTeQUs)qhxcq
zX|hX$B1CuIIo!ihTu#v`z9LbU?=cT&Qo`-%6x2Yj1-~<SWBkr0BT04BWU-iniKfZQ
zVzb+E5T7sg6P}G{%c2hBh9Kzf8AQHyntb#Iy1xZAr~ugvR5MI<k93!r@(^;z5GoNR
z<@NF;HGKL;(8&r<9?n~iU`;S;9k})-m_Sprh}!yH#9cr$#2`)>%6QUQ8}yo~b81p|
zGc8{*#-p9WZv?M+Moq=a%jV}5`r-|YRJh6JX$y$i-yJj>A)mho2dw3ng*yuksSthC
zE591_u)rGY)?vAt5}9wDG$4Ek{{Re1ljjzSdh(Kn*kyMJmE8~n8+xiFanzhcx(+N1
z&X|X#M3J$WC>xhv{laKE?uXFX;U}SFd_||dI;)!dWogB2l@+e<PTmu+Z0|nfg!uH{
z+b3hsO}W~Mr~U?$&N_GxT>>E!;uvzBaa*I3=ct4-*Tl%ve03|jGZvokAcP>4ZfU4u
zSj&}1RqwD&16xBcZKCE4b-j<Waqx(}uSsi-j4tXC-Asu$NPz@L5w!Evj~?IBxu~(@
z)a{8tW^v?E`0k0}D`b@@g|0i{+9!jzx9}_qzj@cHW-MnFEdBh1zCAW(RgY!oIrZ~)
zC2_`K1k|z>BhT{`Y22TFsMF=?CgEZ+oU9QpdYYL!Ta_H|?Yv7nYGQEmkmsm{BT<I!
z2;N%bm?{h<*`%t0aLj_5ebZ4@LNtyu7ZU8HQzrWSLL0A22(DwZ&$1iLdmL&7XV;ZD
zWz_911Yr7inNC9$nYn6@q={H~m9kz3QPL;RpAW}NytVL059^)MfIAQ&Y&a{33fXZ4
z`QzSOtUzwUQf1UBjX_X`;kKewu`Alb8Pu{|sYZ9yt+yTJl<J7;y_}_w*##7Ug%LoZ
zIRG(u52fF;w59&&P#FH(j8gG+%*>;_%b9O!eUZbQUuiHbmLSP&TPj+Bs5229K%79E
zCEQKujAVmmDp0`P%|yR_!VPgd2hUIvwHbE|r*=+q7-Ct|JzP~Nq*Mh;&h_o9Va{W?
zYPmfi0vyKC;RraAmcl)9Yfw0Macne;lfP11iREMYhL`>acJn*#2Ujw_NntG&8Ezh?
zkhZEA1BpeCZlvjxQ43yJ<~V{>BEYWtjYC5*%(+XicbEfR%=ZpTeVbb)Wpy=~wqrg|
zYirDK_X<U+cYRE|lQLj1Fwfl#EB2O2@$)aIxr1FymN=AuXZ!kE4+%p?NP!C+!x8R>
z0s%t*0KOpc9f@VNa0-WGad~@YPFrug%}S~1RIxEkDkK>avohbin~#W>PI~E?lLy*W
zpd6D59QCz;eZw_3(i)qYTVbP)Becu7htl_?Oq|OYu@Ki%(?p?U_^1XE+sT28_T5<)
zzK(pxUECt+BX5K)36V}W38RT(nc8JXQ&BD~1ZyUnOz{@xrP)&L68*y%guF2?eK5**
zFG0k23AQH2=Qrtd7t!V*LdQP44<@`!F_)vA`tZ41;RbwQ39n9wHios8Qs{1SeJ0q4
zY&SBk3FM2ZuK7x_iFsK_2wYPC01#I1_08sC!zvKFq3W`k>nN!kIF5cqGYj(<(JJL}
zvv#vEa!RRFZlwyf)hwtkeVUv0K|^L?m9`%cZaA6ST7U=h=@4{s!)FI9x7hyjhpxI&
z$vFq|PaE<?c7G(yKaIj;<S}gOHI5xo6~Z|rW-_x-P!N1YBQE9r3t;z_6SrL+&aM#H
zm(Ys}#!UBd8?#6&3q@?Jy}PG0hFFK1J$=laKV3pycb+blf!xd<I_d?$_@ZbZ_!G3g
zd9TN%U3@2WTlQ{k^dd;as!a5)rdFq*U~Xkf_Ss|uxi;YT@+`%jRZ=XyFWE7O*^+m$
zAX}(H?JwL>4Uo@*1<84DY~fTn2d`pzQS`NWh+xL4itKt(LXbP-%=@)m&v-=x=@wkE
zsbO;Mu8ZyN?1@yMLoZvzxd8G&4Zj`pKiR|Jn|@tyD6RUhp`o!`oR06;X653&CVB<Z
z^nk~<3sTDkJc*a>N@Gw_%hiFOjmC4RpLec87BS&<s$dMpd55;6P=OtBNGoNSlys?H
zzHR`fJq*srtql2v6dunc`?e+C8Ao&J;%t|64inTi%7eV|i#(iPUPSmr#CgnME?Rd@
zez;>&rODYW6@-qd7)Mheedar!@EgRsfEp$E{fOsq#-c819D-%TmCT@YPAV%?7#2)V
zY~qPt)-L6vVgaR@-%&8ZF1sDezbAMaTqrW!)+4;vfy_qiIe;CAoT8?2ET%nP-Qv_!
zzTe*F`eu9eqqL~B+`%6SRk&kO%v|SU1DJEMUE{{Y+8ETjh&%cn0is=pJ#rn9hYD(N
z0U}WFz^!ye9%aT9n*;9yfyAn6cAtsy9Q$|<r2&XxiH9SIoTl~ZV=0QA(RXfTvv(8&
zxj@YAF^dFwwDqgF55s9}ulx@e;#Pk}9-NtmT^*4FG{>dDd6i%x@dhJ0wPP8(JCu1$
zfiP2Z2<mQBF*S*wg%uSq#6Dy52~wxRZQ)rWwXss4Wz@Hr3=msAMcI_srF(l;R$|J!
zI?`e~bTt4D3`F44!ZEg4B~f28^1a|uM_w<PWAMMv(wOOJW*e5Y<I`!mQjc$kyu0??
z3T*eh#L(ZQ!9+!H1-J#CU>bmoeX|&w`KV)EXsLP>Q8d}?v^=5!9bGpQzl?ixGHwRW
zWxbYT0B<g3sc(sXjI9|%eJJ$nl^C94b8_U4E8EVcUczxXmA9j5PqR5<>?Mi+0G2i8
zb@2nk9O3JBTtQnCRGAF2ZaLiCWNkAEcd7I1aRJg(lw@_vvl2=pncUR1IQDGAP!VRm
zC2<{~{sItLmQ|<O4Ka*%lp<aD)FIcJhaISO2UeK@IIl^##%y6|O{_F>Mo!6g-vq(;
zmUC+{6nK-60SsgH`*1ZLuOz{_5}_a7h9A8RSPi{2mk!KW+jxQAI<pPu9v}k{-?nje
zC~c5Kk}iq2WNTPb+w&M#WT_wFFoubBI0Lt>8KB#*_{#xlOdnfJ3YV%1ap|H|B9EoZ
z(b2f#SzO{$+-I)pD4{wmN3Q_y3|rgVxI#L(lOYaBcX~;?9L!!uC5V>82+<CQ5xekP
zXIGyI-KCHGA8BuGPpB3Tl2XTBorq|aC&X8AjMS@TDlBFRhV<FcC~aR&EpaIE&{?Ia
zwCJWdmOb66JoT)~==X2U9DSwPUmZr{h$#8eAeK8ItR&+b`Sh>zF6@WXmvE1BX8w+#
zKSHX5=oyP&L*goR5D!ecOvJu#*;HWJ>XW=T4Sq_Cb}kfcDc=#PJRzL41zyA$b<|^4
z^@?R*S8`<c8GP~)sqs6l%()z(RgO;b^NFcf1$7I_R~YEI9Wm4`io`3Z->$kM!a3_g
z*=mlqe%39PqC514Z}6Wl;$2{XnSH9~0fA?j@Myn4^rr5S<I-@HEYzGzv4LlJAUnnZ
z-VcVCUo7%R{{R74gat5;6TkleVj_+Afk|)}6%)#kOtS&H3%q-g*+J_##jAkp%)4oe
zYK9xiR$YI1gbZ~IYFD<GIk{r3<cu$ba#Iq{$#pl`{{Ut64bEt-yZyh3K-}iwH{8j#
z;Hqc)MMbj8&Br)>b<*k|9Uz)ScI!m0mDZABD)A|Jl=+nTm*Qu%vAIUcM~O@8FxeIc
z;ujIrF*g~niN$)cVqJz!MjhVfMvk?;kTP0*x1`fkijGR1@Tz{(h5AjBu`{G_(*(g4
zOTsc+8)eJtYcA_CC|>9Mf8h9>MK}ZfdTVy<)bo8mXeO(KTf>h{TWsVYVpMJ&!(*tb
zxl3B@(xR-f4W}_TgTt$xz^Gzaj^IN;m(T<h>3-S4E=0L-XB|ap#KgVUC971*4R5K5
zxEU!XTW{}aRTW<{?OghDQTdC`Ec$bPC7|zd0v0*?7f5la0M~QqUPf-uT}Lt9ASY71
zyn8Mt^(t77Ur43{_Vnx!&~;faGcjvXp7FLRL_}1_e%>G*2!3sCpOOmHefo{0jPvU_
z$3;RC<{sTwN{h1YUF967hiCr)WkrWsP?v6rdzD+1x`X1HsV#QL3Q!DUnTBFKL86J4
z;JlH_AST)I1&h*`QpK2*n(4&1nC+>SeO#we)q5tYRVzQerlnKO#i^)8c(yCU((l>4
zO~j~iCPzLX8WF}BT?BDja_(i<Lb|Z@)^1g|D_)wHF5aOlHMwg~5R@=wj8V=ITZ}iB
ze;@cH8)K~<;D|O(_eHUz#NJDzqoE$XAvk7Hhz3l>T*~u^IBPV&eYx?4^%vC|5JO~Z
zv@6G2Ip?Pf>zL;!wox3*l<EPq*|%u!p&CmVI?@COWVSYpzAbg^xEZHbXwp4rPY@jD
zB$A_i`Zo`6V;%Kg{G3lw*!aC`7|JMSVznJ?eKneL%ITo5{2PqVEP6%C=43of4hlEV
zr&lO>sejuX2dZ5>PrW*%$qxvy#4OL$+UOLp$5Uoo`>2nI{MMhhq!3e>1978Xk;w3)
zS?>Kif&$!n8J&-zeo<}`#*d+~N7Ji_4@jj7QJ(#l4(1R{MNWM;dz)He+0>Ywq8ijV
zHfX?N!<kGn?SjeV_m?gSb=H%D8g_d3rwk!3M_%v_<Rytf%K+wC!PM}S-ZpS}=nJGQ
z7<mze^*q37i<7wSNQV%%Dl4cAyVOH|olYfl?^Bp87j0A%wF0IICfWAfOEyZ;-cl~p
z24&1@D-nV(d3D*VDKO{QzC{iahTD==os#W}SBb()`v>#?0D|1FR)2d=Nq3gPe)7_e
z=GXa3HT&Q91>f#}-2VWeL>$LBVansQWrg^ag>U2dhhRex177-g5N&c~{{S+j(!LmD
zQO@PE-jv6Jzm!j_v~##)+oEb!YH!^Zt>u!*M^etCTTCrN>0-NdzPB%>K^Yi5AHqC8
zWHp&r6iO1wNZ3tb)dh6Z5RDAPKHbK&*FXT~gkrX~%FV-*aRiC6xaGIoO1AwJGm`%R
z6J_)1;-Ce!3;l@H5lGou{*?^3=~C?iCh)KR4~)SRgNatBms?<HnU_qv_GFD9_Vl3#
zGZVvc-R*M>@2isJDhGB-dT~*e!5NQn<u|XTp{N#GMr9>&FVN06HtzRKW6tJs&f?t1
z(YZvb^!E@FY5h7|b8XBNVqv~MhNy8Wwe%|t3u)J+-NrQ+pbCa}Dfx?Ao7bk8CR(#8
z5My40S%Yjc!!fRVbUWfTExm1<Ek|z+fA?{|pW0jsu3K}ZbQ6i(4E2{IGw^#M0IbJj
z(a*Z9bq20|r34(Ih+|z_xDO3#g&BY>)VR(o$qXe6(hd>M`b{AOYIk9YZ&3t5uuZtP
zQ<yeIyuRIZOO%E+E+G4EdR`ChFE41(sAfpJbu}oK&<^x^W7X`_xlj9=B%?AglZ3qc
zOlJ^KAGEDJ&mA%U0D{!qzBk@htatQTE?d;E;DK~~paF<2{SIgm0d)fCmU_gs-{ziA
zp%rkDKQQmYFv{a@#EtLWR1RP{iE*^)fS4yeRvz!>bBMz(A7ly(WY0An#G98KR%Cs$
zRbNkS+(Gs|Z)pm4N?2pl_y_Y7EB^q4XDm;llGvJXSm9FS;lEWtQO+eSG1k22{6*{-
zS$Yoh0gmbyXX#SeS_n}M+v!moJ>C`%j32y8oA&D6#BzN7NLAM_zd~mFgU8Veg8eQD
zQ!^0Z3`-b{$`#dxrtpI1E)Ykg)O7)6ueRgy75u)H7j(jvNdb1o&2=D@`-2B7RF2<&
z@N^t{%-rH!FMxxB1^T&(I0&Xseuv2|$1rYPLo-wB*n1%#WMvl;r9inAHcepmeEyE>
z#Kw*6jzO0#`S+PAFP{_63;zIvr~#=!?1kKubYTN}nB#K@cNxTg$lVKe<MS&{V+?&A
z9>mIA@#ayMo{?@vxm>$=Kg<*jO??ido%FY*eI0arC=MW764W~C<Hiy^rClxK-U2nY
zztlA)b7gS4YHg-Ji`&(RvL2Nl22$fm>$j!)oM#SG{{RZ+Z!(%aT<#buXAR&IWLKmV
z8`NNKw=ba|687=_V}-nGR`AR{ec89v!cJ&Sbf<ohNr{rUiNvEfDVFtFGAObid48Jc
z>S)KjHK_KufiJ_`tGLVjf0$|Uuc>pnSTO?Og6O7Nw-r9x%^)ZbD3;u;-_WXNzfD|e
zC9a~mw@Q^Ys7<Gy5N%@7FL1`9uKhj<bTCvHZ`%R8jea`xp<4hc>1o$p2~$u78JC%f
zk53ZDVg+$kTo-Ap@1^Gq069H=9xLUEvu(^F#6iB2EHDmH_(AXO`9+bS#=2@H&%rEj
zUtjYRAw_tY66MVf5MW9<ORr_%1^y<(l;wNDT8elhl9_s{g#5t5cYpBK@iT@EYB+=9
zJa)}BpkM407(^31zLkxsCvKX5lhVn2-rhcA-TG<_F%6j3Cs#zU5W(dArD5=SjvbM;
zE%i8MXSPiQ^ywMk9DY6j0JG`Y{{V(Ihtiy8^3H76rpwv6*xx{0;!~(<rgVT~(zigv
zXmWbhAek5{VqV8c7t>c3Y!N6R+<iCB&wW?kXZPj`_Z#-;I})({Tc>dQ#gs^+Z)|g1
z%N}o|bTL!wWUe72gVHxL=Q7R89s4>kMVDiP+i`O@?&3m<E1Nw$OH!RqZf%Z$_w=m%
zEBN)`Zg$MK1DST-ob?lEP9nc=E+#C>Fhd!7;Bj{P_eVnt;#McG8Kyj}vwfO7BM15P
z-VR^JVVC~^4_DTQh+|MH7?%?MmZ9p2_x^4ZZrz#4KN0mI2G~5yUCPb=n_U!r+<wJ%
zFw=3%Y*1**w9aLD{C^&WQF*yzI<IW|F^S{p*;2oCllb?1Ax3nHo#bJ6fB05gOCCSI
zVUv9NL?GnM;#;p0<S{f>Y=-G$aj$bOq1)BFYFZs_FBQ~M2_QW~66HiY^;{9C2AO*-
ztC;LTje$8&K%K%2h~hY_fV+WO^kP)DtUd59I59<im&65zgHTrftSem@ge;B-1D{#u
zDIEBq0igOjOvVQ<TV6`sHjP(WsDmw)>-m`I1JE(f<DX}Gl*F^jJaGGYN^WIH7PP@+
zxVd4kO0h0t#&HRYEceDMX9h#ksI#3wq(11xa?NL+fm)jdvZ=QH8;Z9G%-BIW_1l=F
zPK1tHi)BW*fpW}s3>Ee63|giYh+LNDS_mSl<-fEkydeQk=hH&D8UFpHR=@PDvIo(G
zvoqo&TmGVAqdm##%M8*_Nw>n~pOt%gURruWqb_3)cO{>QzwqjItDFa?YBtRE)?f-+
zLaB0`c*-sbf$A|y-1YweeJEqNbo=ZkNTy<QJF+eV0Ph||I>c`gwixt@O=F*+1;EZT
z9?OUhVkdN}`rq9G=u{ZZk6Q-?c*}E5n)){}g!QXjt4zBB&vlOlY`~u05LFWm7e3r>
ztw*h>WQd?8s`U0u_e^5yE?)lF!gzW>7SS(nV3h5beMB|fKS)U8SIh$uAFV`?xtPPK
zL~SoyFYE5JDkbV-7IcJ7v=a$Pk3PylH+KM96Vq_x39tPktD~8H9R8!;Qrx1zHRuMA
zYhINBx`+Tbe%=X=)9Ld!glbgVY8F}c_W7I?Re$jG3&K>b-+xPn6N(d_$5C)+h93qE
zuxrFsC8?JkO}DtgIWqdKT`<MPJD+~~T(^1ViF=!aT9+%+Xw=kw4b-q*{{Zi^yCQA`
z;=a3^h8u(`fiD<v#|-tp6U`aESmTGcN<1G%YNkbN*2LWzshLYOnfErtw8<-5G}GI>
zxpLsc6FD>PLfkOMx-HWPSc^<TvDShxDknJNqq5w%Uw-O26_8>}Yf#lY>eVWC=mmB2
zEL|{+UK@4XsK!wTB-Rr<OX*c8*%-+L<|<N!t@TFZ7;_T;06?qGWpgF4%D8SK?Mg7J
zY%H^5k7vGKPlv1GJ&7}<xn}<W{At1^orY%MuVvcygJA9LxT~kFx!7_Z*lKt&{{V;i
zP?)#H`drFMm+`|ceDKPv?#!Ex;h445x8$9&<JJd+JGc7Ra--;Y65`{JWo>#RH_7@9
zRt-SzB2i(_RV0=C6B;e_pvBCGt;__4l4&AG+p)G86~v?4#1g2sY<G$6+yZ5%tH3f#
zFmcyrYIStu&)-XwlFQ5u6RxKJ02n;RHuC!WO)p#eZQ>@=4KoC0#hZ@YQp8gh?GC4r
zi-+_bF-#o6NCa63SUw<bI6adp_KA7cKF3_I{{Y5}+Qq-L_VjtC6yf&nUSZ$XqSS9T
zFaH2Ny$^wJ%yz9`xBeVZD`PLd2dd^3;vU63AL?k|;Qngj0*R>SuVVuhv)$|Q61UPy
z-dnV<B&TG>!a*A*CkQ=|?k)+T^dM}<QTh`UYC4pxM5S@WyTjHPI$|Z-{RF{8IS_0m
z{xBLJn2nFjOS%tL9Ja#^pGvWqkmnN>>b6?AAz8}FN-|0uPn7ve^DE5pOFKhUfSAA`
z*5yUL`!3-&#=C{Gnfxbwp{Ehotke);xhay~z0tI?wU8H51!fJiRTihJwKpFB07AAE
zSV2xAig}dt%tWe#Ub~|at6da{*HH&?Tq0!$g6xdw(>Cc)#B;u^<g(xBJlwog!3!am
zGLnb^V_TfK=YGk|VI6;nd5pkoa+!CRrGNO>H7icy5PLL<koNG9=j%+2-NNEZ_WY9q
zI9L81YFVEBbTWb<zz<E1<u^}a;@35y5!og+W@5-83gTGPEJ$nm8)iE`hU!zYSvzH6
z>+Sj?0}|b$K&hGX`i)Hc1=H3e#j#o`6_xKR-dDV@cmyJCghOdD-?>t{ypsLohMC8&
zv(&~&l>pN&Sr-z_1*qTZ>PG&A*Z|DspMD}7qNVYL-)QR|#Z+aTLpb!dm`Y`_vIY9_
zq^dtd*+&mvQRVIOkaXtaS3v%0N9zyA{{W7u4j3(nxR^uNRpLdLXSRp4Iqdc5S(v^_
zQt4k0tdEGGT$y8qU-)xt%P#erluDF!#LQ3}Yxjk0_C}&|>wckoi)TAa9vgf15LYju
zOX+zq@#0#G_Vw&8s^T)*T>gtvx>M?HLk6$y1*RS7cYP~rxMRe}Vd!H~&$p>~9d{A~
zWCL*ZnXGrQ=`pU1pxK3ZLlImI0Lj%=9ZCb}YYPCgxPPd+EL;1p?-QGq&$Fq4ymSh!
z^`p?{Ytj{gvzX;<bC1y2QUczf%+%}K=I06CGBD^NZed5vU7w%-032KoNLFCP5IuL0
zD*e0I`pI|GKvzey0dwssH(&U7F#hPOT|`Tm6hB70jwfiLEx!Fs9sZBtxvz(<#Nu7w
z{s$E+7wyq2(yB!s{w<eXPL;jH73<FP3+wGh-dJ-A#7dYQZu%(qiQJ|T1Kq!!N*MQ6
zMq*FVYngMYsK)n6C&@3i;IhHLnB;c<0P)Hyx-y)Ew)`N9o|96y32%PUsau4;PhiBQ
zxH9`Y%u^P>&#g)x@k;0VCCz`~_F1^<Qn3(x8iQr_*D;l{;QPwW&Tr`Ix?V9KBML}e
z=i7WhdK0XD8aAa(gHC;D&4>Iz1OEU6RLZ|?M5$7}74P89vrFgFyP6R>bL%VVs2R>;
z+Vq-Hze$ZnxaV^EJ>6_X=Dvl_<wPHPt0czWAqf-Na?DFH(3`hEqTD+oYdBYuDpIxX
zmwHZRC3AVB{X}ZFEB^q;tq5&|iRr?VA?@Kwkv+Z3AGF=j$Im{nsBx)C_qYBe;WA{1
z{@GXibsOGM`g{p(;#Z~yeX;?za{VTn`^&SEzaF;i`RD%t0_P;7FVJa@n)KLU!Ra#s
zKX1fF`}7vx>5@O7w;MGPXHd>PoVbEB6E+{CfRzxM*SolkAO8R#We!m&Yu2j^D0a<z
zc^%N{-`mAK(yh5<`IP)+-FWnd2`z36ANZG(((TQ^nUoqk_UiH5G3|GQ>I_CC)B)l4
z)zSxfHS~uI8pC@$U#A2M&k>&GN~(Y0Ohs>@n{74|%0%{>WUJJ(Z>JF^*^axRZhbEH
z7YsCag1rF=XgQzmHE$Caa<!K!_Kiwehb^}^`VP8kW5*CPQGFs05hyK;@Z<EF=|{gu
z{{WD9TBX_^AqS@jd4t;vq_^8n(;C?;AlIZ_w2G_b{{Z6Ch2A$uwxDkV?=pQ&G?w4(
zh0<H}tC(Z-+d_x3Q?_0I0N})|f#7Dz5-9?vH%Kl0Jyj-L_1qnpZ1e|G1gq}gUHRy)
z&u<)3FVVe6pn3GuG$HXdDR=(>y8pxgED-?!0s;a80s;X90|5a60RRC25g{=UK_F2u
zVL)+#P?4drVA1fw;qh?)+5iXv0s#R(5dM%bCg9N9%_OO_i#p<^l+29(0K~%QwmGG`
zr<<b_m@<XYE(QLRu*RmpFesu{Dl`JgnpOV*zT(wW{ve8#zv2zkA8!|I(a+eCxH^h1
zCI%ylwG=sJ9LB8FRuh^!?95AF^-&#%F!Yu4sPx5A)8`9OpGI;mUCID89V>0bLA%E^
zx7e6toh3NEPyYaS099OpP9csjl(o>uAW+QVY*f1q9dX7->+=sxJ2=KE?DI=8#Q`iK
zW|RH~W2ysPf67mC_dvw9JB5RdxT|maRYLovfms~3!YEu)r$xM7;#|ffT64vczogZ`
zEy})PYdlgI=G7qA{7@tOoc`TEZs%f9KR$7&EdJaRaHG^d@clxV%lG2#nsU;~ot5qx
zYIQ1y461My{N+6`ZlBdwnwJl6!K^*UckAb_Ag`a(C+U*#&{RN<*7++Q@f9!Gn=sNE
z58IKL>SY4?qRhgg*pAdiodQt=L@|HMaK&i_%NB>5qc9bTRH?o{;Dr<ZQ-i7d<^}*b
z>HREYNb90GJRTlgDY90*5X>Lavgx7jS15WNM6}8@SZvF=>~}6fmZz`yk5Inlz}qwj
zmt8X8_G^;rzo<*ae?vf_aXX{=NN4yTf4@-zv3wlzZlxuWFq*Nz#!=4WlBRS<K=rP6
zrr3qu{;OA%p!)n58*^vx=lWq6CtUs3Qe8WU+O2>E`sS(L<<qT7!+|sVl^U?&`iKy*
z%w#)7VgA4Q{-ZDtyMOL)Iqo9kMr9RHwq(FsO~LQ6EViZonQLxH7K2}sW;m45LITxL
z#!ni(L7;n@f+1;PAXl~I{Yur;RcHGBH#5XARC0Pp1=|a!{!g2FjdQfKp>mqEYx-O0
zk5<tppu>ENv#2hHIiYLZvoN`o?i(Hd07|1~=^UtlZHt5!S?hU+@0_tS{{H~tH<_P>
zt6`lS)()jA_s{cY6sPh14f=w|hhzT$te(kf_w@+t$y#C{+Bn4A=IQEGdvf-a-_><5
zkHNb_znrN{gPsfSTpqZwfaFo=sqZDZ>=2AgK#5Zo*q?Jn{{X@eRZwaQ<NUCSvoK;+
zK)GrqIg0+V+I~s-VpRb*DS6hwh09^PqyFN3u>C@(L}st}0XZsu(@1*%0F(ViExofT
z;-&p847!U?UMiN%Ym?O2l-m|3^rEHfQ!=3-KA_yrLJk<~9ZHmoLsE?+SWM6SM}MUL
z93{0-Udip;Qp9I=uzg{UX&+i8HlN%29=M^)8V#TOvm{rrmPfX{PjFzA8;gOdxaV^w
z+{(-#p5|@BqYND88AYhJy4UqpPSbC<;Oa5h-_J!EYTI1sI++J@%-)}`{r3eI$*pj}
zLSwjY(Hh!76+=;6m8qD9m=vM~Y8EVTkQDy_A}!5A%4c7%{r3>>hjV&_P1JD&p3lV0
zvRNrIU|!k2L()FbE5{WDV+OSx?p(G|(9szixmRcxB5Akv<88)QLz=gu8Gq#U`;mU0
z<vxjtTlc@|EI#AYaKHt4xvMIwSu@l<%@{`;g<tfiR|5kSOQ@f~ITw<2u&YcKhq!E@
zs6X)frTd?+^0i5umq&9CXPVp-C-hxS&q+I)AKS%&bM(pjhlXlhS1heD!-}8krL^q)
z7dM!%p1mWC#l%+3{xb?b+^C&OSsX6`JK5Z(J&asBWz+AJMwv}CpYg~xbp)i&#dU##
ziuJ$45F@lAyCT)B2MzooqzgPvs3;)XMS+FuGW!0y>IwU~%QZjpbspTe>y;07eLjCl
zsM1-QJZnjOk_M&JBrnvN=dbBRH%6vT=GSqJ(aUBg@d?JAOoK-F^h>QWsmJ_1Kg9Y4
za*(AIzW%ig`;ATAOQfKPC?S>o7jmJIh{I{G7cgs67<Vm4@y*vwwCX#X(z7#eU|Ug8
z^{?u!kG;wSe+8G;D9*lK<vY|~(ab{$lWISuGESxNW{1?kjIJe#VW=idw;HD7Hj+^G
ze&VSA0Qidk03<Y@$0<}aO1k5lpGgY~EJDM*M+p9AQZ&n9!zsD?`SrM3T}q5c{u%!9
zD9!%t+6VJ9mB33M06SPcE-RNMwJrK$<Zn>k8bMXKmJa^_uGvhe=;REWi(~#yuD?lj
z=!B%hmIep<No##fK;~8EUHIETR_4XJW(5o-?g0VA98Y@wl}Q@RyY!bnoUOwWuj+pN
z&Jr%|{{RnIS#9>OB2-2q`<27Ffm2!jj(>6)9{lfKv+W*jRB&8)CNerQrlWb1$d~<2
z-UDOsLMlhg--0o0Q1^~T;8b%np$g_19jk;sl~TWARGQj<IH3>dBd>sSnm@cUY-^J(
z!ZjRkP@VT3HiD28A%?zo)}@MQR=N`u{svUUS<FW!;$f^9d4rf=5pw)nrYGuP{Yms!
z`tcaQI%dE5KlUjv?<_ObA)Ee^7(GhIL(Z5=!PEkb5(|M+h1|Fr+xksY)LpaDlK%j^
z9{gAb3~C!SEaKGfsF<(#ec1I4e|zTwe$a&KVWuUwj*AtJw-9&zBCJMQ^=dM+JMq6-
zjC&15w-MGN1nMoJ)b8O)sT+%BH4s~3-Wfu-2N(TCWAzKQVC&%%NmaN$*b`nhjl!k4
zLHO?%D(#x&&HI!d@v=IYC-3*jEENn;4Uj2+f(>dT(!oQxZZv9b5PplA%KLx{CE9~Z
z%}a*C0$gLc)lB8~ea`FWS{3RBMnC13a~P3N4qIj#hF08CKHgpA>)D_)C=a|J>M>XM
zc;FLX{>3xD^us?$cp8I@{{UQ3T9|!#%PqyV{Y1I1>Soy3QB%1pEVa5ZG~@bB!i$h?
z@ihy)#ff1zGlFP$1Jod7CWBWkD?icQSB5E$p8hmm(t=&b;L+$tPgnjPp29D%@H{T!
zm_+U+)7E9D`hQ9H3H_LrOfBNm%NdY{X&s4lcxn2FfCfLPrMDF#EHUtlamcZl4t#Fn
z)K*H*$J$C?XF9CT&)xhB+K~s^AGU+vu2->2Xzp&J&%~pVgO_+Fxod7~e&hEp{&Oqk
z-_&~n-`CtVEAbMh;A8PxvbIfM11ewL0k`}3ii6y<dg49Fj2N&uKdspVlZ;EZ{YI!G
z{Y=vM+YI4Yf27<Yp!9g&2v$awEDqsf%dlb;zLKCjfh+U(m_MXi)H)DshIw<8vHC~f
zb7?vnhff`UQmt&Bk($CJ72e=`5BPZu-r!O_^3FQAPe|u1xPTquh5Xm_mSF&HX}meB
z<IvO(QX@tfyvX!*EWLNlhUQp5yPKU7&>eqKyo6Qv)VaSpZ|VWWvKGUsxT3^&3=0`Z
z=aUgGI-K_}e;b5J=$-N@=?DTKUrhZ86EO^(T@g3xHUiJ&HykqfZww_4zxHNhv{s1)
zhff#Jy&9M*`tmK_BKwrDnOY5@dt9Ic^!%n?^3mLGZeS}SkWU!lxYjhnl5Ln|mb}bi
z#Md(|7UL1Paje2FW)?Nc=^afvLTw0r(zF_ma@X~;wYh5FJC1i0p69RWsnb&((Y8i|
zm%MKW^%nw15!_@SXkroVhj0SV=?ZNSJ;y#Nc4m<-VCtpfI-Go?U#PXei0C&O?wW{q
z`Qu+vjZ*dh03^b%(iNO>u1!UYm{MgpPP}T`mcscBkS$+R^<Vgcr>`}8vd@~}ZthSM
zRbSF>VHy_=*N(}yHYz4ARtMa;p1HgqQuKS~h3<EM)La)Sdp;bLYKdF23+R@t#nLSg
zkorP9zs4*jQ<b7rMTO|OZS2%DX@r)L%NKr<^U`E42s7Q4G8SB`(<)awKU4Prb9r4%
zYf;55?EcGBqs~v1rwvD5j&!4p__>sv@ur~J9p}K0?twJcoy<>fg`;0RXSGSve_0BY
zLfLiXCl&oP1lubXBIMcgDx3bI>RIjhXIY28=<Aw^cb>$-%CouIFXkw0>-v|)uKxgY
zyc0O1^Lv)(1jj4?03YgfB^(S@4fp=xjeOu0E{@rODkEnekP(Pmj0mFQHa9)B3s`}X
z3~CxZGOK^n4CLVz4PVO?`h#%B{{Stx+&<ylbM~6tr%3XKqTG59_a2fXpffNv{C`PU
z3JM`W1hdA<rlxhNMHa$L&Gjz+`72Gkh+|y)u5P~n0I1cp>R1n2^V<<9kG7%ZH5S`q
zMKalQJWK=PtouU^HSvd0HV#AnT*0HUr%(Xa*!01?<2I}UOgn<p367`s5DI5TJdlCz
zB*8lgLTYu+n3YMLAP5NNWlbT`F)kKe${;tSa@!j$={khZuZJsliE@>=g>4r&iA1q%
z%a1FIb`eUNnA#>LXB&d=%e$Yrj<5!$GIO_uv8=bKayEj;+zMKMth$%GCZnGlpHdc?
z{+8jW0u1kkz!I4tAN3xDU#Ma@4&@7I5Hx>CtlJjC{Mr8HIO-VJ2@q=NfUGpO0_&wG
z+}Jw5;x^F~Dg;&k0G|H<G!%Fu!PX7Su5VQfeViUPN(7;cR9l82+|H4RULXoB!xQ&O
z`)4+!TwnCGB`}H}h_gjTEvcvG5SAA<sbdnhWkabx=boU){*o3j)V;mTSHBddRU(9-
zn#AAc>(X8Nb9ELU)Lq=g`J03#k?slxyg@`u-cqdmb#rv)()yT3xQaVVzpXW<vnlsw
z@2oOL7`19vsQVI8`%0I>I(z{`9)>%y9^}J@T{`L@ZsmXbFtDe833V4X0nQs@CS^!B
zF1+%qa;x_$Obd_<hcAz6P0JphB<k>D!FQQP*@yoCS#=-40cn3rbD2}b_LM97j=`U?
zDqsEo07{MAqIvEN&Ro}@+xwrtYxsqb{@KzDSgOo=h>pLON@E*wGqlu8<Wo^D-AkE!
zrPEQyrFqp#7gEM-)cs0gTVf)vJuA4EcQq%jrZL&RYWBxr*YuvQJE9j$0-@;#X^m``
zpUY;*xbkWk)Fs(0XqWGBzJY+i)k86c3)uj>ouG%Of6?BKqlHqiA*Z*CoyRjO*Hd%J
z3t8O4I*(~=7PB^C^s_qLJ4Y$?seO0-M<Eri-gjA)VkP%S6l=ta7|6ib!*$DcjJAj4
zu~hfwi?;4r)FOjFa4Qbw$Yji8G-?;M1|?5&75qa6fpzyDr7wBXgso${Rm?LAP(iF^
zH5wH&qlEO7LQujb=39Xn(qaN?NJDp<Mx%9!Sa%bx%jy8k$hI=n)JyZzbG%TlPE`%6
zAI0J#Z9mZFL0bVV^MV_>zEp?`VLE8d+Y8_Ieu&gM^I?13&X4J4s}vRHAgFKpebeZc
zTiYzs*X#OAUt$=ik8y%p{lcVgoSx?s?ZJsjGX^?kt&^y+v;P3y#UIP8!MU3-w~sn^
zt)Qv>u-o~E{3XBCroQ+QxQgNGBS@rMIjDM;kG^YOquurWCs|E*#+Px`OnzFZH@J+c
z3?ee5to~C+@P`TpZO6akXy5dE1T$oQ2woncBZXZ>7b%5QwON_rNirXD)b;&ETQAHd
zW$7V^W#Z=(W>=0mExtr6Q0GA|9B{2Ah~SrA)9j9HZu2o$tV1`LNP_Dq_C@X7a{?!#
z2a*NBq_!I-zP?Y=MkA;<6ACeA33-yzyl7j3!?PD&R2Rl*Ff4-LSBmKRLPQ$mR->Jd
zxk>fs($cK2>it=8dE~t?Zl1rT<7|ct(c|?qkp#-m^$mZx5|=MO(w&EhXOEnNO6L0i
z0CL0oGu?L-_eG~vbD7dK9e!QWZlk@ndY1q*=9zte_Bx0VEk|fUL$)doql*%~k&REd
zs*Ke@sN{>Q9m)qtU1WOoI~_9MDE^LW4r7uoW5;{5Sr#)p_{EuloWVw5kH@^VAE1{Y
z2NS!98;5fBn$-2u4I}x0I>>Sdsr|@{bct6(7MZ3$p`P2BnRV@fS(l$lSF6nsO7zjG
zYqDXea_HP!syAsy66(Ra>U8Q$1E>0mlic}JDrE_9;KsaPND$W}lKIRTLEGaM?wUim
zF^C#L6X<8$li5>8{pWNb0@SJpu5mu37B}wM=`PDssNoooD%H#~S!OxmIb$p3a;-0L
z5}0{HeK3-_MssEt-r<Tj5K3X)zkh%Hg1bwWLMJ0K{)=;e+5WgOu5=^s<6<R7pgCgR
z9~&1dRXs)9jr~Eir?{?zGXd?69)cBYEx@GPFqk0BJN~bwwH?#VQQL9b?w`_4W(aOG
zCo?aS_L+^KyKnk^h6ShSj4{0-S3je>nIa}|=N>Mv!`UVoq#YQRwFtXmiC7a;yNFOS
zpTZads6V_WTVKce{J&x&I&}OihiTC5WnA4RYuv>8hFJYiz<1+VQIENyDRCEwpnpf2
zj<|tN(^m0zOgM)~TzqN^l&B{VJ~iNFzoJ(hOafY^_XIckl^K^Yr6psyw;g{&aTbZm
zxlfo`YN{jlyM=Tcq_bG7y>EpnYNAnmG$Z<sgfPD)F-Vk4=ay!aLm^=Dmw%8e<5z}l
zFcP3kW+uzH^Qf8qPv53aIIlQIZOWAC4NBSWcQM``p}4B$RE**s8J^pa!PVSgT}mOY
zK|s^gD&zNo!pV0;SsP>bMB(wdI{5vjtT>MRPX&;kMpO`VI)$@F;%e)unMD{aj=~Uz
z=VMaH>He;?$8XJO9_54I^p(v=xPx-*&WUNS>GpcYW)s?5B_7}Odd#fzvyT8_9A;_;
z$A}4+BvFl}FSCdXKa-bHTP#Pg+b>Ur-NtJ=K-5V?4Z%p!sO@6d%U=VWMg>IL0n3Ib
zi(8@@Dk3<2&i??RqtpuAzL1SKGTRc$d_};NIhIq_8Jr#bU{Zk21)mYi@zHeZH#4@s
zhyzn`$iA}?zto}zwKhG?Ef<f}BFrD>k*3IEox^oe2J!t3%U%VlnwCJtCGWocYO_o#
z{l~p#7%#X(F;yMzG~ogYi5BA{aH(z(f2ZWSi9~#R#IJ~V48gOf%*F^csbG)>{{TGX
zR5iUC_+5}u?J_Bg`XPwkBDoqm^#yuj#4an|;{xFiCgz^gCKVuhVqE(fZ}v;yPN%q*
zYx_eOaxtzHSpem!k!o1%O}@}DHxT13eMAY9n$5~8q5lB<AN4=}Av@drf2rt++Af^C
zj1hZ$j!eW^R0wXB1C(IX)S~jU1X~DOpL?(VLwQjfBmV$C;A`0aFZeP3CDkPV05G<@
z+|kpycC2nCAq5L+V}vfV59+ne$9<kbq^V5S;ndL;)7SKn&Bd_d1xG%0Pg5#?P9{U5
zS4|Ou*w5TOSeADz>-s5itn0<zB2mUjFwAq7Ze48Lyq@&{%^Hqd;>c1$RA$HIjWsO0
zGL@N&A0JALaD5W4mJ;aA=f<iTwECIK6H97_C5&~0U(oQ}zOvtR-dgy5rZfAD<MI=Z
z162MuOX~)Iet%OyqV|NT4MNfNCAYQlK_+YdhrG+4L3fzh`xa%}_Q#Z!!iix{BAIN&
z)+&`7xZ*1%XZn4t_u@GtP)_X4kA|f8E)QJl;)~%n93aMZFHB>Eoky7NdX{gl5N<KE
z8iF99DNj&n-*JXIh3yNNk4;A~Ys8QcL?$Z2DhAGdfNEG8@5BT{=I&DYOpqf0Se6cc
zkLqBr^h372A5hCF+yO_pggc8~Kk67wb@vzsQkLk%{g{hyrY3Am49Bi${;Ki%LB2!T
z9Kps=T9vQqH|AJ;JFE6?e#8AVfflmtmuuS_)v>;bJzjh9{TA9Ruf^P`h2(@hj?(MC
z&w=6F&|~*DReAk>P!ZB)7W5~wU&hKXTM>7qM5!~kX@}}3UL&GauM65BKeQHB_r*)n
ze!o8NQlD}9fqXFCW-Ht|Dfn`~xmU3knva<6Gc0SkTPhh<qAUDkHP=$t3BF&tP0S)&
zd<9PH{vj<zf1er|z$9ikf1zDsI}W)leWl5m$Eb9g=c#iub=Fgml<sYxq;(B2EvSS0
z!EkC=&BGBcJ6rC1{+dF`60d$=ux2@~-~=(Rgl~F^G4GucI$fU)flw>R?cDnmx{jsf
z(H5a>fM-g*u$>eN!4<cpyuY+U<#uU|6YD3`R4(vK-*Soj>gP~Xj}k3Pflpn_uvaFB
zQsERatamwO*ER4CEsUx8OicAMjWK&RC5^JpF$pls_4OLkuvh;8Vu!W=0KZcG#Oykl
zL(Hc3T+GwU6*2wAlhRX~)EGP89?66mCd&L;mF_3!D~9HaHpB=-ESHD}>u?b})G(@C
z4Sz{)xrQn5;A^Oap1-D=BR@k?!ssDDea3OT&co^^(8R@=#pvJkJD`bk@p}<9WvIHY
zOgk1*8^fLDJtGkY3d0|ir}n`*`AQw`zla?mU-K0}*vx3EJX+kL%AEHs)2>b96n{Su
zV@ISwGb}X~*T#E-ia5t!ZV8d+1MMh2Ht*c+{c~RTFJD~!shBAqvEnu&95H@~KhSMr
z>&~ST_!LyRe7cr1+7lQPJTJ-|%po9PlBynlkdE*DHNh_*I&%YazmCFOa^@C6_&%kJ
z)0Y604E@zUxXdA3eT_cm<Xdna>TQ(lXB+BdpW-kbn}jZmGC`jet1M)do!ghx!(6Ic
zG3fTR!Tw*3!v0`xH(P@iE8bzR4$KpWvOBzgat+I<Zs7`N?MzGG*ZG0jFu}bMyN1T+
z*oAY7RJC7<W+HGdqm%Q1#piO8GF%9&{m<2*6*Kyo655&H(^wt|z4d^4fKMtH@fkZ0
z=xR!-@fO*160Gl<XQ^^^o>qviR*zZ!ef)uNW`9XS91~5o=A)(vZRbqGEO6+5_8Omm
z>M4yx05vd#`tdcHS$)8e`-w}ajJ?cZ9b7=ICL5=V{Jgq=Ycn?mLh%Q3zEjc-Wk&q=
zhf&{0e7Unx!=h}&JlNf0eYKWutCvRLhf|(R5uK)vo+dC#Hw{Q5R{sE?+Jt%ED>(%u
zwhe|RX7oT7aAQ)E?p7yL330++;xdXeKVn(zmj!dVLJ#+dfB1va{?d&|rhwnp$&5Jq
zmsn!b*TekE`<a>L9;Md!sYx!s1uY1{Jc1fmdx9Srf+}4dOxtm6@lu6uWO?4*$`j36
z30{^n+-83e7^sfo3}M_W(<Zr8E7U)6bHLzkWF11i1Yuo36pz#`iAGZEmn&u5wOz`&
zQ@HB-f-pfUZFvX=5>mEE;tAivrXvjeyCzKSy>0!<L(Bf9%2g}>0K7j_gp5O%H#HLZ
zD+4d=itU)m-%Pqy>5FgP(cHZ0mvXIlEm@uZ4L67;*|%_l+X!MmHI>lM;t}oK%569L
zn1e}j?22Efb6F-Wzv%gFOw+lR*?6ynkW2oWwq`d<BZgnCz$=U(WjC{&Ql+5oUBdhP
z@)z7a^9I}TTTH{p#4)b{bYd2+RUm0n_{a7cWVwHe>c}@`z;wLrx=U)DnughQTimd8
zn2wAxWy+VQi|Rd~4Uvu;lxkg@A*~@$GD?;CYxO3dEV(ha;Hd75&wgfGmxr$$%sktK
zIICgHJl4HRci$%e0B0~hc-^T*dj5nJO>*c#O9Q#1DqO39T&WJFvWIfxkPXVcK=oyM
zunw4!w58cB?16iUJBSK37qw5^2QFe8d?9o|?G@p3XMqyxZ4^cazrh~mrFl`}y*@ul
zpW$k}F{hcLyaoD%{Zd<Wu^OS>n5ctn`aV_n^5A`{QvEqbT7hfZEpFvK0^@wbV7?`Q
zN}&mc%#ktn!}ZU$W_hSWz8i7D^7S^B4Z3ARydH#8ED+qnODznKjsde%)g8iJj77$i
zG2H7?p=*9qash-oMvMFsi!m5ETV9yWf18qYoS|f_lGzr1lIPN7e@Foa7Z1j@S(yHs
zmcPn<tBw-;&R6g8H~cvr!Yvl`b$_4SE2S(k<7)KGYq!TXiwV!`lk`XmtOrt}AN~*e
ziQo92^(<7R-LqR@-&Ob}<J?-a_b>Fr3Tu@%gWXcid5==B=zrYold?cr{gi+5SbL5s
z)I&`s!k)TgAi=BD?&TMLPGQ@zG;jETHeyu3v6dh(*$h*-RM~2GUyoJ8G{P0%*Z%;?
zUZ+DA_bB`utH5yP2*SrcIv=RdZ^bQjI{E3Tg0kvbUB>9cHJ4J)HNe3Z3%OzqhGhaT
zQ$Af(E{Ze??fmeeD3sqSNtku64@er4Q3lzBu1R2&v08(<9O0RxsaFhYRH&R0qLPR;
zsb(IN+c%o2QowFzDc6tR7Xd*2(G7?N8vbWx1KSDj4L~MknYq}}x>xf6?u6`^NCuM6
zkZCbR*NWP+2Fx^Vx8nmT{K<V8w%X?*hMzpDA4Oc^o$geTZZmj>srE(<ZeaS3`viKg
zpIoiO2pW#ASqQK(U8h+S`>?(5KSXy!_?BZ5jgjhcZF)*pH_cohI}(!JOS8mcW(B>X
zuqx*JX)^R4ZsM7!=amwKx4D0E<(@z_3X9%l4)n}wMN*mLY$GdDkhp0v$@`>A*jPdQ
zrH20iq&laefA$~%>oHuHYup}_?o-IRJNz3<a|I7MjYlK6BdGm;TglNhg=cAUw=jJ|
zzepK9%TVqm?ayd}w>v+g)7Xr!f|*k8nNE_q671Y^+b9;{tNxc!Y$gS4Zd@7+%0Sw~
zIBr!i@G+@Lu-v=D^ZmPvX}NQJh-V;3VPL*aol3eO>b)fj&GVh^UL8B&%A1XihyLz4
zl~INb&~LH<zP|*r=!iC-6xS%KYMskgMA?a>5z7y(ZKKqp=HhC<Q||=&5>fEVWK|ca
zy+q_eo!xTd(@<6H{C3ufq%koi!t#DD#G!&%j=XAs+r?OWo!^>?AD~5ox*w?HgD>~c
zC^`{XK=Ww9Ncq*PQw~2gj4hKrImkUr7rt$hxEp4<xg)Af)ZHPb8u8RS^DApae_z)G
zD8Cjnr~nOfQ@Kf|1KS^G#Kdzl>XQ9d2~v*oB@p}g-jgTq#{Q$(DiF)@_b5yC1sBai
z81n_Bs&dYKO=rF=I1ya`08@;3D7>mJD_>B|W}}Ygla(L$9aaUue^Um*s*#B}l8lYp
zlSIjq0iEs(_v%!*nI&Q$9^jBQ-=52uPaHQX-x%XyJmNQlp}2xDfiA);0$z1sqPynu
zx|p7!ExDTTZhM4Av$dF^*q39|kV!hP!D5z`@mU8o`F1E^WvmbsLoE86-0sC5zoO$}
z+WZv45Wb@tXQ#;=e@kOd(bw82{o)h7O4LBF8eZ4*1Y2v$SS^aEnZ{k{<Xz@2SVuh3
zKIK!_IGdEXVhXftoIo#MadSua`O%Bf07I?v#LA*7R7`lUxz!vw+%c)Wzx()xRHg$z
zqEMY8Sgq<%`ZE=V(lTm(7WI=VyWwwfTq)QkoM}L*%rIsaW&AxtnABh$8klM?H~6BM
zB}^-3<LTpkHw_EpQu>P{;z71&8$>CpfC$m3=3qewc{M#aMVWh<{kC=e<5TSIEBFwK
zAdE!Vm;6n0`IW2rmN8Uk#H_7L{{UZ_=%~qsV5YnsCrlN0X1O&|le$^I1+-~1gD@x@
zGOFFM<`_I(#b=si>UB{{*?)<bCw>czLVGtbeL1Y7ggf{sh&zX*D!PhTW?AuB4a>6L
zxit&C@Bq-<FjO(GkGVo1NTbP>?in6pm)Qo;d7{m`iuwd&E@MZytXW_Z;>|BteB8-o
z%)HZ6IMi06U|AeqhQDyBZ*u?&sdgUVwjs1`QH_xO19Kc9lPxhVE4To-M&qOEIid{}
z0@gt&Vd`ZpF-yHB3c>LzNtSYsrebZG-Q2`4^)EbqGwPRZr`93VEACk|b1;<x>LOcg
zSq2DqpjM#Ppa>b<KnAtSTUtV*VqU$?p}wKMwS*Bw1KsLTeVpa&k9C*x1&7$8t(%wo
zJX{S!Z{@pt!|p$65bmAJh9lZ$Sm&Z0+LwAJ{{W&h7%`&8`89EF+G7v{1Wd`&rr3@S
zRC+p!qo?$-Ry|y9Fioq1wAn<WIwc*!LVHI#g6=xpz}!RbADX!(+v8_&LIY4OXCZG4
zNt1H8HFDK64TVIg_sS#7;@l%@7P&RA=X5mEU5ESf)s0D0uhIgFyjwwYDaYvz2lEB}
z6bIBIp%_PB3c{81OhP6<1KKPM!VF9lei(_=6x1uf$*uM!gX4mRFXBM#c(JIB0O^$<
zZ!RCMJ$*tLj5ZAh{r=^MwZHx%s1XRi=Y;<Nymgqg@!m*!KQ^-c%RNsTe`)pyA!+q3
zI*4eSd3SJyG4w1GdV?|7j?sKOzK8pZV~6_WY`FCh1tah9bQ*)~${_qW_~P8^kgSRG
z2i&}hn7MO)nbqfXFy%om67bfL(e#SKXihNekVt5q+_xjByNkouEHsR2KBJ1m>KbQL
z-Saooxp3tm69jG(9hoDqwjM%A!y65|hvY`4qEU0%!<Sk|FL=Zh#wIKg%*^Q*khu%Y
z(3L7$`;SC&0x$7D!Cdwb3|NMEZs%dt7MYJp;LJtdc|F5Oq8}*rFfTfn+*&`9MNn^w
zXSsd-a=dn=jx80>f6)7cA}eRtHW6sS3uYI<2Iy$!p!Xf$ujzGOnM>`J7ouE!v4y75
zf!j8abVS&Oh<8%xzs<OuuZ<RoirzbY%)j*KM6)zz^YAZdmlJWTbu8{CT>N-trXv?5
z6l{S)9qwkPAY3j@5}<yN3dwoD7dzlEGu(DeO-8ntGv+8pyTgV$^*#}0O}e?)Vl~B*
z&JflijY>G7P;ms(YkxaN_zgob=>n0?{{SaNW){K?ko)EAbnalsh+n#X^TaPr%E&<y
z^h8C6e5IL|CW%LF>FoCa4GsG~vxE4E%7<b90DJ!cFercX>tEtjsiLBVxQklMu{81i
z#Qww=D;-SN-{s+M<+mm_BEsCL)hvtWxrwnXI<QCR=WxcL3NXy!lsiYJK1F-@QKwTc
z+#AWLT~iD-2iBg?i5L%=f{2%KLaaj#KMhONGT&V8%+e*yGAa3$cL73X9$aMZG&??b
zC!z`kxb6&MQ2iiV(Hl6b<o>|SKSBjO9{tBx+8E**j&U8v;@I~d-N4$5b8rMOZhN%_
z2T*2dFbUkesfIp8Fz1pDQifXZxo1Uk<8r!LFi-CdCqCw7``i}gD00Tu)D|O(a{b0z
zFd7KAxk+rff{3$hJcO?}ZON9VL?N~tdX?)eLFv!#3c4>pu3NzCPy+p?CSi?mK*@0a
zkqD}P#0a9t{KQ`N{l&EZ0Qm4dC4v}dUw<pJv{qhjC~v7v+wyfB-M|e^#wXM&&T7hl
zxu~A@Ho_`n*ZL(W9SQd=IEn^gAc7pFR+AWJZlTD6c1_#*OLkVJa_U^OvrrTQuYEzn
zz?eYQJ?#fR$%>K4!y1(=X@qIB^F<4CfevzD_J|Nf=O_(PcI!~tGG~`95}n7Bj5#pR
zo0&-}9Q!4uzke9hsZaj^d&;s_rB%_~pizV2HFea@?-c3S=Ix8EY$caeKi9%!iYd+<
zOF4saF%N*I(`pn~&&fnQ9L2K{hd-CvN*E=H=;rPlPj3-$mhszuh^8$|q$P(VvFcg9
zN=KbOzM%gA($BaY))dz!CShj~O{PyU&bCT&{Jd;)Zc_N*xe7e{OeA{$06e8@UHGAB
zV!^j??Bdsnbsawrgrg*-Jx$tPFXVtIgW)O@dQZgeIXbjzWf|YjEsobNZ!w;E6f}ly
zFca)J{nIL<h|zwoU45!xrELttNEHV>KWw@xJ*34kP4&eG0*5fvrGdc5Fv{g>z?mk0
z`AhJ_T%|)XDE|O4fA?Y<5R0k_%rL|{Q7thV^9{^9B^!A#V2zYN8S0s7>H}Jv6zogC
zValWREPd%JUo?aDm!6%>jGe6B2@OTTuDnMNQ8xK;P}%0S=tL9O<o6wNUS6ep@5cn{
zet|JDGC$Do7aG1qWoevd0**ttOjs$)!^);AKcw9zRd<g4kv_D^dqIc_LK&|NM4=Ag
zXOJ1T&tN||00cq%zT;wg=iMqXI}y$fUI5F1wYUH#g1N8|P|f+4IekZ5*~OC1E+=VZ
zDiLc9p1)8IrnfKGiH*v@YQn@yY=s73R#K9oM#)oX{{Y_L(`UnA2tpo-Xnhm;r4ZUT
z9ou{OOllaFZZN8crwx^vU0h4d#Kcp==`%*=R_-UCQl(Tu)CMhh)4PXF;Na#q;D$9X
z^2}-&fu<gwT8`LYJa8|#-uyUD$j}F(lvPHvY-1|*&D-iwcA0!i)cg1ME_D9@Us#X!
z1R^_G@E(xOFhhBY;@OW9ly->SKP@Z<Dq+a~00~uKtL_Tf=TD?TdW3+xi25*QEE(pB
zQ7n%@%)iv{pyUbM6SxPsD@+}tead{0?~K{Y{lQQ#5Cq%L_bxd`;f3b_>-@j>6zlxI
z_Y`6NS!0fM6YQ393tMw)CF{9=%g5R+U5(sLx6X@f`iF4FzXJj9a>i?&Qe2NTQMP&^
zicP{$Jt8M??1N>d6zW~<Ad=HMsn?{mbt|2B#Y9I*x2&tn7VC%r^06Fp!Bos_A+v!(
zhyd9S3lTfcQrl&*(@^d(5T`NKHoYU6sNqbn7C^1Us54?Sv_?Ik*dW%Tc9(wzX5h7)
zqdO<+i9-wknO$__=>GuT<)&pZ`-F$A{?j+-U&lRERZhmC6sH9zzG_<3Krxv>ce$9p
z!~X!?{{U!bZ~G7X{$nFhjyp9QISWrrwP(q0=DIa!nA-JY53l0WDT)lt7>JdK^f+9@
z5a&@?`-l+H<5Emhy~joFEtmZc#f*#13p@xcVC~P;3dsVRC6_&7mHv}T%)BDNIwC*x
zg;-}P{lI<y0Pm=JFh{WGsCsb3l8j}nBa;y=Y*nszq8^{gGYjq$t-}{wfSsbFs3M^@
zBb`pv4P%|lhkMKz>yo+A7>@deA&o{L+$^`6B~s}_;((NzeSYFvKgF6@QR3yU96dJ)
zXuilTs5dd9H{1-i{A1`s-?xqa27hpWZ~R9^FZjyFOoy&k*GwlnV!5-#CD2T4WJaUr
zr&j|HzZzRRaTd%*9R7K{L8rhR9xgFAVa5m}M)~~+nZE6F`ZitNp^AU@fCovu`=72a
z#m-4y7&j9T_`9qj==`RWdKt$no@A=z>f8q{9YD0xQ4GWw=Bfq2>QcDT!WxU6veUPf
zm!VMmf&2xq`&<|3l)q`OGFwpu6TC@&w&WPh_DupIWMfgkiS-GFd-1@R?~NFYlfS{W
zdYH$)T}+;Iv$AzBOF=B;ZahpBQ9OmW0q(pFCu<!^LH8==nfC%|evsl;dBK|^ThZdK
zEz7UmxTm5Dqu2ZK_c*4C1*jCGZ<pNj>T`ZRrUm+g?@+<khywopA_wmR;_~emRT-w|
zupwTlQN0Us`~9NX_T*@tl8?rmFszBmgV&j##yYSpOQa?RA4zJRrA$wJ6wDtTZ@GP*
zr3}db07I`(Z#><`x>FeY@xvP>GttYN%m?(5m)kS!TyRA+5Zy&fS7UPZ#ii?=!fCKB
zBZTwpiKQF-o2F+VEOE{dnPjkzWy}M~KgGujo3|Giu2!=N?}c>4X<yn|{{Z0s0I6sH
z0E7ObI{yFz{-^yEf7D*30^mzla8YDS+^7CO+-EBP00;VkXP8X&1$PwpEsR%XKvLHN
zuc(Q*b^idf4zK?JKg30Jd}K_+6K2u0q8I4>YHyYg^A$g>%g&!2PXj3T9&)d!wHBs3
z2<o0Q8kX@$Vq1lfye8u_VFD<F?NkzlM=iq|m-+S{seJVe++;hQ+;igREPbOI+;wu4
z>NSC`RfRf$2S#3SpQS+VvLS}Fj!SA%J5u2mHW=|RRA+E%F|8$@AK07pO9F54+YIht
zn}F#qv&EqrLfh1$^M1~8IzkaBs-4`brZzpyUrtu$pt<OdWmH?(e_}1s72GYq@@2Wo
zQCOvxeu;B0>Ns;KW5v}T<%QOzqoFp}#K{(6uxyC56McpCE?jdp7_o<4rU<?~aR-nr
zYFz7L)OmBb__;S2BEM(^2jH8(ZsM$H=B=h>8uMf68r)60pKyqW^EayTKGED{nu?vb
zT-_C_m&nTI9ixdo)V$mVJC07B%n;Eljw)M=S&bK2)O5LG&oyehmq93HfR1@E-0WNi
zx+TCdnd4WveIjiIHS@LuP>^bFnEPrrJs|!eq@WP{mKi%>jO=r^B2f<gOgTbV1_3&P
zg2G#Lm17+TFekSP`NSvq9PSD|MALcq@TIoIpo3cG$wyNxCPIeE+lY+_M`2JGsA)rX
zg6)cFn|02Ya1(FCSE#+BbU|^rn?n-P;xD3GX&Hks(n@2*Y<4H^8;%FH#&7lg1k^tG
zL0Iuj%rEW;eYFzzI<FTFyO!}%*lwn8);gVjdebY^uFTh(sK9^|ySI)N3M`*OLmb5r
z1a+xyx5%MHGO}%1p1qcF=tFVbTAE|=^s;76%c$pY)V1ayhY)}>8X{={q;t62b8!~;
zEW_zN8;;{ui9mYPbY1e&kMkR(JPSxJq3M{WjsbTT)l4$q6kmLR<(YKG5q+@AXZ1bn
zhIY)GQje!Os}AB-VG)FEd~_4IxgCUdewe5}=jeYPnUQtLghwh7>^?DYOJi)YxO5`A
zztF~DD)l=`J}Fo?k%yWn?JoYeH9bpDP>#~4@0;WIG*9E;AnYUg9^4^@zaH#3oq{7G
zv5_oXK7JUXIVFu8NA{UM{CkHUY_QzD1WaeB>twnRF!8HV>xNu=!ASe@REn`K0@Q;s
zYsTH>QQKw%+Ea}lM!k@|=;PqHzXJ^LuUsF&7Cw^C)0`_P9~FY-30E)#sAtn^mPy^*
za7ApQONTg*wMyTla8yNka1P}*df+y+(l=@^t(OcVH#TXQBwLYWJZ+lUVpbaRQ}`oW
zW-&5-GcUe=+PGzOs03}WnAY6wDE38czy-s`+^wcEGCj+Y?lYR&0UKa1LK!`H{aK4;
zd^#>(9tVLSCD#k!9b<wWD5jBLbL@e4GVUvM{89u|Y(t@z=Xd*0pp&$%%>2>uHf2O~
zJ<FHB=r>J5vS%rHt`xyu`=70OzNXB_M-gApB9{%ffJ(0X>knu)pHmW>6$Ltr{7YE3
z_^Ym%6!yp9+E5unVXw#AEabYR3nJRViXw(H%cjxj#3)UK3$(>RX?Mx~OPec;mnjTt
zdM9*3@VLbdfA6^FRTNBO5NcgwT3Tz2md7PAbBOwnXk}&#jWVK~KOTjPfS6Q;4Xq>8
zwH?ZV7X#rfkE}2w8cahPl@+0dUUN`F$g6Cy^F1P+$~d-P^gry%SER5f*q;tt?@<6i
zP}Kg%E-Cwhzi8udHI;_H)Owdb+vfhv_O9}IjW-o(XIO`gA!S1h-lO<oSYp=d4m4oI
zEz2X#_Js8iv(~0<+8Coy!AB)L)rU0c)OsC3t@s;<9&4m`5!z!qVe94B{>&fW<AT2T
zEgcaR{J}uA;wyAuF*3}TiD69CbK+tp?hjKW;fIuLu!;<&VsF_t`$4C~&F5U*#zp4o
za9tBT{tz}TKx3%#w+8JT*|_DonU8K=67keqh9Uz7he&|k?qFYOQwqIIYK*J9mR_zz
z9WDi7s*7}t{W)_)Y8mZdSuaSfJ1Q16O^}BoG3G&Sm}(OFTjIaADHW1bl|S(WYw!GX
zazEgos+C<(rne4*DE_x9_vr`iiteC?+&3LV3<|G#O?4<Ms9T9kGd1Z96)6S?y!O<k
zKWJfokEkIlss8}(;w{HeDkzxbTDgt`zlScw{{WR1^}#C!kt>?w<8(w7v-p=SDJoQ=
zRW}2n7Nc;j&*y>ql?!Ox$l{uuU8kZeZfgA_ES)4;w4FqEFI@JF$ABn_T5e9Y79Z$4
za~Po)P7TBoV(3f#PnzihTCvV%Zsrjmug*3xt}z&1kOL1i0xVV06^-o$NrVPW!zgvA
z@)*hDw^!80wbbemj&~|924c7(>Q~~JUkRgb3oQXinuLA1!9BGr+Sca%vCD12suO9S
ze1<6BH+UMI{7NX?UiBZo;MDO4i(Wk4c6A%om6*fk1sOvrzII3Ij4@_bIL5A@gkiHJ
z&%2mW<r~CJ;3^=iCh7yf>Qi0rd@Z4(5YfLNjwva*t;(uz5RJQPR{EFE+zd4I^AyB&
zm`;+^@i|B|w=Gi~KMYJ65?UVE3<I;162>4d<v+&t^*S7)>Rs+W2<+wDHhJL9ld@Ta
zddY=lmyld(VV{2xeI)&%6giI1isEL32U6(dm%PY(=ABLFnv)qw3?q#G2wH-awnLpe
z44l1qLZUk7_pcx9MN(bG(cHt?=DdG%p`OzG=88}y30aS^OK!5IV9p*aRFpRH3nDB>
zzS$z}^*Of$6u0n9+F|9!iOM$sr>Kd0h9X?CW|$!LPf%bDM_gmz#9y?`ooXSf*$5Se
z8PdYnwTE#9QRME_#&rBP{_}U*dmxE~ZRhqBI(qm@uHrq>wu0UkHq`2=?fIYJpSxz$
zDHCpDxUh4Siz21>E@!XkIxb%F?B)}E%(FD*84L`$Qz<+A+yq-(F%LgGSGo44QH-Tn
zwEqA}N9`|8yi*aJCrNsEUhs;kil#pn(k!o<(-Dv`APanR2U7ia%hG2!4}9p2=i;^{
z%217QsI}f8n-kf%2kVeqpi6OcJ<7~KxVOKGnPaH5>J4C(Ry0D%NGa$EF2_p3skxk`
zsp=E((09Xn%uI5&BWR{j2}MZ|+2M}TSn3C|SF(QYFOvObeN3H7n?DcPDCmvAtYBL|
z%l`mzn*RW}4Z_}x$$&iRB`SRng%Q}pb!+_d?FL)w59|n?w>`T<_CziqAJhE*0QOSm
z7TA;qlBIEE?c6jve8#mZP+cx+OAPCgqKIL#RHk753f)0tv?}BeR~V(Ovej>eM{*45
z8(1UBFLrh9;ZSRTC@<hV9PT(~nDJE^5Jn02E(+r@$Nu-ZyIdFga_SPybxO+3j?8n_
z#8o8}TN&)&AoUWgWzhxoD*N!MgW58siFO+xQ*}9Cq6ID(W*6LOHLovym{j!=_xM7Z
zfmd<eT~DtFG0xhC+S$kxq(x#n`%3*&8o!z723kEMRDE-Mdep5Fi4<UDW?ebq1tfT#
z!XamJg!QO04xPcmpf)=pH4tZzE17PgoJ<}<nw2sJaF(_yWrA@Wt&3$pgMh!hudyrW
z^vtQt`@i?pxFtJ48~Lg>SNB9v*1UyIgvDcV7cgTJ1z90H*Klc8n1Iu#{&)PuXtC5A
z_5NZaWR+xgbF!yfqn*;L#TO)V09R0sH7+^d7WuH+tp4T|UAg^yIw~vNJ)i0nbuP`t
z-T>E{h<amNJ+oD6C=XCQ*eEdMkO?2C45%rNr48yM(Efv$jsE~ElUGSi9l`1+UY=$(
z3}lxA1;6K&N^UrD<CwM7&*Cg2QE>vq&nSUki-tEanf5N@H-B*}-XJ<1#w%zbbW8b&
z)cZuuf9QYL4zR5)hBY@R7&Q@Dfo}uSR$W5N55=(!%WiW0v<qe;tAqlN7ZvS>7`Dme
zGIyu|`rPjn@7h05EVZfDK14c#*n(?}!(E_xRI{>C**Atfg~R)zA775;JCrWiTtV;?
zVwIU#J7vu5k81}>U$H8I>*K7&D%s+LsY$4|VpeChPek$?HS+c*CMGHyi<>_UC}Ix8
zMTP2ZrYV_1DVT@Mgz5@Cd^SJxKepVu6DoyEV%npT{{Z!tH`6ixpxe~Ba<v>c!UQ0w
zwKd{WC#R?Iex*z)ai&=fuv1<&Y-Ihz7>vFc2yeNMyhBWN<EVGZB5@kVnf$k&q0CDA
z8b45<)U)@>@cXQV?dF~M<7pnU9cjGrUa_+z{gb)%mwerOCO^30sB>E;dUJO4%p14x
z!ug@TaZdR+l_xitCYwMoUOfG$)>7FGysLmYnSwY2+|?#x8w?c8pGax%Nm6A)n29S?
z%^ge+L!2<qq`1uVc!eaU138p4_<B>+q`kpo*#Qowp`6d4A<d2Vlwso-j7(fuOuAwN
zvy6}uD@^P6DPOzpAuSk+fulYmFS%ZPayCR7$!lmB9~nwIXW1v?{{Uj5Q~4%lT;)L=
zBL_xbk~|u$&dZ;utM>kakM9=GZc#lFrFHStp5?*ooUf!Z_|&*)gb05QxR&I>>KLTU
z_=yUh(_Q<Xztn3RmucKF3kEx4(I`1~RA*hx2a^JBFb=zoRJ@#xtEhGOtpwJ2TD>z9
z+X5E+ZS5PFA@85mrO)3aLAE`h_z{R1U;B*~E8D;AF%16z5QFLnCu)c2OVNfoZeoSN
z^?!KObRpP)F{H@k{&=^XOhiqQ4Uy<q?iHc^qf>}){GaL?f&5B{7K34?6-f(_CZAvX
z?l6Av7^?9Sk=CHG7t%;)e;$g28lgQiFVmVhR?>)LP%SWD{{Rr~{{TpKNf0}N!S@#J
zmP=!@$95268&jg1*(&unENzw^b~5cT^~BXGXOduJet}ZzIoz`XlYR`wqex~W*NOri
z1|r>?h>-E>6+;E8m+z;O1ZpK$CZ)=BZX16FVOmZ7ki%^M04M(df0!x{)K<T9{h?@W
z)C6=RlD-umZA{3!o#1<mZY2jOD{c|kOHwT@`K~NLI9LI}nR?!#Esl5Nc^as1?P2LP
z4j|a4aE2Li<3v6yU;C;3_@xd?UM0rmj^%_ZH`I3(oS36fI*8~PtxAUHZg6OT7ZTfg
zh_3r{gzTACh~>rNqn2V>iCWE<C5~Z@O~V?NF1Qu55WxVo9?ZDc+^oVm)UVksziDoY
zT9}Xaf|{C-Y0)eKI!vSA%Ap3~LTprXO0~pATTD+=3LL#%O>!9+Lwk9m(?J}2yuocp
zKA5Sy>VJY~t)>*}JA)xgG-?}5Q>+^U0Jg_UfLcp(OwGsqLB&|d?qVL{x$99Z+_^oG
zF4m!-+mktlY7Pbp@f^0!hF8#lE$R4mOYN5~$&@ibqy47oSp`qEb7$!@Fc;C{m-LqR
zsb@0WL8R(HP{S}An}%BNQU0a?9H!%rn!ot_{$MU{{{Z*ndALm*{{Y`m!*ma1{{YMX
z0PJ4Lk{7gW?^o2g0h5%i%OeBPxle!seMM_&_;xy$bj#svEx0K9BO<R+A8o)C>N$y#
z+{na<LY}Aa7-r4P9?=LOzo4+!QNgaEl5LpsQpWy2coXXm`MLX=!;$Xhb`o|Z2ABQV
z>2P|+KePpye-9B=IE9*(Q5y^gu@Io@`JqB1{ItJ4Vj#ZRQkQbMSngTUfJZj&ed&e@
zAO>T*mztP1nak27eV~U#BSDfmZ$rk#oJ+hPhCn8i+<OsqEFmKu@5eI`u%jsOStuQh
zaJIR69YaC3p^q03%znil(A|%54v6EZv{hWoAK^XNg5M7#mNmfiK=ed(PKS-llvG$f
zoGxK9jEWnUc_(DDSWK|)2)|Q5i%NCce&IAdN{_r62jgW__5vF|B|JC7Q|X_tJ~$Lx
ziV>_wG=MPysj`6Y%?_rjHI87ulN|%Z0~bg)12AEJKeiM32Z%ZGH7!9@^)B@JH~ODo
zODAN$pJXz0!}*wppY}@qh-H06RrNl@_}s$CeLuKV_wHNF!;cnAanH&!$aHNSFrQ4n
zQ(vR~`ToqGt1p!OoB`7zX8c09`dU5rI^>rU^Aoixw5o$Pi^sF3<=WROxHTU9Fn#`d
zf1J32EtUdlUL>u|E}S?EJlJfMsp6cg7`hycv1F|-4K?zDq8nv5A+gH9eg!klP3Mwg
zy&Tki_ZUrS&5P*-FT0e&Cveeh8lnM@7&%oVT*J6FG!RmBJiwi@)(sZHtG-N28FD*|
zb>Eq{X`SEj=%k>W+x02m-d!zm07u^<UgW`U{BDb80RqW-XuZ$YB@fy-4^S!%XDNp7
zzqvv_@3YLe(tey9xRbc79-r!452N?uUegq&l{8ph0M(N3!=l=Q>JcX4cZ~ECvjQ3&
zyqbRqAosas88!Nj$*q%7WhDjfSv`M1TAP!2j)*r!6@wqgZ|N_6Ij$j|QFO&!9Mb(e
znRhKdzYgLqoG?Lk2esfi$ny0sSXvO#MOYm$euig0rjy(YWA#3FDy7S06sBnr;vJ^h
zkJG;tYAc_HzjG`=wk?&5fm-poQiSY^&({ZlFiReLVvke8gKl7Th?asI+5M#)0Bgen
zn8h^5H2OywhBX}TlNy%b9{GOenHh*e$^G^InWiC)aaAk8#07goX2EanUADUZBD#G(
zr?uJJh*CYXdTeFM>^@((mKI9&@Z7Hol`dPw64oHZ$kzV=NNbiqWN=a=Px8ezXgyjo
zv0tN#Ll|KYO2Rd3#dy~ZvK0z--br6(r6_6u#J?#e34s+{LDqNW{fNLC+wYwL(#5^O
zh+6JCmYpKkO8b)Q{{Vm7tU86Cc2(8X+A5i99bD89yCXAdrd)W`xuANA1=I$_MbqNy
zhAGT2g6}^c+$?*HmdjN@AnGN09~W%8*)rWM>*#Zl?WtU#jb#*i%Mx3^9QQkc{KPm{
zeZRN<<@TU3lBLpj6ZXus^c=!6vExuO!1~fx!K#QZ2@MuTM9V`m=4Hf12Oy2<F8Zfc
z0jG^-;H5JB>RF&-HsU&$;JW_+5gJ~%4Q2$)_ZVKeZN0=0p;3#!kM}Hy?J+8vW)hip
z+KrT#DCN70Wicg)J<51?4cr?P^~h;<&VeU5jgr~-(_GRKQml6z<(CiQp51Oz=1L~c
z<>uuxVz9u;2edf;;HT_H7Ew>Rrdypv96`CMc9`M9p~m9^CMB0XH&8W2Fhs-|{1yBi
z<acnuULxAkVsF{cDaEz8_Z@hp;gydN5t+VYuJ%hzmmd^+h!1p2Sfet@S<~t;N`L22
zN`GlhN4Js=;MBA)O^5CZiS`_TGcrT;Eg$`rS9h=a#6}C~%%P9*pH_nrG+T~XRQ@2U
z&Gnc&1dQ7ie0DO<n3V_FH0ZK3sWj>(sFO@!==%Qv@>z%YB?y{^+#jo{LOQ?ZP|aLQ
zt^GqnZOlK`D@Q^NPZG<5kpTA{6x=dS{{S@FL~LyIakk>Zi00)vN2*VH%1gVB>4gBN
zJp22ejh^(L^Ipi|+J2^DQL`~x-#93US4L+`#KP-4{2Nf2JA}(p&{n_zI*1ha9)_d3
z>y=CNMC4ZHRtE;4*csXi6SCl-I$4ly+_RuehF<&lq4hwa)G@9zwAFVN)M&Sohcb<X
z!H>@Nn1l+{F{n03?rshu8Swzf?hyjU<)^ZBQw<|@GfTK;&GUgTtweXjNTb^eywJ*w
zF&EABmej$y_b^#|`Kt*9Vlo+}QJQ99roI;iN>(8+)FD5)>%t(rOmEdcY>98=`JOUd
zu|DB8emzO4vVhzZq7BhL!hM8GQ%e%D7Q|)f_<eDr%_WKClJG#S&a@6}#lg6Qvpe%6
z5z<R%E}QD-?1}fVV*^73wb>HQdtwoom`AsZg!Z~fmkL3aK_)-HGbBP`S-IjH5e^x9
zs#&j%1EdKCrl|_ZTb3@TiItXenTdhRfQx<UggGHDM_1yjs9$kZ!KiYK1->W~dAYlV
zUY;XYbujHp#s(Ek<4~V#D;;ePA{C6WM5<fJwZ*0QZt5X@K{%PSG9pwV`k0q-ErW9j
z@V5~&(Zmb+4Z^`q%FWCI4YAKUAzTlDXg$go--VZl0k|D-h}xa0=B?^yJe{x_j{FH!
zt0siQGLpA*Ff;_ZBBooHWEBQ?liAH#Olt{RD0q(HV#cA5WAJR2$Y@a(rxUcZeD%&x
zs%D)&VDSuEQzoHih4JK8x`JDuaawryFykKn8q2sW53Wk2y)dY^qo@Hb>FQ)H_dkN-
z9#*TkjEYiBYaiUom+=yAbi$<_qrE8a;|Ehk9Ew?$nhzW+XDaxKn#Xd%w|#NM1t)r5
zqP<L`M@9`R?i($!6u6F<V3r@9reXVXs`2UJ-g%{KJ%KC~vv^!u7_P@BPI#>L%6LGB
zccunc---pjpSU-d@MwmZU=E-mXpX<AnEvJ#E^orI^zzF=NRAsCKTzv*S^JezqF>JZ
zP6i;hI_D-yW*#)>o=zb_n7>2#ET1^%acF?TIM0siFHZF2D7bM^2Mu#?D|zsuUls7V
zZfRE$fxsvYkM9TE!9f;kWC#10z)EnJ06rHrJpmkdE(U)i6H}>(Y1B)bgC52z-q`td
zjsb_b&d3pZsbsl#qFL9Cearind*G$izTXP0qE|Nimc+fvAf}~!Ml~GnHq1lB%y8yu
zj#LJSfX<@c;MS+Tx{i*G%l`n0c^KuE2Xa-2=yg4e6%c9Nur`ffQu9;1sW;rSWfJ#0
zidOrNN4ZMOKpJwF9O7<v`+*-2dP4R~f}&I%$5hlY<QTyy+$PNzJiEahdHuwDIDgeg
zOY8jo%PV94XVea!CO?^5cenvHs4GjCuSq|@&G1wWLACK~z$OK4YFb#9E4c1j!%!v&
z&Wk1CG;-D3Qw`Kt-R?PKxwy}$tJ4$EKs!)_L6yR(Pc*Py{77vO@03N)Od8h?!Q86o
zmJPk?BL`cXJt1{b#KE|=EI|#EaL2~uEli-t4oY}2l2jVGaCGI%Y{yVnvKHEIC-D)4
zdU+HM>HtwUMr7KK(yfU903b}Ds|=ffU7mZczxxf@m6@cM^?T*ggKToZiXa6+9P1S?
zaA9hCOASy0Ii_Hwcq-4VFv8n>exO!KjAmnJ;18)b^nj1@n3Fh1;YrLyzS)~%I3jz)
zDC%|Q77UT(Li<zukcw`@k%s3`VfT;!0FZfa{{VlOt`H7oo)o2aPJj_|HMqJ-PS+3r
z05>ozD(Q|Dn}5;&08l%`*5Cfj`CgV;8h(%Zo09(kEW$W$UYf!N)&3O!08mOp{Qm&E
zhp_$Y{Zvq2c0c~cg93qv?VTxKP|U#kqv_-UcUUg*0g?XUf<PkX8L>)=vg%Z*mcK|X
zC;OD7qHACMk3$1w{VqAr_l6HC_T)hUim0I}gHn>50BF;>LZIXFM&c~i(*kZTrL4$c
zpG5i~I!hRDUBRpq^&CwjVrCh68Z5<r&Tk&_{{UpoZ9_KdVG0*EjYp)^W?el%4_sTr
z<96?9emOVu<DC(6aaN#AeL;<`AYIoifW@XZ1g6N$9Xf#Ndylx4>Pl9ND=J;Ez#c|k
zk`Xjb;M~5Wmg0x0kEo2eY&dhcN@W2`-_Er`DLQj{Xg3K=&r#0fpC7R_F%_pS&gp^}
z4aD8EZS&hUXvg7UvY`1Bpro%<i&<z_SW7eQ@`@1BE)i&s_KBMH#q9gyq4z%d`Omn9
zA!?!2ZYOw%?q#N1uMjXdkc=}kaLhkFLKaD489W#b*C$;Dq9}XZbQnUM)Tu!xY7BQQ
zJ-k4x0hsOniG_-Hkg@uJmuRlpqs7p73lED`6Vxb#P!x5F!{XZmM$uI>2bd`Pla=nj
z>UDJg0KYZJmp%hnH=IHHsay2Ead#~*;TVLbHx@=HWrSuXil#T;BVrYU8jlLjBe-HE
z#{La0r)~JEtZ;m3r1ZmF)xtZTxauayZS#hic=xcX`ArF0_u@z$kv`9gq}j#BeF=Y|
z&U6|f$0;GZh8l!!H5YU2PH-P-OZ0|OKe3$9rGyq-!bdjX4sS8Ch%?1|jU>t(s$~Sl
zx{ZFvo3~Ut?2q$<b5c0Wyq=1b?`_6^7?;cUj^m<xO81yrFQq}kuzs@p)4vqzG(~=p
zEJJvW;4RSKa|ik25brqO>QMY&W-aIsq6uhTzTwII5~|#NOP2@RN4$>Q*``%eY8zlx
z0}2s5=nw#&#w7NO*9lkLyWqwU!g`laxr_n+e{#yG?1n7Brn!tN+LgKW^na8esO?2f
zxGhQ1ps1>wE%Q=f?svi_?JQ<}5Gy>O+bxH~eBmRD%ge(BVJAX1^D<tE{4{*wz!gHW
ziE8IW3xS^;K2Yqsj`Sn<343~#C-sE;(c3P`{9HBX``p8kZNL@OWtg?+3$-e&$IfL-
zm#%CcwfHf$dLRI%o`1B7ig&*oKUsH=!a}#grEy2f0U=p^Fk@r2pTZ<XS8#!Bh_;=>
zXVy3e56<UsDkbh1fH)UMX<+{V_y~J{!5?q<BA@;Vv|?WPqE%#@yaS`uFthV$7qog8
z5RmMePe(NV(?RP{F<O+i%|lA+R^M<yyL~{i8_zboMxtv0{p;>oTG1R<q{Oe;9*cq<
zUV7&sI@2_BHGk~NHyrqyvRsTZO|ub$8f$EEpYIR;WPjAl(m}Waqc(9VfghG8IWSbs
za6-9EDVQcAMTKg035H^5**effDQq);es%!_F5pW5(K0KaTrI<4q^?@tWW!L_VB6;9
zNCg^a_a&E&Pf?=|D&q8v(K!aNN;eMKnN-+{3AQ#DxQIkNQ7`E{m1C&pZaLiF#$sG5
zVUt9&M&e)X)K(wbY01>zflD0nMA7n|cR#-z3r$5p{{YwHRNVWVK`^;N4UD^iF&^L$
zlS;bZ)FJ->@{gVSjtzGn(#Fx$t1>3h(XMN{t&kGBM`5^ac|Z>3ONz174ZTV-bu2`G
zf>nv4nkl(ZJDri;5cR^VFx-8(#?wD_F4v@`QNIwWa)2q9%+4y=GU^5QEO#!v&`Xx7
zj(0Z-Ytq#9@LV_?u4XBYqiPbOce!*_J>y8-<H%A=T?OWKuveh~TsH`28?Jh(Mx$GY
zc$kjJZV~uTqEYq!B9sXJqdW(>ZePa#0Qn7}{h#}pIe%h|{{X0pw{d`FiE4qhaZm=1
zppa1RSg#6J*f4clnZ>BR5e(h@b4L_Q=8sai5yg43>}JYmpol~bw`kE){{Y%?0?xfc
z$Nna_77^Tp*=&N{kf0?MxFwrRdz8$~&25jN@!}&XjwOBZSEhDEskkzYN|up<+BtrX
z5wy87yMO`!%w-A&H8BmPcQ?pp-OJS9JyZu#5KX}>m5Pcc$TwOEeI0Y>qNR4?Zzs)p
zV~3bf%^b|54CNlZLx9TkYGhmF1?nsF5|wy&xkHsw*RYgU7b$hxI5Fn85Y6Sca{D-y
zs4_yG^mElg>!ZL>FXg`NAMWlujBW^xnnO<!RIFtgu|r4x%yH<M*{CdbgU?!u)#ZpT
z8TT_^(X3)Jm@UU_H?zM1^fdYsRfp87^!$3{qs5evd7Z}f`K#2nQ!s7?8a&wh%Axy;
z6OihoyM`gYXn`mpFSaxGBE~?#TU(X5zjEw*ihq&jbd8xNL9#ewm(WXDbG9^X*BLKF
zB9Xj_rvY&muOC*YuwxV|1#UTrR#85LDyG6YmO$^gD13J*VUL3bI9NwKfZPfWNxTun
zGRIzFm?=x+xDd$Z-$^Wh!(KFl^_QNV!$irKK$L1J)ueD|o7c3qd;IzGDF(*7A~gqR
z@e$uBqK?oEBaHmH2Ips$m4W7-g!Wm0QtZU7i**!eHU9wEDz|O_0P~C;)H2^uJ;#)Y
z>ZTfY^MRKrwJK*tr5|+JDrGB%T9+ie4jL59F)FRj95SpWUg&SlYUu>7V=T+e!}d>n
zovCKtcZp-4a3O_5KqH${R2J-RUwz9d>TU#?iFVhCTmTkJ(a$RZsHHUcg0`S7KBF=g
zVbYP`jR1R{!1WbKRJ8sjt&ksh<?2{nJ^-W*K;$DB>V3rz?0y*?LB9yW-v_AM`$KL0
zrD=md%3|aDC8h2F4^S9l(!od$+4ke@%8Pd%q4Doho|unlWyy|Ggf-p<$wQU@0L#j!
z9+NdH)*2zg7@npWE67E7{<%L`=7n2?weQWi5?09F{#BL_dHb~eiUR^+m?*MT{qywC
z4ICU$MpmeR^#f<AdZKPme}T?Ply}I|JH#u^vlpY{E=@lw!`dysX}1AI(?R0sONNPI
z9Kj9*C{Z`Jm8`;h{*cc0%)kbv(qNsz32T^GKT!)oCZF7-JBENp3+M5xn)5Z8X(BS#
zI-`G=QO+4cTb8r9;VygVm#X7;ON<>xJRI&WbS^2&rD@;<hhW$48mhGa0Oo5BwH?7T
zs4apu)C-T(vZyQ1d<Z>4!Krdufs#4&LkemuwjoqkOh}>)Hb%_qTZW>8G{-lJj`sr5
zxw8KNC;s4i{{Scc;Z$lV-vU-;mLV=t&bycJD_e5%itw==M}NKYHK>D`g0;9SM`xYT
zuy#guQ|S`h1g1wSq}7+<S|d$YeAzlmLWG@~fm{G>8SU%;0FU!59UtVxAou>c0mofS
zMRB9&V(BS#L?7S(0P|AO;wYDCxoVm;hA{3UJt0Ke>M)iV=P$@^+;Imlm0xWpOFQ!x
zw&Jyr<%f7nZ4u0nwe4d60Q@mA{__FZj8|q=f!^iW&X1|GnNjBFcLhk`^$dD>&9$T$
zuGyDYi%}_#HwI~pS*SCYy~~HDCRc+H1t5~SR&E(aHGk$2vi{{Rr8GzC0?q1R+^c6E
zHOS|3@BaY8TkdGnXZ}z9&XYP3^gq1%AK#xsx%|qV-+a<Vm6>$G97jX0=D0=?TM27!
zp@`-x?pufgo;8Y{V2I+w+$1K+KujhCaSLwk@i0*>6+iplCf<nY5z?rQ+y4N1{{T@<
zukOkv<Crh`2(c7ZGYYgd;&gQbzcmfVS39^AQ5`2W{FoGHxA^=%k^3@f#A>J9R#6>P
zDvR8-=+x{-tw2?jM`EA@vZe5Lu|B4sV@Lhj5A2mG&!TG=A2>po!UVU}(Ua&SBiM}x
z`9Jr-nDzc8vhGnXA>0uYwA&EIbek2j3kJ@~fLNLyVVtEi5zI2nLfv=eY{BA0FPhog
zFE9Dz0N|L#qs+u}67R!Aq@%Bw5$yFV9;MqOQ%iR((>|35S5nGEW$%?{^B4m#(pPaD
ze@NS+<U8DX+Lsp1LmK!DLD++Hxm4yJoMmdCx5rf)E#wlmmh0t82N5WaqS8Oi4^^mD
z7>T-T#0J&?I<5W6C6POVeE^HHXOt1zQXPLtrJJdll?VqeltlFji%Kkil&fM`B?~)0
zJk-J9#{U2`Qp6!#9dwCM%yVzm%U`v4-5oF}eYyG;An%PS-u;s=>Id9aB85KMRStv+
zgf?ELz7z=hQX#x}9GeRN0K_k#$M2Q|-*7PMBbt0|nwI7?#J1DnqY-*{<43tRzPx>c
z+-AJ{L44n!Pt`fX$9F5Yf2{o{U%q#ra};+Mz1k~&(!bFOo$Z&S7m4Tr&+A0&esuz+
z(B@<)tTBUwBJ^-BfhpGpr(Y|#+GL%+eubAkJ{1{ZPNKS?)+6=0G!>wT{_xxG8od<{
zuv>>wJ-H8iG)x>E?0u)$5H9|vFVwvy8#QCk1+ZH&Ude|dvW9qw{{STa0A@_k2Zpc=
zG5AVAnw8^kb1vnjr9wfrLH_{Ib5rP*KFROySM^Fg$aMA3(laB>F~_{RMRF&pgil^?
zsA8K8+DdifQf?chZZ&}h&x?oz!-g3-V0&>2k?Zi>6uCsqp#>kgReqwWs5q`O%mO)o
zjt{?mN<-YI!?)j>F}o*DK+j-st6GaXVnZ93@Vref(>+Uvxm5QGf*qyGfR>4P)>`ux
zS9j)>jAy=c7jm-p_+C?wmclHYxb&A#aiDT^S#$L<{`sOYX!iyU%ZLl1!ABey+<a;`
zG6y*_OK|b5x#*sybLFpG(xq+cA)e(J5bpT&Bd8YpZ-d5fxDQ?#i(K|SOP}b^NDEW~
zo~6_`Ka_cgQx=;g-_ij~QugJyL2CPp^<jB;`TF2e!~k2A{%5*j7=4MUM7!K`H4qMp
zfFH8hv4ObDV<o`oRsMOvy#nP?SsH^()QcZ?b0zB?!<b~WLAy6`!-(PqPPF>}0N-(2
z_*Hmy8up-%q9swTN)qjiSk|RHCAQpimL-m&si(vI7(a3*+ZrYMM+<5gqh4l7w0+kD
zy5#$aA{SFo-uzPU?tbM9?mj<I{^O9yJTCXkqr6lwfa%1u`y7TruAm5OacwiCt%k@{
zSywM!0Z?eZk*>3O=LPN=%jIp?8n<epcTskf(lQ+e{{V<YU{~`ETLMFCxld@6w+*AO
zj*t5gz#8!!iEyQY4N<R#wzn{}a|}QUYTQTN6vG8aJC)0bwmLT)l+L|4Y*Dx%P(T{Q
z-P~JknAnJ=xkU9looZ$pxm`}~UT#nw%s_5XXHy2-H4CB$QLlW~D1hkk7KWfSW<Z7@
z&;7&xqyGTrpY<%|nFA>1{AiSOQiw@R5qIuTjej+Nc}w<$Tx(G<GO+a2CuCL~RJYi<
z=91F_uDr;gnh46FUc?jvAXj>d8K;N?QsrC<=Np=c`k<8A)CZ<wjm5k&&MsVPg|6cC
zP$OPY97E(nhRI&zjVtv4{{Zxx2zyZ;xCSbA;LVzsOXeO>LBaY=HnbR&Hp`wWQV*0{
zS!3Kuvz4vFW-G;`5Y3Juq4nnHa)Mvfy8i(ADqj?Fa;0-)EcYrSEb3k8lrt4Hg-4)%
zr8SFf^o4x;M<p|_NrCqX0?x>QS8}&es5IJr_}Yw0T)$wNj-z=K8r(S-sLa{$plKX_
zrZd^{-vnB-6Jy*oj-z@~s|Ka+03*0>kbxlOCJ9FSTxhU;5{ck&AOO_M9_44R$8Fg&
zy^@|U6&YLuiHjwiIf2zjjhp)TOR*6XaK^ZxjmU8Jb3(d5;&#o~)Cg1~S8>1eW%R#^
zQME<0b5YMd;GMtGjmk)4$p!lp#5Y7$3Z;cOfG7{>E((_<FU%ZbCn!tzC=UD(yPGMO
z69Z7Ld*y^H8Xt0_`yXVcFH}dl9T`Iwk!dq_n8}w1XT#ORr-<^HS5d&|hry8&q1-C`
zA^a11%;^uP4#%&A#U@f9<qsnV0LFdz<(YIMP5B$-u|3NJ*Ea=XbV`S<avUC|)4e10
zMj3Q_=2`ll_c3Wt6~lucD35Lx?2Q`Y38a0&=LalSoE0f!uZ*roC7vl(@rY9mpAFs#
zTD2Xl=Hg=1@0I@OO2#e|mpoKhg2d0u)0H!tC)iW$sO0`01Q^7vk2T(1xO(7SLE0<V
z&-SEDp5YOP{m=VZ34838{)yf%rO)kAQhho8*GCk2l1AI=3=}o2>NcIg+(Q(8Gd|h&
zh=@BP1s!stA<F*%c&G8Z#M9drYkwRDZ05?-K#a?2R#N0Lw2V;HRdH6Q_9?IB6@7}I
zs;`$YvORN4v3(&BU@#m2GXwW5AFsvFQvE@ooj^d#9Ld>`GOxIuRgAyG3>WXq{0Lk2
zlB!XM>qj{8K&D*t7fWM~D=jk@!=!p8`RVy}Wg<$JRZ<LZxNZb(eWhpWRa?ZjC=yqU
zyPs;(eu+O&nO<IeW(tDfvOE|#J4pTo30?dvtju0kgY<&e?c&mo+>;Pxf-tmK{wO#4
z$CJjYgWusON_1xaA+{-3G_?(87IE^pF)q4w0-z}M9k;mfdvhv{oEZ5?9aOXy?jRiu
z{^nPI(0=2EFdWwP3x3?GaMSCr?=ks5#4eZii|zfU<5JB(h_|@AA(!?)`w`IZDM&IG
z1gX-7;1DV+hHtwq72K=T6S!6e&%gckFYizOH$6&c?l+gyEtY~C(>p}On4)E7Q71#+
z!hptPU4juz)Ed<O++3^O_Y$b?4QqiDi422qRuanbvahdEMCw5nSNZ<{alMxmw!o&F
z_)g8oGG<?KgHYE?$V8rmcPya>V4)b<z|<Pl1O-95@gTOYMG`6}eC~~xskOB*&K=8j
z+%W->?od4<_XC+^<ft}GI{n8&=lqZT>SgS>-oS=P8_Yz?&E@#hFon&EYAx|nF4!o{
zDZ2z}2^eNByT7*=09zZn_(}*&kQ6lx6nLg^j-bpvz86^P9A_jC^%*wzG$b;W+U^F$
zR{5c?MBG#{5Sng&rBsJ!aUIJ((^ls*)Fslohcy5xg?m-aUl<0Z8hI+^@V5rF@|9&D
z-IQZdU0fF@aL_BXAtrm4w^IKAWa^`UFiO3SMHKfDPp6*jWucAcUxosm38ZElzjBrK
zd-2TAH^#2wBBsR1*%sE=ohj*y?T&XTDJ)EEvhQ$4r6HJrZ6cukJnUo8=SDmd*P55$
zSy<%=<;=i!5*_1`+Judihw&u2NmAzG7E=BX_-u}jMxoSgh<|K){{T=MGe%_DD%mK@
zGM=aDDpa?r`b!&STb6Y$^h`a=J@UkRW46Og{{S!jz|ur?L^UniFaCr6r6s{%Qp4}-
z{*a-??jX9wJ++_LxS7;v-O2@ueMdMyy!!?IAe&TwnC1;YVIw)?+y&Xr@?5gi{{S(1
z4(7<i&$M)>)K1J`wWb2SW2!d{vDCEA4SX%^l$cRhhUQ(}5|L}Z7TrPWp@~%f;Qp8{
z^o>%+Q`~C%H3!$r-@U-bQ4syj#aS>ER~z{p;eeajPENU7VNI|!PuC>9(&>C5(=iUZ
zjwu;*DPC28x=u^(H3;<}QP6<Y&heR;$euf5A`<<YG5AStT%EKn%M@y07)Br`%I=|s
zCsOoQ#b*OJizLBHpS4P)`ds~?E`{~|4bV3W4=hVBsf$(V8ejx7byOo);;CCVF3m%v
zuu57!qq6q|VW_SeA|^-{$B>Z7{{UoStUr^=&HA{__Ni4au~SiGlu*?Vg)cjvzU4*X
zo@*bm`<F#~{{UVB$W{?(@d<4St)T>S6&U#3HNYsBPc5T_nMlS=Ow2?01xsYm_3<$h
z`OW&6uYBaC3MSA;49I45Lvd9d2#XVPZSBl{jKLEFjvAyJqAW4-xe+QnaFHt03$j}K
zOtCt9ibIY5xd>J8jsj&LJR$ck^dX3s@Z|wqj3G}8w0oAl*ukO}>C?_>1TtGkLzi<D
zqG2e6&o_q+4^uJjIw0BOjYU>|IwJa%JxO64#X@xpuz;)5V*3<xe8wY?uz#6L-{5l4
z)U`dP0hXSPGcVJ>8kNgPl&89n^t+fyGdQEi4Lc>vg2Hf<x#&Lp@vh>T#7wv0c1%og
z$BA(p7}%x<#si$~#d?Bh<%}$ciG;ZU7>JEZH3y<42sr?#5*M-~xCj_@5PFkA8YoO7
zP>7j#GL&jsY65=<48P2B3SjF9mE8;=)XjAX@g0!G6<Z~rt>#Z9qXj%~g0RHejr`R9
z%}j|?E`mGT>NDx;P@#A@0t2~C_*z;CAsmncBx7C6JxRAV(XOW9?o$?ir6?!4WY~vr
zddh^3lyJ{b20NM0sigNTvhDJmk_gu+h|UqxTAb+ggn{sv(;~mAo8eS92E3M4#JXiV
zkj!#iEb`$OZyw-W%VxvZ;0LHh!SuL}oJBk0<+CqQFHv70^|(fxo{(i~I&X6;QiSyq
z@Xt+<R0mT0^u%jv8+6#>T%DiL&vM5`*Jt0j9lvj>>}AWBEmav_5|wiX!(WH?1dgKb
zQjD?OaG%{4`x&tMm0SR3G-7PQ>Lm_1um1atKHuB_0DVgnNTck2wH<}p&)dzT>ZMOr
zarGTO(I~e*)09<C@8PXlhLZRmv0cML6{N1gwmBy_aa<+tCU#|gNoN6SYFU%1M%pGq
z68A2?GEIcY<J9T6z~45&{{YNZKF^|6hdUuTLg3)*pKeB7lHbfGI-M|=?HW(0LMu;c
zgK35(8Eg3y2kS1&1#rq?l5Z+mQwYD@XKYvYnpr=OMhv1-?r-HP8I#1w^qzs8_OP!Q
zW1!XU2}3%4LX*>SjUv+oyD@2wvEnR(4KmG(fC})Z+y~s$dZ+-<CCi4G>&y^b(^E{u
zET@GH%eCPYM?~K&M{&z=F*@YDwp#unw?Iu{8C>LsW_p!LZvD!v?hD8ZtQ@6X2Xdpf
zkO^6kb>n8`mHs^u?o=GLD}W2u3U94M4aihzQ1^4V!w{)#l=QaeKqa1w=Y~j4W@e#{
zLWS~5XKdN3A4f2~N8c!x_bu))zi?ufV}0o=J+j0S;*y^<v+r`L2(JgB>M=DWAtj-8
zEte1su`O(=e<guq#NQB>^$lJx*#$fy{iXp~4#whkpGfB{4zgSWvSQuFe@KRvpL70z
zKk6>Y+2Gl>R?dF7Q@HS;bc);kMfVGBm&GMZmXvWsxc8ZC{{Y#QpGaz*OrgJ64yNM8
zME!r}Sc-wLznA*d5}fTn!<Q|vR-x#HCoW(bg>4)`{hTVz#etF3F)A{|Low_nXpYD|
z8;W=s5zuZeVlEQt8wg%cG$W|hCR#~m>1sBYtwyc3C$$R?FNIWcq@j%wQ)54FV*Lmd
zjG30O_qb{!NOv9rU;CO5zn1Zdfz}4`8VPJMsJkIx#f;3EuVh4`l`~9vr9CqR_bRgy
z#563Ug1z%tZ?E$%j?ej@PMQctN>ICUV^J@DFK*!gZH7Mu%7u|j40xT9GI0tVd|@Lf
zrHi8r3|?N&;nS6peGw>qAY1uAqI_x?V{F#Gqgk!*&hgqe=)Z<W>>)jJ=1>Mq!3S82
zh;8J_G{O?`x75HkW@pZy++~d!<wF6v`^R#UJAo_l;G>RcFalRe)|3F#Fiz6t^ObbN
zuiSnDzMcUV%Nt<%aA>D`jv!wzUyV<21-sNjI3;2$j9BU%=pB$L=TxSQHbuS=o2gyT
zwG6?x-xCz>eK|F@Zcz=aM;F~gI%R^$9^!tL^5-;*ekF?PP;3zInQy6KeaOoCGuOI9
zMS6}IRF0#s6<ox@3{LspxOZl=)aDrJa1i%V;DVX6&lww&QIro{QJ>nNq1;w?2+1lQ
zYM<^3B)E>wTuqCOCj~Wc4A8QLE@0L9D{arK{yhx`*SR>QS?-|NzgG;gQ7m6lo$r%o
zEPUfOgI_OG7D7?`K&gX}rXQj%+`Dp+5{XES#d$jltREE&hm$ih5Tj>h&30$eB^&u&
zOy9N`aon2Yy?sT*_Y<@;Bo$2_Urb8=$zRaQy<%GKUAaW43<%{TGQo^dqFB-MSUUEW
zhj6d64uWpbtBHdagvO9ph`YiWSB-E^$m5FJ8C9Neutks4eb45qRY1AiS90psk&g)U
zK4tA8yTwo25l`DQ4(@*K49EcS*dF6)mRHj)9)zs@!6E8Zq@m~~3GP`Qr3vm`FRzza
zikT+LC99SM-*JF-7O3p!Dt8QT;EW?BjizFW?a%0ve{@(RcM#U#I`a!^UG@G7Q4;Q&
z({lNyRK&Z8JC5(RVK3t~e<;HK`HK6F{V?CGvQX8qg+9^Kq$>87U8qQ#U|ZMv84b9-
z(+kp5<P;wDGPm%>`XK#5S^Ix5?e7FT<H$u?@R)#(_Z(_ajBOepr`%#KcMNJ7CQf0J
z`$|mQYOYzPI=<l{vtJK$G)H4`%Y4zzrq)Yt)VW{USbZ?=B0=lYC2gp#0yPx%V%EEr
zJs%#B3d+3@WlYV(5X;g2V9w9+ErPnEJ+q{{j(09qM{>jzr!!2$ENO=CP^zW|JVh?q
zq&QKjMM;}(9j2hE?k%|C3cVz&J6t_DJDU>5P=EH~!-sJqH!@osDT2c2ile`eOiUYb
zQi<L3wje@LVjH7mp*J&nGTF21{{UtR<;9lAJC0{cCY+1zElfTX-A3Io5{6(FsXCj0
z#82j2CmIYvQt4ZQWR9bLDC%6daKL@U6B#41+A3GRrFyZCeSoN<ai-(s=YP0KMmqb1
zSlpgWR!u`;6b+h-%C_wq>n+wwHR@I>bzHGKfCYCmB*4X+eM+svlLZj(YH0?44>J)#
zeP!f-ZclQ^T6=RaFYP|@T&pt{*{JUks)J%jJO<u+Ds@u`)Ot!?#Hv^;0%^GQOu>E3
zG;T_ol_`Z`Twp~<ckth>yM>zbwLLh1`z5grp^Oj#v*l0Fn@4vq3fy+sRW%$GN|<Gr
zWZW?yb77ddCTnp4FwC#;nKqeK{o{%y98{+?N|h>Hw>g=XJB=O6=(4(m`sdLC7q}o$
zrP}ULR7x%#OxVG=<fdr!i*?>oI^XVCQx?k;64%I@)?$WI&jLrR%`ax-lBUB^y$R9C
z8$`&<z|1nlUCm9nxNZIr^@vN;)Hj3p@wjS|fzdC+DH|{Ln#*u3jFAHA+&>c~cG3!p
zwtK|Po}o}I+(P}J{!ur7Qh;cdF4BZ!l(q7u@c#frztPU#(1O~Qw#<s;(1W{pgMU$;
zoW!=+;Y_~v>Q(~I;;B=wNUXS}tj2kd{`C+409moz9V4HDw<ln~05F8hEPC^)jLKE=
zW7!|*`0SfYm{w<aLS3VRew5D7T&$j~g`d#&9vO4OKOtm#)N#=7@avFtMjIOaLhC>0
z6~oPOa4r!whAmy?e))DoasdB80Kf6msZ4h91Pm6R58uQNVPvcw4&mHqz9OAw97{Qu
zOr%3oWU#N5l?Ycd{j2~w?~qw~*WA4ySJZZ&xGYx9c+kTOm}u;kE`K#Pc;t|YnWKuF
z@(|reGT-R}qnMlj00{7PxSq62)7#Iyj6~Pt8pL|uJ-`zI4#$;y;00CA1|m9S=kG0J
zm4qnMn74;fN+8R1G2{71Gl$%94ESha9uV<}1BiHlCkKNan3hm|2>tgRT%@M=-|7Xe
z2ETFUb;(S3a=!o_lFr~=;ltvrOQd1NTxk_cl6A|tmS$lIt9~8ISOwZumz^eQM%qe^
z>D!tjwk6PAGte%PW$_@SFm7DTks?D-T1B8mO|eFhRd9hn2yq7G*PDcn{{RKp^#=pg
zaaKU6=2dyBa>__4oF)%5jgkmY-U<72_%$k2+Z4mtCX(?^;{D9?+-0U>A{gSu>EAA2
zNBzo;+kT=L%#3On_Bq8!baxPg&1jh)Zcs~}bfyBtBT|=fagtI4Ig*}}>I5|L!DQN@
zveNVwXv)-zz`4>Ol2`F<kcSWKpUt7Njf+2QnGd+HnRDn!W}lwUrf0L02+m<rVtM`~
z2I~0N@Jfe6n@E9EzGy4dqOv>F)UvJm`2PT$i<<ljJrR<yqYMt=d*|+GTbpb<7;it|
z;7CeKEyI$cWn1oCr{JWX<_yHJKnJ8(4x*n-`{CNRaiB+JD>3LnqcLWm=wnxM+jA<)
zAmflt#B~eB(xzp#a>D1h<)gpB!<`dE`;Ly%lM4R;+LRa#b8!YgqQks3v!CS2{4o})
zDEocJ4%2J(>zf0(YD*C2&;a_DV3k=Xx1gT<T>K)Il)XM0mnx_wF#iCr`iNipAN2?-
z>5WO8KkpJOe}pT}9YCk4?D<nPZZ$?J8o@W|f^E5&Fh)#A@ew=Q-0l6IGz;2h>6*eB
z<oeQG8Sxf75!+tn(}|(nPog-%%C(LhK<*tT*B6SXW>liNV=HS?v-;O60OI4T`0f{y
zhUv!OU}kknIgarX_Zt-jPIUhO-}g1m+EmjmVTyfAy-gGQ&;C6ZMdRdco5BF?HCm6f
zPSephHOqC%CjO2}k(f4R&D?6o956bYHw<Bpu(^Vh0vKFJS(rDO4S#uYS8aNPif%Te
z9kZxb@kyP!hem@^rGufV{v6T%IY)7|eZu=ZO&2Vk&4S!?tQgvqVFWIsTOSLBi45EL
zV7g^Q*(jRl2w;1T+JI5gBM#%C(!m|3B3tFS<Qs@2C9kNZ-adAbxPe2(Z*eq-Y5|_!
zD;NQWW>ZFq+strF)I!4t*qVucb*{`YUcUy4dxP~c(m_|;V+9+AbK_S6wJ1ZVirvd!
ztwjAMrC>UFQ!<L`SG4}o*oSyP$EaYjM!(k*E0W4emBp}uctauBZQKCq&$O97paL4x
zGg>uUhytr5?%f=jSq&Y^4^TI*Ku)OLNa9g5E}X{fCwI%+<^^*R%&A-}0y@DdHxV}?
z6Z&EXJVClO2!a(3CNAbFS^?Y*_x|Qx3}62Mn*RV0LMVpwnckhg<%6L3o5!+MZ*j>^
z0iV6G1cQ5&15h8TP`=`%_a0bccFke)vh!0Iy&>7uF|HA1hzU+%RhVvX=>r2$y3Y+9
z$5@DS%pLvAjKaq=*bd;8Gswet*Z%-ul-A#WQTIx!ck$BdBk%Ak??Ur#RHt}ftXJA^
z;{&lMaS@Wax$gHrMeYM1Ix=d|(+v=_E0hO*rP`l$#@3L$KcXb3BiGHko&H7JhACG@
z%IWXK)%Yb|6Sxdo6%|%{A(U|OY+i{|eejd}zS&o~{<*Q9qLc1dt!^!jx{R^G6_2`~
zqP`bNFP^?Phzw+ITeTI&H2Re!{{ZRp;a;P<Y8|j;1n^HUpxYhM^v~R({f`&aT;oj3
zgOnQd#dF5xH9gBX4>u^8mq<YDF(bYNO$KACWW=b4zGyuYck$Ci$1jc8Qc0x56y{n(
zF>nPwuW?#&4&xft2z1Xuf@<hJ{{V7##A~AE*T;F$%I^FF#UoL)?oRYN0^OzPQUPlH
zE;~fp_C=PXPpF0n23YNw6SuS;i*Gbi4|6H?!E*6%aB%RH(DqFpG$dI59TFtXPa#(w
zSN#0K700Gk#abJu6)9Nn&e=iD_2wzK(-#+U24jd&oAc5TMf`pai`@HY{2Eliu~!5b
z$|7scdi4|sxVX-C$!@+w;0G`*GOm~TpR}{wZ-#o8=XRIRP!~`vmz98!=R4{er8LDz
z*N7IIW-mv?6Lhj%xNcL|a_W;I<DBW3=WmW#n(;y@A<*{^*q$^*3Z$t!Bid+-Bkf2)
zO|SIAyyCCo3mLGF69lFG&!{DbzXbOzUXt_DV<C&hy!!d~DyDO}{JvbG4&zl4tvg9a
z3}uZ%3_jr$a88JKO41ZLIUZlwPka9WgBr0Y_|=r(&5cB4@e{s=TW(QUrmRJFB{76s
z+@u=RLuq&!m*W!cdQCADmh9Ah#8smWW(~OH-AWFVs-1dFOD<A$JKuyI&!QWhBqB7*
zY>de+IQRa5TNzQ$7vWK^E+~a*W?z+%6^z9xVk7Ee0O{X3neh(rI>wE`Zi5lG9RC1y
z64yqf8Mp}bv+iYZC%wk>Nc|kEMd~7fpZ>*O(e{3|{iT$*{{VW9TX}RVeaCO>aFa9C
zM<quxi?Wd5YQ7b5xD=k>lA>N>olD`}q;vX%a>M+@Mmzn>U$@KJV@SlZJCs+Xb8ezJ
zs$cz6dH(?4_m(-G&C}eh5aNe>@>|@>c{c<e9&`d&4&|NzXtkrLwd~+YM^F|AI4-4)
zO0-)bq1l)tDS`W4L8r!%5q*j4^e{cMxj>obsyIsclnH*=XB^<f8ON9a8Hc30iBwd#
za;R=zg}-V3p@Ha>L26fNN+Y}_Jz=N_=Wszp8f=#@;dd~$=8i$3q_$WkO^9nmz6I_e
z)N@#_?L`F@b*V{UUQ7P~cLkw)QCIvFM2|u$v15lbWOXa*X~Fk037fub^d$&}&?0;B
z-s1I1?3NeQH)i3xlxIXU;;YLIrpTu8KaywE&#7}i8Y_r`HXVoil|!xghX|k=k7n6z
zO~Gt#7n8UKNnZD)L=N{T0Behs^+z89DkVXu&iJXWYT=I*qdSl11k&nVz^KH2?C0S{
z2h>qJe+5$Y9E*!Fha;%&CF*rks`2hE62#R;<n^dWRMdC59JK|&xORwWA<&}ws0{8>
zp^h(#Iiuia*$z)^p>3CyHnx~+#6Yg6r%(+ZiA%1hqFh`~<~ZC|J524@FLDULZXa_A
zY&4h#L|hI|-NmtH5&A)o*NKfo5S%sCOY5mtUqn>ya$j+32!k%5m~1yb_{`ls!FNv;
z1D2s8qxpZhcjKvcB08F5oC%!!o`!*N1R-`MLiRxY7|K1xdDJnlh(}SPYGR#Qc4GH5
zOx~CSR7nbclHX7+>H<_2BO8q@kgXYB(USS8d8QMTQ!AAm?g5emloJkOwzFk7WXdq8
z#5s6#@Vz}tCe2NJ^=->$sM1@Dqy#DPrV*s0BYdgdhg+C!kOR$kId?mKO1{o-Uvu=t
zI?Vj5f|6aL=D$3~BB=8Zu{89ISuYVrENPN`ke_8GN|h_drVUi&mBJ4c%a}Np!E&kl
zii`CQZkmJ--Sx;>DA4C9GxY+?gP$DH-edKqC%Gkra{lYg6XC3${!*G;fG^fzs%2s}
zEG!kTmb;{OmDe@f{{XWzo1@tlzGbW%m2&Ckt6gm<-`kVi22zM~ki@5xs*D>P&}G|k
z$Jv`biiZ6lQs6b-(va&|!tgh_T7K1oY5Mq1I+hscF&rWogO@LPh$e4Hj4@^$OF4&O
zFi+s#dSRsZ<PnA@C>WTz<fj=*s9^gH4y*(&#8?pAbaG(##QMW=-At6JeBeDwH{5Wi
zkoHQcI+-~wn09!R5Qj*f3!lz^J|g(lS&2aeU&}B7{(OHxpQ=Gf3lT0%noTUbl*D>@
z{YebppVTkI1>%$kHPDwwr^0LXGy4Ak2I5944|1z|fp+*Ix~39jF)ac$a!%5cmf-jU
zQMO!dfczIE6vh{qB&$(c=A*$S3=lWw(XvvfgcNx_pc_S@nG*PB3zoIx2Vy?F{{UT%
zvL?xAIIx8?)XcrcrPLp#0K>TAwG>HR4@1ND=2-4;pQ%=2d+1);Q=^Q}=ODB1F_`{6
zYGct#4%DQl+%+J;BS7X~EGH*al;Y&{WA`*Ff5$)Mkjt4>+$iS7muiG4j_x)GM&c8W
zk{;iWYZUq)fFW9ny&$u`nPCPl7vwD)p5P~{4sq0Xb2#E+kRIUM47Vsw`LUA_?{gY7
z?o-eXLoe2)Ez`K!V{n8wxqG_QbNmr5^#;P<=iS>f&zW1JXU7#5E;|`f^0JMiIzx1e
zYy1c;{{VqH>DrK5CbXMIZom8ZgEz&-L+(}OsHlP~?16)+SoDYoNx#|%cdPCH0KTH^
zz_mJfZ1o&82L7fBt$K>F291Aq&*Cxa>(r(&z4(uy5`n#=RO2vu9r9nKBbt5_sVP9;
z%D5GYo0zJNJDBrRwdyQKUl?Nj$Ef8Ww{xtxkSZHtTmiX`pZR-;{(=7h@;S<0{{Xao
zr+(gRthaR3^@Pfi^$cnfhEv;}sR72NSyN%CS(}A6IihwY>WAowYL{l9;bKq@@{B^L
zjun?Z(>IO8VB%uLy@RHHt3Dg0=^dMko0+(PmS+<XW@Wf?Qw%W%oXz1NK%!vV7?eZP
zj5{-D&eu}Gw^2K2*bd2DRW}Wv`!e@6sOlmLt{Zd7jFG*FDHcWM^3=EKfkib8G2@(F
zg=|dyGpyPF03J6Bxj^VlvS{@2^(uNDz&K-<Y7L#lreK!(N>qLMS3glcvI`8j9*;B9
zRkmU^mg>wgFLS;4;F6^8aK@vS;jm+(Wpje*BL%+T+Bs1DQ#G$Qd?P!Z{Qm%P5VQbm
z!3ANSUE&^-E%~@(xa1sd_&;Ep`$P|<Dz9;8(j9v7zPo{2f_?u0NBu>1To<&V1Rt@u
zt$Idxb9<M{AHhE5hT?bAH*&K702BSYjl&oBKI+6lT+pseeIg}w5zV|0NEpmR{7S_@
z7SysjmY1WP7VaagrHS8}sKylQQk&}>L&~z;qRJbMkUQKVBUjwd9+;w?Mzz}keuSg^
z378nHvitNQ-#zdZSKRyI1O|xaR7v}~Samfp9X}F;bxK<%TM&7!JGhz~g`&RYzTsw=
zNT2tXpJ0odxFx$x3LvYCO+c<Gj9$w!Lk9VwJ2NVM24?gY<KrkV=#P*;fu`KT?ab^-
zL>+!7zvh3h8>}^&LNNqh2~hXW6Yf$yP17+vn`RsW%g3rr4HB3Ffc*Rp1?lr9QB^K8
z$X>@?PVjIwsFyC>p@C`u)B+WAT%tEK-IA?KK67zyk%V{D=?I^2t3KzlC1#uZV<XG_
z{-DYOpMSC<Y`T?B*Ncy`W>Kv)zHK3;^EeI3hp&~)q=IIdL{$UYY$;zy#!aae2vK7o
z{{V4@#r?6>*mp3)t_yF3s?4_&7MqVILu9I>n#>fr{R)1m$$}`NtKKCaY4$6*_4=qk
zs7A$qXd!hih;wO-iErfijt<gWn|!R)h~P{PaON&4Xqr+5^9nq>reU8wpQQSh2(>O;
zU*J-~+r>pHZOM{4V2j10?|i$99MHHkNaHj2j!3E%GXh*C2gjp?bWD^MM57j8!{jht
z<&fxe9%^d|2b@uXD534+m74sK9g^yN)G7SBet`2L7)%tx-#wN@sN=?q{V@HjDItf=
z-|(C^+;fS7^)f!;11H1<YBMIIL*8Cu#7hQTDPm)|clfK+d*w@*fbLMM*DL8Yz?2ZN
zZd}SqN$CK3JVkrKUw(d!lJed2eH|bKR{6H#G^h=-iO^@4L+Vt$r|S?tq`LhZpV>sf
zCL$<PxKwwv8ZlXbv($**uRY6eFebl|wEC4#LM!sp_^ZOlF<Fm`JhLwZeK9{=a6v(c
z(;Y`#DU9!3KpWoNxT6sL^HIzi`1GB}b@MR;F>P))v{ht024(Pja%>Hk+Q;#D9c4Fy
z(n3I#ErpJG$!x<+yqxBkmCT`_u1%w4cT-N`iXCbz9Q3lc7L7q*VchhKQ#dxoFxJu8
z`J@b%BX-eMZ;sf339v=J7V<P5CR5Wh49&}x&3P<qnw>p}hf!u7yP2d`O~d&m_bCyn
z{{Yy3n9~*h5gJSUAL21LK=1hK9=uvQe}DePZ0;rQ2ICs)1<aS!6FHVw4oZwZ=54lB
zeLV0n6H>uVPrsVuDkD{KDQ!>e%X#VgiLcc9{{Y`|ont89n@VB`sKk4$A!^Q`RaKMw
z%|g~6`R-yE_W%?{wlo`n18%v~P|K3aNF~KQTTyd@ai>!t(Y`{^mWN#477obrW<O@%
zJBU3c!7T*4_Ce5-5|`y;>;C|K#TEKL_F@f+qG2vC?GsZn!fKOj%=UTxqh;wVcv{=a
zgjnR2Y8+>mINDL7bx;7JWWB*$s3lcJp{YmZ5HfpD#at{H!!&ftB*C~!^l@+z15kt-
zl^~Kb<~myrKDo@cHEI+YnIpELBcUp?O|{gx9=X-YgKiXvhB`q+V~-~6r)e<5a~HJ>
zgVvxOBss4BQyQAoaJ3X{m+t=nY4$K(Ak-rp&JjXp+k#-hxaV@;8<*U`y+%{H?~@E#
z2T94D4lAv4mZqb86fr3sV(r(;Rt@`?xA&ATh-1YOGpGt0GyKeXg1pK4BIJEVC%>In
zv>F^cUfsh-(rma*yYXg9T}m<hzqqYruh|g}^$#a_5MalH+_^d@XX4gwEvFGTh~X;3
zsCN70-1>k3i3kDgl=E>c7?h(d#*-Yaq-M=LiZ)G-+^Gk9gs9-gxm%=Xp=p+^Og$4_
zsa^G`*4)6-RHlL4>#-|c&r-XWX;&{|Ej>dMvr)Rcf|8)AUM2wC74L7J<%--(?47tH
zxQ|g54|1QO6<PN#1Fwaktwep{&i*Y#zF<l=jeVIS6r$T^^!k@7b>Vi697Z`xrD9Ne
zOtl=8ZeIaUaS=`rj6lo^nAVBB{KF7KEUObd9#?KOse<ky+^12?6EQX-ikXrkT#F}(
zx2*M=3H?saS3Z*O(k`CKa(%BR(pgEn!ljCmJ1qU{2GjNVuJ7Q5+#wq{J$SgpPG2Z)
z1x0sbKU&8WnHhmId2P<0=3KMs+`yx|)aw1m2ZJgwL@-X3;I+Yzp6M)q1U>*5Z(=yR
z!HfebOLTngl}$>QR-MBXFhN9sYI`6T%~_ptIR450Q_B_Ti26rtVP<e!h9zIr{ri!v
zvaIvk3+A%k<plN0WFRZ#m_0&3P9Y;Dg7gwuos29I)0k|<-fFXQgo0giwS^C)u#S29
z!~sVl5eP$(c_&*6w83x7R(KM;9-@l^^blEgc!VZaiBvE;+(bK9BT%jd5#0614a&^0
zIo}b^&sc0Ssq=NYcGUX{ebpAB!SjM`;DgZ<=>E{isD_Dht~dwOuiW#pmMOVy=`OEP
zU)bmOx%_`F3->ABz8iR;z5Kmq_wXpb{l{nO3xQr{GPRC}%6Q662)2^v#Lw2#G<j9l
z{{V<uahPmMsN>oAwt_XKGYBIbDs#M!W{Q@iBWHm-CtD5FJ9+I)1FlY_ava+SQpoq>
zS+LU;#fYmiiCLx<EaS&DDbG^s{-p}{D#udlVDBzHC6nAWzNOm~dmxb9rH8l<du0oQ
z1ogutH52t|`ji&_<-73VyJz!0G}x8l<VL%ci}p|1Q6H>hns++$9EB8Gdxn;Rs>X?v
zv=t}6j9my<qTPen&8IqxV^LMO2<S5}7O*Ks;w_ttb5f2kj5BCQW4TtXWht@`pm@22
zc1u3!l%Vv7(noW-mE3gpshT|f%}P&6s7g_zQ#h5Ep|V*Us{Gn&)MfJnr*q%1#-(_<
zj&~ly>vJ`almd4PLrlXqGN=8cs5~|1<<=tKG_i_~go`JsYQMKB5}*&P08?KEmS4Sf
z=VYbS{bfB%l=b3=GR!j0nSF_Ya}24y#HYDm3qHnuPc?@HYGkUX=q9m=Nt^3`=WxJ3
zOrPqad#|Lr`^5T{%_$wZh6k=%g_dt7_}>7{+pbX)a=3L0tiy0pm=3xuZvLU^hxZ!i
z6po9&XaikKGv7B|_XUoK%&%kr0I@A&)}XP{QMl<H=Pks^?k$~>R({Vti!nM0brSaq
z?jqvQGNd;vhKZzY2yc^EnD+uPq{RA*lq1Jc)9}Fe97TOgHpDq@9ip_v7gE1*J7@I(
zgv!TJ!HGnscJLnf=0VKJ17_m1vuJ>{xIa?D$L#&{ggcBC(TGkaT(YL6w6oZ}u4$>N
zL5RUt;8q$VuR8;9WBXFi^d>6rh|lNTG3J)nQoQTO)2V<=%8tmihw~WXXgaBN)Nhgn
z{XU`qe{OmmN;>^~CgqefJ&AXur_`s^v&lnI?SFEK(f<IwzzuohdR)p<Xo8r9v*B+<
zaVWd_dz5-3xao)}xq+YFgel)QmI@3z5biyBdK#ncZJB{#SjJPPJN!yvi?KCQJUN$(
z&D3#6Qy13;H~^+xk~{00Ohn2MA|mBWTMAHKqpU}-qBXNbT-0U64X<z&dgRn)0i#py
z8`j|zdya7*d`iMz2`vht+Bt=6%RZdSr?M08Zg<lPpl-_G0QD$qXzJyf?h}vh87$VK
z*@HnX%emVSS?VJY)a{1qS_p64+^ID%AE}t_er$C!q;Tw%bqb0$#5ThECSIbw%}XW1
zg%AzJ4&y_XQQ5>++yI*H?Yu#xOept+Im`qIu^pYow%D|u*lSwU{{Z=@G-!^5_~}|}
zgP6z9XTWvw+5-sVF&oEJdFh065{6}BS>BaBe8F|Z*>9R*A&bZQ5qIN-M+q}t<pb1J
zUrA!Ser}&|RonBa^@-_xE9@AQKTnid?Gawr16hBC51n(|ttIj?dqqt5$iT`m_<u>4
zho_o~xnMm*(K|>dh!q9GZUAUY!C$D=w#=4FC})@WidXli($A@kc1=M)QwwSBnVKI{
zAWz#a-}<I`W(_p)u7jia=LYH+$2K&8Rm+qkxYb0fb3=%%%Q-BcQx)%;-&s@j%?I2F
zKwPnPn;a-;rKH&W8mJ-NPH#0cQ!2{E&h0EyHL0$3h^|D-_b{UfwJE(J5bNQ%LAqkS
ztg;58RMiEde^JYTGPE}?<%<M)LF06W<=6YdM8>d{WrojOx`#3AgDe`M%cu>x1(z*U
z!f?7nDtZ2u4L;_)%FWtYpO08Xs`%w;fsWWV$8V`u-4e&{Sl63R>dHsLT4FYo7NWWd
z{O9xY%XePj68N+Y!NV**AJmr>ugl*Pxl|Tdlx0{<Pd?rZ6xTI$pRVy7(#tH4{{Reu
z8<1}i$#Um}%|^Nwe-TR(leaf<YE&+zXGe}p+#4mY+%)&fz7>AvmCha$_>=1~!zz(N
zP)Z@H(p05U1XbL)E?Gnh76>Cv!QDjw>I<1@N{@M6Lu|4~`&?MuvNIo3LGCMFqPBVW
z2t>_>aR5!k!;siRX+yB%9k@XE&WsVt0mH?Ojiyc&)@_s&Q!9*Qh*hE^=`+)#%YEiQ
zQ$z>+#Lb7Vj2hy){LDV(HZcYW%E(j<#;W#?t4Kqm;NJjngGDmQ_btOvu4VA#Y863J
z$7p?yqwlymCreQ2KVoOEz4-qCEfZHrD>n~pp<OO2&3<3g5tg&D(aU}z_a8=EMf^Qw
z2qMqQig!~vfZYNM?VQb~1)gKeL^2aO3@t=F^8Ww?vHI7;OZJ;DZ;q7iUA-l}GR+Tk
z4w%b&SY6-vB|Eev4xvJ$+?$qvd6uF(f8}5HzzPVEWPfZ@7tEnkHvZK=(?9aR_XXek
z{{Y-x#D72bhE-4Af85Q7>Lv^MN`I-Z&!9ihKn?dUIp2<Nvr#Aw##xkHD`TAUYS?`w
zr;M9r<wjcwtgcsGWt3be)y`)|P<A=WTVrUQOaTz7)V03NONaYGIAwH>M`#oth_;wu
z6wN~svNzX&Sbd5r@4+d!qOJjFa9TMOdnQY^eaAed@tZhd+1CksmNKP%FJn;<%(L9H
z+^f_zBh=v>!3{$0;&o92wJwkPi7nEkZixD${{W;bBkqXy2*CpqIjpkmJtA2$!%icp
z?gF4mgl?|Oe{#IxbpE3n{{W%?0KVW8lq$NKD@Ri3GQzLhnqzZS<f0X_8e%(x3>)*s
z{h9s*RJud<3D>0RrYWi2ekdxY)#9qspJYr3n;W0PWmUs}sadtn@u_4RH7?vr1}9#V
zwi-?3_#E$wj^RF%ePjx_ZmwHs1*1@_a<F0;!SJ)138hCd&funCW6qG(KmyMGQ!#Gp
zQ4W}wLa;+(5DjzHNAy=R>N(_TxY!zMQsDqm=xy9wU*Y{sQp^sMS&k`4T@*Fx1{$G{
zh-yA(6DAxGDsC;KC?rQZ<&)9_^dY;3nr<HAI2ngA!;VUr+$sin+oBCnMhxy?8tON=
zL<(D7<2aDZMxZvP8GD#!BZ$EN0H}|*0+iJHo|vo9#}NMEUUv()A$xZ;x%HH_sX}#7
za>HoZ4THGo3HAks6We}$MzLlMY8cG+5-jDcF32Py*%#b1MD;|pf0%}dOR+IY{^h$T
z?f(F{0igcGw9Ns-Q3*$Gf9h79YTiG*5ZN^?HN$I&fiELp+5Z54%<O}>V^i<pGZLqz
zW#ZqOqez(`L32Tv>Vfg5w=4*Z8MH)pi%U5*Ek@A)021K-CKQ=Y6RA=6DvR~w`ja+Z
zrN2!3PJ2rC<+i!^?>@p`yul%DKMFbfZf1R-E&^LAOB;%|VQrO1nZU$%KV+Y_M^e|x
zvQT_A0x<DAik;jrf{x&x;$Gvq6Qo@I&~D)7!Z2YjVuakF%mv|(Sx7Zk1?ds#1EXX2
ze0#U~m3Jv&k2-ycwe=RWN#Bd=GO_^^hf?e%VpBO<Gou)6=OPQ`+{=XKQK+~gg_s;n
zHN%!qaM<@Z0!+lb@_LC&$0dzi)rq%1tCUqd+%%uFIWb7w0v`$yM}xZ=nq%7zLRen$
zPRU@sRIuLe<qvjP#>jJsrSJw-2~Nz0nbdbQo~30vP$Pi;(1_4Kyf&CHr><*MY>HKn
zQtME&eh6axsH<V31+s+`&ER@XNm7;^*?uyaoAD}YQe3s0CgEcAj_Mo8R}mQrcTO!U
zByQg*R8~`@Y|IS7A5V|&iLcv}Om*jj>dTL?`EHo4!*YnFb8Sl_>z4^XSb5sPP2k_d
zsg__`=H_Q%32N8?SB=&pCP{>LOSZY%$y%N%%>wrwcIKI3JF@)ZjPk0IlbP;Q2-Qtm
zSL({#mCtaP_bk{FhqE5@1go!5cbK_KLr%Q9B}XhC<pGKeqB(U$utR)MHzi3k9_5kh
zeWe^1>(291$q7XI{{U0m{Y)co2J+75?>|Xypw?zLlvNvwLd$Vy`ywr_JaMxgf;hHr
zdduU$nL8nFSoHagM!BW|cE`~z-&1fpyrmUi9aac9G{-Ho0~FATxv<dyEQ3@XKn+3x
z2Bk)(^9ykm^oXrGc;8mWI{Oe&>QQ&n0u?*aq`L%*f%!Rwh>wLZ>vb<{7#<69ME21t
z--YYyQilX@sQh#oQiD;Fm?i<)4YRL;t~YQYh}IZ4Frz(iog?)Kn+-Uh-mfxSxI5+z
zt?{?0h{7mTyxgM#wJuRERH7Ky6h<137D~8cY6VMpF&xW?GSGLI<Ze2PD%=Aq8b9`8
z(Nc<Dh>5nmobCnAqhp>7YCVnj2Llf&ZNe1|0NDwSr%cmLL1<5-O4ig>;cfM}77Z{c
zi?y2Z+6|-A3>P+2qa)q3Q7$q&V}V?(oyEDo8hYHP^&IXh?q=fy69i^Z+s>|pT2>jn
zbvGQ$IL(Mhw19M+u`N@KWt9arD~&kLBcN>{p+p;59VClibMOAYh$&Ii>HZ-vRsN+N
z2&GUfC~OV?06>7PKd~>3-fu(uP!5!Rzx|qJWF~}PS&VL?QBu4b&t1$I<w7tH_Y7)k
z8XcJV(|RWU<}8E-Y#7Wp5{GW%fltFVDv5@P_u>T9p^buJgg5$e#_p2QY1~5}siwPU
zNUIUMXK?{17Rrmh;8pbbbuPJc06r2gdP`L^r`IDhuQV)b?2Ov+Un&bdM77!*ix9AJ
zVo@pGbGsSpeR;Z#bpdPpMT^-UUw?*odzl}uR?p;sp4yltolLtohs6hcFbza{{Ph{(
zgL@Lu=LILHR(K7ioGRP_s4(9rL72B^pQsh6KtuNhLBqdXjj!4b(Desof8rf<1N+5Q
zziE<Sp&f2*NL}N|6$3wTloN)X&6Hss&9K3FQh;S*<`$cjH@IpVH65Y05cD-1wdS;}
zx@K<?4j2{mn0}mEb8aqMi%EE>t-69F$;?W!RSE7oT<rJ#q2jXd{{U(U6mwyaQoX-_
z&i??kcDE1^@5C)yF;Xc3*n#c<sj%(FzH7}(p_0c!7qtQ_xFZvP9e5X7F_$%PE0to|
z0A8`o8j9KK8PAEk^#;`Ysc{03Avl7rpUJBTD=#a!TSx17BJ`C=wO7ZvNR`un8-ZZz
z*_mG)(<l*=`=6+CH^o7<xqx~PHw?;3SYySNC1t-VsJr|#r`)5P2<8vu%)Eadbe9(~
z&8yt6J|e$p*;1u6W_%6(`Sw0<ef%Yjj#~??(g(DP3j+Ql8J8+gNryb(qTRe~CRCp|
zZ62w3#MXSrNs}bau+2HAQ|Zc9Zc*HNA$oYz2*@0+nCc34Wu^8#!fPM%GdP@3wLlA`
zIB#GO0Z1bq!c6rMdWAaRR&M-np}O-3v?%QJsq|<1Wz!uK0UTOVKA5^c4@Ay-^Pre>
za&Hl8zT(U6;S6Hnj*(vx;_sXF$=~Ja4k!wac^Qtp?vv>)S8th)+0N4qD5T#C?~!Ms
zH79p|XZBPd+@k$yb^JW`k#Cas?tZ<&pcqB-dJ{9>IT0!ib6?IC;f5+^ytvPc_pHVK
zY(ig2cKShn{QJsVUua(I67Vs3N#4f=_Y6mZ-eQv5rAkz=_bK<8cLv>(iKWrm9VdQw
zFk2&%G6bWUn;$J{r<;}b`-vxC;WEgp%H{2%8a?HmI2FGWmV`@x**>WHV3ZSJ#8?&h
z3Kp@qsrCi}9d{fz)Epd3`9Rb?QyUPT<8FP*UkEEHr<{kTXWWiBqB3`tSa`diKsb&B
z?{b{fwD#OwzNO{<(OZ9x?zoVu;_*{#MFcU4cMQ{~(ki{94^NE4aXXGPzm3@<xq||@
z3Woj?;F|=i=u8@E=N4nW0zSO*%*dOT_;&!y2GGvFRZLXR;ivHGZaQjL0^J12R?j=8
zP`s$c7u#~o(;TUKPM&EQU|L2Dt&wRxo?5QZ#*frXq8hkAdve=cV+3)M5^kan@0Rq3
z6F}>feGu!*yhNgA4Z-vtReLA9o*eJZ2YhDwWp&qu%9Sl;5~^F{>HwV`Tr@hD_fc1S
zghK%+EtXzPaGw7FiAXE<Kjm@0hJDOHi*HCYdV{-;7Xxu~u~GFM<@=Wo+%Wz~H6m<p
z$=dCjS2Z4t$U4^@;sS=g42xx7qIbn<4mU<vkUjPIV`yNne>N9V#%$Cvsj2sJWM2VM
zwPRBQ_?WY}Xm&;E*fG=1(b7*}miEOy-xEt^w@;d0e&#`^<=pBkN*KaC<qSn{5LtFb
z$;!BM00B0c^E3_IRvW2<+AA-?rv9Qna}_9^-0oDktG=ZeJKRf)(=s6Z9o!PxfKw>F
zAlA5Aj0y;f%reC)oz=~%wxx!3EhqAXkG*rLWTW+z4{s5+YheWYmf@x%T@r`sj0+~C
z+~OQDHnuQ^p(G{d)G<S^2Q%mhi=(LZJ9iEJGhr8|BKk=7X^zp{I}J(`+}%>cWG}xv
zSi&;Bvc1=Q4QJ!AmUPNRhzk)j^)vMupfda@hSjh6fk33|+{O*Q=V<<sh`m2@x6{;H
zj(5c{(#%U8GiJVPiXIa8_!)n5*W9f!V)qJWmG9>aQ)C*$G14NYD=eE+c;>XewB>I%
zj}?kB+}mEI-`@fT6#nRec>H=F1Sa4KV-SQCM={*>F5h1&7(X6YN>R>`-@>VEdX6B%
z`FNer>^gn<-L)+7315mGK35FI_-1YHQ}^?04JYr<?qzw4$vRo;p5ATDg|NV|2+aru
zmW0xIzJC&|{&=SmY%L~colCdWt9$3^1l>H~<Bn-eAdD9&Iji(aE8|)sljl&QO2dJg
z_|PF{<;wjgM8CqzqkDTLFd%I)T|%8wNc%pJQfpJ&>QnyXip!5BQDDb7*=pfpd@D&&
z3@%=&TO1LwBJabQAAbfGe^V3hm26yr<T{ZqxDdwsnisBVe$aOOy(OOi0ExI2=5#(`
z)uA1cW!jYxE#P}Org72cY_CxMETiq0dOw0<k5Y-y<=+9ZA5!*$d`mA|B?@^%gm)UL
zt4~S=K#gr~UY$!Xx%%gU*<ZRF@fpP3i>a|I`sdP9*qcg|TFNO7*_B{mnGdOEJXDeN
zgcLnSSJZYs<+<yJF@o(aIe?c?{0T`F6^1ju{!}rQ2nOte)tuU`DwztQn!n%fVJi0b
z^*6T+u9bK9;;>QInTCHEhumr&pdj@vUv0xUYm&2nK58cFIc<hen7068t|7iaMpPnP
z9M0K&+68ONclD`HS==@3$`0nDF>vl6Ct2uSOl<se$i**^tcp0|0koY&s5KpxmH<z0
z%GaBWu=sRbM1#timo4rfYvFRbAb9Uc9b7O`%e$MGS9dN>rF8Q!nD+RHHJ2m8na|}x
zj=v4GJ6(SeQPEfY^I<wAX1#ftGb@;l;yR6(Ch-H8@fo>CLyZQ;1&7pcwGG{+O4Uq&
z`{hPyWyt8vOSt-$uX~Ep>rptq)H4u`j1q+Q?l5|(Sc|bPqhq+`zE<7L_S1Q&@6kJ$
zk(L>TZSn)F`CqA~-9*avGjYZ}PNr=xeVUp|i*K}|?ihOL`hR<rM#uIa{r+xYp@40V
zxUGab70~|x*@{)Wf9}7Dipi3lOe^&I;Ghlox|XAUD;uLw=65y=4NqSPwbEXCO;M?d
zmsK}sa_9$a_4i+fV099K(dT$=nMRISZr}!vZS51^X?YoFwC+CL1)BZ2#HQ{Tzh9P}
zPjVc1q#E-%s)72Ejou^ixb)(vdK#8l+%c)BYuL`tYL>K}-fp)aNJ3<WSc20K6{%81
zPqX+p?ZTq==N5xr)Y;E$!XW@-;i}<8M-kU9a?M#Bh^t0b-EJ-)N`##~#TCR-KeQ#i
z9!gllbn$>tt_8;&s$s@eH45)>E+D<0uwp19y=ufkL^F|hMp$2SE?y|3L~^d<UwcrS
zTJ9w@^)HYcj2ek=+&8HWm-Lkp+{Hc{3+fqIDn8)=N+cR-jrD=-od~_Sg{o8aDf)rJ
ziI%#7Z~p+O15s8@qZ4RsIH_VUQt-SPx<A1Vp{Y`a2%6qOziE4RVUNeC(p~gt?NZgv
z6*HM)S@WAjrgKggp;0n<5%l6RuYAm|UU{2l3><K}vMxqiSZr<(J)e(!CC@9`M>d5f
zA*Vdi4L>UB>Qx@TCURD&WxicQKMRTc!?o7DR%}Y}rAel|>>|VCvxw0c$KT3ils|_|
z;jf#A;C)YNk!9T?+%YOwQuEQ{c>TjD`k7lVNk#UkmOhur`fW;on&fQhQ}$KPUW}?b
znYcPn-f(w1@+_FTS4eI*X!J}5CcZ=j`Az<l>sTma84_6qgbbIHt$+T({{XrAi`9Lj
z9IRV(%fVHaWts#F7F>uIDo<Y>Jc5VXeZd_NU&7jD#4_Wz%yuTjDt`@9W2^JNmYm!Z
zzcvr3X!iv$1g{Uglle-|%R0GF`tcV6yx8s+Nmna(`0_E$C*4w`?~_7$=I#X#BH0yD
z0YhsMEyW+yB?s927dQ+Dn>dXrjD5@7>RvuSLT7vA;aTV^lK%kb;e{+alAE&x{Uu+g
zAwl;Hk8n&a4Pt4?cPWG$T(hZ5Poix-j>KAR)@8cORzt*z+^bW&@w#qP%`epb`c%{E
zhmAt_KT(^#;<((N{uG04BB&M2F%`{z3E3_0gH9Q?BAic3C~Jo>Oc;rhZzk!@LppGn
z4Q>UlalN9d+x&-Ej<^{_wkpq1>|)UZhM-c9pStQ;Cb>UC8|zVS7*i>x+o(WoT>k*#
zSx%J<$2V}gS5oKE^K_)5!5mLeK}NxXB<zI`(JT&s6q6)NVU0jm6@*jT2~_k;hM+f@
z*-SFu%WXZ}cDD|`9Ofg?;+>p^KQf2X1Oha7xJ(Zn)Ts2_qV6TP=W#`7*NTAu05Ze<
zqF(3M%T=fqs0R}V@J?eUrK&^QxQIzs-@@i%W{W+w&Rk_@v}GM~Z=$YV>+Ye95|5%}
z9o+jQ&lbuz2;p7BTVTgFS~sa&{rNwc+yb+EinhSdv`C)OfIA@MbutFLU6L!ioi0X&
z67fk&#|eA+3`|!^*T%YGJ%E?Pgs#~}G%-J)2~@`@b7jL*3aO23jY0lws+o2F0JAz0
z)cSxz(WvRwx7@|4eE7Dh8SA^}8xdh{P(4hA^)!NeKM9IsqoWKqM9|#FTLpy1hNt+8
z@Oz7la7>$P#O*N*vx?j0ev?z%$@-))E4?G_E_5SFXK%i9MUQ_&kITK-k@-9N@zw|{
zC!3gJcl%j^r^4M_v1R7xe$isPhST(fPf&pBJZmg|(q~gGiD1Ejub3v40$zs5C~^K0
zqZ}ZXA__HMJ!WO4-?CeN+`S75=|i}>mWazAUmJ$w-)3aPsntxk6w9qA(OZSw8D|rl
zw`?kU8jRVv65ia`Xdo%|G1S$gvb8B!sqBK7WtoF;(CPsX<dlkRf5a6gnSIOMo6H+K
zreowrYpJkZ%6~YRW$Us#XkepZ1KB2Fe#{}J$^3hnCR~YUR52Ded-Lid2sKWpt)N+?
zyq!TXZWspPiF{WT;Df$Ucf~^O0aovj4Nb~TM>2@^H5k1m@3?RBJFXisibIGipTWNT
zA#__X$zk0JTJ8_+h1Sh0xZCLwjm2T}8(_SMvd@K;W*OGg@otEyIdh}bO}085tx_G)
z78v<-VwL-6;k`<4>L(~?9t+JWM5e9Fmc+##CXe66g)sLFTkFQuI+iEDz+~eb$1Hvg
z`wrbskCU&T#8vfYoQ;zm!ez~e>R5jH`a*pz4y;M9=S4>!M)~f0h%-WtShiL%+<`~(
z;Egvc-n@TcpT0v8E>I9gzI-F586R(qe}+@<bFuYv_T@@uR(!2*tO;G_5i4XpWf!2X
zAe$aFWiHC`8>xl$%3m0=Dw))uhtc7W+b8dl&86Y^BW1^`V*-8ntrG07Q@ij-Pbo*h
zU4z`BJ#%!4SMB+Q1s~1h+&K7bj4S0U6E}F!fm~kF(n1UyQz=PR+LnOCz>j2G96E#;
z>3aMK4K6ANjx956V6Y$se2k=+x2bm5H#NN=1FvzSp>s~9N&1Ta0BV&dsBC)pL2V36
z7zSUFH7Dj9VpX|!p$w<FSbB%r9HG0SS{~vTW(fwSh83Tl$%XF_B?ZO$5f|Eip@P46
z7psO%4@bbrz{SfID~^cY#M|dRbu+y_ALYz{aV~4}E}NOQE+;G|AIw&t<_df7@Ly2+
zNQ%rd#I`FPlPll(OWl)kHyVWF66mu98-`Tg<G=EJ0a}3ir3la3<;jI$jM+Dn@ljQi
zY(RwftkSUz6hIZ6rP-Q9zni6(uX~GgbF1@Bo}wUk3~Ctgy7RleA|TN!;D?UKvcHHq
zP#+D2bpW?VmC`ceXD4tEqvIOVA)`?alOS#w)V5bz>cd68;v^e<qoWmfY8%keI;mIC
z>NlbB;6S%-dl=L#20I{F^m60;WmBUkHZOBJ>Rti3txf7>yj`SA`xW2-LH__e`e)Z=
zf!xU*^%4(YiGBB&v<p7qx$&%ena=v;EzUW!Up;`34^!h1ZSQk5*1ueuu82tKb10zo
zFZOX{RSfMc-n9_g0i+#+xqH!;p4*F-RYx7fOy2PvwbzN;)J68^(boV9`<CR0V1m8N
z@h7^KxOEl*0G)bHy(3BA&S9>hdeQdseNE|miPU8~kKK4UY=9Q4{PSA-+_WCG&gpxB
z>VGYiZ>iAsnep0bkB87wt$ZVq)N2iQ&*%^Z+BzVx^~eYqp2u8N9=jGxYp6QnV4?tw
zu_*A8wg3p2VcejHQtrgU$IE5f3Xdmpo+1Un!T_)F8l4E2zn0?Cxk{%S<cC8&yVSrv
zl9u0dEM&y3)@3%t`dr<O%L_Z7Oom%)ii>-cjhwAewiq#n0>PG3^dO$%pSZ?h+)LYE
z<NZWoVbrO)m{594IDtdv#tp<)B7`Fh;g>M#6(>@u)N$@u0yGg6-TV<79Y?U#!7Q>M
z(+i>(K{})7Z>T}3hC?e}XL%vj`B$-(nllzJa@X0EG59^i#%2muNFWgJ2LAwZ`D^@O
z{{Sv0zl^fX){s&9p0p?5pAEwmjI9xuPCJFtR>0l=01fQWi*R=<BeT;pt-c|&#C-3m
zY`z{Y5!CZ{<WGH{q+tRLzBK;;%2>W7!<}CWwR1&$Vd|#Snv5IYE(1)UmDwtg(`V(Y
zJ)m^Eaxs0%*RPKAUKsk8%4Q9~qeqw5+_(L6``rFM3itm2iJ=?(#&c8Fys-yz{{Tai
z+@=u(@PDM@YZs`tk6t$(lIib}furXaS&!*_WBD^Zug5?7Z1EjvV0AA&xid+X=0LF}
z5brT##nX=7My4r5Y7G8}DLyqdGNht5a@l?Y@pAXgSdy*cg+}GKrx(eR=kSA{*JW?t
zlOqLhSP=eI$47~{Z1{ex!vkl(hq3oBPh8kTN@z=mD@3D`azUE?<#1x|rah^BkfS@i
zc%=gz)8(g<z<J73n{dV@*P$u*K5<H^^v^biwoBW%k_?FSd)zdCtiK$QA-!2lBk#m%
zTqRqYRVd6=huPB^v=l9f1_A^NN|A+A;aa>&S?w!*;8rEmKEjs&08!O_#dh}j_j2&{
zFD2Y5bJO@M?4bFp0eC-@h1mcdBeHk6KoDp$M=pO1F3D{SCos+#U<@%_bjxlpa~pJ1
z8lJPH_Z1H2R(vW+-r<cv?q{H4%ZZ~Bp`2{}Lsa||e^K6?#EK_(H<-8#*gA=&_2MC9
zMET!wZ*d-Yk4Kvra_Vc^`Kpe2cZlgT=H>)&W1P%N5w4&8h^)NM+zCCza@)!7GlCHf
zFP=mI<}-~#aJi%+Tng8M(A)s@W&<V@zi_rxALb%Kx5g<CdY0jyKo#pzoZIoYxWm3B
z4zWJs-sK5yTF&BAG{iJ6<sZs@^WDuS@>qi$X(|@K!~Nw^Qx)7jvdijyFrN2BG5ViS
zD^kAiQ7^T)@6nYzxpVC{F8N&}E}6G0gb?e1={mtH75E@7%tg0SpHn`jJ<NNSJC>bF
zbaCac3RD$dZuqH3svUdakzVIdP>$Mj9*sc;j`_4kF`s*$w`cZdCS#Dg)S~=s*sj+k
zR^lVns!n~8Py{Vw<IJ1xRV0~MHT4g;&34_+&wo8F1RV>{GyY*bD_a)vEenji?~3F)
zmyx|W`?$<gRmqJ<KB)O)-0l3Eh1B$Q<ek0|Q9a6j)8U{k>Nd&FN?=K(3vSLr)MDJ}
zj#)+sA}@}IP;l`R+U`H`(ZxwbIW_UqaBd~9ws-By6=TrNy!Oh!x>Y)S{am<oJfIWX
z0T$^5CjS7t{=bM7)WkZ$sBaAIJJE_7_o-a^+)Ld0@mkdGLNor;C5&G0{YSl`7};{=
zs#6>?&r+QkDxr-}u|qk0A*>pdrUgYEOco;mtlU>6e%7Un*iE_f)Md9WC56X7;DJfG
zUxe=90WMVi^Q^T8s+WS<_xV^{#^!y7o(k>!GPZO~Q@E5TP*1KNYlH)LpDLe8U+M6g
zNz#JV3)@1v4boh?Fv9`&_(emZ&8rhZ3}S8Z&3m4n{{RKZls<3g?k<kJ%tw5jWOoP(
zJZ@C2_LmQ@n~1%9edW2q8S@zCE5s`qm(TwIllX~d&2&m(^p!|yv+?#C@%n&PwU6H~
zgTI-NdV_6pQp6!qVi}5%lnbArBl}tR5dFoq$~OW`79#vgmv9K8;O3B-2XS!Vva}*q
zxvSw>=xU&CFwf!I5g|3!R|)!?1eyy@k^xKtgJ5?XF1!N2e~z;N!?%xy7wDf+yw(m9
z62EZBy-JtxT?Jp2vMYF8q%H-24~=~^$_Y4OiCkH}rD^ll`cB_och9Lrd*zDL$G5`Y
zrzh{<AFLv~ep16fIqm%XL|L-5_Xw&KVSy79lb>c+{<*wf96L!z47GLCPWytTmVAQg
zaZo&N_+()pa-qNgeCo+V$ysPG`HZg)pVSk~?g1ZIi4_A7Qc}uysc`q^WtWhsv#Cm(
z^d|MOjcUq=2rYSsSH)M^EIn|A(th@s%W~|>x?*^ttMgPc?Ri?I`HTA`{{DU*$jcK;
zXyoTBMr_0LJHW-msD7tW{l);-;t+0#!krm%;R$gVj&Y6O{{Y-Zy1Liv@0F*xqv-r6
zkX*I1tPlpCjYSjGa7-WxD7Eb`i<5tYXsjmBX|^CjY%<$Hj7>`+_De;g>UG@o==>L8
z+{>9fZ#4)hhT?7Pf`s?xYco94aYl!!xn)}F20|I5;^GCEi@^0AFz?OF<sa$u?2W?;
zC02atbld<2V08F8U>5YpHt&Zx{iAZnxU0mV_;51;L?_aDs1ecmaJn!Yz4KH@cw)5(
zrpOdr3-{COn;S3?M`@nmLD39HGTG8ZM{CVRqf@irBAC|+AEHt^YG~r?$?hYF0c`Fh
zb+#e*{4fe22Fajj+?IBYyJaT1P%b-)gwXR!>Z2^$<~iKhqJY=`0A*V;^Y(x5QNlFC
z{?W?K%ax~cu-qF{xpB3MptgsKgVY;uu3pbtm$kTJjY9<xQ`T&JYMoucsv}ZLLRgNW
z*wR1V7FqMrd#2A%9WxNJ?R$+{>z_`Y#p2I!pH$8kSZVr|Mu!rgyuz!M=`Rol4SqSO
zUvk0QaQ+WHgA(Oe&FRxDX1*36jGD19?aC4Z5a_2+((LkK9YsgmE*4C8a{18(Rmtfp
zQYIUQk`BE}DC!_hbv2KTS?*Ex@e<6!c;Y4QeNR%Ls^89IP{VSILK+cWS4gFSgRPon
zl3MKl0L%r8i+-*_0o<tyeC~=Qs5Jq|3hnj(0P`?Pz~9{{zU%v<wB_8r6E`y#thM;6
z8LrmT>oYMc=)%xuTHkSs)VhsIz})K|e#ohSvg4$%dzJbwV1Eq9305+NXDEV<pzC;F
zm=|e?m`>rR;)_f$*K*}cgek5t`?BnR{Bo$0+3?lbFMS!=#Im98Y`qisO#B+DXc+ER
zMMPj*&N!Fb;3bI2eh9=PXob8lSlp~W_X1(&Y9jL^_e?b}sZ1m9$0hA8S8T6?KXS&r
zY7cVB>*2cC?*0=}vE^tItykP`5OeUKWY6w7wfcj0`CGzuKDFl}B|y!&ghsp!E=~$t
zn`puF1#aA`UujS@9D@inoR6-KW2i8q#l*aFZp(9mP~-HKk6)W!gzul+l|MpXE}QpI
zM0&UujG=O3SjGKQ_DJqvlqb2}`74fJb$CQ@WoP58CKrx#G^OZjEno2b4=KiJzaFLO
zhnKwX>X%c|;uSY7)EX{fpK}rJS1`yqrG?nPkEW(#1)B5OM!U_?i)Zk^Ql0%dZgy_7
zb5Q2P=_<c@SHp3Bp}Y0sLH8QtkZ#cQmwz4y1*!4Nbj)M7lP_<=wN91dhCwV#jUczJ
z%0z{ALlVYY{cc#j>(1if+g!OH$p`dA7g@>xxA8I_m}vAxs1L_b9u~yUrV(nAt4ar?
zxqjuJOf!!>Y;k#C?LOR@#9zfZfHgab+|6!K{$<Te)ef>{2LAvQF0LS2Y9TQT9K_MC
zpt@gaarQs%0ANq`{LfNFG9&6Gou+9A7Wuew-1H(x4K*`OKx4hYWYCaSF$iA_ykD=D
z)ro~}D%rXH$xA6w3DcOd7Fe(|EL}=*sBM@iQ)qWIBoZ9!=W=>PyEO@49^j!{M;nVo
zXt;<)@Il|1f?S1@0jIxT_?E9|m$~)hNznx((K0szv>^E1F<y1zqB?_HzdF2{nmbAp
zM01ab#-Un<>NzSoEvcFh{Ph_?<p38!=)QQ6IBnwKdS+bS!~X!?#IUiz_C_JNMy<dC
zkCfEBtuQJmn1fp3J?Wj!C{|pC7$<QO{_zKg`G4KShiTkkEY$K{4^cNKoM&Xwd7_8C
z%dHU!xtP?+HwCNbAO0u#vKUbUo0Ka|08?L=d0?W4dUlI=nO($Q@H(ZMK8GNF&C8<=
z+zP!hTt}`dSIu=1TM?qp;#CfhVr6bmxvj>z9JkH~w7DD8k#N=gXeQ#ZN2gq9a*i<u
zB*gbVUgdt6w>RVI)Cx74z0Fm=bpFziYtPUIrnM+S?qEgX)WY5KUUi6cACKu{j^U_c
zIq?gPr6ge+HpN#LY)>68w%{k!$j2r;aB&D+OB<E?Bm8panw5KIitZ{<)B|#1Y0&^r
z+xd<ZH81JAgj>F*cWv=8Mxj*D?qW8FSjrmIs`yA5Ya7}{R^DIki>YOKq`(~!-XbXi
z%LKo{WK}A_Y23{l)d%<`M)Gs|jg7D1{{Z*-lo<a2WB&ksa7+WZN?D|-ng0MudWc;0
zxzmER1{*od_L#9taLw`5I$y+l2TmdootcSA)FTg!+xm)#WNrv5b$|9EcHE#gxrFyu
z{`C@zSAVOICV;cg5_c>;Ap_AJftB01*8cz*E+xRJxE1-9(%FK^D}NPk;Hm8%hG$|J
z^dQJq`?o(w-1j61J7$h6uR6TSz06Oz3}R5&+#Z1|oSmkn)AspBnvGkLb&W{?;yakx
ziAfGhrs1XGkg0}rBir~YYpH1AI-6!~QEsu1^q&dRWurwQ+(JR>0S~V_Zi`DL+;J6>
zv*Ujao;qn+=28mp^4oFWG&syBDjG%md`*w-2uFKzwU|$TJF1%yFCeNsh16}hJtSbQ
zeR_n^`g)H=7(|&;@i#fML^^rBeNM-|Ox9%O&!nmPOJq4!9^fO_Id9B+crx5+67iJG
zbUC0Nkq{?S6zqd)j0c(-S?bL=`-&AD_cER}rdBR)w7q^cq?TW(7sTz^w1!`#{deWM
zE@6DmxC*!hHP8BDx9#RHA=Hk7RFbHYxz7(~eS&^E#H-x%OD#qYoJ&U##!$W@hT?>J
zg>fBG@vD3=EwdZU!q^x*3_2sF?qhv$VJLk(dcFZfu!Tu7FX5|i$#XR0!GV%Gxo*D<
zp_#`~kxh~!!$jUy%ps|uJK<_Gx7=MdXajCraSUh0edBT8P^cR8O5aIm2O4#S4~#D7
z)lroDX@Dk8!vvQIaJnjMJz8Y4@8KMGK;dnl)tZC7!2bXOS1fT)#S4N>rD%O0QKY18
znCdC+RjvpPte_ix!58!lS8g(NMZoLNw3UZ?LIX)g_o+(x08hW%q3-!X9^%`HOiN77
z2M}uq3rcPs;sLh?qh{e`mnsdwiebHTWU?qgcktFKHfo~3{GatZEBjAh!`H$&z^)=2
z_C=*|O6oHRRj)cNh+_mX663b#xqI;eldGReTH|>P0p=iWD?5CyBT)!y<i@zGd7XQf
zJKV|X5%!tFF<_PsV6e9<4!;2}a?id}HrFO14(9Vv-~I_tfcih`Rowpo-n9j*w%{3-
z4uWh~u3Pj8SNi00;-&h7$%Eb#L729fbruGlN;>AJZjqGkHBB0xz<JI3)G`ad%QZ~;
zLd>^>)3YffxJryd*M0&EOv6oxU3BT;D5K6@xItQt<{89z4a!UBxcHtdhpj<hXC+ZZ
z-^ahwSiAoK<Qi@o8<#Tfp+y^)KJY!t&&RfnN+Z@^G4<U*Y%6nk*sb3;eu(SO^_zx6
z_cN!d_F{iCHW#i^^612LGJZV^9s3?_eYj}W4Zx@?Q0|0EvI>QF%G|Hj5c}-_%i>&q
zi=95v*u#OS;GzH)h-^8t)Q0cwSXt{*@Z6x#YHe4?2AYLkWJ5O*LNr`PSLzxK{3`Y$
zUx*Sd3zlnH4OCjBr!V2IW2C0B`=3aan}++Em45ce21O%hQk0F5$ixk505(j`dcLA4
z(lC^{lpZHn^o?nl`_C}G&Lt7qnThDnu){5UdP<e!jitSSSP*6i&FwL?5N4%k)~3D$
zxz?hed?j6KQcrLN5W!#7u8&f|?pgTC-?Y?RZqxM)9*6stuWiR&LZXLc19nTNT|_P1
ztKQ}o{Qa<zLK2+nTAZ~0)?_T{_ww8!fqFOzGrcns?d5$rzHq63=;Xw)mzaiG=7LoT
z5cp~eLFGXBaZcs4-1oK#qGZ21lC#g&5#9W05R~#v@f&mN&fDT!e<;$sng0A$FBT%`
zSq!%rt0n4?S1cy7o8OSg_4rCDBm(hnB0<1KXkc3O<CY|>-b^y_<QBf?*F3Kd{>e-q
z=9L(9#^TgL_JDre{gFGb%fTn;4n>4iMQ6OKN8ckMq9V1_&R!%RwMwt4OAJc3yb#sP
z1I5faCa1rS@Ure=`dUhtFJkNCu0OUI2l@SZ*gZ?*++)qeGI@%n(uP%+#I7OJ%h@da
ze$ZvFn9W-18FtzXK+FVVu?Sa`i}6{)C!H&S3XWj26Fk&oyDp=&U_&pD+{O`V^)k;<
zY3?C=t$a9$7V%(0v(gZTYbf8t0^hll_r8Cf9wrqz+xkUpo#Xk7_Fy_LWc>m9l}LL3
z0DPnYFT{H-qSV%s$a*G!t1jM|arz<A418;}`{Gg~Hjp#wbxe+rv~c?e#OkkhRqp=)
zS$|{PSvn>TCkOFGP%<lU3%}7ltY!O`!St1_iF3K^heeVqY%;Mkb1LW=hL2wb73nNb
zTZ43IjDl$bY7b5?s0}G6Lf9(%KMk695uUM*&O5}Xh;&Axxb%foD#Se*DwJ}8^naM7
z+H3gmsa8wbO(O`BdXM-gzy75N(!@`K;f+PPP;1Xj!z?``GhVkaBr~`>c(%}#sVZhG
zeBAYA6gA?7+6z6oS94MvjOF50LaadQBSG?l?p``z7Y^v>HO0|T15-|#dIM--L?gad
zV{D?|f;hGi*@zmAxa7pUh1j<Hh*GAQmZaRMtyFeL-0nG-0-~pqQ0UyNxmQrSIEoW@
zE(_FPc0)h3aM2uGQeRQXF38=*#vq47QKLVWgY<ux*#c|$=I7|*TRlQ7AgOOt-?+@p
zz%s*Ac$z8&D2SbxaAuCV4zi`T_j1dLq`<c2(v^vun1N{PlT6E}GhOZqu7@=q@!9dw
zbt&j=$~tNgQJzVL%=}hL68AQEjb;t9@q35`>&AdgM^8VrqtMVp8i;Mw$PL^Z3G1EN
z+`T*ebja(d%=eESs7rgsb&!;=xN#F3Jz*=P?3lO3Lbx+Bh<nG6prL}f#Aa#y^XO)!
z*=E>*2tDT0q>9@hp{H;v7}Rk4!LfF<0pJ}VEll?+E}4W;dQDD&Fe>{#F7XnHj*G|^
zW@*e{wK0`nC?{|A3JnSVe+)1?{{ZCvFh6r5HxVgg*=K2u!`#k*D40&IaYP@{D5hMz
zyR>muQ*%<hDF^q)6`qk{tRLKbt#W>%%kOgRY1|_^COG%GZ^=YXr8T&Q_LW^x0>?yW
z&~7F!&pd|WBisU`9G9&?3GQ58&3{<3>=h)SqJ91^@3F!5o!dmm^ug>7;)Shw1&s9w
zO)y~;Ukc4gQWj*lNt&CdF3a?VxqLfchn%SO5~gNcK~r^_kA()8`SH|2g+wPNVY!6j
zSj1JB2OoxN8({D<I?@Oo!x1mWl2J?G%gs4E<TwjvF1dTlVrfh>;wo;ky+=PQnMp78
zLmw`Q4O8$}sH(_TMojqLFQ}~#xt+4ql>Y!|<b5t=T*5~;l!M4&eb3iCYX1O~tCvJn
z$9yFVhUyz8HfkmQT^S9hm1pdY`x%CZX_E;ttU=E=SKP?t6}Y}XnUI^L!xGsNoyyF~
z9m=wM=Twv~8X&hOf*pK)$}VesKH59@S!5zdw~46gG3Bp~WF0)kPRRcNZCw3-KK}f%
zC5NdVUXO`}`;`Z|vV#WVsyg9{WGV4IUYTNhJZ!_7==V3ixfLUYNnvo^N`2XR>&R&Y
zJ5cs=m|gNK_bAU(Nt+#)=?il4`+_27!#L*fK)Nlk;^#c{nEu~}DD+EEcDEHiu#?s^
zJ6nJrfT)GCLr~s19k&AyLb*tnnj~q|LcX;r_i<+}lSoR|S45=0H}jdCdnKxRAgsbt
zKBkJEuQPJx9FoT<GL-(YZA1c>TaJGbxxGrCSkq?XnF^~N%@~D$G2&gV{d1rih84#E
z?kaDolKuQ3shCQ=oy%x7GXpaOIAUb&<WeRO!rYN+Q?ELT)MXlqbqLm(fq{+>NZB32
z5N20`QgFGB6g+8_BXK-x8NrwpsF%2UK-y8O47+|<jp8&Pg5yx2QR%s0l(hs^gHg5V
z<d!E~l0au_RV%6*<q6!Eb~$y3jfI9Vcw_$n#Qy+1M=i0={96FjFpt5)(kKgL!Lw5W
zv3?UI+cDESE5E_0<}G_cig)8;AE(p+J)qVJ{h4NZW!1Er7%QCgj>P0BE?<dH00P?X
zP(5O*5~c1GC6@|d=eAnCpf&#hKbqyX=2z0LYu%cGZ@tB`nb)M#sYvU%6)L$WUYty&
z%KQHSQP^Px^)gp{bG+VS-sT<V21~@S4H2+*=XPSitL|E}2%ez;>TBeF;w<7ij8KA@
zf<2+QW!dZD>Yc!`Fh|?T!HITiRCi~Jv!OEIn*pvfT+{ymq`i5+!3+<gH`n7bEWoTg
zGvk=OlB(DyOfxdefrdM{l!J1B@5eyx%vPIBJmoPSw&R`neL&Q(cJoKM<2FU#jZ8Hi
z+`qyoZA?Rwr7q!=ZY&Pg;KFqQ-sf(^Lg7@WCvvTTi&4prUePaEhBXXxM)-AhjP1!I
zv@*XA;bt#CL}X~hHOnZG02I@yo^ik5{`!`fv9F?J2DJbaPE2|wD8x%$f0%z0e|{#5
z-7<xBaM0S9Y9JJ@$!2;&ia>qeE4F0ohE%-9!G5Pf7PC{_k;Wj|4-$T=GbgP=?`|;`
zf&?qI{;*f#v-kMBC2U-%A`2t3S+lBp!_Q0VT6)UpJ4K`IKVtZQywGp>QFCyOF&|Sa
zp1HJFY<qi45dc1SyBI3%%8e!a(=l$|ay>u>{IwY;h`08lM`x*2g5BaJTIwRbz_JDp
z!FMo4VccUnnUr}BMKH<F*k{`%IV&T`!}&@sS9F#>Dx=)6y?NcX04wl9iQXsHrQ6{~
zsWmWL7x37p1nb88_dBnyet?x8lBS|oW2r;V+KnqkRKaDO<ULA5+;e$_mNf+`V;^wL
z8hSrB)I|Q{n}giCdgNPh9_z-)I6qEq(pwbbVqZCFRd#_}V$|is%#~a;AXMMWP_WG>
zcPrGp2FX{6mG|(5(_`P6q7~c&Cyn|AU!T;r{c}kizW#RtOvD`5;?X$h@%v&TN4QlG
z?J|Q<;gm{_Qme-(m$Yk}rlV5vt@fX8ctg}xY4-;;4^pZ3%^Tj++2_%z(b$?(FKmm#
z1vWHA>OD(Cg^wq%C03Xk;V~k2$r^?~4*r(YPH6T@6QK!IU=E=^w&F)ZrDZb(C&vur
z!w{h8%i>zcFYXs>qxCFTY-z6LM+{m$MhD*kJ~O#OfE$jg=lS^W>W;{7$;a7JqZXgE
zq&~l_dL4?d;_0rSx$Bb7Qe3K$TYK-7R-hSbA%^7}q;xG3tVa5eod_#>Ht=In6>#bq
zCS6JnWh;UfwK9f%%!}K{3__VYp4OJF#@7<AP^n!{UX!_r8MND7cq1kw>~2*yau4YQ
z>3~yr)FdpWnKMEyF)@x)T_E7|9)pQPv-mkc(GVFF4qZU5#0tkGVTkqW1_S}9mzE_D
za)so^Nk^}crBNTJkJ1f8?jIiJvA>&t1<U}{QEoPNCR@@vqkef@)DDc}e}_kNA>vcu
zEa@&<*Y3Hk%7*n4?iR|L5~r^<o0MJ0Gftx9oQqF#h3t*eR&|MH%+EA#CGLGk1nye>
z{$FuYYf*0RxzKv$DBxQ2bXKZcEv|e)%}l6yafCb(gB_kip^0oT*~k|$S?URP;=Hlb
z1@zyXSMFe6a<M9A^f8E&36%8*8Tcv;qOV7rh}!_BwuzRxHJM9<+26oBOM&}xK#Y+r
zu<w%*%yrzi60JWLxob$=zCYrLn`^k_sn@3|&iFIc)J&|NCP3~~ZV(y9@In^uE<v>t
zwUV@TF9)-R0cznd4yA$B=52@&if?Y^U#UzO%ezv6F(}8^G!{B#jWGxdU^;?>w4_Gz
z^*tq1<+uY?&O#>F%UwXYm-(3fqFZeGhiQyu{t(@w<YvsS<Cs?Gdyoj|YGAA%ss0k(
zt=3;o;=Fi>tE926ISWJ!-r$n|0QV4=JN}@kbcv<)9$w>+m+hbe(-^jVhDet<7==L1
zW^C9(gD@%rH}Tm0<jA+g&g0$GSgzo-{U8pjhDv{|J0Euej+60CUw|p@3B&DO{^E9v
zpVu`I%mMpKA7tD_g=Fu~ZIjcdk@QJ;?1y0mQRdbrNnv#B#j|`!TQwZ1jwMXYxRrL8
z23TO4<ad^{Qu!5doqQzqXqk^zh!q^mk#Wd(3l<^D`}`AesJ{^A^%xM#$g*I}?J@k&
zN-j?aUc$aLZ?vcO@e8!VGXaQW@W3IwaX$RQiX%V8sGyL%183?RKYaeDACU#ukgtEF
zF;98rSq0LnFibgH?((`qALXsJJ*DFM&QtdDi2GEn`gpo!Q^?L>(kf#3Rf4u+A&X1~
z3;D}Wcq&GC70U%Oeav9QXmEMgS$2-!F+=!|L%sOwlHooV12V3DhMz`w-ReQJ@owNy
z_~RW)QOV%HS(lzSODtrTs~ogvagoT+4%?qxhPb>8zw}3NgcE{rv)Wd=@m1TYgy}Ma
zQD!@rJ(1ZB$}@i7e{hK|_WuCqIgfG0J@Zk9f84tryy$?h@bpX8Tf)gi2sX?;zwsCU
z0JR}25}D%Q_J)pQ`7vqt7R?{#Z=GlL&9PX{j6nL7(ZYOVmS6o#-ZHM>x)U!mo~8-z
zE3`G^+`1_Y-{M?<SO&Jw<^KS_rc>MTO;oEUnTT0JiEhlT-*V2o<wF{j8o?UoHZba0
z2CvSj15)mBK$=Uy#I0K_1YM4LseNgm;Iy+`jnNwA`i^%!i4OxD4QfAOFg964bH0DV
zV@_M-0hy8|hFRV>+|dzaZ;%%P+IjkcStTGE+)G#WDf|F)GU8G+FB2_5sAF84ji*C$
zv)hqaItQ(CV-cOjh=BJS1;i+;p6XJvR*dNS@%1+f!JZucAO@w{$YS`Ornkw1FeX~J
z5$Jw7{{R4hG0gt}tT1$B;-Unoa$*ftxVguL`QBpMbk{3Zrk_)DEIXq*?c6dN=HUB+
zs?~m4Z8s^K>CV`J31s)QFgoVnZH_?o;@#9I9rLV18kQlcnD|w9h!9@qRXX&5DPYLi
z^Vc$|5W!Qhm9szoI1Z4?n3ryK<M$H{;epW%YsQtBWrioML@MzML#dT}_;*(<>}kpm
zNg#icQXRknT)#}ps;|Smq`*{u@@Bc)5FtO);2t-~wNTT|veZKxH67wLT)x~Pk}?ec
z01+mjDZWf*Ye300S+ReK&<<;3{6=TIPOf``QmsLC4fc!^8}Xv58A9XP-rsVUO)%(9
zOBD9R75hZD+74CU{{BCScD~7NKmJ9hNYWj-wQ(up2^E5AG&yYo5e@zws3SMv+_!*B
zz5UPZiWO67VD8;Y@rB6Cbn$ZAC{@L&)VuVh2<Xg84?<SHTbg}4igg9T$?g*DgFw<{
z`wXbGIQa`?`ilNlztkhxjt=ENXpcIT5;~h5b5pSKuw%Eh`hg9dp|0t@{{UFII~if@
zAgDiwLpVt_8ATGKtVj;ao6*#?jF7CCf>kd3+(oBnlS)coab#%(-8@|TW22b!W()+%
z2}E~#W!UZIOdu%u)_f)^lJw5hdU;?}4~hF!6l<t|fE+_ntYAay$8c&ftjhCj^(m*n
z7b#028zwHft`WCBylWsuKOHV6WYO9=<y{CDMC8Hi@yv(>=GH#t@9G>Psnodi@ytVf
zq8UMd9E`Qb_CnyND!HM1h6m+?dLT>oUp>muB`7%u{{V2!_>o7B?p(eayb5XstMk|d
zqUVG?Ou~1_FL_e;@gAquk2OTK4AC-PE)(1029j1ez<-3i{!)#LA<i4zTrc5;3&x=b
zp5<sN-T?&Lk!uChJp$?C*R?M6*NzRB#HUchaMSKt^>g(}2QNpS=O*bdAK5?3{P7R&
z0V|>&nY2qV3b#5cKglu#M&us3WsF)AFqmxcs1xwpFR5JV!Of$oOgoBD+!oxw;&qHM
z`<JPi!_V9E2~Br9-hagDF#iBCiD1Kkj1-4c09R7aPJO>A-jHp-ldYfT6r$!f?f^?3
zD6qcb)%dD%;dL%05#RNTJ4aBoHf|E>bt^dhFiw~%#p4p(QK;_ce$d4mfS{rSN$ni(
zi>w?2L53_!N3P<kd7#9$;k|I16z@<`vKl*=5&gtep|SwDwbRHrGQhx(@hA=N{6xEj
zQkk2?r-l_1sdzmmnSv~>R$y)74xMf%VR>2|kX^rNo{YtOMzIXZ<DHr%#c7Tu-_KQF
z%rwHa2uWe6Sk|5<pr&ZJD4c~aa)~;b5|^H68;LarFnBL>ON@8o6<Lm7$z^ejn(UNq
zg~9G&iAMhb9m$CJbjmU}KY}8mxZrPTQ3&RC%f7QV+*>@gNrA3%AZh@eM{&~=G@6%V
z9^T<s?+Hvc`nj<BL66BWW)i6|ZY<q%*&KbEm!_eSde<PaqKU0|_OMuY<73+HXFB+3
z1G$iT*EChipMRdvVW0c*^qtC->L6yA;rE=o)N#!aZUJ}m^=fW6F;_70D(=w|rPsr}
z!+lIw5$bM~v_*+^Hv62@y)`!f0GHwK60mL8i?JCo!H8hg%8t3V9&q$RFw|Cz6vxH4
z^$NF&D9e6yI}<r=<xr*|VcD72q@-GR4wtP#X(UoRa|C)1HB2(<g*k(aGb2d^Td7YM
zifS`047+;F1~<**WQ6FZ3Op`<3=00GthQ!iSq7%z8ts4?pv1+Qw8x)$i+^mOgfiq5
zo+OzTGVX@9wf)S^Q3ZM@_8{jmfr(<KSXHM`z4=M{MJ?i>A0B74YtR<zI(R|c4V{tu
zON<Wkgui}2YLq)LbD#-S7TMqRiqEP0Wc_j(7vJIj?-G&s29U0nA(Nia{{XBUwCnfF
zz5=k1XsZ32pS=7v4||5!_~i%ekM3oujVsEmF)WbjGJlx0*ZesfqfkoOj`*EMQ1K(<
zMs7v}l56}&L;FktJ-l7Y-Yy&i85eJuZW;C>{YjZeknz$8D3e2&wi_jc4E!&7XmCU1
z!+(;40Vj1dlQ{s>@<NP6zT>&fqtZAB6*le-Pf4EPYPs2dlKb!m?9H)J0`D<0h?j#Y
ziFiEO2Q7Y1Oe>hFevnapa=ZdA{-&Du&+V~u;x@}XTj!}wJ^VS$thriJQS;ozzK1oD
z1#y&h2AF6v)iJ}HEzu6GdE4|rA=FM#&OA-5zW73>;~|V&E12)ee!z<lu>3Q(+_Tg1
zG9@R)Az6nUxXh|nDkd+)Y6;^PluEMm(<okPnRi5W3)cgLp^An3njU@EsZcfC3XWqv
zxs$l=9|cBcT7n^2<jx7$_=N8B_;v&Nf|LBmJXW^g)-jVs%;W8pQqcy)(qY^{#Q55_
z$_*r*46oTNkDz_><(D@wV1Zd>uj*6wWxv`Pua1wjW4Y~ud^S16ex={`j)?4d(hqT3
z`htiRH6lHKShgB~KxCDNYziya;IY;tA4vVjC<Re6*C<_WOK(i`_Xz+a78oX@rEG*g
zpACTC<0y1s=Cg9W+5Z5&K#%!=37>I8QHI#tm_8UmwFdrJOBnkz+{6t_hBY!@P*sda
zJMeFelY(?Qnq~s9D`*TKq(g5vJAm;Ga^$84{D48YWa;v`A-6EHLuCu771)7T@i7ms
z1nKr`n%Lkd+ZLRBKj`!P*$#vXZ<9$y0gNA*<`~x%Uz8QD5bhzdm{qb|tAJ%cnH{Wc
zwz;ViwCj|)Mf*$R4HC*bL8>(?6)j)k2ygQ?1X3;You1F+p8dxJ%lt~g>8R!9La$MY
z=+w3D?mG4(89;zg_?u;iW5u7cX!@BGZ296{8k9BPE>!mg7tRF<iFDk|#Mjzxci~dt
z8nHCeILv##bgp$?CbI_FO`c_TTtTgQDj%r7Z{zCWD+YRJ*JXj+$sP603OyKzhJOqT
zuTvb=c;QDxe6FC;QC%KKFk_IVGr7owMNpn8ZOjzPgSZS+xMZ7VHD;j%=QI!i*FV`r
z%GMOy(}?MAp^v7esHyG%n)6|qSj?O-uU0Y~qThbg1;rH=vcnNHm^g_ta3ICYxD<*9
zL<;;ZWsgT}bnm&?)O`FyMr9lo?i*gA9`2=cqIFPcsE*)k$~B@{H?CF4qzuQUxEFTI
z5Bf~@E-(K8_$6#;l{XVP?gJIQv7C0w0qf&&`s3;WL#6-&)b9B<SP>6QL_11{$Iv8N
zP;LJJGLdB~(r^00{b*13E@IE{Mo5DQCgmAoXz@@*uH{$XKd%x_jC5VY)Kz>e<~=y%
z@n8MegZr}uyhd6<sEQ437_`()<ZKgc0tUIjJC%Me;F$L(aOI)^wtE4%6*||$nswp`
zG|Cre%hWlR!XMN|1Ty%$g2`$147Kl_H7YJ&249AV_beW~bTE|v0IvI&a$b0gRT7Km
z3pC%27Vq_o>UI0(;qF-;qu>I(jz1*iTHJL0CynK0nZ=ogGLCN{<L+4=LAF>*&z)bi
zs`lhI^#upl;8+=BsZlMdd?;LZT<7SSqU}~8*^}mKI)x=fUq8?>F46JU{0F&AB8l)W
zc1u4GmY4M`-+nd`VFOVOoQ7tcn3giCS9!hdOI6f#LAqpRNyxNl=GGV(s6CSE_RK65
zd13B`L+j1V+``RX8^U{L1Q<wV(bRAl4rF4{cmih_VO-YI%|C|X()t6oE~Lm}p)o}E
zg5dQRji_eSXv3R1gu=$MXS_#fBqM60nb4?tcKT*dqY}ODSiSsq`|*DN0En{spQ%Nb
zVSH>aQp$UmH>pB<{<JmrWhb&{u)RW{&vO3&14bpbX3WN1LTHKNzV^jMhBw(BhWQM=
zO}|ql9bL<H@F7RkqD+wj0y&jiluHVL(`2CV%g<-_{{T@g3PEdQg)!_nm^P)Hb1ccO
zEQ{L5J~^yzV%=gsp@NC^0;<~z(;G{K?ivqY4NHaHJ~brNd!D0ri0k8h60EYhp@MSM
z3Whb~xR<z9?Cxrf^5$_dY9I@IE68;+zWhu5kOTVYLPx1?<1uhfVt_?qIdnon@w+s@
ztE2w_zWEDYqbT<s$F`=(l^)YYM<sqeox(l6J<WSN@m8L-6WT!3lSNCw%DoZHtlyFw
zH31;sAQ=YPwwCz4=f5GE(KZiUl|N{0`uqnnrR<I>rRL@1rc$!TWzHHP(_|1)6|D1U
z!8@d_P8+{GA=?8U-ydYQlm$<y6{%Bq9IdWQv+iQv{{Rh0bEp_yw)oJyhD5`-<f&+S
zcr%1Jq5|27&+p9$87;&}EoxD@_2$~teG{~q3MXkQ@f@9yk<%QNF6`8%?7-8^#-&0j
z)}f?Z8<@uBq~w+7L;nD4QvhIq3fY2~`%MW`F<YC(AnN=+tu7gk{{T|fdL`g;zyQB-
z$y2XLxefmShyMG3AIlD7u0^bXQh?MExW7@lgbtBaT))u*k4Pg>cb4b4XD{cH?NNtV
z+8`a6m5$GZh~49R46kH&;xRV`C-VD>ms99HbL|$c#s1C5NvcurOFQ4zuGC8ImwghS
zvQZD6*(v*?t`-U<UybxkF~p4e{5`x<v;<&TFFtjfglUOG3n+|CF%V!JL?GcDoS<U}
z=Lirj!LWicFFq~{mlXOxe4YOQ;wSz{1ru%jDFNgIG%KLpK0bs3V{btE?}`Tb<(M>O
zSH~|&<52(#{=ApSN@ipg%8qV`?0DO<>N&iZ(afZjY^y&dtKb4F(*-T}<Mx#M!<PXl
zUy2f~&YF}jj7<6WGdEs;V1}QAc_V1`&1a;f9ek`LGg)?Z=UJbxj+29Eee+s%D{GMM
zRKE>CJ4L(tc;}~bkvj1)65$SU*_8SEN6dj*M?w&}w~<%Wya;J{<cA;$9dK`9@RHwi
z6Bgl#MU6vYr9f;sYp4$51|X+A;*d}9_P<lt4i0HV7|!`^%JKSv>q(hr>B_Ckx{c;i
z%=AXLfD_{V5+=`l?H^D@_l?T`073Bf%NBjl1L^pSDN`S*N?*QkCG!m4Vr56%yXyY5
zX95R!A8HC~s7f%Q^NAG(La$Lx#-L-2IWkS5pLE_~pypO@kjtceI-cl@XLB+~OXp6L
zIW7>Q`r`RhPJ}s(3ntl>pJ{a5s@=ZjC;tFZ0b9#d;#=fwexP!0vPbGtZc>L3^|{hH
zn)q!nO0sy3G}JtVY#3t4$NSc!US+95SE>z&Z_dLphpv&M4oqN%IDrj+&zsURK{zR|
z6J3#W{d`jE4KdE+nRF&Y{PU^WR$lyRM5UO6+C4j&A&ki>TMmr5=`5r2Y2M~i%%Js4
z@uT*aJfG=3IM>6t$2oJmH#2V%dUfKxbuX$`My_w0&@@CaehPq&E!&*WX{4HF8Gaiq
zSQ(mzCQ!>9@8G;&QTOrS8`1y=zG)rH2S(yIi0WMx4|>u!*Wn{fLsseGOk8XmUHONA
zRP`RoV&Y(9$8q+UyOg3@s%x9h>}tKCs*h7kJgATr5amt8mE54j?*0&L>JMPwEkjXO
zYHE0u7iJkE&R|y;3g2+I{`vZp`s?uB1HC{3w4U9^Vk^kZ<ylB5tTDMrhWrMjnM5(D
z=W^v=CP*`wjg@6yUTTFQrEUwFRwhl`@R=?%XA7BsRGE(aL9|o~9>y?6oy)VPVb>es
z3_j7=!(DYRdq39qc4}4qPv4*b*))f*p1k!A{-vOdCMPMDInz@|+-=+?3v(COD@0ep
zP9Us(#e?t6M;!sSqCNPGOBi=X0fZ*rZhO7TJs#r{K@jtQ{{W_q@Ai%<0@-o@05B>3
z500}jc(~!%=&s)xucQ4>Nk7~U!Gf;$=C)k7QlySg8wa^`dh_21zj4)h7k}62Q@1-F
z<-&U9EsGbA21Q5Ere3+cO_@e%kNHxe1~+@W?F8E#oQeoO8ws6rhZUzMN5slzGshNM
zUY~+?l|1U;oyDp<J{&B^pn(^nBYQRQ-B>sBSoQVDAnA^mWILtZCg4esgKyya$4F_u
zyax!UaQ%mwsB_aY<j+Gi^TMcN{HtWaC+iMxm2bZt!u9yi@iPte$%y77)zoVD)Ds4I
z3io@CdOh-aCs+7?&qULDV$~*gGaW=QG;?I(EjTc6J^ZeTbdeWwtDe$W$Lyr~)%aXg
zxAaOEsr%=Mzu_$YQBxd~KL<!^<|16w5lj-L{<LZg=$Oo#l!K@xwz1Gn{MJJY+ZIbu
zYw;5MnQ07bkZkG|eH?&l6{8dF46vl8dWtain0=+HY(NykQ{j2UFWWY$aLG`pY~pP2
zDp*uCVlhk}q1Atgl?Gfu2vPJ#D*d2Y648jDizSfkIE-$nb6-=j^$q_3l3uDRD9Zpf
zr^p*d#%YdsmID}Z4Z}3o#)R&{0)EL!7>j;p1oRuZbUn@ZoxY=l_vU++l`69yoV^WC
zu0RSu-~yLySmki+pFnrZyE~LC<&L2H(?4Vk+u}IF9GTQ|Tm=zru`_Y{{8KrWZxY2@
zGVjN!yj_q&a?+0Q!ss6kW*xb5QxhXoJ*3D-h=FZHg8__v@-VZz{2Yl%*UoETRYpse
zN`4v}(>koNGO;lB`J@^A!4q&Q82HT{BMq<JbD)@gn~9m3K}O+-<~sXsXjA8JA`RU|
zP`yKMXPw)ZG8x7vW20VsO%`*3qFh-iDpfXl(3ad=rHM%9Q6cHn4F~~EO=2T&?ki_i
zb4coEyO>+<2d87>1fa6)A&tml$$qBjg;gaE@dDkv65padmnU;d86_*CeSQvNwVX#y
z>~ku}#gtim3syBXbWuBM0~!ge&WT8?PnULPq2u=qKp=f1f|Njulg-t?xVzJc$Zch>
zK=DjOueFInMzbbUl~$HdQJsSo+^D*DETS4sSM{ugPqN1-C36<(Fs(jTSqcLynEwD$
zl{9#otX8j;%&RjjVrtMTIhol@9qk$3pfTrcm<w|6lM==mg*^DKlC971rhlLyj6*EP
zj9!i-yHIY0exMc%2WdM(1nD^_2y`&q3<NuTrkS(E5O*0De;tt4(!+H4P5_q3wPL#X
z*h>#TX>M^#mRE$={{R9Z%Wvr~eK|2t4(?Q$$)8Yg#Li}%8VP7-Ei)qpL-Ct0sF%2g
zX1rWdXCod8FDega0Hf>SyMw2WI)0hs`^5e8#)T8`M#!e}VG&9?OB3PFx*=E6Gmai&
z*VLhV`9+WF3qO3DNn+p*`F$fYK7AE0yRe5VN$yj7%O6S6_vf^%a=3GeE-#(+1(^=Q
zVMb=34N`ZgFpi5qeEs=8-kN^$$Kz~0iDT~yCJ4d!Fkl2~h2Ijs(LDs~@a~$ILu|Jd
zFH$#1K=$F2+9kfyk=HBDe8}R`<Ia_OpR^ncx_rmdVt+m-?(9FVc;2V&kx?DW5<|S0
zrr5Xal<#u;`i9bAKdo;u?J)&-p>(A|Empv!%TV2XZZhfxg9H*DxQNZ=gOY9JK+Fo6
zs}apP+_-q!gM5S(*5WJtG09AGZl$Vnh8U98X(;C}fm{H^L$?X03F?+{Y;y%}6H775
zVD$vQu>%n(F)dX9GC&B2{{UC|pL6}#J1_TOOvSu27xflF!K`%|4k+AnhvfmCc%E*e
z{dtoP4?G%zZUwcype0H0?EdHMkXmY{<HZEIXN-~4#_ph94umk@D$?8)#(&@@$6`Bc
z-zLv;)HKT12T9+wtoux(4bG!j^9QFL7{c34V1_0TZ~(Y58IKzMOD?<oJ7A-n9L3Zo
zmo+!zvfa#%(=h0o=)Bfl1gu}Lgx%VyKz;b)9qNCWJZlH@ElZX%t2YM!00hJ_sZ`*=
zAjY_%bQP%@A)hc)RxujIl^pNP%UWe8L*)!XCq_<vr+LOT9^epn%k@mE8u|TR<pS$|
zIDG`dIwjEeG!I^4oJ(tzyvGV<N=mcfdnHRS8??G&0K4*mc<wb)$ZlOHxZ0m^D0E_F
z>z?4-<H5wh^$$eqT~zE8OE7m5_rXkeiW$n!I5h|u*;2p6RKLMN52;)%65cH7%PNBV
zOqNZ1VV`GFNh#&s%g0O{ko<RSTg%N(G?ZV!mj=zl{CS{vGY`@#7equ=@5izVY`zV|
zRW$BWH!!0v9$|*!8|ntcxb(Q1{<L(BnI#Wm2#->V%n1QMvRFNz9SH|>Y)Vocsf|Fr
zxfenO=*rkVc^_Nn_bF5L$`HWAcMIplJ|l38m`-4sj7#_#xQz_LPw>U<{h_!_8a^7*
zeUd+|jTLqCjK^Lnbz-_o*EZLil+>50C5_E|F32F3LlWLIRWsaGSBmyqc)2PO{{X;l
zQ%{{@Z*hkCx}CwzOSwIzxz0qG77L6az}RGj?YMsp!DkQ`mJ?4uP9=>S9swTDh1!0l
zpC8v{E5@~Y%rAae%n>#CY7?0h<-kEuqG0&c=#=*5_$GGzCeO}K(A=1oGw(@ea{kLl
zqvuV%N|R0x7i1;i>Lc6FdDn@XCRy;7A^?cAl}{HvF{Cg)qlG2=KWu~hqq_R}JyyeH
z-}forxTC)ywg5ta!Mnl<0Q$W`r+&W#W-VQgStc`1`9z1jKn9L)j320GpB*S=UVQCu
zLl~Zz3$>)GuQl>4YoA=B?eQSZN7VYNUBymqFH)KJG7|LuwZ1TVGX>DZ?TC0VE{S%g
zVm(b6_yIQ%I-(nl9VHNr*+px41#7vKwG3;?44HtbtamEYK>=$_e!^jB3YRU8c`%M3
zj?jFNI!8N{g6RatqTDR&gzYd9g6WQV$GC-izThh`D;_2g8`LCD`kmIYl2JXra2CgP
z;@k*Lgt1Ap#CM34OM#|R4YHfj05S0B4w8L$Dp+)Um)a;)efYA`0Mo{;>Hr5{@DMko
zOJ^zr46RW2%Aj0I3nj!mt@C1#F6{<`MD&+LzGe%!uAR(W?k&b0!Bk7OpFKN+aa0_w
z#iTK>HUw&nm=z2}x$>0TSSx3L4TK3$O(uM87Nd`(tW4a(svFE!_S^vEcN3(nRO-JC
z4`i_yee&XNwE<@_mN7jrZ*laRXjO=26v=FISHdw??Qi8)gtQ;G--S$DhU2Tko)rMy
z$`iWz&s3>uJ+H;WIqGJ5?sZeIPcmPT77Kb(%2R%7n2fE|qXniiwHIb&R#5~OT8>*_
z3fxrfKZZjEol8+Sa7^g<-pmkA=7VIkns+F>fNMCHkz@3Ng%c%^1q{Wl#IatIl}6>+
zXVfKdsh6)4@2{8l#c{C)DZ=)ao4een1#%dEh=cn%t`eKdT=sqtvKVt6VBp7{nB1Z@
zQ!u!gEbqi_(Q-4j%P&rbAzU<y2YxsTL2T{{Pue2k)C!xJIE@5$`$PvqT#P$={<y9O
zQjO{?4<`tAIH->?VVO{hK?d2h&XdIARbPI4m~hMiDy<hB5$4o9z(Tlzv`{hQj!e=R
z<jt`LnSgCf;c5>Sym;B8Ezxr8)b4+&VI2JVL9Y><z+o0!Zx?XHZ%$)8{A>0V3{OyW
znNJm{uPe#z<n+Ed=3o2-EP$t$S(<W~hkj7bZxG}SoY_mMY?Y9-Ww|+F(3E7G=kpU^
zI14OHdl=W#;lVqL_9if&e22J)uZL{?W5nMqAqn0iicIv*K~>}~-;D;u#yxW8Qbpu^
z%GhT~gyvPI3q&%%jZOC*e5OQS_B>D9Mzn+A*pKZe&q=xreFb>f4xtG6c8`i$;TnXg
zfoGeUNfU1qzDEf}QKZqz(LKs<d2xZwm0x%j{604TN|h~q9O-U2dvX{@&MCli6rs50
zQb+4%$*+|ys8%8t%c7>KGg7651UdFoDx2|1E2;I5!Zk^$nKARTUZo4~7KybU53d@c
zUbB4mM#tMLzL|t{c<h4M-;|FoSg3}GBbkdp{<wNeF62sFQkFRA?oz#TE+#N$IYLq~
ziD$WIxqj065}YA+a|W{E4Y-edm$sk|nQ87G{LD&^S%h#-rDC9N$ka{42aIoVn5mV+
zbvG-VdzbA7v_-v=k7$b+4OOw+=>%hqf^IF2ulfG~b0mL>{$N4qxtvOM2yF=6`b>#O
zsDL+8mOiC^2T)UwAgxQlW>pp;>oAuo6>Y|;%Y|U0<F)m1#fGXT-sK8+zZWs+z=c2_
zUXq2yZORA5O}mY6{sXlonAavX3^q=<^*`JBbGd9mTNcWBU=H^wU^!U|5^c5?EG}sG
z1Z*N5%xWdZWR@6Nt^8|Sh?L2f4!+>P)N)tC;-9!}T}181Lvgo&4?#7bgv11TjE?!d
z4NR7tK!-MFp)lrmT&({9YG5DV@olzZ?+nQ1WN^6Wb9{p7De5R^QS7`W@8hKEPV41x
zgHrXoPZ5BC3d6ZkkZxMu+L{(U_f9@saa`Fo60Y~js14>&jyjcQ--HnH8Yr1=GX`NF
z62pF14XWHBpnnhhxENXfKh$$q&0bwbz1b<o*Z>ZgW7BW$H%s5gL%DMHKqbJm3z?Hl
zwb>|hFfJS!n{ER}<zv5aGw<#QF*o6G0{e+^h+_;a%J}a!7S~&bH8(3EvK<bIxN|)n
zMu|9$wE-49x|rRl8jZN~tG81h(eS08#Os~G4|bzpWZ#bCwCQD<>M;)8N@KR>hmBp3
zU%Z(Ysd9Vd-wbPJf>si)&-KkrnI;w74hUCVCNjcUmKlN6u5HAjjjWl$_Mk8jE@hY@
zjJ&zDdbuj$@Z!;kk9^q<<)ZJz3~7mTF+q<SL4JF7h;*UiTvTf0Q;4w4)|sB-eMM~{
zMGK4K7_u!@zS(R)(;BfUe}d8vIt($ghhSXssWD`Hq|sj*r~J#Ym!z_Nd<4aE?}XTo
zuP*EU16hKXjfL)A9=;oq>Rvs?clR;=_zRS&%)_q;BSv6v6SyC6sJ482W^K`ZA99x+
z`}pmhN&(+1!S^Y>xJ&qMnAK)th$`H=;X0az3!Rf4#AV39`<8tli>yVtGqV~#AUciu
zo~W*$ExYqKPnM4(F{tjli$Ll)XU(ZCfqGKe9$9LT?ud9peio45orN)+GJ`ntuQGgl
zS#C<WwwxsT_|3|cGE}p2y}~k9Duh*-;f_j&_mBG|#>d&q(iu^BS(|gOjnBXS#Fy<q
zT-?3SyI=|<yO|!+q}Q2s8CeR*$)7t{xpuGN)G+;Lj&E;?7x_jZ1^mWS#ea_;*lrgd
z2H};(OP$mj{{US}-wjhx0jfD9G;Ebq{v}uZ5lx|uOJz%CpfKij5SqXpOyZ78VVIQ?
z=7@Xv+{I8CB^iSiA{)dC0>HbQNR?bC8F2@5_b=2-tQ#AE=#(7a07{D0P#aI;H>v7W
zTaI7^KR@n&sZ0L=+5Z5zUU!H2f9@GgOQ<7JFYru5>&?p8<fapZzlgTDGn#=omN3`H
zV|Eyo(qirsbYi{4dhrKYhLwq%n0DG<j<{60^7S<^4L}NNeSg4HlK>OHA7m5gj^#Rs
ziB$(Vi)V1AI)@<Crgn%*?ixo?3ohlhlrXby5H^<rqmr4>ALsqWHsIM~kExWz8f7e&
zM*7UWWl=(9)DJAibEp3I1_q}=@Te&jTbRH<m;rLEgG5F3UmoII!mUib9QElsg%grh
zKshpu!9+2xbUPBZw*EHb7unRvy`LLpumfKsx|Sk2Z|2l>sh7`ackh!WF!p2$IX5u~
za;z7jsAjsE3;6q~pRu%6^uPj|=k^isIhjs~7CL?sCT6_V!Yn0WU=S(KF0m};Trsa3
zreZC=pmdNsmcO_zACFO1h*^H-SlmGo%^QP6W&|3l3tgOq^_VJP%~ZOWI)FNk5c^At
zSWi$3Ma*q6=RyuKDYP1v%akU|s0f(;<lhuF>rufSkDX1yjJxZ{1!Tc4-9@7CK+*Va
z{{V>VPiNo$`kjD>Q%>e?TCvVR$C39PbL}f;_z-0M_?v>yQOgB+M>8gvF42s2DiTx?
z&-L)CN>EDT1OEV6i~LdiguG|a4&vg|oC)@cW;ie70uZJx49dj4lXQ-Q42edin~jJ9
zW0x$Ua9m}r`M*+v4nDe=xBb2}8kA~N+cVqvuHdubt9(bOg6K=AstcGO9(4^8vv64(
zp!nOwWCnLG*wV%m@0{%~NB#!j2~xaGp%>B(&3LUfG7_<7sSM@=2#q<C=F*iEe(=pa
zO*p|F%RhRJbSw1?xe4_Yc0lz^D1s~baT{0lGBbpGmVPv%E8%kPn_SJeK92cHC4ME4
zrx&6F#xSg<e;ioq1`T!idu0LmLki?#SjtDabaJkHBh%v-chp7p9wU24sSFg#2gE-K
z7(_D(QyhbnGS}gd!3b~;2j(~&t+02AFj~tSwJWb&p>V-WF5lF-_3B@u#SVJ|>UF2o
zxih~!5U=@XWOQ=+W|H{dG&i>83Un*sN)QLPi)KGth2CJZ;lV!TzLfnUA^kwGhU=Xo
zg~O*(i0y#@;PMttl`@=Wo&_%`r6>FX;M$v%Gt5h9k0UuG=P3RROz4&9m28ygj>tH~
zYfM25vX@er0+wS}Za0sR#-+@02AsxAVyR5b2wXsx1fY+!F{wm?T`?XIN)Rhj{u2!l
zRaF(M3@uj=zG_>=IXZ}`vNma7sYCw&(tfG>rF}oVwlfPLXanZlOWbT`nDcWCN)1bR
zwj4)0`2DN2F!6BuzMx>g6IB6IH11f;wGjwT-WP$mSq%RG!1iVv_8ulmmsQ+u(m&tg
zmuQ$vOJ>^OD^nXV!XAmDqP>vu>Y~QrhTIrw=Hs3c{{Z!Ws1}#^i*0{+1OEW)D2{gw
zYlOZ0Ykymf`bu7eOGhe-^#PHU&&zf)tPc_@rg{}cX-|&8fF{2kqM%q{l>QORf5f#f
zAA(>yH7#u4g+O$}a_OKJLwT7K>-7UQ@U&u`Kt`fvJVVzb`>v%6s5>7Cf$*rigcS>P
z6$%BA-e!RU&w=4;a3z)0+4BDYji*T&k`obXtiZsmRIGT6c1x_c3UM~fSl@GaQpE(z
zr~vzv@PgV6HcPWmb!{$~h!JPGe{(PHEv#aTF#>xf6VVpF(<O5RY{BJMLqZr|Pr~9Q
zZ9;BAs^CD2X#lejBYa=N4JGi|1L%vnQ(yl8g!`J@S|FC<GT-$-_uONVr=lvxjZL-X
zxrrsVB?U7q%!h3HhjS`3JHPNC+95vC5M3vvrq`djt(0&#usB{qoWhJjqJ6?7A3d9y
z-TW`KyK^1#s}WosBcF}VVQ!*45w0otUDCf(yT5SGh{Kt*^iSp?(=wbXOpDR*nr6?G
zQ4Rcc=s9`&nmGDAdw_E=?6z{4UMEzif8c#fpNqPbE?*{maLJgC5ae|?GQILqXK}rp
zyEh8{OFqQ6^xUC>cD%SBYLvfEl>sHkh@(+*jm&N07J*O4ZY6{RXW>6eC9-}EEGxu6
zWgAiqLvWxvWPmo^{3RQV-rsOcv0glyC|B<)SK@(QN2VBt=F~HfKh)(&k=G2n50rky
zz=U@!CK0zK-An-$kaHEvDTFarQSb7H;8>LJg>)<R4zOUdp2>zX`k3`zkZiGD4n|3K
z8Ty#yUT6;8%@y#nk~eM$p>rFk($)h={d|3nJ*c{tgaMPM{lZuO0Pan*1+^P55xNLA
z_;vm`1{3ek>P`s8#k`|2Vs|<vEB^q2XrfyRfA_i5A5y7gTb9jF`b#(dl8t|)-v0ok
z_C%0RXa<mlO8wu0V=}rqf=|@9i!!bejqgt7e5N(QOMS=i%v%Bf01$RI`sx?z38|cA
zgk1|@H;z4G{{YMZ!k||bE5uq6>;C{N{{V1;?*0hw=%;9(Y(%<+n<vniZG$k^$EIPH
z1!`;Id-pG%&_h`Qv&m9q)K}#e@XU&4I0K2UMM`{8K!jso@H{e?L{D+&c8F<-VH!hc
zh|nEJYe3djXOMwJ=}Zs@F$K0$t0A=h@BuUKD|Y4d{9QTJOn`#j#TCp{eYqVyX)2mE
zUns*GbK^v`igzo<!O)m%@<Mm9ufb}r805#`-wC_-<C+L31#FoGa#{3+<u!or4PkCl
zXPs_RU6<6z;(LxPq6Bt8sCsfxW?5qhI5ipTJ8^#w@`kYZ#i+SXW}|}22vljmHb`)4
z1+|@`uhKZ(vW9nmD2wV{t8-B=flfdX@u-7lB936Dr5k}TwT!4`GFf;30J?@$+utsC
z3_u9y{{U2{wAnB32+{ulfA4?@dUAbgC416R`t<(**^Ua7qPA{(7co>pMfkuq689~e
zltUjKX5~Q?`cLv4ts@&y{{Y>@fB8S^cUSh6hq#bmNDs0xEf|CF96hlDy)mweB1HYS
z2thIqrOUtgB?qb9FJ2VNd;%jPvCP5vD@-Gp-b09H6r+>x=i3s*tT%l?6@QK!sl|!Z
zL|j@m{^k~?n0@?oH8bu2RTz!Vj>yGC^`$$*nb*c@8-6i-4PF*->*o4EbVR9F<NOrA
z_!ufViCzn7K^9bgKe$Y1xRnlnUznE3P-8YZPC54+{{VI>sS5u97Uq)v<jrbBRCaiQ
z9*IaFUoGe6Ed0GcC$SmY<M3?RqwqyiHh8NeFN8~4W4F8)22q{|D%<4tj{0Cs`gJc#
zzMz?6I6OtrfpZGya6N~{e2K~d%tQ!+Uxx46eVH5#v%Y({IUa64$=n807_MA^xTddk
z?t0<h&hPRQDC<(fIg20VJ!EV1%r8jN2I6Bz0!_=N9n6?Ing0O8P>cY?Q$$?Z^gz4%
zn7?1}M>73W8?0iL+J2J$<MhD2vicPUxnl1Td*KK0YURNSF)XTU#<Vv&3zo_*{(9iV
zF*hmdRdG&I_wmwKG(<4n()Egluu~Q$AAcWEXX90#;j`ZSL6oy}^9q)mgI+a2Y=6OQ
zdc#jCd*d-Mo-a`iBdE8(3l+E;A`X+OMzH0{Q!E6`2*UpWp&a7?MTz29mLqh+`cx6N
z2T4O@`go}7Qwsx>OuerE0QMybqJJaC)PE7z%TWPL!V$rL9ncM~{{SaNM!S!A`^3Fv
zSY2DPD7tWWcXxMpcb6c+o!}BIxVw9B3l70TaCdiy;O<V|O7`yV)93c>-S>Ovy*rpc
z7Hdrzv%G3l)%e^OS57_>8#9*6Nai>W+*@`t-1cA~Lf5v)9c=9bP54QYL|yu%0noIR
zjmGXSjWT#5x`m+Lq{Uu{@m$R>Va;fka=P(0&x0bu%f3vbwxPU5!6}K{2zrlN1{t<1
z;%s!C3#WqO*}=wDIELhqD%KoUfoQE>kV^kVsqvbtc6-@u6=cUi=OE0!>u6}X6(-=D
z6Z~N{&u7#>0=TfZ9gL)+TcdT9Y}4e6u)gH}X}2x_nmPn8M>%cb1&5b|ong#6PxAur
zol5~~6KJsz2Iy0CPOpfyb?D8;Y;!AgxVoXYk62Eue87F5cG;(w+t`-kj?Kn6Z>>YN
zbNu_3Ag{}+O_?|Lhh3J^98D-okEsqF9~vzgE$J36>^onlAK6)y7D~90#&axdZNl}Y
zH8I}8L5GiBdK>+tUeU-ewQ}Y!sDqnKM7RxXD90CFNXm3~TAxYQcMUo}`dLq}L50z6
zK_25IDnC;bVb8AYdNGumaX~mT7wiO6iW<L4ZIm(^D0$!8Fy%~SXEA)2YuMU0VdMZm
zB#E1;jy52IlFj_|9oR)7T^ee?PDJF8MoZb!b$GTu8RT9W`u1YEp7s%C&9^Jz9^NKG
z&KSpmbCd4!i$tObFRE_DJaG}xj2}lg>+o>nDhdmOFC1i;a7S$YJsshTM!p5zu6r1|
zKS%&y#{<oM9K-~ABkLu}YHw0hTjDyh@R1p038fY5FHgi(?Tq9@8WdxjaIw(abt#A0
z_Z3>*Go5?d9Yy3fU>Vw7{i`sJo(0z1C0@aU&=Gj`jqhxyq&ypv(sftFZB}t@qlxWs
zbMjUqY}{xX2YlIe0vYQ(QB<dyeg^|WbL)FxQ-85+kA_)BG!d&8X1+5pH~wRZ^;{c6
zqsFBw%VY-p$4S!U-dYT2#jfVPv5|?U9$#~&S--7N`{;<2O>F_OZ%zSaz;>da`SK!s
z7n2G<O`W4EuNHB3@I_IQO@C~S)+EUYu`JzFDPV|0%xd`@{;q*_jJ#p-7L07P8_Y8}
zdc9b>p#-=<L_uGWNl7+>(6q5%>k`*}H*sXq!ytcbubR2D;zy^l$Z@1u4!IFVB?Iv>
zmU5^3{7oL4<$ZBf49Ba4sify+smbDl^`=%orx;Wem(0_^FyqEW(0Zs6#&=m~4s7~5
zYc|4kaUHd6#hKooqSezG0|V|U_Q4PGm}QxMj$id*ZK_X+%GqiCDeU{A(`L~?i|elg
zMIH_+rLHBId&f!<EH*|-dvptd{T5amy@yR^HQdtOwj_iY)kziyCiJDiKD2YT58XbH
ziv9%P8^@i5oPiXB6NpMFp*hbs`8e_jo80&rH0`s&2=H5<4)Xg;4wRC4*>@;KM;zgt
z`=zvrW(s)x3LUDu&wjezv?LV}uYLS6xaHbp%$S=^!}mq+JB4ny@f&${5DxM}0?{LH
zh{~&6!5J>${zl$;M<}%rPJuzOkyGSl#VTVy&B9=J(73?^x7N2!w8I_Ay)5l$aXK-E
zdg?G8CkS+>T{mmk)I{al6pQ<$(~jiv%^SaI!Kv|GPol*fv1im+)#)$LvmzVe=c}cM
zt0EhlC_&z&hlu?JIpZt=D(*};VSx%tUwrs!{AZX9&U=7HHDbTC)Q1i}k{J*(a<QXZ
zIyrZmM;iB~RjE%!(YUjN69f8y5OOU0JrJ}V20g;&Z+=ESU~DO{CW(ZYIEdPe0oYy8
zQpXP=eIT(pD%3`PL0H}$Mgm!n6mUeZFTQ9UP@gtcfK8ystzoT^zZB01`~<v4pW(?U
zsoeyUwWLryiGOfBqAOk$XsKyTc)lxf2f)5Ol_0CLe05oEQDbZP2}p0E0ATy!m}{v)
z7OfZ{l^qD`Z<BVx##a9X^k;D#Y5VlhtGA;xFZ9>np&`{=cMV_y<5bi?0fCiDrNG^+
zb~He@E_}o#1&OC_l8N5iNZkrG4P5I%1C<6AxXMMO!DOITs-qJNjP&s)w|&9t*o$g~
z;Qo}L-5^;A1*RH>8PX4?Ghq8!yG`y?`<S5TWTVvzq;nWN+=pYz&#pzY-sh#DL&1da
zB|Kjr2S4qKJiXwvR~WE&0YLUWPi8O(5nh2idcm;sn#|h~$PO(lH9{omV$?iOcp63_
z!+%zty?@)k-g<>_$*GiGB~Lm`S%4Ir%s$gL%#Q6&YNMb#&#DAwIiB&h7@mnCQhgO9
z=*Q`~^vl*Xw|?dyu<fbtm&iv(df@I-p1r%&%}9=jS(c*r?-OL0tulk=y<Rs{st1|~
z=Egr%;)ALk&amgEJ7#Go?t5E(x3D8SZj4<aH+!x6Hv${(%*|F_2$DLN;xW<__ueL)
zsW%KJ^>zc22C4u_b}-ZmwD>mFG6ydzeZqrUDu#JS-z7Secp^mSsoOg4&k#cick_P&
z$}CE&Vi>3+$WBn7=~)k-qJb@tf@XQ8Ky)5-$h$dbOEfSP##2|v4q*%ruLnmN4B0dH
zTdfUa%sd@>6vnp#nRN+H1C^QUf7Ooeb<H%}Tv)48S2jmL$a0u#c=0bhbV-}~tEoOY
zl>@7PsaM4;UV%kofugGg`KnXQe!jl<4!w<DJe8WL(L|Gu?vPcR`4s5Oh%+<zZ*jU!
z)NJ_YTYM)YB1;n@)EYklFV51;1KTRS=RYi;uJf*h0&W>QHn#@T?YWSpA}*oYi&w4}
zK=$Og)cJ@fhgC38eANW=K5WBK$XVXv!6<EJB7F;>x=>_Rt@Ah)khADG_)wSlkkbnT
z+CilE&a=m$nw_`XEXz$YA{p@q<RW<B7*l0-pM(x<XQc|DOtVdpKh{dsCNTicsUGUR
zc~NZSVg|~gbBmPAnVBe{ky~4?<x~3$v0cP4Y&~k3KdJj(Y67e#HnL$EzsLe~EAd&V
zis0L)(YK%l!tbdz{9so$XYMkYz?X7db3AQAZGbP0sUF>Szufvzfzjj(S(}zS#&R)Z
z<A~tfwRWW3#&_*Z+uVVQx&qPErMd}b!GV0;Qs&cTeSZ1&#hv+l6`29JC*pPZ^U`Z?
zxo>Fj5nai9*ZOAa&mH+HV?dEXTKu6Hv$`oK--|+lcdzwj<2lmzN$8$1T}p@>e%gf`
zcD86$x@6~Vr_@^3gU1hZ_BJ1VBV!@SM448#9JrIQ+5&P4XEKTS+?AYQs`rxl*ATfE
z+-3>Mm>PPr>=#Im5#3RVo15eud+)T_Mm;fx)E%WIyvn2k6#D7|Td}nF5Qw(GEo<{G
zU&V_W*b5211<4=)-KU3xdF0fs#8IH1YIH`jwC@TqXU+Cjw|_(WX7pr`g&^ks;F+0f
zKE@)6ys<Iin-^aG!bg^xt^ojh10Bw!q&d8tv{osz{HntM+61*R9xizK6e3cMf8Lqc
z%(4gld}leu)+EOqGw$mZ65G|NSARuiiWWxE={s6yrun9kYHpI%k)K*R`_ZX_#k*11
zA0eqH_9tLKUar3E46S;aUTCK`<>;4>2H#IP*DRHrVLvw7s1dI$Uhv7nD##E5?feaq
z+pj9Ecl3Ox`wM`n&rZF1i#jpENFgtA<p+B3!igA{FXBnE;dP^(?<R@sDzMk?Y*Rll
zJ7X)yLv&>!{FNuNbwIv*0p*kA4#$k@fa$4yubK*zqplQRj-w)>)%qgy3*KXtqdbh;
zw+JOou=dv%I!oaQGh=|V%@dObvaT83y7Jwdd826s?xU3&UfG*GKm`caS8JD%^2sE@
z*qGdoXkd{0^<kqsBLCKPzm&rFA`u@L>)yagdJ3q%Jav-8XQ4TQ@DyZ`sMSEW9526^
z?nfvY-Lnw7AUvKeQQ5d5y7YF8jrw{yh~*%R<IkLqaT(-Fz3Xf+sd^>CZ5{-plR*R{
z5w00XczyiD&DX0ktDR$?vMBTu5Qi@?Mp5O`DY_A1jAyZv+ludo_i*jXRGw~Ztn(t{
zu*wYSyQRUBsA4zf?Y0F;{1S17<ghT?_7z(xmPZ*hitFJ^xN<PRet$VK7z#)A1JbIn
zW-&_jB`j+glt?o~hOAc3B}V?#J3C^PsfWFKj2%nJV{tkAUZiCseWM#RTBrWF@W2u$
zxKUbGG~^y+C?U9HE@UkS>axb4fZVhNNOgHSq5-tGf)${&f8H@qSl^1GFkV4!9A*SY
z0Dv)sJzSE~iYtp!=gTOAmgpCw6~GKjBHhOsZg8TD8jI7*NnwBxd3lG!ExkdszQp50
zfdkr1FXIg00vIRjJkM<5_$a~JoncJ>t?P{yXmDv=(WhX~;y+}OrSUWoO4&LGytDF=
zJ;GO~<Y?+X!>Yb9Xt4@&o;e~fdcJ#@dC#JA8e(u=^0OB}hYSJ$0R@AC0QoflzyX2+
zAYl<vK{j&qkI(BOuARELWES31HvG8^fCiocB82?5p;i7WMmKj5*DT&Taq(J4OR@&;
z4mO@1jt%scpAd+yxf#Y4<UaRFu28~ecd2~#ycX@sX0v9M_22jjfbzZT&O;}ThL+Ae
zlx#^{J##AVUR?IDQR!WOdK`H`J3lb?JpJ-gsd7ua%Bix43`R<3)AQZ)q}~7gjAb-2
z8=E*}!=&zJHQ9xdbATCho%oqu(YNR1ro!Mc2SpwYYEJcz0RUoHtMYoe*Ey3Eb1UuJ
z4pZpUig;b)^1;yP9FReVV>n)RHIFoS0WDDO3GWGwJ1-~hv9sto%|Aj|=O&i2_<eXG
z@e<DqtIgfMwQ*IH`*<LtZK=1m5lO0XK07qkp~<0qcIDM6UQ|m?5uy~<+nf`R9}@D>
zs&3xL2y3jr&<SK@tA;OoZqcN@#$M=#kG4Hg=@R}d-v7(j-iEMjk@90b--n5gskbKB
zsL@+Vt<~}=QYn}+!xt4V4hUc<mC{pv#!o-$g$MgPO*L6K)#6soY?Kwt)aT+Jyv4#q
zaxjRo`8lj06l47Nw5I9u+_o|Bu2Q@J$efL%Ti>z}KaJ^GJ|lzjAIsPPMKY&44(uu;
zsw(u)c=wXmp+e#je$kzX*~1Nxv2W*-mOlX*$fnJf9Wm#^>%#aGj~p<l(q|8)%h>T^
zgI?c$0y?6FlgjKB@o`bL&e;f#d}dOcLb>zEF#=fmUs-nhF2xB2;IZcLXNp)AvUX#e
zJkwow8iZ#ntU`u3$Kyqj&sR^p)SKhkKE`TiH^rdgCAHE@WN-X|uWV}-PK0k{Er)M-
z18`&NNR`$W&-paE>%`|6l`0=1YVd}j>Tb$r`<f&ax8|F;GvEz~goUSXQO7RUQ+y6F
z4dDWroQqfbf(ZsaXdm&9xcU#O`p)%N&Q1dp+T}teXUpqCE}Hsh-w}h$$0xQ(CL-W%
z-w4FsF6GEN%o<^<!Ijsx`}=`ICg)tBsD^!Dhb641WWyidQF3~LYLNH#-M`cDq0HHq
z(S`#HFE#47MoO}U4bMpAFAWPBci94(n?7%`w_h`>jNIRC*ZN~+yiCTq=z*La0;}YV
zWQ9RBY}Nc-Mp2?%?<8y*Kgy+@bHao}^WE{9DCURt2C{XgCWBl;#GxoJb1oUOGCNMZ
z5CPdrb{kH2kgpE~N05+Htkm%gYPA%Z_>!mf2C)whqzKH9`})JTk|bjuo|wHnvk-|1
zv@?|k_#nA79Kr@uR^lPKEMSD?7Ykk~45!@s77CyF-T44FE>QD_%3!}B-yXTGT9i)0
z=9>SSb{TmOY!!up0U=UYXx3g$zAJuVIE7ts_rO>F&P2+Xf*yoThUq!Q`-vRRzJ;!R
zUp8l!aM$RJ!I}It{LwbRf;TAW%$n6rr*#4O$%U-k+FWGSseq0=<xc71S%41f%|h|(
zLY<J)NYleRMCLWFb2TqtXVQ@|^G^eLfsP9xL|$JMJE4%Dc9aQvX86w|A`fG<?=nnB
z*&m6|@gzb(xvN9!(rTg~xm9Wlp%#ZkSWG`q7~9WQo!-0c#1wT<Mx&DA!k3vQM9;5e
z3>*=@CWpVJdf{$IT8WNe#<viO3DAPVMkIaNE{|+a@KLc{a8ozC4&Lo7l;M>;QE)(i
zOU9MlOEhaD^F*L4tl?o*>3&ZPHbOsDjhh(UaozfhVJ}z;;XpsQf_>4L@~3UmJHYXW
zK17i($})E5DU!kbgMV98V0qAF%i%tAK3b2;6NXz$(W|woEec(Yq>a%t+hT_>VbqTM
zgF}KOOWftgT@-0iuF^QjnSay=SlNX0QxGUdOXL@gF&C&b8<i)c4sV<LcHMe*%(bID
z1!X6HI+^GKgWQ+Ix71F*>b%F{(R5LUXztt^1g?%ovom-&40&uRa`xB}`ZE%J<MBOv
zg^Yc~1=l_$pMgA(8#q3Q!9m`2Z&kY_1bDeGPc=HMwyv~^q!>JSs4LX&Yv+OZoU65D
zBtlm1I~x}E=54AnBysws`}H{?J<5BiATpHeJX|r}+N8xd$V}@RPs=;ipJ|-+mfcJ>
zIIb#pknnu&eIv3cG6sgEugK3z%;L&j+c&m$TH&oj*W=!ibWu&*Gi#u6<@&JQzzxB$
zH{V4h(^v5N6JF~Zd3xfP$BQzYnwV>`^3Rxg<4JfYg$_Znx=~slIHL!h2SWppAwi@M
zm5IqTY5EIs@cblhB$M>m<pc>`zEJGxbR2G2ryK2~8ko$7`xeryz<!%#(eFdzB+0_O
zXWV{1!1W`Y&kYdJ+OcZXz}d_@&f6`OF~DK{uBQ_zj*->NSBj(ORGg6U<`_8IMhZi4
zOAv=f<T12vFZ3tkEu4z#AaGF_opzf*MAv-T6KsJV>yF@0fYj5@9R?w%M>$$|!gDaa
zv%s|B)$ElSH(1Y40R3dOEr6no53gOpzn$^&rVpODJeTpRn7aZp(0>{h4HUmYx9#p7
zqDy>@yl?0)IqhsR5}Im)gviwu%6%>g%{*pEaIg!r!#z;djo8D6Z{_L^YD6;3J6Vw?
z88D&ix&l7cl4H1~>U-t`L^OM8ONfw)*@<94T4%Bg>;xYE0S}hsO4?xiE#XKd6wr^S
zg^i5Sa3u?kQB@D%%lAFg{X&;UXzAsN-w28~?;gQkRcD9erGV`jFWrNB!>Tv{n`v#^
z(ZdrYP)gn1LP2$<mCi>z{$f>C5Sq~X6M(dIsNHeR%^J=HLpW<V&ziNAy759B^p2zq
z(>c*wsC0~0UCQkP@%!V+B^@ls3+g-voQ}7o2t~m0L6mi$U6*G@7^}i1R!0MB^z<6l
zB7v2mcG`$e=3*kQq?anQ;XN&e#Y~&<b9`NjKEpwPTun6TzT8wr%yXzyUHal0O76%(
z(Xi-8E?{iww#>DPwgoI{Ou@ahcYSZwl?LqD)Gj&DUqu95S*mQYH;)D05)^EPlkFrF
zV}6AqUYO_MW8c^=tm9Zbx%Fl2n}wOywACA+K^IjfF0^H-Az0OYvdIkoZxa0oiIhTh
z##t<m(0Z%0rQaYz#PHjmcgK}%Mjh^sVd{~X-z3=F2SoI5`q2BLAd?Ova~N4CU_59X
zZJ=XfBq1G}Pi+QA&bqkl?=F^*wUzgTbY{hqi`jHrK5O8y<uwP=jOi=hCTI~_sOT5Q
zH*&I^!O+S<lB8{k5Iy^f6ufD7b=sS(-RMKdIVyY4#m3Y5yA@c~i0*^@U{HGFgs`#{
za@SSod5cQE6MzXIj~07_rRpP|@;zJv9r98isak4~vn9#k7Uza+zRzfz9&pe*38j^b
zws>#LoLKiahP_V#*n=&x8w0IL)VfSWfWXFapl~<{?XLW4x$}3$p(gak2dwfW2?ots
zL}5QuY)vQGyBob#ITe`^Q;;ybn-1MC(w%4yNR_vUa(XXn+mMVb6u3C&B0hIM?;C<2
z5TlFzqsXM`UryOjQSpbR7`@cc_KIz5-04puQZff`-B?Cm%rO`Q5G{wfYH5ktQcCvi
z2)FVwzeU$TlhMXnzG3ky!Nx2xAusz#BO3zu6&4E&Tct;Ah{ot-td&Qk;Yr2>N}ZE0
zPYObvjQOhH#HaVCUDv5hSDZ<t*TfTjc0G`Q{cP`_gyyZXqz?p^S@BuzHGGC0<<Wfn
zB{hL-#R=WBrGR7ySZ5hbS5fY@eZ@~%WtSN@@pLCn6?1;){1al<QYNjMcj6ozHbTGg
z$(#k)Y}+^OPq^Dn{i=c*4Ava$dU)UpUd96|Rf#poRmH+9qx{9$oQuFug<RZIDnmC7
zhb2?7&N+Y7_wFrF>Lop?rRM$d(#({zJ*yqueMH;{KQG;LQ-WBqd@n_B>soI3Pe5N-
zX$E$&SCKVu<{(s7d+3K0du1=)NhVV$WsIj8Q!#Q0pz_sYt3gqL347Z`_A)(rkMVi5
zF3A#WJ(&fA;nm;|aeR(CNalhFEM9B37Pb}Bpj&;bLNBhdM;800Y=va{ak+Eb!aJ66
z7Iurt!2t0F*GO|MMld{^k`}NCzQ*Aq?$u|B7jiMQYz2Nwvv|$2ZE*)VQ9fV0^1957
z;)P@EO1K{BV;Xnl!J}H@C;B5TYoKwFv-ymVWH{94J<#~jeP8@RyS(eudfl{$6vl|Z
z&rN9#GH=~vp+23ef4Ed4DT%1*Q1zt^Il?<_OMszgehoIE9oW)-4Ggy$cT6Pz7Yh(l
zJ*l4nwz~2|c3`DvHfoI6dXN_wLK))`esy^Fz}lad*IM`w*miZYdICRw^`LiENCAFi
zK<SX)AAhII65;{ET?7XW4tW$MKtt~!EVS>bZjkoGVqEj}z&v>UgM1)LH9?#l`8XrN
zm#ZyS^^hx}Uy65zXE)k_#@rP%JHJHqlArd#0CP8{k2T2AKY7guMUoRd60U-GWV}$k
zoIvYdilN?PFZEzw+2$vp=>}Kmhbo(vr*X4Ft0$?Zxt>9hG`Yl}!P;rV_T}b!>eork
z;hdL`U_t5?%#j32AO~W2{y(6aC;Pe#*s}{vgGbGCLt0G{6oQA@WCWViyi|FZY1(D@
zf)!E~!bt;6Xb2&+F)~%iOQ7cNJT;kKCc>dLBT}s`-caJKikUNO@2hXKXaXEGw{ooC
zPE{PJXQ4)9ek6@Zpez<Y)Oey}5x1dr=l}qnOBpl)Y_$qJATh_;8KBT`kUfff_yW^z
zK(<};`Wkrz!h}CW9b~?FIbw%K?an$SY{XdJtuCHMFy6aHiN^nazIa@r+g|E^JOcZN
zsq&PH>kr+zB$NKnnDmNXW3|FypmkAY^K4zy?XlIu?UjTtY@~WL%_1Bp^A6$Omp-!i
z_e<!c(CVV*?9k!j6y!(tRRIRvF22{l9i$66n`jQ$*W}C&I~FxED^6=I)4yrm`)P&A
zi=y7ySgf~MNPWmSsWzfVI&{wD)qG6nrb@EyzV7#jTJ&mq6!uOhk~Mfq;c|xQRSf;7
zv@Tm*RiH9&Nab^H!5{k58`oIaD~%QU^Y|P=8P=)sJD@OMi)(IrN3)yn4EI%O@zHwu
z+&-kIIW=LqhSUQcvEO)2NekLRujY35BzBWyJmy!B>17>fC?}z^A}B8S2_V7d@>Uld
z90?WJ3z1n2l1B3ZP4_nhYRp5G*RV6>CDhq~LQhS%9^-^#B0O>6HX}$G1fy_id6%;2
zQ8D?7{V*gjm29@zovU{RP36Dc*!LGUYDzJF1kyQ`HbUEpSsw<bktNkH0`>!`%*vOG
zI&PRVL7kvlr!ec;T?{YEK&N8CU(c%8HFlc-Y!EvdowTZw&}${Kt6-L-<kGU=>YUq5
zM8)hX6njj_ID!Sna<nR8p0Q?CN#~3UzMYe$EJh>+Y4>CG9=VtPNWy%1ug^LDk=lM^
za953JT~rgnsyD3HD62K9d_yNwok|Qh{aq3dJdz}Hi)+=n3hVlu1w0H1l|Rl@(M0#E
z&MFU0EMyVllA{ja7jYaE%B3e|l;*f;5Ji&7Yo?mq;|^%po5XC?v?-xS{bU1~k_Tvh
z<SF4hOM$ya+*)n$^*X-TS2WM$w`!no9B+xQ&!|3>C%Zm!Hr*@3yvC-wM11{KGUt(Y
z-p~e<K!=$`mQ7P@!Ro72P$JX20~K&9nSM+!C4q#HNYr`$gD<+%XSW}B4l0;nFiYc2
zn9hL=KFNlDq05zA6PgxkNAYU&u8461<!bk+?{Gze{>n-bY=bPcjek<nJd*#8wnjoy
zCU7|{6q8+b|J_f($}g`<Pp-?x(F-Z}1Z0D>D6219qkt9^Ow3w_Ik4Hgt>a3XN*3Sg
zv5fmvX{O26!M6KjoO^_}M=O_nTXB7My^%8GCpYS#-tMHpsx@4&KnwH25M{+jCU^Zb
z4(dkkHTyL+U#(we)>S)Zg*(llj{Il7j54p;A^RN<ILM7v4~HWE6ZD*jl?HP(;`+FX
zvu?A}J<nWvQ!>?k&)_Af9~|7kR+dR<ocl-B&XaLWFoT5G!h6&Fvu?b!#*4I_DIk;1
z`D0XVJkfn}6d7*(bAz-BoK){(#jWWPFR9k8-8>+O-S|!tv3cUbmX>Zk7hKOy_&M2d
zx%8#?4^XsrqZM9@i~7<xc<Sd@RQBMiU1wulINwf<MzM$(nVM*Up(8_1GC?OCFblr#
z<wRnJ^ifGhvz{V2j<2h=9x5Vz;UKQuD)ascmFRlH57V)bO)Tphia}i#cMrD;(tGC*
zUbg1>0j8`JI*T%S7L<zWZosXt{!sGqj6^On_eJzb`84$mxj3gB0>HkSlT@f<LuJjR
z?m0)#uSAD>w2(&H+l%+PnA3y>+sP`#@8d5uQxV+3&b}7@1Prz3b{lcQO?hfk6}6EX
z#Y1tCWkT^Xec8K8xYGeM{J{!}5EK|_p3Om_#sw%vm_|{v9F9^(B$hZ3Y6seLn*_I+
zxXtzK6{$rAv>#6y(CO{S*EV$-P9gfimeVec-QACs^h?8Xd(g8*)atYmSz=A_8yg;!
zcYzh(ZyUdYEb%zpRSqB<lf7|Wz>E~i+%i%v(zP8+)=tVea_4QJc`1^Dwkny)9LmW7
ztu5^aKMM(e&bT&b_rvPo{^Ul4!P+eU8PzH^O>#vIR<X=tvB2}lpBt3$Y$@AT5w>kO
zZsiZfP)#~U3oyKQwy3oP2VIl^NA|qb_f(h&+@8-{*`2jxr-{tB4V!X&k0Jvw%TmYi
znwPg_AyDL<xzhfgjhFE1a?{jbD0v;V-kERVek~oN{;-+8hEQ*4K1Fvf=bR>BRxX38
zm#6jt`*9Ig6*CJfmGrjw2>Ybl!(^?%1Vu_U;Y1xggfL*dHxR#hmY^Kc_omPp9ATdC
z{v=or_oCf}uEy?oZRv9%1ODf)eo?`uDQ@YYupGEaKS0)**+q}|vYt2>zfi-6C$h<r
zpdg0yl)ai|*_2;N65YEJyP#y8*cYV=_vIF2;Ia~y&6^5w6msu3d~J$l@8c`nf=JE$
zgkk<8G2@Y93(t<$iBj=vd+O4)Fu#}|VJc0R9^0v~@EUS@?8{Q6#Fz~aEIb?)FoWus
zmGQQaZ&gK6d?8k&t|I_VNX)NEO3_@{K<~R3;h3pF7e&nmfrV2UeG}uE*6j`oC2NM@
zN43S&mf|cf3j>M3><DxWHx7ORWOedR@f=+t#c(pZ2(7kidirwE>5=a{-C%*sCovVw
z>tXz|dJ*19)27I$RI~JiuBKt}d4_xC@;%A@F@E!O#X~$DYB_PK$q2HMtdWrsOae{#
z{l5bOoj$ngxw1TD-OM~=Tom6C1GS3Mp`?b3Z!r6LDbPO8=WDL{c{N%bF72L|3+=wu
zVZ8UAOzd!#J*GOC)@vN8l(7#AWqR$%1!h2zbA$>RJlw#yEpZb+O(!SxF$!fLpP&!5
zdWm%g?;}~|vVed9l@}$bZF5v^9RwRDt(&C6JU&2RIlIq~U&H5fcw~`ys6f4C`U=W>
ziD^(D8y)W6y@F%6m8$_FL&CSOY(q!C<3Cz@7;q1iJ~I!2DcOGLes!q@u_={bE6<ZB
zboy;=g5^;b3pDF;nKJmccWH?ynHWk^*a65WY&r57gW)}^nBhWWu)$5jw3@Q`=StZ%
zUeK#{{AwcdCGhX9jP+?P(p~8>ItzosKSsY+ir9cC`YCv4?dCUw;fIy5iWgee&wJVK
zd~HD1S3i^LE^LJEzd&;9?f;xdgic>bzOI_n<ayS%7G_OB*4pSKv)@FTM^L)uJJ2AT
zz0LScRX<^I%4cg;M~)Z=Y)5c_feGj@CZTxG*P~gV9W#6eAH9(M?P+_c^2?L`$#S}|
zw*}fDR=V<O^EHzYzHx52;RPUYqbVPoJ#>1GI4$p>ncbcV4fhE^DjhdnD`K{0Z@EN5
zW8tg_%U{my$O7zWn7pKMli_RC9js3CgMmF?eqZz4S7RxOuPA0pjMj?ivA&7(;#JJ=
zESC%fS>29WTm+9S2UiWPi2fq6*U6oIZGPk6mjHAr)#%(8Ih#Anarp`8E@JW{x-F9r
z(uz<CWqNT4SMNs)M7C>z^aJfOyftJ}9?{7T;V23}QsV9R>xim7;k3|FMhFl+bNFH9
zC(m9v*B_$4LVUV6TQhJElz&SZ!9ja1kazz1WqOEmRh4u?jiu~#guL^zLxdy>!*msz
zCf}F0+6(No*_H1&^=UBeQu|Cg$-L1v=9za8zR8?XBXjStj~-IM#8tr$W(OxEMX8D(
zQlNGskJ_mh5WTd(%PCbE={4zh7do4u5Ri9xx?oSjl%<~r1D6+>e$g#TFyEIa`P3kO
z&YpaO2y|)yydiD7CH8k#hyq0Q(fTu}2(jRRBbAd2(gY~HJJrUHM`k*Y;>`}@Kq&r0
z5WMKp1Syn=I89W`FV7q-X<=s|=YnBPvI!sD^x_-VBJGrwtjbu|w4$?jtat*XAQ*@9
z#s&Uxr-qO2)v$-b0tCE|9xEkl5(zOz`oJdY=~=@k`*uZ8T20?ueLpXMb{EH2RQRU8
znv%8M^!`<V>loa+$cvhZuOl<ju=o=3P<aoOOrb;oz#F+(s3(gU=5BL1G+YBln&u?T
z&ElmK0H8-#o9x{PT(-*lq134qbBlqL8rUN^W|g(C+C&Nq?FBN%WK}T<F&OG@E==un
ztoTgL_@Lmk4z$}_jWBKPLVJcAzMrok7MiUaEYG>&6!@5kQRJnC&6wrWdr!5D7t)f6
zAHUeE&d$(^FF9?_7ns+69M9!cOE6jA=tkf4QUydsqd~CZ7j-*4xKw!XEQZXC>%;o#
zI=gAD-XMcOOJ<y<y#H3tPnC%!l~crwjCeJ4TB8#ew5G_CnFX>ZHt{!EI=Wj#QQABg
z>j?@D3H4>f7Nptx3#q>ERbQrzY9%C(m}l2`@$yhoU!cFeu=NTQSQ@)d2&b{k`CBZ|
z=1bYtvi96zN{E3AI16|^jAW$3LqfNr2exIryuMQz@71AV%pO?q>|enL*%c^#&oEJ5
zb1n)10hp;sM3UMh#~iDRwiXiBp$n4*DwgbVc7vFs$tmUhvi#~uK{X8Fbt2|qD%-s@
z1=pjjg#DSg(_G&bZPa5{kNLTS@{Xa|5^&G-8k8fY_yOqg@be&y^cEcST?&REhQ5XD
zcqf4?kvc>d7b~v0&w5Ml8B0-EWynVN2Dg4|1W0a6tv5v1CMMnU02lYPMQfb7uMqSh
z1Nv6YS{KZDryutOhAH<qx;NzWGjj$G*nNAA<i%+mU<!Bw_MdCW0vsTSKf3pHth$$n
zXg*ZDc85U^w_wm+%OeDx2`Y@0mWIHAkGS0VUYUZioHFw-WM}427Tbcw@oThvb43~`
zlq}_}>)H_)fS+A*oH62;nIn-!4tFOLm5m2?U4r<594$A=9<Mia{ikT2lf-l7rd#t|
z_Un_*k|!MC{qC$iCrERS566;xGcexCqW_JmLHn4XGfUra|Ij;@L)hzSawGLRQ(@<p
z$*s8cE+~1H8|>KCiZ~Yi)xMMibLeX(q0oi<5+awI1KEVNR3wOd$HjRK9P}4we5-yr
zZ#j+2KBYd?MORjVj4&30sl+}M@?3?x^hMR_Oqbdv8l{;w_xEQje&kJ@*1ciQS=`q*
zVkIQQm-C7m$nW}V#h`3wd)@0NbYizh)lEdMFa+hxX`A$`o1wH!HX00u=H7768%)wG
zyK5==m9=xPg7<QmtfNNavoy{Uz?wf1CbD^ch&Y)N2Kk2nxv>OK?*>;MQFh=vN78st
zELCvlk7LH1Km3uqS}CTF0w(hit|8n#r+M5yO>f#Pj^)QaWaurOq3MS`%Ozdm^ye<D
zPJilr>E#OefF@xtbrgqj`#yoTPJ9rbFG5$iE&Y=eC+aDQ?`20_nyL}DV9JS|I&`|Y
z$8Ys2oL3@+?@BTo#2M<3+tW`bXEsb>60$*WTUD@$!SY_;s<m!X=D5oDp;cnCxh%oJ
zX6aEmBif(R{fQJ2<TTM#z*wsCcN)Y$4B7`Ceyfa%Xp*_vsC&}YB8^c(PotOV;}6I`
zGLh`0(%x=cq=t@5<Bl<3>hIFtpgmnt9Vf+7ClGa6;b4h8AT3P-8pis!R6W|VKk(-J
zm}jsvAwnHIF^b56dt}nWTD*J$2CfwNU+DN&_$L9Fu#!Wdo$%&SLv~mBgDt3&oNSiF
zU<|d95$_v7`@iO%6vye3Vkc*;bCyN@1YDjUpdWO%C85E^bmMYo=y^*%{seppfIg|Y
z8DNlgmk!1BhCisS*$T^n#liF&id&sqav6vLc6L<;NVK$=o}!PDOMEA}u7Mr{wm5fb
z3jNbH7FEWwa3zf@((4;Ay)DW$${Sl_&Z!Zba5d;a8QZ=h-WPGb@iWIr+ff8Z-?V+^
zV1g4i?WLmhf#w7Gj{dBP(D9im-NZ#O9D0bYk8V-5UBZ7AWliH0#!Z%-t`}OM5mm1F
zox#U4(O@2Ee#X)K1RTRl+k2{PVQp|*QRoC*I4aBX4q7^O;KVYV#6jX2op`2&9LqT?
z+%lLqm!UAl1j_oYskae^Rq@^Drn_0Bf<P_bOEu+_>xG%8-N#f4vm5hJ418WNKy{W^
zbgAp=!-=`f-xW+Qh{o^IiqT@YS<1}cTsz22K=f2Hna|(o15+qHlO-FzobzI5^JYB{
ztQGEwX~E!dgwcOXummMbn<=d)DVMD8fonPN*LHG$r5zPTYS}RDmW5>K+|wy}ZVsm%
z{Rz1G9bh?i!$2=DwIk9c&_2TEn-vG<2VL!a?KiJA0lGq{5t(6GkuEdS+nS^ZtSRTJ
zJhLTu5^&%hd%tXp9BtW;=tFtx=i%2%cud;X^9-k8z_olz^)A3OHvX~pz_fNdJJhNc
zao?e5#z#uSp=ns?I3cW0#~(<i;MmRFcvNZ21lME6!oR3p*AW{LbESHsj3?+lEzI-(
zhsUI@aX8%aMRkS8UmoRbD_?(1AXuNuzDr)febE~GM7P(0acvOsSl#Enu-$HRX~3S8
z#&Bu4lPFQKQOvG&aKZRhrU<{euw}YfN5s$KyE+^@y0P>r$3sVkpczWIMU41Y(hM^{
z;_>R&n6G^%CWoFPP8#C1(G~p1m%hKwV$mjMaxh7^c3GspbvvLPKQqTVH;8;Jok>|=
zpm&PjRVLD{^f4Lxzj6r4-<Pzoz?)r>Y|kS#0%7p7u>EFp>B~Nq*M*Q}feS2QcqbQQ
z%71)JX!EZQtCL`Vy84W#f&b&9;f{BjBO;CTQ|2)c<i=3ojx)QuC8||%jm1=kOrC4J
z^M~_k8=jSi4551!4;vhwym3(#+J-ym@vWIJ$+xi_|NkEB`%zBV#QQhD!1L+hlhr{d
zNH`g9TqMDknO(N*@7XpfHhgo<Mefm1aB&wmb}r{j>$;YGH7C`u;QulW9jWviw$>U_
zO-K~;pO1WYfJx-P=>v4B6ArEF>wkkG28JjHB1i6NtQu-&`M(1Fzr@G?_?K3UAuK9(
zms-L>A4al2G3|9=T?1+N?{vZuL;~U_$<tVJomW;k))@HRaqJ(z0cromU<@)#e<Q=i
zZ&xkp?ko>jg+CR(=Q&mSQ4mOFzqli8=c}WtMVV+G_o!m)@xOgh>koDDdG-Wzf7};1
znS7C=Rj}3KT-rbuwyCn_EqJWL!?=X1DKa}2-t%%cB&sn9`Y3LNR`f7-e|+P|^FLVJ
zGTB$!FlEBs^B4Cs?M3n2t3$QO={R7^+*!)3FUByQ7va<>lfY}IWu_LJGWhL#AN0#m
z>#XpqM^j}DwX{?lH50#I$)-KM`4o+q!QR({Kcb@Iofh5thxp)dj?lKkoxB*0qG2nV
z-V^!Y{QI$QR=17xCc5~zJxxOL{|!yn8;i&CvRzj<OcMUYh?{MHmq|s$etMXNT`8ys
zey6%6I{zTE%9%>LY#Wzj;Fr@1@5*izf7GtEk+)P9`op{PHduQYnj={Eiv9hZ-xn4Q
zcI|Py<c3n=CHyAUU-!V>Q7h7kb$$m#+8l5lcQ1p>LNzKB#+8N)?ePDOP~z!J2*Hop
z^Rud@glPT`<^R<5r$iZRRfvp^|4N#Fkcl`wu(F>1M(5Mexq<fe|HVVPJWU6Vio;T@
z#Fpq6;R9LY4}Q|}7Rr!a&*zStaD_twvzCdnd>&}~f2j=^)K}h-{k1myOLh6j33;Wu
zY=8wH5O`>8raoTM#AXF(2409M=hgr4`v39M@*SE7lh?O~t4uHcR9JsPl=h=9J8;Vi
z!!<Ab!%EP0fALUl4;9z;6{KIVE*gi=YMFFERJN<W$ooOe{OeLHROZGHkGbk{I76Or
z5At?cUtNn-lb}SI=54MFI3AfYUQ)+C$?bJeTpJ`jRu6eE{Am9dKa}7*%aSo-{PpRz
zc9DC9t|*k(F&`qpgf?*3KRwJ}-}g7=v~zray{z0nkG2=`w()r0kwfn5x)x3g<3sd_
zyUrb&6m#o}d4hwQxt89Qi5qKb5H5m1fO}5<e)BTdS|}EQbD(x5^n1EoV>%o^R^eEt
zJ<+)%z@t9dcpN@fD4AR<z7Ao28828aIhEFh!M}H}+%MTHHXnS>P<@9s1n)}N@Yj?7
z3n2V&q4RHl*l)M=jlP!YhJ^dRvWew;C<5nK=G5Fge?4=pJE1gYFCfGLe98IiDxwV9
z1!!%Wv2-frGC{7fPk8?dDWB=bZSDVoheY;!K^uH3s<BVHdmRk_7KOhixz%p9N#7|6
z+4`)SP0FU)70cV3kgVlnPeA=HY`B0HjCY+^^Kv>$&3Oh0)L#G$l7MpGOLkkS;=<e9
z>b2g8zBUN?-&4uIg~Pw3tG~FyiprV$ll28V6hPl<yoZOo%=y=(nm*@b=;npJ|JXcT
z(K{YnTK)IGV$ga3{HOIOT#G{OU$jQ7OoHNEsaUk`5NKXOzsB(UokEaH;7QQdb3jc+
zJW%d5|HOmXG$nl)&zaVLn`TMlN6`z%^7?Lx^X~so$m72~@83N`+NcX*PtlWh!}B-M
z{|yxD|M)kqm<&!(%R{vt-=B2?tmU8R>z~MNG6E5EskP3fG|93hw(=JX{q1h*A<#3|
zGNBBabY8B1As3W`B<(>Kv>N^-;puHaR%6s<>GZqZOx9~{P;xQp1y@G&q3=w>diht^
zD*Mkn@+t9QCMm9%r9{9Y4X*>>Lx0NyO9}_<UQF!6HQ~HY)YZpdtRYH|dKnN@@JR{h
zqmngG&~RBwKW~_~ia)8LO@D%|7T9}^dm{E$<Uv4u@Lp8_8A^ivh;wiGd!#Y44C=@<
zo*#b`IvqCm?Dr%^r0i;epv>7rr}KYGqC({6=lQxHj|!p>=}AHZkAHGp#e~_lcFf3L
zthV-*YZHDsy1XAe!9p(EjrZSf2$W())67xzkuj;cfGmvL|K*QkYhMExmmw-%{03K*
zaFsub?8khcU#A;pY9NTwc2jv?WbZ@gb*Q@`yZ)pxn1P0XYTjoxI-J|BAUADCGYI@v
z^M1NYu|UOn{THDFv1<vk+xG)>fR4XZ7(CaY?JuzM@5K0Du-m^7{Qq<XzxF;N*r%t4
zY!(FWf2}9}>GVG|3$TF)2d_Vv`JKyuA=E$L>=)q`kj3LU?JKJ!gfhGSi_8BVL;TOa
zY6;Dwpk;i}7kbz7i@cWFOc9U&MMnRfhuG(dSVGan4-G>92c)5rss$eW%>RKl{tGZ!
zLr@1{!Ynw>CkB<_3nfE_(4VJ0=8F7?>SXjf{-1lyUs20H85Sen)8>gGpnCW2C1hwN
zE!h78wBl(y=Q=q*0fVyMg}cC7!=}8?CmwU*Ilpxz`-ukiZ1R9-`X~Sz&!T+!zYtK_
zGOP!@r}_sou}I_EuOLyY&$H_Pb!Z~N-EEitV^jc0(eMXq`*Hy_$QWZ)ADnG6^_KS*
zI9nPp$SO@L*Y#;JwfyF3oULDmK#EEmQAU|Asy@J(&2M<b@<v1i1P65CAF(GY?zJA=
z0WY@3d1o|RKUE-riLr_J{%CJL^NVdSn2R(OxO&8YG{Rx>Ga!2b^0R9&ibb;v-F1C`
zo6@XsNw6J!w00+7aZdsV_8)Jhv5X=`nV+8@+zUQj{B0B@O3&y#X_5w+?ZGLkQR44|
zvwX|0j44A!!P2&%FUE_qn2a=vOS8B*Mw;Ggx}{;PtjwmS<@7O)n$zE(R66Sm{XfI(
zzryeDpW#%Ex_BmNp^0nt*5X>>3Y3WwDo$cM3%1IBjeKYs(^Z1v>_+uw?#JA;Yl?#g
zY!TDioBHJxo<U2~e!qY-?IE-^nps2UIg*RX$wBtiR3T<M4B$W~J6w*ctD^l+hj#)6
z;-6@n30Flc<c3%%LW0xmVy4dP>)m&${S%!)+$tPMgY^C=8N=+2I7d+&lN64}7f=6%
zH9Hj{f5`*fzr#zy03y(@4@e5iu;>JrP#?>P<I297owC=^ky<)W;3jnDo9GgrI$MGn
zlH0*}tLiL^Nf_S$CY-4e3dF$e+2$-!u>sG$SyNfCF0^%8amV*wARogVpg&u>B6%KY
ztyO&h-_Q}Y1qn1h^H#kk7wI$S>mLJ!kcZy^D>@KIiT^bzHgJ5$k9pLQ{DYR#34ruy
z;B-_+j4h>f(7-7X4hz2dcb-bY@+iY=f#&%~X}9Y}sA&VY9tb(=1|k%Az11kspkwo0
zV79{FhxBul6tfF%4ENAn>ttZIwCpW{<~TLs9LKK##d{q8t#}QDeR|cp{VBE-Cj$9s
zvu;Nmw9uK>N|IjJatt>ez!sJ~mdoO>%`=m|g@tXArJDgHzW-!oIRH~s{|TcsIv>?0
zN-3{Wfvoli->HUx@Xl~2F(E@O|0lQnbxu95dLoPovZE7%L?i&rQ4#wW<Nk3s#W5-@
zjL@1xMO({%NzGdHy1V}n1ONO9Scw_-kb8HQ3raB?t$eB4Vv-8ty)ee+xc#3^ED6Ir
zK#(YiXF=z;Bmqtcet<-A{cuwiH-bC2&m}eG3C|3<lR1B>ffes?vnVkh$~YcG*<qiM
zWcc^|@wG{N<bAS_7^PRc<q6(z{7SqXb|``{gqTl)>wgO+{O}X-8K$Pc=(SR9^FwpY
z*iXPuK=_vC8<E>piGPhDoAEj=`+!echfhr@_4%c9*fk$#8u{mER+ogr8>bJSrIO9q
zY8y74LzG~6v@ni=@oS`rVz#oeg4!>~V9|M*nf6=7N433)mNB(Rw5;$vp1{1_$*<K3
zsI6<3Jd?Qq0BHhGv>^yt!g~sZpMXpz>t<%h7KkzGv|({)J-0yw<6OkV#`$~#0qpQZ
z<wfJ;%r&EyHPv%q%M+AHIWo)2!+V96v(n&Xv4~*Tn9L*Q?|F?fgr0MCHHa@nR{Ls^
z%=$A|r*-hpBK7CXwOkzXDOTbwG&YIdUpvrTQrlQX0)fRM3Din{!AoU^<xheWvVFkZ
zfgP-Z6oCk=juPJb$O7zu*GXrW@*87pMa9>QFyh<3I}~b_d;R?e(x_Vy!~vgLPY-TT
zSAp2=ug8q3{_IILX1q;ar=ZwGt9LY;MO;Sbdcq?0AX{MFTCFu=<~x!0l{cd(CY^#U
zAHXm0XCshPQRUW(A;ySHT542TCa3Q*vMXS#Ol?tq0?>W}(D$e?lz7h!+-*fLNVnjZ
z(C`ySH-u49>UdS5jYs#+TugTxY57H0H_$4-2-KtEk7{)&6a~6+0|+e9Es#9=Lt@_1
zaLg3MqmBCk0GPE$jz$yyp7P3tLhpQOK#~|pFEWBbr&j$=)OU!_l6Q)}sBj|Bijg#N
z8TiW7vp|vQd>aXx@REb;rxZesogO5Ex4{qMtrWD3P^ueomSb^-S&(&X7`A82{-SKQ
zE)g^Jbs?9|kKrZGS%nO}1nI?YxVmuWS;i2&YO{p9OpxZf2^La!#dOR><a4sjAg-Iz
zOEPmQU9M$X8_B}M*IDuBSZ-^y*vIx?RUtTeX*G>oNFKR7IaXL}Wp6WjX&36Bg)JhK
zGBl$nUbF%NbPPi<KZShCI(k9J#sPy!;ena2B*)^`KXG;o;=;)4^HA`b@@wnA8ITr0
zds3Ff9$7t9F(#4oAo#KSD|_{&HbN|#S>6}0FAQQh^4JHZhO3XjhoX@6A?iRK=#k#O
z16eZKF4|T!^itkeg`Sy?2DRQEU{!Q6`AF`D4M4#kAo7%;Zhz==Cdp5acdA@<U!pr8
zz*R>x8&`7hoZU!$!?kN*rjd=qw+vqv7CTk&qz)G$9wO?MPXvh)=!(D>vkppJxWN?+
z^?;5lY&{yFop2>Zr5->&)>^RKR=UPm3I2!<ZDtXb=Jma?i~ttOdp#d|#npKD`X=<s
zqAxYnNvG0U=8}){GUtWexU?wUMB)KYGxcgX3&BMUac!1WDGxkc9N`!ON229a77WcV
zz)QWjS1dWlLLu1y+b;Uxx4w+#O#1VD#9e&H`}`okkHB1S+HF556)Iz%%^p3U0}#{9
zO%B1>`srHVUFY<a@old;XsF^Xn~&w+DXCEQ)^knC$B8!&VtIQWHvOdfyb+U`*kCrn
zjz6s)m~P62`7gaG2f}_LCA<-b21Uqqc8>uF%*LfKY-=qkV|G-=U33rv`vJSti=Lr3
zXs5D1a(=a=!)16z05Ak2_)+wReh8#ZI@F5^0`}<_In)s|>yJXi#DHhx^we^C25!7&
zf`n{p9)k%lNS0{2Iz2c;JV3D*B*MsN>-xgo{7Hi~U||3%nU&i>K}j4}(=}`Vc*;Ud
zV!iQL<)v`9bni}omob^=%<b}+;D~umhOIr+Tiin`R{opzH~gD&h)?gvO2z;HVtPn*
zU^#&xHCt!OLxrQ($Dtg#*$HzF9R8!HrZ=q5Lk)hx-|Kg*^86y=^DjfZ2R){N`PFW}
zY8;neA5vxCh(BE|dkw_c`M2eoW(MGGVDLg4b2o4a+1EDU(1CM90gFM0Yzm=3tzR~&
zP`8~JUW}5MUx0;`3g~frO1~N5v77pxu<W69CYFV#_blxYT+njX6*|F*_t!me(ni2|
zGJc)+L7tkoO8MOnvAVMXS2<wX2udxEq_CVU8DEx>v=i}7v$7^0=FS*9Z(L>IazQ2d
zti*b&LL#7~-9BG;QXd@v+I8Q*)QHyt0!$senXRBfj9V|H@BsGr0G3qIfG}c}mSwi*
zMUEw=-dfu5JmheY)_&T|XiQw|laMD*Y<=}F#Azy)(Zj)&K|%Cb_Yx-!gSQhHJXG5r
z_ks4xz8lIV(Uk#pcdY=nCE#FJbXJ9MD0Ae~PLxNqIV+W*kBB<sG7=VUNTK(oFDGnE
z<ZO1Nl2DRuJ3o9vAPCr-<!UxW)4F%KC1(fW$U4?SSI<G13T4`ZW(Hi64N1>aBS8DD
z^rBN)(G4(ipykHOdGZk&R;F!ko<}5Rp^pJ8kh(BwVAzH!&Iqb7DC^y31woTZw~OzT
zTJ?|z^3BPG*WACWSofqL(R<HbocI&r*}^jlD}A5YR<ZDbj>11QG(^d*bBjp+k=xo$
z#D}+|T0cj52Z8nnTl{cUfajif0<|hkhCdfn`ZC;SK`;RNUcJ_ub8=$|UxyM{bf+E=
zlhYePpI8+7U43yC&BMZK1uHkMSvT_B`e}hkf4j<O)0McDwr^RIlZIWxCqG^l6G|Cu
z-6n`hl>xS)W_$;$LL=daipWRjFJIjziP;4+jU1_;iFCAr^+jAKu~t=x{nT>RNFqMt
z5YRDplezC&yrjGD*I}@(?ZN^T$CPm~cFgJb)L>F|=(zA`9uv^2iWbhphIg<exVm3y
zycTfNm--#m1XJG{wH&#hTYXu?k{#^a$SOtg^0J`~2skmN;p9KlPY4O`XYy8}QG9dR
z(DrrYJ>4b2;Z`H5hrB+SU5)%MKdyd8{pv|^NTT)rFtg&pZCBfqZCKKKi)Y&04yaPa
zH;ND`Ur-|{f!&^er-zO{b}GDyRDRTS{RAuJ)q&O!LsvvKj1yaDYoAdA4KiUTfhIPV
zmf%*x$S%tq*(TNlTp6E~G)Zk|-q)^H+D_HGq!k@aPWs&Y6TtN=QIxxq)>349>775n
zzxDylm}ReFGbodBrnEF^;%u<Hy)poR0+Nz!?~)EJrIO!+h`jpQO-xXO6KF_C2V<JV
zyYna;B8z*<bD8P3B9ZuAS`^6+(Gcjm!A<8sTZD3Rfh}7ak(+kf@_;Q&2@(5Q#Twxs
zIgkVMJ&%%ke?a{zGk#=Yv3K=Gy($Iq6L~e_+vJP;m<!Xj6aQl_JI$Nf8zHeQ1AoAI
zI)_PGLgc_6^$MZXpP0AHuHQp_&De_h+u2xM(n{12->k&|7z;hHM4W+I!UY*Yqs&z-
zIyB=YY(uu_GBq2^<Eymzpaj=j;t=J#P@VsWrEhGEv+dfQ*tV^S?KHM++h)_)w$s>2
zW83B=jcun%<F<S5_u2noKFoElwGOhlauucH630+2#|%`Sb9pnZ*P^@Y7LJHP6G~5w
z7tjm#r97aWdJjgAc6Pt`Q%2TlE-!9jubFT+`~#@A(E=4Qt;QKn3ohs?|04cD<U=S`
zZ^i|FcfT<$W(`&lohmG9MH3aZ)eK9%J1?9e-);UN@kY4@a+7T;ZxWv;eb!MSoH~Xm
z2;30}e>iGeU(4g*qLum9{sexWT;Di4OCH=INoGF<7G}i#15mB2lShm*1uR92lJ8s&
zVfC7p4v{$EB>JG6U;X|vH$hG1XX77Fgt=>Wb8dypO7WnPi|$3tFtS#S9j~}uS%Re<
zxA>APdsPW~mft5=9q(Dy2Z)7B$wp$4JleFb=BMDE)9ngl>6z}<Zr4%fdu1OBMwkMg
zZCV!rFu}1)&{$<(K~T6dey<zfRm`M&vUZ*XKyM7DmLMVbs<Hj#yj+=V%-hpaq_FUt
zm@d)P0)A@4+sWT;c0Bq20NK5Y#kDDG(OL}Zr*#9<X0wT+#;M0ocv`x`HK(p2`8595
zQQ4N@puiisvpBbPNKNF8q|K%rGn8E%ZjPCNJZVS)F_Rvp;4aieO)vCq_yhUlm$->o
zMb;vI&HcRkQ%xKRK$^!>5lQyi=@;+$P;&`7f*b7`Y_zJQp)b?vEa5xsMo>HroX3ft
zdaTq%rplDKOpS`OwMJh${<B^F3D*9!rP1KYXCyFm3F&bD?O7=KR>Ct|VGEYKpfc|>
zgGY(L=<s1@&kv6b<TO=+khu%E|MbX9Bz}BxISgSFuV<><p;DtdEuVWqrJpx3JE}<T
z8m=b3wPB<uh`M?qzX)kdx>o)og4-uM?g0roI2^o+9Ok$7*xqk@bddr70QW;*|4gzm
zgj}c&)^uSg*|j((L@BJCvj37M4i$!WfMb*SHr>4pb{KYsKR$6>Yx4J%&lf$@dD6Tu
z*V{4t{O|jDRZt)2_Mkp=SNj%DymuL{2>1c?*4t5htD1uV(GAuK+6A(`JFmOy90O5@
zi!bDR$GQ@gA5PSz-gEL0-TdsSX++KvLRvQcR@<%(v%BsZ#fcJ15~jG<>wn7etIipJ
zS*ydQmA@>Cm5ifl_WeL|Da9OZ8QPzJ{vGp!aG2TYOMj<!ui6-K1drR(AK1hpOwf@#
z3qW|w{84t9P%*Bcq69jEApJ+(o_K4ig5d@YSf)f8XB@s-SxaPUgcfA%p%D#@yiM$`
z3eEIN0p6s-O2Qwrg)2hQ^-;S0@qFR>h@p$QvHMqX_-4zWD4I#t*a96|lvc@ysTN2d
z_4*gOt|yp-rB?Yk`sT7V{q=aGRlLYVkbKjTk?-XT<^&*E${8DL!wfod1^xltG6IxI
zAH=;GH@GrIsXa?weS-}I+>7^9nUVzZSrrJt3jnvZ7l%uQh3#^Jtyh5RBKWA&A!e@@
zvymH3d)8(x8tZGWLM}kDfXcHMpNq<V3s6fi6IS!d`y7H!r7YGXe`A-6m+e{h&dr7|
zv!ihX1k5q_xuu5l_+itovjsDDBjlQ<k*r#sM$e$b9ty|qs{3nVD%PfaAtG--PlWcn
zQ5Umd`Tf2AZwz)+iXusDXs8@EH=%ULDScp8;T)i6`kVcJ5J-eaqF(VdsY#xBZqGaN
zXZt!ON6DyFg4voU%s{@E8fTT7)j65Oh}|nO97iGILQG0EJCX5cq18V?eyw6-E-s17
z=b5K$6#r>o4Vz_nCqoilhF!DkqTn1dr<_XU+TMu17w~+_lK}gykRfM15zkL^ih6x;
zu2_VLG`=LBix^99V2*<Y-PzgiLe&S?b!xoKlK9h6+Z|$7=pCk{NFi8w^Z}7z{s-A1
z`#qDJ1C;-oza|kAs;W9F`6AU9Hf&yV)Dvg%p#NPtY;wNBpeBD<#1`F9XO<5VTSWx{
zMVW3tO~rXH)8np0sHgc>QKOl{1$`$g#q(s}-JsWB<ZiL^=GiRkUh<|qFpe{fKi?!3
zWU;7S90R{Uf`c#~KQx6V)os(RNo-FjP(_1I^y7FrqB0BW!}SHj{odUwkZ5K0>XBF2
zlRnnU=gMGmvgo#rJyWHPbLemIor#Ue&y4sGVBxqEm8d(OxSPxKvl1b>eCYwaL>7wj
zIT)NO57OtvsL86L!<L+qKeRhu!%v$30aR|l(%$fc{_iu<_Q&cD87?|_KMOs2fG&{&
zvYN)M%PsRhXYGf>T_=xf!pu6;OZkA3D&5K$6X&O3^U@4GU-&(QJ89Mm+l(|6$*A3e
zj$Dy2tOaW+u`*Pf#b0&vY(6pDo6d1Kb-&E^TcJ}Q)xTV3emUhLzE>E#^W=Le_d%JK
z=z1;+#zkSI|M|%=W;ck;hj4ADT8+Exe#jH}MXa>_Shiq>b^8e)0a^+4Qr&y<sv<z}
z-Pp5s)crmxV^>quG{U3zotjTd(ygGch(8Fg5j|qs@qTpY%PVJ2%am-uyFZK3L0i<#
zcpcZyQ~R*=6gH67rhi;&v4glunyQ_Qc2U?{X|__@e}y*elBiu&vaxeCqpM;ZJ6ogZ
z69#fFUAgp^Ju#mSZ>=PxbL}w~o5Y|$yrgx2R%d@jfkg+4or)NorVBTa`BUjK90me(
z5lb*!w$5Z@(9cSue=__<HDdyXu@5`JVF!QFRX!)_z9_Tmp-~tc&1SW;`4_m{<U%L1
zlRpiP(m%s7sE`|roxfOkyrHbxkNyUSm*?Bk%r2`U>TrCZk9Sq;)O>kcOtuV{I_iUl
z9;I|~R_odk;*dVn8olp^MKjdlLW+iBL}xS_>MG<V-7a@#EU|?%5Ymqv?`o&zn@yDn
zqvuhv3OBW2Ro#&3I=rsWipbn3<1z0`rPkq1<#KW?1+wVmA|)W^iAV@D658ZN#I<&r
zUX@>(j&{osCQs4iwf4v&giol-GL;}Y0W3$w3Du;u_OX$_vMrcl@dcZQTc_aKB-7@Y
zSh;f}8XNh-!pekpdc}W;GnnQ!Vqnhvy@K&@bD#m{Hw1GruOo0sO&Ehjvtr`kg!_2x
zu2FJRxLH1XmSU47w^!yE(J!sU)94c^=cL;)rn`=x@MCRXLsG6p4~Qxa(i1FP?x$UV
zu&4cs^ZY1}y3XquIw|Jv!Nj9}|9|HkmU<KV0?cRBH@)NUGJ#C^1-Y5(ccZsPC`*%u
zd#7kW!>w3&f{zqqyC5L;kiIB!4LZyG^17U7XWxTe)vD)P19nh{>4d`j=6GvmemMb)
zIL{hS#HlD<$%U)*e5ucU?X2*NUS3OalKH}gr&gAwLm9=wCJ-$auXxP&r>2|!0Rqy5
zfU2WBrKnG_w2%$XUOZ2HkpVqzu9ZDvJ#zzyInk;43dOgNPxIq~Q<VPOf8Zk^WfC5)
z&#Ml2Nil-F5y#`Zqe}s9>_zwQ0aY<lJ;J%|0FNHsr`$b8t$A8Hfh_$3a2^`?YJ(qu
z{2??=GLgp0ssrogfV(xbU&U5u{yAgsehieR`ExCxhHP7ZSTyu?Rz^m~l1}7=&eD0I
z+a&QfV~W`%Sj|5m>I`wi1q-c7w}Kd%5jM{$Ng{UE4m*o%5ln({qKlvUm4#*r`>4kv
zHJwuM3V?nU6o(a~;0R8k)HTl6iRJpu1OSTFOm6MC@^<WqiEGd>)O0u)fsf<y21GS}
z;a}5=KZOUxN}H|fK5$*AF6JY*Ayxc!*{_n3>m`s-DF?)em9Pu`MlqI4c1W}{AAL$R
z^7A1Va$C`U2-3mk=T-ix+bmyOWwD}Sfa|Q{o^T}JB?`voa;J-JShj;M^fuT)O77Vj
zD8Z)*lw(lJCWRhWowBv2<SI)gX2@;9>vY=WVGot$HS{J-tE1mz^HJ)cg=4v(+j)8!
zuz%+VwQzp5+wXQa=yV=Vo>Z%G7^?2W3V7Fk8loD}qdm3lwDYcL3hoQD$RJ2F{k^Se
z`>p)gjDOA)o*i~Es3_L*xon~-00G-z*eIV4)quaxu3AQon+(%*qE}Gu9yZvEbF+?_
zcYg4t>hLqGxbTt#g`AEfCExA{+wJ=q5c99}H_U){+gw<U6f8v~b{#6`lHb+*4;dpV
z_Tkbdi_z@LKzU##M8RZWVFaxtqi2$nT%kyhpw@k}Pxz+gG`J{7u$t1+=~$#gJ*tj~
z#Jc1@YtFmsB1LV7EkJWv6v=((Wy^uqBYbAlmJUAFbdkE%AQ#yu)*$<H*_+y$Vu#cY
z(-AN9t2S=6gA1Xqz9<f6H#2$qow+9)D`IY~!`yCZAbztv8!AF~0quvPCZDm?AW~PV
z8+~MxeI9<NG(^nofKkyPr8xg0Q|*_QH2Vp+;Ip*dy)lC0YdNr%84>~_>Q@`6#Nw-A
zs9$<LUdvhh>y@Y|fE>AfkgT3dE7KPdYd;YC=L}~umbiLZt}>h~{W9RBhQ=S{i}W}2
zU;#0iTKX4X%z1<*Hh%&oNK}YOH5!0y`xgYGcV*6<c^tQ!hlj=xvs7jdAdxI+(I)F8
zhMc#0t1+ASWLK@Ln<a($=_ZLuui<4-yRgIy(-qIepC&4g&PhmQ^8SC&&4#*7at8x;
zwknn{ZM&~lZUk1rF0yK`R&*}MqMCEl-DbuU2WO72PgTvO41SecS~YA6O3;H64xoEw
zx-*XfwW#o0NI@K7+kEg%tl{|taSeGECr1EikL=ffLp?6uZItdX8BhH4TN|6+F<-wu
zkG{<|#9<3w#;OfyQSz5%z*u@dMbb;XbciH1)W8c=ffO`pJe;BKj7aLQqVtyc5wC}F
zdMOyd<P)KzGT&IQHUkAA0AdnN@+o<v)}rxum6-m`)zeSgsEFgO{Ihz1YO|iPz+<hO
z0pefeovPR({(k^6F#ZW|7fh4uLkI2oW^tj0iM+#YOBg>Jg$PP>{_S3bAiaNj_$!v2
z)mxj@vrp$owDY}#Vi#p(ukAFdyon)Q(T{`_P6{LJ*2WihjcVFs)R&-`7!^oq6&dZt
z^E6IEO$>@EFfw|kBiTWS6d-u>J!g1qD_;?tb-o`yHRwB_t>#UJ@9*!az7uZj^ILf9
zI~ToqFYv9EsWk&jKDne!<mv>v!AT+kzY&eQ5`~hlb+*dS^}B!bnoxObNI|Su=EGJV
zbpm_AOAIO|u^iot+gI&U#j3)(TV@tQY$tM#!p<c6=6E0z>$sfT)`bQJ3#*)7PEYDX
z4Ss^44*7zVwn+qAc8N31H;qUTb8?}5U`a&@HaNEBr=wXS3lWpliXccxB#kZnxFfOI
zy&Q3#CZW+^xLukOKzwv$ZAX;{hHJi`c-i^oKZE1iH4-G_qd@+Gdu@Tl&zaL|Ob#eg
zd{aFd(VO3ug83=N2VZ<q<PH^$*p2!>D9Z`vTYTOr-RKgmFqa&eRc)1&!p4mh(KzZ^
z#Ul3jUbg}Pl(bf^f31;pnq3SsNJ>{MPFuGzZ$mwRAJH?RtlwNcY88WYf1N87N$dju
z0Ypt##k~m$3R(*4a?3t|<^u2ga>3o8)r1fKw@pgEoI$7^^>HX6ExU2W>-SNy!*U*S
zzKCiw_QZ~&P>!vym`RN<p4ENyyj2my<B{Rw7QE4wt{ZsSWyeag3K_2&rtR4am2>cy
z9Pp5yrOBQAL~YzKb^6V3)pl{BEe9(>K<&JG7YPCf$Wa2))<|h|4v|6xRhnWdstE3L
zAgu&eno|ipi@{TEC4BP;j+!I~e{R0YLB&tRDSxwz)^qhphOw6LAs);oycO|~6GALF
z&T8UX!fvd3thvI%M3ltPOu3|F^^I)nAID<2Y%}Zj{E7*~EP^A2>knA?gTulUk@5FI
z(}KkS53+Zk;;<n`>2!j5UTgJaj*ue_ERKF%?<9#ZNE_UJ59YZFM0DpgwEI2GQ3As2
zeX*%(qyWXjV6)C>&=`#mQN!hB@y4J3vvpjPgU{RGOPvUw#*y?zcC$(?wG?RB$b$Bf
zGSrV1;nWOkP1tCvP7nft)^Vl_&V3!&jT{R@EN;$26<(+bjgC%aX#WpjtzpaFFNNSf
zzJD*grJjSCXOf`@Zpb)aSi2NQOrdrUr0pBsMir#-Vg0KDHtPAV#G@W$ne$&`ZAiK@
zc{50FQjER<5xPVwav9lS;RKRYv$(GF$zBe?aamVo&Ch7^O6K&G1U(HJIO!#~?9Pui
z#bQ`(j!V5MSd2+cOLfoLdx+s1X}1(NyA>rAA9n)iPVMo1gw9255dBa6$a*$k9lE4V
zJwoj)_<sK}{;{8kxju@iLtX@6!hM2pQwS%zP^XG74H%A(7Nm%&1Zl&xGOdA`nXh*;
z&b{toLoc-}y$3044fAjUWP+5qq6@IVAPRLmsHqCabUa^DlL<W^T8=Ju*=-Eq)a=Vv
z@DN3{*KAsfOs`ZmfL}&tiCAogC!khrB73<KW()KW5N~I?<EOgOF6zTC2<xFk9g(pM
z&h=DhqHY$#bYr;b0OMN}ssx9|ngBk3)8}I{aoiB-K+XsS)K*|@Gm#BH^LXml!;+zt
zc8dU<ZkT5VJ|^b1kU06iG%nl*Wz7#AjDA~=g64T%MXf&(YZ8X@o>=)!EUlh__6X8Q
z(H!9JlfjY)634u>KaJ*jS}Eyq)k~rPOSAKSK*AziFG!x*1vAQa6P_lID^{Ck;Kpzq
z4PK`AUD5Ifca-lX=rAn&7%5<Uk`soX>UWQ|7YfF@ZjsTW<aM017E6w`2gUi_x78<)
zC;B=rR1>T__075B+Ho$du~)wIK8jVf$3KT5kXk82b%LkrcQ02QCFaonw50_K8UwGp
zg`@a)*kk=i%WmgwVfKBATCqPoQoh*~tL7}c^J!ixSWO*>aog;@Y1p#4ZDKCX0tLrl
z`+LIRWbEW`!Surx8jtIe*0bFrh3GBD9XC5y1QX&u*KP8Uo6BiK`H|PaNS`i(?yn>|
z6>&CQl4%q7;HN5@r)nw&0Va|x{fHPpUAmnOL^d{V0~kbvjQM(Tq^_m}($1%<D2?6H
zJr-+zRP4|S)MY%lfj`CKaHO>ErxQO)=$-g12ie`_M#~`ZibLXj2l@E3t~%&z@p6$(
zPX<9n&=Y0%_Olk@^ZmsNZ1%@qZO|O4mArQ0N7~4q8cU(&W2{JPkIK}1*eCOzhj*AW
ze9TYdc~ao|mJlGx<{~W{K15bAOStsMkf?JOVXSEm!kw<5kEVQtL6O4tMO*3VP@NHf
zW(oO@$I%jk#mItvrfF{!>Ic;j?)Ig;RpnuYC)7B(f6B^I1co>LF1jn(b_I(TXX!x6
zNbXu`gn9fA{ZOhECYH>{bvxXa|Gfwo%=n=E8HT!wl1B|HOu=J6E+=`>W%yg4sx1N<
zxpS&ppj-!++JQzyt&ZtaF2X-Rr1t$X*4J7dC1k9wN$dfr4y3Uj5dOXgsP$1!?MSQQ
z`Lkxc6j8;XX)`&lQ;j06M7@%=p<9~QaK12SvHy<Rr$*xcUIkYx+naOLnR={i66{i`
zja_C^OjT}Op+zy$I{7|!E!VhTbU6~V8JS;hGEXuL6$+l1cP=z4*j$aG{0>xl>2fco
zjWx-`=ZepxKw6@`Oely@W$$dNT89|dI085ho~ciS9PrQ(l`HndD*E0Mzxr|5gZ(E~
zFaIKorDoBNd4**aF%T*M_LN8wn|8l35SVXi^?3hH|EdIF<NC2D`^y?dKJAyNzG5yV
zxr81~k(4Q}XRO9;u!}w<AHco(WptnZ`Y!{0bXE2%{Rtd%iK`g%3{nHOE;~j}sHZ)~
z=thb1mJKoshaN@>DQ^kK>^iCSsf`eLs2xdK$R}ff^D}SOzJp&Ne7N^?Nqq2T@Vhz{
zeq<ZY;9d#588n5AF?6!7|F-<4&%N~z02pw4>R?cf*m*VIiK}RZqw3CI&A3vNQ1xdf
zjIq1hS(MpQpL!65N?uD4>qN594WK6%f)~KCMT;h-5^sSt*$vXOlh;!^hJDna8LA2_
zQQWl{_(`kE6-M^uIRss>#%|m8E5v!Aep>UbQ;iuID#5&yw3duI&6guytX!znVt%%p
zZAvRMU5!i`#Luv1vD&6Oa!L<|eKql`4FNJQlP<N}`Dk*%-Iexz=qxQPSs5{e`*b!K
zj=kS37Yz*pzGItcV2pO=#|0%2ny@CMO)%9<Dl%Zox|Vf3V4&34qqQlPE?N@{#3wou
zpAXj(;`E%BRJGWW{p6`bZ#<NemQ1w${va+$iTpt8eWLND6R#DNz*i{j8wu^AGM#tR
zh1-2VdZKqVbtdAFfLl>yPR@I>+x(Zk8y*O9hM7&WE<<mN+j%&TOnCDwzOIhUhK-Hb
z$mkGpUrp%BH_xe?Dp%tZX&^y-)hfuuJHWPVPOS`>@b-q9CJ_6o`KT@0YX5k=m>QfZ
zL-IGgGam}wQaX}_jE6Xn_Ozdo<;;*D^cBk^{_hP7Y)XzIm3LESzI@1PUKnR$MqN|s
zh0SA_L$Kc_bRUB+ymL7@|59E>uqll4tYJiB_8k63=raDy7cQxhwQ;tkNfYlKOzDyb
z^M^0qqdwULVZSvFkd=Sf@{~pII*1BQpDE<`0W9Sy2>qTl`4kuDW_WP}FL78Ywm~hT
z6C7t_whw~SQxfd`Z1WyZvP{Z~OK>UvF|O&R-#3um%zr#-yCz2*kT!9#Lk8lP>Q=e^
zE%+~0=}FGs$%7OUl;I|SxO3MuX@<iMQFx&@7!_LPO(tp+=~sTu^{5-g_Nc6t(5T^>
z4(6pseAN7<HXw~x*?A=x29L$`ZZw<C_ei!^k_5hDcX#DK&IG|G&YDhEyQO>OHlejz
z`4LUe1pI~-o4|~$!t!=3T!35b(EesB$OQ&;>HZ_Rg#Q7$`maRvk)p%EcRp>p8g-$r
zPb_f}oX;QS!R#1=EjRU5w{Kkee|PIy^(w`lwUTMfuf8R%*dZ~4M;y1snN^0_2&cQo
z-({n{T9U&bPfaZSDJ@EMbRm<<ZDHd~6FN-`i;JwaI{t<dDN_Z?#|DDo0ShH2l2y(^
ztw}46y>QM8X9fHzE%jZc(nwqu0s>t1V4AkixK4MuD0`^Zw5r%jvBBY^H5O89a<wcF
zmwfC>-ilDkIA0`P6o3u^aWxI3kgq@G6UtM)i{$n*zv&mT-%`{(l4A_5)YoxBy+jU*
z)>qfI+`9dZRk-7`niwAmUH9y_x~i&NeV;P>gn*ASoRh8#d5t`_3z{x6UjtX7@34EF
zBtSs$0FbrHHrYK@2o+z!Y#%H@GU$gseyieo@S6aApK*VfjHOD*w(5-pn!G}H!Z-9K
zs@tbfZ}dT=1$oyFgh8T*uZ+(XyfZ6HY{;=_i_?=pdu!zVH*ivvv{=ZHPhX8?9;Efl
z*0Tds0GeGxn@1$er1RZ_;yOPZ7WMXfB?1@5s6qmiT*_Fy|HeKDEKt(lO-A&~1gGm_
zEi7S*5O6c5eVN6<pjGS8=d{)Z!4256XOlwi{E<BuD=2I)Ryd_O{$1tDXt8=2DaIzZ
z0iDdSo9bIFmJ_@v^JmK)oMw<T@V{4MIaT&FpU<7ATFkHZO7awR*(Gt#Ms`dtj!>!;
z_&V0T!*!va8-z!w*3ZT;V5_UGJIJLgbaJ9Ioy*_*2It-zWE!g;jn9RvyrhAsnOlrj
zQ1y)-+kJfjTjjf<(6(Bqped%Q;w@s#O<dhSz$(Nmnaro^+$BCOlk?bVNhuTs3C-<l
zWK_`?l%{qL%?5E}`T>7={{U)5Z9(P$4aQY_0?%AV>^+FrGV*B|+gdm~QvNqE${0|2
z*u)3i|4eyo6lI{7u3xVm3z<mikWaQ9)_z+c5r)7C$>T+<>(T(=MK-<(9Dj}Wdxy)!
z4_RZx`sKtI3n>=b%FX)+$d|}FyLm5~QtaJCnc~jDk1biXqrADC30<$x*kG$0I#GTg
zfxLI_u@4dsBSn5|=LG@Dm-C5R7z_zEgyxKtq$RA-m_yqY`jC7}Q+EZ|l?YS;$YE$M
z((myCd_t-G@8+pc%4eS?TD`Dme+$kfMTh27h%vXOp^a?}s~eylrYF7^Lm<%HjHe{X
zHH}?SrAgGjC;!|?#;Z<D!DE6-_Fs&h$)%!eQn2Y6`QP4f&K1HI>{In9Rhfr(Y9-G>
z5aF&8Rivn*ilHOR#Fg|~B1TSes0ad$jF**zd9*DmZWqy_>7#Xeh?m=RbTv_F=#~%-
zqkt0at2imxU=QRjg@?K{bCo`5$YJwB7DZyhp$&L<y3P*#3bT0clLO|?{&x&8A(wXd
z6qKQ##wOK*q$cKx<1^3(PgKH(9?<G7d=y`g>4RRq`ey^2XGy!O!sotS4N)y><)ohk
zlUCl3>ub?pNsFPo%cYo~+r<h+a@6b8Lf93O5s8*?QZAqQ{dtr*ulfbG6|YAw^LaWp
zz2K<Qz^&pUNPIcR>qb{>xGnq#?^2BU`RZZa<t*k*0R#Nk)rBBQ@8f)$o?U*;5((>b
zitFD`xI$tG{p?F$LhJ)cIi0Gx$}r295K1iHzx~ju9wg?hI?Hh!vU<loQhRLdHNRg7
z6sx)SYvom=173WW$%P#cMkgD^r|!<?<xoT3N3|FQ;ZobJo-%}bDGB(d9`3Oo?y{=d
z-$lP*@-Kq*h21<w7&byp-z-pm^WU`3Wx9vZ!$8AYgbh8Zz~Cd(4-pq)ccaO`Da1IL
zmnD%yRAqx3U0|#v0p<;wq1q#qNu8VrV$is3NzZk*PSFI2jkuo#{2cDpKZ=$%7&-8|
ztO5$_%p<%Z->Z$%R<IQ#Sa10|h^C_{$yY2wl1TzFNgmWuuaO_z@!iTeVAw<UU-s8f
z+(Nyd$SGwH`M53+aM<QwZ}-=VX!!6SBIZ^ua|`+Km{2~?C7`n2kMQOVg-_$JVcJi%
z)}rD?1DNGuhPq|8ftG>LKx4t2`zr1(GXi&0P^vQOx8!Usg7j1?+2gmhSoqvE1oXR-
zctcD+$LtEEo^=)LVu|Rv(WI^p60yzE=O>^4pw4%>jM3<dJnVU(=_5fMkawl7)zHry
z?R2nnyh+box>MW#`(U=y@Ko>1k-wYg0gF|^o8TPQ>jd-eepYu;LU|Yi(yww7f`;3~
zCZS7yv7Y#y^)^NJKi8fxcdfp~xfvF6Sp}W2hXv!8?lQK&r+vf*(Y${y910$S`HCqD
zEYF!u2eE1*rq+Z-5&h)uA<S+E1(e`?{dQiB%K4v(8Hp%6k&W{5gRa}y0dVzFrTT0@
zmc~v@6K*mWa@T)=w%>?f?6oY72Qp%Y)EAcA&}c_<vyn07bMj|-m-$l>{G$D3e-$~B
zQ(8NXKhc{m64dcxByrtw4d?hy#mu(h8)B}!7?oFd4N=Ga=+Z1kIg`HsW2cxW!5H%(
z^<t$WABAonI_v=v5;9+C{#<XES5K)_kxmPVm?Z1Q6(4%N8ci}2YH(7WO=a6TliV|4
z72RPapJ#)z1^*<RQ{CAl5&&;aK^U>SbH%l`^Gy1u#!=uMB^xJ7257H_hZ_D5&>xD0
zE5v4xyFZ{TNIM1f?UO7w-5|4oaPS`Qk?A+-Zaxh^F%09CJ=xkRMD{etJH~vtj86kC
zc9HStf;sU(<^R$DXt4;<I=G6@xeNWHko$o!a+7JF+1{klxzlC`|D}Fh)2P*;zZI*6
z#d6UG-EZ@1iXdCS?p_kNpNXc>c3=svpK0T`(-c|qw_k}l?S}a)BUgNvFRoG$u?LE#
zFAahJ=$qAfIH^gH5%Jj-31Gn*I0bn6MAgBaC@X-(8$$7sT4n8Wdg31M?`D@JgeW#Q
zQ*hA%){%s11wKN4#!4nw$Owrpj?-+hGmwx=NX^~xM}#3|n1uKlO1&<_adghq&D|&O
zA7B%uDQPLWWXs31G_USdpOmS$+SJWoF)Rwwzc8Af46CQ-LWv+XXQjYd!r-ll939^&
z8Y-^{O97M&sy(h9LaDGd>EEE7*AP(8&~u1MJXm-gGs=EQ%H%3m(8cuQO?S}{STfP6
zU1C;#2S_c=ja0B)_TsD(G_Y*=mH_@#Znku(n!YWEKA0j8q;Q*CWLWsc92JN$58kKU
zX)8+|SAAU)W0!rs(>cVD{+{&^CMMOmCl`@014E4N{-irW6>L4P65CH<(=RdAp`y&U
z`{-}GzwujF#t(aN;p`PvLmKX?CNgr;UM=Aq?Sy^~=mXj!lW)#VJ46MH>8o88(tor;
z!ZX<h^_GY=9-zeK3!O*$#J(pG(n~r+_3Yv}Tz08mAJX}=4|gtI=UzHxHoEAaofh^I
zg>G4H3TneFhiHYUKst~@6`9v#90%B7;QgpThrgdCOva;H3VQ*DaH+ZpiWpL@+7g@N
zhaRm(0tu#(y!7_JU-WTGa3bTUZulWKD^=UgmsXh*Mx_9Ur!`7m5v8}!XJk7VzdOG}
zBv3)yyJQ}bkW#s5q)7nAs?QZPce-}us*Iun(GqH4xa8#!q6npD-3=*xB9uh0R3cH0
zrd4|WhkN`MKt^sw?$fyv-Ta-imeYo|b7%S`+G9{JAc6OwKkJXnFa9}|mon5Pjpaks
zM-9botnp0VmMdIk4TIlW>4)YX4YEh5HZ|%$aiPMx<t5SWW2buUecqMF<OeYp%OP?a
zzTAtcb<m?X<xep9sY|G!A$?F4fGGtg7%|T8FEPkohiN;K)14C-LOi3hXG$5A&P30F
zF5b9=EL)xESXKS2mNay#J`M>v8_spx>0h<>BcS4<VmmO2?+L!XW3y9zjTU@%(j$nr
zV!zfQoUE3RCt7{D(_k-fo>;KY)6Y+-YVDbqAKkC5PIr~KYo;yvA&`9!Ge9{ZKSi+X
z(Kl~kzN89mC8;GSG@Gwe%;tuZGQ^jGpQUQXY16W>gl%DhFcX$RZtFn@{;cZP8T&}!
za;JTcbeVEJ`x)V7?x!JgveNK8wHcKX@lT(B0DpcPg?8quu`7__{CYldC9~@Z5Q`j_
z$?Pl&P*ohF>N%`jZz2=PkH33XE_-|;nIh*;|1hJzBmTM+XHkP!JzN+QrkWA+Q^2n+
zoZwVI4FeI7Qy7uJBb7V}@*ls9L#=%5wa_3~ZGC5=MeB91`{TQ8X7j4j8KnH5ock4}
zDK|F*Hg6_EXg>_)etV0s+aqYimga&I9Igk_1yThU{!Jbk*|AMy^>-(WvNBRA{}!=H
z@#WQFhMrq|f*Vo64x+~DWs|2TGUpPc>X&c+=%Sj;T8Rb!IHz_oDcEx3cB2q1Zn#FA
z>>Z9kOW7TZ42Dvv!23)ly@9;ul89i9?D!IAxr#5k$4H;$I|gC!i+-<OWjU}aG``6j
zW4;8|SHltw2QlVl-EY_0B14`sEQEWWsWUM`uC9lBCVRlBTz@W&g^subB&j^@D?p2)
z{15O{bt6&J(&Z2uxFC>FrW9of-B(3wbd3xr&pQ}?>Oz{W&9iRWc=yp$t=XWZ#!Vd)
zFi!EivV@);O^^_?cu{J?*W*br2-@MA)=v!rmMD~GXQXUSX@7wALl<wNvJ$?|iPenP
zg;#UZ02gn@LzHxmCeZkYL<TfujVUbGl<W_0qAQjU3M=N^{v)xx;rz8Ch_RZw?<e%x
ziXP(SVO+}@Y^K(xAJ4V1dI^{PK!Uy&lj`b|?U+tdnYW1z7zxVLUou}LZHZmDDESxV
zFxYNIeHP21H(eeFR(Md@>f8nhM`Xlk#5Y_`+>}A|NP{*S!ZnjvDQIfTcIYj?n@+gt
zF{<?(E~pQ90=f4!5uxk8)A=aZOtZ0tfxE9<#i_wzfJKt*$df;+mWssy8H<&zg>`TK
zO|g1fbECo)mB^Ta)x$Bf(}h;}obJbo&Z{Aw)ma$rR`tYBoWuq=*5qw0%-tOaO~W0U
z{*5(e$o&dJJ~gZ3T~5KBd>T$p(eLrhBl$>V9NV_wrl&4tbO_*uG8GR?*alsJ&3U|`
z>JeOIl7vmoM>>a7Tw(?sB_7m?q8$;+PCp7J`LAE>!kk<b`sgY2L7A#eoP76X_lQdA
zg<2urwo5$C>Ib-X(rxb<&NNtj>idpAS$?zF_y_KAqhycw{KwY(5yh3wrA4!6g123o
zt+0dS)apqsMJ}x%ZFY?btk%|0<$d*V$6vQ6(3+dPQAbB`RazMC+-ZKv4TrjERh8HF
zAfZvF<R3tNGC$XPQ%TM2ZL)n(g@xo#q%{<LPqwJ5HN7_^ZKZvqD=(J<w}YGrRSlBE
zqwJ|j)=ugM4I<jfeiz5~Nc?^vt`OXlB79gDIXhmJ)OypBn?Nl^*d(%NG}TEQA<(e(
zCpsVEcX$0f{DaEcdlSARO-Kcp))ke1APiw`S}QKLDNLPMyORXz{!G{-GOf^fEWDC%
zSiu;<E%8PfZaT+tGK)QIkt=wCuZKe&U894s1FOi$NaJ#-U|DqJ{BWS-+NxWo`V_<I
z$iyKqWuxs*m-FX`#+(u4S3ICcPt_uZn7?>Ejb9X*Vo6qd%a$DZoo>dNseMvT^M;zL
z|EAq1)|$zn8s>Rq4@4J>5Vt*2u0VtQdlQNewQPK&n8$4Jl_c@^U|i|N7<IF&An(&`
zDh%_h$j+r*bFu*MTPaW+%Zslb(bsh8$j6v}8JN|3h-Wy_QI-X{BMvpI^Jw_MP@brX
zq*S6$O0}G?VyFmoF?SlGbNk<ob&x@nfLROCR|>6|{+-yD{uW#sQO3$$9Ur*9d}W>5
zrlb`HozsdC2e6qqFUb>^phPG*5%{K$#tiP>A{h{7<B#K`3}~ZnqU4MIzzHn*Q-pU~
zO0xHAn@eGRavNbqh|z8|+!o(@;FCdsY_OQxO>#a35GBCL_gDHQEu47SVlmY{(kl{a
zey!n(*7NxtETOEUeJn73gYIB@u1l44Gxg~cvy2de)lWc)_pSb_f#)SZd+tWMvkJw^
z24;p7W5-ft*++?+%9_vJx|dyTA<&~Kd2EEcKgDdGg;!Y={{bov>6e}6Amv?gq4T%@
z;DQ_!6NNSTxy{)H!x)9%xp8oqP1*d~d^Fw-YaJBWwfD2YVX3-`XZ`abUR4>GBs*Sv
zi=9(P)DWveRg?{*L~H&qW{DghpoeMfE_W^?>3ua({k6c70&dwT#Q+`bgRY5-4keH*
zz%eEPnn|xug4DB)ZLdm7N&TazLw($fC4sR<n~Fmh)w2!PXlQq*t8keML5IHf){4Ns
zN(;(j^7J1-;pAI%){usN-C}H~#Q>Q<Kc&+e#G~E;@c3(Nm#YHN;)iz-PZ$DM>a7w%
zMp`oyYWtJam?gz?e#Zkn^AtYqT-Qq-cRN)QnXxV!X49Vj8Q%&8k7NPEpj+OhO>;6Q
zh2TtgI)L(n;kN!VB&v@d)vkAu(JJycQEx0;FWi)+;MQGvzRScv01UKbN~^|fN18X*
zyx7!_?xjkG@I;Q-o$Rk4{!_Ei8o)xF)LYeh<zU`Ev!AW2=gMEzGOju<riy}*+w%$P
zWcrll2|Qs`O~Lwvgb?yEi8ZL@p_K9OzZK}+O}ggHd`EZ{yZX*nZAco;k>ejKEMdP#
zA8+t-3;w5s8TSF51IKA?fbgTH=v#}kI05yuOQlAV_eqG%PDS;A%rHi%KAk@C4lNQ>
z(FHoH#LHA};y>Dg{JT^q>+Hjl4-p0xdL(mfsiTsG42lH|HRHZ8?hJ{V>lWm<B6cD1
zJwv^=esf{5@r2+*ZbzR|q!@H3Jx#;Mc&i@htVm?j?<<4{tI530skC#BKCOWFjn~Zh
zb$<H{PQwB&V5n<o^hD;+^5$?PjO2z&VnlDZ#noN_y4wRUzT-&krwr#}bUAwZ13!lI
z_ZO1W_dKoVQ0}Ul<cFdcx)}#?Ju6E*;|u{6an`S>$!fSr8@V+80|(8ih|3r^+-}9N
zZ(_SVom^RLhYol_vg_4ySiVy0JQI%Lon^}o6lQ~zd8gMKR_r9?!Zo;V#<pboAXc!9
z&Sr0kGK)3DX044;Qy4cff=PbxGUIkxHUob{t)F=psFO)>!22i_JX!UHtAI941qzH0
zg?3o*@(Y1lBH9Os;Un{3J;+eA_%#*SeAj!j3kaEvHp3E3!bi8%5A{>2zL~d>9N9-S
z8&Q0Z*?$iSCeWH>Ajl)XX!=QZL}KogVYt(f9kgSgF-pCg6s5o7Qwr`ebabsC2KSef
z31Ume{it}i!NgwEk2gOWEt3%2THGIn$dmA~b_EMQFIVkCWtBO6>f}h8E|?rTrQ}g^
z`Qoo5XE=N^fIrWP<qNedJNIfVR)j7lE!>I6=%X+lW9aPr2gWH9wXB`>PAKL}ma;0|
z0@PFb5d2wnB}Q-{gifDxd5)GR1vql?0gwozRh(&p8qsB%@l*;$nduPLB)-BmZUbL7
zQ;m+kHD?4XVSh8^AH#2w4HW|FM0ke%Un|e$pe92uTgrl{5^sAIc7<cW+`4lS1+<m@
zPG%l&7b#e{^3bRBmTb_2Un@f~19hk=cflvM4IW0z72}hHC4Cj))$yfei&d!#dT4)<
z`>M3P%#TI%veY$%KU^*AP3r_86zLQMS4q0L@p9u9%6iG8*eUZZa~)8=+xJ1n^YeLf
zO3svXlk)&h%e__pQ^1@FUfN+rwzj7F$~3T#_3HV={&dGuZEytpM9MB?H{8I9T4|~o
zW2n%i^j1trjLF8yrIfi?6xUi=5Xtk1FD9bop?ry6xWzbeP)StI8T=5#FVlWtM+<>G
z1w$E=&VfxI=aq&|l*!{TpL+jbJ>9yI17d6r&|IC%9_N^;cdd>%>mdqG_VU__JK4O$
zulOV;a>Q235HdgABXo1xx{1x;mVq?|YLB-usyITzds*gs#N76YeboW~VdzFmM)QS>
z5dPbS8ak)PaDw@q@ySK>t%_BLKfxb4V*R9Tajcjqc@FC#6ANeN+q+`9G<3FnLSNaz
z6Nod}u#K484BYnb-Bu`*sH31$EF?56kpSn%L7-}_oCm5F5rd;5Yf{h^ZLUZ0$%dd?
zoG*4de&4S{5G@5UNW|XFwD(@7H;AvFr<M%&is1_Fi^R`JP7()7NfCmuZ{0$y31Ud|
zyjKsOzpLT_2fCo5_fjr7<r3~x%MA`&3s@8mFefqYs?{hJXp>w2fosp92bC&ZQTi&6
zGS0>HQEetq@KnL_h1^S<$aGgEUQ;0cNaV2``@jsUdk=O!G4|;%0;N<OaV37AY;R7k
z(MbY^MMzGnbD$~=tTg0H)mTp4mowrtlu7nCj`<wo0@o=WgkZA*le|60>NM@3X?coj
z$1l$%;E+T<4XbF9Wo$RLQ5VdQ{&?(XZm0!&9Mf<vo@6?lDZ)%Cfl=3!s2aDE%IG{5
zD2z`e;Hlyd4x<+4?w<W`%cU&zDJP=H!P6g0vT{8`ycwK18q$wfe(TD{XjbBQ9y@@W
zy{jMq%U$Z%+j8JE^0@TTX4oJktN_ZGUC&Pvt`Yz>S$j!decGe|tMUmXoOS!ja<+q`
z45>&+ggUAJ+)c4$de}AsrF$hx2?@|ruCjLBee*z9I~qCS6V)rQXrws?bv_->C};%I
zSZH^{VEk6;ilLy%0Ld7+AZuAa3J)*2HG5s&OV4{@T$NW;__WSyYmY%t%HBe6d5Xnm
z&V<{(1@eBP7j!_8w}3jnAp_Xb*O5Jq?xQ*1SAYtC&IOQ@Z=kYcp9)5BTBf~IlHMrA
zPcILlAyOO8R7=8}rx#png+hlQU}n#@DfoMrrLTmAakFnEwxT;ThXm}{TP&<lB<k;%
zorJ|}2E>(?viNF3#;41GRpB>v91E*$000;|wGv<M;PxXqOfF0LNv1c35yBy{N)I!m
zsx<VnLB<PVTSju2Q!=F_29^^egMKn3Nj2k_@s}^ovGNo#Edo%+=<~|ZU)(&(5F$?k
zFRFLLp)KXGpm!S0ScWEmZuN-w!}Q?rfw(Jv5WVbEQ#E&2RG6$(G&*Rwc?x@J(B0{L
z+_s6{BoR(hIh_bxymwP062%bpr^@|_A{8RGoey-;J1{qG?`v2+VHmK;2GK$Y8H|8;
zAuGO=G36**LN2@-9?ZpBvfO-I!b5(DhS`$;y9^Uko`Y9OhSX_YGo&4p3s!mlziV}s
zx|5t}`ap_;%36mz33n@3PBUYHqa~jhe_>JPBks&P*7sOJDITtzT%r5M43Bkh#gT>f
z0xj|fO^UlruPQXS>?Juz+WqU7du_kf7g*Xl-786F$gT>VdPx<1_tIl-Fk@NWsT}&N
zKD4MyR6qQO&Ki0{8%eUCPs+`X0yU6MEO4S8Ih_MVrBPxw>g`KV>Dz>U#_lr2^O$(7
zohb2C`K>QfOvqA41EC}6R7g`b+fpGeC^U*wuPao<Ucq_xO2i(`B1bmhxjH&KD*KA$
zkDBGShv8e_6}9E#y=Rv=D9oBVWyXPJjy<r|&R!@~XzPk-Jpt`)24T3&sxyHkp(wOI
z{8|qWuc&pBR&4$o-xxjs9tt>eAI6>RV$UlTzHX~cr1{w7al-|G0EjvvLD!B_t<w_#
zYrCDFav=do5HH><_G<W?7Ko;cbcMGpvuDB{PZ!-Kj|Ff7rk(l3^14UUf4VgIOKzE`
z)E*A-RXj5A4cpZcx6D^=*Lp6QvBR+SFy||_GWAqE4(pKk<6y8#2Ce?Md3B1{ylyaY
z&bS)`v909{t#%zARC34<E61Q>(0$Y7lO7asr-3?6Q0OEVp7cwy5Ny&PK@8g(hBt5?
zDppBY7&}#05u)P8swh4kR{f1@>xn`^PffG;Imj`y#r&&cs7kfClOWKG>|Yu}h&J^e
z8s@Ch5)aig3CIoeb`#0L>D%>OOX=#waxVGc!{)TDMFhIad!Hj67G!F~0F+l(JF7^F
z{v=jsw5nCpzaYmCgXoz3O1JXJ2=<`yQN0q!LPt(snXf?I;{p&97ww{Ix;!^hoQBeA
zFjPpmKA)XD)`|I{y;_nfcXF;GC#09IP#aoENbxxhLd-4W9d;U#*mU7%mR{Ri)$FKE
z(#F$N=${6VI=NZD{983cveV+o_{K&wnDy(Q1&?d6u!j70SM&1$x>!igFi^2M7-NY*
zxW*y*D_hE{|9c2JpxhCLB83NDarb4j<oZT?0FQY!-RiRdn%@RpEe|D?IPxFB9zJ2%
zn>XkA$>L7^+tEB#$bZ)zvQcj-b@*$;UpXS#?EKo)B8^zE5k20GE8hifL0}~9lbwxE
zN=na!TI*MH{%}DW`Z%(^;hlPkxR6|FTl=+Lydzex*qv%51QB=KxEJrS&~;s|9&eVT
z6n+>s;yRos-g6m+4_Mr_35DdT)S*DVJ#@oO2ss2J;n!E=EbCr5xjDkua3T`{aEv`g
zc+o7@eZm2{7}SJCY8pWBz++PsdZ_ZsBBh=kA%+wG4u;-EdVV5^!VBeFiA?^@?a?w{
zDaS_uyRZQNG~Iq`X$EwGfWC$3dZAZ}__Gnk@h1?Pz04ASQ3o2_sEKV#8!7G39qiyk
zzTdNLR~C%yHscoezOfm6COcFBlFslo3kSV>m4&3rO)m!8HJKC7(wiz`dW#C-#>C6J
z(v?eAjPPphf;Z#v3q^wH6>jG>Kh4VnA$#m!k$N(4PPvJ}dkgmbU8js+ZbxH+e?a;7
z|B^ifI&S!o2MGP)9TYdH_R~92<-w!{({4wMO$K47Kg>aw3KbI}zI7z_i_$z@IV<+v
zPpEp2MabakJ+|fVqO`mf^(P30n@K>Gb6A0V@=-~bayp3i{fJrpV?!%v^@zV(0@t3`
zm;quwo_VHAaN`?bF$C7nboMT-IZ&|Z1}@4X%1uV}7f3o4E^4_1H}@$EYin5r3$(6&
zzzP}TTQ<SwP><Z()NLFk3HC`Z+7F9zChQ=}ZGdA%L|-RO2G4Y`t*2c{^iI@VjN1rs
z<8v|ZNPs7y7FAvA{)?ipIOt;X8kqI)Xm-VWJhc<A{{=TZYTzy<uyfKMziBJO&=T9l
z=%!^&`=1?$DqZahEV7Ftc1uxfRz;pPZ8rC2T9;0Pa-n{uXVSg%kCe+xCcl11`cX@m
zF@(&_oY(XP#jI<l)|nXF*I6Xu^o@m+aYS$77jMxN7(B0z|8gRQ*Csk!s9ktv$EI$0
z5(X31j7mp1ZrYb(?$@$d+GrjR7<a&*iW=K}+S+gvsPlVLq0f&zn$f$?vjRmqFG$rU
z2i80gpL5K-H7K~E5_^?45q{gRQau*@Y=wb?{x&|paQmLx<y7;!mco>6f9%W%)m2;k
zr-3+JDEfYJU)nIH+;iuHcT7z1u&zRfTpiqqLB&+`3N8w%2ui%fmdr_zO%ZTm@fPr>
zEYTLEJJ%dn%0?^MeJ=A|!wzII@j}{9Df0<B!YXtAn+7>86HQ`vrZy5!tS<ch@KP7Y
zCHa=&he!9UGE;AoQh5rIrJ|>U*@j;R5WQ`jbvIt==T<<<r;|MbKjuo;aI_POjo0<c
zUjU1;4edhJl@l$?UQUdt>(za20-wu20R94VAwOM~m-+0K-6Ss#gKs6k(YN{6)0jNX
z@Va9GG5rGvQZP7Dn*Rw&a!4>M@iJy=i(M^40a^|fZt>l59%BqBlZ(|nE83azRZ2d-
z8U^A}(8U^cjjnz7<wo>_O@d~mP8}OAec$#>`KmCT5VF!$i89}6?R$_WOnMdg2RL@P
zF|g9J55Eal1cN)RI9A@pl*VmF&tx;k9Me>YsxS~CcNu@VeK|TO)x(;9Ff8S;FpZ&e
zDhWeG`$R(Z)a4~IKfxz#M0F&-^oQn6{rjjYN}U6Xof;Gcs11OGeH8``xc^YQ--N)F
zuE13{bbxkZ1ODDi(C-0*<&##?w-j6pY1_%wze2p(kV@CmEgL5vRBMAMbs+B?{4q*q
zyhDUH2}(G6rIcbWKz$!PLyF0MLgm#Kc<j~6b9z+(qU^7&E0P;f+~w|4tp<sTtMeK2
zN`l-!MNTU}_Kix@Fjcv_VKH!@^!G19Vqf^v325da*iKa>R(gPa6+xDxN15;9iFz90
z=LxCdqi4rVH(i|)_=IlYhFbtbSXjuyR*Vj{I(4k&`%H{c!fwk@+{{axiF?_l534B7
zm_;yLcbWU3;Hrs*<AgYm%2@45%0tROfB~lO(x??d41zjIl<$a5uHm_1PE75+C<%cF
z*p*HGpDSDQ$`xibYJ5te%1=+5j2}|%gIqrfGuPLOlbB2tk~)#9Kxkd^^dc^L<K)Lf
zVRYjcb*KW~aNV)xGyqfS+E)@g>)UHSg2$rBCL25x!{I@wc+!!|hnwN1hrMu45*cZb
zRbnaiVZ2tSOJy4(--s8r0#pEw9n}X$1$H+zafPv+hH5j@S5%?XV1O<&jHs2P#n0@t
zo-ixWd?Mq$4h;W388dp5_*4l6)JE^GC!_>>JgT;ma+|rxrnaKnHwmzdmRCNBU@1Mk
zzv`r|O->h|h{0=BURNLJmIJjQpzwXL#lwb{>36YbMPB4tmn81K<ZR6PYbQ?M^kG(s
z#$VQfrO#tHN4BI!BynAO#GKkQJF2iNlPU~n(PtoCV<gzGmZta2&)Dlzd*<a1^IDq^
zI8mFiQM&4pBFxkxaU?l2|MlY=*Ay&LS{oG<^|6^?KF}#6^sp~i6EfzbzThK>-%eG@
z)w+~X+W$a$NEZ?8tjP6@+={Ua-&k|(m~q6Hk8FULD_(&a%?elm0?`F#F=T5!<=SOn
z`|B`S(a7&ui!hW@Pj~K!Yray9d+I(Le~b2_Rl4pAt7jrxP+B#uqEL`$?D|Tm#cVXz
zMgQt*fE4kdU)PD}{H`jzZj_WeVPP8?A&LQ$KmhylL65wNko(6p=&}KtqTm9~x7MI=
zALd#E{5;{!gsrdBS3o<92DIYteVSHP$9|8N*<*1*1TR8sYfm<EyLxJYVxzvA6;RX`
z8BrL^-|1LFXQJP70YtoUF=3mP3r+R&Peu#0f?Q3gSU*1A_S`s!Q=xztqci#16^fq_
z^LDnFgG^qfTU%~xaQ2w!x|Unb9<iKwZ4v7~qaMgt0oF0Ql@kDz(jl}5^JZ}2A8jSH
zST|cB^C6x28GQ}}t344FQwuRajAUe!NuFtD>1VPlJ**)yYQSrTIsTAK$V<gErQ7Jz
zZ|hSHn=xlM-l=j!-lY3^Y`EZ!U>bi-!%%REl%{eqg&vGx3kDpkrph4+(#IGQf<ujN
zXz-nGtIs<YECM&uj3lv3CWsr`+v-m2F~S@YNGlgJ)lp0x*^uuK9G?+O5E8ow741`n
z7XD`m6T<%P;}Y;(8cm+G*4j{#w?bX?{{R$0>%K`aJ^4J#`d|hXJJyA&7J740ka7n3
zwH>g=`D{03QIMATw_|aK_9tE%FY*<JS{3&P28n?IFhBA1W2$1}u;U1v%9_5kH|S#w
z-SBdt$9~%&M2!{)imf%K$9Q%Iv46!AQ2}HwsE638ZMX)44|bak`0bpV@Sq3XSna^5
zlFgrTp66`vY?k{EX{k`S`=w6tQ6>u;GnA9cUj;(V=Z!#@#ZSeZIxBBJiSWQ)DSHJ3
zVNw?NbPBx@jPFxAN@4BLF{Kz;ajL&HgRnUfRs+OI;G@VcI#_eYqjC$~RD6|jZgJ2D
zk*?+UYI|jZ+yhRLj66`}m7eXUU6xL0v&o|9WZH}OJJc*g5tEt8o|NN_v)YnFK@qx{
zqR25{Ni(A4;HfOLx=A>jEo#$4c+#aSF;$A|{89Gm9P~J?s%YR1n%H|$W)eZo@L~J{
z4GJ8O`&WGKsBIfGM7DR0-)6Iwkkqm6ZQu!fRD4qrHvsouR4LnsST6HvA*iTPgo`Ii
z-Dt&WQ7cGdyFDuyj2!79C4<Wz%}W*$=6};>4>q?o2)nu&(`jKbrnMq($a8-Uy*Tr(
zJ1GmspD~Gqtk#KzVAs<!FEotbIuHR2;^GrF{S=;UT^x5V1p)wr3s!TV@tK$vyb<po
z$-Q>Zov%)+BI^56Va*EYv|JmYipsFv{0aOK=u(on$#Z98Pg|s4%TmF1oaFFUo2vWL
zhjzTEjTDhH+Tc_V02|<a)~-}2a}QvnNwFsczCZ9~sLug3ejrV$F8g8TL>$}$n`%dq
zNzO~X=apLdWZXggU`V0`5}zUO+LcCUPQUQ)wq{Mqpq|924@$blOTF30`F;M6;&G|0
zsuM&9pocb_v6D@PoMpVP$8SuvC9xC4EmNi3Tx(3kILLYHQ>n)8{cBe<C*HR9Xc3xv
zst08waKo`h4+u@~$=H;jjGOS1%It9{Vi3gn>!^@W1%1HXa^!WZ<Cdmo+;WH_z%$_U
zS5}o4=a65F`adf2G9C6qR%Te?MkEA?keMg>V=xXWc{BhB0E2EQ+y+L#@l~K_G&#-e
z4Mi?Q@@L8KLNRvpj((JurNB3=PzJ*1&Fbx1<k83pX~36vmI}a}MVc4ywn(#-&Xo<7
zImS$PiUo<&`r%n&V1CM*K(j7QMuf%yPT+5-)9F~@-hhzSqkFj{yGPp@;m*#E;WyYC
zP{dH~O<nZg`AM(+sVt=(cAA3@?=hf1xT7jD5uPJB7Vkz=7%CYsgV6gGXCz0c_iKz^
z)J7Y~xv!m*!w_7QeaeXba9Iwt(-Rof?)5iMr(O4=*eOy8WXK%L)XKR4ofqv)$rgM%
zFWRFcSUad__}^!NuL}PFaYFmSxvtGOxKjH$`-;a78v89{Tv_&2g`NZ4D+C-Dx>tBn
z?AGX{x!SH}9DjetD@Ipf`<F?rKeVv!(cgtV2yVR01A|0mjT9Uuk07P#Yo=vUi0HTP
zNyVr<4rBK8)@CGX&&NtVO{f|0O&{Uc8_}gq0&HL%0UyO=Zo?T8SGQUjjOQ4K&!9BI
zt-BqXw?N3}&101kW#e4d!{4QQgKLFEoj;IKX&H@43phOY&iWi00dJS{_-*O1;k>dl
zBRZPpSW;=09tVC&{uwP%ICw5O^Ko}Zv|6H8CUD`6dv&OfROfII<{m44KzGOG4Tlvr
z_%t%Wy2Q|Ikh@|gbg24C&8vG7hv(CEL&Sv)Kj8G*I3{@q-F8Vsw}|;w>4G1phS?%x
zbmK$=B&QQ+d-kjwpDK$D(-g<0L}F<)Tpm?Amx+yi1|tZuxKG7FR*7<{vg4<t66)&^
z!`a5KxiKa%yOC})UlHgn>4M7KWN&HGEZDga9a`qG1ERg_K?GFlk7{C4TO-bK<_Z83
z<|8<sl!7-LM><!)%0-uh+9~0sDQ=8L`FQj#<cXQYE5h8A1~RiM_a=D<F-jKBs^%4X
zt!8Y{aowJ^cZFZZKzX9`p#&0YT(hJ6ZVfOp$d3DuW~GyaCsFZPn_P8(e8qbeV?C=^
zzGOEfdF@av+G-2rtALf?dLyw+8zuPr5P4`sWM##-j`YnDY0Cb4dJ$6S;t)NyL~v+0
z-X7&dK+|Q#ykEBd)j421DR_6H-qoT~yvOFJqU=tK2X6IZEZf9hRU<e-z&tCtecFXh
zfE-at5;hD(cM0YdB7g*pFx!nJ7I5?<+>VV|S+jG{bBCMi9w%6(l4r2w47Z4;hPGm(
zl_Aaae;K`9-C3(>a`&3M1&J|?FD$psd`Ix-M^g9{f({LuM|@K#i@~@d?N-YW&Hn)O
z+Yo3wRe+n@zYdb=Qc_OYVSyev(aaLAh$3{OAOs_sNj6CquH#2>0*ywna*}tM)&NJU
z^%bD(5z9xNUFc`P=Sa+j8LrPvXh9{$A~by(@27-xI6V59(FXfJWXsav;WZ(od!jtA
zc7sJhL?l9NRyf~3=D3*jhI~*K=mV&e{JU=&>`&>C(tfzmhoKuYPD{L2OTu=YjmXNc
z86{V!czaM%W^hBLW3t4+iPb;hPTkZv2z)goI0qW2J>I|gIa?&t@P|4q4L0Pk<B)ZG
zRBxNpz7EG_XZ)j#B=J56N>$s4;3M36?UdU9ag)6tu3nL4165nF(6uhL5`Qnh(fnqL
z#JfHe^|ehaJ!FzOOl;PWHUgQP-7C3N$oBMO6*DWxYD~SCTFPdiR%YQ?dsdx%#{Sl;
zBJtf7_o99yn3DIWn_j76fPw)5y00;qIi?3&Q7;Oy&c)!|6^J-dB4B$XOw^IhGd)w<
zG<KjRnTuJ;r?QK~Aj$Vihw$D2!gcZJKq3h0Q%uhj($@QQsd#^q*l~+<M{(0^#9nw+
z*2ll79btLZ(z<+Qfzl2%LdGG;D>?L*IL|8%?{7p3!N|rj>?55+2`7k0xer5Qn5SQ1
zGs>(qE&vCLk6PU}GNG7XDGySlM+khW!V^U3lAItiGJnm!`sY~4SR{DWwBXG$R<2;1
zsnY#ouR^O#Dhs-w3Xul{dQs3yLKo$yD${rHn@!#n1OtQ_I0foC;<561iWrC79s=EF
zg9_w>wI$cBNjfFys4xIPFv+`ylwNf*s5ypM+#}6N<dB<`d{w68P_1qN;zR6g#PA2_
z2fM9HoB6=3Ihh<s0aill*Hdy_-Rj7$=8hFJO%rhd?^4ib7{1|B96j%2NbLu*g^c5S
z6%V?Hu+|B}Gu$f%;EUcX92`fo)*v`H+H1EW_bZ;fDv6P-{0$NZak+GpwM~rNK4tq*
zB<7F34Jche$#ePsxTsy+Oz$XUhFAf-vf)PTZbyb?-K)JjJ@$_DbN&Yb_gd^@1!nK4
zyyr(H;3Q2Q+o~^(ozbr0nU`3(#|)S#04QsOZ{Mlw=oWc2tBgKqc}YS65fDhv*EsH;
zQJqB%?kI8RjTy@EI!dQ!(GuJ?YtAEeP8oxGEj@2hHXPIlv!p!g<)+y~9JtYd)A?jl
z*yOoOqq(ULeHJHCqe%2fW-~{JbB(<#<^yVE?@@s-P<WgioXV7cc#>Wh8xBS;>Xpte
zgk^s4tSz2%maRsN^YpvVA6@2?oJ79##x9Sn9@O9NG!o2|Sq&*B#m}?FodDS&O;`@?
zSeSrrBBFbGU|~aC1OpY5L-`0y^i9csMYw~fN#NNqmn~}}!lpI`=9hVGf~9LJE-5y5
zziRq9(Uc(w=S_Q3brr^^<jF28uS@zbM9%o5;*v_9V&}&_wvM}u7lX)^;Y{LvcZs@q
zV@Plri?N@g3q}`LVZ~%;jfw=MGpW7sTA}*V97;+=TAGb4mkkLda*&??0B#i62#Oy>
z`#zEkL^GoC%(WF(3_OIP`f;-oO`t+i30Uij#02vZ(v5kJEkovcQZ2ROfVYkT((fu;
z%2xoM!@Us%0szbUop;uG)W|10MKVh(yKW^gLZYTZC%jYI!6Q^h=g<bQFTFw7Xa#+u
zu@s!*_S{I!r#7=0fpC$eM$IuU1z!aOy^*_xEdC|UwK!e|q>=-1H+!`dYLZEzZ*lUh
z>cterFv>Lp<tli%z_}=n#=yB@c|4J;*28LEGk4I2i-Qx#nA5p^+IuKeYO1Jr?x!L~
z#%$Q&6K)o$92{>Whg>ML97td~Q6f0G5>DQbf}okt3P6h&FIj&VAZ>0loHrNgNNR%b
z4Am6}8@K-e1cb>PRw9XYh`WQ_PRT}1AdQHO*<stg1=I-Two^8GD#wUs$r$YoAoOAv
zG^`>VZIp0i<+FUddN_1#vdF-X93JHJsgW#P8=n2P7-A6A=NCs)CY3=1HfB#cc^QpP
zDT?(aPiyX4&m3r>V~MZM_F9@~gzgF6qDtn3lr1uBPv;)fPLzmTqk4$s6iPucT^B2y
z+U~WE{{ZNMhX)#$*#YrCleY1$#Qu@2A{@c72$%s{R4%Tq8MpwA#@R-YeRMmp9yNv<
zWQEAhx-|3Bm|i0>9c<G>s+-0W*{KHs9Y@@&=>i+&$8i4uz-FL$0*o=<f`GfG%g>D|
znM>qZ-Ikp~Lq70_Nb3IpGaRr_G2I$fO@qN_v)5}9!oBDY!$#1ymXxx+i4>;_P>Y6q
z=@~vU>Q)|OJMlF;(7h<!2;uy`{{TnvWXJ5(3<jqFi<*v96^<65YBruVeFPXdo9Ry_
z9)iztp>HnIZNi|J8|P=5)F;iCdVM`xjQdak2n-6$qoPsbnDZRKW$iR_?i`T=);1l`
zdUrwVDg~86QEN40E0dLjIygI)fnLKhm=8UeQze2dm>)sqQv_Yc*aN}Bn?@!~<35QK
z24+hmk~ur+xzbCbcjV~SEPuwYvKw{BxkbzDXwV4kjf>J=RVzq4qj#)FIy{ZXhVFuW
zaoV75#y!~O=$aE|b9+mjM~lt634XNnOOoO!dy=FoJs`*tjIq|QLuH`wV*78XKcNE!
z0szViZ><<H<x(uk?wa$drJBMUo=OZr!5Q0ZcDD{Kca3NqiFeQj1Xgo{sf|yoC9|a4
zy#kRkrO>?wJPv%i#a^HE;{EGVonm;o(S|gFZJ8o~%`)NVC0R?DN|bIcaX|K^A>i);
zUwRY1G-<GN7#{}9^#V@h4`rnZ{*e`Q2kIk<mr6vWlyNeA{{SM<7K(<4N`p$8Erk~J
zZhnAwpjo#|;HM0%0Py#v`hVNtccD@_E*=hisxB9u1Dh$zhjZ7;eAHkjUA)_Oq6LId
zj|$Xnqw6u<S^lxc?hIZ8@vDakf_QJKLM*e*$oJz$m{-O+4==7Q5p6ZBNuOm69^4x_
zW|@Xq+~-085)wvi&VHb6h|SGWGWHEkrMs7c@@?x^Xu|OfRR99OMHtr<jv_vXT3(wi
z#erfto<zK<(i}^6?LaCZL6sO<nA$hRBL4u>FF=dy8=cC!51>WNsQ&;*91-}>)OV;w
zY*&MG5vZ!j^E7wm8GmC=1tuUdUKKXiUxH@$`z!X9OkvpH7m<1Z1_mCew9yfACt9=c
zfyEcug#d(-me*Uv6r(M(O-&hw*O8gL^~EXBFb$1H{VGzEpirC5v(90b2>j3-ItGyK
z7~qlSp;iIWKjMH8A`F?%*%aL&pr5-t-?e=l_6QlUb5G11>Txv;1iA6(jhR5?e7iUT
zM$6tZ&aOE;4YOTsK^|hJ6NTo_N}1Ya<wm)#;JdoD!l8GHrwd=tr2&OL%0*&fu6Ht|
z5?;cZj!t{M1**c0F@X6Y=UGBw%{&O^dLia)(^&Dp5>sh6PC;K`ZKgA=Xt6C=bOMl&
z5{~FXx}_zU{;LEMS+r})j;r9)QzJmVOj5}coGr~4iUX2wD7m|g+26L+@6MKSLyvj$
zSz0UPk9hP?Yyz8~+?5@6jW#e9Zc+Bz4YC!{Lcv6q`A4wYSy*S89q9RUbvV(8fPm23
zidlf;4{4wPKw2oF4djHw+^p%jP%YG4(NJ?GcL}Q8D&kRWO`JQut0|hXpCEWu%8xM~
zYq@>el~_f-Ky?%_6Y)@5TdKr#S>;#9D3SKr6^&yM*u&)^=SM8R7;xm<r>qecNTnpk
z&O84Af%uqAh1J~^fxD5zUz$n5I_2_CDSE}8U%*!OweN29#h9)xKKmpolTdep6YP2<
zYY1D%_KR3?&<lE5XHwo0hP}@KY*`&r_GlG2cZgZ2T*n>>{{TDGviD+kWNxeAi>p&g
z7G*>2H3r6qdj;UynLGx2{W@-;OzL;+2*3^%`AlJ+Dsk?6dZ3b41}+q9PQIjJ!HDNW
zVG6-LH=gYV;Xgmiw(+jS{tLSMoGXDsOQVen36kHN6!#h-?6r&3SP(OlJ*kLWq{CZ_
zy}dqa%E-uWpN+FCA$ZhYK;JhrOi)ORY#x3M6@YBORy~ail?oEh=rVb!^yHePK2>ud
zd%^zzdN8Fif>V)75~0rZodU3$TvZ6LH|5y(o>W$rF=#HjPf7;hKr%m^97woCoyt;J
zadBU@d`Nq2d6*t<zgYrzZ4<*(;2E_$;rh(l$7jsb7MkU@iMjWwdH(<(ztQ|jqR8YI
zu5mJDK2@IT4)^yGFrEJZbe3qevmMY3cA?FaB(hudseNQOS@&8XU7=Hfkek4lzhy#>
z4Bdmf+Obg#@BaXUy&BdTaw>9hy6;m_V|I=JDK_96#ID3>xtG)=T=s>EiM3h&5is&3
zj`LR2nuZLC4JVAU2y)(8@8VRX<0WtNmUr<zEx{p72R-1YB?9Sl#NIal02RuTS(LXR
z>^5gLKW?JcW3fEwd$5mKg^n`{xGOg=siK8|H7yy?q%N+0`(*J9<QI8TG*P*U!081X
zIVWalmFwt9W(#g_-?P%BnIn6L8U!nz$-&QoJZUInhx|gI%e`)@Dk>@pTGyw6c)w>S
zg)n?}KNC}DXZL@Cfiu-FQ-fzb99#}<K{{4@CA-vL0e-@don#)$hLi*LqNCA{H5A-X
z(T1SL2^5az2RF*3ncggTQ<ju@jXT9n><-|XcU-6ej4{TfHM;3P)eJ=<GeJ)1>~o<3
z0x;V0Zgl?uCQ+4Q&UJ-A31^Kms<25Mz7$=+!tPJCNIS0fFy|E7A&UBg8i5DSM_3)G
z@NY%npy1YB<s-dFH!T4!H3*%{@+vS+eV%L`=^*^Qmjk^K!_upMw5h1f7<ae^?`ko*
z0DJ5FPr*<mM;eLiDsT+m^V^M}CChZj?mf6O>7PyeyHr%bEjx_L9*EBU=M&OSK_y(N
z?t!-VbJ;Go;;Db1LvDm@yOAm|UHUMrLxlMU%O@(C?}~x$owIJ`*eoDpyF;Frqe!<~
zln1CPXf0m#{i;?Y0_csp-*p!xy`<m6*OX;XmO3oihL2{GEs1c-8=UAMGKn0Y`RY)I
z6;{peEbqN44c6;S>-^QWHLsahOgQsy;!pqq06-OeCjAPWsV7cMU2W?**g$ufR(bo!
zrqIBJEee6{O0cES?r`0O1V9LIGX}W!ZCT??#y*fmGNKF*4>_~Wqngpq%T7cFaNex@
zQ9KJqh!(>bs0=N_f-RLtBtQ+{qKU#tmb^|}>g3_285l^>S27|vih0@I{j2EbvpPa)
z%Q)uovqm}qQ%47*ZHf}MiC=m}FWz5`oORu>a#^!p4<cSvy11C}30IW?GYfzO8*;JF
zLVy6xF@W50PavpLlWceTV5rr`gCy!|vnYJaHFO$|UGM0WD<sVeoXc^hNr}e1ym~;=
z3Iqg9876kVCje=`Vru~5MvIqSqM_Dg1p8FtFRCjCvawQ)YKdNJ{TbLP4je-(gvI4q
zMO@>?XaJy2LM+`Q(Cm;-6w0~PfS!9WrwY<7A)gg=ES7gWQxg@q2gOFLf=-jPUqasi
zpA^?nONw7E+wWoE6e?;VC)}m>%kUAu2emK+$;$r#vFLbdCT@Wa?Onp49C5&!n=J1A
z72S5gNHgRoyGdhYd?X#Cr6zTCN!y)w=vJty#m0^TdyG8Nz`}6g*A+8<bTcra!7H-T
zOida!pMoXIo~2T8x(QPP?VUaCC|u@SjbSvIo3e7mpdt{7nNO!Vr66Tz_+Yre@eU@S
zB`B^EN%fZ!ix6S_cSSbzJ%)>6u%Up5HeS<AQ*dX{Zm!~WSo2EzBpK8p?>>+c^@uVZ
zNoSK+FgF+^yPftx<UsMkJ-XGFl~a>7BUnC3hNO&b6FTgghG=Es)Td3?9%Wfkvqp=@
z`3tv{8n_N^s9Ysfb5>tTB#nj5&EZNFXa+nD3N<IlkmA(kl?WbmIzY%}P1HMstKy!H
z6dIi34gUZ;B)150UjwJ|?YwKTJtW~0`%^NF1HDde=ihJIm`+wTJLP_fPPJG*adW*+
zH#7Dn?Lu&uz6C4++PzzL8S72nHBU7q5J=^wu>dMAVEL_OjUAKeb{m&_5ze*WL{x+&
zPLsw#o#`jmj0#wroe21;wS@Hp-i4$Mcq8JCRDh1^m;I?QVxkIh>YhtP1ONh}q6nhG
zEGD-HL9FGl>fLf6=TVN?;IEw;;pE1<iVVkryG+zV`zetzR_w;+`fgdP#{IA=Wl=!_
zIj!0%KnN}6p7U4Wq$|T?B)HS*J#I_yQx%Oq5i#j-=Gu#TF=m<2qHej9%)MV<;rIGK
zjh6}zGR4_y#8@f<bB5qL(-s^FVzT5@`N)??6_90D5+u%$&?2*2+&zsQR@)$~0W|DB
z#MwfkNO+j{sYexlm>%8g@ZKjo6jMeiDj~qc(KGE8B$sG)1bfXRnIt;69pbP;S~EiL
zH_-(bDyT6WlX%{Y5JWlXoJdX1(S;zkdbz#mcVv}mvD{twH3aBG&pSK)8Aepc6p}W<
z;kYy;C{DlKS+h;lmO{r=toVR;>|`J%IT19gDkM4%)WiZVaK|OD-&9&Bsum8c@~oq5
zkc0rl#n?wWo(aF@f)1fkJ5-nzdQb-d<{ih;E_U6X1}{n^Ljb|@=QJcB$Rdb_-m+r#
z1?xB^Y@5C+7)rrx?$Gw8H|9aY?@+3UV}E)sQp-W$V*78W1r~OW0^MeWU;@BY19e7+
z@sX&#l@3DprkkobWDb+UtX2E9<x(6@p#>%zH$*D$%#SkllvLcvuQGgpW56g@2}v;o
zN;tuvwt*#!1V>hM{{S{oENN3-`qD#pKJ01Lmcj1JNrA>iU2b=)v#fTJp4GXDd<s(t
zltkWf{{W7rNldZYXSGTrnM11{L08u?3F0ff+T=!&{NwF01=G%%QsjCte&tXIjn(td
zxksh|;>SsLXEf&JH_u0!078^VDh$wJBU#~n*%UIAHg`@fXd*Xkl-NnZmG9`@QmDB}
zg{cQKL-oD2P1-ZysjOAgR`dV{M$svtI?y`6w)M-3wgQAI0J2$0p8i=;ywY!q9kT)f
zqBH={JR=;$)Wo4cgo%0enYFM4ajA${%5!kLl`9al^VZW!!&_oF@${GwAsotSlPMP$
z{tsG<{{T3|UbgY)xW)efr6$L5M9=<ZvRqyb$5Y6?Znv%?FoD*7YE~peq<ng2RLDDl
zUwUs+su}^!?n;yhZt<EGylWp!K~XkuQ^u|IpoW&^qMDo=s&J(|M^pjsRnd!1Njo(+
zpd!qT01FwoihCP7-?e=l_T=k@x&Htj)bFlc(ZuR^*_Y~$E*>gBp&K}ePQbV)BLzaa
zEOMf}t2Q8R^Jk}`P6+71caRH15CLEU58?o^609LHhU45{l`S#$QOPwNpGEu~m5Y#Y
zWaU@dH}OEbn1?518L4jz1uVrTX0)*Oh<lqSTkVEekc>;q*ymOhQ@A1l&4-iyOetH3
zK5GSC^%5EPS314@>lw<NjexOkCo)P!rUBGyFyrm5H*A(j?dqoH%X19~glC@3^rv6i
zn=Ye{Ev;`u@euc*0KgzN8qLwjT3+F}mHD6`K)~3rE|q&BVR6IWjHzG`7GGo0EEWOY
zs{0iYRxsft&tRPBAdQP>On6pohHzw3C_?8Dy+B!DiQz(_1uGlm?G&+>i_#c&*<vh?
zNUQxV?Ibo!8kalK;Rf(Qq=K*;8WW55bo5|vh^K%?K(*OUO}bEpvfo>GxyrNkBoV>J
zm5yGhuDXsd!FTeW269~8UB-1k*lqD2<ZlJ(2X}0I-ZOv{xYreT=jNlF_LY#NJcGQo
zsgc{59*{vmQw;}W3j@*~ZAIpy>>7<$efv{)bu1JJoEA#EGP%Oe-00w0gC?ahp*KfE
z&1LnKe}247cQ*bqPGbYJ-R0?0EZEhN&aTv~1>oI6!8vb3K&6mFkprPmu6W<}qs7FH
z9LekwMM$@jqMD80hoy67pM^plEI5X^W4??fX`QMWj}X7Zw(+jS+mM)uIIT(y<jVGR
znw@0Dj_YpJOD9C|#oB;M#XYP!#S97)By_FSYX!U*4o2Cn%(|)ZNHPZIReHh0G&iOs
z0JLlMplXbnUNy!!XHu~v2Y>t>_KmoTjmUYw?L7TUFyl!RDCZbaWK8mt?NM$l9O~tJ
z$|`@_DDI}k?sZ(NmdPLm%;ZGVTn>Yfw_#11495{U405autXYQg4m?w1e+GrIIjqx~
z)GW6dv<$McZUcE-zx13P$$qDzG2cRY67Bb)*=2~_{{YjlAl?yD!!Kt<_C+MoB0wcv
zs#T)V({GomSg`1hZm@Hr=0C&l^nVzUzXb=8(y(~YT81&QusHzILDP(33mhzSqal=2
z91yxSdGYs}cNE=@*d2w37`J$<6uEFOQ^*df!mz|6mK6rz<C@m#$fn34JiZmIl8%2W
zknVu)e8A^Q(Yw<HBnkmS!8iCZ!0xR^+B<Zbh{yJ3-^8SV7t?Qnt!$p=kD!2%glXNv
zB)9t`yx&5_=lih58Yp$epRjYRHbLMLJZ!trYcLi}0#~hyWw3`S!0GDOD9)j@I42`+
ztbG7;r{e{~(PNcIXgWK<>n?|)z}U_Av`0DsZuCYX{b~^v6$94=K~ac{P{IfdiM*o0
zZW(!4TlJ#gtX#X}T%(S_ML^bY`KHAOk8FG?dv5^v3JSq$g+iigAH<&1Q1dWuqNB8I
zIh^Z^yw$#o7YKN%f9Q2zVx=JheD|8a*9TcVY{gn02a*1;R22h|Y>feqyGHru-G>UW
zRG_W;JgvU3I5Van=;qYAzLM1(jSMR}{+jQsFi1m_k+c5*8bL6GjlH65*0xSKnm&ni
zy^MMhM5L*4-pYl5(6y=711zPf*pXmjcs#TNTxC{e+Q8#$kJ5$oh~{kEu~rdRR4`es
zhe3IjfX5@OxZpv~l_LYtbrP4N29E`U9s>h>&@WKg1tp@~-e<^a&qsA*$K3V9*TWd-
z8|x?A8*hhSXNAZ^i7z=fpKa>hE|(z??n_mw`|M8<`*NoW7g_a^iU47kR^wIDi8Mq^
zF(KZ?Xtg+od%LwIWL@sAwyD3a6S$=1A2jOn1>(<-O!7n2Aa*w0>>yUz4<()PQ;()5
zqN1Tu@hoQi9@VG<XO%@|DSfJ+lDBVzKo1RIoanVFio1ma*=kdc22P2&uJ`R<M?JED
zy$1|?Q7FPZ2Hy9qrfNP{jn)x;w#qGzH6D$@s=(^@sX2+BE3a9o{t`{ZdN4AsVIW^3
z4s9nF58@IdE%h0gy(BLD1ZzF<bA1AmE;hKCahp5#-KqpJQ+|wfs7S#%z%$)*on<pb
z5|TG5ewb|1k-v6dHGa|uYM6=T6v2E7hA%e!D>Y#pOa4zk>N2z{)6a4*WDa#7tzugn
zH>5NgG8-dUEKGTw?$yA;Hpk=%8~#GjOiU-bPheC~*-F=T$0n6~<sUXXCe@K<BT#4B
zne3O?dAXlW)bVo%g6*Xa7kjerKtl&^i9Onx2;^KoxB3D6X7><2wWL|oDTeH%c5Pfs
zMsXx~tj<U7SZWGyJg~Ju?$N^>005{kfscUumt~28Cwv}F0_IX}(1L-HBZ*grS^P)B
zrfLZbO_K`hQgbVtkivDIn_~2dc!<UL67nhHhK$#WaK?xL1sF4*uHst(qbVWG^cQ(1
z*a~G#y$_OV`%8$r<;DJ4;TMf#DtYUL;!DQZ?VkBx9q54KcO~~~Wus#tO_1Kya9|Gi
zKYDpgB<%R~#MBhb#G)}{2dQW`30h}b6>ilIv3D4>)wIN&<{h5Y47U(&Nb%p(Cl+CW
zL`&F~V@Sa_P+=1Cw)e*^_|qeVIyw51i3DU9YTnTcBO{j730OHh)alu}sP=vg6>vQR
zffUD)3K9)-O#9JnEmIc$-X$xf#TlRSy|kb%-9jFvU$+4#Y9WI&J_?r#E&_GJj(|2M
zj$|}KHR5(c)BE`MN_TM{)Ds?T^H{eXMj^&h!H3tSB(b8&k17C>VjJ<KknX5D%k51J
zx`%ek65aAR7DpnT6@A_1k3p?im%HNjsY>|RUM?>>((hV~H+nN;xheNHV<zk!K3bR*
z0GhK(q_zj{G}A7lCq|0GsR^JD51|Aqb&GJ}Fz}#7Lr9+GL?kdA6sUd9c!O8kR$N=c
zriTyolNi+237WYYf(~s0{fMf0O&=qOFmKq#a;#k+PE?$u(jRE0M9*TRzWgUFs|!JO
zNseq3f@eLKaaw>#Ddn9d>;rM}BYo>o9Prkm^`td=5roCDd9T7~NhZ-FuGZVsVX=1*
zPo{M4xJ!u|MidaW6WER7BD;#cG<j%Z2`i8^5CMT>)pahAJLy+&L7}&^_<jD5T(ONz
zUn*2gfzk<gqUR*cfS0ud3|L~T0IW%Fbql>|yqQIQSqhfQg3t<kEi@U*XKBT6AE;g0
zk=2ZN7k#6hXMro09p2k77IfSJ<*RLi-2j?|YPX8MS_~$^z>i{#)P=W)*ma;Dm{FpC
za%qv4rs6}1w0N}4#*`((PBZ6!60}XG-{vgu^qDG9d8M3U=JJhLBf%0!`{Z0|Ur4uf
z2X6hZf{8eXVMTbcO+CU6Z(acwS{b<)q8=CqM%eIH7Hpi@Inse=ol@_5wv>^adIaQ?
ziObT1{vpK)^Qm_eE}B%i9RPct^k&t#{7_bdaPq^oT0jjVp`=t>`ie|mw~{H=zz>=k
zXeM|INsYLqp-kDTDkvBM;67Tm)<p1R`qGUD1WqJAHfVu!ulxPUi_~E(oOjVNtR9dq
za%uEto4Fm;E6hHCj`fet$8=iZ{3F;>;jG4esm+$LYU64zzk^X2&(At;5b8Xt0zv-(
zM;b79Q#}AX)r{>Zuq9n=dQ-`0wU$bsyu+XS!!wuyIF&pO2fC6z=MktwnC?p2S2Mi&
zG&zo{`1C>(9Cy+&1HCUs02~UO1)Lq)dJ;&=r}jZy&crZgig!e`z+R3;Tyd~+K|(M?
zmb66;Sg9qU=#{as7#HLn;)=<n$S8x-st1N6iAf@ZoNgR&JiP?26T>QtZ|$-x9u~~_
zoayQ^ZYHC5y%I4P4i2X0F843#4%qW7gXosVioueR9O@ur*5>5A0rx6ojK(2pYoV26
z8@5k810Ewktmp_B1b+b$lgxRfh=|S@eEJ-WrSVpt5k~!~vQ7kX5s~Xw*K~PeJR2tG
z_~4Z5r7`0K-jl^F6=d$i#Ge#%cqzpc!((CtjxlPnGYy&%#KfRNgE25l`Z?_cM2QH}
zYmjitr>q|~4|~)|;B&XnqVLKmo1_nSm0^8O=v;6Brh7$eh>ldGBH5lNLdPmg&-3P?
z-IfK<aqi-6fTdvGLsDH6Ix5eaN=P`f^*U9BWtrFrI5h91ZsQ~7j{=ZmEM7#ssCA23
zhVRE1qF4w4lz&hJ;67sk)hg?X9(C7WOcQP-Uk9a1+L_yB?8()XrP#a%f(c9>^aT_g
zwWgt;VNJ*7ZJ4fax&V8&xp=^82Y{<VY0VV_-P!=#1n~N6M6_>O5o~;p-@AgH%Sv(1
zqS({2kt=iMFFmo&WRe%K)xMBkNIRu04G@Vi_a7pKS*uF#Uk6>5Hq)A-Ud05J+BYFP
zuE3qUCYKJvv#6Hz*nFM<A@+It5D<cB)@%ic0&mFMr48T^mibR6-938LmiWZhq{|&P
zeUEm6a<Cg`aw$U>mkk~Ud+H#J4d2SyNMpdqwMTdWcMLtY+3ct{K%VnQCekjVyhTKf
zZL-|S(p>ngDg%NpHXhHct|06YAwBA9rqh@=a~02Ikg<;(9^~__Jsh}s?NJp0FT8y*
zMl)V@#O|9lDJLqzWS<lXL55j3JeJ)?)O;34r>0C;5Xj4$+M=0i(u$ts%91P)7;-3L
z^VpqZJ5qGXnF<<0KrpWSYhC*TF<9f3T`7G#G@(j_bsCejGuE_XtRs1|G=&HpXhtoi
zNP~;xm0dJYcS%R=YuI*U1A^s0iuNii*gwly=OVNVA<ALSjjANihN>MQ#0$~`y)s8J
zx$-6NP^l~oy4UYmkt}ik5hg_P8!rws&0m77>{*@x^3s4lBT_<fN3*_|2H|I9?q?SY
z<@a5-PQl`f;ixT0XVKk6G{pJ`lUEX8`Z!eajDHr3f26fzTXO@g7V02_+<C<aAHsbM
z2O_Nir^uudl_KKI`K&7pEl_Rc2MK@WDSo0d1WowIN=A;mKYHz090Qe^=Le9`S(H@W
z(`Yhx4o1mW3@#a$eG{YTkOZLeyR_4$Vn>-{tZdG%)Fk6$-F2nCSS^s8$G3N`K51A)
z4|#7FpYZ$r9<snxhyfgf8bKM;iRD1)8VpQJxPmE$#Wq4PcY9Hc)&`L+l-i&6j#Miy
z7tx^5q@M5{u#<w0K=*1ZxdFZZ0Ec>zh)lbSz24g)h69dVds1MGUN9Znv=CduOR=y@
zM?oXG)laGlp5P<~Dej_oEgQ?k@!63^Y!@WCt~5Ze7LsPX^~SEgV9!wR8$Oh?u4To0
zN+##~s28LWl)nIX?${Gn0F`p5K~z1C%F8s4;$HVht{q~{ov!id3%E#f$a}o0no1KA
z%Yb^78(U{>bSehINyhJFdC<-O0K{YM-B4628~V@z6%_~eyfMFsXSD3UF)u&;D&5Qr
z>8VqWLVjtV_D_LWPFYRYJe6~{Am3-k$+W@Wr0zewR8%AW)Hn60@9R*c$Qc<s(qz1^
zP==A72@Z<Xxf?;f>C&MuVN3%UBlMW4*~2qkY7tPVq^Aw^DMZWecbl0h7(iP>X0_CA
zZ~p*%^r^^Vw;p=yS$`iJvp6@QBoQKH`=;H<Gs|m!9@O84*w3-)pPPfIK3#*L3iF|1
zi3UaT(gfoq;I_|qmdg%=)CRK~RuhC2@Sz)%K52Lqf}_(EjS`Mw1^7j}R8k<9662%i
ze%&>&8ED_FMfAl$@@+*Jgc<H`du=rV<R!exq4h#rN4Tp~fSKnl=cxu6H4aYx8=cfh
zk_i&zRP&}>D*NhcY-LV^hD5%DHl(3&Tz&UKzRtto(lQKYipJ?=Fzfs^mcxx_Ww!~e
zy+C-y{rw6FJ<Y#qtTxSMjOmCIH;wtJJLq+7>lo=)#=~eRcB6FCjT{}#`B2XI!i&SV
z%*O-RDj>uqfo{VO2ELAdfjEgLfBZeFSV}>;$GP64<8G}h@3&l|8PoEhDKz0&?RtpL
z;1S5TqFE*%$3w=-1%Z@fP=7d4TBhR@M~L2rvTEVE%tCS5ooBFvAkT{I(uaVv0$azw
zpxoe*yx8`8RHex&gPqpY*^|yiyUm`5_JvF$Tm+NgN`N!;*Z||Y@43>82J3B%#hD%v
z9%@%OAaR-Tvj$5v7Fz3-Jk5$VP<@m&0;MF5Zj-jwoTTD`?9@@QN#HB*wmVz<K3boN
zkll0Ry?$+zOizT%+Gr5r6#QNMiJ(fZNvg8FcCL2Npb$0^)QMTaqCQ9)pNggJR*xHb
zquJRSMlw7kdo?ngAUMJIHe(pF?ix~IzuJj7MI$wn#RI%gLX478Bd-0iP^|eQo8F~-
zl=B#OA7-H{g8TKZezs<Jm5d>l2TBGh*_^@GUz$5KD>xc)e&KT>7+D^9)_=&7!5s=i
zmRN^jj_QrB2T54GM)3Kmw)^at3lMjyeT|7T5{~7E-KlL--_k@)A<Qsk0UXh>053K4
z&M29<>ZO5)gTp$*O!j&}LP-%C($OAzvc^p4W&>tBkYU82kQN)fnmi(oW{G>?JjHK5
zLEJTz+nuQ0u$n7OYVfMYW%jE`y4=*aOgHU?J|<2siaCms<<!VR#h}cqZ=WnfBh?a+
zfpI71phGflBM#9(Az;FT7%5b6GuEco>T(`au(KtqBB0VZS89Vu;a#|FvMoGmX5=a>
zD9cafz9ZatHeJt*nq|2A!Qj{eLfY?Qm`Ogy497v<vj|)+y57xaf|fKz*JY++z8_As
zfP@o;Axc23+T?aB_X}dmb9GU&uM@aWdJ#LQl_{MoQ__chPxB|O3#|#(riI_JWTJUg
zzag;j1g}a;;y^ya{ZgSuVlCKm6x_Y?*diMU?iqV`+U3F(;YzVqhZ{vi;6yQ-og|x+
zAZfW#vR2JsaG`4fGg1$5F%fS_>eMPaZH(_I?(r$2t9UYPMG@<>oGRu<recT10{H<R
zB<xo=IM55)X>dslk&R5@d~a>r_&LlSpndyLsf{b@`~4oYO`1t4i1C&#%S~@2MdP(R
zaV1`}ii5!S?5Kj97rh|sClSfn?MRb^9ppa6EbK$i_6FE2+uT>)fR;%n;>B63r#Goo
z?kK=Be`;86ctdwI`nc^vd=x8|Uwa-(6!1r-Imjh_3$0^5vQEw%ge6F76X(6mIM1U&
z_=^h122U!=*hy@Mg4v`=FONS$fCYZdyAssWu*l+Sw~UVpSEKs7_&L-qMw+hb=B%}y
zSOa}#2Vw14s0_{*sN)zT)fpv$X0|?R{{Z0!R%dAVRb2v$M#p;=0m7|r2wA*(Kzc3>
zhIJtK?LvHTNFt#B02kHj{{SVQf_x%7o|`YETD6DDmXj9UG;Sh_ia4@!W}#A8rnrvf
zUWmPV9?r-L*B#KF-{*l*MHAHuu$j>Y8^WWRG8`Y6$^QUy0T4$Kt1(Wd6U&n)Dmwt@
z#rTqP+BmFdS8e8$6@eQ;iUlHEeHSASI57Cw8Az$f#Py(^ARPsYu|acJ4n?*pDg%2a
z*?1?WM3VTSh*>ZJ0qe9EsLqA>CNg`Zvv}+=?%?$;+JP}hl;XP7Qfkj($>gVMM4O#9
zjJ_7wH1F4SB}oY^fv10pAx9Nha82HjU;!Z;&l(UC;OsO%Q+;7CcAid^EMr2O>jr`_
zIkb}`Usk4m&Ggv)k7J^+aIcx$FKA3tcNV|IXW>}mm1k^Y!e{5w`Jiq>9p6pFN)3oI
zJwkz~AWXy^N38_<)I~zYfpSN>*&`BxH~#>@p_PJT^wp`yY^iKu=zd1C!J9b-PGzY<
zmy@dgi!pjUFnd#uabG+;)!voP0}pMp5;v}F_L?vg1Kvy8IoIc+6<iFJ{{V;kK%x#8
z94!tv2Hf_dA>l4l1B*Q=_h6f|paMvfI_*CuRWTHW>3URHlNCHqZZScWLSO+0^>HY2
z&Mvhp^>ZNh5PGKS;*H4r(|Z8$+a4DscOrYmUHdT`#C@k`6^#QD1ff(m-!xS&)t3~f
z3PdoF++Oo$RWv1~E4*&f_96#`j~iW$(*5N|z62gDzgqeh!c|VVJ^NJOl^Xa0aUF<r
zpondOn>yzI0E(VSh`WIKQ+Vr1F2t6jJ=UhuRDMcz(DwndKQ1cnQSTKdtiW#(_MMX*
zf*fP2QcbAD075y`!(6)D=#-@1Hki(BVihn8f7>2BN(d~&teLc&x6->9@4MH8X};>`
zK>5iD4uvJ}HimM2T54i0-Em)SQYmWA6*&pUu`PFZ@Y9ia{{Y<YU%Mn$F5Cu^GHjeu
zqNL6A2JV`3k6=h1#>9u29B4(k)JhBbQW#}XKKU16Zt>+)H_9iCYqAFCFKUQV7ZZIF
zi(fb4{{U$nF96)L>U2+&C*eeF24M8zqlH~!y2$bPQk1ZYKQ7etCnS9znhF;<7taZ#
zrOjmfRy_3-cE`0fGdL7PZ&Mz%lx3w{NR+lFs-20xxG{mvwMHAgPXN_C<nvG?5y4>i
z+dhUvhLtd}8RCbq>HK?d8thNzDqsrori;a|iq6PG^0j?}o9wg`334amptr9WnQtjs
z%V)|>`>5<`3c|_U@5Z$oXw%x*9%1m-L#;wH5grJh?Hwt=WM*c~s0@G#t`mY%;jRjf
z5)=z5$Y*6GH=$oy4%H-23-=nFqM!&gIjlIu^jd`DV4+$gapU~#F`Bg|p#ju~dQlM7
zeI-&LS;MHuwF-c^A?O3WKm(Q@z;{x>W*6cu-gO3sl^bFU${h~JeXzZ(cw+V=onN=V
z<^KR{=5`E}VURQCQ;Y=J5d1i_O+Ww)120bgbSr^wX<V8$7?oKD2U~hF%o#UW_8h8U
zX5qf)w|$0&0V%GFop^gR1QD0;(g75t^?V20y*EzpSKsLMf_>dkLpEK*+@C6#4ifI|
zH94_xkPaVnrBDetu}s3@;*k}yVg-jq@jU2}C7dva{v9guTa7>`*0pseKyLR1+HAOy
z#4+BTTv+F4wEzG>5LBpM-Npl}+OMpj@Q`*2%;jY|2bz|103NI2th^jEfPMQ=X8;3r
z9=2RKl&O{(iT5wUXh0((OzkJCV93<PB$4&KpZZi3m{)EMo+b}3OX5c>hn#g%CV#1m
zS$q$*-BE*eL@xT6_yZkeA6Zf|TE%O>)erRy*>{zWev36ow@mXfcSR-6*({e1SoHM4
z(sUkh9c4)W03X%r{{SKo$ZBY*_H4ZwR|I|Tt9hSsPu}{{5T0}cmK<`u8?r=%)TRZZ
z@J5dh5avw;Mly~iM{T;vG%A0*C7N^yxJ1Pc=Q@U}>cp}7%l+3toJKe!%`g#s-dW_{
zvMymWml_moB)AoETvc9^x1Oidxk7$@5p{#upA{=)R;7e-3x2J-)&T-+6m0i-G~Z*8
zYXwB~BWwV|lTlqzs9ej}3W_9>LB^?Yn>&`RqNw~ygm=w2wTWW|mpNGHS#4#}G}`3p
zeV||!h?Lgjlyf*V-NC8Wc4Te8pD+4Q^YrI9JF9$=DdQOPph5-{-lS3~4oY=}qk!3{
z@D|*wHO<bmob}o^B&BPw0);9}sfz3TN@nnyhCV8A7DjYmuAZAeU>+*?daa-g*#Qn^
z{{ZTxUe8-t;WUR34ky4H2y2zk8p!PCRIW%2>O}2i)@9#S$J(<;hJ@Wj^bofXnGHmh
z=m^!Bww<yYLURMPVmcvCH+(tz0fxa>g)ADhn9KGEa{l*b6}n42ng9@_GZA^f^Q!_D
z9mSIF){>;4&8TRH>QtqVKY#hKrT`^cYxRQU8MG9v=;I8BIUZlzCTO~y#o4XLdV%RF
z>6Y$N`x>#47nI4`HmSsjZh-quP8I~4<sR|q(dS&kRDI~V(xnrfKeLt)NSok!H3U(l
z&QCN9JFE(6iE92@Mfzz`A$T+CuHDSSpd=x4vD?t<7Ls@p`#MlmsFRB!*y>X;40gnf
zhe*C^Qjm?!9@T<ZDV-`RkeM@E>}nvX$VeY2*iiGV2`U~#{?vrP$25D!$zsHxG@a>s
zf}vUPL@}D@g_L4<`YuPonB>#!kcPmpP5x-5=nX!-^@)g+8Yexo(xe5O8K{17qXpeo
z=gOesjNWfe{c1o<bvVYL(5S2_7=hzhtecu$B=8qHk2B1#*eibPShFf<Ov4gI>Nto3
zTu0kzq})#UJeqRJ2JVx<*(1D~Rbmz!+&j>YMiaYcB}q*6Q9YuSj!&ivFQrM$NNBdx
zCp8J@6VGL{j*EA^)tYy~vrxy(W!~PkXiOK~I@WhjbKqihp|N)odr&2(5BdkSEG8*H
z=wNM)iUhC$Roz&%bUT#_BaB}Im#=`q%O2BHNxbujJZ-|J`QA$%<M{U8HQ1ldXKtC_
z6m{YoAYYtjzXZZIY0^9td{!}>YgxmlIn)#>E*C^H9sQ^igs|8eo6OE-tw6zRrvCui
zK$ci|j5T30r-=L%Tl0<Le6<8}F{@|B*sM2EV%FhW@2q@EA&nhP&8bty1=Z_uVZ5S;
zGGH|lr=JRFuC%6U;ZJqT+$zMzUB)B5VOgWQQN$lBpK(@J8Xwgbif>srLJB9BOeN~j
z0s$IU6$0Q^JT%MGu2G#{=^R^z4Y4hT=H2+L5kf7I{{VL9MorM+DJJ1y;!?1-dSO_B
z-ipZ}%McHx>ic7o1%2rr$xOp5!$3Ta%&7q}lH^`auj8ibhIPO@k{;)JN2~AjdeUY7
z%}U8R-X7wp-p_$p_i9rjQO5qlqaF1<D9bXFWyyOSN*)Rlcu_>ul9I@5PD5uJhi-M^
zziML~1FL%*RGeRkMwa4M-RTd0)!L6O)_QNA%1W#ePO&u~wrJ6xkyF`nok;jJXcNMw
zPVrDwdg9Q7GA0P(QnF=rn&Hi7m!QxND|1fzn-@z-$y{)0(LfB%M|j!vM4KmX0po=^
z=ylED899Gae|8*`w|!*AK&0hLYbxN`;p<H3&iM5&Vh?^4oX7#xv3B0n8`Q&##M3o4
zqcX_dQ8KJKn7)@02)6DQucQ2*SF8MoKWR<H?j4s(WoHxXjZ4HrdcRw#7~SG<6+IC0
z(Sx*Bb!y^a-z6{Hr!E?06%JWu^E@f>{`YmLCUvN|k^_Oon{^1nGCBVMv={<7j&#w3
zIR)N1GIFbtIVLd|c<Wb|>f>Nhgk&sjJBl3rH*Ec$i~9tpb8j>$AemY*c~T`tgvd7S
zcC8GYHMz)JuDc}N)dt_U+`+3@d`o^FO*sDm8{rW^L<&X-Cr5IeP-W<46OB_7oh!07
z-5X1J7?``raHZLrD?=)$00<6EJD+|ht4-C~v2T7go4?TYuyHgLrwm{)(kZx_{{R@l
zl6MxSvn1dj_qV2YFB#lH<J8Nfv6@~vmZ%akXeJ!JX)Q)W6*+<K+R?a>+_H9xksFP5
zLLWP4*a5hy+$!bwifJkB;@cewsSu3GouM6Oqk<qj@$WSn%r>qmH{ECbq_8=uzrjQT
zV4Gdn1LP~ZO&wr>83*@?5@F#?T6YGJCrO7)8XI`c2Er&3vhZz0iV9ntoq!n*$jjxe
zF_gxdxg6*bBG*fga!y~?9H=5zl$eom3_UN+>x|hgJQ43TEr<om&(^zOGEj~5jN2^w
z2*VUhh7>{IgM>|7c1Z7AP(c}1G)bUT?g^yK=kZtOgxdwthQcb~6GA+YIpIKUf#4Ch
zC76ns$X-GxXr|Q#vJM%CywQf$O|l1cqp(!KSVsI^)~3oJYQT4BSAmBJQpIkWc&fJ}
zs%ZIos+yP+cSB%J#K#1#)giQ&zfO`_<lcgaQCb5JwDa^uH3-Q9?vjc*B4nAGIGk-k
zi0~HRWycN025h+zxvZvW1kAlDVn|3b@-X{)X6dxH{f*RaE1-7asojSP*P1L{N}o=1
zQL~Y=k+6$~mk3@4M>+x-xXMj2?yNz>Q(%nT;iwAurHZr5ML_ei#$>}vks{6#Ri8QA
zjIfEgJdH^DqM##$kIDw46)5GTozFBV!cnNxO-mP8&!u6{KyZCu5m`n~BZIRKRndvd
zWtpP`E<b`89NT{kWlH8pnr6U9f<N+|+c0+|?Lm&}kA(?~hzC+9_;%hk*q_eVvS*k*
zwq@1xfmxOBm4?esVkdyFzSel>nAtnjtgYn4a*fVS7Kmh<119a+VWO@AFgGyOw8zjx
z%U6R5)L#W<gsy?){w<`8js5Ge?;@0)pO-!ABxyk%maau$;OGwYqXQy?uzS#RpS~^V
zwr^U}?YGuZfwBz)hw_FoPV&RWZc}0v2z%o6`nzqa&=`~C9jzKBz|_C?m)T;NxS4A=
zr@&H7PEQ|yTNss)%GuC$Q?yJaMCb|dsg;OL>O3v6^2a!0dp&=W<P!6_-@1l<PruRY
zltZ(jdK&kxgY3mdhD0NwFLkN7jw&V&)F!12AiJeFWW9YZMY&MORe`f{ezlfQLt>&f
z%{$UBeWx7`;;{DbQ=x8H8TTkVTCVl+M*5(`7(2887z71fY#@0&D$8Rb&E-bnFegEt
z-QUf<`53%W%{#>sAsjkheG!-#M&RIZcg0}Ep{>8|@m!(bnYJQ=0hFA9-aX&adgD>c
zG8fjx&WgR49B7W{tB-+vv;bj%JtjA?N?#bYaC|EbfItaV0j%yS;-^w^XU65avNODW
zWmH_-vToz<u0a}icY?dSySr;haCdi?#yz-8aEAcF-3d-0WWUbdXP<NKyY}Oa@z$&X
zO*czQ=jvLszM5dP+Sh+~f1gj~g1nJnrzHa?{5JVZxqA5*ofIc}2*zAR_ts49t(VwE
zUec9bx{QBFKj<Wj(k-Kvw-~~m{CcyAiVW3ed&G!ObBC(?V)Qw218&QPrs8#1RWxu6
zlTymv)qBs=P}=?1`MsPJeVddZ{h+uvgnsA1G-#VNk0rRP!YZD}Wi1*7XI5ORc447H
z)M&{^mTZ8>!PE$)QkIDFvy*G%s8x_=_tu%h-B7Kag#x~V`-jV@vqp82;mgs(fgH+4
zKYYP=+4XIo4nyKOV?=|PoqNJC?@f#SC`!$aSvPncEk%hjM<Rsrm>z@?b;(q07Baqo
z6VdOdOC@xN=hVL;1Um?SN{YMCoJjowg_tCxR{r=a5GhenzLY`n@@?C&i_*!ae}}aE
z%Yq^3A*MxWfP3u(!h>{Qos!(CLxB1#PPoe$^#zwpsku)oY9zLMt0rBVG>_-}<p~4K
z-uGmITCsGi>95Y{ZD1@*ycsMJOF-c3V4Z>(cZo!W0a~=D(5I?mDLNz~{J3&T6-9j+
ztj!EyD|%82En8X_6>{jns%R-W7af<4`VgY;u({~;4i~#zfvbuUAk6AqhYzr;Sekg(
z{Yh3V9oBx+JVqRumZINJQV%w<^n1lLW=F-elohO>Fi9nlSB=2BTvnPg_Xf_Eyb{GA
zO2r-i!(8N`GdXy=a86|<IYq<%eyhlX-2L@xlG<YmQ=5Tg?NIfu1+cxx0E2D=HCB#~
znFnEuJz2Rdzis7V`&n}XNhY{k4CHHr9tl8fy&DeBu!B)i3k7DXbt6wOfRz0{Abboj
zI+D#NTbcx{FLi7bd78Py*-3e3MW|E87n3TNBk?Whv@WAnDv#o^{sB-ZPlalVSH=>y
zB*V{orb2^u%eg3Dor8|RLiGr)jP_f5buJ7==Y>r&2#I(|`#LF2Q?x1J1b}kUtA$y;
zfUkqfH4$7GXN%iq*thsXP-!$^IXWvbHGmW?+^%MOo^8vX1x=Etj}4u{e$6HaoM~C{
zaJo^ar^=xHVEjsp*$<=b32ZX;#z8dyeYf{L*HdXJ1~+V6*k4snp3<Xao%>o3hqVoH
zPyf#dmml|wx`;(rm3t!o3_?s9e*!XXKO1j;qM5n;B3TG@xJ$+pw?qwIs5d_XC!pmF
z5rN<}(sbvS{9OpMg+o}p(P$k#{)2Q$9(*ogKgJ&b#2j}gMnxlh$hbwEB#sOZwEZZQ
z+j>WCYrb<`DcI{P<J;n&7K+2KBbH5@Z8D>!6iVuIPx+eRs{$Kl1IzjPRPzYUH9X~1
z7)=p@vV=6oO72rFp>;(P7VJk#d3jxFT3kM|>eYy_D({%GJYj?}zfjvwr$BYQkJ&20
zUsfcJHOUsP2M4$YyO3=8rhAaQtvAeix1?%rS^Rz2S}q8)=%84Mp%s@R3X@KC=|`ss
zG}(1vukEGciXKg?yjTpN9?_N#p45MNPa;83KoXrV-m4S!9+M|*W!tRKDv<sZdU;uo
zu=)>xjaVbW&~0rx{29?zU$z>dt}-rD!u0U*iLm<+d--&_xPtR7KQ@+m?|24J_Y2DW
zhwo^_^i$?2x(TpKnxFRMQf272v`ExSiNIwZo;Y?eZjoSUGoAL>>j#UEG*TbJPPjs#
z9U|Z*8_YkP^an*)S4^r6mWsnveC#BaBZOuI;QKjZr@D=L1|F+tPN3a_;rwrym}$GE
zghmL00da|UWHeFV>5a)#T}c%s_C#_sy>V<Vata^4L}1x(pdUfh!xlRgd0|QT_K3c;
zEq?%Zy6xl=@X{h^;M`SOO!3o-p1^6IV$-Z_b%g}X&<J2Tl9^JHz_hp0IB@)j92o?C
z2aNc0HZ!H3xfMi;EYBijSwsj!-Bh)k(As4`adKU1=i7`($We0tzGRIX%jac0J|gNB
z*sQB_)xsq1hy4+0LZ)`WQ+C2$yS0n}t8$TznxPD8wx@2b^T55(0)XdoK8}nWBQo~O
z926=!QApTOtQOHV?E24luZksD)UE~l2o9}^SK%++B!O#-Kcc01_cQzyE(~&Q$U^2;
z=SUq1U_xQ9^^qG*W}u2UQpqCY4i=IFsD<dYFjEem9TO%EuayUb&2~v>YzFrzTD$Rx
z10Fxfv<b&;Gv~*2Ik{}_Mdj?9qxJ_bSYB==ywmUKf6CYAh4}dmq6qcK!}M3VbrKQj
z+I1LmOfSOR*sf$lD>)Jv*oxf>VQTo|3sZ_8Z7B^N^HLOKZ8Sax@fGJ9cI=_l!>rKz
z>>w>bR(Sz2D*55A`0OH^k~w1hLt8cgCb$T}_id{FlVo)e|2ujNf*|(~+{b!ze*h4S
zxqM5F*q;r(HedVCk?yy((icAT=5n8c+j?EXe}DIIdBP~-1{tuB!+ELV#32+t2Z=-^
z`B`Z0wpyH=`=k|lT8<5q(;>iC7LPlwVb?T7eTtz&==A&PwNahmz`YYKJP%=Vmf=3Q
zz29f~^*YFv8&_0|)S!M$&IAQi@zG$R;(X;(|HjfKsXNi=Seh$BRDr-i5YU}t_7$Mj
zpSG(jbywNqk)K0_i>fhZ#s>C`QHP-3kCOaha{?th7eP+JeFx|&ag#~ZZ`@mB;s@g0
zD$=#6<7i0jD!2_i6H6OCf?OF{?pu6XWFQ+iTlsDUo78CCK9|Ec=NUe5H_kk!wNLJ`
zsE$?Kc+^Em?Ff(6zs@MP9unI3M<gTY6nLT%TtGFt2ob4sFdP&LBl+XveEv*h&+BX=
zR+~gY2lu~7+Tv`>g2UjDbRm?)zm*L2kdg(kU8xWhN3;qp*`Wnrt34H33fWFwt7)Wi
zN1)isiGPd?IN9wX<~J36C3V*h*PxfE(n5&5Q?po-9HXwV=ipZ^oq>VYSyZw8*psvE
zTfpoQeG;zaS!<u~u~04#5IPC!C$0Elo`7H0xiTQaZb<!DV3&-!^hJ|&iQ~)uDw>~~
z{9HHT7hiBOI5v=$*ad~5$zPt(1@#^YLBVRTRlxQ*$yvbap|d29`<(#Mk~hAp(`={2
zW``DOPACV6<ejFoG*f%`XD7Sc$i>V8DlSa(0qSD@B*i25$~fA}&5-%apC-2Hsolf=
ze}13cwK5Nm$<t{5EU1BId8#f-wwn+n8B#{<NoF3g6;APb(xRH%sYjL?8rgo0H?CJZ
zh>6xLAO6z8CTs)U9k|uX&vZC+n;0u+;KGMn9hU5b7bX=;PVyVzi_5BfH>2h2p|S+k
zHltU<F~PJDg^`8v!Lj<)iyPz2#k1pBSxOYL(G4E06(|af*&HRB2nLLe>f{dPM8Cha
zpzOc>C5?m~b^@g!{06d3f;Odk%{-I^MxyHYX<;t#4T!iB^MAdx?W6d4@}n(T(SO<i
zBr=d~uk^M>kL0)LY2E!G;ULZ-JR(z|`Lz6Bj=5D9&T{WUflV2}hMwEqy-w}Q?xVT*
z@_rhkx!Qld%ktC8<5?^@@{+NS7BeSuF=TfYru=SAi>L&tLzS9p;MYU?tx-F-EcGmK
zudvAyQajv6nD}>8?sRUL{^e-idU%?~0sn8qg^OsdNA!ybwR8wvdK_L%<f}G&N7_^+
zrI*9*X#20}$LuJ90W`aXqo$94eo$xW&X8p=ar9sQL3b5)W6xgK<X)^SU+2J`-=Mm}
zyk4}ukQ>?*A!kwZZO3dmm(rZI|J<&7Cp>joaLnSq$258@K8DK8&Xigs4fWS=iuxjg
zzo=LnVnamyO@j^n9_0O-Dk04{KzKNtD%Yp#=zOh#1JkYUbj_zpJ@2uZe}W&>|A%qX
z#U25mwpS(CM-EAXA%#eyKIBi5)XjFKCwcn^VN%4OS-Z)9RnYvCA*36HjY>451x_O!
zAr87m4#y2+sJ^IwG0M$6QkISL8IH!w?y<C9uu2nTMxl5p-dFZNkQ6)9&ihNK;v(L+
z?1)ct|0KaOMm~h+GDr|CM^fEcYgkYOH=5oXht%#?OsI9ihW&5(s<a?tu!PusfzD@y
z&ZjN2`v-gH3U+G~<h`m}X@ats1`~M-M-Ga#sH_Om;C)zKD$|LTMU93lDiAls;$_`y
z#T(sBa}>e+scbahj(x-)laTV*NB#z=)Q#b;0-I0fJw~GZ#VJ^%%BsNij?}qTT!Qt&
zdzd}~L#<%;zt8#aqCF8EK2?>d!7hhG@mBZG)H`vqR8i8LD$RX6!^IT6AHM`2OKVgo
zDswRULk;pi_{*72&Uls_aVlsOYzJVf;1;Mu(|7m}_QRQzM#c*lf7b81sRA{J3?&DV
zqP_jsPy_t}vOsF`rFH~EK8HSo8hB_B|B_>8@YU5HfH32=p=tAR@LB&Nb&?$TlMh-9
z{W32rf1NOupd-Qs&8yV3LEW#Ge0w2@V)Ud`HF^mG6Y}hM^G|bDyC;h=sSM~^^h(X{
z4`z+oxCg&YJJQ3aGYHfXgi#(!!}224iv-QX%&m*Bf_US8yPS9kKW)j5+IdFiOq-8K
z3x#z>bF42zmbzf3JH<3hZ+&l;#lkQh&q5>w>}Nv)K8<yYf4I)^wQAp1Am^#U+j*YE
z@%6t<>|c&G(~ttm7M3>Vp)!I|27`aneGXP{EN{hD%55Mi{iZ;8na~-@8=Zw}Bd^A_
zH0?EPgR4X{F!L!JEY?ylp_3wD60rLEU!#28iX6F@XM=>B%sl&!Wf?3hwOCr-le?m}
zY?uR2(4a-`-e1!C?|!CA0BFK!&sU=p@xQ2u_8&_6Em~f3`IBg`f$^!laln|%_~h<*
z=W(K)C7*gkyLxaEp{G>LZku^%QDa9b#^#7AC=?38xA+4V1JB1=6M6@WhHNg&H*5dm
z-jat;?Mp*CzTq6m#J(ULNhr8jtTE5GJP2N#f}V$~f62){=v?(ntu$#XvEO2uMC=Tq
z2<chOp|&jQ6ss|piBAKwFhiW1bv0J*0$pql`%3>@f-A}2v1-m;6_wmHZV^SU&>62o
z70B&U4TI>!8dc4A+TrdVU>(A5`mam*mm;Pr<0v)n^e=o-AD$9-jU9f;k+jiY;6Ngc
zW1cmxhlzVc1P97+30u`AzI!Q0B$$`YAG?-CtdqE^Z$&{q>qA6r1XM>5pMD;#wAF7l
zPTLX!9U~bOK@YZ{E9<~Bl9y;Fuee8p?RhjQ!QZw-c*6~BBXm;9I>^RJ_#mjv4$AB;
z?!VOtvRNR8-Y6ZZ0LN!^QS2ZL+*lKqPj&<y^4+Bcrd#C;)YM?@l^)IGyvX|f_OH}X
zT~YcuIxV3ae=P-D<`?)e3t95tCX(kb2i2Xi(i-sa_pmB`%m35e^))<2%td1XB6~(z
zj)%uesS+mdX_XreRn=Xj4%D21F6Vy$NR|NH<W-GM+%=LaXJK0obJVD*Q<=ky6HqY(
z?iW<(U(v&%lfg?cxwABxHA7h~2oqz0?#|%#K&ipV4%2kddQ0Yp@W&#6Kr#m2OM*zD
zG-F<;3&oh#ic!g(+=0ysTq@t_=rPqjgugle_urt61%l>)2WxeNptUT)YPzlo@N8B0
z@xiXRVVAKFWrNT*vdlH-qZBF1pIU6h2+1}Esg=)2HA9+C^7p>{$I(Tg8H2!+aV<@M
zr0yAzWRjh>oNCvss?v{d`_GU9exdZdW6jtB0zd;qV6ho6r66j4T&nF_$as4Y-Bi%9
z?>unq=AZfE$xd-$gpm9hzO~td$RPDR$_w{-A}CNb@rSSe#YBCD@Bd0g9=EwfD-Nnd
zQrJJ-zgOb#fQAowjpahS2oW;~QefR&+(6Kop9w4bU|&xz8ZF}_#yRWT{`bTFK5w6I
zDQD{(4#Cw`{ffqIaF<_Qu)fEp%Fl^-XqTujROmKtiQf<b!>nnQ&#Az5_vFMZ&8!Sf
zBzzGyIjqeh1j<)yW2L+Q4<!2)2_U0jr)0~3wd2g{%k?txW(kdCl-4s>oa_$y@=%G+
ziOBHK%I=So@<q=|<<LHJv-V?CpRRFD{fhQE!$aEd9sb)lG&&&<d4xb4224;GYJqW!
zD{c8zj7f6adbY9s&N<%Ot?!&dciMUsQ)<Ou>3EF~4wbOU;H<Y>o$~ZZ29Cw$`nyo*
zXe}`q__Y|sI<O}x8P_6UoC7p_9<-j8CBWsr3KZ(NdmL#(%(?{8`X5#Z4)%(#0FX$o
z|AUq)i{_x{cP}}~kO36NZuMJgIIF6<^aiohOXJm8l=<Kb-14h}HPX0b@NP92+xyKW
zH!xhxAaUwg!ZAygTIlpP)6x}q`L_U4Icp#_y~_8b^aaYkZ;L{p_tRNV*B)2>d7x_F
zv;X2{rF#wY^tTq-3@tXZE&G4{3m7P7f*u--_dUu<SkUC-UgRV7N!$oH?_(Q9`COi^
zf-rj1SwJVF!b^Sjr_6m-H#;JOlDR^Ujh+5)TT#S;mqx04aX5-hSMaG{Q5y+4+RInu
zQ^=#F>Hml3u+^|B;;Q@9bQMO4&x_vbC7^>Mg3YguyUU)DuO<R9bFa#dDD$xJVI|SE
zpm<snd~J`QbNY0_q8AU=jqlTyP{7SEy4)(<erp5?Kl#0QXa5f*%V_%8Be*J$q#R>f
zzx5Bxk<29e@mN%pE3gDR*3CfR3Ho8@1{sP;T*72q3-0FnrwBndPqb@PSB#AR$<k8k
zgP0y$Pblc=tenBk2Dkn*+0B^a#v=dtdQB&0vrZ*Lgd5w``f;$&RDEVUZ!G_<k_*?>
zit=)+&(ye~epLfdb22G^6q&`OtJD6v^0chKttlJKwW;}Nry#n(2d)Hn4$uHO*wVu~
z$XwlN{hW9^{CL~vD^BW94F%<dow0Q-GQ0xhu^#x#GH5x7Y!ytb2U8sgLY0`o)gW2w
zjp;y<$pX38zXj!i6uO7sdqyQY-m@zT<oJ$_12r&#kb(N}G9fQY#%`fSEbw))`=7K_
zw{c(oC|<2}@TXP&Z@%|$-q~=+Q#p^tE-T>zb1W7lg<k#JZG%r?4o&m8Mm(i|&HG|x
z=)Gs~KdY3Z1w-;AMFw-2&Cgw{g(D>c3%FjvoHDXCc9y|Hc|QE-m<sBB^3$VZb6E4|
ze6tkP=+B4>lc5-u)TI~f#LzApfE1akZizS53K;#{BZ`_IwC)ro+*j_F#gAR;WbRUl
zuP^yCX^j`Y5nfiC=fP)MxgbO39A#ios&5*wS|Yw3ekiSe`iK5AqFltPKc1Bz;D@<@
z5w_H#7|k(-_JYHxqkCx6QSTI{1tt5K?4<HS!@2$ynkvmi*j0&c1|u>HZ;0yjH>#MP
zk&3BwX7I}S=3xRS8ib$t|2x}NeA%?A!lg22y*93?XfK)wE$^lagK;UtJREJZCX}nd
z4pE~vT8>3#?>5I8=zRggh*K8x5dIw#3s<BbcRyjv%VD}|1|@Rus-`7b9q?;ZYr3Qr
zmB7zRT-6{v$+zHMTU5x_-C%5WIw3sW=$|C_9A#Qr3w;=_en?fg`ovfNxvZ#^d|DFq
z<gxC8=u-a4{hG@PiHx%7#?Wc#vH{DhK~Rx3vE@f`v8#^sG%DT4>aP$lhKPIX6Lvpm
zJX4oJjU&dO>Tl3$qq9OFGI#)ErGxs23emB-HDQV>p28VyX({cGlG0Wru?A^(wc5ea
z%+Cy{F~5zZ?MNM)YzIGAC+6ngHDA>5`t9UwMf!upl~D`21euj~_HT|;eG4rnDy}_w
zS(~WgzZWK!1kZq-t<^L_E|M-L4s1sJ91{}{=4u0Sf$Ua5^*CWHs~tn$1@2_Xpjfbi
zUner|WwK;1w|euA{+-fF06grG%Vhxq(|?iFuT?cO1wF%4Z7X&Rj=@X>lYY@;gQ8+A
z7&&ci!k{A<@|MQ0t+2#iukg2?MN>y4J9Te}!kgEB&8G@K$GUlsdkYdJKA#rEag~>v
zsG#@bHc$wt=v4ah4vprlSuh}2CBti*(SciG_Vyg5AEZ!In{Gu!X0C-=Kj6?nl4H@m
zY>T;L=ZicVrAkBl1mrE>UvvGh#7km;@>E!(nl-rL&FlK7#QJnafJK^d+9lD?k`fAN
z&9cydnVCF?>pw&EQ);u638o3&ctqYmS^vLY;Db9q;<HUhXWG`OrE4A=*Hm&eP&vrG
zO7rhs`j~FD&46dKzb2tXYYGTMmvadS(HQQu<SHuR{aKyzEGx03o|VQ^nEs8it=nu=
zC=1;HpX=&p1Dt<N>2v`T#yKBD=d5U9O6t!38NB}KFVX+pdYVd<&CrEUMJ-C@N#T^L
zVnoVHh(TZ0yR5m3!OtfOs*CiI7e(uQ=T8y^`Ki;`dUM%8|J({Q3qFHt6H$g~v~t%Y
zWYmsnS{6Ei`l+Zl2J69`BH$G$<Oui+EL7QUWM0un%fazuOVC;VM;X^DVhyQ#Dxv+8
zQL6v@#<<W<suhoV&@851)V?dO<LpNLMLRfeY@+T(6S0*2wG79({`*I_I!AZ=9E0_v
zuiPE2)BpJowb~WlB`tH3+qdeh_R57|oeBp$rJahFDswO>guSrCYZvy3;K=rE#Sz6G
zW6!y4%W;#7Ii=d#^OIRGy+kU<)u(T&7BJvWNNcqd=tO5sV$-oLYz8s&-vLl$#cWLR
zo=_sJ^n@D!*woiAHw#{T)mex9j#fw?qR@lo<RUg@-E&t+JNvAJDia|mB1-&#)WpeY
zt1=vcZ6E%;^c8I0Or2nV9*eumA1illd~7R!vSJ*A1r^3_1>kKFz7zofSQE|y2XU&)
zR32<310grxur3)FF0-JZ6_mBYh=|u2wOu!hM34cI#SP#2NU03rx3&W|E5_YW4VqnN
z!<auU{CP|=!+}OvsT!7dWT*<czoDw=5d%wcMT1?i1=I|tMJ0-e21y2^l^~Q3m?yzP
zT^!BRre49m0O9O_=1i)$S05@p{gx-BAYHqADlFp;IB`(NsH5cQ1eP%^05<sk4(?6p
zb&i<8EN~&HsLJ0`(a=!O(AY<b&)TF7ZxF%xOG^?kw4v_w0fu9H<(rP`Y~V&_3*j{z
zEAz4>+^-Lnh?@{IO+$2fUeIc#u96Mv#N(&`rsHev<q9I|I{ciukpmT292^{h&q`;e
z^7h(qNxDXd^3^M4%ja6`5GfucpC6rg8TKMjt|9Ke%{v-wCV(;VKOd}4_LI`jZ21lc
z<fZI}ks8Sy^x7F3wKCW1WoXyZ%Z@o`(#FjAzT+(SXufUhKwJ53SXeM;=wtEomH`uq
z@ac9CJ1dNPDS(V^-iuUVkEEnBp)(JuiYoS&H%K9?9oFbR*+6uda=X>tPNaXImL$Cx
zyu~8ee*k_-kw}g7j_irZ`yb8rAIv&xLD~{$QhOux&+>yW4ZMrWEg4G|WsmM!`mxv7
zkVN~GBRUB-%1D}4<fA=b)@QJKmO6Xv;qYn|ueO2*lm2qE*hS)uP(%Mbh8%U|NtKau
zb%cJ04@v4d{8}C#GYALu#fG;B<2icsBF#f0mj)d1&#Y=kHtnuI8XY>}Ez;*Zg~k_Z
z{eTpRJ8>rmgIc&&qMMVJ0+vb?sT5L&(zpKUfc1*G7d-NwgM!POp}Vpwtf}zlzzab<
z-U!&@8WTRL7Mo#cE2|HGI%?$}W=vxteoG5Q>_yEla08`4Zbb6_8sTyr7|DNZh*KIA
zW9%;(g#Gli4mR_e6&AyUfpESxH>I%+8<|3>@`Q*Y5-Qnz)JIV>GD$1b9fzEzbvNJ$
zV5it!^^!Q}Dxx|NJ)e9|r@vL7OSYVm(+JPE7{(&B7UtC((5Rzsld)Dtt(RA9-O5CC
z6C6ptXsB5b!r%7r;rznG8Kh45isH}MjqOc}d4jN2pOcxlT=zU1q&kM2pqk$Hjsmf_
zUJuY8kCSK3cky@Z(WgJ*fhK+XoP#v%>h$`B-V#}wV*4=;m)F+IOV^8Yc%nfsYcI$f
zKkP5nFH$Zrc*xBE;-hc4b&^Zl!CfdW4mQy!OXR{N>;XV*L9P3K<)4X74Ss<HcZarO
z)N3QP(`j6<)-88p`o0b}aYbP_#b$mr^jg9hXZiyT$id))gQa;herjwJ-5y3(nryJi
zz)W)YK<AH$LQCy;)`P7<swFy_V{oJI7TIt}>aN4@Wa6RDQ5xi8OhdXThu{De50S_8
z>xBq>XG;bT(S%gNPla-cp}*<|qDKra)WRtiw0fd#8fU(K;dEd4Zokb5+(>oBxLCSQ
zIf`7q-5K^mL`o5X*@^I=Q3dH{8RMv;Q)~y)@g?)Md$$)M{d>@t@!^7SC^RM?9sob>
z6rqPih6>dNhj6eDj_?MvGu{FJ02Jr&p}I`DGdu77{$#rHOgeMtbpjGDheGDQ(CoKM
z6&E)guvsE~WL2jP3k>g=qnKwM_V-q27lX<ubAtshVjB$NXJ^mYV)HidE>374_JK7(
zQjuVw5_nTOV}zB0P0MG|`&)bNb||uw8LQf!q7<utMy^lnLO>OWxKn-`dMl}H0&^8b
zuGN5TDUOYaGBiJ{h>kKq1q}sXoRl%RhA_<$kliUe)bk-OhzX^xm{iV&j-r$7*-L-S
zZyj|&H_g1zx?ALl8@wd)$hdn2m_^!$Aq&)Ka;nez4(`n9trtRKW7vOTrk^3KyCAKR
ztCf?V8Lc_iaKh`RGETvPK``@aAFtMBM{N~o;>=d$EhtDBeNddXiVOx^94`igTB<z7
z)!x*SkY8M4t1Tqou-!G}ZGgMncju%RCFrs8c5bHB$`L+ce1^9hQ6NEBOS+CO+o*A`
zIWa3G+@aZepPQTbJ@U2!Yd%e3A$&>}<V6|nEo^sY+d8P<QnM)Z!{!Chh%(I+ZwYc&
zL_@}rcG<TA=9m@Z(G&=R$XI{PQ(_Ra1$52zd~7h?yi`5u(y~+lwdC-m$1|AcLF8sb
zIfNxL+cQ(73Br-C##5bqi(F+z$;iw97|ThG7Z8&x_~yzR%mp;E&6Y{rS9}*9N0|<>
z;@lv|fHpoo>Mb|Y3_>^-=sSc!#w@flc`ct607grzX{}}DQP)jQ`3sC#T(~-wLUBid
zlAK+n?F_)pWFJZoTQZ&b#>XBAL3A`w`+DbE$mAE`g`mt*T@>krM1m;FMA45`SefNA
z)B2(ag=|7PTea$gtX6F>uPWW+jGc!1E6F2;apf(6-^c`(OpavoRJ_Y*>p?J3&M+_y
z#RgDew+k`VM?LpmmZA#>9~?uIi^dY{s4@}VZBP2Npg1RIzDYtT1^JDL^Mb2oTC@TK
zpnWRKCgWJM=GiXs5M&<jt$gwUuO+o8#d#{W0#P@z-DQ^=UGCKn!5I*{TGrCTKhz1L
z<5OK+s+?h%K8G7gGPHbk^Iu8@iYLDFDj$X5YgzkriGAhleu@WU>*!iS8UG!;O#eMu
zlye4PX@FrqT{sZvybS-NtRYQt<wx9SC6OJ~ok|%wIGsm3D-*O{S%LgWwH=P+p8U`E
z79IMT87kGff#vB#COB|V$oX7|kdX!wE5%W!u!^v$u=<it<Av@T_1nT1Pg<lB=s00_
zUmYCu<F*4XkrC8Z-XTA&XlY=s845kWpG*y(DlS?WN13FtsU%1<uR{N^med)hg_4}h
zxM789kYx~${gWvuWMVVbMMT=C<jN9{yrN2tLJ}hLG|>fw1gkGV-<zU*i2waYo7$N$
zIy#58m_1@F|4t4%)N|b{n$0$y`m~sozR@oPhmbxrai0F&UT2CI&(?B;DnwE-PhPVs
zNz?c`Js4oShjOzrd#CW}k)Gt|42AHBoOLr(ip`|lMqm(KrMEx$_)pvPmk&bG5GK4D
z4%s2f=K(;7iEHoA!}RD+Bd6`wFw1T=+!Ch^{SfdQwql1#9@N70q?{7wCNBP37!!)K
z<$_vepYf2WK*-yRq!^|0_jfhiItYn8p?T*_BP3r1go6~CppWj0jG(8mBJ39^8uAEx
zSfn#mkmDLqC&ZUE21W|pQ7s?!rr_U>)l%4QYHVEZ1AfId&q)zSG{jRUHN?AgAE9yi
z7A5Yj7gMMj!MxQ<K^dugnc$4C)T&YKBq+$m-M)vBfrbkv49=2<_{52saUJ?x^5#2_
z#v;dLLbjoo1RSeA=Mj?Z!+~XoSZHNNFIvG7NNzbP2r7GD8yo~_#y7_~VQttEKYx<r
zFB_}t#+mA<(nRT;kAn>b`xbiMMu^%#ZE+H{5JLB$AbF-yMCU8vTQ;{^DJJShVLQz|
z<hFXMRtZl^GY9<ibr$(a)r_*PgNwP9+*=81*}gMI0-7kP#H}zFZ8vpVpKNNMh$N%n
z8Pldm$)sDody?+e-OpYtc!gU++w{rK+zC4*jnfiiwWCGXRwna|WI0MZVee9!t>_61
zIVSSX$APXpBARx7ZI(T-9KuK=u^}>Nu4jFv1t~w|veDMzcK1D(|CQ>&^J;UO2PYJ`
z&~M15iu-49s7FljUZ~yPbqQI$KMhx(vK}N4u`N|O5APn!%{cWDUs2PL7<p#}x9+WG
z_Z}Y7hox9nsF94-d&$oP0+YhDNlt}el&iHh9}1z-dU}frzC!Ty3=t%CQ<A2bLBcIt
zOkIejLzfq&0Bf&CZF<(|g>0F`&+_yAsI!8CSnf{aN*&b`hdRUZF9>LSm0$$&!1?Vm
zFa!hZd+JZ5v9z_snf)xochv_{1`GbsM-FMgNGm0X-i!rP3nk)$&BeXEbFZjxK-B$T
zFNFG-gr_UXmHb>ZkdZE{x~Dw&e%=)N#P!r*+#p2GcB^icyY=%TGA`2TGoc{zklwPd
zi-?JAThC&#XJoAk77#>fO7l`pD$L&_X4a5x<DvHA5T(RxEqg?y&go^M;_^;OlcbVT
z(HQ-^(7`QCM8{}XKH0*G1zr<e$2C%kONcM)T;t?b%|Jf<a`${zC4krJgp-(tr-xZ#
zP$kXMDV6%(Uf{%?8!iY)7ytNyHx&RzUUmF(xN=hydrDj&GBy~suw&<)^TxUYud5AM
zDTmIKoC+G^;Vw*`1^}}~c$0!gY6+sDX2i#A?sr4FVrU9gn~Ks%tn}jM2OG;c5*1B|
zH%?qMCU&kgH&Aj;IPJE~lqDX$K&3$=z()pDD9r_|s~0kEnFxq%<RCax<spcz#2Z;6
zV2JA{TTnCx9<%p~&#u}v_4ka~LX7qZ92V1+WV$F3o)|$81fgTQ4n#&6>v;HCQ{ezQ
z?4D2+_AtqJ$}(_i7KRA>Hweu4*u`y_at&IfwCbysH(^`o@4U_Ghn<ug3R5vCYvpF<
z!e5?d5ykUnJW$XZ<g<Tj9us{^J4pEyIe18{s1rPjankO>)s2=~3!`#UxnnbA!OBdv
z`>NN}za8AfDjvF$HREqG>GVN5<QyW+sfs2C?!=t<^Dcg3rfNU)vk%!4@6pkZLn%3l
zjf86MdQf4u863D)$-_70oy+5lBlob|y1}XmNEUc3XwZ38(WI$m@by#I=tTF<wEL&z
z)T72p$B2;C*;ZM`(sN<2=`(dV$H5OO1UAT>OCMW1K@JyHFN*Jz3j5CoI4w6My04A6
z+$yj-Rb|vLyG^<B4BcUO5^EQDH6(#ckYQ@jx?dDR+~rNYHjQ=@gxcm3C8SX_Lkscn
zBi4(O4+G|YAhv&YYVy(BFv{J2`uR-svPjLnr=`Ab%M#uTL)JY-a&ck7D9CFrwR~v!
z3|=C7!i87@a|=d5^^zMyHSeC?YwRP}k4O>PcqfmZDoH*Qw;|q?zQ@HSV1N*qP2qi2
zlQm=tLypi{f$0t!5y|uv3qZmkpK~i=`lv$G{Y^`0MwuQOsi=!mv=KgT-_O)SbmO>T
z&MAF^<|x>-qU8D>oE#pvd5MAJ596zLRcBa<DwZ?Z%A>unkuJcR2;GrEfTG=6UWCy&
z!8mT!6C{cOV@Pr<z@N};(Y1&<UiWv6M;Oar_n+`x;lL*n^2m?yVi&s8tb!^F3Ihh?
z*>^ewvtfy8S0$Q5tND#M7VHkzkUT<GD}kZJDg|DtA(8o*BrWe&5Tm6!J<*NRoY*A!
zBWSRUeuancw1tq4bZVA05(j-Oy}zfhV~t(KOF^TD3}Jv<0A-a8O6tdrWu&1T=*CHk
zHGFP#5h|MqA(HK90k0q<G>%b1r{bCltCqdKRTD4j89Ud#)7YH(l-N(+tS6AaY&Ih*
z{uAJ{1Tuhg_iyw7X)9^!m(X7uOVhpcN|c;FSeilOnTrIv=ANcTxi&7%*Llb^qaiBq
z^EF+bK6ynxDuFaY@J{0t6S&})&G(u#8m=fxtC@n^p`YT?DV%v3cB;3bp?nfDOd4${
zeJQU#?bcy0$RTq-rr^atKx3oRjozsRx8b@GpbB@4lf1&E*ey7M%U7c5oM!>OD2cU8
zq$swocxuNZfY`i{@k@m$G^)&(?UMwg!LDRs+Eo+mJ&rrcXZs?xLD@UOGjhXZx3tdv
zhB5mvTpsc@;B|ES9Th0&gS~2VzJP@iq%wr@r@f*$h3D8eM!5Hf<!6JyBatWj&IT79
zokgv>IMeoJ?iuJ^pT>}~Gk7?t)cc^K;wF9g^q{n4tFGmDYim(VH-2A2n0hAa0oXm8
zZ40tr#OlLd%blF*W4R^Pq4QO@mt;3S!tX0j0{e3#FiAZas7lHbGEhL!vP4v}uN?Y?
z8Pg<$YyoWjBifOq)4Vy1T=A!*nm(51HF@EiE7690S~nC=gv094>WRZ7k3z*6tT?Sy
zVw41w3Jqs8ck|>j$L^?Com~}oBilN9c)V%xk~9lkc$P14-{uEPw{AN+;mjHX`AAkf
z=j0u?$gOQ!$SFOkfnofk*pz0>HkW|7iGkqQ3h7S^&4aIZ+_;4l6Cmhv5o<15tc(G!
z*XY2LIR*q1{^e@A$fPa&?!Dl8Hgq2DbIC}i!Pe1t(sZJG#fW!`=Ye^!nE(uTpv0ci
z96%!W6hjgzylIH9WvP@p98v>SBaHey&ZtuDxF8^Wp^Licz2g0xR@S^(QFBZyS>}uf
z01~qHmu-9C<F~{Ikc8xXIh=Wqq5&`UHNjJY#70;J5$cVW+<@X&q4IL-(1#ixpNP`Y
zMAZ&j%#rC6pCTc4*i*ULO+25U%ZmUX;8!T+9@|Arm|mzYn}H#RFNkXT<`Tq=8%;_G
z8?~r?2NLk#vl2-bf+hM*uK8#WPa$$`_ChulI>H1o9@S28T_(yG!(@`tyVss;>_)%H
z3gh_G)bU<+u#)UF9zREBVk+8Pp{8ZE0%3OpmpZo%CZe{#@JD41#Eq7G<Z_)Q58bjC
z#~(6PeCgs6Cfk|ryM$IdH|HA6@8~@GvAnrL+gZkwcRE(>+80yQ{!30;tghGJ!7$gS
zyokj|3I1LQU$RwWZnnCq`jqpRVqDS<y8jZu1Vbz>RNF(5&HR0Ai$o#WDG>n_nkPJI
zBCK{r1duF=&hlY^VRKmDlW(P(ooamNizhTvx7fj>URZ6Q--j?Mn)iEX2{)!*<~psU
z)SZpjYJ})v)CwLE<VH*K{z%|fX`$}WL93jC0*CBOx4c)y$)QEavak}Sc{uskyePK0
z^XL{TTbo5n6R2=+>xF576{(PfN^oSLg&nvE8h#39h(wDkJ1XR(AIBRd3rHn2v(7Ui
zq$14FS$yi04iyvx6FxNj98TzQO_=k<lTX=d3N>+4c_j`x+S@8f8L+T-!Wy{|TS7+y
z^N+k4=0_F8@FZ##S+UtJ@*1C!sKqi#J;@AXqL1@)sE;6sO<p!nU*E8?M(YQBp72?4
z_4xKNIFtjZ#T{n!RKF7|v~R5rM%a!}&|;2bntpoKE<_-%CB2jn3-hjdzE*L>wnsZn
zA0Bd_8PcLh_bqT+-U*V~Mr(yGm;A^;l3ZwNiAwbrm!X933X15l#;t?6(G`Y@{!u~?
zfbx)p_03r#zm!56dfklD#$<ZO6*W62P_-DpKVIe!F$F8}8YUJvkjhA7^i4*h7&9%a
zjZGxqjbAuTk^5Brj$DalveRp~JJc@mL|LyB30w>VovvcDQeV(%8vW{x_|+Tp$baH1
zU29(|9gUm?**U%B>~~BqZ4<owG-`r6z}kLH*~g_No<7>ac)NMk{71OnGic&qpsOya
zMo?05%mO_Dv=ihVmedG8Xs^yKn@8R{>9u^UhaLgnH8hrdGL5{mc$Bz>r+Hs(YPwxB
zYpF4z4zVM5an+GdUfhp#ggumf`blWL5uZ{wXAMM8|0zZAONbr^hYEV4VB?)S7Nlp=
zO*49b8$O!#9{`m15IxAG*AT@=b9+&qpz;IDFd~%m(vz$5?B@^49ex$l_IuC{;HbT8
z7~&6cY+4W)zl=`R^qunpy_*vc^&y#_*!*}d40DY5{a$G~#eq)1**mkZJ+ozJ5)EZe
zhN|FOLd(x=e4T_Q+JIv3NfG$|X_a%$v2WE5Q_hs_rax7>=sSjIF#|&C?;wMvF=k4k
z>w7C8F155@u;SPtT2nntOP{jkdmzjrqv$l4n~_Bh#wUt$#d$=benIj^q;3?lCyms>
zSQ3ApCN5^@@KxusdJ*ThTvPWb^cSu<YK+80ZZx(y(yWKPf-s%R&kqh`;U2(w$hQNu
z-4DulpO9}dpdS;F4N^H{$<AV-LhLTYWUOuGFFCb^ZX#_3`Mu*}hjxZSF>RW&(T|xU
z?7n>x_$r`Wd}Q!VdzDW`@DD&Hl1V3YD@7wwmV+D9DRCSP{A>7&g9`f(;&lTXDe450
zPy3Cc=wi+T{3)~Z>7lnMCW+^<elM8j7z7xhHk{=B*Me#NyePW5H4J^OJ&m=5fvJjd
zi&)jg6*A$U>^9ZP=1mb@a6Rpw(<Snyh?C?QkHgG|mLaBk!?M543C!}AuYP_i=5M*U
z$L8IY6(!q(({roHC5SCa<4xjKCB2Jnxlk4VRPhIZ78PMYW(X*;GH_I6UPLZG8?Cmt
z)V()aJ`~<+OP(=eJ+mO%vd5?eWpGPTSlSav$VQT9-Q{={=zn1}r2d?0DBY={nVAw^
zKXzZPg#8^oXb{fMyS_^v4-(1^uE#*uvTM-D3%jN}TfCuo8YE-KuhvG-DB>LgQiYr%
zSl{0F1f`HCVr=AljEt?Am220R5`PF12dC$%%SD$;*GI|r)5Ntd3v#HF0Pp>lFfGw^
zpTF@TL+7L*wwqAxsnnihI=P*CUkO$VZGn2&8R6TGZMzUfi4x<cl-nvj!Zi$X`7|h%
z$xgX~qIv6y{g<y&J?M}7d+1-!PMiuAtk2QMmcsoB#8XwIzDaYqAQqC1M4<cO`9V0&
zaCv>Ko2V~c{9#}t&z0O0-o!Uz>?3hjtx4WNCsci8Pqk1YS<x48C=x(xhZQCeGMtPz
zRz?BIl1{91V6N+j>5}c;ZsrP?@<VwwTSac5I?T*Kk`SCAyr5Jby;Hv^XGHP$#6a+q
ze=JtGV(~4tXZb)vsT|2zubLi*+ywrfQOdhS!47(}CzE<v^f4qgoEWm}myUz`vf2U-
z`nlrvfwz@(9qZU$AySGRsV>5g0v?};ymm}7H`m<y7ng~J-p2uMdrSoiYi8llWTG@`
zx`~d&c;Ep8lG2<-A{-l?#n8>XP|{bkk&}fT-JS8P`$}p9gwbnr2lC2G?d5$`0gf7i
zKs$99lxbXxHpD@^>6NmSE6Z7@SE^BH9v5YglKH0>+BONZQ+W=K>moM6Gf@*@ru!!P
zAAs;AH)3}vtQ_-SoCfiX`15n|9xqthl7tR5xmDa0aaTQOsxelDfsb}*@6o&cWMiH*
zWyrd>UK1L{N}Q{Cw77;Eu#U>r2%M7imXbRJE~O>aIgnU<;Ce)c)BTfsK-vI?i8OzX
z={>`hEaj&d-9khJ7D~9G4%-2_xZzCc4==1!E!4>VxTiWKs_lRduy4mAL5YlZuBY^t
zR|L@Sj9{T~FDU93USmsvthPQn`?(ZmLF4z>iPlT&Txy-6?+Y0F&>7MVVXj@cR^r3|
z$VM5#wP^mie@8a+oF5SF5AGYZFPi9*OUgVXp~pH`b2400we7(G*B3)HGPbLP1Nb>q
z09oAHj~(UvR6+)e!CcF@W#DG2O!^ZF^^U`LJ&l1%pP(qEuhv8c)v^G}zBuW8B~5hi
zKHG=CwHQEcN$~OwUt<O9p>A02ciPY-Wd^5+lAIW1dW6l1bJIf5;j$&2t&NX#Gt;M*
zu<pQ1!t%3-D1$=r1>A9^bz>a7@^?3$5re&2SQ4h4*)ckh73qMGxl@&rjSX`@^P2k`
z&|3>Qv8YaO$xc*h4SEE3!r4m+Z2QP9hwL;L8da1?Vb?!Z5x6~DiVu{LGuCC_;-X+u
za%CBj2zVuX3&1-6nyl!ouHV3+;~tM<lu?AuN<ah=3t{I%A+nYHWV}~*7`3ZS;RE~-
z@%|Jg>UIK<5e81bbZGT11%{?b9m|CVD)v_(VB)i&Kyo6x5C8gEkM*Gn+Ul*n2D<cF
zGCpIycVOZ~qn!jINkw*g!&aSjfE3gJ(eD!Xl&^Re2-^G@clf%nM0t$wwoaUat`kDx
zUL63j;J`<DngZQ3_((e#eyLljDmYvF;N^lQ*6wiiYZ-}gjd%K@c(Bw@RcNTZPnn)|
zb&Qp03eC2Jte846^6^?lT#fs4T7yPFQ^Ps*rSu)~=hsmC<p@33{S%dZUX9p_`F9~(
z_YnmcQ(L4z8BnrrLkj)3ZPG<fz@Q6(Bdv|cN^Z21D=xNKxbd_(6Q{6srAt1y!kW$;
zQQ*uVjxt5y_3<y(V@?Tz5MdyvN$5c2nT-lWq9pF%_Loqqdt%^(q-ELTot}iN9uyB(
zh<TKr(22<Au6If+N6&<0U_%H8Zt6^70|R27co<H@zL^pyAP%!s(pbw2o7Ft%QmcS*
zw{;%aK><}QScQ_rKuaRs1?tkak==p~{i!40qiSbH&9v2xCZDEE0YM_?&C;c%1+X#F
zRlV@Ph_n}Llc|PU(A!J?WyiAsYN*$7a@zR=5XV#@vbO@|x8zlNh79L1D_wQEPShd3
zTG+396sg^%kivDgIwrHh{^J{D=J_xc3o4-t<%!w2+L1C&gtAf9OdI1vxlD{yytVE_
z|KU<8JfzK>*NU=&fJQu{;)Nst)1sFTUGU`S13qk!-u0INtg{KLq$F9zA6T$I>Fjso
z#7`cm?|@r+d2z<#K&q%t=pQASgVaAnw}de6WMZputW38u9=tRIs0${+K!)C_ITWzy
z-mACEwTVh6${`m1kzKUkxzq#8F3)+tAq84D&8K4mmp~#G-@Y7`u`iu5x?3y9wM=%q
z5RKC{?ei&D2G)sS)&)ghjYey;UW~q}1=)c3dAv($0wQXvuNrJLIO8>fg6zlxwK>e&
zJs)x>>9j>E0?1L|LRCc72k{6meq!V43_}|n(jF^pU5;gE=g1r;cQ({F&f0#bfR5ak
zs<cv#k5~MS$wMvcoO`f#c$(9N3hz(nl&yl#=94M>%}o+x*v2ehWDUr;<2q3m_0gc}
zWue@FZw9T_Yl3$jF=4r{%2^ZI>t<JWgTs!8&V7n_aW5+h-J1uTCXN<2k<J%LVxfo4
zB+GS>6rtgy+Op?@r~S%7Q!KbNx<g*^6ZKv#5#;I!t_#afMuYsdQcBx7>CLB#n|?jf
zty7^;&uoYm5dWo=%n9fP^6Bgfhw9;@mC|Pc(vA&SBec>Vus@oQSW74;w7AOAW%^91
zG_bpL6b=E4dPKbK#zol*CG|eF>wq#4dxv6~DwmF&??r*bSxvs2ss3u_GsPN+1Wj%h
zhpkHtn8;a46>@;Ec2Az2wEUq#*}-!%4nqbwJpMIeS<jVb_|KC{*4{Y+n75S-5Q3=y
z(ePz=2XHc#)mO4O>mZ={jifYEw;T=IsxwB%@SKUI?J?D`vg4%*@&UNI&$3DnAC1o*
z0`){6h52Jf+O5!v;--6Z;}Cy|W7P!(kqsttb#FmY!CKX~Pp>!7wB{=NycVaozh%ss
zkRuEYHj1pR5E7A{OpI?ah^KAOzFKZ18WJl`PUCt#vsG3JWmv|uq8mVeo<Fu5j<H2{
zjs0E4kO#S^!pi;W#Mf~g2aI?<XmN>y1Dk1b{2s@Z%ECMIM`7bWqAO@5(QiUN;dO;g
zNn;eNJ0_F3afj0+DZ1t>Zt<@izaVF*%HGr{c8d%WlKVMR{Faiy@Usl9!ZIi(+b`+Z
zPLXmV1QJmNx6G^Btfi(Xmlo_&oi8R`$t>`K4$X&jyLs@@BK#beTg{!e{l6B2$SLc~
zOcLLf#LhirDFu!cqGCg26bspIM2yJ8xKC>7Wj!?p#QSRtitrYR+JPI4oEH&ywa?)(
ze$s+$AxgY0-kF-2gR_fg$5S{*wk=Wo)M7DGA#_dgAhd6J!aQ#RfShlZvDPdZi8~gn
z@sc|drgtCA8pK=DczPe|!0>G1xN}z%AAaoL<jsBB886r*7_vg@h*Fv22+9Y_2`qF(
zX2;x&mO!e$Aj&JCdHT?9H+Q|NPmB31{{he_Uy@#r(!h;{H?lof3>W{=1k<70AF^3_
z-$4CPQ2Ri&@aoEKI$Z;anmh|*8eZ@v5B_shT4kKqXeS!Ckw<8Jj%%e)#`<{z57S1K
zdChnTv(vlVxOrWGgKV`@+;^M6*ovr7tyj~lpQ=y23gsb8F;+yBkXrtNC+$B6nB7RG
z^P0<hPxsnb3t=oU2hwmYAV#+rq+R%5oRDWybjL;oKkMns+|fFG>vs*qj}4IKho@)&
zJ&2e5P|=33wl`@<Xl+*?mRoU4z6^JEy1F~*X3Kc7daPc!E>)!Dj{!ee;ro%~sw%CD
zK=M6X5-}b99BpzbJ~GwwBjOV{C?_uvPZ-JfyKy6=15hMh>1FSO9O)p^>c)L6uJp2R
z-I%c4>$Cg2?2=1=ZJgbs5nyB-TzBZC&$cJJM&vBS550rD1mKVCfr?-tF%mUQMyS&=
zWA33gzv1EGcmqFZtgg;?Til(bTlN!$jLV*jWF4xI)h-6$ybqQ&Y*+u_+(7x2+aS(n
zfmO~hi&<a;<sKXL!O@k})6MK2pHcO*D!YwNR2Wqt;l98dIvwrkbDLkbioCZUwW5rz
zReMn1JE0!KG-KI{TLRqz&O|h;=-w>h1{OruxQcrVUk4MI;cW;J02zECX}%{XS!q6<
zv|k4MtewwK87B*`=)8lf8IAm<d2hgmC$Y4z%8!I_r*}?ODQ|(hyDqnO*6`r6IHwf`
z$)FEAc)mE4$~x_qFVS?4n^ZdoPGqILX(;qKC~taUk`iBQrN$nHYaHHG7$zcV;Spnu
zYEMnSqki%GOcoj+Fuo8`A*{-%L#-6zE_H-CB(yAyFR<rFIeb%Az|(_r2Y=i^Yn7@n
zdR)HM?2pvOQKo2gA1fNFVddgMAP|>pLMn+>S~{cByi(6hJck)j9E8#zm7AhgLyXEr
z8W7DWUFS_cSV8#JgSe*>5RX!6;9qP+n$R~7?qZ&4bds`?&m9zg+jt;9Q8B3E_^rph
z2LJ$|!%9lub~!=pf_6JOT%_}t9b9Pqe}J?3k}wa`)Q)ZM#oeQ{mJyvZQu7q)-3>f3
zmHm2`l6YG64;Y;w3kQX%O7;VfjI*0AX;kN9wAD#?O9Rdx4>vHLI%}K)M&A3MDFX3A
zvqe=tVVLDs1!B?T6s&W(@)ED-d@&NMDG0`&wPVM4g_cBHNwCbe$n{ZYz=fr9*<zhX
z_4ok`?jm?{Z({Y0J>3X+U-J%$xr5)h7Vmdu8HL|hBG1yGtW9M8JZxsF6AIBP?;o77
ziWx3nHzw&5qJt^vXNgn~I2%4f^3Sd5j$XIXK#z8+T=eU&+$W<)z?Mw^N&z*K%s<f~
zMm(nLX_@H4k~_JgQ544|L*bYz?GLAL*X`4Dd~|oso4G~`1OUdEnj2nwLn(l9$$=KY
zTsHHNIP2CVpWIQRAFBSBvPqre#lC|qm!uK2MTzS7dKJzi`fFxx?@Wo$g))vXXFe%$
zSvkCd%R)^>6^|v+KCe}bA-H3_e6@@YgcAv<x|`h6o|de7vy`5C)<R=>8r~EO-o=Bs
zAlrKx0Wkp$8tgj?X(`+t@#B_kM)w04OJNmPwbZ$$Pt|Sv;2&7&$C&!@`>dk0*L(#G
z_(5lSY3I~oi9J_XDNzeKSC;lyKGX}k7TRHK+G8BYRu@pU<_0hVq|*RoF+S6XR+*Zk
zX5+`LC<q<0bhi?YR^ejZ8fFAiy!$UrA9rumm7XgQkCX|;@Ts@D9jAD8JB=0Zn|?9C
z3}Z=cMx;qpzvKWyDf0}}A`HPfo6qS_AO=`cDg}^o6gUT=IY*<2m;nvkGP^5bDB=6G
zvXISwOx=h5gLPZBmXM5$-W9LkRfjf#?BspH;DHn+E~`gIk~9;72O~dl`I(LN__Itp
z>$J|?A~y1Hvl8lDf20uIRFQ1A`sk=&mT5O`eJEt!1nE+HjzC{4x01N)lUlH~yb{7P
z5{X%)<dmGHU#st&5I48cM>dv^6EN}p_(EMvN&g28LGr%7r;N>$D3m@i4}R5@cb&kR
zQZM{+idH#ITt3h|(u{-x0L#%BR~^1bO!so62r_%-za5H&4d~}`GNR-=Nn9s!kyi&T
zrJ(||ZZnk8A3L#%>bS1=YYPGsG`e#wNSq`#^6k+D1VBVd6FX1%WCp%~W06x<UFn@!
zBz0*~*W9apGQLl~baF5S+ts{Z&mDHhvQ^f6RqMm}k|`r*Q=A^u5J869b1;`7^6j=#
zm<-?A41h~qOV*n?P%zj|@g*|&f%E8LuLa0H^(8~N0oW>P*~7(2hqtA@Kn5!C54q`G
z%kI^QnQo<SWJ8>fz1t3Z8TsDiqW+Z9uBbA25@&OtvW=X;`X(I0oePW}m2PMiBWelM
zr%dvn=Ic_vc4EVe!@d=P!DcpV-yI4vPyh}DdT;D0_=tPenX&v5y{jsTBAfR@uhzR@
zvRHi6;;zIDot}LYQ)paBpwFxZ`d;@s4v$CpoYKLYLTpJEQ!}|aYfvbIz$qtWSd*1N
z#w*QkxrCz;VZwF&+JYucDLC}SD1^96#2-ZMat+M<`nxK=lTYLcGI05Pg)9q0pY))4
zt0S3lDl838MZ|9Z0EeuGdj)%-P0b<3FPTgk5ZwI3Pd)Z3$BKZN6U-Wbn8vYj@dL@O
zFX){RRFiuJFJWR4adBuH)Rw`2!y&}!;5`LcQufE@nn+<^lfima@CSJ#ziLTQogxI5
z_?^{_TAV{CHww;u1*q@Dz##1tiO!bS6V5X1Fz{VHBRdT6VeS^8v=Z(~D_X*sV_|WW
z_6-puX5&grMPgJaUJoJCdsL#x=PrA9so>UHyP;$FOe38lSf`p|bE`oG&Y{V*N|sk+
zaG!bFVL*TctAIgTLlgq!f9k2X0|~0fK<`kO0*>;1)U=?NVTGy4*$6I9aU1CxqdZx~
zJNB!%xp@$HT6IO0UF#mxS3_nC>G3K~uHm|lA3D&_(q)|QLJm|L{Q&_JFRJ@g9HJ|;
z;-V2CKBvV^q$501Ybw4HM`)q;rS6#@HA`6x9zu$kyN(e*d4Dq!ObCie2Ew?7rkzx9
zYXCu0zr9Np4G$VV!Sdxq#2K0Bl8*p%Yub#hDwsm$-V{#!d{FaF2jZ3F8UVrqRGAwT
z&oTt+Vsoq<7)DPjaor!q7*4tIKpxVhh7J^V>xvA-BRf=l19=EnT7eSC?G%cZKwhPm
z^O%+bvTY0T+Rfq|MZ=|DIJb2dav<ke{{Tb|W<}?x6!d?BNXS_MFSP-Q68Kz#nw5!r
zvGU^ka-xF34W!GB_Tg~8Fbe^O-ox(tBJ-V1VXVhT5lv!nw#G-j8cBee40@29cX~2R
zu&CCga&>48Goi>C22Nw5X+s#ZQtM5r5lOm@j>lHmVY+7k6qkz(@hj}u{9tYtI=!$}
zk+a-HPpvjZ4;6SLONVqP5k9x<l^KLL3HO?bo*(ZLxQngKTAX$xiY0pg00=<XyS}1q
zJd~zS5Tq<j@M<?SYM|mPQW8q%aVHg=rwS-%FuwP-3?0rxvQsg(66aD@lB5n@r<hj$
zfq%fN>q1HsIQgdwq~NG)-H13?JO^3^69_vu44aBUH`E1gsb%iH=Nr(uOt=J&wzkXH
z5RNV$DBIl|CKB;a3cm7tpOq}OAaPO%=ux~`#<7`4;1VWdw+6v~L#-lq2TE)n)GRO>
zH_ZI{Y%UOwyl5D+S_r9K%vc=TRBf^HNa(P9)Gr6En^d~mpahELG42kOOEdkaj#qx`
z%|#mqBYy3%c_q#%$jCf1p#e}yopk<}n&q5BK1v5qOrZ#XKpPXlt4oVhl%fMxhKr77
zn=E{iI3Mxf_>%yHBbir6C3?HAk7|`tF7btznGZdvIGd_{4m8~_(o&N%wBj05MZp~0
z!P{UIkwnypp%idD$L57(fZ*R}clM-q%HqBh?@3FjlT)(P2i%x**=u@_I%XgVT_W>Q
zJwlvYQH(^)YZrRe!%}Hj)f*5|g5ON(0Aiwm25vk_{wymv6^v84h&_Rg!(>LlmI*9?
zm3Ku-G?jTn7kgJ=SPS^q+M^na?B`Z~be6^j_hO)ku*`4{m!KIJ5=U%V-%lN0LdEDf
zGIFb-8@Qxh(GE}e7B5pJ)t^Ps)>?!t$)uW(DmFB6qfVSR6f3Kt<gc+o7;WSyl0{{J
zQ=Gk~f%v8A2YB>a8*+-D8)Q5EF}@CU4Jy?_1|O71vie;HWRB^03WEp`a3{LZIbdIv
zSwWO<A1Bh-poo;mOiFhzyG$u5-5$zI3=egCwjw=~%4vN`0%k?MFf|nlK?yZ1JxHHw
z{P)EUfQt%U29IvK2QMzijS3{C31r-j%4EJfy=xVTW~UH9G;%)iphyrKgDuhBtMNpK
zRO~N5RHW|@xSs_>LettT4|dg31nXQ*=Gngps7@YKlqC`Y9y>~Y;qw#TC?b7#wIZ6y
zV=hqQNzSGOf@?qSicH3EWKgGxs6#*9^F|a4C>Q}qcEsaZp?voP!i3~-aa%cK=&<lX
zIKL_oS&6?*JqK?V+NalFS7leyY5agkD*X$MVnrFP(I_xPUwBXx#aKFL{WAK|3<SgB
z#oSfq?A&rK+KU1MfE+b5Dh|~i*aY1QpaKDLMdB({NQ7=jnWejxoIrS_F{mjHy=oMP
zUbO`w{_4e>)Bu51$fPY~XQ#lPbdp6%C>E@cd(SF(Su4Q5Vcvi$5i}4%R+-9@LnUou
zoK{iXP#D3>Gg;9aN2VTvk(2DAmf)7d5%y_WQ_Yj7TRZ(TU(7D0hYw<gM=FAf(9m-l
z%j-_?J%^o5a+ui{qEX&H5~o)CkPn{fl60s);XYL1=U2+k><t|K=p1YVj?ptnup-Q4
z1>{T0fXe`ppnu9qby|9RDs3Qe(<7A8wUJ@Lj$o0;c9981bOLE#EEh3K9m1yS6t4y6
za=fZR&rQNT=9}Ysw-IjA7OfbA!Y`oepoTV$y3mec7hjZVkHxMKo@vBO0nDJ>SVcis
zN<ueWcUplN0O?w12vF+^1utgNck!!h(uB4cw4p3?Y<RsvvDZqFb$t;(yC8AD8iPWL
zb0umc+3shf%)ZF1qM-gPR(d(Z1oKl-P-s;2i>459IhUjyefHy4e|K=cS?JWJF-p0+
zSm+6!6&n`N-q@jFTr)TQ4;?Vswg)ztSruywxw8KNgM9+<Y&sl<qVt{<I|94ihn^Ec
zBw4eX=l3dS#1JuTUy3eYZ(;X+SWd78W<0F$YSi&bhs+@Ht#LehBNClRH{C-=el#B4
zdJ&_wDCbdYB|XL;cGxkH1ko$)6wViDbpSo*VWLAZs6n+AEIEL91ow@RVRugChs8+F
z2sezLc5Ws-Xh=`{>}Kq^g`BSBq?e99u~RPeN~;x>sH74SO&V@Q?zgo;iqqc-KJ|Uz
zGC8iqGs=tHy*%3F)KXI7hDVh$)cJeGOCx<<%>hCHfC#H9B)-&_T9uGnIF4S8)3R$k
zcDEO?wilZxIyuQ8aF{)*BjFj{B>APcQ|#YH3ky1}9n=7ftP!_bP+(cZi{hapG_HI2
zQC9=fpYcMY1lK`B@9Dp@O>prwn(M|%9r5%?cnLjMxmmq>P*7c*fh$t0A8%jqe|U-C
zP(cz$fsph>#6MD{ru_Hm{KPTkcTrCXjWZ&*#`jE(kpv92bSbTzhDBTJTo27>J1u3T
zH>e)Z@|+#9&T8x{E9E(2brtk23|q2W+$^Ci3vFT6pwSTAlih67bu4BAH$gq>b#AHN
z5c@kjzqJMs0XKfBz0IL6<wz+Tdw<Y7ICA9}?bCOtd-kAvAomG-ciCe}ii1>5W+V&7
zvN(8_HHlLtm6tQa_~S;ML-BAM_b5OCKpA>1ARsxm=6eq6JA79uCz<WUtN>Ue(el~6
zZVUFztz%YP;<wO{IE)d-r!p>_Zi|$hSEA_+FvV7SW5TS67cdpOsvO_&Ni-_Mg|@6a
zszuVK(TF{^nZ&>&7$&D?1svZ&y^Ezr2I@`4k9Va?*Z{_?zQ<oe@qqA`&e&}bNv0>7
z_Sq#2y^yy*l=Ksgo#ZVmk5H&Qv_dQZ=}o^-bNW#bfKz}yIkbe6WN!oFl!FCc^(dDo
z5R<(FZGc;lJ+>2g2<7#pyB7&1+<%-fxkyOYMv(wZ44bDuIMn4M49@=m1CxElMmUaB
z>Mm92-dT9M2CcZ%0$}DAhPte1+W@No6(bWc#K3wzP=UIGp!aHZm;mvU>}<(&t5b7&
z%6l)N;NlcFES@UnOw8{w?>ki%Jsp;e21Jqdtj!&85gf`n(s}b&eIC`H_PygQ>9T`o
z8k+CRjbyjS2c({03h<>1b-J1JP|Ln6d%IRkGp5^11sFNGlk9pKHw$+@uF9{Z)A-C2
zHi@Yt7oB8I(OS_>PcEX~-EH@e6@^S!NN#*DNLg3{?K4X@H%+IWI~GeI$8xOY0(CPv
zG+013^e8g}2_A{&ua^*=N5x#}THO$Kim?9xD2kbr1;otc7KMZY15J@Fc8$nE)_N)=
zTXD(uJMD+eQ@jE0yr>BVw**y>!WFQH>66xpZ)n$FO`=jaBcBBHYUids&nHXqpGd82
z;hm0&9#jm35+-|OsR5irxh{01ckG7?35>2il(*OmYFvH#)EQZS45&^~buvj4Ct9{(
zU~1XPf!YBVp<6#>SOeCf#yGA4@7ktvM`L*Vcd3vmGf*8~)r{6H;+MUGoMr*qJ&Ves
z)bj1#;YdIk5pB+O#jTzMZ<USP_DnVd9Mp^gMo=Tlj1~~mBo0zJZOV=^`1_TPqos2?
z@lT41#EI}B<lA{<Q0_hgh{jQHNIi;Y2o1#v_i89uE2uBJ{v_IOOk50zN4&^4?ocp*
zA`L4);Wc1y6FNB?R!cLc*jU3WMvF2xjoFk9r4l=26Oe{Ug&I)pq+)DIp>;4h0W9u{
zlci{hZfSmQwPd2@_S+QiHwwD(l3>cuca>%R7A8=R4g=L%T5;d~r+rW0%B}|bnCn5*
z9Z<aLWI>q9to@S4*eixrHg}JA$z$@O^Pa-&V(y~MB#VPvVa2sRy_O*&QqJ_rZh(&T
zoikP3FSQto-@elhVL(D9!ZuDc+WBcin5r;G8kVbt#c=rII#q(gS*e4}zgo*^K~aY4
zxA=#^K9+Y=B4*Jvjl+j<nx9Imb5y<Ep*?6l4|%IKbo!prO^0zaP*k}o-gc7OmDz#j
zpB0eI%|(R7XB7CUC4rN(&dbAab4f=#{{Xf{mhp``P^M<aTvpX5f^K4REy{~}<{`rG
z#ZRM=(`HDTKxChs{m7nl2R5NmQBeBSV?MNmi}j=$0NRwsiD(ymLxxV}ri5oH#F$Pq
zRs!mSfF50pgEga<VVw%b7*4GO1&Rs=M0eBVEt25Tr>nWZ_o+$Aa-CNymdJ#x4aF&B
zi3zDrdq<rT)qpY_&qTInkHL>-eAXP)JUtOOd6_VK6rSF>LAg>|A`EW%6%avVcirFM
zzc(5~6PZH+Gun8OmNOa>Na>uKi%;>87C;HUR3zw^)z^h*P_{mSSkk~68nh^-u)*a`
z6K8yywT{=8U=Bz9?dVoJ1uMJf0*A52Z*t_Gb%XoN4g5FfyU<W1hjJtAp#X%;A%mop
zet}~ngSBQ9mQ0$5%Xe#CNjx2==e<Ux0(YeL8*DsK3(Y*2^x570s^jUMa?O|j017j5
z5OPaAY%&^=%AY=Khy6XMT_z3QeivPm8q|%!Vy(2Ckh|E9dscTWX(0LarYys)3<YBV
z1=>Ja6LK3kvaLotOLMKbJkV<_4dU<|Fe*C+0h_zi3O1;TfKuQFGgb&`vC8L(%A+F~
zZ>T9IYqVz(&^#3z%f#{88W?6{iB0M|CQQc?9($^0mIj8;&kyedHG-lx&$EkEIrb}q
z*~vDW*93B@lWvU~APs<z9idU2R8dc23*AHF2{3(Y=$H)SQpb&oK+1utU^%oOylFFY
zdeSN?JY-<ewYT9!vkVS$iL{Y6=rlM|elRAo9>Z25-k2!S)6~`l#^Jn07^zlGZ52JP
zUlDwT5NtESgxHQaJ93ZSpUw!1f`VmjDC7($=PE32B^}e4(Sc9jJ;IbgJuPbFc67al
zcg3f|Oa2H7a}vr6x>j^(E8a3zsVh)|X$upOH=9?KoTvl{1P7=CY|*1Hl}W@UI)D#n
zWMP3PAKDN|P}~5${SO-vog>9xSy<-Jow{)%t}Li7@Q2y;!naiCftE5#-Zpfs7|s5x
z5~c|8634i^cAy~e9$elv9+(w|1HB;c6}szCx+;9}tjN9cTWz$>cuIjSc%3F5g3Pie
z=zb~{ZPf~v{*KD8q|^8-6?EgYCYdZ{af*sC*^b%aNr3y3`KI)a{tp2@&q_XqvfdnC
zgFpZvEE^`#Q~t~g05Eh$p@o`pBi*Q!#V+Jeij`YA8^HTbGItaj3ip~;FaA|9*0A<Q
zFic*M>g>M-0%={=uW?dQ4wE^zVLbN63A{PmIg)vmCMhUlt$G8ANE?;XOy2X`gXw_q
zyyP;z@790=6*4OGQCR_+vpF(y^Z`L5WTwOvaX=T%8&o3^o5Sd5QLrM31hR#@l=uWC
z)w|dVO7wbL3fn@N39+hrFB;RsnNA`bJqa9>K-^L$4L28a%7l_iate{W0m>oTq$b|k
zp&ilErK2(#p9`%JQlN7tJZ(UCM3~7hcA3$H%jwZXnPhIQ-)^d5<ybUQdlU~~(P9`5
z4G9==n<2R_Rz*))50<wD(g6E4d+uWJVaWCL4skMPK{YyrJwZP-(XvmW6&6e7K>7t%
ztqqyn+Fjj&)n7DZpa2`9D2~UG%sU71Tp-H01v8a!Ii_6h^Qitox>#mWX?ssFdEw{?
zL|8^n4L2MN*P>O%8`fNz(85SWksN9@tdQhh2RFAGU<rjBCn}2uM#DSIXHgR^7YeXb
z-ozXoA?E)8MGROXR;6&o@db}d^QePu-`Xxz@D|g2UQkCR2?SASOLX4&yo>auNs`{;
zUE_>V@d)?<hQmSubzn5T0+%I32IIKnlvIoxpt{v!ylM@OF}+L9m4PMT(_oVkCbue}
z4RpJ(cTf<)ViMz+=?$Wy#a=@A7|+F?4KEZX$oUX+u3PV!=@jruTiXY)IED`=I-3yf
zxgNt&up}@hUB~>SP_bQRUTDC=!MKkU$s370QHDj2NC%CxQVBi4ijtg{<DYsL?ivHZ
z%94U3AP06e8@IFQUD{}vTu=7GaEcsr5xe2Ivhw~C3Bsh#clEapc-8v>2Y7c&og`p?
zII&SVR7?%PM7_s|)Oy&?YQ7De1$w?$5$45ONfP%$cI6pFa;bCo4MPgZK~Y)KC|Vx)
zP-P}2-6-1^3}%G17||mvgNgV%)_Y4sJn2JXoMQBP%n7Lj)UOEt01X60k;=4(sa)xX
z(rN@Fr7;%a)X3B-Z@~6>{{RJ~994xWYYZpWDt#s4W4NH8Xah>lhX)sql_+G~jln?@
z&Y2purq;r&1u#+(#!KgEsxB46BJ*5D;3fk`F417KR&WJ|>sG5WpJEQgG3BPF-0I6g
zX983m-D(bWsN$>nbo3NNMC4cMHj-M23rKju?%QW`j%6>s<2f50-`cSKGo&d%L8S0o
zQF@14OK_Fm&Xp~eW4Uj6b|8r0(7XCsya(x_-)u5+M<sh6woET-xhR7?{Eq0>qtN-b
z#+Jv6Jt<yv0&qgzF7h?4H&8~@0LwX%VCGwsK*&G_TS6*0ayCjwR3^oq;cheNn(SqD
zPji(H-fWlz!<julzYr_a(PZA5ztBNa&a1q7Ewn-g<)4bY({S%U?Ck(n&{vf!Wk@)<
zQ2=5*LmsBpk#Gs6Qqmc{zny@gGN%P>J>FD>6skpu(<a;2pvLi<fct{9vRg$%vh1~T
z68#LleGk7@(ir}9?CfY5kaK*h_)H7wyJV|_pGIHZV8Us>4z=08YUkGJMqG6x+Lu2x
zZ>tDffk|?u;eSo&2d}RDNh0q50EG@?25*+a)lI8%XSCE>N<iNh?_cvVw%g`B5%Q_0
z#g~a54Z3cj%=vR4#F#^uu&zinJSw{*AD$o9;UF={=wz&pZ5}dM#az>x>rv{tF!4JV
zu<R}GP|*e((nr{N?X<GUP`mMH<a!Z(NUYc`!aosBy&aWbNvH5ypAF37URyzTGUA$>
z2(@s97*uO8!@JxE(v2o?`sLl|k+fE3W^*akk^*TPxKs!x3v?ISYDq9O-!IHm>g0|{
z_9|!muVgWDFy}@p6F7;>3dXK21=R@;Y7NR6?^ySqR2adFKrOKvfL;RaG{i1qI0u9d
zRb{p)Av(du!(Gcs;nn10%T3;llUlZpQ<Sptmr6WxB*GXvU$3TR;YUO68;!9Yg7+4E
z>r2e%wj*NOy>8UNQX<JQ^vYRfgUuk2+^65L-L?lqQ8QXFO>w5a!iOu0w+N?|O+|ym
zB|brDgAfB7ps4Nnq3(34Vt|XH$8mYq3N=KwIl|`DVNrWBo{xEINRXS<{{X|KOXRk6
z4>wH!XG<Z325-4T!D&QD1C*9d#U*60hdbTfl_Md1D^8uwr^RPuABsFG2$3;6gb!*M
z+#Hk(RpgG=>PlcR?_l?<Z6%iEuWFjGN40J(+t9uL0E=%0FpK-Tlwc?Yzn=W+AK?MN
zk1E#u9kDSowIpjKZ)TtZN+*ug5*w5V31M;EcW<izph9voKjyJ2WYn`<T7@-<)ON)z
zb%#2L>}6?rc8+ue01yUW(saNnkjpp+a)cOw$S^7`kM@x6p+ex)U7YPq2zzI%P`O==
zvgYeCxT^vSd4O#5$AnO2r3%Ej&7h=eBOM!u>~*0)kO(f+V+t`B-Bc9{L;Fb>wF-6t
zY_4n`O)Fy<n`cIy#NduKB=aV`Bu-Q^J-b1lG9G@W3e4pfK`mF%_fc&f<Q_X<t0h~~
z4)Ie($>!rPX{;$AySybpL|beX3bQc;;WBoLkD9m81UEN4RmGMm;b+Z9S)X0%;mXI1
zU%dYSv`Vm90eUo1l4bA~{uajG6{hdtE}@mU-tr2*Z2tgADV1s0D(kJf)3h(6FgY@8
zi5b~KYk6J)^A$Fhj&xVze}p7K4-{GL6ioZdZW7(+Y(|9!j7J)m$e)-8phuF!Zcz4`
z009AFfIW7cX%A#_hm^ek0G0Me_tgLvyE>0<`*P2SO&&pJ08>lRh!()skC9iyI#0%-
zFn&rO2jropn}zn8T@avPySljy=mF5=c%TFf4h0@EF)KI}h|Vs&f9)7S6eza`qyrEW
zdc_@>5H|)M+j7WztU&Qo@kB@)MXCa$K@6k;x#pvi)aN#dlRdYNkc@2)hm~6RZef{q
z1JE4Ny!0IKrhWk&)?>kwm0ix6ylGQ}mUE%*3APL-dFUzkr0T$ZA?>l<{j2KdLV=b`
zP>bW1)qyAhEakqg%A5qYI#yLAZ$kaur-}BUCD`IDdw1JEDCY=??)uOCVPe=gzG`V6
z)wWpsyK6Wb(vSk`<V4e~%v%T+>MvG$8_8Tb7TbK*(tv;|R}3#kkkdS4vUgg%#O1aM
zL{zO8o9N>}0x~)6hEXA8g`TuxBW&K~$J&LmQyDsSv%mV|h26x|mew__BS$#5zTQwp
zB#tXJzhuzJCVOoJK=gc6DP^10^R#54nBv?1)^7wI1iib~TS9=i0mX`pG7f|kjVvW}
z3YmkCNx<Z7P_d3RIkPO@40a8;l-Q67(0er+O(&}RlvRV7P0|DDofcnL)$2%s0iEEF
zb+T3#oz*ABP!ha;f*wtodnexm?*8a%5fv2`1wl}#rHotZ?8<M-<ItXdq)s0A7ibKo
zHx&7xN(2UhhqlR3oyrU4qFC!q8xJEa?Hg^i#a+oC6mK?AH;nxHF5E_(C3yZYOmd~E
z7<9%^c6VPUu86pTCC)RYbEzs%T-HJAr1=XY#YDtiSzOaKsQrC+>oyOjyJjJr++gqB
zw#m!X+6}fnkJ3x{0Ng29$I;nU^qPMJjA|fmNZsH{&W(1{yMbvC$Brr<Y9a<iQI?TQ
z4G&ufXxc4UO50YERb;Kk9gjpEqNX-iXHp-ms>0l1zER$gb|<drPimVO5jiyv@!wjU
z@~q#$8>l>e%1>ybjYLIGW8b=_;$1Bf2fsxK6DJBV)uw@-487H2fIvZ^P|~2K3@SR-
z2G1`T+1)}g&6l^LHc5umk)lC<&_?4+(4Tba)=np)T1dk*v!$wZYI~ATdcE(Rs2NQ0
zzH`_*)_cc^F|k2hsf~vxDW~fVZ*A{f{Q#gb!McbG0>;kFv`yy_!+ywtq|}pr>pH*R
zyqwY8mZ|vzm`4+ZUz+bk#W_Q(M$-r@%{2g+CqZOAigy48mW9<`Re^9FEE9_^bOWUZ
z_!gxKhm5i6wF6--0|KVB0d*gm0TfnH!;!?LP@+aJf#N7U8kP`^!sT;B=S<;&QIcTO
z<A70y0m+i3oNZdQeSwau5r~uKo=RY^e?WbyTkx&x6O-iC?}R?;M`WB1Xb3qc%oIS{
z0BB+BS0<D#>=kc^iwFsMCbQa!6V7U72aTeb2`v(fgkE<w#pmfWLxIesMq3M>A@N^s
z(DS>9_ouE6$?P>Ll_jD&(tS)InJWZ+e--otwNIVE_$zc%Uxf`APpiX1r09DX8=i%}
zF?X$FB<^k{&4ZWp)-M^;fo9PQV~CCdpr{|%rlt$3fOSeTA<7(0=wWMdh_mEN%8zC%
zFmZcF6xM>lz%T;}xzc!0tjbP-(U`+~x`cpk8g2T$UWDgG<!9g$5~W$XasL3aIF8Iw
zJ6Nr=$&R&xaxTLac=d^lUoC)O-74|g_;53XstzQX>9Dkxnr`<1p^r>zAVA_n?Xp3Z
zoz^7!-&mgTykYmGU%gB=@%xq?zuLFqM;s0(5zww%zl3Rq2k~OC+~`kYnM)UfPoL@z
zn1X4s2OSXZBeFlQ;)YUW>wo1<q(XQA{cipZ9Wr%~*BTVuBg8{$MmUjKtJxV;a_||{
zeUC$?S+?N=yZmwu_NYuy3fAJySzi9M$^%t{{!+OI7~#d3??Fo%fzS;z3Tns2DjG0*
z+jpV}_#~a09B;!vMkNfVVN5-$at<q^i)C+o6?Ic&!>M|Gm}@@Nlo6SI)S_a=bSb^0
zm+HPNJ<lsJT>k(SjCWK$>1!TmfTlsb79*0cCE(B!5x`-{Dlki)ClC8Th#X8_KBpX%
zz1Kb~ErvU)43o|Fj-gOS(A<_Bn3XeYdd2U~Eyi|)a@n+Tr}=De4WBg};7BuM<jKoy
zP~AyA<U!k-o@!$CAqhg}9@}FAQhG<VT__86KKnbrwP8aEt9w!|WIl2C+W@ehujuVW
znJ9+k-o$gPcG_f!sUf+8i5@%cJS0)g9`WnS$U&J82splsD%MMH7)f4+lvJy?8;Q+>
zod84|wz_Lf3edvPdyi?Lk+`)7UAPo=n1x`PQUp!#CkfuO$=j~_x8;BsCOpe=;#M;n
zx@YDtZ~j@hTOqwLcac2{)8QFHbWgo*6HI))>mbn~dr<X81NO?Z=<m;YMMrYY>9XU7
zlUj)0qWTeA`h{J)_s?yuw^%QRrIzz@L&>%@Zp_>f=e0&jBXM5~ucJETCZTuE$9R}q
zC}qvJTDHLiWwaPVu0;5)#3h|^+OZX9$d1uv@>GICbGi=)Vxxc#inLSe`n_r4?i0Lz
z!(#_AL%~P8Q@z0hh#zBR+=N#1F3<exh9)LBZj(Hy@Ia1Utgc}1S>@WZI0v|&hkDCp
zpp{>LgsG&AfWBfsTJ5otfb$QEkr)=a6VIS!*z2U8?!U!-sBID@BQ}JoX=@UEX5ifN
zq+o1ConofLqNK^~sN^B2e9+ItdJCD(hE=^#$t?pt&Tf^97pr{IX0;HA{t(M&eA`F~
zJn3}+3=(!(xk8)Z_$U;xrRF@omB@}e#yzS%9hF~6r|@GnM$(ORJnXu$GIxl3)s>rr
za`;hssV@ONsZt>~icg)Zg+3yO6Job04@)}O7Wkc~r6Ntpo@MAqj3-2B$6yP@)i(bC
z9+YMWD&Q3@McI(C=3kn#C_x%k`js44dxt7QpA37^B`fPlt;Fv#c6viO;G{<xsq|&9
z4URY-UX1F>Jb)STC!<(Ek(WG&*1nt{F+W1-LlyI-cLfJ@JSrF<6TnZr?B6D${tOwQ
zcv^|%c6j%_GsAwnX5Z`4W?}Ey7O9hcLA2+LF~+8V@~nmp<_@J?F##m018`cN(qXrO
z=e0`&j`V$NN$wY86mw+WP>4Vv-A1*67Py_Jq=HiSL4Cr6lmf|~>O&X<dnu$+oTy?;
zuh%!NHBY`5?@E2Kx<cHg=}x-LSAE$j0Od{*QwK-7r*#vRU)ce0QP|UJi?NB|HD0WP
zkxNyXb11NwJ9OXHv?6$V+Ji>~LSJf?*&ym!;<GkSm9{<c$1V6$k==*~o+aRvIQHIE
z6Asj)f;OelzA6+CJ6;r^1E`+Jd(@BZ5s}`c2i$2^gIFH)Kt|?E&i>V!-~}dEVC_j+
zeX^(qfs@#)SRZ0itwl&PT9v~TMwAI`NSC|P>@oJvp^@JC6oo)8^3BEP=s+yZ6G?%p
zu~4?0rehbI{S({-GVZ&ByixiX+8@}dqL+>X31lyKDvW5a(6r6na+u;%T`pG;V)IVb
zbh8uMrvyg0SmT4MN6ZJ91_4mp^?JP!sH{ALnV=6Zb5nR&-$u0YIgK|mBMCDcq32M6
zWLXWL4+N?7V<KNG)Sj?jDUP&(SQkT?$+pX*a|@t*P*qD4xXSw-c3X)!ErC#(^ymj#
z50=a<u`TX-s21IVc6@BUI04FDKi00aJ5@Y^dY4q14&01hs8%`BXPI%Jg5SktnYdN>
z++)4$J-@63!h^pDc%iYxIs*oZk{L8Poo!e^U=hlO8z>G~_nNy%74Meaqxd;OSRK&c
zwAJFojMhtcjhTc@)NYcP6WR*JkSQ9XK3_(HnZ;H1e;e6@jK|T&qYq5W19}8!mB0*X
zmIDa47d^wRFHEw1-(f8PS8{i$6@p2W-jMsysMbU~UZI3_J5)IcU>S3>-k_W!c7A9=
z<Dh<YLx70(nq&~*vpJ}CsmZ1&F9B}V2mzXe9qp<<H%I;yD3SN4Oeh2Z8;SyeM-k4J
zW=>}wANIMPL_KJ@=YoY1m{kHI8Ux~hgIuh1t6u*AEU8A4dzA&voBSPO#5>f!#?nGW
z4M-hc)FIiioDoSFZHzck2Zk4UW#JC3eI1`OP(Ku%Zenz65h4dwhbuhaL_C3@#rlg<
zD*$esM|jBarr^q<<fU<xcZ%JB_Sp-PsBe^e6&JA`bRa(aJHNFzj0q%lXO%gICD6}`
z5E%d+$vYud{{V2_I#i}iG5RoFeF#EBCYKLAsztCrG>?t3V;8+G@m}79F><6BT51*?
z)Sx6ed{oNysGX=K@T-_c&C2v6t5}x<x)*!Bt1YCA1j^-X>S@pej2)vL>rqff*eWT*
zT@i^6>D(v~6iA)EHqL>PG119W$thzYh|}&gC_zRB;N14Zf2%2)WFw40^U9#y=ts@F
z(uGKK4P0DZ>Be<}hZin&1-h?Uz~wY}{h$atQlK(mlHDt;+<L;aBP?Cr;MK!3C;=$$
zW4##pxEkxXd*R=0v&NSY_^9OMycg$ezL0a{=A^;}JOn)YGdO>ZgWaQM>AM~rbf$#9
zdu~dM_Nh=z#;o#C0@j0RESMNo#gM(p<50m9Yl-r#N^(N|V14Nj+YeXO>q;qQ&lnD?
zWFTD&ybpA#Nq|FmuVL8Z%qvGKLR)ok(BuADl$mz`_Z6mIs70{0pl7>HOGxOVI~z+N
z#P0;Xl?6d2B<~SD-M_XE?Jf+$aDU|p$YhBfblZHQY0#2;H7gL-9=MTgDkuUX+uAk&
z&`n47yHbbJ=~C-|j~?|VN5i(@cc+n@p8TVjRxY@S=`>8&gOimMlrI;lqrVC_T^JMR
zomz;u@sW&&r6=9m3=)V+Q<(JFdu*IOP>N>kk4rQpYiXT*0TdwQf|VP3J1V}DPvH1`
zQBL6dl}~bv3cOI0#)Xfc5}-u!rYM^eS%b}BnCS-C!l4Ek=Hou`Stq2ouwL?EI#tN?
zr-dwB0FBEhigBrAH>2*<SpNVR(m<%l#0&aC&Vm3C5gWEWg3ROu%{m2X(J2pVa-?xH
zLhm<Zx9Afwfabla!jVl_mzuAp9ZI>}b%aMW?-WugU}oz+ggi5wk!S0BtvsN)STL?M
zWdt^2ThS&14KI5JjqTIOsmY0S=D7RP2w8`Elik@m4s{a*5q&9zB#Eve=3atoV(yE3
zJM360JmV7jCgU5ZMA<UyQ$tF8z~)v|uOj_0InZNRZFTB+Qw+=8fJc7R+)cT_jscDr
zs8Waw0`PNtRCl0eQA>O$vWynMM^^oi=T{hPTABAKG6;?J3NKLTdeG1UfP)#wf_c=C
z%r|=Hy%^9I;W)iW=S>XiPGGaD6j&G(<us|cF8T0#RxKcFw<4G=nO{TieMw|OdY^l#
zp`_ppc@+~ru)>jrwHW5@hdP2bIb`WK__g7}l_7HCcNqmL)xG?OS85Jnfd@j6B9pq1
zRhYs(N|TFkUc%7Trzg0dYK0f94`W1v_mr@U>EN{pisToh9`w+$q<(LDB}9@q4fQWj
zpaV+JU@$WSEqYb;)121aOW%!Y=*<)11%j?EbaM-I3(Wq8I1;*ROcb_I&0~v;{{Scl
z3<&<%T8(fOT#A|LLgYTmY8I8y=BzrUOr&b&s_XB<gW!2HiX~9M;+p}!Xr|{MH<8d-
z^!;A1P*OCyB~1qU6(sYs&WW~})Lp`G^L4jMIFPaA3w0#rNFm?oy*M*cW%lo~O2O9_
z9(FEK%<uHwMW6C(eK+jV&aOVylMhS=P1giH<7K6nfMR*6CAS>I!(^ghPozEFf7ZG;
zjOq+8px`z<M?t9dEJX7-RB)1b)1{*aH8MCuzdz#=RNb;JQ`GGKtu+HpM6Y3~xN1`n
zMCf1~PIWfDtuv)EIFfN{H}iq=e-HXfC(Btz^auV_k&U8fTGs(XG%?*YMwSp2e&Acp
zdM1MCI2L<9#1_u()(*qggfHosCNEEGUPl9hG2hOhLmaT(Jic2(xB~!bYR+>rq6`D2
z49@y=--ri#4PWTHr0rPlZhDW3mvgBP6$QVJ`^73QF(5scy$mt9%Jr2L0Hm6qy{W!8
z<5+qk2<RrTSHa;+U|jzII}j%z`fsk@qOy#%tOzV_tQRT%63B&lMh~ra!Kpnho<fpR
zPSXk@fX?QzIT2=#Jngl*)J4xxikRR|`B`!=Rzl_zCLDTtEll9JN4{CUp7bV2BhH#`
zD)M8-!2u!>#EOzv65cP6tQCpi!c&G|4VNoa-+~6?^*|8Zsfm?m63?BJ#geWozUN93
z7G&rl-da*89QMehy#?g<teOURVEfa$=D|9Ur9n*hLYHa<@nV)}I7}swy%$Q?f1nHu
zXCS>gMJt$<gSb&xKuFIL^`_$+RfIkzWya351Q7s0deNOZkuHHRY8;bpRTm&vur*P)
zg2G_tCVTQ}elr$6?3^J>Rp6*R%8TA(b?6pbMfBxUc?<6hcA76FaPGbphJi_M5BX4f
zg?A{!oK$!QTLXaeHG`IrI0a-G8Bu8iRvSMl<q^ka9A{oM;EVye^A%^v0dZ<>dvd)-
z^_k3_wl@CYd90Z|rSVeIhZIG4R_T4Jv`W4Y&?-_cwux20B9nQ1-0tluskYb;62{=K
zVzb&yumZfl<wVJX>c90tXb}eDJ*zU2BLH;>pnYFgtvNUr=y-O^WneiEu+YuiK8Lz&
z!lm|G?vOi0On;Uzc>>1u^m^e|W=<%mH<mku?a4*wwFWerhl{Rs8D9HwsBnTIy9GfE
ztj_(gwtdxprBjLvSii1XRKuFlnLOG{dMx&$Mp+NCgAx<@q@>H8(uZL5T8J3$l0J6X
zSRwc-&MUtV`X9yxLoJX8QS^3IeI}p5E_4%DG~8Y;%cXUW;T{!fZF{7L%Vg|Lhm4(y
zga<9F6?kMmN}pis>OmF6N>SV213cxYwTOOxL8DESlcmpU1hZ(L@wjpqse>ZJiZVFM
zkZqF}4ioS-A`>a<JHwqf*>}LxaGt8sdip{s8C00VDVN$D{Ww-8W&y$09(9ZbdpwRo
zIi7)`hD_CGik^sQ%}eY(wfQ2W?(CaoP-Q6VQW}Na?sBZT7j+=)PMb5pTl#UW5H4(-
zS~sYVQk*2k?$IEg!;9A2BQPOlqCf2u1S*bZ3YW1Bvr2oFy~`NOT2q3`ozc|23gkeX
zX70iqsbgh3qWCuPRppu0L<U`m(2u6Hh_J!nJ5O3>ZIaZoxe19R)ZUHr3<nvX6)!OY
zJJ=p7<v;<X7HTlK&g4%jyfSu2lUBwa=%RQmTfGmmhu5Vrt-<d+9s2>n)Upg$bz@Z5
zYcuB4i@yc+&Fvv;We1=PyH@JzZm5i?28eOJGS8K79>-PV(JmJFu|Nrh8ir*^+Ci!6
z1WW|Zl-Foh9D#zMAmu9Y$OHMdH)~56kO+&zyJ|2N4Jz0E(6LCk8H`NcL1^s&Al*}>
zp&85_I||ODPP}7)1se?3X#m`8dLx^<ff%K|KUb^NFqSGH#n|Dz*gvX?qWxRC93E7h
z<V{A;o)u~LabPE3L@3Cqy|LKuvP6?_jLv03>4Du(IUudVhqYPDiZ`UY6yLv4A9qQg
zro%{&F!*Y7%B)1NINWzCWMJqNKKmo4CEde*)QODRYG3q_r<~vkslG1$7a;d_+Axu<
zXz`m%i@48*G)`0yE4;zYYQPNT+z1`1Wl-lc=8Xbj6SWp?s2>C&=}grk_TC!t?O8I$
zkMKcMcaP=Dg-mMy0L_kOYjO{Ipt9mrmNW-OvSoDK#2w<T{0N(tet(e&Sp$IDfEHFA
z?mlWk#cjf;(QF)cU--FmJTBb<7;8w;2yrC6-&-+eudPQ+w7*s}P7kDHNfByc<=|4l
z-kMwDaJ$QW8K{A(&x!P;>(-;tTMJT7G+!MUKf(thqj&UR31NeO?P{YN*!kNzSjnN6
zzhyz_iiKFIoZb8THpV;gt86JfE|)o0IxNmCV&*f+^b4Gj#2FfdfV0Z5;hDO;FsLAi
zR)Ys>O)ycG6>H#%Zn5t{AtA2u54B2|D1#zh;)RC~J0@p%y#^EAq;?#qASGzHUDZot
z*rEajNZh;CsS90`MnuNDsX|@PT+_nBM<&z(vmwPV=VS>PQ?A@Ejh-r3X+#QD$fQ8a
zOOfy=pQc_gCi^#MMFFWN3h!|1P$zyg5m%gTL_`|1fo$q!LZ2A>McwOHi)rgZl(JZ1
z#RIu6VMxRPiGn89^!)*l8$6Emm4PfMjpRV(8|g%3$q$O|qCV{;i0YJ*ImY*)FHo&`
zpZ&+ZTo=aa#}m!1Jqvqa>*#Va1sKF#7biHi7AV=)hkZK1S}`2XB}_l!PSQM;BS^ow
zSAqwXHuhTNQyR+>a>e+hd`P7`u<ue1S)&5V7H1mp!cy`$r82HRNG`ZLr~n|!qM+Ly
zU)sl?Lb!%I(eD)T(ginM_L_;Ps6t26P4%1V`n_ra5-K;;7Y*di8aQ<lJ(`R$9nmEF
zP$5bLb+qhzh>LEC?^L%h@vD<Xdb_>_ifk&#tW;I%zPoLh9#?moOL9k@ougs`SOTvK
zmB>MHpOr&VdU>EE?oknf4%t*e7pKhBPGy_*%WBOVSf*(ToszEpu}Q`6P^2{qkK&MO
zLSa1w)TYh5ip%J;mQ~&(wPqk;<{nL4iG$L<2cbAXsBT4_;SY1s*;VwKe+f~FJA!D^
zg^qWY$jQ5A<qs;hwx8fFGOJYrPAlSx_uAol3EL>Uq2cSmFd526*sdZz=ZeSDChJM=
zRLYWXSr7Qws-!U_?0bp;pb(9-I!8W1+q$wUk<h!{I#uI+K$7J%Q9Y7ZN4imoO+7GF
z14h&kPY~eX?pknCqj4q`zI_N(7))3$b1hSY1{(75=>tGO1d%he&erq3nG}{fL)cDR
zGg>2xeA8>8lX*fY#h?NzJPaFl=T_7bk|;4u6Qvv?6wFB;l|JVlsP`CrY?++u1?5m<
z6OJaJ72xkciGUV#ieO^l#+yNtddh@r1RM{_jTn**Odj*ftQ?P#e!-v!2nIzt2yeNR
zHj<MXP#T5?Wu3+4Ovq&yQtL-?66%Ii+^7R0jS^;|mQqWqdl=<O6iHzVa(-$*F#V?i
zr<s(N;!0j>?MdEL+{;FH3&5$^hH<?Vg=AUqH@wte*DzyJ^o~1&<<DT?+SF(3hguR~
z(kz2+XSC4>3qm0NNi-2i+yM;^O+u$EdJ8^?j9p;n6)>gCj(VKES#i=BwR0?62r%YY
z<yij!9HwZ}A#e;{1}zp#kw0U*x{J$$fDDR)p#ITpY4IbI3|F9`1qCYP1kzriAml7|
zDIpHGyVD9)f%W5RYKuKu>AhC9w?9wS>h&#2ttJ<YVD)rR0GA?o)K#>ITfz7w<ZD>(
zH!>y8Wc1rNsDYKq0DC(ztZoFH#2!vmlPlIRpa2L98wsNF`r%Py(hHN{VMx1*Uygm~
zT@tL7gkH2iG#EICGPkBhGg$M;zj>j@{W*cc4g=k9z@Wcvp#?{_Fqnf^L*EJ*(SyJ{
z3JBKAmBqk&@S{hYTwP{{RFop2v(%TaG-_N&mBi;YDn%vKZxb5G>{$~{&u4W;GdgIF
zUa?M4C&H3Q;6q{5YZJ%$xJ-uHKM<+MbrLxiYRIu*<0;+NrJ_Z;A@BUAu>gG`^HA;5
z^<Om%WJPt6*k@7{sHX7s8y+6(a9j485gA9W<B3W<u^q(6Y6z@^u4>BleONkhhIpL@
zIZ<L6q8>pxZ~mg~&Z$ZeTO-F0@+^FcO~v16=TRF43<9)8*{*BrPgq5sIj!l;lAI~z
z2X31K#Y|5oI<*@T=-?UdxzEyKMk4eErhBMK9HK;UN`{4@bYAp}&1+VE4lM-`AQfD%
z?4w=mct+1WYs2Sc2ysZ{pIhn-V|bhoVREU&o>RNrEB@4ui8~S!Vx7Tvu^i|ig9?ra
z81k35dI>p(?wEaPw})B9g(GYr94%ZgDLkmmKp;IbYGgg@9?B3a0p0%qM;*D+DoT(U
z)?8b1Xkr8cAfO^Wa8M#d&LdBMDh6{fa0%(kGNl#A7@F;I9w-2?917ER8>%{Km#d7V
z`X(LmUC+*q?n`D4?v8p^a^P9EUjv<4xGr5hF2h$fkD8t?2zS(I{JIg@1Cc0PNFn0g
z_@oth4&tMRCD6?<%ZMdJP_n=)%Amv#bjf#X+tM;t4|2W*XSV9V4u$MBKZ)ufJEq9T
zG3`>h119)QDfN9`v?yNFy+@iw98)}W*y9i+Xqh`jBiB_mLLT$7_dub&6SAWh_|jsh
z<?3tkL!Ye^i51WZrS!2~RsR5JE`y?x<6}|~kc`!jiZRf12vbJH*h+brqnS3?8+Oa#
ztL1+9Jf4V><jx{L>^O3(`*l0;d7uCo9*7jcJOq2j+eaOz{wgzjeE$H~ru}f<79NLX
zSJG+x5mXYlh&!bbm<ZV~DY5By%BB(C$UG|w2x*etC_U6zcB(Lyz$Tr<k#T>0d2}Px
ze6?XLQsAjCI5cr5iksO~`fmRK6ufv=B4NxFZE>=g^4YIApL)&ZI95AS$b=qX<vq3(
ziv{H%>`Tgu;U}OFPyy=#VmDr{U?U3#eNJbmL%@(1py0{Mt`yhtV7r>_=u<EVaDT_P
z+Xacpkf@yvt$qerm7dQ!ygxR#!)}!gzVE6roJq!%lz@h=8kB52rhv4#(1>rFH4RB3
zrwXxlMYta^uo2jj95Nj5(w{det9PIUA}Lt_&5`X>TFt)+UaPhWGUbWPNPAOgv(|D!
z=ubL{&eOZyYEMeFt#4&>tE&WN`7`ZUg+R<o4n%uVR+%IBic+|2bv&YglH+<(y)^R*
zC|*guS~lzhfrU&2D)Upae*yM2g}cQfOo1-^>IBXjd(%soTaAI{i_Wm7=FFTOBdbNY
ze@y0tg`37%T+8|`FpIQm6^u6osE`)gjXet!I0UPe0Ln-gO=*t6gN{q3{XJt+p|x(a
zq)I6O$3ya2?OynIvZZ*?eGUtne)a63U+^?89HOE5Q3j{@3v2Gk7ihI)Bcp-Hf~8PG
zEMhL`M>-xCGZ+rB)`sb&UkjPCUXbfsjnxvdjq&vTUawSCw5b>(LR7(tCopd4u63DM
zzmQ!C9!)Ur3&AnxQPN)y0(Ggi1GbcJa-n&2F7Nv7K<or%W9%n7lwy351J*VYm<4%L
zAWC_>OS;lZ`cn05pbsgNv~0C;H+6+Cbfo*G6(2P>V3E1A-RW1q5A&;9Xu}A_&^N3H
z8fGPrHZbe}sJ_?=24utRZqKYk7rUCg2SS99S9jd#t=prOM;^5ZVT+E;>SQimlVABr
zM}W;?_bT9Uy6cIa?^>X98933SkvDVfrH_B(Gq8k^_(DDAv2-L9S~psR9x9GQ%Su*2
zyjA+&{H^{l@J5K7z`9B&g+fij`%p-5rkRvH7aKK-o;W@GR=&GU_!OaFXGNaD>rjZx
z(Va(Hi0a7Z+KDVUIjQpYp^^a3a9!v9T4=aBA|8LqV=!aC{uf=Y42`qsMASe)Kxlfz
z!ieH(Q^i7_q3Fjgp>%{<$rUz{Gr_awpx{k976((mp$8Ijy%GT#)@;o*c~A-fJk~v^
z%#hnUW+6~{inxc$fK&<Oh>mboiY-qMos*J+BU_KnP7Dc~>^o9IERE&R_iW@O*vXgy
z-~RvyeU_nVFCsmffldJAv+uR%MjqxAZMOuWIbPRE({s}_r<Y=T%|Mbk&B5&2Ou#C*
z7S5(s;o|t~yVjzh^}$h4zHiyA4@MqM2{*%CPwyaTer-}Z6ieRJKp7Ml3W=EIM$x(k
zIgTcD?Mp;){GQt;LkkUyg_9f`)(QeU;?Z3Cb)Xw0RT9l2j(%}_;{EnwtcARV5w;-Q
zVMru;8LcD*+)p1x$-HF{fx|AqQm!H9$C?3_5z2yP>iWHCOxeEeJakw$4m(E1f`GSQ
zuIdS?W3->AEtygn+`e>{gZymer9{lkcRanGvs_+s$G>XK<QCyCZu@8B5jR156bu>E
z6%`v0An=pkcEUz9xS#T+=L#Gj`{;)r=@C5Czw0HbXL9Zn=^^njhXj09Fqk_mCOGhw
zC6|`*hosM9fxwrKM`c&iY5XN+Z<>QD1QDfTyQoQI4?*Epz9sdqD$1mSVqGL(YB%j@
zS7V$<l@|4^d|Lch!BB}}cY7n*sFd9sgdcK-c2*59PiOdN12nKi1jao167r*4Fo|=Z
ziks6D3!ZXEndMITDR8gYcc6)D1Qn8ic4W*`qu8h#k6Z$xw94*x4h`vl5q3*|o*s=J
ztBY!RL#tDevD^bMRnC5eAA-_ubZ8h#1a+MD60;wV@+w0!whapM*qq7$uIJk14mAjJ
zHf0=rT4Z6vEs-r-R~EFrbq0hpby>iIq|%|*rXtci@qKGjNV#J0np^3-8y!XJ(u00n
zjzS!%S0v%j^?>I>Ja)xFOi67qX!wq*Flz<yl>5@4QWguj`Zv_>#L>hldqx#}^PE-r
zrUb+sg7&AFj^u~6UVK5sH3l4S7W;~_^DH$6UeiskqJjn&4e*}ynEJ)89@Jm#tm`kJ
zv7Fq2c~i#Bz75xC=RjZqp+N`r${;v9hde3)NI7WJCk^Ei{{X?Pu)gYOnK%Y|spOP4
z={eCU1tF%%y*q4x$xQr-GJ_6g-Dm)S14GcDa5m^b8SbQzNr8iRp6DCsGCZH^lHyVv
zN#jt`p`}GcRDXh5;1)8w=z7pwppU&Nu^9slN8IUFRF}U@XQeEO;25I;*42uz)(P&n
zuj=)B;+8fGBXV^O7<o~oSgf6^7<mMoLt3>~F2I*Llg!uwHWuc5dM(Eij#jC|BIe8N
zb=fq<z>L=3@jy{xc@abDm}(;s5avtUWIRFDM*b>tWsuw@yUxr81bC!-4wXOWOO-Np
zQpX=Gx|;9X33#J_i&{k}5s0}Q474buX1|uBao(pW*^=p6fU~z2apOR~0g~%fES+O?
z9Q^aQH@0otY-}6b*l3b%Y&N#-G|r~6oyNA^*l5zIQJ=kk|L2^2x$kz*ocYeo^|@Nx
z_fjAyJe}cE6M2>ehV5eDN-CuI(O|&^?vppE@G#gK>aPt43|3%y-Y)jxVg~q|oRBF7
zM2zo8@R@x7rMiehvfg0I&R_Q1ukTG!V<l~7#uW4kpiSP>X?wew9rS*wyDivJg$b6!
zR7s^bgz5>w=o*iIzxwJ(^7BJjd|W)KQ#h8~xY0$3jbp6)ho}`!!e=Wh=~|Zc$@z9r
zBVA@R12c*(5nsKK^!R-TlMJ0ndWcpLpCuoDW<R|*P(P0^hu-!$SjX7b>xdNRXuW_!
zn8Y|WL_Q@*-}Sv|T3sk)A>zVi11$v&>Oy%UShpU9eEX4FN(WuXj}Kcf?IhBBld~1k
zi7~%%LwZ0Y{X~s^JzMj@TvelCg;6M5&9%+1nLQXP$q+P&d0Q!1eK@Cp&kAokRmfjG
z6jmK*AefamB=Qf?Qxps}>4d2np4`HK;5+8cYt40lsO}4c=oNZ_)->1FjvL0A*r~J)
zlTqFJZRsn%I<5WgnWK}luL{#}ID^DUKE6in-QRn}>C6aK`YuXiiGY={-AuaBgXaK~
zmMy;)b4mp7SvT__eA(UT>tf)R<cR#*T3FfPxE93zz`L9J!RcYkA*jt<9p1l=QOj6Q
z)h?!08lsK<J7KV8o%Qj|KPEe4?EsPN+*H`i!d#Vu+@N!<_EkM}PTQGv>mOj*Nd0BA
zMIaAX0O0qcD4g&1n88k&N3oreE4Z6u;-45J%8(pZ$LM7o@PFq4c?tf77#_0Q_iNr7
zA=9%lphanfZn!U+#6(`oN6Nwua(Alzci#sFo=XcR6}UW{G5yNarVIJPHBv8W=O|d-
zm~aM`EwToqqi^B_d4K(~G6CVU&+{Tau~BV@MKEz#_I%Nbt;Xb?J1{z|_C@%9t5~>F
z{TG)IX@?<76!yNKNL7fWVV-q<4iJ%`rrIjEB9)}zTuMCN9eLN>?NpV|h~Q$m5w#Qb
z{4Dw9?`RE9QeH#u-p_Qj*Izu#_@AlPPKhL1@WBzqUWyCFauV*43_Y0?%!tb$3L`Y_
zFoQamja*X+u-%ov=<(wZR%r48i1k>qL6bM1ucYAX%1Kot(~qD?vy{(%l$O&ORtpbm
zXB-L@ih#Zfz<koX10pyl>RoG!?CT1OEdH2i+%I4@GV@vBu-0Lg>!7?|u))e108>KH
zCFh4>hp3!FPvU{ER7xb9?l3F$Lyf|9_p9^%okL4IkJS&Nwi1L@Sc)^>g;)})!2Nkg
zD@@8=*?q0}=DTyP$0&MrluB?}6S_NbO!24ZvK%GQ`F|r)v?|k7GC}4YE5;bSbI(z7
zuaZ4C;W94fDtX26^X;BE@CS3*!kM4VNd26PWS$6g#N>riAs6+0XYQ3j5~o~3$ao5t
zyzGzVg;i+UF!@#JBinji)0OduMtGJhCZ7>1AayJd@s>y1bV>vqq@Tf$k+SCoF?9rS
z7Ta2VJJK+co4YLVmIXA2W?SE$h8Pm$%33@=XdtX~;oVsY$ok=8X`aPIDD&P(`Lzm`
z{&=Q+%|F$(hlzT3UGF+#pgKa66F*7OOgvZ<XyJ*ySfLuUZBrD$6Dkr#goJoR4ALm=
z7`<r74dpbk?pB8?`$~<)Ac#j_X$Y|KSgNUm+(r|BnBX1wzAI5maAl>wxh4Qh2RwRU
zIyJ1V+-nYB?FA<#Jy`vKs8b~}>faBQEZm$S`N7hK$=lAt8$kd)w$nDzu`LB##A?`u
z2*!;2zgl9As<f6=%NSl~u{TxCj&XVqUm{c#8^Wj-gqpW+#G4&Wbdfj$Z%d$!;{O3!
zYKFWT?yeZe)2_LnjG0C4EPBdNZ3GfL!l)S#H@_ZnD1G0XxWXLh$q|MwD)zp=>GMdP
zR>&BV@Xq4ZxekV~VQ~>B<mqv{EK`5^Z6aqz#Ar!A(r7Yp=Z0N5q=KLT){p#hs*Ht#
zZc!V-!ea3e*JLs=wB~;!KQv6CC6}Vtd9x6-<QwE(fG$Pm0XhA=1loyTvi*9)qEPUl
z>KOwF^MM2|@mLt1Au1Q@#4-|i0#NbX(poCth~IQlW|H65NzNxznh<fl#|{Gn4wUUR
zmSb`p<qJ2gBraU5$8?(VW^nE5(MJG8aW^>Ig=&2yr{Uq)EuI%N9Z*mCDILygA?UMp
zWs)|`nuX~-l-KjIL5V%0m;?L9<X`g75VuY5VhHW%rw85wF{)P5TtqiQ5b4`~T=Gk-
zHJ@^eF63e%??8ZG+T?VFXvaM#v%vV-{SkBlmAfKwD5#1$oT2ezh;Db%EY|{~V7dv3
z`j<cZM96%`B2>-}!zx*QKWijm)jJde(mnnRv>H9GLMcP`N1KP#jHFyl)rKgSzRDfM
z+nGYy?wH~K17D-&CkBQx3iPV$;Pq0y!~cvEVcV2l>6-IQL&f^dlW8a_(NQ;PA}s)t
zRt3DN3p7OQR=$1$yxZ+Jd~}U`Hg&K&^kYuJbbqhr4IXbjPY6NB2az)s4V`1AH<~2M
z2vPg2*F4$y(YEDsPLs^bYX7?4L`5qV5sFtbJJ39oUPAKi>N<FeH2z#4>x*)r<3~_f
z3FQL$xW2l>F`3#cWdumf69*B|Zw#l@9gKmW@YXfQnUauMbLuLJ*`{)CE4Y9kMVgIp
zNq>%^ihaoKv~+B+%v*0R7Un*ll78WdXU89a$LU@|zvkLqX&7zkJAYJos@*M>=Hzso
zV8u#E#bJA)m&Ih%K;|%BI;wIeGrXt~eqBPtp~7oWkknNT+%>^ZF}lJ113c=5y5eIO
znBwkENC84;m2g!>a+3`!$?5NlA-8LK?h@N84-Y$^E)T?^7m6_VDY_L?ppj#D_4o8k
z;*qC^2H?{3%nv*Pr}F5TGEuZ#jZU<%Fxk!n3YMm(HkI_~dOgP~^#qCZQ?uqy@QUC$
zSa#ZP6@9rihrFoB%pObRM+v&fa18r<jHxu1z;d*@Fg#aqQuS8jeSekgs6yA*+zW#M
z+lH|#W%6^=p<OibFfx=`GKN-rolSWUGl|$zV@w2HmBR5SzEE!#SV}i8&<PCa9*!ko
zAvTY%jFWcUg>X9XPad36jjKkQb>@aY!e;-*QOD1v>%*zY#0t_w*d4$vF%il$={dnz
zWm?9yO}fDmT=oLfz&%eip(xHwY1@Ekpl;POA!$|$lf)p}irPW%d{k9ZR^Y-mBTrTV
zfb-Ze4j5hFt=dK6N)-Q<S56%_F`1=L@$z9^C=>lm-Th%$-zUx+VJjEcLdJ(?zjlOU
zEV8%nNQNrKW}_~SK>x$<nI8TN=V5|_97(G+k77aLJ66HVmZ`Szh~G0`FnM&dRk!N{
zidm5!odinlmu_@j!Otrt*_{L?Ck#s=Dq6xL`Kthz`4zRm5&DwQU@z2HEnPm|Z4ho!
zW{@hpO4NScGzujwu_Op@ZpwM}c~i&zc7f**EpOgOJJhT*S}fY7UkSR(1I246E(#I4
zV&&6ZrWBJ;oY7zrd1^LY<FtR_i9!najO~{%Q7B-HvoJ)wS=2+~SM-(PDeK~!PK->(
znV9eubd^~hv(|jLn^T%*WKFCV)1^Xzj@h1DX3+%T2PZnZr_T!alw(UIywHoi)Zr%u
ze|x87wJ*$MY;s3MCT;(<byUJ02&l}=3iM0Q!dLBlmA!YaQKGND<j_duNXXq<DYu3M
z^hkBM<de#Jf}b;JREa#<TfPh4%kjZBp$R4~3gJiLe6`%3*YwT3sUSUz`&LbQ8U&z3
z4&r#*2+qbnbL-qXA1U5%Af3HPnlor5Yb8UfG90@n9_l-g;~l1`(jrogjeM*25}>IS
z1?y0w3I@b5hd<{BGR*lB<*Ubs6}hO&pDe+s{eB6{k9prrn^u_!b+!V2NH`IyP1-O3
zvdC|KL*AheJsV;0EbT#0_RHC!{vycpgcV-z{4poc4%ANpfujQDIPHF^A1H%tt*7Yy
z+AgqcxPKk&7=rLFt8rS<>7>UXz=@%GeR_LTp6y}Q^nqkJssQa(tS0MJ9k(CC%gDVA
zH{cGT`z4bR=a^yBIzG!+9l2+YL;vWEg`ARsD5on`<i=_>V&;Fa=@-ne9^ZRx9ryw*
zOql$0np|N*Fru627K&ePAkRoYC)B7z+VkGH%O^I;-cZT~s`HHsY=pJI=^&$M3}kCX
z$EN|mCEE3b=qqVDSjYOG;(OTHeAQFN;|M}>G?TWiDYgIoH&k4i-0^P|i|$C_<!~{9
z3(BQ?kGQc2e{7T2c~Q|r7w0*#_p;UoD^Il>M_CQmBeGkH-72~JdOS_qvHI4*vK_2n
zaBj6U8Et&!r)lja1XS`%KyiXDwUSJw9Kityn&4p4c=xX($y}WFLb*?YYwUymVqru%
z8f>VeqR7ry)UV}<RDhkIcOVjM<i93K-Kr;e1cX{A$upz)wH44i-#I{ie0X!l$4fJ;
z_0#rb77(S1!Lgf8uStr68yGPRgW-l0981Z88`&XpihzoCOn#=@DAzo@h9UIx590#{
zeT9_Sk!eIdlIxB^S^Rz*M!&8f%l<IyqgP*!gw$f!YVboEuMU)#l0187M~vFMCJ9o;
zLsxMQvzf>OgwzQI#OnA}rnYl2Zv7HXpd%v=4PqWKE;P!?;?U&!qbP5IGtU&Q?C}(n
zM{qS>EVC}|p!!gAi;L(~+Mq#?qeOf@9qdOIefG2}WY&|#eniaCC*jI0CW`8N-dlCj
zzN0As4H)|ekb~{eQs|S8+vqMml2U?(xk2usG*7F2N&sp=(;kF*T~^vgZ6EeZ7M7be
zq9R94nXW$g{tP2^;xESQ%N2|0@-Zu4C|Ds|LLd=&0wU?dM`tW%My!(lSeW5JebuC-
zB81>%X~ko~TWMq1DenHV7dkl`<{gR1L<m^)(Rp}(Mt73<^9LyY%ANN?jt1#><hMDW
zu0AxW2?aFpV|!ztNg)PM1?(pbTx(B@zCEd^6au5aTxUwymAY}`d*9M6^@uw!M;)ID
zMO_w%xnkbveSp3&J;4H<ubqoD2c`-w4MpvJH-9OHa3qQ~dN6#Y?dowfs-2o9TVPh<
zJiNVX&#LT_Pu`#;uv>C6N^{1bw&>{Dw+}d^H2E*Ef9u$F?>8J5Y4|SdDVKu<5G8!=
z(KvG`I6!eYfc%sCK=%YR>?y<wjfCjT#9Jk}7$^OJT#ari;^ei0G|>UT82F)Yi5Xkp
zG+?#<>@?95{kMr=MkTg+1Zc2q!c8LRi-5>GzBclw(f3jlTYCu_7piL5>KiF|cmY{&
z|CP3=nTq9n>f%z6`>tnvSq@;eK<cDxa~_$HA?jB%aAGUCL(ImKau^|M8v6`OfDW)-
zAr1@w{r*1q4yjisM^VR=3yubWL|P;|DaR(sx+v5NyC|o2=L5vi2o%uatGsIvelObk
zXh74rXJSTYd7&?sO)F>0x9m`;SegmB{_Itqxt|nO9fbtC-lR}$D@K9B`$6qf$lQv2
zS4y<p`qx)#*{1z&SM(!(m4FIloS~kBOT-F?hhK`fp!+OVXYiWuLEgY1$+2FKM9c1e
z9(y(Mw?aqBc$|JbJSg-t4kQ=|?SQyPl_|FO8r`HL5td|sRId_PXtZYP%cBW^*ZkWm
zZldmr(HTnC)F66aA&twiBaFhMgN_(+d=k^yIOVPX=X9iv(-DK=WqXQQxtjuBzT>=U
zMRTWISeUiCgyawi8r}>F;L_S}g1-}vQNH}IlM_|pDQr(ZWP`PnQv7kTQ#`LA+yqud
zBPy`nG{@a%Xwmm>bjHz)X8|={z?m41ySzDA;>;l960v+rui{mNCB<{&B08N`>z+a*
zo%x(kJX{_>=ie+dnp(_9MI}(;lX$%u;|k7;X6Ft~^>SV?v1Gxu_FYhM+>F(VF1mXJ
zb44&n3d1y^9)fkFKl#)CDNH;b(9l<mq)K0kvC~@@Box}T!-ba4RvPaV1+tWioV!`O
zqKIvu2PPw^21PZ>QkX^jX6)XrM2wh4B?lR0h5C5KH%yfqM_GE}QLG$!ed|i+W}}SQ
zTl8^@|G~kTgf<e{0xcsHp(gy;+=voxlLQ~?Tok6FL{3<lYNB!JQ<<g*{U@i@jb*H?
zD?Vaj_v{;&Zehj>W7n8kOz?>|2Nb@>IUaIkS+}Z`4A)OjT#0d=%l2!pN-Ee~-8~&r
z!bmyCqZ5N`#ou3{%v4>-hh<m7TwT;ToNLC&&+~VNUrNQ)xqFl`yaRC7FUAD5Ne`~}
z(a$t$^)=&Y;myRZ=tE2hXhYkqWz=4%k7jcn{tSTDkAJtRci<t1O8|jT<e>i$HmcPc
zDTqTiN7?Y1Y+%cx99cJRIxsaT9AS73{%@(0e%zD~AxTK_YT%ris`9s%x_ZrDu#uE>
zWgEtPtat%TNO^=0MSSa1wGtm3Rm*SCfReZ&%P0=9t4?d&eJCl`iOCtIZZ6O>5&x*t
zt_wyP%gE%^`&Z+8@b-=lS#iEzUq{r{2Xy$bV6p^U&<U!TrwA{mH!bt!q*u&Z0V`22
zNCe_3VCyrT_})v!rQ;7CH2X#!7nJQKOSF`|LgN$vyhJ_Nz>z#mP`-MveEn2~a{Eva
zT<At>r`A}tZ0zm_+)r_$vObocU78diDkDqtf$Y<Qb`pG5T*Cc)H5v_Twu6OTa5Nb9
z!|fH^ff%AJogg>zxqkqpu}wIx4%Fqc;hfUier+DFh!Bj-d0$J4j^NAYA}Y6#(C(kZ
zK^ElDuc6C`P2M#EJ!?mrDOUyZ&3`@ye!!(g6+sK9mbm{)I+0Yhu?q64I9Uj4VxXye
zHbkz+qrp58;vx&RZ&XL>zxG@TWFQbb^}?EoUx1gKye5yd#}*8#$@`A$z$7V9dr_U&
z1C6;=rW)&B@^yD;6#ib|&@-$KBL_RnSYAjk8dujP@UL_#Vs7$n8>*~H8t9Jz&BRVr
zQhFxBnU*1J1<pmI|58l5Yw0awK#p}Oom*~-+U?O<(!yl!+CRXLh6Pmt<Hs94`{XUc
z?!p3H9}RX&RcP@}Vx72g%Z0ZzK)d*24TrkSpg%6<sW06ZC^*B@Fm%?xHJ^a<T+Z^g
zRT*T&8j@B}1N?E-#&ha1?)ZpHkVAAjDfl4CGYQ;L7KD)4HU49uZ1lc_ADbnV+!=*)
zW%4?#irR0}zL%b_ryfhZ%oVXBOwh{FG*_}crwRRX&jrRm^hYDrAOk~o#G(#=WAVXs
z!6yzVF{VN0(k0!_mqQptlGyi{tZ~Pir~tbbGwZ(W$|!SowtKXpDr+))D+p)#<_RqV
z`Kb$bXTM9fuBZA&Zob<cwMnz7ewTcz_%Y=zo|otlgt(<pI)F805JVE>#;`ECOA<k>
z_P-8oY5S8V?v}s|(iI;GwJtVfI=9rT_bFz!Eg%YAl#&q>lMt^rL+JB%7(3;#+#jl^
z@)h{tFg|0jZj}{bk3)S;1m+;kOzHcI5t_)OvIY810kX$fxBzQ@akAWT_wdQ<aNR~w
z#hBC``4FjreDMLnR!w4O5-;@$ro)=LXsEJzj{+n{uaRhFHxaktZD2XRu{5+)4yxhN
z=LLR=l~i_0D}u%rrE~N`Xhat;(`rcItCAf1uY~j(SP=_T->|6z=S1&~nXLG@%cz2@
zSdf<UWa###xRcU{Isw|OYuUHbu{Y<^oOEo-`^j;QBWyKcdY>?@;2?BF3Xh8B_TIp|
zT5SeRe8I(20l}R5PjFIdpR+xlJk#-G3Yf4(fNt^}Mk}^?x7|CR0oWAS!&CwY;dJYu
zFX$A*3|SYd@#@Q(ZQKHo;imOrLZN?)=&syR>Zb1bAO=IYVO5P_W)Ed-!gcVI??Mej
z?SK*ivJVTPoy!$o@MOk5`X4nq)3Np6nwDYc4k(r!PjvWk=St={7*;M2O(07GGdodq
zKj}&deevuIC-U+c(q{V;LB7N#HX7F@O}>KaDhK+0deo5ZS9K_Ue;3Q7NREU58Y)@Z
zB&tVtybwv8Fb7m~tO-=VM{Nh-NC|!OlcnT807t!|g9C(~4_AWqbJ|WV0pM5K4AY!s
zFA+YHw==<4)6$Ss`&}kZl0C?YF*3LqrEH&AX7y2TZQpE^g{1!jkd2Z1Tg(P2{RaCa
zGw1#|Xr10wY8NxHl^a(LDLCMOF63;(P|+XGX!?NVzm(4DqBC1UY9xFhIy%>JP7)I2
zo#2)^RUpkSYVYt}#lvkb5Ki($MqDRvqIR*ItWk-888fX}-sT0F<4Ir-MJ^!&(!o#<
zV9QU$R&u=iNS8~<j?!U?9j9i5W@N{Bo;2Rm;jceOv?nqtq839*jMy}H_YjpespU2*
z-m8WBdl5gpPjJWdayq<}e}n4Lu8?6>N{((EI%^~(J7V@d?3%v71;O3t5t<|l3!<t1
z+8u1|-U>K1>jQA3@~1@5TwJ>ca(ORlWxyM-BMSQRI(}gkjrPI&>Ike6$(;+4QOFj3
z$9IJab;HO6CCChR=(TEiL{6Ge@FLM3qp_lh^Ju%7N8EcGw}zMrPG4co6l)XhL|?wJ
z;vK6Vy~&zP!Je}Ete2nnH2&<oLDJR=>TI6mPIn_9D_Q)+1#p+V2D_NkSM=``dzwmZ
z+c3I6GEeb*Tv}jLE97X!n9WQL#&L^?mm>s`d3G2tO2O#F`mz&Mf@|^LhF*Os5a<PW
z>QGDbYT9C=2U0ZINxJ(dQehSeRVA^}WqJnNV6&EJU~!i)(n|HxNO9%O!7=uE`$c#g
z9)PF+CTCrBp5aJT-UAg_*d!_AE1psrsBN)(C3McI&OT%jd+6riv4>(e+P|q<vro>W
z%z1>Ii@TBHd+enW^KF}*QRU1_$-W7>K>1u!*Bi}fSY3do&&G6d0W!46bXn`L3F=?a
zvsJgkZ(sHy0&@9o9m2WU7cEypqy8(gE<vAKZlBGsyO^IKHKY_@PuE-eWTAnwNrS;0
z-1~nO3olcu2B8oj+?#9pMN-@MyKR|Sc<>g?4#>`o4)P^D<QT;QJeQs+wmHv^2EMWK
zFGlDcc%eVOcQtWSI*pg1TRziC)T87GKD9VSp2<&YDFjhSUTdk!eBhffd#x29@uvKG
zDb}EEs`vN_Rn9E+rkQ?m8jLUD<|^1)v>%dx;ng|ki>wk9R2^N}<ZR!+rOq5q_2HtS
zrA$1-i0U(0B%w%UV_Xl#zLMLO^7)S%RdX*0D{K}`HRZ~=<TVyBQW(A<<plOl^NaNT
z)z4LWq#9jwiTwh=!k;g4b#|ps6BBlMil}h=##^gXfqDfoI%QO@6N8){tG2q_4|Vo(
z8cV;jR6%KYQ%slz1B{u-hvt`SXv;QuM@?};J5wCefR3CJJXU_6g8;vTYkS*uoaoew
zXZ5PMw|Mlzo|ty($seHWgVb7J51%wS&31tCSiy78n#D^?r%gBd_ghMkT?O=-5oO?n
z%`L*nxB7v5kS@6fLT63mvTrH(lHMhd&V@kdJVq8Sf`w)y?F-w={`s)P$M4U*@Cxm_
z%-aD5hq)=oH@oP;-|X5ZJMEUU5KV~$+Q8xqM3-ciWb<mBX3DxkGHYw*tgl`=j49V4
z0Xs_-rC3v91ioBBC{XD?6PM3FP*kL37MP{BbTb5jQwy<3{$RNmb`O^)uyTaVdGRNF
z{XW;P`j&EaR;lRlxRsbiq%Lbn#qVQJ5jFN)hC@BS4sgh4((9#=^qrj^dZXp2Nx$W%
zpj&B~uI<E%PB`ZO+RuzPK&~}^iph#JN3_c(Tp9rlK|DP{5ypSeWqXX`DMr>%K6jDL
z%SzIMi1KMm=`l;V=mP|#EX?IYl4`pjMeQs(3=*-Y_Z)9k4j7e<jT^X<jWKf4s#}&J
zB8KZ6CoRSXbOCX(O0S?B%?*Neo3eA;o+XrqD^rAGm3rj`&h%jb`N?gZA>E9OUp)SX
z9&>=iGa7_wuG}!1?m~uV{|7i!5xn6(FsO@^kJCF|;%8HEM7h(j@yo0GQTqoxO1M#u
zX>fP6rc^LDWBXnaY@Xci7}(9yRnbGW;p<>%iJ!et7EZ<6uolSM;p=KFOe*&q>y(lT
z)&Y%Pzz)B_C|gj6IMVnz#r57C{HPbu`twaweo|t3$Yosw_h(-|j!LvM$riZw(&5U8
z5yy@2nnWS5zTCeDAh=jyc^&HYv+zH2mYcrY?tz3M<wI%{{+V}TM3ykeF#Zi5zTIu2
z>O=~)gS}r)dX&D9nWyk&QfEJQ^8wcdo#mX!8TFyz>y(U1@o}={b!Eg0JanzN_$2q(
zSv<4-=LR7g-GDjyo^wIPPCjI`FxpHXzCN)C2`+<#F)RbFWyC+HjdM6tsT<6{jRn!(
zPwZibo8pOm6!XuHYep#)S;84y0&yn>PPqSWq-sX6yR&d5d+afzrtL1*M^?f#{{Qk;
zoCZxDKS7osVSMNqR)8mHK;oN7qF9vSSDI+e8t5%}q+M*~;`-=2dG_h_^DDt{;XQL8
zHA|1WU4o&vAxWxec@VgD6DS-iGT_%bD0|bD{u@}oiQ+A0Dg_hm!7xnB1Vy$KSV3z0
z31z}}4a=>5HYSCDjGtv65Fm~Rt8aZ5J6gelc!pHxOP2p%XwZ-4Z-;8fAM=y;U@PfP
zz*CMhEtOYPesS?1jpw9KjIUSxHM<)7KAsz%q@S>Rw@+8;bv*j6XW4$H<8UEWLNMrM
zAuqO0Gspp19=(wFcR0OCtSM7I(Iys><ik=^{sYWcjX=YFHK-;6AIkkXYT1!jgBG}k
z5}2xu+R|*{zL#x9#xqq;TKbt3(QS&YJUGk*B!yeL8x#KsK?ezH#H7US`?h4BWz)v8
zFGlZ^q82`vh)$|XinP2o+JS<>ELo3W;wDdLGF@S=iQt6t5CEsBF6Vf-$%C~FJ=pAq
z3FVS@h@nHX0BPS}vzcX*FK6;5pSV3(+5jn50w70Tq%t8#J~=n{OGXIxary?tzY7S0
zMoTH;D8jPL!G*qlC|%;iPeKxKLI)bw3NWt_T+`fDZ<UbRLCK|4ywBbcLu4!Nnq=oD
zv?^QNk2zFIB63jMEQpj4B*snR52bKgeoFJLk;V3Y!)!9zY>$Kt^*jhKS}s0I@CR3h
z>8>Ieq`xWZ|6y_54vdQ<3ow9t0Nrb=>04eODC9A`E2e+%`0g3X168ZPlunZ`4LHLi
z0O;TR>MS`7FA!drAo)HDSy;mI5oK*_;N$=G>G#!WB3fFinIU=<UcG{*EFzugBsA<#
z$F2uw*nJl=yMBoC(*U5NWyMkMXNmqG13;yx1QG<bJVh}yHBeoK?eyYm5w*EF33JCJ
z&pSWylS!6hJbxZPQjQ#K75PhdB%`|L>GG904m5&G^8H;v*0Kyy*@BGg>^zq}o%Pn{
z`2#3+>ag?sNRp5C&e=Cnvn)xa_+*X|EAQZffuGWj`)XSf)_#R3?rigmU4LT*HCFkH
zm)f`_dvLyL#hfvqOS-^fiFN-{VUqF}s#jG74*uCsCz<ZlaM-ZQykZ-xhhn;k<WrD4
zTnX}zrXT*_B{|iF^0lWxkg^w<jD5}iq?V?7lKFe$OW}6`fmX+Z7L4#)a>Rp~uh1O0
z9e8BSSa@h{_dXz6USbKHpJWF;_?m7>*IQ)<e+6c)HpEw{vR2Bn{XDZEFQPgm^PEC4
zTfqb@*g#%Y{X-oW0(xR=rin(qYvC6T(x^CRdF91gR2;2Y`Un0LYOdEVdwPAH`wh1$
zFPcL}6PJUi0{nblPFrj3XCO|_WjiLr(swVb@D;@Lr*a^W)DodM5rvvmxnN1=3q}c?
zB+gUZ3Vr7{VYzXrJ|CKKjT`HcfUZh<Z-<GcbGbV}4!bifPIjPg0~R?H3DS9=L0E^<
z9oPbi2ntUADOke}Gn+cQ8FYDFOcJ-D`X=gv2NhF9`lV3P9Q}*V86OolYa9+r*BG;n
znSR=>QzLc4paoWv|FHC|CN@+5cD$Iqd2094ChC}Vjn^uXeAVD-v#yT|MnnYy03F$9
zGo?c#w}2a`UX!j-l%1BGm+D5&BfgED4|R(}>a{YJ>Ivw{Oj$Vy>!&3q#qA{h1{s@O
z_iV@GL9x4u>P!>C#=Ab|c;(i5+;}#kh57aadBk_%gXr>Lh~<?@M4(PZovRR!4cE#$
zI6G43=|cbjB8S!#j4ht+Qu)HZ%7ib^R5v8%!K}s*mVN2NEO)BS`yL8!WSXuIWncfX
z$TIUqnmp?`GICWY)plR|^9;k6_}r|-m~QS08F8_UuUL|mp&Q944;|?L*S|4O0j7>X
zvdCoay7l}!l`&q-MbMWd{k%uoc2uO2N3EZaGzwfl)z$i0e6gl~5JRTB4TA)_RkRgj
z(zf>v4s({U{-FZnB|()Q>{Q36bj$ehK^sZBiyf(YefDP+mNoBq+kPrTq@wT9^XO`~
zT_qshCNgObNyyb0vC~v`ES|ZXpM}aLl!Dx=>eU<(FG5L7$1%<J2{vv0-0oMWQRv9q
z_JJ6Y8638jI@S|D3lV7a2#Ibo&`>k~sp7ril$smr+_cV)`g%WprAROJO+19orMuIk
z1s=XxJ512E9Df>Py>jMnn!lz_u0TL>xnWxR%9Ph)Qny0J_`Y3gyJQX~1+P#CB||~2
zpIHn}^>s<MAPa9GVNx`MX_Sx-a&#u?w`?utsjX<T)G{k>KUwK%f>~nHz4OSU3r!kS
z8}5%~%R}X+?TWB$a@sBp+KoRKq4CE0_+B_Wd`R_aSwoYJ7doBZLWo|O%p=6fbp6{%
zmNAduLW(_z+~Dhg%3rT8VXzEG!naHoOhUN70xmJpB-fu|-j&%tZ48J+Dsg5dO&^nM
zYxlEwunS|&Bw3r0FZEx~lA%w81yVrfUZu39-lwF~lFTWHzcguRbzad&1KLrfrXGM0
zAKs3+R(0c~>}K8|j`QSk-7&t0_>i)ci81$OD-JBgC9NaV&c(~1hu-L^7UzB;{He03
z;@J>mty;SdAbT}l{_%>7s~kT<diP7hegofeS2QLuZ10Q3OX*Qs3}XDshXxCgmqlly
zfi<Ue=i1}t17fOWgcjC09tb?>VneTHQs1o}B{`=qT1XRdi^S}f;gpL8&~?9r4v`7l
zR?TY|RhPRIJ%_0RA;ym^F*MET)vaRY$E<M$oZdk%$L<5R7=G3StK32D^Nd3n2~<&d
z<~`-O*}jIgO8<Jbszdh@jNJn+GsUi*v6FDPe0&x@H)8`A>x+<LSA>8tFZM1JN)m73
z%}Pesv&zbM&TkCv?RQ0-sAw=~#nfJ|2G<v5fDb!9Bt;ShRA`vXKliYRG^u*kd=oxy
zhWFquIG(`5Z@Kn^1m0sCEBNl>xQLhPy8X(8zy?W#5S`j76hf`Saz%7Hi|pI9U?1eW
z!f&W?K_Pji(MU?zlca<5NT^!g+<wi-d6Z<|NoW#!#(sm5>K!u>x@0@9Sb^OMWR`34
zLhz-j&TQL7VJ_uIs)uK{{{T||0CB%!kRiSHhaoG%FU$S}UUKyq{b{NrUb9RW6}`XT
z>}Y7w_t7MWI|f`$t>wPR*M}q!c$yHB#sC<CBs9!|K8=wtYPR00w#B?b<bdo!{w-KZ
zrnuM76}w3O724wsq(PER5jg$wMKk{ZP2{#~X7T|QBXcDTB0Ax!eY~Or0n&a*#F@4h
zr<?X`mE6)gXO=B01^XdS)o1mDg*&Z`BW>1^kgev|&L>Y9{-m4SO&fB7-wJ;;prC)t
zA65-!w_vL#hex7oV?B|ct6zsmQT<R(s$=Fa#3b*~#MtqwP)d)E5grrv^rg2@WZU<o
zP;^WeLJB_=8`QR2|8hjR^PSB&i*#2Up_F7aLn?Ii#bqh-j_&3{5v#veVtas}+K9>o
z!h7TI!ld~7YAH;lPwevM3B&(iB@0zb8b!L<Xe0!zY3rOum&IjP!Axp=0R%i2b!i2s
zdMjT0vZsaJVPra7C!6;*TuG7y4>_I2P@?2!IpMM<yTbayNsVxON%;*c#KEHN_u6JR
zQ9I)Ok$&4(K9d$Xa)N$G6sVCewva}r>nd0lK^)$Wxg#nrWrUZ7#qGmJ$J$SDmq>QH
zPQ}A92F-1IAg9R6PU+b6jyIm^xUk>dKsMVyCHeh!lHDxm?QGoiOOVQ9lHjoq%FL-3
z3tMFKkxFcSwaD~F*3dVA!h{abd~?_$4Nzsx%4R%}jquUYo1{}v35NKv0Lf?*-Xsd2
zpnGC|dR>tq;j<F8Bea-w(XA3gB4`=!(^i!~&U7}U)G12B89TH{Qf#U<E2!B{e}e}N
zg{gRWxz<9pq;s5vtlbc3j&x4M_P_T$FtPF|MBXToyo{4F35VEa7tsv$+EEL-_dSB3
zRPvVtP6gLEQ0A*_rn(ZJkHb$36%uGv!@siB$wD;sD`Ae@4)o5p#(AOo3-RDYMUfkD
z_dh_b2E(5?CiEnr?{@K=<n>a5VIKCQ@KUz~4VCdV2&ow+$Xw%pB`jW2%2}pE)-c8m
zepbe3`6&4imVd-fN-%AT#r)Bh?Xsbi#8B=hA<T9aJ?nY>quTcoXu5;3Hi(HQJ3iV5
zTFh@6I<AI%JGFcqLF8=STv=fK@#X_Bug-osA*>rY1{X<(r7ocS2dx|9o$}a99lpkc
zY$w5)X2gxIR_5Q$=mw|u@}x-ohs+W=LKAwv`!?ngd&~Sn=SRkz-gS`uR(`*l-A_AM
zxivYKc0X0-22OXsk(sm2aWyy&T*5ty$CCc>1YRRP5brF0i46gT6fD~c-3_mUAyOyR
zZ4)lrHMoa`pN7xkVZUf1b+>1>9MLkT7_t%@(lws+DxFUP3}Ear%O!HJJnb0}zY3Gf
z!Jk%re=NFKc)+N3lz1XAE>pbOPtvG&6?zl;2jIfuN+{b^7nekA+P)%*`T%EJxJZ(n
zNJU)}3gx`eI?%fLhd(bb!=Mcx+-al%1ZcwSBNN|gW>$xiJj+lIhq29CN$>DN8`<zU
za%T=G!H2a5a*q`gg<yKnQa@Io`fO1w-C+}jAvnYA6k*UpNg@+oozJI_ZGvM9JnQ(G
z_Rvx2S$GaQda`WR{j7;b$#ob;=+kvz0<yHa{+;4ZZbsXi$HN{kBQJoLk&Z1|1I$7^
zNxKL0)24XNDta64bt#2Px!2GWGQ_Wm{^G_M!s#eayS0S0<Y|x?N^UCKmJSnV5ME{K
z(Ic>NJjuc8Z-^&iJ#t@Xt>RE}hC-<9i_j$Dwc)^Tyjxj8ekDDP1O*i?dp<g4*TExc
z^Z&~dO0LzZc+z^l)$dw@cVXaDh`;Gz?~u?`a3MkS0w$3zj`~ePCfaGD%^UqtTpR=5
z`6zR$jL-o?U-vr_N)QH}AB3m;Q1`%YkxV`5ovQpD=v<hTJBu^#Qr{Go7?b7`m{+w_
zJ2k&0c^QZZ43ap&$h6{DLfZP#sX@7qq0PRBPQkPOUmBus+MDLJgA`?`MR17lu4qPl
z%B^Fva5zDB3BQXJ|7k)+JNhzAdKKTzOH87rmCP18706cK$Nn8e8Hb^em9bnBNOrc;
z4|Ce1|4CvS%1>2U2k+B_=zayk4AG?y@;?A?ko17`@|8S&i$Dp>>H_VAW+%Fr&*$Sh
zHOo2v5}EL)yL(2g_dUa!wdE=jDFz0r2F7X1TSXu;73o=iie<-=Nrl|jmDu*#YXXUq
z&2Ik%$TAM>Om(9QkDQl6eiCSC?%(ZRb@&t6`Rvp~0#nrx2viWseylmfgC^76SzWfZ
z7wqG$?w`gB!oxVQGb5=_KF1@f@xsj9Rw3e6XYvMTdj0Yx6fjHmFD`OLKv4e1g4UVM
zO*m61-`Pf<aBniq?F&i3ik94Agqy3OIk{RExX5v*4EU;vSph?IN#0`5hA%z}CyR9w
znPhuiZc;~kTZ=aR)cg;yt_u}Wi0+tLNKp9M)BcHkBJvdx5JD{g<Q<RWZyQVhl<a>N
zymq7DMxOs?Lp&Gq8f1|@N0XY^izFRMqDvc1Sf)`{In&H=*tgc=pRS-4%k^H)`}|yJ
z9^1P6n*2eD)R|9>>5cCh9}Q?(-JF&g1(347=JQ+QMpqjT^a)8%z6r#@)6kd}hURMF
z->KxngkH6a%!4-KZ_O|)iijDrySn4}!z>CptA{y3^`sV&>P?AeOy2nv?F_!1QG?&H
z)l!W*AcdO4-a-GHfSck{L>axDbIta7&J4>Q2b~d^dg@FyzWPX;SHMi2>#;JVOv%Hz
zm?S0vP=3aF%dzsFzt}90S#a#6yogG-R{wV;u1GHdjh5sa+B2!j`E-U;83H>_55rEW
zkxFiLz*p6n5F=oV!1C|@73!DOm3r+dbx!8T`_vai%6FV?jkrvfl=bz%;DmF(6-ln&
zZ$IEqZgJ^e(%x|L(XJ4$H!!!_^E6ddWOAWa6K?h$>$#pQP;M@}9g?~%=-t6kXf%XC
z%CmQgF>D$4a@%~lPLA=j)sdi9X1AfU^qDE^uju|qvoG2-VM2mSSni>zV$2Fg?rW!^
z4!kQd>!a43V--$PP0`+{3|%@wZjjwgpNXISb|UaOfT%Nggl#8>084NVTREBLN*x9l
zUFEraC_&cd#vqUXqR3|s?2`6dN0c##N_wXkqGXnv1lX$83ok>?a$$%BcQ|ZRJCBH#
z(7b0*40c8d|88VcvZCH*wh)&7QE$_>lJ<+lzUQR3DXJ$b>Ic7P;S8-)?&E|Eb8-rF
z0iGVJO;yUR5Zo2FaqHRF>BnysikDOhPHB3VD;gJ_{V^chomG$P%cy7#XX&-CqDkYP
z+b4ZzN*7GzFh?G1N@h62Jc<e5Xxje)925A^cuLt)mrTC3sS&ory>~6Bmet%_f`$cX
zIBDkT2sF+ySQhGmioR`{c6&4<%Y)?v`t%X5TE=suCGMMN7+wa$M<1?Bj+`8ldMm6P
z6uUgQI1`+F5fjDGewZRH3=KP}yAL#%>}bG%jQ{mP%UBF?rqraZyrcSjd{6~v`X5ap
zQJ1`HcJ{xkh>*`Y9Ln>fcVHKo;usRfpn@v|A?iZT^n99wCH{3i_b+M>FiDuZTi~2?
z(aYkrC(N!QQE*>_v_3+Y^xNXzxPBkH!o`{FqU~_`FfK2v2SJr4+2!_H=$8&TcR1?n
zksC9Qa*hvtmGrdjQ3-pOD)zByFN8&e7WDWR4=HuW=Ee3<TUfX9^x7XsJ!2wF=8ll~
zegbi$h%D+=2IUtO{BwC|resb6zkdMq2dK_vq21*N13XMw+S}Ia-0Tl4W~wk9LbXvP
z9w)(>fm&a4ec<;m;@4^1Ve_sx^-s*YAuv8SFxm{&<wfE?aO*lWHAZW)UMOTC)&BIK
z>RT}X;NO!)#BqJU+t-qz=kI~W(&NgbZGoO`Z_G0*6x8OT7r#`bjdadP$uuA?9{pU!
z>!gJUUWX^3cvhbM3!xYfx4M5aPD4iulDl(vPoFrv#-g(&=5$~QcgneQIk_=4BoQuJ
z)x}6dpaMA^d}$zqbGhqsJT?e8x{{2g01Ogy4fxuS2x(<DK)y2tiLb35=D~TEOCV~(
z&6H)P?+>Zr#GDg?Q|MpS)+<dIA-QQS#230aU8kIajd$g}PB|RtnZ93D$2K0y&-3J1
z+CbEObV$Z3x_&y=AgewkUFIx*Y*<4wMn)RvTbuqO909ZW1@6E!BfS`qe4B?dJG>CZ
z?Zr8KyU?7N6kJEahzRqwn>3$yS(-v9fy7QL*!7Up1Z}tntAwgVR(FF5n@R&B;aatE
zzseI6+!`dv1%1h|;xf#kF=`?rThWAoRYc+0Hf-m=_g{T2v8~iXa&T&ji3`z}9KO7@
z$|^+}Z&7&~&@-DVDSM`XG`)&mRu_>4=f>%-wl%SdY6g!2zQWFT*g54UWv0_mdSngn
zw-q9a#}I#JLRY1>P*eYO<hgkxYYI3$x1AfFXh)-{S^o4eJv6Yc-&7zL7D+>|UY~s=
zJB7{w7)aR<G^Q^{$_Hio6zwT4HLF~la_Qg>FO4~uCo8NYP`*dRRt_gQF1i(*=S51y
zDP@ytnezF<^$#DEA%UDlW2h-31O_#)IgN4e1)1n}7}jhl;vb+$EQzA>$KIXpRrSGG
z0uYbWlTz@$rCtQhLRgar%dqv+y(ywDXTm8{Z6i94XsTpT0tsp+E-~z54wnKfeB{e8
zgch+>%AYr$blh};_4wW98#JD}yS-6jucVUQX??|el@&4Y4^ZL*;+AX|NXA!Pb}WtC
zm;J&uJSr}8O-cDW0{X<=^1g>lOq*w2g={mg<cGj2b@{`3lNDE`ki8Zd|5;vBaf69A
zuC+A<35;@so2(-Txh3(kE2DS1>X7*d_}}u-%j&n14IUiLTIekKE9!zYdr+cxMOGua
zbaU?KOnAqN_4#*eE)XxWU`+3U2pGNFa+N)a@Y-};=7)0fD*CYx&|$@yXIm4tlijN{
z8eD|}%`QFOvRfS>e^=LCm-M|i_5?cNki)Y%UVH{8o(BF_pkyKhadHJ2UUXJBSnU^K
z#{xSQV~3(|H!^qDmrgyO0DW2*cRar|quK?C0A(&VUO56iNLePT$Dk%2#Fkbmlg_D|
ztz28vm%34EA*K4<)nyd1D@gu1VmxYByU>r1HoUs$7kN`e;Ii;E6t<#5r4xo=JmD!R
z(Dnvb|LDz1rb8Qr<rnv{*@;w{X<k8=mf9+Ijm)KG<*8j-=&xBlMgR(wMfqycCk?Vg
zFHx{h0v;^T=8fI+^bE-;tJFH;*e>j;vS)1lD*>ANK-+rn%)G|N)C-l_<qDU_h%Hbh
zol+i7yGSpEzq0v?vvfmlq}KRKA+DwSy8^FGqvcLrG3nnu9nn9Kk2ZhrKsY`oQ8~;;
z*m2(zclSzQ)<Us};*D$<oU9)0NTp|_3pXF#lMuf$4u<os0`w!VcAk97o3_Qlh*Lh!
zgy`2w_Wgz6%{Cl$p&psg8wrUZ2^~Odqp?>Z6;9?~3lK9iGjigiY&DAiCqJZ_s5ACQ
zd9TlswPtJyx4JDF=ixg)XCdtmr6>j{V|#>)eC7w1c_af_>tsA64D}eX+XXDU182iS
zP!6+MqnfD{UdkibbX;62Yc&<t6D=e2a$IsZ-EQ=!o;)eJ@}ZmrG2?FWIOtL+x)nH_
zJ>Bl=uu%MK1#zYpn?D=d?An2Rgs9LY_OmcPB;-uFkb9-u*Sw+RyAX-ZPvYiTK$rV8
zj{#Lm1@afH*%i@KL_Gko0oT<#mXa|he1y^cIWUe@uNRv9_Y&)GwYyoHy6XA}28pgl
zyO2UtQ$HWw!ia@ZD49lfG=nEQt(23FR`ya~Xj3R}k%*Sc?4e#yFSQ|<bb(knv)Qui
z%lssM!y6xhVyTG>Nng@Uiz6qsNE&y@E@HW_BgreKp)wM!Oczs4;B|?4%n>pUU8s8%
z$zcGEtAQq7I1loksuXezGcGG4Fh7+F_x=P4M6Jh*AG(4l77#2B6m{cBdx#$jxm75L
zh0he0cD<YynOF4Y@26RR^G#%xAoVS#&Xp+6`CzyL6R%>WjoZwMamtjtcx|@b$Y+bc
zB9Ewgd}mt&qQr`t1c<Qk6EQjy_$<NoD`fV_yM(XCrW=`$r6Tjk$KNtE7{*~p(k-qa
zp^qC##5a~u9&(shXI2z1ZCC=$Z?z7*Xe575E79LR7lP%rL{W?BdUKj{6b;!+{X89d
z6!$d|eC~?qcoH9KaS!&;>0-h-vDzr432qGfQfbEiCdy$v>pi&_x-jrAh8^M~eS?Xf
zTF-p^<|I9+f71V*mwT1lh2|o_s3Y3Vn>6;4&lzH8W7c4(?Elj`k{yPyNVX7#3Lq6l
zlnxc>^W&p2`x92z(K@TwF3zO$L7`jYWpX{n)4Tj*&M($aZb}c}#CrYtBMAR^_Df^-
zTEtq+QOMQ1!$jr+teUsjHSpK3RsK@xF_W<)%~Uvcb#K>up(z{EKwDJm={|B%A85$>
z41L|qEHjRwg@^}AfbsPOi-yoL9;>EvT>Qjgp``rK8|E5A?*~As19)%2$a*jqCA||P
z#DAo)<Whk+PFw~l*~&bSFiT22YNQnND?RMHPpQT&kX2u?R5ckuL|uBNdArfx3GBM}
zj?x2-jpal~7VcO&B9Xf!GKXO{s#-tOUI{MP-Gt8Wz5Dw)EVB1a)E63f;I@9Dl})l-
z6Qr@#=o#a&B`pJU9E)+lbQF&-Ry3zz;(GUB2b^N?Dk3vbe&D<%$Qfm3qK)B?AKR6b
zLM;CWfIv@;pQ}Sow@rd{o?4M|quiK~u{GPxH^S_trXnXcjhLro%fJezBBZglT;#w9
zZpC4I8@cUM%J`bK_{YMZ88B$<CJ(QtOezP%*p5Nn#~@}{2?#R*2hK4vH`d<N*pQZ@
zLHJD6)`0bPrKxXcykBr7I1l-kpoGors`;^|NPR+i@&#xAeoD8dtofaA->-+&9up$!
zk{jh+7c(O__PgCZ2LUA#EVjgIPUo!+78!J6cJciFvT$cZ_DB|4gN3T-?ZXJDE;v@V
z$(Nb^^U`BF4p251Vam|hp5HCSoUJ|TDcDq@*CPGFpUiyn55SD|JUMJa_xsu`?W6!T
z?gafFehu>|V#FMkyfw20um52;9SO;Yce1H<qF-QPw)sz0#<k4h`pu@T&Nj}cJ>Oty
z#wq8(njJZzM!|ZwvL6+yilp_M<^?9s<gEAAY*4311vktyZs6{@A6cB!3(3uZKOwU)
zJ#d)jy@hMdMiyIa+gGQ}MFVEGR<4$$Kf_=ZNTIjSe}`wBbu2{tBRFYr(;=p{vns}g
z_VQG|6VF@@^BS%TH4mRiqr!Vu3lWslPUc+Uaw2=dF1nGRK@R<FcOPw_MeMKhQ@NO~
z(At={ED?BWeju7eTN(K;9aG9DU^M@^pCS-yX1+}z>bTWQFq7_V;-^ho`kUC33sm`q
zq2dLlnN_mJN19Bcq>=r3Mn|{@><ETG5KWnr36DxNzD9JcN~AV{BjtqojM5E>-(6K$
zIP-(BD?^p+4Wu~p$@0ydr<w~T7D{Iwz2#O$&Mssl+Z;kIq^KDTpMv#Y2%&M*Du9B4
z-Z8P-l9MEQttW8Ti|PAr_hJ6Q3X1|Kx@)!|M?f<Ct%j>xoC&)}nzd?YPhv)=!cD7N
zNdfFr^39E=i08CkMYd{VbEK>Oy+L&PpPwr)Ik^N}PBqKkwa6fhiS|#4MQC4OAcO(>
zXLyc*(}v6L$0VkhkMA)p&WR7Z%t(%iTRyU1f7-)uQ}vM>G(0lh2F}Wq>yb^Ex)v&w
zz_41zp&jTTITCVzLRl_|jifq!Ve3WiDi&kRvv1`iD&@hi*_R#}DxfYmD*l5$U6ltS
zcHJBQ?xkBH_v%6KNq^C-M*`?kcP**=|5G42(jQdkGBDfric}r?ApC0*@46@@)9y=W
zU@FP1xowm@wnC+4=AX3ToX&;qtHm4+aYJMzVki!f1!laWMXef%%3Rm<y#l;s2hWDB
zG55n!dkN&t9{=+*k;we`s9?k1=>)TyHPe)6$=hASK-~_li^OAqZ3sT$m~o|98eRXq
zQJgw1P*x(R0bCO^V(GCVn2yimyf4aSTc{<Iqxi(M_TPx;Q+i-X4oT%?`&HC1m(N0-
z`|KyxF0EpTvtFbdO&v8z9mt0qmv^a20o6FkJ^Snv1XNWHX}pKuoo_jU+VO@IjQOgJ
zEsPmDR0!~d$H`KHLjH89K*ofazZ(-Eq^HAB2Rw$vi-JEV5fmgebOA91sxtUW_Xx+s
z;)cKYJ|$kM9LIPx$aS4!&pssBN7k?>q;ttWo6iiqV)iHd5}4FJdp~s3RtH&rtK@;x
zFw={9dO5Ubcq3D4Rgz2O;apl}36t(&zP&)UGhC@2><I6Ez%640f)8DCs#2o(S2S74
zp^(A^+H3EUY{rYX^()ont^uVjr;08%HrT|Rfpls4|I8L5L-c4dheZ>Oo@5uka?#jZ
zEbAIT#fv3W;htr<?oK{fA13O<u+x&gYOSnz1<h%gUEEf~pAXTywAT~}HR^}P-qWL!
z$W)n{%c3!(|0_X;G<z@D=|tAYU^-8z7`PcPjVL*}cwNrhop3LS0yhbOgqe;z9oCNc
z)eo4`$WE;@ho*-JbV}inU<$)@1Cr=rF*}W6xYtp01h169Wzlq-k%Jxnw#u9Q8Fr&w
z_m7egF!An|z7MYU|D)`!!`j+{cj4gf?(P(KD;C_{i(7Hm7I$~|;85J%T?2(8rMT0g
z1q!`s&pE$)Kl|fbPaYDoleN~&npxR<_RRZ6OVh@1q4ZYz8E#OLR)zp(>__$uozPPP
zINO7a55%up!<;MCCg%-%^F_I(rNU>tPo(8~$O5rOsy4gbM8e``yMaQiA%;WbH)rbY
zRAa^BP7AK2K5ArWY(3DmKd4;Mj4yy~GfG9S;{M=l-yH(c^2YToVKkCAYyQ&>tSojl
z!KzDn#tZ}?Y)cMH?Iepg<1b_{I@Ak)Q+|bmx`$p48^0uSbGa~d+NPdNQ<C;<huWL2
z`Eop}q{GuMdWs3Z4OL#E*7q?&6l{SS;{Od$OG^Pyqr78!UgKA-OoFAtmRrh_&gN$D
zXO;jdk=c6zx=`;~n9TXu;oxB4#cyHSJK-D6)54H;A1S^kkLG8AYv(NoVP<ev@*upT
zeLFk?dpnK^jXjsvfic}rGS@Us7lUn1bfwBL?TGix0&&sYt@KGlWBhs#7sssxraOrd
z_4o`Ek9ar&!J`;>2uyA4Xu7VR6&@g^%L#w=0;4?Z@NK7ck8@RkI{RG*3$dP*FWcgA
z?1n<_N&ue4x1dYJ>nFMtiuYt8<#%v((jYCvLsBJ$4$0(H=g5-rDR0f)rqpq=+EblH
zZ`$5`uN|UqdTHZ?CSJFPZ4>#!J9rs8v&a6K4p<jBsSi21|D-2*n}c~RqMH332lz0p
z!V<Plt*nYW+qc$vOmWhM>=+EOHVZrxZ!ib3eJ(Y6D!;3VJKcR{Y$Y6eMG%U@VRT6u
z_wv=r?ZvN_<);uz^|-tG+?AiPGDes`?pC&nGE0YHv!vS|<Rm-%8o)xb=EU*n7k|&J
zP|<9DV>`m87y)%y{_T6|bQ982T^&(ptf*v(rDB3cb9=R#1jDWm)0!@1A3@?)SfINv
zT7f66fJuf2FObB^?>2i4cbeU(HwogC<d9G4Iue>FP`t^+X751`@I9*oU}e^`>lp=v
z`h`!Ucvnnnc5^j$PZ6g+WvYi(LhvnOW1(`eK1!U412AF9Q(~h+=|$I$S2h{enjmG3
zZ%U>bx)r#oow#1YDE6@RtJo)mg<GMmmF$EW1flH?)iD>^Evr3B^c%ouj!oTABpSpT
zXcjoxnsdPjVL7`9M4oTH<jtP9cePzeAa5CIryrftqOM(!cPk|m1aL7n^O8joX!95|
z55mHGNo*$=nE2M@@(91pTe*!o%r2qoV;rHYwQ#!^T4I^gUK8Tv$NiKdU%mTKj1r<X
z<v10+{u=;Y&oeAsPFAJV^G#+=nw?o<BSE4NQu@D^iWqWk_*h)^CXVtz6D2v5rJXVH
zgk0Y$<Ih9bWpx*i_3HKCf8RMQW_xe5Y&R}Tz*0ll)kLx)i6CIc!<dMTKsPy3gJ-h9
zgzSMz3mU2K5>Nuk=Xq!Mt<MGsVT%R`qe60s?1T_-!KP`}CIx<}QaXMSotMuF62TPL
zRm<VT&3*xlQ2Ar+mt9}Gj%TpNbx9TE2UDQ<KZ^YM!Zd4})&)5f4%?|tRaGA%Y0S$T
z=Uxvesmbu`jXL^LELt~mx9b{L#=TEpmdYB0GfYt|cnPPBz_Yr11^TENf(l<S9+g}4
zbAAI3oVPstJy%~o8$K92ufQWW!B+^4XV|Xt5&o!Ej4|K33)KoA)=W_>C@p2j3qWtR
zSk5vvzT&+X`Xd{JZQJ5g<LAv|LTKy9)}jg6!B1;v=bnEK$^@BpjQnI_fcnXbQOEM<
zy@Z+jQYO48-dZh<neq8Icm19Vp;%+f>5PgloNRBLw>*ZZDd+KcD0k%l>2>X1cnghC
z#f0f*no837uwU_AD@2-b-54HQd9h505*o7UF>7y(S?(Y@eX0A<RvX7S0oVNnnF=nC
z3;!YK#qq;x|NB2*`g~z0#ew~Oz%{c~?;@t3>yuC`#oF~>H9|C5YSoA)Xu8}WN&i!H
z3ewNNUs_cvmH!M4t*`@|3$9t-{(SNN&)U7z>HCIqzu6o(dZqlI9w43cc4etiK~rz;
zH0u5sC;P7t$iUtN{b2#Ee>5U>3`3w_w5snl`bTl{7M=WSUR7;f^YKoL^%R9N`btU8
z&0O+_e^>nM!&zAn65+V=o$XKBj|cp;@NQoM7Gu^(?*2>xUOG)(fP7ik9~Fmg``c=8
zT;0=49WHJ(-QKdn7<r$_yI!c*=KsWlOzyu2t-J;OMde)CQYQt>m;c78TvCu+gw>cd
zgHxL3{c8zI$fTbRwo5SgN{^>FB#>c&9x9s55S#e?XB7#N*NkdFa5MSTRm14&M)EB8
ztxsQU_CDCLtP4FjPSY5l>H)eHgVpA!Opl@dRenwNiXPhnsr9Z-fk2ST=pXGU1I<rZ
zr^5{rcYObNR?0cG@x+%4+Ix42-k%p!^cI){sQ!OHD64yp^yXqaF&CKAywTMEUPt5$
zS`lCXbDX>XcH>{k5*Zz1qfjpkTA%*d!T&6}J#iEO6P@+$Le-~XpL%@uzawDSxE;*p
zP+d{yKR&JT43vuMMMeD9C-k-JWY1F4%A=IQYbRb5SDd>e^^aHlagc>{gG}rX9~b}b
z0{`p<fB$My1IZE_|NGQGZbVW-4b1V4MvCsK<5i<XAEk9C6PDtcd@pb>Up;Dj^R*Qw
zj8&6>?d-4b{NpdFa@b*JL94O`zJhuB(Iej!SOIo^T+_5IJGgpgYe(-u&*^_=uO57o
z%%9mP?u7*xOM3?~$R`67d`nC_afnwd3Qn>BTel!nk;X=&{*bDkld<&eH^BVAbq4La
z*!lW`LJ7x74M>w|-1c*GzIH+E3?vNyeFiiKODtYcR4l?QlNwft$KPJh&Dyi{gxeNN
z3+wbs^heb6h-o-m*(5>mNpk-`>-wHt#}%U<R}8Z?N&m9$E$ela8LOblAD1hAZ*H9#
zYpG1q43CKQs`Q`z{ar5fAxtP~<14x77-GYMml_DjjGkQrv+kyxy=p!}sLiZun3tJ*
z8PbF8q(iyQpMh4=(jSf~ZDWQgp6xrUYq(?o+jjn_&an#qRZEcR#h$tt3gTm80!<9*
z*kS9g%ouNxu`q*Yk>g*R|64O4QP?z}Ss}3+7SMJ&8ZMe+Qx}u5(4LoD>yVw8fR?&l
zNR>5u3f5)o7uO%3p>1n42)4(Pf$Ph;2ttg)pa;bl$Y;NUE=%UKCjkBiH2&A`|6vaQ
z{x1CA-ccPr-E8x}FJo-PFJkvS5a&U%CB%hPIR4vkE!;05ak_t-Ax?x|!qy#I{Q#P^
zJEig55p%x6_yB|@a#k+?rm_;`*~_iWr9wlSRQ7~|G^8Z-1+-d*6zpb~B1aI@o&H~!
zma*mBY!`TJb!KX#g>}CHmIq2rHJr|H<E5n4#s-->tyMRky6nZwieRmOnx^9{*#Sxi
zCxQSed?&c8m2ycc$ozXOn2(M%a_B+@|ALFv?Ttq07Z71<NQj0Wz99Qd85d;AOiAA9
zi62&=389fQbwDdsp7wvb53)6aBF<L=W``=MFni<@>%g<%;I>=TR}8y_rD)3+Jsqhu
zg-N>WoVWfv;eVb;jFQJ-zNGTiCa_$|Ro0rk(Gxt*^dFlH1Eep#J>Zh!ieENQK*oTs
z&w~g7&xWXwyOx<IS`C@Twjq8oZmIPHl_+@X8cAsKo5q>ODMXAnY|UBTycVk^B_V^F
z<**(|_LiQH9ik_C&VLTKl&ZiKWG@Sq0e=`aYRZ%Evm0bWX8*4k8JzZSu;`KqPrT{8
zD^vbmo`0Sgsq+ns34L9x)Q-pEvlo}c6>I(u$5!|Me1Qd!;S*rj@+`|c{lE0V%*@ED
z&IHemAf}!9!M7ZPR^;@L>i!)(g^lsYJ2)WF&;e_yybV^=o*Bvz^{!k!fhqtUh)j5(
z(#G{5BMbxr&A|tpJ}~=25Mlp}-n1%#lM;9sS3Ol>DjHH7Hqt36k#Q?myC+A&3GGr?
z3aKQ6>ajRK1<Cv2a+c#}H+wKN$_3kp636_1Hrb?SmxoHMAc?;sBIy83u;ea2M+meM
zthEVg{TWvDG3OiCJ#joZqq4H(Exuq15D&_Fc56OepSHhIFFggjrx_#-oit!KmI#OM
zy?*c|J3O2JtB7}%XR!>=7h3hWB*77_&NO9gRllh_=G`w&XrCz;q;;SHL;q;Qt}Nxt
zBcyhply>qvd!!%a-E!*L5If=~jF?C5{C~B|67#vZGw&H<Q5eX2yf)$QTp@RPAXC;+
zst}IyvRgMx+j717D}rc4=E}L?!q;?&`u;XM&6@}}lsdvFpt&A-$p2XJ-xm+(?+7`L
z?9n|Fm=OG;t`X;$|7VrX=n8gN)@A;&U0icoE8$ZKE^4D%h+*khgoiMVLF(0+XKWP3
z{`v%@x5m&ug6(AW|F<T74R_24qho5g$NPU65zTa2J4J7``egpqFJVZxS=VA<&?%0(
zOcj9alzbedkdiX{R|3^(bbftiA*pf;A<nxu>gv+3nnj}$%}i`eB@IKfe~fZvIGbn-
z>at4HCNDiO=8v7#Bz4)yVaMYlw<{*|<X-Q^OhdF2HEny$o@11A<0tl4(5xj*0AWp}
z4wwL*0Va8&aub2Rjzcc?y^B9jU3ByuXr&Y;(R}(a=sPO|J?mYS3hERa!eL21Dou(H
zBhJv&!7ZJ^-5&*|OJ>WuC|>CP$cBf+<Em`%|0-8+tgbb}f<44Un~>hM`=h0+ZCx<H
z;Gdm@C!dGa<W<`x=f5rL-<=Bbq)CC|w39Pxn7o|>{liEi^=m7RAQ=8uOFb==IS}Pe
zYdgE>#UcO9|M;<Fgz&G0D%Pl7I`4Fy-?B?nQT=P{ZI0Jn6uhW!ID0E=EburbvS(9U
z5x2oZoslkPkPYL1w>;+GfE}!vAL<5RVjW!dmnplEDli&i#&>s-;D6RquhpL_C}(`G
z76wrDjZ(%9(;qhpGip2h!JbfH*rV_CfA{tO>s1pbj>ve9we+#pc&C^)eCeM%%-?v1
zoJs9gOrsZ`p_bp9Q18%m3NQ8(7T~;raQp_h+0&PmidVFIssvok2_+ij;l&Hj8Fo^*
z|ICBRbE04fY$WzA{td9G(Ugi%i7h0Lguz9?;s7D)sn|>^;=0~t(Gw29vn$wd&`wew
zqRcxM^FF|f8hTb)g_bwl^vkq<Z6pJlnrEOpvXC;N4lhPB$3V4=It6zGBouVEKzBTN
z2Qpo=m|sE2CCo`X{IKPw%A#Xi6*GZfsmPFXYTYOwKiW(^yWei<#I7xfwQg+jvSi?H
zH~n1u;pniJXrGB>l=9;^Y(m8}(f3xR4<RSo;d?UPrIt~5Uhu`SZd62W_yvzMtMuG*
z+l`+sguW>Bi!CJ-RAg~@(22xWfwqGs;-=Mu78ZHUcXhz13vyHt7Jr0~86<n{^*b$p
z)m(0DVd7<x9nHrs;k>s6Y*ZZ9`~GU(2nnjLF(HsxdrU|ZXmjea^=Ge=aKR0R)vfi-
zP`yYbn>MwD3Hi&pdyOW?>f0uC@)KckfyGZEn~BH(0_;F6dFz57g`!ncO!Q@QbhM+=
z=QB^D2gQo;-l>org|t*_-hAm2;G@LXwqo_yPIW7B9#-#6cHm)H^!B%HW+m1pC!&BS
z%w+07z=Ox_*qjEomL4V*woEc^W0FUXyq@`i(HDT;k%3BQRl%gnGBb=gxl9ZYh)Y=W
zvx+8^0kLLur3AmAlv?^xLW0DhDQ|}Gl=hLakQ)u3e7cpHbxz12=o+yAI%wk$ZseAK
zH)Sb0raN`84-Xl(=xl_&I^toV-A>sJ<jm{+H2lxbRWE#7jW_b>tt=A4WrPQjKWq%T
z94MlR0uhU#;CkKqzQCVcwu~Ii`)#W-C(2v2zet3046mk)X`7Y6giL<n>ygG08Yw{T
z#vVK2cnrkMB_Kmo?L`K+{|2z}MzC}E*7hoP+hm9yr!+$X7t5BQ5THB?-KGqm5s82=
z299`bubiAqRrSE*7KV+%lQJLQM68`0D<FTklpID}JLC-S*2s7B#OdCn^6p}#;Idn3
z#;^*57m?WhcBq+n{V<5Kv7wQvbo2vqlPm5|gz1*q$<0A8@+;=xaLMpwTx$VvA{}^i
z@XW?4GS>#@6&!5;VU?`7B@L%i<n&-KZzQ1AG$=GGE*^!+&TVCIq&QB$>T8P;KBxza
z*hD~2@Tq~4!?fuI@l4jgbu*Me|3w3F&R<*3#OO$LB^2S8^&%okqd$hh8$|#oKjD4l
zgsWFgg3LrXRXZsRBs%Z|h9;<^>r2b<)(Mq37U@YMb8Ov}hLT(KHznhpH!J-3LL0OV
zy+O`;Wzez>KoqhSo<`0ckf|CZsZ+a{`z>_J^8hpkOq=8&b%qnWZ6dBIAI=hS3aw@I
zoixuiLC_|FxW30D^0Ve+(zLcJi!>h;{x>{20`F+emXGJcI=-o|ReN1>R#)pUA3o`R
zhund|7T=T<PHDFywXl1W9_1##f6aK=fwVGSe040R8{ToST~8~?gP2KYXZgNBt?gdj
z|4ipZ!#x0<@w`9w-J<c?H*pyxVb(Lsd)v?R?p$T{5@`I6W5L+j8JjM}sAi~GgSEZy
z*-_DkUUUQ(O=F2<43QxiYBD^NP9giO0j=0Zno;e7D8fg^b?8L`%;R5Ek~5b{MTfTb
zz<qda_RsM=aY?)r{CL*h3CcrdLv)ESfSVIM(ql<+X?N1V(-*4cs2<lc6%`-a-vGlx
z$~oxqR$5Ey97guOO&Rl(6N99$aP1bB*U268KfNoBad5oYA!Sj}`m&*7Cb>FDWuN(7
zE1#}Y0}vYZv7v<P{lOP>-;t)MvqyqIlg)yH?5*??n=cPe^3^$<#56(5(p^uqWZk0f
zK1og(Gnwgp;#P@26=;V#G4$LQ!2Z>kj+{uS$0x&&G+f3bB^Y>etrC#fPMl3R)Cjo}
zPrnKd<=16+W6VoNOERy05~RR16(idHQE|P2E(g!C5SCH#d&+n-RqOQ_*m7ul9Zy`c
zh5JNtYqLe{5^I(5TaucA_pxN%;AaUk<?&f`Q%PG`Tug^ZeC=M%jh9N%jGNx^lJDCz
zA$`a#`1$*gEZLrhEA0nSz8FYS1g=>ka;W@X1ADJD-Dfh`!rt4{18i3<P2*CeRg@VM
zUh^kbl91`Lu_vxb|JSP;f{l1eeiMPH2X*9u2Va&;jihx43#<V~05o*-yKjGU+Mc-9
z;5sq79eAWXY_RXI6qzz$;`l^$%hzjsF{*srUKw+A1f&nbjnxj$IJfjVf@fHpPGcH8
zM)s0C7z)dD0W4E#T9WP2{;h?dP*z%kDLBM7%$Y28L*MfHc1Q?|i6YVv$zn&{Z+YbK
zK=>?WojEqeEWi;%nF@u^g9hB#P!pjJtx1<&oC1?XM*gkj2W)~5IkBF1l$gUF;&(Kl
zK>A#2#oH=_gZ1DKNdk2$TLCLKTJ$H4OHGyn?+LCN#l3NOt*CV8t}Dn})5Qg@sl7s=
z8qZ_5>~%7Y!J_doFnl4_VbZKevfuPBlpe7X2j0a)(H6-qTXwJ$bO9*|-Lht3mLL=>
z!G80P4TW;D?{}?$@UA|45+o{lOwb|31`i13g4VJ+vV1En(Y_VaUmC{4J<RVa(6W17
z@-`Fg{V5GEU#2BpmVdcAuD<4w-6LyY^D>WBvndM+Jv-ozVrA`JDczv%I6PLaCPz}4
zfv--3yy|${PvR}GLJP|s47SFauQdmZe^##B(JJgvK(gQ#a-g6cg(rG7&J=E7MHrzw
z5Z<0d+IK&xu<wSSmDoxrs>`cs^n_x_Y*<o;2*DkujcJgCJ?6x3cv3!o!jPNRAVB#Q
z^q{@k=_#gdTNbi~5l-!b>srDQYjRETj3v2F4l==naEqEge|!fiD5BcUYa2m(TN<b`
z1AmCaj#L@NinifNP-bBM%86mo9IxW<U=-AYQYpm~H%@GwHaLt*Vb8GygqIwyy{%;L
zt9O7m(mnUpx+=a)*~G>%u&MvrLgE!)m`-sn$;HcfnawlcFY-dTkVCKQ_sgDSJMc}0
zvt*e)2kN#~R<+Fj7gBTI1&Jn@I<wIui(HWGJ|Ul3<Lr%u8;PA>S{T(_W$bcU+aYy^
zAbwe{)5e=heNzIR^m4<)RHyN>9e7>iO^+Hu9Jo}4h8gvV!&O)fihI|{7!gW0&zIXN
z={*BZteA~kXU%6u|FVL`&rk4*i%1oP&Rb`Y#2QMzASChaGF%`fTMj%UbbWIEJKlYM
zQ@paotm)$jlnHMx-!E(61#uZI33<u)8as5tV~kQmy3xXV;#Jn98S~BW36T|)oNT?V
z=9l?c%ML}0sszG@D`k70OgI&!;WQ)gxbVC&RR*`iv$tL`;UuI`^s1IhfRS96pW{({
zv1#Vl-$v*N9&4eGb}5nR`)O(6{BpVzEp;*_C3ibHX}z)CQ<B2z7VYft{<Kz=mbC5l
zSmXqNN^YXEQxh+^4L-jJmkgyFk9s71K}Ye`R3o|s56h4xlNWzUx<?pGWp}z&O4*qj
zLD2HmQJJ-kTc0b#=zj6;B~}#SH6K;N?bOU^dVYGtPZW_6I;*ra;Eex{JbIziX&0fr
zESZjH`xDPaJIuy{FNj=Tw4#ouo$L_7=azQrW~`_z&ki=O7lV$<XVCvxiz-vg3lCF5
zGt^TaHpuB6a#ZEp$dxnW&)vsTv7IaS=NGa}Ry=UM-Qe1wY5%O_w!KR2f$lB_A-cKf
z`PCFvay~MRSW7z@tChRBN@?OY;R0|AqcRNML@&iabQ0EyF3|^bm~LQt_6{CGU1d-Z
zI%AKpBMjj;_gP^1fY<k1bB%~&2JUaFk7k>nM`bfBVL6eG674Dj6lyYGV&a4@T06T!
z57uq1j+rianVM1<sNVAAVQ5{+4|9oo7=&nKNT;^S=PL&zWv`+Wb(a@`Bzque6YX3{
zhjiVe-J^Q)RIO>f<t2!3Z27qG(FGu9mq`+2L%11L_m%4-bD>*b+?NEt@l`~HsS@@L
zBOV;?P2Ca>h;uQMs3p7ROGg2lBFSYoXG4jg_XfnyBt7HIiuRTcREKl-zqTS~&6a!C
zp2W_e)Ftr?F1W+Wx6Cqn!?pw)#-^1CNt}$Og-vj>T`?1BLFm;l*g&+I>-^488g}UZ
zozDnDP+9%Np})A626bo*ytLC)BG>phqQeiCxa&kDopN<{SudhHeu<@s)-V(c>5<mn
z+(DZ`>T7o2T*&P0EmOE}IsMXv?iY7#!T0hm9aK_7$sq=p!Q^5w3Ze-bT9SLja}{+D
zkRLF6ygI%kIuKY4J6As1slY{WHWEY>MnrCao#ljTmE^GK)KG009wBGZNR66GLLwDq
z%;E{kCUll+(N4A|(Cc1T3Z{LHwdsl^Oy#8#Eia~=#&`(|zF7VMmNytLyRx~1T>tEp
zltw6c^Ylh+K;hN8Do*fHPkWSP*5g_eBri4IJ|DXtwGFJVZ#UjFOYUA4pOCT8R|@e-
zg`m+VAyW>QrUNhOMv<<hGBWPQ(m4i5zwPh^7dzx;k)C=a$Ym)wmWx}9g&DGhkwk~+
zU?b!E=N5jH%W5?kSV5a6ukkDbuo99GVp3N?GtR6#PE2$T_1L>PU?IkmM&+LY>!e(j
zxU{yukuG=^Vc~~BhitgImC^L#lHbB&Vj&cn8d<c}Nm48M%|nNQdiTf!;B1<aBM}j#
zt><kDL4X7_XjEvLtd$$&1PkY58j{ey;X}~S$z{lM<U1Mvh)(>HmW$>D(Q38sYsJy`
z$C^lzdF;DUu!9ViGQq+&A(+C4N3|<E)Ah&d>wKwfU~U?^_5;5Q9P{PXaX0PBB&E*2
zkazUyLU3@S-{kg__#q|P)<5!jw5|#D4vSYICB)Roh;PRQG*azdStGxyJ!dbZAak-0
z^80Py;wCUq3NQE|NW&sLYRG}$$*v)k5vZqUlV-R3{nj#@twQw-ze*hF*chL-T1|75
zT6J9mUbta6+c8r6OAaT3dsSmn_SD%<bM~uNLAVuhbr;*^%cNbfeMibASFi>F1{}NW
zAMf@IRCM7UZX3g<yaT|w?3`WW@y+2o2B}e4yD864zz}JL0D1L2AII4$!YmalUa*=S
z8laR0^EUu5*j^(kd5hJH`SbcXl<1kzTwXD^iqZqc^yyvw+14$fjfj}bn?#FCcd$r1
zA3ozY(W=(5K)oPgVmSkcDp_!)Yc2~NlD)8ZCakYFq~XyYluwe8V0x^{Unv5dfB_qs
z+Cb-<zM|vk+^hJ6_&Y{LJMcOQr&DpjUgC<q<{6f3V)U%OJ?P<LNGdq{yb{p~6N`|O
zJ_F^`^z+ti+OxrD9Tz)kkMT-r8rDKvwFRu;erGZbi;II~M&LZsE%QW~P!q&kbI4$u
zqvbrXWn>k5p+{eYKc_qt_*{KR?@F}x;8o_a#!v5$MkP<jOE_|<(5D;{A9l=w7j$TV
z2xYo17VSL#npnZID4;?VQ!Df?ogm8LsH+w);ea8e?4sOV|2!e4<3UXgbv<v>ixLag
zAuTG7h?LyWE#yq*B_a&R`>V4gpMv(pSe~0Kn=Jb0DiiqGkpyWHk2YS4GB^8sn3`Wc
zw`FVyxi)qe(h>l1r*&+8_f_8lZAx=_d@fN$e3X#>hP>lKf`^IlgLov`WE=*hLajGT
zydBqLEj@GoE|N0APNN-1dXD35rqs(piN3{lmZZAcoz+@HX11Z1T7%|$UG{j+LryA_
zDikxl3ckHKL(!WN!7gu>iGq*s*WT7BIOl7iJ;$RZO@<8b6!}h(zC8_*IoL<8Si+C=
zly(Rv6&<jhAhi?__isUI!WvU;RG0MYL_g6;z5Mu$-a268gPfwLq}=}v-IL)Kl7Tiz
zfL}D4`a0U(wmoIU5oHqQ`5x0Ql2xTT?WL0GeVEP}Tdt{V8szSYW)lxRng7S7+KKDS
z=4LeDz44=i)4TUgwOONgWm*T^SLHUvu<EqqIA30D>A!Coa|^v&(5qsBUq@Y`bbuY<
zB)jt+x4pI91oX;xc>@{;y8E4qu^&k48{9oW*)5Bf9D-$@MaYOuLD^Hf%JyQQd!wYY
zeqNviiJ3A9ofD?Fzn=>a`&Jzpm&>+PEO2LmOBDU4{REYaU0i}qENe@Km@-N?5LK-8
z+Y1S=95LlHINJx|<Afj2Y!_%<q|Ax?mFyH>dSui1;o^jk4e<aAh&sAoKDQupL6f-;
ztH4#)`CWGXxGAe$;7sYIWJxhES4YGL7pI@Y&3~RNM12{pa~Xdc!{4F@PYfGzH?svS
zgWuZADmS|8qdBlZL3r9dSImp>a{-JSBtdGO&h-S`{Q1md#D8?sCn!Ca9<pz=@BnOw
zZ*~9rtD&;fsVW1oiQtkN_5Ng%Yn<cS%cYD*BpG_G)(?$njNne}S>3kQWyB|P6gnFq
z1a9BJ-6LCcg;b0Yz@Y1FAaX(PqioqqEz*}LGl|P+1B|Z4zuT)&#pf?yz;AN+Ia9|;
zW46G&I0+2m#R3XLo|8{{n{6)}&b6k1Cw)iVt$P08g@qt$L{Ulsu!JKl<_6GI{hK)a
z4TEikMEcnGNJu>@8RfAgIF|*Sb-e(&+@UVHO=?9KYKKK={?+#fp5dz`rYiZnpfnn)
z6k5+^Yjrgw#4zgs<brjUYoQe13*G=qV;zyAo1&ErvD`DmSWIz6%@?L@R&;SuCpFmW
zed%Qy%E5_2HtCgCT+!!V6u)M3xrqV){+KT%*EfdQCePv}a=SX%cr!e-JEF3s45osq
zle&=nfL0_O%ItFGM2+NAV-0k@2Yaog)|<w)TN%rX(8-2HRxBpcH5YvH?GDyM@S1vj
z*d%ttwkt{;(h&~;1_oLFONx|wE_Gvy;uoV+UTG>Y&6X{>ht`_hZvY>8m6{gNwTiO|
z9rOEoK#4ACu__FQm{dzfBZ?EwWtX1?p%x!0O0-H$JxXrZiO##h68{$ItYt0LGbsgJ
zpCp_>eA?^B)D}nNbtA^X)f}xR*TC6X#X588ai(7y{RpMXuoiGzi2F5D!X5N5IpNZX
zj(X{)!G(T$C1zs;gRcTXRWFpPaWBM<VeTj{5{Kc`hY7V$WT$e7$RyK_2^OToYMZ11
z6+ZiuQ;|ZEF>sroZC2<HWh@lB8W^G+txI<haxx)!Sly;<5<n|J?#6SgtqfH0erA|f
znFU+rFP<2VEBJUFXeSC9^~9T=B-q>Xyn^c-LZjRP4SCqOvawR@EGjbf&P9+!lnB2q
zvJPC(rkIqt<50I4lcxJ2?7gPN{8B|4)CXKSBCD;zOD%i|VpYw4xz8B-4u)%)1w0v1
zZ=r$FB;-aQE634jzbomfh6}mXa5gVpDCUeyQR2~Gz~mk4eQ%&OwB%XiPedv4GKnO1
z0hs)1dNa;k0^e@T2=5tmA2pJ&v(#rb0?G>MsE+tw=Wi5YvXT$ePhnlM9G-RZla??A
zc??qc;M%7f7eE7hXReUat9>Isu&F8G(uSD`>an1j?}w;#qA&q#lPot=V0ox!FVtYj
zP6CN38%M%Ta_mI;MbpR{2`Z>KcBnjVCohlOr}fP)0~L`Qf%io+Ra6t(6NW}ecGv(4
z0?52f({hvT!QYScT9~-gvxGMm?vb?G8|Sc)JjsmKt)gpWUf1(PauR8Xd!5HNI0)x0
z2!Is&Ys$nrK&=ccEgK|el7OND2xn%5&4*6Du8%l}uA?jD%v^CS%Ho%rT!(+mZz#oe
z`5?bk0O9rm&3nI-BeTKr=~AIXT21O0;J4pbcT#0xli6(|BGExsUxPkHdblhK$m9k^
z=D3P-o3j!T)=T$P)*|aeAv|s@O7jR}O)+sMWN35qEcys7rfj;4BA!Z%RdffhhCLFx
z5aI>D`g#yqTZ_otIpa6s2avzLS!9h87V=?1HSzq2wXRR(%VSL_JQ3*^nM-?#?XQ_|
z(Hs%}W~62es#fKq5?1%z20iI~$ZA+<bK0L#sRl|akW>SO9E_#gIC&sixd;oGddoLU
zARF`!I_coGaWvOhJG4$P!;Jat7?pH7nKx>!NBgl95JbuE*zC>%VTY719``PHoC?k&
zJ;1xTJ@_sgR&68A;12V%sC+M$G4Km)v}V^)hok+r-e<q|@$0`x3W0#IUQz`oEJ6DM
zvimXHroIjag~HG1n2GLv>qO2l9Fb)`F#<mZn*_wtQi;h^92*YX8GahLzA=})40C6`
z$8bj+5YZF-d{k}2>2;_2gC~?7Vdih0<%S)X|2JN`Y*|*$<53RYnaEbvpGU|+dZxll
z=yzDASkp_N^mPH{G5UE{#aNW&(tcF$hG?1vYojQ0v&osjY^DATy%K$e?hw8kDXI5-
zw+-rx2Sh6q+BcY9Wm@TIkLVZ9RUzfO1}ag%+L{+YQ@88U?lp;hgDD+uFyA$X*6Dhs
zrW?hr7nGLe*$HqT{dUp9BB`9t?Du*_R6}a<%6!vIY0*5VI;EECDhEjyf;a5UgS8`!
z%SY@rnh}&`1DR)oj{_$KR}FQLTg00~#3bFAKjTD?<OuBzZpphl(R35Z5hTqsGX>2i
zVSY?-oGQkDXF|Svv%$Y`V6kGSLq#ym1~y-Z-GeA{5OdTP8Uos}XBok4c08_=K-s~;
zuG=}+lzn@|OUz*gUO$L`{{fBL2g$%?=8Mxr)yN==u05{e1Ze;`ubNz7JU`UGvzUz@
z6$(m&_=drw0MB%HVb6WkS>ne2;Weol8T~f2N0$o0FPpm{S=^uwKwV0DidCpVp9%_=
z<q%OTtHY~?X<ER#9mIzq)LkhY%Ad%xm@@>4PBjx`&Oy+Ie{=;0ZXu3C;xKL8Bm>`c
zV4#MiwwZA#n=JSWj)Zg>{@xry;$sMXYkJf+HWJ+BU!{gao0sX#kXeF4?eo3chW1L1
z)5AyLu?QN4ggye$?TcZZ{Y7G1)%Q%daTSyy8{{jcmdk%PDp}Nxp7+7eF(y9`|0!*l
zTEagqIt41bdpW+!pL_if^vPf(sSDHHKl`?vcHbD+%4ZfJj19Z;mAjtIcFTDqx!?7I
z7prTP4kur)TX~a~dXFY0Lg3Ab_P3fKWw~16tU^in9S##wW{(R>!A=OlmsC)>rjmcc
zYaS5HPYa~<w%&6f&p6N>zfs_Z@r>+Qgkj>}6qfl+e9UBUT`+9mwKYyY?w2edQ1bfP
zjp4+AEXE{ZSkkr<l#DjbEH5Fr$bX@)w6Sn3AC<xbHmBhxcG*(%sf=%=<|&$xCZc@?
z0;9r&!pK&ezn=7kH7?-0(9}rV{QA*IS>y{7waP_HCgVS&bQsOJ#xftnwsT#3220}C
zN&cvQo6j17xK9WtS^DdV?WQy$_DyKP$@zA2kPBy#YIFUjSf{m%(C#w3#RI=oFXAe|
z6iY_drJN<dF2+GdGg~ak;G_dhn9eNUxgAcNt}M^W*z%}B)0`kWobyJwTHa2F%yABc
zjZP9_GB_6(*62L&P@rY#aH?PfglSlyqd4hn`KEa(BR0Hsa3UyYc9o7vJ@Ts{?3diw
z(avQN+-+uQgTNBQGCe8P7S1}TU>jpd)%BN#0)ydT0Q0Q!G>{y@$-_$r`wYTQ`|qZL
zk7ij3i2oU8atOvu-YCcDx6fBo6j1!ID|q2V<62y}*V$#ZA`;QkUaVwXHabH{pqq{<
z_pa&O_(At4Y%NC|iPgCqD7rCDI{3&t`7CE5(+TR~BcWEUJj#dyFwe9=@FGr;r#*2*
zd%Oq6`vv12@GdyEGj*%h_ctH`nTjWW<dY`(2+f%XScneAi{0mTCyve)l0n~r4j(An
z1J1BQN9Eov-}DQdB|=+)5y(&#%TkXW`$K1_j6m&|Fx(3~eM6*SP{y;e#q!mW;S)}b
zNF^W?Epu`}s(n_Z2bcUefP{bp-5d^Djgq9-=a64YTD(1|;6h(NvlbEtcWa~&f{v>0
zaIH*ZL$@8dHA)Qk80;(nztI~!mZU4LX}J25Bwi!)zO1KGmXtLV12}?fOE7mJ(bN3O
zBM+0KcL{!*;m^jj5MJp`ncC}mBd!2T5{jI~>bbdj>Al`fei1fE?T(F|mI=SXA*g|B
z+KE7rjqz5^$d+`hFhVg;;>TDiHn=gVk|dL4vzKf?%0YHzDmaZOF_?3^l@OdtXd-pN
z%a1~PT=N^CeS%?+|1o#W?ZQ<wCfgH_1+&-l9dGDV5n^SfZ|arqpl%<vjT_@Zk?!y&
zcB#?}|1S1JbiuG9p0xgBt@@_~TXSmRftX}OV2_>`GKAZ04KWJV=N&Qjp3n;1GvR>*
z8nkmMN>Trx#Q34NI*Ox(W}mHt0}Tps28#6knspfURXBr=F^XY9^n@M$>}rddivAXJ
zYrRC1WQ9NoD@YR&Jwd-`jZmRCCTA!^tLW-vSt`YdOH<!-&4L6K>{k^cx`NN6;<fEJ
zwwE>Ua1sn(peK?+T2}YgfK7+H@@mKQYX-YV`E0oLDqch!x}Zu+rS)l;Wc#U-TOF1C
zOoC)~=$I_bRqjKu!T!dw*lJ!!Z`9GTj-<Fy4MI-7_~h45iVGB&+r0__P|1~^yl50(
zmDXZYk$xu6MY`<$3Su5m>W)!N8Tj$>Li}Ec9-L&F>N5Sse*Tkn8909I<Mb*NJ^k*L
zcY8e*zKnmtEXl+ZAk?*4uRtU&_zR2w$tc~8V(ia3Q5(rmBXK)==NgboyAzWO+R|f`
z1snut+;6=@LiB=abHpDjSim$$wLatut*&Gz%2G`@KjgK~&Ig%S4112967OJLN?}pa
zg#^)N7Rx`7+XipPULNTeUC1SvEF}?{o8sjh?w%Qc{nGHlUHRQ;Kl+mAb5raj)e^Il
zBcBemt<+`pF5jM!MLyhk9aEbmUMi;)FU(`peSWg2Jp`<jydy3Tk9-Tva)7>TvR6@*
zk0>(U4ubns@#I$A!pkNRt8#6Oz?x8y+v!W=5-=(xokWt}Zg;Ck3Ns+`sj}5DKz%`W
z(@*@SIs3_}Ce&&Cmt3<TG0Q8XL5l<!=b+8j!Yl=x^{V;@YS?>$`%6@7$MS$ziI{{C
zPopELSVU1DCy|_C+Wi+kW|;Ygy=-aey`5+p6%q$r=meD5*aom!_h$h1$%?6`zeepW
zkD~W1!gswUR8h$eC=;y%Dpv?$+U_5O10R>4lpC-qW8Xid({tMHazn5~NwEbMijtn9
ze*-9laMrVrYznmtw$yec4lB3;K26W$*}UDAA{UMKW-Bn`esl1`5@^yDZ&f=>9jT4#
zbreNJv3i-yoP;yoDu<~udD4$blw)9@v$DKMoIqnfNIy4V+cfj~?0qxurN*W;=`Il_
zgjPOve}<gl&QK(&s);hw($N%MuY3;e&dKc51yM0m%0;Enqc6fGrJnoRZ+>QL-8vrP
zY|KgWAjnp<LFuYb80TNcX9s`ZtnE22f4gV#$>*n@P)#c`tAG>R&noE402krrsV0S3
z#e%YU{TUE(D3j)oX6g(tLK&v)^ZkWbEIyM#K5z9@RO`z-X2i4%(xXw#nLZhyQuyNN
zvQuWhf&73T-q3eX5#sojbmGjbhN{p}grs%@qeMxKADR^NB&VbRQE>BVt26c1P|o)a
zkNmZ%Y&W=pc+}hx`h&+Jq9nxY+YL50r^rokQO6Hp_b99Mpz>O`a^O?T5`U10ndtH8
zZ$Lv?eZ4JYAFB$_<@kkHB=Ewer*vHcJ@*z;E$sKncu{`=Bl-HMAw&|YroFpWL@Bw5
zz?kkpmeG_5iaf{xmL^*XH*PEonkN2*;M4|*szPJzyK3%dOE0;AB@=^g^Ww29i{_u5
zlUI~yGAaO-f>2C7ZB_={LRo`ge6=`Y;oEXq*$>t$wkS}sMZTr)i`(AvV4JN~#b@A(
zk7dOsh)_2cgb7#)nqOD0(Uw~o(`G6e0S6N7;WGUI5-q)`t&H>!-3ynujF#mbGbd`2
zL@4FXh95D}$G+{Ko#d*;*eBm>DAIq8pO1l3-6Pc}+J=<;iUg!N5&0|gZ`hq*FY0;a
z04bRk;EVj~BL$F~GQ}*|>nTSg;}Uzx(cg&=$4lQMp4s}>w^VVFfcDSPwejQn<9LQ*
zL$-Fah*Tu_FL(fepxgOX=lOm@!KG|9rT%4DEg+B%!e_z!b_oy@QVgOhGQ+QI^fjjU
zB7?YmpnHiZh5+q@X3-kCTwvN+n_&x4jm}^j6B?ltun%2c<XFcpjTG@|t4+EpfU^!t
z2AK0$c0nEq81xm&APc9udQC2tccn=huS@t){3bVn{XoP>T!6xuZ@(E!<u>FU*JJ5h
zMLJoleGh8U%w=bKz&5IPB~^56m;8Clp7S>zlEHncZQIbyUb+0z_psZ8yzFw3D+m9E
zJ%HCs#n-Yjp=6_Wc}LAc&^uh0h8+c-v>;bw*^`PQ>9Pp@`d$W{Y>+}~9a>|#UIYqG
zBqX(>knJT_j~}i-0x1|?f#ZaoD+j>xSZfp|`1z_*ZW^v9vKMIsa})oSlNZm~G<zrX
zU;`#4iWKRGhC2YK(_+3DHWFF7Zr@ck^5>*fxTLlC&yl{DUbV(#3|9Zvx0ufWFAUYg
zO}-%*-0o5G3pt+%SFEzs<;(Zz$(E}tANjobHa)jMcsn$n1-mzuXd_NSqPdo+W4x{M
zt3l4u{ufMkSh)-2m)%Z1<EDvtj?|Wi^ZBViTvy1E!yop}xQb2aEDut$e+0)51x{tJ
z!3jfH|A=Rs;{m6h?sT6q?1ParW&>I(Jg0W%>ZEH6Oy<4bbFyYK@{k2%1+K$wuQ1g}
zvJ;U}79--|f3h8F1`pu4Z~E&R@fCH?B_)2}4v)CQZJwMCJlIGyo9sIpR3Ro({(9G}
z3<j-TvcF#dAfk|{4r<}c5{I#H#d)|5{sw^HiK_&BM3kPMN;ys=MLHGxe-sgfT5tNt
zJ!(bMPeL2m*CTEdJ`#sZ!%^c81rcg7HG#il@$gF*Foki<xXPXL$d^fF{{lBNa60{v
zL#Ot%g#acplPH<9{nGrVgDebPq&|L!7dPTl>tB#PNNqg-D;<Xrqu3u!Xjk2n{6rox
zjXPMb1QtGAR`n%T=nemm2Mr_+##wrVUc%C#a&yC0h8`7XyQ5#PpLA<rFDr?<oNLgl
zG}4y{jJ>Q-TWcsE&h!Gfghook6P!W&(X7@xWacG8gxRyp1)?l&sKOc78iq=gKI0#z
zFk4A}F6Z$#ocxkt50@BWJ3XJAUbefJ5dt4xOI|W70~D<upEP4(-`no-Ivl;{Z}0pL
zvVGXJQ=RhP(+EOI@Y7nB*tR6K-m>H5Ys_)LNz=j*C)GHMSQXA*FCQ<!V~FF=F>&Zi
zNm8?~m)4w^ZU#0^@I~3N5La8Qa+m6YP6cIPq<+@QP+vNEsJvz?ht6>n%+i#N^wm6i
zR4q+!{M_`B7Ema6NA5B^X5$73jr4AVuhe8kY&Gc~WnV(`-=8HQY2{A;EFF-TUocaT
z4^0bW8tZc65__BGHYk@DIZ!FBz!qz^7|3Z`B@<z_+uWS_dZM;D;wHjESAe(mQiHK9
z6n$CcP3;fjnnRT3L^@yPZZmaa;1ynW?FS7`@65mI9%w-Owq{PY{is924kn5m?rNX~
zZer@Nq|(p6lHtA8vj|}5C2%Xe4Jm^=%(!I$w4EhZYjMf?&>Ut%(><m=@J-Aj3e@6?
z7hzB{TP%H3f|el}$v=h%UmRodW0&SqU7NS(iRg>9$U}K69e(O1w*L)SiW(rpvCGpZ
z^eN&AVGnwJ_osmWs;HbjJ%8dxO$C>&OxRTG>p0ZamM#pJZS%U|6RK2aa+r*a(&3F}
z5Mnpl=(vweqhf6h=P%Nw`Xeki1Y@NyiHQbUXj0-gk^wVDT|4fLY70Szlkbdvg!!OI
ze$2ah4Jbe>8-x%un~VJ9lq3r}?f-SFq`XU#^uYe}aCNnAk^-*XS&kt%wTr%|A7p#A
zSCV`ZXU7(|>NRYMuV8-pK@tQHAMxYug?u{x+3^E!WW(6E5Dh?FJR5U@9?9)Fgvf+g
zA*%(uK2&@S5nhHwS_er0p=oi16%nn1#<~aTN|=_@5l2YF!hT%e7SOoJCxrs*4fSwd
zOWx5cjmuYcK!I7|5kE-Gn?iY=6OZTuHcDumsvp@A$fkoC(W6)D(@t|BJM-_>J|D(!
zs2FV~UI-F60O<`;6PcJ)Y5*r>;Zn%V_QBHK?pgtx(2B%}8uG6sU78*3`G#AD5%X7M
z5#j&jy-QZ3O<S~DmB`{Mw&LLN)E3IvfU+2#o85sLW;EEm;LjSh&ZJFso`GT!rE(2F
z+Wo(0<ww7-T;ZuH^+D;Gy?ARlANK9K2Dhtse=*n-a$ST>8Eyv1z0aX!L_tFX4V9Qh
z-wN<>*H*r#CO=Scs1^tlo4+C0Px4MIf0B$o<vfX-Zt`YGDWIkolek`xn;qx!VchJZ
z4=>nGPBq=Zd>{tf5=|j1k0$sZE5U{E`$zo-Y$PO+p~~%7X+i^67VbRN#t;w?#h?2N
zS5EKfhFO{2#G{t3FV|TU-c!;SnokgAqbI3}BlyTqwu3Afpst+9&^^=@$<Orn^Q%vn
z1)@>e3&`Wxgvtdl{KQSjWe4((TdOK4e*-+jH!Gb`(^5rxy@7bUwHEwiyyfl%LwcO<
zF<M2$4O&!a(+k{kNz|I@bIeLHsKK3T!C45ESUj)*6p2XXx-+~?!Sbj4EG(9QF+A#&
z0hh14F5X(^wO%IBzKX0JI|+0}(qd_LOZX@=T@XGHA(^=q>Ku4<r~68TSblH5m9&q9
zJe}Va6e5)*RJ&iW@J2ilnm{>UFOyQYR!eUkf9d1+I|X0Jm2pPzd5^6QwL#m{XAsQv
z*~-qIE@ma9S!`YWLfVM(q$&fWcKT6+&9JSxI0B!wW`><O8C-vXU}v4)4QLffXsW$6
z66IVdYA|mSt@cHX<+iME{tf6R)Uj{u(bBBmBwvAS8<$5q30AU@bT(BcsJbQNj55@V
zcp_z6cz<PTyxRsSY^)iOkd?zCS?GJVvSQZrjaF#D%uo4q<iea~s)$@PPOb*{DA9}{
zNT9MZZv62|GoBTdamJn82Nx46*!C8ZcnJahOgR#mhTs`UG(b&bI5zu6`XKklgi9^M
z5fGr{Ga3L%<@Xknq14=G!XAjTX8PnAEGytSZ;!ePRA5Lp$Qji;>Y=afDqEc5>r#D`
zEf<5L5)b}KD5EY`V<OF<`a*)KwVpChA5$}eV5ot@fo|H~?<|wsP_p(BXJ}k{=Wu!|
zLOPDh%Ex&By`J9|wMIUyFf%^gs~_SO<zpcBaWIAGVfmp>@4U~!aW5g%kSyd<m+Y*&
zqXhkjVJgisbr$}$;{~q`Z8G@h)oEKQs-V`qT7HbWn_;nt^1E87_K9(y5{6V=Vo~zL
zhWlnBquNRkqv1-DM*+x8dt!C!1c5Ks(Nq3V^Fx({WD7GTp0`^5P(M#D+X$WT(AMdU
zoYv+qW<I?&UyagMfZuLOQ7Huv!j>8+Naj%1whArXy@%>X{rzmFFsB}|+^`dK`l3S1
zr5%2V(;Cbyu+2tS#1QE)`-r-%qIy<O;*)tGeey<opvs6G*`qWb)+-@mm8j*j#nwS9
zE+?Vucq`6lC+(H`S+}^8gtSWw<_|fG+2(`ajwiY7q7k9j7JC-YG{N~}lid<u3I(jH
zx6R#hn&0Y{soHBgno@3~vMV4;Au2!cpm8y+Ly&Gax0(g#jn2LrNBwwnEA}}Y#kg1w
zBN+lbrFqaz17SC!_zhTuY#XC$RlK2P>6AK~r?0lc`c3FB+qrP;z|>X_Y4;8>Tonj2
z&bxG_DDk^-2Na`fZ@@-$nLJ)}bwH)1wfCsTM{4RzoC9Dag@>i+*Jlkix7tv$)iMNr
zs#123yV}028=<uH_tfT9!eI1ps_ajYAeBiaxwasK>j!F)dxNE=k?<|VBQ>U!OG3)S
zaI2H>A2638bG8Rc4fbnN-N=`2g6fQOo8&^r{mgkVS_=XiiM^B9>czIBJgxV88ouCy
zCXf-}khiv4+SZ+*lG5;acSqfJ+~@R5Dm$l^hhDKMjN}S@IQmlvJd6-_0%_~5+?Vgl
zpUIsJJJqO^p&}v)po0+gFk#_`B3z&LH<Dw!>_!?p8`DR7DGSmogHuxt@iqk=VHTRN
zK29&0)a(#dR!G6iUONHxjwJ;nA*rV-a!zm3GlsTtK7gapQI#e7hZTexKGiXbp|1LO
zUGTaB_UtK@3!X5hfXHFH4(d73T&G7@zqr`P!itd%JrHab`D=hK9iW1ib_t0x8nTio
zcuDDRZ^sav4dkKLn9V8o_kRNxPEMNI-k?_Sk)B$Ge0}adR;QJd$!66){P)B{WRMYD
zQ-L>A@*c|VhQY})MMOO~`-juj2`S#(;0G2W@$sAs&RX|8#A>U|uklf|ynx2JPrd^O
z2`8_4pET2E0a{_PXvx8+Oi^Y(-m!rf+;G0*?DfjdZ4yz>JtK7glu&Q9;5V$CaAcQe
z^Bt8pHh|rU$a+c==FA0MBGZfodz$)JJ2|GtGCQS1{hOX~$Ham}?2CAG9JXMd1--Si
zq^t<IB0o8KkzHmy!R3^L;^0Gv!=d7m;*Xxj_!ek=G1j{R{~K^bU+i=cKpqV+doz+c
zE94WzpAncZ3XK;m#`pc>xPLw3rtw{!?0h+{D@-s#w`Qj~2L6Zkrw$h#3~`~4TZtHM
zd1eWBWF0G8wD(o9Ao2F+C(&863!DfV9&`d5Ms}rZJ%X`;9W7Isw9mI%?;OTm$i5=i
z;C5&}FW`$F1MpEuIAK|Zekm)KNal-KSjr~Xd02o1IzHk?bf7={RLhaLkUcZ#*BG{A
zUk)d%?>JGoDB?c`%MGK;GSi-uDq!_Yw$K9lxW?rRv^iF1Q57dL(+MakiEs@a+KS+r
z#ZT{RrlPuvy+8e2McLQln18<qF7Wr1gTEiQ=yl$GJ%9IMLnSUoms|^DaAIL7g%}=x
z&2}d=vw}@sEfDjQ{2)Ist2+(MNOLdE&TF%{)@G~=wx<GM(Ewx2iJ46>`^kJnq_31j
z=T^|&{aU*z%0!uYj$#fHf??C596)yvEicLC>K?G^)@<Z^PRDRovFydBz^lOS8tGZ&
zy3VJ^%{N{7ir`9m-x5QUmlb#%hY3&NqlIsYlKjC|Z~a}4X!W*fB9Ykm>q;us@`Ru8
zVjCIe*RD8oENdy8vNX<EWyvjj4>qX)lLkSa>~4l15JxYKE8(KP;{pyRO$cH&IcXW0
zuGQ-ZYDX1M6D6I_OD*G~;&bW;L6A;|3+m6R!4`5luz3UZeRqKqg-Ju61-VN6YSQ{Q
zM{D*@ity+DkdP*d6d6EO(%ZeJDL!Sp4b`-?$cwOEe0ED|;G3dBDLUMpEj6aCU({7i
zguM7VgWp`~lu!KU!TUQ(YvT1!Em~eO_?*CYJPzJ#&$a(W(>Zv@9c^!a!ijA)w(Z8&
z#5O0k8{2jon~iOoP1D#(<3>%I^qqU}@BIsAeb<_O&OUoT&+}<!j?JY#<Yalbk-?be
zsFL!N%Z9IN(g-h~&S~(6%BLxeK$2_obobjVYG7b)(+--)W5xDaDBQ_TLjl4g^>seu
zsrpvSO8$IN!6Fw-b6Nvaa4*Sw{g9`AL41x)vTd?uefcGUZ=|xXF!G{=qR4+N0|i6W
zQTWkTxY2vL#7>+;n%nuEV*Ruu$Uw(um`7rwO-1V>62Bbt3;~8sUVkjH$$ypk7}5|x
zKw6VqLy|jLXkXT%&I_b8;U|z27WAtA&M0hEZ}PVDYprDD6;D_`wDNOugD#E0oYJYq
z3ZonQo#vJwq)Z>%95(u4UMlT77o!*k70yoo01qSfcSQoK423EvyM`#+gq`nKN-<Wm
z6Cn?}Oi+C~TOYKu6y9b1)2J2P(&e3J)c#|tvlzK0bY^wvDsAjd?T;|q>%lVi{0eUw
z(E?ZaQn3%{o(Mr%|J8e5<fS6>yrqzwrR!q*CjI>>>K<`W>mQY2p05$yIQ0E>FucT8
z)%_deSuYf;$3*4re<B7ILeP4TF4K|RKD?H$xX=em2=PWTMJmdjE%k2DOZJ9%wwjM?
z%RldPv8(L_Uv|HihLMw$``4?43#T_<?XJHIumn%0VDhP1kh#bU<1lpE<nZ8@Jo4sy
z{JgeDw}<nrQYIhQQ*n4GZv|w*4PD<C!Mi`GxU_pBJlo;}89S?rpZ5CC+b?#U#QuP%
zf7WRXHAP^9_t3%N($X_8O~O`P!Oxo5aa))o7v4@nAw*x65@<r;1bGCaF{w-S<=}c4
z83Nk3=-G3>d0?-HO2H;pdoz)2HuX2@>4^F}zW^l^h1Y#G=)7Nc=*9Tz{8u?5M>qsd
z1=L9y;kqo^l*2j3yEY|gRErl$aS@mE|E5-#GOen7X>?>ln&w<?8s4HOxA?3?%}z}M
zk(n2$n2zgc*-?Sb6rwX86hV{UBLA@M*!|d2jFYwcpoq{#sWwD-zAP5|kpr3crH2b!
zx_mLt37GDz`F@T@aVM4MHcx$9DNdw9wP|YxFDZx@x(46{i8h+aATB?8Qwwa>c~uIB
z$n2^1$=pv07T$h-)5WJf>6Vwl=AI(#G{7mq=_?C9wAx<ITxMC;=>ub(|Ap92YN3wF
z1aue#)F9J`{@W_{6d)fR@2Z&v{KG)+eeoVLtBY(o0UgmSf$;ts$UL9%nqR-f(32CI
zPhE0uQ-9T4Jz!C_Yo{!d*F>=(j~Fe1aL|iuI{lASOl93PRL_YZ%I5KY$&nl1X#oWm
z^RdFOtU8o%Zu+D2J*Fm$bd|gdzh-lIu{Um|v+=`Z=e3PAb$&FJR*5ohYGI?H9mdsI
z_l}x-3o$7zl%H_EW+pwfWv(>eQ~X4$L<aHIhH+r1UKPd%_rrcv5*t3qAp;(wdRJ+!
zP`{g47kmF)ciX|q9j~m?Edt=7v~Rv)kEyP|hJNzk@Y^h7MVB&o`Qh8@nsyR>iF2UZ
zQ48Fdy`i|0a%2dT!rTf9XC8EdOpRz#DF{a)<KbREsGpFzc(~T-xG^g<F5SlmQg9YO
z_w|3ux^NgSnlHZaN+}UvMYXxDT>f&(=v@Fradm#_rMddW(9m8-z9n62&KCgj<{n%A
zjeD+MPl!*>j?aiFju{MSe6`%z+IHXLC_1pwG_Pf=+mh?b2v`x8NFq=ADm4@1bg<xj
z0EIa}O7`$oY{D=sZMaqDSGTbizn}F;y#TFbYESQ?m?Y~T(@V0*aZ^4j#UQr-?gUmN
z!3%?tCIk~Kl|SIE`B$uC*y(s?WeYD5%{OcvguFj|=MGB_^3;aFTzF7Dthj`Lu$;@4
z7kpoKz9!O5>_xtGVNIzZ{u#_fYEgPi5~+eBoX{wa_wv^gmHU-VTL~7+9TTvmIrVV_
zG9s)ygUw%RcXG#Jk<;aRG3qnebuUA{Rt)yX_{OySwcqV?gF{;bjFf~jJyW+}3N?X>
zU3Xo7afcdCf<87ebxBs~#8o=-=jE9cXE7mDrs*b4b=S;QN}Ro_9QJw3zEa1r(I}jk
zYR%y+s6Rj0u^G3pUp|}&y;y?-4~j?(dxjyW++1=3=&RjE8t+&xGrR_eSOhn#E>C>B
zMSsGEQiYf@$0^hT#b(SRO5j^1?P{u|uHkxHffW~MhpiX1h6@R?PSn>s-4dy8c+Z-L
z8Fv(Wg4=_TZb2=I<FC0)^O(*yeum)XvPSVQ2bEANRI#(qA9MJK-;LDNnKdGRl#f!Z
z(a?v%`^5bQMU4ALt3Vp_a7}slLe9SFIHh23y}<R#=m=3uA#`~z*X~%a^1<tl^rDnF
z9gaIOXw8`C1g;$TogeNH%(E_ZNf&TYa*L!^=2hJu<GLE1MGjs~zpOswPc<YWXA{kb
zJe2{b2(c<jm(0`sSerxLi~6=!0e2Q|Y#q(RX|@D&1u4TC+LF2VGCv4H0erw(-fY-1
zcbOkMZ6QU&j#!<U{x<B$LAzDHS|5m=ze#IYLk=;<Xzh67V(a0IBhehn3Ja`$=3}Fo
z&CTi8!Zov!@MGH+lc!T!p_8Zofk<vGl>mi>pkM%1IZk%xL}jSuGhr9{vMBY57H#TA
z(WMgae2|--iZ4%|TM>^yYm`?h(1_uYmGu_fwS1;vSTIx1g@@8az)^c9VM@@g@fG?!
zrmJr`m|(rVx*UE2N4*KeHHGGOvsg^7`=g@&b-h!o#{74+X<Hn|NaG{&;;(QGSn@~s
zPg0~|XbA64)z9Som?a$LvfYIxnxn$MdX&XEzkBHIh#=%!{~>>Zn3dS$DjIXep#Ypv
zA2hg>hDn);!;=MY_e^{%K&;!~KS%|-g+w*mSq<!Y<%)(pV?eWCphMDY#K8G<yh{_Q
zqvjPU#j?eI5_oCJe}FGs<Wzlk5#B-Ik%tAVkoFFwr1cCc_AL2mM`OL=+$a8Wn3mQC
zWqN}RMiyUezH5acMoo^<3YG{G$rC0nxvO#G74?PBRzQM;H0vjZ!;*xW1COYBWku9~
zfEm_S)=YgyEhlI<G}bTuYjB3f@{nMMRDePHS0VX$D6kGW)fmn52VEfG4EYI^Ra8QV
z?FknaUVwYA@s)!02z!}+Ps<y2?IJX{rr*}3yv0S>kJ8trlX9K){Qq_ans(0EaR^4f
zl1ui`H!fX=?kTe92f9*Sv-nx}G1*y^9QkLKmXMEvZouR|&O(zRwKv&wHdJ&QFaybd
zo+YP_KTyx%X#U+Hn8<8;1L00qn4gE0y3ensa+WE~u;tuVYy|oCAqjmSq|cadYB^n2
z2VF+BuHMVJjs5lhAiksu<sGLs_Kdkzo7v%$PokklLzU=mf6E=&Z2Cq;5QU%T)E0DB
zF{DK1x2n+6;;@;SI+|Cy01l=I=7dHHQ^QWFSH@4CPXk&wU~B}g<8N2K7bg)@r%I{B
zihj<UpoWR@(W*!Xa=+NcNHwzmR>9Nz)gc%cuK>bdE%#!P^ih1GDp19;HKd~B6}%d+
zs1C?g&UK?zNB2Dz*A6(7ruxejp-K+7USKuA98Ma3m0?+eHfDt}c~R28?bTt`N#lAf
z#SQCLC7>bfs?aQcE@^r6xp|dbL+k0XC^pOihb8b3MCkvwAT$?^9SvuRJQ=e(&^9Iy
zH|Wx03~1g$uel#u5sK}a8Q8}_d+{AQfjTfW;YlzU?Od1kmA^_wj*dZdr}C@QB%&>f
z^B48xb2#O=C=xPdIhx^Z;I<SSM!pggN<n(i6=0~cb37gfSSQG>i(ze%!NNQ^Ld%qc
zF0#g;C`<n1sSp)6FLnPZHirvh;kkGqz~M=iCGTDxM<yH{Sym6>gjMRa=gt}yFTQ8f
zHfKNE@<4c)A_rI+-J=~#ET9Hs5L+|I%T<m#%l(nNwWa*w7$rB7Ir^-hh3(5X=@nIA
zqmdDwo9E6p9Oh6OEOP)#ybAr$2w>seT}L@Di|?)6iWlLy<!q}SZ6@S$;<mN6ExfYG
zEA}52S_>f+6I_Uu-P}eJ)VJ8RAoGCQliqJ+DB7;TU9{5Re4Qg1nE}`E=OAbCwZQ`P
z5h%;|jmC77lP7-O34+#E2W={Ngnqe4K&b=M8<KP!A8I~4XBvJ0u}9*~+XDY2AmJ5}
zqYSj=gq306hz9dv>-Z%3lzWEE(=W8HTIlrYosd=8i?~3EnGTVtzdLUtnBx2qj}uy&
zRB3Z@F?OmQ(|f-B2Otb?@kEa$QTq&4xT5#!uo?p%8BT(ya^dXT)s<*NZkY)+I<5*8
z?@q1UL>k*~v*cUr$#}(Ms~dPBkg#AHmu*p**knRq5y|buIU4I(o+S?}qJE;c#QGiX
zNKGp+tCPi2Pn9wP_=?N+gV0TOtF3^UwzwU$9pe3mgXT*WZ1>X7<Dn?_eg?rvw|GMJ
zIm$ov#+R2Q=R|Y63z&gEw4^$vxo@{CRQyL6XV%f#Lnhd87ImW#Uso{+9kmIlvgxJB
zkw1;fMF0W*Y9oV)XDl~*#>_5JSzrgfyzl1(c&x;i{!jHV5*H%dU=a-Po?wXB|8M-6
zL5Su8r@DzAva^7FVhfBe;R)I%4tHhjIZ3NwRpOf6QJ1R0-Ou~-xe5>--U7>CA`vsw
z!63qb&i+`SQ{`iH?%w`&Rw-sYG9f~M=D9uZTM}J~wUwz8_6>KCHyJKIJ5@l(6;D=~
zc!xSahJPDxCg+Xb-R_IZX9{6r3%8*{B$3UWEe!t2H(ay@#>k}%<w{as|J;!cNpe8V
z@u&NIWM+M6w9e%kx-bD#H#QA&Jyx}xLVY31A&K|hu;wkd&A7jsB5xp!CQRb?-I!n(
zq85zVZRE=getBWIz<+>j1~*_VJ$pd;E>b7pb_qi7#v;sCrnJqQOJkFu-#gH}{aH8b
zy9&cbwm<LZ$3-%Y5J@w~&WCi*09_I^e5_PJHcozUgbIK%ZT{xE&3{a|lEH*J6d@&N
z!!yv<zCaMMDALV4LL)%D;VE{G*7zt{BEDFpU|>Rhi*bDM_KwTL49q9{Ede>cG&ZUo
z(~%)_N6Do6ai<#`gI-O+Q{uCk>?nSbs_8T16lWYUd@=X;&Crb;Z+wuCZIZ^s0FdLC
zR1wDsA7g+#w5R-`>8=bKB?EekFc|S!!B$UEkS(}8y7$XB+15o<cIeMfq3(6munR;2
zsqVE0uv3W_@=fAs+8KxCdc(s<h<;(q3G1ksT_fhI-wMVvQ38W>Y8QphNJlQ6U>{hf
z!~k&dO!zfB)LCw%7k^TJd~-&}L-QnXda#MlJ=1()2vXdV+hfRFrIwaeuuw9alkC*b
zgGDT83D1}BSI=|`=1UflI#=W94wsO}^vhc{<3BAg&BS4j)q_=mXp`9o4_4LFV@5hp
zc0>9b(ov^7Yx8u4tdSq;Wa~`b@BCb|xr+Dm<{2O0PehtemCsYdJYBr%g{aSHmW7w_
z`zHEqQx(x)8dfQp3E*mt3?Xae@^b2~9GNuX)(R+`wzchgDKiI~QEki~)YZ}IHTp9q
z*WWtZ4fxvM;+2WMe;M(BVmz{!lM11t$Ww#Dhe=6U{s-9E-EO!`+wCZkr%`kB(YA@;
z3tFmnR9r2sSNW0&m7FH6xXFYX7o|qE<5d)w{fQe6DjHQQceodBZLYC#>4Wp8>=yUA
zgo2XznDn4LUi|7DV=;x~^r=jp#)m`HR%|G*0wi1Z*DlP-!&Z+^z)a+%BzqIOsQ<kQ
zs#qxo|6N98_XC!mhW^YyR1IhMsqVAV6E(#GQ4~V(je?hXp_t+g&DBmmX<`k=$N(d|
zLG+Sh0r)t-hTE-r3B2<Ua9dgcfM&0%N+mMi(s64#m%pFHS6BTqmzJokGJ#c)x`H~k
zx#9^k+0|+N8=u}ABIZ*YZ!r#^I=WA|X#)VnFo3sl1VnuJ0a}Ni@@v7*ets+{;eDz;
zB`-H0)cKt}L=!jGPlb8*Q2h@J)``CvlmWs?6<ShORRM_^G-(c9)TD_?QkyPS6uIxS
zXR7}vV^mY$$dTb59n#mO-<z6Q>@*%WLomEO#AP6jXj(kI!I|7gOZ?I?J))CN;!ncH
z9I|H+QUsdhCpqE|Vjzg9Xe#&zsAA8Jt&_VIe>RapQ2-L8Z8o-I6OFj{vAYF3lXkH}
z9ZFoveBI%x4xz*+7Je;;ml9Bb+*5KI`yp4mFHRB{Y-tV{W4S1W=jw`p@oL1YZ$UDp
zQP?(Jbt3U*F$7<s(LDXj(&(+`!V1JkEPt7*JN>}Vg-2%FdEq@q4Gmy9I#&L%LEnV5
zhpjHW=V^<whe6yfH#Xsox&L<=)E7J5fCf)m(mGjj0<^C55?A@d`m0`*VsyQk4)v!x
z)}AdHm<K`Ogyeo(b`*nvEOI8<raONXYLwGOqG@yJ=)%dZRA}l0C!f)?0-D|E71>cE
zTZmxB_neI}s~72}BM`#CS*A6<ufHtxS5J8HIV&$zJ`a=cp&Z$|c_(8O=coI2BThs<
z`55>SiyP4u(U{w_D7V+@?(1~|2mLqD<(Cz0F`Gp_%4ndfpN>?_L)e(9f%(PO+pED+
zy(9K$lBWu-x*bAM@`7jbDke`wC`!hqH%>EAEC#0~bTL<fbO+vn+_M@uf1l}ETLm$2
zHnA-i^2fQ-M_yqXV-CJFqsfnQi-I75(P?v-@QPVTT=!LRTw*8$7qubE`mWK@Vg(d|
zPbQH5gOSEDK}>~U2;D_Ea=4!r9tjfX%D6VtnSec47*)wcAb@{FdXQ*aGKj(iTvpDm
zNKGsDZbp-Dla+KV7(5|8ued^EDO|OdlAA&GVh)Z$$h41Tp$iY0EV<OKx;JP;Bw$HV
zK3v2d-r64Udd^eZ_$8bG@ARAj`^T9R{xV<pRE7zbkCgoiG#)Fi(yWleck^S;r{!#d
z*{wD$((04T2KzlvRnl>CsK4abHkm?_PFBO6RSYrlsOM;TtwEj12Y^A;(0iG!9vxi3
zau}U3mO>`ybUm8DtEXw^;Rk&>J96M$S#hs%Nq=Qt?B(nGr$fdAp>DG)u~=$3uuFF2
zxvaAa9T80?iG@vP@41@Q!8!Zo1fvL7aY*tJ=M$qmokYDwk8rKP1M0qeIUxr0Ass|n
zI`~sw2P9JcDEgnt!ce-Mnw=d(_1(7IFZ$c0lwW6gc$8nts;48tl$C}t<0wo;o{q!d
zTe<S7y>)5DR*g#wtDjt(&6gzL8M(Z^=2HvU2*4D(JsMx1uU*eyM=~NeE>CY9IrS}2
zPz?N(%TDD%rM<ojM8<U1vCKy;${08h|1(1t4;?mZpv;=q-sOu#h9xDc`gYdxxPh0Q
z>tz8Wj1k2u`LiF+(^&yMI}I9namW9PJ}6S4LNa;>AOhoxp)o=a*NXajQzXTPmNvED
zQGrf$T^Ht`!I^7UvD+sPZAkMIZs(~n=Y#wM%0k~CARFD&_^4aWai{JhLb$HQhcLEN
zbhXJcPWIlu{l@45!HrS99WFN>*EqH8nEX#(kZJt473$K%WWS#bEbG|bg*mgYGd$(Y
zmpMry590hW0jYFB{QQSMC9FOQs5_1qqEu+Es8IzCAj{G;prAVQF;_W3l@9;#gz1l^
z@uGb7N@A|{HzyKy(sN*J`!}V$NE0DExIx5fxp2My)7?M)aC&k8XVU9dACfT5mP^eD
z*HVdzp61bxSQ`gkJ@ZS>&S!<WSCo8`jg`1iQ1(LmPj&dMc%AYyOjsDP+RzYWv)nfa
z2xYt}e1acROA(DN6_r$ZV29?K7DJ=Db`_8PjT;bRyr7lU-HM&3L9`B;#%8E3!k*)e
zviKRZE+%@<*N0Vo!2>c_l3&2un+H&ZoD22qp;SWm;@>5K6A!t!75oN~0jbm{Qrnn~
zl)<oH3hlf+2Mg=3-dthbWawqRYsE3xb@)4V0jiw9G@W)oh5*#;bptN7EB9k@bcE*v
zvgr{lr5l*m6@s8EiIVK>)p2^DLMUwNfwjG=yIQHRK(<G*+@4i9fji4MgERlCA)*iM
z)1^?A*evRWp40jHYo7sKpu&EFq69De?F9ApA`c#PQA)6z0ZhHZmg4Aimq`R(^0!mG
z2LJ%60bs#{>Idapb{aFC45nM5zmE0dZ91Upqu;?XABI6;wbI2!^gdMc5ITVgEr&|A
z$nGMGX{TN<Vy9Z%YMGCg(Q`m=?h!ODbW$-0YZmvP3NOUW>nqD1-{hI|W}U2{^@dp6
z+;-2UVxc@;P#<xqP4_r8WTLx&64c{pOVZ*veQ;!E&Y8Ft%`V)T;CeOQV!}ZLkkn5N
z@~FjR52MLUMfX>Fd$AX{Hz5AB&5~2#BJ;k-ma?iRNk>&K2L=WaG2GUDQHTNQkB1Ur
zXym-SmR}D+p@W@JJXmtl?|dsf7`pdk*Cq<mIiPZbc&Wk#{WM+KF?6%#5?bc|?DF)A
z*q7_7U+#{Ig*VPh04B?w!l~lmR$Yj@b+D_fIpJOv?BTakZuV-^#M*{iUw$MypI+0n
z494;ou~&u&d;(y+>+&y5Qy+qXbVe|7U}@Y@%ZB`>pV583*gB#Z?%8yG{0;za^tl*H
zeqK9*6(m!7U0;P~FAMdMZ?rOoUDs7>5@x<U<<9Rr+*}|p0)htdzVd4>V~ile?ey^s
z`0a~r$YMt~8XxZ?o+6S|>`RAE)SX!@76$L1AhLWfi4lmVLG2QQj}PL^s`dDpsO61I
zGS;IR2{4Q??vD&LEVxyJBv8Xis{T(*0D0d~Vi|F;DxXCN(&UD$-kkLh<p-Z#+m2gH
zPpG!rE=PH`|6YhRxU1VI#yYxEkjHE6A$-rS^k#|Y+t&9elQFVX(f>3To)gK#cf|u^
ziia{#rz}C#aQBI=0?ufvt7}PUH8T`{MY(1)++8&mm<s)QTW%cw1p<p5BX7k26r>^$
z0{`b9AWfs)Z1~2fabaJebR9jRIKrg%sj0?_TlPa^fR?Iis|=H;mN-&bG0w&hqD+!6
z(~ynt?7}}+!|bafej(B40Fa|3bgf_TuU2IrY61tq97W?HO?Pq5F=IzQrR0z>lI>`v
zqlH+XbBq(&f`sOTglkQSWRI{vscc<!sDQ*<k&@DHvPR@oj|D1c$kF{>4gi@$<sy0g
zOXyJqVut98Gp%I0Q>;Dr0sWMifb)D8Tgx<SjtVqyvT%|oD?+VJy*Ke{iC_mPMuXkg
zol2sfCJYZqtak$nluC%wzSf>8E)5>q{n$<GM)zqS#ipOu0!uSU<=wPd9$3;F3rIbH
z7);4E^ODWaWw=Gp&UBB(NJLD6O6o6rqmi}g$Q+ir**nTe=kOk8l;H1F@;DPMns9{)
zVRF7wRw%IMMWb6)fKVD3?jJ@qqz@CT`e#&{ny#z4iKg$~vOnqjA$R^XLej}e^yby7
zjMy@N6v#$eo))5qq>^8AKrzQyRw<;V>4Z$B?2Cz~Zmsw+`%7XxSIWim3N7_^&BsG=
zpfV!cr||(-q=(jnr{tqwzcgyk&N0HGIwl5l88Hsx*<`c-ao*q(iC)(|lAO;J9c^(Z
zDLOen*IGt=5a@8F7k~!LtcOa&mZeZIsD%AykPLIOVu|4X&M3y8Sms_F2}1@OvsxGd
zi}@>J&{dT9=Kx>u`NAFJu~5gJ20PmRDmS_|2o$QInW~adg(YXc=Tc6_$Nxfv(-ayF
zvRzIa;fz=24+LBH{?<$Ql+NkAAp0Gk{iK`td^^<io1F?r1KQJ5)91lZ8O_Gzk!$w5
zGx3>k7pXpiD|GP`MQOj~sRTAN$r5B1@YX^{Re6n9bh>V-dL6_v%2F&SW8<!mf;L%%
zo&vul-8#lQxX$z;@Oun13_y<X!kw@mBFtv>Bo2uvPG9X9K;|^v^UEHUm=9QgxT~gc
z>yEk>D-v;ZXcTulDkQu65QI=UA-eoMS)kyFI=2KGb>V*|61BwSZY(>gAUG18D|O!D
zU6GQ5aNST!4@QAK0zt%4#l_CNUwAMYT=iVkW`!GoksEc08{-d+(K^rvqN|GBiW1E6
zUpIvCuN~x3XDO;^S-5r&8our_a?7X>qJVL=#%n=W-QSW9k$gQN!LyaX<es~;Y3s5n
zBx7^0SYo#i-ZJ5=(13EchfqT-%!;n$c`w&fuzYRFF23L#8f_)6c%ADO%#N@6_~eA!
zdz2qS^z=_{_=?a;;_~<Z?J{1(+QA#CFo57U;djQ3NM>%Lga?5*&Y?kbP!xj5Wm=mG
z36!U@%HZ6&sX#r@k$!Xw_?JEc%2jA94wAW4mQ~hoQx3QLi?6y3%bPCwVPmGhEd7}w
zg-?kF2B%0?Z^4w3+9AFFXl%jxrexH`BnU*uB0NI|wzlMb%$m5%QV}e5&{j_s2F|n@
z$&26p14IR;+{MVGF;|J%2-o~t$*JvBBttU)MMqiBoy9-ap=}JT(X&r(3RU!InJy!b
z2;-6{b4#zH(An8JJ?s604iK*Sanh@G`@_syZEO1^?(2MD1`HnhqR1Ks7A%i3mS*mV
zP?4yCJjxxBunPGtOdhGNTUGoLt8jBkJOGA#xRmtaC|jh4!7#T#m&S-sJ)!;1>8Ydm
zlBrZ^M7_NGA3*!zdXmmXE456SkR+iw3?19u^GsGSuOW-Q10smE5PCA>+;H92z99Au
zD2Vbik*7qJLC9hZbVi)*K6?sEMM>|ew&D3vbpvt;gd7nq2~6?&r3tVVcS*5w{2T#L
zqMA(9)JjK>RHIEkkb@9~T$VAoLC_^zq&l8`atCG`Ofd3Iw#GFpd#f=*b=;}+m%g1-
zUey~U<gF5ElEhpU_v`)1anzg`Jd}nRI(1ZT*+0OR()p0mxG1BBZ-4ZL6JjJ@tledW
zwb>}E+M0t&*@;>$;01^T51^*X0in5?6SqDu+nd}eo)aXVJj|O_+w-vSq<s=B+8)pS
z1h}af)konZFg7|gY?o&8^(4P2qG(mA8BlP9N9mo&J8N^0L9P{Jy)I)DJm_p}k4-Yf
z#V@x6L3sq<vq>Qs%IC(dQ!-T4ktstZx^{g&^@~|#x1K$MXr5hSvh;I8_*fsk30Jt0
zU<3x?fo-xlw>zw=O5K{>j-k<#axuNjF<c>p#<*~j_eLrgBVL122+4_7)I4VXd`{J$
zQD<C*m!tETozUmdoPO?lg)g@lO7t4m_>ps{S?+D&^R+en1KgQ)BArM+HWo$pMzMeC
zSgzVbJtQOLHIX>=^ZCA7DqpDY5Y1&QMRrA(F8{UuA%sa+J%zm~+m7TL)i}-1$Jfup
zbF-E3s&+*Y)hybCD2ZbJef0F_YCd2t206<uLXb$$qJK=a`>tIGcl)CL2GF~Wkvc8o
z%XA1b3c8Z(CFA_BK7{B`j*w>L8>1jOf~}mFJ>(3jqPEi0FLO40()>1MlKd=mg;4O2
zp4NALC<TCC#M%0Z!C!tUvI!ekwX^+1kBKJ-CQe8*kBSMgFsVnZJ&jCKTw;T@<qfCw
z=n&;`BJXbUuwAnFe9BwBD~G5H4W4B1jfi#<T9lF=NT(UaED~2Q-!FLSA$><24RI3i
zE*6fHg%$>(A7m7H8WD#-!%28q{yvl8o-bAh2xSI#*W6}OjS4-f8+b~GF<;0Vp}3(_
zE^{e0`m$N{5w?##Yle}j53xadRQvAdpm6hz6|QF8qOh%ddT7NMs`I7fG?}}p9pl{O
z8;3n!6?a`BqJ~k;Nz#!X(KUS6SXBYPI4J{yk7(-ff~7y2sM}8;1Gv^~LX#p{Ysg0T
z24f~2?Ltjg?XFH{odFF4>n^nrMBUu*uQ~z0G%{N+{}wSmPURP`&q-?-kRZUW=Ki|?
z8l|}tR9NA}pK;0n=`I;D`faOzu*CI)IODOD?VcrpUrR0Cy!>_RRgWAAym=OrPa6;P
zN`L9nCtggxy1(iT#v`3nr&b{;WQsH5e@9nYM{}X>)EdcYOXVIv313fi_$8=ATb3{Q
zt%u`{FcPL)C7SxNQMNcB=a@8AsJw@U$}LOXgXhu>n(-e(#Hr$!qDI_{N3S(+>Ye|t
za~*4BDvF+8^X=<9Z4P#Iu6Z96rwbQN^sgY`{3jiYNF1t@ku1B*px1zbbBp<dnkKm7
zi#R?;^EsPfY!u{eqQP8m=>3=7>$+%Ycmnv5J|*-cKtymY@<4YlBfy+0(deLn3uCY2
zw|2>j^4QKAx(atlmi(f1nC@;C<hOsDcBZt-w`&EJ`hLf6R`)u4rPwaVXlHG`LkK(A
z3}^fFKG=q4nVw=^Nh8vJa_X+PT*e<fX3a0)T=hbb2b>Ahm1W@LX?RUvu+p_<KOv%~
z9%BLbc-Z26|A?gO(@o9hZb&FRFz90=vWX>%f41i@)g^+5>a2L2>c_m1vebgHJuLpM
zUT4-^NQTxQZfB0hbSja4fW%KCNtS{AH<)~hi=^tnse?E%?v9v}p}3jP2AD0vBsy35
zi3+>0KRqiN?-T-;q*;zMj0`D9=2)jfi!#!83EhcYxyeu@X-n;GE<Fvq+z~>+?~;Ks
z4ED5XLt;PhYIP)uOlvYk#~9;b)JE#P-agBe(c`L)Zv`d+$5d6*cDZY<8>wbBi9>*8
zE6ACTPwK7hG2e+o$&a2tx0VbI3&98c15Ex=R7Fs=S#*j~JBIK?dlE~?Z-}`ovxFFJ
zXlAG94-*)auS%&qMn33KuBFKb3HNuJe-f$dyJ(<T8Ja%j0sw;}&fm}e0g&~mNK#HB
z{a10&IQ9?e>W0b1Y&%+NGFEGV(cYJvO={*DXqlvIW!5RKh)+VxTMx(^i25KrnsKc~
zT}bbtE3S<PFc`e&i8}vUG-iO@n`9jwmi<7rb@SJPc4OS7@yqnr_@8CNIdcjE{_V_C
zgOFiJZc{1-dVTfePui3GbecTLaIZ}lLyJVTiUgwl4SCc#z9s1LRMk_QU;vE^PVDkv
zOIO!GITQd2Hi%s$^C;7Qr;OQZ9`de!$2&0-hBqDoDM4~t?BEf(*UO}CRL%XM@k%Nj
z`N<xH#Q(+#=by>tuG1u@beHM&_*013)Jx@nP8r0+$zljvpPqs${~J>EffxGV8Xq#m
z1Sgb*cW^dAw>Iaq4$92<8DX&=R8$>noW2g`kLqlN#9is2Y1thIJ0prz1)HXwC;aB&
z;}hvw?GGja{>{o<Gzw=qcZVR*jgW-R#J>Z6iBZ=a&*eN!>LQM^$X4SNvT|FA0SMtg
zO@z$H_))aZ=E59l-iI1f27VQ<#SEly)pLpDDsdTCqMZI+xKj}vO3tOf%8^-{)WB|u
za0HA^VXnT@`u%OxpicatvgJ?bsxdPko{uJRd={$SE%hAUlc&~Ic2vAK18=SnKx>k<
zm$Foh(J&7P*3&)ZQ_=N<ji3I4rlIay`v8!<+<Mh5!N$QxLRP{a+*%))%kMB9vm{<$
zjjanGG(<B1ZMg55e5hlAyfcP_&qHq9y%v~CtI$@~lLJBGtvzb_WSTA*3mRN8h+Q8T
z6vF~QG<%Y>XtCfXq9F8vB^8DEZ(k66_3;Q`ZdwbbJ9VI(<opZXX+3DmMg9S}QJJx;
zj9%C4;-@{#$=+**<+6y;J@L-ZIT*dMo<iTWZRk-C$ktL#S&z`R&dc(5phpzV;ybsW
z7+o_>;q5JY)c~Q`A-JF3k~K94NSLV5RM1Y!e2>lXWOpMlB?MBQ1v7pm*H>-5S&u>^
zGC*7Ao~_$vEnco_=QUO3JC7ID`UH7p>N$_cIcTvGkg-kd^|Wp?_gfqW;%I~f!#e8X
ziXnB%JT5ngTBUUMC3?Vk|Bk209q-hgWBn~TY}?75Q{hwd+iO1LXmv0<Ce<`A*Nq%@
zS8eOPOIty}0hK1M*nQ9WZyC7w3pX5wfYG1;@gtbZyyDfsq+N5$N>;tV8^44jVHpi-
zKno9Qkj=_TtDBKIHZcPsx{@<HH0L?*XHyAu+0C<e>8{}gyn_j`#e{zLr@$v^VUKe%
zMjaKHoz$GbY!=yR7Xq}5Pe;)+Mb|bni%9aTa<zY92B!{E7@$ZY5}x(3N?7uYl|Wtn
zf+_3t4ecj}81)|nF*I%%&kz53e&kINr+&i0j1V7B4d8c1@J3>90(R7p=&`l~dz45x
zFDY!kx!2xm`_~daEmntnn=)U|==eEoY_*hmR;4r;cvM1(6NmaMOH_$jYJU2QAn)In
z8CvOw{taTGe$ch5>u9)6V)WDnTcuo)y!*E94H|*1tI%;J`vCBCgw5U!vp}YTRNWL{
zLQ*|FCNwow0TGbIE@wIl-Q{D$-z5-RN3prTGsmq$=GRWA<tYvZO89(vwRvTr%4@C`
zvih!Ux7+}ltH$J^qU%7#K`;V<lKgW%Puvswm(|qS_--5rF@Vbht)=uC+4a|XT%5aP
zimBTKML%Y|iW}3l+C=%1fP(X45|*LaWA_Xajbx5YHcDfyMEMi5ftEg409>#Ys6%k5
z)4q<a=i}>t-B!1uB^43~%I5|VUyt=;1m>=U)(?u`O^XauVliCZBz<j`k??i58Hh*;
zl<a*Jq{;!Fq)CbOf~arYT;vEB>Kz|oOsU_<@f&Uv<re2+KYdY=`vq6Ad#w7JZ+`x<
z&VSRwx^Oh5?hW=v63b@psC%+MurO*OWI@#mt&AZV9R0(m8LT;5lx(v?kxEK}R_FFu
z#AJ@=5o@R{qWWGBIQyDMV`s0b^<3rt;ljKaogRh72<iwH%=Dk*N(njO7bepp-(%Zj
z^41k-#kT4^QTu^6)G2D<Su8{lkg4+R9z4HS9g?rq-af<%0I$;O!lUDytPNr@u5@wN
z5-PVqu$E*g+{!jExrZu_KY0a4h9kXK7aD1Zm;gD&a&<|}^DvAf;23jiLV|w5rP!Rc
z?|_R1#u@YAxuTqMSPA1pw85ZoBztH{_Nf=s`wCg)x7X}cKwKSk{iuAkbmSpggQw-d
z$jyT$$+>x*D&`*s*f{}iBzANm^a{_wKx9&;0wIV^<Ij!T!0$ftcrxkTFKedEsMl{9
zFz2xnh^8dix*>77G3o*|Bx>B^W+T+;KMJ^K!{du|`cOmh<}HVQcGtm%_&|9PMaX_U
zC`M||`=Am=VTScYh==!{f{?Q#W;+TW3hghUZANFOo7>I211dgR#h@6J3KK`Jui6v4
zd+ur>;L}n>5AIsTsGcn+COQkV?L1`_NLpvY?Bhrv8oL+<{LMLQ4v5g~g+9FcbGD8s
znQ5NVUrZ*#8Q%<1umSxA4nxEiB_EfFLbkg(DU@tIc^asCk<Wt><DN9_OTDEvUO{c3
za}tYwTvm|<P3E(*E&UM^poq&hKhTUnJ-kA4+QFGf{R*+V@NSv=;Rv^4_8(x5EOm4z
z{G|wn)9V;Fd7B`hM{|7IT}PznDmF@w#fQvay?t7oj^k4Hv&6&(Fzz#15@d~u#m2n@
z-Tz?5-MO?t0pn?!B6E&T`YxHtyrk$|%xc4x3Mq~2HacuH18S?qQ(-})J<T_BBI8Dh
zNDKrR%23n}9LC#R(o={TDa^!546e|7(2EEnlUg)S8PXmvrbKa1XZXS36)DNl^~-JJ
zMC-m#iw`SFGtgc-__!H13WWhj_h45$beIjw_>C%?L?XOw?^?cIX0Kk9icJBQJeNDX
zF()t6uxcOpwf(>?7p>`<Rr$iOFoV^7x!jOFxAk+KQ&aI$cgvahPKDE-{<X7kXxFNd
zR})0tq->E_P3=*%1~$oo3R7m{wZMg6v0@YzY6~k&)5>_zz--S$u_m>Mb!?evF@bQK
zUb`g&oc>DwbFx|*5?v*sAld(FqyL6xN_eytDnpx&rJ1B9q2B}S=<u_OZaxqgXJl2Z
zuE?s+BsX@Gd<E1SrfWmoTS(feledP;VGoI$d`n9I^b#b`{pTVrHdRp!nOPld?|u1m
zCAN>~%N)e8`vE7K(t*WUD+}GLSkNdF$K)6B)#*(|4o)v8iV}^foO8<Jlx!Oe&q^ap
zd%Y%bwSGsqN**(Mq<b;(J*b%6yVIvKG8NQqbL#LjpC5DI<kLK5+=}cVOc>BQLPKuW
zwWJ;qeqQo-f71RUD$1Vo6*nq-V6v?y8WTD^0SU6_cdKN*Z@!yS&VxE=bzVlWm)V|t
z>5e!p{M<#_h&(*}g*h*ZyhK}sn#ORm6S6YVk9GLHR?4Ohyz{@V7a@cT+XwmCF#d~Q
z-~<BLGu=Nw!??UrArf8cU{gp}GrGcfIi5BJM{t$q8}@y9h{geKEuEmH+}JM*<e#`<
zA*XErSM(o1nkSS)M?%$A0hC07r;79I0MRh^U4h<%2nEQM#v`O3a>S>zFNMtKxGqv%
zdYzZBdtW|$<ih+^4RM)*Iy;;xi&&}iQg^w<FfjO%pUGNlIO`zGwkSq<R0^!vGpybk
z7FIjXOrZ#j9W^GjAFOKLBA;IXIo>4_)_b%GIB>r93*1lcd@EiCZ6QiFyro%;ekW73
zM)1fDfz?fO-5oG5wWV*rhlZZFb<F1;e{4W9!8Bp?{f0*Qyt{4%#`J=u6gvrtWAO)@
zqdg$5mFA}Fxe^~GYDt={d!Ayop*{EvIPt%G^<$=;(XCcas9g-p&Y-}|Cj)7#(%ig@
z6uKD9oxFrYIKLuNBAu^_xdGZjTsiIOO{!o%%<q!<q=elYRiCr>-~pQS)Q5o|omExA
z>O?L^*H;&*a%#f}vXQEfi2+C>pJLl9^`n9mBApCgvA@lwrU~Lt1!C+dct<~h<&{K(
z0~-2c{zMap`}frl%DcUqcE8d&s0l^i{`cn3RgAnQ7pW>^w6Y+gM1bF0@T~-{#SKzX
z`m#+G+qv%2&MOJyD~xYktOL^H@slLB6~^y+@mR||A4as(Fm69ttUyYig@b0+2;D>B
zKa~$HbXST=lH|S(c4_vE2X@W3Jc`1@E{bnoi7|@35hB;ywQ_3qaaxLqcUU+v1;<rS
zXE21}cS!}O@>5k-;<;D%9^6!}YR$7r4H@+NK_l!0tpCNpui94AAFGAkemCrd6NKYB
zV(w6agQn$l#uqR<|31&FB--}THL1Zbaa}Br#EDJERre~pWWjScUJ+{mK)sLh^M=Qw
zCF;d76$@rZmtz{jFK0j?<%<d2J^!!o@gIP}K7&K6Y=wA=j_R*1oCEB9?%D_fi3Lo{
zUtTm=lA*&@N}2%K_i7s$mCC=HTs_tY8r335$<H4GY}o4YU%+S{3}ntQtEI!AnEnB#
zL5hq#%Er_mV!^WTl{*Y)CenM9%J@PIV)`IIw28o!_?;cS8Ie^bJp(RReX_kYBYknq
zp|XHPPv*RWr-)3>#knKn_*)l3vTqqt{phjHSX^gO{Zp+ga}=Kasu^UT^EIW-<bb;|
zyZt3^)fhI`c@33*oRSD3OLT1#0qmjU-WKCc8_bBr+%<Px>#YNLmEWj3h{?8}%+#&c
zrXo+S?D3*uSf<fslTGvbSaXqZn;#QQr`t+y=+(yUOmlO#6^T|`N5vFPV>@-j5>IE!
zp`f9c&X658!FvI#5op4?ee`qiP|1$DH@Nn9khH$L5S+Qw6E#_m*$NeWBlny~q}>Ci
z^5(6Zil|xE7L@(O3kvHC!B0#}Fw}Dw^f1o*&#w#&MaRbg;}u;&I1#g?`bQ6E%%W8P
zHlEB-$UuqTwU#r_Ub4SDGR|CXu(pMOSC7tb-LyNRa8(ImNOM^%AH?PtAIM&%nJ7gi
zCw@@&85m=7UXDB|=gj=1lE=~%0{#rmco;YSYNM~Y>*<JNVguPl*)r%)PYPyOV-1F}
z@Z}WpQecpWD=CwL<y@Jay~z%g*KBGjos<N|P>}ZeCQ0e(6-}}=VOP=TTRRQn(bCZs
zBq=B)!^jlqp$D&DNS_*Lps%i+1aRc2C_JubcP5l=8LLnLgGhrv-;$=c&0T!?ihk!{
zi&_ek7Grxo4sS6s&?@D(pLRDbZ-LRC&7;PZLQ9Y>{@&<-hC;i7J-p9W*wBYGRNtcR
zpsV0H_s8>&vRrL4h$(GnYJuP`ir&N}>4`XQPh7a>CxSL4(N<G!0wSSj2(IrENu)a1
zg5zzuXcAkGGKbGO(045>)N%_ra~6WEmB8#jqQm7%I#ak{A|5{#nHINwr2#dM0rBA2
zQV!DQ+!K<h2fT_7$gVfB0+dz48ElCElsaJ96ryiD)TwGPqFB(LGUu{3eKR6-d1l1p
zD^F9uzfRuOu+352$q4MesT9Efb&kQhN$XMW6E{L4*&1}~<cW?&mD*Q(b$T{fg>8Pj
zN(Ybe*y_bCue_64+ySuUU^AO;<SH<;Y5Bh7B2hw7sB*4-jcD5>c=exzD#iSCFMc}-
zG?tSeFynbjQ-?vXmUt`HdWDWP>NKqT4rpIe7Zt~Ih!tGpAh40T{U=5tO46HYSvKvw
zTEt)=M)QSxFog7B8=(giF;MxxE4&Cid<!Hg9_qt9mP}r8w}hCHW8f_@Q?1-cakyh?
z0YQ;e<P1BN3ssOjIrlV4LWFzn;mNSB1@l&FyOfk#giRt8I+MfDKN?P@6tjYFY8d3~
zkK(#V@N9`~UlHu9AzF@silYhdMOSmIE;CO@6JABh%T>#2TsDp!?`gX)v@+KA{%Uwi
z8yCNy>O^AZlo(`XG=pj8Qo!Hoyja^m;4#NFLO$^bp+It~-$=d4vt#+cAH(B(UX>X|
zJtNJsb}wwDg>qy9F7AC%NTv_-=)5mwM}ZOB434IR1j9q>a`ok@Qqy=Qk1nzmKusx^
z^GbEl*|p&<n3qc(R?&MxL$HPcwh0o9VFVJTQ0{ehlG<@IyG;uvtU`t0MRTvL&|BiQ
zDGC}FNjDm)-!PFp6)^=X^H0ig=cA?ktpFn_4W+pI90*Oj1ul_L`!CtoQ9OjNH4p(@
zkizgPEQ0Re-f_6}dSk{IiW<64-#tqL!wa=vx3$MKqZ3h42$&RQ6_v9K^vD@smpFgO
z1aNazHEI(Dt!!3oDHUi7Kh(P)#gnaw0S1S^8Wjg4KCreC({keH^^B~St*x?o_RvRj
z#-xR>zN8P{3qZ*sx;V}}vN@&+#OC!K{sV+cL<*>BG>URnLH)ox%XJzZ`Lf_AK8h_>
zA5`}%4zZS?zlSIio<Y<pL~ZyMr;}6RdA)6I!8`=e+eC7)cxAn`v}nGV%FPa=5L*1c
zH|)wJFL&hHxf7|rv2Gmw^An>sjL4u#8!5-O`JEP0)b9v!HF|!H0P!5j^>xwCm&TU!
z=ullWHt6E`LZ%UX-O@N_wkQ;!LNtJU#8X-_NIy0<0(LMF7Z)iJs#MNZ^vg8Ut)ai9
z?hTFz2-HnqcmYTunzn%q7Ed*UMDWn8P?9^`lCYt#IYg#$q4(h}RmL}8cHv3RsOGYo
zuGbmM?1>H7fq7D9&_ibs(UE~UhZtWge6q(dBQa<d#d3hMgi2M(7|c-X0q{b3ITVw?
zGV&nzu2Q6>MB#UPw0xjaBYUs<ornSa2Y^q*MahC1cirh=|NQ{gw6*-}?k}(O2D|s;
zhe|pW^Wk}?EpkSAxmc4SgygL)HhmY@7l`#o=nnfy(-3)mkV7Er=oPiej7Ub&2jvqt
z2vLIFZoD-5Fks<#kr<5;m#?~E#o!Uov0niOfyd(Uxj5^+40>(?6hQpl(lO(LQ&w|l
z@}phbhcM`uevH%qy{YeGGQ>)yT9JFQl70*)Q}^d!Yy4#pRoLRt-A95E8rYBXw~40f
zsKdhq-?(0TSINxepKWdaBBkh7a}ih+OURpJwrO`vfJ_7ktUQBDG6zHFPh?(kV1W$^
zx=|$B#iPRax_>@WGGhA7?qAu9g}=eL(fRMRIHmzBxPRe?_RL3KPy(RH;bKQNTjDf0
zrki3T_wy$Epj_ep!mF!H|4|R6IE?7!)qT0kffJi9`e;g3_rZNupk+Nglm8j6%wR~N
zh?+#zrJMb8F#r{5wz%%*YnMb=9z*0wTaK{v!<=|vW0rcT*xc1gw_wPUEiAx=sj~bi
zL_H;ptEv--)N?Owp9cnVvU1{I3N1E;m{tW5BqXb2f2>_H5~&k~d_eYb#cH(_o*rnc
zZaOO0Saq>9Mrr2xXOyUFPi+7y?gea7e=P8%YYceQ@E(I~Mgbw+i2PbmQ`2vU6OBC<
z;tD>xtBl8Upy79Od{t|aVBJUkBLcRhnVkhZl?YLcE7hyerU`0YP-oQofBHbAEmzvA
z`(!A}4#qidY3`cwU90MU|8o^4S?;QRIQD?qIX#G|3?pcMW*ueQ2mcBfK^k9pkwjn|
z{XK%4g|WI46~J|Bx%E0Or5>!%09Aj5GfK_iOZBC@HOQw;R&aEdf=Zz-2pe<W4&js3
zL&}v-F;Mkot(ExT*`|%t8q*u^N;S=$FYr!|TDk_6vSj@OBxctfiYKA+(3`grhzzP(
zN}s=ds?B_RZ}-=vK5FJC(YkPp_OOfA&h#1f_p_jO8kJ8}%CEtxABQBEmYN=Vk{n-T
zcuRG$q;2&_bmtZB(H*WlzKZr>igc^mJrqkNqgWN<K%vAW_V*%Gp(N=EDtc4Vd9n)x
z-FlTGsa5ju%5{Uz<QXuhDFxCOlU1<2If)pGWy1sN&kGyClTY{=DpL2~CxI1eY<f$k
zSF4pDIyRB0%!pPH@SNLr2W7VPAt_j&laLv{^q{o+N7L39TQPW96j{T6fLXn%K9odH
zOiEIcu$#0sI~FPr#OtM?i$iTK)cj8VVfPARz}`QA_~>W{J7iHD^uJ5(9i=WA5wq?V
zp7d_x-m~Q7DyU0eDteg>RFQI;m>({nCi~)0e)Q7+4a$^Yb)wI37Vcg#PYoedfZK0y
z?9{z#cRgZnO5HI|16LWgK5c{St!gJc{gCkY2Yw+AQKzhdTEEi*KGE<ZOw>b^Wsl^@
z`G_lMy{(_W>pMhBTdkpwbFaW(a(!ubv7mZD^Nm@k0v)V1DdWw+)<2`gE+DxV<jKG=
z5&cvQ6HK*^K#tAryeNwomd>bxGxUS&_-k1Tyuh*m@u2CS_0Y+t29kNY286-7cegL5
zaY}Hi30-`>-Nt#31>IAL4@_mA{{S|-XFti|>eJkwZZs&ug^587*}enz<c-Z@1O~p}
zzOTtulwUdfrND&>^(`ET>3i+~yCYMmB|=9^yQ(%FkPal)kUK8+V!W48J3vq!cu#<f
z#TXbEkIye+xOtnO`so;x%6jFGk8jjpB8mnuV@90Kp1q{ERus0_$#(`x?1@7uCIxRa
zxvCh^Z-*2x@|uefrO00qqr8#Q64M;sDd&QXbrbY8D_Ba$!AF+b2v+#k#UBU^=vR^o
z5j4}q<r2l^;%b^f{0^bT<&p}Ljrx%52%n!n-7lxwxohZ`+NBaSiS%sq!$D{MYReQ7
zY83sE^hNq1PPjI-*5Iy0@zvOXHh4P8A45@)YGH{Pi_-~ocMiD%jG9t9sQvqs=Z$#H
zjnm=I1uLV141*AmX|I`vq`rQj(F0f7c!8EqLFbRMwxJVHmn*~}_>xCA=f0E@I~z}a
zi&juhbW4pD>g0v)l+U&-hk?WaP@Z$gi0m@A!(2&HeM{`D7wXhgmxx(yV$sbEB;3am
z<98w7$=1m6_C$ui0kck;jm?|czO9(53ow`gV?_>nBp2FX+p|Lc?r!ocZSBAz<%%15
z?t?y4$nveRW@7Htyy1RY!(pb*<*uN>d%S)I=Mh6}8Z~k&(ppap6mOLfCd7YswPlQ`
z7lf!-$+MklJ5xPmJP4F{N|?KM?>Txf%_PI2)5RaS)R5Tw9eT*-<zha$5Tv{{ta4W>
z2qm6*)g`0l(}O2J!>Wl<$}Uo@UGb6pr_3-voU|fB_OsyJsYEagd4uz9R!0*zvB37R
zTIebrxAd2P0Qr7w|H@m41gx#%BBQ7$8&x$XWqVf8<OM6<D|9t%o3$!v6M>2)(_Ezk
zX8U7LIF$$MG24!K@ox9KhuEB${9>Yq894?#+-H1xBhoqJX}SY~`-d;9w}d&K3P4z{
z9gr$i(@g2Y#G|Jf%eKay^^PeCy+dkOUy^cB;viG^YS^AY+`y;Hw|8P~tf`J4BDwU(
zy&cRizcfC0`9DA0oM*Xow;?%_ZAMVy(MfmMe$Z0bkkY(30AO{il*S&bxQpO3S+x%6
ze)fkOeSXocO3hQ5%xlczUP+Y1cS*Sd*?7XNapS`HD9|sLOm!7j)hQdbb8C9hXNpL=
zYsKDJ2ZyK68vLyd$#!vN7(LsIiQV>3661uz*M<o=SLG@Cf8||uSd?409~zNnhHj*W
zb_NEdhE8FC5fBlO27{E2p{2V)Ld2m2L_k5hluiW+329M~?mOz~^Tj#$-haM(pJ)H^
z&ik&}v3_f<y`R1IUTd=o*Alvi&|tl2>%WxRoku~dW9V8zOk$`*X~VR=L%^9;^dR*5
zWzw@T{4cmu8T3^}_F2(3F5Vk(0Dv6-VPsM>GvK)V$@-43-S(%RuEIBnmv|q78*(Og
z?VTwaD=NqN+Rg#N$I@U8a*A#eMs0PfwD=ggAtR&fFhtpKjATts`XW8Dk*538eId15
zaUa~x$>7`p`WaBwEra{{V+3F;yn?i9n8d0)XH6eGV^M?A6Zgdl?;c%7Pa)G9ZrOZ8
zN>1E5krXHxvesWqr0L@R&ZsLE+qba3@p)^-n;eCEqZKgd2^gS7e!s1O5ZkQ0YF$I3
zcCkr5>DeYN4!nq+vN1^8xY@+U2|IQ_7^Z%2q}UFomD5Mh7X6BOc3Ar-$*pdIzGVxf
zaqWr`jou0lFM7CNy92+5>d&~Ts1e+i?&saq2{vo%9}Udco#8q9+R+a6$AppaY0ID5
z^E_f$@CsxgUe`kyjZKC$MO_HI_PTFTHQ*vC57-)OQ+?~yL(ugcP(Fu=kzhMvW==oU
zg_V3{6zt~ZfvyPhrHj3O6|VIRV<R8bn@Dy}kXKHP`Nn>R>)^)#lJ=!<Wr=K<>7jLk
zRH0ERZ1=^J`0;SL9}&gnFKc+;cYEFL$MZ6%+4AG2e=el)A^}^^mE?+B66b({eA`zy
zZ`TuCAruHZ#%$RsPtrDVrMubX&z1@DK}p+DE>n+O`6(bf4s6GxRw>p8MC7yZxs$t$
zuZlS)cJalloz2|rVCR526cS7U45MdbnLt8w^T(0wyd(-I6`ZmbQ}UMSoU*CN^g8oJ
zhLwu`us%_rV6G3e$c;cy+#&~Xux2j|PKX0QYoFQTDI&s?Dra=TMqxf-FXg4gmh}P{
zanrJ3x*bg391$&wt(FUX9ZiJ;ZDT-h=A81O-KkK!-mg1t9;IM*2Pu|`Z1R{Atm#q~
z$RHY%7jiSl=CNFju6tCMTa_;-VXj0taGRrLw68ZT+bEIDQDn+}yi$RlOUhC5=AvQR
zM|^2>iNScY9y@~>F?tUw6#$AI45HA62Xh1>g$$x^?x$QUNO9S*qO;SXQy$H5C^yPR
zizjwgX6JsUDU)hB23D~yD&+Z%2~4R^Gq|DKJU*v?jmUP?t|#4Xi_)$pc_Q#puXU+t
z#Ux8r{8Z)|X_r<x6PVdOka})6MVXg9jvJ^kQ+>9EWfo;7vmnoUS$^OvoQ5!Yzwi~w
zJS>@tfBjVEdw!G+!iW&cI}ratiR2_=S}S|9d$PT)!c#$E70d869vpzMY$u8OC1R4d
z(x*;`Vt3`jJW4_+NsB_WG5KC%54b|_T$bINwkKW&wpe#%3>+>(u7(FM=&bwpbbYsv
z0O!jUZ(JK+Z{&TP7iAYI=uwe14tfKLP^pHp6@NaM409g9TJ*0oL<`_Lh-#bf>?G5Y
z^NSebafC!vH%yH(6@wTi=~Ld|KxD}56VzG;hDqUK&h*z>oeeMK>yl4+)2Otagj2*+
zxp;tB`2+>|6dZ9cX2OOpxF>kVig|%-zKh|s8;%QbNsV2>Rmo;T@rH9bCov69p|>2x
zV?+ESk?WMqqGFWBQA{I`aWo$tRH%{9sO~+2U~y|}@K4^SlwOguAUoq*+x0JIM@8{!
z;gE+%bB*RiMA_=3st4mGwF#ZlvO5>SD-|&7?VAK-S{CU+=|=Z=?lGDbIlmt9G5x-H
z1o^>VY^)koE8GTj(!>`rM8$KQQnQD!D@X<SM#!njo^VgBB3`tWTKYSdo=WHv*4nT|
zrgMY&WUe6iSG2jR3KDqAbb_E7gE4n+dt_ejUMJwn%ycSo;am|}^5qKkFuuz3%Ajqb
z%r~Rk=4ko4($)OCk1^5TV)A#2ARM*2r)ZrEnf~mj#f%T5q*v0sLQK_<w1Bf|hk`0z
zcu$Qza^{#4NAyn%QG~3*PmYsX@ARtL@2T`;#d!vApBaRU*N(f}gL1K6L<F(?ybT&a
z2jYD-ezXqO={H~8XQVo4V<QK3pkRGa6kHQ%__;;zOrq$499yyKv21XXGDXOwgxIQl
ztoenHJ9kHpTi3vY#XXqQzB->Jbek7XmNq^@Y+vR#3#PTtdJiG!UMQECh~hjW(!7T`
zO8M<d)~6^O&}q>F$xN!0-bJ>dHw8qU{qaHi8H%>V+PdaFug?L6k@)f3ZIw0e+ukO*
zk$tYzH{e@vubfaA7%ayZwNn{1lrmfylmpRjK#MqVZ!@P}^_ZDUX)MvbV8c~-#NTd)
zO~(oJp%y;Q*$gDQm9gSb+I9yv1uPa5US%}G9KB5&&Gjl_fo@F<+}!;>^&*r#u9XKU
zcn$cC+6CUEdL*woIzBID3$;LsOAK3V+<0}NVD_d+P!~KSePM9AOodPN1e2l#*?tb7
zY>eYtDQwS#J;|-<6o5R|RxFxq-}B#cC>c9Lqay%Hht)XXz`UmNvnaUonl~-}lHQoE
zVtZHESDmN3)I6-U-{!^}c?|mW)Z!hd!bN3b?i6eVMkqmNwPmV-qf4W<dQnn1n43bO
z$I`s-vNY@;wkcCVWU_7(s|;Ft4R!QrDg=AJt$<KSZ-<3d^I>;ri4pMcJ3nb?uf9?8
zrM05R%GG>($5I&>ESLb^|FqMhR52I>owxI3;&zdCJ_lU5BhXq2CgH2fGdWt8qo9uB
z0FNBlBTvj(jFA3;+@zue;ZMj~1pPbAGUCJOVTl_EIwZ@;_cJr+09;<X8p&0BVJaM*
zCKd2CMf6}OyVbJLbug-~f^qdK`IAs8oSVeayF@nxJ}f9yU*dw)k=Yz54WDiGE-Sz9
z7wzrFVvC2ctWSprf$KOZdad-f8IPc64;o(6i8pp#A$W{&D(TtIQNZ(X@yX?e9-6jI
zy=88fYm~WeJs{~1e$B<s_}pvqv4-Gbe3+>k6qDbfn)(u*gR#$GJOC^A&NQl;GB34L
z=yaB*{L+MgPD1#b*CNv^3QY4G9QwOBtjm7(fw_~oNCica2OpD(JfDfm_(_W+(Amir
z?y>f1SEug2f$&xaxOHyH^hq%d#Xe!ys-G(&55fy!f@IOa8q*8SH3C0L;BKSs5dKwP
zcJ6XkJ?8xgc&JjbYV;*<d@C`GNj@H}B|i%2se%%=eZ@zaapJfE1Me-p^IapGe-o9T
zS5I9Z{@GOFFqtkF$Yqui0K_>5xNPNs4hAAlY&!fP^G$SHrcnpwojwK&GJJpjP`HLi
zk*3A@?+O2D4gb*}o^+^w!OH$P93FqGY6nr%`OILJZxeJtbb{xH-GpU|DsM)PnRnB%
zh?u6A_r6=Yy)Al};ST1bu3!K5bkgT%-2{Qts@=#`4#unaGm9^5!D%XA!IVi(enbD8
zs!saM=jghKteN2am5Fly3a9^ME|W#<Q747~7Yi@tHoXO=>fl*Kf8*OPe4uZ}k0QoD
zwJodYN~@St37wU494Ld@$DM^XQT-sYD*`}AtSaVLN^6t<DA}z($oo&RhB%840-MdQ
zq^$o^?RR`AqqS3h)6~zH{hsJIoq>*Xpqe!oU;TZ4=i+d<%s*)ljLfn_8~l)zAM)|7
zt>Mj2w$_URuW&;5{*6NZ(lBuM(oJF42-}1f>+7wscmGg(e<A)S`i{f54p!Bpq5aCg
zI;ICelrX31;P&-=AN;Hx>kGKLNn&?`Zv>?>Nv)S?E@?>0#{W<T4`U-_*#<c?)9geK
z)PEg5Msvvc+!E@n<cUYiz?t(#27oEfUli)Mbhes;W^#5mts&|x(5009nmH9BcFY;~
ze~8yucw|a2{R3=LqnRd=E%g(!i0g_x=0iQ+h_Rt>s{4yBGljgej%+CuHTT^)Wf*ld
z{LwNr4TZU4nE?arYkMJyu>ib3gd>_ht2R@11G;USmWo||P<@yIq`u?8kElnW!v2Cm
z{S^|L_Ji_nAKmc<fdH%OhtKI|zu6C{vKe9Xy+}KG*<f;f{6E1~eNYmzsdf{LS*crI
zb!`1ba<`!EA%II?OKjub#M>I+Qw6k%TKG7YwKldBEsq&!lDb^qN|?4iz6g+SBKW~8
zJGLHf?`p!UDU?s??EZ(S{!!(AJDKns-Yu#SY5hs6yM1(S3d?cYfKNF6+{)7pZ<wZ+
zGzw5Yz@NP-T;A-1Fs1tE6H@E}Sp@E|_-6tEydUPFgzfEsM~`7{Blq9p`@ib#Uz!tt
zh46o+s)<(yf34`g)XHLbR$k@t|EE0q%sk3v+4`)`;A;*rm}siXG^4!FV5wyL+F|j@
zn4f)<s8%j9Z4vX>q0vd1pMDdcX>uV4{B=wBx2N*%cZ;{bKL3I{orVd-DbuoHYQ6P`
zq8Q%JSUlls9S+mu>^@oab8eC_%_{FVSmxVKKK%Y7sE(8v$uu+CY{6N<ak;T?{{K?R
zXjRGXBAR+n47;KSzvEab{^_St|HOu+mCzbiGA{KN>{egu4TGh9lAk%GhXs*qpPm|I
zC6_z+v-s+;Os!s5<Vw{YyHha1DBZtSC5=Jnxp>@D`1k-e_)Z(x1YbzLa{D>fl%4!J
zprJ@cwOs=(${HGKj74S?m#`Rl@AK`i)xU!J1Ij<Y0QP0g83y3$U%x!e_i5&D6&|v@
z_t9COE(Mp061C*=QrFPx%RWE&9rjHUN`Y2Tc+1`X<UI$_UnoF7TpRIqU>mSpyh{BT
z7V&q>QCP%rSVS^yGs}xxhT|xYoe1U#H&~1BaAweq(DaikfJr^pP?7yBikFXHP{_qw
zbF3IlN&T7qf8))dlx}4%7VTV_T48Wp*WRyc^PSi1<IPymP8V)cQcQvp!iO!XXQFpC
z$SIvJFDs^JsLcP4y3W)EOSOH6$bP<uquC0vpME8FB0p3{z5GgZcO(7J+W9*mpIxhd
z*2uF0010!bV}@>h#KbG`f<mk@v-qu)hVbtcJw7}V8w`_o1b@}6%yc-us!U3H?T2_Y
ztm83PIJTFrh+T-X(0E=HE@)h{`|T6<q^p?)^IqvWpcrAsRR7HuRP)YVxENe+k2U2h
z@CQrquYQ_unZmaWt){rXzIO-T9`C~IPr^9Ze2~`ITx?s04EUP(n==Ef<rV+HFrybf
zIio`cL2qhEL`Xv^C2MWJ_v2gt%*@j}?HKUcd956@w4TS{_|yyUp>OqND*)_0M}&#H
zz0qlGncO8_87{SaKkGu-DqkC^@wmhwt}p3d5y<}r4G_SizeQK`(?55~KvKu;7i@=v
za1_}Bg13LRs@2|G<gxVzgHi^g|5N~xrV7<UA0*<G3Lnd2%<AKX_ej_057HP&{zGl(
z!ttp|`I)>^{(zNhy5yaEtvi>sH<6I5vwUCHFmAJJ)rnM!n3yLGW_KnlG&r>iDqcjU
z<@Dd-+;LOFvB2!GwD~?v{`@XEbW=0?_#E)6Sc58Hf#^M}uM-eY{IWbHbjNh{#eONM
z%wkfLYRP*6iXuM^-Nmwsh#sS;3mn(&V3b$RQmr*HB>-uqBPKjDFgJ%UzCtdD@z9|X
z9aRo2h}6nN3yu(7;I6kdSv;9+U3l36r#~`Ve>Ij@QytECLPv>dEuUV1K8S;ayL_nK
z>__piH9v02niZEAe9K@S1EjTXCMYpEUg-1ws13XVm8H@$ANw+Rf~XlR+jUU2(l0^A
ztxKf4WDv*f4Mb*Ju?+i8(>Rj0=~TWHeORP?sB5-$apWB)NmCp;-XnmZ$pJx5j!969
zM{TtYok#4j^!9V!=C>X8FbWdAHFD*WX6uWV%pQ8&TW~rCOC6g!`H(MXluN@<^;e>8
z=|NpHZfZG@XlG;6=jIx10m&w34Py-GEI@t09xwgtNa*q5S~pn05LwupqmJsoKDu+!
zg<~<=2oodV_>}np*rwwmm(w(Cbv4_*p(#t3Ii7Ybn&=bCU6Onyt_~#5CDoDUL5SI*
zT97F>I0vxN6a-aVod-f_Xw}ug`l;5YEmYq7hSCkDrjORz(%41`K0FINX>g<~Y$nry
zb@UeM_O0U_^jSt4U1aQ12b;2BqEhaRZyMp=7#jDlgR!@|i0>Crc5Md6E$9sAQBV)(
zS|QN%fw{RLD!Cx}m#cOs_gWL>)JV;~`Ujc_)(6!g;Hzh}V4~<s{;@_pc6Q<27DjU7
zDbg)@Qo=_F&$AETZ-^Y4p}|Cfd1ntYA_<e+bI2SP3)iL=!zD)#^_@wBOeVTIxJj{m
z27QjPLx($jxfc6{o+Am31=3|lG&+yctv249?R}{MQZSpxmq=e?FCe(zcUJCV=$gD_
z;mEn?y4%k=D^dMKSKYcc**q4&**RJRsKHKACG`0;BNNGqs#EjfVedLHqb=FL`;tmQ
zbQ0X*8Lqzu|D4RxCM1$?8bvhijwUlkf+$qT@kdZc3I^0-0w2l;KHt4;VJS4zbp?z<
zT?WHyWWNEFY;7_K?cIfN58le6890o~jlXm^nszW#J^YF^+A@Qe8-@Kv#fu9Uy9MLH
zi^62CJP97AO%R<?GUNqNyb<^!$?8mqxuAl&%8NG4y0`C(!D;oi*I*I5LRxlyp|4Zm
zQ{2%dqXCM%2*dsKZ8n%F%^9gR>u27&f?D1+#$o~46WGM6{ySsKf^Mbdp5sfI6s4t1
z=0UI<#WY?+i)YHCxi=ke1C>~DG!tD;mz?L^J<tK?09y0BU74<AZG&=Xz>D%$6fVo;
zPkWWa)gxwhK@%HBHW=@g?zlb(6e5>5T(}MCI&Quw$YJ+I3VjwBLr}1ozK!z6li#G)
zHh5WT*=e6fZ19lj(Yp{KujY1-x4eBzy8=3*!eOty?luy-6P!Le5fNX24~ru>h-Up&
z?ckd=9wbahP#*U2YJW5xE2j<MF?m|p9{ZOwf)6V@6~kya9S7I8v^o%Xw28y&6Yknb
zs^^v?qJ7<AEoF@&1>zkNc80`XVd98}nFHmu3?1BxaA+_&hktMwibf)p>Rm^sp034=
zsVTkLr4w<)i3HJFGD&~qZ<crgqdpl>ncOu2OlGVXB{}xwkqg$qQG2Ok=EtK><ZzN}
z=oOO<X<Jro9PCHm_mssvBv`YE-6O7j3d|~zUAjzyWoO>q>P{4zOt#gIyedy*Mb~?A
z$;lc)(rzSjR*WMSXkF2}w&xa+BH<tP;SzVnE|IPdLyT5-jxkR%q$#LYH&C|r`vJ^z
zKmkmH0-gMTL5o=l<8!+wxz$GI`ZZtaltPp-PRdr6Q)*>$jP7n_UcU;`O!E2b1jAR#
zI7CSZS7xSuS#8q|SU5hU^pTKeg2G#BNu^sD?E{mjYzO8C0)SlP>9bHDQJ%^Q5C1$h
zDxRKs!BM=XO^lyXrI1QuIGD3|HHM12L4X@2*+Ds`Qf#;gHS9DsI4emXzbs0{zK}ga
z2@{~F>OcX*eqwF>tbFZ5_*)=KdBHwGU%O~aih3?}pd7O~FMwx5@=m52Et`~M<}oVM
zqh;nKb+o;J;HG?BITLgacpx)yH3wH-PZis<=rd_DOg2jn1TZ&Wl4lM(>?8`b>%EmC
z?kT@4yPlNb;<V^R*n+YI%AG;!L`y(Sbbebs?;vrFI}0<$YbwXSCe_p4O-BgNCjt3a
zArkvaR*-W*Kz^P(#iBfSVTU42mVZ=F3T;WduxiTzmF9Yq8CvV#hp--ZFZAr-*hvJl
z$|;4ijJR6p&0V1KF$wkGRL4)IMLCj~in^6VA~8<nrq}Vp3aCDJ5LacidD?S2|5@L&
zSYzdD*nv*;Z9?nsQH!!C?qh4`fRCk$7qe%5`)Yd|W=cV98!9=b?^cfPE?G6mji22j
zthawA5o0~+!jY(U-HNL7*-j$ig+gzERL0rOfF2A_j-`1tOu&*eFHQQ`do4~nCFBAk
zK6>kp7x-~I`452bj2fsO(u$HU^1b0d!JNTRO(xyVF+zf6yNF%#DK6YJnQl-_y^mE^
z>a8m%$I!i=QB64a(^PrN0|pw&kFXnXO+JnJ^tIISlV`qoQL<pjN~6HbA?f*$E4)e|
zlt}x$!77wZ?~3onS#ngIA;flsUp#qc8$qVo%8}MC1xl8$pq`SZMBJ>HMrZ*1Mjhia
zhXUaEM^=WRfNsfcbC<KkmWL@M06=R8;2h8rn2U~6QWZv6UD5e)eO|)e;f%(Joj~Z_
z25p=(6OI!CEc;#fo`QMUA04$Iv@wZ~cD<Soc{HoCV{Pt~OXlc&4xid>Y*HCk=*_`l
z-aeTZ=JDkW!woLwFtO8JkCJZCgwQ_1<{jM4Bf`bOWY(IO8Bp)28bBphyLmynt1h$q
zr?-O!vV`ga#ClFe#1YCWQPau2XHN1pLNBCKa}M>522<@)wrt)aCol<7pGXncce;Tn
z?4$gDR>mj5I3+^WEMBU}T#;e((3LcAUK0LWh->*-3HKl{sgWK<Es>VC9Q&w;P0L9a
zU$V&pQww%lt@1pZIIkM{syj_rblo?9isv>1wKEG!K-y8GA5b+5+Xm#}T1MT-aaa~I
zPE|ZzI0sOJ*;;paoLD@&gT&2U-n1Wkg_^(Z8uGr-!AIYpLRzP*7y3d%mfuz=B=$t8
N2@{;P*Z+LtzX006oB;p;

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured_.jpg b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_featured_.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a19876f3633036993776ca6c089ee69ee83a66ab
GIT binary patch
literal 620105
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
VA!3`>zexjrP2c=CZ==>e{(qujMtA@K

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_models.jpg b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/doc/doc-misc/xmm_models.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bb85084419921aed938091e28c649c1dfaf987fe
GIT binary patch
literal 164164
zcmd3N1yonh^XR1!l#-NgP&%bSN?Jf^=?_SEgQBQ(x3nUmAks(*NVjw&A>ECj?|wcX
zP`>edzjxkw=e++Oy?5{I%<Sy$%+BoWhhHPVW&j*{895mM0W2&CECBH98;~IFZea!h
zN=m>@007VdWP}?43Rpt`|BE7!{;ta)Faby~I3fV}TL8%CILhD~S_Qd5Y0lp$5deS&
zLXbJQI62ZU>YN-L=?HKxzkUHgI^qQvWFQ^sqK<?Q(t(m8&OLH=wije)w{>DOGPN^?
zu$kD|u)7=Cvvaa>umi$k?)F9|RuE?@V~Dwhtq9|0RUIRhg{cUmCa)5QlD#D4k;Pq4
zM~J$o@_iFeD-!`zMln$gVRu1y8+#jwvk{fMjkT?lpt}eojJY6Khl1G|K_o|0GeI>e
znR68ION8-U7B@FHHaBiIJ4bVNP5}V{b`CCfE-qFOgVo8y*4fCN)z*m?<bXj1;~@oc
zGI6x9ceb#zJ?8}hC;K<EzYGl80vj1fPDLdQ{S?$vgE-k)yFlqhxj8t5+5Z9kjjH{x
zsF$I?QU72*u(fa&wYPIIfjFJ>{#)B`8fj1*4Tz%?RFd;Il_`Ufy`7T~R3<7eHqLVn
zmoa~n%UByZJ-TP%e!=46o9coWxTNRw7flzazj;X7S=%|PgKG{ERR-tN#K_vh*s(G9
zoa|ETZwjzOh_#lKg$=|OCODS>C*L{x-<$qQqkV~ni--3z&7~%Ak=db|a%q*pm50MX
z?E&?O{kOJ(AHVe#Vhbv%BUBrI%_54+NlF^rQ&W+VQ<Mhn5&#f6B&6<0BjNynjjgkz
zn(Q4aEo~htv|i9OF@fs<Hy~tW;$$yz@17#mOl<9JA<*|<%fS%Le1U#eD6hY^{nsxH
z6MIKz5bG5D&t(c~Flf{qVBN~i*&c)=B!hK)V=GwwBed>#UriE(e*x=Q=J5Iev~CQq
z&qM2u;2=PpJt)38td58dtsBGZWYD@Z#2wl%AZcgs;b>w0$eD_ZgM))g0&4qI>K;zc
z5E~~dIa?DuM|(R*BWH*yhzpkwN(JD;5ur221ls0pW*GGU;RCu3aCW<@u=zzG?EC}!
z(~*gbqwDz>0wOm6{I~BvJd%k4K;<pCYo7jr@q~gKCAhg_$NqsaZ~_1hI{?%s{~8A*
z0Yq3qLPSJDMnXbDMnMJ(3K|NuprNC|3i^4$fE7$=x%Rt2nIM2XKw?zz-?b}fSAMts
zA6I@g0J!K#_{abf0xp1vi-3fS@aqde4o(!v7^>J81r-e$1pyHq=?d6P209|(ugwUE
zC`ibtXz0JjfU8JgBMuU13J8Z=z)`IG1q;}lT>10)x2@c=W*Ug~FU36WHh?tyVCKBZ
zxXD3V>IJPrnrRX##YgYA!$Ura71OZ^Y6}AtACAtEuC<BW+?_rD;E7DnbJS1nz{;77
z8g=Mr&=$GV)`u3JlIXa3Q%D1<x6s1fK?Wdf-`s+K0X!p++=aP5lVnm-5A&A$MyUnD
zu4)UUuU6SjLuFi&Towd$FDU=g*)9B4u81$B(N`!bo`@<6nZ&T^sxW616*jWVOn6V#
zhRaiu<=ZOK5JS?U+I``Dp?aA30;2SW=RKn}i1L}V=LB+dV8@tff6~WNvi4pZXCf6p
zZ|A4m%EJyg|LFA-)#`f1l(--eua1|*yXuGA9*4{A{fc)q>zmsQ90^Id@F~S@G}OHy
zO8axNzrMWN9I!<{{}p!r)xy9?ujPz}5@pqOJ~M~_lCP8aCFJ0!XDsp{0NKGD8h!xZ
z0HE3zT7eY=Vmg1vJVB&qZM@&lR|heCyHeh--4Z}t*dI^I9^Me2Cqs(%ld%&&r@?i+
zCmnbfx*x@OPViadgJ88<NhO7&Gj@P1Zt?y2WNnXI`@U#)Cs{I?Mw}ddI-F4E3iZT$
zEZ><TC68J-1lT=%-m9iBBv-z1!1y!RM*p}*rXaW8)9c~7)p~hS(~(A*Xqjaoe&y2C
zjuA(4e6sI39nE}tFkS=zAO*bE=&fjjZicE9jIvVhDOmmGJtikUO+MfE1@*&qmJUdB
zR4VtltP4X%y9HK?Th>D(Wj=QGkdl%*Gr^hRKD+C7voZZPOSHb-Ie%t5`ka8h+pkZ;
zLV7%k@`cOdRr^<`Qir`fy=)d;j?&a;(<Ccbl|qvXE>;X#F9z3G4P<C#9L|=+51nb|
z9_Due&bMFdJbvEeR`|iYJ4v>8^`U5^%aV%Q5<o3JoP^BI0~Z0=Fp9kW;}RAo-Eh(j
z9E4%sZfPQ-NPVK@-RM$yNrat)ADtKjGMiVok8gj}_U7n#V4CleyX2j<a}Q1lT&y@2
zZBK{Igy{+hX5PH@F35Sy--5TFe5m=;u8s{wUB0u|wc#gjOT4_fa`y{Qv%5w6nYz_{
z=xlthIK+1P!kGP6!JZzkYqXShLF}rgpBPmnc624EZLS?F<nVuwtCITA3GTG8g8qq#
z=1V33@J8y<&Av~xsp7s5!qulVAK)*4!}@BKC6pgRD*1l&;M3xG>eS-M#@pFW3pYY1
zwuFe$*YP!S*O|p(eEv<Iv@R>!No(V=u&^JHiQZLD$CNrxxv}oSy(B6a4g4Y9CP7F~
z1?sFSq!c2}+GI8=4ge^+i@bfcA8>6{WZkCMEqKr5WX5ai))uWjm7;uq6aR~X00ebu
z!`c*n#=nuk%7qS)N#EDDP*=<*F<~^wfg*fxzOhQ=Q~2E%`T;NK^>jk9M!jT&as~XK
z&tVvc(!C$cYt9WB4!ltGZ_J-!hFNZQI##ajSe}?B_=3%vp5#9MwIhz_<j@yfR0^KK
zS8?sD7h3{=NSeFcSvL9k5+ZQHc=l$Lo#_qj$LdWxC&?vH6zW&0$sIQ13*vv!;nJc9
z<R_VY#k?%AWWmSs@jrNA4aWC5I|nd>PhvZY6lW5%TV0zC`e*>4y21ARhsX3kry(~$
zAkzHx@Ne@22+Wg)bST0hQ@xjXBM{LeYegv>TP*%O+)dm;X!x0aLix;MLiY#t&IZfw
zvy<db(1#~idV7gz8pWeHd@nih&m28-O#j0Ju08`_Xo{nIga3@ffkNdtJa%8@>zRx!
zgZLkG0Fg}|y^t=x!L#oD0aKX&M{3Wscd6mK-@k4H!U>*We@GJkwq>iEOt#qtq1%T=
zws_trl$2=O!6r*$;)w^I>dFuGH$}5y`!1Yq2%h984O|anH}XM)or@K64%+m0GTvRT
z0_;6>a~oGaOmkck0)XwebhU(oXPSk<0*?<dXfxIX)3UsN0e-{Dq*aV*vZWn<rKxul
zPZTJu8>0)`H6}>M`U~o2LbeZQE8LFJ9@{1B9-pvD)b_kJbXv}%u;F{G_j{O#9CBC-
zT2c!k6R!U07i)l6J~OH2qw>K0;55a*CmYGHS?6b6aT&SqWw~HWE$7Yp{-nU<8+U6(
zZwj`_z!~+lw_wrgW*(M}%n#9Q=J~+1H-&4aiWT}8UhkLRB)A=+p)v@6{3#MA+*8ij
zUV!yPz1>$dkA=dAHG6dThhD`+4{*;!%Zbu1|F*X4++$qtCa1KyF}K<2;gagNaWsQ+
zD}8uU_v|lXU7oJ3#Cbht(fB;doX7q%x(Z)_9itT|4qScFUqI@K=m3D$4hiYd&Dk!x
zR`=l^fL+=!xaKh~S)9IcAq9NBwDQ(c*wZiEmL=z!N3g*r+Ss?1Q2(BvLs%HP5(Smz
zKQ3rsZ`kB$dnfjupqb2ethLN`th5YF{sK@wRvTh7P-Jr>sO{Gfa1QJX30D9}K56nl
zH;z{PCErEciahYDuL}D%1po}*WAEq6=Y=k;0Oml^lVw)4;^ohE2eEKwN?k<d9@^`w
zshbbldcQG=rWG^{9Q8<hvfaBZ(1pDN2=k2t-;L0|jolMrhv;l=nom@QW<7L>ch5_0
ze%ZhFNc8ZAZqMq6l%Fj@{YInDw{48cbeVc68gDoPBG^;gc#oAM&iTT{u`cWg`BJHQ
zZoD(QiwYx+M`eb3DFvL5TzPboJx&`74pa6YlMaa{y}K;Y#dZn6Z0X3P=X<yRr<UY2
zl9-kxO|kF&>qRT=0)k>z0r=%<!w-edf_%x9ltn@{$itua*re(Dq(NN>w7{+U<(x6e
zT&V~xTlF*)h~O_ET>9Z~k_18Yd%u2753|0#Ez{5Jyw!JGQ)PQ+Qj%pNOl-pjX^m~B
z7G++_6oybDc!By)IraJ{n#Y@ph2Qm2k|{QhReFm*c0#9aL49zqG|k{KO8MBXMw*E@
zDxcP)Dm{`@y;$>vm4~{Zlt}NSt0ooM^ytnghFXGS&Y8l6^j9FQSbN`xcfNWA!>HdQ
zRy;qVj<c0#yHemqu6Vv$^>d@>KW2Y)lA<UE>3x4#8NpSt`>A?r)1ndF-!2MFM(ZuK
zp`T9u%#S?QH>a<@3zth@@miculj>=VfQs6ZwEuJWVYngYT-Dt7iORyjRQ&j?-fufI
zG(Q<moIcf!IP3toZ$A9_igkJg`vc$XZc@#r?#J^UV4kEQHV{QFYWX4D`jEQMC?VJ9
zMuFQR+|ygBUdvvr`XULnNgbZS!z=I8R2OPJ#8G?v;^ud~swV_4Bn4pch@AD7!C<Y=
zFpISk;o@f41KG@8doS~asU4EyrOwjH^>{RPLJzhYlD0>W<BO1LpvK)9ha@q+s-fF;
z7e6~>%v1fV%SIh<&5yZ=8x%eIiF=hC$k`d=WqYI->IgSg0TVY83+HnsKwqSE>Y4<@
zY9xzzUCnS)=~4=1kG%q+nvG>~z<g^*WnYLanLF%IuyVszAho!Lb?NXzY-qedSLPu(
zacsM~-9uSMqFGfV#`S|}kz$CX2o(8jG92w@5B-C)j#$S2{TZ#vQ1alOOr!;f#8OEe
z%QpTmAZXM;v>+F<bWogP_hivw*m1k@Kt!<ECwsQ4Bf2FfJ7eOL@W$GCf3(OE8xNlI
zX)QDxKfDF^Ok@<^%U;A!2*Fh+qoWO9j0*SZ|0qy015#k}%a$drdVPiy!yV)30=Cma
zRY8le=!p4N4|W;JN$?j>>r-yPgJb_{N0;X>z$aXQ|9GzkG-3}T0GZpQ@BQJc)SH;|
zx94le$;;9B`U|?=FV4>Pq%>oeE_v_xm6UHr?rDg=0dtqI0#^xAmOG%C(NykwgFvje
zvV(grng+e;02;yW_toVy?6{Dn)1lR&!?ju)3Rjq$xia<MNMvBmXvCa}&lkoCX8MY$
z9{aDbI(9lJKL~g`wycI}ZpKbQ<`R(F{Bv7}3EO#Fri!X=2zN9CWVln)8g=7VxjtA`
zcAM@HAFRdctG?^xSvs|kSwdL-vq!ZmebOKV4v_N`6x^ptz75rLHGfS6+nO+X-w+W(
zLnY^)0L=siY@w;1H#ksX6f{g?whrniC~2XAGBk)Ic-ru2*a>%zV{mAP`;CL?O7G3D
zFf%5ojw7@OM57MCuh-#fsbJo~TLo$`u+@8U3y+lU?N|83Kv@9=3h3Yy@!Acf(li3O
zhM5Jvib<uU#JJQs7j`OW3!6L!q0)lPLRa2MBOR|n^xZ^l)_Y(B7~3^H1D^<Jp(H!S
znXUr)T&>0;rg2(B3e8Z%f@{l7t^A~zJ)Mgv0#p+URFN5IvI<Fw+>)Q6&E>$XW51w`
zRYvVjWo82GxC0A=>Fy|^#L!vReqF}vEdkNN;?8tPQUtzHW4_b!mV{~-6+{*V>_-JU
zXLkEu?6Ca`_ec4Pe#ZZf(|DWFsig);zJCTWZtw;^tKmwswi{__w{oc1-wmvZLj+0B
zqvCsV@u7nYLZf4lPYN00AQ-sj;EQg-g=$d@8>YA65P71E_B&C>nc=(f3oL;k4t&cj
zFtIXQDuXW~l#Y7d6u2V622wq2cF3aRd-OJrSU{1*wzFTG;bAWn1J_X%r|7<4j!=ry
z%?+zSZq|7yR4U*jfOp3fob_t%Ib}PR-e}r;HMD#s+jRL$U^9G5DX1QZ75(@#Lh5-l
zMBf;^87PDEg6pV4f%;yii;!EU`-#KxLa0xe8p@zlRE=dCEDtCZP=t>_cR7rN`AO`A
zONVq6w86b8kwKr^o|q=Pt4TF;$m#JH{GspQr~uzlkr-UdJGn@&pa2Z9{3UPgoRgf|
zGEt1(%_F0KcJQ}@b-Burd$7uW{c>n_=VqwCAKo)PD5LWN3v7R<@9s^iD1Bq)AMt;~
zXCSc0(6RXXuA=V+DgeMXR&s=T(^oK?2OAI;ZPW6$3DZ{n`bkw1r%AC<>5+d2ZeaT#
z*AC^9QJI?5pkr5vEn{8lw4@Z@BNdSdg~Q9gWFU~bC&jd9S;dA?j+cI_SbB=R3RY1q
z{CJWQaX|#W&kuBP2nKk<six2Rfm2<B-H~6XvQuwv$;W4)Q1*uael+^aF<*GSe?OI`
z|IA)n|HrJC-D_`a&nKU~Fw-Rd`&ckZC%m0p_6h>A<=n+|Jv}Bz{`B;3d5&rILHBai
zeIpaEf{^vcemnS{1`VF8(bAU${M)R(KB*1=q7$Bvi8gu~?Xag38ZHGU9^8)4TK{)F
z(W*X|UzNB~8Q;Q)Ht;p+1g83M0+^eK@r8e&4_L{$$SSGw2(~cxex-XhoeqbCPq^7#
zPDUUmLKc@2^!RWy+SfRXyuzZ%DtgclDcm#}_^<w<`+cN@azaou@g7y{5E>2Unvg3i
zc*!c`q!Omdr}fZ@3fc@SFq88ax7TKXhim{qjMl*8QX`m%n_0Zb<`J%oJf3rb3|^d_
z=MZ2J6WNB+tS|Gep(4p_rrz(@l3=z6Yl3e6^EfkP*YU_~#Q%{0sUhSrE_mDid(&GM
zq>o?*4Max3j}vp4RM01S8(UrZx`%^htOXUNTDIX+NdJPFs6fl^T)0W{B)=5Z$54+@
zUFUaZ8pSs<%m+UOtuo(ko>SQAA%V>emNJx=Y{K?!(IGpBk1UzVV;!kJs|Mtq*O}Ut
zZ0;IoXpf?_>u8N27;1kNWe_o)i<O8ey8fsRy;Ib@z2VKQqmA|8hdq!98B{8;c-Xhc
zv9lZsGZK-@kZiM<u()cpsd2x2xYHtIIjVhh>!&rtgsbjLmjZq=JF<nNH=}be!rV-o
zv${Epeu!2q8bDrlkY$q?spd6IB~&WrP3a5NlE66wz`)$2FvXk4F;gnJCLIj&uOUJm
z7>)~e#$gJ>EG`cinw!kjPCrI!8yK}sv)wM!K4?%;YKlna?%&zobSP&dQJqLQrS)L5
ziG3p=-3Ym1;l}xO6jf^w5>KS)^ys1w05LH>CUoeffxMneRC8W*2XV1Edqekk>e@I~
zwP3#6MMNsvW-;S(qegTMUH7ZTg*w6w++W}sbH+rNcqL6_wZlCm0Faxs?=ys+tnM^#
zHxD6?wcf94R4{8dc$>&@wWbY{uqfxyWdmvHE~K5YUF*NDZL+^DDyOV)v#8^tpy3B8
zyLY$nF!>xlK^-7M078AtBj4W=Uap9~T<c4@4ES9~XsbnmC0{K<mwp2;S7_-z`{UVP
zhWxI}1RDK47y7#mR=K=|BKSA?_YealdWmPn>6g&{xiMdAgjO$`4Ej!ZXLY_$`tX@k
z$9h{FBlZmu&b>6%lD#C>`k<s-7ecFHYw!N+q|*XC@tOiI#nC8j;p_}94N9J)Za7e8
z|FVHX!GFr-4F-Wi^SB`1&%%@ITDYxM&FKBd{1V%Zq?=1Wvl+jx(Gn!G+*@G1|A9fZ
zBldmEXrH5F>+K&R_W{(EEuF+w7|VazMgMdKt^J-MELzY<;x29yWPUM+=MrDY&N)+(
zaqb;{6%k2W=6i(6Y35)t7Cbi=T0Ht<1^^hfof#5cVC??h4U+WNnc*!5U)0s|uHv;F
zUl`KG<9BA2E{m|c*g5@Qd#w=-U$HDunU4Dw>)at5&!$3TWfjG5KipYtIx@a=>h(|@
zjc%GPWSA|D3d;8%nLv-EMSaV6yEh8z7_=u&E2j#u<wUSIYbff5ZOT@6lm;p-j~T2h
zTy3#mlvQ5{cAj^O07Jh(ru{;exEuiCd%^Y0Hu!|pJSXj0r5jgX_g@m)-ISgV`ZgV`
zJl%Ryz`Uzp%pQ4AarPN?Xj_ZK>X1JG#_}I)z3bL<y6&)8`h#MaWwUqPvX1(7{mkqh
zf6bnkm_gZ>L^C?&Dnc4b`r!puJ*@-q$Z}DBuaaRCjV_@aK7h*Ok=?zTC*5mRSvgTO
zY7+JfFdCb1`=P@cwu{nwn=_k%Lb#$h`dwICO;7ez*P9@VczK0*18`_yfd}@NE<Erx
z!}?cln+houBy1e;8btINZaH{TPJ6PZeHdSVdz5u0#%xHiIZioY*;JwHLMGt1rjkkD
z)FPB00Dv3?cY5aR<w@Pg8@F!8U;Dr<dX>e)<!JYG6hP|>4eZE`TNs?wrx1s;_`Byq
zkUm-$O$&r6UrngyJdc(znf{Bz)TmDfLb@0<6_tyO#E`9a&B2NmR!CITN!Xvw@WMnn
zj6ccQXcUbT+TOoPQ^6{JU%C=o*dyN{<BaXAh`=ffpL=n%w!g`ID*zOE@bZZ<oCogz
zbk|IE<k|h()MHA{EpCM`mP(7je7H~9+89NWc_i5g8s6?*jNcRSdxt<_CM1Z>;u~nc
zi;rQy+qdBh_K#tp-e1W#*{L1N*;L(YGPY9T6iuGi7uLS@l(QqlX4k@`ChQuv7}^!~
z71x6a?{pZ~f2<G=E4vCNVbYtS;q5Me`ia9Tq3&k2_3TGjG{r1lqU|su?=|pryypH%
zG|CtHeQst*0q=vc+Pk%RqaPsQyjBr^_L{X<?IblNv1GKrTDQjZ`>?W)_xF`_y8@MU
zhh*~)MaO%+qKC2%+nQ1BC|qspjA6Xtk^SW`1CiSELvp{>#66^EpPIioHrtD9fVn$_
zK_MpM#BYIZ{{5tdv-9xu_r>a<D6t*PA;t|AUxT1cG%@-0Qso3YQ`qjDiPfbaXmQ7@
z3W+g@W2vdc%k(Y`D0=Y54mD;3r&3{k9XsiYzX_A$pK&hAgYPb`1#icguA=)gPGvb9
z*Vw%em-JH)7aeB95=Zqb9qyj(F=_0`S^U=4$g&1K_<`lZpwQn3LLx~_`P|oSo%+5r
zOHn*Uk<!fyrg$Q@EcB2sX;N>I2~gx7o~*9*vWmavGQDIa;QrH%qGL=or6nct!$=N{
z+dq~IK$l5-%Rhd2A6NT^RLQM2%;ndX2yYsTt9tTVfdFek?Fqd!Z?18d<JusQ0Y?zi
z9`3-}AEDl2VzibNk-g<+ZBPnP3lKrX2q<f(_3QoYLMC#M^bsJ{tzTAdiR!3m`a%AP
zqA|n2t!cO2)F`#XFInERCNW$S77!!8Vl>T}35f!8<u{m?wU@2V^Em+U($dpOq`*P^
znyCjv4Vm(1)L^XcL(z{&-{Lq~{Z)vfuXMk!+lQVmB(HLb>X^qWS*!$f6`Q5Q(m4x^
zgL|j)!0d<Ao`le>**B4i5aIGGH#z00_Rw$AG`6I5>ruQDTlD_f(|d9cI4Rr{GwG1$
zTCwuDy^>#+jTs$sb&5@IicNpp%&JVl{X5tTDhVpbwb5!ZK9#TN{-clB9rJ?DtQ1(h
zM6O>*jMhQ2$d0gBL%oMBIo6977A_Ho1AK0YV{Dm@b#&$<ad5n5z>n`%HCVqem%8FA
z<_+d3(2&v7aFB?1wU>zlqTe&Fz?NK&{kx3+Mv8XRQ5oPO_CSPkvFq(D;L%$lry8V+
zmM(EGjg5R=a$tPrv@X1JKXp@xjk4ymtHO9%R}a@vv)4n*Y4g0J1z?kHIDcfVXd~NF
zduSc10#wMS$2fjH$lvL|u<Y5S4CUR*HP^hc?!#ntet%?tPoGlq@eiLv9<&I|i6Y=O
z?Ws=%Bi1-19@})<yg$Zq&kJ{BT8DpfWzF5glw7&F-!B0S<)t<51_)@U#ss89Eyaz&
zlYsPFWd$oWLB;Qvsxmc$!OMdCdr#8%;sX#C?|h?|f$H#W;o-*0r~7BJGFtiy_1{mX
zJq{~uomSjT+;=@je|omMxn&zzmrelJvJKMK!@O#-EDjZFz&#PXWW#FtvU}_$7th|v
zT*(kT@g6;-w6uAU&E?`sbtsjr*{lCnt8myu>12f6IQEvQFo#3?Y`%WBisOaw@xuO8
zqrnhs&l|NZSS|kXV*XJI{oo7*r?dxD1}uNy?cX-Qt77b!fSo+)qK<Sm_w`#E%p>D?
z80tp$#l+p7kYsp1uANys{*=x3(ZipjDcs-uiGb)W9YW*!+Xto7gwuYMqRHk}-!_!%
z-nUjevMGmdc76Zuu}59go#ItA44}67B{5<tEusl;zMa@e2c7xMooj)5M2YjyR(Msz
z^!OgdL9eRiSVbU_klhOn1JX-;Fc00PXRCu$zH0=t9fp779x~~nnA=!!SldbhuNS_q
zxtx4hRFf#!^!cH4`a!>}BkVwqQK3AtCBZk&D3?0~X~ihjR3zPA_O+y*FFc*7@Xf|x
z(2Md)s&w=7B`=EXm9#gf#|4e4a%oC;cQfpx-r%GsTAobR;<gkcvpA_QWO~`Db1e*>
zprv)#7R~g!3YNx=Yko%LzJ2^SvV3+Sa=(i716H#Jc!)uM6h-M+%Ho*EYSPwJspH?y
zb6}?dyM)qo?D)U|*~_@NnUh!OS>2fY+0q`%)L4A5x>>3CR&T6k%161`r;(ctz}&9*
z%&${hW>@(zKg}S?roIyagQ_V^CXhNz^DTzgJ?PmNmM4d+9e8a(^G$!t_6O$~(d4P7
zg}X0>GaKH0V+yKO&zf?=d4R{$fYsQ}&8@|%$;pgCOX5(+cGRT7+o^Fbj`CKxUOLip
zOWUL4>AL_R9*h%5&}U3Asu=gw#uvV`^L{=4*^$~&d!8%@5Y_ab7@$qBK@tx59@_i@
zno<iWp42oqEq+xJDAmh3*4~Sc;+|M(awX>sP35x<w@Q3z2%t%Jp|r{bAs>8#<`ZBy
zS)8gaXGDy0UZcD5HE}IsX{{B$!b^H|Ir;8oQ!cBXGXSxU9rYT!LjUx_5Wz;{L-Y}=
z?cKQ}$TMHSHCR%$BFWhmWJRDIVkb{r+7ST2rKRG$)qdygp2fvf3$wpl8PmNsQSN8A
zmAJBKVim9Zk?!=>@~~+3W<0q{-N4;SpTNgeRR-((bu3wo43u)FXIK-B29w0ixaHJl
z%r{tz?|6_M^g$1*7ycXE$Wkz$$D}GO|42a<`3Q{YlcH(vhD&%-^w3!q54<bC;Z31W
z1^&WL@butiwnN?Ofd?=%kmN*G5T;TnCfuylk$#?+dl{sI*Cy!sx#{5+ls}SRr`p#s
zAwz4Ckn%Lyk49xZS@=)KO2^4<{p|9;Gw3`_l_9Y@uGn?xs3p0YilscV`0nQQVPw6u
z*yB3k$6nU3n>v_lPhS9k6$gOx$>1syPP=zD1IX<zjrgR|BllTYi%Cp}te0Z_0>tf;
zHSamP#d{2`S@Zs2t6|%`36QG@r8e=H?&08N(L=^AB2)2&lZB9%tfl9B4q8%pJf$P!
z_fHH-bxKde*)xP{xt-GV06}_%CFdi(iYxkc<%~<NyGNh69KcPiKQ@tpmoXXJ7M{k2
zUD=s#*Y#DafXWwiK-4Yr!At<U`V1S69@yENoY_<(Q>6ZBJ>%7t>~CZAgSFE(DkC<2
z0g?;mirESPQo@wW5AHMl?&iUDd@zal<%IH11_R0xIEAod55_Nmw5W%CPv`x)8hDJ<
zH<lK!oPd`FvWxRoY1%37t{(eqlW7qzH%j7^lPoG%cLOv!-e8P5%XZI&rt+gDPud&_
z_|DAZ(&7ZfF-N(#9(;>}E)m@DE-t8ymJTVco$|}al(TCe%k3$i3IH(MlP+BM;J@~A
zWB<%0wQAkeu6Q7?{Kl)`Zf8g;G%!R+YwB3WW?rev0gNIV3rX0xyI+2(^#vPXzgptq
z>eJ8}^29i|I0{eU)o|l4D?e<bZ>Od;-Yu`P4sQ9{_2k{oxad&1Ref?n=cd=LLyIf9
zGRyJK_UZN~V)NLR)Lq@l<*+*$+}K*ANQTl^m}hs#84SVB;TcA{GIyj^1Ht7uKL50-
zv#s`=y;oS+9^Oey4v!Dj?D99=;{Cc~?K3l<4=*Zu0rRcv`#iPr-6nHZX}89TYYgsz
z%DVYd>tsEATBTxSd*`Xv4cbX5;zIeEB5aW~$zEtTu(MV}O?;NtDg9m`d?oO&1lZj6
zp%-afLS0m!6Y*FoZ9pg;*7Qm-BqU6O7+Lb&)=QXmG%EhKaMF%`k5{I(ml70Sg)McM
z+ZW0c?xV^)geE;~7kiiw8gDlCK5F^!*kx@-*T;ESdur0<(@y~v0d3O*cTUGx7lR^%
zCMlsaVn%-b(j6~_x&cdH^pS1H4R;|ttO7ID{tfv`pPn)SCWL2@l=hLrpqZD%*%_a~
ze&ET%oYz<NjupPb7Xk&#QbFii+N+bP#&@$O9UuBVuysyEtD`?<Wr;9^FUBA}8`=F4
zh^<}>-S9v=VxxG<D;tY#k%R;CgI$WC7t$BEQ!IA48HBm}eC+v_N@>l#PZY2>dSnLd
zW(Wwcc$sbhXji0{O3Q{b*H3p^s==lFI6HsB1!bTq<s2KEyCrf1`T>`3sJXk6PyjZy
zD54%r6&#!WWcvPd+>}>6xSXd9oL2apRHVO&PShBUGyBJh>DhMp$2Ik>7oMa%^JU&y
zXQ9OjCL-AuR`e1c^M!JS|1gB!WTDRHdlh>Ji|EKA{L0Ow=|p(V3Gn#5&AE0Rv@?R{
z_qitPUWOnEMoCGy3PE9<Nu0JUZsS*95cK!6KkCOIU*M)5q%;<tSms$-^OZ`TMad2C
z?ge5`B|(-`-|Hq{{EM%BhEjqf123wMCx&H4f=TZW=u#<<Or}Jwiht(BngM{Dh||Dl
zA#%lH{2#<-7GV!mnRDfe_!hjS13Z?~p~U~p=~E*5v-f{Q#t?mg9@>Y`y^|#DI1UNH
z#1!d%v|Vl^6UscY^KDJt9YzexHte3*tdN9u^WS<ecje)r-}PG|3lU%|lD;ZhMwo=U
ziOEF5+U+&ZBJ0m(E<q@ETv~jPag!!z$2)gFtx&<({3FSL<kx~$1SSY9SN)>%93HCQ
ze281bZDoz18MSlgykl_GIA2XIdt$8L>zUHIGHCch8;&WIL~IfKC@mYgXy+dGWbA};
z*|DA^0yA$E&QlS8Pn97X4*DT?BR`)c$g^B)jK6Q1vfENiG6xC2Jso1b6R*d5-ru=1
zQ{haWdz|<!U#Ro2m{JPd?!iCMc(rAmC?3;vUv@<zNFZj^=&^UPP&lir){J7ggOU03
zG4QGhR{k+ezZ+Bl19HMZ^UyPJR|ez#^8)oqnVIPK7z$ktp|K0W_B#O4juK-!4Qa(&
z(eG1$DJ2ri#yRpovh=rDgzo8!Zbdj+9SH1y`5b-075=7~PZc(@iFF7t5w$)%q_7TD
z*fXfMQ&H011Ggv)uV5q0##-$sd}&7UdP-eKmuUZ)o>I@)@D6-;;=Ug@H$Qaf)OzJ9
z!zFyMD%~cf#;5hZB>HaEZvLx4*Q|F%SMZrY)o6Y-{rWgscaL)|f4bS)wkPGf)8k8|
z|2T_M++Xraqp_?_4cE36RkCyQ_D#SuyhH#q0{G7^K`6qUl3ibQTmA{ofyU|_AHP+1
z;HSDv*#9_yW8ZWZ>51euP?60mr(`Ivsufqf!f}b<+{`bo$+ok~m!?dI&d|MXxojtq
zmM%(7O#5C!|GSEz#R^g^w!SLJ4sMzB=2BXzb*NvOCST4I^|!x7^`FL2D;jz{XSFOW
zzAxst-_KTHc!}m88nu%R{!ZcggS~A_pIb8|sdEdh`*qzSrD?gNm#Dz%Mg9^B6}HGf
z;ZNkPyF<7*_=L|##O@hI*Rfko@?Mo8wE4XJeNZT*LwomC6h`b7&+IyjM2NzO>Z13!
zAIDo?5WwCSISS|pg2cWLuhQV&YxC8g567Jrr4Q$8@Z+IJ#NXxb<6&O2^DdlV3noqP
zA;mL@ef4Nc0gF{Q3p|rwDwq3EeQ8>i8L;3X=M1?aHKIVE;94&K2lelIg@P33$#Qhu
ze43^9L7CN-hz62h><|-dlv0z*N0<JG?yvdt-BEuw4CnUIcw#nwHUXu#Qjkw9$vJ<p
zp@tH{orB!^lGG5m4a}24o3O;8HKYgtm?85;sBc9>qXH1JSZJ#F4FN1HWw2S`HX0*{
zh$vm{=Le#JWd>^dNHSWoP&Glg+m!t3Ky|G!>Ra5<9A+Cw^O`z>M{%_`k*peiLp(hf
zQE6n;tl&^Ht&2buWo)$Zh;~7|^L?3FZB(s=f+^bAI?*h}SIaTF!p@GP+k3_OmXHaJ
zgjdjh5GVp%URgModE(@}ErR$$SQ_wUXTK=FFIAE@SHQ{@wjy$i<E*wVqxZP`u47ij
zY;9EGnQ4c?VptuiIhl4=3wt>ONdhG0;d~I+j|roqk?-v#k?-2?nur&RL)im>1BFhz
zRbl&=BAU2vvdD>wS?_{)f<e=iwjHg^vW4c_T(+BYx9m)Kg8gG6SiCT|I*6^9gKX3d
zSiA=Y{fHi<8YbGA5D66VIq1eI%3RA*`#RVCdcIM-43(**`1IqOEOlLmgRx#{PZWB3
ziL|%JX;~m-3C-@GT(ljQ&0O;g&2Pz>=lbIe7Qg0B6;Ox`!t3ZG+3pwiSb0wyeJxJF
zx=<1_z7Q6cU6I%6!DOo}BHaEZ+8|o)rQXi=-HP28(W`t;xA&UGlA}!wU(~T)Zwq}I
zq-m22?GQS94_J{huC^Q8o+#pt8JctD^MQOFcuh^$-I?gzoYnQbhGqKQ?R>gNYmo|1
z^<)~l2CA%hxV|O4eAgCIX@WDMJ;ZO7kykRLa8Sg{cJ#SOt?DC`?M(rfcyheug}s+r
zr<@g8f=z7PjrXej5_#9&@ROfbj?Ie3@++BE$Pien^XVn=6m_t4g!(bf`s96%ztL4)
zhslfAo>#B8i_4|KOB!|4ChsJvY0?+U7y#@Y?VT{-)xSN-7;n|L{tX8G1pj=52M0hv
zLP9{s0RO-Q`j;f&-w+}qp#TV|1lRF-c+qfh38^?Zxwysgi1_YN)6mk<OWT8gR)P*<
zBA_5{39S7Bh{`7G?qks;AB&BV25bwgofK4=kti#anN;7U`K*9RMdL_NXS?NR-_4n`
zO_^l#KAabVe}7kzEIBb)PrEDQWk(q&V&~h2lvYwX!!Ekl(jq^1eD2*2a+*JR+3HWJ
zXzE~BHx=-t%M9yTFsrXjgvX;~L~A!jBqmN&eO0U%*CVBa$`pv77Q{;FL`Y(BPX&aH
zsM#vM`9!B{>(5H&G*T5NguRbCE3E7#nitOAl5g5z94JqVWz!Kx>Q{M-hWn<88Jh!A
zIkm?z=QT&a(yCrH^{K=kPfjFkWp);WOrA@QjeU8WUvTYAb`U8bTT~@Cg2z9&W6Wm6
zBI`yq)ygm6n5^iaOxR5f?L_PskZx$^Y^_>COZhNwfJVpSTHVNit_@GW$y-Dk+>FFP
zf{a(4g`#rj^1RR2{@zSph<23$!6G8TXkm6c{@!b>>qt#6na#iW)7pPSyfTm60m);~
z(5B{63-ia4kht>_GY`3SQ}{Z2L`0&*6X?7jp52-2HTkN#6or$qcJE6)$6ZqsWr~iz
zCHEnd-nJ83-6)b%;xH7>&&4?0*1D9e*GloPQ_)hgX38`K6FJZITysCdoeKefePEb&
z&zAPRs%0s|do}Qpt59@rBI!eUU8L?Y!T+R(2k+~>K<O%*)1c|r{Qp6ZYzUcA?OU(P
zsc)~3?S80Dqe$9|tt;-7oT$}I+S&JcmoG0g#c)^VrC1iZylWeJ&#04^VoZ;xbQ&>F
zEbv4}cP7UctzCk>rIvLl<20`#3N2q*rc~g@z`T`uBv>uP3#1Ay)=+zB<5t```Q()s
z%dWisXhB!Gu4}7DHoJMEnqM^8*V^QsTPkmFO%5GiBkFjZYO#BdS-x$u<&C;&td?dj
z$BY4GQfLW@?Ug{$lgY$LLIK>QtzL)8frRUlK5=v7^Z{B+OM0Sgw`oO7%Ioh<V8`?q
zpq}3T@Pc%~EJZ?Rn9*$VuFep{$6C6joQ2OF()`%8qrnwi{!y-PA}Ll1FbVTyJO#Jk
zw!G#Y#icfGYTRyJ+RhgJt4NA5?<5VosQDE0DVv4}R*z_lx63U_EUJDom(s`GtE(qZ
z3-Z#Lh}xV@?O+%>*?~@@sN9|OvP46|<nVi|nC)%rR?)?_u~s^2neOizj?yUhMA}b^
zh4V#Y3fy!jcnnxiJQz9OJ6Vba=iM3-$d!AUk!iY9TI9UCiv2*4f_~IvSdz_2dSJ2J
zu$b;MyH^Twut0<b=X0%!&G)QZ_xX_)L=_5UB)P_MYc*7w)Q<D-Za;Xj&DmJPwa4ji
z+M}1KJn~Kdw$_7IW#&?OUi8;yboVW|?%?r$zY}#OH;O8~L$3E1Aa5R<{WW%D)$3*O
zLY)fTcV1f?<zn-B=d4vc%g$Oh5|X1t1U$zVE#Df7kE%)Nt`MU0D@r-up(T02d`K(d
zVLVqzofG0omqh}}7(FS1%>h@G+8AzUL?2Dir@lU^jrFjaH==L>aVAqDzmDW-$9(kC
za=tTUO(yk>*w3E;c`m|?kmnJ?v=WjlJNfh5!Ov+@Q4w$OF3uRE6U6C|q`l>C?_ZWb
zbg5~S-kHu8<;14^M5GZWre38?KQ2p|yCFR!%z2gICo)VEBC?Z6TEDkE!ly`BKwO``
z-rkBr_l*BKv#O(D(3nH{10vd-4Tk$T&kLy!%{+8`nDsZxD<0MA?g!()m^b*=;Z1Pu
z^D%CByDV1w(A=F?nU-SIzN=qyAK6Zs`aT!p|A~BAZ3|_hCVl}&j<9h{D19T!Ar(w8
zy_>}=F67p@9OTowH1SybQ>y`+c!PG*F8~of**d*r`Z3{TMnS|w`cM-bdZIKW));qm
zll18hs;#nWLNPlv1$A4n8ID_1@NzJ@ZI?0es{0p}ILKT+^MwErSGOIEv(+M=-icX-
z=~5H2Li8`-d;nNa_DXd9gvjXJcdQ#kB{&~){Q?-o>K9V4uy_6fp2Fvoun!yCy)(E7
zWj9_0YWAxHv|gr!HL-SEZ)-7L&S<V_H~rMzcBxI&U5>3y)a2>@T(|V-MW}@$M{nn+
zkOtw8v*O_figj(_TkZpyuiK*#cr9-K_<DuBJtFed>}zJe*kky3Sr1Vub)$0(J1sY1
z-P~<rz8=aK2TlkEbT2`9+!~WL(?Kuz<lz~@Of@-N)NgEe#dAVJUJQgpF4P_CM@Y72
zgr9EwFgW{?$Rjh_rdz{Fhb!g@?;u`uJDmYfX+ZLZ`T<mtYkf9N$E*G9pkqOMLY>xn
zKD!1*v`^y~dfSxd7NSx_3zj{!mRb*rM|SC1BP4FlxB3!{Mj*ee)Qb+~CNiOZS}gMI
z>4z=xp*j?uJ@UH?uh~AhyVaf&kYy0*nps(Q*}Te}57GWvINwG1vJKbMFz$-VSmJ`k
z-dnFM3B3?cE`FQ<RRw7gsLG1baGN%nyq)~!jb-F8yYK|QNCl&~pF4Jz^dGWzto#g{
z+rEy#*|%%h;dYBSm&KLhVISv`z09%->C1rT(T43<?ulgMs>l#cN6w(A=PheLUl8fw
zKYXO>k|Et+afG1|X<d^4S*PSWA$!A%{L(8CwUbv3o3hv7yZYB`{oA;sF=iT64f@4U
zW!YV5n^MVPJm8|Zf(=GSaNRqfo$5;6_;j@tg=hF<e^z6V>p>IRmlFC8%y2=g?2k)3
zkNGBa<-=QrEQgEo_p@Mjv}~U&jM6D)q2&;y1amFPUO#eDls>HIV-)obQ=g^5?d0Y!
zAUCY}`v{&aS&}zXwXMB<rbAnKV{mge8ioRCk~i+XtfnpJj?;u+0Gh^qNhPjPYoRCT
zxSOdnuS;mT^D`!r^BiLPIAt;Cr4?A{bq*fX=D|&p%X7}8k3hJ@m-$Y{#trtk<5BKk
zKrp%ehxIp}Z!=TfzYx{VPoLXI3S7z5cB-P}l{yqc^WUN$jHYI3xxYXOn@X~|Mw9jA
z-3pB`SMI4rRe!G|t9nRv*D21j3+^vK1Fmx^Bn_{}Vq5b@P>9tipjMo6`{$Ho0kK=@
zD}l2S`JkUkrvi4*GAby!vkc~2j;_)pVy(XSY1hG7NYD7fFx31dD}C-&Cg02cVeT_c
z|DxfyEzcKjVsSo5m+8m##eR|xH&NxfswQqU!HmMe*dv%K@%UReVmui7Q0+4P`J|2F
z6e(wLl!RZkDA#x;g44}RtLy`_bzFEA)IT5=Sf+WE+n(7>=U45QdzNkXPVoD|gyG_<
zWAxmP`3217x4beNjz=A~{zj3Two<KGlW%T@V!NDdUivJ7VH&))hB}AjEB$lovCp61
z;n19idTZ~Akd%a4fP92Rn|3<U#bq-0`BZyJ#t%}LqFuiV>btB3pU(TQ86>GsYk07v
zPg>v4zGH2_P*Z(<7#Qjn%RN+URH^-j<svFSmP{5GWY<XJ8EBwJST=y*%9{2bK6n+k
zXR|-GZ4h#QVng?hu2;7_#2P7-0?~&LUoUT%@jTNFP>U&bM`1RuY+R3+9*6Cqn&pNk
z%aXOhGWO<MDe^Jl;RMO0Z|EL~U40?O0OSWVAe1lLstI=*@AmN_c~X>Tta?&J-ECJ_
zzZX(k&@fbosph1r99Z{4_vk^Lzm(}4AvWe)1Va-FIjd2w>u56pPFvh7ov=`;pYa2q
z2(Eg^UBtMXFa=0tGMlFid?N=5%ibKNyF%n5O5NrTDdp>0%Z+4J?y7xPQdm}@mP7Lk
zfQ3*f`XfK_f8z1`i9LTrqc7<j^OfKRvTxq3;uWeKCYRi!-YeExy@+)Rk&)l#u*JV*
zaXa5Amw4}dBYj4ap{fe=;pB@C8x3E#TOrgA&-iMDZ}vC5=IkAd&ylsw%9WS5kO_Dd
zCoCOU%c(oZTT>|K^7g)t?VAfz5fpkMUCJ6U`VoU86Q)*Nre}L;bZ<w^eHUkB6G`by
zPrgEZ+RcNOt?aGHYLZhrb2RGu;6`^r$WNsb?Rs(xMIqH0L9Z^Jm%3YWE$b)UzksL?
z&ddStz-wQ-SleqhAHQYjkneZC^=_!LApGT=qK|f}Mw+~4rOVkAbAsI9wXnSWB<NPO
zQ{{Ej%&bEt;w?STT=_%xkY7Mq##Hh8@sk6;cs1tiG0%Q&78&7;YgZ2*hd>=XMh(*Q
z7>j4$Amn7kavHL1gsOe@&tpxEK>*3~$*WKa6`wqlA&=hZ=Cx~!yFp%u>yQ_#B11f=
zz;_2iO0Y0lR%WqQ<Emf9t|4EbEFGbA6HyL-f|{s;!@{;ku)VWzhJM_kJaP{n9V~xN
z5#<%oVv?doc?|QCZEf2NrpC8k#}nBN+%5Qz|E>)$ALN9EejSoN@p)G+byw+eX2C%0
zNmQMh=8F88oI&obefqzE6tp#^cU{YF^+^=6Gfan8ekjq_w=S>OdBah$t9`wVKBReJ
z*i*~s8Dr)?&W<ek)y{-N%uRFfSnJ3?aKNS8^4Vo!q>9Aad_`h)pKAXk!t?B|$m2|k
zIyG#AT(p7#zv0Ub<b55qJwMa1>Qwv<vKtHfzYQ;MtxV#ETK+o`V;{@zZo(7U)~49m
z%HCKHbyyJVeCW=`z7W@YBW(s2#1~=&Y!b!ONgN3HGs<}cN-kI|%MtIlDMtvHbVNK;
zb3QRijS?iEe3ZrPZ<dMg-x0~*1)8i4mcWY-+*DE2T7EyG-E)Zu96aa(KZ`5f;eR6+
z>B><)0^$6G?-d~~M1Z|_&5@?RRxg*4PyJ?!cj4Pix^V`1HC{ER9;~}XJ()xE<|S?_
zf>fdQ&97|Q{MtXEwuvmjJz#%RHNMrj6XtV=`D&P~CBBT@ksN~w=Izcrl_m)E&ukFm
z5-I4*zIKapbLPv4m3&Q_xDrBEgiE}mca;w9PGbps3b?6>AxSGYz0~&LVPY?NR8ad<
z0YjuOqLED`IYE;CXUv+1q$v%y5z0=$6*~N0i$@*e8Cl4|3O6aqaooSn1;`QlTlPt{
zaA`9KI^Z)|5HwT2GU<Sa3}N;%&(Zs2&9J)oZo#5CJG^nC0j+%LAb0!JBv{2TZhFVG
zU8GnqijVqhYpYZ+jj==&_T$Gq1lM^Kx?0;ulX?W@;~eNnrtsX1t_qK;@Iiws)T}Sj
zgZ|YqH%%m>n<<_KMN36);|cm%Mn<)s9=3_^=M?G$<Ev8>u)->BN_9_Y?iVM}%aRky
zx3;q0$W0_=8s5P%aouHjHIP~K)X}9SP5VXagCZJoGRf|U=pDH0UrVXU6jFD<=4+$H
zi-$(jd-G>MiF*ua?lT5QTT<@0ta<x4_O(2ie#%rhioh}y722?kT$az8^3Etw(&S}i
z+b*OQ!`~;g&yH*C!>(Lut8q8;!F3Inx9qmv0|FAEKFAz%Zd6_dUD5kn&8MkSt#-s#
zoVPw<_&%O3z1qOM<{c$POc!!ul%y#CI>2U<wMyWT8mW!%z53Mqu-ITi!pq?a$2*F(
z$?QwgZPC|aywITcrY3r7y5=d&y`i)nV|=HfskJw94jm_-qhk4X;mG}9V_{Tfd@_kE
zd%JXJ-kf!elkg>jAD{bsTB)?UY>i7l1vM%%)mOd|dGa~#=oSfXI`!i+_ua-uE4<P?
z`5{7WX~uW_^FRJ_`tzaP3Cp|wVkKlBJQ~1G)vL}gS}Q+_ncuf-`^({E??iTiT#FHN
zkYx4zlryx98R=s9xI1S$dIRo{&X4YU;q8Kjw4;FNw%@}!)O1Yip<e(f5qP#ZnWT1P
z%ai)<Yf}AG(*rTjd#L9}|K-ytRGyp<4+me^Q_d(r&p~Il5ub?es~`+M-<o!X#{%aE
z#Y`#I*8JXglNdSm(<P7VS4Kp%jPFN4hYsy%bl1xDx;<Yxk|mQ`6xN!w?H3K=7wJ!`
zE+6AwE51QYW$8yw$fUlnN*!>tV=Vf!>D5TFE};d}9p*$ripU?ZBemGQHikwHk0e3e
zq+43MGT}P(+EY<+M5ZGy`Um9vzkvC{NV=~JYMCFVZ7)kG<8%@_b6{D|=RKgY6`wxm
zpCA>)idby&+E6(->}kxi;5%H`*~nba0@k$4r{GdYpKjO4QB&CmC0-%2ee>o^^kYM3
ziE4NE3CA~Inz1n0y5wSxD)uuAS^bdDKEa$>RX#M%JR?FO8P-8&Alwi_{K16G5b+rZ
z)y)~!;;`=v6GK2%HE)t>FH6vJ=D<Oa<vxTRtscJ~wP@mF%2)5hl`4uvk;kFRpEe!p
z)ynz!kcNS!2osqZRW~f$q7d;aYV8D6gZ1!)+z@Zs)087JkL#}?`XpdKur1YC{U7vL
zYB((EMYZ)?$sc+*Y570saW@G(397v1=emk)%X^EF8NXW+kXC?nODGP+)XNFXIR;ee
zy~Jzea>&eJD=D?nIc<&r2Ki|zmVsKyVM`6xLpH;}yF~!Gg<2f4nE=}-Uxp&a&k2tP
z>HLF;Ed$bs_j2#v(c@u=l1hFQVADJ)qY^=YyrS`fmb}#<NuW)u%)p^}Oe*URH|JYo
zVkYgp9Q0>H-Uh?U8mD2Zq2G<uuz6{`I7T+au@p$?sd(-w)g%y3NJXM)J4S{^R);DJ
z_A}Fn14F9yh|lC)y9sD1u4!e&%Etvs#^eQlcMP;Zoqc2c9da$y=779#6vu>YytB#$
zN6^*}$#J$#mfVTFViuD=KJo^Bg_(4Ky=;2m?LM+kcgBWzgnFYm7YFBQzpCQl&I-<b
zVURw)Tc4`iS#Cx*C-1hgxLoMu!%$Fy6|o(nBZiki@a%-A(ZD%RgYyy5E#d0dw>5@N
zC&E-IZ#4EEmb+t0(sd$P$+o@ZGWvQ_V7N$~LF#A98Rja^`K;AZY;oM9;yPhRFiOTV
zmSiQjINtgM8E$YtZ}CT0e{0n1G;iW3O1-O;G2!n`9nduDVAdp2&qgS=9id@PLO5V)
zZ6v^j%Hna=>UcWO>%AdGFq%c4*c+B7WKkiXBU-tSimWNT62_K8Ior(F);1)MrR(c&
z-VigMaMjBk<5DET@o6cvEt#?94?`s>7k`Svegz3nhBHWb?&zCCdrYjE%&4l3V|DB!
z3>{@rkxzH+>bZ;D<U^SlMhNf85!_E>F_V`f^B7q~j(4^|Rx*y<ZfX>~-O$qNJB~`m
z@}i5*RHl#tuU8v+RE>CEQ2<AoXM9_m$DX>yXJVX!#*>Tr!09f&vr)*}PK=zq9w!MP
z$K*>tZbcAU{8g1&z9dA0e>cMS>W*x)vCK!UEeTOk_8Z)7FT;zOznFO4@V^opfr(tJ
z)pdjU<LA4wL}bi4w3J~t(}Hn#MnZ60^ZljQMgy<;ceFGzB^>q9jCv!qa&3#hQ>xg0
z#j6$akl@M<EzK_`<b_*CsYemMFMEwk(Cc&#O4q}RX<u}`e<N(S?NQN*M$tf}5(bfz
z@1G<dm_Y9}LEQ*}xOp<FY{WR`tT|r~V5C4fvBeOG>uf<}%5bPiUs8Q_^&WyT51%i2
zG-42j$hf#HeH^u~(ba~R?JD3{w3?0mtpg%30c&SIbdOBYu5X|3%h^A@aht;!@yDBz
zHv5ECw{SrwX6nY4FZi*uePP13d{;7cSa_l~ZjqG}V3Iq8A$#DSc2)6~o0Y8%O$M!(
zo8^+~WZGCpmcEl2`p;De3_;^RBm7qm|Mv(biA?+N3K+?fR{pb)|L-M(kNAHxCI2>{
zAz1R+gjHY2u*;ex-;ejBS=rU0`d1^|x~NwFe?Yl1Nea9;{qmUqf4cvdImmtas^m{@
z_~!sDv)r$~M)RY0u;!XB{4ww%qvOeWE)|}eK7f1oRMl<^)?Ak=k%uW-#i4~)tcyt>
z@Cx8;(azt4Pz6#UYaJtVvX0+sVb@6ZzwhO=)g9KYgedPYTIPuUf|<Ff2Nyrrj8!us
z|KV6kV@aUvrjl^~@-95mh9|2p1ZvaOjTZVuK(M2pdJ<&QQh2MG{o_&NI@2Sf4m$F{
zwAj#ya8d0j+E@=};y~5|MSd0AyQKpB;ll1CXM-*VO%$bc1%j8OrgeDOC&1>RS|=i~
znI{`_MCOrYy;lwql*7K4nO<_B2{{d@XG;^kL{)3SWr$wmN>e%#G;Dn9VL-ks%}WmT
z>pyv5lNOU55FQ=w((+}y&8a=~c)7<%_6b?)8UyOtuzhQs+OAso?BP=`VNDZd#6I=_
z-~0Kks-!M2@AGuvI((lVu3wdCKD%-$*gF37gga}@VSGbcE!uhN<M;vckf~bJrdbmm
z#7<^Rfq{@G+p+Xn>OMK-@Ld~ONbP5?iR}aKtD<*gus2|XJ63QpBEk^rM4R)DA>ssw
ziQI2n_X+bJ5>*8uDxS!*Zprqwa@)3oj%^il$h%gXo3$N9<H*_DHf~#3q+jmU^YHgw
zj{lQlOXiBI0w0hiWxiqz$P=8*;0~`IxF5zN;ix1@;n8Wt-&YVAA<6coVs7X5t1u6(
z==rOLm~=<PgI}c2+F%Jnx|b}HO!yLAfm*9*Uv@OI-uy4--ZD6Eoog2kGd6sOnVGp^
zPQz)KnVFM@nVA}9W^S07nVGRk8tS=syWe-7=bP{RKQkW5mTg&<WofN-T}#T_Bv2M%
z2^uoScKi);Gs~O~g*P)%db9`!e!wH#zHnxv?x9|>^>p5JZQ1l{BOCJiFknRg&i$XY
z)R1)*e1!f5^{d?*V&ycU2ZeDRF{*blTAfCUKu~IOAH=f<nbcuZk_g`oPFSq&DxW~#
zFJt<eC!j_Yvg2Lg);hPFz6!mM{Bo7QpG{!--F1TPyu!mr+H<LhUiy}tMl&tkL(P=W
z)c0T8>mL-)dv(f9_#O^e4TAnrof9!gBqlq$p+g5V1A*MI?t^<#n{XjaaUuSR3KTuk
zTn$9V#?T}FDUKq4Kg{#UmMbYn0+xHiHXEikWMYr93~puUI=Z)jU#B9z&~Ff(g|lSu
zl)|{8Xc^a0U@`89{V!hb|3iVfH{;%fpP+Ikcf^IF#b~Nrr)%WZ+Z+Fb=s=*k-xIHy
z#9@%S_mjf41-Km3ODBWQ;(prKD-}F%k792*vN+B(fJ#}vQoXiP-IlXil=ADv!F5#q
z4U(jBicXPaK~tC^ZLX9c_9N*(ARzDgJQagAu(C>3o49yEYSTK^X7O+35mB8soyf+>
z<c;(Ul+#KHnRYf?iC&um&VPQ1IMM{vsi?Cpi@=^38c-w>!K&XNp#@)#cmh8<N=M$e
zjOQ~DA(C#b9*P9jyRLU6>I?E!esY}~HUDA|^sQTN@H+i#)cC9MosdDzbMASXye?Qd
zB5HZY3>oIK=G~>|kUTYYBJr)OuE{jUYc_oZ{e85NyYD)lTq62ubF2VWW(xYl$P6ld
zYiMT42SK!8+SxxJ+_umdiK|7eg)TzrsvEIt-F02*3W7(oBwL2c<FK<E%*XdXE5J9<
zLfy+7g5O~+mDOCKAQj>B9s<5;rQ1E($uzzS6#IhZlK&eyBajNtcqgWF*x{Ncq9^}H
z*&Pu^PIjegkwpzeMUh2gWI>j5(u?%LoIHE361;h^cpFymTUI<Oq;PA2p&#zxb8xWB
zbP(1T-Fj?_Ah~YSOR#EQKF1LRqDcRRVG4cvLgUuUf>*q)KS~$C5{OIuJ$|w<m&mBD
zb*uh2$isE8+gl1v2WG`a5jlrkXFh%h!sjp22ad_>cIbbrNGYSCcD?!gNO`I+;!_TE
zk-_klD<3aHzw&PoWbvE{7wC7F>s6zOHe<h|>E{5{eo2EQq(#Z@=OTH{MHk(7x!3jr
zt=}Na*~!L*LMkls^DlpU?n5c@Jk3HKHpzk2KUyP11bOirHG=8rC<`@SyA1wtL0#H5
zWcQ1tJ6`wRCbiodF|4q6qH#_gFG4(eaAF+#$_1<UYoW-kBM;+}nKq5==M9wJDYNQ7
zR-UJerWc{1OTF5<^7r6q^$R-7ZUZCLS9n12QmU3LlO&Z84s2*H>9#kO1L@*i%`J*{
zLe8@%+lLXb@fX^8ft}|hb6Q;!pcC6NFmN+pC_=Ka==pqUTUu;Sv?{-7GS#}<_KDZ9
zIb9`7C+0-zVMeq*h|+fd#7}mpp?JF+jfg|eN$?pKh<z0r?X4K(7koD&@D>jGgT;AX
zKNq3(Yr1YfZXx85$B!1)Roe1mMc?p<$j+E)-C7rC-(dI-=sq^3HC>x7{vsXqZ%WDl
zwig_vFNwp3b#-5b+KQmfJEiIG=ezpWmi4s%`ATr_(V{6zgkf~9?bj#BkUOX9&tVKw
zU*7lue#{GmKj-VWlc^upTAH?AP3Evney%O6?(Vs<&DO&bq%^fwcWB*pRjn=(2xbae
z(W5t#4;V=+<*|4th)^U1oU9=eCMKjnNh-^m?<fONXA}H(R%siX-ZFUZKi>^%w}T}X
zN;Pq0dSvf;z?Bwvhv>%`y}D|Z6~zL#o1Er*ml$o6-EWZdQdQT25u*4(Yr{pens`_*
zsR`B?<|rdaZnpRa;z(Q{d8#~r1M=rTU9S2?*pA6B`&sg&`J2P2MZFmU_}>5eO!rH4
zi;FHU<btoo*DLMPDovsyD>90Af}!ECZ#F`aZi}Z!lj)c*xasb^0v-vYBb4I_l(^qQ
z2Sk_>jK^^G&5zmkQT||)BhHdby@Ok}g7TmLps~};hcRSOI((wPL3A~eMr20zS{r?-
z@t2A;IEXr`vm6kKgJ{mqlqxe}NmmN_*5)ccq$NJK^A?}m_E=1rputn41@2MHC(uD`
zBtqj3P*)agIb%l-@08BC^OWi*3E(a2rL8mF|KlZ{85vRzfBH#DwMnKuXB9i@k^Io%
zHIbFi!A=XGKggKAlcL7crKQU>W&OdLbY#F*Xov$5q{7o+p*ByRISPnYiCD}jF&SMI
z%`ysAR=d=qYZr-kKm=Me1<m$^d3k~nzbGjiua7w_tx9<8ynac-_upa09h6c7zTCLv
zUTdW*HNZmx$#RX+%XX}t;tz7Ue+3YcYd#5aWxxG{<jf!lNlbY*Xit<x4U*P%iu24n
zNLQIM)bOKP>PisGPX?5$tf&`aBQBOpER_*z7W!aN0IrP&o35EC_tIz43=WMdw}9zs
z=o<@;iIw6@b+}R!1#|ktFeb&3?g|C_Au*<gcpCnB(p&qK#|3pG7oJcOoC#;X?5UBr
ze}t6(f`<L=<@<;D^z@{=2ZZjV{dP|dhgJtoDew}UdRT38+asgh*Mo@kTN-U+c_v8v
zVtd(}Ez>FZ+Z%g0i^uTKZE&j!TpDegqnBpe*EqGrPgmn4s9SJd7fqE}sh`*Dd!mtf
zHGDOQ9G<^ZKvCk$2;)hD<nx#Rm2v7_mkwB=;6BgLNJ0J~U*t|dsiqzdqc{^#BZrGq
z390*xNCR#ynooF}@}k;B$)sszVyhSg8e3oH_D>yVOXd1MJ#C2Oih!NXfAhHf_r$qu
zY!!<@<H(CVDUK61x`Q&`_!I=SEP(r%8IL2MfjqibSn_yISLN@I9*>96%@BMzx6w&u
zbK^wJspt>n2mnE3RLD{4-yk74bD;q@4TA$i<&sqp@M=Mbf~a`?YE4zPHB*a?UAj-*
z!7v?>GvBIU05kso8+^;JgBs<7aWJ|Rs-C?^mr04sm|)q@;Y1k_8tA$CYfl}B8wo6>
zknNPp%R>8Ol1KOr;*xH1q&;DW8{4<P)WlW3PQRWPM6yG;qcjuK2JLsOx~Zu)7;oBX
z*=^#VnlVC25P)GPNr46c00<-sxp_60T9W?|cf4Fztl3aAC=nr2#QH%|6YOWCjJ26i
zv4IK20NaVCf4egcyp$8p2tKpOgc#7$-S(obOULu3^7HO^E8VB4=oJqQ*;)I3p>G#i
z0{$8t;<-Bgw;;C)oqw?zSIPd^fqI1lWT@=AKd{w_$^3D2%HEB?p?{gBW>R7CW&};u
zs+9{oS+NBWWE;~|NFY>163196`7T1GdDWyG<EqoBfeDjI^8STy9TCpmv^bV8`&c^R
zLO0)I#G?63R~v?jB>%uuGErJ7=+|EgjM+bJ)KNN-<rse#TRqAP2iIwYCo&Pwk|;Rt
zI*y7l*?xZoZGd_=)6!*W#UfkN0JyROAdGq4CsT8@*(@z-_Ny%(1r1@$U+p5^oHL-F
z$!ms*t1tsSs2LB)Te#Qm^asv7u1)qmNe3FVi#SW@u4-esqOC^VNw@l_OJ~xvDpb%a
z9magI2u&@LX4wj#s`#~BjuDskzL`R-qP<AnMXJKcY^|e>Si;DWHwqJ)YpoBbS0mzL
zk;W`4DG3T2d*zfM(Re0^Etchvlrr&mXd&xpA>54#r;)NTJdRboO+cDv_@vR;+@Pth
zXH#(}=POmc?t+Y`i2lf>m7FW9*@%-dV`?RoUIk?e-0eh|HWtT8s0`bMMXk(CbTN9*
z#G7X!;=Gw)^VZfQ`TMpbL(ZisEHJ!{-1&e%7|O9}Tjp%_e%j2lxlW79J4X}OiCFHC
zH)mI(AwkF0PqFT2hO4UA<~hKZsQ&&~i-2S%@oE>YJtHL$C4MStj&<vnqd&55#oRBl
zYda4!tImd|EseEnx=Xhd*HG1^;lLujJ)$;Z*=z95`6%86rl6G4Hw~CVV#MMCU5lt<
zB{{OTrY;){z2rCDq=oc}8P-u3UD;|8giV$<^B^vjfe6Q}f{sZ8cO$NG0@=SZaU%Jm
z2s{p4F#y}4@-J0jo>g18F3R3oC^Scdf%1EYSCv{*qCvR5x;m4<bvf>@AVUPZa@p!8
zYO1DgP6pf)pBz*tp@@6s-OYZnW*tSv%faFA?hXbKY_ZagQS~#I9{&Q<6`P-t`U5hU
zP5?E+H(N-_eqjLz$>ac>ssLx1ug$2ajI7Q;a)tO90tOm~(F6Nc*%vy4Ec$h=`Yo(&
zW7Celv9gUI{2*5f|ATY(iDi^ZS_E;f?c~1*g=8aIFB}q=1`}O>F6Tdh(UECe(asqh
zE$eW~E?J`KmP>{ZYXp1aG2*hVleDgF(B?(3jMOj0O12?U+VByl<RaztvBXYOj80SZ
zK$fPh@$ugv^!rT3@{`y)#|;_F4eh{fk_BOs`D=_uR;E&@0G_C`7jyq7Rw!nWrWFyn
zPi*2E@uzBvAvhR00{=8aNZm!R@_(oTXC?z|`1O**2ygS2Z&g+rQeDpFg-;ZSQnP++
zOCnql=<<Tm2X|OY_h(D@FTh1d-m0tDThFaqu*j$#ePwL8?xNs{EJHYXPyxe|?3K=e
zn!qS^{OARfIN{-&+_3Vw$<QSwuTo_$X$AYlHSAY49CP$vPJfgvSJ})hlB>pt3zE3o
z>3;|r<C9Ko`zL+1gCcsANpFjbk?o81x@8H!L5{VVedGn!RiF9Z$$>(w7zFWXy>+H^
zum{XZ8%Log*R4?+s8mFhw6UjZ61FKg;mMytuVS6h%652dz0eNI57snGHEF&~N`ZJB
zfr84|I}bZcgE0{T_4CmF&S3YP8V|_VN^xTB2iXk)_SoUw+5{Z(j&uy2iHPbWF?A=B
z(kyN{#n$)g2|AwPq#MsU2<kCgOrbF=JjaI#Y(yno5!ahIro$HFRgV1ZM%k_!lds2#
zRK6DJC4}M_AvCy?e@DL}meSj}CjDyePu3Pje`pf4>=WxiHdgI0Nh&u}+GCB^*2Ceo
zr^E+xV5)2+MT$Q_b78Oju>%7}s~)kr-^N4zH%N-hXxpy>5>g-w(tvp0Ys9&NiYO3_
zbM_DBq~0tTEEp8MGrdd7#f^jjq{#q<KEw%7$cX-dk%wqXD-DiYvHI~g)&0+177jm)
z{Vi*S)+&=qCP$Ikn3;*f?HMjb)YOxLL&Jj&V#FB#Eq4Td!`HWDpz8RSuP}KRbK1L`
zxZ>?}hfi<R6*;k!t><<7a_uW9HBMw*<;s#iW~8CokXE0(b>Z2u8N2MI&!}@5q)JIM
zj3#SZ8`v6?;2@WCNk`Icq5tz$2D)bLE5Gkt@0ngPvq<W<Q(Wv3yacA~ZnsrcZ0f4G
zAaYorM=_J*LQj<>7-FN~7p1>Ml5hQ|*hhp4brS;dat1%)@%m3ujtCS2{d(W<Y0Iel
z#7Flj3l-;%FxUL-b{Aj$kZRVSU3|CuD;_`a^;&Mu-n&Cp{G{A_=C}VIs9(PEbpPM3
z{GXG8^SCw`u@5z|6Rkx>um%m338fMel|CJUmXoX$%>Fl(%+F7qr~hd;ArHd2cv8o%
zKHJCG)Hdv>h*EcPh`6d|7TJ&IzXrxSi$k>St%Gjr*d@0cpN+pV#9mG2F*U(W*g}cO
z4Bb*x517KpOiAd=@lD7h2qB5<N5!eAAz|EUv!YO)NW#FlVt2(SsEGl!VUMFw^L%4q
zC4qpF^uGXyPdNL!xW0pUv4p4}u;Y}ZVXZNT)^v||`nV{at)lVP#ege}MA5J}*sC!S
zmjtSz+O(605__l?5Uc+VECJ+HBTs)*Er#;eehiUXpDSF@^h)Snu_MiKe(fHv|8!|v
zm&vgf>QXkriaUD1yi@mlY&x@FyTdh~yYS`Xkd<!0`l~D>5}6_2um7x_E3TAGaeMqD
z`rjZn%W=)A!44tUiDeaR`^#{SN*7Ynux?u1yzOi(*fKUqN0<2M6ho>u7wctImoMu}
z;+srpW$ydNo(hT4(QsspWk5;jy}A;wa6(?t+EvWo8GPF~X;M~7#Gf&yL@tqjh`GNC
zo1+P?(wv1fm#;6}nz^7sJSX+sl<U)!xsYOPw7V940AUEOW2eU%e(KjwV>kDu><nY2
z?4&4rqGBS4%)|<CQuHQT5{^|0Dcpd8-Bu3^#*_atoIuC=a;N$aYnt{;4P)=u$5)~p
zBso#36dJ;Msxdj!Xwt(`-3T>Ct>|-HbZTLF?*!kNw4SGn8f$-L>Ur0&3n&0sJg?c$
zr2Cx0+<tF}-n5kj8PlRtmk`}SPCcfFb--Q#TN(3QI=NW?4U!DBQ{1Ad+q<YP5YrbK
z>0Y+>FPcGWexqXf6e{6Er7Ye375nqV!M6B+8CFer#@qcdN>R03zD9qJSb)jR(K@Xx
zAL(?UkQhZJ(AFpEVF_-<aS-X-zoa-K5}E}y%SIAw?nc4&-DyL|&xrd=?q`p?Sjnp2
z1uIR^9)=BuZG&~%Pw3z4LUPqQLRY@*>PFMLWlP-<$-HInMiXjp(KKNy|1N$mEi27J
z3>m8rj`k@%l%!x5m5RTY;v&-d2Q5O0aU^am3|AfDzg);aq<|mRq0_t3kBWvIhJpis
zdbe99{eiY4+<|AK9}r@(O&vCyh*7K@tL&~bRFjmZ+h%(?qhL|<nH;YGY*#d3SNC7s
z_<Pey6fCb^c%7Z#yh!Y!mja)hec&*GkW%yQTjo?URDChs<;4~Hh@I4i+=V!_tI3J*
zItf>}$+%cF7jIn*#e4Ie=^;ooWfzL-Ru~O>F``j9@6P{Hu>Y3WPRb8j4P*3w@{TgR
z*^|J9MJ7Af4;jlE-uX@qhOlXCsDT+6B2@vwiNc4+6qt&N>GeZhN?ToxdZfMJ2lCBd
z4f3y9{^%j~#>GH8r<`;3U+ee$DQ(2rAUBqZTkro6xBr?-w-P>(DrpmcioXgD{iPrH
zkUQvnEg?CJc^2&XFAMXWUhg72i6k@sPD1sKlp5P>(C}}N=s$|Y!;AD@d%-~z603Gn
zm7`LwwpLyD&VRP?$y3IiGw5U&L+_F|i$B)pk~wvZg=x^mn7f?+F8dMoulbR8Ctkg3
zGjneSow(ObdY#FXQWU*d=>NGjd2evK`(;VGTXR&2DRD;7F}C`UP?4k+Men~JI-Ze6
zMh$U5jrln%O=#1PMCO<^g*qIn{%a^n&!`Yr^-I665)Kg&CZ;ZH6D|o~Y4_fr@&6qM
zCm}T6jC51lkJ1Er<Um~!W>nhHsmsArUjsX+bITC!Bq}>(JYwwP!rNm~3i|0k5s||~
zR7WUuS%m5zc~SsTchYn>KopzEWLTndN$y3}PkxpoE*kkEV-(m5JM6~nf`41+3#<K{
z7>+qN*RKUJT)-*zM5K|3L<-&H?%@F2$tquE;$oca0799!&+cAfdiXFP!Ibp+pXycZ
zC2g^%XaTdbr^s%41Q})N(QI9;i2i>m5C^PU<RV!M{dA~M2Q>XZ6ciQ$$Z$P9(mB3f
z7=(;Th!YiTk&t4JL5&7w@vn>|#})eH(^*WQkrMzGUa7?Mp$5x92<6`}Qa!lNQJnJw
zQ?PI3O7HYMz(*xg>Sa;Ln!m=X36eZCN|Sw8`>dTfAuoY>o;z+#8jb$T2xfg=ZDBMa
z7E#(KWo9GEX?g)k^erhyhV6ohSdx4trLbUII2w^QG<n-FCl12&LO<1JIo;rsXeHO1
zrNwCJuZyU#RT3F=HYO2><}$7WK}52HK;Uz+>&SF{%_ftRkgySSZG|m)+*o2ip;S(!
zC6>NL-#Cgyney@3I;RuiyA<OtaX5h(BTI_#6M-xoBze*04RD1N?n}A{grK$@C6=O*
zfLJCbNY>@^<wHa!xbLOXsg?G+%6bRg%QZ{w1j~+5pAL==HH*a7P7cL`EMlIeVPSrE
zwWrG=^~Ik9mW)H+PBEdck;sw04O=$K-Es@NY3W{0k2v0!hUAlsYBVLO4>vOl2&6MT
z5~WJ4a@<|V1=TQwr9q)?{FnJY8zYvHu#>kyj(~{a-Fmj-Ugx^h-ym!UDog1Y=dnb4
z1>qPAJ!>rN6W=X)*tmyrWI!8Y_Ln2PnZCrwL42l6v=Rva>dp}yi=sh&00F~Yjqx^X
zgso=afQUv13PYzoMM0jXCJvCHW&;5ocX$9uk|Vs@<M4@^+hYQK0Bqm^d_~0;GuVco
zHxf9QMDlu2FCw68Q}abX$$wo5Nu`;6KcaC<2-zdX_h{<I!_FTyc6^*UC~$bj=x_LC
zJ`aZ5HstzLFnLP*8)WWS$`S~bIR{4U^%yGqBlt<QDl+0kNJ-?Y`LMu`Dx6h@bxx|u
zv(3}RC)M*J8stlam})>G;*@Xy2AM|Vg@qd+Q$l5DarU;?aAkmD0o^bFFP+lDL-1GX
z025DuOfg0nH6n#%0U;{XBQDM>>Wy{1Rr_?r%uaw!F>?3(dP<LPm5o3IEMWx%h!fXm
z2yyy|4|2gsiQyc~Jhgdnl!XtW3_p%vRfc!_K_@}``oSclW1U8#MmMmLv0Jbfw^Op!
zv==W<2$BZB__lE2`6TO@(%9tjv8c53c9}`YSA^3{5l~MrtT}=F3^!OV{X>f^UG9>h
zXmri1ATyJ_fi|*$-Y@3N<)~5mm^pFZ;68tISlNM#i6x*D9ga!IDj0S@-=DRNRwKo`
zGuH1*u-CTaQpy?Xw~vP6l;@)$69xK!1d79vg7pR9X>h$c2o+$&G!%gJ#BM<Wo#giO
zk}j-2J4nTbLNV`2Sl5jPLyY9_Lolbq0IMS=7>cE%0M}Ap5IqiODA48z$O`e^SSD~H
z4G#6e$wF*r9ID>ZC>zrz#*RhmVM+%z6hav2lUQ*vn5}LMyItp*`K-wu2d&@xO<#Q;
zk<e5zeCTmhD43$oA#FF35&(ObHe?uLkdn|ZJRE~tEfR7Hv41-V6{W^Al^zqMq4@k}
zZS+1L)0B+<Ddj62u6%Q9h9f$bp;S0bE}6b?yf>dM7fD(;iun^Um_q<_oDLDp&c0Z9
zC=`kZ2zKHpaWWj^L;`M6j2H+ZVG#+aPs~&cb9EzwAm}gwpHRU4fmZxJL7?xk1S$w9
zaKSwYSXgM_ntR|thva`&vV%Z{L?LGWgeIhjPQ(QCJXTOLfWjbQ6L#>ApT%TX&a3Oa
zf!22<wNDUH`L;`DIQPdL8R)$%2>KhuH24E6xV|&8;gUWed>wOs5X(#blD}|bUb*ei
zOAmrYcW%VI#56|o2z7*Xl6vF7qx3$p9_EObePgk<n9-Q1>sxl3NS0qFI)5rJA`MXt
zKxHE|0DN9<l$WXb`y32uw%Xd3+pRaR<e``fBIcNmEL8+Fpm^8Cq5O$B;EBEo=<_3^
z$-1JIYu>8ud#lYL=w6LQ*r^U5yG0v3e2rl|<n_=v>BW^dx;CpjiH|1MSKt=0tJpDU
zU%I*1s$zSqO~dJ4K|#B9Yyr5_vRK1hvT0WVM^Uv*Z<GB-0?;vh)q|}44Z^{=s1BFs
zKl|ZMpH^cs{43*$xXuehe!7u9$Mn?TBUck~qj>lwO~=S7t2w!m(F~&*C?)5VuSVEU
zBIe*WqdQ%~-XNH&4_dCbu_>7boK`1o0&_;1#>>v-=b(qWl1ER+l6y$~x^e8f@FY7O
z-M>_waVodO*mNVpzLRDCr5E(nyf_PtOTE{iNGz>P#1Myg#Vo0j`{v56GP3wZrqb3a
zWsMQSUS%i@-N}BVxp-gtxhjl!^?s98fD>7>os6IBu*e?jT1|@$@A0*!XyL-A1@D)P
zNDk7m=SVv(c)>|>k4Be9Z9hp@L9b1Fb`3Y;R8$|-&kElI^1YjAdOTEg9$t0m@IJOi
zd(D<BC54TZSTfs-$x_k`ysQh(whMZAmG{xPS(g`0E>eF)?h+ZX<x}&WCfki7V(vO^
z$<6gT1Fp%Y9fQ?Z+x79`peNb79fNoOPrL);22mY?wp74;8r`R@`>|OBSCAL2){CYt
z@jE+}p|v*|T&IR^Bm^2hfltgEB6J9p(sy>cBRlsKu;9nGR1T&U&TAs!$FM3K?3l-X
z_D%)&-ykIK*>Qs&wdca`z0*d5w*NPgu+XhL1tbgX6Du?Yy0Iy5Fb{(G(IPXmR0zlg
zh8HfYZUZxoyL_dMoVj`Kh3QchG``!Y#uOiMYxyndL(J1%!kl7(6BHa`D1s6CqLide
zul{0_dC&<RcQAo`K$Y5N%F&u<n(u1=UT`QKHueTp{>m48+$0OCo3_gf;=QhOQu#ti
zd-#cX7f;n;N0KxG+T6wgRF0ToTg%zgAJUUQQz}#kWC0kaZ5za`TcfbyX;aovXc3VI
zNfS8gvcqh}6SMUtpUVQSpOe9q_^kD7bL`8*X#u!_BuoL`=o&a-BGPm$&|y>>XxqSR
za`Nv*pLRMvC{H@)`JWkngM{l^WWQng4b-s9f53O|sl+D6OO)V;Zi<qVM1doZ+JD`g
zzf;Pm^?_!q(t4s-exlcUqF!A!o93X1<>=1&#GV7j$X(7KvKxh_iU}cU8V||y8zgw$
zYN67?hAU&f{@hegm?3R_(AiTA<>`^vNiA0HPR*{eNpq`SHT|6a2V@l|CB|Clj5>V|
zIpH|;gwziRHN|0bJ&Q{oWvySx`3cRG<NytZ7qDXb@R3_w0PQ=);Z6yC+iJ1p{*Qv4
z(4?ib9<jI3S)bBIprgngq1a>o{F~m057t`dms>yL2PMp+yo&jlw>Pl+%4rXeC9}@X
zOV%x2m-K5Y*G_vMl5~Nmh{kFxEYHTnU6ICB$Tq>KNA|uLIMYF+y1;-~`cJThLd)KY
zD{5;lv>Z_7AXu6=jfbO~gOTTQ7p_ND1ephw+ZvWlUB(rhOPbltu*ETs)&rCP_Fjoo
z{ObejRUd16ByHE$#s%s~i#XhmYLhSG#xhD86YSG*UVz*Dof2z9el9{XF(!Vyo`U)c
zR^0+xcnzG&AEe+Jn#!5^=I-%67F{u{%FP>zdlu}!LE>Miac!mX^q;zs9bRaKHxk0}
zx?=k`d?Uoy6GCxnyl$Qd^Bd_$vE#>A-uQ=43T@h`9M=9^OjU@Lz)eV*+jWcoIfw3X
zPXgfRl5knkpt%2o^<gW&v)K|iqv*0Vx{s>d-@GR>{(v5yO&nl-OhWB{v5tgjh@IJ*
zlEn|33V(45#e%5IOf#Rlum+mRt2x>5^H}a}kxujzo1?6kE)DtwKlF?qCM$77=d9ei
z?*wv&*LX}~L%U!l%QI_yo)cc4Rt-L>3azfruM7%tqhBGNT2hnF{gFH~XRfmNu=Z~I
z11$z~q(Ck%y|G&THI?s8=+(<(Wg|F%C}a@{*PxNPO?x>dBiL%qArEsF*O8+KT}I91
z)jVr&U)_Q9rJw6EGiJ*w0<&`FF*W<ht+ZiwPyflKHeh{$ScI7Xo1?gqO~HY_)y2Q4
z{rnR_k`4c|)?Ra<;PAP(N9_h~1}iht!su`dp9<Av7!5DPK{o2oNh`fBE5a^|fvu+4
zt)`l-yn6|P{?r0lqk)#}Qzi$zn+@$&WBSv&-42pseuJ#QV}q!;9NU?^AtT^C!@bBD
z=`{*<L>6MqoDOEhr@c<LwYy5FzOPl77MeG};b7t8BmzL)7LA&}@f_u0P@#gIPin~v
za*&-pr-P#GgZhJz$>Gqza+f_zMwcRKkW=^Rq(!nc9)2pmQ;dXEN@1^QuWDa*0xKIe
z`O?9nROz-Ux<-@NGdUGp6-1qNC^N7k>WEsBr<C4gKF3Gs$w#$X6lPkUEaN*Jb}?=_
zI+y>xq|1H6Lf6W-DC}=4!Q``$oU^!_oKR>`bz}IoEAc^8Mr<~)_U5|iQfacFQ?8K0
z8Nq02XQj#t`S_ST<>+tKwHAD)KV~$xqp;TCd2d4}eR3PRvAyRz^BTTYH&Uf!b!_PB
zGV9u>Tn8V++CD2Q&mizX2lo+QYm*TC1V*}c<n5}1!Vw1TdF;J?1>r33*k+MrFQO$T
zBjZ*DP#60HNkLCxG1!rp&>>nVSy$JKTJaO^FOymBirW2Z#b4O&<FiB1jyF6?<;4^z
z`fpr)%nyoq*g0o0{=5tNsCg_v4)(4Nz!oN-9E=h86`dD9ZXc$0N^(RdQEBj#CR&fx
zdO|QQ93gX~!l8kPYa*_2k@c#CxVaZcO+$*^PVl26&^PwSlty;|Mvckp%qbE&vFg#O
z?cTj}i-SkIR%^EDIO?Q)QV1fvI#h6*y}4F=jy(WNQlN^yH4Zfv!A3a|Wr7cGncXU*
zX;NsXOz5NZT=%2EWc18narL`shM{T$%gR!q3=61SeeEv|jci7-)t`w8Nhb^2qAIDP
z=)f>m6n$A#MZkQYeT`C*N)bXFy2WO`Av)DW-ja0V35!>NZlO7+aO2w5Vm1T4aeh!n
zxnO`-k-e=iKP&=(+t-kb*&?-RPSkw2WRfPdH1x}n`6y4AAYJ*fpx}kBx16zx<76fh
zUtSI2lF8Fryd%T2P3g`dV+^I3Y@Y|m98OJ|l{lo8I-F}NL=!AIA!@{v0nSjKH7^cK
zzu@!!sOFc{2PZiCc8iZpm9I5nmz-Jdw?&$7t|eolwu3m;P(c)Z4ste-(4WHRVtog!
zPxhHIiQdO_KO^WZy`kJ{WZdP>lh=fA(dwafs{NpJukx0^)qKw0Yr5qfwAyovSRS~>
z0G_7GICg<@LqW0<>PQK614>6g>8cU8&79M5#`Z9GbNv64+)|M_xXy5+^%4y>3+Jyu
z1NpgZc}k+5W5X64oq?MXvY`|&HGos?ey4d6sXKX5%<ePY)vA16oy|pb)1G>H7FS7a
z^KGZ9)p+p!DmXd|)R{U2>Qp2jrjOhzeUr*s?EOImH&Rc&Ep_X+28<4a4nBrz@YEHB
z3;zIYMhH0g;VPRFy;b+VEIYTyNN=^Xs*<hDsX^h%+~Nb8n6*j=A#0IW&QWf2#p4H3
zj{H#eBN@RPtvg-g2H?Vl-Q<T!S+MRi15i-A4K3a&{z&xsLt+@%ACVJxf&trcx@Pfj
zm~R1hbMg@2@Jc<b<1OBiufscbch@DsSNt6Zp<C9^A0fX%7+HgF-#gq!x;uTLeuFT)
zxa;n(|B&=KnvOlOySwMoBV7OY#*YH|dR@9t@3}Ps<5#rP^{)}h>DI0m4b7c#uah~1
zGu!VHnbxfV$Imqay&LK|`d2hcHVp{#b~YYZPq97Q?^?&>Z+3P3TKns||7QPD<*dMe
z^a`IV@UeEseQA=X4$xPJ_unRD@7r-3p7c}ICiwwXgLkKymYGsaacIQWtQ+cQ<3WvD
z*_d{mf#4_H>fN%3oUwbi9VTG)Qi58y+q00d=QwEZ-Zj_Cr+W(2^j65YY%a5tJ0Fk6
zw(CnDcSgKEDpt^M->Z3*@1K+9D&SO2&*=RzTAI3Y!rqsrBfC{xDUE#zOBIoTau4H5
z!R}sHg5t5FS3S_$D0$QjoLb@=hQ^`8SV4+;Sw5sP{50nGXax!0r;QCcl<`VDCM{_!
zBoQ-=6{42Sh6qS$?7UTmBSzz-L3pC{1XmZ8K`*L%Y3}mbUZo@nPhP*wL{^bB)KQUR
z2xd@l&E!k^#+Bxrqk+MTASVg-i#Okj%!Fck*djbyxs!Wo-b9aHPKN4@8FsRQDeAr$
zd4Yt<LZT37xoY!Qy~&Y#xqdQ7s-sZ;vM|!tswDZx?#%ctR^2h~-ynSIjVMP23APrk
za8;=`R8Db6L5}i66?}>2A`%f0M;!|v#<6Tacaz~Tu#`phzwO&peQ;VA^~@|HK!V{`
z->43CYVOJt^}1`bmV;OF@)MP3Yyzbab`A&Er8Ax87Mt=_ndU|KA^5)i3}`@J`+oEm
zmb>3Rv6r}sl}6WpZeU1y+iE41xEXVfnk831Mo+j=vl;SHbX|$54tw6zA#j%=aA%Wv
z;hbdb1vfDhwM`Mh7P=kdCpIpw>Ujtw>^OokR5$|N>cOfFEVFjM2`ghR`(5PrnA;MA
z%C_EvU>d#8VlC<1w14@2o|C<#E;MKbUoV?<P0?rM2m{z1l^v|f=fxx&;4+P+4gGx0
zfDhi;>Wp-^JHtB;Jfw2aKv4~Ck|6$%ECfaQPn;aIRIp8^a<}|c%WW%D@yvsmPyINE
zsPo0mjj3~vvSw)IPFI19J4F!*0=B6kSN58DWS0q}>_By>$Tk$Ay!N4!=`QOUEEDw~
z_vx2h-|Me~=e(bE=!V*^=Clb24o!C9_cHq96b?Ja{FPpa`kEvh>9+^NajGUoqmCc>
z%MjYR5I0)s<i=!`h@nn4?p>m1b3FOh{8)9d5L=XIXIt}QTrN4s_=cFVpgjG}28_a~
z1Eq;WSm7YEQDexe;eMKp@mI~z;4w`=qll2h2r1}_DYo5aY|I~N+v6v)p9{k0I$yPO
z@@*P9n{E5J7aGa01T$#i-@0uKodO_+pd#Sc;XM(-8JO+CibOMQ2cECpOeQ_2`%dtA
ztD~nmzjom~74MX0IMhTGL89{!z$)B;RrI3O;g1}y;@WcGB^=ze2AsNqyxCf_D462~
zJq*8dJX$YTzA^aEx1Y#CahET$IyQ)bpLRDPnLFASgo-=!m^fi;n=dkg)Owok&;*e-
zSqeMTZ%DOOA&a%;yC$9N8!~4pMD64a%w43_w>!8bYhw+vOwNYs6@L2-qNkK@dNRN`
z2TYTZIje~A`I<p*z8ZmVe(buXg#IJSOtjh(q9Y#<9h*LcYCRL)6D&)@%z5D`Hh*G%
zTUOdz_==2Eaq*%T#6H@_)#33cG#|op@ihc7C+l*IcTpy|2JfdfibgiYvPyFHTnDKy
z_5|_DtVLUqEb{i|WnVlT_M%>yb8q&%xd!pyEKCE@2-uYCL|nwyM0XaJKvx}a5Y!c=
zrYz({Q;HE~LmO|8&2Zso*9s(@MNV}vUc}FWwRR&q8X$UiDUik-x^?*w08j1?S(YlK
z5dz=A$sn2V(;1=FCNU^UVG|ulp;d=XulNQWU^7faJ-i~bo%>G%7&jur+X>vpTkK3>
zWOo5BLs?}H`d-tggARRr7tX?9X)f^x!G&VZ5)+Jdk2%iXeXoQTPyhc1PUg;EXz2tO
zF=S1cX{Lj2EoHf)nD)7Q3na@%3vfQLL?f2ql0OkU)O^BTx5wyZZbU!(^;1~kyBX}#
z%+(=ruhX3}OKXTa*)x*eC+c1d<W6NdG0)Jj1KbRs0w}E9L#Vkx)EC6PVW1jxXuV4K
zQlkt|*yW+86{9?qie#-=+yOHG*A^ijmF~=GR35GxPg-aTWTEs~<sB$W!XOpe!TAdo
z-mtpEYjb0H%bLIZ2Fcvbp@h<HZIfvPFLs2<$jB^^QODdy-^+Ki4YEJH*SJHR)a2(J
z)%a1rNH7-&`+}@s!^NzZyKx;m$GbhI@u>A(RI-g|hNXR^&PA<Jg22l0`OsP3X0Qh?
znP0H#0VjF($l|0WYH997;i2x#B~Ju_tDt<|js%no5=t|zjX8M8U(6j`ZKK91P)wRU
zULL2UwjnFLOau$fnN(!l-BIp;A8+M3s%BQ%{K_+)k{Pp0z+}s9^FsS&^cM~<2kkB=
zz|`Tx8|BVZGU8_FH;4euWc`k8>N#ms(ss*(T68Ly#)UQ4rH`BSyK0`{xJ(bT!9>%s
zeaWKmov+jd5~~d%WBDsL`EL-<?eVi8lcRoHtam`pcWk1P-&54vkFp=K(yg-%z`gP>
zqf+h?Qn&ts(-=psdQpNo7)Pak5x~e?GK^(95{ZZm(sXjjc@VbBHp~a(6X{pBtP;v>
zT+qpOQ+|HT+q5+uBt!=)IG4DtO$Gi9sumNjXrt^&*qQHJ_9{X#a;XHf3VGHcm}OO`
z_@bvk9ufhlMQ|}@nzEul4>9!2q5!WUO9UN-e<2!CTb|MpPeDZsyZOU5x#`QeYSlTp
z#`pU5eW3NESQCvtNFO>Its%}zCMHrf$1Dt7YU7GN?MpUki^=?bWw8IGtgHZYMRi(q
zE*0xO2$YrP=4std)Xevwbc~uK;7YO(9-FeByH9%bbcQ*=E)9+yReQmUf8bOIUS;SZ
z<`=z})`Z<O`meO=p3JlItTVWLODpGwt|T8ycckWx#e#Y7<jiw=wVKLgV9`_-E6TzQ
zPRgvbv`|E56<;L0e&I5RsBBvO+OXohwg?vFAQGwG44-0P=j7kbFXA2?D!xadH_()b
zgz1nq{~6bC7PySue(GT+CIB0SfNrx^J7GvEPNtxbevs2VMNDMo-T$8XFv4aTDu>5&
zU`I_l=$e>;j!aG3=kBG6KAcpyFZlH+7<^3f<~soZcs!4qZ-qCL>mfyeHt>1o`z0lo
zBc^O|Geu@So`>XQu*F2znXSd_o<;kwk+hTi9n>%n5ZZ*Kq?w1!9E}xWnEUoj@(ok?
z1zf%?LtwwAKm^MMmrtNke)+>tRB+DJl8lmRwiiuS<!kU!xf)}w@)m$5>nvmA*c!Gf
z-~ZG1@QX5PA6b+sHuH<1P0kYWrD@=FE6?-Rp&^Ty)LxCTq;MLyED9!>$lFW7`=tSu
zmz2{dXu+r<bJSuSBRAP6838$5&mux4_!Yr}TdmqU=l?`1a_7OKTTv4t8Cj7b(HBO#
zY!M6WJZM(=8}lY#v7jw?F6C@^Nfg@^Gx*%+6K@WOxUZCz9Y{N*&Y&y1xPgBwGmlOn
z%bu#L3e6^*8tEey3!N>)aJ4(}!oi`e*)!E=cw_&~woA|qN|xfHO~@C@C>4oQo|dtJ
zyjiN&4yfWrP@&}rj>1Kc^QlCgpT|<wFZYGZJ|1&cKRQp@w`JMQ`P`Y=2ngFm!j>Dk
zTZYm?Vbq9~U1tTN5cm`wD2h)U0IQ*?7~EV0&RPlcnqunFDx<AcBV}HqTqgtP{zyf%
zRL{c*NmTSfn^46*57)OZR7Ro}Nm3L=5~<dvCv9IsrFVYz?JYGakirDCOo}~19?X9V
zmJUSW?(+Ue<&OhSfFhh8(2Eeq7&?I$)Oqj~A4k_awv{TSar|-ip9XhwZw>q@#2QI>
z=}_4R?&1u1NE<c3m1q&bZ!VZTIDadW4n!7e{9+><iu2*-l*NKw+PoCsTQPO)$T0{h
zshkoYb9W5k>`KKf%c%;ksE`l+-Et>Z8+D||#e9KGCtVx$G~pItiDuPOg9o(Q$mGM>
z<#RUmFntOx0U1C^vs8;y{aju})EF=aFG&xKveOp(D^#t*<p2_*RC5l*Em9ka*vI-a
zxvSM&1HHllBZg7unQ$wp)1_bMQ~*zJK-+bWGliLS&e*S$t)4weU?*5?>(ryk;KmIC
z1zsB?t%9hT39j;2?^Q605yG~`2__K6>xWA4Hx>=VuYt-Ftta9?JSwLPqU=M75t3e=
z$>o)cK+J~2)3I{;Qn%B#CYpRCi92>rhIr_a0Cm?n3htq6?B7{n_<2i33%w;hA{eA6
zj8Had;Z+Y=tU!Ps#UJGW&H8!R&?d>JghJycBV&dM-;1HZOyh{RF?;ee=(l$4#|Z58
z>KeC`DjYP>pLlZxLn!MiQWPcOCHa=QL(JmX6txH)DF118z#yH4WS_-A&fs>JwMcU(
zw*Sh%*t7Gb4iUJi8RoM9fVLRxPpLBM*h#k-Z8UHEkeQn6x*qjdQ}4{zyepWQll>le
z94byZJNrUC?x_5^)>GP~U49N;Xgwvcg=CI{9y&WrnA9*tx4&=^PM?>L7x-|4R#uea
zw0)QvYA#!pZ^UxUL#QBscV+8_P;(W26{H43PDUMPcXh~h<ua_qKBn|Lz?B-D0M!W0
z0qzkewZ&Tccjtp<r5i=n4!A|6Lhcdc<{I3oLD{QEFE<mv+UCdRz8D#sem;elyeX}e
z2PZ9_*Lp3>vL>{*XGTX?kzchxg<}IYU6=9_HkwI+GnWuv8doNHBxr#)(O$e4Jd^w6
zH2Oi5rAy9TFAm!vn{wj8ZD7t{%S~e-1HdvYA=Q3%Zq^}5i;rhy)j->r{}^BM3w~j&
zf6UqSjj&Xs>lA@vDhRdlfIVjx9DeE^*V7~1;}y^9j`I+I_I>)L{*?74^mJWU*mL5`
z?fdoJ@-^rO=_~jMU4gft*IUKw6lMRzWeqXEDdqFW(=V$hphSuK?tg%(_=B+PL-qX_
zZTH1>IqrJ{+MAyj5WjV*)7PY1ytKSum=3sK7>kQKsTJAGvHb;^WEXnv_Y=;O4cFu{
z#6I^OEBmNpeCl53dQ`ge2fX&x@*Ucep<gWU8ue>zzkQ$Nv#QH&qWb8Y_v??s_lIly
z9}<hJSC@X2^kHh=>Y@>_r7J%+rQGm;`KYg#3G8<>mfy`0HB+n;=z%~oe_$M8Z|-#V
z<94DafkVNBTy5UDZkc436tA5s`g8_9OC0^!5_%)O*H!7iul$u|mJfFi{yIK^d`*S&
z)4re6wTk6AFHQgpG_}hbI<loXCv=n-+`gD_a$JA!`tq}b-SDFvL7>)7!ysqY{QfJk
zCg=VuX|$@c4?1o__12m%>5iZCh4jQCVwf=)CjwaUVz%GfezGmPE(~1p{<w{VA+1fX
z^<D?KC^VW4*Ef|7#~PGlnOHioYA&6NQ*Fm`uui!*n^e#U98&-MHI)5EmANwmt)4+}
zMO`8+yw-rr#<LiK1c#xplJAzLz;!9c_kT*TZ%G)su><GA8Lcq8AH++Hu`+aZmS2f6
z;Wgw%Ykpnoiy3f~U{6VHv!<flleXic_qUdx6l969vRoD2SY(kvk>;MYfi1D*Qni*a
zqw@$h?h`f)%1qd(2apSrUWr(4WM6tKN@QgRn};0Mk|yx&g>q3G<V^h{o`P`_=38*m
z61G_DN{D3_IfksS@N{$?;1LcH!ds+qR<#7P-HttJ!N|0_l0U{s(Mn|1LLDV=Q*q@g
zFK#ZvlZHg#+T!~{AkiPKZ5e`nTh?S#4t1Gy7Lbk(i>)&W1E;4owce@fdMo~by4Adh
zP&T+K<6lgrAEMH2qso-e>AqPXX~KYeMR=hH#AHSP#bn`Npg@5$L4*DeCJTgQg&;q%
zD59YgkuU*4Spx?s3}Gez_}&{#Hg@H@S$z?E$2`Mtq-49~e*jsqe*xL>mO+md>8UV{
zgJ6Hi<k42Q(13C*G?k4d;dz&kbC9FA3#uL7(PzrNka2}o0*jS$CpCs8xn9KF%z9-9
zN835uF<eRDvZW4G`d&>PGHbBs>(t}x)UD{Qfc&GZ;Fl(eLHM6mU4$4P8Ln({y(2rk
zBSCU%DjG^-dG<v=VCc?mRjzKM)m-E;Bmk>gXCa4iu*>;nE?60yHSAhtW}zSHp30m6
z_}v?MQar3GGeMVa_H&KtO}9zUC8sByd)=n2_hs+pzb8%_H_SIE;r8r@_h(IX53rrT
zC(DWj_ukl&Vw_XgYzVUd-@=p11@k%*m>A0Zv98_IkPX4;1Vp45@Kns;t6;tv(pGqW
z<li9byFXP|pZ#bq@B@k-L=&f9Z#6c$ieo!5tQ_QfN?eleb$ebXo`_yZXI~707^4$N
z>ef|zSsmwyV2)BeiI+t0;EA6ywyKvpkn_j7{hW0dS14X-r+e|18$)`o5d~&WONp*%
zBm16|0T4eSGequ@8i3Q({`4i(y~0){h@C_II%BohN?|Jx@&!(#@a5htAK&;3@r?UZ
zO7`0ZA*ue`Z;-8Xw$LMdv%KFRXKw<f7XcAi{<rdcYbEewoBKau2+V2M7H=ik9OQ>v
z`}he9@x76w;|2NX=6pOFW|8VC<1|#=^LzwoIya5Q1tI1YmhCiD^^wygm}016uIIZm
z0}reTb6z)%%}MBX4PM(kv%lXx7{UYt@zKyl$bA!*MjAH?$-GdhQ)oT#ed90F@DzD4
zi5bD3#RPX<cmc$+gGO!;^jI3Q9rLo|gW>G36E>gA_u{+eG7FB}uYTl}qy{i;5D=q!
z0tC!r&d&fI?hMqpo3z3*gP{b>VQXsHD@<YtJaU}$m~`gixK`5Dl(?H;W*fBa1r=ub
zW2^=^;m3SqGWG)~^74VXF6JE?_NRwEHGlKpZeW?!DIyjF&wzG2G?jdqpR3a=BoZ@k
zRqNhCV~y7;%<Hi@ir+%gAe{%UrED4(2w9S0rFR3fp&rYsS6Q^VBRoowVKLWfixS!5
z!<*@qqEl=tP1~5n{f#@<&0j;6Aj4IfPU@L?y?$-E?XJcmJ%?1PKV<pd;${*Iru543
z$xicXt7)^#s>5^H^=I|viGC-KjqA1M<yJZR!$);oz>;95kFqu%&DK$ma^v(#A6qP@
zEyU)n!V31x&<^i+l%vuPzW7kd6aUr{32w>(2hLTcz@@}E60bnJrk@JP5WR@45TsEv
z?)-y0SP28_bvJvRC8Kq->r4*#v(P5uD>N`ir3D!_%z)V`DtWeU)rw%#2VE#~=s<U&
zOD>FlR?pq^F8hhCR#Q7|TF#P*D1ch4<}Ob}d3o6ye~p(BFY1W3Fq+Y|P|xoAo3H>p
zsQe(#0(w1sIXAPJi>Vf)tXDqLSahulelnK++6le;F~w*|Cl>=PyrVa!pgBdakr;^V
zx1o&2e^T~pTmFrx;_{ZhF~C*?81AICQjkJc1cF*ZqDf&p;6SC_`4_|1O*dxj*kAsD
zF~ub5il8k&C(7VWWPQmJWV~)Cx+q<T6k1hug+nCAj0?dB+E=>3^;7jr#3&7%LFOSw
zR(YG<^D=srYg=d3W-Lb2-{lEYpEgl;I^p}mArBitg}>dbq2vpB*nlYH@^J)F#p!B&
zMmYhR9+B{hncCPJ(Sa_{r9$%GSmZ-?XGFqfVy$>P@SI$@QKGf1C9<uO)U7P2boI8q
zM8nIoJ&8HtKT|@i5Zo0d{&QDjExJBJe87PaUYZx@leL-ZM!1tp3>!w>cA3cC$Lr!$
zZaGEEsu&y!?Kex53~ttc?m0|>FkrW*7mCKOyprfO(e06gR6O|1cTW1<Cgxq55a`TX
z2>)xkmqQ-rQALgrcAb-Ih7e|UvyWNUA1RaeTj*6a6y{-1-v$;a@}@R~po{1_U+dL)
zJYx=Vlv6YSB`&s2K#i6oqvSV;Lf|+YL2Sf@t%O)NNq&zv>ok7lHT<YP^$ICZKvoKX
zXXNNb1NSG4tK`^uwwu97By1gS`5^&#9<Rz1$RMk+hTt*=`7*~!rdi6pvaTrVWHT=O
z1^}H(E@V?}y?6)O!ooD_EWg*8Rl>3G5Q4e#!o~|cq#|jd8{)-eErhgA%tdF+ptRhh
ztSTN@7_)?gz<v}oO_1D!;cqKdi!^kcBCZu3?t?HB<^>Vf?zU`@Uw#fsxlA_WCAr@s
zL#&mqf!>&G642I;a*9pHD<YIC#piQ1MUw$J6@0jRjlr1Wd=%#c2B4nRj;SKF3k}<i
z>Sbo#<~2&wzO%YT-{12?A~Fe2lh4Y!*J&4({hC!$qBE=&bP%e6U5&O9XM1a*or^qk
zUCFNOvVlYZNrOsBW8>L((M<LN(9t=%N}8)nUGUlg7ic;@e;LEZ4#|Eim8jN0Wc5@4
zI7tMzpm?V>`X)a1Uf#(NVtq_(V4LhnJ0W*V%mTA=mtn$rK+btY!g)r%oQT1qgKSpN
zlVxM6Q~Zu71zKr=#dCboCK#>5B&W2TzYt2PvO^wMTTC7e-+}qEn2U<V$*ooy>LTo#
zu06*|<T9|OwW`-pcH7tJe(~K^XdJlh9H3pg&uQ(l<9?0&XD73mqPNULHYeif9GZcb
za7)`&u(QMvhDRK|7E54~5-ApWTOVR4s8ji(ijWpvtPDPq-@&Ya;lZHQxFnkB`=YN-
z2<@3C3Yy6#yi5<$=6kWx+|=lq(`u*%cG(tiTGigaA4XH8nntGDGQ8Qt7M+7RV-Qqc
zHfpPc`B|%|TO;|oc)WG5ge>h0nqsWa7V)z(Jm3sa9497L9EeeLr1^Bl+JvsAdYV5t
z;>={SC(74T#O7t-lpXQ?-4QzVNuQr?D5i$zlQ(69xvPD#b5g^0<ubJmIo*i=l-phL
zLsr9{75nyB%AC?f7~ZiTjh)oE07Zk&TiO3y^4)Szg8n8jE_Lf$F<zU;a9;;Gk|$b2
z{v3nBypl<Yr?+X)6BghOwwOBcX7^Rn!ow)THz_n;SyQ3?#HYFyr85OAn;k4y<u6KD
ziUIbw``)@VirB^PvX9+rRlnAzeX7QIU50x<5BB}p*X_Bh*JWSx-zS2ACwTqLiq$;m
zA3^>4Cdyk}0eY&{m*+a`OC2p$ZvPAq;g|cU8~Yf^s&p_rWj=J^WcKAnzd?NQ1DQhD
zg%3mEeNz4A?!QJ5?2!C)ES7|nIjN_Lpo=ROAYA^kQ%8%cdsMYhyDNhP*RnM4USfom
zXCXqcg-BOEmXheB9vle4a5^>?+7=wshVp;dd+VsS)~0V5ZIMDL?i44%T8bBU0zm>n
zf;$0%L!m~Yc!5H2Ef(C}ic8VrS}5-Bh0?w`=YH;U&V7IDS>LzT_wTz_vT|j!*?VWM
znQLZ#GjmONI}~!m9MFj}FPu%OMDVopkWgJ=0%kZ(be#oFfr(=efE9(u20+gr0Utdc
zI9jxkgZ0Bjwe@bwahwLLH%ym!MW)AHO5;r(>UDm~PW7AY7hfnNrLPP6>_1YFc%;#-
zR+G!~e)p`f`o$o;I_pIk6872kM5K_jv3-y6F2#+cpD_6CMVIu;m{;krjJu58gRxuA
zHaqbg=Z|08?3$WA-}WEPjT9{8oE^;_mMvoEtb+H18P$%5rcbVp&4O*~gPwEzuumgb
zf3@pTB)pA(fB5rIaNC2SBf{gMk>mVzGj6i?es46ryl)=XlC8MpeoDJ0zDe7SYz_1}
zI;|gf8T!a~lTHy_%h2fX-2EKT5fxVMO&Ah%gxl456>uKbG2!LB@?FQWB9iLf!QgxE
zjcuzy(W9q)jcx@}$Hop1Tc~o~Xn#b*+>atJXZY@pjrK=EUu;z!@fR4TT)%;yvz7Gq
z*d621etU68=3NjuT%b%E%*}U6XNG+)Z$IPlw!ltzNV)G?z1^?xMrM5<7`#YHWOTKN
zHrOcgd-M)}oK$^U_WX_E6sENAM7^7edw0(`gq9#5ho8&Byq!_QQ}F?}J;h^#HCf#i
zd5uy2&(@EcI-O27?D`QG${o%XRvK!NxH@G@hwqrbJy?)|E|c#T+}aIGlYiqXmMI(o
zq{<($BT=#n(*@R5_P4{*IER(reX}CTE_J?&br2R%Ri1DIH-m|8hZW>Wg9oU2eld;D
zquz3*yx&X{ko)<915qnNknco6W`Fs@JPjc8`JI0;Fty@yrjsbAGgw6A=;dX=z`2_c
zxZ9VximGCRb~kYSNx@R}wEE@ik5eM(R><-;)~_efaaCqK%THB0M_we|nN^Liu)p3Y
zJ7t9<CJhKDioc#}kT*WGJ9<ecU#}OOMIunuG*YNAIRzQ@sP3EydZe%f4usMTgHEb@
zAiJLI*z!hrO`$0%m;OOSQDQvz3ThTs3#v=w47J5?ha0sC3ktm`y{dtnrVdUl*`Z5O
zLKWs!*`m`O?x=Uba;7^gPalM!M<UJpqlYPLPu{GY8QVT=k#daaxC$9|OOiVNktbP3
z0soC5ex7)Ccx~{-+53wzjK8VSF8h1Tbt=*9X+fGjFccLJg~A36^?&A%b2)q7)+%lE
zWZ$CfBkK*RoaVOs)}`2=I~UOM0QJ`F>NJ;_aV8YNBd5ROl+8vTo`!v$wDctuw1eHU
z9HdH8{!HvXEebQl9>e@rO)F=LU2EAI^m1423hQDr@ep^fkpCOu48*K~sw}t772w;T
z-CIMY|M?!ngQMN25<w}?O5enI4`)RDl3&%9xJ8%MX^JdM2OUHj1Jms9FTt-HfM(0V
zM5i~U{Yj_ohc0T;!V)DR_+v!WR3sk{^95^0=eCn`tG|96vr`05`xvTiw?wxNg?JGM
zdt6Xw$PLp>xAt@Kgi+kAxKT6ip1ZZ(2}pq0^%G5@6wg16`)G!VV&78>Rld@TfIGPp
z#hQ4OoNMX99-rLsI~o#v=v*oe%2=vjQZe?=rk-*>L{@EEZ5Mn^^>hQ#@<Wx5A#Xnp
z$-PQj<=4t=;(0MBLRqM(yveNK5k^&x{ws_Fd|DwYnlxE-3M?MX#%}Vg-^KnVZNx4u
zjIIj$^In>#U(arU<UI5d#f$HA<HwFdo>N+<rVo_MVC8%5xJ=&v`L<5=7rGNL9Y@oa
z;dc3krSBbCIj~llz=y@*!1^u)mo9BfN4#ii{)^3tDWLv&lfWM?2ji({uB*l#QT(>S
zv%^K+8#F%jak^i6xNXh48n#m(g4?t5D(j^vhPC!@j6`1?t*+dJbSKp>71;JluMRl9
zYN6}3b;8E!xsNMYal_dJmUdFdlmx#%ELAJ`j1FKS-*3-ZTTun}bqM3ysi(V_>M|(}
zvQoEjND)qMEx|;TPqbD_VJVm9_zirRT@LH7pKEmvHL1dhiQRd6>!wvwSR8G95e`;D
zkyzGGmK2nxY7Tq*1>x9eR(P_p%D?|0c+0$ys9`C>&YbU{3+JU6sZw0hwI|rYQ7sb7
z3S03$+sa}D{9++eGDEB7bTI^o?OYTwPlt`|5_YN?YO)YaX)_k9$Sbv79rO56Rq>#s
z!#h-T*6s%(5X)?E<YDjEmK`#HTA``dZ;UddMs;#>9qd%y`}c&RxR5TAErv+RM?h0O
zI*wH($07}*MsvM6Z{0nP>X$@VUy_WT>^E0djY^tZIeP4b%%Hv^$8^l?r}*62Vs&P@
zM^C<}MaeBStn=>u^|7v#Eo#V0)TOHIM&&*~Z%9m*VNWh<k)0MA!i|sG87VBc6Y*B2
zCCGy}m{vW5<pt{WJP;R<b3BusT9=_;$JMpke-InQpwY4X@)3UTaXN0hKJv+q>3*C~
z3msv5DS3TvR2Y*EWG$fRe)RPC7t)QZG%^@1ml)0%nYB;Gm;JZggE2`(Qh;X3$P|_o
zD`MxF?|nHQv89gn3m7I)g55T+n4XKBW4XO1>gPb=4shTqkSw!-VE)Mt6B)Os^M~d0
z_x&9Wubn7sYpP6PEnDtsyK|I$rCpV)k6M4Jp6KqUWH&87@_PTK6z-O(`EHXS>n(nE
zK-jlwOl#Yz&q9M=v)@<cI8ofUQJfX-3Ew2P*UDqO&ZOuyJLHNnp4YC`T20g|%?_a%
z@glU3=-R7j7`*HJ>pgMTnJ&EcUjM<Hsjg36@*niI0xty#W=SZ(2%dz*a<OmuO<!Va
zof#tBM=rMJXefSF^OR2hYNUWtLaFFup3fksmI?|AP|PMJ9~|ACu=<vgM+CJk?~Cu5
z4(rVS<&zQR;C9s2=F45p#PZS{riG3>Q$CHCf%N-`Z{`zgvn@ApI%~eCUXF;<y>_u3
zJrD~Br<08QRLpdZ?l93fseo<}u~g&^Yo0Dx51t$o)Y38(9juMs6llzt`_q>t9{5m|
zjBNmw!o}6<$_l;tCI<1#2v3?%HR#-O2%HWMC-kDso}y2xnG|2lEqU~PcJ8JUEw2|=
z=?Y+{vJHj4bzcm!psMJjnHqWA+P4JE-j&k_k%{)?8i{anaDt;EmS?j{Hd?T`()q>#
zqi9>7Pet!7&=KyG$~P^Gx<~vj#WHWR_D5+~&9bc0zSi8nQ``$i&;HIhjj%?&Azz{}
zbuA$oQhRc0IXZjtbHWChtS){*{L(3M%BRU`WQ$Otdo3%AnnDtp+yT+#pCX-T^t;>G
z2}rEGl;vq{qEEE*Ovnan8T%DUZMIZgp$)jYi;!B(&knc+l$kJp2izjck3ss5vx<rY
zua!I9%#EE{tY1u+Tyu_eyRT_e(S@enIo@W?x~FvNz_5^aN&*<MGN|?Wh3_9(g0xB@
z1x_D?h>{Dczj_Tf*D-8ginNBl&3oNejQLq;iawLuRm)=ciSXPtly=48o+)~5dNmlS
z>74Bxh|KFd{jAJ>=*K;YG~GJ=torBB9X$+wkGztOJ5hc#$Q2I51XR>7<jijEP<Ldh
z_9qb8SvCk2P~7J|bu|gqp%txhls^ao=FFxYKN1486*BSfFiZ<gLZW><ya_{PQCxX8
zL!6K~8ovt$N0<iQSdrx;tD}Q8^5GckeV@p1d2~~YM`JP^Xx}r_L$=3N7SD2)G=^m*
zASfqG#Ni?vgVw<|gMrPyG<ea@yX&*{EBspY{&F{VgEw+m%R1(|qX4)zeoA(KC=0g`
z$TcfVtKqT3Mc>My@mpFl^}OmsWmWlh!bGOvY_P0PPJnlL^+GTpiIDSVHMePVezS25
z&t6$Uy$(O>M251kBH*bm@DGC4g0gghAhW<Q<;U~ppN46B>>JqNDr2YK3}j2wORG6>
zVdAn2%4e&z&2_dUBLz;Ecu@nh#EjKadfPjG7n-c9YQHgxc&r8XDXR^ueHD-nuR<;J
z>3tO0*1B;2bhU-3BdJIOm15l>O%R^q5j2r%egeYuJ6&_a-{<F9RLCQ^B*+;!Y3c2h
zo!K?u_GdhkVTw#@eUbOyz2QpU!5M_nV*KFm_Am<Rf6JQuO-k*AetPB9EOfK}A@ZlP
zP{Zr!^C(BxA6!x~dx&p2U)_?FC=~aUx*hXB@u!LjX?%QOxqiTmWBUoETs3*eOtXYP
z!g00`tjCysh{|`j+eK4X-AlKoF?<&XEqlbu_sh8Q*cUKomOeci>1(_Pd{F{1an-qV
zgP3^eMgPnDMKET_9?~j3#l<gJI$d-7ywRKUYA_`1h()!pWzjexC-I*CJ+0t<9p>ig
zz=tnxwAdKe^l7<R=!JKKIz?Wt(0mpe7Aqqq8K!Pu)z#|?UDW3qkFuqTS|@PkexMc}
z7v4cms(Wrr-5r2psZhj;m!t>=JT6ozdF0QoFfS=lldA;oj@W<rb~k(`e<Z#4zIdqj
z5##v~$EJU0QBscI^P?Wy&(Z1iXNJ5xjc<+)a!7)O<a;b$ik0Ku@wga-dq1oCoOOll
zHw#!wAsKd-)laKB8ru0bH&JI}dU+W@T@pR_gVVyj-}+H^7LrcTFk@**zuH|i?ukAD
z^ns=|HS?OS{qhl;_YAs4kD$PHzPS#1d2*z`tcSaW8qH9Ld=^@nsc&ZRS|Pbdh#?VM
zM#WXH8${xOydT~fYE7Zlhb~PlnKyQzyy(qx0lT^u92MUAJAKq&%$_iB)Ioh3nA0eD
zG5PCDopSMS42=KnYyB9Q?w$kTka76W=bQ~cXIADU`!;LRnjfn-kv(C!m5y)yu-)$)
zCh1dJSak8=W8-fOo0q}L=#F1i`4)BbU9&@&N4|G4E}3@<noph6e(v2~`f<N`@H3=)
zA-7G4Z0M?Gh>S#w@A2JUsPxP87b*gBbjjp;&55gFerV@r=CX}k?N$D-w%S}<qo+@{
zOWLpYyBot4yNNH*ugvpmYxZj@;rjBPCwHA~<Xu+;DUqGMp0c0N`{}*W`;8&JI}~<o
z7#*IC)e*qjYUDR8aQX4$X^R#WQ^*wk&;5ad2PM?R=U;wG71i)bNsnVCvQ{aFOp(?2
zXJ`9~Q9%g{zpFR=^vfMg)s)`Al%XwlV>G+ah5MzzGnsr#x0j%f?w#-N%BWHaPViDV
zzlCOPd=OZV7;Q<#edliU%AqK-_nZH^=qL+G%S24H@B?v6ZSvls3n#>8XlgtUHFKhj
zP7o1EXMs7$s|QoZ{A)DYRg<G?N@y5`O4hi!JkCyigA#=dn9N~payUUBkUeqL(0-;&
zwsFT3-BODk2A((layu+$8!V{X*lGq%ai&nei~$dekk<P$*N_Zlg&A^$Cw!zZ>f|z}
zyGmhA(VhpS`bn=4#R;4;by7oZw2@y8IG59WdkeFJvP1|<!r!j*PnB(?d^sOpz%yMY
zaQm#FId3SQ!352y0QVGZ9Lr;GCV!A(>ZB7o`4v4UcL&R-pSBT^<}Z-9=C@kA<2)c=
z{FHJ@pY0W;KL6u42A)&Ue%uOj7<)u>j%!Wf8!R<QM>6;B-KQ|_$HlHM7AXLbYDTLc
zh9p6~8F)^C{1^;7I}2tQ!RQbY>kB%<=mu?)$lW?Lnm{Ljim&d9;~lBPs4lH(3SFu$
zx|bLfFUE)$=<?YPs<<*+A>KhkbcvuF6B4Qh0&VOEJ8Tr=Dfsf)RusT4rUZ%FWI825
zGet(}PRw-EUb+?G;b<G)MnOL)d3u2LP4Mk+jM+AHxXcLMJ{1ca8=L6C{rgzBIG9-X
z(O)re9+5IX#U+y^A!iYICa7)U786@JcJDFk6B#*o4}WC#xDdoMtE#$#f=$aZVC7i8
zlagKMeVkR!#EF9N>U~{TFYlVJ|LL-NPa5lp;)~yVo&Jz|ZR7mwh1Z{N8Xv}r-joyN
z7Togt3jvq~Zpn+LF`5Id-UyC!BR5RbXM=d^F!0I(G}F78b?l2Rsxr4dEVXnZ%|Elo
zZrZZ<-DF~#DUj(9ePtPgYqG~L%8h@Vq1W19yH$$Sc~G@L{8{i6J7p0A2GX1vO;U(E
zZ?19?Yuw_3v_8&7auZumZ!EpFVP<2l;IHA1dMCQ#q&_G$G!M5m&MP)4FIKl8C95jy
zZ`x)r*}yXq#hbtanIv-Lsnn)A4$}iUR<M-ZP5Q-x!n63af+pyIVA+sd_Kl3BBx`>Q
z3=7b7ZG%}J1?yA3{gN->iiHe!zqklXi($(<RK+-fw~$KN?0&_m#lfUL;8d5U@0mrX
z3@2fbg}`OPcw!A-W?lR#878|Uo^}-@Z}gZ{;x%)l5O-%2GMB)TEb_RqG1expM;C5d
z&|gTPC5QZ>MNP{Yz$vUrxu}M3PdVe(TCZb8Ho;-xTsJw<(^>JFrm28lb&Sp{VNY%w
zp;+;Ti#MKk0jroNvy`j!D#jDP*BF${GWD69K}(l>H|1W?dQJ9s3H&%w<QQe?jFpA~
zJJ1Wvv3d&Awtr>CP2QO1@U7ALCNJDYnFkO@#l(9s$QzH6$d#js_Y_63igOY1OsBtm
z8a%xlJ_R3~bnx!$H`+Lw`tmx(ZnE)OUB$4u{qfm%LVWVOjo%oJx=}mP?azyWk6pEa
zW{U>!emO#Rte!NUUQ?U&!(VVr`3I*E2W945>!Ik)MFQ@0ddQX8PSOCPQec6&pstCx
z*#<nm%1?!tV8vxaSyVp`!?&{5%OC&>AZs=acEfPdA&Ne40Z>iY=CA94$iZRZuEyo6
z_*$p9N0p)<vQ^Wv;$ZckKyx62?17jsWj=!-)Q@T94jKlSMk5nm*w?Dsnf0!Pf-;@;
zM&^3O+~nqt3598*N+Z5nO^3osOGGhCrvWr3(}040G9nQ5V_c1KfrZoY0wTps!#U=6
z+zY*cEGh~7##peu=@#L&wjF8!XRsv21ITMAHEC)r-3{nSySNh)HJ^s(RnW-EI1%7P
z0BAIz@sC*2vV(UerYDtLi62|=3PvZ4b45SNeE~{Kb#+eQ*%qd-CzdyeS1;wEL>AW|
z`6X&Ys>yL7b!pgp@x+xXjuRdypV(az+w_@FZ3NMqqyi*@=@P6-f{~=@B6vK5SfqNW
zCC8VM>Qc9G;XD<c_*N84x>m`OZy?`=@I(;rCp&8nn0Cbiyn}@)!=_2{X%o{~FiB%z
z^x7+B5+`1XK&2)Px2+xZy#a15dh7s(bQQ6g07$h7ekWaqme@2>E7pXdmqw=@+2ucJ
zKZmDQ&aUe9xwy2bv#&-rNyex==8yk05f#n)5$sQx4A4m{Bq!;fc(=uVVEY@RM5}WP
zN$k~)!*%kIgK<&O{S$k<uZ_$=V;Wd61#&GAMZwOl3e}0~o@R)L%J>q<vNA;Hstv?9
z1P$m2obtg`$OA@nKD{;9v2fQS^|8m@N?^|i#ZmB3VvHif&B&fD7Zlm>=0;+RkX7l;
z*m}({YByyzcHmpyuw&A9Mo)gQF670+)DuDa8Kfq-m(`1&E*a>bjqf$G8VSX7#P9~Y
zSlJU}H0dhuch}y2PG#o=yOq;B+6v^3vsVo7BQV>kK%q&~Q<YCG3!%#f<hSS3<Y~!L
zKXZUW!x)q?X2p(<v=^v`dO{mQZsG8L;Zm|L{5S*%22m}loTL4L?yK!x6j_wxP%vLa
zFoK~+y64UxSD?!feE%lLNBa2nSPRp&l>O4fpG<--_kTT15qXd9gE&mrfv(Wsj6`o>
z({ZMB?6>^m|DOB*po7v&?agr%iZU_<D@Qh8t1ww4AtlD%ur>G-?Eez+{~t32iSNhm
z$hmM@oH=Biy!GD=Gt-SKUqigf`Z%PKdA|75;g<-yEh3Tp691^AHurAK)H<@$WQ(>Y
ze!4T<F$Bk@{zlQe_tr00-|4@H-O~+T&U3@#^WlX?#!^6dot%H%>%p>_X?#%GYIaC$
z?Paj^Q}Oo`FHVYk+So=QwgcpQb?Q~qv~*q^v!>xI5yJWO@<l9l3*?~UT+^37jq5C?
z>W#cAvNMSBzH54hA4HyCp_TD}55wNw7Q5nbBuql{qp%1j;06RsZ~{CnZPn}o*C%<M
z<GN{zE+iD%^7#pbsxZ(*xT8<RV$HmWztL)G0S`7ftn@fH3$Cp=kX0&XB^;ky6pwPr
zf1m*psz<u<mJ<#{$1nC&Z=I@s(ld8p{EJ|0ap(Fs4(vb*s<nQ)6v;6{kRtA^JCW+w
zTeHK6@&qgbyM+OdaAzAJz^e#cpiR)jN*973l5z+~fs!K<ZqgL$<_r^)DBH)k<!0o=
zp2nhH#q)@+&wubxjW;P-M@DBJzCG)5Gr3%u6D}=#)z~O9u8Vu95uKN8u%c&8aoWJj
zUd|#No0?=)$nO5ZZ7w9GXY_7Lh&s``Xe}Z!4jGW#XFH4Vz&BJw)qfx6ZI-*GB;r}2
zf#^TZfvJ^2z+0)7g&>_z5Js3Bzv?jIfTDBRlY2@YoI<y`9dBAvP@)Xh!tnIWDq(99
zlvyZs(icNZ)s}CU9-IqF_dCTo2uPM;Ez5Eh?e-B3jbgUR5chz2Tzu?~;1p;EDCNg<
zGkdEuvI0pFKiU@KCZU|K!3-(Fv*4QMG>%keSD{8|dl%`~QQpUs56E<kSjW102G9jB
zI|c82tn4%FADg&Nrks<_FidPfpS%~JoLq}k*XgXwb5RUhO`$ss^KMQ`RLC9b1rHGA
z3t%BiYcgw1NhxxBHLV)+Vs35tE8WRdbG6|!v|A&n53=4TA<yHH1hvtD-GgjDrj!p^
z@(#ibFKcO@rlp;SbB^BHB2SBFzC6A*zB8%8q#&k}I#UsoH_8Na1B$QwJ!*7+*?+LI
z#*}4=dCvcB0?SZ`hNloQkT+a1@r44U4bDI~U?tv-vEDxVnGVlwFs2bUR2BPhukiI2
zS2P&lq_-%##=N2GYrBxHx!>p2&PZ9-Fs=_>l?8>vgZM^S`6c;*gBtjGqvXNk@rK6D
z+$@>q&??s8-xzGk7q<7Zj;OX73*s+Sc289wXKCAf9~TikQzYe*zH5qlB_5o+byt3+
zn935O07LzJf)WnQExRBAm>RG>a0?O*WCxng`ulEt5LUbwTB~+#(QoTv(T?>^4i4k1
zVRIWjlL6!2i&7CJFWu^&zm;c7N|)VfzMfjG<^#YfN{tL<x4_3XM(Vda_bj8bHgb8v
z$m}?d#dQl~{9t`xt>}2HE<mABfsxc@>%<*htv`9k>L8XS*!&x#R1qx(pJXN9KJGW7
zIj>{jnlMLVZZU%Ydr^`4(3Y3~<HC#n((6yLIf}><*o3__u9Ot*V$Q9#$*tNAKm<LW
zZ;o(+=UpqkL=0sFTW_QT5~>Kxq$r?MaJ??8O8R2~mjij1%lUQnPCDntgpKeos8r#i
zr>MczCZ@p<?$3OChCdgqMUoK$0}%V|N+_9~t%GPG=}>drr$m=ag}8w;fD^B#WEy3W
z7QD8_-ECT}iSslzO5Bb%(JK}20dK83zLhIju4Q+IkvrQ1AT016gqRDgPMx-d)>PDT
z+A_HE9C&->Q#_48C1~ws+qfI@w@;z!g23XZq8Q9YQ_sc8>I8$^$yVx(eEHsv8Yh1y
zDwIWRCOV9=oX-JJR}cZ+>DH9g8G&F28-e-7XO9c<s*L22SgEocIixCmc=0J}jmKxa
zjp@~vi@EO|zNVTIF{;nZQ~&JVeF*;ETTVIIWE^LZV6=hTA6O^zN^aa`_Czn68j%mV
z&JycB&_&TAMT=M0{SM!zgrT>Ca^Q}30KdfFizsPKD-~R-&G5||?P_f4)bZgsNW6dw
zjzv7>mK0y(a!}>}wOi7W!aid(GU-&JjW0;$bTsyGee<+>#BeY|HO$|3*1iInYhgPo
zgfoG7t)VF$zloY*yFJ}LZoc;jm>q4R+Sr-<!I8VvF<U@~%vTOh)EE=<<Pbhc;5Oc*
zTVN^~?S7W50iR1&UG2fgMAb}=m<I{tB6U*-Dr@r<Y-qa5V@vbQY-$IGDkgZ?gGdOX
zYd=7-=0+Y6%_#Jm)qQ>~z*fBrVyNrXTb&G|)$2#ly>{A(_++kuGxR*wM-yDJY63=r
zqNAIF@)1hy<fUUVc?#!4Yt<2ZVZjPtY%Mxc$%pBJNT5{|lr<SNVl|@m?;|o7+?ctw
zQ5!PGL~f`h<^PRi$>#*i2kAV>hOuF`ZHr`_Ty^xuLz7*D!wsvXs|;RhAY%|nZkqxe
z{bYR6c3@TsQCn48kz0SkD-3Z$*Cvz9#>JycMLf3g3owV49A+9{T!nC$BozAUEy}>U
zG`M^Roq(MmX-FuzMx9Uz8@<nCp%tmuywn;RYOF?C?c0hPi+pyneS6=DrOrRA4G?-^
zIueOyp%6g^hUflaK}`dCwkc}-uom7LShh-M>a(x72m#Oso0NvNsJJ>e5TZ~|nIu<j
zuwj@CxCAdIG;&b$M5U@|L6Nwt6=B{abcmWjW&k-p$Qi@;**_L?MRs~MwX!+;IzYc}
z=VnrJ0tIj==!v&1NBnci$Tt<;<B__nK<DbWsYMo-Dg7hEm`|>bi0*A44t-xCf3ICT
z&KFoxljpbzjMr>Zx&3MU@$Tz{w)AGC`h10COr0*cF0~i&NZ=4+QHUB+7eB~Op(Cc9
zh2B0EJq*?s0nT@S9yYPAdy=h^g_Xk0I|vdS*IG5j1Y{C33q#7ZSk2V?1=o6qQIF~>
zYipiB1@-83i}9RlMlC3nh(7F}%H^Kn4VBvTuq0B%8*whRKA8NLsv+7e+)wvP)QB3G
z!fl}2nWE~3*wj_&X&%l{TQgP#2~YS7lV)w^@8<7DF+Wgk1_n%4<gh-NMR6hdsZ8(^
z6XlH1l*+;<$5&~<kchIIN}>&EG0S|Jtv|(D+|M>W=m>)(0wMS)INgVgorukP@2^Df
z!6ocLY#|grU}5Ds++pW~47z)%2H%XY)HMN{lkZxlkXfKnre)s0jj<E{{`LLbUFy1G
z6=$eR!ekB<M>IzEfFM_3GE>Wj3scyiAfH-fnlZtVr=J<$%UXC%A>n{4Rj5v|%Q;c&
zBCAQ5E8d;p6BS1u9i)?YKC`nXvgh?E!}OuyN_7vO1svcuT%^H4dRXuNl_-PjoBm-^
zvfJilU||i0N^geAe@Vcp2SApWxfYjOX2JV629D#wgSVDm_w$a{^uwn8su|pPOT8%*
z=_rx9V3pd)<M@U-xPs|>Ic1@-r|j`T$?;7)ZUnO0uX&Y%M4URn_ZLZrhq37KIt+4s
zGf(_Iq1J4=gx9K>TT&vNLv;a0&QmB?Kg|D9gTAV4-0cl>K=4zMOTYhkfEQAY-1_rX
zHCx>I4hTJV(o-HTL1Dq_{ue|nHo@-MS_>|s*+D8znNuiI#mp?P<B1;M1-ZI?%Dp>|
zT!lQfctiOKzK}R2<_9Foee!otIpdA;kBD$-?M(?7dvtyJ@%3hu(rXbC((Sfy4E+nt
zOFK#9!jaAxa(0YKa)zc;UJa+Ny>Fr2O>^T(e=)(vS?!EBMQU$c8ydR%kEhkswuK8^
z#+3}p))WeYLg!+u*d}DjgE<MD615?s=UwB^s=gNP?-k7o<YQk>sxZqu@{w{Q5A*d+
zO#``T2s=2C-LY&lOq5ylH00C9t0^UrgmW$C)7@1Fyn05gE{w9%Nz3aUrNBxNyzYPc
zgt$?-T3Ke}7xtg?NeB<LQ-M$#mGYv1IC+o6_dg)3+#jS(Xo{F8QiS2HVjYTRWT+7&
zSlV<aq-s@p1G1p$lo5Y<1E<x6n*N9?@}gyzgI{?6P(@_wiDl!-TMU2%`A|8%xPxyv
z0Y*3%+rd;^5es@4AYuS&@=|`HQFhC#-D?ub01^5eM1mzFNKP*CI)>-x@F9TCiI<4r
zSJrEx%jw@31S@SaUOxRabrX7XwN5h+m!C<Mv`;?C+c2FzOwk_195B1k#A^~3L+=$>
zC9*&U`2qg9Kh#{O%ftQ{3kXn`3%ZuO!=55-Eo3m&<Qiw937D(FsuOCXu8Gz1^Z(lu
zDSF7pv_yY3<PsuzM%Uc>BXaTk>)ykoR;w2;zCY=ZJ|CNU$eTAn@g$yI5vY|3-5kE9
z`&G(Jy3f&t_yABD#SvXYUhvbFck<f|Rt2o**buOcEP|Tn)&KDu!VBJsu3jx%71OP>
zy^N{wB3Rc7!x4I_1TI-7n7y?e$I}v5KF0sUy`a_^7AOqjh(l1PB+ah-hMyEZ6_SpV
zQRrUn3@3H8;38KkXZvd&Hf6J9PCJydTL*t+@v^LE;zY^*Br30Y`Xg+TF|{pH%a@r7
zu5T>);=aL=0osB*g55g$1-X9D6mLEv_?$RJRRrLBH@otjb&g=>A<rBeCJb{w!pgFm
zlCj~qCuYmyAW$G6o*9D;mk1jfbK9jT0T<d27u<F5r2F`NW8%-bSRdCxScV}axV1AQ
z&ZnVC>iumUw1TniWVv45-D!71lPPD85NARhDDX1$-!k!q7r4wSVqw_w?9)O3FJZ@#
zAq+K5<2<37R6c!HGU0eI5pt~5I@-6%srAzNmyqmwpnGu{<2r*ST>&+E&|ofpVc`DO
z;z7i?aPOJ7f7qowjkqGJM7$a3^$N$o`>E8tV%!FeoW{GG=jI&lHVFjfm^~<ptta^#
zo3w6qmxFSh$P5T`9f~8#_vJ~oO+9Ij8u#*(**g@VmT9kkfk_qQd2rb`E|4z%+-iqL
zBb}l0Jfd79YL@5APz@Ps5MH<*o}3VN@xD%^%k(<pOtaR6WwupB;jDL2;-p?vLO2Ay
zW%ukB_tnJhRR;cqW>ImsVXE`jGmevC$|M7W)zij5=h@vb-q3ra&M*C5_A?J(Da13m
z)j$zA+X;67hkM|Shs#I_Pkm%yt~Ou;>n{%g6ZpRB1!6mDQJ$}~TJ$C7=LF;k08$S9
zwiJ!)O)<{5kuUwfP;LXw24B#0dp5oUJ5!<Qs5E6VFe5#ys;24p<ST}cy+Hy(`%*-r
zcc{+fOa~s=Q3lT48;^Za5&BjGX3Sm~qpYY}15j5jVX>8sSO|vKOpixS>vvk<^e;iA
zCp|VJ(a><i)-c`I-xzLRQ$#-fTK#1|tg5EX)lf7)tSR9vP1<bbcKy-G+3e9l<lw4g
z<#Md`X;Rgi=VkBAQJ5==j(9)Zuk8(@mb?H?rI=iqra4Uo<bBd?%&KzftNyk4iO>Tv
zfw(OycO&I#*f5UZ(E4t=yCw931eZ>(C)|)88WtvY<Cv^C3yXC%U@6qE`AhI+R$C@h
z@z*u7?}Z36eDZr0`x(^s{pX|q5EA;Ly^zNH2Ejj|GY{Q~8|oIgAwF`dBzkLn?5v~^
znP5qXc=L4Y{Pz`Ok!|8qDEUER1>@4MfgS}0#7pg${<|e=!lwj8S4<?7^WnOJp+uS{
z=<IiCgMt<&&OdcmP{lw=6M?Z)8gJ&LLQD5h;5a=z#K;J)SX8P=Ugh~A+mTC?Q~2j@
zXSL6)9By0`?60SnoH<8{xNlFXh4rvK+7B!h<<f8IUqYE3{d3hVU?E+os?#MXtBYa+
z(ZdTNC|WHe<%cLd_zonVU=dNBAEvbi2F*i)I_E{-aLH?e<_v1R>P9ly<x7RQ;SN-U
z_ABRE2{Z1<!1n|9U(PHT{p1e5!<;Jm0&AbM$j7USH|zUu=)6u;b&mI-ijT=R0=e)G
z03<Asnym#^%`J;W&Ca14npiJM$iNq4@2{-C%UyaHtA10Bt<|{+1J^sm3CH@QXAS1Z
z9mlguGT;=Y&J0gU)t%$WEW{+=47#~r#Qp{%-tx+Q?W^!dmRG%w;ffz$+&V-L3}}sI
zJEfQk_Nw_DR1<(272B30|6v!EzNu~NY;YN6fF&om_?qDb*%9d$A23o^Rmx+eDfa1g
zadAs%QAzk^Nf*9bfa9yQ6RF31X`9h27sOv_KMO5sMoEBL`D9#OGtrHQxOT}us_1-%
z^BcSL1=RZr{>gOW6TF3e-s}}fQUopmZP8xl{Zk>-4j@TR_R?&IP<K5!_VFmzvU|&m
zzh}%!{uSna-_a4H-EIN*61s1g_ROy$u$bqY8|2&Yrucudo~clIUH!E_(G7MH<;~AA
z*Oe#v#zK%t4HPAi`4|*yosZpR%Bb?WPwMbXne*H)53^>xs(CqOjOLbp`VV)ncB$to
z-rqfK)QJHdL>7HsqfD_8S`qow*1!3Od1A38A0=2Cs_N)sU!X;Byn@k|z^Jxv9!-F`
zycU)Wzxw8F6XGOF<wIqx)1CGD-zsG-;j}_dbu*yWRM+9n=S`Pi*?606+PrW#Ki5el
zrwVHtw{A^u|4R*j3cdn&6S`+<^ltF#w=ucC9)G(DnH|UBTajbNC-wRgh^eo1*^O(S
z`VvChoW-9V4@!SgbiIAI8wldWaf%=CtM|FN1}O`@dNrs~z~<Kb?bFUv1yRX*uU?gP
zv%T+=J!JY~Pa<O-9_c|%d8IV}v|Wgw@!6k(jGY@`vISco$ReeNMtdUWfaRy#651kh
zTSh~T;>%i2t8tGF!9F{L=MQy3H@RLu>w^&{((Zn3F9%x)>F2#jzTOGG*_}-Aw2X|t
z)WZtCcReKFZAaGrynW3!P|1yYhyMN`>~Bcq9&xs>x>$eFOlC&e#b1-g@M^Chraz~J
zKzf&}`20>tceg?%U@b4dSf5k0G{Jca^J$v>X(VeaZ{2H>>sq-{d!?k>t-Otg9Dl9~
zAwlf5tzON-h%G=G_|rH#UjiKtIF$R10pCRETP2qQ`V9W9G5h#Z^)9jJ?rt|faoj%V
z(~c1T6$Cs4GkNDoh22>sM($Oc6O*Q9mMZ10Ep0tIpl893r2WYAw{5OVT@yT+)rkYs
zalj4?)dYly3BhJu*za|Eixv}OzJAKi)nB!`t=HTbNDf4xJCGfRn7zT1Z<aTyX9Ea)
z%<7EMk<X^Hg`SI7iq2(geBcgeL1ec~bxx-!Z6_^~(Pf)+ipQ9+E#kqSMQURZ)#JGI
ze%}5b`D!#*NO(L_u|vC=HABSOqjx{b$EN*#vW=qfo-e)NyVWP-q6+NY=2@mE)|TE9
zciYM{IB#431riY^!-W@%wB|K%9R(l3f0k)ghii3$lsQOhhKG}@z_MI;`GSA(tlsiM
zdbpV8+eYshrElF1RhpC1C4l=lbRqnHh@1gI>f?TZgnsDkync0^1cBUrhD~ng)()C_
zZ^E(m*XjSz1m^A;4IXnd_#2Y0TWof8VA(YiV;I+c>fpcyfJaB(ZwyhBu83#Pxpwdo
z-r-b!PXlT}B09cJBoq70a7TMU?RpRp8Ym2P%N!$W26oaJra3`b72`Y86sqL9gzo)x
z>fL1Zc+?oG+daq(K7bI%(v2~_c2Rh9^7+wK2goKGpZYs4p*2>lJY96;7kPYK!^ALc
zm-pc<v>&X01m`RiLP^9duVTKEtHm?REL)Kc)B5HxH3<VrzEfx}uK&v%J5#UAXP8as
zR8g%V=W-}6d&l%;Ix#oT0{{M;pE0iv(pLSw459zP*<Z_*aO5YP#s0MwDL|9GrW0nC
zzRzgamR;uYZwx<<fASA~ei<61>-5z$7VH0mK1XbS%X6oetB$!xs1EnS<I!CM@E1B8
zS2>uIHh`Sr@J&oLbrjQ4F^A@v;sT$F8yF*H)U~&N>J^cAcHW&_Y#sqLM=#)d=AmVA
zZ2!N1Lsm~sX(V!bX-q4VVx<$)k4GZpOUGk!?2bM%fwQBA{XybcSH5Gurmv(y$89nf
z3gt!0`X37412`Or1`T!@Ic><P@LXc+xG}95Bw9s8grE;g^A{-KvfBK&Ci|VXagd-m
zWJ(mRMFf5_)k2c}a@{0lhTA&$Z^iN+lhFLV&K74KW#AK4>7k5SqDDU1wh>JyUOaQ8
zU$SIH!nZ_b{U2X`WFfMR;~#nVGYJX@S(0M@VPBh}?dxpu98qG#5+kEQ@sX}8+uI6S
z8)3-vTO(zuiaRT~lWX3!1z(nG@2~<wh2G7A<w*o9UM5cOdW9#gQh#$p`R<1W*IS;@
znrp^)cj`J&U(&bsprKrLQ!2|KT!L?(%O#ol1T$;6bO9WhA6fpjl+Yv!`m*zh7^CrY
zkDjpJ3|o6E{#178FO&P>9H(h}zKNX11Vm|&Ktez{1M|NFKIGqu>^9k+Io3NEk5A1~
zSCwtM`_tq6#<<PdnfrdWz@#zq8zW=(#{0$3%f5-~wyip;^z`2tl9lKCM?Vfe=G*yw
zb$avs`L9=2|2iE!;)g!l+2iMBcb(E*sUYNxeP}bLe(jgRp9g#U_(ndSB}ipt{CSP@
zt3R%h--f=1q~ssh*f~PqQd9GfYrK5*#~mlWqwo0tes-KAJ9yXz$_uLfq=j#9@<zAx
zN%GvcvOVG*g@ADGZap`8J#)_YA-azXaJeyaC;Ei`j6g+ghy}(AccuaHdy~gmOiFTM
z&0=g3zIBXlDq3~kg$AH7S-q&|m4SKs9O|XcrPH$%PIiO@05>B<IGLBOX9|Y8dRi9G
zdCO!aoCCH+x$=6>Q4r!(G+##bp`(<QQ*~HXI`(YPCq33VtD8B5LQRz;oFFUfQtvv(
ziWAfpx2ez8JyENJn3XS_O(a(V*N*P%T;cUADS^zH=R#mf2nR&1k-Rgs8g7c<ope%Z
zZy&JZY!%QJ(IAZ+`i)VXTG}$5vZl79lBA*0Urkm5;sv*y+2GIRI3<kNVpXL*Wa!Le
z<1{mM>q`br=Hz`|b$2`}GiF|IA@?^L$IH4OW_)tKq;(beMkG#hg$caz&_{W~SAOZy
z|M!EevC<ABh0pM{>!4L&?hwH@Po+m#cfx+TF{x{wh2B{Dr72I4{aob|nAT#NWZh}W
zI>Nhg;d<36l{&z9{4wt|q~*U41`V!X5hDG$?hX+?DW+V&91WGP^eDlbN?vxuLU$h!
zrjSH_8%Q^k;4&v9wrA)M^RlZGIsaXJF;)01ZiM6Ojsd!7fZr9fU(K0tapll-+*--M
zRmA#fzZdW>D_IYrKi)eychO><7J(dHY9L;K#X9(7SonlBN_vh{uw`N=7i}SOxnLAc
z@vSjj-RR9%78A($8+4q9!KqyInM<DX5nurE9%OLP4S*`NBZw|8c8^x{=@y-AR6zip
zjk$8mKJrkJdy7QJJrGrAe|M55A8Pt#urPamJXL>DE>^=JcEDzn(soc~C}BHp>k9}9
zn_hJZ8IxE}m9v2g1UyQGYROc4ISU0!*?RQ@X?n?ktGL9%6q+JGDp$kChX&O-Of7m-
zX^Qnq?i`QTBR)#ds~K*lLqAYd$$*>p^8bguV?!P41|oTultaSwPP>p{@o~OnID-o#
zQgx9=1<>K}F$Jg(q>{BVE;%{I-DxvV2OdI~;yp)E1=1B3gc8T7tz2NTGYjV@`}zaF
z4A<FA!I?qX<Qpz!)ZbV%907db1k|$({D9g8oruzAy|}m)M@J31<1jk`7|P^@!5|1M
z`~#*1<w*s=DC1)Du~M&dIG@Mm#XQ+>>G~?EusKe;r}3D%;vRktzjk476LU)<y4wwE
z9-z^pgQ)|w5ht{v<c)DNDSQ6(89&lEPPb%mL@G$#Xhf}WgM!~OHH|V%t58EQOg-%;
z;9DY`3lfa;kvT?T(0U}U{7Lcly_D~RYiu@b34t`IQXpi)!JiA*bV4Tf+@vnj(LAJD
z2yzy%tOFx}+*tLHB2PCSNSrx~p2gLW(n2Ex{F04DiK)FpCc`2+A3bwo>DQqwX}~KT
zP-&rtu{%+Y(mIdf%1itxnE$Sj3Cmm|>7qFkUDzCGdtn4}8ea?I*<PW4%AXK-2IQMP
zrfK5rq<cJH>ZoJZ97Ud%xoevu@Kqfv&UTWJ(&4EHoxV)!49&$iePFUaMqYH#cr880
zS`S%)rA?#vM*495a%pU(>YVP1ACI+R%c>!4`V`~@!?c(8SEeVDF#gj&;ob4NH>n$F
zN3??JfKfb0I!6riUEmcoNlt?6y54Eqn``Q7T3<2gj<eH)w04j5`h@_Ts_K79#cqFT
z)5?qIsWytXQ$YtV>mr>rU=;+j$l8k!maYX;?<(%SPs_Iks|S(V#>GGCuwj<YRl`>e
zs`^>&o7;pT9Mhhg8X6Yqxtf=r0uD)NE=uD;*S@!s#dej!<dc{0Uh{eExw^T_dV9O|
z2N^&}xkv)%yXQ1G6WFbJi-wAlw8S;c1H^V{wk}n9_)JtrAsgINM9-eZnR?}t<O({W
zK$RD9xG2o4osj*4VyV+5p;7&8wvvXN66C6m*>kb3wUoat^a3_p#;To4lkjlubYX3T
zjG<zVYmK5sKRhfPkYX2Z1RI@l9pME4lrJ6;CcxYC=@9k0_b0ulVvYH$ECB9S*0oLZ
zq;b5CuvwEJ6hMV7uK0Z-o(Iq|H_tGhToe@$5cE+<Rf~XN6=i9}p_;Nq=jDu=o}MVg
zueP3bWgDIRuE}crLD5D-^chteLpyPSgCR#&F1wI8e09S%JXD|v_HLyP`DvOdjeu<k
z2TPEU;vkre=Vtz;L8HZroc(Soc>!H$h-r$Kj%I5rA*>y%{Y*}=-RwT+g6q`Kws$KD
z?{mn*({}*;q_i}5>v|*nOax1liUtQwzgUlforoe_42AnP`dimbpx~aKAb{Vn^v$d@
z^jr2Rs)Le7ST63-8)Rjb7SmmKSD3c=%D0`e_cGEdu{q)5!+pk@jNVg@M?U|8rM&w0
z#NMT+XKAY#^!pM!3S0v5@arVeTVPdnzenQ9HWFKwNq{Z>Z9=eNdbI^e9NM2XW}ES(
z%-f(?;<|sdv={w(D08;-n-m8GBrh!V#d|yrXATc_j-!txUxGkv=>!g2=SNcsj#-LS
zDOj=HLfi}8O+adj6a1-yDkx`@BBU7qYS@(oV|}zdsM31DO@pP*5r%2XrF*)R=<`8%
zVK^=j_SgwrywmrQ+=j?uk5`0kBMw(sSI+}(LXI%zAG<MQk7qDa46CP=HD@_zKU0Wq
zT2fSW4l!{+6k2CF$Ri4a8XY=NdRbjPA@tTi3v_9e>XO`4c#)7twzCTa(}_xLGrSa#
zrJ4ujj*)3wGixaBuMe|;a_sD9FARid(iGvaMGZ~*zrpWP#UblP{e>jcdi*!FS&$=k
zPHPT2!=|3|$FOB_mX`|F`J8GK{H=qffM(*YNvJX?jsWCn{mq+Ycjdvf_T1%6tPQ(v
zp=Eg1obkpaET$6L{E^~>TT+@kDgOXkK*8=?3s%pvr??Mtd=1{9@pU?O<QmjqE>@*E
zujiwM0`19TUm_sqp)na^LUV?Owj3nJuj?pv4?dKjK(qV4zkXvd@=pK4>(CC!)&X+S
zK?)7JXb*hLBPghW1lmRouhrv9qMRqkr;)}u{x<B;h6t%^HABU2b%8x+UT!%a0DG2w
z08kdkf?%Mdmpg^u(ea+YU@7nX!YjZGajTl8sh)OnB8F;RRRuWOQ8rklD_K=zuvAsC
z_G#*4))>7ar@NopqTM+qRbh^lpj2)kB$`6Lib|o($PH|3sv`?oxtB%E#gXN;U}g-+
ziQ>TaKn$P~$;V0aD0k3LQ4oRaNw~(Q36rOop(CAxA_JpyLJI_&gl;`}u@q|tDD}Lh
zbsH}lb~GA{oZ^Il6Hd<+A8!$RlG)J`yHNcLHlPbdAQ~WGUYr7588<S7wlNUnj2f8W
zMeH9L@KE=!H8FJkDDCoXD~Bu?&|59LmM$|73`043{UoVBP3?8-K_{W8$dS(1wX?bI
zJSj;z)b<=8H^8q-^&BN{QDGd|3Hx@!t#GOppZ|_o*f|m|5@+HTqsG!HS0`#D^<t6C
zQ(OFCXyunlfcCH1_~;Q@P+<@*TrA+>cNI5*XT^y&Qxt$^02EnT8{l1g*<Bq3(n^3M
z3{3|{O@zBoWn$HDv%w<w+Gz$^hexb5TT?7;&AHOua|@yf0r+<k|AWB<SBKTribGPC
z6l+bH0d8<r!)#f>!qxCXIM$s674<L`nG-?W^o{E{hE5n|WQ<OjI5U_X&aE*g)S@5$
zjHY`FU_>#egXGwle-04wP-`(;9^Fu;97(H8M|1<QM{pi}#bocsLK)IAzYLBtqyJvt
zs?QnL-<ZATP4Ag#bS6QQwcHm%J!7b3K3ocbkno^G$$ATxg6SL-v9-5NU-H_W2M~dG
zMm}@5J6;y+4Qiopf;T2(FN|>BT)dC{KEPK78zxP~ulJ^m-_n^gc`9&?Ua?fQ=_w&(
zH}YbfqQyL$buTsGvSzvBjrcuk%oh};l%!2utJ=o+m*L$=bZdoyMc!0J?+H6=bw^>l
zbZ1SBS*&@T3&<w3v=6PNr7KtLlY|M42aB&>|4WI2*?*>;71~&cRYiL&@K*T*KmCod
zQ~#1pJ~=I;<WtprA+vD9;a@0a41M}p#@Cr^!hZo?-<ncn2i2@M<+N{4lG+6GhItpg
zkiw5&S#fbT$5j+=5j=B9R;;LdX5Se8ervu!@iK?GTDZe4_w9^<vz4_22gyBGdX>_P
zv+`b!jjH#mlB0Vss+aSx7QL+F`I;SR9czY9luTZ}h1O5gSm5)qab@Bwjr2C_n6TW2
zU_`B-rlqPlzl5tilm@4wekkj;tX7)nVMTg&w;;dAx$qh(W`;qF0eKG1?6K+h=?0?O
z^M6<YpL28bEpQF&=eem`=D_y!bmfpAfV}8<V7mm{qQT%Z8r~m@RRUI_ewUt&&L$2`
zJt#YJ<f;n_*D3W}_CYNV`8OowTkQVg(`xP9>M&+G^I}?<NNxu8@=59Ks||Nw&p%9)
zhd%#y&5_J=cI4w{VU*EMpPEGW`#|XQy=n$vv!#uWChux|9y)1Ht>MD>@@-rDzYsT7
zUrO#&%LRCCBx&{fu2)cDZ9ocuBg8rB`^R&10wB7g5}g5<GQ-ciz)oJ5U1Zf&RHn)I
zUqNDpo5^2I)o&{$VP&tR&HfopKlM7zImy@ah;O@cD2^S>`vWU|)$?x*I!3Bix~$}T
ziKbrhKPLIlEVlI51wY|aX&Wwg^F`~YJO7mns9CDHSNtSDAhKSD(wEg?>&Zc6aava$
z{hK0xE&kPCSbyt@a!xa#G_99yx+f`l-9+WOE`olOp|Zv!$-6761`pfHFY!<4{OZI1
zK$pHOZyfwgpf^XCyNx@)F);szW%Ogq<C!AG%WpQ(vC<2Z^Ja;r|4Kn1O&Hhp2x~C=
zBmE$<=c{LD2SUEfm8qC6r7_1tUr>~s3$gQ`&jzDYg%qW}D_qDEX>MJKJUnW!SkBWU
z_HBW@En0IoYqCPWEk<kNQen=^|4jszxc))VV0D-mcn&3jhco@_c~&yk;84qcik(wa
zG%}FPcA&h`d{ydtj*U^96nQ8F)etvC=dzL086}=*-($Cl=h`D47Ch^hF93n$3FN@V
zC&C@{+BKSj2(n>1g)^m|$L<Ov>MDBP&^lwo=P*g<VaYDDWum{4n^Qx85Hm>kbUH95
zyOZE(Gt7_*_03|Z(2m2YEEQuOiHz;5{@^^9IbIMa9|@cBz)u8YG!$@6-c|xQer6}R
zyBHhRk+~*{eo~<gt%(j0RUk>l$)|;E<1=FvV|pFySIUgLh6t#r)_rUC5dJxyNM7TA
zte8upjCb1qpZvh`<!wIKTO1`tuOQLjhaOc;7t=0D&Zgst!d5A=P_RlXhx;o5cb!v6
ziCQuxhiyXe88HiLl1*^ieZ1&d@NMI%k(yUMwIfeUFt&4<xnK;}ozVy{9<Zutf|jt@
z^M!b?R?VKA4xm&8DCi#hAe?`X6D*p;ZQYWwhx8S16zbWWRH}2ZnG*itvWv!iC^iMe
zZ_`0Go3?qQ<Ee1vt1x$B&k}t*i|5?7$DZGbZCYA41m5u_H=>KU&T|U1i?ke<&t8&B
z-E_ybd1a9N8i-GFFkDFW>RA|R&<==8;bbVaYLZBd%|}j{oz`hFz~V+t>WS;w=wu1!
zV@x88+?2HXza&gMgNDX>={&?cL8I|LWC~+!X0`#rt)~AF1$4db0T~mz#J=GWjnKca
zPOR;<+=+Baw-ZZ7=M&~Jc@IP<J7x5O{Wv+msP$>vxRNnYshwWnoR&^P-THn=O?L{d
zR}d(lUzo<(P|Zj^df*_70H)MCbq?;#Rg#ZSm+?yXNYKq2nesMm;DS@MrfDaj1O(L6
zs*y;Yhj~U;si048_1|RZbdoiq2zpgsH3kmWitkV0TfrdZYVi*)il2L*d9kGt5m|A8
zuQb?aBo>asdWM+rdMJxA+4iGT$t!KsSg!jYyf9fY($gSTtrx2C+H=5FySE`uTj{o<
zYx9E!zXqhbC#E!=JLM#}`U$FSZA_w?-JVGqA9NBg@RFT6-ZuoMGe2xS$Wuy1o;e|0
zL=>IR@XPSO@@~Mbdn!heFuec6-g`$ixvl&DAfR-SE?@y^3B84YsB}r_3B5`uK<FT#
z2vViD(2JA=2u%nfRFRHU=@5!^l%gVt1;ll;);@c$wf4F9{>~ZWcmKF!+%b~ylFavg
zliBBdp6}<eNT*HbAe2m6OU80$Bbq=Hc2vS-n34!8Nqu&v<wl~SF;d2AkxsZ&%*G?$
z+FD6+1SvUnMeGrPnoORA$lF`iYLDTbJNh7(3r$~%qFjKE8Bs}6#ust=OihWkrAAl1
zu1XhC4pPRxi@u$KcG@<nj?Y5~%dWN9T?laz8o4b=tuTvEZ%dRYPh!f#p{ivdkSeuG
zx{{4LrdA`Z5rJ%jthogQFA(ac%$NNXt~GZ=FE2jp?u3qtFO)|def`s}9}Hy23qU=;
zqyyoWb!$=Vd8#r9VGYz%Cn4oE4$bDAjO>7FjX?G(qkL%JM7+^qFH#_@=juy*R6O5v
z(+Fm?bQH>>QT?g*!>WR|pa(A<EpPHyWly-iAh7>L<<o<AR*)bRzzR*b&f*92P&#{b
zp9cZ72&Q4XQu{8))2_xtF&ux)Ioc#T%q_N4gQ202e=>kteCwIy#n<cm!Gyr2tm^(+
z3HN)4n!^~><u^c4B*}A#PxQ#K%NE!{^5W6o*)}fmd$L$xIJ@PY_nw2u9W}4q`FdHf
zjq0oBy4-{WPM)UjX=qxDu0P#DQjdGFt>gbo{J+Qz2I*-Qwl}yyT>xL4nc%6L^EG?>
zDU%)g%7hs`+5eY!|9{jZ-W{&&TmpU~i0!NLkvy*4z&I<H3pA|ATqHv~oa<~XP2Qi0
zTdAIwP;sm|-0Ws_mPVE3rXfZoiitdeG4HcAVRrW#Dk7LiPZ?CNDRPt!aYW9C-gJDN
z++$nNSm2|_B|FTR2|Lm!dn$8VLgJ3NyoxaEb>(#$V<b#&B!Sv3t5(9EOi8XsCjD4P
zF+qhrb;C%EhiZ_8R+Tj!jSQDBZ(gN!TSTIb%A3ROAQ?GMM{gHE__{Y@yfCB=u6dGx
z5P_I&>$<a8Y|3e_!mi}WEsz1co?7v-j>vd`HzZ)N4QMo2!%hS~7F7$HLejD(-HQJ%
z2(`n87x-yIcgI-#YQv3s85PNUDj`yZIm(`Pn5?(TT|64#cr7V`3;}M{-ehS())!I|
zV5U6VIHLNL3y&QGZy#@-gcD9n)|R}E$3U*P(ya;8M7f?U1+oc_+7FI35N>F_x!f4G
z8pT!<o(hC?Q4=;l@PcGAMaaxfmkYdO1<P}s#BCxr<Frf#bPstDDhT7X@<V%V$ti2(
z^2YO8<i$mt(f#@yM*fI&AY;7xz8g|F+m+XMj}1?l!-SWO*q6#xH+t}XI(75meLP#k
zam_##9%tO8meDG<BZyjDg5c`w#VQ5Qgpy?%Ul4lkHpWwvCX|I47T2Mcuyk}jM3#q-
z|6L)OxLwSOfgYQM%2CRK0<+oOzPwjEEYQW~<ZdP4i+%qmlOxm2=^{qGwfumt3Esxi
z#p3O|@65e~Tk=I1qK&{SfhJnhI#OSIqzhtZ4oo5mNC(#E$JBvOJSGV-2}6oxn}Tw~
zT<NHbU+Pbq>Yk6Hm+2Kpzf@tIonDi?S7_^KRq>JEH1SqTG>=IPbSo{}c8h_%g!#NB
zhL+>tpwj6oD3x+ml7wVT`Hs1hCz5$%D!mT6Nj@~cm<_F?nvJ>;+8|VGG=zL7jBBzn
zbS#XeIlt*n%yRl*S7>2q<HyZm;F`FzfV|r*#3PV7u8rvrho$eSJ_8$=8f>}bYh{+X
zGVU^xB)O4cg^qm#2HvL9@lQ`OBktpSStR(ZD^5N(2LnMGsH)+b)#kNm00v`6iO~?m
z-@3vq{Xs_?+ZrvZSnXh+nirWgE2*Xp9Y$CR;wvl9O6>G*viD<VlAf(AF|DbMRpQBg
z<GGo<Ur^aW(({}jRCsXth*U_$KGzc?VB&ux6RwfVv~*UPTSiD+eCi|4q=5*Xjlne-
zIAvdPeMhZZ#H4>EVk_f=4!^yHnb}#foSf{4hzX5PANskSWD|!ad6gw7W}wA1;u`PQ
zafbjRLoBBIlG$jZlnc+)RGS|sGc?yx=f;=X3Wbkz^)b%n=1zm4I15r%D(fEh(u_Hq
zEJX+0WyfMflNmXgk7Yb$cf09)0H#us=^In|&ckj9n7>MPR-WBFJf3O8sN~?%NPG5>
zAIHc&C6f(3S}|g=(vGxMVsCW8a|M*STR<0L?S-sRq(1IOUUsHE<i{iOXnbmPt@=~P
zw2-~LO&d<1)}$(FnDzAxU8;&tSJIz{d16hftz}tX5Tx<=f&L+U{juEfL=;hWOY-1g
z<cAc4ENznI!+fu}#N>H@-4cMW;ZSkE@Z#Gh@0%I0m`@cvj;-aXG0uzznI2~BesSXz
zYC6i8pfd3?Jzry+o}T-=R|BmFr^Pd0OD`4*K4q_Uc*E?Q3xi-E_O&N9$cetXh`(v9
z0x5+Cc~vIn^!;p?k?wimZdD@sGP5}l<DgshR^{dZ+(}z(WYp>B=y3mxlU>_tY4c@|
zduv?TI_*%nCoeA$3E^P!sSVz26%?G{@o@acY7mIV5CDc~6KVCCGK7;CV8^OnbV(yZ
z1Cd0Xi1~V-v}lXtDc`GsY+uz}482d;F)YSwGc%)}Y?iB=eN<$g@i;QxvPm=J;J(#E
zodLu0W_aQ|nhDA_hR~dzw<A#T(FSqU2=5GR2KO7;TuH5Vk<Zur{+^&I)eIR>9)_=k
zETNSzU_^BY<r}N<UMkfPv}mm=ZQKrI)76MKQvbQ<`xrmHxH|`32^mg}8KbaMXfoI0
zc{pI;*4NQaNqFheOI)6g@~Fe*^O|yLY9P81B076UU{c7o!a;$s&Ubwo_w|}=UMrl7
z8ToLIYzol<Gl$ZNX-T32i+*Ziae?LBq3BvqVJbjR2?03p(lA}x@pOc!bWf41Ida3=
z$a$W+(Z*GMky}loWG6KuoY{yrrf>R+_IVm=h1o+-+z7v9{>{TVU$_<~<G#eT$}%#h
z4Jp~>VExiAu>>?&Y<KQKpjpbLT^1I8Hf$YVZfZtiuu8=y0?#!*>Vo&{s-f8)B;Sk&
zR}|#$h>sr3wfQu~PVtOYu!gf)m~svJ2XhP5ybu^}8_s3JXDyp4^r4U9AKhw8d@j}^
zVmZq7fXBkE&bN$y47KP6L&m<P_?5@@SoW)0pbic{gI#NyYca1c@pnQ%hudo$3%uJ!
zqYthh!*PZkv^h@b5&W4xJ`>=k1uFn@+t;|ylA_+M2cW;H7H6}%BknTsXAJsF(+v1p
z6n#&`+#Qkrp_{#^<|oQV3@wgY%TSfzn0lW&+{!5>%bixwzhkVilO6GtXlQDVZ8;qD
z+kj+hmvoeF&;jMdYIv8_iiD05_gzB*;9mHT-WFn*CUb537CPDO#8(ox)Ctnw0u4<_
zC;_TGp|t1IS0=6vs`UddE*okAMJ&jhtlVV1HT46g5gJjeL;ep{L?>~FZW;q@C)Uc|
z=;Hw$JHDh5e!X#_r!xlztFPd%`A7`6qkANWq{<K*-EBEBrL1wI`n(vJ5sPOh!mQ=9
z?Nyrc?ZvSrA66U#EURuiv2CI)d4wwrU`G~k-+!i)<RuY0JD@ytlwK=F^5+btGeJtU
zW%Z=<ShHC{N(RzIBy#~*X<}@=q`&8u41Do~RKnau`&KLc4s%|oA9a`K7GxnZWViL4
z+%#sj)+gMdn^*7g$@coyK!!LhJncpojdrcsUsm-zYx}?!cXeh2s?}kHuIuYJIy3Ro
zEm%adE(evc9P2bo$tWP;A_2T^BG@Wje|o^RIc-QDj)(-X)#ejkO-DIC&HxCHr0*dI
z6GTi9mleY$%yHG~MtMB;s$Lclt-Eni{EE4S=@Wrt)3W)-oYc9wd3FV58P)|df=-!}
zUs0x?&5Y-P4VlsroY}+a)6`IB^Jb^7jjkPn8<IrWrqwM0-L09-u;KEo9^;VYeq3tM
zdTiFTAGE*&d{#%+1SUcA^>4_^WyB|>Bc0a8hw4Oa1A?fuVq6>-kg@1hJ6!-i3iVw*
zLVQA{cO>6N*TzfuwW6RC+t1x&ul0TOZLw@zNUnux?GC1p(r|{d3OlXced&6O=;&1}
z%3K&Bao6bTrC&Ld^uLk)y!V=3jNUnKJ|kgKPFzw;(a2-Hq9Dc*)6ZpxCp`UG$;yP%
zYj!0dLHP8{;zNw;XX+<NKbB#S*#_BNA7Ld(ZxQp%qJE??VJ;np7l{UPJX4#d%gGDI
zl(+_bgU%EzMuc;bRd(*L%MjjX<<c}1X8VCklPQXy<<KCt=aD<B<DxY!5*-<#UIQ#L
z$RE*!^d*b+o*l#`rsqfX({b=&PivEfY|CgJd>v~=f`+?Rel|RCsVG3NBl9h77TF!c
z{9qzB29CFThayaNtCW)@JLwh|sxye9GGRHzX<-aQS0toAAcre!+pYoGLrRG9-{dFC
zXSE4HR!M22DKYKva4N3_yT_8T84Xzh&G|HK@orzv_#Bnk;owcr&U|&MtS&8{Y#Tm{
zU}em%Ma)cwZhQk|{fgu;+(;L^Sr=_X^ALFuDOw?zEfV2`I!(~p;;|4h%g*rtE?09A
zNxH}Bb{w1HbjtAEHS+!uu;n;;bjj0g%!5W@5`s}176+Rvi$|3OONl9M`{4-34_DTy
z=!HbtN#U)u%~M}&4>Dc{hY9oZeCaWWUJc-`7600kkMt8AX@OWZ>H|dcHX9}`lc8@3
zwY{cq(wWfgBEX+QI3jL+8x(Y&0oducnHZ`v4l4I%vB)Ec!Keh@-GH5Wm+<$uvTh*R
z=SVKxg+3adtpO5-8@=i>g8hCTyke!z2QXo!qL@QF>oKL?6vw!4s8*V&w^t2`?DO5R
zcTRNyKxYg)($Xh(n0>>@4OUC3`pV&TZ5QhWPUkA0cLfXa`9m*EDAaYgA2;hS2AeM*
z?{b1J&R!q>l_x?4WV^UQe+BquxeO`?7rl#?4`WYpx@Dn-%gS5h(x(wT3bxZi4rO7o
zAV$?*08y?#ex7VB&cx-LOI8J~NCe8gp_~;Ar-tN(xOouJSln5EplIGo*?mz3X_GVH
zW6DlW?_#C25{Hb4n5%FB;(dXo(UKvjo!R`;0(${21Qj6NyKV0Ehu1eVz2_#Q^$43s
zDXq#I+XZ6p04Fh*vN<1FmO$p|cdS8iK#p{Xd?vS9ue68fKk~&um=}B1A|_WCH8V3M
zC^TtxFo6`eeHc+&)RG%w%x((a37GDAaa_mLMT=X0`;uGY1ZlBT_bg8%ap$EWe7o1R
zZgys?oI)LP)6(?dbVm$`HZp$|^PYt`h$&a~;BZ<V!$Q^+>2*Pire~YM74ca{n9X3p
z)78XVf}`@ttR7V_UP!}JT8;>?9gF^LDe$IcR;zyt_ZLmJ%>nk_d{bsvFg<-d-XfFX
zqDMw3YCVj4J;p2yY%JEQ#IE*Q7K2RK@9iy@BU(<&$Tk+`*!ZX@Q7C_<&Yj2QLLsv?
zmA^*E0dYllqCF~i7yFLk>8G<b#U&8`YR4rlR$cu$aE=as3W#DtGeJ$Fg{TBn5A9@<
z6@M;$m;tqB(`AVyrG;-}?6d_AMv`5!#R?Rn6_TI|{&xM0qimhyEo3?Z*-+*~4v#^B
zd6+<XY61|2(7{s;Q5%a_e0k=h(<&nx8wanIJjzEpZZ=HX0M%<sEyo%KH>?rDZSk5s
zE!~;9SQUWrKt7E1?&r<G-FHcC!JD2%K}!`yBHX*rA8Vevpmn^;L(~WU>j$A<NQqbf
zdDg!U{@d62Z{76&Wa2JWK?_)>H@SlW1}=6%iui0*=Sy7Dmp58D|J#GJT~eA(QkuUX
z{C}MFU%B#sE6xA8yPs_u{b4-OW{&!(HQCRd7hLA2FYAfeNg7j{Y^}&63FtL<id>hc
z$NsPRNEVjL*y3>iS7`t_j9ItYKTPre`kzE9kGOQEw0gyxe?e;el|gc(E#d=Eq8!*u
z3DW$xC&}be(jRts_3t*9zny%)^~!h6@@~1Uq%o_-s^BT+D6xLw0y55?U6j*T8hqfx
zE0*%1?jPHABmkwzTDM8wL8PJZEvBlqphSR&o@{Y+Nt3N=rlM<nWDwqaJt7Vpvj}kQ
zsCK)MRK8Kx|M>2{3=%aWUl>>(&9Lbj8Cs;o>pv_Sq{xCBD1Y5}@}g~T^%9U|hA(bu
zcXzOuDrjoU>1{;hyUX^Z$3l||7BjtRYj<n?d#mgNFgu0?)|YcnTBZlYW2EzqsQN0v
z;Yc%cGSu9G2%BMrsLk3}TW;3Mf&Le-&NO#&Ug8JFD1B|&^Nb%q{=231GvP10>$m2Z
zjeRBAj@3Q2zmcR1BqSDAaRdUiSjvIIr1(qUf3#Ly+!gTndOMXlS%}!!_yMi=rdha|
z=l~ejbJhT!8cNt{uoVMUE9;C7yKS06VCK>?%p<{HkM+d7SXs@X1RLt|SuIQr?{b6U
zNX<6=&%*L6_C$NV6G|6g!itCwuj#c!y$<4V2GCtl4<D^d7=4N9T%k~*v1{glhs{#b
zJG6c?lxWDfe4+YwDjXDA!1VK&I!8^%DJcNrU!n(~%|LdLwDd-qtaWW7NfL3y2$!8W
z^_o|oToD+>H0fAY88O^qWjMqB=|H58BeB&PLQfNgeN1DaG59Q%<bnGVfsqkiWKE>L
zsbS<6boRykxbE)Vzne$DFa0T6=}32<yl+yrx>Km(Td03l^$7_s&M6cATBXF71eRpl
z$fLblQSe{}?no^8Y_UFe+h+B~-z_wojc^HpCKz7nN@p7P?mu6seCsY<&}Fz6`KR2J
z1ildwyCYucz5Y<ToW~CYMcSZi3@T|?52BPdYwvj;5>%knlRm)x&n!0aiZTE3m2^t>
z%EKrjqmB=m9u=1<q-V|r!#OOpBatqu-3w8lVbW!Vb1hRYOF6y+E!NrG+1$y^on;Q8
zmYpm9eP#UuL%EL=H>a=<e<Ryb?>TmZJ;53GK8=zPLeUquvuAtG>?c%?yL`g?FEx4Z
zB)^xgj;q;Zkr9_Z(Iq4(3!5oQ48~kFQSp+KkrDtg6j=LELsN~dakU8fRc5-hK!}WZ
zTT(vIGDDBviZR|oj;+ayQMe2#Ihs$RJG7?1j8vDm8n(JMTI<t>uhDB1-oId|_qqfL
z$#hQN&DDUi`NFDiKPbAzp07<eSF62%0_6o?XG+By(?gSQIzU;<I*Y>(-Zb3lRQb0Y
z&)9>{1&9)W4u1FiS*x#LCBshcX{8sL+<z>Eswp=aNy57M*kfsR0|D{})iF2K4)lh=
z%V*-UQ%(lOI{|REu?3qx1ER6JHb_U*DY2;4h3V~MN^mx;9EOfHVg)=>F+t_oMFEZQ
z&GF{Q-h9k{XfVN&?YKa0jf}Rp3^?S>qtiGoMyZqy`)CK6Nl-;ugRz6mW7W4h7!7nC
zfAWFU>C_c|Bhz=l9k+grzJy-Z`JOiyG64{*TNqz%&u{=CEo6%)ElXX#qVn={vXBxN
zmwd!yEnz)0s?ib<gUXxSgY<%$4+X`|i80GoFQQd@<2{cSpDl_PlyQHI*^!Q?wr(af
zH#0P&GnkB)JevEn^#`>JTF>{mEa!}ml-)KcpApRm1Nfh+l`@82#VGFA?R>81F*MMf
z4~iS)UW~uB+-~^kSg)+4Z?VF|(_WB&-XIorteF#DqUE`jIE`=zE8}5lIuF=W^UB<s
zXe)iaH4u;47IZPlBnhQ@4Jt+{8)|XNaEyJGP4ENsRO}UUd{k5-m3VlYfCl(F<F^OG
z&uhHnlhS`R9Q|95&4VHU{Q&z?tvN8`XO|4$Xzl4-KG&a;7StCnpMx5;WmQ>qj5u8^
zXo^e3N=RneoKFtf!(9c2JU$>3NQ|Z_sT!J(@7cubr^O{_+R06XPh{c^jki((Py<HJ
zK-EAy85U@8w!!HV0RUvqf}soRafPYV2t!b|`4G-6P<J=558ZP8%9i;!z|n&B6uT}b
zD6LHx{Mk}j{iABq^J7qM9)7q`23ue!(Ol@Z>tAoM;UB3M)U(NAr<I!Fb2!DVUPca3
zHQ2B+t`KG~tp;0BNlr7fJXNNVYbgaI35KV==6Cv|vAA`-B(WBH{<!H+v5^fx2dk}R
zk~L%S!j7Y7YstnSWO|?0r!|%-ss>#*u<Bez_eP1=cQ`;xZUuz_GkDQ9!3{h=&1EHJ
zqEa)u>|F$TyEZ2B12Y3<x7U*zAHTz~V*s_;<abiBmrt0BGrAvxn@Im({o%m=<BcP`
zGt{UFj3G+~<JY&iE(P~;Saa;nXas<0+N0Ll{CaM*zy3os_@^U`_Zj%-eZ$qg{TaV0
z#f<BXUt(5}Ct243S~;WbwI3uXvpp6rE%~(ZWCnPOd5~2c>$L2dUnG%K(fm=?p{EjY
z?w7OWwj0H{k?!KovrZ<eD!o-dZ?;urabls)GUCoWw^Xk++G*}rdQD!gKdWv67UxD}
zSy`Cl$*J6+T3T{_D=FkrLnCd~o>YL+^0_D_6f!~EfX4gswjk5uHS1WbG0+c0xA?|)
z=92;<w&(1NCd}y2*SZx_GZKh-t6~Q5d`%SmMvHQNio-DQ+1t&VbfIYAL!lTvUci*f
z%tE!MhzrJzZ&vmJSZgzeM~P|Bz`ow5tW1c<8a}yh@fQ~bc2u$SzQr~ifj_b^AY@+1
zaM!??l!^iR6q~JlX0c^P78X^iK{40)9?l4z=e3<cA?m%AxQp`eYZ{8ROjb5RrVfv7
zS1I|8^247N@KO}?dn_sekIer*b>X=?e(%c6!_&4Co-fJhH#O&cro3|L&*ov&b}|A3
zCoRZ<uJLPGz7rP-9!UJu_o6HpA@NWa7P?%gon-`@INbh26Mq6ftXRZBS6&^3-&D0B
zv9Xxz0JuERR_|*7j{LMZt@~-p_kgQhDZJ%Gc<x-l%d40V2On%*>}lb;VA~a-jHOa>
zGu;L3VfZj%VLI^jmB)^N2l=#FR1%d}Od>GX++)u3Vy=j!Ib&Qpt|OXFuzmZt8Q_lL
znJ%&(@COE)y)1BK$#8R4z&;XxWNBHG>xlEH!b7VqEXuh=%nF00GgLxWM5TqC4K}Os
zd+hBI@yvzEnWiUJ16r8@GEf9w1~f9nFe5xGBUUr1rRye~$vr0gw-$4AUp4$=#G1gp
z0N$Td=o(y;EUUp90gvoBAaASBF87Fy$ckl7Q_d{W;J5ciJ5j#8+4@bcTVRJc9?v8k
zp@*_lA=jzLI<BtGBv3xOJt$}+i$t?k9#Y2V%qNrwh}Y6ph}~b-toc-_e<o)`ndf48
zE(f|xQv1)WONBj~Pfk&5{)e*mf7VF+MX4CF<ad*XuD_4#dm0$_B}%e~c?lVg;=K^3
z#YqbF`~9yR9i7omodQ-Lr$Mf{aUExq4p+;bmPvysTm=UV1MozbxLKf}akOOdIr#|e
z4@zDyKyWkCLNytzYAY`L0Ya3q<naBLJmeUoUDv5<Oj3-~jVqyI3w$DLoHfK|48V!t
zFNNl-2G75`#Tnt4%B?l5raGjyX2un(Z)%unBJTyybc%OMUcr5mdE=?J@oTb+(y+um
zMIDJ9;tn|)ybyEi-#dfAj>~3;fuh8^yiK!}!S?fYul-b{$-(O76IGmX`_xLi|JLM(
z=zDc4O_q(1@6B?zd<*MPqRSoK`>+lTefN?jaVT4WwLVHh;r=yjMWko;yv9a7d!#{-
z#1U=fgwJ3Et=}Yv-#S^ETKDE(Ib_bns|xe^R=vq3ePShU#M-r%I|WuuJU$r7vK{fE
zTPysbpYJBt_<6SMp;#NNHt)JZFkgD!(0fdjPgL;0g{}MPGr2G1iBFbw*p}MeZ4E2`
zN7<_Hc#GWK11Z9x8pa{xGzp$XD#aR~>l4nphbph<vU;idSD$I<c3F`neAK@bl<D(>
z=kL?()VeSwu`G`r{QFnwAJ1o-_%=yyUAnb1l@<%jr6~JideElFuSo_FS6ZmJfT%zf
z49(&yvd?v$oZ;7OJ_1$Dt!>_jaB=iVhKI-UON-D+r@s~nL5wB&^9z7ilfJarZFqeG
zIUk2l*?+oFbbEGzZ|Wysi)mQuU#5_K9WETeYgLU|1*Nr!>BO77{Bp?USq&Pu#Tu63
zoC0JGI_s%-TY0A7es0@_o9uNSUKXmg^Qy@{f(2y=uv1VPzoP9yJ7Euzr6}mJc3o8M
zf@w`LmY%cFoQ#~yxrC~Q5vxIK{Xl3dmTHgzb4_ZH;~PGF$-Y9F=~^C9Le-y|P)X?g
z68!Hu(^kdh9+v%5JZA0#puzLRCQK_MO~g_<gO1ma0r(Wkc4!j4%YVFfQya%2!*@Cc
zM1p%}+}!ktl)HUu<<?j0_eSC==<c)VUVr`Q7jw3+$LmH&cF#}dVQ=c%W!3ypP9p*~
z=0I1k;H)@am;w*k(o3Q&gy+i|0<^XbD?%M20Nq%7OHGjp1+aZf<wjXb+F$c*^lo2|
z6E|WOx1g<MZs;+Ab+QVf;#*qhoe>)-Xl%ky#WR4D_ySsY3h~E#!Hm33;A>E<icw^U
zH#*4VSYgoGN9@LziKcWGW^-~3Dcnx5zYjzFy_GR~+<NuYB}<V>z3KIKV&yCKo>1T4
z$aMeF0xkNTx1I$l1ar&@lZ208kXS<PjVa-USI}fZpna!nFPyX8m}YbDNa61T0<Vn@
zu3*uk*;=l>`6WxRfHqd+hMsR$db;ox1J@2$?^q#ec<>MN2)M${+PJ27OpKG=XvB6W
zi+F{}N#3L$vgSS8v>vCe&-sw}XqD&lB5q4ASO)ru5~xY?t?p1IF6u4jT6@A2=9&<R
z-+Oz=xy7pKWBj+ie((cAq-M;*xhF3>O!!iQ&sI566<RYxJDs>fIiWqIodAV;0fpRX
zJI}DO&;H_x8kh4(NI`Kj#6i;1LH>Rbg`;5sH<vjmv!Qp1q1=!bL5+`y1+7E)f%Dhw
zeTdlX$=pyK!jd?9uN|1X!EoUF;r@8mN<i_ab9DkP^#zhI&;gYA!JJ5BZ#LSE;~Q~R
zv1$}BQD$4958!y8qhDvcTYY<v<=1O$v|?b3P&$tV8)5L3Hp6b;AtR@@SiHc6NVs$%
z_()?iETlp&AvOhx4P?eB(J+cG1Adl%M~tG|{lpX8C!Oc>NeYTTRuxoq`PtA6AF7#%
z%Sv8E&)jSEI*qk$7ZsYQ;CcVzudt0>dKDx((bOMse)NthLA>pPNy$6&o;Hy|+K=+B
zR6$BY6`HfcUFhqV`@`Gn6Z11NlqD?2iT&qJVc8EWo@VWSu>E>%FNM9-LZ!q+=&2-A
ze)wnGMx2A)Zk~m?d6@@#%_K-KDq#~WxLsg+E+>sHD-ccl*0bd@S!<rz_&mGGSg9;}
z^IW2zG-hL{{F@wMc-9;KPsY+y6=ut)1Z|g77{Wm_n|!evQn?>rNa%>$Y2uDbOa=Hh
z)}fkxt{mQ++Tv`0SvnQML<NUS%rnX<%D$=(#Vg&avP@o=I{qwABNITu!%`#9<S)>q
z$+vNaZMP?Z^7lgoG~a(xuhfp~esJYOwBAioaJ7qPH2|LPBmkzm&dGc*_ZnN3gkjc&
z@NYn3olT1fCnJE+nHg`Z8gPA7uKgjkE~-Qyj3$4N)sVWgEAyi=@%dMiFtVAycF(*U
z&#T$tQ3|UUm)KF&;qlzdCd<F_GD*}Tge0a~FZrnL=`9xWhOz;1yAw*#0v>aXOf$q*
z{$>v$cZTD-!8%{DQ2H_56C|O+g2Laemi75NNK?Zmr?=|rFqKRO%S{(6K5RL!Fc-6|
zU+;A7NIR$;?k+t>7r#}@Ta%G?Z+kb_TQ&;+7|;~((e+oJnzSp(BGWV4t)1Q|Xk74`
z6Rnvz!OsaPM&maLOD88`Hg-2j2v#$qFlG59wqxcvXI|$UxT)zR()FyaljMn*)rf>n
zy0{EB{7XO(UX@wgrFxWwT%z*=v8Z@9`+UBCDWq=WEZKOcG|(Gqsh4`$d^$X8>j&lM
zmffY6PL@-KYad_t6bY}OjFS^Dt*~-jr+5pG0s5;1o3(~Ds#9!K*xoM7Xe1Atz(u9_
zGw2lIk%i87O`l6ZMhcnpw9kv=3|q4_iL-~7XWqx2m3|~@t7RaGsBD$S+KIrb3Yb2y
zN(Zv#ZRDp*)KaC*YD3Pe&qJ`=u?5KG<sw62lTKY-6fe0zNnn3K9oT3$wkS(AKMgnS
zyKAiBVS%q_jJEhX^>Xviy_Di3&ERSf1e^mOH^&uGylo&6gx|gi(fQ?eOXxiFd6(SZ
z+OV|FwP!1Az5N`voDT^aTLYozL|f{av1XiK744jxey~<~d1%=5reluH*1<l&FVUv>
zP8Ed#VGW;2%j6%){58qLQdR$m*9q`lIr<^Ta>NUHeLaRU*RJp<o4w(2I<-Iymgvm7
zSo@ZJ<JHVBI5ghwv`)`ZV~`aMpaB51*D=umVZ(*0;wytJGPL;CZ<fMp0O%`!k4=lG
zYA4ABR1<Rax8ppQf)~T4@nWj1LsXP>?B3<^nkH6+uQD_ZI%32_)YqPWg2q(g`WK$R
zeRNm+%Quc?AN)~O?ob0BaoxLVE;Qo1PSmriq)$qL<1eB<dox`75Yw<8-V^x7`e4dF
zk{oNdG)Qmc29IEVGcSKcA0T=dl>TKT4nZ+)UL1SWc^~QLD?@i!sfDZA(4b4A&{k97
zun~`!?ORGF86KI(DaO%J=ZD|?S0*Me*Ivy<7;#n7dr)B1-<E|(eM787c*(yWDy(*$
z(Arz?>%pb-Xg@1qm{`WFs*@&TX=k>=C|y}Xq!+sZ%#19<0Epx_IhXWJOdwd~=vHv+
zerPF+_@2TbMIs#h3ln=O{mO7%%cInQXP4#dht`#@zlM*qn(N65H5#WFCD(m@H05$^
zc=g^v%`fsl$3$Wrj4^<`xY&DfzDi<7$s*D~fDgS!NfVdw7JM0denKaDEi2Re;c`e;
zCjLfP@_Fk1Z)6=E=$Q1mp}tlNjFpl6s@CXs?n8r(usNqD#o_P$;aV@qIaE+Xx{AXb
zzB_MKJa~on1dI$#sd`eA*B-?zl_<1gOYnC1WsN!s@EO(NI3&~H%{>^VYP%Dk@TO6D
z;!gc9$j}SIxYLae00d}kYQay3w-3Jc^`eQZyyP$yvp5}8oKZHcCnq?&Py#D<rNFq~
z3QubI#F+HOgQ+R2ZY{xh&V=14<HYiEGv8xz!ARFv(Lf^gsAIpZh3B4Zaj}A{?!Q14
zsY+)ELirLbB1nr3t^Mxp8$qW&0^vQt>Hd8xsZaOTIyZG&`wyIV(gQ_>#@X@kaYadP
zQA$(}exuShC@G`rfa_xNlcOrxD|YR%^lUW~)H00m08{c4cy~3zOe2Zsq8NX-DZN-2
z{DI<lh1kk3XQwZ*cZ;jCNAq%EPPR}~{!C$2_?E0xVLEO}x*OtV7jQVdrhjy~wl_+K
ze|#1db@chnE?8T*DvpDf!eir$fMn4@dz}W?fU4F9=0e(=@27t*<YTY?EYb_WP~<nd
z-Yy-Qk{Z;^FM$h_zcVzc@b!(R0_u{1#bc2Xn_cZiskgdZfY;q(qMJ;)6=mOtqvFZE
zDM%cke_|tzu4~-~wyl3und9v=4(MHud|{k%E5j=9D$02AfNIrP&eRAZFa3jo;{~EN
zLQ>xQIU+u+w~?guC;6uEXy<xlN+}fSVx0H<T*8UaQYXKw;`TcA`4C3a9tUqcs&5%R
zpqYzOO)w7VYUfMl-&G#W65!HQ&h-(t!$;FSy2&iDyh&<4jgLouBioGT|8@ri1atgG
z)_(zJ%0H@q3tU#{3LHBXS8ZFX9e-Col@`bQ;E9p5#n30oNCKu*pD=Kx!}{!(*<11R
z-^fIPePwa7EqN1<C9`Ilz?pLs@_Qr$GKO<p!uj(wX>noZc+j!gy=t_HMLxV$CtALy
zWFD|h$t#~JJaO5>t3*f4-1vD2DvJG8u&?tDm&g2V8;X-4y=MxVcCMz83ng+3Vvjuh
z$-UQSej|%$PXbkN7>$kbA2?0F^N67g9@M083QtdGFEFP2l!glkD<)MGiyW((jb}sq
zCO>fo=HnFgw5-$mG-VVFxYJ{E4YD}%E+w8}s_o`WW?##hn$uH1<nIPiZmM;&{DJn{
z!-YdJQ(~f`7P|B6BV0SCt>wlN@yMNtjf@@^7ZUGH!f_7P1uT0;O${)cD3<-R3;b@E
zwRFB*ZJ!F#9MgO8lXtmlUumbu+3{Lpn}7U!gQ>^M7e^S}`g&N8Q8Je+4fRC6XieNR
zTNo`K_^#uHIup6h(EXvtn274XYTPMfki$5tBjC<S%MI8{TDkYwbN6iXq5dj4z~8{P
zU#*lXHeAssDX)7gob?pRJr2%UndYuP+xRwZ>+v5c8HZm+y74V~5A4l}X)9)aM(m`l
zc!r*o#Kd)p^+M025|=0(y)0u+T55rYQ+7HXWWKSWPX!TSdRNLhgNi}Lq5zt1pa=1$
zkC8RqusI~qAU{2g;1j}}hVHpt|FMbPiRE!r+#<0Lpca|!l{^=|C#Mt*s90>lUJtoj
z+H&6{`TWmaKN6Ag@36U-=3z$3m7bx#@8=nSQ`Q&aUtHxpdo=XXBuwr~#;@TwYg`Fm
zbX=@?0orxU`ZyWah58KNprAJ)Cs9#H4A6L9E|V8W-|L6irb@k}2t1#i%8aW&eyY++
z!drM_UDDt8r8pWlGlw>iKKjp(S{v(3S4F;QH(DOewv_$Cf^vN`B*V3;B1|cU0pvys
z<ke2ACNV-lHQi+$VqIS5mU0OPo+fjj+*=#p><~0~=pZAR(U7fQh?~&N*jWRaxkGHJ
z&qzg@hV!v4)qHw7Pa36Zq0!Xx5jRKhP1xcpLT291^ohzqq(*??AB?go)Di=>nLVW@
zN|@yWGMl+vtF~=fA?OxRzv1O-s6u0j22CkS;ZI<JL}>OFsrE;nr5v{Een@yDMB~5v
zO0`8lfA@hvBO<Thq2vAtNA2%7XGcv1m-*_;niU|>hr)>t-w>?iCoAmtK~ko>uNOTS
z7ut;54%6V=D?F1gC&&Kd50$fZdrN66%1?8n$W^R1$~LG?6cc6U#ob_f2`AtF_%BKS
z;|xaKj#Ol2{!If1b~B{#R@5u;d{1cGa+h+yc_ZvjX?<L-Q#4_%l8;SJG7!*(Fq}y1
z(V;mYbP(AKEHsIFZO{Xus8#*WD=S_Bt_>NJ9sG<l75gI5LYrS)FUS9<Uh<R6zaWJ=
z1A${zD|!@KK0iNHQ_$Ue%lSLt)8(b$Un`DGMs|a4=`Ihb{)N!vFQo0+Y2A<4#iv<I
zU%o#+e=lCOvO30k?Zf$d4_ntMC6XJ`|LRG%YaFwyJqGE;U38l?n1amYr#-S4GOaVa
zXGWy42-XmJ9U$OjP83wmUNwoTL}O^SJBqY^FQ(LgE2fbcyXSPWAC6frc{DwV<GK|3
z$J&c7H^(?@iOn!&k@@_Mg_9+(=`qx7eJr6wBwY_ly}<qqXL)N3{V#>K#Ci7C)8!Oj
zhdY_&AaQVkz(D@5raN!V>NB1{4|6<w$5#DCE21ec1M6(bAkK5AK+5A_{v<Q;qODT=
zCy*nfwZZFc#S+mEpI^)}6}+7*x|yS%YhZ8K*3vORr>YD3o>~?#6Ro2S{*s>{XP#{x
z-q-^VaX*OOUamh&aRybBTxpE&x+7XFl+->(Jv3aAmI(%AoF&FB)`U8FC$qc@ky7#g
zjQmrQ7_aPfSy8!8cKRS%vbm7liuEA8=eqw>D?|m6*3L`uLJNRMV|Q6m)jdh}jMqc#
zow6;}ZC(a?rqm+OzfPgBwRv~hKD8=7IvJ@4VwCOL$APAEir5Da^500r7kA{mdDZ56
z!}RQX`7D3T+$KiN5pt8<A}UdN%H97G?z4<YKJOxMpJKETYOd%8NHjk$xs!jIOEM>P
ze%JT8(<jS@dfwW9>zsB2+WCqG?AxuSusi=LHwTQhqWJOX$M1U+oZg^_?P$<Osuawi
z*hryR7q?+F#MW&23hyLZ+@sf=8>~>KooOcvi)H>36fEKR_MPxYSgxa#Ygm~pe?}KI
zg&t>5q>#1K)r1}AO!T2(GjYGK8#V@sz;KbX+4R@aOx4*47thvz9J&`2Pbhv+Yeu(L
zYt!9z%d%!UumNGyP36|NXQr`#?;($OM%;Sh)FIfd_8SA!A~f?g-%Rz8U+U^ua;dMg
z4%Ap0y<{<ucj^$k&g@U!bY|gjdv9^<j3Dw^Rr<OqjN7f-o3vUDOe2YB#gsl<6lsyn
zRuh!*v{sT#J1~+Boap)pGC?+_Bh)7T-oX6zC`--Oo6`c9gs9yvYjSGV3u~7W|7@V9
zNkw0Bf6i#?pNZTHce^cRo#dLLZnt_-U>cz*o!9_MKo*<kn~bl789k}5Fb;UZvewUX
zl6=JwXFGT21Z$f9j`vmmHI0s4T+{^&OELAl!e+*{=_6NFm@O>G$cUB2hE^p9m7|~m
zU=zK|ocUbC73#IkB;7kslN*P(Y4b2hIYn@hO_#Uyqn0U!T5YytT1HrIGsA<jFF}5}
zJt{q>B(;s4PUi<3Wl2<z-*)If`v*775G9_CF(naAb$wVBZ|*DvJ47oSDXzO`XIeA6
zBC`$WD#c2-Fl~&=e7_UTUtd{%<7ZOtJ2N-%48!^Rm2E@2Jdze#g|`;7l?cZvqv*U$
zU{w4jv=F@EuzTrzbBPu>oI*g`l)z&d7iAKLWyoJia;**$QZRxFZ^mvwb^M;^-9_b`
z{c=5pIehw2whKvlwG*FMEq$kACw%n-B3sO!2K;F9RpHs0eQEIOD+2T9;gq~X(h$&g
zH{%iM1lc)QFmyVJ8T{4Ic2VDU<oN!SS12jSL8#!j)nko|CVyPo#--rrq?8L#r^QdZ
z6l5tvijx)9@pCeZEW?Mm`O8}wF*q;zq!Cr)<o>8U_>~_h|6W}=q@iuUy~V?M-t*e9
zf=1Ug18sUpERAHrOVS`E&D!?LKa&*ZLRaW~a6z`m63Hv9RSFX)W4JE&=U8t8`pXK4
zg^n|3c6K$0*Qp^PmVEKS{$q4`t%DuwZ)E=ZBl33%D;|PN_?Kai*<OgYko8UcoT&DD
zp(JaBI-mU{mFU1Z2*c{4&Yi6IlEyC%vON4HTs-{oQN>OQW@YD|Y^eArDN@!w3{Dxl
zq1`_E#P!trtph0|J|5r5llgI?UA|J>WDMN-HEHjL@Vg(aO#9^3<2&vMM9sVEal!eO
z<eKfIH#VcrKg4YHM2w>zN-Yluj9cU_9C(dVpx-xXe`;Y!YiCnDY8r>-b~-!0g~$_0
zj~5+YN;Z7I`%}d5AkpuH(PCQHLkz0YsK>_Z7ZJWj^%3{bQ>n(nr#EO?P{P21iGSh%
zQttb`9Ivo;YJEvE0A)GP7u2$?UEK4?3>3-BwP_oXY3?{BnC8ExT!n5t-b`VMCxsa&
zR<akCxxBsgB>~ZD<Gpt0q%1rd?7u!#Wo|;-;oBegC<8P88kh3xr)EgN7A|E6eB|A8
zG_Jx5ze{fZAzlzBQ9%u;9p1$7bq~pyzol(<SZ&sN)Mm45jZE!z<RzP>M<0edRnvo`
zghZYE>ug(hjSG=tPah|dO7|3w?y*4dQY+IyVZvmb<bOpDU6fyZIrF%obM|A|cGA}u
z0XIawnjTgDa0snlxj(}F!DjES84}uuW*PhI-Usgh1F;Wv+>`5XZoxo3+aOBx{%rS#
ze6+aQ<yW5f*BsKFw7Te;q;YS}lyQl=;9H={YRK8Bm7LV4x}=0*B`EQ7Ck0%!8!T+M
zk*sStpZsdAk-?+dbB`r_|EcIE?elDnv6jiJGZo4f#?G_g`?Ajbm~6gGD{Nc>DE(d<
zS^f`K-sG+JOfM^^hv90j+@h~di)z`E<xipQY-3~9R@>&asL>vR=Gibz_e-4+8~1m>
zhVvhDwY8Nh<Eu;Hom!7ypW2w5oSX{W^4Ts<wVip@F!gG=@_6tIcKoZ9lQq>|Yt5Ux
zd675{MCaPzVIC!lMbG|VHGo3h(ag@!Hwcz!1EZO=(k}>2weg<Gv8_5t?73HSc=;2%
zMwe#5E7$ca1)kq7=XRf$uDo&*Pf*=vsGpsC|Eq4yq6%0WA0&JBz`Uh=1AO}!n7Y;1
z)q(G!i|4_&-kstV)8*Y2sN32{nbB?;lNJl0=a({wf+JsuZ9CkwKO!N=cr|IUw_LjK
zqRlcsNFMw=!#c&l5$+}_$M@;!%TUa%Htz&D);PQ2v|Rdo{z!PJ4sQ%8B1Szk3T;3p
zNiq1RNui4VnmX2%a+MCot##9_>36{GUq=D9&J~k1-{^tM{-kA|tm@37rE{i_8YP<R
zt;5%^mRxTkj{p!w8+-w4Bgw<4DVcKt$qV2l_nyI(A;OF_nEW8Wtb#XOD`!?x66x_0
z_q^jD4nMK8BTR;%%9Qz*q%-Q8ej_uc=e|2Uc|Y&MR&r}-zZo)W8P|D%VYfVQoq9w@
zn>L47i!71#0Kcey4fbEHOpH!7ti#Q`?I%p*#!SZz*4M622Z{_|RSDS_89OK!WW!;q
zhhh5Hg&?2({;>v>PX3Ci0BW_$ZwUKqA{DOA5X!BBo3MjoirnS1?A4*35g#?ZKuht&
z_^J{I6}&F}KWAy1BpHyZ+?-kd0&aqYn~p#!#_qBx7$0QaD9WiS%n$C%#0W7l)cKLa
zg<RgjY0n<)U~MR(F6C#a?#$&mN7Oa+T99JoWn6$@L4#vAR4dRoWZ6V+@sr1mU(S=s
z8>R9QIU5+(5ITL;;bNJp8zg4+<U6gNs>&sbf*Z2t=W&jQ(L(Q1O7uIQ7u}7%d-@~@
zaP^jZ66@U{g0Ga}Cd~8u=6m=jp?3+$E#J%N=S3g|n!DeBY`$lGw7HW~Z1^c9kK5Nl
zD3|Us8Z)=tIh$$iTP%ycu}GhC!m;*CNny{9Sf6ltfgDh)?DOc#XHI(g;Qs!?#sqNX
z=Nv2iFhx>}FgnLqV;TXI09wq`!c|kkp9O{lca6}OPtDbkJ(ZK?5LuqdFJkCmlWgcc
zJ-4Ddk&Ht)3J~(OpiF7Xsj`=E{yDWU;#7?Lok%NK?e3!jU?@i~OU7(r=4>qE8;uyA
zef_Gjr2$DuvJWyj`(uN3^*6GO#_yE&ygy46Np&_AwQDg>!{f|<)HkO;?~63{o%$pO
z@R%RR88I-3{G1PN_@eX*`uvyH>2+HSN%O-G2fS_+o}{#dMkLh%Mf)LG5|r8)g*GY@
z4g={&adWL$1XYXi*BsJqjArS=hu6hHs9(VT7-^oipvQb}Vc%}OcUDv<X@~AljQW$p
z4Q-{A<m|HiMmBW$YDd9x)rC~Q+7>bXXltlwkEN&Cn}(C3w&&k&L$;!-obdQvZhiri
zuCEiOd8{L6g3=*O^^p-pfq0=wt@dn~shD&sk9ev1Z)EQf8!Ta^RoB!>>f@w<Ea$JH
z_`=KtGk|UJId3o=C}Hgs_cG&?h?Dai0J5(btmOE+{gxh#Ku}w{2i(#|7y#oqat+{a
zs2pB3TH}`CM(L%M!6_z9Du@RAeZapq>g}aHbu`<Cj~}sf>J5)old5n`j*aDrJE>dq
ztP1G&XbfzC27TABw@x|O(H(mE*5<NvZ8JkZhWC2rV%scF^}#2((jSIItXfDi4M)ax
zj_$HOdVN5GFe}9?RiUeDLr9Y;b}>5B_=%%_(yrL$VSXZPx?YKn1AY9g<j_xS`B=y!
zI?($XAKkGwPWH0G{inAeu}4LwFsI{ctLd*vV~bsnn8^}1bBAnp(8~)IZrIGr$EWvs
z<VAo{_-P1@DvLK+@PAN>eh1hTcl}<Aew4EehpdllRT-3mqnOdcj9Li&Z03$dS6Ges
znjA?$6OGw1Xv=6a;CcR*C&xT+I$lK9B;z2)_fgid2hz3rV;g;6Q@aKz5L!EVM`_$o
z0ofQ*1=17bFND3V+FmpyG5~lCcHqPM9WnX8>=14fsCXM4h0LS;kZHkIYuEYH5iV9E
z|3@IJoDZwtVjYoxe=&}zfRCurIZf;bMguDawj*mlE$j-tEKZ6Pxi{tD*RacZ_=fy_
zeE+U^h^8nZHLZ*4_QA}wRsh?@;r<fC=mAl*0fXAzlc|hnYMv5mo*>=yI<n#_)0kA&
z3<K{NX-6y}?qTZBss3F(k45MmzAEc(>Y-LSuHSn<GZG91R7Y#D$7L7nE=H<D*q0e~
z)lT_MI~6B)yB{X~W5R51X9uS?Q-LlS7q-x?O`45+Ok2TH-|I_86lAx`G!#R$xcr~~
z3p$R6Xq8zzAzmhSv=EV`YjcT&A16w*(RaQK$lCd;Z9y>4w{Z*l!Yn=^J}5m|)6>5?
z4A$Relh3H+=B%y)$s5XtPUidnI$R)Lt^wN<m#$T=|Guyd{&ZnqgC1;8az0u@n0`%q
z*0G_x^}UL;jt#gk(9&dxybx1>c-i#*d3BOVKaJH0SuKZvJ=Tl|O6r~gEvPc-bj;nO
z;bG=`xsGY<S3FHyvGNjNpp(PTUulC3Lqmit5`5brYK`nj@K29Im8Ya?^Tx$W2zAn1
zkXi(vXFO7~i3n*Yeu6w7Q-?Z<qIZy4+gG;@>xEHC{5`kJKc-RDqz;`AYpZ^LL%n`C
zkW(3|LDoXPy6xB!RY{ir>;<JK^-fZ^RLiYAal2Rk8q8!{pRrzo0L9PS=16uV)(Ui=
zgQkr%`8LDOzXQpJoXW}?tkKj?sG7r=eN?ac2!B(Jc=Fy|z%h_{2bQ}qJPaxXwoQd^
zcG;JG;0>L4sQgDB>xo&CW;l68idMh3(|;6Vr06-62GTO^sv7(D77NF}_AQ0CS>+0Y
z`(v(NaxX9ttlA(K<XE}kpQ|(G)LNA(jN6O6`ChLlvpmh4gRVhr>szMnX*?p#yTXct
zCm)8Y9uj+jlOK9NPvqYELfS3>_+6|ZIROOu-TxrEJGZw$WoELJo;gYL#KyU2I!N~B
ziAF0i={fbqw9ZbpK+V(d#zYR?$3i&y1?4YB`bO4rVGNmp%0Ae(8!Famh~3gi^u+>G
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
MX>b43|NZuV0O%|OasU7T

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/readme.md b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/readme.md
new file mode 100644
index 0000000..4f00e6f
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/readme.md
@@ -0,0 +1,55 @@
+XMM — Probabilistic Models for Continuous Motion Recognition and Mapping
+===========================================
+
+XMM is a portable, cross-platform C++ library that implements Gaussian Mixture Models and Hidden Markov Models for recognition and regression. The XMM library was developed for movement interaction in creative applications and implements an interactive machine learning workflow with fast training and continuous, real-time inference.
+
+### Major Update! [Sept. 2016]
+
+We just updated XMM to the newest API version!
+
+This version is not compatible with the initial API, which is still available on a separate branch: https://github.com/Ircam-RnD/xmm/tree/v0-historic-api.
+
+### Contact
+
+Jules Francoise: <jules.francoise@ircam.fr>
+
+### author
+
+This code has been initially authored by <a href="http://julesfrancoise.com">Jules Francoise</a> during his PhD thesis, supervised by <a href="frederic-bevilacqua.net">Frederic Bevilacqua</a>, in the <a href="http://ismm.ircam.fr">Sound Music Movement Interaction</a> team of the <a href="http://www.ircam.fr/stms.html?&L=1">STMS Lab</a> - IRCAM - CNRS - UPMC (2011-2015).
+
+### Copyright
+
+Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+
+### Licence
+
+This project is released under the <a href="http://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3</a> license.
+For commercial applications, a proprietary license is available upon request to Frederick Rousseau <frederick.rousseau@ircam.fr>.
+
+XMM is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+
+### Citing this work
+
+If you use this code for research purposes, please cite one of the following publications:
+
+- J. Francoise, N. Schnell, R. Borghesi, and F. Bevilacqua, Probabilistic Models for Designing Motion and Sound Relationships. In Proceedings of the 2014 International Conference on New Interfaces for Musical Expression, NIME’14, London, UK, 2014.
+- J. Francoise, N. Schnell, and F. Bevilacqua, A Multimodal Probabilistic Model for Gesture-based Control of Sound Synthesis. In Proceedings of the 21st ACM international conference on Multimedia (MM’13), Barcelona, Spain, 2013.
+
+### Dependencies
+
+ The library depends on <a href="https://github.com/open-source-parsers/jsoncpp">jsoncpp</a> for JSON file I/O. The library is distributed with this softare. The units tests rely on the <a href="https://github.com/philsquared/Catch">Catch</a> testing framework
+
+## Documentation
+
+The full documentation is available on Github Pages: http://ircam-rnd.github.io/xmm/
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.cpp
new file mode 100644
index 0000000..bdf3655
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.cpp
@@ -0,0 +1,108 @@
+/*
+ * xmmAttribute.hpp
+ *
+ * Generic Attributes
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmAttribute.hpp"
+#include <string>
+
+template <>
+void xmm::checkLimits<bool>(bool const& value, bool const& limit_min,
+                            bool const& limit_max) {}
+
+template <>
+void xmm::checkLimits<unsigned char>(unsigned char const& value,
+                                     unsigned char const& limit_min,
+                                     unsigned char const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<char>(char const& value, char const& limit_min,
+                            char const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<unsigned int>(unsigned int const& value,
+                                    unsigned int const& limit_min,
+                                    unsigned int const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<int>(int const& value, int const& limit_min,
+                           int const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<long>(long const& value, long const& limit_min,
+                            long const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<float>(float const& value, float const& limit_min,
+                             float const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<double>(double const& value, double const& limit_min,
+                              double const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error("Attribute value out of range. Range: [" +
+                                std::to_string(limit_min) + " ; " +
+                                std::to_string(limit_max) + "]");
+}
+
+template <>
+void xmm::checkLimits<std::string>(std::string const& value,
+                                   std::string const& limit_min,
+                                   std::string const& limit_max) {}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.hpp
new file mode 100644
index 0000000..d1dcfc8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmAttribute.hpp
@@ -0,0 +1,644 @@
+/*
+ * xmmAttribute.hpp
+ *
+ * Generic Attributes
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmAttribute_h
+#define xmmAttribute_h
+
+#include <functional>
+#include <limits>
+#include <stdexcept>
+#include <string>
+#include <vector>
+
+namespace xmm {
+
+#pragma mark -
+#pragma mark === Functions checkLimits ===
+/**
+ @ingroup Common
+ @brief checks the validity of the requested value with respect to the current
+ limits
+ @param value requested attribute value
+ @param limit_min minimum value
+ @param limit_max maximum value
+ */
+template <typename T>
+void checkLimits(T const& value, T const& limit_min, T const& limit_max) {
+    throw std::runtime_error(
+        "Attribute limits are not implemented for the current type.");
+}
+
+template <>
+void checkLimits<bool>(bool const& value, bool const& limit_min,
+                       bool const& limit_max);
+
+template <>
+void checkLimits<unsigned char>(unsigned char const& value,
+                                unsigned char const& limit_min,
+                                unsigned char const& limit_max);
+
+template <>
+void checkLimits<char>(char const& value, char const& limit_min,
+                       char const& limit_max);
+
+template <>
+void checkLimits<unsigned int>(unsigned int const& value,
+                               unsigned int const& limit_min,
+                               unsigned int const& limit_max);
+
+template <>
+void checkLimits<int>(int const& value, int const& limit_min,
+                      int const& limit_max);
+
+template <>
+void checkLimits<long>(long const& value, long const& limit_min,
+                       long const& limit_max);
+
+template <>
+void checkLimits<float>(float const& value, float const& limit_min,
+                        float const& limit_max);
+
+template <>
+void checkLimits<double>(double const& value, double const& limit_min,
+                         double const& limit_max);
+
+template <>
+void checkLimits<std::string>(std::string const& value,
+                              std::string const& limit_min,
+                              std::string const& limit_max);
+
+#pragma mark -
+#pragma mark === Class AttributeBase ===
+/**
+ @ingroup Common
+ @brief Base Class for Generic Attributes
+ */
+class AttributeBase {
+  public:
+    virtual ~AttributeBase() {}
+
+    /**
+     @brief Default Constructor
+     */
+    AttributeBase() : changed(false) {}
+
+    /**
+     @brief Defines if the value has been changed
+     */
+    bool changed;
+};
+
+#pragma mark -
+#pragma mark === Class Attribute ===
+/**
+ @ingroup Common
+ @brief Generic Attribute
+ @tparam T attribute type
+ */
+template <typename T>
+class Attribute : public AttributeBase {
+  public:
+    typedef std::function<void(AttributeBase*)> AttributeChangeCallback;
+
+    template <typename U, typename args, class ListenerClass>
+    void onAttributeChange(U* owner,
+                           void (ListenerClass::*listenerMethod)(args)) {
+        using namespace std::placeholders;
+        if (owner)
+            callback_ = std::bind(listenerMethod, owner, _1);
+        else
+            callback_ = nullptr;
+    }
+
+    /**
+     @brief Default Constructor
+     @param value attribute value
+     @param limit_min minimum limit
+     @param limit_max maximum limit
+     */
+    Attribute(T const& value = T(), T const& limit_min = defaultLimitMin(),
+              T const& limit_max = defaultLimitMax())
+        : limit_min_(limit_min), limit_max_(limit_max) {
+        set(value, true);
+        changed = false;
+    }
+
+    /**
+     @brief Copy Constructor
+     @param src source attribute
+     @warning the listener object is not copied from the source attribute
+     */
+    Attribute(Attribute const& src)
+        : value_(src.value_),
+          limit_min_(src.limit_min_),
+          limit_max_(src.limit_max_) {
+        changed = false;
+    }
+
+    /**
+     @brief Assignment operator
+     @param src source attribute
+     @return copy of the source Attribute object
+     @warning the listener object is not copied from the source attribute
+     */
+    template <typename U>
+    Attribute& operator=(Attribute<U> const& src) {
+        if (this != &src) {
+            value_ = src.value_;
+            limit_min_ = src.limit_min_;
+            limit_max_ = src.limit_max_;
+            changed = false;
+        }
+        return *this;
+    }
+
+    /**
+     @brief Set the attribute value
+     @param value requested value
+     @param silently if true, don't notify the listener object
+     @throws domain_error exception if the value exceeds the limits
+     @throws runtime_error exception if the limit checking are not implemented
+     for the current type
+     */
+    void set(T const& value, bool silently = false) {
+        checkLimits(value, limit_min_, limit_max_);
+        value_ = value;
+        changed = true;
+        if (!silently && callback_) callback_(this);
+    }
+
+    /**
+     @brief get the attribute's current value
+     @return the attribute's current value
+     */
+    T get() const { return value_; }
+
+    /**
+     @brief set the attribute's minimum value
+     @param limit_min minimum value
+     */
+    void setLimitMin(T const& limit_min = defaultLimitMin()) {
+        limit_min_ = limit_min;
+    }
+
+    /**
+     @brief set the attribute's maximum value
+     @param limit_max maximum value
+     */
+    void setLimitMax(T const& limit_max = defaultLimitMax()) {
+        limit_max_ = limit_max;
+    }
+
+    /**
+     @brief set the attribute's limit values
+     @param limit_min minimum value
+     @param limit_max maximum value
+     */
+    void setLimits(T const& limit_min = defaultLimitMin(),
+                   T const& limit_max = defaultLimitMax()) {
+        setLimitMin(limit_min);
+        setLimitMax(limit_max);
+    }
+
+  protected:
+    /**
+     @brief Attribute default minimum value
+     */
+    static T defaultLimitMin() { return std::numeric_limits<T>::lowest(); }
+
+    /**
+     @brief Attribute default maximum value
+     */
+    static T defaultLimitMax() { return std::numeric_limits<T>::max(); }
+
+    /**
+     @brief Current value of the attribute
+     */
+    T value_;
+
+    /**
+     @brief Minimum value of the attribute
+     */
+    T limit_min_;
+
+    /**
+     @brief Maximum value of the attribute
+     */
+    T limit_max_;
+
+    /**
+     @brief Callback function to be called on attribute change
+     */
+    AttributeChangeCallback callback_;
+};
+
+#pragma mark -
+#pragma mark === Class Attribute: vector specialization ===
+/**
+ @ingroup Common
+ @brief Generic Attribute (Vector Specialization)
+ @tparam T Vector base type
+ */
+template <typename T>
+class Attribute<std::vector<T>> : public AttributeBase {
+  public:
+    typedef std::function<void(AttributeBase*)> AttributeChangeCallback;
+
+    template <typename U, typename args, class ListenerClass>
+    void onAttributeChange(U* owner,
+                           void (ListenerClass::*listenerMethod)(args)) {
+        using namespace std::placeholders;
+        if (owner)
+            callback_ = std::bind(listenerMethod, owner, _1);
+        else
+            callback_ = nullptr;
+    }
+
+    /**
+     @brief Default Constructor
+     @param value attribute value
+     @param limit_min minimum limit
+     @param limit_max maximum limit
+     @param size size of the vector attribute (if 0, no size checking on set)
+     */
+    Attribute(std::vector<T> const& value = std::vector<T>(),
+              T const& limit_min = defaultLimitMin(),
+              T const& limit_max = defaultLimitMax(), unsigned int size = 0)
+        : limit_min_(limit_min), limit_max_(limit_max), size_(size) {
+        set(value, true);
+        changed = false;
+    }
+
+    /**
+     @brief Copy Constructor
+     @param src source attribute
+     @warning the listener object is not copied from the source attribute
+     */
+    Attribute(Attribute const& src)
+        : value_(src.value_),
+          limit_min_(src.limit_min_),
+          limit_max_(src.limit_max_),
+          size_(src.size_) {
+        changed = false;
+    }
+
+    /**
+     @brief Assignment operator
+     @param src source attribute
+     @return copy of the source Attribute object
+     @warning the listener object is not copied from the source attribute
+     */
+    template <typename U>
+    Attribute& operator=(Attribute<U> const& src) {
+        if (this != &src) {
+            value_ = src.value_;
+            limit_min_ = src.limit_min_;
+            limit_max_ = src.limit_max_;
+            size_ = src.size_;
+            changed = false;
+        }
+        return *this;
+    }
+
+    /**
+     @brief Set the attribute value
+     @param value requested value
+     @param silently if true, don't notify the listener object
+     @throws domain_error exception if the value exceeds the limits, or if the
+     value does not
+     match the attribute's size (if the attribute's size is > 0)
+     @throws runtime_error exception if the limit checking are not implemented
+     for the current type
+     */
+    void set(std::vector<T> const& value, bool silently = false) {
+        if (size_ > 0 && value.size() != size_) {
+            throw std::domain_error("Attribute value has the wrong size");
+        }
+        for (auto& val : value) {
+            checkLimits(val, limit_min_, limit_max_);
+        }
+        value_ = value;
+        changed = true;
+        if (!silently && callback_) callback_(this);
+    }
+
+    /**
+     @brief get the attribute's current value
+     @return the attribute's current value
+     */
+    std::vector<T> get() const { return value_; }
+
+    /**
+     @brief get the attribute's current value at a given index
+     @param index index in the value vector
+     @return the attribute's current value at a given index
+     */
+    T at(unsigned int index) const {
+        if (index < size_) {
+            return value_[index];
+        } else {
+            throw std::out_of_range("Index out of range");
+        }
+    }
+
+    /**
+     @brief set the attribute's minimum value
+     @param limit_min minimum value
+     */
+    void setLimitMin(T const& limit_min = defaultLimitMin()) {
+        limit_min_ = limit_min;
+    }
+
+    /**
+     @brief set the attribute's maximum value
+     @param limit_max maximum value
+     */
+    void setLimitMax(T const& limit_max = defaultLimitMax()) {
+        limit_max_ = limit_max;
+    }
+
+    /**
+     @brief set the attribute's limit values
+     @param limit_min minimum value
+     @param limit_max maximum value
+     */
+    void setLimits(T const& limit_min = defaultLimitMin(),
+                   T const& limit_max = defaultLimitMax()) {
+        setLimitMin(limit_min);
+        setLimitMax(limit_max);
+    }
+
+    /**
+     @brief set the attribute's size (vector Attribute). if 0, there is not
+     size-checking on set.
+     @param size vector size
+     */
+    void resize(unsigned int size) {
+        value_.resize(size, T());
+        size_ = size;
+    }
+
+    /**
+     @brief get the attribute's current size (vector Attribute)
+     @return value vector size
+     */
+    unsigned int size() const { return value_.size(); }
+
+  protected:
+    /**
+     @brief Attribute default minimum value
+     */
+    static T defaultLimitMin() { return std::numeric_limits<T>::lowest(); }
+
+    /**
+     @brief Attribute default maximum value
+     */
+    static T defaultLimitMax() { return std::numeric_limits<T>::max(); }
+
+    /**
+     @brief Current value of the attribute
+     */
+    std::vector<T> value_;
+
+    /**
+     @brief Minimum value of the attribute
+     */
+    T limit_min_;
+
+    /**
+     @brief Maximum value of the attribute
+     */
+    T limit_max_;
+
+    /**
+     @brief Size of the vector of values
+     */
+    unsigned int size_;
+
+    /**
+     @brief Callback function to be called on attribute change
+     */
+    AttributeChangeCallback callback_;
+};
+
+#pragma mark -
+#pragma mark === Class Attribute: vector<string> specialization ===
+/**
+ @ingroup Common
+ @brief Generic Attribute (Vector Specialization)
+ */
+template <>
+class Attribute<std::vector<std::string>> : public AttributeBase {
+  public:
+    typedef std::function<void(AttributeBase*)> AttributeChangeCallback;
+
+    template <typename U, typename args, class ListenerClass>
+    void onAttributeChange(U* owner,
+                           void (ListenerClass::*listenerMethod)(args)) {
+        using namespace std::placeholders;
+        if (owner)
+            callback_ = std::bind(listenerMethod, owner, _1);
+        else
+            callback_ = nullptr;
+    }
+
+    /**
+     @brief Default Constructor
+     @param value attribute value
+     @param limit_min minimum limit
+     @param limit_max maximum limit
+     @param size size of the vector attribute (if 0, no size checking on set)
+     */
+    Attribute(std::vector<std::string> const& value = {},
+              std::string const& limit_min = "",
+              std::string const& limit_max = "", unsigned int size = 0)
+        : limit_min_(limit_min), limit_max_(limit_max), size_(size) {
+        set(value, true);
+        changed = false;
+    }
+
+    /**
+     @brief Copy Constructor
+     @param src source attribute
+     @warning the listener object is not copied from the source attribute
+     */
+    Attribute(Attribute const& src)
+        : value_(src.value_),
+          limit_min_(src.limit_min_),
+          limit_max_(src.limit_max_),
+          size_(src.size_) {
+        changed = false;
+    }
+
+    /**
+     @brief Assignment operator
+     @param src source attribute
+     @return copy of the source Attribute object
+     @warning the listener object is not copied from the source attribute
+     */
+    template <typename U>
+    Attribute& operator=(Attribute<U> const& src) {
+        if (this != &src) {
+            value_ = src.value_;
+            limit_min_ = src.limit_min_;
+            limit_max_ = src.limit_max_;
+            size_ = src.size_;
+            changed = false;
+        }
+        return *this;
+    }
+
+    /**
+     @brief Set the attribute value
+     @param value requested value
+     @param silently if true, don't notify the listener object
+     @throws domain_error exception if the value exceeds the limits, or if the
+     value does not
+     match the attribute's size (if the attribute's size is > 0)
+     @throws runtime_error exception if the limit checking are not implemented
+     for the current type
+     */
+    void set(std::vector<std::string> const& value, bool silently = false) {
+        if (size_ > 0 && value.size() != size_) {
+            throw std::domain_error("Attribute value has the wrong size");
+        }
+        for (auto& val : value) {
+            checkLimits(val, limit_min_, limit_max_);
+        }
+        value_ = value;
+        changed = true;
+        if (!silently && callback_) callback_(this);
+    }
+
+    /**
+     @brief get the attribute's current value
+     @return the attribute's current value
+     */
+    std::vector<std::string> get() const { return value_; }
+
+    /**
+     @brief get the attribute's current value at a given index
+     @param index index in the value vector
+     @return the attribute's current value at a given index
+     */
+    std::string at(unsigned int index) const {
+        if (index < size_) {
+            return value_[index];
+        } else {
+            throw std::out_of_range("Index out of range");
+        }
+    }
+
+    /**
+     @brief set the attribute's minimum value
+     @param limit_min minimum value
+     */
+    void setLimitMin(std::string const& limit_min = defaultLimitMin()) {
+        limit_min_ = limit_min;
+    }
+
+    /**
+     @brief set the attribute's maximum value
+     @param limit_max maximum value
+     */
+    void setLimitMax(std::string const& limit_max = defaultLimitMax()) {
+        limit_max_ = limit_max;
+    }
+
+    /**
+     @brief set the attribute's limit values
+     @param limit_min minimum value
+     @param limit_max maximum value
+     */
+    void setLimits(std::string const& limit_min = defaultLimitMin(),
+                   std::string const& limit_max = defaultLimitMax()) {
+        setLimitMin(limit_min);
+        setLimitMax(limit_max);
+    }
+
+    /**
+     @brief set the attribute's size (vector Attribute). if 0, there is not
+     size-checking on set.
+     @param size vector size
+     */
+    void resize(unsigned int size) {
+        value_.resize(size, "");
+        size_ = size;
+    }
+
+    /**
+     @brief get the attribute's current size (vector Attribute)
+     @return value vector size
+     */
+    unsigned int size() const {
+        return static_cast<unsigned int>(value_.size());
+    }
+
+  protected:
+    /**
+     @brief Attribute default minimum value
+     */
+    static std::string defaultLimitMin() { return ""; }
+
+    /**
+     @brief Attribute default maximum value
+     */
+    static std::string defaultLimitMax() { return ""; }
+
+    /**
+     @brief Current value of the attribute
+     */
+    std::vector<std::string> value_;
+
+    /**
+     @brief Minimum value of the attribute
+     */
+    std::string limit_min_;
+
+    /**
+     @brief Maximum value of the attribute
+     */
+    std::string limit_max_;
+
+    /**
+     @brief Size of the vector of values
+     */
+    unsigned int size_;
+
+    /**
+     @brief Callback function to be called on attribute change
+     */
+    AttributeChangeCallback callback_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmCircularbuffer.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmCircularbuffer.hpp
new file mode 100644
index 0000000..c435761
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmCircularbuffer.hpp
@@ -0,0 +1,195 @@
+/*
+ * xmmCircularBuffer.hpp
+ *
+ * Simple Circular Buffer Utility
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmCircularbuffer_h
+#define xmmCircularbuffer_h
+
+#include <exception>
+#include <stdexcept>
+#include <vector>
+
+namespace xmm {
+/**
+ @ingroup Common
+ @brief Simple CircularBuffer Class
+ @details Multichannel Circular Buffer
+ @tparam T Data type
+ @tparam channels number of channels
+ */
+template <typename T, unsigned int channels = 1>
+class CircularBuffer {
+  public:
+    /**
+     @brief Constructor
+     @param length length of the CircularBuffer
+     */
+    CircularBuffer(unsigned int length = 1) {
+        length_ = length;
+        for (int c = 0; c < channels; c++) {
+            data_[c].resize(length_);
+        }
+        current_index_ = 0;
+        full_ = false;
+    }
+
+    /**
+     @brief Access data by index & channel
+     @return value at the given index and channel
+     */
+    T operator()(unsigned int channel, unsigned int index) const {
+        if (channel >= channels)
+            throw std::out_of_range("CircularBuffer: channel out of bounds");
+        unsigned int m = full_ ? length_ : current_index_;
+        if (index >= m)
+            throw std::out_of_range("CircularBuffer: index out of bounds");
+        return data_[channel][index];
+    }
+
+    /**
+     @brief Clear the content of the buffer
+     */
+    void clear() {
+        current_index_ = 0;
+        full_ = false;
+    }
+
+    /**
+     @brief Add an element to the buffer (single-channel method)
+     @param value element to add to the buffer
+     @throws invalid_argument if the buffer is multi-channel
+     */
+    void push(T const value) {
+        if (channels > 1)
+            throw std::invalid_argument("You must pass a vector or array");
+        data_[0][current_index_] = value;
+        current_index_++;
+        if (current_index_ == length_) full_ = true;
+        current_index_ %= length_;
+    }
+
+    /**
+     @brief Add an element to the buffer (multi-channel method)
+     @param value element to add to the buffer
+     */
+    void push(T const *value) {
+        for (int c = 0; c < channels; c++) {
+            data_[c][current_index_] = value[c];
+        }
+        current_index_++;
+        if (current_index_ == length_) full_ = true;
+        current_index_ %= length_;
+    }
+
+    /**
+     @brief Add an element to the buffer (multi-channel method)
+     @param value element to add to the buffer
+     */
+    void push(std::vector<T> const &value) {
+        for (int c = 0; c < channels; c++) {
+            data_[c][current_index_] = value[c];
+        }
+        current_index_++;
+        if (current_index_ == length_) full_ = true;
+        current_index_ %= length_;
+    }
+
+    /**
+     @brief Get the size of the CircularBuffer
+     @return size of the CircularBuffer (length)
+     */
+    unsigned int size() const { return length_; }
+
+    /**
+     @brief Get the actual size of the CircularBuffer (< size() if the buffer is
+     not full)
+     @return actual size of the CircularBuffer (length)
+     */
+    unsigned int size_t() const { return (full_ ? length_ : current_index_); }
+
+    /**
+     @brief Resize the buffer to a specific length
+     @param length target length of the CircularBuffer
+     */
+    void resize(unsigned int length) {
+        if (length == length_) return;
+        if (length > length_) {
+            full_ = false;
+        } else if (current_index_ >= length) {
+            full_ = true;
+            current_index_ = 0;
+        }
+        length_ = length;
+        for (int c = 0; c < channels; c++) {
+            data_[c].resize(length_);
+        }
+    }
+
+    /**
+     @brief Compute the mean of the buffer
+     @return vector containing the mean of the buffer
+     */
+    std::vector<T> mean() const {
+        std::vector<T> _mean(channels, 0.0);
+        int size = full_ ? length_ : current_index_;
+        for (int c = 0; c < channels; c++) {
+            for (int i = 0; i < size; i++) {
+                _mean[c] += data_[c][i];
+            }
+            _mean[c] /= T(size);
+        }
+        return _mean;
+    }
+
+  protected:
+    /**
+     @brief buffer data
+     */
+    std::vector<T> data_[channels];
+
+    /**
+     @brief length of the buffer
+     */
+    unsigned int length_;
+
+    /**
+     @brief current index in the buffer
+     */
+    unsigned int current_index_;
+
+    /**
+     @brief Defines if the CircularBuffer is already full
+     */
+    bool full_;
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmEvents.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmEvents.hpp
new file mode 100644
index 0000000..6468eb7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmEvents.hpp
@@ -0,0 +1,113 @@
+/*
+ * xmmEvents.hpp
+ *
+ * Template classes for Event generators
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmEvents_h
+#define xmmEvents_h
+
+#include <functional>
+#include <map>
+#include <set>
+
+namespace xmm {
+/**
+ @ingroup Common
+ @brief Generator class for a specific type of events
+ @tparam EventType Type of Events that can be sent
+ */
+template <typename EventType>
+class EventGenerator {
+  public:
+    typedef std::function<void(EventType&)> EventCallBack;
+
+    /**
+     @brief Default constructor
+     */
+    EventGenerator() {}
+
+    /**
+     @brief Destructor
+     @details Also notifies all listeners that this generators is deleted
+     */
+    virtual ~EventGenerator() {}
+
+    /**
+     @brief Adds a listener object to be notified when events are sent
+     @param owner Pointer to the listener object
+     @param listenerMethod Method to be called in the target class
+     @tparam U type of the target object
+     @tparam args callback arguments
+     @tparam ListenerClass Listener Class
+     */
+    template <typename U, typename args, class ListenerClass>
+    void addListener(U* owner, void (ListenerClass::*listenerMethod)(args)) {
+        callbacks_.insert(std::pair<void*, EventCallBack>(
+            static_cast<void*>(owner),
+            std::bind(listenerMethod, owner, std::placeholders::_1)));
+    }
+
+    /**
+     @brief Removes a listener object
+     @param owner Pointer to the listener object
+     @param listenerMethod Method to be called in the target class
+     @tparam U type of the target object
+     @tparam args callback arguments
+     @tparam ListenerClass Listener Class
+     */
+    template <typename U, typename args, class ListenerClass>
+    void removeListener(U* owner, void (ListenerClass::*listenerMethod)(args)) {
+        callbacks_.erase(static_cast<void*>(owner));
+    }
+
+    /**
+     @brief Removes all listeners
+     */
+    void removeListeners() { callbacks_.clear(); }
+
+    /**
+     @brief Propagates the event to all listeners
+     @param e event
+     */
+    void notifyListeners(EventType& e) const {
+        for (auto& callback : callbacks_) {
+            callback.second(e);
+        }
+    }
+
+  private:
+    /**
+     @brief Set of listener objects
+     */
+    std::map<void*, EventCallBack> callbacks_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.cpp
new file mode 100644
index 0000000..96d864b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.cpp
@@ -0,0 +1,133 @@
+/*
+ * xmmJson.cpp
+ *
+ * Set of utility functions for JSON I/O
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmJson.hpp"
+
+template <>
+void xmm::json2array(Json::Value const& root, float* a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asFloat();
+    }
+}
+
+template <>
+void xmm::json2array(Json::Value const& root, double* a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asDouble();
+    }
+}
+
+template <>
+void xmm::json2array(Json::Value const& root, bool* a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asBool();
+    }
+}
+
+template <>
+void xmm::json2array(Json::Value const& root, std::string* a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asString();
+    }
+}
+
+template <>
+void xmm::json2vector(Json::Value const& root, std::vector<float>& a,
+                      unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asFloat();
+    }
+}
+
+template <>
+void xmm::json2vector(Json::Value const& root, std::vector<double>& a,
+                      unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asDouble();
+    }
+}
+
+template <>
+void xmm::json2vector(Json::Value const& root, std::vector<bool>& a,
+                      unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asBool();
+    }
+}
+
+template <>
+void xmm::json2vector(Json::Value const& root, std::vector<std::string>& a,
+                      unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asString();
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.hpp
new file mode 100644
index 0000000..8a27eee
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmJson.hpp
@@ -0,0 +1,323 @@
+/*
+ * xmmJson.hpp
+ *
+ * Set of utility functions for JSON I/O
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmJson_h
+#define xmmJson_h
+
+#include "../../../dependencies/jsoncpp/include/json.h"
+#include <fstream>
+#include <vector>
+
+namespace xmm {
+/**
+ @ingroup Common
+ @brief Abstract class for handling JSON + File I/O
+ @details the JSON I/O methods need to be implemented. writeFile and readFile
+ methods
+ can be used in Python for file I/O. The __str__() Python method is implemented
+ to use
+ with "print" in Python. It return the pretty-printed JSON String.
+ */
+class Writable {
+  public:
+    virtual ~Writable() {}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const = 0;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root) = 0;
+
+///@}
+
+#ifdef SWIGPYTHON
+    /** @name Python File I/O */
+    ///@{
+
+    /**
+     @brief write method for python wrapping ('write' keyword forbidden, name
+     has to be different)
+     @warning only defined if SWIGPYTHON is defined
+     */
+    void writeFile(char* fileName) const {
+        std::ofstream outStream;
+        outStream.open(fileName);
+        outStream << this->toJson();
+        outStream.close();
+    }
+
+    /**
+     @brief read method for python wrapping ('read' keyword forbidden, name has
+     to be different)
+     @warning only defined if SWIGPYTHON is defined
+     */
+    void readFile(char* fileName) {
+        std::string jsonstring;
+        std::ifstream inStream;
+        inStream.open(fileName);
+        //            inStream.seekg(0, std::ios::end);
+        //            jsonstring.reserve(inStream.tellg());
+        //            inStream.seekg(0, std::ios::beg);
+        //
+        //            jsonstring.assign((std::istreambuf_iterator<char>(inStream)),
+        //                              std::istreambuf_iterator<char>());
+        Json::Value root;
+        Json::Reader reader;
+        if (reader.parse(inStream, root)) {
+            this->fromJson(root);
+        } else {
+            throw std::runtime_error("Cannot Parse Json File");
+        }
+        inStream.close();
+    }
+
+    /**
+     @brief "print" method for python => returns the results of write method
+     @warning only defined if SWIGPYTHON is defined
+     */
+    std::string __str__() const { return this->toJson().toStyledString(); }
+
+///@}
+#endif
+};
+
+/**
+ @ingroup Common
+ @brief Exception class for handling JSON parsing errors
+ */
+class JsonException : public std::exception {
+  public:
+    /**
+     @brief Type of Json parsing errors
+     */
+    enum class JsonErrorType {
+        /**
+         @brief A Node is Missing in the Json Value
+         */
+        JsonMissingNode,
+
+        /**
+         @brief The current node has wrong data type
+         */
+        JsonTypeError,
+
+        /**
+         @brief The current node has an inadmissible value
+         */
+        JsonValueError
+    };
+
+    /**
+     @brief Default Constructor
+     @param errorType type of parsing error
+     @param nodename name of the JSON node where the error occurred
+     */
+    JsonException(JsonErrorType errorType, std::string nodename = "")
+        : errorType_(errorType) {
+        nodename_.push_back(nodename);
+    }
+
+    /**
+     @brief Constructor From exception message
+     @param src Source Exception
+     @param nodename name of the
+     */
+    explicit JsonException(JsonException const& src, std::string nodename)
+        : errorType_(src.errorType_), nodename_(src.nodename_) {
+        nodename_.push_back(nodename);
+    }
+
+    /**
+     @brief Copy Constructor
+     @param src Source exception
+     */
+    JsonException(JsonException const& src)
+        : errorType_(src.errorType_), nodename_(src.nodename_) {}
+
+    /**
+     @brief Assigment
+     @param src Source exception
+     */
+    JsonException& operator=(JsonException const& src) {
+        if (this != &src) {
+            errorType_ = src.errorType_;
+            nodename_ = src.nodename_;
+        }
+        return *this;
+    }
+
+    /**
+     @brief Get exception message
+     @return exception message
+     */
+    virtual const char* what() const throw() {
+        std::string message;
+        switch (errorType_) {
+            case JsonErrorType::JsonMissingNode:
+                message = "Json Structure Error: Missing Node";
+                break;
+
+            case JsonErrorType::JsonTypeError:
+                message = "Json Structure Error: Type Error";
+                break;
+
+            case JsonErrorType::JsonValueError:
+                message = "Json Structure Error: Value Error";
+                break;
+
+            default:
+                message = "Json unknown error type";
+                break;
+        }
+        message += " (root";
+        for (auto& node : nodename_) message += " > " + node;
+        message += ")";
+        return message.c_str();
+    }
+
+  private:
+    /**
+     @brief Type of Json Parsing Error
+     */
+    JsonErrorType errorType_;
+
+    /**
+     @brief Name of the Json Node presenting an error
+     */
+    std::vector<std::string> nodename_;
+};
+
+/**
+ @ingroup Common
+ @brief Writes a C-style array to a Json Value
+ @param a array
+ @param n array size
+ @return Json Value containing the array in Json Format
+ */
+template <typename T>
+Json::Value array2json(T const* a, unsigned int n) {
+    Json::Value root;
+    root.resize(static_cast<Json::ArrayIndex>(n));
+    for (int i = 0; i < n; i++) {
+        root[i] = a[i];
+    }
+    return root;
+}
+
+/**
+ @ingroup Common
+ @brief Reads a C-style array from a Json Value
+ @param root Json Value containing the array in Json Format
+ @param a array
+ @param n array size
+ */
+template <typename T>
+void json2array(Json::Value const& root, T* a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asInt();
+    }
+}
+
+template <>
+void json2array(Json::Value const& root, float* a, unsigned int n);
+template <>
+void json2array(Json::Value const& root, double* a, unsigned int n);
+template <>
+void json2array(Json::Value const& root, bool* a, unsigned int n);
+template <>
+void json2array(Json::Value const& root, std::string* a, unsigned int n);
+
+/**
+ @ingroup Common
+ @brief Writes a vector to a Json Value
+ @param a vector
+ @return Json Value containing the vector data in Json Format
+ */
+template <typename T>
+Json::Value vector2json(std::vector<T> const& a) {
+    Json::Value root;
+    root.resize(static_cast<Json::ArrayIndex>(a.size()));
+    for (int i = 0; i < a.size(); i++) {
+        root[i] = a[i];
+    }
+    return root;
+}
+
+/**
+ @ingroup Common
+ @brief Reads a vector from a Json Value
+ @param root Json Value containing the vector data in Json Format
+ @param a vector
+ @param n vector size
+ @warning the target vector must already have the appropriate size
+ */
+template <typename T>
+void json2vector(Json::Value const& root, std::vector<T>& a, unsigned int n) {
+    if (!root.isArray())
+        throw JsonException(JsonException::JsonErrorType::JsonTypeError);
+    if (root.size() != n)
+        throw JsonException(JsonException::JsonErrorType::JsonValueError);
+    unsigned int i = 0;
+    for (auto it : root) {
+        a[i++] = it.asInt();
+    }
+}
+
+template <>
+void json2vector(Json::Value const& root, std::vector<float>& a,
+                 unsigned int n);
+template <>
+void json2vector(Json::Value const& root, std::vector<double>& a,
+                 unsigned int n);
+template <>
+void json2vector(Json::Value const& root, std::vector<bool>& a, unsigned int n);
+template <>
+void json2vector(Json::Value const& root, std::vector<std::string>& a,
+                 unsigned int n);
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmMatrix.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmMatrix.hpp
new file mode 100644
index 0000000..b9611eb
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/common/xmmMatrix.hpp
@@ -0,0 +1,359 @@
+/*
+ * xmmMatrix.hpp
+ *
+ * Matrix Utilities
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmMatrix_h
+#define xmmMatrix_h
+
+#include <cmath>
+#include <exception>
+#include <iostream>
+#include <stdexcept>
+#include <vector>
+
+namespace xmm {
+/**
+ @defgroup Common [Core] Common Classes and Utilities
+ */
+
+/**
+ @ingroup Common
+ @brief Dirty and very incomplete Matrix Class
+ @details Contains few utilities for matrix operations, with possibility to
+ share data with vectors
+ @tparam T data type of the matrix (should be used with float/double)
+ */
+template <typename T>
+class Matrix {
+  public:
+    /**
+     @brief Epsilon value for Matrix inversion
+     @details  defines
+     */
+    static const double kEpsilonPseudoInverse() { return 1.0e-9; }
+
+    /**
+     @brief number of rows of the matrix
+     */
+    unsigned int nrows;
+
+    /**
+     @brief number of columns of the matrix
+     */
+    unsigned int ncols;
+
+    /**
+     @brief Matrix Data if not shared
+     */
+    std::vector<T> _data;
+
+    /**
+     @brief Data iterator
+     @details Can point to own data vector, or can be shared with another
+     container.
+     */
+    typename std::vector<T>::iterator data;
+
+    /**
+     @brief Defines if the matrix has its own data
+     */
+    bool ownData;
+
+    /**
+     @brief Default Constructor
+     @param ownData_ defines if the matrix stores the data itself (true by
+     default)
+     */
+    Matrix(bool ownData_ = true) : nrows(0), ncols(0), ownData(ownData_) {}
+
+    /**
+     @brief Square Matrix Constructor
+     @param nrows_ Number of rows (defines a square matrix)
+     @param ownData_ defines if the matrix stores the data itself (true by
+     default)
+     */
+    Matrix(unsigned int nrows_, bool ownData_ = true) {
+        nrows = nrows_;
+        ncols = nrows_;
+        ownData = ownData_;
+        if (ownData) {
+            _data.assign(nrows * ncols, T(0.0));
+            data = _data.begin();
+        }
+    }
+
+    /**
+     @brief Constructor
+     @param nrows_ Number of rows
+     @param ncols_ Number of columns
+     @param ownData_ defines if the matrix stores the data itself (true by
+     default)
+     */
+    Matrix(unsigned int nrows_, unsigned int ncols_, bool ownData_ = true) {
+        nrows = nrows_;
+        ncols = ncols_;
+        ownData = ownData_;
+        if (ownData) {
+            _data.assign(nrows * ncols, T(0.0));
+            data = _data.begin();
+        }
+    }
+
+    /**
+     @brief Constructor from vector (shared data)
+     @param nrows_ Number of rows
+     @param ncols_ Number of columns
+     @param data_it iterator to the vector data
+     */
+    Matrix(unsigned int nrows_, unsigned int ncols_,
+           typename std::vector<T>::iterator data_it) {
+        nrows = nrows_;
+        ncols = ncols_;
+        ownData = false;
+        data = data_it;
+    }
+
+    /**
+     @brief Resize the matrix
+     @param nrows_ Number of rows
+     @param ncols_ Number of columns
+     @throws runtime_error if the matrix is not square
+     */
+    void resize(unsigned int nrows_, unsigned int ncols_) {
+        nrows = nrows_;
+        ncols = ncols_;
+        _data.resize(nrows * ncols);
+    }
+
+    /**
+     @brief Resize a Square Matrix
+     @param nrows_ Number of rows
+     */
+    void resize(unsigned int nrows_) {
+        if (nrows != ncols) throw std::runtime_error("Matrix is not square");
+
+        nrows = nrows_;
+        ncols = nrows;
+        _data.resize(nrows * ncols);
+    }
+
+    /**
+     @brief Compute the Sum of the matrix
+     @return sum of all elements in the matrix
+     */
+    float sum() const {
+        float sum_(0.);
+        for (unsigned int i = 0; i < nrows * ncols; i++) sum_ += data[i];
+        return sum_;
+    }
+
+    /**
+     @brief Print the matrix
+     */
+    void print() const {
+        for (unsigned int i = 0; i < nrows; i++) {
+            for (unsigned int j = 0; j < ncols; j++) {
+                std::cout << data[i * ncols + j] << " ";
+            }
+            std::cout << std::endl;
+        }
+    }
+
+    /**
+     @brief Compute the transpose matrix
+     @return pointer to the transpose Matrix
+     @warning Memory is allocated for the new matrix (need to be freed)
+     */
+    Matrix<T> *transpose() const {
+        Matrix<T> *out = new Matrix<T>(ncols, nrows);
+        for (unsigned int i = 0; i < ncols; i++) {
+            for (unsigned int j = 0; j < nrows; j++) {
+                out->data[i * nrows + j] = data[j * ncols + i];
+            }
+        }
+        return out;
+    }
+
+    /**
+     @brief Compute the product of matrices
+     @return pointer to the Matrix resulting of the product
+     @warning Memory is allocated for the new matrix (need to be freed)
+     @throws runtime_error if the matrices have wrong dimensions
+     */
+    Matrix<T> *product(Matrix const *mat) const {
+        if (ncols != mat->nrows)
+            throw std::runtime_error("Wrong dimensions for matrix product");
+
+        Matrix<T> *out = new Matrix<T>(nrows, mat->ncols);
+        for (unsigned int i = 0; i < nrows; i++) {
+            for (unsigned int j = 0; j < mat->ncols; j++) {
+                out->data[i * mat->ncols + j] = 0.;
+                for (unsigned int k = 0; k < ncols; k++) {
+                    out->data[i * mat->ncols + j] +=
+                        data[i * ncols + k] * mat->data[k * mat->ncols + j];
+                }
+            }
+        }
+        return out;
+    }
+
+    /**
+     @brief Compute the Pseudo-Inverse of a Matrix
+     @param det Determinant (computed with the inversion)
+     @return pointer to the inverse Matrix
+     @warning Memory is allocated for the new matrix (need to be freed)
+     */
+    Matrix<T> *pinv(double *det) const {
+        Matrix<T> *inverse = NULL;
+        if (nrows == ncols) {
+            inverse = gauss_jordan_inverse(det);
+            if (inverse) {
+                return inverse;
+            }
+        }
+
+        inverse = new Matrix<T>(ncols, nrows);
+        Matrix<T> *transp, *prod, *dst;
+        transp = this->transpose();
+        if (nrows >= ncols) {
+            prod = transp->product(this);
+            dst = prod->gauss_jordan_inverse(det);
+            inverse = dst->product(transp);
+        } else {
+            prod = this->product(transp);
+            dst = prod->gauss_jordan_inverse(det);
+            inverse = transp->product(dst);
+        }
+        *det = 0;
+        delete transp;
+        delete prod;
+        delete dst;
+        return inverse;
+    }
+
+    /**
+     @brief Compute the Gauss-Jordan Inverse of a Square Matrix
+     @param det Determinant (computed with the inversion)
+     @return pointer to the inverse Matrix
+     @warning Memory is allocated for the new matrix (need to be freed)
+     @throws runtime_error if the matrix is not square
+     @throws runtime_error if the matrix is not invertible
+     */
+    Matrix<T> *gauss_jordan_inverse(double *det) const {
+        if (nrows != ncols) {
+            throw std::runtime_error(
+                "Gauss-Jordan inversion: Can't invert Non-square matrix");
+        }
+        *det = 1.0f;
+        Matrix<T> mat(nrows, ncols * 2);
+        Matrix<T> new_mat(nrows, ncols * 2);
+
+        unsigned int n = nrows;
+
+        // Create matrix
+        for (unsigned int i = 0; i < n; i++) {
+            for (unsigned int j = 0; j < n; j++) {
+                mat._data[i * 2 * n + j] = data[i * n + j];
+            }
+            mat._data[i * 2 * n + n + i] = 1;
+        }
+
+        for (unsigned int k = 0; k < n; k++) {
+            unsigned int i(k);
+            while (std::fabs(mat._data[i * 2 * n + k]) <
+                   kEpsilonPseudoInverse()) {
+                i++;
+                if (i == n) {
+                    throw std::runtime_error("Non-invertible matrix");
+                }
+            }
+            *det *= mat._data[i * 2 * n + k];
+
+            // if found > Exchange lines
+            if (i != k) {
+                mat.swap_lines(i, k);
+            }
+
+            new_mat._data = mat._data;
+
+            for (unsigned int j = 0; j < 2 * n; j++) {
+                new_mat._data[k * 2 * n + j] /= mat._data[k * 2 * n + k];
+            }
+            for (i = 0; i < n; i++) {
+                if (i != k) {
+                    for (unsigned int j = 0; j < 2 * n; j++) {
+                        new_mat._data[i * 2 * n + j] -=
+                            mat._data[i * 2 * n + k] *
+                            new_mat._data[k * 2 * n + j];
+                    }
+                }
+            }
+            mat._data = new_mat._data;
+        }
+
+        Matrix<T> *dst = new Matrix<T>(nrows, ncols);
+        for (unsigned int i = 0; i < n; i++)
+            for (unsigned int j = 0; j < n; j++)
+                dst->_data[i * n + j] = mat._data[i * 2 * n + n + j];
+        return dst;
+    }
+
+    /**
+     @brief Swap 2 lines of the matrix
+     @param i index of the first line
+     @param j index of the second line
+     */
+    void swap_lines(unsigned int i, unsigned int j) {
+        T tmp;
+        for (unsigned int k = 0; k < ncols; k++) {
+            tmp = data[i * ncols + k];
+            data[i * ncols + k] = data[j * ncols + k];
+            data[j * ncols + k] = tmp;
+        }
+    }
+
+    /**
+     @brief Swap 2 columns of the matrix
+     @param i index of the first column
+     @param j index of the second column
+     */
+    void swap_columns(unsigned int i, unsigned int j) {
+        T tmp;
+        for (unsigned int k = 0; k < nrows; k++) {
+            tmp = data[k * ncols + i];
+            data[k * ncols + i] = data[k * ncols + j];
+            data[k * ncols + j] = tmp;
+        }
+    }
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.cpp
new file mode 100644
index 0000000..475f0a5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.cpp
@@ -0,0 +1,717 @@
+/*
+ * xmmGaussianDistribution.cpp
+ *
+ * Multivariate Gaussian Distribution
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "../common/xmmMatrix.hpp"
+#include "xmmGaussianDistribution.hpp"
+#include <algorithm>
+#include <math.h>
+
+#ifdef WIN32
+
+#define M_PI 3.14159265358979323846264338328 /**< pi */
+//#define max(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+
+#pragma mark Constructors
+xmm::GaussianDistribution::GaussianDistribution(bool bimodal,
+                                                unsigned int dimension_,
+                                                unsigned int dimension_input_,
+                                                CovarianceMode covariance_mode_)
+    : dimension(dimension_, (bimodal) ? 2 : 1),
+      dimension_input(dimension_input_, 0, (bimodal) ? dimension_ - 1 : 0),
+      covariance_mode(covariance_mode_),
+      bimodal_(bimodal),
+      covariance_determinant_(0.),
+      covariance_determinant_input_(0.) {
+    dimension.onAttributeChange(this,
+                                &xmm::GaussianDistribution::onAttributeChange);
+    dimension_input.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+    allocate();
+}
+
+xmm::GaussianDistribution::GaussianDistribution(GaussianDistribution const& src)
+    : dimension(src.dimension),
+      dimension_input(src.dimension_input),
+      mean(src.mean),
+      covariance_mode(src.covariance_mode),
+      covariance(src.covariance),
+      bimodal_(src.bimodal_),
+      covariance_determinant_(src.covariance_determinant_),
+      inverse_covariance_(src.inverse_covariance_) {
+    dimension.onAttributeChange(this,
+                                &xmm::GaussianDistribution::onAttributeChange);
+    dimension_input.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+    covariance_determinant_input_ = src.covariance_determinant_input_;
+    inverse_covariance_input_ = src.inverse_covariance_input_;
+    output_covariance = src.output_covariance;
+}
+
+xmm::GaussianDistribution::GaussianDistribution(Json::Value const& root)
+    : covariance_determinant_(0.), covariance_determinant_input_(0.) {
+    bimodal_ = root.get("bimodal", false).asBool();
+    dimension.set(root.get("dimension", bimodal_ ? 2 : 1).asInt());
+    dimension_input.set(root.get("dimension_input", bimodal_ ? 1 : 0).asInt());
+    covariance_mode.set(
+        static_cast<CovarianceMode>(root["covariance_mode"].asInt()));
+
+    allocate();
+
+    json2vector(root["mean"], mean, dimension.get());
+    json2vector(root["covariance"], covariance,
+                dimension.get() * dimension.get());
+
+    // updateInverseCovariance();
+    // read from json instead of calling updateInverseCovariance() :
+    json2vector(root["inverse_covariance"], inverse_covariance_,
+                dimension.get() * dimension.get());
+    covariance_determinant_ = root.get("covariance_determinant", 0.).asDouble();
+    json2vector(root["inverse_covariance_input"], inverse_covariance_input_,
+                dimension_input.get() * dimension_input.get());
+    covariance_determinant_input_ =
+        root.get("covariance_determinant_input", 0.).asDouble();
+
+    dimension.onAttributeChange(this,
+                                &xmm::GaussianDistribution::onAttributeChange);
+    dimension_input.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::GaussianDistribution::onAttributeChange);
+}
+
+xmm::GaussianDistribution& xmm::GaussianDistribution::operator=(
+    GaussianDistribution const& src) {
+    if (this != &src) {
+        bimodal_ = src.bimodal_;
+        dimension = src.dimension;
+        dimension_input = src.dimension_input;
+        covariance_mode = src.covariance_mode;
+
+        mean = src.mean;
+        covariance = src.covariance;
+        inverse_covariance_ = src.inverse_covariance_;
+        covariance_determinant_ = src.covariance_determinant_;
+        covariance_determinant_input_ = src.covariance_determinant_input_;
+        inverse_covariance_input_ = src.inverse_covariance_input_;
+        output_covariance = src.output_covariance;
+    }
+    return *this;
+};
+
+void xmm::GaussianDistribution::onAttributeChange(AttributeBase* attr_pointer) {
+    if (attr_pointer == &dimension) {
+        dimension_input.setLimitMax(dimension.get() - 1);
+    }
+    if (attr_pointer == &dimension || attr_pointer == &dimension_input) {
+        allocate();
+    }
+    if (attr_pointer == &covariance_mode) {
+        if (covariance_mode.get() == CovarianceMode::Diagonal) {
+            std::vector<double> new_covariance(dimension.get());
+            for (unsigned int d = 0; d < dimension.get(); ++d) {
+                new_covariance[d] = covariance[d * dimension.get() + d];
+            }
+            covariance = new_covariance;
+            inverse_covariance_.resize(dimension.get());
+            if (bimodal_)
+                inverse_covariance_input_.resize(dimension_input.get());
+        } else if (covariance_mode.get() == CovarianceMode::Full) {
+            std::vector<double> new_covariance(
+                dimension.get() * dimension.get(), 0.0);
+            for (unsigned int d = 0; d < dimension.get(); ++d) {
+                new_covariance[d * dimension.get() + d] = covariance[d];
+            }
+            covariance = new_covariance;
+            inverse_covariance_.resize(dimension.get() * dimension.get());
+            if (bimodal_)
+                inverse_covariance_input_.resize(dimension_input.get() *
+                                                 dimension_input.get());
+        }
+        updateInverseCovariance();
+        if (bimodal_) {
+            updateOutputCovariance();
+        }
+    }
+    attr_pointer->changed = false;
+}
+
+#pragma mark Likelihood & Regression
+double xmm::GaussianDistribution::likelihood(const float* observation) const {
+    if (covariance_determinant_ == 0.0)
+        throw std::runtime_error("Covariance Matrix is not invertible");
+
+    double euclidianDistance(0.0);
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        for (int l = 0; l < dimension.get(); l++) {
+            double tmp(0.0);
+            for (int k = 0; k < dimension.get(); k++) {
+                tmp += inverse_covariance_[l * dimension.get() + k] *
+                       (observation[k] - mean[k]);
+            }
+            euclidianDistance += (observation[l] - mean[l]) * tmp;
+        }
+    } else {
+        for (int l = 0; l < dimension.get(); l++) {
+            euclidianDistance += inverse_covariance_[l] *
+                                 (observation[l] - mean[l]) *
+                                 (observation[l] - mean[l]);
+        }
+    }
+
+    double p =
+        exp(-0.5 * euclidianDistance) /
+        sqrt(covariance_determinant_ * pow(2 * M_PI, double(dimension.get())));
+
+    if (p < 1e-180 || std::isnan(p) || std::isinf(fabs(p))) p = 1e-180;
+
+    return p;
+}
+
+double xmm::GaussianDistribution::likelihood_input(
+    const float* observation_input) const {
+    if (!bimodal_)
+        throw std::runtime_error(
+            "'likelihood_input' can't be used when 'bimodal_' is off.");
+
+    if (covariance_determinant_input_ == 0.0)
+        throw std::runtime_error(
+            "Covariance Matrix of input modality is not invertible");
+
+    double euclidianDistance(0.0);
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        for (int l = 0; l < dimension_input.get(); l++) {
+            double tmp(0.0);
+            for (int k = 0; k < dimension_input.get(); k++) {
+                tmp +=
+                    inverse_covariance_input_[l * dimension_input.get() + k] *
+                    (observation_input[k] - mean[k]);
+            }
+            euclidianDistance += (observation_input[l] - mean[l]) * tmp;
+        }
+    } else {
+        for (int l = 0; l < dimension_input.get(); l++) {
+            euclidianDistance += inverse_covariance_[l] *
+                                 (observation_input[l] - mean[l]) *
+                                 (observation_input[l] - mean[l]);
+        }
+    }
+
+    double p = exp(-0.5 * euclidianDistance) /
+               sqrt(covariance_determinant_input_ *
+                    pow(2 * M_PI, double(dimension_input.get())));
+
+    if (p < 1e-180 || std::isnan(p) || std::isinf(fabs(p))) p = 1e-180;
+
+    return p;
+}
+
+double xmm::GaussianDistribution::likelihood_bimodal(
+    const float* observation_input, const float* observation_output) const {
+    if (!bimodal_)
+        throw std::runtime_error(
+            "'likelihood_bimodal' can't be used when 'bimodal_' is off.");
+
+    if (covariance_determinant_ == 0.0)
+        throw std::runtime_error("Covariance Matrix is not invertible");
+
+    unsigned int dimension_output = dimension.get() - dimension_input.get();
+    double euclidianDistance(0.0);
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        for (int l = 0; l < dimension.get(); l++) {
+            double tmp(0.0);
+            for (int k = 0; k < dimension_input.get(); k++) {
+                tmp += inverse_covariance_[l * dimension.get() + k] *
+                       (observation_input[k] - mean[k]);
+            }
+            for (int k = 0; k < dimension_output; k++) {
+                tmp +=
+                    inverse_covariance_[l * dimension.get() +
+                                        dimension_input.get() + k] *
+                    (observation_output[k] - mean[dimension_input.get() + k]);
+            }
+            if (l < dimension_input.get())
+                euclidianDistance += (observation_input[l] - mean[l]) * tmp;
+            else
+                euclidianDistance +=
+                    (observation_output[l - dimension_input.get()] - mean[l]) *
+                    tmp;
+        }
+    } else {
+        for (int l = 0; l < dimension_input.get(); l++) {
+            euclidianDistance += inverse_covariance_[l] *
+                                 (observation_input[l] - mean[l]) *
+                                 (observation_input[l] - mean[l]);
+        }
+        for (unsigned int l = dimension_input.get(); l < dimension.get(); l++) {
+            euclidianDistance +=
+                inverse_covariance_[l] *
+                (observation_output[l - dimension_input.get()] - mean[l]) *
+                (observation_output[l - dimension_input.get()] - mean[l]);
+        }
+    }
+
+    double p =
+        exp(-0.5 * euclidianDistance) /
+        sqrt(covariance_determinant_ * pow(2 * M_PI, (double)dimension.get()));
+
+    if (p < 1e-180 || std::isnan(p) || std::isinf(fabs(p))) p = 1e-180;
+
+    return p;
+}
+
+void xmm::GaussianDistribution::regression(
+    std::vector<float> const& observation_input,
+    std::vector<float>& predicted_output) const {
+    if (!bimodal_)
+        throw std::runtime_error(
+            "'regression' can't be used when 'bimodal_' is off.");
+
+    unsigned int dimension_output = dimension.get() - dimension_input.get();
+    predicted_output.resize(dimension_output);
+
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        for (int d = 0; d < dimension_output; d++) {
+            predicted_output[d] = mean[dimension_input.get() + d];
+            for (int e = 0; e < dimension_input.get(); e++) {
+                float tmp = 0.;
+                for (int f = 0; f < dimension_input.get(); f++) {
+                    tmp += inverse_covariance_input_[e * dimension_input.get() +
+                                                     f] *
+                           (observation_input[f] - mean[f]);
+                }
+                predicted_output[d] +=
+                    covariance[(d + dimension_input.get()) * dimension.get() +
+                               e] *
+                    tmp;
+            }
+        }
+    } else {
+        for (int d = 0; d < dimension_output; d++) {
+            predicted_output[d] = mean[dimension_input.get() + d];
+        }
+    }
+}
+
+#pragma mark JSON I/O
+Json::Value xmm::GaussianDistribution::toJson() const {
+    Json::Value root;
+    root["bimodal"] = bimodal_;
+    root["dimension"] = static_cast<int>(dimension.get());
+    root["dimension_input"] = static_cast<int>(dimension_input.get());
+    root["covariance_mode"] = static_cast<int>(covariance_mode.get());
+    root["mean"] = vector2json(mean);
+    root["covariance"] = vector2json(covariance);
+
+    root["inverse_covariance"] = vector2json(inverse_covariance_);
+    root["covariance_determinant"] = covariance_determinant_;
+    root["inverse_covariance_input"] = vector2json(inverse_covariance_input_);
+    root["covariance_determinant_input"] = covariance_determinant_input_;
+
+    return root;
+}
+
+void xmm::GaussianDistribution::fromJson(Json::Value const& root) {
+    try {
+        GaussianDistribution tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+#pragma mark Utilities
+void xmm::GaussianDistribution::allocate() {
+    mean.resize(dimension.get());
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        covariance.resize(dimension.get() * dimension.get());
+        inverse_covariance_.resize(dimension.get() * dimension.get());
+        if (bimodal_)
+            inverse_covariance_input_.resize(dimension_input.get() *
+                                             dimension_input.get());
+    } else {
+        covariance.resize(dimension.get());
+        inverse_covariance_.resize(dimension.get());
+        if (bimodal_) inverse_covariance_input_.resize(dimension_input.get());
+    }
+}
+
+void xmm::GaussianDistribution::regularize(std::vector<double> regularization) {
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        for (int d = 0; d < dimension.get(); ++d) {
+            covariance[d * dimension.get() + d] += regularization[d];
+        }
+    } else {
+        for (int d = 0; d < dimension.get(); ++d) {
+            covariance[d] += regularization[d];
+        }
+    }
+}
+
+void xmm::GaussianDistribution::updateInverseCovariance() {
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        Matrix<double> cov_matrix(dimension.get(), dimension.get(), false);
+
+        Matrix<double>* inverseMat;
+        double det;
+
+        cov_matrix.data = covariance.begin();
+        inverseMat = cov_matrix.pinv(&det);
+        covariance_determinant_ = det;
+        copy(inverseMat->data,
+             inverseMat->data + dimension.get() * dimension.get(),
+             inverse_covariance_.begin());
+        delete inverseMat;
+        inverseMat = NULL;
+
+        // If regression active: create inverse covariance matrix for input
+        // modality.
+        if (bimodal_) {
+            Matrix<double> cov_matrix_input(dimension_input.get(),
+                                            dimension_input.get(), true);
+            for (int d1 = 0; d1 < dimension_input.get(); d1++) {
+                for (int d2 = 0; d2 < dimension_input.get(); d2++) {
+                    cov_matrix_input._data[d1 * dimension_input.get() + d2] =
+                        covariance[d1 * dimension.get() + d2];
+                }
+            }
+            inverseMat = cov_matrix_input.pinv(&det);
+            covariance_determinant_input_ = det;
+            copy(inverseMat->data,
+                 inverseMat->data +
+                     dimension_input.get() * dimension_input.get(),
+                 inverse_covariance_input_.begin());
+            delete inverseMat;
+            inverseMat = NULL;
+        }
+    } else  // DIAGONAL COVARIANCE
+    {
+        covariance_determinant_ = 1.;
+        covariance_determinant_input_ = 1.;
+        for (unsigned int d = 0; d < dimension.get(); ++d) {
+            if (covariance[d] <= 0.0)
+                throw std::runtime_error("Non-invertible matrix");
+            inverse_covariance_[d] = 1. / covariance[d];
+            covariance_determinant_ *= covariance[d];
+            if (bimodal_ && d < dimension_input.get()) {
+                inverse_covariance_input_[d] = 1. / covariance[d];
+                covariance_determinant_input_ *= covariance[d];
+            }
+        }
+    }
+    if (bimodal_) {
+        this->updateOutputCovariance();
+    }
+}
+
+void xmm::GaussianDistribution::updateOutputCovariance() {
+    if (!bimodal_)
+        throw std::runtime_error(
+            "'updateOutputVariances' can't be used when 'bimodal_' is off.");
+
+    unsigned int dimension_output = dimension.get() - dimension_input.get();
+
+    // CASE: DIAGONAL COVARIANCE
+    if (covariance_mode.get() == CovarianceMode::Diagonal) {
+        output_covariance.resize(dimension_output);
+        copy(covariance.begin() + dimension_input.get(),
+             covariance.begin() + dimension.get(), output_covariance.begin());
+        return;
+    }
+
+    // CASE: FULL COVARIANCE
+    Matrix<double>* inverseMat;
+    double det;
+
+    Matrix<double> cov_matrix_input(dimension_input.get(),
+                                    dimension_input.get(), true);
+    for (int d1 = 0; d1 < dimension_input.get(); d1++) {
+        for (int d2 = 0; d2 < dimension_input.get(); d2++) {
+            cov_matrix_input._data[d1 * dimension_input.get() + d2] =
+                covariance[d1 * dimension.get() + d2];
+        }
+    }
+    inverseMat = cov_matrix_input.pinv(&det);
+    Matrix<double> covariance_gs(dimension_input.get(), dimension_output, true);
+    for (int d1 = 0; d1 < dimension_input.get(); d1++) {
+        for (int d2 = 0; d2 < dimension_output; d2++) {
+            covariance_gs._data[d1 * dimension_output + d2] =
+                covariance[d1 * dimension.get() + dimension_input.get() + d2];
+        }
+    }
+    Matrix<double> covariance_sg(dimension_output, dimension_input.get(), true);
+    for (int d1 = 0; d1 < dimension_output; d1++) {
+        for (int d2 = 0; d2 < dimension_input.get(); d2++) {
+            covariance_sg._data[d1 * dimension_input.get() + d2] =
+                covariance[(dimension_input.get() + d1) * dimension.get() + d2];
+        }
+    }
+    Matrix<double>* tmptmptmp = inverseMat->product(&covariance_gs);
+    Matrix<double>* covariance_mod = covariance_sg.product(tmptmptmp);
+    output_covariance.resize(dimension_output * dimension_output);
+    for (int d1 = 0; d1 < dimension_output; d1++) {
+        for (int d2 = 0; d2 < dimension_output; d2++) {
+            output_covariance[d1 * dimension_output + d2] =
+                covariance[(dimension_input.get() + d1) * dimension.get() +
+                           dimension_input.get() + d2] -
+                covariance_mod->data[d1 * dimension_output + d2];
+        }
+    }
+    delete inverseMat;
+    delete covariance_mod;
+    delete tmptmptmp;
+    inverseMat = NULL;
+    covariance_mod = NULL;
+    tmptmptmp = NULL;
+}
+
+xmm::Ellipse xmm::GaussianDistribution::toEllipse(unsigned int dimension1,
+                                                  unsigned int dimension2) {
+    if (dimension1 >= dimension.get() || dimension2 >= dimension.get())
+        throw std::out_of_range("dimensions out of range");
+
+    Ellipse gaussian_ellipse;
+    gaussian_ellipse.x = mean[dimension1];
+    gaussian_ellipse.y = mean[dimension2];
+
+    // Represent 2D covariance with square matrix
+    // |a b|
+    // |b c|
+    double a, b, c;
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        a = covariance[dimension1 * dimension.get() + dimension1];
+        b = covariance[dimension1 * dimension.get() + dimension2];
+        c = covariance[dimension2 * dimension.get() + dimension2];
+    } else {
+        a = covariance[dimension1];
+        b = 0.0;
+        c = covariance[dimension2];
+    }
+
+    // Compute Eigen Values to get width, height and angle
+    double trace = a + c;
+    double determinant = a * c - b * b;
+    double eigenVal1 = 0.5 * (trace + sqrt(trace * trace - 4 * determinant));
+    double eigenVal2 = 0.5 * (trace - sqrt(trace * trace - 4 * determinant));
+    gaussian_ellipse.width = sqrt(5.991 * eigenVal1);
+    gaussian_ellipse.height = sqrt(5.991 * eigenVal2);
+    gaussian_ellipse.angle = atan(b / (eigenVal1 - c));
+    if (isnan(gaussian_ellipse.angle)) {
+        gaussian_ellipse.angle = M_PI_2;
+    }
+
+    return gaussian_ellipse;
+}
+
+void xmm::GaussianDistribution::fromEllipse(Ellipse const& gaussian_ellipse,
+                                            unsigned int dimension1,
+                                            unsigned int dimension2) {
+    if (dimension1 >= dimension.get() || dimension2 >= dimension.get())
+        throw std::out_of_range("dimensions out of range");
+
+    mean[dimension1] = gaussian_ellipse.x;
+    mean[dimension2] = gaussian_ellipse.y;
+
+    double eigenVal1 = gaussian_ellipse.width * gaussian_ellipse.width / 5.991;
+    double eigenVal2 =
+        gaussian_ellipse.height * gaussian_ellipse.height / 5.991;
+    double tantheta = std::tan(gaussian_ellipse.angle);
+    double a, b, c;
+    b = (eigenVal1 - eigenVal2) * tantheta / (tantheta * tantheta + 1.);
+    c = eigenVal1 - b / tantheta;
+    a = eigenVal2 + b / tantheta;
+
+    if (covariance_mode.get() == CovarianceMode::Full) {
+        covariance[dimension1 * dimension.get() + dimension1] = a;
+        covariance[dimension1 * dimension.get() + dimension2] = b;
+        covariance[dimension2 * dimension.get() + dimension1] = b;
+        covariance[dimension2 * dimension.get() + dimension2] = c;
+    } else {
+        covariance[dimension1] = a;
+        covariance[dimension2] = c;
+    }
+    updateInverseCovariance();
+}
+
+// void xmm::GaussianDistribution::makeBimodal(unsigned int dimension_input_)
+//{
+//    if (bimodal_)
+//        throw std::runtime_error("The model is already bimodal");
+//    if (dimension_input_ >= dimension.get())
+//        throw std::out_of_range("Request input dimension exceeds the current
+//        dimension");
+//    this->bimodal_ = true;
+//    dimension_input.setLimitMax(dimension.get() - 1);
+//    dimension_input.set(dimension_input_, true);
+//    if (covariance_mode.get() == CovarianceMode::Full) {
+//        this->inverse_covariance_input_.resize(dimension_input_*dimension_input_);
+//    } else {
+//        this->inverse_covariance_input_.resize(dimension_input_);
+//    }
+//    this->updateInverseCovariance();
+//    this->updateOutputVariance();
+//}
+//
+// void xmm::GaussianDistribution::makeUnimodal()
+//{
+//    if (!bimodal_)
+//        throw std::runtime_error("The model is already unimodal");
+//    this->bimodal_ = false;
+//    this->dimension_input.set(0, true);
+//    this->inverse_covariance_input_.clear();
+//}
+//
+// xmm::GaussianDistribution
+// xmm::GaussianDistribution::extractSubmodel(std::vector<unsigned int>&
+// columns)
+// const
+//{
+//    if (columns.size() > dimension.get())
+//        throw std::out_of_range("requested number of columns exceeds the
+//        dimension of the current model");
+//    for (unsigned int column=0; column<columns.size(); ++column) {
+//        if (columns[column] >= dimension.get())
+//            throw std::out_of_range("Some column indices exceeds the dimension
+//            of the current model");
+//    }
+//    size_t new_dim =columns.size();
+//    GaussianDistribution target_distribution(NONE,
+//    static_cast<unsigned int>(new_dim), 0, relative_regularization,
+//    absolute_regularization);
+//    target_distribution.allocate();
+//    for (unsigned int new_index1=0; new_index1<new_dim; ++new_index1) {
+//        unsigned int col_index1 = columns[new_index1];
+//        target_distribution.mean[new_index1] = mean[col_index1];
+//        target_distribution.scale[new_index1] = scale[col_index1];
+//        if (covariance_mode.get() == CovarianceMode::Full) {
+//            for (unsigned int new_index2=0; new_index2<new_dim; ++new_index2)
+//            {
+//                unsigned int col_index2 = columns[new_index2];
+//                target_distribution.covariance[new_index1*new_dim+new_index2]
+//                = covariance[col_index1*dimension.get()+col_index2];
+//            }
+//        } else {
+//            target_distribution.covariance[new_index1] =
+//            covariance[col_index1];
+//        }
+//    }
+//    try {
+//        target_distribution.updateInverseCovariance();
+//    } catch (std::exception const& e) {
+//    }
+//    return target_distribution;
+//}
+//
+// xmm::GaussianDistribution xmm::GaussianDistribution::extractSubmodel_input()
+// const
+//{
+//    if (!bimodal_)
+//        throw std::runtime_error("The distribution needs to be bimodal");
+//    std::vector<unsigned int> columns_input(dimension_input.get());
+//    for (unsigned int i=0; i<dimension_input.get(); ++i) {
+//        columns_input[i] = i;
+//    }
+//    return extractSubmodel(columns_input);
+//}
+//
+// xmm::GaussianDistribution xmm::GaussianDistribution::extractSubmodel_output()
+// const
+//{
+//    if (!bimodal_)
+//        throw std::runtime_error("The distribution needs to be bimodal");
+//    std::vector<unsigned int> columns_output(dimension.get() -
+//    dimension_input.get());
+//    for (unsigned int i=dimension_input.get(); i<dimension.get(); ++i) {
+//        columns_output[i-dimension_input.get()] = i;
+//    }
+//    return extractSubmodel(columns_output);
+//}
+//
+// xmm::GaussianDistribution xmm::GaussianDistribution::extract_inverse_model()
+// const
+//{
+//    if (!bimodal_)
+//        throw std::runtime_error("The distribution needs to be bimodal");
+//    std::vector<unsigned int> columns(dimension.get());
+//    for (unsigned int i=0; i<dimension.get()-dimension_input.get(); ++i) {
+//        columns[i] = i + dimension_input.get();
+//    }
+//    for (unsigned int i=dimension.get()-dimension_input.get(), j=0;
+//    i<dimension.get(); ++i, ++j) {
+//        columns[i] = j;
+//    }
+//    GaussianDistribution target_distribution = extractSubmodel(columns);
+//    target_distribution.makeBimodal(dimension.get() - dimension_input.get());
+//    return target_distribution;
+//}
+
+xmm::Ellipse xmm::covariance2ellipse(double c_xx, double c_xy, double c_yy) {
+    Ellipse gaussian_ellipse;
+    gaussian_ellipse.x = 0.;
+    gaussian_ellipse.y = 0.;
+
+    // Compute Eigen Values to get width, height and angle
+    double trace = c_xx + c_yy;
+    double determinant = c_xx * c_yy - c_xy * c_xy;
+    double eigenVal1 = 0.5 * (trace + sqrt(trace * trace - 4 * determinant));
+    double eigenVal2 = 0.5 * (trace - sqrt(trace * trace - 4 * determinant));
+    gaussian_ellipse.width = sqrt(5.991 * eigenVal1);
+    gaussian_ellipse.height = sqrt(5.991 * eigenVal2);
+    gaussian_ellipse.angle = atan(c_xy / (eigenVal1 - c_yy));
+    if (isnan(gaussian_ellipse.angle)) {
+        gaussian_ellipse.angle = M_PI_2;
+    }
+
+    return gaussian_ellipse;
+}
+
+template <>
+void xmm::checkLimits<xmm::GaussianDistribution::CovarianceMode>(
+    xmm::GaussianDistribution::CovarianceMode const& value,
+    xmm::GaussianDistribution::CovarianceMode const& limit_min,
+    xmm::GaussianDistribution::CovarianceMode const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error(
+            "Attribute value out of range. Range: [" +
+            std::to_string(static_cast<int>(limit_min)) + " ; " +
+            std::to_string(static_cast<int>(limit_max)) + "]");
+}
+
+template <>
+xmm::GaussianDistribution::CovarianceMode
+xmm::Attribute<xmm::GaussianDistribution::CovarianceMode>::defaultLimitMax() {
+    return xmm::GaussianDistribution::CovarianceMode::Diagonal;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.hpp
new file mode 100644
index 0000000..646e156
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/distributions/xmmGaussianDistribution.hpp
@@ -0,0 +1,376 @@
+/*
+ * xmmGaussianDistribution.hpp
+ *
+ * Multivariate Gaussian Distribution
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmGaussianDistribution_h
+#define xmmGaussianDistribution_h
+
+#include "../common/xmmAttribute.hpp"
+#include "../common/xmmJson.hpp"
+
+namespace xmm {
+/**
+ @defgroup Distributions [Core] Distributions
+ */
+
+/**
+ @ingroup Distributions
+ @brief Structure for storing Ellipse parameters
+ */
+struct Ellipse {
+    /**
+     @brief x center position
+     */
+    float x;
+
+    /**
+     @brief y center position
+     */
+    float y;
+
+    /**
+     @brief width: minor axis length
+     */
+    float width;
+
+    /**
+     @brief height: major axis length
+     */
+    float height;
+
+    /**
+     @brief angle (radians)
+     */
+    float angle;
+};
+
+/**
+ @ingroup Distributions
+ @brief Multivariate Gaussian Distribution
+ @details Full covariance, optionally multimodal with support for regression
+ */
+class GaussianDistribution : public Writable {
+  public:
+    /**
+     @brief Covariance Mode
+     */
+    enum class CovarianceMode {
+        /**
+         @brief Full covariance
+         */
+        Full = 0,
+
+        /**
+         @brief Diagonal covariance (diagonal matrix)
+         */
+        Diagonal = 1
+    };
+
+    /**
+     @brief Default Constructor
+     @param bimodal specify if the distribution is bimodal for use in regression
+     @param dimension dimension of the distribution
+     @param dimension_input dimension of the input modality in bimodal mode.
+     @param covariance_mode covariance mode (full vs diagonal)
+     */
+    GaussianDistribution(bool bimodal = false, unsigned int dimension = 1,
+                         unsigned int dimension_input = 0,
+                         CovarianceMode covariance_mode = CovarianceMode::Full);
+
+    /**
+     @brief Copy constructor
+     @param src source distribution
+     */
+    GaussianDistribution(GaussianDistribution const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit GaussianDistribution(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src source distribution
+     */
+    GaussianDistribution& operator=(GaussianDistribution const& src);
+
+    /** @name Likelihood & Regression */
+    ///@{
+
+    /**
+     @brief Get Likelihood of a data vector
+     @param observation data observation (must be of size @a dimension)
+     @return likelihood
+     @throws runtime_error if the Covariance Matrix is not invertible
+     */
+    double likelihood(const float* observation) const;
+
+    /**
+     @brief Get Likelihood of a data vector for input modality
+     @param observation_input observation (must be of size @a dimension_input)
+     @return likelihood
+     @throws runtime_error if the Covariance Matrix of the input modality is not
+     invertible
+     @throws runtime_error if the model is not bimodal
+     */
+    double likelihood_input(const float* observation_input) const;
+
+    /**
+     @brief Get Likelihood of a data vector for bimodal mode
+     @param observation_input observation of the input modality
+     @param observation_output observation of the output modality
+     @throws runtime_error if the Covariance Matrix is not invertible
+     @throws runtime_error if the model is not bimodal
+     @return likelihood
+     */
+    double likelihood_bimodal(const float* observation_input,
+                              const float* observation_output) const;
+
+    /**
+     @brief Linear Regression using the Gaussian Distribution (covariance-based)
+     @param observation_input input observation (must be of size: @a
+     dimension_input)
+     @param predicted_output predicted output vector (size:
+     dimension-dimension_input)
+     @throws runtime_error if the model is not bimodal
+     */
+    void regression(std::vector<float> const& observation_input,
+                    std::vector<float>& predicted_output) const;
+
+    ///@}
+
+    /** @name Utilities */
+    ///@{
+
+    /**
+     @brief Add @a offset to the diagonal of the covariance matrix
+     @details Ensures convergence + generalization on few examples
+     */
+    void regularize(std::vector<double> regularization);
+
+    /**
+     @brief Compute inverse covariance matrix
+     @throws runtime_error if the covariance matrix is not invertible
+     */
+    void updateInverseCovariance();
+
+    /**
+     @brief Compute the 68%?? Confidence Interval ellipse of the Gaussian
+     @details the ellipse is 2D, and is therefore projected over 2 axes
+     @param dimension1 index of the first axis
+     @param dimension2 index of the second axis
+     @throws out_of_range if the dimensions are out of bounds
+     @return ellipse parameters
+     */
+    Ellipse toEllipse(unsigned int dimension1, unsigned int dimension2);
+
+    /**
+     @brief Sets the parameters of the Gaussian distribution according to the
+     68%?? Confidence Interval ellipse
+     @details the ellipse is 2D, and is therefore projected over 2 axes
+     @param gaussian_ellipse 68% Confidence Interval ellipse parameters (1x std)
+     @param dimension1 index of the first axis
+     @param dimension2 index of the second axis
+     @throws out_of_range if the dimensions are out of bounds
+     */
+    void fromEllipse(Ellipse const& gaussian_ellipse, unsigned int dimension1,
+                     unsigned int dimension2);
+
+    ///@}
+
+    /** @name JSON I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root);
+
+    ///@}
+
+    //        /** @name Conversion & Extraction */
+    //        ///@{
+    //
+    //        /**
+    //         @brief Convert to bimodal distribution in place
+    //         @param dimension_input dimension of the input modality
+    //         @throws runtime_error if the model is already bimodal
+    //         @throws out_of_range if the requested input dimension is too
+    //         large
+    //         */
+    //        void makeBimodal(unsigned int dimension_input);
+    //
+    //        /**
+    //         @brief Convert to unimodal distribution in place
+    //         @throws runtime_error if the model is already unimodal
+    //         */
+    //        void makeUnimodal();
+    //
+    //        /**
+    //         @brief extract a sub-distribution with the given columns
+    //         @param columns columns indices in the target order
+    //         @throws runtime_error if the model is training
+    //         @throws out_of_range if the number or indices of the requested
+    //         columns exceeds the current dimension
+    //         @return a Gaussian Distribution from the current model
+    //         considering only the target columns
+    //         */
+    //        GaussianDistribution extractSubmodel(std::vector<unsigned int>&
+    //        columns) const;
+    //
+    //        /**
+    //         @brief extract the sub-distribution of the input modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal Gaussian Distribution of the input modality
+    //         from the current bimodal model
+    //         */
+    //        GaussianDistribution extractSubmodel_input() const;
+    //
+    //        /**
+    //         @brief extract the sub-distribution of the output modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal Gaussian Distribution of the output modality
+    //         from the current bimodal model
+    //         */
+    //        GaussianDistribution extractSubmodel_output() const;
+    //
+    //        /**
+    //         @brief extract the model with reversed input and output
+    //         modalities
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a bimodal Gaussian Distribution  that swaps the input and
+    //         output modalities
+    //         */
+    //        GaussianDistribution extract_inverse_model() const;
+    //
+    //        ///@}
+
+    /**
+     @brief Total Dimension of the multivariate normal
+     */
+    Attribute<unsigned int> dimension;
+
+    /**
+     @brief Input Dimension of the multivariate normal
+     */
+    Attribute<unsigned int> dimension_input;
+
+    /**
+     @brief Mean of the Gaussian Distribution
+     */
+    std::vector<double> mean;
+
+    /**
+     @brief Covariance Mode
+     */
+    Attribute<CovarianceMode> covariance_mode;
+
+    /**
+     @brief Covariance Matrix of the Gaussian Distribution
+     */
+    std::vector<double> covariance;
+
+    /**
+     @brief Conditional Output Variance (updated when covariances matrices are
+     inverted)
+     */
+    std::vector<double> output_covariance;
+
+  protected:
+    /**
+     @brief Resize Mean and Covariance Vectors to appropriate dimension.
+     */
+    void allocate();
+
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+
+    /**
+     @brief Compute the conditional variance vector of the output modality
+     (conditioned over the input).
+     @throws runtime_error if the model is not bimodal
+     */
+    void updateOutputCovariance();
+
+    /**
+     @brief Defines if regression parameters need to be computed
+     */
+    bool bimodal_;
+
+    /**
+     @brief Determinant of the covariance matrix
+     */
+    double covariance_determinant_;
+
+    /**
+     @brief Inverse covariance matrix
+     */
+    std::vector<double> inverse_covariance_;
+
+    /**
+     @brief Determinant of the covariance matrix of the input modality
+     */
+    double covariance_determinant_input_;
+
+    /**
+     @brief Inverse covariance matrix of the input modality
+     */
+    std::vector<double> inverse_covariance_input_;
+};
+
+Ellipse covariance2ellipse(double c_xx, double c_xy, double c_yy);
+
+template <>
+void checkLimits<GaussianDistribution::CovarianceMode>(
+    GaussianDistribution::CovarianceMode const& value,
+    GaussianDistribution::CovarianceMode const& limit_min,
+    GaussianDistribution::CovarianceMode const& limit_max);
+
+template <>
+GaussianDistribution::CovarianceMode
+Attribute<GaussianDistribution::CovarianceMode>::defaultLimitMax();
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModel.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModel.hpp
new file mode 100644
index 0000000..522660b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModel.hpp
@@ -0,0 +1,633 @@
+/*
+ * xmmModel.hpp
+ *
+ * Probabilistic machine learning model for multiclass recognition and
+ * regression
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModel_h
+#define xmmModel_h
+
+#include "xmmModelConfiguration.hpp"
+#include "xmmModelResults.hpp"
+#include "xmmModelSingleClass.hpp"
+#include <atomic>
+#include <thread>
+
+namespace xmm {
+/**
+ @ingroup Model
+ @brief Probabilistic machine learning model for multiclass recognition and
+ regression
+ @tparam SingleClassModel Type of the associated Single-class Model
+ @tparam ModelType Model Type Name
+ */
+template <typename SingleClassModel, typename ModelType>
+class Model : public Writable {
+  public:
+    /**
+     @brief Constructor
+     @param bimodal use true for a use with Regression / Generation.
+     */
+    Model(bool bimodal = false)
+        : shared_parameters(std::make_shared<SharedParameters>()),
+          cancel_required_(false),
+          is_training_(false),
+          is_joining_(false),
+          models_still_training_(0) {
+        shared_parameters->bimodal.set(bimodal);
+        if (shared_parameters->bimodal.get()) {
+            shared_parameters->dimension.set(2, true);
+            shared_parameters->dimension_input.set(1, true);
+        } else {
+            shared_parameters->dimension.set(1, true);
+            shared_parameters->dimension_input.set(0, true);
+        }
+    }
+
+    /**
+     @brief Copy Constructor
+     @param src Source Model
+     */
+    Model(Model<SingleClassModel, ModelType> const& src)
+        : shared_parameters(
+              std::make_shared<SharedParameters>(*src.shared_parameters)),
+          configuration(src.configuration),
+          training_events(src.training_events),
+          cancel_required_(false),
+          is_training_(false),
+          is_joining_(false),
+          models_still_training_(0) {
+        if (src.is_training_)
+            throw std::runtime_error(
+                "Cannot copy: source model is still training");
+        models = src.models;
+        for (auto& model : models) {
+            model.second.training_events.removeListeners();
+            model.second.training_events.addListener(
+                this,
+                &xmm::Model<SingleClassModel, ModelType>::onTrainingEvent);
+        }
+    }
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit Model(Json::Value const& root)
+        : shared_parameters(std::make_shared<SharedParameters>()),
+          cancel_required_(false),
+          is_training_(false),
+          is_joining_(false),
+          models_still_training_(0) {
+        shared_parameters->fromJson(root["shared_parameters"]);
+        configuration.fromJson(root["configuration"]);
+        models.clear();
+        for (auto p : root["models"]) {
+            std::string l = p["label"].asString();
+            models.insert(std::pair<std::string, SingleClassModel>(
+                l, SingleClassModel(shared_parameters, p)));
+            models[l].training_events.removeListeners();
+            models[l].training_events.addListener(
+                this,
+                &xmm::Model<SingleClassModel, ModelType>::onTrainingEvent);
+        }
+    }
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    Model<SingleClassModel, ModelType>& operator=(
+        Model<SingleClassModel, ModelType> const& src) {
+        if (this != &src) {
+            if (is_training_)
+                throw std::runtime_error(
+                    "Cannot copy: target model is still training");
+            if (src.is_training_)
+                throw std::runtime_error(
+                    "Cannot copy: source model is still training");
+            shared_parameters =
+                std::make_shared<SharedParameters>(*src.shared_parameters);
+            configuration = src.configuration;
+            training_events = src.training_events;
+            is_joining_ = false;
+            is_training_ = false;
+            cancel_required_ = false;
+            models_still_training_ = 0;
+
+            models.clear();
+            models = src.models;
+            for (auto& model : this->models) {
+                model.second.training_events.removeListeners();
+                model.second.training_events.addListener(
+                    this,
+                    &xmm::Model<SingleClassModel, ModelType>::onTrainingEvent);
+            }
+        }
+        return *this;
+    }
+
+    /**
+     @brief Destructor
+     */
+    virtual ~Model() {
+        cancelTraining();
+        clear();
+    }
+
+    /** @name Class Manipulation */
+    ///@{
+
+    /**
+     @brief Get the number of classes in the model
+     @return the number of classes in the model
+     */
+    unsigned int size() const {
+        return static_cast<unsigned int>(models.size());
+    }
+
+    /**
+     @brief Checks if a class exists
+     @param label class label
+     @return true if the class labeled 'label' exists
+     */
+    bool hasClass(std::string const& label) const {
+        checkTraining();
+        return (models.count(label) > 0);
+    }
+
+    /**
+     @brief Checks if a class exists
+     @param label class label
+     @return true if the class labeled 'label' exists
+     */
+    int getIndex(std::string const& label) const {
+        checkTraining();
+        int i(-1);
+        for (auto& m : models) {
+            i++;
+            if (m.first == label) {
+                return i;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     @brief Remove a specific class by label
+     @param label label of the class to remove
+     */
+    virtual void removeClass(std::string const& label) {
+        while (is_joining_) {
+        }
+        cancelTraining(label);
+        auto it = models.find(label);
+        if (it == models.end())
+            throw std::out_of_range("Class " + label + " does not exist");
+        models.erase(it);
+        reset();
+    }
+
+    /**
+     @brief Remove all classes
+     */
+    virtual void clear() {
+        if (is_training_) cancelTraining();
+        models.clear();
+        reset();
+    }
+
+    ///@}
+
+    /** @name Training */
+    ///@{
+
+    /**
+     @brief Checks if the model is trained (training finished and not empty)
+     */
+    bool trained() const { return (!is_training_ && size() > 0); }
+
+    /**
+     @brief Checks if the model is still training
+     */
+    bool training() const { return is_training_; }
+
+    /**
+     @brief Train all classes from the training set passed in argument
+     @param trainingSet Training Set
+     */
+    virtual void train(TrainingSet* trainingSet) {
+        if (!trainingSet) return;
+        cancelTraining();
+        clear();
+
+        is_training_ = true;
+
+        // Fetch training set parameters
+        shared_parameters->dimension.set(trainingSet->dimension.get());
+        if (shared_parameters->bimodal.get()) {
+            shared_parameters->dimension_input.set(
+                trainingSet->dimension_input.get());
+        }
+        shared_parameters->column_names.set(trainingSet->column_names.get());
+
+        // Update models
+        bool contLoop(true);
+        while (contLoop) {
+            contLoop = false;
+            for (auto it = models.begin(); it != models.end(); ++it) {
+                if (trainingSet->labels().count(it->first) == 0) {
+                    models.erase(it->first);
+                    contLoop = true;
+                    break;
+                }
+            }
+        }
+        for (typename std::set<std::string>::iterator it =
+                 trainingSet->labels().begin();
+             it != trainingSet->labels().end(); ++it) {
+            addModelForClass(*it);
+        }
+
+        // Start class training
+        for (auto it = this->models.begin(); it != this->models.end(); ++it) {
+            it->second.is_training_ = true;
+            it->second.cancel_training_ = false;
+            models_still_training_++;
+            if ((configuration.multithreading ==
+                 MultithreadingMode::Parallel) ||
+                (configuration.multithreading ==
+                 MultithreadingMode::Background)) {
+                training_threads_[it->first] =
+                    std::thread(&SingleClassModel::train, &it->second,
+                                trainingSet->getPhrasesOfClass(it->first));
+            } else {
+                it->second.train(trainingSet->getPhrasesOfClass(it->first));
+            }
+        }
+        if (configuration.multithreading == MultithreadingMode::Parallel) {
+            joinTraining();
+        }
+        if (configuration.multithreading == MultithreadingMode::Sequential) {
+            is_training_ = false;
+        }
+    }
+
+    /**
+     @brief Train a specific class from the training set passed in argument
+     @param trainingSet Training Set
+     @param label label of the class to train
+     @throw out_of_range if the label does not exist
+     @throw runtime_error if the dimensions of the training set don't match the
+     dimensions
+     of the current model
+     */
+    virtual void train(TrainingSet* trainingSet, std::string const& label) {
+        if (!trainingSet) return;
+        if (trainingSet->labels().count(label) == 0)
+            throw std::out_of_range("Class " + label + " does not exist");
+
+        // Cancel Training of the class
+        cancelTraining(label);
+
+        // Check Consistency of the new Training Set
+        if (size() > 0) {
+            if ((shared_parameters->dimension.get() !=
+                 trainingSet->dimension.get()) ||
+                (shared_parameters->bimodal.get() &&
+                 (shared_parameters->dimension_input.get() !=
+                  trainingSet->dimension_input.get())))
+                throw std::runtime_error(
+                    "Dimensions of the new Training Set do not match existing "
+                    "models");
+        }
+
+        is_training_ = true;
+
+        // Fetch training set parameters
+        shared_parameters->dimension.set(trainingSet->dimension.get());
+        if (shared_parameters->bimodal.get()) {
+            shared_parameters->dimension_input.set(
+                trainingSet->dimension_input.get());
+        }
+        shared_parameters->column_names.set(trainingSet->column_names.get());
+
+        addModelForClass(label);
+
+        // Start class training
+        models[label].is_training_ = true;
+        models[label].cancel_training_ = false;
+        models_still_training_++;
+        if (configuration.multithreading == MultithreadingMode::Sequential) {
+            models[label].train(trainingSet->getPhrasesOfClass(label));
+        } else {
+            training_threads_[label] =
+                std::thread(&SingleClassModel::train, &(this->models[label]),
+                            trainingSet->getPhrasesOfClass(label));
+        }
+        if (configuration.multithreading == MultithreadingMode::Parallel) {
+            joinTraining();
+        }
+        if (configuration.multithreading == MultithreadingMode::Sequential) {
+            is_training_ = false;
+        }
+    }
+
+    /**
+     @brief Cancels the training of all models
+     */
+    void cancelTraining() {
+        if (is_training_) {
+            for (auto& it : this->models) {
+                cancel_required_ = true;
+                it.second.cancelTraining();
+                while (it.second.isTraining()) {
+                }
+            }
+            joinTraining();
+        }
+        cancel_required_ = false;
+    }
+
+    /**
+     @brief Cancels the training of a given class
+     @param label label of the class to cancel
+     */
+    void cancelTraining(std::string const& label) {
+        if (is_training_ && (this->models.count(label) > 0)) {
+            cancel_required_ = true;
+            models[label].cancelTraining();
+            while (models[label].isTraining()) {
+            }
+            if (models_still_training_ == 0) {
+                joinTraining();
+            }
+        }
+        cancel_required_ = false;
+    }
+
+    ///@}
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    virtual void reset() {
+        checkTraining();
+        // checkConfigurationChanges();
+        for (auto it = this->models.begin(); it != this->models.end(); ++it) {
+            it->second.reset();
+        }
+    }
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     */
+    virtual void filter(std::vector<float> const& observation) {
+        checkTraining();
+        // checkConfigurationChanges();
+    }
+
+    ///@}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const {
+        Json::Value root;
+        root["shared_parameters"] = shared_parameters->toJson();
+        root["configuration"] = configuration.toJson();
+        root["models"].resize(static_cast<Json::ArrayIndex>(size()));
+        Json::ArrayIndex modelIndex(0);
+        for (auto& it : models) {
+            root["models"][modelIndex++] = it.second.toJson();
+        }
+        return root;
+    }
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root) {
+        try {
+            EventGenerator<TrainingEvent> _tmp_training_events(training_events);
+            Model<SingleClassModel, ModelType> tmp(root);
+            *this = tmp;
+            training_events = _tmp_training_events;
+        } catch (JsonException& e) {
+            throw e;
+        }
+    }
+
+    ///@}
+
+    /**
+     @brief Set of Parameters shared among classes
+     */
+    std::shared_ptr<SharedParameters> shared_parameters;
+
+    /**
+     @brief Configuration (default and class-specific parameters)
+     */
+    Configuration<ModelType> configuration;
+
+    /**
+     @brief Generator for training process events
+     */
+    EventGenerator<TrainingEvent> training_events;
+
+    /**
+     @brief models stored in a map. Each Model is associated with a label
+     */
+    std::map<std::string, SingleClassModel> models;
+
+  protected:
+    /**
+     @brief Finishes the background training process by joining threads and
+     deleting the models which training failed
+     */
+    virtual void joinTraining() {
+        if (!is_training_) return;
+        bool expectedState(false);
+        if (is_joining_.compare_exchange_weak(expectedState, true)) {
+            while (!training_threads_.empty()) {
+                training_threads_.begin()->second.join();
+                training_threads_.erase(training_threads_.begin());
+            }
+            bool classesUntrained(true);
+            while (classesUntrained) {
+                classesUntrained = false;
+                for (auto it = this->models.begin(); it != this->models.end();
+                     it++) {
+                    if (it->second.training_status.status ==
+                            TrainingEvent::Status::Cancel ||
+                        it->second.training_status.status ==
+                            TrainingEvent::Status::Error) {
+                        models.erase(it);
+                        classesUntrained = true;
+                        break;
+                    }
+                }
+            }
+            is_joining_ = false;
+            is_training_ = false;
+            reset();
+            TrainingEvent event(this, "", TrainingEvent::Status::Alldone);
+            training_events.notifyListeners(event);
+        } else {
+            while (is_joining_) {
+            }
+        }
+    }
+
+    /**
+     @brief Monitors the training of each Model of the group.
+     */
+    void onTrainingEvent(TrainingEvent const& e) {
+        event_mutex_.lock();
+        TrainingEvent event(e);
+        event.model = this;
+        training_events.notifyListeners(event);
+        if (e.status != TrainingEvent::Status::Run) {
+            models_still_training_--;
+            ((SingleClassModel*)e.model)->is_training_ = false;
+            if (configuration.multithreading ==
+                    MultithreadingMode::Background &&
+                !is_joining_ &&       // avoid to call "joinTraining" if already
+                                      // called by the main thread
+                !cancel_required_ &&  // avoid to call "joinTraining" if cancel
+                                      // required by the main thread
+                models_still_training_ == 0) {
+                is_joining_ = false;
+                std::thread(&Model<SingleClassModel, ModelType>::joinTraining,
+                            this)
+                    .detach();
+            }
+        }
+        event_mutex_.unlock();
+    }
+
+    /**
+     @brief Checks if the Model is still training
+     @throws runtime_error if the Model is training.
+     */
+    inline void checkTraining() const {
+        if (is_training_) throw std::runtime_error("The Model is training");
+        while (is_joining_) {
+        }
+    }
+
+    /**
+     @brief Look for configuration changes and throws an exception if the model
+     is not up to date.
+     */
+    inline void checkConfigurationChanges() const {
+        bool configChanged(false);
+        if (configuration.changed) configChanged = true;
+        for (auto& config : configuration.class_parameters_) {
+            if (config.second.changed) configChanged = true;
+        }
+        if (configChanged) {
+            throw std::runtime_error(
+                "Configuration has changed, models need to be trained.");
+        }
+    }
+
+    /**
+     @brief Update training set for a specific label
+     @param label label of the sub-training set to update
+     @throws out_of_range if the label does not exist
+     */
+    virtual void addModelForClass(std::string const& label) {
+        if (models.count(label) > 0 && models[label].isTraining())
+            throw std::runtime_error("The Model is already training");
+
+        if (models.find(label) == models.end()) {
+            models.insert(std::pair<std::string, SingleClassModel>(
+                label, shared_parameters));
+            models[label].training_events.addListener(
+                this,
+                &xmm::Model<SingleClassModel, ModelType>::onTrainingEvent);
+            models[label].label = label;
+        }
+        if (configuration.class_parameters_.count(label) > 0) {
+            models[label].parameters = configuration.class_parameters_[label];
+        } else {
+            models[label].parameters = configuration;
+        }
+    }
+
+    /**
+     @brief Training Threads
+     */
+    std::map<std::string, std::thread> training_threads_;
+
+    /**
+     @brief locks the Model while the models are training
+     Used in cancel method
+     */
+    std::atomic<bool> cancel_required_;
+
+    /**
+     @brief locks the Model while the models are training
+     Used in cancel method
+     */
+    std::atomic<bool> is_training_;
+
+    /**
+     @brief specifies if a thread for joining the training process has been
+     launched.
+     */
+    std::atomic<bool> is_joining_;
+
+    /**
+     @brief Number of models that are still training
+     */
+    unsigned int models_still_training_;
+
+    /**
+     @brief Mutex that prevents concurrent calls to onEvent()
+     */
+    std::mutex event_mutex_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelConfiguration.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelConfiguration.hpp
new file mode 100644
index 0000000..1c77826
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelConfiguration.hpp
@@ -0,0 +1,226 @@
+/*
+ * xmmModelConfiguration.hpp
+ *
+ * Configuration for probabilistic models with multiple classes
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModelConfiguration_h
+#define xmmModelConfiguration_h
+
+#include "xmmModelParameters.hpp"
+#include <map>
+
+namespace xmm {
+/**
+ @brief Regression estimator for multiclass models
+ */
+enum class MultiClassRegressionEstimator {
+    /**
+     @brief the output is estimated as the output values of the likeliest class
+     */
+    Likeliest = 0,
+
+    /**
+     @brief the output is estimated as a weight sum of the output values of each
+     class
+     */
+    Mixture = 1
+};
+
+/**
+ @brief Multithreading mode for multiple-class training
+ */
+enum class MultithreadingMode {
+    /**
+     @brief No multithreading: all classes are trained sequentially
+     */
+    Sequential,
+
+    /**
+     @brief Multithreading: all classes are trained in parallel in different
+     threads. the train
+     function returns after all classes have finished training.
+     */
+    Parallel,
+
+    /**
+     @brief Multithreading in Background: all classes are trained in parallel in
+     different threads. the train
+     function returns after the training has started
+     @warning when the train function return, models are still training in
+     background.
+     */
+    Background
+};
+
+/**
+ @ingroup Model
+ @brief Model configuration
+ @details The object contains both default parameters and class-specific
+ parameters
+ */
+template <typename ModelType>
+class Configuration : public ClassParameters<ModelType> {
+  public:
+    template <typename SingleClassModel, typename ModelType_>
+    friend class Model;
+
+    /**
+     @brief Default Constructor
+     */
+    Configuration()
+        : multithreading(MultithreadingMode::Parallel),
+          multiClass_regression_estimator(
+              MultiClassRegressionEstimator::Likeliest) {}
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    Configuration(Configuration const& src)
+        : ClassParameters<ModelType>(src),
+          multithreading(src.multithreading),
+          multiClass_regression_estimator(src.multiClass_regression_estimator),
+          class_parameters_(src.class_parameters_) {}
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit Configuration(Json::Value const& root) {
+        ClassParameters<ModelType>::fromJson(root["default_parameters"]);
+        multithreading = static_cast<MultithreadingMode>(
+            root.get("multithreading", 0).asInt());
+        multiClass_regression_estimator =
+            static_cast<MultiClassRegressionEstimator>(
+                root.get("multiClass_regression_estimator", 0).asInt());
+        class_parameters_.clear();
+        for (auto p : root["class_parameters"]) {
+            class_parameters_[p["label"].asString()].fromJson(p);
+        }
+    }
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    Configuration& operator=(Configuration const& src) {
+        if (this != &src) {
+            ClassParameters<ModelType>::operator=(src);
+            class_parameters_ = src.class_parameters_;
+            multithreading = src.multithreading;
+            multiClass_regression_estimator =
+                src.multiClass_regression_estimator;
+        }
+        return *this;
+    }
+
+    /**
+     @brief access the parameters of a given class by label
+     @details If the parameters have not been edited for this class yet, they
+     are set to the
+     default parameters.
+     @param label class label
+     @return a reference to the parameters of the given class
+     */
+    ClassParameters<ModelType>& operator[](std::string label) {
+        if (class_parameters_.count(label) == 0) {
+            class_parameters_[label] = *this;
+        }
+        return class_parameters_[label];
+    }
+
+    /**
+     @brief Reset the parameters of all classes to default
+     */
+    void reset() { class_parameters_.clear(); }
+
+    /**
+     @brief Reset the parameters of a given classes to default
+     @param label class label
+     */
+    void reset(std::string label) {
+        if (class_parameters_.count(label) > 0) {
+            class_parameters_.erase(label);
+        }
+    }
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const {
+        Json::Value root;
+        root["multithreading"] = static_cast<int>(multithreading);
+        root["multiClass_regression_estimator"] =
+            static_cast<int>(multiClass_regression_estimator);
+        root["default_parameters"] = ClassParameters<ModelType>::toJson();
+        int i = 0;
+        for (auto p : class_parameters_) {
+            root["class_parameters"][i] = p.second.toJson();
+            root["class_parameters"][i]["label"] = p.first;
+            i++;
+        }
+        return root;
+    }
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root) {
+        try {
+            Configuration<ModelType> tmp(root);
+            *this = tmp;
+        } catch (JsonException& e) {
+            throw e;
+        }
+    }
+
+    /**
+     @brief Multithreading Training Mode
+     */
+    MultithreadingMode multithreading;
+
+    /**
+     @brief Regression mode for multiple class (prediction from likeliest class
+     vs interpolation)
+     */
+    MultiClassRegressionEstimator multiClass_regression_estimator;
+
+  protected:
+    /**
+     @brief Parameters for each class
+     */
+    std::map<std::string, ClassParameters<ModelType>> class_parameters_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelParameters.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelParameters.hpp
new file mode 100644
index 0000000..aec8752
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelParameters.hpp
@@ -0,0 +1,80 @@
+/*
+ * xmmModelParameters.hpp
+ *
+ * Model Parameters for each class (label)
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModelParameters_h
+#define xmmModelParameters_h
+
+#include "../common/xmmAttribute.hpp"
+#include "../common/xmmJson.hpp"
+
+namespace xmm {
+/**
+ @ingroup Model
+ @brief Class-specific Model Parameters.
+ @details this structure is then encapsulated in a Configuration object that
+ propagates default parameters
+ or class-specific parameters to the SingleClassModel.
+ */
+template <typename ModelType>
+class ClassParameters : public Writable {
+  public:
+    /**
+     @brief Default Constructor
+     */
+    ClassParameters() : changed(true) {}
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    ClassParameters(ClassParameters const& src) : changed(true) {}
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json value
+     */
+    explicit ClassParameters(Json::Value const& root) : changed(true) {}
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    ClassParameters& operator=(ClassParameters const& src) { changed = true; }
+
+    /**
+     @brief specifies if parameters have changed (model is invalid)
+     */
+    bool changed;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelResults.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelResults.hpp
new file mode 100644
index 0000000..c65fd38
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelResults.hpp
@@ -0,0 +1,125 @@
+/*
+ * xmmModelResults.hpp
+ *
+ * Results structures for probabilistic models
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModelResults_h
+#define xmmModelResults_h
+
+#include <string>
+#include <vector>
+
+namespace xmm {
+/**
+ @ingroup Model
+ @brief Class-specific Results of the filtering/inference process.
+ @details The default results contain both likelihoods for recognition
+ and vectors for the results of a regression
+ */
+template <typename ModelType>
+struct ClassResults {
+    /**
+     @brief Instantaneous likelihood
+     */
+    double instant_likelihood;
+
+    /**
+     @brief Cumulative log-likelihood computed on a sliding window
+     */
+    double log_likelihood;
+
+    /**
+     @brief Predicted Output parameter vector (only used in regression mode)
+     @warning this variable is not allocated if the model is not bimodal
+     */
+    std::vector<float> output_values;
+
+    /**
+     @brief Predicted Output variance associated with the generated parameter
+     vector (only used in regression mode)
+     @warning this variable is not allocated if the model is not bimodal
+     */
+    std::vector<float> output_covariance;
+};
+
+/**
+ @ingroup Model
+ @brief Results of the filtering/inference process (for a Model with multiple
+ classes).
+ @details The default results contain both likelihoods for recognition
+ and vectors for the results of a regression
+ */
+template <typename ModelType>
+struct Results {
+    /**
+     @brief Instantaneous likelihood of each class
+     */
+    std::vector<double> instant_likelihoods;
+
+    /**
+     @brief Normalized instantaneous likelihood of each class
+     */
+    std::vector<double> instant_normalized_likelihoods;
+
+    /**
+     @brief Smoothed likelihood of each class
+     */
+    std::vector<double> smoothed_likelihoods;
+
+    /**
+     @brief Normalized smoothed likelihood of each class
+     */
+    std::vector<double> smoothed_normalized_likelihoods;
+
+    /**
+     @brief Cumulative smoothed log-likelihood of each class
+     */
+    std::vector<double> smoothed_log_likelihoods;
+
+    /**
+     @brief Label of the likeliest class
+     */
+    std::string likeliest;
+
+    /**
+     @brief Output values estimated by regression
+     @warning this variable is not allocated if the Model is not bimodal
+     */
+    std::vector<float> output_values;
+
+    /**
+     @brief Output variance over the values estimated by regression
+     @warning this variable is not allocated if the Model is not bimodal
+     */
+    std::vector<float> output_covariance;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.cpp
new file mode 100644
index 0000000..21d74a8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.cpp
@@ -0,0 +1,162 @@
+/*
+ * xmmModelSharedParameters.cpp
+ *
+ * Shared Parameters class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmModelSharedParameters.hpp"
+
+xmm::SharedParameters::SharedParameters()
+    : bimodal(false),
+      dimension((bimodal.get()) ? 2 : 1, (bimodal.get()) ? 2 : 1),
+      dimension_input((bimodal.get()) ? 1 : 0, 0,
+                      (bimodal.get()) ? dimension.get() : 0),
+      em_algorithm_min_iterations(10, 1),
+      em_algorithm_max_iterations(0),
+      em_algorithm_percent_chg(0.01, 0.),
+      likelihood_window(1, 1) {
+    bimodal.onAttributeChange(this, &xmm::SharedParameters::onAttributeChange);
+    dimension.onAttributeChange(this,
+                                &xmm::SharedParameters::onAttributeChange);
+    dimension_input.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_min_iterations.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_max_iterations.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_percent_chg.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    likelihood_window.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    column_names.onAttributeChange(this,
+                                   &xmm::SharedParameters::onAttributeChange);
+}
+
+xmm::SharedParameters::SharedParameters(SharedParameters const& src)
+    : bimodal(src.bimodal),
+      dimension(src.dimension),
+      dimension_input(src.dimension_input),
+      column_names(src.column_names),
+      em_algorithm_min_iterations(src.em_algorithm_min_iterations),
+      em_algorithm_max_iterations(src.em_algorithm_max_iterations),
+      em_algorithm_percent_chg(src.em_algorithm_percent_chg),
+      likelihood_window(src.likelihood_window) {
+    bimodal.onAttributeChange(this, &xmm::SharedParameters::onAttributeChange);
+    dimension.onAttributeChange(this,
+                                &xmm::SharedParameters::onAttributeChange);
+    dimension_input.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_min_iterations.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_max_iterations.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    em_algorithm_percent_chg.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    likelihood_window.onAttributeChange(
+        this, &xmm::SharedParameters::onAttributeChange);
+    column_names.onAttributeChange(this,
+                                   &xmm::SharedParameters::onAttributeChange);
+}
+
+xmm::SharedParameters::SharedParameters(Json::Value const& root)
+    : SharedParameters() {
+    bimodal.set(root.get("bimodal", false).asBool());
+    dimension.set(root.get("dimension", bimodal.get() ? 2 : 1).asInt());
+    dimension_input.set(
+        root.get("dimension_input", bimodal.get() ? 1 : 0).asInt());
+    em_algorithm_min_iterations.set(
+        root.get("em_algorithm_min_iterations", 10).asInt());
+    em_algorithm_max_iterations.set(
+        root.get("em_algorithm_max_iterations", 0).asInt());
+    em_algorithm_percent_chg.set(
+        root.get("em_algorithm_percent_chg", 0.01).asFloat());
+    likelihood_window.set(root.get("likelihood_window", 1).asInt());
+    std::vector<std::string> tmpColNames(dimension.get());
+    for (int i = 0; i < tmpColNames.size(); i++)
+        tmpColNames[i] = root["column_names"].get(i, "").asString();
+    column_names.set(tmpColNames);
+}
+
+xmm::SharedParameters& xmm::SharedParameters::operator=(
+    SharedParameters const& src) {
+    if (this != &src) {
+        bimodal = src.bimodal;
+        dimension = src.dimension;
+        dimension_input = src.dimension_input;
+        column_names = src.column_names;
+        em_algorithm_min_iterations = src.em_algorithm_min_iterations;
+        em_algorithm_max_iterations = src.em_algorithm_max_iterations;
+        em_algorithm_percent_chg = src.em_algorithm_percent_chg;
+        likelihood_window = src.likelihood_window;
+    }
+    return *this;
+}
+
+Json::Value xmm::SharedParameters::toJson() const {
+    Json::Value root;
+    root["bimodal"] = bimodal.get();
+    root["dimension"] = static_cast<int>(dimension.get());
+    root["dimension_input"] = static_cast<int>(dimension_input.get());
+    for (int i = 0; i < column_names.size(); i++)
+        root["column_names"][i] = column_names.at(i);
+    root["em_algorithm_min_iterations"] = em_algorithm_min_iterations.get();
+    root["em_algorithm_max_iterations"] = em_algorithm_max_iterations.get();
+    root["em_algorithm_percent_chg"] = em_algorithm_percent_chg.get();
+    root["likelihood_window"] = static_cast<int>(likelihood_window.get());
+    return root;
+}
+
+void xmm::SharedParameters::fromJson(Json::Value const& root) {
+    try {
+        SharedParameters tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+void xmm::SharedParameters::onAttributeChange(AttributeBase* attr_pointer) {
+    if (attr_pointer == &bimodal) {
+        if (bimodal.get()) {
+            dimension.setLimitMin(2);
+            if (dimension.get() < 2) dimension.set(2);
+            dimension_input.setLimitMin(1);
+            if (dimension_input.get() < 1) dimension_input.set(1);
+        } else {
+            dimension.setLimitMin(1);
+            if (dimension.get() < 1) dimension.set(1);
+            dimension_input.setLimitMax(0);
+            dimension_input.set(0);
+        }
+    } else if (attr_pointer == &dimension) {
+        dimension_input.setLimitMax(dimension.get() - 1);
+        column_names.resize(dimension.get());
+    }
+    attr_pointer->changed = false;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.hpp
new file mode 100644
index 0000000..aa05ae5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSharedParameters.hpp
@@ -0,0 +1,160 @@
+/*
+ * xmmModelSharedParameters.hpp
+ *
+ * Shared Parameters class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModelSharedParameters_h
+#define xmmModelSharedParameters_h
+
+#include "../common/xmmEvents.hpp"
+#include "../trainingset/xmmTrainingSet.hpp"
+#include <mutex>
+
+namespace xmm {
+/**
+ @defgroup Model [Core] Probabilistic Models
+ */
+
+/**
+ @ingroup Model
+ @brief Shared Parameters for models with multiple classes.
+ @details This structure is shared by pointer between the class-specific models
+ to avoid
+ data duplication and ensures that all class-specific models share the same
+ common attributes.
+ */
+class SharedParameters : public Writable {
+  public:
+    template <typename SingleClassModel, typename ModelType>
+    friend class Model;
+    friend class SingleClassProbabilisticModel;
+    friend class SingleClassGMM;
+    friend class SingleClassHMM;
+    friend class HierarchicalHMM;
+    friend class GMM;
+
+    /**
+     @brief Default Constructor
+     */
+    SharedParameters();
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    SharedParameters(SharedParameters const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit SharedParameters(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    SharedParameters& operator=(SharedParameters const& src);
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /**
+     @brief defines if the phrase is bimodal (true) or unimodal (false)
+     */
+    Attribute<bool> bimodal;
+
+    /**
+     @brief total dimension of the training data
+     */
+    Attribute<unsigned int> dimension;
+
+    /**
+     @brief Dimension of the input modality
+     */
+    Attribute<unsigned int> dimension_input;
+
+    /**
+     @brief labels of the columns of input/output data (e.g. descriptor names)
+     */
+    Attribute<std::vector<std::string>> column_names;
+
+    /**
+     @brief Minimum number of iterations of the EM algorithm
+     */
+    Attribute<unsigned int> em_algorithm_min_iterations;
+
+    /**
+     @brief Maximum number of iterations of the EM algorithm.
+     @details If this value is superior to
+     minSteps, this criterion is used. Otherwise, only the
+     em_algorithm_percent_chg criterion applies.
+     */
+    Attribute<unsigned int> em_algorithm_max_iterations;
+
+    /**
+     @brief log-likelihood difference threshold necessary to stop the EM
+     algorithm.
+     @details When the percent-change in likelihood of the training data given
+     the
+     estimated parameters gets under this threshold, the EM algorithm is
+     stopped.
+     */
+    Attribute<double> em_algorithm_percent_chg;
+
+    /**
+     @brief Size of the window (in samples) used to compute the likelihoods
+     */
+    Attribute<unsigned int> likelihood_window;
+
+  protected:
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.cpp
new file mode 100644
index 0000000..28259e4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.cpp
@@ -0,0 +1,238 @@
+/*
+ * xmmModelSingleClass.hpp
+ *
+ * Abstract class for Single-class Probabilistic Machine learning models based
+ * on the EM algorithm
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmModelSingleClass.hpp"
+#include <cmath>
+
+#pragma mark -
+#pragma mark Constructors
+xmm::SingleClassProbabilisticModel::SingleClassProbabilisticModel(
+    std::shared_ptr<SharedParameters> p)
+    : label(""),
+      shared_parameters(p),
+      training_status(this, label),
+      is_training_(false),
+      cancel_training_(false) {
+    if (p == NULL) {
+        throw std::runtime_error(
+            "Cannot instantiate a probabilistic model without Shared "
+            "parameters.");
+    }
+    likelihood_buffer_.resize(shared_parameters->likelihood_window.get());
+}
+
+xmm::SingleClassProbabilisticModel::SingleClassProbabilisticModel(
+    SingleClassProbabilisticModel const& src)
+    : label(src.label),
+      shared_parameters(src.shared_parameters),
+      training_status(this, label),
+      is_training_(false),
+      cancel_training_(false) {
+    if (is_training_)
+        throw std::runtime_error("Cannot copy: target model is still training");
+    if (src.is_training_)
+        throw std::runtime_error("Cannot copy: source model is still training");
+}
+
+xmm::SingleClassProbabilisticModel::SingleClassProbabilisticModel(
+    std::shared_ptr<SharedParameters> p, Json::Value const& root)
+    : label(""),
+      shared_parameters(p),
+      training_status(this, label),
+      is_training_(false),
+      cancel_training_(false) {
+    if (p == NULL) {
+        throw std::runtime_error(
+            "Cannot instantiate a probabilistic model without Shared "
+            "parameters.");
+    }
+    label = root["label"].asString();
+    training_status.label = label;
+}
+
+xmm::SingleClassProbabilisticModel& xmm::SingleClassProbabilisticModel::
+operator=(SingleClassProbabilisticModel const& src) {
+    if (this != &src) {
+        if (is_training_)
+            throw std::runtime_error(
+                "Cannot copy: target model is still training");
+        if (src.is_training_)
+            throw std::runtime_error(
+                "Cannot copy: source model is still training");
+        label = src.label;
+        training_status = TrainingEvent(this, label),
+        shared_parameters = src.shared_parameters;
+        is_training_ = false;
+        cancel_training_ = false;
+    }
+    return *this;
+};
+
+xmm::SingleClassProbabilisticModel::~SingleClassProbabilisticModel() {
+    while (this->isTraining()) {
+    }
+}
+
+#pragma mark -
+#pragma mark Accessors
+bool xmm::SingleClassProbabilisticModel::isTraining() const {
+    return is_training_;
+}
+
+#pragma mark -
+#pragma mark Training
+void xmm::SingleClassProbabilisticModel::train(TrainingSet* trainingSet) {
+    training_mutex_.lock();
+    bool trainingError(false);
+
+    training_status.status = TrainingEvent::Status::Run;
+
+    if (trainingSet && !trainingSet->empty()) {
+        this->allocate();
+    } else {
+        trainingError = true;
+    }
+
+    if (cancelTrainingIfRequested()) return;
+    if (!trainingError) {
+        try {
+            this->emAlgorithmInit(trainingSet);
+        } catch (std::exception& e) {
+            trainingError = true;
+        }
+    }
+
+    training_status.label = label;
+    training_status.log_likelihood = -std::numeric_limits<double>::max();
+    training_status.iterations = 0;
+    double old_log_prob = training_status.log_likelihood;
+
+    while (!emAlgorithmHasConverged(training_status.iterations,
+                                    training_status.log_likelihood,
+                                    old_log_prob)) {
+        if (cancelTrainingIfRequested()) return;
+        old_log_prob = training_status.log_likelihood;
+        if (!trainingError) {
+            try {
+                training_status.log_likelihood =
+                    this->emAlgorithmUpdate(trainingSet);
+            } catch (std::exception& e) {
+                trainingError = true;
+            }
+        }
+
+        if (std::isnan(100. *
+                       fabs((training_status.log_likelihood - old_log_prob) /
+                            old_log_prob)) &&
+            (training_status.iterations > 1))
+            trainingError = true;
+
+        if (trainingError) {
+            is_training_ = false;
+            training_mutex_.unlock();
+            training_status.status = TrainingEvent::Status::Error;
+            training_events.notifyListeners(training_status);
+            return;
+        }
+
+        ++training_status.iterations;
+
+        if (shared_parameters->em_algorithm_max_iterations.get() >
+            shared_parameters->em_algorithm_min_iterations.get())
+            training_status.progression =
+                float(training_status.iterations) /
+                float(shared_parameters->em_algorithm_max_iterations.get());
+        else
+            training_status.progression =
+                float(training_status.iterations) /
+                float(shared_parameters->em_algorithm_min_iterations.get());
+
+        training_events.notifyListeners(training_status);
+    }
+
+    if (cancelTrainingIfRequested()) return;
+    this->emAlgorithmTerminate();
+
+    training_mutex_.unlock();
+}
+
+bool xmm::SingleClassProbabilisticModel::emAlgorithmHasConverged(
+    int step, double log_prob, double old_log_prob) const {
+    if (step >= 1000) return true;
+    if (shared_parameters->em_algorithm_max_iterations.get() >=
+        shared_parameters->em_algorithm_min_iterations.get())
+        return (step >= shared_parameters->em_algorithm_max_iterations.get());
+    else
+        return (step >= shared_parameters->em_algorithm_min_iterations.get()) &&
+               (100. * fabs((log_prob - old_log_prob) / log_prob) <=
+                shared_parameters->em_algorithm_percent_chg.get());
+}
+
+void xmm::SingleClassProbabilisticModel::emAlgorithmTerminate() {
+    training_status.status = TrainingEvent::Status::Done;
+    training_events.notifyListeners(training_status);
+    this->is_training_ = false;
+}
+
+void xmm::SingleClassProbabilisticModel::cancelTraining() {
+    if (isTraining()) {
+        cancel_training_ = true;
+    }
+}
+
+bool xmm::SingleClassProbabilisticModel::cancelTrainingIfRequested() {
+    if (!cancel_training_) return false;
+    training_mutex_.unlock();
+    training_status.label = label;
+    training_status.status = TrainingEvent::Status::Cancel;
+    training_events.notifyListeners(training_status);
+    is_training_ = false;
+    return true;
+}
+
+#pragma mark -
+#pragma mark Performance
+void xmm::SingleClassProbabilisticModel::reset() {
+    check_training();
+    likelihood_buffer_.resize(shared_parameters->likelihood_window.get());
+    likelihood_buffer_.clear();
+}
+
+#pragma mark -
+#pragma mark File IO
+Json::Value xmm::SingleClassProbabilisticModel::toJson() const {
+    check_training();
+    Json::Value root;
+    root["label"] = label;
+    return root;
+}
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.hpp
new file mode 100644
index 0000000..cad4a34
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/model/xmmModelSingleClass.hpp
@@ -0,0 +1,372 @@
+/*
+ * xmmModelSingleClass.hpp
+ *
+ * Abstract class for Single-class Probabilistic Machine learning models based
+ * on the EM algorithm
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmModelSingleClass_h
+#define xmmModelSingleClass_h
+
+#include "../common/xmmCircularbuffer.hpp"
+#include "../common/xmmEvents.hpp"
+#include "../trainingset/xmmTrainingSet.hpp"
+#include "xmmModelSharedParameters.hpp"
+#include <memory>
+#include <mutex>
+
+namespace xmm {
+/**
+ @ingroup Model
+ @brief Event for monitoring the training process
+ */
+class TrainingEvent {
+  public:
+    /**
+     @brief Status of the training process
+     */
+    enum Status {
+        /**
+         @brief Training is still running
+         */
+        Run,
+
+        /**
+         @brief An error occured during training
+         */
+        Error,
+
+        /**
+         @brief The training has been cancelled.
+         */
+        Cancel,
+
+        /**
+         @brief Training is done without error
+         */
+        Done,
+
+        /**
+         @brief The training of all classes has finished
+         */
+        Alldone
+    };
+
+    /**
+     @brief Type of Training Error
+     */
+    enum class ErrorType {
+        /**
+         @brief Convergence Errors (numerical errors in the training process).
+         @details these errors can be due to issues with the training data (e.g.
+         nan values), or
+         bad choice of parameters (e.g. regularization too low).
+         */
+        ConvergenceError
+    };
+
+    /**
+     @brief Constructor
+     @param model_ Source model
+     @param label_ Label of the model sending the notification
+     @param status_ status of the training process
+     */
+    TrainingEvent(void* model_, std::string label_,
+                  Status status_ = Status::Run)
+        : model(model_),
+          label(label_),
+          status(status_),
+          progression(0),
+          log_likelihood(0),
+          iterations(0) {}
+
+    /**
+     @brief Copy constructor
+     @param src source event
+     */
+    TrainingEvent(TrainingEvent const& src)
+        : model(src.model),
+          label(src.label),
+          status(src.status),
+          progression(src.progression),
+          log_likelihood(src.log_likelihood),
+          iterations(src.iterations) {}
+
+    /**
+     @brief Assignment operator
+     @param src source event
+     */
+    TrainingEvent& operator=(TrainingEvent const& src) {
+        if (this != &src) {
+            model = src.model;
+            label = src.label;
+            status = src.status;
+            progression = src.progression;
+            log_likelihood = src.log_likelihood;
+            iterations = src.iterations;
+        }
+        return *this;
+    }
+
+    /**
+     @brief Source Model
+     */
+    void* model;
+
+    /**
+     @brief Label of the source model, if any.
+     */
+    std::string label;
+
+    /**
+     @brief Status of the training process
+     */
+    Status status;
+
+    /**
+     @brief progression within the training algorithm
+     */
+    float progression;
+
+    /**
+     @brief Log-likelihood of the data given the model's parameters at the en of
+     training
+     */
+    double log_likelihood;
+
+    /**
+     @brief Number of EM iterations
+     */
+    double iterations;
+};
+
+/**
+ @ingroup Model
+ @brief Generic Template for Machine Learning Probabilistic models based on the
+ EM algorithm
+ */
+class SingleClassProbabilisticModel : public Writable {
+  public:
+    /**
+     @brief Constructor
+     @param p pointer to a shared parameters object (owned by a Model)
+     */
+    SingleClassProbabilisticModel(std::shared_ptr<SharedParameters> p = NULL);
+
+    /**
+     @brief Copy Constructor
+     @param src Source Model
+     */
+    SingleClassProbabilisticModel(SingleClassProbabilisticModel const& src);
+
+    /**
+     @brief Constructor from Json
+     @param p pointer to a shared parameters object (owned by a Model)
+     @param root Json structure
+     */
+    explicit SingleClassProbabilisticModel(std::shared_ptr<SharedParameters> p,
+                                           Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    SingleClassProbabilisticModel& operator=(
+        SingleClassProbabilisticModel const& src);
+
+    /**
+     @brief Destructor
+     */
+    virtual ~SingleClassProbabilisticModel();
+
+    /** @name Training */
+    ///@{
+
+    /**
+     @brief Checks if the model is training
+     @return true if the model is training
+     */
+    bool isTraining() const;
+
+    /**
+     @brief Main training method based on the EM algorithm
+     @details the method performs a loop over the pure virtual method
+     emAlgorithmUpdate() until convergence.
+     The @a emAlgorithmUpdate method computes both E and M steps of the EM
+     algorithm.
+     @param trainingSet Training Set to train the model.
+     @see emAlgorithmUpdate
+     */
+    void train(TrainingSet* trainingSet);
+
+    /**
+     @brief Cancels the training process : sets a flag so that the training
+     stops at the next
+     possible exit in the training process.
+     @warning the model is still training when this function returns. This
+     function only requests the training
+     process to cancel.
+     */
+    void cancelTraining();
+
+    ///@}
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    virtual void reset();
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     @return likelihood of the observation
+     */
+    virtual double filter(std::vector<float> const& observation) = 0;
+
+    ///@}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root) = 0;
+
+    ///@}
+
+    /**
+     @brief label associated with the given model
+     */
+    std::string label;
+
+    /**
+     @brief Pointer to the shared parameters owned by a multi-class model
+     */
+    std::shared_ptr<SharedParameters> shared_parameters;
+
+    /**
+     @brief Generator for events monitoring the training process
+     */
+    EventGenerator<TrainingEvent> training_events;
+
+    /**
+     @brief Event containing information on the current status of the training
+     process
+     */
+    TrainingEvent training_status;
+
+  protected:
+    /**
+     @brief Allocate memory for the model's parameters
+     @details called when dimensions are modified
+     */
+    virtual void allocate() = 0;
+
+    /**
+     @brief Initialize the training algorithm
+     */
+    virtual void emAlgorithmInit(TrainingSet* trainingSet) = 0;
+
+    /**
+     @brief Update Method of the EM algorithm
+     @details performs E and M steps of the EM algorithm.
+     @return likelihood of the training data given the current model parameters
+     (before re-estimation).
+     */
+    virtual double emAlgorithmUpdate(TrainingSet* trainingSet) = 0;
+
+    /**
+     @brief Terminate the training algorithm
+     */
+    virtual void emAlgorithmTerminate();
+
+    /**
+     @brief checks if the training has converged according to the object's EM
+     stop criterion
+     @param step index of the current step of the EM algorithm
+     @param log_prob log-likelihood returned by the EM update
+     @param old_log_prob log-likelihood returned by the EM update at the
+     previous step
+     */
+    bool emAlgorithmHasConverged(int step, double log_prob,
+                                 double old_log_prob) const;
+
+    /**
+     @brief checks if a cancel request has been sent and accordingly cancels the
+     training process
+     @return true if the training has been canceled.
+     */
+    bool cancelTrainingIfRequested();
+
+    /**
+     @brief Checks if the model is still training
+     @throws runtime_error if the model is training.
+     */
+    inline void check_training() const {
+        if (this->isTraining())
+            throw std::runtime_error("The model is training");
+    }
+
+    /**
+     @brief Likelihood buffer used for smoothing
+     */
+    CircularBuffer<double> likelihood_buffer_;
+
+    /**
+     @brief Mutex used in Concurrent Mode
+     */
+    std::mutex training_mutex_;
+
+    /**
+     @brief defines if the model is being trained.
+     */
+    bool is_training_;
+
+    /**
+     @brief defines if the model received a request to cancel training
+     */
+    bool cancel_training_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.cpp
new file mode 100644
index 0000000..ba9d79c
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.cpp
@@ -0,0 +1,582 @@
+/*
+ * xmmPhrase.cpp
+ *
+ * Multimodal data phrase
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmPhrase.hpp"
+#include <limits>
+#include <algorithm>
+
+xmm::Phrase::Phrase(MemoryMode memoryMode, Multimodality multimodality)
+    : own_memory_(memoryMode == MemoryMode::OwnMemory),
+      bimodal_(multimodality == Multimodality::Bimodal),
+      empty_(true),
+      length_(0),
+      input_length_(0),
+      output_length_(0),
+      max_length_(0) {
+    dimension.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    dimension_input.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    label.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    dimension.setLimitMin((bimodal_) ? 2 : 1);
+    dimension.set((bimodal_) ? 2 : 1, true);
+    dimension_input.setLimits((bimodal_) ? 1 : 0, (bimodal_) ? 2 : 0);
+    dimension_input.set((bimodal_) ? 1 : 0, true);
+    data_ = new float*[bimodal_ ? 2 : 1];
+    data_[0] = NULL;
+    if (bimodal_) data_[1] = NULL;
+}
+
+xmm::Phrase::Phrase(Phrase const& src)
+    : dimension(src.dimension),
+      dimension_input(src.dimension_input),
+      label(src.label),
+      column_names(src.column_names),
+      own_memory_(src.own_memory_),
+      bimodal_(src.bimodal_),
+      empty_(src.empty_),
+      length_(src.length_),
+      input_length_(src.input_length_),
+      output_length_(src.output_length_),
+      max_length_(src.max_length_) {
+    if (own_memory_) {
+        data_ = new float*[bimodal_ ? 2 : 1];
+        if (max_length_ > 0) {
+            unsigned int modality_dim =
+                bimodal_ ? dimension_input.get() : dimension.get();
+            data_[0] = new float[max_length_ * modality_dim];
+            std::copy(src.data_[0], src.data_[0] + max_length_ * modality_dim,
+                      data_[0]);
+            if (bimodal_) {
+                modality_dim = dimension.get() - dimension_input.get();
+                data_[1] = new float[max_length_ * modality_dim];
+                std::copy(src.data_[1],
+                          src.data_[1] + max_length_ * modality_dim, data_[1]);
+            }
+        }
+    } else {
+        data_[0] = src.data_[0];
+        if (bimodal_) data_[1] = src.data_[1];
+    }
+    dimension.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    dimension_input.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    label.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+}
+
+xmm::Phrase::Phrase(Json::Value const& root)
+    : own_memory_(true),
+      bimodal_(false),
+      empty_(true),
+      length_(0),
+      input_length_(0),
+      output_length_(0),
+      max_length_(0) {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot read Phrase with Shared memory");
+
+    dimension.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    dimension_input.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    label.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+
+    bimodal_ = root.get("bimodal", false).asBool();
+    dimension.setLimitMin((bimodal_) ? 2 : 1);
+    dimension_input.setLimits((bimodal_) ? 1 : 0, (bimodal_) ? 2 : 0);
+    dimension.set(root.get("dimension", bimodal_ ? 2 : 1).asInt(), true);
+    dimension_input.set(root.get("dimension_input", bimodal_ ? 1 : 0).asInt(),
+                        true);
+    data_ = new float*[bimodal_ ? 2 : 1];
+    data_[0] = NULL;
+    if (bimodal_) data_[1] = NULL;
+
+    column_names.resize(dimension.get(), "");
+    for (int i = 0; i < root["column_names"].size(); i++) {
+        column_names[i] = root["column_names"].get(i, "").asString();
+    }
+
+    label.set(root["label"].asString());
+
+    length_ = static_cast<unsigned int>(root.get("length", 0).asInt());
+    max_length_ = length_;
+    input_length_ = length_;
+    output_length_ = length_;
+    empty_ = (length_ == 0 && input_length_ == 0 && output_length_ == 0);
+
+    if (bimodal_) {
+        data_[0] =
+            reallocate<float>(data_[0], max_length_ * dimension_input.get(),
+                              length_ * dimension_input.get());
+        data_[1] = reallocate<float>(
+            data_[1], max_length_ * (dimension.get() - dimension_input.get()),
+            length_ * (dimension.get() - dimension_input.get()));
+        json2array(root["data_input"], data_[0],
+                   length_ * dimension_input.get());
+        json2array(root["data_output"], data_[1],
+                   length_ * (dimension.get() - dimension_input.get()));
+    } else {
+        data_[0] = reallocate<float>(data_[0], max_length_ * dimension.get(),
+                                     length_ * dimension.get());
+        json2array(root["data"], data_[0], length_ * dimension.get());
+    }
+}
+
+xmm::Phrase& xmm::Phrase::operator=(Phrase const& src) {
+    if (this != &src) {
+        if (own_memory_) {
+            if (data_) {
+                if (bimodal_) try {
+                        delete[] data_[1];
+                    } catch (std::exception& e) {
+                    }
+                try {
+                    delete[] data_[0];
+                } catch (std::exception& e) {
+                }
+            }
+            try {
+                delete[] data_;
+            } catch (std::exception& e) {
+            }
+            data_ = NULL;
+        }
+        own_memory_ = src.own_memory_;
+        bimodal_ = src.bimodal_;
+        empty_ = src.empty_;
+        dimension = src.dimension;
+        dimension_input = src.dimension_input;
+        max_length_ = src.max_length_;
+        length_ = src.length_;
+        input_length_ = src.input_length_;
+        output_length_ = src.output_length_;
+        column_names = src.column_names;
+        label = src.label;
+
+        if (own_memory_) {
+            data_ = new float*[bimodal_ ? 2 : 1];
+            if (max_length_ > 0) {
+                unsigned int modality_dim =
+                    bimodal_ ? dimension_input.get() : dimension.get();
+                data_[0] = new float[max_length_ * modality_dim];
+                std::copy(src.data_[0],
+                          src.data_[0] + max_length_ * modality_dim, data_[0]);
+                if (bimodal_) {
+                    modality_dim = dimension.get() - dimension_input.get();
+                    data_[1] = new float[max_length_ * modality_dim];
+                    std::copy(src.data_[1],
+                              src.data_[1] + max_length_ * modality_dim,
+                              data_[1]);
+                }
+            }
+        } else {
+            data_[0] = src.data_[0];
+            if (bimodal_) data_[1] = src.data_[1];
+        }
+        dimension.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+        dimension_input.onAttributeChange(this,
+                                          &xmm::Phrase::onAttributeChange);
+        label.onAttributeChange(this, &xmm::Phrase::onAttributeChange);
+    }
+    return *this;
+}
+
+xmm::Phrase::~Phrase() {
+    if (own_memory_) {
+        if (bimodal_) {
+            delete[] data_[1];
+        }
+        delete[] data_[0];
+    }
+    delete[] data_;
+}
+
+bool xmm::Phrase::ownMemory() const { return own_memory_; }
+
+bool xmm::Phrase::bimodal() const { return bimodal_; }
+
+unsigned int xmm::Phrase::size() const { return length_; }
+
+unsigned int xmm::Phrase::inputSize() const { return input_length_; }
+
+unsigned int xmm::Phrase::outputSize() const { return output_length_; }
+
+bool xmm::Phrase::empty() const { return empty_; }
+
+float xmm::Phrase::getValue(unsigned int index, unsigned int dim) const {
+    if (dim >= dimension.get())
+        throw std::out_of_range("Phrase: dimension out of bounds");
+    if (bimodal_) {
+        if (dim < dimension_input.get()) {
+            if (index >= input_length_)
+                throw std::out_of_range("Phrase: index out of bounds");
+            return data_[0][index * dimension_input.get() + dim];
+        } else {
+            if (index >= output_length_)
+                throw std::out_of_range("Phrase: index out of bounds");
+            return data_[1][index * (dimension.get() - dimension_input.get()) +
+                            dim - dimension_input.get()];
+        }
+    } else {
+        if (index >= length_)
+            throw std::out_of_range("Phrase: index out of bounds");
+        return data_[0][index * dimension.get() + dim];
+    }
+}
+
+float* xmm::Phrase::getPointer(unsigned int index) const {
+    if (index >= length_)
+        throw std::out_of_range("Phrase: index out of bounds");
+    if (bimodal_)
+        throw std::runtime_error(
+            "this phrase is bimodal_, use 'get_dataPointer_input' and "
+            "'get_dataPointer_output'");
+    return data_[0] + index * dimension.get();
+}
+
+float* xmm::Phrase::getPointer_input(unsigned int index) const {
+    if (index >= length_)
+        throw std::out_of_range("Phrase: index out of bounds");
+    if (!bimodal_)
+        throw std::runtime_error(
+            "this phrase is unimodal, use 'get_dataPointer'");
+    return data_[0] + index * dimension_input.get();
+}
+
+float* xmm::Phrase::getPointer_output(unsigned int index) const {
+    if (index >= length_)
+        throw std::out_of_range("Phrase: index out of bounds");
+    if (!bimodal_)
+        throw std::runtime_error(
+            "this phrase is unimodal, use 'get_dataPointer'");
+    return data_[1] + index * (dimension.get() - dimension_input.get());
+}
+
+void xmm::Phrase::connect(float* pointer_to_data, unsigned int length) {
+    if (own_memory_)
+        throw std::runtime_error("Cannot connect a phrase with own data");
+    if (bimodal_)
+        throw std::runtime_error(
+            "Cannot connect a single array, use 'connect_input' and "
+            "'connect_output'");
+
+    data_[0] = pointer_to_data;
+    input_length_ = length;
+    length_ = length;
+    empty_ = false;
+}
+
+void xmm::Phrase::connect(float* pointer_to_data_input,
+                          float* pointer_to_data_output, unsigned int length) {
+    if (own_memory_)
+        throw std::runtime_error("Cannot connect a phrase with own data");
+    if (!bimodal_)
+        throw std::runtime_error("This phrase is unimodal, use 'connect'");
+
+    data_[0] = pointer_to_data_input;
+    data_[1] = pointer_to_data_output;
+    input_length_ = length;
+    output_length_ = length;
+    trim();
+    empty_ = false;
+}
+
+void xmm::Phrase::connect_input(float* pointer_to_data, unsigned int length) {
+    if (own_memory_)
+        throw std::runtime_error("Cannot connect a phrase with own data");
+    if (!bimodal_)
+        throw std::runtime_error("This phrase is unimodal, use 'connect'");
+
+    data_[0] = pointer_to_data;
+    input_length_ = length;
+    trim();
+    empty_ = false;
+}
+
+void xmm::Phrase::connect_output(float* pointer_to_data, unsigned int length) {
+    if (own_memory_)
+        throw std::runtime_error("Cannot connect a phrase with own data");
+    if (!bimodal_)
+        throw std::runtime_error("This phrase is unimodal, use 'connect'");
+
+    data_[1] = pointer_to_data;
+    output_length_ = length;
+    trim();
+    empty_ = false;
+}
+
+void xmm::Phrase::disconnect() {
+    if (own_memory_)
+        throw std::runtime_error("Cannot disconnect a phrase with own data");
+    data_[0] = NULL;
+    if (bimodal_) data_[1] = NULL;
+    length_ = 0;
+    input_length_ = 0;
+    output_length_ = 0;
+    empty_ = true;
+}
+
+void xmm::Phrase::record(std::vector<float> const& observation) {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot record in shared data phrase");
+    if (bimodal_ && input_length_ != output_length_)
+        throw std::runtime_error(
+            "Cannot record bimodal_ phrase in synchronous mode: modalities "
+            "have different length");
+    if (observation.size() != dimension.get())
+        throw std::invalid_argument("Observation has wrong dimension");
+
+    if (length_ >= max_length_ || max_length_ == 0) {
+        reallocateLength();
+    }
+
+    if (bimodal_) {
+        copy(observation.begin(), observation.begin() + dimension_input.get(),
+             data_[0] + input_length_ * dimension_input.get());
+        copy(observation.begin() + dimension_input.get(),
+             observation.begin() + dimension.get(),
+             data_[1] +
+                 output_length_ * (dimension.get() - dimension_input.get()));
+        input_length_++;
+        output_length_++;
+    } else {
+        copy(observation.begin(), observation.end(),
+             data_[0] + length_ * dimension.get());
+        input_length_++;
+    }
+
+    length_++;
+    empty_ = false;
+}
+
+void xmm::Phrase::record_input(std::vector<float> const& observation) {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot record in shared data phrase");
+    if (!bimodal_)
+        throw std::runtime_error("this phrase is unimodal, use 'record'");
+    if (observation.size() != dimension_input.get())
+        throw std::invalid_argument("Observation has wrong dimension");
+
+    if (input_length_ >= max_length_ || max_length_ == 0) {
+        reallocateLength();
+    }
+
+    copy(observation.begin(), observation.end(),
+         data_[0] + input_length_ * dimension_input.get());
+    input_length_++;
+    trim();
+    empty_ = false;
+}
+
+void xmm::Phrase::record_output(std::vector<float> const& observation) {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot record in shared data phrase");
+    if (!bimodal_)
+        throw std::runtime_error("this phrase is unimodal, use 'record'");
+
+    if (observation.size() != dimension.get() - dimension_input.get())
+        throw std::invalid_argument("Observation has wrong dimension");
+
+    if (output_length_ >= max_length_ || max_length_ == 0) {
+        reallocateLength();
+    }
+
+    copy(observation.begin(), observation.end(),
+         data_[1] + output_length_ * (dimension.get() - dimension_input.get()));
+    output_length_++;
+    trim();
+    empty_ = false;
+}
+
+void xmm::Phrase::clear() {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot clear a shared data phrase");
+
+    length_ = 0;
+    input_length_ = 0;
+    output_length_ = 0;
+    empty_ = true;
+}
+
+void xmm::Phrase::clearInput() {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot clear a shared data phrase");
+    if (!bimodal_) length_ = 0;
+    input_length_ = 0;
+    trim();
+}
+
+void xmm::Phrase::clearOutput() {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot clear a shared data phrase");
+    if (!bimodal_) length_ = 0;
+    output_length_ = 0;
+    trim();
+}
+
+Json::Value xmm::Phrase::toJson() const {
+    Json::Value root;
+    root["bimodal"] = bimodal_;
+    root["dimension"] = static_cast<int>(dimension.get());
+    root["dimension_input"] = static_cast<int>(dimension_input.get());
+    root["length"] = static_cast<int>(length_);
+    root["label"] = label.get();
+    for (int i = 0; i < column_names.size(); i++)
+        root["column_names"][i] = column_names[i];
+    if (bimodal_) {
+        root["data_input"] =
+            array2json(data_[0], length_ * dimension_input.get());
+        root["data_output"] = array2json(
+            data_[1], length_ * (dimension.get() - dimension_input.get()));
+    } else {
+        root["data"] = array2json(data_[0], length_ * dimension.get());
+    }
+    return root;
+}
+
+void xmm::Phrase::fromJson(Json::Value const& root) {
+    try {
+        Phrase tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+std::vector<float> xmm::Phrase::mean() const {
+    std::vector<float> mean(dimension.get());
+    for (unsigned int d = 0; d < dimension.get(); d++) {
+        mean[d] = 0.;
+        for (unsigned int t = 0; t < length_; t++) {
+            mean[d] += getValue(t, d);
+        }
+        mean[d] /= float(length_);
+    }
+    return mean;
+}
+
+std::vector<float> xmm::Phrase::standardDeviation() const {
+    std::vector<float> stddev(dimension.get());
+    std::vector<float> _mean = mean();
+    for (unsigned int d = 0; d < dimension.get(); d++) {
+        stddev[d] = 0.;
+        for (unsigned int t = 0; t < length_; t++) {
+            stddev[d] +=
+                (getValue(t, d) - _mean[d]) * (getValue(t, d) - _mean[d]);
+        }
+        stddev[d] /= float(length_);
+        stddev[d] = sqrtf(stddev[d]);
+    }
+    return stddev;
+}
+
+std::vector<std::pair<float, float>> xmm::Phrase::minmax() const {
+    std::vector<std::pair<float, float>> minmax(
+        dimension.get(), {std::numeric_limits<float>::max(),
+                          std::numeric_limits<float>::lowest()});
+    for (unsigned int d = 0; d < dimension.get(); d++) {
+        for (unsigned int t = 0; t < length_; t++) {
+            minmax[d].first = std::min(getValue(t, d), minmax[d].first);
+            minmax[d].second = std::max(getValue(t, d), minmax[d].second);
+        }
+    }
+    return minmax;
+}
+
+void xmm::Phrase::rescale(std::vector<float> offset, std::vector<float> gain) {
+    for (int t = 0; t < size(); t++) {
+        float* p;
+        if (bimodal_) {
+            p = getPointer_input(t);
+            for (int d = 0; d < dimension_input.get(); d++) {
+                p[d] -= offset[d];
+                p[d] *= gain[d];
+            }
+            p = getPointer_output(t);
+            for (int d = dimension_input.get(); d < dimension.get(); d++) {
+                p[d] -= offset[d];
+                p[d] *= gain[d];
+            }
+        } else {
+            p = getPointer(t);
+            for (int d = 0; d < dimension.get(); d++) {
+                p[d] -= offset[d];
+                p[d] *= gain[d];
+            }
+        }
+    }
+}
+
+void xmm::Phrase::trim() {
+    if (bimodal_) {
+        length_ = std::min(input_length_, output_length_);
+        empty_ = std::max(input_length_, output_length_) == 0;
+    }
+}
+
+void xmm::Phrase::reallocateLength() {
+    unsigned int modality_dim =
+        bimodal_ ? dimension_input.get() : dimension.get();
+    data_[0] =
+        reallocate<float>(data_[0], max_length_ * modality_dim,
+                          (max_length_ + AllocationBlockSize) * modality_dim);
+    if (bimodal_) {
+        modality_dim = dimension.get() - dimension_input.get();
+        data_[1] = reallocate<float>(
+            data_[1], max_length_ * modality_dim,
+            (max_length_ + AllocationBlockSize) * modality_dim);
+    }
+    max_length_ += AllocationBlockSize;
+}
+
+void xmm::Phrase::onAttributeChange(xmm::AttributeBase* attr_pointer) {
+    if (attr_pointer == &dimension || attr_pointer == &dimension_input) {
+        length_ = 0;
+        input_length_ = 0;
+        output_length_ = 0;
+        max_length_ = 0;
+        empty_ = true;
+        if (own_memory_) {
+            delete data_[0];
+        }
+        data_[0] = nullptr;
+        if (bimodal_) {
+            if (own_memory_) {
+                data_[1] = nullptr;
+            }
+            delete data_[1];
+        }
+        column_names.resize(dimension.get());
+    }
+    if (attr_pointer == &dimension)
+        dimension_input.setLimitMax(dimension.get() - 1);
+    if (attr_pointer == &label) {
+        PhraseEvent event(this, PhraseEvent::Type::LabelChanged);
+        events.notifyListeners(event);
+    }
+    attr_pointer->changed = false;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.hpp
new file mode 100644
index 0000000..225c318
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmPhrase.hpp
@@ -0,0 +1,542 @@
+/*
+ * xmmPhrase.hpp
+ *
+ * Multimodal data phrase
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmPhrase_h
+#define xmmPhrase_h
+
+#include "../common/xmmAttribute.hpp"
+#include "../common/xmmEvents.hpp"
+#include "../common/xmmJson.hpp"
+#include <cmath>
+
+namespace xmm {
+/**
+ @defgroup TrainingSet [Core] Training Sets
+ */
+
+/**
+ @ingroup TrainingSet
+ @brief Type of memory management for training sets and phrases
+ */
+enum class MemoryMode {
+    /**
+     @brief memory is owned by the Phrase container.
+     @details Phrases can be recorded directly
+     */
+    OwnMemory,
+
+    /**
+     @brief memory is shared with other data structures
+     @details Phrases can be 'connected' to external data arrays
+     */
+    SharedMemory
+};
+
+/**
+ @ingroup TrainingSet
+ @brief Number of modalities in the data phrase
+ */
+enum class Multimodality {
+    /**
+     @brief single modality (i.e. 1 data array)
+     @details can be used for recognition
+     */
+    Unimodal,
+
+    /**
+     @brief two modalities (i.e. 2 data arrays)
+     @details can be used for regression (input/output)
+     */
+    Bimodal
+};
+
+class Phrase;
+
+/**
+ @ingroup TrainingSet
+ @brief Event that can be thrown by a phrase to a training set
+ */
+class PhraseEvent {
+  public:
+    /**
+     @brief Type of event
+     */
+    enum class Type {
+        /**
+         @brief Thrown when the label if the phrase is modified.
+         */
+        LabelChanged,
+    };
+
+    /**
+     @brief Default constructor
+     @param phrase_ pointer to the source phrase
+     @param type_ type of event
+     */
+    PhraseEvent(Phrase* phrase_, Type type_) : phrase(phrase_), type(type_) {}
+
+    /**
+     @brief Copy constructor
+     @param src source event
+     */
+    PhraseEvent(PhraseEvent const& src) : phrase(src.phrase), type(src.type) {}
+
+    /**
+     @brief pointer to the source phrase
+     */
+    Phrase* phrase;
+
+    /**
+     @brief Type of event
+     */
+    Type type;
+};
+
+/**
+ @ingroup TrainingSet
+ @brief Data phrase
+ @details The Phrase class can be used to store unimodal and Bimodal data
+ phrases.
+ It can have an autonomous memory, or this memory can be shared with another
+ data
+ container. These attributes are specified at construction.
+ */
+class Phrase : public Writable {
+  public:
+    friend class TrainingSet;
+
+    /**
+     @brief Constructor
+     @param memoryMode Memory mode (owned vs shared)
+     @param multimodality Number of modalities
+     */
+    Phrase(MemoryMode memoryMode = MemoryMode::OwnMemory,
+           Multimodality multimodality = Multimodality::Unimodal);
+
+    /**
+     @brief Copy Constructor
+     @param src source Phrase
+     */
+    Phrase(Phrase const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit Phrase(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src source Phrase
+     */
+    Phrase& operator=(Phrase const& src);
+
+    /**
+     @brief Destructor.
+     @details Data is only deleted if the memory is owned (construction with
+     MemoryMode::OwnMemory)
+     */
+    virtual ~Phrase();
+
+    /** @name Accessors */
+    ///@{
+
+    /**
+     @brief checks if the training set is owns the data
+     @return true if the training set owns data (construction with
+     MemoryMode::OwnMemory)
+     */
+    bool ownMemory() const;
+
+    /**
+     @brief checks if the training set is bimodal
+     @return true if the training set is bimodal (construction with
+     Multimodality::Bimodal)
+     */
+    bool bimodal() const;
+
+    ///@}
+
+    /** @name Access Data */
+    ///@{
+
+    /**
+     @brief get the number of frames in the phrase
+     @return the number of frames in the phrase
+     */
+    unsigned int size() const;
+
+    /**
+     @brief get the number of frames in the input array of the phrase
+     @return the number of frames in the input array of the phrase
+     */
+    unsigned int inputSize() const;
+
+    /**
+     @brief get the number of frames in the output array of the phrase
+     @return the number of frames in the output array of the phrase
+     */
+    unsigned int outputSize() const;
+
+    /**
+     @brief check if the phrase is empty
+     @return true if the phrase is empty (length 0)
+     */
+    bool empty() const;
+
+    /**
+     @brief Access data at a given time index and dimension.
+     @param index time index
+     @param dim dimension considered, indexed from 0 to the total dimension of
+     the data across modalities
+     @throws out_of_range if time index or dimension are out of bounds
+     */
+    float getValue(unsigned int index, unsigned int dim) const;
+
+    /**
+     @brief Get pointer to the data at a given time index
+     @param index time index
+     @warning  this method can be used only for unimodal phrases (construction
+     with Multimodality::Unimodal)
+     @throws out_of_range if time index is out of bounds
+     @throws runtime_error if the phrase is bimodal (construction with
+     Multimodality::Bimodal)
+     @return pointer to the data array of the modality, for the given time index
+     */
+    float* getPointer(unsigned int index) const;
+
+    /**
+     @brief Get pointer to the data at a given time index for the input modality
+     @warning  this method can be used only for bimodal phrases (construction
+     with Multimodality::Bimodal)
+     @param index time index
+     @throws out_of_range if time index is out of bounds
+     @throws runtime_error if the phrase is unimodal (construction with
+     Multimodality::Unimodal)
+     @return pointer to the data array of the modality, for the given time index
+     */
+    float* getPointer_input(unsigned int index) const;
+
+    /**
+     @brief Get pointer to the data at a given time index for the output
+     modality
+     @warning  this method can be used only for bimodal phrases (construction
+     with Multimodality::Bimodal)
+     @param index time index
+     @throws out_of_range if time index is out of bounds
+     @throws runtime_error if the phrase is unimodal (construction with
+     Multimodality::Unimodal)
+     @return pointer to the data array of the modality, for the given time index
+     */
+    float* getPointer_output(unsigned int index) const;
+
+    ///@}
+
+    /** @name Connect (MemoryMode = SharedData) */
+    ///@{
+
+    /**
+     @brief Connect a unimodal phrase to a shared container
+     @warning This method is only usable in Shared Memory (construction with
+     MemoryMode::SharedMemory)
+     @param pointer_to_data pointer to the data array
+     @param length length of the data array
+     @throws runtime_error if data is owned (construction with
+     MemoryMode::OwnMemory flag)
+     */
+    void connect(float* pointer_to_data, unsigned int length);
+
+    /**
+     @brief Connect a Bimodal phrase to a shared container
+     @warning This method is only usable in Shared Memory (construction with
+     MemoryMode::SharedMemory)
+     @param pointer_to_data_input pointer to the data array of the input
+     modality
+     @param pointer_to_data_output pointer to the data array of the output
+     modality
+     @param length length of the data array
+     @throws runtime_error if data is owned (construction with
+     MemoryMode::OwnMemory flag)
+     */
+    void connect(float* pointer_to_data_input, float* pointer_to_data_output,
+                 unsigned int length);
+
+    /**
+     @brief Connect a Bimodal phrase to a shared container for the input
+     modality
+     @warning This method is only usable in Shared Memory (construction with
+     MemoryMode::SharedMemory)
+     @param pointer_to_data pointer to the data array of the input modality
+     @param length length of the data array
+     @throws runtime_error if data is owned (construction with
+     MemoryMode::OwnMemory flag)
+     */
+    void connect_input(float* pointer_to_data, unsigned int length);
+
+    /**
+     @brief Connect a Bimodal phrase to a shared container for the output
+     modality
+     @warning This method is only usable in Shared Memory (construction with
+     MemoryMode::SharedMemory)
+     @param pointer_to_data pointer to the data array of the output modality
+     @param length length of the data array
+     @throws runtime_error if data is owned (construction with
+     MemoryMode::OwnMemory flag)
+     */
+    void connect_output(float* pointer_to_data, unsigned int length);
+
+    /**
+     @brief Disconnect a phrase from a shared container
+     @warning This method is only usable in Shared Memory (construction with
+     MemoryMode::SharedMemory)
+     @throws runtime_error if data is owned (construction with
+     MemoryMode::OwnMemory flag)
+     */
+    void disconnect();
+
+    ///@}
+
+    /** @name Record (MemoryMode = OwnData) */
+    ///@{
+
+    /**
+     @brief Record observation
+     @details Appends the observation vector observation to the data array.\n
+     This method is only usable in Own Memory (construction with
+     MemoryMode::OwnMemory)
+     @param observation observation vector (C-like array which must have the
+     size of the total
+     dimension of the data across all modalities)
+     @throws runtime_error if data is shared (construction with
+     MemoryMode::SharedMemory flag)
+     */
+    void record(std::vector<float> const& observation);
+
+    /**
+     @brief Record observation on input modality
+     Appends the observation vector observation to the data array\n
+     This method is only usable in Own Memory (construction with
+     MemoryMode::OwnMemory)
+     @param observation observation vector (C-like array which must have the
+     size of the total
+     dimension of the data across all modalities)
+     @throws runtime_error if data is shared (construction with
+     MemoryMode::SharedMemory flag)
+     */
+    void record_input(std::vector<float> const& observation);
+
+    /**
+     @brief Record observation on output modality
+     Appends the observation vector observation to the data array\n
+     This method is only usable in Own Memory (construction with
+     MemoryMode::OwnMemory)
+     @param observation observation vector (C-like array which must have the
+     size of the total
+     dimension of the data across all modalities)
+     @throws runtime_error if data is shared (construction with
+     MemoryMode::SharedMemory flag)
+     */
+    void record_output(std::vector<float> const& observation);
+
+    /**
+     @brief Reset length of the phrase to 0 ==> empty phrase\n
+     This method is only usable in Own Memory (construction with
+     MemoryMode::OwnMemory)
+     @throws runtime_error if data is shared (construction with
+     MemoryMode::SharedMemory flag)
+     @warning the memory is not released (only done in destructor).
+     */
+    void clear();
+    void clearInput();
+    void clearOutput();
+
+    ///@}
+
+    /** @name JSON I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /** @name Utilities */
+    ///@{
+
+    /**
+     @brief Compute the mean of the data phrase along the time axis
+     @return mean of the phrase (along time axis, full-size)
+     */
+    std::vector<float> mean() const;
+
+    /**
+     @brief Compute the standard deviation of the data phrase along the time
+     axis
+     @return standard deviation of the phrase (along time axis, full-size)
+     */
+    std::vector<float> standardDeviation() const;
+
+    /**
+     @brief Compute the global min/max of the data phrase along the time axis
+     @return vector of min/max pairs ofthe phrases (along time axis, full-size)
+     */
+    std::vector<std::pair<float, float>> minmax() const;
+
+    /**
+     @brief rescale a phrase given an offset and gain
+     @param offset constant offset to be subtracted
+     @param gain gain to be applied
+     */
+    void rescale(std::vector<float> offset, std::vector<float> gain);
+
+    ///@}
+
+    /**
+     @brief Total dimension of the phrase
+     */
+    Attribute<unsigned int> dimension;
+
+    /**
+     @brief Used in bimodal mode: dimension of the input modality.
+     */
+    Attribute<unsigned int> dimension_input;
+
+    /**
+     @brief Main label of the phrase
+     */
+    Attribute<std::string> label;
+
+    /**
+     @brief labels of the columns of the phrase (e.g. descriptor names)
+     */
+    std::vector<std::string> column_names;
+
+  protected:
+    /**
+     @brief trim phrase to minimal length of modalities
+     */
+    void trim();
+
+    /**
+     @brief Memory Allocation
+     @details used record mode (no SHARED_MEMORY flag), the data vector is
+     reallocated
+     with a block size ALLOC_BLOCKSIZE
+     */
+    void reallocateLength();
+
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+
+    static const unsigned int AllocationBlockSize = 256;
+
+    /**
+     @brief Defines if the phrase stores the data itself.
+     */
+    bool own_memory_;
+
+    /**
+     @brief Defines if the phrase is bimodal (true) or unimodal (false)
+     */
+    bool bimodal_;
+
+    /**
+     @brief true if the phrase does not contain any data
+     */
+    bool empty_;
+
+    /**
+     @brief Length of the phrase. If bimodal, it is the minimal length between
+     modalities
+     */
+    unsigned int length_;
+
+    /**
+     @brief Length of the array of the input modality
+     */
+    unsigned int input_length_;
+
+    /**
+     @brief Length of the array of the output modality
+     */
+    unsigned int output_length_;
+
+    /**
+     @brief Allocated length (only used in own memory mode)
+     */
+    unsigned int max_length_;
+
+    /**
+     @brief Pointer to the Data arrays
+     @details data has a size 1 in unimodal mode, 2 in bimodal mode.
+     */
+    float** data_;
+
+    EventGenerator<PhraseEvent> events;
+};
+
+/**
+ @brief Reallocate a C-like array (using c++ std::copy)
+ @param src source array
+ @param dim_src initial dimension
+ @param dim_dst target dimension
+ @return resized array (content is conserved)
+ */
+template <typename T>
+T* reallocate(T* src, unsigned int dim_src, unsigned int dim_dst) {
+    T* dst = new T[dim_dst];
+
+    if (!src) return dst;
+
+    if (dim_dst > dim_src) {
+        std::copy(src, src + dim_src, dst);
+    } else {
+        std::copy(src, src + dim_dst, dst);
+    }
+    delete[] src;
+    return dst;
+}
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.cpp
new file mode 100644
index 0000000..0099ea4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.cpp
@@ -0,0 +1,436 @@
+/*
+ * xmmTrainingSet.cpp
+ *
+ * Multimodal Training Set
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include "xmmTrainingSet.hpp"
+#include <limits>
+#include <algorithm>
+
+xmm::TrainingSet::TrainingSet(MemoryMode memoryMode,
+                              Multimodality multimodality)
+    : own_memory_(memoryMode == MemoryMode::OwnMemory),
+      bimodal_(multimodality == Multimodality::Bimodal) {
+    dimension.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+    dimension_input.onAttributeChange(this,
+                                      &xmm::TrainingSet::onAttributeChange);
+    column_names.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+
+    dimension.setLimitMin((bimodal_) ? 2 : 1);
+    dimension.set((bimodal_) ? 2 : 1, true);
+    dimension_input.setLimits((bimodal_) ? 1 : 0, (bimodal_) ? 2 : 0);
+    dimension_input.set((bimodal_) ? 1 : 0, true);
+    column_names.resize(dimension.get());
+}
+
+xmm::TrainingSet::TrainingSet(TrainingSet const &src)
+    : dimension(src.dimension),
+      dimension_input(src.dimension_input),
+      column_names(src.column_names),
+      own_memory_(src.own_memory_),
+      bimodal_(src.bimodal_),
+      labels_(src.labels_),
+      phrases_(src.phrases_) {
+    dimension.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+    dimension_input.onAttributeChange(this,
+                                      &xmm::TrainingSet::onAttributeChange);
+    column_names.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+    for (auto phrase : src.phrases_) {
+        phrases_.insert(std::pair<int, std::shared_ptr<xmm::Phrase>>(
+            phrase.first, std::make_shared<Phrase>(*phrase.second)));
+        phrases_[phrase.first]->events.addListener(
+            this, &xmm::TrainingSet::onPhraseEvent);
+    }
+    update();
+}
+
+xmm::TrainingSet::TrainingSet(Json::Value const &root)
+    : own_memory_(true), bimodal_(false) {
+    if (!own_memory_)
+        throw std::runtime_error("Cannot read Training Set with Shared memory");
+
+    dimension.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+    dimension_input.onAttributeChange(this,
+                                      &xmm::TrainingSet::onAttributeChange);
+    column_names.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+
+    bimodal_ = root.get("bimodal", false).asBool();
+
+    dimension.setLimitMin((bimodal_) ? 2 : 1);
+    dimension_input.setLimits((bimodal_) ? 1 : 0, (bimodal_) ? 2 : 0);
+    dimension.set(root.get("dimension", bimodal_ ? 2 : 1).asInt());
+    dimension_input.set(root.get("dimension_input", bimodal_ ? 1 : 0).asInt());
+    std::vector<std::string> tmpColNames(dimension.get());
+    for (int i = 0; i < root["column_names"].size(); i++) {
+        tmpColNames[i] = root["column_names"].get(i, "").asString();
+    }
+    column_names.set(tmpColNames);
+
+    // Get Phrases
+    phrases_.clear();
+    for (auto p : root["phrases"]) {
+        phrases_.insert(std::pair<int, std::shared_ptr<xmm::Phrase>>(
+            p["index"].asInt(), std::make_shared<Phrase>(p)));
+        phrases_[p["index"].asInt()]->events.addListener(
+            this, &xmm::TrainingSet::onPhraseEvent);
+    }
+    update();
+}
+
+xmm::TrainingSet &xmm::TrainingSet::operator=(TrainingSet const &src) {
+    if (this != &src) {
+        clear();
+        own_memory_ = src.own_memory_;
+        bimodal_ = src.bimodal_;
+        dimension = src.dimension;
+        dimension_input = src.dimension_input;
+        column_names = src.column_names;
+        labels_ = src.labels_;
+        dimension.onAttributeChange(this, &xmm::TrainingSet::onAttributeChange);
+        dimension_input.onAttributeChange(this,
+                                          &xmm::TrainingSet::onAttributeChange);
+        column_names.onAttributeChange(this,
+                                       &xmm::TrainingSet::onAttributeChange);
+        for (auto phrase : src.phrases_) {
+            phrases_.insert(std::pair<int, std::shared_ptr<xmm::Phrase>>(
+                phrase.first, std::make_shared<Phrase>(*phrase.second)));
+            phrases_[phrase.first]->events.addListener(
+                this, &xmm::TrainingSet::onPhraseEvent);
+        }
+        update();
+    }
+    return *this;
+}
+
+xmm::TrainingSet::~TrainingSet() {}
+
+bool xmm::TrainingSet::ownMemory() const { return own_memory_; }
+
+bool xmm::TrainingSet::bimodal() const { return bimodal_; }
+
+bool xmm::TrainingSet::empty() const { return phrases_.empty(); }
+
+unsigned int xmm::TrainingSet::size() const {
+    return static_cast<unsigned int>(phrases_.size());
+}
+
+void xmm::TrainingSet::onAttributeChange(xmm::AttributeBase *attr_pointer) {
+    if (attr_pointer == &dimension) {
+        for (auto &phrase : phrases_) {
+            phrase.second->dimension.set(dimension.get());
+        }
+        for (std::map<std::string, TrainingSet>::iterator it =
+                 sub_training_sets_.begin();
+             it != sub_training_sets_.end(); ++it)
+            it->second.dimension.set(dimension.get(), true);
+
+        column_names.resize(dimension.get());
+        dimension_input.setLimitMax(dimension.get() - 1);
+    }
+    if (attr_pointer == &dimension_input) {
+        for (auto &phrase : phrases_) {
+            phrase.second->dimension_input.set(dimension_input.get());
+        }
+        for (std::map<std::string, TrainingSet>::iterator it =
+                 sub_training_sets_.begin();
+             it != sub_training_sets_.end(); ++it)
+            it->second.dimension_input.set(dimension_input.get(), true);
+    }
+    if (attr_pointer == &column_names) {
+        for (auto &phrase : phrases_) {
+            phrase.second->column_names = column_names.get();
+        }
+
+        for (std::map<std::string, TrainingSet>::iterator it =
+                 sub_training_sets_.begin();
+             it != sub_training_sets_.end(); ++it)
+            it->second.column_names.set(column_names.get(), true);
+    }
+    attr_pointer->changed = false;
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::iterator
+xmm::TrainingSet::begin() {
+    return phrases_.begin();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::iterator xmm::TrainingSet::end() {
+    return phrases_.end();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::reverse_iterator
+xmm::TrainingSet::rbegin() {
+    return phrases_.rbegin();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::reverse_iterator
+xmm::TrainingSet::rend() {
+    return phrases_.rend();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::const_iterator
+xmm::TrainingSet::cbegin() const {
+    return phrases_.cbegin();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::const_iterator
+xmm::TrainingSet::cend() const {
+    return phrases_.cend();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::const_reverse_iterator
+xmm::TrainingSet::crbegin() const {
+    return phrases_.crbegin();
+}
+
+std::map<int, std::shared_ptr<xmm::Phrase>>::const_reverse_iterator
+xmm::TrainingSet::crend() const {
+    return phrases_.crend();
+}
+
+std::shared_ptr<xmm::Phrase> xmm::TrainingSet::getPhrase(int n) const {
+    if (phrases_.count(n) == 0) return nullptr;
+    return phrases_.at(n);
+}
+
+void xmm::TrainingSet::addPhrase(int phraseIndex, std::string label) {
+    phrases_[phraseIndex] = std::make_shared<Phrase>(
+        own_memory_ ? MemoryMode::OwnMemory : MemoryMode::SharedMemory,
+        bimodal_ ? Multimodality::Bimodal : Multimodality::Unimodal);
+    phrases_[phraseIndex]->events.addListener(this,
+                                              &xmm::TrainingSet::onPhraseEvent);
+    phrases_[phraseIndex]->dimension.set(dimension.get());
+    phrases_[phraseIndex]->dimension_input.set(dimension_input.get());
+    phrases_[phraseIndex]->column_names = this->column_names.get();
+    phrases_[phraseIndex]->label.set(label, true);
+    update();
+}
+
+void xmm::TrainingSet::addPhrase(int phraseIndex, Phrase const &phrase) {
+    phrases_[phraseIndex] = std::make_shared<Phrase>(phrase);
+    phrases_[phraseIndex]->events.removeListeners();
+    phrases_[phraseIndex]->events.addListener(this,
+                                              &xmm::TrainingSet::onPhraseEvent);
+    update();
+}
+
+void xmm::TrainingSet::addPhrase(int phraseIndex,
+                                 std::shared_ptr<Phrase> phrase) {
+    phrases_[phraseIndex] = phrase;
+    phrases_[phraseIndex]->events.addListener(this,
+                                              &xmm::TrainingSet::onPhraseEvent);
+    update();
+}
+
+void xmm::TrainingSet::removePhrase(int phraseIndex) {
+    phrases_.erase(phraseIndex);
+    update();
+}
+
+void xmm::TrainingSet::removePhrasesOfClass(std::string const &label) {
+    bool contLoop(true);
+    while (contLoop) {
+        contLoop = false;
+        for (auto &phrase : phrases_) {
+            if (phrase.second->label.get() == label) {
+                removePhrase(phrase.first);
+                contLoop = true;
+                break;
+            }
+        }
+    }
+    update();
+}
+
+void xmm::TrainingSet::clear() {
+    sub_training_sets_.clear();
+    phrases_.clear();
+    labels_.clear();
+}
+
+xmm::TrainingSet *xmm::TrainingSet::getPhrasesOfClass(
+    std::string const &label) {
+    std::map<std::string, TrainingSet>::iterator it =
+        sub_training_sets_.find(label);
+    if (it == sub_training_sets_.end()) return nullptr;
+    return &(it->second);
+}
+
+void xmm::TrainingSet::onPhraseEvent(PhraseEvent const &e) {
+    if (e.type == PhraseEvent::Type::LabelChanged) {
+        update();
+    }
+}
+
+void xmm::TrainingSet::update() {
+    labels_.clear();
+    for (auto &phrase : phrases_) {
+        labels_.insert(phrase.second->label.get());
+    }
+    sub_training_sets_.clear();
+    for (std::string label : labels_) {
+        sub_training_sets_.insert(std::pair<std::string, TrainingSet>(
+            label,
+            {own_memory_ ? MemoryMode::OwnMemory : MemoryMode::SharedMemory,
+             bimodal_ ? Multimodality::Bimodal : Multimodality::Unimodal}));
+        sub_training_sets_[label].dimension.set(dimension.get());
+        sub_training_sets_[label].dimension_input.set(dimension_input.get());
+        sub_training_sets_[label].column_names = this->column_names;
+        // int newPhraseIndex(0);
+        for (auto &phrase : phrases_) {
+            if (phrase.second->label.get() == label) {
+                sub_training_sets_[label].phrases_[phrase.first] =
+                    this->phrases_[phrase.first];
+                //                newPhraseIndex++;
+            }
+        }
+    }
+}
+
+std::vector<float> xmm::TrainingSet::mean() const {
+    std::vector<float> mean(dimension.get(), 0.0);
+    unsigned int total_length(0);
+    for (auto &phrase : phrases_) {
+        for (unsigned int d = 0; d < dimension.get(); d++) {
+            for (unsigned int t = 0; t < phrase.second->size(); t++) {
+                mean[d] += phrase.second->getValue(t, d);
+            }
+        }
+        total_length += phrase.second->size();
+    }
+
+    for (unsigned int d = 0; d < dimension.get(); d++)
+        mean[d] /= float(total_length);
+
+    return mean;
+}
+
+std::vector<float> xmm::TrainingSet::standardDeviation() const {
+    std::vector<float> stddev(dimension.get());
+    std::vector<float> _mean = mean();
+    unsigned int total_length(0);
+    for (auto &phrase : phrases_) {
+        for (unsigned int d = 0; d < dimension.get(); d++) {
+            for (unsigned int t = 0; t < phrase.second->size(); t++) {
+                stddev[d] += (phrase.second->getValue(t, d) - _mean[d]) *
+                             (phrase.second->getValue(t, d) - _mean[d]);
+            }
+        }
+        total_length += phrase.second->size();
+    }
+
+    for (unsigned int d = 0; d < dimension.get(); d++) {
+        stddev[d] /= float(total_length);
+        stddev[d] = sqrtf(stddev[d]);
+    }
+
+    return stddev;
+}
+
+std::vector<std::pair<float, float>> xmm::TrainingSet::minmax() const {
+    std::vector<std::pair<float, float>> minmax(
+        dimension.get(), {std::numeric_limits<float>::max(),
+                          std::numeric_limits<float>::lowest()});
+    if (bimodal_) {
+        for (auto &phrase : phrases_) {
+            for (unsigned int d = 0; d < dimension_input.get(); d++) {
+                for (unsigned int t = 0; t < phrase.second->inputSize(); t++) {
+                    minmax[d].first = std::min(phrase.second->getValue(t, d),
+                                               minmax[d].first);
+                    minmax[d].second = std::max(phrase.second->getValue(t, d),
+                                                minmax[d].second);
+                }
+            }
+            for (unsigned int d = dimension_input.get(); d < dimension.get();
+                 d++) {
+                for (unsigned int t = 0; t < phrase.second->outputSize(); t++) {
+                    minmax[d].first = std::min(phrase.second->getValue(t, d),
+                                               minmax[d].first);
+                    minmax[d].second = std::max(phrase.second->getValue(t, d),
+                                                minmax[d].second);
+                }
+            }
+        }
+    } else {
+        for (auto &phrase : phrases_) {
+            for (unsigned int d = 0; d < dimension.get(); d++) {
+                for (unsigned int t = 0; t < phrase.second->size(); t++) {
+                    minmax[d].first = std::min(phrase.second->getValue(t, d),
+                                               minmax[d].first);
+                    minmax[d].second = std::max(phrase.second->getValue(t, d),
+                                                minmax[d].second);
+                }
+            }
+        }
+    }
+    return minmax;
+}
+
+void xmm::TrainingSet::rescale(std::vector<float> offset,
+                               std::vector<float> gain) {
+    for (auto &phrase : phrases_) {
+        phrase.second->rescale(offset, gain);
+    }
+}
+
+void xmm::TrainingSet::normalize() {
+    std::vector<float> offset = mean();
+    std::vector<float> gain = standardDeviation();
+    for (auto &v : gain) v = 1. / v;
+    rescale(offset, gain);
+}
+
+Json::Value xmm::TrainingSet::toJson() const {
+    Json::Value root;
+    root["bimodal"] = bimodal_;
+    root["dimension"] = static_cast<int>(dimension.get());
+    root["dimension_input"] = static_cast<int>(dimension_input.get());
+    for (int i = 0; i < dimension.get(); i++)
+        root["column_names"][i] = column_names.at(i);
+
+    // Add Phrases
+    root["phrases"].resize(static_cast<Json::ArrayIndex>(size()));
+    Json::ArrayIndex phraseIndex(0);
+    for (auto &phrase : phrases_) {
+        root["phrases"][phraseIndex] = phrase.second->toJson();
+        root["phrases"][phraseIndex]["index"] = phrase.first;
+        phraseIndex++;
+    }
+
+    return root;
+}
+
+void xmm::TrainingSet::fromJson(Json::Value const &root) {
+    try {
+        TrainingSet tmp(root);
+        *this = tmp;
+    } catch (JsonException &e) {
+        throw e;
+    }
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.hpp
new file mode 100644
index 0000000..6fa03c6
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/core/trainingset/xmmTrainingSet.hpp
@@ -0,0 +1,357 @@
+/*
+ * xmmTrainingSet.hpp
+ *
+ * Multimodal Training Set
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmTrainingSet_h
+#define xmmTrainingSet_h
+
+#include "xmmPhrase.hpp"
+#include <map>
+#include <set>
+#include <memory>
+
+namespace xmm {
+/**
+ @ingroup TrainingSet
+ @brief Base class for the definition of training sets
+ @details Training sets host a collection of phrases
+ */
+class TrainingSet : public Writable {
+  public:
+    /**
+     @brief Constructor
+     @param memoryMode Memory mode (owned vs shared)
+     @param multimodality Number of modalities
+     */
+    TrainingSet(MemoryMode memoryMode = MemoryMode::OwnMemory,
+                Multimodality multimodality = Multimodality::Unimodal);
+
+    /**
+     @brief Copy Constructor
+     @param src source Training Set
+     */
+    TrainingSet(TrainingSet const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit TrainingSet(Json::Value const& root);
+
+    /**
+     @brief Assignment Operator
+     @param src source Training Set
+     */
+    TrainingSet& operator=(TrainingSet const& src);
+
+    /**
+     @brief Destructor
+     @warning phrases are only deleted if the training set is unlocked
+     @see lock()
+     */
+    virtual ~TrainingSet();
+
+    /** @name Accessors */
+    ///@{
+
+    /**
+     @brief checks if the training set is owns the data
+     @return true if the training set owns data (construction with
+     MemoryMode::OwnMemory)
+     */
+    bool ownMemory() const;
+
+    /**
+     @brief checks if the training set is bimodal
+     @return true if the training set is bimodal (construction with
+     Multimodality::Bimodal)
+     */
+    bool bimodal() const;
+
+    ///@}
+
+    /** @name Manipulate Phrases */
+    ///@{
+
+    /**
+     @brief checks if the training set is empty
+     @return true if the training set is empty (no training phrases)
+     */
+    bool empty() const;
+
+    /**
+     @brief Size of the training set
+     @return size of the training set (number of phrases)
+     */
+    unsigned int size() const;
+
+    /**
+     @brief iterator to the beginning of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::iterator begin();
+
+    /**
+     @brief iterator to the end of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::iterator end();
+
+    /**
+     @brief reverse iterator to the beginning of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::reverse_iterator rbegin();
+
+    /**
+     @brief reverse iterator to the end of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::reverse_iterator rend();
+
+    /**
+     @brief constant iterator to the beginning of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::const_iterator cbegin() const;
+
+    /**
+     @brief constant iterator to the end of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::const_iterator cend() const;
+
+    /**
+     @brief constant reverse iterator to the beginning of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::const_reverse_iterator
+    crbegin() const;
+
+    /**
+     @brief constant reverse iterator to the end of phrases
+     */
+    std::map<int, std::shared_ptr<xmm::Phrase>>::const_reverse_iterator crend()
+        const;
+
+    /**
+     @brief add a new phrase, or reset the phrase if existing
+     @details The phrase is set to an empty phrase with the current attributes
+     (dimensions, etc).
+     The phrase is created if it does not exists at the given index.
+     @param phraseIndex index of the data phrase in the trainingSet
+     @param label Label of the phrase
+     */
+    void addPhrase(int phraseIndex, std::string label = "");
+
+    /**
+     @brief add a new phrase, or reset the phrase if existing
+     @details The phrase is set to a copy of the phrase passed in argument
+     The phrase is created if it does not exists at the given index.
+     @param phraseIndex index of the data phrase in the trainingSet
+     @param phrase source phrase
+     */
+    void addPhrase(int phraseIndex, Phrase const& phrase);
+
+    /**
+     @brief add a new phrase, or reset the phrase if existing
+     @details The phrase is set to point to the existing phrase passed in
+     argument.
+     The phrase is created if it does not exists at the given index.
+     @param phraseIndex index of the data phrase in the trainingSet
+     @param phrase pointer to an existing phrase
+     */
+    void addPhrase(int phraseIndex, std::shared_ptr<Phrase> phrase);
+
+    /**
+     @brief delete a phrase
+     @warning if the training set is locked, the phrase iself is not deleted
+     (only the reference)
+     @param phraseIndex index of the phrase
+     @throws out_of_bounds if the phrase does not exist
+     */
+    void removePhrase(int phraseIndex);
+
+    /**
+     @brief delete all phrases of a given class
+     @warning if the training set is locked, the phrases themselves are not
+     deleted (only the references)
+     @param label label of the class to delete
+     @throws out_of_bounds if the label does not exist
+     */
+    void removePhrasesOfClass(std::string const& label);
+
+    /**
+     @brief Access Phrase by index
+     @param phraseIndex index of the phrase
+     @return pointer to the phrase if it exists, else nullptr
+     */
+    std::shared_ptr<xmm::Phrase> getPhrase(int phraseIndex) const;
+
+    /**
+     @brief get the pointer to the sub-training set containing all phrases with
+     a given label
+     @warning in order to protect the phrases in the current training set, the
+     sub-training set returned is locked
+     @param label target label
+     @return pointer to the sub-training set containing all phrases with a given
+     label
+     @throws out_of_range if the label does not exist
+     */
+    TrainingSet* getPhrasesOfClass(std::string const& label);
+
+    /**
+     @brief delete all phrases
+     @warning if the training set is locked, the phrases themselves are not
+     deleted (only their references)
+     */
+    void clear();
+
+    /**
+     @brief get the list of labels currently in the training set
+     @return reference to the set of labels in the training set
+     */
+    const std::set<std::string>& labels() const { return labels_; }
+
+    ///@}
+
+    /** @name JSON I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /** @name Utilities */
+    ///@{
+
+    /**
+     @brief Compute the global mean of all data phrases along the time axis
+     @return global mean of all phrases (along time axis, full-size)
+     */
+    std::vector<float> mean() const;
+
+    /**
+     @brief Compute the global standard deviation of all data phrases along the
+     time axis
+     @return global standard deviation of all phrases (along time axis,
+     full-size)
+     */
+    std::vector<float> standardDeviation() const;
+
+    /**
+     @brief Compute the global min/max of all data phrases along the time axis
+     @return vector of min/max pairs across all phrases (along time axis,
+     full-size)
+     */
+    std::vector<std::pair<float, float>> minmax() const;
+
+    /**
+     @brief rescale a phrase given an offset and gain
+     @param offset constant offset to be subtracted
+     @param gain gain to be applied
+     */
+    void rescale(std::vector<float> offset, std::vector<float> gain);
+
+    /**
+     @brief normalize the training set by rescaling all phrases to the mean/std
+     of the whole training set
+     */
+    void normalize();
+
+    ///@}
+
+    /**
+     @brief total dimension of the training data
+     */
+    Attribute<unsigned int> dimension;
+
+    /**
+     @brief dimension of the input modality in bimodal mode
+     */
+    Attribute<unsigned int> dimension_input;
+
+    /**
+     @brief labels of the columns of the training set (e.g. descriptor names)
+     */
+    Attribute<std::vector<std::string>> column_names;
+
+  protected:
+    /**
+     @brief Monitors the training of each Model of the group.
+     */
+    void onPhraseEvent(PhraseEvent const& e);
+
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+
+    /**
+     @brief create all the sub-training sets: one for each label
+     @details each subset contains only the phrase for the given label
+     */
+    virtual void update();
+
+    /**
+     @brief defines if the phrase has its own memory
+     */
+    bool own_memory_;
+
+    /**
+     @brief defines if the phrase is bimodal
+     */
+    bool bimodal_;
+
+    /**
+     @brief Set containing all the labels present in the training set
+     */
+    std::set<std::string> labels_;
+
+    /**
+     @brief Training Phrases
+     @details Phrases are stored in a map: allows the easy addition/deletion of
+     phrases by index.
+     */
+    std::map<int, std::shared_ptr<Phrase>> phrases_;
+
+    /**
+     @brief Sub-ensembles of the training set for specific classes
+     */
+    std::map<std::string, TrainingSet> sub_training_sets_;
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.cpp
new file mode 100644
index 0000000..67c69dc
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.cpp
@@ -0,0 +1,271 @@
+/*
+ * xmmGmm.hpp
+ *
+ * Gaussian Mixture Model for Continuous Recognition and Regression
+ * (Multi-class)
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmGmm.hpp"
+#include "../kmeans/xmmKMeans.hpp"
+
+xmm::GMM::GMM(bool bimodal) : Model<SingleClassGMM, GMM>(bimodal) {}
+
+xmm::GMM::GMM(GMM const& src)
+    : Model<SingleClassGMM, GMM>(src), results(src.results) {}
+
+xmm::GMM::GMM(Json::Value const& root) : Model<SingleClassGMM, GMM>(root) {}
+
+xmm::GMM& xmm::GMM::operator=(GMM const& src) {
+    if (this != &src) {
+        Model<SingleClassGMM, GMM>::operator=(src);
+        results = src.results;
+    }
+    return *this;
+}
+
+void xmm::GMM::updateResults() {
+    double maxLogLikelihood = 0.0;
+    double normconst_instant(0.0);
+    double normconst_smoothed(0.0);
+    int i(0);
+    for (auto it = this->models.begin(); it != this->models.end(); ++it, ++i) {
+        results.instant_likelihoods[i] = it->second.results.instant_likelihood;
+        results.smoothed_log_likelihoods[i] = it->second.results.log_likelihood;
+        results.smoothed_likelihoods[i] =
+            exp(results.smoothed_log_likelihoods[i]);
+
+        results.instant_normalized_likelihoods[i] =
+            results.instant_likelihoods[i];
+        results.smoothed_normalized_likelihoods[i] =
+            results.smoothed_likelihoods[i];
+
+        normconst_instant += results.instant_normalized_likelihoods[i];
+        normconst_smoothed += results.smoothed_normalized_likelihoods[i];
+
+        if (i == 0 || results.smoothed_log_likelihoods[i] > maxLogLikelihood) {
+            maxLogLikelihood = results.smoothed_log_likelihoods[i];
+            results.likeliest = it->first;
+        }
+    }
+
+    i = 0;
+    for (auto it = this->models.begin(); it != this->models.end(); ++it, ++i) {
+        results.instant_normalized_likelihoods[i] /= normconst_instant;
+        results.smoothed_normalized_likelihoods[i] /= normconst_smoothed;
+    }
+}
+
+#pragma mark -
+#pragma mark Performance
+void xmm::GMM::reset() {
+    results.instant_likelihoods.resize(size());
+    results.instant_normalized_likelihoods.resize(size());
+    results.smoothed_likelihoods.resize(size());
+    results.smoothed_normalized_likelihoods.resize(size());
+    results.smoothed_log_likelihoods.resize(size());
+    if (shared_parameters->bimodal.get()) {
+        unsigned int dimension_output = shared_parameters->dimension.get() -
+                                       shared_parameters->dimension_input.get();
+        results.output_values.resize(dimension_output);
+        results.output_covariance.assign(
+            (configuration.covariance_mode.get() ==
+             GaussianDistribution::CovarianceMode::Full)
+                ? dimension_output * dimension_output
+                : dimension_output,
+            0.0);
+    }
+    for (auto& model : models) {
+        model.second.reset();
+    }
+}
+
+void xmm::GMM::filter(std::vector<float> const& observation) {
+    checkTraining();
+    int i(0);
+    for (auto& model : models) {
+        results.instant_likelihoods[i] = model.second.filter(observation);
+        i++;
+    }
+
+    updateResults();
+
+    if (shared_parameters->bimodal.get()) {
+        unsigned int dimension = shared_parameters->dimension.get();
+        unsigned int dimension_input = shared_parameters->dimension_input.get();
+        unsigned int dimension_output = dimension - dimension_input;
+
+        if (configuration.multiClass_regression_estimator ==
+            MultiClassRegressionEstimator::Likeliest) {
+            results.output_values =
+                models[results.likeliest].results.output_values;
+            results.output_covariance =
+                models[results.likeliest].results.output_covariance;
+
+        } else {
+            results.output_values.assign(dimension_output, 0.0);
+            results.output_covariance.assign(
+                (configuration.covariance_mode.get() ==
+                 GaussianDistribution::CovarianceMode::Full)
+                    ? dimension_output * dimension_output
+                    : dimension_output,
+                0.0);
+
+            int i(0);
+            for (auto& model : models) {
+                for (int d = 0; d < dimension_output; d++) {
+                    results.output_values[d] +=
+                        results.smoothed_normalized_likelihoods[i] *
+                        model.second.results.output_values[d];
+                    if ((configuration.covariance_mode.get() ==
+                         GaussianDistribution::CovarianceMode::Full)) {
+                        for (int d2 = 0; d2 < dimension_output; d2++)
+                            results
+                                .output_covariance[d * dimension_output + d2] +=
+                                results.smoothed_normalized_likelihoods[i] *
+                                model.second.results
+                                    .output_covariance[d * dimension_output +
+                                                       d2];
+                    } else {
+                        results.output_covariance[d] +=
+                            results.smoothed_normalized_likelihoods[i] *
+                            model.second.results.output_covariance[d];
+                    }
+                }
+                i++;
+            }
+        }
+    }
+}
+
+//#pragma mark > Conversion & Extraction
+// void xmm::GMM::makeBimodal(unsigned int dimension_input)
+//{
+//    check_training();
+//    if (bimodal_)
+//        throw std::runtime_error("The model is already bimodal");
+//    if (dimension_input >= dimension())
+//        throw std::out_of_range("Request input dimension exceeds the current
+//        dimension");
+//
+//    try {
+//        this->referenceModel_.makeBimodal(dimension_input);
+//    } catch (std::exception const& e) {
+//    }
+//    bimodal_ = true;
+//    for (model_iterator it=this->models.begin(); it != this->models.end();
+//    ++it) {
+//        it->second.makeBimodal(dimension_input);
+//    }
+//    set_trainingSet(NULL);
+//    results_predicted_output.resize(dimension() - this->dimension_input());
+//    results_output_variance.resize(dimension() - this->dimension_input());
+//}
+//
+// void xmm::GMM::makeUnimodal()
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model is already unimodal");
+//    this->referenceModel_.makeUnimodal();
+//    for (model_iterator it=this->models.begin(); it != this->models.end();
+//    ++it) {
+//        it->second.makeUnimodal();
+//    }
+//    set_trainingSet(NULL);
+//    results_predicted_output.clear();
+//    results_output_variance.clear();
+//    bimodal_ = false;
+//}
+//
+// xmm::GMM xmm::GMM::extractSubmodel(std::vector<unsigned int>& columns) const
+//{
+//    check_training();
+//    if (columns.size() > this->dimension())
+//        throw std::out_of_range("requested number of columns exceeds the
+//        dimension of the current model");
+//    for (unsigned int column=0; column<columns.size(); ++column) {
+//        if (columns[column] >= this->dimension())
+//            throw std::out_of_range("Some column indices exceeds the dimension
+//            of the current model");
+//    }
+//    GMM target_model(*this);
+//    target_model.set_trainingSet(NULL);
+//    target_model.bimodal_ = false;
+//    target_model.referenceModel_ =
+//    this->referenceModel_.extractSubmodel(columns);
+//    for (model_iterator it=target_model.models.begin(); it !=
+//    target_model.models.end(); ++it) {
+//        it->second = this->models.at(it->first).extractSubmodel(columns);
+//    }
+//    target_model.results_predicted_output.clear();
+//    target_model.results_output_variance.clear();
+//    return target_model;
+//}
+//
+// xmm::GMM xmm::GMM::extractSubmodel_input() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_input(dimension_input());
+//    for (unsigned int i=0; i<dimension_input(); ++i) {
+//        columns_input[i] = i;
+//    }
+//    return extractSubmodel(columns_input);
+//}
+//
+// xmm::GMM xmm::GMM::extractSubmodel_output() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_output(dimension() - dimension_input());
+//    for (unsigned int i=dimension_input(); i<dimension(); ++i) {
+//        columns_output[i-dimension_input()] = i;
+//    }
+//    return extractSubmodel(columns_output);
+//}
+//
+// xmm::GMM xmm::GMM::extract_inverse_model() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns(dimension());
+//    for (unsigned int i=0; i<dimension()-dimension_input(); ++i) {
+//        columns[i] = i+dimension_input();
+//    }
+//    for (unsigned int i=dimension()-dimension_input(), j=0; i<dimension(); ++i,
+//    ++j) {
+//        columns[i] = j;
+//    }
+//    GMM target_model = extractSubmodel(columns);
+//    target_model.makeBimodal(dimension()-dimension_input());
+//    return target_model;
+//}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.hpp
new file mode 100644
index 0000000..03d9247
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmm.hpp
@@ -0,0 +1,158 @@
+/*
+ * xmmGmm.hpp
+ *
+ * Gaussian Mixture Model for Continuous Recognition and Regression
+ * (Multi-class)
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmGmm_h
+#define xmmGmm_h
+
+#include "../../core/distributions/xmmGaussianDistribution.hpp"
+#include "../../core/model/xmmModel.hpp"
+#include "xmmGmmSingleClass.hpp"
+
+namespace xmm {
+/**
+ @ingroup GMM
+ @brief Gaussian Mixture Model for Continuous Recognition and Regression
+ (Multi-class)
+ */
+class GMM : public Model<SingleClassGMM, GMM> {
+  public:
+    /**
+     @brief Constructor
+     @param bimodal specifies if the model should be used for regression
+     */
+    GMM(bool bimodal = false);
+
+    /**
+     @brief Copy Constructor
+     @param src Source Model
+     */
+    GMM(GMM const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit GMM(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    GMM& operator=(GMM const& src);
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    virtual void reset();
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     */
+    virtual void filter(std::vector<float> const& observation);
+
+    ///@}
+
+    //
+    //        /**
+    //         @brief Convert to bimodal GMM in place
+    //         @param dimension_input dimension of the input modality
+    //         @throws runtime_error if the model is already bimodal
+    //         @throws out_of_range if the requested input dimension is too
+    //         large
+    //         */
+    //        void makeBimodal(unsigned int dimension_input);
+    //
+    //        /**
+    //         @brief Convert to unimodal GMM in place
+    //         @throws runtime_error if the model is already unimodal
+    //         */
+    //        void makeUnimodal();
+    //
+    //        /**
+    //         @brief extract a submodel with the given columns
+    //         @param columns columns indices in the target order
+    //         @throws runtime_error if the model is training
+    //         @throws out_of_range if the number or indices of the requested
+    //         columns exceeds the current dimension
+    //         @return a GMM from the current model considering only the target
+    //         columns
+    //         */
+    //        GMM extractSubmodel(std::vector<unsigned int>& columns) const;
+    //
+    //        /**
+    //         @brief extract the submodel of the input modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal GMM of the input modality from the current
+    //         bimodal model
+    //         */
+    //        GMM extractSubmodel_input() const;
+    //
+    //        /**
+    //         @brief extract the submodel of the output modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal GMM of the output modality from the current
+    //         bimodal model
+    //         */
+    //        GMM extractSubmodel_output() const;
+    //
+    //        /**
+    //         @brief extract the model with reversed input and output
+    //         modalities
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a bimodal GMM  that swaps the input and output modalities
+    //         */
+    //        GMM extract_inverse_model() const;
+
+    /**
+     @brief Results of the Filtering Process (Recognition + Regression)
+     */
+    Results<GMM> results;
+
+  protected:
+    /**
+     @brief Update the results (Likelihoods)
+     */
+    virtual void updateResults();
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.cpp
new file mode 100644
index 0000000..3e4fdb7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.cpp
@@ -0,0 +1,132 @@
+/*
+ * xmmGmmParameters.cpp
+ *
+ * Parameters of Gaussian Mixture Models
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmGmmParameters.hpp"
+
+xmm::ClassParameters<xmm::GMM>::ClassParameters()
+    : changed(true),
+      gaussians(10, 1),
+      relative_regularization(1.0e-2, 1e-20),
+      absolute_regularization(1.0e-3, 1e-20),
+      covariance_mode(GaussianDistribution::CovarianceMode::Full) {
+    gaussians.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    relative_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    absolute_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::GMM>::ClassParameters(ClassParameters<GMM> const& src)
+    : changed(true),
+      gaussians(src.gaussians),
+      relative_regularization(src.relative_regularization),
+      absolute_regularization(src.absolute_regularization),
+      covariance_mode(src.covariance_mode) {
+    gaussians.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    relative_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    absolute_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::GMM>::ClassParameters(Json::Value const& root)
+    : changed(true),
+      gaussians(10, 1),
+      relative_regularization(1.0e-2, 1e-20),
+      absolute_regularization(1.0e-3, 1e-20),
+      covariance_mode(GaussianDistribution::CovarianceMode::Full) {
+    gaussians.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    relative_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    absolute_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+
+    gaussians.set(root["gaussians"].asInt());
+    relative_regularization.set(root["relative_regularization"].asFloat());
+    absolute_regularization.set(root["absolute_regularization"].asFloat());
+    covariance_mode.set(static_cast<GaussianDistribution::CovarianceMode>(
+        root["covariance_mode"].asInt()));
+}
+
+xmm::ClassParameters<xmm::GMM>& xmm::ClassParameters<xmm::GMM>::operator=(
+    ClassParameters<GMM> const& src) {
+    if (this != &src) {
+        changed = true;
+        gaussians = src.gaussians;
+        relative_regularization = src.relative_regularization;
+        absolute_regularization = src.absolute_regularization;
+        covariance_mode = src.covariance_mode;
+
+        gaussians.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+        relative_regularization.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+        absolute_regularization.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+        covariance_mode.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::GMM>::onAttributeChange);
+    }
+    return *this;
+}
+
+Json::Value xmm::ClassParameters<xmm::GMM>::toJson() const {
+    Json::Value root;
+    root["gaussians"] = static_cast<int>(gaussians.get());
+    root["relative_regularization"] = relative_regularization.get();
+    root["absolute_regularization"] = absolute_regularization.get();
+    root["covariance_mode"] = static_cast<int>(covariance_mode.get());
+    return root;
+}
+
+void xmm::ClassParameters<xmm::GMM>::fromJson(Json::Value const& root) {
+    try {
+        ClassParameters<GMM> tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+void xmm::ClassParameters<xmm::GMM>::onAttributeChange(
+    AttributeBase* attr_pointer) {
+    changed = true;
+    attr_pointer->changed = false;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.hpp
new file mode 100644
index 0000000..bafd8c5
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmParameters.hpp
@@ -0,0 +1,132 @@
+/*
+ * xmmGmmParameters.hpp
+ *
+ * Parameters of Gaussian Mixture Models
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmGMMParameters_hpp
+#define xmmGMMParameters_hpp
+
+#include "../../core/distributions/xmmGaussianDistribution.hpp"
+#include "../../core/model/xmmModelParameters.hpp"
+
+namespace xmm {
+/**
+ @defgroup GMM [Models] Gaussian Mixture Models
+ */
+
+/**
+ Dummy structure for template specialization
+ */
+class GMM;
+
+/**
+ @ingroup GMM
+ @brief Parameters specific to each class of a Gaussian Mixture Model
+ */
+template <>
+class ClassParameters<GMM> : public Writable {
+  public:
+    /**
+     @brief Default Constructor
+     */
+    ClassParameters();
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    ClassParameters(ClassParameters<GMM> const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit ClassParameters(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    ClassParameters& operator=(ClassParameters<GMM> const& src);
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /**
+     @brief specifies if parameters have changed (model is invalid)
+     */
+    bool changed = false;
+
+    /**
+     @brief Number of Gaussian Mixture Components
+     */
+    Attribute<unsigned int> gaussians;
+
+    /**
+     @brief Offset Added to the diagonal of covariance matrices for convergence
+     (Relative to Data Variance)
+     */
+    Attribute<double> relative_regularization;
+
+    /**
+     @brief Offset Added to the diagonal of covariance matrices for convergence
+     (minimum value)
+     */
+    Attribute<double> absolute_regularization;
+
+    /**
+     @brief Covariance Mode
+     */
+    Attribute<GaussianDistribution::CovarianceMode> covariance_mode;
+
+  protected:
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.cpp
new file mode 100644
index 0000000..64d7bd3
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.cpp
@@ -0,0 +1,641 @@
+/*
+ * xmmGmmSingleClass.cpp
+ *
+ * Gaussian Mixture Model Definition for a Single Class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "../kmeans/xmmKMeans.hpp"
+#include "xmmGmmSingleClass.hpp"
+#include <algorithm>
+
+xmm::SingleClassGMM::SingleClassGMM(std::shared_ptr<SharedParameters> p)
+    : SingleClassProbabilisticModel(p) {}
+
+xmm::SingleClassGMM::SingleClassGMM(SingleClassGMM const& src)
+    : SingleClassProbabilisticModel(src),
+      parameters(src.parameters),
+      components(src.components),
+      mixture_coeffs(src.mixture_coeffs) {
+    beta.resize(parameters.gaussians.get());
+}
+
+xmm::SingleClassGMM::SingleClassGMM(std::shared_ptr<SharedParameters> p,
+                                    Json::Value const& root)
+    : SingleClassProbabilisticModel(p, root) {
+    parameters.fromJson(root["parameters"]);
+
+    allocate();
+
+    json2vector(root["mixture_coeffs"], mixture_coeffs,
+                parameters.gaussians.get());
+
+    int c(0);
+    for (auto p : root["components"]) {
+        components[c++].fromJson(p);
+    }
+
+    updateInverseCovariances();
+}
+
+xmm::SingleClassGMM& xmm::SingleClassGMM::operator=(SingleClassGMM const& src) {
+    if (this != &src) {
+        SingleClassProbabilisticModel::operator=(src);
+        parameters = src.parameters;
+        beta.resize(parameters.gaussians.get());
+        mixture_coeffs = src.mixture_coeffs;
+        components = src.components;
+    }
+    return *this;
+};
+
+void xmm::SingleClassGMM::reset() { SingleClassProbabilisticModel::reset(); }
+
+double xmm::SingleClassGMM::filter(std::vector<float> const& observation) {
+    check_training();
+    double instantaneous_likelihood = likelihood(observation);
+    if (shared_parameters->bimodal.get()) {
+        regression(observation);
+    }
+    return instantaneous_likelihood;
+}
+
+void xmm::SingleClassGMM::emAlgorithmInit(TrainingSet* trainingSet) {
+    initParametersToDefault(trainingSet->standardDeviation());
+    initMeansWithKMeans(trainingSet);
+    initCovariances_fullyObserved(trainingSet);
+    addCovarianceOffset();
+    updateInverseCovariances();
+}
+
+Json::Value xmm::SingleClassGMM::toJson() const {
+    check_training();
+    Json::Value root = SingleClassProbabilisticModel::toJson();
+    root["mixture_coeffs"] = vector2json(mixture_coeffs);
+    root["parameters"] = parameters.toJson();
+    root["components"].resize(
+        static_cast<Json::ArrayIndex>(parameters.gaussians.get()));
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        root["components"][c] = components[c].toJson();
+    }
+    return root;
+}
+
+void xmm::SingleClassGMM::fromJson(Json::Value const& root) {
+    check_training();
+    try {
+        SingleClassGMM tmp(shared_parameters, root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+// void xmm::SingleClassGMM::makeBimodal(unsigned int dimension_input)
+//{
+//    check_training();
+//    if (bimodal_)
+//        throw std::runtime_error("The model is already bimodal");
+//    if (dimension_input >= dimension_)
+//        throw std::out_of_range("Request input dimension exceeds the current
+//        dimension");
+//    flags_ = BIMODAL;
+//    bimodal_ = true;
+//    dimension_input_ = dimension_input;
+//    for (mixture_iterator component = components.begin() ; component !=
+//    components.end(); ++component) {
+//        component->makeBimodal(dimension_input);
+//    }
+//    baseResults_predicted_output.resize(dimension_ - dimension_input_);
+//    results.output_variance.resize(dimension_ - dimension_input_);
+//}
+//
+// void xmm::SingleClassGMM::makeUnimodal()
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model is already unimodal");
+//    flags_ = NONE;
+//    bimodal_ = false;
+//    dimension_input_ = 0;
+//    for (mixture_iterator component = components.begin() ; component !=
+//    components.end(); ++component) {
+//        component->makeUnimodal();
+//    }
+//    baseResults_predicted_output.clear();
+//    results.output_variance.clear();
+//}
+//
+// xmm::SingleClassGMM
+// xmm::SingleClassGMM::extractSubmodel(std::vector<unsigned int>& columns) const
+//{
+//    check_training();
+//    if (columns.size() > dimension_)
+//        throw std::out_of_range("requested number of columns exceeds the
+//        dimension of the current model");
+//    for (unsigned int column=0; column<columns.size(); ++column) {
+//        if (columns[column] >= dimension_)
+//            throw std::out_of_range("Some column indices exceeds the dimension
+//            of the current model");
+//    }
+//    unsigned int new_dim =columns.size();
+//    GMM target_model(*this);
+//    target_model.setTrainingCallback(NULL, NULL);
+//    target_model.bimodal_ = false;
+//    target_model.dimension_ = static_cast<unsigned int>(new_dim);
+//    target_model.dimension_input_ = 0;
+//    target_model.flags_ = NONE;
+//    target_model.allocate();
+//    for (unsigned int c=0; c<nbMixtureComponents_; ++c) {
+//        target_model.components[c] = components[c].extractSubmodel(columns);
+//    }
+//    target_model.baseResults_predicted_output.clear();
+//    target_model.results.output_variance.clear();
+//    return target_model;
+//}
+//
+// xmm::SingleClassGMM xmm::SingleClassGMM::extractSubmodel_input() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_input(dimension_input_);
+//    for (unsigned int i=0; i<dimension_input_; ++i) {
+//        columns_input[i] = i;
+//    }
+//    return extractSubmodel(columns_input);
+//}
+//
+// xmm::SingleClassGMM xmm::SingleClassGMM::extractSubmodel_output() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_output(dimension_ - dimension_input_);
+//    for (unsigned int i=dimension_input_; i<dimension_; ++i) {
+//        columns_output[i-dimension_input_] = i;
+//    }
+//    return extractSubmodel(columns_output);
+//}
+//
+// xmm::SingleClassGMM xmm::SingleClassGMM::extract_inverse_model() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns(dimension_);
+//    for (unsigned int i=0; i<dimension_-dimension_input_; ++i) {
+//        columns[i] = i+dimension_input_;
+//    }
+//    for (unsigned int i=dimension_-dimension_input_, j=0; i<dimension_; ++i,
+//    ++j) {
+//        columns[i] = j;
+//    }
+//    GMM target_model = extractSubmodel(columns);
+//    target_model.makeBimodal(dimension_-dimension_input_);
+//    return target_model;
+//}
+
+void xmm::SingleClassGMM::allocate() {
+    mixture_coeffs.resize(parameters.gaussians.get());
+    beta.resize(parameters.gaussians.get());
+    components.assign(
+        parameters.gaussians.get(),
+        GaussianDistribution(shared_parameters->bimodal.get(),
+                             shared_parameters->dimension.get(),
+                             shared_parameters->dimension_input.get(),
+                             parameters.covariance_mode.get()));
+}
+
+double xmm::SingleClassGMM::obsProb(const float* observation,
+                                    int mixtureComponent) const {
+    double p(0.);
+
+    if (mixtureComponent < 0) {
+        for (mixtureComponent = 0;
+             mixtureComponent < parameters.gaussians.get();
+             mixtureComponent++) {
+            p += obsProb(observation, mixtureComponent);
+        }
+    } else {
+        if (mixtureComponent >= parameters.gaussians.get())
+            throw std::out_of_range(
+                "The index of the Gaussian Mixture Component is out of bounds");
+        p = mixture_coeffs[mixtureComponent] *
+            components[mixtureComponent].likelihood(observation);
+    }
+
+    return p;
+}
+
+double xmm::SingleClassGMM::obsProb_input(const float* observation_input,
+                                          int mixtureComponent) const {
+    if (!shared_parameters->bimodal.get())
+        throw std::runtime_error(
+            "Model is not bimodal. Use the function 'obsProb'");
+    double p(0.);
+
+    if (mixtureComponent < 0) {
+        for (mixtureComponent = 0;
+             mixtureComponent < parameters.gaussians.get();
+             mixtureComponent++) {
+            p += obsProb_input(observation_input, mixtureComponent);
+        }
+    } else {
+        p = mixture_coeffs[mixtureComponent] *
+            components[mixtureComponent].likelihood_input(observation_input);
+    }
+
+    return p;
+}
+
+double xmm::SingleClassGMM::obsProb_bimodal(const float* observation_input,
+                                            const float* observation_output,
+                                            int mixtureComponent) const {
+    if (!shared_parameters->bimodal.get())
+        throw std::runtime_error(
+            "Model is not bimodal. Use the function 'obsProb'");
+    double p(0.);
+
+    if (mixtureComponent < 0) {
+        for (mixtureComponent = 0;
+             mixtureComponent < parameters.gaussians.get();
+             mixtureComponent++) {
+            p += obsProb_bimodal(observation_input, observation_output,
+                                 mixtureComponent);
+        }
+    } else {
+        p = mixture_coeffs[mixtureComponent] *
+            components[mixtureComponent].likelihood_bimodal(observation_input,
+                                                            observation_output);
+    }
+
+    return p;
+}
+
+void xmm::SingleClassGMM::initMeansWithKMeans(TrainingSet* trainingSet) {
+    if (!trainingSet || trainingSet->empty()) return;
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+
+    KMeans kmeans(parameters.gaussians.get());
+    kmeans.initialization_mode = KMeans::InitializationMode::Biased;
+    kmeans.train(trainingSet);
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        for (unsigned int d = 0; d < dimension; ++d) {
+            components[c].mean[d] = kmeans.centers[c * dimension + d];
+        }
+    }
+}
+
+void xmm::SingleClassGMM::initCovariances_fullyObserved(
+    TrainingSet* trainingSet) {
+    // TODO: simplify with covariance symmetricity
+    // TODO: If Kmeans, covariances from cluster members
+    if (!trainingSet || trainingSet->empty()) return;
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+
+    if (parameters.covariance_mode.get() ==
+        GaussianDistribution::CovarianceMode::Full) {
+        for (int n = 0; n < parameters.gaussians.get(); n++)
+            components[n].covariance.assign(dimension * dimension, 0.0);
+    } else {
+        for (int n = 0; n < parameters.gaussians.get(); n++)
+            components[n].covariance.assign(dimension, 0.0);
+    }
+
+    std::vector<double> gmeans(parameters.gaussians.get() * dimension, 0.0);
+    std::vector<int> factor(parameters.gaussians.get(), 0);
+    for (auto phrase_it = trainingSet->begin(); phrase_it != trainingSet->end();
+         phrase_it++) {
+        unsigned int step =
+            phrase_it->second->size() / parameters.gaussians.get();
+        unsigned int offset(0);
+        for (int n = 0; n < parameters.gaussians.get(); n++) {
+            for (int t = 0; t < step; t++) {
+                for (int d1 = 0; d1 < dimension; d1++) {
+                    gmeans[n * dimension + d1] +=
+                        phrase_it->second->getValue(offset + t, d1);
+                    if (parameters.covariance_mode.get() ==
+                        GaussianDistribution::CovarianceMode::Full) {
+                        for (int d2 = 0; d2 < dimension; d2++) {
+                            components[n].covariance[d1 * dimension + d2] +=
+                                phrase_it->second->getValue(offset + t, d1) *
+                                phrase_it->second->getValue(offset + t, d2);
+                        }
+                    } else {
+                        float value =
+                            phrase_it->second->getValue(offset + t, d1);
+                        components[n].covariance[d1] += value * value;
+                    }
+                }
+            }
+            offset += step;
+            factor[n] += step;
+        }
+    }
+
+    for (int n = 0; n < parameters.gaussians.get(); n++) {
+        for (int d1 = 0; d1 < dimension; d1++) {
+            gmeans[n * dimension + d1] /= factor[n];
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                for (int d2 = 0; d2 < dimension; d2++)
+                    components[n].covariance[d1 * dimension + d2] /= factor[n];
+            } else {
+                components[n].covariance[d1] /= factor[n];
+            }
+        }
+    }
+
+    for (int n = 0; n < parameters.gaussians.get(); n++) {
+        for (int d1 = 0; d1 < dimension; d1++) {
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                for (int d2 = 0; d2 < dimension; d2++)
+                    components[n].covariance[d1 * dimension + d2] -=
+                        gmeans[n * dimension + d1] * gmeans[n * dimension + d2];
+            } else {
+                components[n].covariance[d1] -=
+                    gmeans[n * dimension + d1] * gmeans[n * dimension + d1];
+            }
+        }
+    }
+}
+
+double xmm::SingleClassGMM::emAlgorithmUpdate(TrainingSet* trainingSet) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    double log_prob(0.);
+
+    int totalLength(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it)
+        totalLength += it->second->size();
+
+    std::vector<std::vector<double> > p(parameters.gaussians.get());
+    std::vector<double> E(parameters.gaussians.get(), 0.0);
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        p[c].resize(totalLength);
+        E[c] = 0.;
+    }
+
+    int tbase(0);
+
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it) {
+        unsigned int T = it->second->size();
+        for (int t = 0; t < T; t++) {
+            double norm_const(0.);
+            for (int c = 0; c < parameters.gaussians.get(); c++) {
+                if (shared_parameters->bimodal.get()) {
+                    p[c][tbase + t] =
+                        obsProb_bimodal(it->second->getPointer_input(t),
+                                        it->second->getPointer_output(t), c);
+                } else {
+                    p[c][tbase + t] = obsProb(it->second->getPointer(t), c);
+                }
+
+                if (p[c][tbase + t] == 0. || std::isnan(p[c][tbase + t]) ||
+                    std::isinf(p[c][tbase + t])) {
+                    p[c][tbase + t] = 1e-100;
+                }
+                norm_const += p[c][tbase + t];
+            }
+            for (int c = 0; c < parameters.gaussians.get(); c++) {
+                p[c][tbase + t] /= norm_const;
+                E[c] += p[c][tbase + t];
+            }
+            log_prob += log(norm_const);
+        }
+        tbase += T;
+    }
+
+    // Estimate Mixture coefficients
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        mixture_coeffs[c] = E[c] / double(totalLength);
+    }
+
+    // Estimate means
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        for (int d = 0; d < dimension; d++) {
+            components[c].mean[d] = 0.;
+            tbase = 0;
+            for (auto it = trainingSet->cbegin(); it != trainingSet->cend();
+                 ++it) {
+                unsigned int T = it->second->size();
+                for (int t = 0; t < T; t++) {
+                    components[c].mean[d] +=
+                        p[c][tbase + t] * it->second->getValue(t, d);
+                }
+                tbase += T;
+            }
+            components[c].mean[d] /= E[c];
+        }
+    }
+
+    // estimate covariances
+    if (parameters.covariance_mode.get() ==
+        GaussianDistribution::CovarianceMode::Full) {
+        for (int c = 0; c < parameters.gaussians.get(); c++) {
+            for (int d1 = 0; d1 < dimension; d1++) {
+                for (int d2 = d1; d2 < dimension; d2++) {
+                    components[c].covariance[d1 * dimension + d2] = 0.;
+                    tbase = 0;
+                    for (auto it = trainingSet->cbegin();
+                         it != trainingSet->cend(); ++it) {
+                        unsigned int T = it->second->size();
+                        for (int t = 0; t < T; t++) {
+                            components[c].covariance[d1 * dimension + d2] +=
+                                p[c][tbase + t] * (it->second->getValue(t, d1) -
+                                                   components[c].mean[d1]) *
+                                (it->second->getValue(t, d2) -
+                                 components[c].mean[d2]);
+                        }
+                        tbase += T;
+                    }
+                    components[c].covariance[d1 * dimension + d2] /= E[c];
+                    if (d1 != d2)
+                        components[c].covariance[d2 * dimension + d1] =
+                            components[c].covariance[d1 * dimension + d2];
+                }
+            }
+        }
+    } else {
+        for (int c = 0; c < parameters.gaussians.get(); c++) {
+            for (int d1 = 0; d1 < dimension; d1++) {
+                components[c].covariance[d1] = 0.;
+                tbase = 0;
+                for (auto it = trainingSet->cbegin(); it != trainingSet->cend();
+                     ++it) {
+                    unsigned int T = it->second->size();
+                    for (int t = 0; t < T; t++) {
+                        float value = (it->second->getValue(t, d1) -
+                                       components[c].mean[d1]);
+                        components[c].covariance[d1] +=
+                            p[c][tbase + t] * value * value;
+                    }
+                    tbase += T;
+                }
+                components[c].covariance[d1] /= E[c];
+            }
+        }
+    }
+
+    addCovarianceOffset();
+    updateInverseCovariances();
+
+    return log_prob;
+}
+
+void xmm::SingleClassGMM::initParametersToDefault(
+    std::vector<float> const& dataStddev) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+
+    double norm_coeffs(0.);
+    current_regularization.resize(dataStddev.size());
+    for (int i = 0; i < dataStddev.size(); i++) {
+        current_regularization[i] =
+            std::max(parameters.absolute_regularization.get(),
+                     parameters.relative_regularization.get() * dataStddev[i]);
+    }
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        if (parameters.covariance_mode.get() ==
+            GaussianDistribution::CovarianceMode::Full) {
+            components[c].covariance.assign(
+                dimension * dimension,
+                parameters.absolute_regularization.get() / 2.);
+        } else {
+            components[c].covariance.assign(dimension, 0.);
+        }
+        components[c].regularize(current_regularization);
+        mixture_coeffs[c] = 1. / float(parameters.gaussians.get());
+        norm_coeffs += mixture_coeffs[c];
+    }
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        mixture_coeffs[c] /= norm_coeffs;
+    }
+}
+
+void xmm::SingleClassGMM::normalizeMixtureCoeffs() {
+    double norm_const(0.);
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        norm_const += mixture_coeffs[c];
+    }
+    if (norm_const > 0) {
+        for (int c = 0; c < parameters.gaussians.get(); c++) {
+            mixture_coeffs[c] /= norm_const;
+        }
+    } else {
+        for (int c = 0; c < parameters.gaussians.get(); c++) {
+            mixture_coeffs[c] = 1 / float(parameters.gaussians.get());
+        }
+    }
+}
+
+void xmm::SingleClassGMM::addCovarianceOffset() {
+    for (auto& component : components) {
+        component.regularize(current_regularization);
+    }
+}
+
+void xmm::SingleClassGMM::updateInverseCovariances() {
+    try {
+        for (auto& component : components) {
+            component.updateInverseCovariance();
+        }
+    } catch (std::exception& e) {
+        throw std::runtime_error(
+            "Matrix inversion error: varianceoffset must be too small");
+    }
+}
+
+void xmm::SingleClassGMM::regression(
+    std::vector<float> const& observation_input) {
+    check_training();
+    unsigned int dimension_output = shared_parameters->dimension.get() -
+                                   shared_parameters->dimension_input.get();
+    results.output_values.assign(dimension_output, 0.0);
+    results.output_covariance.assign(
+        (parameters.covariance_mode.get() ==
+         GaussianDistribution::CovarianceMode::Full)
+            ? dimension_output * dimension_output
+            : dimension_output,
+        0.0);
+    std::vector<float> tmp_output_values(dimension_output, 0.0);
+
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        components[c].regression(observation_input, tmp_output_values);
+        for (int d = 0; d < dimension_output; ++d) {
+            results.output_values[d] += beta[c] * tmp_output_values[d];
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                for (int d2 = 0; d2 < dimension_output; ++d2)
+                    results.output_covariance[d * dimension_output + d2] +=
+                        beta[c] * beta[c] *
+                        components[c]
+                            .output_covariance[d * dimension_output + d2];
+            } else {
+                results.output_covariance[d] +=
+                    beta[c] * beta[c] * components[c].output_covariance[d];
+            }
+        }
+    }
+}
+
+double xmm::SingleClassGMM::likelihood(
+    std::vector<float> const& observation,
+    std::vector<float> const& observation_output) {
+    check_training();
+    double likelihood(0.);
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        if (shared_parameters->bimodal.get()) {
+            if (observation_output.empty())
+                beta[c] = obsProb_input(&observation[0], c);
+            else
+                beta[c] =
+                    obsProb_bimodal(&observation[0], &observation_output[0], c);
+        } else {
+            beta[c] = obsProb(&observation[0], c);
+        }
+        likelihood += beta[c];
+    }
+    for (int c = 0; c < parameters.gaussians.get(); c++) {
+        beta[c] /= likelihood;
+    }
+
+    results.instant_likelihood = likelihood;
+    updateResults();
+    return likelihood;
+}
+
+void xmm::SingleClassGMM::updateResults() {
+    likelihood_buffer_.push(log(results.instant_likelihood));
+    results.log_likelihood = 0.0;
+    unsigned int bufSize = likelihood_buffer_.size_t();
+    for (unsigned int i = 0; i < bufSize; i++) {
+        results.log_likelihood += likelihood_buffer_(0, i);
+    }
+    results.log_likelihood /= double(bufSize);
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.hpp
new file mode 100644
index 0000000..2543de0
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/gmm/xmmGmmSingleClass.hpp
@@ -0,0 +1,343 @@
+/*
+ * xmmGmmSingleClass.hpp
+ *
+ * Gaussian Mixture Model Definition for a Single Class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmGmmSingleClass_hpp
+#define xmmGmmSingleClass_hpp
+
+#include "../../core/model/xmmModelResults.hpp"
+#include "../../core/model/xmmModelSingleClass.hpp"
+#include "xmmGmmParameters.hpp"
+#include <memory>
+
+namespace xmm {
+const std::vector<float> null_vector_float;
+
+/**
+ @ingroup GMM
+ @brief Single-Class Gaussian Mixture Model
+ @details Multivariate Gaussian Mixture Model. Supports Bimodal data and
+ Gaussian Mixture Regression.
+ Can be either autonomous or a state of a HMM: defines observation probabilities
+ for each state.
+ */
+class SingleClassGMM : public SingleClassProbabilisticModel {
+  public:
+    template <typename SingleClassModel, typename ModelType>
+    friend class Model;
+    friend class SingleClassHMM;
+    friend class HierarchicalHMM;
+
+    /**
+     @brief Constructor
+     @param p pointer to a shared parameters object (owned by a Model)
+     */
+    SingleClassGMM(std::shared_ptr<SharedParameters> p = NULL);
+
+    /**
+     @brief Copy constructor
+     @param src Source GMM
+     */
+    SingleClassGMM(SingleClassGMM const& src);
+
+    /**
+     @brief Copy constructor
+     @param p pointer to a shared parameters object (owned by a Model)
+     @param root Json structure
+     */
+    explicit SingleClassGMM(std::shared_ptr<SharedParameters> p,
+                            Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source GMM
+     */
+    SingleClassGMM& operator=(SingleClassGMM const& src);
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    void reset();
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     @return likelihood of the observation
+     */
+    double filter(std::vector<float> const& observation);
+
+    ///@}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root);
+
+    ///@}
+
+    //
+    //        /**
+    //         @brief Convert to bimodal GMM in place
+    //         @param dimension_input dimension of the input modality
+    //         @throws runtime_error if the model is already bimodal
+    //         @throws out_of_range if the requested input dimension is too
+    //         large
+    //         */
+    //        void makeBimodal(unsigned int dimension_input);
+    //
+    //        /**
+    //         @brief Convert to unimodal GMM in place
+    //         @throws runtime_error if the model is already unimodal
+    //         */
+    //        void makeUnimodal();
+    //
+    //        /**
+    //         @brief extract a submodel with the given columns
+    //         @param columns columns indices in the target order
+    //         @throws runtime_error if the model is training
+    //         @throws out_of_range if the number or indices of the requested
+    //         columns exceeds the current dimension
+    //         @return a GMM from the current model considering only the target
+    //         columns
+    //         */
+    //        GMM extractSubmodel(std::vector<unsigned int>& columns) const;
+    //
+    //        /**
+    //         @brief extract the submodel of the input modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal GMM of the input modality from the current
+    //         bimodal model
+    //         */
+    //        GMM extractSubmodel_input() const;
+    //
+    //        /**
+    //         @brief extract the submodel of the output modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal GMM of the output modality from the current
+    //         bimodal model
+    //         */
+    //        GMM extractSubmodel_output() const;
+    //
+    //        /**
+    //         @brief extract the model with reversed input and output
+    //         modalities
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a bimodal GMM  that swaps the input and output modalities
+    //         */
+    //        GMM extract_inverse_model() const;
+
+    /**
+     @brief Model Parameters
+     */
+    ClassParameters<GMM> parameters;
+
+    /**
+     @brief Results of the filtering process (recognition & regression)
+     */
+    ClassResults<GMM> results;
+
+    /**
+     @brief Vector of Gaussian Components
+     */
+    std::vector<GaussianDistribution> components;
+
+    /**
+     @brief Mixture Coefficients
+     */
+    std::vector<float> mixture_coeffs;
+
+    /**
+     @brief Beta probabilities: likelihood of each component
+     */
+    std::vector<double> beta;
+
+  protected:
+    /**
+     @brief Allocate model parameters
+     */
+    void allocate();
+
+    /**
+     @brief Observation probability
+     @param observation observation vector (must be of size 'dimension')
+     @param mixtureComponent index of the mixture component. if unspecified or
+     negative,
+     full mixture observation probability is computed
+     @return likelihood of the observation given the model
+     @throws out_of_range if the index of the Gaussian Mixture Component is out
+     of bounds
+     @throws runtime_error if the Covariance Matrix is not invertible
+     */
+    double obsProb(const float* observation, int mixtureComponent = -1) const;
+
+    /**
+     @brief Observation probability on the input modality
+     @param observation_input observation vector of the input modality (must be
+     of size 'dimension_input')
+     @param mixtureComponent index of the mixture component. if unspecified or
+     negative,
+     full mixture observation probability is computed
+     @return likelihood of the observation of the input modality given the model
+     @throws runtime_error if the model is not bimodal
+     @throws runtime_error if the Covariance Matrix of the input modality is not
+     invertible
+     */
+    double obsProb_input(const float* observation_input,
+                         int mixtureComponent = -1) const;
+
+    /**
+     @brief Observation probability for bimodal mode
+     @param observation_input observation vector of the input modality (must be
+     of size 'dimension_input')
+     @param observation_output observation vector of the input output (must be
+     of size 'dimension - dimension_input')
+     @param mixtureComponent index of the mixture component. if unspecified or
+     negative,
+     full mixture observation probability is computed
+     @return likelihood of the observation of the input modality given the model
+     @throws runtime_error if the model is not bimodal
+     @throws runtime_error if the Covariance Matrix is not invertible
+     */
+    double obsProb_bimodal(const float* observation_input,
+                           const float* observation_output,
+                           int mixtureComponent = -1) const;
+
+    /**
+     @brief Initialize the EM Training Algorithm
+     @details Initializes the Gaussian Components from the first phrase
+     of the Training Set
+     */
+    void emAlgorithmInit(TrainingSet* trainingSet);
+
+    /**
+     @brief Update Function of the EM algorithm
+     @return likelihood of the data given the current parameters (E-step)
+     */
+    double emAlgorithmUpdate(TrainingSet* trainingSet);
+
+    /**
+     @brief Initialize model parameters to default values.
+     @details Mixture coefficients are then equiprobable
+     */
+    void initParametersToDefault(std::vector<float> const& dataStddev);
+
+    /**
+     @brief Initialize the means of the Gaussian components with a Biased
+     K-means
+     */
+    void initMeansWithKMeans(TrainingSet* trainingSet);
+
+    /**
+     @brief Initialize the Covariances of the Gaussian components using a fully
+     observed approximation
+     */
+    void initCovariances_fullyObserved(TrainingSet* trainingSet);
+
+    /**
+     @brief Normalize mixture coefficients
+     */
+    void normalizeMixtureCoeffs();
+
+    /**
+     @brief Add offset to the diagonal of the covariance matrices
+     @details Guarantees convergence through covariance matrix invertibility
+     */
+    void addCovarianceOffset();
+
+    /**
+     @brief Update inverse covariances of each Gaussian component
+     @throws runtime_error if one of the covariance matrices is not invertible
+     */
+    void updateInverseCovariances();
+
+    /**
+     @brief Compute likelihood and estimate components probabilities
+     @details If the model is bimodal, the likelihood is computed only on the
+     input modality,
+     except if 'observation_output' is specified.
+     Updates the likelihood buffer used to smooth likelihoods.
+     @param observation observation vector (full size for unimodal, input
+     modality for bimodal)
+     @param observation_output observation vector of the output modality
+     */
+    double likelihood(
+        std::vector<float> const& observation,
+        std::vector<float> const& observation_output = null_vector_float);
+
+    /**
+     @brief Compute Gaussian Mixture Regression
+     @details Estimates the output modality using covariance-based regression
+     weighted by components' likelihood
+     @warning the function does not estimates the likelihoods, use 'likelihood'
+     before performing
+     the regression.
+     @param observation_input observation vector of the input modality
+     */
+    void regression(std::vector<float> const& observation_input);
+
+    /**
+     @brief update the content of the likelihood buffer and return average
+     likelihood.
+     @details The method also updates the cumulative log-likelihood computed
+     over a window (cumulativeloglikelihood)
+     */
+    void updateResults();
+
+    /**
+     @brief vector containing the regularization values over each dimension
+     @details computed by combining relative and absolute regularization with
+     the
+     training set
+     */
+    std::vector<double> current_regularization;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.cpp
new file mode 100644
index 0000000..4afd41a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.cpp
@@ -0,0 +1,634 @@
+/*
+ * hierarchical_hmm.cpp
+ *
+ * Hierarchical Hidden Markov Model for continuous recognition and regression
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmHierarchicalHmm.hpp"
+#include <algorithm>
+
+xmm::HierarchicalHMM::HierarchicalHMM(bool bimodal)
+    : Model<SingleClassHMM, HMM>(bimodal), forward_initialized_(false) {}
+
+xmm::HierarchicalHMM::HierarchicalHMM(HierarchicalHMM const &src)
+    : Model<SingleClassHMM, HMM>(src) {
+    results = src.results;
+    prior = src.prior;
+    exit_transition = src.exit_transition;
+    transition = src.transition;
+    frontier_v1_ = src.frontier_v1_;
+    frontier_v2_ = src.frontier_v2_;
+    forward_initialized_ = false;
+}
+
+xmm::HierarchicalHMM::HierarchicalHMM(Json::Value const &root)
+    : Model<SingleClassHMM, HMM>(root), forward_initialized_(false) {
+    prior.resize(size());
+    json2vector(root["prior"], prior, size());
+    transition.resize(size());
+    for (int i = 0; i < size(); i++) {
+        transition[i].resize(size());
+        json2vector(root["transition"][i], transition[i], size());
+    }
+    exit_transition.resize(size());
+    json2vector(root["exit_transition"], exit_transition, size());
+}
+
+xmm::HierarchicalHMM &xmm::HierarchicalHMM::operator=(
+    HierarchicalHMM const &src) {
+    if (this != &src) {
+        Model<SingleClassHMM, HMM>::operator=(src);
+        results = src.results;
+        prior = src.prior;
+        exit_transition = src.exit_transition;
+        transition = src.transition;
+        frontier_v1_ = src.frontier_v1_;
+        frontier_v2_ = src.frontier_v2_;
+        forward_initialized_ = false;
+    }
+    return *this;
+}
+
+void xmm::HierarchicalHMM::clear() {
+    Model<SingleClassHMM, HMM>::clear();
+    prior.clear();
+    transition.clear();
+    exit_transition.clear();
+}
+
+void xmm::HierarchicalHMM::addExitPoint(int state, float proba) {
+    // prevent_attribute_change();
+    for (auto &model : models) {
+        model.second.addExitPoint(state, proba);
+    }
+}
+
+void xmm::HierarchicalHMM::normalizeTransitions() {
+    double sumPrior(0.0);
+    int num_models = static_cast<int>(size());
+    for (int i = 0; i < num_models; i++) {
+        sumPrior += prior[i];
+        double sumTrans(0.0);
+        for (int j = 0; j < num_models; j++) sumTrans += transition[i][j];
+        if (sumTrans > 0.0)
+            for (int j = 0; j < num_models; j++) transition[i][j] /= sumTrans;
+    }
+    for (int i = 0; i < size(); i++) prior[i] /= sumPrior;
+}
+
+void xmm::HierarchicalHMM::joinTraining() {
+    Model<SingleClassHMM, HMM>::joinTraining();
+    updateTransitionParameters();
+}
+
+void xmm::HierarchicalHMM::updateTransitionParameters() {
+    if (this->size() == prior.size())  // number of primitives has not changed
+        return;
+
+    updatePrior();
+    updateTransition();
+
+    updateExitProbabilities();  // Update exit probabilities of Submodels
+                                // (signal level)
+}
+
+void xmm::HierarchicalHMM::updatePrior() {
+    prior.assign(size(), 1. / static_cast<double>(this->size()));
+}
+
+void xmm::HierarchicalHMM::updateTransition() {
+    int num_classes = static_cast<int>(size());
+    exit_transition.assign(num_classes, DEFAULT_EXITTRANSITION());
+    transition.resize(num_classes);
+    for (int i = 0; i < num_classes; i++) {
+        transition[i].assign(num_classes,
+                             1. / static_cast<double>(num_classes));
+    }
+}
+
+void xmm::HierarchicalHMM::updateExitProbabilities() {
+    for (auto &model : models) {
+        model.second.updateExitProbabilities();
+    }
+}
+
+void xmm::HierarchicalHMM::addModelForClass(std::string const &label) {
+    Model<SingleClassHMM, HMM>::addModelForClass(label);
+    updateTransitionParameters();
+}
+
+void xmm::HierarchicalHMM::forward_init(std::vector<float> const &observation) {
+    checkTraining();
+    double norm_const(0.0);
+
+    int model_index(0);
+    for (auto &model : models) {
+        unsigned int N = model.second.parameters.states.get();
+
+        for (int i = 0; i < 3; i++) {
+            model.second.alpha_h[i].assign(N, 0.0);
+        }
+
+        // Compute Emission probability and initialize on the first state of
+        // the
+        // primitive
+        if (model.second.parameters.transition_mode.get() ==
+            HMM::TransitionMode::Ergodic) {
+            for (int i = 0; i < model.second.parameters.states.get(); i++) {
+                if (shared_parameters->bimodal.get()) {
+                    model.second.alpha_h[0][i] =
+                        model.second.prior[i] *
+                        model.second.states[i].obsProb_input(&observation[0]);
+                } else {
+                    model.second.alpha_h[0][i] =
+                        model.second.prior[i] *
+                        model.second.states[i].obsProb(&observation[0]);
+                }
+                model.second.results.instant_likelihood +=
+                    model.second.alpha_h[0][i];
+            }
+        } else {
+            model.second.alpha_h[0][0] = this->prior[model_index];
+            if (shared_parameters->bimodal.get()) {
+                model.second.alpha_h[0][0] *=
+                    model.second.states[0].obsProb_input(&observation[0]);
+            } else {
+                model.second.alpha_h[0][0] *=
+                    model.second.states[0].obsProb(&observation[0]);
+            }
+            model.second.results.instant_likelihood =
+                model.second.alpha_h[0][0];
+        }
+        norm_const += model.second.results.instant_likelihood;
+        model_index++;
+    }
+
+    // Normalize Alpha variables
+    for (auto &model : models) {
+        unsigned int N = model.second.parameters.states.get();
+        for (unsigned int e = 0; e < 3; e++)
+            for (unsigned int k = 0; k < N; k++)
+                model.second.alpha_h[e][k] /= norm_const;
+    }
+
+    forward_initialized_ = true;
+}
+
+void xmm::HierarchicalHMM::forward_update(
+    std::vector<float> const &observation) {
+    checkTraining();
+    double norm_const(0.0);
+
+    // Frontier Algorithm: variables
+    double tmp(0);
+    std::vector<double>
+        front;  // frontier variable : intermediate computation variable
+
+    // Intermediate variables: compute the sum of probabilities of making a
+    // transition to a new primitive
+    likelihoodAlpha(1, frontier_v1_);
+    likelihoodAlpha(2, frontier_v2_);
+
+    int num_classes = static_cast<int>(size());
+
+    // FORWARD UPDATE
+    // --------------------------------------
+    int dst_model_index(0);
+    for (auto &dstModel : models) {
+        unsigned int N = dstModel.second.parameters.states.get();
+
+        // 1) COMPUTE FRONTIER VARIABLE
+        //    --------------------------------------
+        front.assign(N, 0.0);
+
+        if (dstModel.second.parameters.transition_mode.get() ==
+            HMM::TransitionMode::Ergodic) {
+            for (int k = 0; k < N; ++k) {
+                for (unsigned int j = 0; j < N; ++j) {
+                    front[k] += dstModel.second.transition[j * N + k] /
+                                (1 - dstModel.second.exit_probabilities_[j]) *
+                                dstModel.second.alpha_h[0][j];
+                }
+
+                for (int src_model_index = 0; src_model_index < num_classes;
+                     src_model_index++) {
+                    front[k] += dstModel.second.prior[k] *
+                                (frontier_v1_[src_model_index] *
+                                     this->transition[src_model_index]
+                                                     [dst_model_index] +
+                                 this->prior[dst_model_index] *
+                                     frontier_v2_[src_model_index]);
+                }
+            }
+        } else {
+            // k=0: first state of the primitive
+            front[0] =
+                dstModel.second.transition[0] * dstModel.second.alpha_h[0][0];
+
+            for (int src_model_index = 0; src_model_index < num_classes;
+                 src_model_index++) {
+                front[0] += frontier_v1_[src_model_index] *
+                                transition[src_model_index][dst_model_index] +
+                            this->prior[dst_model_index] *
+                                frontier_v2_[src_model_index];
+            }
+
+            // k>0: rest of the primitive
+            for (int k = 1; k < N; ++k) {
+                front[k] += dstModel.second.transition[k * 2] /
+                            (1 - dstModel.second.exit_probabilities_[k]) *
+                            dstModel.second.alpha_h[0][k];
+                front[k] += dstModel.second.transition[(k - 1) * 2 + 1] /
+                            (1 - dstModel.second.exit_probabilities_[k - 1]) *
+                            dstModel.second.alpha_h[0][k - 1];
+            }
+
+            for (int i = 0; i < 3; i++) {
+                for (int k = 0; k < N; k++) {
+                    dstModel.second.alpha_h[i][k] = 0.0;
+                }
+            }
+        }
+
+        // 2) UPDATE FORWARD VARIABLE
+        //    --------------------------------------
+
+        dstModel.second.results.exit_likelihood = 0.0;
+        dstModel.second.results.instant_likelihood = 0.0;
+
+        // end of the primitive: handle exit states
+        for (int k = 0; k < N; ++k) {
+            if (shared_parameters->bimodal.get())
+                tmp = dstModel.second.states[k].obsProb_input(&observation[0]) *
+                      front[k];
+            else
+                tmp = dstModel.second.states[k].obsProb(&observation[0]) *
+                      front[k];
+
+            dstModel.second.alpha_h[2][k] =
+                this->exit_transition[dst_model_index] *
+                dstModel.second.exit_probabilities_[k] * tmp;
+            dstModel.second.alpha_h[1][k] =
+                (1 - this->exit_transition[dst_model_index]) *
+                dstModel.second.exit_probabilities_[k] * tmp;
+            dstModel.second.alpha_h[0][k] =
+                (1 - dstModel.second.exit_probabilities_[k]) * tmp;
+
+            dstModel.second.results.exit_likelihood +=
+                dstModel.second.alpha_h[1][k] + dstModel.second.alpha_h[2][k];
+            dstModel.second.results.instant_likelihood +=
+                dstModel.second.alpha_h[0][k] + dstModel.second.alpha_h[1][k] +
+                dstModel.second.alpha_h[2][k];
+
+            norm_const += tmp;
+        }
+
+        dstModel.second.results.exit_ratio =
+            dstModel.second.results.exit_likelihood /
+            dstModel.second.results.instant_likelihood;
+
+        dst_model_index++;
+    }
+
+    // Normalize Alpha variables
+    for (auto &model : models) {
+        unsigned int N = model.second.parameters.states.get();
+        for (unsigned int e = 0; e < 3; e++)
+            for (unsigned int k = 0; k < N; k++)
+                model.second.alpha_h[e][k] /= norm_const;
+    }
+}
+
+void xmm::HierarchicalHMM::likelihoodAlpha(
+    int exitNum, std::vector<double> &likelihoodVector) const {
+    if (exitNum < 0) {  // Likelihood over all exit states
+        unsigned int l(0);
+        for (auto &model : models) {
+            likelihoodVector[l] = 0.0;
+            for (unsigned int exit = 0; exit < 3; ++exit) {
+                for (unsigned int k = 0;
+                     k < model.second.parameters.states.get(); k++) {
+                    likelihoodVector[l] += model.second.alpha_h[exit][k];
+                }
+            }
+            l++;
+        }
+
+    } else {  // Likelihood for exit state "exitNum"
+        unsigned int l(0);
+        for (auto &model : models) {
+            likelihoodVector[l] = 0.0;
+            for (unsigned int k = 0; k < model.second.parameters.states.get();
+                 k++) {
+                likelihoodVector[l] += model.second.alpha_h[exitNum][k];
+            }
+            l++;
+        }
+    }
+}
+
+void xmm::HierarchicalHMM::removeClass(std::string const &label) {
+    Model<SingleClassHMM, HMM>::removeClass(label);
+    updateTransitionParameters();
+}
+
+void xmm::HierarchicalHMM::reset() {
+    Model<SingleClassHMM, HMM>::reset();
+    results.instant_likelihoods.resize(size());
+    results.instant_normalized_likelihoods.resize(size());
+    results.smoothed_likelihoods.resize(size());
+    results.smoothed_normalized_likelihoods.resize(size());
+    results.smoothed_log_likelihoods.resize(size());
+    if (shared_parameters->bimodal.get()) {
+        unsigned int dimension_output =
+            shared_parameters->dimension.get() -
+            shared_parameters->dimension_input.get();
+        results.output_values.resize(dimension_output);
+        results.output_covariance.assign(
+            (configuration.covariance_mode.get() ==
+             GaussianDistribution::CovarianceMode::Full)
+                ? dimension_output * dimension_output
+                : dimension_output,
+            0.0);
+    }
+    frontier_v1_.resize(this->size());
+    frontier_v2_.resize(this->size());
+    forward_initialized_ = false;
+    for (auto &model : models) {
+        model.second.is_hierarchical_ = configuration.hierarchical.get();
+        model.second.reset();
+    }
+}
+
+void xmm::HierarchicalHMM::filter(std::vector<float> const &observation) {
+    checkTraining();
+    if (configuration.hierarchical.get()) {
+        if (forward_initialized_) {
+            this->forward_update(observation);
+        } else {
+            this->forward_init(observation);
+        }
+    } else {
+        int i(0);
+        for (auto &model : models) {
+            results.instant_likelihoods[i] = model.second.filter(observation);
+            i++;
+        }
+    }
+
+    // Compute time progression
+    for (auto &model : models) {
+        model.second.updateAlphaWindow();
+        model.second.updateResults();
+    }
+    updateResults();
+
+    if (shared_parameters->bimodal.get()) {
+        unsigned int dimension = shared_parameters->dimension.get();
+        unsigned int dimension_input = shared_parameters->dimension_input.get();
+        unsigned int dimension_output = dimension - dimension_input;
+
+        for (auto &model : models) {
+            model.second.regression(observation);
+        }
+
+        if (configuration.multiClass_regression_estimator ==
+            MultiClassRegressionEstimator::Likeliest) {
+            results.output_values =
+                this->models[results.likeliest].results.output_values;
+            results.output_covariance =
+                this->models[results.likeliest].results.output_covariance;
+        } else {
+            results.output_values.assign(dimension_output, 0.0);
+            results.output_covariance.assign(
+                (configuration.covariance_mode.get() ==
+                 GaussianDistribution::CovarianceMode::Full)
+                    ? dimension_output * dimension_output
+                    : dimension_output,
+                0.0);
+
+            int i(0);
+            for (auto &model : models) {
+                for (int d = 0; d < dimension_output; d++) {
+                    results.output_values[d] +=
+                        results.smoothed_normalized_likelihoods[i] *
+                        model.second.results.output_values[d];
+
+                    if ((configuration.covariance_mode.get() ==
+                         GaussianDistribution::CovarianceMode::Full)) {
+                        for (int d2 = 0; d2 < dimension_output; d2++)
+                            results
+                                .output_covariance[d * dimension_output + d2] +=
+                                results.smoothed_normalized_likelihoods[i] *
+                                model.second.results
+                                    .output_covariance[d * dimension_output +
+                                                       d2];
+                    } else {
+                        results.output_covariance[d] +=
+                            results.smoothed_normalized_likelihoods[i] *
+                            model.second.results.output_covariance[d];
+                    }
+                }
+                i++;
+            }
+        }
+    }
+}
+
+void xmm::HierarchicalHMM::updateResults() {
+    double maxlog_likelihood = 0.0;
+    double normconst_instant(0.0);
+    double normconst_smoothed(0.0);
+    int i(0);
+    for (auto &model : models) {
+        results.instant_likelihoods[i] =
+            model.second.results.instant_likelihood;
+        results.smoothed_log_likelihoods[i] =
+            model.second.results.log_likelihood;
+        results.smoothed_likelihoods[i] =
+            exp(results.smoothed_log_likelihoods[i]);
+
+        results.instant_normalized_likelihoods[i] =
+            results.instant_likelihoods[i];
+        results.smoothed_normalized_likelihoods[i] =
+            results.smoothed_likelihoods[i];
+
+        normconst_instant += results.instant_normalized_likelihoods[i];
+        normconst_smoothed += results.smoothed_normalized_likelihoods[i];
+
+        if (i == 0 || results.smoothed_log_likelihoods[i] > maxlog_likelihood) {
+            maxlog_likelihood = results.smoothed_log_likelihoods[i];
+            results.likeliest = model.first;
+        }
+        i++;
+    }
+
+    i = 0;
+    for (auto it = this->models.begin(); it != this->models.end(); ++it, ++i) {
+        results.instant_normalized_likelihoods[i] /= normconst_instant;
+        results.smoothed_normalized_likelihoods[i] /= normconst_smoothed;
+    }
+}
+
+Json::Value xmm::HierarchicalHMM::toJson() const {
+    checkTraining();
+    Json::Value root = Model<SingleClassHMM, HMM>::toJson();
+    root["prior"] = vector2json(prior);
+    //    int num_models = static_cast<int>(size());
+    //    std::vector<double> transition_flat(num_models * num_models, 0.0);
+    //    for (int i = 0; i < num_models; i++) {
+    //        for (int j = 0; j < num_models; j++) {
+    //            transition_flat[i * num_models + j] = transition[i][j];
+    //        }
+    //    }
+    root["transition"].resize(static_cast<Json::ArrayIndex>(size()));
+    for (int i = 0; i < size(); i++) {
+        root["transition"][i] = vector2json(transition[i]);
+    }
+    root["exit_transition"] = vector2json(exit_transition);
+
+    return root;
+}
+
+void xmm::HierarchicalHMM::fromJson(Json::Value const &root) {
+    checkTraining();
+    try {
+        HierarchicalHMM tmp(root);
+        *this = tmp;
+    } catch (JsonException &e) {
+        throw e;
+    }
+}
+
+// void xmm::HierarchicalHMM::makeBimodal(unsigned int dimension_input)
+//{
+//    checkTraining();
+//    if (bimodal_)
+//        throw std::runtime_error("The model is already bimodal");
+//    if (dimension_input >= dimension())
+//        throw std::out_of_range("Request input dimension exceeds the current
+//        dimension");
+//
+//    try {
+//        this->referenceModel_.makeBimodal(dimension_input);
+//    } catch (std::exception const& e) {
+//    }
+//    bimodal_ = true;
+//    for (model_iterator it=this->models.begin(); it != this->models.end();
+//    ++it) {
+//        model.second.makeBimodal(dimension_input);
+//    }
+//    set_trainingSet(NULL);
+//    results.output_values.resize(dimension() - this->dimension_input());
+//    results.output_variance.resize(dimension() - this->dimension_input());
+//}
+//
+// void xmm::HierarchicalHMM::makeUnimodal()
+//{
+//    checkTraining();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model is already unimodal");
+//    this->referenceModel_.makeUnimodal();
+//    for (model_iterator it=this->models.begin(); it != this->models.end();
+//    ++it) {
+//        model.second.makeUnimodal();
+//    }
+//    set_trainingSet(NULL);
+//    results.output_values.clear();
+//    results.output_variance.clear();
+//    bimodal_ = false;
+//}
+//
+// xmm::HierarchicalHMM
+// xmm::HierarchicalHMM::extractSubmodel(std::vector<unsigned int>& columns)
+// const
+//{
+//    checkTraining();
+//    if (columns.size() > this->dimension())
+//        throw std::out_of_range("requested number of columns exceeds the
+//        dimension of the current model");
+//    for (unsigned int column=0; column<columns.size(); ++column) {
+//        if (columns[column] >= this->dimension())
+//            throw std::out_of_range("Some column indices exceeds the dimension
+//            of the current model");
+//    }
+//    HierarchicalHMM target_model(*this);
+//    target_model.set_trainingSet(NULL);
+//    target_model.bimodal_ = false;
+//    target_model.referenceModel_ =
+//    this->referenceModel_.extractSubmodel(columns);
+//    for (model_iterator it=target_model.models.begin(); it !=
+//    target_model.models.end(); ++it) {
+//        model.second = this->models.at(model.first).extractSubmodel(columns);
+//    }
+//    return target_model;
+//}
+//
+// xmm::HierarchicalHMM xmm::HierarchicalHMM::extractSubmodel_input() const
+//{
+//    checkTraining();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_input(dimension_input());
+//    for (unsigned int i=0; i<dimension_input(); ++i) {
+//        columns_input[i] = i;
+//    }
+//    return extractSubmodel(columns_input);
+//}
+//
+// xmm::HierarchicalHMM xmm::HierarchicalHMM::extractSubmodel_output() const
+//{
+//    checkTraining();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_output(dimension() - dimension_input());
+//    for (unsigned int i=dimension_input(); i<dimension(); ++i) {
+//        columns_output[i-dimension_input()] = i;
+//    }
+//    return extractSubmodel(columns_output);
+//}
+//
+// xmm::HierarchicalHMM xmm::HierarchicalHMM::extract_inverse_model() const
+//{
+//    checkTraining();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns(dimension());
+//    for (unsigned int i=0; i<dimension()-dimension_input(); ++i) {
+//        columns[i] = i+dimension_input();
+//    }
+//    for (unsigned int i=dimension()-dimension_input(), j=0; i<dimension();
+//    ++i,
+//    ++j) {
+//        columns[i] = j;
+//    }
+//    HierarchicalHMM target_model = extractSubmodel(columns);
+//    target_model.makeBimodal(dimension()-dimension_input());
+//    return target_model;
+//}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.hpp
new file mode 100644
index 0000000..849850b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHierarchicalHmm.hpp
@@ -0,0 +1,313 @@
+/*
+ * hierarchical_hmm.h
+ *
+ * Hierarchical Hidden Markov Model for Continuous Recognition and Regression
+ * (Multi-class)
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmm_lib_hierarchical_hmm_h
+#define xmm_lib_hierarchical_hmm_h
+
+#include "../../core/model/xmmModel.hpp"
+#include "../gmm/xmmGmm.hpp"
+#include "xmmHmmSingleClass.hpp"
+
+namespace xmm {
+/**
+ @ingroup HMM
+ @brief Hierarchical Hidden Markov Model for Continuous Recognition and
+ Regression (Multi-class)
+ */
+class HierarchicalHMM : public Model<SingleClassHMM, HMM> {
+  public:
+    /**
+     @brief Default exit transition for the highest level
+     */
+    static const double DEFAULT_EXITTRANSITION() { return 0.1; }
+
+    /**
+     @brief Constructor
+     @param bimodal specifies if the model should be used for regression
+     */
+    HierarchicalHMM(bool bimodal = false);
+
+    /**
+     @brief Copy Constructor
+     @param src Source Model
+     */
+    HierarchicalHMM(HierarchicalHMM const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit HierarchicalHMM(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    HierarchicalHMM& operator=(HierarchicalHMM const& src);
+
+    /** @name Class Manipulation */
+    ///@{
+
+    /**
+     @brief Remove a specific class by label
+     @param label label of the class to remove
+     */
+    virtual void removeClass(std::string const& label);
+
+    /**
+     @brief Remove All models
+     */
+    virtual void clear();
+
+    ///@}
+
+    /** @name Accessors */
+    ///@{
+
+    void addExitPoint(int state, float proba);
+
+    ///@}
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    virtual void reset();
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     */
+    virtual void filter(std::vector<float> const& observation);
+
+    ///@}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    //        /**
+    //         @brief Convert to bimodal HierarchicalHMM in place
+    //         @param dimension_input dimension of the input modality
+    //         @throws runtime_error if the model is already bimodal
+    //         @throws out_of_range if the requested input dimension is too
+    //         large
+    //         */
+    //        void makeBimodal(unsigned int dimension_input);
+    //
+    //        /**
+    //         @brief Convert to unimodal HierarchicalHMM in place
+    //         @throws runtime_error if the model is already unimodal
+    //         */
+    //        void makeUnimodal();
+    //
+    //        /**
+    //         @brief extract a submodel with the given columns
+    //         @param columns columns indices in the target order
+    //         @throws runtime_error if the model is training
+    //         @throws out_of_range if the number or indices of the requested
+    //         columns exceeds the current dimension
+    //         @return a HierarchicalHMM from the current model considering only
+    //         the target columns
+    //         */
+    //        HierarchicalHMM extractSubmodel(std::vector<unsigned int>&
+    //        columns)
+    //        const;
+    //
+    //        /**
+    //         @brief extract the submodel of the input modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal GMM of the input modality from the current
+    //         bimodal model
+    //         */
+    //        HierarchicalHMM extractSubmodel_input() const;
+    //
+    //        /**
+    //         @brief extract the submodel of the output modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal HierarchicalHMM of the output modality from
+    //         the current bimodal model
+    //         */
+    //        HierarchicalHMM extractSubmodel_output() const;
+    //
+    //        /**
+    //         @brief extract the model with reversed input and output
+    //         modalities
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a bimodal HierarchicalHMM  that swaps the input and
+    //         output modalities
+    //         */
+    //        HierarchicalHMM extract_inverse_model() const;
+
+    /**
+     @brief Results of the Filtering Process (Recognition + Regression)
+     */
+    Results<HMM> results;
+
+    /**
+     @brief Prior probabilities of the models
+     */
+    std::vector<double> prior;
+
+    /**
+     @brief exit probabilities of the model (probability to finish and go back
+     to the root)
+     */
+    std::vector<double> exit_transition;
+
+    /**
+     @brief Transition probabilities between models
+     */
+    std::vector<std::vector<double>> transition;
+
+  protected:
+    /**
+     @brief Finishes the background training process by joining threads and
+     deleting the models which training failed
+     @details: updates transition parameters after joining
+     */
+    virtual void joinTraining();
+
+    /**
+     @brief update high-level parameters when a new primitive is learned
+     @details  updated parameters: prior probabilities + transition matrix
+     */
+    void updateTransitionParameters();
+
+    /**
+     @brief ergodic learning update high-level prior probabilities -> equal
+     prior probs
+     */
+    void updatePrior();
+
+    /**
+     @brief ergodic learning: update high-level transition matrix
+     @details equal transition probabilities between primitive gestures
+     */
+    void updateTransition();
+
+    /**
+     @brief Update exit probabilities of each sub-model
+     */
+    void updateExitProbabilities();
+
+    virtual void addModelForClass(std::string const& label);
+
+    /**
+     @brief Normalize segment level prior and transition matrices
+     */
+    void normalizeTransitions();
+
+    /**
+     @brief Initialization of the Forward Algorithm for the hierarchical HMM.
+     see: Jules Francoise. Realtime Segmentation and Recognition of Gestures
+     using Hierarchical Markov Models. Master’s Thesis, Université Pierre et
+     Marie Curie, Ircam, 2011.
+     [http://articles.ircam.fr/textes/Francoise11a/index.pdf]
+     @param observation observation vector. If the model is bimodal, this should
+     be allocated for
+     both modalities, and should contain the observation on the input modality.
+     The predicted
+     output will be appended to the input modality observation
+     */
+    void forward_init(std::vector<float> const& observation);
+
+    /**
+     @brief Update of the Forward Algorithm for the hierarchical HMM.
+     see: Jules Francoise. Realtime Segmentation and Recognition of Gestures
+     using Hierarchical Markov Models. Master’s Thesis, Université Pierre et
+     Marie Curie, Ircam, 2011.
+     [http://articles.ircam.fr/textes/Francoise11a/index.pdf]
+     @param observation observation vector. If the model is bimodal, this should
+     be allocated for
+     both modalities, and should contain the observation on the input modality.
+     The predicted
+     output will be appended to the input modality observation
+     */
+    void forward_update(std::vector<float> const& observation);
+
+    /**
+     @brief get instantaneous likelihood
+     *
+     get instantaneous likelihood on alpha variable for exit state exitNum.
+     @param exitNum number of exit state (0=continue, 1=transition, 2=back to
+     root). if -1, get likelihood over all exit states
+     @param likelihoodVector likelihood vector (size nbPrimitives)
+     */
+    void likelihoodAlpha(int exitNum,
+                         std::vector<double>& likelihoodVector) const;
+
+    /**
+     @brief Update the results (Likelihoods)
+     */
+    void updateResults();
+
+    /**
+     @brief Defines if the forward algorithm has been initialized
+     */
+    bool forward_initialized_;
+
+    /**
+     @brief intermediate Forward variable (used in Frontier algorithm)
+     */
+    std::vector<double> frontier_v1_;
+
+    /**
+     @brief intermediate Forward variable (used in Frontier algorithm)
+     */
+    std::vector<double> frontier_v2_;
+};
+}
+
+#endif
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.cpp
new file mode 100644
index 0000000..2e4711a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.cpp
@@ -0,0 +1,199 @@
+/*
+ * xmmHmmParameters.cpp
+ *
+ * Parameters of Hidden Markov Models
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmHmmParameters.hpp"
+
+xmm::ClassParameters<xmm::HMM>::ClassParameters()
+    : changed(true),
+      states(10, 1),
+      gaussians(1, 1),
+      relative_regularization(1.0e-2, 1e-20),
+      absolute_regularization(1.0e-3, 1e-20),
+      covariance_mode(GaussianDistribution::CovarianceMode::Full),
+      transition_mode(HMM::TransitionMode::LeftRight),
+      regression_estimator(HMM::RegressionEstimator::Full),
+      hierarchical(true) {
+    states.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    gaussians.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    relative_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    absolute_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    transition_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    regression_estimator.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    hierarchical.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::HMM>::ClassParameters(ClassParameters<HMM> const& src)
+    : changed(true),
+      states(src.states),
+      gaussians(src.gaussians),
+      relative_regularization(src.relative_regularization),
+      absolute_regularization(src.absolute_regularization),
+      covariance_mode(src.covariance_mode),
+      transition_mode(src.transition_mode),
+      regression_estimator(src.regression_estimator),
+      hierarchical(src.hierarchical) {
+    states.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    gaussians.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    relative_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    absolute_regularization.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    covariance_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    transition_mode.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    regression_estimator.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    hierarchical.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::HMM>::ClassParameters(Json::Value const& root)
+    : ClassParameters() {
+    states.set(root["states"].asInt());
+    gaussians.set(root["gaussians"].asInt());
+    relative_regularization.set(root["relative_regularization"].asFloat());
+    absolute_regularization.set(root["absolute_regularization"].asFloat());
+    covariance_mode.set(static_cast<GaussianDistribution::CovarianceMode>(
+        root["covariance_mode"].asInt()));
+    transition_mode.set(
+        static_cast<HMM::TransitionMode>(root["transition_mode"].asInt()));
+    regression_estimator.set(static_cast<HMM::RegressionEstimator>(
+        root["regression_estimator"].asInt()));
+    hierarchical.set(root["hierarchical"].asBool());
+}
+
+xmm::ClassParameters<xmm::HMM>& xmm::ClassParameters<xmm::HMM>::operator=(
+    ClassParameters<HMM> const& src) {
+    if (this != &src) {
+        changed = true;
+        states = src.states;
+        gaussians = src.gaussians;
+        relative_regularization = src.relative_regularization;
+        absolute_regularization = src.absolute_regularization;
+        covariance_mode = src.covariance_mode;
+        transition_mode = src.transition_mode;
+        regression_estimator = src.regression_estimator;
+        states.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        gaussians.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        relative_regularization.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        absolute_regularization.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        covariance_mode.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        transition_mode.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        regression_estimator.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+        hierarchical.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::HMM>::onAttributeChange);
+    }
+    return *this;
+}
+
+Json::Value xmm::ClassParameters<xmm::HMM>::toJson() const {
+    Json::Value root;
+    root["states"] = static_cast<int>(states.get());
+    root["gaussians"] = static_cast<int>(gaussians.get());
+    root["relative_regularization"] = relative_regularization.get();
+    root["absolute_regularization"] = absolute_regularization.get();
+    root["covariance_mode"] = static_cast<int>(covariance_mode.get());
+    root["transition_mode"] = static_cast<int>(transition_mode.get());
+    root["regression_estimator"] = static_cast<int>(regression_estimator.get());
+    root["hierarchical"] = hierarchical.get();
+    return root;
+}
+
+void xmm::ClassParameters<xmm::HMM>::fromJson(Json::Value const& root) {
+    try {
+        ClassParameters<HMM> tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+void xmm::ClassParameters<xmm::HMM>::onAttributeChange(
+    AttributeBase* attr_pointer) {
+    changed = true;
+    attr_pointer->changed = false;
+}
+
+template <>
+void xmm::checkLimits<xmm::HMM::TransitionMode>(
+    xmm::HMM::TransitionMode const& value,
+    xmm::HMM::TransitionMode const& limit_min,
+    xmm::HMM::TransitionMode const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error(
+            "Attribute value out of range. Range: [" +
+            std::to_string(static_cast<int>(limit_min)) + " ; " +
+            std::to_string(static_cast<int>(limit_max)) + "]");
+}
+
+template <>
+xmm::HMM::TransitionMode
+xmm::Attribute<xmm::HMM::TransitionMode>::defaultLimitMax() {
+    return xmm::HMM::TransitionMode::LeftRight;
+}
+
+template <>
+void xmm::checkLimits<xmm::HMM::RegressionEstimator>(
+    xmm::HMM::RegressionEstimator const& value,
+    xmm::HMM::RegressionEstimator const& limit_min,
+    xmm::HMM::RegressionEstimator const& limit_max) {
+    if (value < limit_min || value > limit_max)
+        throw std::domain_error(
+            "Attribute value out of range. Range: [" +
+            std::to_string(static_cast<int>(limit_min)) + " ; " +
+            std::to_string(static_cast<int>(limit_max)) + "]");
+}
+
+template <>
+xmm::HMM::RegressionEstimator
+xmm::Attribute<xmm::HMM::RegressionEstimator>::defaultLimitMax() {
+    return xmm::HMM::RegressionEstimator::Likeliest;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.hpp
new file mode 100644
index 0000000..326162b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmParameters.hpp
@@ -0,0 +1,208 @@
+/*
+ * xmmHmmParameters.hpp
+ *
+ * Parameters of Hidden Markov Models
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmHmmParameters_hpp
+#define xmmHmmParameters_hpp
+
+#include "../../core/distributions/xmmGaussianDistribution.hpp"
+#include "../../core/model/xmmModelParameters.hpp"
+
+namespace xmm {
+/**
+ @defgroup HMM [Models] Hidden Markov Models
+ */
+class HMM {
+  public:
+    /**
+     @brief Type of Transition Matrix
+     */
+    enum class TransitionMode {
+        /**
+         @brief Ergodic Transition Matrix
+         */
+        Ergodic = 0,
+
+        /**
+         @brief Left-Right Transition model
+         @details The only authorized transitions are: auto-transition and
+         transition to the next state
+         */
+        LeftRight = 1
+    };
+
+    /**
+     @enum RegressionEstimator
+     @brief Estimator for the regression with HMMs
+     */
+    enum class RegressionEstimator {
+        /**
+         @brief The output is estimated by a weighted regression over all states
+         */
+        Full = 0,
+
+        /**
+         @brief The output is estimated by a weighted regression over a window
+         centered around
+         the likeliest state
+         */
+        Windowed = 1,
+
+        /**
+         @brief The output is estimated by a regression using the likeliest
+         state only.
+         */
+        Likeliest = 2
+    };
+};
+
+/**
+ @ingroup HMM
+ @brief Parameters specific to each class of a Hidden Markov Model
+ */
+template <>
+class ClassParameters<HMM> {
+  public:
+    /**
+     @brief Default Constructor
+     */
+    ClassParameters();
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    ClassParameters(ClassParameters const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit ClassParameters(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    ClassParameters& operator=(ClassParameters const& src);
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /**
+     @brief specifies if parameters have changed (model is invalid)
+     */
+    bool changed = false;
+
+    /**
+     @brief Number of hidden states
+     */
+    Attribute<unsigned int> states;
+
+    /**
+     @brief Number of Gaussian Mixture Components
+     */
+    Attribute<unsigned int> gaussians;
+
+    /**
+     @brief Offset Added to the diagonal of covariance matrices for convergence
+     (Relative to Data Variance)
+     */
+    Attribute<double> relative_regularization;
+
+    /**
+     @brief Offset Added to the diagonal of covariance matrices for convergence
+     (minimum value)
+     */
+    Attribute<double> absolute_regularization;
+
+    /**
+     @brief Covariance Mode
+     */
+    Attribute<GaussianDistribution::CovarianceMode> covariance_mode;
+
+    /**
+     @brief Transition matrix of the model (left-right vs ergodic)
+     */
+    Attribute<HMM::TransitionMode> transition_mode;
+
+    /**
+     @brief Type of regression estimator
+     */
+    Attribute<HMM::RegressionEstimator> regression_estimator;
+
+    /**
+     @brief specifies if the decoding algorithm is hierarchical or
+     class-conditional
+     */
+    Attribute<bool> hierarchical;
+
+  protected:
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+};
+
+template <>
+void checkLimits<HMM::TransitionMode>(HMM::TransitionMode const& value,
+                                      HMM::TransitionMode const& limit_min,
+                                      HMM::TransitionMode const& limit_max);
+
+template <>
+HMM::TransitionMode Attribute<HMM::TransitionMode>::defaultLimitMax();
+
+template <>
+void checkLimits<HMM::RegressionEstimator>(
+    HMM::RegressionEstimator const& value,
+    HMM::RegressionEstimator const& limit_min,
+    HMM::RegressionEstimator const& limit_max);
+
+template <>
+HMM::RegressionEstimator Attribute<HMM::RegressionEstimator>::defaultLimitMax();
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmResults.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmResults.hpp
new file mode 100644
index 0000000..633df90
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmResults.hpp
@@ -0,0 +1,93 @@
+/*
+ * xmmHmmResults.hpp
+ *
+ * Results of Hidden Markov Models for a single class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmHmmResults_hpp
+#define xmmHmmResults_hpp
+
+#include "../../core/model/xmmModelResults.hpp"
+
+namespace xmm {
+/**
+ @ingroup HMM
+ @brief Results of Hidden Markov Models for a single class
+ */
+template <>
+struct ClassResults<HMM> {
+    /**
+     @brief Instantaneous likelihood
+     */
+    double instant_likelihood;
+
+    /**
+     @brief Cumulative log-likelihood computed on a sliding window
+     */
+    double log_likelihood;
+
+    /**
+     @brief Predicted Output parameter vector (only used in regression mode)
+     @warning this variable only allocated if the model is bimodal
+     */
+    std::vector<float> output_values;
+
+    /**
+     @brief Predicted Output covariance associated with the generated parameter
+     vector (only used in regression mode)
+     @warning this variable only allocated if the model is bimodal
+     */
+    std::vector<float> output_covariance;
+
+    /**
+     @brief Estimated time progression.
+     @details The time progression is computed as the centroid of the state
+     probability distribution estimated by the forward algorithm
+     */
+    double progress;
+
+    /**
+     @brief Likelihood to exit the gesture on the next time step
+     */
+    double exit_likelihood;
+
+    /**
+     @brief Likelihood to exit the gesture on the next time step (normalized -/-
+     total likelihood)
+     */
+    double exit_ratio;
+
+    /**
+     @brief Index of the likeliest state
+     */
+    unsigned int likeliest_state;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.cpp
new file mode 100644
index 0000000..9a14d69
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.cpp
@@ -0,0 +1,1480 @@
+/*
+ * xmmHmmSingleClass.cpp
+ *
+ * Hidden Markov Model Definition for a Single Class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmHmmSingleClass.hpp"
+
+xmm::SingleClassHMM::SingleClassHMM(std::shared_ptr<SharedParameters> p)
+    : SingleClassProbabilisticModel(p), is_hierarchical_(true) {}
+
+xmm::SingleClassHMM::SingleClassHMM(SingleClassHMM const& src)
+    : SingleClassProbabilisticModel(src),
+      parameters(src.parameters),
+      states(src.states),
+      prior(src.prior),
+      transition(src.transition),
+      is_hierarchical_(src.is_hierarchical_),
+      exit_probabilities_(src.exit_probabilities_) {
+    alpha.resize(parameters.states.get());
+    previous_alpha_.resize(parameters.states.get());
+    beta_.resize(parameters.states.get());
+    previous_beta_.resize(parameters.states.get());
+}
+
+xmm::SingleClassHMM::SingleClassHMM(std::shared_ptr<SharedParameters> p,
+                                    Json::Value const& root)
+    : SingleClassProbabilisticModel(p, root), is_hierarchical_(true) {
+    parameters.fromJson(root["parameters"]);
+
+    allocate();
+
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        json2vector(root["prior"], prior, parameters.states.get());
+        json2vector(root["transition"], transition,
+                    parameters.states.get() * parameters.states.get());
+    } else {
+        json2vector(root["transition"], transition,
+                    2 * parameters.states.get());
+    }
+    if (root.isMember("exitProbabilities")) {
+        json2vector(root["exitProbabilities"], exit_probabilities_,
+                    parameters.states.get());
+    }
+
+    int s(0);
+    for (auto p : root["states"]) {
+        states[s++].fromJson(p);
+    }
+}
+
+xmm::SingleClassHMM& xmm::SingleClassHMM::operator=(SingleClassHMM const& src) {
+    if (this != &src) {
+        SingleClassProbabilisticModel::operator=(src);
+
+        is_hierarchical_ = src.is_hierarchical_;
+        parameters = src.parameters;
+        transition = src.transition;
+        prior = src.prior;
+        exit_probabilities_ = src.exit_probabilities_;
+        states = src.states;
+
+        alpha.resize(parameters.states.get());
+        previous_alpha_.resize(parameters.states.get());
+        beta_.resize(parameters.states.get());
+        previous_beta_.resize(parameters.states.get());
+    }
+    return *this;
+}
+
+#pragma mark -
+#pragma mark Parameters initialization
+void xmm::SingleClassHMM::allocate() {
+    unsigned int numStates = parameters.states.get();
+
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        prior.resize(numStates);
+        transition.resize(numStates * numStates);
+    } else {
+        prior.clear();
+        transition.resize(numStates * 2);
+    }
+    alpha.resize(numStates);
+    previous_alpha_.resize(numStates);
+    beta_.resize(numStates);
+    previous_beta_.resize(numStates);
+    SingleClassGMM tmpGMM(shared_parameters);
+    tmpGMM.parameters.gaussians.set(parameters.gaussians.get());
+    tmpGMM.parameters.relative_regularization.set(
+        parameters.relative_regularization.get());
+    tmpGMM.parameters.absolute_regularization.set(
+        parameters.absolute_regularization.get());
+    tmpGMM.parameters.covariance_mode.set(parameters.covariance_mode.get());
+    states.assign(numStates, tmpGMM);
+    for (auto& state : states) {
+        state.allocate();
+    }
+    if (is_hierarchical_) updateExitProbabilities(NULL);
+}
+
+void xmm::SingleClassHMM::initParametersToDefault(
+    std::vector<float> const& dataStddev) {
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        setErgodic();
+    } else {
+        setLeftRight();
+    }
+    for (int i = 0; i < parameters.states.get(); i++) {
+        states[i].initParametersToDefault(dataStddev);
+    }
+}
+
+void xmm::SingleClassHMM::initMeansWithAllPhrases(TrainingSet* trainingSet) {
+    if (!trainingSet || trainingSet->empty()) return;
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int numStates = parameters.states.get();
+
+    for (int n = 0; n < numStates; n++)
+        for (int d = 0; d < dimension; d++)
+            states[n].components[0].mean[d] = 0.0;
+
+    std::vector<int> factor(numStates, 0);
+    for (auto phrase_it = trainingSet->begin(); phrase_it != trainingSet->end();
+         phrase_it++) {
+        unsigned int step = phrase_it->second->size() / numStates;
+        unsigned int offset(0);
+        for (unsigned int n = 0; n < numStates; n++) {
+            for (unsigned int t = 0; t < step; t++) {
+                for (unsigned int d = 0; d < dimension; d++) {
+                    states[n].components[0].mean[d] +=
+                        phrase_it->second->getValue(offset + t, d);
+                }
+            }
+            offset += step;
+            factor[n] += step;
+        }
+    }
+
+    for (int n = 0; n < numStates; n++)
+        for (int d = 0; d < dimension; d++)
+            states[n].components[0].mean[d] /= factor[n];
+}
+
+void xmm::SingleClassHMM::initCovariances_fullyObserved(
+    TrainingSet* trainingSet) {
+    // TODO: simplify with covariance symmetricity.
+    if (!trainingSet || trainingSet->empty()) return;
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int numStates = parameters.states.get();
+
+    if (parameters.covariance_mode.get() ==
+        GaussianDistribution::CovarianceMode::Full) {
+        for (int n = 0; n < numStates; n++)
+            states[n].components[0].covariance.assign(dimension * dimension,
+                                                      0.0);
+    } else {
+        for (int n = 0; n < numStates; n++)
+            states[n].components[0].covariance.assign(dimension, 0.0);
+    }
+
+    std::vector<int> factor(numStates, 0);
+    std::vector<double> othermeans(numStates * dimension, 0.0);
+    for (auto phrase_it = trainingSet->begin(); phrase_it != trainingSet->end();
+         phrase_it++) {
+        unsigned int step = phrase_it->second->size() / numStates;
+        unsigned int offset(0);
+        for (unsigned int n = 0; n < numStates; n++) {
+            for (unsigned int t = 0; t < step; t++) {
+                for (unsigned int d1 = 0; d1 < dimension; d1++) {
+                    othermeans[n * dimension + d1] +=
+                        phrase_it->second->getValue(offset + t, d1);
+                    if (parameters.covariance_mode.get() ==
+                        GaussianDistribution::CovarianceMode::Full) {
+                        for (int d2 = 0; d2 < dimension; d2++) {
+                            states[n].components[0].covariance[d1 * dimension +
+                                                               d2] +=
+                                phrase_it->second->getValue(offset + t, d1) *
+                                phrase_it->second->getValue(offset + t, d2);
+                        }
+                    } else {
+                        float value =
+                            phrase_it->second->getValue(offset + t, d1);
+                        states[n].components[0].covariance[d1] += value * value;
+                    }
+                }
+            }
+            offset += step;
+            factor[n] += step;
+        }
+    }
+
+    for (unsigned int n = 0; n < numStates; n++)
+        for (unsigned int d1 = 0; d1 < dimension; d1++) {
+            othermeans[n * dimension + d1] /= factor[n];
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                for (int d2 = 0; d2 < dimension; d2++)
+                    states[n].components[0].covariance[d1 * dimension + d2] /=
+                        factor[n];
+            } else {
+                states[n].components[0].covariance[d1] /= factor[n];
+            }
+        }
+
+    for (int n = 0; n < numStates; n++) {
+        for (int d1 = 0; d1 < dimension; d1++) {
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                for (int d2 = 0; d2 < dimension; d2++)
+                    states[n].components[0].covariance[d1 * dimension + d2] -=
+                        othermeans[n * dimension + d1] *
+                        othermeans[n * dimension + d2];
+            } else {
+                states[n].components[0].covariance[d1] -=
+                    othermeans[n * dimension + d1] *
+                    othermeans[n * dimension + d1];
+            }
+        }
+        states[n].addCovarianceOffset();
+        states[n].updateInverseCovariances();
+    }
+}
+
+void xmm::SingleClassHMM::initMeansCovariancesWithGMMEM(
+    TrainingSet* trainingSet) {
+    unsigned int numStates = parameters.states.get();
+
+    for (unsigned int n = 0; n < numStates; n++) {
+        TrainingSet temp_ts(MemoryMode::SharedMemory,
+                            shared_parameters->bimodal.get()
+                                ? Multimodality::Bimodal
+                                : Multimodality::Unimodal);
+        temp_ts.dimension.set(shared_parameters->dimension.get());
+        temp_ts.dimension_input.set(shared_parameters->dimension_input.get());
+        for (auto phrase_it = trainingSet->begin();
+             phrase_it != trainingSet->end(); phrase_it++) {
+            unsigned int step = phrase_it->second->size() / numStates;
+            if (step == 0) continue;
+            temp_ts.addPhrase(phrase_it->first, label);
+            if (shared_parameters->bimodal.get())
+                temp_ts.getPhrase(phrase_it->first)
+                    ->connect(phrase_it->second->getPointer_input(n * step),
+                              phrase_it->second->getPointer_output(n * step),
+                              step);
+            else
+                temp_ts.getPhrase(phrase_it->first)
+                    ->connect(phrase_it->second->getPointer(n * step), step);
+        }
+        if (temp_ts.empty()) continue;
+        SingleClassGMM tmpGMM(shared_parameters);
+        tmpGMM.parameters.gaussians.set(parameters.gaussians.get());
+        tmpGMM.parameters.relative_regularization.set(
+            parameters.relative_regularization.get());
+        tmpGMM.parameters.absolute_regularization.set(
+            parameters.absolute_regularization.get());
+        tmpGMM.parameters.covariance_mode.set(parameters.covariance_mode.get());
+        tmpGMM.train(&temp_ts);
+        for (unsigned int c = 0; c < parameters.gaussians.get(); c++) {
+            states[n].components[c].mean = tmpGMM.components[c].mean;
+            states[n].components[c].covariance =
+                tmpGMM.components[c].covariance;
+            states[n].updateInverseCovariances();
+        }
+    }
+}
+
+void xmm::SingleClassHMM::setErgodic() {
+    unsigned int numStates = parameters.states.get();
+
+    for (int i = 0; i < numStates; i++) {
+        prior[i] = 1 / (float)numStates;
+        for (int j = 0; j < numStates; j++) {
+            transition[i * numStates + j] = 1 / (float)numStates;
+        }
+    }
+}
+
+void xmm::SingleClassHMM::setLeftRight() {
+    unsigned int numStates = parameters.states.get();
+
+    transition.assign(numStates * 2, 0.5);
+    transition[(numStates - 1) * 2] = 1.;
+    transition[(numStates - 1) * 2 + 1] = 0.;
+}
+
+void xmm::SingleClassHMM::normalizeTransitions() {
+    unsigned int numStates = parameters.states.get();
+
+    double norm_transition;
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        double norm_prior(0.);
+        for (int i = 0; i < numStates; i++) {
+            norm_prior += prior[i];
+            norm_transition = 0.;
+            for (int j = 0; j < numStates; j++)
+                norm_transition += transition[i * numStates + j];
+            for (int j = 0; j < numStates; j++)
+                transition[i * numStates + j] /= norm_transition;
+        }
+        for (int i = 0; i < numStates; i++) prior[i] /= norm_prior;
+    } else {
+        for (int i = 0; i < numStates; i++) {
+            norm_transition = transition[i * 2] + transition[i * 2 + 1];
+            transition[i * 2] /= norm_transition;
+            transition[i * 2 + 1] /= norm_transition;
+        }
+    }
+}
+
+#pragma mark -
+#pragma mark Forward-Backward algorithm
+double xmm::SingleClassHMM::forward_init(const float* observation,
+                                         const float* observation_output) {
+    unsigned int numStates = parameters.states.get();
+
+    double norm_const(0.);
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        for (int i = 0; i < numStates; i++) {
+            if (shared_parameters->bimodal.get()) {
+                if (observation_output)
+                    alpha[i] = prior[i] *
+                               states[i].obsProb_bimodal(observation,
+                                                         observation_output);
+                else
+                    alpha[i] = prior[i] * states[i].obsProb_input(observation);
+            } else {
+                alpha[i] = prior[i] * states[i].obsProb(observation);
+            }
+            norm_const += alpha[i];
+        }
+    } else {
+        alpha.assign(numStates, 0.0);
+        if (shared_parameters->bimodal.get()) {
+            if (observation_output)
+                alpha[0] =
+                    states[0].obsProb_bimodal(observation, observation_output);
+            else
+                alpha[0] = states[0].obsProb_input(observation);
+        } else {
+            alpha[0] = states[0].obsProb(observation);
+        }
+        norm_const += alpha[0];
+    }
+    if (norm_const > 0) {
+        for (int i = 0; i < numStates; i++) {
+            alpha[i] /= norm_const;
+        }
+        return 1 / norm_const;
+    } else {
+        for (int j = 0; j < numStates; j++) {
+            alpha[j] = 1. / double(numStates);
+        }
+        return 1.;
+    }
+}
+
+double xmm::SingleClassHMM::forward_update(const float* observation,
+                                           const float* observation_output) {
+    unsigned int numStates = parameters.states.get();
+
+    double norm_const(0.);
+    previous_alpha_ = alpha;
+    for (int j = 0; j < numStates; j++) {
+        alpha[j] = 0.;
+        if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+            for (int i = 0; i < numStates; i++) {
+                alpha[j] += previous_alpha_[i] * transition[i * numStates + j];
+            }
+        } else {
+            alpha[j] += previous_alpha_[j] * transition[j * 2];
+            if (j > 0) {
+                alpha[j] +=
+                    previous_alpha_[j - 1] * transition[(j - 1) * 2 + 1];
+            } else {
+                alpha[0] += previous_alpha_[numStates - 1] *
+                            transition[numStates * 2 - 1];
+            }
+        }
+        if (shared_parameters->bimodal.get()) {
+            if (observation_output)
+                alpha[j] *=
+                    states[j].obsProb_bimodal(observation, observation_output);
+            else
+                alpha[j] *= states[j].obsProb_input(observation);
+        } else {
+            alpha[j] *= states[j].obsProb(observation);
+        }
+        norm_const += alpha[j];
+    }
+    if (norm_const > 1e-300) {
+        for (int j = 0; j < numStates; j++) {
+            alpha[j] /= norm_const;
+        }
+        return 1. / norm_const;
+    } else {
+        return 0.;
+    }
+}
+
+void xmm::SingleClassHMM::backward_init(double ct) {
+    for (int i = 0; i < parameters.states.get(); i++) beta_[i] = ct;
+}
+
+void xmm::SingleClassHMM::backward_update(double ct, const float* observation,
+                                          const float* observation_output) {
+    unsigned int numStates = parameters.states.get();
+
+    previous_beta_ = beta_;
+    for (int i = 0; i < numStates; i++) {
+        beta_[i] = 0.;
+        if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+            for (int j = 0; j < numStates; j++) {
+                if (shared_parameters->bimodal.get()) {
+                    if (observation_output)
+                        beta_[i] += transition[i * numStates + j] *
+                                    previous_beta_[j] *
+                                    states[j].obsProb_bimodal(
+                                        observation, observation_output);
+                    else
+                        beta_[i] += transition[i * numStates + j] *
+                                    previous_beta_[j] *
+                                    states[j].obsProb_input(observation);
+                } else {
+                    beta_[i] += transition[i * numStates + j] *
+                                previous_beta_[j] *
+                                states[j].obsProb(observation);
+                }
+            }
+        } else {
+            if (shared_parameters->bimodal.get()) {
+                if (observation_output)
+                    beta_[i] += transition[i * 2] * previous_beta_[i] *
+                                states[i].obsProb_bimodal(observation,
+                                                          observation_output);
+                else
+                    beta_[i] += transition[i * 2] * previous_beta_[i] *
+                                states[i].obsProb_input(observation);
+            } else {
+                beta_[i] += transition[i * 2] * previous_beta_[i] *
+                            states[i].obsProb(observation);
+            }
+            if (i < numStates - 1) {
+                if (shared_parameters->bimodal.get()) {
+                    if (observation_output)
+                        beta_[i] += transition[i * 2 + 1] *
+                                    previous_beta_[i + 1] *
+                                    states[i + 1].obsProb_bimodal(
+                                        observation, observation_output);
+                    else
+                        beta_[i] += transition[i * 2 + 1] *
+                                    previous_beta_[i + 1] *
+                                    states[i + 1].obsProb_input(observation);
+                } else {
+                    beta_[i] += transition[i * 2 + 1] * previous_beta_[i + 1] *
+                                states[i + 1].obsProb(observation);
+                }
+            }
+        }
+        beta_[i] *= ct;
+        if (std::isnan(beta_[i]) || std::isinf(fabs(beta_[i]))) {
+            beta_[i] = 1e100;
+        }
+    }
+}
+
+#pragma mark -
+#pragma mark Training algorithm
+void xmm::SingleClassHMM::emAlgorithmInit(TrainingSet* trainingSet) {
+    if (!trainingSet || trainingSet->empty()) return;
+    unsigned int numStates = parameters.states.get();
+    unsigned int numGaussians = parameters.gaussians.get();
+
+    initParametersToDefault(trainingSet->standardDeviation());
+
+    if (numGaussians > 0) {  // TODO: weird > 0
+        initMeansCovariancesWithGMMEM(trainingSet);
+    } else {
+        initMeansWithAllPhrases(trainingSet);
+        initCovariances_fullyObserved(trainingSet);
+    }
+
+    unsigned int nbPhrases = trainingSet->size();
+
+    // Initialize Algorithm variables
+    // ---------------------------------------
+    gamma_sequence_.resize(nbPhrases);
+    epsilon_sequence_.resize(nbPhrases);
+    gamma_sequence_per_mixture_.resize(nbPhrases);
+    unsigned int maxT(0);
+    unsigned int i(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it) {
+        unsigned int T = it->second->size();
+        gamma_sequence_[i].resize(T * numStates);
+        if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+            epsilon_sequence_[i].resize(T * numStates * numStates);
+        } else {
+            epsilon_sequence_[i].resize(T * 2 * numStates);
+        }
+        gamma_sequence_per_mixture_[i].resize(numGaussians);
+        for (int c = 0; c < numGaussians; c++) {
+            gamma_sequence_per_mixture_[i][c].resize(T * numStates);
+        }
+        if (T > maxT) {
+            maxT = T;
+        }
+        i++;
+    }
+    alpha_seq_.resize(maxT * numStates);
+    beta_seq_.resize(maxT * numStates);
+
+    gamma_sum_.resize(numStates);
+    gamma_sum_per_mixture_.resize(numStates * numGaussians);
+}
+
+void xmm::SingleClassHMM::emAlgorithmTerminate() {
+    normalizeTransitions();
+    gamma_sequence_.clear();
+    epsilon_sequence_.clear();
+    gamma_sequence_per_mixture_.clear();
+    alpha_seq_.clear();
+    beta_seq_.clear();
+    gamma_sum_.clear();
+    gamma_sum_per_mixture_.clear();
+    SingleClassProbabilisticModel::emAlgorithmTerminate();
+}
+
+double xmm::SingleClassHMM::emAlgorithmUpdate(TrainingSet* trainingSet) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int numStates = parameters.states.get();
+
+    double log_prob(0.);
+
+    // Forward-backward for each phrase
+    // =================================================
+    int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it) {
+        if (it->second->size() > 0)
+            log_prob += baumWelch_forwardBackward(it->second, phraseIndex);
+        phraseIndex++;
+    }
+
+    baumWelch_gammaSum(trainingSet);
+
+    // Re-estimate model parameters
+    // =================================================
+
+    // set covariance and mixture coefficients to zero for each state
+    for (int i = 0; i < numStates; i++) {
+        for (int c = 0; c < parameters.gaussians.get(); c++) {
+            states[i].mixture_coeffs[c] = 0.;
+            if (parameters.covariance_mode.get() ==
+                GaussianDistribution::CovarianceMode::Full) {
+                states[i].components[c].covariance.assign(dimension * dimension,
+                                                          0.0);
+            } else {
+                states[i].components[c].covariance.assign(dimension, 0.0);
+            }
+        }
+    }
+
+    baumWelch_estimateMixtureCoefficients(trainingSet);
+    baumWelch_estimateMeans(trainingSet);
+    baumWelch_estimateCovariances(trainingSet);
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic)
+        baumWelch_estimatePrior(trainingSet);
+    baumWelch_estimateTransitions(trainingSet);
+
+    return log_prob;
+}
+
+double xmm::SingleClassHMM::baumWelch_forward_update(
+    std::vector<double>::iterator observation_likelihoods) {
+    unsigned int numStates = parameters.states.get();
+
+    double norm_const(0.);
+    previous_alpha_ = alpha;
+    for (int j = 0; j < numStates; j++) {
+        alpha[j] = 0.;
+        if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+            for (int i = 0; i < numStates; i++) {
+                alpha[j] += previous_alpha_[i] * transition[i * numStates + j];
+            }
+        } else {
+            alpha[j] += previous_alpha_[j] * transition[j * 2];
+            if (j > 0) {
+                alpha[j] +=
+                    previous_alpha_[j - 1] * transition[(j - 1) * 2 + 1];
+            } else {
+                alpha[0] += previous_alpha_[numStates - 1] *
+                            transition[numStates * 2 - 1];
+            }
+        }
+        alpha[j] *= observation_likelihoods[j];
+        norm_const += alpha[j];
+    }
+    if (norm_const > 1e-300) {
+        for (int j = 0; j < numStates; j++) {
+            alpha[j] /= norm_const;
+        }
+        return 1. / norm_const;
+    } else {
+        return 0.;
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_backward_update(
+    double ct, std::vector<double>::iterator observation_likelihoods) {
+    unsigned int numStates = parameters.states.get();
+
+    previous_beta_ = beta_;
+    for (int i = 0; i < numStates; i++) {
+        beta_[i] = 0.;
+        if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+            for (int j = 0; j < numStates; j++) {
+                beta_[i] += transition[i * numStates + j] * previous_beta_[j] *
+                            observation_likelihoods[j];
+            }
+        } else {
+            beta_[i] += transition[i * 2] * previous_beta_[i] *
+                        observation_likelihoods[i];
+            if (i < numStates - 1) {
+                beta_[i] += transition[i * 2 + 1] * previous_beta_[i + 1] *
+                            observation_likelihoods[i + 1];
+            }
+        }
+        beta_[i] *= ct;
+        if (std::isnan(beta_[i]) || std::isinf(fabs(beta_[i]))) {
+            beta_[i] = 1e100;
+        }
+    }
+}
+
+double xmm::SingleClassHMM::baumWelch_forwardBackward(
+    std::shared_ptr<Phrase> currentPhrase, int phraseIndex) {
+    unsigned int T = currentPhrase->size();
+    unsigned int numStates = parameters.states.get();
+
+    std::vector<double> ct(T);
+    std::vector<double>::iterator alpha_seq_it = alpha_seq_.begin();
+
+    double log_prob;
+
+    std::vector<double> observation_probabilities(numStates * T);
+    for (unsigned int t = 0; t < T; ++t) {
+        for (unsigned int i = 0; i < numStates; i++) {
+            if (shared_parameters->bimodal.get()) {
+                observation_probabilities[t * numStates + i] =
+                    states[i].obsProb_bimodal(
+                        currentPhrase->getPointer_input(t),
+                        currentPhrase->getPointer_output(t));
+            } else {
+                observation_probabilities[t * numStates + i] =
+                    states[i].obsProb(currentPhrase->getPointer(t));
+            }
+        }
+    }
+
+    // Forward algorithm
+    if (shared_parameters->bimodal.get()) {
+        ct[0] = forward_init(currentPhrase->getPointer_input(0),
+                             currentPhrase->getPointer_output(0));
+    } else {
+        ct[0] = forward_init(currentPhrase->getPointer(0));
+    }
+    log_prob = -log(ct[0]);
+    copy(alpha.begin(), alpha.end(), alpha_seq_it);
+    alpha_seq_it += numStates;
+
+    for (int t = 1; t < T; t++) {
+        ct[t] = baumWelch_forward_update(observation_probabilities.begin() +
+                                         t * numStates);
+        log_prob -= log(ct[t]);
+        copy(alpha.begin(), alpha.end(), alpha_seq_it);
+        alpha_seq_it += numStates;
+    }
+
+    // Backward algorithm
+    backward_init(ct[T - 1]);
+    copy(beta_.begin(), beta_.end(), beta_seq_.begin() + (T - 1) * numStates);
+
+    for (int t = int(T - 2); t >= 0; t--) {
+        baumWelch_backward_update(
+            ct[t], observation_probabilities.begin() + (t + 1) * numStates);
+        copy(beta_.begin(), beta_.end(), beta_seq_.begin() + t * numStates);
+    }
+
+    // Compute Gamma Variable
+    for (int t = 0; t < T; t++) {
+        for (int i = 0; i < numStates; i++) {
+            gamma_sequence_[phraseIndex][t * numStates + i] =
+                alpha_seq_[t * numStates + i] * beta_seq_[t * numStates + i] /
+                ct[t];
+        }
+    }
+
+    // Compute Gamma variable for each mixture component
+    double oo;
+    double norm_const;
+
+    for (int t = 0; t < T; t++) {
+        for (int i = 0; i < numStates; i++) {
+            norm_const = 0.;
+            if (parameters.gaussians.get() == 1) {
+                oo = observation_probabilities[t * numStates + i];
+                gamma_sequence_per_mixture_[phraseIndex][0][t * numStates + i] =
+                    gamma_sequence_[phraseIndex][t * numStates + i] * oo;
+                norm_const += oo;
+            } else {
+                for (int c = 0; c < parameters.gaussians.get(); c++) {
+                    if (shared_parameters->bimodal.get()) {
+                        oo = states[i].obsProb_bimodal(
+                            currentPhrase->getPointer_input(t),
+                            currentPhrase->getPointer_output(t), c);
+                    } else {
+                        oo = states[i].obsProb(currentPhrase->getPointer(t), c);
+                    }
+                    gamma_sequence_per_mixture_[phraseIndex][c][t * numStates +
+                                                                i] =
+                        gamma_sequence_[phraseIndex][t * numStates + i] * oo;
+                    norm_const += oo;
+                }
+            }
+            if (norm_const > 0)
+                for (int c = 0; c < parameters.gaussians.get(); c++)
+                    gamma_sequence_per_mixture_[phraseIndex][c][t * numStates +
+                                                                i] /=
+                        norm_const;
+        }
+    }
+
+    // Compute Epsilon Variable
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        for (int t = 0; t < T - 1; t++) {
+            for (int i = 0; i < numStates; i++) {
+                for (int j = 0; j < numStates; j++) {
+                    epsilon_sequence_[phraseIndex][t * numStates * numStates +
+                                                   i * numStates + j] =
+                        alpha_seq_[t * numStates + i] *
+                        transition[i * numStates + j] *
+                        beta_seq_[(t + 1) * numStates + j];
+                    epsilon_sequence_[phraseIndex][t * numStates * numStates +
+                                                   i * numStates + j] *=
+                        observation_probabilities[(t + 1) * numStates + j];
+                }
+            }
+        }
+    } else {
+        for (int t = 0; t < T - 1; t++) {
+            for (int i = 0; i < numStates; i++) {
+                epsilon_sequence_[phraseIndex][t * 2 * numStates + i * 2] =
+                    alpha_seq_[t * numStates + i] * transition[i * 2] *
+                    beta_seq_[(t + 1) * numStates + i];
+                epsilon_sequence_[phraseIndex][t * 2 * numStates + i * 2] *=
+                    observation_probabilities[(t + 1) * numStates + i];
+                if (i < numStates - 1) {
+                    epsilon_sequence_[phraseIndex][t * 2 * numStates + i * 2 +
+                                                   1] =
+                        alpha_seq_[t * numStates + i] * transition[i * 2 + 1] *
+                        beta_seq_[(t + 1) * numStates + i + 1];
+                    epsilon_sequence_[phraseIndex][t * 2 * numStates + i * 2 +
+                                                   1] *=
+                        observation_probabilities[(t + 1) * numStates + i + 1];
+                }
+            }
+        }
+    }
+
+    return log_prob;
+}
+
+void xmm::SingleClassHMM::baumWelch_gammaSum(TrainingSet* trainingSet) {
+    unsigned int numStates = parameters.states.get();
+    unsigned int numGaussians = parameters.gaussians.get();
+
+    for (int i = 0; i < numStates; i++) {
+        gamma_sum_[i] = 0.;
+        for (int c = 0; c < numGaussians; c++) {
+            gamma_sum_per_mixture_[i * numGaussians + c] = 0.;
+        }
+    }
+
+    unsigned int phraseLength;
+    unsigned int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it) {
+        phraseLength = it->second->size();
+        for (int i = 0; i < numStates; i++) {
+            for (int t = 0; t < phraseLength; t++) {
+                gamma_sum_[i] +=
+                    gamma_sequence_[phraseIndex][t * numStates + i];
+                for (int c = 0; c < numGaussians; c++) {
+                    gamma_sum_per_mixture_[i * numGaussians + c] +=
+                        gamma_sequence_per_mixture_[phraseIndex][c]
+                                                   [t * numStates + i];
+                }
+            }
+        }
+        phraseIndex++;
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_estimateMixtureCoefficients(
+    TrainingSet* trainingSet) {
+    unsigned int numStates = parameters.states.get();
+
+    unsigned int phraseLength;
+    unsigned int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); ++it) {
+        phraseLength = it->second->size();
+        for (int i = 0; i < numStates; i++) {
+            for (int t = 0; t < phraseLength; t++) {
+                for (int c = 0; c < parameters.gaussians.get(); c++) {
+                    states[i].mixture_coeffs[c] += gamma_sequence_per_mixture_
+                        [phraseIndex][c][t * numStates + i];
+                }
+            }
+        }
+        phraseIndex++;
+    }
+
+    // Scale mixture coefficients
+    for (int i = 0; i < numStates; i++) {
+        states[i].normalizeMixtureCoeffs();
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_estimateMeans(TrainingSet* trainingSet) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int numStates = parameters.states.get();
+    unsigned int numGaussians = parameters.gaussians.get();
+
+    unsigned int phraseLength;
+
+    for (int i = 0; i < numStates; i++) {
+        for (int c = 0; c < numGaussians; c++) {
+            states[i].components[c].mean.assign(dimension, 0.0);
+        }
+    }
+
+    // Re-estimate Mean
+    int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); it++) {
+        phraseLength = it->second->size();
+        for (int i = 0; i < numStates; i++) {
+            for (int t = 0; t < phraseLength; t++) {
+                for (int c = 0; c < numGaussians; c++) {
+                    for (int d = 0; d < dimension; d++) {
+                        states[i].components[c].mean[d] +=
+                            gamma_sequence_per_mixture_[phraseIndex][c]
+                                                       [t * numStates + i] *
+                            it->second->getValue(t, d);
+                    }
+                }
+            }
+        }
+        phraseIndex++;
+    }
+
+    // Normalize mean
+    for (int i = 0; i < numStates; i++) {
+        for (int c = 0; c < numGaussians; c++) {
+            for (int d = 0; d < dimension; d++) {
+                if (gamma_sum_per_mixture_[i * numGaussians + c] > 0) {
+                    states[i].components[c].mean[d] /=
+                        gamma_sum_per_mixture_[i * numGaussians + c];
+                }
+                if (std::isnan(states[i].components[c].mean[d]))
+                    throw std::runtime_error("Convergence Error");
+            }
+        }
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_estimateCovariances(
+    TrainingSet* trainingSet) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int numStates = parameters.states.get();
+    unsigned int numGaussians = parameters.gaussians.get();
+
+    unsigned int phraseLength;
+
+    int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); it++) {
+        phraseLength = it->second->size();
+        for (int i = 0; i < numStates; i++) {
+            for (int t = 0; t < phraseLength; t++) {
+                for (int c = 0; c < numGaussians; c++) {
+                    for (int d1 = 0; d1 < dimension; d1++) {
+                        if (parameters.covariance_mode.get() ==
+                            GaussianDistribution::CovarianceMode::Full) {
+                            for (int d2 = d1; d2 < dimension; d2++) {
+                                states[i]
+                                    .components[c]
+                                    .covariance[d1 * dimension + d2] +=
+                                    gamma_sequence_per_mixture_
+                                        [phraseIndex][c][t * numStates + i] *
+                                    (it->second->getValue(t, d1) -
+                                     states[i].components[c].mean[d1]) *
+                                    (it->second->getValue(t, d2) -
+                                     states[i].components[c].mean[d2]);
+                            }
+                        } else {
+                            float value = it->second->getValue(t, d1) -
+                                          states[i].components[c].mean[d1];
+                            states[i].components[c].covariance[d1] +=
+                                gamma_sequence_per_mixture_[phraseIndex][c]
+                                                           [t * numStates + i] *
+                                value * value;
+                        }
+                    }
+                }
+            }
+        }
+        phraseIndex++;
+    }
+
+    // Scale covariance
+    for (int i = 0; i < numStates; i++) {
+        for (int c = 0; c < numGaussians; c++) {
+            if (gamma_sum_per_mixture_[i * numGaussians + c] > 0) {
+                for (int d1 = 0; d1 < dimension; d1++) {
+                    if (parameters.covariance_mode.get() ==
+                        GaussianDistribution::CovarianceMode::Full) {
+                        for (int d2 = d1; d2 < dimension; d2++) {
+                            states[i].components[c].covariance[d1 * dimension +
+                                                               d2] /=
+                                gamma_sum_per_mixture_[i * numGaussians + c];
+                            if (d1 != d2)
+                                states[i]
+                                    .components[c]
+                                    .covariance[d2 * dimension + d1] =
+                                    states[i]
+                                        .components[c]
+                                        .covariance[d1 * dimension + d2];
+                        }
+                    } else {
+                        states[i].components[c].covariance[d1] /=
+                            gamma_sum_per_mixture_[i * numGaussians + c];
+                    }
+                }
+            }
+        }
+        states[i].addCovarianceOffset();
+        states[i].updateInverseCovariances();
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_estimatePrior(TrainingSet* trainingSet) {
+    unsigned int numStates = parameters.states.get();
+
+    // Set prior vector to 0
+    for (int i = 0; i < numStates; i++) prior[i] = 0.;
+
+    // Re-estimate Prior probabilities
+    double sumprior = 0.;
+    int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); it++) {
+        for (int i = 0; i < numStates; i++) {
+            prior[i] += gamma_sequence_[phraseIndex][i];
+            sumprior += gamma_sequence_[phraseIndex][i];
+        }
+        phraseIndex++;
+    }
+
+    // Scale Prior vector
+    if (sumprior > 0.) {
+        for (int i = 0; i < numStates; i++) {
+            prior[i] /= sumprior;
+        }
+    }
+}
+
+void xmm::SingleClassHMM::baumWelch_estimateTransitions(
+    TrainingSet* trainingSet) {
+    unsigned int numStates = parameters.states.get();
+
+    // Set prior vector and transition matrix to 0
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        transition.assign(numStates * numStates, 0.0);
+    } else {
+        transition.assign(numStates * 2, 0.0);
+    }
+
+    unsigned int phraseLength;
+    // Re-estimate Prior and Transition probabilities
+    unsigned int phraseIndex(0);
+    for (auto it = trainingSet->cbegin(); it != trainingSet->cend(); it++) {
+        phraseLength = it->second->size();
+        if (phraseLength > 0) {
+            for (int i = 0; i < numStates; i++) {
+                // Experimental: A bit of regularization (sometimes avoids
+                // numerical
+                // errors)
+                if (parameters.transition_mode.get() ==
+                    HMM::TransitionMode::LeftRight) {
+                    transition[i * 2] += TRANSITION_REGULARIZATION();
+                    if (i < numStates - 1)
+                        transition[i * 2 + 1] += TRANSITION_REGULARIZATION();
+                    else
+                        transition[i * 2] += TRANSITION_REGULARIZATION();
+                }
+                // End Regularization
+                if (parameters.transition_mode.get() ==
+                    HMM::TransitionMode::Ergodic) {
+                    for (int j = 0; j < numStates; j++) {
+                        for (int t = 0; t < phraseLength - 1; t++) {
+                            transition[i * numStates + j] +=
+                                epsilon_sequence_[phraseIndex][t * numStates *
+                                                                   numStates +
+                                                               i * numStates +
+                                                               j];
+                        }
+                    }
+                } else {
+                    for (int t = 0; t < phraseLength - 1; t++) {
+                        transition[i * 2] +=
+                            epsilon_sequence_[phraseIndex][t * 2 * numStates +
+                                                           i * 2];
+                    }
+                    if (i < numStates - 1) {
+                        for (int t = 0; t < phraseLength - 1; t++) {
+                            transition[i * 2 + 1] +=
+                                epsilon_sequence_[phraseIndex][t * 2 *
+                                                                   numStates +
+                                                               i * 2 + 1];
+                        }
+                    }
+                }
+            }
+        }
+        phraseIndex++;
+    }
+
+    // Scale transition matrix
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        for (int i = 0; i < numStates; i++) {
+            for (int j = 0; j < numStates; j++) {
+                transition[i * numStates + j] /=
+                    (gamma_sum_[i] + 2. * TRANSITION_REGULARIZATION());
+                if (std::isnan(transition[i * numStates + j]))
+                    throw std::runtime_error(
+                        "Convergence Error. Check your training data or "
+                        "increase the variance offset");
+            }
+        }
+    } else {
+        for (int i = 0; i < numStates; i++) {
+            transition[i * 2] /=
+                (gamma_sum_[i] + 2. * TRANSITION_REGULARIZATION());
+            if (std::isnan(transition[i * 2]))
+                throw std::runtime_error(
+                    "Convergence Error. Check your training data or increase "
+                    "the variance offset");
+            if (i < numStates - 1) {
+                transition[i * 2 + 1] /=
+                    (gamma_sum_[i] + 2. * TRANSITION_REGULARIZATION());
+                if (std::isnan(transition[i * 2 + 1]))
+                    throw std::runtime_error(
+                        "Convergence Error. Check your training data or "
+                        "increase the variance offset");
+            }
+        }
+    }
+}
+
+#pragma mark -
+#pragma mark Performance
+
+void xmm::SingleClassHMM::reset() {
+    check_training();
+    SingleClassProbabilisticModel::reset();
+    forward_initialized_ = false;
+    if (is_hierarchical_) {
+        for (int i = 0; i < 3; i++)
+            alpha_h[i].resize(parameters.states.get(), 0.0);
+        alpha.clear();
+        previous_alpha_.clear();
+        beta_.clear();
+        previous_beta_.clear();
+    } else {
+        addCyclicTransition(0.05);
+    }
+}
+
+void xmm::SingleClassHMM::addCyclicTransition(double proba) {
+    unsigned int numStates = parameters.states.get();
+
+    check_training();
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic) {
+        if (numStates > 1) transition[(numStates - 1) * numStates] = proba;
+    } else {
+        if (numStates > 1) transition[(numStates - 1) * 2 + 1] = proba;
+    }
+}
+
+double xmm::SingleClassHMM::filter(std::vector<float> const& observation) {
+    check_training();
+    double ct;
+
+    if (forward_initialized_) {
+        ct = forward_update(&observation[0]);
+    } else {
+        this->likelihood_buffer_.clear();
+        ct = forward_init(&observation[0]);
+    }
+
+    forward_initialized_ = true;
+
+    results.instant_likelihood = 1. / ct;
+    updateAlphaWindow();
+    updateResults();
+
+    if (shared_parameters->bimodal.get()) {
+        regression(observation);
+    }
+
+    return results.instant_likelihood;
+}
+
+unsigned int argmax(std::vector<double> const& v) {
+    unsigned int amax(-1);
+    if (v.size() == 0) return amax;
+    double current_max(v[0]);
+    for (unsigned int i = 1; i < v.size(); ++i) {
+        if (v[i] > current_max) {
+            current_max = v[i];
+            amax = i;
+        }
+    }
+    return amax;
+}
+
+void xmm::SingleClassHMM::updateAlphaWindow() {
+    unsigned int numStates = parameters.states.get();
+
+    check_training();
+    results.likeliest_state = 0;
+    // Get likeliest State
+    double best_alpha(is_hierarchical_ ? (alpha_h[0][0] + alpha_h[1][0])
+                                       : alpha[0]);
+    for (unsigned int i = 1; i < numStates; ++i) {
+        if (is_hierarchical_) {
+            if ((alpha_h[0][i] + alpha_h[1][i]) > best_alpha) {
+                best_alpha = alpha_h[0][i] + alpha_h[1][i];
+                results.likeliest_state = i;
+            }
+        } else {
+            if (alpha[i] > best_alpha) {
+                best_alpha = alpha[i];
+                results.likeliest_state = i;
+            }
+        }
+    }
+
+    // Compute Window
+    window_minindex_ = (static_cast<int>(results.likeliest_state) -
+                        static_cast<int>(numStates) / 2);
+    window_maxindex_ = (static_cast<int>(results.likeliest_state) +
+                        static_cast<int>(numStates) / 2);
+    window_minindex_ = (window_minindex_ >= 0) ? window_minindex_ : 0;
+    window_maxindex_ = (window_maxindex_ <= static_cast<int>(numStates))
+                           ? window_maxindex_
+                           : static_cast<int>(numStates);
+    window_normalization_constant_ = 0.0;
+    for (int i = window_minindex_; i < window_maxindex_; ++i) {
+        window_normalization_constant_ +=
+            is_hierarchical_ ? (alpha_h[0][i] + alpha_h[1][i]) : alpha[i];
+    }
+}
+
+void xmm::SingleClassHMM::regression(
+    std::vector<float> const& observation_input) {
+    check_training();
+    unsigned int dimension_output = shared_parameters->dimension.get() -
+                                   shared_parameters->dimension_input.get();
+    results.output_values.assign(dimension_output, 0.0);
+    results.output_covariance.assign(
+        (parameters.covariance_mode.get() ==
+         GaussianDistribution::CovarianceMode::Full)
+            ? dimension_output * dimension_output
+            : dimension_output,
+        0.0);
+    std::vector<float> tmp_predicted_output(dimension_output);
+
+    if (parameters.regression_estimator.get() ==
+        HMM::RegressionEstimator::Likeliest) {
+        states[results.likeliest_state].likelihood(observation_input);
+        states[results.likeliest_state].regression(observation_input);
+        results.output_values =
+            states[results.likeliest_state].results.output_values;
+        return;
+    }
+
+    unsigned int clip_min_state = (parameters.regression_estimator.get() ==
+                                  HMM::RegressionEstimator::Full)
+                                     ? 0
+                                     : window_minindex_;
+    unsigned int clip_max_state = (parameters.regression_estimator.get() ==
+                                  HMM::RegressionEstimator::Full)
+                                     ? parameters.states.get()
+                                     : window_maxindex_;
+    double normalization_constant = (parameters.regression_estimator.get() ==
+                                     HMM::RegressionEstimator::Full)
+                                        ? 1.0
+                                        : window_normalization_constant_;
+
+    if (normalization_constant <= 0.0) normalization_constant = 1.;
+
+    // Compute Regression
+    for (unsigned int i = clip_min_state; i < clip_max_state; ++i) {
+        states[i].likelihood(observation_input);
+        states[i].regression(observation_input);
+        tmp_predicted_output = states[i].results.output_values;
+        for (unsigned int d = 0; d < dimension_output; ++d) {
+            if (is_hierarchical_) {
+                results.output_values[d] += (alpha_h[0][i] + alpha_h[1][i]) *
+                                            tmp_predicted_output[d] /
+                                            normalization_constant;
+                if (parameters.covariance_mode.get() ==
+                    GaussianDistribution::CovarianceMode::Full) {
+                    for (int d2 = 0; d2 < dimension_output; ++d2)
+                        results.output_covariance[d * dimension_output + d2] +=
+                            (alpha_h[0][i] + alpha_h[1][i]) *
+                            (alpha_h[0][i] + alpha_h[1][i]) *
+                            states[i]
+                                .results
+                                .output_covariance[d * dimension_output + d2] /
+                            normalization_constant;
+                } else {
+                    results.output_covariance[d] +=
+                        (alpha_h[0][i] + alpha_h[1][i]) *
+                        (alpha_h[0][i] + alpha_h[1][i]) *
+                        states[i].results.output_covariance[d] /
+                        normalization_constant;
+                }
+            } else {
+                results.output_values[d] +=
+                    alpha[i] * tmp_predicted_output[d] / normalization_constant;
+                if (parameters.covariance_mode.get() ==
+                    GaussianDistribution::CovarianceMode::Full) {
+                    for (int d2 = 0; d2 < dimension_output; ++d2)
+                        results.output_covariance[d * dimension_output + d2] +=
+                            alpha[i] * alpha[i] *
+                            states[i]
+                                .results
+                                .output_covariance[d * dimension_output + d2] /
+                            normalization_constant;
+
+                } else {
+                    results.output_covariance[d] +=
+                        alpha[i] * alpha[i] *
+                        states[i].results.output_covariance[d] /
+                        normalization_constant;
+                }
+            }
+        }
+    }
+}
+
+void xmm::SingleClassHMM::updateResults() {
+    likelihood_buffer_.push(log(results.instant_likelihood));
+    results.log_likelihood = 0.0;
+    unsigned int bufSize = likelihood_buffer_.size_t();
+    for (unsigned int i = 0; i < bufSize; i++) {
+        results.log_likelihood += likelihood_buffer_(0, i);
+    }
+    results.log_likelihood /= double(bufSize);
+
+    results.progress = 0.0;
+    for (int i = window_minindex_; i < window_maxindex_; ++i) {
+        if (is_hierarchical_)
+            results.progress +=
+                (alpha_h[0][i] + alpha_h[1][i] + alpha_h[2][i]) * i /
+                window_normalization_constant_;
+        else
+            results.progress += alpha[i] * i / window_normalization_constant_;
+    }
+    results.progress /= double(parameters.states.get() - 1);
+
+    //    /////////////////////////
+    //    results_progress = 0.0;
+    //    for (unsigned int i=0 ; i<numStates; i++) {
+    //        if (is_hierarchical_)
+    //            results_progress += (alpha_h[0][i] + alpha_h[1][i] +
+    //            alpha_h[2][i]) * i;
+    //        else
+    //            results_progress += alpha[i] * i;
+    //    }
+    //    results_progress /= double(numStates-1);
+    //    /////////////////////////
+}
+
+#pragma mark -
+#pragma mark File IO
+Json::Value xmm::SingleClassHMM::toJson() const {
+    check_training();
+    Json::Value root = SingleClassProbabilisticModel::toJson();
+    root["parameters"] = parameters.toJson();
+    if (parameters.transition_mode.get() == HMM::TransitionMode::Ergodic)
+        root["prior"] = vector2json(prior);
+    root["transition"] = vector2json(transition);
+    root["exitProbabilities"] = vector2json(exit_probabilities_);
+
+    root["states"].resize(
+        static_cast<Json::ArrayIndex>(parameters.states.get()));
+    for (int s = 0; s < parameters.states.get(); s++) {
+        root["states"][s] = states[s].toJson();
+    }
+    return root;
+}
+
+void xmm::SingleClassHMM::fromJson(Json::Value const& root) {
+    check_training();
+    try {
+        SingleClassHMM tmp(shared_parameters, root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+#pragma mark -
+#pragma mark Exit Probabilities
+
+void xmm::SingleClassHMM::updateExitProbabilities(float* exitProbabilities) {
+    unsigned int numStates = parameters.states.get();
+
+    if (!is_hierarchical_)
+        throw std::runtime_error(
+            "Model is Not hierarchical: method cannot be used");
+    if (exitProbabilities == NULL) {
+        exit_probabilities_.resize(numStates, 0.0);
+        exit_probabilities_[numStates - 1] =
+            DEFAULT_EXITPROBABILITY_LAST_STATE();
+    } else {
+        exit_probabilities_.resize(numStates, 0.0);
+        for (int i = 0; i < numStates; i++) try {
+                exit_probabilities_[i] = exitProbabilities[i];
+            } catch (std::exception& e) {
+                throw std::invalid_argument(
+                    "Wrong format for exit probabilities");
+            }
+    }
+}
+
+void xmm::SingleClassHMM::addExitPoint(int stateIndex, float proba) {
+    if (!is_hierarchical_)
+        throw std::runtime_error(
+            "Model is Not hierarchical: method cannot be used");
+    if (stateIndex >= parameters.states.get())
+        throw std::out_of_range("State index out of bounds");
+    exit_probabilities_[stateIndex] = proba;
+}
+
+//#pragma mark > Conversion & Extraction
+// void xmm::SingleClassHMM::makeBimodal(unsigned int dimension_input)
+//{
+//    check_training();
+//    if (bimodal_)
+//        throw std::runtime_error("The model is already bimodal");
+//    if (dimension_input >= dimension_)
+//        throw std::out_of_range("Request input dimension exceeds the current
+//        dimension");
+//    flags_ = flags_ | BIMODAL;
+//    bimodal_ = true;
+//    dimension_input_ = dimension_input;
+//    for (unsigned int i=0; i<numStates; i++) {
+//        states[i].makeBimodal(dimension_input);
+//    }
+//    results_predicted_output.resize(dimension_ - dimension_input_);
+//    results_output_variance.resize(dimension_ - dimension_input_);
+//}
+//
+// void xmm::SingleClassHMM::makeUnimodal()
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model is already unimodal");
+//    flags_ = NONE;
+//    bimodal_ = false;
+//    dimension_input_ = 0;
+//    for (unsigned int i=0; i<numStates; i++) {
+//        states[i].makeUnimodal();
+//    }
+//    results_predicted_output.clear();
+//    results_output_variance.clear();
+//}
+//
+// xmm::HMM xmm::SingleClassHMM::extractSubmodel(std::vector<unsigned int>&
+// columns) const
+//{
+//    check_training();
+//    if (columns.size() > dimension_)
+//        throw std::out_of_range("requested number of columns exceeds the
+//        dimension of the current model");
+//    for (unsigned int column=0; column<columns.size(); ++column) {
+//        if (columns[column] >= dimension_)
+//            throw std::out_of_range("Some column indices exceeds the dimension
+//            of the current model");
+//    }
+//    HMM target_model(*this);
+//    size_t new_dim = columns.size();
+//    target_model.setTrainingCallback(NULL, NULL);
+//    target_model.bimodal_ = false;
+//    target_model.dimension_ = static_cast<unsigned int>(new_dim);
+//    target_model.dimension_input_ = 0;
+//    target_model.flags_ = (this->flags_ & HIERARCHICAL);
+//    target_model.allocate();
+//    for (unsigned int i=0; i<numStates; ++i) {
+//        target_model.states[i] = states[i].extractSubmodel(columns);
+//    }
+//    return target_model;
+//}
+//
+// xmm::HMM xmm::SingleClassHMM::extractSubmodel_input() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_input(dimension_input_);
+//    for (unsigned int i=0; i<dimension_input_; ++i) {
+//        columns_input[i] = i;
+//    }
+//    return extractSubmodel(columns_input);
+//}
+//
+// xmm::HMM xmm::SingleClassHMM::extractSubmodel_output() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns_output(dimension_ - dimension_input_);
+//    for (unsigned int i=dimension_input_; i<dimension_; ++i) {
+//        columns_output[i-dimension_input_] = i;
+//    }
+//    return extractSubmodel(columns_output);
+//}
+//
+// xmm::HMM xmm::SingleClassHMM::extract_inverse_model() const
+//{
+//    check_training();
+//    if (!bimodal_)
+//        throw std::runtime_error("The model needs to be bimodal");
+//    std::vector<unsigned int> columns(dimension_);
+//    for (unsigned int i=0; i<dimension_-dimension_input_; ++i) {
+//        columns[i] = i+dimension_input_;
+//    }
+//    for (unsigned int i=dimension_-dimension_input_, j=0; i<dimension_; ++i,
+//    ++j) {
+//        columns[i] = j;
+//    }
+//    HMM target_model = extractSubmodel(columns);
+//    target_model.makeBimodal(dimension_-dimension_input_);
+//    return target_model;
+//}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.hpp
new file mode 100644
index 0000000..7dd78f3
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/hmm/xmmHmmSingleClass.hpp
@@ -0,0 +1,527 @@
+/*
+ * xmmHmmSingleClass.hpp
+ *
+ * Hidden Markov Model Definition for a Single Class
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmHmmSingleClass_hpp
+#define xmmHmmSingleClass_hpp
+
+#include "../gmm/xmmGmmSingleClass.hpp"
+#include "xmmHmmParameters.hpp"
+#include "xmmHmmResults.hpp"
+
+namespace xmm {
+/** @ingroup HMM
+ @brief Single-Class Hidden Markov Model
+ @details Hidden Markov Model with Multivariate Gaussian Mixture Model
+ Observation Distributions.
+ Supports Bimodal data and Hidden Markov Regression. Built for Hierarchical HMMs
+ */
+class SingleClassHMM : public SingleClassProbabilisticModel {
+    template <typename SingleClassModel, typename ModelType>
+    friend class Model;
+    friend class HierarchicalHMM;
+
+  public:
+    static const float DEFAULT_EXITPROBABILITY_LAST_STATE() { return 0.1; }
+    static const float TRANSITION_REGULARIZATION() { return 1.0e-5; }
+
+    /**
+     @brief Constructor
+     @param p Shared Parameters (owned by a multiclass object)
+     */
+    SingleClassHMM(std::shared_ptr<SharedParameters> p = NULL);
+
+    /**
+     @brief Copy constructor
+     @param src Source Model
+     */
+    SingleClassHMM(SingleClassHMM const& src);
+
+    /**
+     @brief Copy constructor
+     @param p pointer to a shared parameters object (owned by a Model)
+     @param root Json structure
+     */
+    explicit SingleClassHMM(std::shared_ptr<SharedParameters> p,
+                            Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    SingleClassHMM& operator=(SingleClassHMM const& src);
+
+    /** @name Accessors */
+    ///@{
+
+    /**
+     @brief Set the exit probability of a specific state
+     @details this method is only active in 'HIERARCHICAL' mode. The probability
+     @param stateIndex index of the state to add the exit point
+     @param proba probability to exit the gesture from this state
+     @throws runtime_error if the model is not hierarchical
+     @throws out_of_range if the state index is out of bounds
+     */
+    void addExitPoint(int stateIndex, float proba);
+
+    ///@}
+
+    /** @name Performance */
+    ///@{
+
+    /**
+     @brief Resets the fitering process (recognition or regression)
+     */
+    void reset();
+
+    /**
+     @brief filters a incoming observation (performs recognition or regression)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     @return likelihood of the observation
+     */
+    double filter(std::vector<float> const& observation);
+
+    ///@}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    virtual Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    //        /**
+    //         @brief Convert to bimodal HMM in place
+    //         @param dimension_input dimension of the input modality
+    //         @throws runtime_error if the model is already bimodal
+    //         @throws out_of_range if the requested input dimension is too
+    //         large
+    //         */
+    //        void makeBimodal(unsigned int dimension_input);
+    //
+    //        /**
+    //         @brief Convert to unimodal HMM in place
+    //         @throws runtime_error if the model is already unimodal
+    //         */
+    //        void makeUnimodal();
+    //
+    //        /**
+    //         @brief extract a submodel with the given columns
+    //         @param columns columns indices in the target order
+    //         @throws runtime_error if the model is training
+    //         @throws out_of_range if the number or indices of the requested
+    //         columns exceeds the current dimension
+    //         @return a HMM from the current model considering only the target
+    //         columns
+    //         */
+    //        HMM extractSubmodel(std::vector<unsigned int>& columns) const;
+    //
+    //        /**
+    //         @brief extract the submodel of the input modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal HMM of the input modality from the current
+    //         bimodal model
+    //         */
+    //        HMM extractSubmodel_input() const;
+    //
+    //        /**
+    //         @brief extract the submodel of the output modality
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a unimodal HMM of the output modality from the current
+    //         bimodal model
+    //         */
+    //        HMM extractSubmodel_output() const;
+    //
+    //        /**
+    //         @brief extract the model with reversed input and output
+    //         modalities
+    //         @throws runtime_error if the model is training or if it is not
+    //         bimodal
+    //         @return a bimodal HMM  that swaps the input and output modalities
+    //         */
+    //        HMM extract_inverse_model() const;
+
+    /**
+     @brief Model Parameters
+     */
+    ClassParameters<HMM> parameters;
+
+    /**
+     @brief Results of the filtering process (recognition & regression)
+     */
+    ClassResults<HMM> results;
+
+    /**
+     @brief State probabilities estimated by the forward algorithm.
+     */
+    std::vector<double> alpha;
+
+    /**
+     @brief State probabilities estimated by the hierarchical forward algorithm.
+     @details the variable is only allocated/used in hierarchical mode (see
+     'HIERARCHICAL' flag)
+     */
+    std::vector<double> alpha_h[3];
+
+    /**
+     @brief States of the model (Gaussian Mixture Models)
+     */
+    std::vector<SingleClassGMM> states;
+
+    /**
+     @brief Prior probabilities
+     */
+    std::vector<float> prior;
+
+    /**
+     @brief Transition Matrix
+     */
+    std::vector<float> transition;
+
+  protected:
+    /**
+     @brief Allocate model parameters
+     */
+    void allocate();
+
+    /**
+     @brief initialize model parameters to their default values
+     */
+    void initParametersToDefault(std::vector<float> const& dataStddev);
+
+    /**
+     @brief initialize the means of each state with all training phrases (single
+     gaussian)
+     */
+    void initMeansWithAllPhrases(TrainingSet* trainingSet);
+
+    /**
+     @brief initialize the covariances of each state with all training phrases
+     (single gaussian)
+     */
+    void initCovariances_fullyObserved(TrainingSet* trainingSet);
+
+    /**
+     @brief initialize the means and covariances of each state using GMM-EM on
+     segments.
+     */
+    void initMeansCovariancesWithGMMEM(TrainingSet* trainingSet);
+
+    /**
+     @brief set the prior and transition matrix to ergodic
+     */
+    void setErgodic();
+
+    /**
+     @brief set the prior and transition matrix to left-right (no state skip)
+     */
+    void setLeftRight();
+
+    /**
+     @brief Normalize transition probabilities
+     */
+    void normalizeTransitions();
+
+    /**
+     @brief Initialization of the forward algorithm
+     @param observation observation vector at time t. If the model is bimodal,
+     this vector
+     should be only the observation on the input modality.
+     @param observation_output observation on the output modality (only used if
+     the model is bimodal).
+     If unspecified, the update is performed on the input modality only.
+     @return instantaneous likelihood
+     */
+    double forward_init(const float* observation,
+                        const float* observation_output = NULL);
+
+    /**
+     @brief Update of the forward algorithm
+     @param observation observation vector at time t. If the model is bimodal,
+     this vector
+     should be only the observation on the input modality.
+     @param observation_output observation on the output modality (only used if
+     the model is bimodal).
+     If unspecified, the update is performed on the input modality only.
+     @return instantaneous likelihood
+     */
+    double forward_update(const float* observation,
+                          const float* observation_output = NULL);
+
+    /**
+     @brief Initialization Backward algorithm
+     @param ct inverse of the likelihood at time step t computed
+     with the forward algorithm (see Rabiner 1989)
+     */
+    void backward_init(double ct);
+
+    /**
+     @brief Update of the Backward algorithm
+     @param ct inverse of the likelihood at time step t computed
+     with the forward algorithm (see Rabiner 1989)
+     @param observation observation vector at time t. If the model is bimodal,
+     this vector
+     should be only the observation on the input modality.
+     @param observation_output observation on the output modality (only used if
+     the model is bimodal).
+     If unspecified, the update is performed on the input modality only.
+     */
+    void backward_update(double ct, const float* observation,
+                         const float* observation_output = NULL);
+
+    /**
+     @brief Initialization of the parameters before training
+     */
+    void emAlgorithmInit(TrainingSet* trainingSet);
+
+    /**
+     @brief Termination of the training algorithm
+     */
+    void emAlgorithmTerminate();
+
+    /**
+     @brief update method of the EM algorithm (calls Baum-Welch Algorithm)
+     */
+    virtual double emAlgorithmUpdate(TrainingSet* trainingSet);
+
+    /**
+     @brief Compute the forward-backward algorithm on a phrase of the training
+     set
+     @param currentPhrase pointer to the phrase of the training set
+     @param phraseIndex index of the phrase
+     @return lieklihood of the phrase given the model's current parameters
+     */
+    double baumWelch_forwardBackward(std::shared_ptr<Phrase> currentPhrase,
+                                     int phraseIndex);
+
+    /**
+     @brief Update of the forward algorithm for Training (observation
+     probabilities are pre-computed)
+     @param observation_likelihoods likelihoods of the observations for each
+     state
+     @return instantaneous likelihood
+     */
+    double baumWelch_forward_update(
+        std::vector<double>::iterator observation_likelihoods);
+
+    /**
+     @brief Update of the Backward algorithm for Training (observation
+     probabilities are pre-computed)
+     @param ct inverse of the likelihood at time step t computed
+     with the forward algorithm (see Rabiner 1989)
+     @param observation_likelihoods likelihoods of the observations for each
+     state
+     */
+    void baumWelch_backward_update(
+        double ct, std::vector<double>::iterator observation_likelihoods);
+
+    /**
+     @brief Compute the sum of the gamma variable (for use in EM)
+     */
+    void baumWelch_gammaSum(TrainingSet* trainingSet);
+
+    /**
+     @brief Estimate the Coefficients of the Gaussian Mixture for each state
+     */
+    void baumWelch_estimateMixtureCoefficients(TrainingSet* trainingSet);
+
+    /**
+     @brief Estimate the Means of the Gaussian Distribution for each state
+     */
+    void baumWelch_estimateMeans(TrainingSet* trainingSet);
+
+    /**
+     @brief Estimate the Covariances of the Gaussian Distribution for each state
+     */
+    void baumWelch_estimateCovariances(TrainingSet* trainingSet);
+
+    /**
+     @brief Estimate the Prior Probabilities
+     */
+    void baumWelch_estimatePrior(TrainingSet* trainingSet);
+
+    /**
+     @brief Estimate the Transition Probabilities
+     */
+    void baumWelch_estimateTransitions(TrainingSet* trainingSet);
+
+    /**
+     @brief Adds a cyclic Transition probability (from last state to first
+     state)
+     @details avoids getting stuck at the end of the model. this method is idle
+     for a hierarchical model.
+     @param proba probability of the transition form last to first state
+     */
+    void addCyclicTransition(double proba);
+
+    /**
+     @brief Estimates the likeliest state and compute the bounds of the windows
+     over the states.
+     @details The window is centered around the likeliest state, and its size is
+     the number of states.
+     The window is clipped to the first and last states.
+     */
+    void updateAlphaWindow();
+
+    /**
+     @brief Compute the regression for the case of a bimodal model, given the
+     estimated state probabilities estimated by forward algorithm.
+     @details predicted output parameters are stored in the result structure.
+     @param observation_input observation on the input modality
+     */
+    void regression(std::vector<float> const& observation_input);
+
+    /**
+     @brief update the content of the likelihood buffer and return average
+     likelihood.
+     @details The method also updates the cumulative log-likelihood computed
+     over a window (cumulativeloglikelihood)
+     */
+    void updateResults();
+
+    /**
+     @brief Update the exit probability vector given the probabilities
+     @details this method is only active in 'HIERARCHICAL' mode. The probability
+     vector defines the probability of exiting the gesture from each state. If
+     unspecified,
+     only the last state of the gesture has a non-zero probability.
+     @param _exitProbabilities vector of exit probabilities (size must be
+     nbStates)
+     @throws runtime_error if the model is not hierarchical
+     */
+    void updateExitProbabilities(float* _exitProbabilities = NULL);
+
+  protected:
+    /**
+     @brief Defines if the forward algorithm has been initialized
+     */
+    bool forward_initialized_;
+
+    /**
+     @brief used to store the alpha estimated at the previous time step
+     */
+    std::vector<double> previous_alpha_;
+
+    /**
+     @brief backward state probabilities
+     */
+    std::vector<double> beta_;
+
+    /**
+     @brief used to store the beta estimated at the previous time step
+     */
+    std::vector<double> previous_beta_;
+
+    /**
+     @brief Sequence of Gamma probabilities
+     */
+    std::vector<std::vector<double> > gamma_sequence_;
+
+    /**
+     @brief Sequence of Epsilon probabilities
+     */
+    std::vector<std::vector<double> > epsilon_sequence_;
+
+    /**
+     @brief Sequence of Gamma probabilities for each mixture component
+     */
+    std::vector<std::vector<std::vector<double> > > gamma_sequence_per_mixture_;
+
+    /**
+     @brief Sequence of alpha (forward) probabilities
+     */
+    std::vector<double> alpha_seq_;
+
+    /**
+     @brief Sequence of beta (backward) probabilities
+     */
+    std::vector<double> beta_seq_;
+
+    /**
+     @brief Used to store the sums of the gamma variable
+     */
+    std::vector<double> gamma_sum_;
+
+    /**
+     @brief Used to store the sums of the gamma variable for each mixture
+     component
+     */
+    std::vector<double> gamma_sum_per_mixture_;
+
+    /**
+     @brief Defines if the model is a submodel of a hierarchical HMM.
+     @details in practice this adds exit probabilities to each state. These
+     probabilities are set
+     to the last state by default.
+     */
+    bool is_hierarchical_;
+
+    /**
+     @brief Exit probabilities for a hierarchical model.
+     */
+    std::vector<float> exit_probabilities_;
+
+    /**
+     @brief minimum index of the alpha window (used for regression & time
+     progression)
+     */
+    int window_minindex_;
+
+    /**
+     @brief minimum index of the alpha window (used for regression & time
+     progression)
+     */
+    int window_maxindex_;
+
+    /**
+     @brief normalization constant of the alpha window (used for regression &
+     time progression)
+     */
+    double window_normalization_constant_;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.cpp
new file mode 100644
index 0000000..cd04cd6
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.cpp
@@ -0,0 +1,284 @@
+/*
+ * xmmKMeans.hpp
+ *
+ * K-Means clustering
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmKMeans.hpp"
+#include <limits>
+
+#ifdef WIN32
+static long random() { return rand(); }
+#endif
+#define kmax(a, b) (((a) > (b)) ? (a) : (b))
+
+#pragma mark -
+#pragma mark === Public Interface ===
+#pragma mark > Constructors
+xmm::KMeans::KMeans(unsigned int clusters_)
+    : shared_parameters(std::make_shared<SharedParameters>()),
+      initialization_mode(InitializationMode::Random) {
+    configuration.clusters.set(clusters_);
+}
+
+xmm::KMeans::KMeans(KMeans const& src)
+    : configuration(src.configuration),
+      centers(src.centers),
+      initialization_mode(src.initialization_mode) {}
+
+xmm::KMeans& xmm::KMeans::operator=(KMeans const& src) {
+    if (this != &src) {
+        initialization_mode = src.initialization_mode;
+        configuration = src.configuration;
+        centers = src.centers;
+    }
+    return *this;
+}
+
+#pragma mark > Training
+void xmm::KMeans::train(TrainingSet* trainingSet) {
+    if (!trainingSet || trainingSet->empty()) return;
+
+    shared_parameters->dimension.set(trainingSet->dimension.get());
+    centers.resize(
+        configuration.clusters.get() * shared_parameters->dimension.get(), 0.0);
+    if (initialization_mode == InitializationMode::Random)
+        randomizeClusters(trainingSet->standardDeviation());
+    else
+        initClustersWithFirstPhrase(trainingSet->begin()->second);
+
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    int clusters = static_cast<int>(configuration.clusters.get());
+
+    for (int trainingNbIterations = 0;
+         trainingNbIterations < configuration.max_iterations.get();
+         ++trainingNbIterations) {
+        std::vector<float> previous_centers = centers;
+
+        updateCenters(previous_centers, trainingSet);
+
+        float meanClusterDistance(0.0);
+        float maxRelativeCenterVariation(0.0);
+        for (unsigned int k = 0; k < clusters; ++k) {
+            for (unsigned int l = 0; l < clusters; ++l) {
+                if (k != l) {
+                    meanClusterDistance +=
+                        euclidean_distance(&centers[k * dimension],
+                                           &centers[l * dimension], dimension);
+                }
+            }
+            maxRelativeCenterVariation =
+                kmax(euclidean_distance(&previous_centers[k * dimension],
+                                        &centers[k * dimension], dimension),
+                     maxRelativeCenterVariation);
+        }
+        meanClusterDistance /= float(clusters * (clusters - 1));
+        maxRelativeCenterVariation /= float(clusters);
+        maxRelativeCenterVariation /= meanClusterDistance;
+        if (maxRelativeCenterVariation <
+            configuration.relative_distance_threshold.get())
+            break;
+    }
+}
+
+void xmm::KMeans::initClustersWithFirstPhrase(std::shared_ptr<Phrase> phrase) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    unsigned int step = phrase->size() / configuration.clusters.get();
+
+    unsigned int offset(0);
+    for (unsigned int c = 0; c < configuration.clusters.get(); c++) {
+        for (unsigned int d = 0; d < dimension; d++) {
+            centers[c * dimension + d] = 0.0;
+        }
+        for (unsigned int t = 0; t < step; t++) {
+            for (unsigned int d = 0; d < dimension; d++) {
+                centers[c * dimension + d] +=
+                    phrase->getValue(offset + t, d) / float(step);
+            }
+        }
+        offset += step;
+    }
+}
+
+void xmm::KMeans::randomizeClusters(
+    std::vector<float> const& trainingSetVariance) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    for (unsigned int k = 0; k < configuration.clusters.get(); ++k) {
+        for (unsigned int d = 0; d < dimension; ++d) {
+            centers[k * dimension + d] =
+                trainingSetVariance[d] * (2. * random() / float(RAND_MAX) - 1.);
+        }
+    }
+}
+
+void xmm::KMeans::updateCenters(std::vector<float>& previous_centers,
+                                TrainingSet* trainingSet) {
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    int clusters = static_cast<int>(configuration.clusters.get());
+
+    unsigned int phraseIndex(0);
+    centers.assign(clusters * dimension, 0.0);
+    std::vector<unsigned int> numFramesPerCluster(clusters, 0);
+    for (auto it = trainingSet->begin(); it != trainingSet->end();
+         ++it, ++phraseIndex) {
+        for (unsigned int t = 0; t < it->second->size(); ++t) {
+            float min_distance;
+            if (trainingSet->bimodal()) {
+                std::vector<float> frame(dimension);
+                for (unsigned int d = 0; d < dimension; ++d) {
+                    frame[d] = it->second->getValue(t, d);
+                }
+                min_distance = euclidean_distance(
+                    &frame[0], &previous_centers[0], dimension);
+            } else {
+                min_distance = euclidean_distance(
+                    it->second->getPointer(t), &previous_centers[0], dimension);
+            }
+            unsigned int cluster_membership(0);
+            for (unsigned int k = 1; k < clusters; ++k) {
+                float distance;
+                if (trainingSet->bimodal()) {
+                    std::vector<float> frame(dimension);
+                    for (unsigned int d = 0; d < dimension; ++d) {
+                        frame[d] = it->second->getValue(t, d);
+                    }
+                    distance = euclidean_distance(
+                        &frame[0], &previous_centers[k * dimension], dimension);
+                } else {
+                    distance = euclidean_distance(
+                        it->second->getPointer(t),
+                        &previous_centers[k * dimension], dimension);
+                }
+                if (distance < min_distance) {
+                    cluster_membership = k;
+                    min_distance = distance;
+                }
+            }
+            numFramesPerCluster[cluster_membership]++;
+            for (unsigned int d = 0; d < dimension; ++d) {
+                centers[cluster_membership * dimension + d] +=
+                    it->second->getValue(t, d);
+            }
+        }
+    }
+    for (unsigned int k = 0; k < clusters; ++k) {
+        if (numFramesPerCluster[k] > 0)
+            for (unsigned int d = 0; d < dimension; ++d) {
+                centers[k * dimension + d] /= float(numFramesPerCluster[k]);
+            }
+    }
+}
+
+#pragma mark > Performance
+void xmm::KMeans::reset() {
+    results.distances.resize(configuration.clusters.get(), 0.0);
+}
+
+void xmm::KMeans::filter(std::vector<float> const& observation) {
+    if (observation.size() != shared_parameters->dimension.get())
+        throw std::runtime_error("Observation has wrong dimension");
+    int dimension = static_cast<int>(shared_parameters->dimension.get());
+    results.likeliest = 0;
+    float minDistance(std::numeric_limits<float>::max());
+    for (unsigned int k = 0; k < configuration.clusters.get(); ++k) {
+        results.distances[k] = euclidean_distance(
+            &observation[0], &centers[k * dimension], dimension);
+        if (results.distances[k] < minDistance) {
+            minDistance = results.distances[k];
+            results.likeliest = k;
+        }
+    }
+}
+
+#pragma mark -
+#pragma mark File IO
+Json::Value xmm::KMeans::toJson() const {
+    //    JSONNode json_model(JSON_NODE);
+    //    json_model.set_name("KMeans");
+    //
+    //    json_model.push_back(JSONNode("dimension", dimension_));
+    //    json_model.push_back(JSONNode("nbclusters", nbClusters_));
+    //    json_model.push_back(vector2json(centers, "centers"));
+
+    return Json::Value();
+}
+
+void xmm::KMeans::fromJson(Json::Value const& root) {
+    //    try {
+    //        if (root.type() != JSON_NODE)
+    //            throw JSONException("Wrong type: was expecting 'JSON_NODE'",
+    //            root.name());
+    //        JSONNode::const_iterator root_it = root.begin();
+    //
+    //        // Get Dimension
+    //        root_it = root.find("dimension");
+    //        if (root_it == root.end())
+    //            throw JSONException("JSON Node is incomplete",
+    //            root_it->name());
+    //        if (root_it->type() != JSON_NUMBER)
+    //            throw JSONException("Wrong type for node 'dimension': was
+    //            expecting 'JSON_NUMBER'", root_it->name());
+    //        dimension_ = static_cast<unsigned int>(root_it->as_int());
+    //
+    //        // Get Number of Clusters
+    //        root_it = root.find("nbclusters");
+    //        if (root_it == root.end())
+    //            throw JSONException("JSON Node is incomplete",
+    //            root_it->name());
+    //        if (root_it->type() != JSON_NUMBER)
+    //            throw JSONException("Wrong type for node 'nbclusters': was
+    //            expecting 'JSON_NUMBER'", root_it->name());
+    //        nbClusters_ = static_cast<unsigned int>(root_it->as_int());
+    //
+    //        // Get Cluster Centers
+    //        root_it = root.find("centers");
+    //        if (root_it == root.end())
+    //            throw JSONException("JSON Node is incomplete",
+    //            root_it->name());
+    //        if (root_it->type() != JSON_ARRAY)
+    //            throw JSONException("Wrong type for node 'centers': was
+    //            expecting 'JSON_ARRAY'", root_it->name());
+    //        json2vector(*root_it, centers, nbClusters_);
+    //    } catch (JSONException &e) {
+    //        throw JSONException(e, root.name());
+    //    } catch (std::exception &e) {
+    //        throw JSONException(e, root.name());
+    //    }
+}
+
+#pragma mark > Utility
+template <typename T>
+T xmm::euclidean_distance(const T* vector1, const T* vector2,
+                          unsigned int dimension) {
+    T distance(0.0);
+    for (unsigned int d = 0; d < dimension; d++) {
+        distance += (vector1[d] - vector2[d]) * (vector1[d] - vector2[d]);
+    }
+    return sqrt(distance);
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.hpp
new file mode 100644
index 0000000..a926f44
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeans.hpp
@@ -0,0 +1,179 @@
+/*
+ * xmmKMeans.hpp
+ *
+ * K-Means clustering
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmKMeans_h
+#define xmmKMeans_h
+
+#include "../../core/model/xmmModelConfiguration.hpp"
+#include "../../core/model/xmmModelSingleClass.hpp"
+#include "xmmKMeansParameters.hpp"
+#include "xmmKMeansResults.hpp"
+
+namespace xmm {
+/**
+ @ingroup KMeans
+ @brief K-Means Clustering algorithm
+ */
+class KMeans : public Writable {
+  public:
+    static const unsigned int DEFAULT_MAX_ITERATIONS = 50;
+    static const float DEFAULT_RELATIVE_VARIATION_THRESHOLD() { return 1e-20; }
+
+    /**
+     @brief Type of initizalization of the K-Means algorithm
+     */
+    enum class InitializationMode {
+        /**
+         @brief random initialization (scaled using training set variance)
+         */
+        Random,
+
+        /**
+         @brief biased initialization: initialiazed with the first phrase
+         */
+        Biased
+    };
+
+    /**
+     @brief Default Constructor
+     @param clusters number of clusters
+     */
+    KMeans(unsigned int clusters = 1);
+
+    /**
+     @brief Copy Constructor
+     @param src Source Model
+     */
+    KMeans(KMeans const& src);
+
+    /**
+     @brief Assignment
+     @param src Source Model
+     */
+    KMeans& operator=(KMeans const& src);
+
+    /**
+     @brief Train the K-Means clutering from the given training set
+     @param trainingSet Training Set
+     */
+    void train(TrainingSet* trainingSet);
+
+    /**
+     @brief Resets the fitering process (cluster association)
+     */
+    void reset();
+
+    /**
+     @brief filters a incoming observation (performs cluster association)
+     @details the results of the inference process are stored in the results
+     attribute
+     @param observation observation vector
+     */
+    void filter(std::vector<float> const& observation);
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /**
+     @brief Set of Parameters shared among classes
+     */
+    std::shared_ptr<SharedParameters> shared_parameters;
+
+    /**
+     @brief Configuration (default and class-specific parameters)
+     */
+    Configuration<KMeans> configuration;
+
+    /**
+     @brief Results of the cluster association after update with an observation
+     */
+    Results<KMeans> results;
+
+    /**
+     @brief Clusters centers
+     */
+    std::vector<float> centers;
+
+    /**
+     @brief Type of initialization for the K-Means Algorithm
+     */
+    KMeans::InitializationMode initialization_mode;
+
+  protected:
+    /**
+     @brief randomzie Cluster Centers (normalized width data variance)
+     of the first phrase of the training set
+     */
+    void randomizeClusters(std::vector<float> const& trainingSetVariance);
+
+    /**
+     @brief Initialize the clusters using a regular segmentation
+     of the first phrase of the training set
+     */
+    void initClustersWithFirstPhrase(std::shared_ptr<Phrase> phrase);
+
+    /**
+     @brief Update method for training
+     @details computes the cluster associated with each data points, and update
+     Cluster centers
+     */
+    void updateCenters(std::vector<float>& previous_centers,
+                       TrainingSet* trainingSet);
+};
+
+/**
+ @brief Simple Euclidian distance measure
+ @param vector1 first data point
+ @param vector2 first data point
+ @param dimension dimension of the data space
+ @return euclidian distance between the 2 points
+ */
+template <typename T>
+T euclidean_distance(const T* vector1, const T* vector2, unsigned int dimension);
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.cpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.cpp
new file mode 100644
index 0000000..9620d03
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.cpp
@@ -0,0 +1,108 @@
+/*
+ * xmmKMeansParameters.hpp
+ *
+ * Parameters of the K-Means clustering Algorithm
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "xmmKMeansParameters.hpp"
+
+xmm::ClassParameters<xmm::KMeans>::ClassParameters()
+    : changed(true),
+      clusters(1, 1),
+      max_iterations(50, 1),
+      relative_distance_threshold(1e-20, 0) {
+    clusters.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+    max_iterations.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+    relative_distance_threshold.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::KMeans>::ClassParameters(
+    ClassParameters<KMeans> const& src)
+    : changed(true),
+      clusters(src.clusters),
+      max_iterations(src.max_iterations),
+      relative_distance_threshold(src.relative_distance_threshold) {
+    clusters.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+    max_iterations.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+    relative_distance_threshold.onAttributeChange(
+        this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+}
+
+xmm::ClassParameters<xmm::KMeans>::ClassParameters(Json::Value const& root)
+    : ClassParameters() {
+    clusters.set(root["clusters"].asInt());
+    max_iterations.set(root["max_iterations"].asInt());
+    relative_distance_threshold.set(
+        root["relative_distance_threshold"].asFloat());
+}
+
+xmm::ClassParameters<xmm::KMeans>& xmm::ClassParameters<xmm::KMeans>::operator=(
+    ClassParameters<KMeans> const& src) {
+    if (this != &src) {
+        changed = true;
+        clusters = src.clusters;
+        max_iterations = src.max_iterations;
+        relative_distance_threshold = src.relative_distance_threshold;
+        clusters.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+        max_iterations.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+        relative_distance_threshold.onAttributeChange(
+            this, &xmm::ClassParameters<xmm::KMeans>::onAttributeChange);
+    }
+    return *this;
+}
+
+Json::Value xmm::ClassParameters<xmm::KMeans>::toJson() const {
+    Json::Value root;
+    root["clusters"] = static_cast<int>(clusters.get());
+    root["max_iterations"] = static_cast<int>(max_iterations.get());
+    root["relative_distance_threshold"] = relative_distance_threshold.get();
+    return root;
+}
+
+void xmm::ClassParameters<xmm::KMeans>::fromJson(Json::Value const& root) {
+    try {
+        ClassParameters<KMeans> tmp(root);
+        *this = tmp;
+    } catch (JsonException& e) {
+        throw e;
+    }
+}
+
+void xmm::ClassParameters<xmm::KMeans>::onAttributeChange(
+    AttributeBase* attr_pointer) {
+    changed = true;
+    attr_pointer->changed = false;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.hpp
new file mode 100644
index 0000000..c6f0e1d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansParameters.hpp
@@ -0,0 +1,127 @@
+/*
+ * xmmKMeansParameters.hpp
+ *
+ * Parameters of the K-Means clustering Algorithm
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmKMeansParameters_hpp
+#define xmmKMeansParameters_hpp
+
+#include "../../core/model/xmmModelParameters.hpp"
+
+namespace xmm {
+/**
+ @defgroup KMeans [Models] K-Means Algorithm
+ */
+
+/**
+ Dummy structure for template specialization
+ */
+class KMeans;
+
+/**
+ @ingroup KMeans
+ @brief Parameters specific to each class of a K-Means Algorithm
+ */
+template <>
+class ClassParameters<KMeans> : public Writable {
+  public:
+    /**
+     @brief Default Constructor
+     */
+    ClassParameters();
+
+    /**
+     @brief Copy Constructor
+     @param src Source Object
+     */
+    ClassParameters(ClassParameters<KMeans> const& src);
+
+    /**
+     @brief Constructor from Json Structure
+     @param root Json Value
+     */
+    explicit ClassParameters(Json::Value const& root);
+
+    /**
+     @brief Assignment
+     @param src Source Object
+     */
+    ClassParameters& operator=(ClassParameters<KMeans> const& src);
+
+    virtual ~ClassParameters() {}
+
+    /** @name Json I/O */
+    ///@{
+
+    /**
+     @brief Write the object to a JSON Structure
+     @return Json value containing the object's information
+     */
+    Json::Value toJson() const;
+
+    /**
+     @brief Read the object from a JSON Structure
+     @param root JSON value containing the object's information
+     @throws JsonException if the JSON value has a wrong format
+     */
+    virtual void fromJson(Json::Value const& root);
+
+    ///@}
+
+    /**
+     @brief specifies if parameters have changed (model is invalid)
+     */
+    bool changed = false;
+
+    /**
+     @brief Number of Gaussian Mixture Components
+     */
+    Attribute<unsigned int> clusters;
+
+    /**
+     @brief Maximum number of iterations of the training update
+     */
+    Attribute<unsigned int> max_iterations;
+
+    /**
+     @brief threshold (as relative distance between cluster) required to define
+     convergence
+     */
+    Attribute<float> relative_distance_threshold;
+
+  protected:
+    /**
+     @brief notification function called when a member attribute is changed
+     */
+    virtual void onAttributeChange(AttributeBase* attr_pointer);
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansResults.hpp b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansResults.hpp
new file mode 100644
index 0000000..f327286
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/models/kmeans/xmmKMeansResults.hpp
@@ -0,0 +1,57 @@
+/*
+ * xmmKMeansResults.hpp
+ *
+ * Results of the K-Means clustering Algorithm
+ *
+ * Contact:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef xmmKMeansResults_h
+#define xmmKMeansResults_h
+
+#include "../../core/model/xmmModelResults.hpp"
+
+namespace xmm {
+/**
+ @ingroup KMeans
+ @brief Results of the clustering process
+ */
+template <>
+struct Results<KMeans> {
+    /**
+     @brief Distance of the observation to each cluster
+     */
+    std::vector<float> distances;
+
+    /**
+     @brief Likeliest Cluster
+     */
+    unsigned int likeliest;
+};
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/xmm.h b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/xmm.h
new file mode 100644
index 0000000..bb2112d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/dependencies/xmm/src/xmm.h
@@ -0,0 +1,450 @@
+/*
+ * xmm.h
+ *
+ * XMM - Probabilistic Models for Continuous Motion Recognition and Mapping
+ * ============================================================================
+ *
+ * XMM is a portable, cross-platform C++ library that implements Gaussian
+ * Mixture Models and Hidden Markov Models for recognition and regression.
+ * The XMM library was developed for movement interaction in creative
+ * applications and implements an interactive machine learning workflow with
+ * fast training and continuous, real-time inference.
+ *
+ * Contact:
+ * - Jules Francoise: <jules.francoise@ircam.fr>
+ *
+ *
+ * Authors:
+ * - Jules Francoise <jules.francoise@ircam.fr>
+ *
+ * This code has been initially authored by Jules Francoise
+ * <http://julesfrancoise.com> during his PhD thesis, supervised by Frederic
+ * Bevilacqua <href="http://frederic-bevilacqua.net>, in the Sound Music
+ * Movement Interaction team <http://ismm.ircam.fr> of the
+ * STMS Lab - IRCAM, CNRS, UPMC (2011-2015).
+ *
+ * Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+ *
+ * This project is released under the GPLv3 license.
+ * For commercial applications, a proprietary license is available upon
+ * request to Frederick Rousseau <frederick.rousseau@ircam.fr>.
+ *
+ * This File is part of XMM.
+ *
+ * XMM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * XMM 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 XMM.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Citing this work:
+ * If you use this code for research purposes, please cite one of the following
+ * publications:
+ *
+ * - J. Francoise, N. Schnell, R. Borghesi, and F. Bevilacqua,
+ *   Probabilistic Models for Designing Motion and Sound Relationships.
+ *   In Proceedings of the 2014 International Conference on New Interfaces
+ *   for Musical Expression, NIME’14, London, UK, 2014.
+ * - J. Francoise, N. Schnell, and F. Bevilacqua, A Multimodal Probabilistic
+ *   Model for Gesture-based Control of Sound Synthesis. In Proceedings of the
+ *   21st ACM international conference on Multimedia (MM’13), Barcelona,
+ *   Spain, 2013.
+ */
+
+#ifndef xmm_lib_xmm_h
+#define xmm_lib_xmm_h
+
+#include "models/gmm/xmmGmm.hpp"
+#include "models/hmm/xmmHierarchicalHmm.hpp"
+
+/**
+ @mainpage About
+ @anchor mainpage
+ @brief XMM is a portable, cross-platform C++ library that implements Gaussian
+ Mixture Models and Hidden Markov Models for
+ recognition and regression. The XMM library was developed for movement
+ interaction in creative applications and implements an
+ interactive machine learning workflow with fast training and continuous,
+ real-time inference.
+
+ @par Contact
+ Jules Francoise: <jules.francoise@ircam.fr>
+
+ @author
+ This code has been initially authored by <a
+ href="http://julesfrancoise.com">Jules Francoise</a>
+ during his PhD thesis, supervised by <a href="frederic-bevilacqua.net">Frederic
+ Bevilacqua</a>, in the
+ <a href="http://ismm.ircam.fr">Sound Music Movement Interaction</a> team of the
+ <a href="http://www.ircam.fr/stms.html?&L=1">STMS Lab</a> - IRCAM - CNRS - UPMC
+ (2011-2015).
+
+ @copyright Copyright (C) 2015 UPMC, Ircam-Centre Pompidou.
+
+ @par Licence
+ This project is released under the <a
+ href="http://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3</a> license.
+ For commercial applications, a proprietary license is available upon request to
+ Frederick Rousseau <frederick.rousseau@ircam.fr>. @n@n
+ XMM is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version. @n@n
+ XMM 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. @n@n
+ You should have received a copy of the GNU General Public License
+ along with XMM.  If not, see <http://www.gnu.org/licenses/>.
+
+ @par Citing this work
+ If you use this code for research purposes, please cite one of the following
+ publications:
+ - J. Francoise, N. Schnell, R. Borghesi, and F. Bevilacqua, Probabilistic
+ Models for Designing Motion and Sound Relationships. In Proceedings of the 2014
+ International Conference on New Interfaces for Musical Expression, NIME’14,
+ London, UK, 2014.
+ - J. Francoise, N. Schnell, and F. Bevilacqua, A Multimodal Probabilistic Model
+ for Gesture-based Control of Sound Synthesis. In Proceedings of the 21st ACM
+ international conference on Multimedia (MM’13), Barcelona, Spain, 2013.
+ */
+
+/**
+ @page GettingStarted Getting Started
+
+ @section toc Table of Contents
+
+ 1. @subpage Introduction @n
+ 2. @subpage Compilation @n
+ 3. @subpage examples_cpp @n
+ 4. @subpage examples_py @n
+*/
+
+#pragma mark -
+#pragma mark Introduction
+
+/**
+ @page Introduction Introduction
+ @tableofcontents
+
+ XMM is a portable, cross-platform C++ library that implements Gaussian Mixture
+ Models and Hidden Markov Models for
+ both recognition and regression. The XMM library was developed with interaction
+ as a central constraint and allows
+ for continuous, real-time use of the proposed methods.
+ @section why Why another HMM Library?
+ Several general machine learning toolkits have become popular over the years,
+ such as Weka in Java, Sckits-Learn in Python,
+ or more recently MLPack in C++. However, none of the above libraries were
+ adapted for the purpose of this thesis. As a matter
+ of fact, most HMM implementations are oriented towards classification and they
+ often only implement offline inference using
+ the Viterbi algorithm.
+
+ In speech processing, the <a href="http://htk.eng.cam.ac.uk/">Hidden Markov
+ Model Toolkit (HTK)</a> has now become a standard
+ in Automatic Speech Recognition, and gave birth to a branch oriented towards
+ synthesis, called <a href="http://hts.sp.nitech.ac.jp/">HTS</a>.
+ Both libraries present many features specific to speech synthesis that do not
+ yet match our use-cases in movement and sound processing,
+ and have a really complex structure that does not facilitate embedding.
+
+ Above all, we did not find any library explicitly implementing the Hierarchical
+ HMM, nor the regression methods based on
+ GMMs and HMMs. For these reasons, we decided to start of novel implementation
+ of these methods with the following
+ constraints:
+ - __Real-Time:__ Inference must be performed in continuously, meaning that the
+ models must update their internal state and prediction
+ at each new observation to allow continuous recognition and generation.
+
+ - __Interactive:__ The library must be compatible with an interactive learning
+ workflow, that allows users to easily define and edit
+ training sets, train models, and evaluate the results through direct
+ interaction.
+ All models must be able to learn from few examples (possibly a single
+ demonstration).
+
+ - __Portable:__ In order to be integrated within various software, platforms,
+ the library must be portable, cross-platform, and lightweight.
+
+ We chose C++ that is both efficient and easy to integrate within other software
+ and languages such as Max and Python.
+ We now detail the four models that are implemented to date, the architecture of
+ the library as well as the proposed
+ Max/MuBu implementation with several examples.
+ @section fourmodels Four Models
+ The implemented models are summarized in Table the following table.
+ Each of the four model addresses a different combination of the multimodal and
+ temporal aspects.
+ We implemented two instantaneous models based on Gaussian Mixture Models and
+ two temporal models with a hierarchical
+ structure, based on an extension of the basic Hidden Markov Model (HMM)
+ formalism.
+ \ | Movement      | Multimodal
+ ------------- | ------------- | -------------
+ Instantaneous | Gaussian Mixture Model (GMM) | Gaussian Mixture Regression
+ (GMR)
+ Temporal  | Hierarchical Hidden Markov Model(HHMM)  | Multimodal Hierarchical
+ Hidden Markov Model(MHMM)
+
+ - __Gaussian Mixture Models (GMMs)__ are instantaneous movement models.
+ The input data associated to a class defined by the training sets is abstracted
+ by a mixture (i.e.\ a weighted sum) of Gaussian distributions.
+ This representation allows recognition in the _performance_ phase: for each
+ input frame the model calculates the likelihood of each
+ class (Figure 1 (__a__)).
+
+ - __Gaussian Mixture Regression (GMR)__ are a straightforward extension of
+ Gaussian Mixture Models used for regression.
+ Trained with multimodal data, GMR allows for predicting the features of one
+ modality (e.g. sound) from the features
+ of another (e.g. movement) through non-linear regression between both feature
+ sets (Figure 1 (__b__)).
+
+ - __Hierarchical HMM (HHMM)__ integrates a high-level structure that governs
+ the transitions between classical HMM structures representing the
+ temporal evolution of --- low-level --- movement segments. In the _performance_
+ phase of the system, the hierarchical model estimates the likeliest
+ gesture according to the transitions defined by the user. The system
+ continuously estimates the likelihood for each model, as well as the time
+ progression within the original training phrases (Figure 1 (__c__)).
+
+ - __Multimodal Hierarchical HMM (MHMM)__ allows for predicting a stream of
+ sound parameters from a stream of movement features.
+ It simultaneously takes into account the temporal evolution of movement and
+ sound as well as their dynamic relationship according
+ to the given example phrases. In this way, it guarantees the temporal
+ consistency of the generated sound, while realizing the trained
+ temporal movement-sound mappings (Figure 1 (__d__)).
+
+ @image html xmm_models.jpg "Figure 1: Schematic Representation of the 4
+ implemented models"
+
+ @section architecture Architecture
+ Our implementation has a particular attention to the interactive training
+ procedure, and to the respect of the
+ real-time constraints of the _performance_ mode.
+ The library is built upon four components representing phrases, training sets,
+ models and model groups, as represented
+ on Figure 2.
+ A phrase is a multimodal data container used to store training examples.
+ A training set is used to aggregate phrases associated with labels. It provides
+ a set of function for interactive
+ recording, editing and annotation of the phrases.
+ Each instance of a model is connected to a training set that provides access to
+ the training phrases.
+ Performance functions are designed for real-time usage, updating the internal
+ state of the model and the results for
+ each new observation of a new movement.
+ The library is portable and cross-platform. It defines a specific format for
+ exchanging trained models, and provides
+ Python bindings for scripting purpose or offline processing.
+ @image html xmm_architecture.jpg "Figure 2: Architecture of the XMM library"
+
+ @section relatedpubs Related Publications
+ * J. Francoise, N. Schnell, R. Borghesi, and F. Bevilacqua, Probabilistic
+ Models for Designing Motion and Sound Relationships. In Proceedings of the 2014
+ International Conference on New Interfaces for Musical Expression, NIME’14,
+ London, UK, 2014. <a
+ href="http://julesfrancoise.com/blog/wp-content/uploads/2014/06/Fran%C3%A7oise-et-al.-2014-Probabilistic-Models-for-Designing-Motion-and-Sound-Relationships.pdf?1ce945">Download</a>
+
+ * J. Francoise, N. Schnell, and F. Bevilacqua, A Multimodal Probabilistic Model
+ for Gesture-based Control of Sound Synthesis. In Proceedings of the 21st ACM
+ international conference on Multimedia (MM’13), Barcelona, Spain, 2013. <a
+ href="http://architexte.ircam.fr/textes/Francoise13b/index.pdf">Download</a>
+
+ <center>Prev: \ref mainpage "Home" | Next: \ref Compilation.</center>
+ */
+
+#pragma mark -
+#pragma mark Compilation and Usage
+
+/**
+ @page Compilation Compilation and Usage
+ @tableofcontents
+
+ @section Dependencies
+ The library depends on <a
+ href="https://github.com/open-source-parsers/jsoncpp">jsoncpp</a> for JSON file
+ I/O. The library is distributed with this softare. The units tests rely on the
+ <a href="https://github.com/philsquared/Catch">Catch</a> testing framework@n
+
+ @section lib Compiling as a static/dynamic library
+ @subsection xcodelib XCode
+ See the xcode project in "ide/xcode/"
+
+ @subsection cmakelib CMake
+ The library can be built using <a href="http://www.cmake.org/">CMake</a>.@n
+ In the root directory, type the following command to generate the Makefiles:
+ @code
+ cmake . -G"Unix Makefiles"
+ @endcode
+ The following commands can be used to build the static library, run the unit
+ tests, and generate the documentation:
+ @code
+ make
+ make test
+ make doc
+ @endcode
+
+ @subsection cppusage Usage
+
+ The header file "xmm.h" includes all useful headers of the library.
+
+ @section python Building the Python Library
+ @subsection dependencies Dependencies
+ - <a href="http://www.doxygen.org/">doxygen</a>
+ - <a href="http://www.swig.org/">swig</a>
+ - <a href="http://www.numpy.org/">Numpy</a>
+ - <a href="http://matplotlib.org/">Matplotlib</a> (for plotting utilities)
+
+ @subsection pythonbuild Building
+ The python module can be built using <a
+ href="http://www.cmake.org/">CMake</a>.@n
+ In the python directory, type the following command to generate the Makefiles
+ and build the python module:
+ @code
+ cmake . -G"Unix Makefiles"
+ make
+ @endcode
+ The module should be installed in "${xmm_root}/python/bin/"
+
+ @subsection usage Usage
+ Place the built python library somewhere in your python path. To add personal
+ libraries located in '/Path/To/Libs' to the python path, add the following
+ lines to your ".bash_profile":
+
+ @code
+ PYTHONPATH=$PYTHONPATH:/Path/To/Libs
+ export PYTHONPATH
+ @endcode
+
+ To import the library in python:
+ @code
+ >>> import xmm
+ @endcode
+
+ Additional utilities can be found in `xmm.util`.
+ <center>Prev: \ref Introduction | Next: \ref examples_cpp.</center>
+ */
+
+#pragma mark -
+#pragma mark Getting Started in C++
+
+/**
+ @page examples_cpp Getting Started in C++
+ @tableofcontents
+
+ TODO.
+
+ <center>Prev: \ref Compilation | Next: \ref examples_py.</center>
+
+ */
+
+#pragma mark -
+#pragma mark Getting Started in Python
+
+/**
+ @page examples_py Getting Started in Python
+ @tableofcontents
+
+ TODO.
+
+ @section pyexamples Python Examples
+
+ Several examples are included in the ipython notebook IPython Notebook:
+ `python/examples/QuickStart_Python.ipynb` @n
+ We report here the static html version of the notebook:
+
+ @htmlinclude QuickStart_Python.html
+ */
+
+#pragma mark -
+#pragma mark Documentation
+
+/**
+ @page Documentation Documentation
+
+ This page contains the detailed documentation of the library (generated by
+ Doxygen).
+
+ <ul>
+ <li><a href="modules.html">Modules</a></li>
+ <li><a href="annotated.html">Class List</a></li>
+ <li><a href="inherits.html">Class Hierarchy</a></li>
+ </ul>
+
+ */
+
+#pragma mark -
+#pragma mark Download
+
+/**
+ @page Download Download
+ @tableofcontents
+
+ @section cpplib C++ Library
+
+ The source code is available on __Github__: https://github.com/Ircam-RnD/xmm
+
+ @section maxmubu Max/MuBu Implementation
+ The models are integrated with the <a
+ href="http://ismm.ircam.fr/mubu/">MuBu</A> environment within
+ <a href="http://cycling74.com/">Cycling 74 Max</a> that provides a consistent
+ framework for motion/sound feature extraction
+ and pre-processing; interactive recording, editing, and annotation of the
+ training sets; and interactive sound synthesis.
+ MuBu is freely available on <a
+ href="http://forumnet.ircam.fr/product/mubu/">Ircam's Forumnet</a>.
+
+ Max is a visual programming environment dedicated to music and interactive
+ media.
+ We provide an implementation of our library as a set of Max externals and
+ abstractions articulated around the _MuBu_ collection of objects developed at
+ Ircam.
+ Training sets are built using _MuBu_, a generic container designed to store and
+ process multimodal data such as audio, motion tracking data, sound descriptors,
+ markers, etc.
+ Each training phrase is stored in a buffer of the container, and movement and
+ sound parameters are recorded into separate tracks of each buffer.
+ Markers can be used to specify regions of interest within the recorded
+ examples.
+ Phrases are labeled using the markers or as an attribute of the buffer.
+ This structure allows users to quickly record, modify, and annotate the
+ training examples.
+ Training sets are thus autonomous and can be used to train several models.
+
+ Each model can be instantiated as a max object referring to a MuBu container
+ that defines its training set.
+ For training, the model connects to the container and transfers the training
+ examples to its internal representation of phrases.
+ The parameters of the model can be set manually as attributes of the object,
+ such as the number of Gaussian components in the case of a GMM, or the number
+ of states in the case of a HMM.
+ The training is performed in background.
+
+ For performance, each object processes an input stream of movement features and
+ updates the results with the same rate.
+ For movement models, the object output the list of likelihoods, complemented
+ with the parameters estimated for each class, such as the time progression in
+ the case of a temporal model, or the weight of each Gaussian component in the
+ case of a GMM.
+ For multimodal models, the object also outputs the most probable sound
+ parameters estimated by the model, that can be directly used to drive the sound
+ synthesis.
+
+ @section ofx_addon OpenFrameworks Addon
+
+ Coming Soon...
+
+ */
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/libRAPID-MIX_API.a b/examples/ofx/Bitalino_rapidmix/libRAPID-MIX_API.a
new file mode 100644
index 0000000000000000000000000000000000000000..a2313c41e6ce03bf4053303a8516fcbcc0580e62
GIT binary patch
literal 2254136
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%0D)C#D
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%0AN`+U}Si8`$4Otn($>
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%0An`cvMA=7}d|rH@?CW&ch@V8+O=b!3fwEuHVLN_s
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

literal 0
HcmV?d00001

diff --git a/examples/ofx/Bitalino_rapidmix/openFrameworks-Info.plist b/examples/ofx/Bitalino_rapidmix/openFrameworks-Info.plist
new file mode 100644
index 0000000..8d64d2b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/openFrameworks-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>cc.openFrameworks.ofapp</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CFBundleIconFile</key>
+	<string>${ICON}</string>
+</dict>
+</plist>
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/LICENSE b/examples/ofx/Bitalino_rapidmix/rapid-mix/LICENSE
new file mode 100644
index 0000000..b9a6377
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/LICENSE
@@ -0,0 +1,29 @@
+Copyright (c) 2017 Goldsmiths College University of London
+Copyright (c) 2017 by IRCAM – Centre Pompidou, Paris, France
+All rights reserved.
+
+The RAPID-MIX API wrapper, in the /src directory, is licenced by the BSD license below. Submodules in the /dependances
+folder have their own copyrights and licenses, including MIT, BSD, and GPLv3 licenses. Users are requested to check
+individual folders for license details, or to contact RAPID-MIX developers.
+
+BSD 3-clause
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 
+following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice, this list of conditions and the following 
+disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following 
+disclaimer in the documentation and/or other materials provided with the distribution.
+
+- Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products 
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
+USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.cpp b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.cpp
new file mode 100644
index 0000000..11d7153
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.cpp
@@ -0,0 +1,91 @@
+/**
+ * @file machineLearning.cpp
+ * @author Michael Zbyszynski
+ * @date 10 Jan 2016
+ * @copyright
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "machineLearning.h"
+
+namespace rapidmix {
+    
+    //////////////////////////////////////////////////////////////////////// Generic train
+    template <class MachineLearningModule>
+    bool machineLearning<MachineLearningModule>::train(const trainingData &newTrainingData) {
+        return MachineLearningModule::train(newTrainingData);
+    }
+
+    
+    /////////////////////////////////////////////////////////////////////// RapidLib specializations
+    
+    void trainingData2rapidLib (const trainingData &newTrainingData, std::vector<trainingExample> &trainingSet) {
+        for (int h = 0; h < newTrainingData.trainingSet.size(); ++h) { //Go through every phrase
+            
+            for (int i = 0; i < newTrainingData.trainingSet[h].elements.size(); ++i) { //...and every element
+                trainingExample tempExample;
+                tempExample.input = newTrainingData.trainingSet[h].elements[i].input;
+                if (newTrainingData.trainingSet[h].elements[i].output.size() > 0) {
+                    tempExample.output = newTrainingData.trainingSet[h].elements[i].output;
+                } else {
+                    tempExample.output.push_back(double(h));
+                }
+                trainingSet.push_back(tempExample);
+            }
+        }
+    };
+    
+    /////////////////////////////////////////////////////////////////////// RapidLib classification
+    template<>
+    bool machineLearning<classification>::train(const trainingData &newTrainingData) {
+        std::vector<trainingExample> trainingSet;
+        labels.clear();
+        for (int i = 0; i < newTrainingData.trainingSet.size(); ++i) {
+            labels.push_back(newTrainingData.trainingSet[i].label);
+        }
+        trainingData2rapidLib(newTrainingData, trainingSet);
+        return classification::train(trainingSet);
+    }
+    
+    /////////////////////////////////////////////////////////////////////// RapidLib regression
+    template<>
+    bool machineLearning<regression>::train(const trainingData &newTrainingData) {
+        std::vector<trainingExample> trainingSet;
+        trainingData2rapidLib(newTrainingData, trainingSet);
+        return regression::train(trainingSet);
+    }
+    
+    /////////////////////////////////////////////////////////////////////// RapidLib seriesClassification
+    template<>
+    bool machineLearning<seriesClassification>::train(const trainingData &newTrainingData) {
+        std::vector<trainingSeries> seriesSet;
+        for (int i = 0; i < newTrainingData.trainingSet.size(); ++i) { //each phrase
+            trainingSeries tempSeries;
+            tempSeries.label = newTrainingData.trainingSet[i].label;
+            for (int j = 0; j < newTrainingData.trainingSet[i].elements.size(); ++j) { //each element
+                tempSeries.input.push_back(newTrainingData.trainingSet[i].elements[j].input);
+            }
+            seriesSet.push_back(tempSeries);
+        }
+        return seriesClassification::train(seriesSet);
+    }
+    
+    template<>
+    std::string machineLearning<classification>::run(const std::vector<double> &inputVector, const std::string &label) {
+        int classIndex = classification::run(inputVector)[0];
+        return labels[classIndex];
+    };
+    
+    template<>
+    std::string machineLearning<seriesClassification>::run(const std::vector<std::vector<double> > &inputSeries) {
+        return seriesClassification::run(inputSeries);
+    }
+    
+    
+    /////////////////////////////////////////////////////////////////////// GVF
+    template<>
+    bool machineLearning<rapidGVF>::train(const trainingData &newTrainingData) {
+        return rapidGVF::train(newTrainingData);
+    }
+    
+}
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.h
new file mode 100644
index 0000000..80c101d
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/machineLearning.h
@@ -0,0 +1,113 @@
+/**
+ * @file machineLearning.h
+ * @author Michael Zbyszynski on 10 Jan 2016
+ * @copyright
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ *
+ * @ingroup machinelearning
+ */
+
+#ifndef machineLearning_h
+#define machineLearning_h
+
+#include "rapidmix.h"///////// Include all of the machine learning algorithms here
+#include "classification.h"
+#include "regression.h"
+#include "seriesClassification.h"
+#include "rapidXMM.h"
+#include "rapidGVF.h"
+
+namespace rapidmix {
+    
+    // forward declaration
+    class trainingData;
+    
+    /** @brief A generic ouptut struct to fit all kinds of models */
+    typedef struct runResults_t {
+        std::vector<double> likelihoods;
+        std::vector<double> regression;
+        std::vector<double> progressions;
+        std::string likeliest;
+    } runResults;
+    
+    /**
+     * @brief Host class for machine learning algorithms
+     */
+    template <typename MachineLearningModule>
+    class machineLearning : public MachineLearningModule {
+    public:
+        
+        //* Constructors */
+        machineLearning() : MachineLearningModule() {};
+        
+        template<class T>
+        machineLearning(T type) : MachineLearningModule(type) {};
+        
+        /**
+         * @brief This function becomes specialized in the implementation
+         */
+        bool train(const trainingData &newTrainingData);
+        
+        // This is a hack while I think about how to do this. -MZ //
+        std::string run(const std::vector<double> &inputVector, const std::string &label);
+        
+        //* This is the one I'm using for DTW */
+        std::string run(const std::vector<std::vector<double> > &inputSeries);
+        
+        //* this function is not being specialized
+        std::vector<double> run(const std::vector<double> &inputVector) {
+            return MachineLearningModule::run(inputVector);
+        }
+        
+        bool reset() {
+            return MachineLearningModule::reset();
+        }
+        
+    private:
+        MachineLearningModule module;
+        
+        //this holds string labels
+        std::vector<std::string> labels; //FIXME: This probably should be pushed down into rapidLib?
+        std::string getLabel(int value);
+        
+    };
+    
+    ////////// typedefs for calling different algorithms
+    
+    ///// RapidLib
+    
+    /** @brief static classification using KNN from RapidLib */
+    typedef machineLearning<classification> staticClassification;
+    
+    /** @brief static regression using Neural Networks from RapidLib */
+    typedef machineLearning<regression> staticRegression;
+    
+    /** @brief temporal classification using Dynamic Time Warping from RapidLib */
+    typedef machineLearning<seriesClassification> dtwTemporalClassification;
+    
+    ///// XMM
+    
+    /** @brief configuration for XMM based algorithms */
+    typedef xmmToolConfig xmmConfig;
+    
+    /** @brief static classification using Gaussian Mixture Models from XMM */
+    typedef machineLearning<rapidXmmGmm> xmmStaticClassification;
+    
+    /** @brief static regression using Gaussian Mixture Models from XMM */
+    typedef machineLearning<rapidXmmGmr> xmmStaticRegression;
+    
+    /** @brief temporal classification using Hierarchical Hidden Markov Models from XMM */
+    typedef machineLearning<rapidXmmHmm> xmmTemporalClassification;
+    
+    /** @brief temporal regression using Hierarchical Hidden Markov Models from XMM */
+    typedef machineLearning<rapidXmmHmr> xmmTemporalRegression;
+    
+    ///// GVF
+    
+    /** @brief temporal variation estimation using GVF library */
+    typedef machineLearning<rapidGVF> gvfTemporalVariation;
+    
+    
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.cpp b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.cpp
new file mode 100644
index 0000000..1f051fd
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.cpp
@@ -0,0 +1,86 @@
+//
+//  rapidGVF.cpp
+//
+//  Created by Francisco on 04/05/2017.
+//  Copyright © 2017 Goldsmiths. All rights reserved.
+//
+
+#include "rapidGVF.h"
+#include "trainingData.h"
+
+rapidGVF::rapidGVF()
+{
+    // Initialised with default configuration
+    this->gvf = new GVF();
+    this->currentGesture = GVFGesture();
+}
+
+rapidGVF::~rapidGVF()
+{
+    delete this->gvf;
+    this->currentGesture = NULL;
+}
+
+bool rapidGVF::train(const rapidmix::trainingData &newTrainingData) {
+    
+    if (newTrainingData.trainingSet.size() < 1) {
+        // no recorded phrase
+        return false;
+    }
+    
+    if (newTrainingData.trainingSet.size() == 1 && newTrainingData.trainingSet[0].elements.size() == 0) {
+        // empty recorded phrase
+        return false;
+    }
+    
+    if(gvf->getState() != GVF::STATE_LEARNING)
+    {
+        gvf->setState(GVF::STATE_LEARNING);
+    }
+    
+    //Go through every phrase
+
+    for (int h = 0; h < newTrainingData.trainingSet.size(); ++h) { //I changed this because the default set is gone. -MZ
+        this->gvf->startGesture();
+        for (int i = 0; i < newTrainingData.trainingSet[h].elements.size(); ++i) {
+            
+            std::vector<double> vd = newTrainingData.trainingSet[h].elements[i].input;
+            
+            // Using template <class InputIterator> vector to change for vec<double> to vec<float>
+            std::vector<float> vf(vd.begin(), vd.end());
+            this->currentGesture.addObservation(vf);
+        }
+        this->gvf->addGestureTemplate(this->currentGesture);
+    }
+    return true;
+}
+
+std::vector<double> rapidGVF::run(const std::vector<double> &inputVector){
+    
+    if (inputVector.size() == 0) {
+        return std::vector<double>();
+    }
+    
+    gvf->restart();
+    
+    if(gvf->getState() != GVF::STATE_FOLLOWING)
+    {
+        gvf->setState(GVF::STATE_FOLLOWING);
+    }
+    
+    // Using template <class InputIterator> vector to change for vec<double> to vec<float>
+    std::vector<float> vf(inputVector.begin(),inputVector.end());
+    
+    this->currentGesture.addObservation(vf);
+    this->outcomes = this->gvf->update(this->currentGesture.getLastObservation());
+    
+    std::vector<double> output;
+    output.push_back(this->outcomes.likeliestGesture);
+    output.insert(output.end(), this->outcomes.likelihoods.begin(), this->outcomes.likelihoods.end());
+    output.insert(output.end(), this->outcomes.alignments.begin(), this->outcomes.alignments.end());
+//    output.insert(output.end(), this->outcomes.dynamics.begin(), this->outcomes.dynamics.end());
+//    output.insert(output.end(), this->outcomes.scalings.begin(), this->outcomes.scalings.end());
+//    output.insert(output.end(), this->outcomes.rotations.begin(), this->outcomes.rotations.end());
+//    
+    return output;
+}
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.h
new file mode 100644
index 0000000..88e667a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidGVF/rapidGVF.h
@@ -0,0 +1,37 @@
+/**
+ * @file rapidGVF.h
+ * Created by Francisco on 04/05/2017.
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ *
+ * @ingroup machinelearning
+ */
+
+#ifndef rapidGVF_h
+#define rapidGVF_h
+
+#include <vector>
+#include <string>
+#include "GVF.h"
+
+namespace rapidmix { class trainingData; }
+
+/**
+ * @brief This class is an adapter for the GVF library from Baptiste Caramiaux
+ */
+class rapidGVF {
+    
+public:
+    rapidGVF();
+    ~rapidGVF();
+    
+    bool train(const rapidmix::trainingData &newTrainingData);
+    std::vector<double> run(const std::vector<double> &inputVector);
+    //TODO: needs a "reset" message
+    
+protected:
+    GVF * gvf;
+    GVFGesture currentGesture;
+    GVFOutcomes outcomes;
+};
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.cpp b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.cpp
new file mode 100644
index 0000000..799a429
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.cpp
@@ -0,0 +1,208 @@
+#include "rapidXMM.h"
+#include "trainingData.h"
+#include "machineLearning.h"
+
+static bool trainingData2xmmTrainingSet(const rapidmix::trainingData& data, xmm::TrainingSet& set) {
+  if (data.trainingSet.size() < 1) {
+    return false;
+  }
+
+  if (data.trainingSet.size() > 0 && data.trainingSet[0].elements.size() == 0) {
+    // empty recorded phrase
+    return false;
+  }
+
+  rapidmix::trainingData::element el = data.trainingSet[0].elements[0];
+  int dimIn = static_cast<int>(el.input.size());
+  int dimOut = static_cast<int>(el.output.size());
+
+  // translate and return true if data and set are compatible
+  // don't translate and return false otherwise
+
+  if (dimOut > 0 != set.bimodal()) {
+    return false;
+  }
+
+  xmm::Phrase xp;
+
+  if (set.bimodal()) {
+    set.dimension.set(dimIn + dimOut);
+    set.dimension_input.set(dimIn);
+    xp = xmm::Phrase(xmm::MemoryMode::OwnMemory, xmm::Multimodality::Bimodal);
+    xp.dimension.set(dimIn + dimOut);
+    xp.dimension_input.set(dimIn);
+  } else {
+    set.dimension.set(dimIn);
+    set.dimension_input.set(0);
+    xp = xmm::Phrase(xmm::MemoryMode::OwnMemory, xmm::Multimodality::Unimodal);
+    xp.dimension.set(dimIn);
+    xp.dimension_input.set(0);
+  }
+
+  set.clear();
+
+  //for (auto &phrase : data.trainingSet) {
+  for (int i = 0; i < data.trainingSet.size(); ++i) {
+    const rapidmix::trainingData::phrase &phrase = data.trainingSet[i];
+    xp.clear();
+    xp.label.set(phrase.label);
+
+    for (auto &element : phrase.elements) {
+      std::vector<float> obsIn(element.input.begin(), element.input.end());
+      std::vector<float> obsOut(element.output.begin(), element.output.end());
+      std::vector<float> obs;
+      obs.insert(obs.end(), obsIn.begin(), obsIn.end());
+      obs.insert(obs.end(), obsOut.begin(), obsOut.end());
+      xp.record(obs);
+    }
+
+    set.addPhrase(static_cast<int>(set.size()), xp);
+  }
+
+  return true;
+}
+
+//=============================== xmmTool ====================================//
+
+template <class SingleClassModel, class Model>
+bool xmmTool<SingleClassModel, Model>::train(const rapidmix::trainingData& newTrainingData) {
+  if (trainingData2xmmTrainingSet(newTrainingData, set)) {
+    model.train(&set);
+    model.reset();
+    return true;
+  }
+
+  return false;
+}
+
+////////// private JSON data manipulation methods :
+
+//TODO: add a type field (gmm/gmr/hmm/hmr) in metadata when family is xmm
+template <class SingleClassModel, class Model>
+Json::Value xmmTool<SingleClassModel, Model>::toJSON(/*std::string modelType*/) {
+  Json::Value root;
+  Json::Value metadata;
+  Json::Value modelSet;
+
+  metadata["creator"] = "Rapid API C++";
+  metadata["version"] = "v0.1.1"; //TODO: This should be a macro someplace
+  metadata["family"] = "xmm";
+  root["metadata"] = metadata;
+
+  modelSet.append(model.toJson());
+  root["modelSet"] = modelSet;
+
+  return root;
+}
+
+template <class SingleClassModel, class Model>
+bool xmmTool<SingleClassModel, Model>::fromJSON(Json::Value &jm) {
+  if (jm["metadata"]["family"].asString().compare("xmm") == 0 &&
+      jm["modelSet"].size() > 0) {
+    model.fromJson(jm["modelSet"][0]);
+    model.reset();
+    return true;
+  }
+
+  return false;
+}
+
+////////// public JSON file manipulation interface :
+
+template <class SingleClassModel, class Model>
+std::string xmmTool<SingleClassModel, Model>::getJSON() {
+  Json::Value result = toJSON();
+  return result.toStyledString();
+}
+
+template <class SingleClassModel, class Model>
+void xmmTool<SingleClassModel, Model>::writeJSON(const std::string &filepath) {
+  Json::Value root = toJSON();
+  std::ofstream jsonOut;
+  jsonOut.open (filepath);
+  Json::StyledStreamWriter writer;
+  writer.write(jsonOut, root);
+  jsonOut.close();
+}
+
+template <class SingleClassModel, class Model>
+bool xmmTool<SingleClassModel, Model>::putJSON(const std::string &jsonMessage) {
+  Json::Value parsedFromString;
+  Json::Reader reader;
+  bool parsingSuccessful = reader.parse(jsonMessage, parsedFromString);
+  return (parsingSuccessful && fromJSON(parsedFromString));
+}
+
+template <class SingleClassModel, class Model>
+bool xmmTool<SingleClassModel, Model>::readJSON(const std::string &filepath) {
+  Json::Value root;
+  std::ifstream file(filepath);
+  file >> root;
+  return fromJSON(root);
+}
+
+//============================== xmmGmmTool ==================================//
+
+// std::vector<double> xmmGmmTool::run(const std::vector<double>& inputVector) {
+std::vector<double> rapidXmmGmm::run(const std::vector<double>& inputVector) {
+  xmmTool::preProcess(inputVector);
+  return model.results.smoothed_normalized_likelihoods;
+}
+
+//============================== xmmGmrTool ==================================//
+
+// std::vector<double> xmmGmrTool::run(const std::vector<double>& inputVector) {
+std::vector<double> rapidXmmGmr::run(const std::vector<double>& inputVector) {
+  xmmTool::preProcess(inputVector);
+  std::vector<float> *res = &model.results.output_values;
+  std::vector<double> dRes(res->begin(), res->end());
+  return dRes;
+}
+
+//============================== xmmHmmTool ==================================//
+
+// std::vector<double> xmmHmmTool::run(const std::vector<double>& inputVector) {
+std::vector<double> rapidXmmHmm::run(const std::vector<double>& inputVector) {
+  xmmTool::preProcess(inputVector);
+  std::vector<double> res;
+
+  int i(0);
+  for (auto &m : model.models) {
+    res.push_back(model.results.smoothed_normalized_likelihoods[i]);
+    res.push_back(m.second.results.progress);
+    i++;
+  }
+
+  return res;
+}
+
+//============================== xmmHmrTool ==================================//
+
+// std::vector<double> xmmHmrTool::run(const std::vector<double>& inputVector) {
+std::vector<double> rapidXmmHmr::run(const std::vector<double>& inputVector) {
+  xmmTool::preProcess(inputVector);
+  std::vector<float> *res = &model.results.output_values;
+  std::vector<double> dRes(res->begin(), res->end());
+  return dRes;
+}
+
+///////////////////////////////////////////////////////////////////////////
+///// generic train method and forward declaration of specialized templates 
+///////////////////////////////////////////////////////////////////////////
+
+//I wonder why this can't be defined in machineLearning.cpp? -MZ
+
+template <class MachineLearningModule>
+bool rapidmix::machineLearning<MachineLearningModule>::train(const trainingData &newTrainingData) {
+    return MachineLearningModule::train(newTrainingData);
+}
+
+// template class rapidmix::machineLearning<xmmGmmTool>;
+// template class rapidmix::machineLearning<xmmGmrTool>;
+// template class rapidmix::machineLearning<xmmHmmTool>;
+// template class rapidmix::machineLearning<xmmHmrTool>;
+template class rapidmix::machineLearning<rapidXmmGmm>;
+template class rapidmix::machineLearning<rapidXmmGmr>;
+template class rapidmix::machineLearning<rapidXmmHmm>;
+template class rapidmix::machineLearning<rapidXmmHmr>;
+
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.h
new file mode 100644
index 0000000..e87f992
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/rapidXMM/rapidXMM.h
@@ -0,0 +1,296 @@
+/**
+ * @file rapidXMM.h
+ * @author joseph larralde
+ * 
+ * @copyright
+ * Copyright (C) 2016 - 2017 by IRCAM - Centre Pompidou, Paris, France.
+ * All rights reserved.
+ *
+ * @ingroup machinelearning
+ */
+
+#ifndef _RAPID_XMM_TOOLS_H_
+#define _RAPID_XMM_TOOLS_H_
+
+// this works !
+#ifndef EXTERNAL_JSONCPP_PATH
+// #define EXTERNAL_JSONCPP_PATH "../../../../json/json.h" // relative to xmmJson.h
+#define EXTERNAL_JSONCPP_PATH "json.h"
+#endif /* EXTERNAL_JSONCPP_PATH */
+
+#include "xmm.h"
+
+// forward declaration
+namespace rapidmix { class trainingData; }
+
+// original defined in xmmModelConfiguration.hpp
+enum xmmRegressionEstimator {
+  xmmLikeliestRegression,
+  xmmMixtureRegression
+};
+
+// original defined in xmmGaussianDistribution.hpp
+enum xmmCovarianceMode {
+  xmmFullCovariance,
+  xmmDiagonalCovariance
+};
+
+// original defined in xmmHmmParameters.hpp
+enum xmmHmmTransitionMode {
+  xmmHmmLeftRightTransition,
+  xmmHmmErgodicTransition
+};
+
+// original defined in xmmHmmParameters.hpp
+enum xmmHmmRegressionEstimator {
+  xmmHmmFullRegression,
+  xmmHmmWindowedRegression,
+  xmmHmmLikeliestRegression
+};
+
+// this is the optional argument of machineLearning<xmmWhateverTool>'s constructors
+struct xmmToolConfig {
+  xmmToolConfig() :
+  gaussians(1),
+  relativeRegularization(0.01),
+  absoluteRegularization(0.01),
+  regressionEstimator(xmmMixtureRegression),
+  covarianceMode(xmmFullCovariance),
+  states(5),
+  hierarchical(true),
+  hmmTransitionMode(xmmHmmErgodicTransition),
+  hmmRegressionEstimator(xmmHmmFullRegression),
+  likelihoodWindow(5) {}
+
+  // general parameters :
+  uint32_t gaussians;
+  float relativeRegularization;
+  float absoluteRegularization;
+  xmmRegressionEstimator regressionEstimator;
+  xmmCovarianceMode covarianceMode;
+
+  // hmm specific :
+  uint32_t states;
+  bool hierarchical;
+  xmmHmmTransitionMode hmmTransitionMode;
+  xmmHmmRegressionEstimator hmmRegressionEstimator;
+
+  // run-time parameter :
+  uint32_t likelihoodWindow;
+};
+
+//========================== template base class =============================//
+
+template <class SingleClassModel, class Model>
+class xmmTool {
+protected:
+  xmmTool(bool bimodal) {
+    model = Model(bimodal);
+    model.configuration.multithreading = xmm::MultithreadingMode::Sequential;
+    model.configuration.changed = true;
+
+    set = xmm::TrainingSet(xmm::MemoryMode::OwnMemory,
+      bimodal
+      ? xmm::Multimodality::Bimodal
+      : xmm::Multimodality::Unimodal
+    );
+  }
+
+  virtual void preProcess(const std::vector<double> &inputVector) {
+    std::vector<float> fv(inputVector.begin(), inputVector.end());
+    model.filter(fv);
+  }
+
+public:
+  virtual ~xmmTool() {}
+
+  virtual bool train(const rapidmix::trainingData &newTrainingData);
+
+  virtual bool reset() {
+    model.reset();
+    return true;
+  }
+
+  /** Get a JSON representation of the model in the form of a styled string */
+  virtual std::string getJSON();
+  /** Write a JSON model description to specified file path */
+  virtual void writeJSON(const std::string &filepath);
+  /** configure empty model with string. See getJSON() */
+  virtual bool putJSON(const std::string &jsonMessage);
+  /** read a JSON file at file path and build a modelSet from it */
+  virtual bool readJSON(const std::string &filepath);
+
+protected:
+  Model model;
+  xmm::TrainingSet set;
+
+  Json::Value toJSON();
+  bool fromJSON(Json::Value &jm);
+};
+
+//======================= base class for GMM models ==========================//
+
+template <class SingleClassModel, class Model>
+class xmmStaticTool : public xmmTool<SingleClassModel, Model> {
+protected:
+  xmmStaticTool(xmmToolConfig cfg, bool bimodal) :
+  xmmTool<SingleClassModel, Model>(bimodal) {
+    xmm::Configuration<SingleClassModel>& mCfg = this->model.configuration;
+
+    mCfg.gaussians.set(cfg.gaussians);
+    mCfg.relative_regularization.set(cfg.relativeRegularization);
+    mCfg.absolute_regularization.set(cfg.absoluteRegularization);
+    
+    xmm::MultiClassRegressionEstimator mcre;
+    switch (cfg.regressionEstimator) {
+      case xmmLikeliestRegression:
+        mcre = xmm::MultiClassRegressionEstimator::Likeliest;
+      case xmmMixtureRegression:
+      default:
+        mcre = xmm::MultiClassRegressionEstimator::Mixture;
+        break;
+    }
+    mCfg.multiClass_regression_estimator = mcre;
+
+    xmm::GaussianDistribution::CovarianceMode gdcm;
+    switch (cfg.covarianceMode) {
+      case xmmFullCovariance:
+        gdcm = xmm::GaussianDistribution::CovarianceMode::Full;
+        break;
+      case xmmDiagonalCovariance:
+      default:
+        gdcm = xmm::GaussianDistribution::CovarianceMode::Diagonal;
+        break;
+    }
+    mCfg.covariance_mode.set(gdcm);
+
+    mCfg.changed = true;
+
+    this->model.shared_parameters->likelihood_window.set(cfg.likelihoodWindow);
+  }
+
+public:
+  virtual ~xmmStaticTool() {}
+};
+
+//======================= base class for HMM models ==========================//
+
+template <class SingleClassModel, class Model>
+class xmmTemporalTool : public xmmStaticTool<SingleClassModel, Model> {
+protected:
+  xmmTemporalTool(xmmToolConfig cfg, bool bimodal) :
+  xmmStaticTool<SingleClassModel, Model>(cfg, bimodal) {
+    xmm::Configuration<SingleClassModel>& mCfg = this->model.configuration;
+
+    mCfg.states.set(cfg.states);
+    mCfg.hierarchical.set(cfg.hierarchical);
+
+    xmm::HMM::TransitionMode htm;
+    switch (cfg.hmmTransitionMode) {
+      case xmmHmmLeftRightTransition:
+        htm = xmm::HMM::TransitionMode::LeftRight;
+        break;
+      case xmmHmmErgodicTransition:
+      default:
+        htm = xmm::HMM::TransitionMode::Ergodic;
+        break;
+    }
+    mCfg.transition_mode.set(htm);
+
+    xmm::HMM::RegressionEstimator hre;
+    switch (cfg.hmmRegressionEstimator) {
+      case xmmHmmFullRegression:
+        hre = xmm::HMM::RegressionEstimator::Full;
+        break;
+      case xmmHmmWindowedRegression:
+        hre = xmm::HMM::RegressionEstimator::Windowed;
+        break;
+      case xmmHmmLikeliestRegression:
+      default:
+        hre = xmm::HMM::RegressionEstimator::Likeliest;
+        break;
+    }
+    mCfg.regression_estimator.set(hre);
+
+    mCfg.changed = true;
+  }
+
+public:
+  virtual ~xmmTemporalTool() {}
+};
+
+//================== actual classes used in machineLearning.h ================//
+
+/**
+ * @brief Static classification using Gaussian Mixture Models
+ */
+// class xmmGmmTool : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+// class GMM : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+class rapidXmmGmm : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+public:
+  // xmmGmmTool(xmmToolConfig cfg = xmmToolConfig()) :
+  // GMM(xmmToolConfig cfg = xmmToolConfig()) :
+  rapidXmmGmm(xmmToolConfig cfg = xmmToolConfig()) :
+  xmmStaticTool<xmm::GMM, xmm::GMM>(cfg, false) {}
+  // ~xmmGmmTool() {}
+  // ~GMM() {}
+  ~rapidXmmGmm() {}
+
+  std::vector<double> run(const std::vector<double>& inputVector);
+};
+
+/**
+ * @brief Static regression using Gaussian Mixture Models
+ */
+// class xmmGmrTool : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+// class GMR : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+class rapidXmmGmr : public xmmStaticTool<xmm::GMM, xmm::GMM> {
+public:
+  // xmmGmrTool(xmmToolConfig cfg = xmmToolConfig()) :
+  // GMR(xmmToolConfig cfg = xmmToolConfig()) :
+  rapidXmmGmr(xmmToolConfig cfg = xmmToolConfig()) :
+  xmmStaticTool<xmm::GMM, xmm::GMM>(cfg, true) {}
+  // ~xmmGmrTool() {}
+  // ~GMR() {}
+  ~rapidXmmGmr() {}
+
+  std::vector<double> run(const std::vector<double>& inputVector);
+};
+
+/**
+ * @brief Temporal classification using Hierarchical Hidden Markov Models
+ */
+// class xmmHmmTool : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+// class HMM : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+class rapidXmmHmm : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+public:
+  // xmmHmmTool(xmmToolConfig cfg = xmmToolConfig()) :
+  // HMM(xmmToolConfig cfg = xmmToolConfig()) :
+  rapidXmmHmm(xmmToolConfig cfg = xmmToolConfig()) :
+  xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM>(cfg, false) {}
+  // ~xmmHmmTool() {}
+  // ~HMM() {}
+  ~rapidXmmHmm() {}
+
+  std::vector<double> run(const std::vector<double>& inputVector);
+};
+
+/**
+ * @brief Temporal regression using Hierarchical Hidden Markov Models
+ */
+// class xmmHmrTool : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+// class HMR : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+class rapidXmmHmr : public xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM> {
+public:
+  // xmmHmrTool(xmmToolConfig cfg = xmmToolConfig()) :
+  // HMR(xmmToolConfig cfg = xmmToolConfig()) :
+  rapidXmmHmr(xmmToolConfig cfg = xmmToolConfig()) :
+  xmmTemporalTool<xmm::HMM, xmm::HierarchicalHMM>(cfg, true) {}
+  // ~xmmHmrTool() {}
+  // ~HMR() {}
+  ~rapidXmmHmr() {}
+
+  std::vector<double> run(const std::vector<double>& inputVector);
+};
+
+#endif /* _RAPID_XMM_TOOLS_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.cpp b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.cpp
new file mode 100644
index 0000000..ba209e7
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.cpp
@@ -0,0 +1,207 @@
+/**
+ * @file trainingData.cpp
+ * @author Michael Zbyszynski
+ * @date 2 Feb 2017
+ * @copyright Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+#include "trainingData.h"
+
+namespace rapidmix {
+    
+    trainingData::trainingData () {
+        currentId = 0;
+        targetPhrase = 0;
+    };
+    
+    uint32_t trainingData::assignCurrentId() {
+        uint32_t returnVal = currentId;
+        ++currentId;
+        return returnVal;
+    }
+    
+    std::vector<trainingData::phrase>::iterator trainingData::createNewPhrase(std::string label) {
+        phrase tempPhrase = { assignCurrentId(), label };
+        trainingSet.push_back(tempPhrase);
+        std::vector<trainingData::phrase>::iterator it = --trainingSet.end();
+        return it;
+    };
+    
+    uint32_t trainingData::startRecording() {
+        phrase tempPhrase = { assignCurrentId(), std::to_string(tempPhrase.uniqueId) }; //TODO: Is this label helpful? -MZ
+        trainingSet.push_back(tempPhrase);
+        targetPhrase = int(trainingSet.size() - 1);
+        return tempPhrase.uniqueId;
+    };
+    
+    uint32_t trainingData::startRecording(const std::string &label) {
+        phrase tempPhrase = { assignCurrentId(), label };
+        trainingSet.push_back(tempPhrase);
+        targetPhrase = int(trainingSet.size() - 1);
+        return tempPhrase.uniqueId;
+        
+    };
+    
+    uint32_t trainingData::addElement(const std::vector<double> &input, const std::vector<double> &output) {
+        element newElement;
+        newElement.uniqueId = assignCurrentId();
+        newElement.input = input;
+        newElement.output = output;
+        newElement.timeStamp = NULL;
+        trainingSet[targetPhrase].elements.push_back(newElement);
+        return newElement.uniqueId;
+    }
+    
+    uint32_t trainingData::addElement(const std::vector<double> &input) {
+        element newElement;
+        newElement.uniqueId = assignCurrentId();
+        newElement.input = input;
+        newElement.timeStamp = NULL;
+        trainingSet[targetPhrase].elements.push_back(newElement);
+        return newElement.uniqueId;
+    }
+    
+    
+    void trainingData::stopRecording() {
+        //TODO: This doesn't do much. -MZ
+    }
+    
+    uint32_t trainingData::recordSingleElement(const std::string &label, const std::vector<double> &input) {
+        startRecording(label);
+        int returnId = addElement(input);
+        stopRecording();
+        return returnId;
+    };
+    
+    uint32_t trainingData::recordSingleElement(const std::vector<double> &input, const std::vector<double> &output) {
+        startRecording();
+        int returnId = addElement(input, output);
+        stopRecording();
+        return returnId;
+    };
+    
+    uint32_t trainingData::recordSingleElement(const std::string &label, const std::vector<double> &input, const std::vector<double> &output) {
+        startRecording(label);
+        int returnId = addElement(input, output);
+        stopRecording();
+        return returnId;
+    };
+    
+    std::vector<std::string> trainingData::getColumnNames() {
+        return trainingSet[targetPhrase].columnNames;
+    }
+    
+    void trainingData::setColumnNames(const std::vector<std::string> &column_names) {
+        trainingSet[targetPhrase].columnNames = column_names;
+    }
+    
+    Json::Value trainingData::parse2json() {
+        Json::Value root;
+        Json::Value metadata;
+        Json::Value trainingSetJSON;
+        
+        metadata["creator"] = "RAPID-MIX API C++";
+        metadata["version"] = RAPIDMIX_VERSION;
+        
+        //Go through all the phrases
+        for (int i = 0; i < trainingSet.size(); ++i) {
+            Json::Value thisPhrase;
+            thisPhrase.append(trainingSet[i].uniqueId);
+            thisPhrase.append(trainingSet[i].label);
+            
+            Json::Value column_names;
+            for (int j = 0; j < trainingSet[i].columnNames.size(); ++j) {
+                column_names.append(trainingSet[i].columnNames[j]);
+            }
+            thisPhrase.append(column_names);
+            
+            Json::Value elements;
+            for (int j = 0; j < trainingSet[i].elements.size(); ++j) {
+                Json::Value singleElement;
+                
+                Json::Value elementInput;
+                for (int k = 0; k < trainingSet[i].elements[j].input.size(); ++k) {
+                    elementInput.append(trainingSet[i].elements[j].input[k]);
+                }
+                singleElement.append(elementInput);
+                
+                Json::Value elementOutput;
+                for (int k = 0; k < trainingSet[i].elements[j].output.size(); ++k) {
+                    elementOutput.append(trainingSet[i].elements[j].output[k]);
+                }
+                singleElement.append(elementOutput);
+                
+                singleElement.append(trainingSet[i].elements[j].timeStamp);
+                elements.append(singleElement);
+            }
+            thisPhrase.append(elements);
+            
+            trainingSetJSON.append(thisPhrase);
+        }
+        
+        root["metadata"] = metadata;
+        root["trainingSet"] = trainingSetJSON;
+        return root;
+    }
+    
+    std::string trainingData::getJSON() {
+        Json::Value root = parse2json();
+        return root.toStyledString();
+    }
+    
+    void trainingData::writeJSON(const std::string &filepath) {
+        Json::Value root = parse2json();
+        std::ofstream jsonOut;
+        jsonOut.open (filepath);
+        Json::StyledStreamWriter writer;
+        writer.write(jsonOut, root);
+        jsonOut.close();
+        
+    }
+    
+    void trainingData::json2trainingSet(const Json::Value &root) {
+        trainingSet = {};
+        for (const Json::Value& jsonPhrase : root["trainingSet"]) {
+            
+            phrase tempPhrase = { jsonPhrase[0].asUInt(), jsonPhrase[1].asString()    };
+            
+            for (int i = 0; i < jsonPhrase[2].size(); ++i) {
+                tempPhrase.columnNames.push_back(jsonPhrase[2][i].asString());
+            }
+            
+            for (int i = 0; i < jsonPhrase[3].size(); ++i) {
+                element tempElement;
+                for (int j = 0; j < jsonPhrase[3][i][0].size(); ++j) {
+                    tempElement.input.push_back(jsonPhrase[3][i][0][j].asDouble());
+                }
+                for (int j = 0; j < jsonPhrase[3][i][1].size(); ++j) {
+                    tempElement.output.push_back(jsonPhrase[3][i][1][j].asDouble());
+                }
+                tempElement.timeStamp = jsonPhrase[3][i][2].asDouble();
+                
+                tempPhrase.elements.push_back(tempElement);
+            }
+            trainingSet.push_back(tempPhrase);
+        }
+    }
+    
+    bool trainingData::putJSON(const std::string &jsonMessage) {
+        Json::Value parsedFromString;
+        Json::Reader reader;
+        bool parsingSuccessful = reader.parse(jsonMessage, parsedFromString);
+        if (parsingSuccessful)
+        {
+            json2trainingSet(parsedFromString);
+        }
+        return parsingSuccessful;
+    }
+    
+    bool trainingData::readJSON(const std::string &filepath) {
+        Json::Value root;
+        std::ifstream file(filepath);
+        file >> root;
+        json2trainingSet(root);
+        return true; //TODO: check something first
+    }
+    
+}
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.h
new file mode 100644
index 0000000..67f4a67
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/machineLearning/trainingData.h
@@ -0,0 +1,114 @@
+/**
+ * @file trainingData.h
+ * @author Michael Zbyszynski
+ * @date 2 Feb 2017
+ * @copyright
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ *
+ * @ingroup machinelearning
+ */
+
+#ifndef trainingData_h
+#define trainingData_h
+
+#include <vector>
+#include <string>
+#include <unordered_map>
+
+#include "../rapidmix.h"
+#include "json.h"
+
+namespace rapidmix {
+    
+    /** This is used by both NN and KNN models for training */
+    class trainingData {
+        
+    public:
+        
+        trainingData();
+        
+        struct element{
+            uint32_t uniqueId; //MZ: Does this scope of this id need to extend beyond this instantiation?
+            std::vector<double> input;
+            std::vector<double> output;
+            double timeStamp;
+        };
+        
+        struct phrase {
+            uint32_t uniqueId;
+            std::string label; //TODO: Need to work this with templates
+            std::vector<std::string> columnNames; //equal to the number of inputs
+            std::vector<element> elements;
+            
+            
+            //TODO: This is just a design idea right now.
+            void addElement (const std::vector<double> &input, const std::vector<double> &output)
+            {
+                element tempElement;
+//                tempElement.uniqueId = assignCurrentId();  //TODO: how to do this? Do we need this?
+                tempElement.input = input;
+                tempElement.output = output;
+                tempElement.timeStamp = NULL;
+                this->elements.push_back(tempElement);
+            }
+        };
+        
+        std::vector<phrase> trainingSet;
+        
+        //TODO: Deleting phrases (last or by label)
+        //Design ideas to make phrase building stateless:
+        std::vector<phrase>::iterator createNewPhrase(); //??? Do we need this?
+        std::vector<phrase>::iterator createNewPhrase(std::string label);
+        
+        /** Create a new phrase that can be recorded into. Returns phrase id */
+        uint32_t startRecording(); //FIXME: this should go away. -MZ
+        
+        /** Create new phrase, with a label, that can be recorded into. Returns phrase id */
+        uint32_t startRecording(const std::string &label);
+        
+        /** Add an element with input and output to the phrase that is recording,
+         or to the default phrase if recording is stopped. Returns phrase id. */
+        uint32_t addElement(const std::vector<double> &input, const std::vector<double> &output);
+        
+        /** Add an element with just input to the phrase that is recording,
+         or to the default phrase if recording is stopped. Returns phrase id. */
+        uint32_t addElement(const std::vector<double> &input);
+        
+        void stopRecording();
+        
+        /** Create a phrase with a single element that has a label and input. Returns phrase id. */
+        uint32_t recordSingleElement(const std::string &label, const std::vector<double> &input);
+        
+        /** Create a phrase with a single element that has input, and output. Returns phrase id. */
+        uint32_t recordSingleElement(const std::vector<double> &input, const std::vector<double> &output);
+        
+        /** Create a phrase with a single element that has a label, input, and output. Returns phrase id. */
+        uint32_t recordSingleElement(const std::string &label, const std::vector<double> &input, const std::vector<double> &output);
+        
+        std::vector<std::string> getColumnNames();
+        void setColumnNames(const std::vector<std::string> &columnNames);
+        
+        /** Get a JSON representation of the data set in the form of a styled string */
+        std::string getJSON();
+        /** Write a JSON version of the training set to specified file path */
+        void writeJSON(const std::string &filepath);
+        /** populate a data set with string. See getJSON() */
+        bool putJSON(const std::string &jsonMessage);
+        /** read a JSON file at file path and build a training set from it */
+        bool readJSON(const std::string &filepath);
+        
+    private:
+        int targetPhrase;
+        uint32_t currentId;
+        
+        //* Returns and increments current id */
+        uint32_t assignCurrentId();
+        
+        Json::Value parse2json();
+        void json2trainingSet(const Json::Value &newTrainingData);
+        
+    };
+    
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/rapidmix.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/rapidmix.h
new file mode 100644
index 0000000..fa3e13e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/rapidmix.h
@@ -0,0 +1,48 @@
+/**
+ * @file    rapidmix.h
+ * @author  Michael Zbyszynski
+ * @date    12 Jan 2017
+ *
+ * @copyright
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ */
+
+/**
+ * @mainpage RAPID-MIX API
+ * 
+ * @section Introduction
+ *
+ * Hello, API ! <br>  
+ * All the classes, functions and structs documented here belong to the
+ * <code>rapidmix</code> namespace.
+ *
+ * @section Examples
+ * @subsection Simple classification
+ * TODO
+ */
+
+/////////////////////////////////////////////////////////////////////////////
+//  ______            _     _       ___  ____         ___  ______ _____    //
+//  | ___ \          (_)   | |      |  \/  (_)       / _ \ | ___ \_   _|   //
+//  | |_/ /__ _ _ __  _  __| |______| .  . |___  __ / /_\ \| |_/ / | |     //
+//  |    // _` | '_ \| |/ _` |______| |\/| | \ \/ / |  _  ||  __/  | |     //
+//  | |\ \ (_| | |_) | | (_| |      | |  | | |>  <  | | | || |    _| |_    //
+//  \_| \_\__,_| .__/|_|\__,_|      \_|  |_/_/_/\_\ \_| |_/\_|    \___/    //
+//             | |                                                         //
+//             |_|                                                         //
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef rapidmix_h
+#define rapidmix_h
+
+#define RAPIDMIX_VERSION_MAJOR 2
+#define RAPIDMIX_VERSION_MINOR 2
+#define RAPIDMIX_VERSION_PATCH 0
+#define RAPIDMIX_VERSION "2.2.0"
+#define RAPIDMIX_REVISION "27-SEPTEMBER-2017"
+
+#include "machineLearning/machineLearning.h"
+#include "machineLearning/trainingData.h"
+#include "signalProcessing/signalProcessing.h"
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.cpp b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.cpp
new file mode 100644
index 0000000..6663da4
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.cpp
@@ -0,0 +1,764 @@
+#include "rapidPiPoHost.h"
+#include <iostream>
+#include <fstream>
+
+//=========================== H O S T === U T I L S ==========================//
+
+/*
+static const unsigned int maxWordLen = 256;
+
+static bool getPiPoInstanceAndAttrName(const char *attrName,
+                                       char *instanceName,
+                                       char *pipoAttrName)
+{
+  const char *dot = std::strrchr(attrName, '.');
+
+  if (dot != NULL)
+  {
+    long pipoAttrNameLen = dot - attrName;
+    std::strcpy(pipoAttrName, dot + 1);
+
+    if (pipoAttrNameLen > maxWordLen)
+    {
+      pipoAttrNameLen = maxWordLen;
+    }
+
+    std::strncpy(instanceName, attrName, pipoAttrNameLen);
+    instanceName[pipoAttrNameLen] = '\0';
+
+    return true;
+  }
+
+  return false;
+}
+//*/
+
+
+static void fromPiPoStreamAttributes(PiPoStreamAttributes &src,
+                                     pipoStreamAttributes &dst)
+{
+  unsigned int numCols = src.dims[0];
+  unsigned int numLabels = src.numLabels;
+  
+  if (numLabels > PIPO_MAX_LABELS) {
+    numLabels = PIPO_MAX_LABELS;
+  }
+  
+  if (numLabels > numCols) {
+    numLabels = numCols;
+  }
+
+  dst.hasTimeTags = src.hasTimeTags;
+
+  if (src.rate <= MIN_PIPO_SAMPLERATE) {
+    dst.rate = MIN_PIPO_SAMPLERATE;
+  } else if (src.rate >= MAX_PIPO_SAMPLERATE) {
+    dst.rate = MAX_PIPO_SAMPLERATE;
+  } else {
+    dst.rate = src.rate;
+  }
+
+  dst.rate = src.rate;
+  dst.offset = src.offset;
+  dst.width = src.dims[0];
+  dst.height = src.dims[1];
+
+  dst.labels = std::vector<std::string>();
+
+  for (unsigned int i = 0; i < numLabels; ++i)
+  {
+    dst.labels.push_back(std::string(src.labels[i]));
+  }
+
+  dst.hasVarSize = src.hasVarSize;
+  dst.domain = src.domain;
+  dst.maxFrames = src.maxFrames;
+}
+
+
+static void toPiPoStreamAttributes(pipoStreamAttributes &src,
+                                   PiPoStreamAttributes &dst)
+{
+  const char *labs[src.labels.size()];
+
+  for (unsigned int i = 0; i < src.labels.size(); ++i)
+  {
+    labs[i] = src.labels[i].c_str();
+  }
+
+  dst = PiPoStreamAttributes(
+    src.hasTimeTags,
+    src.rate,
+    src.offset,
+    src.width,
+    src.height,
+    &labs[0],
+    src.hasVarSize,
+    src.domain,
+    src.maxFrames
+  );
+}
+
+//========================= H O S T === M E T H O D S ========================//
+
+PiPoHost::PiPoHost() :
+inputStreamAttrs(PIPO_MAX_LABELS),
+outputStreamAttrs(PIPO_MAX_LABELS)
+{
+  PiPoCollection::init();
+  this->out = new PiPoOut(this);
+  this->graph = nullptr;
+}
+
+PiPoHost::~PiPoHost()
+{
+  if (this->graph != nullptr)
+  {
+    delete this->graph;
+  }
+
+  delete this->out;
+}
+
+bool
+PiPoHost::setGraph(std::string name)
+{
+  if (this->graph != nullptr)
+  {
+    delete this->graph;
+  }
+
+  this->graph = PiPoCollection::create(name);
+
+  if (this->graph != NULL)
+  {
+    this->graphName = name;
+    this->graph->setReceiver((PiPo *)this->out);
+    return true;
+  }
+
+  this->graph = nullptr;
+  this->graphName = "undefined";
+  return false;
+}
+
+void
+PiPoHost::clearGraph()
+{
+  if (this->graph != nullptr)
+  {
+    delete this->graph;
+    this->graph = nullptr;
+  }
+}
+
+
+void
+PiPoHost::onNewFrameOut(double time, std::vector<PiPoValue> &frame)
+{
+  std::cout << time << std::endl;
+  std::cout << "please override this method" << std::endl;
+}
+
+std::vector<PiPoValue>
+PiPoHost::getLastFrameOut()
+{
+  return this->out->getLastFrame();
+}
+
+
+
+int
+PiPoHost::setInputStreamAttributes(pipoStreamAttributes &sa, bool propagate)
+{
+  toPiPoStreamAttributes(sa, inputStreamAttrs);
+
+  if (propagate)
+  {
+    return this->propagateInputStreamAttributes();
+  }
+    
+  return 0;
+}
+
+pipoStreamAttributes
+PiPoHost::getOutputStreamAttributes()
+{
+  pipoStreamAttributes sa;
+  fromPiPoStreamAttributes(this->outputStreamAttrs, sa);
+  return sa;
+}
+
+int
+PiPoHost::frames(double time, double weight, PiPoValue *values, unsigned int size,
+                 unsigned int num)
+{
+  return this->graph->frames(time, weight, values, size, num);
+}
+
+
+
+// bool
+// setAttr(const std::string &attrName, bool value)
+// {
+
+// }
+
+// bool
+// setAttr(const std::string &attrName, int value)
+// {
+
+// }
+
+bool
+PiPoHost::setAttr(const std::string &attrName, double value)
+{
+  PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+  
+  if (attr != NULL)
+  {
+    int iAttr = attr->getIndex();
+    return this->graph->setAttr(iAttr, value);
+  }
+
+  return false;
+}
+
+bool
+PiPoHost::setAttr(const std::string &attrName, const std::vector<double> &values)
+{
+  PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+
+  if (attr != NULL)
+  {
+    int iAttr = attr->getIndex();
+    double vals[values.size()];
+    unsigned int i = 0;
+
+    for (auto &value : values)
+    {
+      vals[i] = value;
+      i++;
+    }
+
+    return this->graph->setAttr(iAttr, &vals[0], static_cast<unsigned int>(values.size()));
+  }
+
+  return false;
+}
+
+bool
+PiPoHost::setAttr(const std::string &attrName, const std::string &value) // for enums
+{
+  PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+  
+  if (attr != NULL)
+  {
+    // int iAttr = attr->getIndex();
+    PiPo::Type type = attr->getType();
+  
+    if (type == PiPo::Type::Enum)
+    {
+      std::vector<const char *> *list = attr->getEnumList();
+      
+      for (int i = 0; i < list->size(); i++)
+      {
+        if (strcmp(list->at(i), value.c_str()) == 0)
+        {
+          attr->set(0, i);
+          return true;
+        }
+      }
+    }
+  }
+
+  return false;
+}
+
+std::vector<std::string>
+PiPoHost::getAttrNames()
+{
+  std::vector<std::string> res;
+
+  for (unsigned int i = 0; i < this->graph->getNumAttrs(); ++i)
+  {
+    res.push_back(this->graph->getAttr(i)->getName());
+  }
+
+  return res;
+}
+
+double
+PiPoHost::getDoubleAttr(const std::string &attrName)
+{
+    PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+    
+    if (attr != NULL) {
+        // int iAttr = attr->getIndex();
+        PiPo::Type type = attr->getType();
+        
+        if (type == PiPo::Type::Double) {
+            return attr->getDbl(0);
+        }
+    }
+    
+    return 0;
+}
+
+std::vector<double>
+PiPoHost::getDoubleArrayAttr(const std::string &attrName)
+{
+    std::vector<double> res;
+    PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+    
+    if (attr != NULL) {
+        // int iAttr = attr->getIndex();
+        PiPo::Type type = attr->getType();
+        
+        if (type == PiPo::Type::Double) {
+            for (int i = 0; i < attr->getSize(); ++i) {
+                res.push_back(attr->getDbl(i));
+            }
+        }
+    }
+    
+    return res;
+}
+
+std::string
+PiPoHost::getEnumAttr(const std::string &attrName)
+{
+    PiPo::Attr *attr = this->graph->getAttr(attrName.c_str());
+    
+    if (attr != NULL) {
+        // int iAttr = attr->getIndex();
+        PiPo::Type type = attr->getType();
+        
+        if (type == PiPo::Type::Enum) {
+            return attr->getStr(0);
+        }
+    }
+
+    return "";
+}
+
+//============================= JSON FORMATTING ==============================//
+
+std::string
+PiPoHost::getJSON()
+{
+  Json::Value result = toJSON();
+  return result.toStyledString();
+}
+
+void
+PiPoHost::writeJSON(const std::string &filepath)
+{
+  Json::Value root = toJSON();
+  std::ofstream jsonOut;
+  jsonOut.open (filepath);
+  Json::StyledStreamWriter writer;
+  writer.write(jsonOut, root);
+  jsonOut.close();
+}
+
+bool
+PiPoHost::putJSON(const std::string &jsonMessage)
+{
+  Json::Value parsedFromString;
+  Json::Reader reader;
+  bool parsingSuccessful = reader.parse(jsonMessage, parsedFromString);
+  return (parsingSuccessful && fromJSON(parsedFromString));
+}
+
+bool
+PiPoHost::readJSON(const std::string &filepath)
+{
+  Json::Value root;
+  std::ifstream file(filepath);
+  file >> root;
+  return fromJSON(root);
+}
+
+//======================== PROTECTED HOST METHODS ============================//
+
+Json::Value
+PiPoHost::toJSON() 
+{
+  Json::Value root;
+  Json::Value metadata;
+  Json::Value pipodata;
+
+  metadata["creator"] = "RAPID-MIX API";// C++";
+  metadata["version"] = "v0.1.1"; //TODO: This should be a macro someplace
+  metadata["family"] = "pipo";
+    
+  root["metadata"] = metadata;
+
+  pipodata["description"] = this->graphName;
+    
+  Json::Value inputStream;
+  inputStream["hasTimeTags"] = inputStreamAttrs.hasTimeTags;
+  inputStream["rate"] = inputStreamAttrs.rate;
+  inputStream["offset"] = inputStreamAttrs.offset;
+  inputStream["width"] = inputStreamAttrs.dims[0];
+  inputStream["height"] = inputStreamAttrs.dims[1];
+  inputStream["labels"] = inputStreamAttrs.labels;
+  inputStream["hasVarSize"] = inputStreamAttrs.hasVarSize;
+  inputStream["domain"] = inputStreamAttrs.domain;
+  inputStream["maxFrames"] = inputStreamAttrs.maxFrames;
+  
+  Json::Value outputStream;
+  outputStream["hasTimeTags"] = outputStreamAttrs.hasTimeTags;
+  outputStream["rate"] = outputStreamAttrs.rate;
+  outputStream["offset"] = outputStreamAttrs.offset;
+  outputStream["width"] = outputStreamAttrs.dims[0];
+  outputStream["height"] = outputStreamAttrs.dims[1];
+  outputStream["labels"] = outputStreamAttrs.labels;
+  outputStream["hasVarSize"] = outputStreamAttrs.hasVarSize;
+  outputStream["domain"] = outputStreamAttrs.domain;
+  outputStream["maxFrames"] = outputStreamAttrs.maxFrames;
+
+  Json::Value streams;
+  streams["input"] =  inputStream;
+  streams["output"] =  outputStream;
+  
+  pipodata["streamAttributes"] = streams;
+    
+  Json::Value params;
+  int n = this->graph->getNumAttrs();
+  params.resize(static_cast<Json::ArrayIndex>(n));
+
+  for (unsigned int i = 0; i < n; ++i)
+  {
+    Json::Value param;
+    PiPo::Attr *a = this->graph->getAttr(i);
+    param["name"] = a->getName();
+    param["value"] = a->getDbl(0);
+    params[i] = param;
+  }
+    
+  pipodata["parameters"] = params;
+
+  root["pipodata"] = pipodata;
+
+  return root;
+}
+
+bool
+PiPoHost::fromJSON(Json::Value &jv)
+{
+  if (jv["metadata"]["family"].asString().compare("pipo") == 0 &&
+    jv["pipodata"].size() > 0) {
+
+    this->setGraph(jv["pipodata"]["description"].asString());
+
+    Json::Value inputStream = jv["pipodata"]["streamAttributes"]["input"];
+    // setInputStreamAttributes(
+    //   inputStream["hasTimeTags"].getDbl()//,
+    //   //...
+    // );
+    return true;
+  }
+  
+  return false;
+}
+
+//========================= PRIVATE HOST METHODS =============================//
+
+int
+PiPoHost::propagateInputStreamAttributes()
+{
+  if (this->graph != nullptr)
+  {
+    return this->graph->streamAttributes(this->inputStreamAttrs.hasTimeTags,
+                                         this->inputStreamAttrs.rate,
+                                         this->inputStreamAttrs.offset,
+                                         this->inputStreamAttrs.dims[0],
+                                         this->inputStreamAttrs.dims[1],
+                                         this->inputStreamAttrs.labels,
+                                         this->inputStreamAttrs.hasVarSize,
+                                         this->inputStreamAttrs.domain,
+                                         this->inputStreamAttrs.maxFrames);
+  }
+    
+  return 0;
+}
+
+void
+PiPoHost::setOutputAttributes(bool hasTimeTags, double rate, double offset,
+                              unsigned int width, unsigned int height,
+                              const char **labels, bool hasVarSize,
+                              double domain, unsigned int maxFrames) {
+  if (labels != NULL) {
+    int numLabels = width;
+    
+    if (numLabels > PIPO_MAX_LABELS) {
+      numLabels = PIPO_MAX_LABELS;
+    }
+    
+    for (unsigned int i = 0; i < numLabels; i++) {
+      try {
+        this->outputStreamAttrs.labels[i] = labels[i];        
+      } catch(std::exception e) {
+        this->outputStreamAttrs.labels[i] = "unnamed";
+      }
+    }
+    
+    this->outputStreamAttrs.numLabels = numLabels;
+  } else {
+    this->outputStreamAttrs.numLabels = 0;
+  }
+  
+  this->outputStreamAttrs.hasTimeTags = hasTimeTags;
+  this->outputStreamAttrs.rate = rate;
+  this->outputStreamAttrs.offset = offset;
+  this->outputStreamAttrs.dims[0] = width;
+  this->outputStreamAttrs.dims[1] = height;
+  this->outputStreamAttrs.hasVarSize = hasVarSize;
+  this->outputStreamAttrs.domain = domain;
+  this->outputStreamAttrs.maxFrames = maxFrames; 
+}
+
+
+
+// void
+// PiPoHost::streamAttributesChanged(PiPo *pipo, PiPo::Attr *attr) {
+//   this->propagateInputAttributes();
+// }
+
+// void
+// PiPoHost::signalError(PiPo *pipo, std::string errorMsg) {
+//   // todo
+// }
+
+// void
+// PiPoHost::signalWarning(PiPo *pipo, std::string warningMsg) {
+//   // todo
+// }
+
+//--------------------- INPUT STREAM ATTRIBUTES SETTERS ----------------------//
+
+/*
+void
+PiPoHost::setInputHasTimeTags(bool hasTimeTags, bool propagate) {
+  this->inputStreamAttrs.hasTimeTags = hasTimeTags;
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+#define MIN_PIPO_SAMPLERATE (1.0 / 31536000000.0) // once a year
+#define MAX_PIPO_SAMPLERATE (96000000000.0)
+
+void
+PiPoHost::setInputFrameRate(double rate, bool propagate) {
+  if (rate <= MIN_PIPO_SAMPLERATE) {
+    this->inputStreamAttrs.rate = MIN_PIPO_SAMPLERATE;
+  } else if (rate >= MAX_PIPO_SAMPLERATE) {
+    this->inputStreamAttrs.rate = MAX_PIPO_SAMPLERATE;
+  } else {
+    this->inputStreamAttrs.rate = rate;
+  }
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputFrameOffset(double offset, bool propagate) {
+  this->inputStreamAttrs.offset = offset;
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputDims(int width, int height, bool propagate) {
+  this->inputStreamAttrs.dims[0] = width;
+  this->inputStreamAttrs.dims[1] = height;
+  
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputLabels(const std::vector<std::string> &labels, bool propagate) {
+  const char *labs[labels.size()];
+
+  for (unsigned int i = 0; i < labels.size(); ++i) {
+    labs[i] = labels[i].c_str();
+  }
+
+  this->inputStreamAttrs.labels = &labs[0];
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputHasVarSize(bool hasVarSize, bool propagate) {
+  this->inputStreamAttrs.hasVarSize = hasVarSize;
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputDomain(double domain, bool propagate) {
+  this->inputStreamAttrs.domain = domain;
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+
+void
+PiPoHost::setInputMaxFrames(int maxFrames, bool propagate) {
+  this->inputStreamAttrs.maxFrames = maxFrames;
+
+  if (propagate) {
+    this->propagateInputAttributes();
+  }
+}
+//*/
+
+//--------------------- INPUT STREAM ATTRIBUTES GETTERS ----------------------//
+
+/*
+bool
+PiPoHost::getInputHasTimeTags() {
+  return this->inputStreamAttrs.hasTimeTags;
+}
+
+double
+PiPoHost::getInputFrameRate() {
+  return this->inputStreamAttrs.rate;
+}
+
+double
+PiPoHost::getInputFrameOffset() {
+  return this->inputStreamAttrs.offset;
+}
+
+void
+PiPoHost::getInputDims(int &width, int &height) {
+  width = this->inputStreamAttrs.dims[0];
+  height = this->inputStreamAttrs.dims[1];
+}
+
+void
+PiPoHost::getInputLabels(std::vector<std::string> &labels) {
+  //for (unsigned int i = 0; i < )
+}
+
+bool
+PiPoHost::getInputHasVarSize() {
+  return this->inputStreamAttrs.hasVarSize;
+}
+
+double
+PiPoHost::getInputDomain() {
+  return this->inputStreamAttrs.domain;
+}
+
+int
+PiPoHost::getInputMaxFrames() {
+  return this->inputStreamAttrs.maxFrames;
+}
+//*/
+
+//--------------------- OUTPUT STREAM ATTRIBUTES GETTERS ---------------------//
+
+// void
+// PiPoHost::setOutputAttributes(bool hasTimeTags, double rate, double offset,
+//                               unsigned int width, unsigned int height,
+//                               const char **labels, bool hasVarSize,
+//                               double domain, unsigned int maxFrames) {
+//   if (labels != NULL) {
+//     int numLabels = width;
+    
+//     if (numLabels > PIPO_MAX_LABELS) {
+//       numLabels = PIPO_MAX_LABELS;
+//     }
+    
+//     for (unsigned int i = 0; i < numLabels; i++) {
+//       try {
+//         this->outputStreamAttrs.labels[i] = labels[i];        
+//       } catch(std::exception e) {
+//         this->outputStreamAttrs.labels[i] = "unnamed";
+//       }
+//     }
+    
+//     this->outputStreamAttrs.numLabels = numLabels;
+//   } else {
+//     this->outputStreamAttrs.numLabels = 0;
+//   }
+  
+//   this->outputStreamAttrs.hasTimeTags = hasTimeTags;
+//   this->outputStreamAttrs.rate = rate;
+//   this->outputStreamAttrs.offset = offset;
+//   this->outputStreamAttrs.dims[0] = width;
+//   this->outputStreamAttrs.dims[1] = height;
+//   this->outputStreamAttrs.hasVarSize = hasVarSize;
+//   this->outputStreamAttrs.domain = domain;
+//   this->outputStreamAttrs.maxFrames = maxFrames; 
+// }
+
+/*
+bool
+PiPoHost::getOutputHasTimeTags() {
+  return this->outputStreamAttrs.hasTimeTags;
+}
+
+double
+PiPoHost::getOutputFrameRate() {
+  return this->outputStreamAttrs.rate;
+}
+
+double
+PiPoHost::getOutputFrameOffset() {
+  return this->outputStreamAttrs.offset;
+}
+
+void
+PiPoHost::getOutputDims(int &width, int &height) {
+  width = this->outputStreamAttrs.dims[0];
+  height = this->outputStreamAttrs.dims[1];
+}
+
+void
+PiPoHost::getOutputLabels(std::vector<std::string> &labels) {
+  labels.clear();
+
+  for (unsigned int i = 0; this->outputStreamAttrs.numLabels; ++i) {
+
+    if (this->outputStreamAttrs.labels[i] != NULL) {
+      labels.push_back(std::string(this->outputStreamAttrs.labels[i]));
+    } else {
+      labels.push_back("unnamed");
+    }
+  }
+}
+
+bool
+PiPoHost::getOutputHasVarSize() {
+  return this->outputStreamAttrs.hasVarSize;
+}
+
+double
+PiPoHost::getOutputDomain() {
+  return this->outputStreamAttrs.domain;
+}
+
+int
+PiPoHost::getOutputMaxFrames() {
+  return this->outputStreamAttrs.maxFrames;
+}
+//*/
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.h
new file mode 100644
index 0000000..b898da3
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoHost.h
@@ -0,0 +1,249 @@
+#ifndef _RAPID_PIPO_HOST_H_
+#define _RAPID_PIPO_HOST_H_
+
+#include "PiPo.h"
+#include "PiPoHost.h"
+#include "PiPoCollection.h"
+
+//#ifdef EXTERNAL_JSONCPP_PATH
+#define EXTERNAL_JSONCPP_PATH "json.h"
+#include EXTERNAL_JSONCPP_PATH
+//#endif /* EXTERNAL_JSONCPP_PATH */
+
+#define MIN_PIPO_SAMPLERATE (1.0 / 31536000000.0) /* once a year */
+#define MAX_PIPO_SAMPLERATE (96000000000.0)
+
+#define PIPO_OUT_RING_SIZE 2
+
+struct pipoStreamAttributes {
+  pipoStreamAttributes() : // default parameters suited for audio
+  hasTimeTags(false),
+  rate(MIN_PIPO_SAMPLERATE),
+  offset(0),
+  width(1),
+  height(1),
+  labels({ "" }),
+  hasVarSize(false),
+  domain(0),
+  maxFrames(1) {}
+
+  bool hasTimeTags;
+  double rate;
+  double offset;
+  unsigned int width;
+  unsigned int height;
+  std::vector<std::string> labels;
+  bool hasVarSize;
+  double domain;
+  unsigned int maxFrames;
+};
+
+
+//class PiPoObserver;
+class PiPoOut;
+
+//================================ H O S T ===================================//
+
+class PiPoHost : public PiPo::Parent {
+    friend class PiPoOut;
+    
+private:
+    PiPo *graph;
+    std::string graphName;
+    PiPoOut *out;
+    // PiPoObserver *obs;
+    PiPoStreamAttributes inputStreamAttrs;
+    PiPoStreamAttributes outputStreamAttrs;
+    
+public:
+    // PiPoHost(PiPoObserver *obs);
+    PiPoHost();
+    ~PiPoHost();
+    
+    // PiPoObserver *getObserver();
+
+    virtual bool setGraph(std::string name);
+    virtual void clearGraph();
+
+    // override this method when inheriting !!!
+    virtual void onNewFrameOut(double time, std::vector<PiPoValue> &frame);
+    virtual std::vector<PiPoValue> getLastFrameOut();
+    
+    virtual int setInputStreamAttributes(pipoStreamAttributes &sa, bool propagate = true);
+    virtual pipoStreamAttributes getOutputStreamAttributes();
+
+    virtual int frames(double time, double weight, PiPoValue *values, unsigned int size,
+                       unsigned int num);
+
+    // virtual bool setAttr(const std::string &attrName, bool value);
+    // virtual bool setAttr(const std::string &attrName, int value);
+    virtual bool setAttr(const std::string &attrName, double value);
+    virtual bool setAttr(const std::string &attrName, const std::vector<double> &values);
+    virtual bool setAttr(const std::string &attrName, const std::string &value); // for enums
+
+    // virtual const std::vector<std::string>& getAttrNames();
+    // virtual bool isBoolAttr(const std::string &attrName);
+    // virtual bool isEnumAttr(const std::string &attrName);
+    // virtual bool isIntAttr(const std::string &attrName);
+    // virtual bool isIntArrayAttr(const std::string &attrName);
+    // virtual bool isFloatAttr(const std::string &attrName);
+    // virtual bool isFloatArrayAttr(const std::string &attrName);
+    // virtual bool isStringAttr(const std::string &attrName);
+    
+    virtual std::vector<std::string> getAttrNames();
+
+    virtual double getDoubleAttr(const std::string &attrName);
+    virtual std::vector<double> getDoubleArrayAttr(const std::string &attrName);
+    virtual std::string getEnumAttr(const std::string &attrName);
+
+    /** Get a JSON representation of the model in the form of a styled string */
+    virtual std::string getJSON();
+    /** Write a JSON model description to specified file path */
+    virtual void writeJSON(const std::string &filepath);
+    /** configure empty model with string. See getJSON() */
+    virtual bool putJSON(const std::string &jsonMessage);
+    /** read a JSON file at file path and build a modelSet from it */
+    virtual bool readJSON(const std::string &filepath);
+
+
+    // int streamAttributes(bool hasTimeTags, double rate, double offset,
+    //                      unsigned int width, unsigned int height,
+    //                      const std::vector<std::string> &labels,
+    //                      bool hasVarSize, double domain, unsigned int maxFrames,
+    //                      bool propagate = true);
+
+    // void propagateInputAttributes();
+    
+
+    // void streamAttributesChanged(PiPo *pipo, PiPo::Attr *attr);
+    // void signalError(PiPo *pipo, std::string errorMsg);
+    // void signalWarning(PiPo *pipo, std::string warningMsg);
+    
+    /*
+    void setInputHasTimeTags(bool hasTimeTags, bool propagate = true);
+    void setInputFrameRate(double rate, bool propagate = true);
+    void setInputFrameOffset(double offset, bool propagate = true);
+    void setInputDims(int width, int height, bool propagate = true);
+    void setInputLabels(const std::vector<std::string> &labels, bool propagate = true);
+    void setInputHasVarSize(bool hasVarSize, bool propagate = true);
+    void setInputDomain(double domain, bool propagate = true);
+    void setInputMaxFrames(int maxFrames, bool propagate = true);
+    
+    bool getInputHasTimeTags();
+    double getInputFrameRate();
+    double getInputFrameOffset();
+    void getInputDims(int &width, int &height);
+    void getInputLabels(std::vector<std::string> &labels);
+    bool getInputHasVarSize();
+    double getInputDomain();
+    int getInputMaxFrames();
+    
+    bool getOutputHasTimeTags();
+    double getOutputFrameRate();
+    double getOutputFrameOffset();
+    void getOutputDims(int &width, int &height);
+    void getOutputLabels(std::vector<std::string> &labels);
+    bool getOutputHasVarSize();
+    double getOutputDomain();
+    int getOutputMaxFrames();
+
+    // void setPiPoParam(PiPoParam *param);
+    //*/
+protected:
+  Json::Value toJSON();
+  bool fromJSON(Json::Value &jv);
+
+private:
+    int propagateInputStreamAttributes();
+    void setOutputAttributes(bool hasTimeTags, double rate, double offset,
+                             unsigned int width, unsigned int height,
+                             const char **labels, bool hasVarSize,
+                             double domain, unsigned int maxFrames);
+    
+};
+
+//================================= PiPoOut ==================================//
+
+ class PiPoOut : public PiPo {
+private:
+    PiPoHost *host;
+    std::atomic<int> writeIndex, readIndex;
+    std::vector<std::vector<PiPoValue>> ringBuffer;
+    // std::function<void(std::vector<PiPoValue>, PiPoObserver *rpo)> frameCallback;
+    // std::function<void(std::vector<PiPoValue>)> simpleFrameCallback;
+    
+public:
+    PiPoOut(PiPoHost *host) :
+    PiPo((PiPo::Parent *)host) {
+        this->host = host;
+        writeIndex = 0;
+        readIndex = 0;
+        ringBuffer.resize(PIPO_OUT_RING_SIZE);
+    }
+    
+    ~PiPoOut() {}
+    
+    int streamAttributes(bool hasTimeTags,
+                         double rate, double offset,
+                         unsigned int width, unsigned int height,
+                         const char **labels, bool hasVarSize,
+                         double domain, unsigned int maxFrames) {
+        
+        this->host->setOutputAttributes(hasTimeTags, rate, offset, width, height,
+                                        labels, hasVarSize, domain, maxFrames);
+        
+        for (int i = 0; i < PIPO_OUT_RING_SIZE; ++i) {
+            ringBuffer[i].resize(width * height);
+        }
+        
+        return 0;
+    }
+    
+    int frames(double time, double weight, float *values,
+               unsigned int size, unsigned int num) {
+        
+        if (num > 0) {
+            for (int i = 0; i < num; ++i) {
+                
+                for (int j = 0; j < size; ++j) {
+                    ringBuffer[writeIndex][j] = values[i * size + j];
+                }
+                
+                // atomic swap ?
+                writeIndex = 1 - writeIndex;
+                readIndex = 1 - writeIndex;
+                
+                this->host->onNewFrameOut(time, ringBuffer[readIndex]);
+                
+                if (writeIndex + 1 == PIPO_OUT_RING_SIZE) {
+                    writeIndex = 0;
+                } else {
+                    writeIndex++;
+                }
+            }
+        }
+        
+        return 0;
+    }
+    
+    //void setFrameCallback(std::function<void(std::vector<PiPoValue>,
+    //                                         PiPoObserver *obs)> f) {
+    //    frameCallback = f;
+    //}
+    
+    // void setSimpleFrameCallback(std::function<void(std::vector<PiPoValue>)> f) {
+    //     simpleFrameCallback = f;
+    // }
+    
+    std::vector<PiPoValue> getLastFrame() {
+        std::vector<PiPoValue> f;
+        
+        if (readIndex > -1) {
+            f = ringBuffer[readIndex];
+        }
+        
+        return f;
+    }
+};
+
+#endif /* _RAPID_PIPO_HOST_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoTools.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoTools.h
new file mode 100644
index 0000000..d9a2e0e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/rapidPiPoTools/rapidPiPoTools.h
@@ -0,0 +1,9 @@
+#ifndef _RAPID_PIPO_TOOLS_H_
+#define _RAPID_PIPO_TOOLS_H_
+
+#include "rapidPiPoHost.h"
+
+typedef PiPoHost pipoHost;
+typedef pipoStreamAttributes pipoStreamAttributes;
+
+# endif /* _RAPID_PIPO_TOOLS_H_ */
diff --git a/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/signalProcessing.h b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/signalProcessing.h
new file mode 100644
index 0000000..4bbbdbd
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/rapid-mix/signalProcessing/signalProcessing.h
@@ -0,0 +1,36 @@
+/**
+ * @file signalProcessing.h
+ * @author Michael Zbyszynski
+ * @date 6 Feb 2017
+ * @copyright
+ * Copyright © 2017 Goldsmiths. All rights reserved.
+ *
+ * @ingroup signalprocessing
+ */
+
+#ifndef signalProcessing_h
+#define signalProcessing_h
+
+#include "rapidMix.h"
+//#include "maximilian.h"
+//#include "maxim.h"
+#include "rapidStream.h"
+#include "rapidPiPoTools.h"
+
+namespace rapidmix {
+    
+    /*
+     * Wrapper for signalProcessing modules, currently a collection of typedefs
+     */
+    
+    //typedef maxiFFT FFT;
+    //typedef maxiMFCC MFCC;
+    typedef rapidStream<double> rapidStream;
+    
+    typedef pipoHost pipoHost;
+    typedef pipoStreamAttributes pipoStreamAttributes;
+    
+    
+}
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/src/BitalinoThread.h b/examples/ofx/Bitalino_rapidmix/src/BitalinoThread.h
new file mode 100644
index 0000000..c014249
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/BitalinoThread.h
@@ -0,0 +1,145 @@
+//
+//  BitalinoThread.h
+//  Bitalino
+//
+//  Created by James on 19/11/2017.
+//
+//
+
+#ifndef BitalinoThread_h
+#define BitalinoThread_h
+
+#include <stdio.h>
+#include "ThreadedProcess.h"
+#include "RingBuffer.hpp"
+#include "bitalino.h"
+
+class BitalinoThread : public ThreadedProcess {
+public:
+    RingBuffer<BITalino::Frame> data; // The data gathered in the main thread, safely accessable from outside
+    
+    BitalinoThread ( void ) : ThreadedProcess ()
+    {
+        connected.store(false);
+        recording.store(false);
+        tries.store(0);
+        deviceName = "/dev/cu.BITalino-DevB"; // Debug init (Mac OS virt. serial over bt)
+    }
+    
+    ~BitalinoThread ( void )
+    {
+    }
+    
+    void setup ( std::string deviceName, uint64_t bufferSize,
+                uint16_t sampleRate, std::vector<int32_t> channels,
+                uint16_t frameCount=100  )
+    {
+        this->deviceName = deviceName;
+        this->sampleRate = sampleRate;
+        this->channels = channels;
+        frameBuffer.resize(frameCount);
+        pollTestBuffer.resize(1);
+        data.setup(bufferSize);
+    }
+    
+    void setRecording ( bool v )
+    { // Allow data to be pushed in to the ringbuffer
+        recording.store(v);
+    }
+    
+    bool isRecording ( void ) const
+    {
+        return recording.load();
+    }
+
+    bool isConnected ( void ) const
+    {
+        return connected.load();
+    }
+    
+    uint32_t getConnectionTries( void ) const
+    {
+        return tries.load();
+    }
+    
+protected:
+    void mainThreadCallback ( void )
+    {
+        try {
+            switch (threadState)
+            {
+                case SEARCHING_FOR_DEVICE:
+                    ++currentTries;
+                    tries.store(currentTries);
+                    if (!dev)
+                        dev = new BITalino(deviceName.c_str());
+                    dev->start(sampleRate, channels);
+                    threadState = IDLE_BUT_CONNECTED;
+                    connected.store(true);
+                    currentTries = 0;
+                    break;
+                case IDLE_BUT_CONNECTED:
+                    if (recording.load())
+                    {
+                        threadState = RECORDING_DATA;
+                    } else {
+                        dev->read(pollTestBuffer); // Poll small data to check if alive
+                        usleep(100000); // Wait 100 ms
+                    }
+                    break;
+                case RECORDING_DATA:
+                    if (!recording.load())
+                    {
+                        threadState = IDLE_BUT_CONNECTED;
+                    } else {
+                        dev->read(frameBuffer);
+                        if (data.items_available_for_write() >= frameBuffer.size())
+                            data.push(&frameBuffer[0], frameBuffer.size());
+                        // Else skipped frame... notify?
+                    }
+                    break;
+                default:
+                    break;
+            }
+            usleep(100);
+        } catch (BITalino::Exception &e) {
+            // printf("BITalino exception: %s\n", e.getDescription());
+            // TODO: check which exact exception is communication lost etc.
+            threadState = SEARCHING_FOR_DEVICE;
+            connected.store(false);
+            if (dev)
+            {
+                delete dev;
+                dev = nullptr;
+            }
+            usleep(500000); // 500ms Timeout before trying to reconnect
+        }
+    }
+    
+    std::atomic<bool> connected;
+    std::atomic<bool> recording;
+    std::string deviceName;
+    
+    BITalino* dev = nullptr;
+    uint16_t sampleRate = 1000;
+    std::vector<int32_t> channels;
+    
+    std::atomic<uint32_t> tries;
+    uint32_t currentTries = 0;
+    
+private:
+    enum State {
+        SEARCHING_FOR_DEVICE,
+        IDLE_BUT_CONNECTED,
+        RECORDING_DATA
+    };
+    
+    State threadState = SEARCHING_FOR_DEVICE;
+    
+    BITalino::VFrame frameBuffer;
+    BITalino::VFrame pollTestBuffer;
+};
+
+
+
+#endif /* BitalinoThread_h */
diff --git a/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.cpp b/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.cpp
new file mode 100644
index 0000000..e77ca25
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.cpp
@@ -0,0 +1,138 @@
+//
+//  RapidBitalino.cpp
+//  Bitalino
+//
+//  Created by James on 20/11/2017.
+//
+//
+
+#include "RapidBitalino.h"
+
+RapidBitalino::RapidBitalino ( void )
+{
+}
+
+RapidBitalino::~RapidBitalino ( void )
+{
+}
+
+void RapidBitalino::clearTrainingData ( void )
+{
+    // Clear the training set
+    (*currentPhrase).elements.clear();
+    printf("Cleared training data\n");
+}
+
+void RapidBitalino::recordTrainingData( uint32_t samplesToCollect, double output )
+{
+    this->samplesToCollect = samplesToCollect;
+    gatheringTrainingData = true;
+    bitalinoThread.data.reset(); // Reset read/write pointers
+    currentTrainingOutput = { output };
+    printf("Recoriding training input for output: %f\n", output);
+}
+
+void RapidBitalino::setup ( void )
+{
+    // Get a reference to a new phrase which stores our trainingData
+    currentPhrase = trainingData.createNewPhrase("BITalino");
+    // Set threaded train callback: (not sync)
+    rapidMixThread.threadedTrainCallback = [&] (selectedTraining* t )
+    {
+        if (trainingData.trainingSet.size() > 0)
+            t->train(trainingData);
+    };
+    // Set callback for when model is done training (sync)
+    rapidMixThread.doneTrainingCallback = [&] ( void )
+    {
+        trainingText = "New Model Trained";
+        printf("New Model Trained\n");
+    };
+    
+    // Set up the bitalino
+    bitalinoThread.setup("/dev/cu.BITalino-DevB", 2000,
+             1000, {0, 1, 2, 3, 4, 5},
+             100);
+    // Start the bitalino's thread (and allow it to start searching for the device)
+    bitalinoThread.startThread();
+    // Start receiving data as soon as it's connected
+    bitalinoThread.setRecording(true);
+    // Initialize with 0, 0
+    bitalinoProcessedOutput = { 0.0, 0.0 };
+    // Init FFT
+    fft.setup(128, 32, 32);
+}
+
+bool RapidBitalino::processBitalinoOutput(BITalino::Frame& frame)
+{
+    std::vector<double> output;
+    double newVal = static_cast<float>(frame.analog[0]);
+    
+    discreteVal -= discreteVal / N;
+    discreteVal += newVal / N;
+    discreteValCalibrated = newVal - discreteVal;
+    
+    testCheapRMSdiscrete -= testCheapRMSdiscrete / M;
+    testCheapRMSdiscrete += (discreteValCalibrated*discreteValCalibrated) / M;
+    //bitalinoProcessedOutput = { sqrt(testCheapRMSdiscrete) };
+    
+    if (fft.process(discreteValCalibrated))
+    {
+        bitalinoProcessedOutput = { fft.spectralCentroid(), sqrt(testCheapRMSdiscrete) };
+        
+        return true;
+    }
+    return false;
+}
+
+void RapidBitalino::update ( void )
+{ // TODO: move this to its own thread and create communications between ofx and this so it doesn't block ofx
+    rapidMixThread.update();
+    
+    uint32_t items = bitalinoThread.data.items_available_for_read();
+    BITalino::Frame data[items];
+    bitalinoThread.data.pop(data, items);
+    //double output;
+    
+    for (uint32_t i = 0; i < items; ++i)
+    {
+        if (processBitalinoOutput(data[i]))
+        {
+            tOutput = rapidMixThread.model->run(bitalinoProcessedOutput)[0];
+            printf("Input = %f, %f, Output = %f\n",bitalinoProcessedOutput[0],bitalinoProcessedOutput[1], tOutput);
+            
+            if (gatheringTrainingData)
+            {
+                if (samplesToCollect > 0)
+                {
+                    (*currentPhrase).addElement(bitalinoProcessedOutput, currentTrainingOutput);
+                    --samplesToCollect;
+                } else {
+                    gatheringTrainingData = false;
+                    rapidMixThread.train(); // Start training process in its thread
+                }
+            }
+        }
+    }
+}
+
+void RapidBitalino::draw ( void )
+{
+    // Todo, draw some trivial debug interface items
+    // ie:
+    /*
+     - BITalino isConnected ()
+     - BITalino isRecording () // if receiving data ?
+     - RapidMixThread isTraining ()
+     - input and output values
+     */
+    ofDrawBox(ofVec2f(400,(tOutput/4)*600), 50);
+}
+
+void RapidBitalino::stop ( void )
+{
+    rapidMixThread.stopThread();
+    bitalinoThread.stopThread();
+}
+
+
diff --git a/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.h b/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.h
new file mode 100644
index 0000000..eb1d77a
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/RapidBitalino.h
@@ -0,0 +1,69 @@
+//
+//  RapidBitalino.h
+//  Bitalino
+//
+//  Created by James on 20/11/2017.
+//
+//
+
+#ifndef RapidBitalino_h
+#define RapidBitalino_h
+
+#include "ofMain.h"
+#include "rapidmix.h"
+#include "RapidMixThread.h"
+#include "BitalinoThread.h"
+#include "maxiFFT.h"
+
+typedef rapidmix::staticRegression selectedTraining;
+
+class RapidBitalino {
+public:
+    RapidBitalino ( void );
+    ~RapidBitalino ( void );
+    
+    void clearTrainingData ( void );
+    void recordTrainingData ( uint32_t numberOfSamplesToCollect, double output );
+    void setup ( void );
+    
+    void update ( void );
+    void draw ( void );
+    
+    void stop ( void );
+    
+private:
+    // Private member funcs
+    bool processBitalinoOutput(BITalino::Frame& frame);
+    
+    // Private variables
+    std::string trainingText = "idle";
+    
+    // Rapid Mix stuff
+    rapidmix::trainingData trainingData;
+    std::vector<rapidmix::trainingData::phrase>::iterator currentPhrase;
+    
+    // My own stuff
+    uint32_t samplesToCollect;
+    std::vector<double> currentTrainingOutput;
+    
+    RapidMixThread<selectedTraining> rapidMixThread;
+    BitalinoThread bitalinoThread;
+    
+    bool gatheringTrainingData = false;
+    
+    // Processing the BITalino output
+    maxiFFT fft;
+    double discreteVal = 0;
+    double discreteValCalibrated = 0;
+    double N = 1000;
+    double M = 100;
+    
+    double testCheapRMSdiscrete = 0;
+    
+    double tOutput = 0.0;
+    
+    std::vector<double> bitalinoProcessedOutput;
+};
+
+
+#endif /* RapidBitalino_h */
diff --git a/examples/ofx/Bitalino_rapidmix/src/RapidMixThread.h b/examples/ofx/Bitalino_rapidmix/src/RapidMixThread.h
new file mode 100644
index 0000000..d8efb2e
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/RapidMixThread.h
@@ -0,0 +1,98 @@
+//
+//  RapidMixThread/h
+//  This implementation of rapidMix trains in a different thread and has a synchronized
+//  update process with your main thread, which triggers a (sync) callback on doneTraining.
+//  Allows you to train one model and keep using it while the next one trains, the new
+//  model will be swapped in sync with the thread the update is called in once it's done.
+//  Created by James on 19/11/2017.
+//
+//
+
+#ifndef RapidMixThread_h
+#define RapidMixThread_h
+
+#include <algorithm>
+#include <functional>
+#include <unistd.h> // usleep
+#include "ThreadedProcess.h"
+
+template <typename T>
+class RapidMixThread : public ThreadedProcess
+{
+public:
+    T* model = nullptr; // The model to be accessed
+    std::function<void ( void ) > doneTrainingCallback = nullptr; // CB on done training
+    std::function<void ( T* modelToBeTrained ) > threadedTrainCallback = nullptr; // Callback entry in train thread to pass training data and train the new model before it gets swapped in to place, note that any adjustments to the passed trainingdata or other non threadsafe elements at this point will result in undefined behavior
+    
+    RapidMixThread ( void ) : ThreadedProcess ()
+    {
+        model = new T();
+        training.store(false);
+        doneTraining.store(false);
+        startThread(); // Start training thread
+    }
+    
+    ~RapidMixThread ( void )
+    {
+        stopThread();
+        if (newModel)
+            delete newModel;
+        if (model)
+            delete model;
+    }
+    
+    void train ( void )
+    {
+        if (!training.load())
+        {
+            training.store(true);
+        }
+    }
+    
+    bool isTraining ( void ) const
+    {
+        return training.load();
+    }
+    
+    void update ( void )
+    { // To be called in your main loop
+        if (doneTraining.load())
+        {
+            if (newModel)
+            {
+                std::swap(model, newModel);
+            } else
+                printf("New model was not created successfully...\n");
+            
+            if (doneTrainingCallback)
+                doneTrainingCallback();
+            doneTraining.store(false);
+        }
+    }
+    
+protected:
+    void mainThreadCallback ( void )
+    { // Training thread
+        if (isTraining())
+        {
+            if (newModel)
+                delete newModel;
+            
+            newModel = new T();
+            if (threadedTrainCallback)
+                threadedTrainCallback(newModel);
+            
+            training.store(false);
+            doneTraining.store(true);
+        }
+        usleep(100000); // Sleep 100 ms
+    }
+    
+    std::atomic<bool> training;
+    std::atomic<bool> doneTraining;
+    T* newModel = nullptr;
+    
+private:
+};
+
+#endif /* RapidMixThread_h */
diff --git a/examples/ofx/Bitalino_rapidmix/src/RingBuffer.hpp b/examples/ofx/Bitalino_rapidmix/src/RingBuffer.hpp
new file mode 100644
index 0000000..401bc70
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/RingBuffer.hpp
@@ -0,0 +1,222 @@
+/*
+ * RingBuffer.hpp
+ */
+
+#ifndef RINGBUFFER_HPP
+#define RINGBUFFER_HPP
+
+#include <iostream>
+#include <atomic>
+#include <string>
+#include <unistd.h>
+#include <string.h> // memcpy
+#include <cstring>
+
+template <class T>
+class RingBuffer
+{
+public:
+    RingBuffer();
+    RingBuffer(unsigned long size);
+    ~RingBuffer();
+    void setup(unsigned long size);
+    
+    unsigned long push(const T* data, unsigned long n);
+    unsigned long pop(T* data, unsigned long n);
+    unsigned long items_available_for_write() const;
+    unsigned long items_available_for_read() const;
+    bool isLockFree() const;
+    void pushMayBlock(bool block);
+    void popMayBlock(bool block);
+    void setBlockingNap(unsigned long blockingNap);
+    void setSize(unsigned long size);
+    void reset();
+    
+private:
+    unsigned long array_size;
+    T* buffer = nullptr;
+    long type_size; // also depends on #channels
+
+    std::atomic<unsigned long> tail_index; // write pointer
+    std::atomic<unsigned long> head_index; // read pointer
+
+    bool blockingPush;
+    bool blockingPop;
+    useconds_t blockingNap = 500;
+}; // RingBuffer{}
+
+template <class T>
+RingBuffer<T>::RingBuffer()
+{
+    tail_index = 0;
+    head_index = 0;
+    
+    blockingPush = false;
+    blockingPop = false;
+} // RingBuffer()
+
+template <class T>
+RingBuffer<T>::RingBuffer(unsigned long array_size)
+{
+    tail_index = 0;
+    head_index = 0;
+    
+    blockingPush = false;
+    blockingPop = false;
+    
+    setup(array_size);
+} // RingBuffer()
+
+template <class T>
+RingBuffer<T>::~RingBuffer()
+{
+    if (buffer)
+        delete [] buffer;
+} // ~RingBuffer()
+
+template <class T>
+void RingBuffer<T>::setup(unsigned long array_size)
+{
+    if (buffer)
+        delete [] buffer;
+    
+    this->array_size = array_size;
+    buffer = new T [array_size](); // allocate storage
+    type_size = sizeof(T);
+}
+
+template <class T>
+unsigned long RingBuffer<T>::items_available_for_write() const
+{
+    long pointerspace = head_index.load()-tail_index.load(); // signed
+    
+    if(pointerspace > 0) return pointerspace; // NB: > 0 so NOT including 0
+    else return pointerspace + array_size;
+} // items_available_for_write()
+
+template <class T>
+unsigned long RingBuffer<T>::items_available_for_read() const
+{
+    long pointerspace = tail_index.load() - head_index.load(); // signed
+    
+    if(pointerspace >= 0) return pointerspace; // NB: >= 0 so including 0
+    else return pointerspace + array_size;
+} // items_available_for_read()
+
+template <class T>
+void RingBuffer<T>::pushMayBlock(bool block)
+{
+    this->blockingPush = block;
+} // pushMayBlock()
+
+template <class T>
+void RingBuffer<T>::popMayBlock(bool block)
+{
+    this->blockingPop = block;
+} // popMayBlock()
+
+template <class T>
+void RingBuffer<T>::setBlockingNap(unsigned long blockingNap)
+{
+    this->blockingNap = blockingNap;
+} // setBlockingNap()
+
+
+/*
+ * Try to write as many items as possible and return the number actually written
+ */
+template <class T>
+unsigned long RingBuffer<T>::push(const T* data, unsigned long n)
+{
+    unsigned long space = array_size, n_to_write, memory_to_write, first_chunk, second_chunk, current_tail;
+    
+    //space = items_available_for_write();
+    if(blockingPush)
+    {
+        while((space = items_available_for_write()) < n)
+        { // blocking
+            usleep(blockingNap);
+        } // while, possibly use a system level sleep operation with CVAR?
+    } // if
+    
+    n_to_write = (n <= space) ? n : space; // limit
+    
+    current_tail = tail_index.load();
+    if(current_tail + n_to_write <= array_size)
+    { // chunk fits without wrapping
+        memory_to_write = n_to_write * type_size;
+        memcpy(buffer+current_tail, data, memory_to_write);
+        tail_index.store(current_tail + n_to_write);
+    }
+    else { // chunk has to wrap
+        first_chunk = array_size - current_tail;
+        memory_to_write = first_chunk * type_size;
+        memcpy(buffer + current_tail, data, memory_to_write);
+        
+        second_chunk = n_to_write - first_chunk;
+        memory_to_write = second_chunk * type_size;
+        memcpy(buffer, data + first_chunk, memory_to_write);
+        tail_index.store(second_chunk);
+    }
+    
+    return n_to_write;
+} // push()
+
+
+/*
+ * Try to read as many items as possible and return the number actually read
+ */
+template <class T>
+unsigned long RingBuffer<T>::pop(T* data, unsigned long n)
+{
+    unsigned long space = array_size, n_to_read, memory_to_read, first_chunk, second_chunk, current_head;
+    
+    //space = items_available_for_read(); //if checking outside of thread, not necessary?
+    if(blockingPop)
+    {
+        while((space = items_available_for_read()) < n)
+        { // blocking
+            usleep(blockingNap);
+        } // while
+    } // if
+    
+    if(space == 0)
+        return 0;
+    
+    n_to_read = (n <= space) ? n : space; // limit
+    
+    current_head = head_index.load();
+    if(current_head + n_to_read <= array_size)
+    { // no wrapping necessary
+        memory_to_read = n_to_read * type_size;
+        memcpy(data, buffer + current_head, memory_to_read);
+        head_index.store(current_head + n_to_read);
+    }
+    else { // read has to wrap
+        first_chunk = array_size - current_head;
+        memory_to_read = first_chunk * type_size;
+        memcpy(data, buffer + current_head, memory_to_read);
+        
+        second_chunk = n_to_read - first_chunk;
+        memory_to_read = second_chunk * type_size;
+        memcpy(data + first_chunk, buffer, memory_to_read);
+        head_index.store(second_chunk);
+
+    }
+    return n_to_read;
+} // pop()
+
+template <class T>
+bool RingBuffer<T>::isLockFree() const
+{
+    return (tail_index.is_lock_free() && head_index.is_lock_free());
+} // isLockFree()
+
+template <class T>
+void RingBuffer<T>::reset()
+{
+    tail_index.store(0);
+    head_index.store(0);
+} // isLockFree()
+
+#endif
diff --git a/examples/ofx/Bitalino_rapidmix/src/ThreadedProcess.h b/examples/ofx/Bitalino_rapidmix/src/ThreadedProcess.h
new file mode 100644
index 0000000..4f9d594
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/ThreadedProcess.h
@@ -0,0 +1,74 @@
+//
+//  ThreadedProcess.h
+//  Bitalino
+//
+//  Created by James on 19/11/2017.
+//
+//
+
+#ifndef ThreadedProcess_h
+#define ThreadedProcess_h
+
+#include <stdio.h>
+#include <stdint.h>
+#include <functional>
+#include <thread>
+#include <atomic>
+
+class ThreadedProcess {
+public:
+    ThreadedProcess ( void )
+    {
+        running.store( false );
+    }
+    
+    virtual ~ThreadedProcess ( void )
+    {
+        stopThread();
+    }
+    
+    bool isThreadRunning ( void ) const
+    {
+        return running.load();
+    }
+    
+    // (re)Start main thread
+    void startThread ( void )
+    {
+        if (running.load())
+        { // Thread is already running
+            stopThread();
+        }
+        running.store( true );
+        processMainThread = std::thread(&ThreadedProcess::mainLoop, this); // Spawn thread
+    }
+    
+    // Stop main thread
+    void stopThread ( void )
+    {
+        if (running.load())
+        {
+            running.store( false );
+            processMainThread.join();
+        }
+    }
+    
+protected:
+    virtual void mainThreadCallback ( void ) = 0;
+    
+    std::thread processMainThread;
+    
+private:
+    void mainLoop ( void )
+    {
+        while (running.load())
+        {
+            mainThreadCallback();
+        }
+    }
+    
+    std::atomic<bool> running;
+};
+
+
+#endif /* ThreadedProcess_h */
diff --git a/examples/ofx/Bitalino_rapidmix/src/bitalino.cpp b/examples/ofx/Bitalino_rapidmix/src/bitalino.cpp
new file mode 100755
index 0000000..fe75bb9
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/bitalino.cpp
@@ -0,0 +1,799 @@
+/**
+ * \copyright  Copyright 2014-2016 PLUX - Wireless Biosignals, S.A.
+ * \author     Filipe Silva
+ * \version    2.1
+ * \date       February 2016
+ * 
+ * \section LICENSE
+ 
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ 
+ This program 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 Lesser General Public License for more details.
+ 
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ */
+
+/*****************************************************************************/
+
+#ifdef _WIN32 // 32-bit or 64-bit Windows
+
+#define HASBLUETOOTH
+
+#define _WINSOCK_DEPRECATED_NO_WARNINGS
+
+#include <winsock2.h>
+#include <ws2bth.h>
+
+#else // Linux or Mac OS
+
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+#ifdef HASBLUETOOTH  // Linux only
+
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/rfcomm.h>
+#include <bluetooth/hci.h>
+#include <bluetooth/hci_lib.h>
+#include <stdlib.h>
+
+#endif // HASBLUETOOTH
+
+void Sleep(int millisecs)
+{
+   usleep(millisecs*1000);
+}
+
+#endif // Linux or Mac OS
+
+
+#include "bitalino.h"
+
+/*****************************************************************************/
+
+// CRC4 check function
+
+static const unsigned char CRC4tab[16] = {0, 3, 6, 5, 12, 15, 10, 9, 11, 8, 13, 14, 7, 4, 1, 2};
+
+static bool checkCRC4(const unsigned char *data, int len)
+{
+   unsigned char crc = 0;
+
+   for (int i = 0; i < len-1; i++)
+   {
+      const unsigned char b = data[i];
+      crc = CRC4tab[crc] ^ (b >> 4);
+      crc = CRC4tab[crc] ^ (b & 0x0F);
+   }
+
+   // CRC for last byte
+   crc = CRC4tab[crc] ^ (data[len-1] >> 4);
+   crc = CRC4tab[crc];
+
+   return (crc == (data[len-1] & 0x0F));
+}
+
+/*****************************************************************************/
+
+// BITalino public methods
+
+BITalino::VDevInfo BITalino::find(void)
+{
+   VDevInfo devs;
+   DevInfo  devInfo;
+
+#ifdef _WIN32
+   char     addrStr[40];
+	WSADATA  m_data;
+
+   if (WSAStartup(0x202, &m_data) != 0)	throw Exception(Exception::PORT_INITIALIZATION);
+
+  WSAQUERYSETA querySet;
+  ZeroMemory(&querySet, sizeof querySet);
+  querySet.dwSize = sizeof(querySet);
+  querySet.dwNameSpace = NS_BTH;
+  
+  HANDLE hLookup;
+  DWORD flags = LUP_CONTAINERS | LUP_RETURN_ADDR | LUP_RETURN_NAME | LUP_FLUSHCACHE;
+  bool tryempty = true;
+  bool again;
+
+  do
+  {
+	  again = false;
+     if (WSALookupServiceBeginA(&querySet, flags, &hLookup) != 0)
+     {
+        WSACleanup();
+        throw Exception(Exception::BT_ADAPTER_NOT_FOUND);
+     }
+  
+	  while (1)
+     {
+        BYTE buffer[1500];
+        DWORD bufferLength = sizeof(buffer);
+        WSAQUERYSETA *pResults = (WSAQUERYSETA*)&buffer;
+        if (WSALookupServiceNextA(hLookup, flags, &bufferLength, pResults) != 0)	break;
+        if (pResults->lpszServiceInstanceName[0] == 0 && tryempty)
+        {  // empty name : may happen on the first inquiry after the device was connected
+           tryempty = false;   // redo the inquiry a second time only (there may be a device with a real empty name)
+           again = true;
+			  break;
+        }
+
+        DWORD strSiz = sizeof addrStr;
+        if (WSAAddressToStringA(pResults->lpcsaBuffer->RemoteAddr.lpSockaddr, pResults->lpcsaBuffer->RemoteAddr.iSockaddrLength,
+                                NULL, addrStr, &strSiz) == 0)
+        {
+           addrStr[strlen(addrStr)-1] = 0;   // remove trailing ')'
+           devInfo.macAddr = addrStr+1;   // remove leading '('
+           devInfo.name = pResults->lpszServiceInstanceName;
+           devs.push_back(devInfo);
+	     }
+	  }
+
+	  WSALookupServiceEnd(hLookup);
+  } while (again);
+
+  WSACleanup();
+
+#else // Linux or Mac OS
+
+#ifdef HASBLUETOOTH
+    
+    #define MAX_DEVS 255
+
+    int dev_id = hci_get_route(NULL);
+    int sock = hci_open_dev(dev_id);
+    if (dev_id < 0 || sock < 0)
+      throw Exception(Exception::PORT_INITIALIZATION);
+
+    inquiry_info ii[MAX_DEVS];
+    inquiry_info *pii = ii;
+
+    int num_rsp = hci_inquiry(dev_id, 8, MAX_DEVS, NULL, &pii, IREQ_CACHE_FLUSH);
+    if(num_rsp < 0)
+    {
+      ::close(sock);
+      throw Exception(Exception::PORT_INITIALIZATION);
+    }
+
+    for (int i = 0; i < num_rsp; i++)
+    {
+        char addr[19], name[248];
+
+        ba2str(&ii[i].bdaddr, addr);
+        if (hci_read_remote_name(sock, &ii[i].bdaddr, sizeof name, name, 0) >= 0)
+        {
+           devInfo.macAddr = addr;
+           devInfo.name = name;
+           devs.push_back(devInfo);        
+        }
+    }
+
+    ::close(sock);
+    if (pii != ii)   free(pii);
+   
+#else
+   
+   throw Exception(Exception::BT_ADAPTER_NOT_FOUND);
+   
+#endif // HASBLUETOOTH
+   
+#endif // Linux or Mac OS
+
+    return devs;
+}
+
+/*****************************************************************************/
+
+BITalino::BITalino(const char *address) : nChannels(0), isBitalino2(false)
+{
+#ifdef _WIN32
+   if (_memicmp(address, "COM", 3) == 0)
+   {
+      fd = INVALID_SOCKET;
+
+	   char xport[40] = "\\\\.\\";   // preppend "\\.\"
+
+	   strcat_s(xport, 40, address);
+
+	   hCom = CreateFileA(xport,  // comm port name
+					   GENERIC_READ | GENERIC_WRITE,
+					   0,      // comm devices must be opened w/exclusive-access 
+					   NULL,   // no security attributes 
+					   OPEN_EXISTING, // comm devices must use OPEN_EXISTING 
+					   0,      // not overlapped I/O 
+					   NULL);  // hTemplate must be NULL for comm devices 
+
+      if (hCom == INVALID_HANDLE_VALUE)
+         throw Exception(Exception::PORT_COULD_NOT_BE_OPENED);
+
+      DCB dcb;
+      if (!GetCommState(hCom, &dcb))
+	   {
+		   close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+	   }
+      dcb.BaudRate = CBR_115200;
+      dcb.fBinary = TRUE;
+      dcb.fParity = FALSE;
+      dcb.fOutxCtsFlow = FALSE;
+      dcb.fOutxDsrFlow = FALSE;
+      dcb.fDtrControl = DTR_CONTROL_DISABLE;
+      dcb.fDsrSensitivity = FALSE;
+      dcb.fOutX = FALSE;
+      dcb.fInX = FALSE;
+      dcb.fNull = FALSE;
+      dcb.fRtsControl = RTS_CONTROL_ENABLE;
+      dcb.ByteSize = 8;
+      dcb.Parity = NOPARITY;
+      dcb.StopBits = ONESTOPBIT;
+      if (!SetCommState(hCom, &dcb))
+	   {
+		   close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+	   }
+
+	   COMMTIMEOUTS ct;
+	   ct.ReadIntervalTimeout         = 0;
+	   ct.ReadTotalTimeoutConstant    = 5000; // 5 s
+	   ct.ReadTotalTimeoutMultiplier  = 0;
+	   ct.WriteTotalTimeoutConstant   = 5000; // 5 s
+	   ct.WriteTotalTimeoutMultiplier = 0;
+
+	   if (!SetCommTimeouts(hCom, &ct)) 
+	   {
+		   close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+	   }
+   }
+   else // address is a Bluetooth MAC address
+   {
+      hCom = INVALID_HANDLE_VALUE;
+
+      WSADATA m_data;
+      if (WSAStartup(0x202, &m_data) != 0)
+         throw Exception(Exception::PORT_INITIALIZATION);
+
+      SOCKADDR_BTH so_bt;
+      int siz = sizeof so_bt;
+      if (WSAStringToAddressA((LPSTR)address, AF_BTH, NULL, (sockaddr*)&so_bt, &siz) != 0)
+      {
+         WSACleanup();
+         throw Exception(Exception::INVALID_ADDRESS);
+      }
+      so_bt.port = 1;
+
+      fd = socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
+      if (fd == INVALID_SOCKET)
+      {
+         WSACleanup();
+         throw Exception(Exception::PORT_INITIALIZATION);
+      }
+
+      DWORD rcvbufsiz = 128*1024; // 128k
+      setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*) &rcvbufsiz, sizeof rcvbufsiz);
+
+      if (connect(fd, (const sockaddr*)&so_bt, sizeof so_bt) != 0)
+      {
+         int err = WSAGetLastError();
+         close();
+
+         switch(err)
+         {
+         case WSAENETDOWN:
+            throw Exception(Exception::BT_ADAPTER_NOT_FOUND);
+
+         case WSAETIMEDOUT:
+            throw Exception(Exception::DEVICE_NOT_FOUND);
+
+         default:
+            throw Exception(Exception::PORT_COULD_NOT_BE_OPENED);
+         }
+      }
+
+      readtimeout.tv_sec = 5;
+      readtimeout.tv_usec = 0;
+   }
+
+#else // Linux or Mac OS
+
+   if (memcmp(address, "/dev/", 5) == 0)
+   {   
+      fd = open(address, O_RDWR | O_NOCTTY | O_NDELAY);
+      if (fd < 0)
+		   throw Exception(Exception::PORT_COULD_NOT_BE_OPENED);
+      
+      if (fcntl(fd, F_SETFL, 0) == -1)  // remove the O_NDELAY flag
+      {
+         close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+      }
+   
+      termios term;
+      if (tcgetattr(fd, &term) != 0)
+      {
+         close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+      }
+   
+      cfmakeraw(&term);
+      term.c_oflag &= ~(OPOST);
+   
+      term.c_cc[VMIN] = 1;
+      term.c_cc[VTIME] = 1;
+   
+      term.c_iflag &= ~(INPCK | PARMRK | ISTRIP | IGNCR | ICRNL | INLCR | IXON | IXOFF | IMAXBEL); // no flow control
+      term.c_iflag |= (IGNPAR | IGNBRK);
+   
+      term.c_cflag &= ~(CRTSCTS | PARENB | CSTOPB | CSIZE); // no parity, 1 stop bit
+      term.c_cflag |= (CLOCAL | CREAD | CS8);    // raw mode, 8 bits
+   
+      term.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOPRT | ECHOK | ECHOKE | ECHONL | ECHOCTL | ISIG | IEXTEN | TOSTOP);  // raw mode
+   
+      if (cfsetspeed(&term, B115200) != 0)
+      {
+         close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+      }
+   
+      if (tcsetattr(fd, TCSANOW, &term) != 0)
+      {
+         close();
+		   throw Exception(Exception::PORT_INITIALIZATION);
+      }
+
+      isTTY = true;
+   }
+   else // address is a Bluetooth MAC address
+#ifdef HASBLUETOOTH
+   {
+      sockaddr_rc so_bt;
+      so_bt.rc_family = AF_BLUETOOTH;
+      if (str2ba(address, &so_bt.rc_bdaddr) < 0)
+         throw Exception(Exception::INVALID_ADDRESS);
+         
+      so_bt.rc_channel = 1;
+
+      fd = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
+      if (fd < 0)
+         throw Exception(Exception::PORT_INITIALIZATION);
+
+      if (connect(fd, (const sockaddr*)&so_bt, sizeof so_bt) != 0)
+      {
+         close();
+         throw Exception(Exception::PORT_COULD_NOT_BE_OPENED);
+      }
+
+      isTTY = false;
+   }
+#else
+      throw Exception(Exception::PORT_COULD_NOT_BE_OPENED);
+#endif // HASBLUETOOTH
+
+#endif // Linux or Mac OS
+
+   // check if device is BITalino2
+   const std::string ver = version();
+   const std::string::size_type pos = ver.find("_v");
+   if (pos != std::string::npos)
+   {
+      const char *xver = ver.c_str() + pos+2;
+      if (atoi(xver) >= 5)  isBitalino2 = true;
+   }
+}
+
+/*****************************************************************************/
+
+BITalino::~BITalino(void)
+{
+   try
+   {
+      if (nChannels != 0)  stop();
+   }
+   catch (Exception) {} // if stop() fails, close anyway
+
+   close();
+}
+
+/*****************************************************************************/
+
+std::string BITalino::version(void)
+{
+   if (nChannels != 0)   throw Exception(Exception::DEVICE_NOT_IDLE);
+   
+   const char *header = "BITalino";
+   
+   const size_t headerLen = strlen(header);
+
+   send(0x07);    // 0  0  0  0  0  1  1  1 - Send version string
+   
+   std::string str;
+   while(1)
+   {
+      char chr;
+      if (recv(&chr, sizeof chr) != sizeof chr)    // a timeout has occurred
+         throw Exception(Exception::CONTACTING_DEVICE);
+
+      const size_t len = str.size();
+      if (len >= headerLen)
+      {
+         if (chr == '\n')  return str;
+         str.push_back(chr);
+      }
+      else
+         if (chr == header[len])
+            str.push_back(chr);
+         else
+         {
+            str.clear();   // discard all data before version header
+            if (chr == header[0])   str.push_back(chr);
+         }
+   }
+}
+
+/*****************************************************************************/
+
+void BITalino::start(int samplingRate, const Vint &channels, bool simulated)
+{
+   if (nChannels != 0)   throw Exception(Exception::DEVICE_NOT_IDLE);
+
+   unsigned char cmd;
+   switch (samplingRate)
+   {
+   case 1:
+      cmd = 0x03;
+      break;
+   case 10:
+      cmd = 0x43;
+      break;
+   case 100:
+      cmd = 0x83;
+      break;
+   case 1000:
+      cmd = 0xC3;
+      break;
+   default:
+      throw Exception(Exception::INVALID_PARAMETER);
+   }
+
+   char chMask;
+   if (channels.empty())
+   {
+      chMask = 0x3F;    // all 6 analog channels
+      nChannels = 6;
+   }
+   else
+   {
+      chMask = 0;
+      nChannels = 0;
+      for(Vint::const_iterator it = channels.begin(); it != channels.end(); it++)
+      {
+         int ch = *it;
+         if (ch < 0 || ch > 5)   throw Exception(Exception::INVALID_PARAMETER);
+         const char mask = 1 << ch;
+         if (chMask & mask)   throw Exception(Exception::INVALID_PARAMETER);
+         chMask |= mask;
+         nChannels++;
+      }
+   }
+
+   send(cmd);   // <Fs>  0  0  0  0  1  1 - Set sampling rate
+
+   // A6 A5 A4 A3 A2 A1 0  1 - Start live mode with analog channel selection
+   // A6 A5 A4 A3 A2 A1 1  0 - Start simulated mode with analog channel selection
+   send((chMask << 2) | (simulated ? 0x02 : 0x01));
+}
+
+/*****************************************************************************/
+
+void BITalino::stop(void)
+{
+   if (nChannels == 0)   throw Exception(Exception::DEVICE_NOT_IN_ACQUISITION);
+
+   send(0x00); // 0  0  0  0  0  0  0  0 - Go to idle mode
+
+   nChannels = 0;
+
+   version();  // to flush pending frames in input buffer
+}
+
+/*****************************************************************************/
+
+int BITalino::read(VFrame &frames)
+{
+   if (nChannels == 0)   throw Exception(Exception::DEVICE_NOT_IN_ACQUISITION);
+
+   unsigned char buffer[8]; // frame maximum size is 8 bytes
+
+   if (frames.empty())   frames.resize(100);
+
+   char nBytes = nChannels + 2;
+   if (nChannels >= 3 && nChannels <= 5)  nBytes++;
+
+   for(VFrame::iterator it = frames.begin(); it != frames.end(); it++)
+   {
+      if (recv(buffer, nBytes) != nBytes)    return int(it - frames.begin());   // a timeout has occurred
+
+      while (!checkCRC4(buffer, nBytes))
+      {  // if CRC check failed, try to resynchronize with the next valid frame
+         // checking with one new byte at a time
+         memmove(buffer, buffer+1, nBytes-1);
+         if (recv(buffer+nBytes-1, 1) != 1)    return int(it - frames.begin());   // a timeout has occurred
+      }
+
+      Frame &f = *it;
+      f.seq = buffer[nBytes-1] >> 4;
+      for(int i = 0; i < 4; i++)
+         f.digital[i] = ((buffer[nBytes-2] & (0x80 >> i)) != 0);
+
+      f.analog[0] = (short(buffer[nBytes-2] & 0x0F) << 6) | (buffer[nBytes-3] >> 2);
+      if (nChannels > 1)
+         f.analog[1] = (short(buffer[nBytes-3] & 0x03) << 8) | buffer[nBytes-4];
+      if (nChannels > 2)
+         f.analog[2] = (short(buffer[nBytes-5]) << 2) | (buffer[nBytes-6] >> 6);
+      if (nChannels > 3)
+         f.analog[3] = (short(buffer[nBytes-6] & 0x3F) << 4) | (buffer[nBytes-7] >> 4);
+      if (nChannels > 4)
+         f.analog[4] = ((buffer[nBytes-7] & 0x0F) << 2) | (buffer[nBytes-8] >> 6);
+      if (nChannels > 5)
+         f.analog[5] = buffer[nBytes-8] & 0x3F;
+   }
+
+   return (int) frames.size();
+}
+
+/*****************************************************************************/
+
+void BITalino::battery(int value)
+{
+   if (nChannels != 0)   throw Exception(Exception::DEVICE_NOT_IDLE);
+
+   if (value < 0 || value > 63)   throw Exception(Exception::INVALID_PARAMETER);
+
+   send(value << 2);    // <bat   threshold> 0  0 - Set battery threshold
+}
+
+/*****************************************************************************/
+
+void BITalino::trigger(const Vbool &digitalOutput)
+{
+   unsigned char cmd;
+   const size_t len = digitalOutput.size();
+
+   if (isBitalino2)
+   {
+      if (len != 0 && len != 2)   throw Exception(Exception::INVALID_PARAMETER);
+
+      cmd = 0xB3;   // 1  0  1  1  O2 O1 1  1 - Set digital outputs
+   }
+   else
+   {
+      if (len != 0 && len != 4)   throw Exception(Exception::INVALID_PARAMETER);
+
+      if (nChannels == 0)   throw Exception(Exception::DEVICE_NOT_IN_ACQUISITION);
+
+      cmd = 0x03;   // 0  0  O4 O3 O2 O1 1  1 - Set digital outputs
+   }
+
+   for(size_t i = 0; i < len; i++)
+      if (digitalOutput[i])
+         cmd |= (0x04 << i);
+   
+   send(cmd);
+}
+
+/*****************************************************************************/
+
+void BITalino::pwm(int pwmOutput)
+{
+	if (!isBitalino2)    throw Exception(Exception::NOT_SUPPORTED);
+
+   if (pwmOutput < 0 || pwmOutput > 255)   throw Exception(Exception::INVALID_PARAMETER);
+
+   send((char) 0xA3);    // 1  0  1  0  0  0  1  1 - Set analog output (1 byte follows: 0..255)
+   send(pwmOutput);
+}
+
+/*****************************************************************************/
+
+BITalino::State BITalino::state(void)
+{
+#pragma pack(1)  // byte-aligned structure
+
+   struct StateX
+   {
+      unsigned short analog[6], battery;
+      unsigned char  batThreshold, portsCRC;
+   } statex;
+
+#pragma pack()  // restore default alignment
+
+
+	if (!isBitalino2)    throw Exception(Exception::NOT_SUPPORTED);
+
+   if (nChannels != 0)   throw Exception(Exception::DEVICE_NOT_IDLE);
+
+   send(0x0B);    // 0  0  0  0  1  0  1  1 - Send device status
+
+   if (recv(&statex, sizeof statex) != sizeof statex)    // a timeout has occurred
+      throw Exception(Exception::CONTACTING_DEVICE);
+
+   if (!checkCRC4((unsigned char *) &statex, sizeof statex))
+      throw Exception(Exception::CONTACTING_DEVICE);
+
+   State state;
+
+   for(int i = 0; i < 6; i++)
+      state.analog[i] = statex.analog[i];
+
+   state.battery = statex.battery;
+   state.batThreshold = statex.batThreshold;
+
+   for(int i = 0; i < 4; i++)
+      state.digital[i] = ((statex.portsCRC & (0x80 >> i)) != 0);
+
+   return state;
+}
+
+/*****************************************************************************/
+
+const char* BITalino::Exception::getDescription(void)
+{
+	switch (code)
+   {
+		case INVALID_ADDRESS:
+			return "The specified address is invalid.";
+
+		case BT_ADAPTER_NOT_FOUND:
+			return "No Bluetooth adapter was found.";
+
+		case DEVICE_NOT_FOUND:
+			return "The device could not be found.";
+
+		case CONTACTING_DEVICE:
+			return "The computer lost communication with the device.";
+
+		case PORT_COULD_NOT_BE_OPENED:
+			return "The communication port does not exist or it is already being used.";
+
+		case PORT_INITIALIZATION:
+			return "The communication port could not be initialized.";
+
+		case DEVICE_NOT_IDLE:
+			return "The device is not idle.";
+			
+		case DEVICE_NOT_IN_ACQUISITION:
+	        return "The device is not in acquisition mode.";
+		
+		case INVALID_PARAMETER:
+			return "Invalid parameter.";
+
+		case NOT_SUPPORTED:
+			return "Operation not supported by the device.";
+
+		default:
+			return "Unknown error.";
+	}
+}
+
+/*****************************************************************************/
+
+// BITalino private methods
+
+void BITalino::send(char cmd)
+{
+   Sleep(150);
+
+#ifdef _WIN32
+   if (fd == INVALID_SOCKET)
+   {
+      DWORD nbytwritten = 0;
+	   if (!WriteFile(hCom, &cmd, sizeof cmd, &nbytwritten, NULL))
+ 		   throw Exception(Exception::CONTACTING_DEVICE);
+
+      if (nbytwritten != sizeof cmd)
+ 		   throw Exception(Exception::CONTACTING_DEVICE);
+   }
+   else
+      if (::send(fd, &cmd, sizeof cmd, 0) != sizeof cmd)
+         throw Exception(Exception::CONTACTING_DEVICE);
+   
+#else // Linux or Mac OS
+
+   if (write(fd, &cmd, sizeof cmd) != sizeof cmd)
+      throw Exception(Exception::CONTACTING_DEVICE);
+#endif
+}
+
+/*****************************************************************************/
+
+int BITalino::recv(void *data, int nbyttoread)
+{
+#ifdef _WIN32
+   if (fd == INVALID_SOCKET)
+   {
+      for(int n = 0; n < nbyttoread;)
+      {
+         DWORD nbytread = 0;
+	      if (!ReadFile(hCom, (char *) data+n, nbyttoread-n, &nbytread, NULL))
+ 		      throw Exception(Exception::CONTACTING_DEVICE);
+
+         if (nbytread == 0)
+         {
+            DWORD stat;
+            if (!GetCommModemStatus(hCom, &stat) || !(stat & MS_DSR_ON))
+               throw Exception(Exception::CONTACTING_DEVICE);  // connection is lost
+
+            return n;   // a timeout occurred
+         }
+
+         n += nbytread;
+      }
+
+	   return nbyttoread;
+   }
+#endif
+
+#ifndef _WIN32 // Linux or Mac OS
+   timeval  readtimeout;
+   readtimeout.tv_sec = 5;
+   readtimeout.tv_usec = 0;
+#endif
+
+   fd_set   readfds;
+   FD_ZERO(&readfds);
+   FD_SET(fd, &readfds);
+
+   for(int n = 0; n < nbyttoread;)
+   {
+      int state = select(FD_SETSIZE, &readfds, NULL, NULL, &readtimeout);
+      if(state < 0)	 throw Exception(Exception::CONTACTING_DEVICE);
+
+      if (state == 0)   return n;   // a timeout occurred
+
+#ifdef _WIN32
+      int ret = ::recv(fd, (char *) data+n, nbyttoread-n, 0);
+#else // Linux or Mac OS
+      ssize_t ret = ::read(fd, (char *) data+n, nbyttoread-n);
+#endif
+
+      if(ret <= 0)   throw Exception(Exception::CONTACTING_DEVICE);
+      n += ret;
+   }
+
+   return nbyttoread;
+}
+
+/*****************************************************************************/
+
+void BITalino::close(void)
+{
+#ifdef _WIN32
+   if (fd == INVALID_SOCKET)
+      CloseHandle(hCom);
+   else
+   {
+      closesocket(fd);
+      WSACleanup();
+   }
+   
+#else // Linux or Mac OS
+
+   ::close(fd);
+
+#endif
+}
+
+/*****************************************************************************/
diff --git a/examples/ofx/Bitalino_rapidmix/src/bitalino.h b/examples/ofx/Bitalino_rapidmix/src/bitalino.h
new file mode 100755
index 0000000..bee7ccf
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/bitalino.h
@@ -0,0 +1,319 @@
+/**
+ * \file
+ * \copyright  Copyright 2014-2015 PLUX - Wireless Biosignals, S.A.
+ * \author     Filipe Silva
+ * \version    2.0
+ * \date       November 2015
+ * 
+ * \section LICENSE
+ 
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ 
+ This program 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 Lesser General Public License for more details.
+ 
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ */
+
+
+ /**
+  \mainpage
+  
+  The %BITalino C++ API (available at http://github.com/BITalinoWorld/cpp-api) is a cross-platform library which enables C++ applications to communicate
+  with a %BITalino device through a simple interface.
+  The API is composed of a header file (bitalino.h)
+  and an implementation file ([bitalino.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.cpp)).
+  A sample test application in C++ ([test.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/test.cpp)) is also provided.
+  
+  There are three ways to connect to a %BITalino device:
+  - direct Bluetooth connection using the device Bluetooth MAC address (Windows and Linux);
+  - indirect Bluetooth connection using a virtual serial port (all platforms);
+  - wired UART connection using a serial port (all platforms).
+  
+  The API exposes a single class (BITalino). Each instance of this class represents a connection
+  to a %BITalino device. The connection is established in the constructor and released in the destructor,
+  thus following the RAII paradigm. An application can create several instances (to distinct devices).
+  The library is thread-safe between distinct instances. Each instance can be a local variable
+  (as in the sample application) or it can be allocated on the heap (using new and delete operators).
+  
+  \section sampleapp About the sample application
+  
+  The sample application ([test.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/test.cpp)) creates an instance to a %BITalino device.
+  Then it starts acquiring all channels on the device at 1000 Hz and enters a loop while dumping
+  one frame out of 100 and toggling the device green LED. Pressing the Enter key exits the loop,
+  destroys the instance and closes the application.
+  
+  One of the provided constructor calls must be used to connect to the device.
+  The string passed to the constructor can be a Bluetooth MAC address (you must change the one provided)
+  or a serial port. The serial port string format depends on the platform.
+  
+  In order to have a more compact and readable code, the sample test code uses C++11 vector initializer lists.
+  This new C++ feature is supported only in Visual Studio 2013 or later (on Windows), GCC 4.4 or later and Clang 3.1
+  or later. If you are using an older compiler, use the commented alternative code for the `start()` and
+  `trigger()` methods calls.
+  
+  \section windows Compiling on Windows
+  
+  The API was tested in Windows 7 (32-bit and 64-bit).
+  
+  To compile the library and the sample application:
+  - create a C++ Empty Project in Visual Studio;
+  - copy [bitalino.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.cpp),
+  [bitalino.h](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.h) and
+  [test.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/test.cpp) to the project directory;
+  - add bitalino.cpp and test.cpp files to the project at the “Source Files” folder;
+  - edit test.cpp as described \ref sampleapp "above";
+  - add a reference to `ws2_32.lib` in Project Properties → Configuration Properties → Linker → Input → Additional Dependencies;
+  - build the solution and run the application.
+  
+  \section linux Compiling on Linux
+
+  The API was tested in Ubuntu (32-bit and 64-bit) and Raspberry Pi (Raspbian).
+  
+  To compile the library and the sample application:
+  - `make` and `g++` must be installed;
+  - packages `bluez`, `libbluetooth3` and `libbluetooth-dev` must be installed if you want to
+    compile the library with Bluetooth functionality (to search for Bluetooth devices and
+    to make direct Bluetooth connections);
+  - copy [bitalino.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.cpp),
+  [bitalino.h](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.h),
+  [test.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/test.cpp) and
+  [Makefile](http://github.com/BITalinoWorld/cpp-api/tree/master/Makefile) into a new directory;
+  - if you want to compile the library without Bluetooth functionality, disable the line in
+    Makefile where `LINUX_BT` is defined;
+  - if your compiler doesn't support vector initializer lists, remove the flag `-std=c++0x`
+    from the test.cpp compiling rule in Makefile;
+  - edit test.cpp as described \ref sampleapp "above";
+  - enter command `make` in the command line to build the library and the application;
+  - enter command `./test` in the command line to run the application.
+  
+  \section macosx Compiling on Mac OS X
+  
+  The API was tested in Mac OS X 10.6 and 10.9.
+  
+  On Mac OS X, the %BITalino API Bluetooth functionality is not available, so it is only possible
+  to connect to a %BITalino device through a serial port for indirect Bluetooth connections or for wired UART connections.
+  
+  To compile the library and the sample application:
+  - copy [bitalino.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.cpp),
+  [bitalino.h](http://github.com/BITalinoWorld/cpp-api/tree/master/bitalino.h),
+  [test.cpp](http://github.com/BITalinoWorld/cpp-api/tree/master/test.cpp) and
+  [Makefile](http://github.com/BITalinoWorld/cpp-api/tree/master/Makefile) into a new directory;
+  - if your compiler doesn't support vector initializer lists, remove the flag `-std=c++0x` from
+    the test.cpp compiling rule in Makefile;
+  - edit test.cpp as described \ref sampleapp "above";
+  - enter command `make` in the command line to build the library and the application;
+  - enter command `./test` in the command line to run the application.  
+  */
+
+#ifndef _BITALINOHEADER_
+#define _BITALINOHEADER_
+
+#include <string>
+#include <vector>
+
+#ifdef _WIN32 // 32-bit or 64-bit Windows
+
+#include <winsock2.h>
+
+#endif
+
+/// The %BITalino device class.
+class BITalino
+{
+public:
+// Type definitions
+
+   typedef std::vector<bool>  Vbool;   ///< Vector of bools.
+   typedef std::vector<int>   Vint;    ///< Vector of ints.
+
+   /// Information about a Bluetooth device found by BITalino::find().
+   struct DevInfo
+   {
+      std::string macAddr; ///< MAC address of a Bluetooth device
+      std::string name;    ///< Name of a Bluetooth device
+   };
+   typedef std::vector<DevInfo> VDevInfo; ///< Vector of DevInfo's.
+
+   /// A frame returned by BITalino::read()
+   struct Frame
+   {
+      /// %Frame sequence number (0...15).
+      /// This number is incremented by 1 on each consecutive frame, and it overflows to 0 after 15 (it is a 4-bit number).
+      /// This number can be used to detect if frames were dropped while transmitting data.
+      char  seq;        
+
+      /// Array of digital ports states (false for low level or true for high level).
+      /// On original %BITalino, the array contents are: I1 I2 I3 I4.
+      /// On %BITalino 2, the array contents are: I1 I2 O1 O2.
+      bool  digital[4]; 
+
+      /// Array of analog inputs values (0...1023 on the first 4 channels and 0...63 on the remaining channels)
+      short analog[6];
+   };
+   typedef std::vector<Frame> VFrame;  ///< Vector of Frame's.
+
+   /// Current device state returned by BITalino::state()
+   struct State
+   {
+      int   analog[6],     ///< Array of analog inputs values (0...1023)
+            battery,       ///< Battery voltage value (0...1023)
+            batThreshold;  ///< Low-battery LED threshold (last value set with BITalino::battery())
+      /// Array of digital ports states (false for low level or true for high level).
+      /// The array contents are: I1 I2 O1 O2.
+      bool  digital[4];
+   };
+
+   /// %Exception class thrown from BITalino methods.
+   class Exception
+   {
+   public:
+      /// %Exception code enumeration.
+      enum Code
+      {
+         INVALID_ADDRESS = 1,       ///< The specified address is invalid
+         BT_ADAPTER_NOT_FOUND,      ///< No Bluetooth adapter was found
+         DEVICE_NOT_FOUND,          ///< The device could not be found
+         CONTACTING_DEVICE,         ///< The computer lost communication with the device
+         PORT_COULD_NOT_BE_OPENED,  ///< The communication port does not exist or it is already being used
+         PORT_INITIALIZATION,       ///< The communication port could not be initialized
+         DEVICE_NOT_IDLE,           ///< The device is not idle
+         DEVICE_NOT_IN_ACQUISITION, ///< The device is not in acquisition mode
+         INVALID_PARAMETER,         ///< Invalid parameter
+         NOT_SUPPORTED,             ///< Operation not supported by the device 
+      } code;  ///< %Exception code.
+
+      Exception(Code c) : code(c) {}      ///< Exception constructor.
+      const char* getDescription(void);   ///< Returns an exception description string
+   };
+
+// Static methods
+
+   /** Searches for Bluetooth devices in range.
+    * \return a list of found devices
+    * \exception Exception (Exception::PORT_INITIALIZATION)
+    * \exception Exception (Exception::BT_ADAPTER_NOT_FOUND)
+    */
+   static VDevInfo find(void);
+
+// Instance methods
+
+   /** Connects to a %BITalino device.
+    * \param[in] address The device Bluetooth MAC address ("xx:xx:xx:xx:xx:xx")
+    * or a serial port ("COMx" on Windows or "/dev/..." on Linux or Mac OS X)
+    * \exception Exception (Exception::PORT_COULD_NOT_BE_OPENED)
+    * \exception Exception (Exception::PORT_INITIALIZATION)
+    * \exception Exception (Exception::INVALID_ADDRESS)
+    * \exception Exception (Exception::BT_ADAPTER_NOT_FOUND) - Windows only
+    * \exception Exception (Exception::DEVICE_NOT_FOUND) - Windows only
+    */
+   BITalino(const char *address);
+   
+   /// Disconnects from a %BITalino device. If an aquisition is running, it is stopped. 
+   ~BITalino();
+
+   /** Returns the device firmware version string.
+    * \remarks This method cannot be called during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IDLE)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */
+   std::string version(void);
+   
+   /** Starts a signal acquisition from the device.
+    * \param[in] samplingRate Sampling rate in Hz. Accepted values are 1, 10, 100 or 1000 Hz. Default value is 1000 Hz.
+    * \param[in] channels Set of channels to acquire. Accepted channels are 0...5 for inputs A1...A6.
+    * If this set is empty or if it is not given, all 6 analog channels will be acquired.
+    * \param[in] simulated If true, start in simulated mode. Otherwise start in live mode. Default is to start in live mode.
+    * \remarks This method cannot be called during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IDLE)
+    * \exception Exception (Exception::INVALID_PARAMETER)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */
+   void start(int samplingRate = 1000, const Vint &channels = Vint(), bool simulated = false);
+   
+   /** Stops a signal acquisition.
+    * \remarks This method must be called only during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IN_ACQUISITION)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */
+   void stop(void);
+   
+   /** Reads acquisition frames from the device.
+    * This method returns when all requested frames are received from the device, or when 5-second receive timeout occurs.
+    * \param[out] frames Vector of frames to be filled. If the vector is empty, it is resized to 100 frames.
+    * \return Number of frames returned in frames vector. If a timeout occurred, this number is less than the frames vector size.
+    * \remarks This method must be called only during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IN_ACQUISITION)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */   
+   int read(VFrame &frames);
+   
+   /** Sets the battery voltage threshold for the low-battery LED.
+    * \param[in] value Battery voltage threshold. Default value is 0.
+    * Value | Voltage Threshold
+    * ----- | -----------------
+    *     0 |   3.4 V
+    *  ...  |   ...
+    *    63 |   3.8 V
+    * \remarks This method cannot be called during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IDLE)
+    * \exception Exception (Exception::INVALID_PARAMETER)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */
+   void battery(int value = 0);
+   
+   /** Assigns the digital outputs states.
+    * \param[in] digitalOutput Vector of booleans to assign to digital outputs, starting at first output (O1).
+    * On each vector element, false sets the output to low level and true sets the output to high level.
+    * If this vector is not empty, it must contain exactly 4 elements for original %BITalino (4 digital outputs)
+    * or exactly 2 elements for %BITalino 2 (2 digital outputs).
+    * If this parameter is not given or if the vector is empty, all digital outputs are set to low level.
+    * \remarks This method must be called only during an acquisition on original %BITalino. On %BITalino 2 there is no restriction.
+    * \exception Exception (Exception::DEVICE_NOT_IN_ACQUISITION)
+    * \exception Exception (Exception::INVALID_PARAMETER)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    */
+   void trigger(const Vbool &digitalOutput = Vbool());
+
+   /** Assigns the analog (PWM) output value (%BITalino 2 only).
+    * \param[in] pwmOutput Analog output value to set (0...255).
+    * The analog output voltage is given by: V (in Volts) = 3.3 * (pwmOutput+1)/256
+    * \exception Exception (Exception::INVALID_PARAMETER)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    * \exception Exception (Exception::NOT_SUPPORTED)
+    */
+   void pwm(int pwmOutput = 100);
+
+   /** Returns current device state (%BITalino 2 only).
+    * \remarks This method cannot be called during an acquisition.
+    * \exception Exception (Exception::DEVICE_NOT_IDLE)
+    * \exception Exception (Exception::CONTACTING_DEVICE)
+    * \exception Exception (Exception::NOT_SUPPORTED)
+    */
+   State state(void);
+
+private:
+   void send(char cmd);
+   int  recv(void *data, int nbyttoread);
+   void close(void);
+
+   char nChannels;
+   bool isBitalino2;
+#ifdef _WIN32
+   SOCKET	fd;
+   timeval  readtimeout;
+   HANDLE   hCom;
+#else // Linux or Mac OS
+   int      fd;
+   bool     isTTY;
+#endif
+};
+
+#endif // _BITALINOHEADER_
diff --git a/examples/ofx/Bitalino_rapidmix/src/main.cpp b/examples/ofx/Bitalino_rapidmix/src/main.cpp
new file mode 100644
index 0000000..e57370b
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/main.cpp
@@ -0,0 +1,13 @@
+#include "ofMain.h"
+#include "ofApp.h"
+
+//========================================================================
+int main( ){
+	ofSetupOpenGL(1024,768,OF_WINDOW);			// <-------- setup the GL context
+
+	// this kicks off the running of my app
+	// can be OF_WINDOW or OF_FULLSCREEN
+	// pass in width and height too:
+	ofRunApp(new ofApp());
+
+}
diff --git a/examples/ofx/Bitalino_rapidmix/src/ofApp.cpp b/examples/ofx/Bitalino_rapidmix/src/ofApp.cpp
new file mode 100644
index 0000000..b156ff1
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/ofApp.cpp
@@ -0,0 +1,111 @@
+#include "ofApp.h"
+
+//--------------------------------------------------------------
+void ofApp::setup(){
+    rapidBitalino.setup();
+}
+
+//--------------------------------------------------------------
+void ofApp::update(){
+    rapidBitalino.update();
+    /*
+    static bool connection = false;
+    bool connectionStatus = BT.isConnected();
+    if (connection != connectionStatus)
+    {
+        connection = connectionStatus;
+        if (connection)
+        {
+            printf("Connected after %u attempt(s)\n", BT.getConnectionTries());
+        }
+    }
+    
+    uint32_t items = BT.data.items_available_for_read();
+    BITalino::Frame tFrame;
+    for (uint32_t i = 0; i < items; ++i)
+    {
+        BT.data.pop(&tFrame, 1);
+        printf("%d \t : %d %d %d %d ; %d %d %d %d %d %d\n",   // dump the first frame
+               tFrame.seq,
+               tFrame.digital[0], tFrame.digital[1], tFrame.digital[2], tFrame.digital[3],
+               tFrame.analog[0], tFrame.analog[1], tFrame.analog[2], tFrame.analog[3], tFrame.analog[4], tFrame.analog[5]);
+    }
+     */
+}
+
+//--------------------------------------------------------------
+void ofApp::draw(){
+    rapidBitalino.draw();
+}
+
+//--------------------------------------------------------------
+void ofApp::exit(){
+    printf("stopping...\n");
+    rapidBitalino.stop();
+}
+
+//--------------------------------------------------------------
+void ofApp::keyPressed(int key){
+    static uint32_t numTrainingData = 20;
+    if (key == 'c') {
+        rapidBitalino.clearTrainingData();
+    } else if (key == '1') {
+        rapidBitalino.recordTrainingData(numTrainingData, 1.0);
+    } else if (key == '2') {
+        rapidBitalino.recordTrainingData(numTrainingData, 2.0);
+    } else if (key == '3') {
+        rapidBitalino.recordTrainingData(numTrainingData, 3.0);
+    } else if (key == '4') {
+        rapidBitalino.recordTrainingData(numTrainingData, 4.0);
+    }
+}
+
+//--------------------------------------------------------------
+void ofApp::keyReleased(int key){
+    
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseMoved(int x, int y ){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseDragged(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mousePressed(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseReleased(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseEntered(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseExited(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::dragEvent(ofDragInfo dragInfo){ 
+
+}
diff --git a/examples/ofx/Bitalino_rapidmix/src/ofApp.h b/examples/ofx/Bitalino_rapidmix/src/ofApp.h
new file mode 100644
index 0000000..2cf79a8
--- /dev/null
+++ b/examples/ofx/Bitalino_rapidmix/src/ofApp.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "ofMain.h"
+#include "RapidBitalino.h"
+
+class ofApp : public ofBaseApp{
+
+public:
+    void setup();
+    void update();
+    void draw();
+    void exit();
+
+    void keyPressed(int key);
+    void keyReleased(int key);
+    void mouseMoved(int x, int y );
+    void mouseDragged(int x, int y, int button);
+    void mousePressed(int x, int y, int button);
+    void mouseReleased(int x, int y, int button);
+    void mouseEntered(int x, int y);
+    void mouseExited(int x, int y);
+    void windowResized(int w, int h);
+    void dragEvent(ofDragInfo dragInfo);
+    void gotMessage(ofMessage msg);
+		
+private:
+    
+    RapidBitalino rapidBitalino;
+};
-- 
GitLab