Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2013
- 6 participants
- 109 discussions

olena: olena-2.0-598-g7bc3af9 Add DoG Space + Keypoints detection and edge responses elimination
by Anthony Seure 25 Jul '13
by Anthony Seure 25 Jul '13
25 Jul '13
---
milena/sandbox/anthony/Makefile | 6 +-
milena/sandbox/anthony/new-implem/src/dog-space.hh | 233 ++++++++++++++
milena/sandbox/anthony/new-implem/src/keypoint.hh | 48 +++
milena/sandbox/anthony/new-implem/src/main.cc | 59 ++--
.../sandbox/anthony/new-implem/src/scale-space.hh | 24 +-
milena/sandbox/anthony/new-implem/src/vrac.hh | 323 ++++++++++++++++++++
milena/sandbox/anthony/new-implem/src/vrac/vrac.hh | 296 ------------------
milena/sandbox/anthony/src/main.cc | 94 ++++--
milena/sandbox/anthony/test-opencv/Makefile | 19 --
milena/sandbox/anthony/test-opencv/keith.pbm | Bin 262159 -> 0 bytes
milena/sandbox/anthony/test-opencv/main.cpp | 66 ----
milena/sandbox/anthony/test-opencv/tongue.pbm | 29 --
12 files changed, 718 insertions(+), 479 deletions(-)
create mode 100644 milena/sandbox/anthony/new-implem/src/dog-space.hh
create mode 100644 milena/sandbox/anthony/new-implem/src/keypoint.hh
create mode 100644 milena/sandbox/anthony/new-implem/src/vrac.hh
delete mode 100644 milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
delete mode 100644 milena/sandbox/anthony/test-opencv/Makefile
delete mode 100644 milena/sandbox/anthony/test-opencv/keith.pbm
delete mode 100644 milena/sandbox/anthony/test-opencv/main.cpp
delete mode 100644 milena/sandbox/anthony/test-opencv/tongue.pbm
diff --git a/milena/sandbox/anthony/Makefile b/milena/sandbox/anthony/Makefile
index 2953013..43d90fd 100644
--- a/milena/sandbox/anthony/Makefile
+++ b/milena/sandbox/anthony/Makefile
@@ -1,8 +1,8 @@
-CCACHE=ccache
+CCACHE=
CC=g++
-CFLAGS=-Wall -Werror
+CFLAGS=-Wall -Wextra
CLIBS=-I../../
-CLEAN=*.o output/* log
+CLEAN=*.o output/* log debug_*
SRC=src/main.cc src/matrix.cc src/keypoint.cc
OUTPUT=a.out
diff --git a/milena/sandbox/anthony/new-implem/src/dog-space.hh b/milena/sandbox/anthony/new-implem/src/dog-space.hh
new file mode 100644
index 0000000..a93b52a
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/dog-space.hh
@@ -0,0 +1,233 @@
+#ifndef DOG_SPACE_HH
+# define DOG_SPACE_HH
+
+# include <string>
+# include <vector>
+# include <list>
+
+#include <mln/core/image/image2d.hh>
+#include <mln/data/all.hh>
+#include <mln/io/pgm/all.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/literal/all.hh>
+#include <mln/value/int_s16.hh>
+
+#include "scale-space.hh"
+#include "keypoint.hh"
+
+using namespace mln;
+
+template<typename I, typename S>
+class DoGSpace : protected ScaleSpace<S>
+{
+ public:
+ DoGSpace(ScaleSpace<I>* _ss)
+ {
+ ss = _ss;
+ }
+
+ ~DoGSpace()
+ {
+ ScaleSpace<S>::~ScaleSpace();
+ }
+
+ void build(void)
+ {
+ ScaleSpace<S>::o = ss->octave_count();
+ ScaleSpace<S>::g = ss->gradient_count() - 1;
+
+ typedef typename std::vector< std::vector<I> >::iterator PIT;
+ typedef typename std::vector<I>::iterator IIT;
+
+ std::vector< std::vector<I> > sspyramid = ss->getPyramid();
+ S dog;
+
+ for (PIT pit = sspyramid.begin(); pit != sspyramid.end(); ++pit)
+ {
+ std::vector<S> octave;
+ for (IIT iit = pit->begin(); (iit + 1) != pit->end(); ++iit)
+ {
+ initialize(dog, *iit);
+ mln_piter(I) p(iit->domain());
+
+ for_all(p)
+ {
+ value::int_s16 up = (value::int_s16) (*iit)(p);
+ value::int_s16 down = (value::int_s16) (*(iit+1))(p);
+ value::int_s16 diff = down - up;
+ //value::int_s16 diff = ( (int) (*iit)(p) ) - ( (int) ((*(iit+1))(p)) );
+
+ //std::cout << up << " - " << down << " = " << diff << std::endl;
+
+ dog(p) = diff;
+ }
+ octave.push_back(dog);
+ }
+ ScaleSpace<S>::pyramid.push_back(octave);
+ }
+ }
+
+ void findKeypoints(std::list<Keypoint>& keypoints)
+ {
+ typedef typename std::vector< std::vector<S> >::iterator PIT;
+ typedef typename std::vector<S>::iterator IIT;
+
+ unsigned octave = 0;
+ for (PIT pit = ScaleSpace<S>::pyramid.begin(); pit != ScaleSpace<S>::pyramid.end(); ++pit)
+ {
+ unsigned gradient = 1;
+ for (IIT iit = pit->begin() + 1; (iit + 1) != pit->end(); ++iit)
+ {
+ S upper = *(iit-1);
+ S current = *iit;
+ S lower = *(iit+1);
+
+ mln_piter(I) p(current.domain());
+
+ for_all(p)
+ {
+ value::int_s16 center = current(p);
+ value::int_s16 min = 255;
+ value::int_s16 max = -256;
+ mln_niter(neighb2d) n(c8(), p);
+
+ int extrema = isExtrema(current, center, n);
+
+ if (extrema == -1) // Is a minimum
+ {
+ findMin(min, lower, upper, p, n);
+ if (center < min)
+ keypoints.push_back(Keypoint(p.col(), p.row(), octave, gradient, false));
+ }
+ else if (extrema == 1) // Is a maximum
+ {
+ findMax(max, lower, upper, p, n);
+ if (center > max)
+ keypoints.push_back(Keypoint(p.col(), p.row(), octave, gradient, true));
+ }
+ }
+
+ ++gradient;
+ }
+
+ ++octave;
+ }
+ }
+
+ void discardLowContrastKeypoints(std::list<Keypoint>& keypoints)
+ {
+ keypoints = keypoints;
+ }
+
+ void eliminateEdgeResponses(std::list<Keypoint>& keypoints)
+ {
+ const static float bound_ratio = 12.1;
+
+ for (std::list<Keypoint>::iterator k = keypoints.begin();
+ k != keypoints.end(); ++k)
+ {
+ unsigned octave = k->getOctave();
+ unsigned gradient = k->getGradient();
+ S dog = ScaleSpace<S>::pyramid[octave][gradient];
+ unsigned col = k->getX();
+ unsigned row = k->getY();
+
+ /* Set the neighbors:
+ * n5 n1 n6
+ * n2 p n3
+ * n7 n4 n8
+ */
+ float p = dog(mln_psite(S)(row, col));
+
+ float n1 = dog(mln_psite(S)(row - 1, col));
+ float n2 = dog(mln_psite(S)(row, col - 1));
+ float n3 = dog(mln_psite(S)(row, col + 1));
+ float n4 = dog(mln_psite(S)(row + 1, col));
+
+ float n5 = dog(mln_psite(S)(row - 1, col - 1));
+ float n6 = dog(mln_psite(S)(row - 1, col + 1));
+ float n7 = dog(mln_psite(S)(row + 1, col - 1));
+ float n8 = dog(mln_psite(S)(row + 1, col + 1));
+
+ // Set Hessian matrix and find the ratio
+
+ float dxx = n3 - 2.0 * p + n2;
+ float dyy = n4 - 2.0 * p + n1;
+ float dxy = (n8 - n6 - n7 + n5) / 4.0;
+
+ float trace = dxx + dyy;
+ float determinant = dxx * dyy - dxy * dxy;
+ float ratio = (trace * trace) / determinant;
+
+ if (determinant <= 0 || ratio >= bound_ratio)
+ keypoints.erase(k);
+ }
+ }
+
+ virtual void save()
+ {
+ //std::stringstream name;
+
+ //for (unsigned i = 0; i < ScaleSpace<S>::pyramid.size(); ++i)
+ //{
+ //for (unsigned j = 0; j < ScaleSpace<S>::pyramid[i].size(); ++j)
+ //{
+ //name << "output/dogs-o" << i << "-" << j << ".pgm";
+ //io::pgm::save(ScaleSpace<I>::pyramid[i][j], name.str());
+ //name.str("");
+ //}
+ //}
+ }
+
+ private:
+ ScaleSpace<I>* ss;
+
+ int isExtrema(S& current, value::int_s16& center,
+ typename neighb2d::fwd_niter n)
+ {
+ bool min = true;
+ bool max = true;
+
+ for_all(n)
+ {
+ min = (min && center < current(n));
+ max = (max && center > current(n));
+ }
+
+ if (min)
+ return -1;
+ else if (max)
+ return 1;
+ else
+ return 0;
+ }
+
+ void findMin(value::int_s16& min, S& lower, S& upper,
+ typename S::piter& p, typename neighb2d::fwd_niter& n)
+ {
+ min = (lower(p) < min) ? lower(p) : min;
+ min = (upper(p) < min) ? upper(p) : min;
+
+ for_all(n)
+ {
+ min = (lower(n) < min) ? lower(n) : min;
+ min = (upper(n) < min) ? upper(n) : min;
+ }
+ }
+
+ void findMax(value::int_s16& max, S& lower, S& upper,
+ typename S::piter& p, typename neighb2d::fwd_niter& n)
+ {
+ max = (lower(p) > max) ? lower(p) : max;
+ max = (upper(p) > max) ? upper(p) : max;
+
+ for_all(n)
+ {
+ max = (lower(n) > max) ? lower(n) : max;
+ max = (upper(n) > max) ? upper(n) : max;
+ }
+ }
+};
+
+#endif /* ! DOG_SPACE_HH */
diff --git a/milena/sandbox/anthony/new-implem/src/keypoint.hh b/milena/sandbox/anthony/new-implem/src/keypoint.hh
new file mode 100644
index 0000000..b6b2415
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/keypoint.hh
@@ -0,0 +1,48 @@
+#ifndef KEYPOINT_HH
+# define KEYPOINT_HH
+
+# include <ostream>
+
+class Keypoint
+{
+ public:
+ Keypoint(int _x, int _y,
+ unsigned _octave, unsigned _gradient,
+ bool _maximum)
+ {
+ x = _x;
+ y = _y;
+ octave = _octave;
+ gradient = _gradient;
+ maximum = _maximum;
+ }
+
+ inline int getX() const { return x; }
+ inline int getY() const { return y; }
+ inline unsigned getOctave() const { return octave; }
+ inline unsigned getGradient() const { return gradient; }
+ inline bool getType() const { return maximum; }
+ inline float getOrientation() const { return orientation; }
+
+ inline void setX(int _x) { x = _x; }
+ inline void setY(int _y) { y = _y; }
+ inline void setOrientation(float _o) { orientation = _o; }
+
+ friend std::ostream& operator<< (std::ostream& stream, const Keypoint& k)
+ {
+ stream << "(" << k.getX() << "," << k.getY() << ")"
+ << " o:" << k.getOctave() << " g:" << k.getGradient();
+
+ return stream;
+ }
+
+ private:
+ int x;
+ int y;
+ unsigned octave;
+ unsigned gradient;
+ bool maximum;
+ float orientation;
+};
+
+#endif /* ! KEYPOINT_HH */
diff --git a/milena/sandbox/anthony/new-implem/src/main.cc b/milena/sandbox/anthony/new-implem/src/main.cc
index 45a36ad..afbb476 100644
--- a/milena/sandbox/anthony/new-implem/src/main.cc
+++ b/milena/sandbox/anthony/new-implem/src/main.cc
@@ -4,60 +4,69 @@
#include <mln/io/ppm/save.hh>
#include <mln/core/alias/neighb2d.hh>
#include <mln/literal/all.hh>
-#include <mln/value/int_s8.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/int_s16.hh>
//#include <cmath>
#include <string>
+#include <list>
#include "scale-space.hh"
-//#include "dog-space.hh"
-//#include "keypoint.hh"
+#include "dog-space.hh"
+#include "keypoint.hh"
//#include "matrix.hh"
int main(void)
{
typedef image2d<value::int_u8> I;
+ typedef image2d<value::int_s16> S;
typedef image2d<value::rgb8> C;
// General parameters
std::string source("images/keith.pbm");
const unsigned blur_level = 5;
- const unsigned octave_level = 3;
- const bool black = false;
+ const unsigned octave_level = 4;
ScaleSpace<I> *ss = new ScaleSpace<I>(octave_level, blur_level);
- //DoGSpace<C>* dog = new DogSpace();
- //std::vector<Keypoint>* keypoints = new std::vector<Keypoint>();
+ DoGSpace<I, S>* dogs = new DoGSpace<I, S>(ss);
+ std::list<Keypoint> keypoints;
I original;
- C extrema, improved;
+ C extrema, extrema_b,
+ extrema2, extrema2_b;
+ //improved, improved_b;
io::pgm::load(original, source.c_str());
- if (black)
- {
- initialize(extrema, original);
- initialize(improved, original);
- }
- else
- {
- extrema = data::convert(value::rgb8(), original);
- improved = data::convert(value::rgb8(), original);
- }
+ initialize(extrema_b, original);
+ initialize(extrema2_b, original);
+ //initialize(improved_b, original);
+
+ extrema = data::convert(value::rgb8(), original);
+ extrema2 = data::convert(value::rgb8(), original);
+ //improved = data::convert(value::rgb8(), original);
// Localization
ss->build(original);
- ss->save();
- //buildDifferenceOfGaussianSpace(scaleSpace, dogSpace);
- //buildExtrema(extrema, dogSpace, keypoints);
- //discardLowContrastKeypoints(dogSpace, keypoints, improved);
+ //ss->save();
+ dogs->build();
+ //dogs->save();
+ dogs->findKeypoints(keypoints);
+
+ writeKeypoints(keypoints, extrema, extrema_b);
+
+ dogs->discardLowContrastKeypoints(keypoints);
+ dogs->eliminateEdgeResponses(keypoints);
- // Processing
- // TODO
+ writeKeypoints(keypoints, extrema2, extrema2_b);
// Save
io::ppm::save(extrema, "output/extrema.ppm");
- io::ppm::save(improved, "output/extrema_improved.ppm");
+ io::ppm::save(extrema_b, "output/extrema_b.ppm");
+ io::ppm::save(extrema2, "output/extrema2.ppm");
+ io::ppm::save(extrema2_b, "output/extrema2_b.ppm");
+ //io::ppm::save(improved, "output/extrema_improved.ppm");
+ //io::ppm::save(improved_b, "output/extrema_b_improved.ppm");
return 0;
}
diff --git a/milena/sandbox/anthony/new-implem/src/scale-space.hh b/milena/sandbox/anthony/new-implem/src/scale-space.hh
index 2fbb4fd..e2262b6 100644
--- a/milena/sandbox/anthony/new-implem/src/scale-space.hh
+++ b/milena/sandbox/anthony/new-implem/src/scale-space.hh
@@ -10,9 +10,10 @@
#include <mln/io/ppm/save.hh>
#include <mln/core/alias/neighb2d.hh>
#include <mln/literal/all.hh>
-#include <mln/value/int_s8.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/int_s16.hh>
-#include "vrac/vrac.hh"
+#include "vrac.hh"
using namespace mln;
@@ -41,23 +42,22 @@ class ScaleSpace
return pyramid[i];
}
-
void build(const I& original)
{
// Upscaled octave
- I upscaled = vrac::upscaling2(original);
+ I upscaled = upscaling2(original);
addOctave(upscaled);
// 1st octave
addOctave(original);
// 2nd octave
- I downscaled = vrac::downscaling2(original);
+ I downscaled = downscaling2(original);
addOctave(downscaled);
for (unsigned i = 3; i < o; ++i)
{
- downscaled = vrac::downscaling2(downscaled);
+ downscaled = downscaling2(downscaled);
addOctave(downscaled);
}
}
@@ -79,22 +79,26 @@ class ScaleSpace
inline unsigned octave_count() { return pyramid.size(); }
inline unsigned gradient_count() { return pyramid[0].size(); }
+ const std::vector< std::vector<I> >& getPyramid() { return pyramid; }
- private:
+ protected:
unsigned o;
unsigned g;
std::vector< std::vector<I> > pyramid;
+ ScaleSpace()
+ {
+ }
+
void addOctave(const I& original)
{
I blured;
std::vector<I> octave;
- //float variance = sqrt(2);
- float variance = 0.84089642;
+ float variance = sqrt(2);
for (unsigned i = 0; i < g; ++i)
{
- blured = vrac::blur(original, variance);
+ blured = blur(original, variance);
variance *= sqrt(2);
octave.push_back(blured);
}
diff --git a/milena/sandbox/anthony/new-implem/src/vrac.hh b/milena/sandbox/anthony/new-implem/src/vrac.hh
new file mode 100644
index 0000000..7a0c8a5
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/vrac.hh
@@ -0,0 +1,323 @@
+#ifndef VRAC_HH
+# define VRAC_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/data/all.hh>
+# include <mln/io/pgm/all.hh>
+# include <mln/io/ppm/save.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/literal/all.hh>
+# include <mln/value/int_s8.hh>
+
+# include <cmath>
+# include <list>
+
+# include "matrix.hh"
+# include "keypoint.hh"
+
+//# include "keypoint.hh"
+//# include "matrix.hh"
+
+using namespace mln;
+
+// Set the gaussian kernel
+float *gaussian_kernel(float variance)
+{
+ unsigned index = 0;
+ float *kernel = new float[49];
+ Matrix matrix(7, 7);
+ float sum = 0;
+
+ for (int i = -3; i < 4; ++i)
+ {
+ for (int j = -3; j < 4; ++j)
+ {
+ kernel[index] = exp(- (i*i + j*j) / (2.0 * variance * variance) );
+ sum += kernel[index++];
+ }
+ }
+
+ sum = 1. / sum;
+
+ for (int i = 0; i < 49; ++i)
+ kernel[i] *= sum;
+
+ return kernel;
+}
+
+// Apply the convolution of the image by the kernel
+template<typename I>
+void convolve(const I& original, I& filtered, float *kernel)
+{
+ mln_piter(I) p(filtered.domain());
+ window2d win;
+
+ for (int i = -3; i < 4; ++i)
+ for (int j = -3; j < 4; ++j)
+ win.insert(i, j);
+
+ // Iterate through all image sites
+ for_all(p)
+ {
+ // Create the window around the site
+ mln_qiter(window2d) q(win, p);
+ float sum = 0;
+ int index = 0;
+
+ // Iterate through all window image sites
+ for_all(q)
+ {
+ if (filtered.has(q))
+ sum += original(q) * kernel[index++];
+ else
+ sum += 127 * kernel[index++];
+ }
+
+ filtered(p) = static_cast<int>(sum);
+ }
+}
+
+// Blur the image thanks to a convolution matrix
+template<typename I>
+I blur(const I& original, float variance)
+{
+ I filtered;
+ float *kernel = gaussian_kernel(variance);
+
+ initialize(filtered, original);
+ convolve(original, filtered, kernel);
+
+ return filtered;
+}
+
+float *upscalingTL_kernel()
+{
+ const static float one = 1.0 / 8.0;
+ const static float two = 2.0 / 8.0;
+ const static float three = 2.0 / 8.0;
+ const static float four = 3.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+}
+
+float *upscalingTR_kernel()
+{
+ const static float one = 2.0 / 8.0;
+ const static float two = 1.0 / 8.0;
+ const static float three = 3.0 / 8.0;
+ const static float four = 2.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+}
+
+float *upscalingBL_kernel()
+{
+ const static float one = 2.0 / 8.0;
+ const static float two = 3.0 / 8.0;
+ const static float three = 1.0 / 8.0;
+ const static float four = 2.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+}
+
+float *upscalingBR_kernel()
+{
+ const static float one = 3.0 / 8.0;
+ const static float two = 2.0 / 8.0;
+ const static float three = 2.0 / 8.0;
+ const static float four = 1.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+}
+
+template<typename I>
+unsigned upscalePixel(const I& original, int i, int j, int type)
+{
+ float *kernel;
+ window2d win;
+ mln_psite(I) p(i, j);
+ float value = 0;
+ unsigned index = 0;
+ int iStart = 0;
+ int jStart = 0;
+
+ if (type == 0)
+ {
+ kernel = upscalingTL_kernel();
+ iStart = -1;
+ jStart = -1;
+ }
+ else if (type == 1)
+ {
+ kernel = upscalingTR_kernel();
+ iStart = 0;
+ jStart = -1;
+ }
+ else if (type == 2)
+ {
+ kernel = upscalingBL_kernel();
+ iStart = -1;
+ jStart = 0;
+ }
+ else
+ {
+ kernel = upscalingBR_kernel();
+ iStart = 0;
+ jStart = 0;
+ }
+
+ for (int ii = iStart; ii < iStart + 2; ++ii)
+ for (int jj = jStart; jj < jStart + 2; ++jj)
+ win.insert(ii, jj);
+
+ mln_qiter(window2d) q(win, p);
+
+ for_all(q)
+ {
+ if (original.has(q))
+ {
+ value += original(q) * kernel[index];
+ }
+
+ ++index;
+ }
+
+ return (static_cast<int>(value));
+}
+// Downscale by 2 the image resolution
+template<typename I>
+I downscaling2(const I& original)
+{
+ mln_piter(I) p(original.domain());
+ window2d win;
+ int index = 0;
+
+ // Initialize the rescaled image
+ box2d size(original.nrows() / 2, original.ncols() / 2);
+ I reduced(size);
+
+ // Set the 2x2 window matrix
+ for (int i = 0; i < 2; ++i)
+ for (int j = 0; j < 2; ++j)
+ win.insert(i, j);
+
+ // Iterate through all image sites
+ for_all(p)
+ {
+ // Get 1/4 of total pixels
+ if (index % 2 == 0)
+ {
+ int i = (index % original.ncols()) / 2;
+ int j = (index / original.ncols()) / 2;
+ int count = 0;
+ int sum = 0;
+ mln_qiter(window2d) q(win, p);
+
+ // Iterate through all window image sites
+ for_all(q)
+ {
+ if (original.has(q))
+ {
+ sum += original(q);
+ ++count;
+ }
+ }
+
+ if (reduced.has(point2d(j, i)))
+ opt::at(reduced, j, i) = sum / count;
+ }
+
+ ++index;
+ }
+
+ return reduced;
+}
+
+// Upscale by 2 the image resolution
+template<typename I>
+I upscaling2(const I& original)
+{
+ box2d size(original.nrows() * 2, original.ncols() * 2);
+ I upscaled(size);
+
+ mln_piter(I) p(upscaled.domain());
+ int index = 0;
+
+ for_all(p)
+ {
+ int i = p.col();
+ int j = p.row();
+
+ if (i % 2 == 0 && j % 2 == 0) // Top left
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 0);
+ else if (i % 2 == 0) // Bottom left
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 2);
+ else if (j % 2 == 0) // Top right
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 1);
+ else // Bottom right
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 3);
+
+ ++index;
+ }
+
+ return upscaled;
+}
+
+
+template<typename C>
+void writeKeypoints(std::list<Keypoint> keypoints, C& black, C& copy)
+{
+ for (std::list<Keypoint>::iterator it = keypoints.begin(); it != keypoints.end(); ++it)
+ {
+ unsigned o = it->getOctave();
+
+ if (o == 0)
+ {
+ mln_psite(C) p(it->getY() / 2, it->getX() / 2);
+ copy(p) = literal::red;
+ black(p) = literal::red;
+ }
+ else if (o == 1)
+ {
+ mln_psite(C) p(it->getY(), it->getX());
+ copy(p) = literal::red;
+ black(p) = literal::red;
+ }
+ else
+ {
+ mln_psite(C) p(it->getY() * pow(2, o-1) - (o-1), it->getX() * pow(2, o-1) - (o-1));
+ copy(p) = literal::red;
+ black(p) = literal::red;
+ }
+ }
+}
+
+#endif /* ! VRAC_HH */
diff --git a/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh b/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
deleted file mode 100644
index fc9e3f2..0000000
--- a/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
+++ /dev/null
@@ -1,296 +0,0 @@
-#ifndef VRAC_HH
-# define VRAC_HH
-
-# include <mln/core/image/image2d.hh>
-# include <mln/data/all.hh>
-# include <mln/io/pgm/all.hh>
-# include <mln/io/ppm/save.hh>
-# include <mln/core/alias/neighb2d.hh>
-# include <mln/literal/all.hh>
-# include <mln/value/int_s8.hh>
-
-# include <cmath>
-
-# include "../matrix.hh"
-
-//# include "keypoint.hh"
-//# include "matrix.hh"
-
-using namespace mln;
-
-namespace vrac
-{
- // Set the gaussian kernel
- float *gaussian_kernel(float variance)
- {
- unsigned index = 0;
- float *kernel = new float[49];
- Matrix matrix(7, 7);
- float sum = 0;
-
- for (int i = -3; i < 4; ++i)
- {
- for (int j = -3; j < 4; ++j)
- {
- kernel[index] = exp(- (i*i + j*j) / (2.0 * variance * variance) );
- sum += kernel[index++];
- }
- }
-
- sum = 1. / sum;
-
- for (int i = 0; i < 49; ++i)
- kernel[i] *= sum;
-
- return kernel;
- }
-
- // Apply the convolution of the image by the kernel
- template<typename I>
- void convolve(const I& original, I& filtered, float *kernel)
- {
- mln_piter(I) p(filtered.domain());
- window2d win;
-
- for (int i = -3; i < 4; ++i)
- for (int j = -3; j < 4; ++j)
- win.insert(i, j);
-
- // Iterate through all image sites
- for_all(p)
- {
- // Create the window around the site
- mln_qiter(window2d) q(win, p);
- float sum = 0;
- int index = 0;
-
- // Iterate through all window image sites
- for_all(q)
- {
- if (filtered.has(q))
- sum += original(q) * kernel[index++];
- else
- sum += 127 * kernel[index++];
- }
-
- filtered(p) = static_cast<int>(sum);
- }
- }
-
- // Blur the image thanks to a convolution matrix
- template<typename I>
- I blur(const I& original, float variance)
- {
- std::cout << "variance: " << variance << std::endl;
- I filtered;
- float *kernel = gaussian_kernel(variance);
-
- initialize(filtered, original);
- convolve(original, filtered, kernel);
-
- return filtered;
- }
-
- float *upscalingTL_kernel()
- {
- const static float one = 1.0 / 8.0;
- const static float two = 2.0 / 8.0;
- const static float three = 2.0 / 8.0;
- const static float four = 3.0 / 8.0;
-
- float *kernel = new float[4];
-
- kernel[0] = one;
- kernel[1] = two;
- kernel[2] = three;
- kernel[3] = four;
-
- return kernel;
- }
-
- float *upscalingTR_kernel()
- {
- const static float one = 2.0 / 8.0;
- const static float two = 1.0 / 8.0;
- const static float three = 3.0 / 8.0;
- const static float four = 2.0 / 8.0;
-
- float *kernel = new float[4];
-
- kernel[0] = one;
- kernel[1] = two;
- kernel[2] = three;
- kernel[3] = four;
-
- return kernel;
- }
-
- float *upscalingBL_kernel()
- {
- const static float one = 2.0 / 8.0;
- const static float two = 3.0 / 8.0;
- const static float three = 1.0 / 8.0;
- const static float four = 2.0 / 8.0;
-
- float *kernel = new float[4];
-
- kernel[0] = one;
- kernel[1] = two;
- kernel[2] = three;
- kernel[3] = four;
-
- return kernel;
- }
-
- float *upscalingBR_kernel()
- {
- const static float one = 3.0 / 8.0;
- const static float two = 2.0 / 8.0;
- const static float three = 2.0 / 8.0;
- const static float four = 1.0 / 8.0;
-
- float *kernel = new float[4];
-
- kernel[0] = one;
- kernel[1] = two;
- kernel[2] = three;
- kernel[3] = four;
-
- return kernel;
- }
-
- template<typename I>
- unsigned upscalePixel(const I& original, int i, int j, int type)
- {
- float *kernel;
- window2d win;
- mln_psite(I) p(i, j);
- float value = 0;
- unsigned index = 0;
- int iStart = 0;
- int jStart = 0;
-
- if (type == 0)
- {
- kernel = upscalingTL_kernel();
- iStart = -1;
- jStart = -1;
- }
- else if (type == 1)
- {
- kernel = upscalingTR_kernel();
- iStart = 0;
- jStart = -1;
- }
- else if (type == 2)
- {
- kernel = upscalingBL_kernel();
- iStart = -1;
- jStart = 0;
- }
- else
- {
- kernel = upscalingBR_kernel();
- iStart = 0;
- jStart = 0;
- }
-
- for (int ii = iStart; ii < iStart + 2; ++ii)
- for (int jj = jStart; jj < jStart + 2; ++jj)
- win.insert(ii, jj);
-
- mln_qiter(window2d) q(win, p);
-
- for_all(q)
- {
- if (original.has(q))
- {
- value += original(q) * kernel[index];
- }
-
- ++index;
- }
-
- return (static_cast<int>(value));
- }
- // Downscale by 2 the image resolution
- template<typename I>
- I downscaling2(const I& original)
- {
- mln_piter(I) p(original.domain());
- window2d win;
- int index = 0;
-
- // Initialize the rescaled image
- box2d size(original.nrows() / 2, original.ncols() / 2);
- I reduced(size);
-
- // Set the 2x2 window matrix
- for (int i = 0; i < 2; ++i)
- for (int j = 0; j < 2; ++j)
- win.insert(i, j);
-
- // Iterate through all image sites
- for_all(p)
- {
- // Get 1/4 of total pixels
- if (index % 2 == 0)
- {
- int i = (index % original.ncols()) / 2;
- int j = (index / original.ncols()) / 2;
- int count = 0;
- int sum = 0;
- mln_qiter(window2d) q(win, p);
-
- // Iterate through all window image sites
- for_all(q)
- {
- if (original.has(q))
- {
- sum += original(q);
- ++count;
- }
- }
-
- if (reduced.has(point2d(j, i)))
- opt::at(reduced, j, i) = sum / count;
- }
-
- ++index;
- }
-
- return reduced;
- }
-
- // Upscale by 2 the image resolution
- template<typename I>
- I upscaling2(const I& original)
- {
- box2d size(original.nrows() * 2, original.ncols() * 2);
- I upscaled(size);
-
- mln_piter(I) p(upscaled.domain());
- int index = 0;
-
- for_all(p)
- {
- int i = p.col();
- int j = p.row();
-
- if (i % 2 == 0 && j % 2 == 0) // Top left
- opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 0);
- else if (i % 2 == 0) // Bottom left
- opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 2);
- else if (j % 2 == 0) // Top right
- opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 1);
- else // Bottom right
- opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 3);
-
- ++index;
- }
-
- return upscaled;
- }
-}
-
-#endif /* ! VRAC_HH */
diff --git a/milena/sandbox/anthony/src/main.cc b/milena/sandbox/anthony/src/main.cc
index fae3c64..59fa1ce 100644
--- a/milena/sandbox/anthony/src/main.cc
+++ b/milena/sandbox/anthony/src/main.cc
@@ -403,6 +403,7 @@ void find_min(T& min, const I& upper, const I& lower, const P& pUpper, const P&
{
mln_niter(neighb2d) nUpper(c8(), pUpper);
mln_niter(neighb2d) nLower(c8(), pLower);
+ T tmp = min;
// Upper processing
for_all(nUpper)
@@ -413,6 +414,8 @@ void find_min(T& min, const I& upper, const I& lower, const P& pUpper, const P&
for_all(nLower)
if (lower(nLower) < min)
min = lower(nLower);
+
+ std::cout << tmp << " >= " << min << std::endl;
}
// Find the maximum value in the upper and lower layers around p
@@ -421,6 +424,7 @@ void find_max(T& max, const I& upper, const I& lower, const P& pUpper, const P&
{
mln_niter(neighb2d) nUpper(c8(), pUpper);
mln_niter(neighb2d) nLower(c8(), pLower);
+ T tmp = max;
// Upper processing
for_all(nUpper)
@@ -431,6 +435,8 @@ void find_max(T& max, const I& upper, const I& lower, const P& pUpper, const P&
for_all(nLower)
if (lower(nLower) > max)
max = lower(nLower);
+
+ std::cout << tmp << " >= " << max << std::endl;
}
template<typename T, typename I, typename P>
@@ -473,30 +479,44 @@ bool hasEdgeResponse(const I& dog, const P& p, const T& center)
// Build the extrema image
template<typename I, typename C>
void buildExtrema(C& extrema,
- const I& original,
std::vector< std::vector<I> >& dogSpace,
std::vector<Keypoint>& keypoints)
{
// Number of scales (gaussian meaning)
unsigned scales = dogSpace.at(0).size();
+ std::cout << "Scales: " << scales << std::endl
+ << "Resolutions: " << dogSpace.size() << std::endl;
+
// Iterates through all scales
- for (unsigned i = 0; i < scales; ++i)
+ for (unsigned i = 0; i < scales - 2; ++i)
{
+ std::cout << "scales ENTER" << std::endl;
+
// Iterates through all resolutions
- for (unsigned j = 1; j < dogSpace.size() - 1; ++j)
+ for (unsigned j = 1; j < dogSpace.size() - 2; ++j)
{
+ std::cout << "resolutions ENTER" << std::endl;
I current = dogSpace.at(j).at(i);
I upper = dogSpace.at(j+1).at(i);
I lower = dogSpace.at(j-1).at(i);
+ C debugDraw1 = data::convert(value::rgb8(), upper);
+ C debugDraw2 = data::convert(value::rgb8(), lower);
+
+
mln_piter(I) p(current.domain());
+ int first = 0;
+ int bound = 1000;
+ unsigned threshold = 0;
+
for_all(p)
{
value::int_u8 min = 255;
value::int_u8 max = 0;
value::int_u8 center = 0;
+ ++first;
mln_niter(neighb2d) n(c8(), p);
center = current(p);
@@ -507,26 +527,47 @@ void buildExtrema(C& extrema,
// Find the min and max in the current neighborhood (c8)
find_extremum(min, max, current, n);
- if (center <= min)
+ if ((unsigned) center + threshold < min)
{
+
// Find the min in other levels of the pyramid
find_min(min, upper, lower, pUpper, pLower);
- if (center < min && !hasEdgeResponse(current, p, center))
+ if ((unsigned) center + threshold < min && !hasEdgeResponse(current, p, center))
{
+ std::cout << center << " < " << min << std::endl;
+
+ if (first > bound)
+ {
+ debugDraw1(pUpper) = literal::yellow;
+ debugDraw2(pLower) = literal::yellow;
+
+
+ ++first;
+ }
mln_psite(I) pOriginal(p.row() * pow(2, (j-1)),
p.col() * pow(2, (j-1)));
extrema(pOriginal) = literal::red;
keypoints.push_back(Keypoint(p.row(), p.col(), i, j, false));
}
}
- else if (center >= max)
+ else if (center > (unsigned) max + threshold)
{
// Find the max in other levels of the pyramid
find_max(max, upper, lower, pUpper, pLower);
- if (center > max && !hasEdgeResponse(current, p, center))
+ if (center > (unsigned) max + threshold && !hasEdgeResponse(current, p, center))
{
+ std::cout << center << " > " << max << std::endl;
+
+ if (first > bound)
+ {
+ debugDraw1(pUpper) = literal::yellow;
+ debugDraw2(pLower) = literal::yellow;
+
+ ++first;
+ }
+
mln_psite(I) pOriginal(p.row() * pow(2, (j-1)),
p.col() * pow(2, (j-1)));
extrema(pOriginal) = literal::red;
@@ -534,6 +575,8 @@ void buildExtrema(C& extrema,
}
}
}
+ io::ppm::save(debugDraw1, "debug_upper.ppm");
+ io::ppm::save(debugDraw2, "debug_lower.ppm");
}
}
}
@@ -661,6 +704,7 @@ void discardLowContrastKeypoints(const std::vector< std::vector<I> >& dogSpace,
C& extrema)
{
Keypoint k_old(0, 0, 0, 0, true);
+ bool hasMoved = false;
for (unsigned i = 0; i < keypoints.size(); ++i)
{
@@ -681,48 +725,36 @@ void discardLowContrastKeypoints(const std::vector< std::vector<I> >& dogSpace,
if (isMajorOffset)
{
- std::cout << "<<<<<<<<<<<<<<<<<<<<<<<<<<<<" << std::endl;
- std::cout << "First order matrix:" << std::endl;
- firstOrder.print();
-
- std::cout << "Second order matrix:" << std::endl;
- secondOrder.print();
-
- std::cout << "Offset: " << std::endl;
- x.print();
-
- std::cout << "k_old: " << k_old.getI() << " " << k_old.getJ() << std::endl;
- std::cout << "k: " << k.getI() << " " << k.getJ() << std::endl;
- bool hasMoved = k.add(x, k_old);
- std::cout << "k++: " << k.getI() << " " << k.getJ()
- << "\thasMoved: " << hasMoved << std::endl;
+ hasMoved = k.add(x, k_old);
point2d p(k.getI(), k.getJ());
- std::cout << "Final point: " << extrema.domain() << "\t" << p << std::endl;
if (hasMoved && extrema.has(p)
&& p.row() >= 0 && p.row() < geom::max_row(extrema)
&& p.col() >= 0 && p.col() < geom::max_col(extrema))
{
- std::cout << "VALID" << std::endl;
- extrema(p) = literal::red;
+ // extrema(p) = literal::red;
k_old = keypoints.at(i);
keypoints.at(i--) = k;
}
-
- std::cout << std::endl;
}
else
{
point2d p(k.getI(), k.getJ());
- extrema(p) = literal::red;
+
+ if (hasMoved)
+ extrema(p) = literal::green;
+ else
+ extrema(p) = literal::red;
+
+ hasMoved = false;
}
}
}
}
// Main entry point
-int main(int argc, char** argv)
+int main(void)//int argc, char** argv)
{
typedef image2d<value::int_u8> I;
typedef image2d<value::rgb8> C;
@@ -736,7 +768,7 @@ int main(int argc, char** argv)
C extrema, improved;
bool black = true;
- io::pgm::load(original, "images/lena.pgm");
+ io::pgm::load(original, "images/keith.pbm");
if (black)
{
@@ -752,7 +784,7 @@ int main(int argc, char** argv)
// Localization
buildScaleSpace(scaleSpace, original, octave_level, blur_level);
buildDifferenceOfGaussianSpace(scaleSpace, dogSpace);
- buildExtrema(extrema, original, dogSpace, keypoints);
+ buildExtrema(extrema, dogSpace, keypoints);
discardLowContrastKeypoints(dogSpace, keypoints, improved);
// Processing
diff --git a/milena/sandbox/anthony/test-opencv/Makefile b/milena/sandbox/anthony/test-opencv/Makefile
deleted file mode 100644
index 1634b35..0000000
--- a/milena/sandbox/anthony/test-opencv/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-.PHONY: cv
-
-CCACHE=
-CXX=g++
-SRC=main.cpp
-LIBS=-L/opt/local/include -lopencv_highgui -lopencv_core -lopencv_features2d -lopencv_nonfree -D_GNU_SOURCE
-OUTPUT=cv
-CLEAN=${OUTPUT}
-
-all: cv
-
-cv:
- ${CCACHE} ${CXX} -O2 ${LIBS} ${SRC} -o ${OUTPUT}
-
-debug:
- ${CCACHE} ${CXX} -g -ggdb -O0 ${LIBS} ${SRC} -o ${OUTPUT}
-
-clean:
- rm -rf ${CLEAN}
diff --git a/milena/sandbox/anthony/test-opencv/keith.pbm b/milena/sandbox/anthony/test-opencv/keith.pbm
deleted file mode 100644
index b0997a3..0000000
Binary files a/milena/sandbox/anthony/test-opencv/keith.pbm and /dev/null differ
diff --git a/milena/sandbox/anthony/test-opencv/main.cpp b/milena/sandbox/anthony/test-opencv/main.cpp
deleted file mode 100644
index c91a6c3..0000000
--- a/milena/sandbox/anthony/test-opencv/main.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include <iostream>
-#include <vector>
-
-#include "opencv2/core/core.hpp"
-#include "opencv2/features2d/features2d.hpp"
-#include "opencv2/nonfree/features2d.hpp"
-#include "opencv2/highgui/highgui.hpp"
-
-
-// MAIN ENTRY POINT
-int main(int argc, char* argv[])
-{
- const cv::Mat input = cv::imread("tongue.pbm");
- cv::SiftFeatureDetector detector;
- std::vector<cv::KeyPoint> keypoints;
- detector.detect(input, keypoints);
-
- cv::Mat output;
- cv::drawKeypoints(input, keypoints, output);
- cv::imwrite("sift.jpg", output);
-
- return 0;
-
-
-
- // std::string inputPath, inputPath2, toolchainPath, outputPath;
- // std::deque<ourfilters::eFilter> toolchain;
- // bool* multithread = new bool(true);
-
- // int validCommandLine = getCommandLine(argc, argv, inputPath,
- // inputPath2,
- // toolchainPath,
- // outputPath,
- // multithread);
-
- // bool twoSources = inputPath2.length() > 0;
-
- // if (!validCommandLine)
- // return errors::invalidCommandLine();
-
- // parser::getSteps(toolchainPath, toolchain);
-
- // if (!(*multithread))
- // {
- // std::cout << "single-threader" << std::endl;
- // tbb::task_scheduler_init intit(1);
- // }
-
- // tbb::pipeline pipeline;
-
- // Picker picker(inputPath, inputPath2, twoSources);
- // pipeline.add_filter(picker);
-
- // ApplyFilters applicator(toolchain);
- // pipeline.add_filter(applicator);
-
- // Writer writer(outputPath,
- // picker.get_codec(),
- // picker.get_fps(),
- // picker.get_dimensions());
- // pipeline.add_filter(writer);
-
- // pipeline.run(128);
-
- // return 0;
-}
diff --git a/milena/sandbox/anthony/test-opencv/tongue.pbm b/milena/sandbox/anthony/test-opencv/tongue.pbm
deleted file mode 100644
index a85a0f6..0000000
--- a/milena/sandbox/anthony/test-opencv/tongue.pbm
+++ /dev/null
@@ -1,29 +0,0 @@
-P5
-512
-512
-255
-���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������õ���}yusqpppqtx~����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ǯ��xrpsuwwxxyyyyyyxxwuqr|��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ϰ�|squwxxyyyyyyyyyyyyyyyyyyywsr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������̣�tquwyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������֪�srwxyyxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyuq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vqvxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyr|�������������������������������������������������������ѻ��~ytqpqrssssrqppsw}��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������封qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyvt��������������������������������������������������ݻ�upsvwxxyyyyyyyyyyyyyxwvspv���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|qvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyxq����������������������������������������������ᶍxptwxyyyyyyyyyyyyyyyyyyyyyyyyxvrt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{qwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyp�������������������������������������������ʗzquxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~pwyyyyyyyyyyyyyyyyyyyyyyyyyxwutsrrstvwyyyyyyyyyyyyyyyyxq���������������������������������������ssxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������̇qwyyyyyyyyyyyyyyyyyyyyyyyywrry���������{rswxyyyyyyyyyyyyywr������������������������������������﵁quyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyvq�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������styyyyyyyyyyyyyyyyyyyyyyyxss��������������Ý|qvyyyyyyyyyyyyyvy������������������������������������qvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~rxyyyyyyyyyyyyyyyyyyyyyyxrw������������������赂qwyyyyyyyyyyyyt��������������������������������ϋqvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyuu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rvyyyyyyyyyyyyyyyyyyyyyyysv�����������������������zsyyyyyyyyyyyyq������������������������������styyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Մrxyyyyyyyyyyyyyyyyyyyyyywr��������������������������ޑqxyyyyyxyyyywv����������������������������~rxyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxp�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vtyyyyyyyyyyyyyyyyyyyyyyys|������������������������������swyyyyxyyyyys��������������������������qvyyyyxyyyyyyyyyyxxyyxyyyyyyxwvtqprrppsuwxyyyyyyyyyyyyyyyyyxq�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwyyyyyyyyyyyyyyyyyyyyyyxq���������������������������������uvyyxyyyyyyxr�����������������������ˀryyyyyyyyyyyyyyyyyyyyyxyyywvqs|�����þ����vquwyyyyyyyyyyyyyyyxr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyywr�����������������������������������vwyxyyyyyyyu�����������������������tuyyyyyyyyyyyyyyyyyyyyyyyxvqx���������������Ը�yqvyyyyyyyyyyyyyyvv������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyuw�������������������������������������sxyyyyyyyyxr��������������������qxyyyyyyyyyyyyyyxxyyyyyyxss���������������������ఃqwyyyyyyyyyyyyyt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������݀syyyyyyyyyyyyyyyyyyyyyyyu{���������������������������������������qyyyyyyyyys������������������ڄryyyyyyyyyyyyyyyyyyyyyyxrw��������������������������~ryyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������}tyyyyyyyyyyyyyyyyyyyyyyyu}�����������������������������������������syyyyyxyyxu�����������������ytyyyyyyyyyyyyyyyyyyyyyysw������������������������������rwyyyyyyyyyyyxr�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������}tyyyyyyyyyyyyyyxyyyyyyyyu������������������������������������������zwyyyyyyyyr����������������uuyyyyyyyyyyyyyyyyyyyyyus����������������������������������vvyyyyyyyyyyyu������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~tyyyyyyyyyyyyyyyxyyyyyyyt}��������������������������������������������qyyyyyyyyw~��������������rwyyyyyyyyyyyyyyyyyyyyxr�������������������������������������xvyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syxyyyyyyyyyyyyyyyyyyyyyww���������������������������������������������}wyyyyyyyyq�������������qxyyyyyyyyyyyyyyyyyyyywr���������������������������������������wwyyyyyyyyyyxv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyxyyyyyyyyyyyyyq�����������������������������������������������qyyyyyyyys������������pyyyyyyyyyyyyyyyyyyyyyux�����������������������������������������ryyyyyyyyyyys��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyxyyyyyyyyyyyyyyyyyyys������������������������������������������������uxyyyyyyyw}����������pyyyyyyyyyyyyyyyyyyyyyt}�������������������������������������������ryyyyyyyyyyxt������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyxu������������������������������������������������wyyyyyyyxr���������pxyyyyyyyyyyyyyyyyyyyyv}��������������������������������������������|wyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������vyyyyyyyyr��������qyyyyyyyyyyyyyyyyyyyyywy����������������������������������������������qyyyyyyyyyyxt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyxv��������������������������������������������������uyyyyyyyyu�������qyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������yxyyyyyyyyyys���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyt��������������������������������������������������vyyyyyyyyxy�����qxyyyyyyyyyyyyyyyyyyyyyt�������������������������������������������������uyyyyyyyyyyxw�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������xxyyyyyyyyyq����swyyyyyyyyyyyyyyyyyyyyyxr�������������������������������������������������pyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{vyyyyyyyyyyyyyyyyyyyyyyyyyxy��������������������������������������������������qyyyyyyyyyyq���uwyyyyyyyyyyyyyyyyyyyyyyw~�������������������������������������������������ryyyyyyyyyyyw~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyv���������������������������������������������������uyyyyyyyyyyu��|vyyyyyyyyyyyyyyyyyyyyyyyw��������������������������������������������������vxyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rxyyyyyyyyyyyyyyyyyyyyyyyyyyu��������������������������������������������������tyyyyyyyyyyyy|�vyyyyyyyyyyyyyyyyyyyyyyyyw}�������������������������������������������������wxyyyyyyyyyyyt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyv��������������в����������������������������������tyyyyyyyyyyyyxwyyyyyyyyyyyyyyyyyyyyyyyyyxs�������������������������������������������������tyyxyyyyyyyyyxv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyxw����������ȣ�uqtwvsqy���������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�������������������������������������������������qyyxyyyyyyyyyyq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyywz�����Ҽ�~srvxyyyyyyxsr������������������������txyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys��������������ֳ�yz����������������������������tyyyyyyyyyyyyyv�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyywry��}vqtwxyyyyyyyyyyyxtr���������������������uwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyvy����������ܲ�vquwxwup�������������������������wxyyyyyyyyyyyyyxs�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ywyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyxwwwxyyyyyyyyyyyyyyyyyxts�����������������rxyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyvu������ն�xpvxyyyyyyys{�����������������������syyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyss�������������ryyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxrx����wquwyyyyyyyyyyyuw���������������������ryyyyyyyyyyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytr��������˪�rvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxutuvxyyyyyyyyyyyyyyyvu�������������������uxyyyyyyyyyyyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywrs|���}tqvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyws����������������rwyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywvvvwxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxq�������������~rxyyyyyyyyyyyyyyyyyyyw�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyxyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytu�������Ų�zrwyyyyyyyyyyyyyyyyyyyyyxs������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxtqx~~|wrquxyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyxyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxwwwxyyyyyyxyyyyyyyyyyyyyyyyyyyyyw�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxv�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyp������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyxyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxy����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|wyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw{�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxs�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyw�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyxyyyyyyyyyyyyyyr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyx{��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyxyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxwvtrpqrrppruvxyyyyyyyyyyyyxyyyyyyyyyyyyyxyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyxuqs|������������xqswyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxs�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyxtqz����������������۾�}qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyuqz����������������������꿏tsxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxv���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxss����������������������������љusyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������xwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywrw��������������������������������Ԕruyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxwwwwxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyywx������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyywqz������������������������������������Ƅqxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywvtqptwz|}}|yvspqtvxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyywr{����������������������������������������utyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxvqs{�������������Ⱦ���yqswyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxw����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyxry�������������������������������������������Ӈqxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxtqy��������������������������ssxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyysu�����������������������������������������������svyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuqz�����������������������������țyqwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq���������������������������������������������������~ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyywqv�����������������������������������~qwyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyys������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syxyyyyyyyyyyyyyyyyyyyyyyyyyyyywq������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyxtq���������������������������������������{sxyyyyyyyyyyyyyyyyyyyyyyxyyyxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyxyxry���������������������������������������������������������utyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyxst��������������������������������������������rvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyv����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyxyyyyyyxyyyyyyyyyyyyyyyyyyyyur�����������������������������������������������������������҄rxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxvqx�����������������������������������������������ƀsyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rxyyxyyyyyxyyyyyyyyyyyyyyyyyy}v���������������������������������������������������������������rvyyyyyyyyyyxyyyyyyyyyyyyyyyyyyup���������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twyyyyyyyyyyyyyyyyyyyyyyyyyyz�b�����������������������������������������������������������������ŀrxyyyyyyyyxyyyyyyyyyyyyyyyxsr��������������������������������������������������������swyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wvyyyyyyyyyyyyxyyyyyxyyyyyyy~{Ma������������������������������������������������������������������usyyyyyyyyyyyyyyyyyyyyxvqx�����������������������������������������������������������vvyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{uyyyyyyyyyyyxyyyyyyyyyyyyy{�g%���������������������������������������������������������������������������������������������������������������������������������������������������������zuyyyyyyyyyyyyyyyyyyyyyyyr0--�����������������������������pxyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyut�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz�Mxyyyyyyvs��������������������̑sq9--M}|xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyym-
"(09EO]lv{�|zyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz|��J-)Jgvz~��~}}|||{{{{{{{zzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy{~>-S�zyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr|������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyy~_-=o�|yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyy}s"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy�Z yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyr}������������{wyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyy�W--a�yyxxyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytz����������������sxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyeyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyxr�������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz<-eyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyu���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|vyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyq��������������������~vyyyyyyyyyyyyy:yyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyxt���������������������ryyyyyyyyyyyyyyWyyyyyyyyyyyyyyyyyyyyyyyyyyyyys����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyr����������������������uwyyyyyyyyyyyyyy6yyyyyyyyyyyyxxyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������ryyyyyyyyyyyyyyy�Byyyyyyyyyyyyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyww�����������������������syyyyyyyyyyyyyyy{q-`~xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyxx�����������������������vxxxyyyyyyyyyyyyyy{n
--m|yyyyyxyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt��������������������{xyyyyyyyyyyyyyyyyyyyyyyyyyyyyzv~yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxw���������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyy|m yyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyv�����������������������ryyyyyyyyyyyyyyyyyxyyyyyyyyy|m
-yzyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyxyyyu����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyu�����������������yxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt���������������������������wyyyyyyyyyyyyyyyyyyyyyyxy|iyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxwxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt�����������������������������syyyyyyyyyyyyyyyyyyyyyyyy}dyyyyyyyyyyyyyyyyyyyyyyyyyyyywy��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyw{������������������������������syyyyyyyxyyyyyyyyyyyyyyyyMyyyyyyyyyyyyyyyyyyxyyyyr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyys�������������������������������vyyyyyyyyyyyyyyyyyyyyyyyzzyyyyyyyyyyyyyyyxp�����������������������������������`--�-����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyZ--{�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|w����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz�D-d����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zuyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyy�Z -Z����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq%-������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zrxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|g,->��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������宀qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz}k<����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ø����~zwusqqppppoppqrtvz~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
--
1.7.10.4
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch fixes has been updated
via 9bb391b78fcf0bb54e1c5d6ff1387021698a5db7 (commit)
via dfc378d90e022510767e81dfa75a5833239982c9 (commit)
from 90d7601e315c41aad406f50784cff6a392cf6c00 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
9bb391b Remove an inadvertently added file.
dfc378d Fix and improve mln::draw::dashed_line.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 18 ++++
milena/mln/core/site_set/p_line2d.hh | 1 -
milena/mln/draw/dashed_line.hh | 18 ++--
milena/mln/linear/#ch_convolve.hh# | 103 --------------------
milena/tests/draw/Makefile.am | 4 +-
.../binary_2d/subsample.cc => draw/dashed_line.cc} | 29 +++---
6 files changed, 48 insertions(+), 125 deletions(-)
delete mode 100644 milena/mln/linear/#ch_convolve.hh#
copy milena/tests/{world/binary_2d/subsample.cc => draw/dashed_line.cc} (75%)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

25 Jul '13
* mln/linear/#ch_convolve.hh#: Remove.
---
milena/ChangeLog | 6 +++
milena/mln/linear/#ch_convolve.hh# | 103 ------------------------------------
2 files changed, 6 insertions(+), 103 deletions(-)
delete mode 100644 milena/mln/linear/#ch_convolve.hh#
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 04622e7..e9e9079 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,11 @@
2013-07-25 Roland Levillain <roland(a)lrde.epita.fr>
+ Remove an inadvertently added file.
+
+ * mln/linear/#ch_convolve.hh#: Remove.
+
+2013-07-25 Roland Levillain <roland(a)lrde.epita.fr>
+
Fix and improve mln::draw::dashed_line.
* mln/core/site_set/p_line2d.hh (mln::p_line2d::has(const psite&)):
diff --git a/milena/mln/linear/#ch_convolve.hh# b/milena/mln/linear/#ch_convolve.hh#
deleted file mode 100644
index b06583d..0000000
--- a/milena/mln/linear/#ch_convolve.hh#
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena 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, version 2 of the License.
-//
-// Olena 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 Olena. If not, see <http://www.gnu.org/licenses/>.
-//
-// As a special exception, you may use this file as part of a free
-// software project without restriction. Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to produce
-// an executable, this file does not by itself cause the resulting
-// executable to be covered by the GNU General Public License. This
-// exception does not however invalidate any other reasons why the
-// executable file might be covered by the GNU General Public License.
-
-#ifndef MLN_LINEAR_CH_CONVOLVE_HH
-# define MLN_LINEAR_CH_CONVOLVE_HH
-
-/// \file
-///
-/// Define convolution return type.
-
-# include <mln/core/concept/image.hh>
-# include <mln/core/concept/window.hh>
-# include <mln/core/concept/weighted_window.hh>
-# include <mln/trait/ch_value.hh>
-# include <mln/value/ops.hh>
-
-# include <mln/algebra/vec.hh>
-
-
-/// Define the result of the convolution of an image with type \p I
-/// with a weighted window of type \p W or weights of type \p W.
-# define mln_ch_convolve(I, W) \
- typename mln::linear::ch_convolve<I, W>::ret
-
-# define mln_ch_convolve_(I, W) \
- mln::linear::ch_convolve<I, W>::ret
-
-
-# define mln_ch_convolve_grad(I, W) \
- typename mln::trait::ch_value< I, algebra::vec< I::site::dim, typename mln::linear::ch_convolve<I,W>::ret::value > >::ret
-
-# define mln_ch_convolve_grad_(I, W) \
- mln::trait::ch_value< I, algebra::vec< I::site::dim, mln::linear::ch_convolve<I,W>::ret::value > >::ret
-
-
-namespace mln
-{
-
- namespace linear
- {
-
- namespace internal
- {
-
- template <bool b, /* = true, i.e., W is a Weighted_Window */
- typename I, typename W>
- struct ch_convolve_helper
- {
- typedef mln_sum_product(mln_value(I), mln_weight(W)) V;
- typedef mln_ch_value(I, V) ret;
- };
-
- template <typename I, typename W>
- struct ch_convolve_helper<false, I, W>
- {
- typedef mln_sum_product(mln_value(I), W) V;
- typedef mln_ch_value(I, V) ret;
- };
-
- } // end of namespace mln::linear::internal
-
-
- template <typename I, typename W>
- struct ch_convolve
- : private mlc_and( mlc_is_a(I, Image),
- mlc_is_not_a(W, Window) )::check_t
- {
- protected:
- enum { is_w_win = mlc_is_a(W, Weighted_Window)::value };
- typedef internal::ch_convolve_helper<is_w_win, I, W> helper;
- public:
- typedef mlc_ret(helper) ret;
- };
-
- } // end of namespace mln::linear
-
-} // end of namespace mln
-
-
-#endif // ! MLN_LINEAR_CH_CONVOLVE_HH
--
1.7.10.4
1
0

olena: olena-2.0-582-gdfc378d Fix and improve mln::draw::dashed_line.
by Roland Levillain 25 Jul '13
by Roland Levillain 25 Jul '13
25 Jul '13
* mln/core/site_set/p_line2d.hh (mln::p_line2d::has(const psite&)):
Remove a too strict precondition.
* mln/draw/dashed_line.hh (mln::draw::dashed_line):
Rework implementation to make it more like mln::draw::line's.
Clean up a bit.
* tests/draw/dashed_line.cc: New test.
* tests/draw/Makefile.am (check_PROGRAMS): Add dashed_line.
---
milena/ChangeLog | 12 ++++++++
milena/mln/core/site_set/p_line2d.hh | 1 -
milena/mln/draw/dashed_line.hh | 18 +++++++-----
milena/tests/draw/Makefile.am | 4 +--
.../binary_2d/subsample.cc => draw/dashed_line.cc} | 29 ++++++++++++--------
5 files changed, 42 insertions(+), 22 deletions(-)
copy milena/tests/{world/binary_2d/subsample.cc => draw/dashed_line.cc} (75%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index add0a55..04622e7 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,15 @@
+2013-07-25 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix and improve mln::draw::dashed_line.
+
+ * mln/core/site_set/p_line2d.hh (mln::p_line2d::has(const psite&)):
+ Remove a too strict precondition.
+ * mln/draw/dashed_line.hh (mln::draw::dashed_line):
+ Rework implementation to make it more like mln::draw::line's.
+ Clean up a bit.
+ * tests/draw/dashed_line.cc: New test.
+ * tests/draw/Makefile.am (check_PROGRAMS): Add dashed_line.
+
2013-07-04 Roland Levillain <roland(a)lrde.epita.fr>
Work around a Clang 3.0 bug.
diff --git a/milena/mln/core/site_set/p_line2d.hh b/milena/mln/core/site_set/p_line2d.hh
index 1cbd3f6..e1ed059 100644
--- a/milena/mln/core/site_set/p_line2d.hh
+++ b/milena/mln/core/site_set/p_line2d.hh
@@ -240,7 +240,6 @@ namespace mln
bool
p_line2d::has(const psite& p) const
{
- mln_precondition(p.target_() == this); // FIXME: Refine.
if (! has(p.index()))
return false;
mln_invariant(p.to_site() == (*this)[p.index()]);
diff --git a/milena/mln/draw/dashed_line.hh b/milena/mln/draw/dashed_line.hh
index d26559b..1b76cfe 100644
--- a/milena/mln/draw/dashed_line.hh
+++ b/milena/mln/draw/dashed_line.hh
@@ -17,7 +17,7 @@
//
// As a special exception, you may use this file as part of a free
// software project without restriction. Specifically, if other files
-// instantiate templates or use macros or indashed_line functions from this
+// instantiate templates or use macros or inline functions from this
// file, or you compile this file and link it with other files to produce
// an executable, this file does not by itself cause the resulting
// executable to be covered by the GNU General Public License. This
@@ -29,15 +29,16 @@
/// \file
///
-/// \brief Draw a dashed_line in an image.
-/// \todo Add specializations for horizontal dashed_lines (use
+/// \brief Draw a dashed line in an image.
+/// \todo Add specializations for horizontal dashed lines (use
/// pointers/memset).
# include <mln/core/concept/function.hh>
# include <mln/core/concept/image.hh>
# include <mln/core/site_set/p_line2d.hh>
# include <mln/core/image/imorph/safe.hh>
-# include <mln/data/fill.hh>
+# include <mln/core/image/dmorph/image_if.hh>
+# include <mln/data/paste.hh>
# include <mln/pw/image.hh>
# include <mln/pw/cst.hh>
@@ -52,8 +53,8 @@ namespace mln
between the points \p beg and \p end.
\param[in,out] ima The image to be drawn.
- \param[in] beg The start point to drawn dashed_line.
- \param[in] end The end point to drawn dashed_line.
+ \param[in] beg The start point to drawn dashed line.
+ \param[in] end The end point to drawn dashed line.
\param[in] v The value to assign to all drawn pixels.
\pre \p ima has to be initialized.
@@ -103,7 +104,10 @@ namespace mln
if (! ima.has(end))
mln_trace_warning("End site is not part of the given image.");
- data::fill(((ima | p_line2d(beg, end)).rw() | internal::dashed_line_f<I, 1>()).rw(), v);
+ data::paste(pw::cst(v)
+ | p_line2d(beg, end)
+ | internal::dashed_line_f<I, 1>(),
+ safe(ima).rw());
}
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/tests/draw/Makefile.am b/milena/tests/draw/Makefile.am
index 0ef96b5..3c1e8f5 100644
--- a/milena/tests/draw/Makefile.am
+++ b/milena/tests/draw/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
+# Copyright (C) 2007, 2008, 2009, 2010, 2013 EPITA Research and Development
# Laboratory (LRDE)
#
# This file is part of Olena.
@@ -18,8 +18,8 @@
include $(top_srcdir)/milena/tests/tests.mk
check_PROGRAMS = \
+ dashed_line \
line \
graph
-
TESTS = $(check_PROGRAMS)
diff --git a/milena/tests/world/binary_2d/subsample.cc b/milena/tests/draw/dashed_line.cc
similarity index 75%
copy from milena/tests/world/binary_2d/subsample.cc
copy to milena/tests/draw/dashed_line.cc
index f7aa4ef..86ebad9 100644
--- a/milena/tests/world/binary_2d/subsample.cc
+++ b/milena/tests/draw/dashed_line.cc
@@ -24,25 +24,30 @@
// executable file might be covered by the GNU General Public License.
/// \file
-/// Exercise mln::world::binary_2d::subsample.
+/// \brief Exercise mln::draw::dashed_line.
#include <mln/core/image/image2d.hh>
-#include <mln/value/int_u8.hh>
-#include <mln/world/binary_2d/subsample.hh>
-
-#include <mln/io/pbm/load.hh>
-#include <mln/io/pgm/save.hh>
-
-#include "tests/data.hh"
+#include <mln/draw/line.hh>
+#include <mln/draw/dashed_line.hh>
+#include <mln/data/fill.hh>
+#include <mln/data/compare.hh>
int main()
{
using namespace mln;
- using value::int_u8;
- image2d<bool> input = io::pbm::load(MLN_IMG_DIR "/small.pbm");
- image2d<int_u8> output = world::binary_2d::subsample(input, 3);
- io::pgm::save(output, "subsample-small.pgm");
+ point2d p1 = point2d(2,3);
+ point2d p2 = point2d(2,3);
+
+ image2d<bool> ima1(10,10);
+ data::fill(ima1, false);
+ draw::dashed_line(ima1, p1, p2, true);
+
+ image2d<bool> ima2(10,10);
+ data::fill(ima2, false);
+ draw::line(ima2, p1, p2, true);
+
+ mln_assertion(ima1 <= ima2);
}
--
1.7.10.4
1
0
#232: Update contributors' list on Olena's Web site
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: task | Status: new
Priority: major | Milestone: Olena 1.1
Component: Web | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
This page :
https://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Contributors
should be updated with the latest version (e.g., from branch `next`) of
this file :
source:AUTHORS
Better: write a script to automate the conversion, so as to simplify the
process of updating this page down to a copy-and-paste operation.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/232>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
1
2

*****SPAM***** Great Opportunity - Environmental Company Expanding and Looking for Reps
by olena-patches@lrde.epita.fr 25 Jul '13
by olena-patches@lrde.epita.fr 25 Jul '13
25 Jul '13
Environmental enterprise searching for representation internationally
5% commission on 200K cash flow originated from promotion and sales of proprietary research articles
Necessary conditions:
- Own a company
- Be reachable on daily basis through E-mail, phone or Skype
- Proper execution of all planned undertakings
In case if being interested, please provide:
- Name and Surname
- Age
- Telephone number (including country code)
- City and Country
- Email
Please answer to: Noah(a)careers-consulting.com
Faithfully yours,
HR dept
1
0

olena: olena-2.0-597-gb783446 [SIFT] Start new implementation + Build Scale Space
by Anthony Seure 25 Jul '13
by Anthony Seure 25 Jul '13
25 Jul '13
---
milena/sandbox/anthony/{ => new-implem}/Makefile | 18 +-
milena/sandbox/anthony/new-implem/src/main.cc | 63 +++++
.../sandbox/anthony/{ => new-implem}/src/matrix.cc | 0
.../sandbox/anthony/{ => new-implem}/src/matrix.hh | 3 +-
.../sandbox/anthony/new-implem/src/scale-space.hh | 106 +++++++
milena/sandbox/anthony/new-implem/src/vrac/vrac.hh | 296 ++++++++++++++++++++
6 files changed, 475 insertions(+), 11 deletions(-)
copy milena/sandbox/anthony/{ => new-implem}/Makefile (53%)
create mode 100644 milena/sandbox/anthony/new-implem/src/main.cc
copy milena/sandbox/anthony/{ => new-implem}/src/matrix.cc (100%)
copy milena/sandbox/anthony/{ => new-implem}/src/matrix.hh (99%)
create mode 100644 milena/sandbox/anthony/new-implem/src/scale-space.hh
create mode 100644 milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
diff --git a/milena/sandbox/anthony/Makefile b/milena/sandbox/anthony/new-implem/Makefile
similarity index 53%
copy from milena/sandbox/anthony/Makefile
copy to milena/sandbox/anthony/new-implem/Makefile
index 2953013..a4f63d9 100644
--- a/milena/sandbox/anthony/Makefile
+++ b/milena/sandbox/anthony/new-implem/Makefile
@@ -1,15 +1,15 @@
-CCACHE=ccache
+CCACHE=
CC=g++
-CFLAGS=-Wall -Werror
-CLIBS=-I../../
-CLEAN=*.o output/* log
+CFLAGS=-Wall -Wextra
+CLIBS=-I../../../
+CLEAN=*.o output/* log debug_*
-SRC=src/main.cc src/matrix.cc src/keypoint.cc
-OUTPUT=a.out
+SRC=src/main.cc src/matrix.cc
+OUTPUT=new-implem
-all: scale
+all: new-implem
-scale: clean
+new-implem: clean
$(CCACHE) $(CC) $(CFLAGS) -O3 -DNDEBUG $(CLIBS) $(SRC) -o $(OUTPUT)
debug: mrproper
@@ -21,4 +21,4 @@ clean:
mrproper: clean
rm -f $(OUTPUT)
-.PHONY: scale clean mrproper
+.PHONY: new-implem clean mrproper
diff --git a/milena/sandbox/anthony/new-implem/src/main.cc b/milena/sandbox/anthony/new-implem/src/main.cc
new file mode 100644
index 0000000..45a36ad
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/main.cc
@@ -0,0 +1,63 @@
+#include <mln/core/image/image2d.hh>
+#include <mln/data/all.hh>
+#include <mln/io/pgm/all.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/literal/all.hh>
+#include <mln/value/int_s8.hh>
+
+//#include <cmath>
+#include <string>
+
+#include "scale-space.hh"
+//#include "dog-space.hh"
+//#include "keypoint.hh"
+//#include "matrix.hh"
+
+int main(void)
+{
+ typedef image2d<value::int_u8> I;
+ typedef image2d<value::rgb8> C;
+
+ // General parameters
+ std::string source("images/keith.pbm");
+ const unsigned blur_level = 5;
+ const unsigned octave_level = 3;
+ const bool black = false;
+
+ ScaleSpace<I> *ss = new ScaleSpace<I>(octave_level, blur_level);
+ //DoGSpace<C>* dog = new DogSpace();
+ //std::vector<Keypoint>* keypoints = new std::vector<Keypoint>();
+
+ I original;
+ C extrema, improved;
+
+ io::pgm::load(original, source.c_str());
+
+ if (black)
+ {
+ initialize(extrema, original);
+ initialize(improved, original);
+ }
+ else
+ {
+ extrema = data::convert(value::rgb8(), original);
+ improved = data::convert(value::rgb8(), original);
+ }
+
+ // Localization
+ ss->build(original);
+ ss->save();
+ //buildDifferenceOfGaussianSpace(scaleSpace, dogSpace);
+ //buildExtrema(extrema, dogSpace, keypoints);
+ //discardLowContrastKeypoints(dogSpace, keypoints, improved);
+
+ // Processing
+ // TODO
+
+ // Save
+ io::ppm::save(extrema, "output/extrema.ppm");
+ io::ppm::save(improved, "output/extrema_improved.ppm");
+
+ return 0;
+}
diff --git a/milena/sandbox/anthony/src/matrix.cc b/milena/sandbox/anthony/new-implem/src/matrix.cc
similarity index 100%
copy from milena/sandbox/anthony/src/matrix.cc
copy to milena/sandbox/anthony/new-implem/src/matrix.cc
diff --git a/milena/sandbox/anthony/src/matrix.hh b/milena/sandbox/anthony/new-implem/src/matrix.hh
similarity index 99%
copy from milena/sandbox/anthony/src/matrix.hh
copy to milena/sandbox/anthony/new-implem/src/matrix.hh
index de83912..c42de59 100644
--- a/milena/sandbox/anthony/src/matrix.hh
+++ b/milena/sandbox/anthony/new-implem/src/matrix.hh
@@ -16,6 +16,7 @@ class Matrix
bool inverse(Matrix& inversed);
void absolute();
bool isMajorOffset();
+ float determinant();
// Operators
Matrix operator*(Matrix& right);
@@ -31,8 +32,6 @@ class Matrix
std::vector< std::vector<float> > m;
unsigned height;
unsigned width;
-
- float determinant();
};
#endif /* ! MATRIX_HH */
diff --git a/milena/sandbox/anthony/new-implem/src/scale-space.hh b/milena/sandbox/anthony/new-implem/src/scale-space.hh
new file mode 100644
index 0000000..2fbb4fd
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/scale-space.hh
@@ -0,0 +1,106 @@
+#ifndef SCALE_SPACE_HH
+# define SCALE_SPACE_HH
+
+# include <string>
+# include <vector>
+
+#include <mln/core/image/image2d.hh>
+#include <mln/data/all.hh>
+#include <mln/io/pgm/all.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/literal/all.hh>
+#include <mln/value/int_s8.hh>
+
+#include "vrac/vrac.hh"
+
+using namespace mln;
+
+template<typename I>
+class ScaleSpace
+{
+ public:
+ ScaleSpace(unsigned octave_level, unsigned gradient_level)
+ {
+ o = octave_level;
+ g = gradient_level;
+ }
+
+ ~ScaleSpace()
+ {
+ typedef typename std::vector< std::vector<I> >::iterator PIT;
+
+ for (PIT it = pyramid.begin(); it != pyramid.end(); ++it)
+ it->clear();
+
+ pyramid.clear();
+ }
+
+ std::vector<I>& getOctave(unsigned i)
+ {
+ return pyramid[i];
+ }
+
+
+ void build(const I& original)
+ {
+ // Upscaled octave
+ I upscaled = vrac::upscaling2(original);
+ addOctave(upscaled);
+
+ // 1st octave
+ addOctave(original);
+
+ // 2nd octave
+ I downscaled = vrac::downscaling2(original);
+ addOctave(downscaled);
+
+ for (unsigned i = 3; i < o; ++i)
+ {
+ downscaled = vrac::downscaling2(downscaled);
+ addOctave(downscaled);
+ }
+ }
+
+ void save()
+ {
+ std::stringstream name;
+
+ for (unsigned i = 0; i < pyramid.size(); ++i)
+ {
+ for (unsigned j = 0; j < pyramid[i].size(); ++j)
+ {
+ name << "output/ss-o" << i << "-" << j << ".pgm";
+ io::pgm::save(pyramid[i][j], name.str());
+ name.str("");
+ }
+ }
+ }
+
+ inline unsigned octave_count() { return pyramid.size(); }
+ inline unsigned gradient_count() { return pyramid[0].size(); }
+
+ private:
+ unsigned o;
+ unsigned g;
+ std::vector< std::vector<I> > pyramid;
+
+ void addOctave(const I& original)
+ {
+ I blured;
+ std::vector<I> octave;
+ //float variance = sqrt(2);
+ float variance = 0.84089642;
+
+ for (unsigned i = 0; i < g; ++i)
+ {
+ blured = vrac::blur(original, variance);
+ variance *= sqrt(2);
+ octave.push_back(blured);
+ }
+
+ pyramid.push_back(octave);
+ }
+};
+
+#endif /* ! SCALE_SPACE_HH */
diff --git a/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh b/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
new file mode 100644
index 0000000..fc9e3f2
--- /dev/null
+++ b/milena/sandbox/anthony/new-implem/src/vrac/vrac.hh
@@ -0,0 +1,296 @@
+#ifndef VRAC_HH
+# define VRAC_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/data/all.hh>
+# include <mln/io/pgm/all.hh>
+# include <mln/io/ppm/save.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/literal/all.hh>
+# include <mln/value/int_s8.hh>
+
+# include <cmath>
+
+# include "../matrix.hh"
+
+//# include "keypoint.hh"
+//# include "matrix.hh"
+
+using namespace mln;
+
+namespace vrac
+{
+ // Set the gaussian kernel
+ float *gaussian_kernel(float variance)
+ {
+ unsigned index = 0;
+ float *kernel = new float[49];
+ Matrix matrix(7, 7);
+ float sum = 0;
+
+ for (int i = -3; i < 4; ++i)
+ {
+ for (int j = -3; j < 4; ++j)
+ {
+ kernel[index] = exp(- (i*i + j*j) / (2.0 * variance * variance) );
+ sum += kernel[index++];
+ }
+ }
+
+ sum = 1. / sum;
+
+ for (int i = 0; i < 49; ++i)
+ kernel[i] *= sum;
+
+ return kernel;
+ }
+
+ // Apply the convolution of the image by the kernel
+ template<typename I>
+ void convolve(const I& original, I& filtered, float *kernel)
+ {
+ mln_piter(I) p(filtered.domain());
+ window2d win;
+
+ for (int i = -3; i < 4; ++i)
+ for (int j = -3; j < 4; ++j)
+ win.insert(i, j);
+
+ // Iterate through all image sites
+ for_all(p)
+ {
+ // Create the window around the site
+ mln_qiter(window2d) q(win, p);
+ float sum = 0;
+ int index = 0;
+
+ // Iterate through all window image sites
+ for_all(q)
+ {
+ if (filtered.has(q))
+ sum += original(q) * kernel[index++];
+ else
+ sum += 127 * kernel[index++];
+ }
+
+ filtered(p) = static_cast<int>(sum);
+ }
+ }
+
+ // Blur the image thanks to a convolution matrix
+ template<typename I>
+ I blur(const I& original, float variance)
+ {
+ std::cout << "variance: " << variance << std::endl;
+ I filtered;
+ float *kernel = gaussian_kernel(variance);
+
+ initialize(filtered, original);
+ convolve(original, filtered, kernel);
+
+ return filtered;
+ }
+
+ float *upscalingTL_kernel()
+ {
+ const static float one = 1.0 / 8.0;
+ const static float two = 2.0 / 8.0;
+ const static float three = 2.0 / 8.0;
+ const static float four = 3.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+ }
+
+ float *upscalingTR_kernel()
+ {
+ const static float one = 2.0 / 8.0;
+ const static float two = 1.0 / 8.0;
+ const static float three = 3.0 / 8.0;
+ const static float four = 2.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+ }
+
+ float *upscalingBL_kernel()
+ {
+ const static float one = 2.0 / 8.0;
+ const static float two = 3.0 / 8.0;
+ const static float three = 1.0 / 8.0;
+ const static float four = 2.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+ }
+
+ float *upscalingBR_kernel()
+ {
+ const static float one = 3.0 / 8.0;
+ const static float two = 2.0 / 8.0;
+ const static float three = 2.0 / 8.0;
+ const static float four = 1.0 / 8.0;
+
+ float *kernel = new float[4];
+
+ kernel[0] = one;
+ kernel[1] = two;
+ kernel[2] = three;
+ kernel[3] = four;
+
+ return kernel;
+ }
+
+ template<typename I>
+ unsigned upscalePixel(const I& original, int i, int j, int type)
+ {
+ float *kernel;
+ window2d win;
+ mln_psite(I) p(i, j);
+ float value = 0;
+ unsigned index = 0;
+ int iStart = 0;
+ int jStart = 0;
+
+ if (type == 0)
+ {
+ kernel = upscalingTL_kernel();
+ iStart = -1;
+ jStart = -1;
+ }
+ else if (type == 1)
+ {
+ kernel = upscalingTR_kernel();
+ iStart = 0;
+ jStart = -1;
+ }
+ else if (type == 2)
+ {
+ kernel = upscalingBL_kernel();
+ iStart = -1;
+ jStart = 0;
+ }
+ else
+ {
+ kernel = upscalingBR_kernel();
+ iStart = 0;
+ jStart = 0;
+ }
+
+ for (int ii = iStart; ii < iStart + 2; ++ii)
+ for (int jj = jStart; jj < jStart + 2; ++jj)
+ win.insert(ii, jj);
+
+ mln_qiter(window2d) q(win, p);
+
+ for_all(q)
+ {
+ if (original.has(q))
+ {
+ value += original(q) * kernel[index];
+ }
+
+ ++index;
+ }
+
+ return (static_cast<int>(value));
+ }
+ // Downscale by 2 the image resolution
+ template<typename I>
+ I downscaling2(const I& original)
+ {
+ mln_piter(I) p(original.domain());
+ window2d win;
+ int index = 0;
+
+ // Initialize the rescaled image
+ box2d size(original.nrows() / 2, original.ncols() / 2);
+ I reduced(size);
+
+ // Set the 2x2 window matrix
+ for (int i = 0; i < 2; ++i)
+ for (int j = 0; j < 2; ++j)
+ win.insert(i, j);
+
+ // Iterate through all image sites
+ for_all(p)
+ {
+ // Get 1/4 of total pixels
+ if (index % 2 == 0)
+ {
+ int i = (index % original.ncols()) / 2;
+ int j = (index / original.ncols()) / 2;
+ int count = 0;
+ int sum = 0;
+ mln_qiter(window2d) q(win, p);
+
+ // Iterate through all window image sites
+ for_all(q)
+ {
+ if (original.has(q))
+ {
+ sum += original(q);
+ ++count;
+ }
+ }
+
+ if (reduced.has(point2d(j, i)))
+ opt::at(reduced, j, i) = sum / count;
+ }
+
+ ++index;
+ }
+
+ return reduced;
+ }
+
+ // Upscale by 2 the image resolution
+ template<typename I>
+ I upscaling2(const I& original)
+ {
+ box2d size(original.nrows() * 2, original.ncols() * 2);
+ I upscaled(size);
+
+ mln_piter(I) p(upscaled.domain());
+ int index = 0;
+
+ for_all(p)
+ {
+ int i = p.col();
+ int j = p.row();
+
+ if (i % 2 == 0 && j % 2 == 0) // Top left
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 0);
+ else if (i % 2 == 0) // Bottom left
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 2);
+ else if (j % 2 == 0) // Top right
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 1);
+ else // Bottom right
+ opt::at(upscaled, i, j) = upscalePixel(original, i / 2, j / 2, 3);
+
+ ++index;
+ }
+
+ return upscaled;
+ }
+}
+
+#endif /* ! VRAC_HH */
--
1.7.10.4
1
0

*****SPAM***** Superb Chance for Employment for Worldwide Population - Environmental corporation rooting out and Recruiting Potential Candidates
by olena-patches@lrde.epita.fr 24 Jul '13
by olena-patches@lrde.epita.fr 24 Jul '13
24 Jul '13
Environmental enterprise searching for representation internationally
5% commission on 200K cash flow originated from promotion and sales of proprietary research articles
Necessary conditions:
- Own a company
- Be reachable on daily basis through E-mail, phone or Skype
- Proper execution of all planned undertakings
In case if being interested, please provide:
- �Name and Surname
- �Age
- �Telephone number (including country code)
- City and Country
- �Email
Please answer to: Delores(a)careers-consulting.com
Faithfully yours,
HR dept
1
0

23 Jul '13
---
milena/sandbox/anthony/test-opencv/Makefile | 19 +++++++
milena/sandbox/anthony/test-opencv/keith.pbm | Bin 0 -> 262159 bytes
milena/sandbox/anthony/test-opencv/main.cpp | 66 +++++++++++++++++++++++++
milena/sandbox/anthony/test-opencv/tongue.pbm | 29 +++++++++++
4 files changed, 114 insertions(+)
create mode 100644 milena/sandbox/anthony/test-opencv/Makefile
create mode 100644 milena/sandbox/anthony/test-opencv/keith.pbm
create mode 100644 milena/sandbox/anthony/test-opencv/main.cpp
create mode 100644 milena/sandbox/anthony/test-opencv/tongue.pbm
diff --git a/milena/sandbox/anthony/test-opencv/Makefile b/milena/sandbox/anthony/test-opencv/Makefile
new file mode 100644
index 0000000..1634b35
--- /dev/null
+++ b/milena/sandbox/anthony/test-opencv/Makefile
@@ -0,0 +1,19 @@
+.PHONY: cv
+
+CCACHE=
+CXX=g++
+SRC=main.cpp
+LIBS=-L/opt/local/include -lopencv_highgui -lopencv_core -lopencv_features2d -lopencv_nonfree -D_GNU_SOURCE
+OUTPUT=cv
+CLEAN=${OUTPUT}
+
+all: cv
+
+cv:
+ ${CCACHE} ${CXX} -O2 ${LIBS} ${SRC} -o ${OUTPUT}
+
+debug:
+ ${CCACHE} ${CXX} -g -ggdb -O0 ${LIBS} ${SRC} -o ${OUTPUT}
+
+clean:
+ rm -rf ${CLEAN}
diff --git a/milena/sandbox/anthony/test-opencv/keith.pbm b/milena/sandbox/anthony/test-opencv/keith.pbm
new file mode 100644
index 0000000..b0997a3
Binary files /dev/null and b/milena/sandbox/anthony/test-opencv/keith.pbm differ
diff --git a/milena/sandbox/anthony/test-opencv/main.cpp b/milena/sandbox/anthony/test-opencv/main.cpp
new file mode 100644
index 0000000..c91a6c3
--- /dev/null
+++ b/milena/sandbox/anthony/test-opencv/main.cpp
@@ -0,0 +1,66 @@
+#include <iostream>
+#include <vector>
+
+#include "opencv2/core/core.hpp"
+#include "opencv2/features2d/features2d.hpp"
+#include "opencv2/nonfree/features2d.hpp"
+#include "opencv2/highgui/highgui.hpp"
+
+
+// MAIN ENTRY POINT
+int main(int argc, char* argv[])
+{
+ const cv::Mat input = cv::imread("tongue.pbm");
+ cv::SiftFeatureDetector detector;
+ std::vector<cv::KeyPoint> keypoints;
+ detector.detect(input, keypoints);
+
+ cv::Mat output;
+ cv::drawKeypoints(input, keypoints, output);
+ cv::imwrite("sift.jpg", output);
+
+ return 0;
+
+
+
+ // std::string inputPath, inputPath2, toolchainPath, outputPath;
+ // std::deque<ourfilters::eFilter> toolchain;
+ // bool* multithread = new bool(true);
+
+ // int validCommandLine = getCommandLine(argc, argv, inputPath,
+ // inputPath2,
+ // toolchainPath,
+ // outputPath,
+ // multithread);
+
+ // bool twoSources = inputPath2.length() > 0;
+
+ // if (!validCommandLine)
+ // return errors::invalidCommandLine();
+
+ // parser::getSteps(toolchainPath, toolchain);
+
+ // if (!(*multithread))
+ // {
+ // std::cout << "single-threader" << std::endl;
+ // tbb::task_scheduler_init intit(1);
+ // }
+
+ // tbb::pipeline pipeline;
+
+ // Picker picker(inputPath, inputPath2, twoSources);
+ // pipeline.add_filter(picker);
+
+ // ApplyFilters applicator(toolchain);
+ // pipeline.add_filter(applicator);
+
+ // Writer writer(outputPath,
+ // picker.get_codec(),
+ // picker.get_fps(),
+ // picker.get_dimensions());
+ // pipeline.add_filter(writer);
+
+ // pipeline.run(128);
+
+ // return 0;
+}
diff --git a/milena/sandbox/anthony/test-opencv/tongue.pbm b/milena/sandbox/anthony/test-opencv/tongue.pbm
new file mode 100644
index 0000000..a85a0f6
--- /dev/null
+++ b/milena/sandbox/anthony/test-opencv/tongue.pbm
@@ -0,0 +1,29 @@
+P5
+512
+512
+255
+���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������õ���}yusqpppqtx~����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Ǯ��xrpsuwwxxyyyyyyxxwuqr|��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ϰ�|squwxxyyyyyyyyyyyyyyyyyyywsr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������̣�tquwyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������֪�srwxyyxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyuq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vqvxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyr|�������������������������������������������������������ѻ��~ytqpqrssssrqppsw}��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������封qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyvt��������������������������������������������������ݻ�upsvwxxyyyyyyyyyyyyyxwvspv���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|qvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyxq����������������������������������������������ᶍxptwxyyyyyyyyyyyyyyyyyyyyyyyyxvrt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{qwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyp�������������������������������������������ʗzquxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~pwyyyyyyyyyyyyyyyyyyyyyyyyyxwutsrrstvwyyyyyyyyyyyyyyyyxq���������������������������������������ssxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������̇qwyyyyyyyyyyyyyyyyyyyyyyyywrry���������{rswxyyyyyyyyyyyyywr������������������������������������﵁quyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyvq�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������styyyyyyyyyyyyyyyyyyyyyyyxss��������������Ý|qvyyyyyyyyyyyyyvy������������������������������������qvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~rxyyyyyyyyyyyyyyyyyyyyyyxrw������������������赂qwyyyyyyyyyyyyt��������������������������������ϋqvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyuu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rvyyyyyyyyyyyyyyyyyyyyyyysv�����������������������zsyyyyyyyyyyyyq������������������������������styyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Մrxyyyyyyyyyyyyyyyyyyyyyywr��������������������������ޑqxyyyyyxyyyywv����������������������������~rxyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxp�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vtyyyyyyyyyyyyyyyyyyyyyyys|������������������������������swyyyyxyyyyys��������������������������qvyyyyxyyyyyyyyyyxxyyxyyyyyyxwvtqprrppsuwxyyyyyyyyyyyyyyyyyxq�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qwyyyyyyyyyyyyyyyyyyyyyyxq���������������������������������uvyyxyyyyyyxr�����������������������ˀryyyyyyyyyyyyyyyyyyyyyxyyywvqs|�����þ����vquwyyyyyyyyyyyyyyyxr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyywr�����������������������������������vwyxyyyyyyyu�����������������������tuyyyyyyyyyyyyyyyyyyyyyyyxvqx���������������Ը�yqvyyyyyyyyyyyyyyvv������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyuw�������������������������������������sxyyyyyyyyxr��������������������qxyyyyyyyyyyyyyyxxyyyyyyxss���������������������ఃqwyyyyyyyyyyyyyt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������݀syyyyyyyyyyyyyyyyyyyyyyyu{���������������������������������������qyyyyyyyyys������������������ڄryyyyyyyyyyyyyyyyyyyyyyxrw��������������������������~ryyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������}tyyyyyyyyyyyyyyyyyyyyyyyu}�����������������������������������������syyyyyxyyxu�����������������ytyyyyyyyyyyyyyyyyyyyyyysw������������������������������rwyyyyyyyyyyyxr�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������}tyyyyyyyyyyyyyyxyyyyyyyyu������������������������������������������zwyyyyyyyyr����������������uuyyyyyyyyyyyyyyyyyyyyyus����������������������������������vvyyyyyyyyyyyu������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~tyyyyyyyyyyyyyyyxyyyyyyyt}��������������������������������������������qyyyyyyyyw~��������������rwyyyyyyyyyyyyyyyyyyyyxr�������������������������������������xvyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syxyyyyyyyyyyyyyyyyyyyyyww���������������������������������������������}wyyyyyyyyq�������������qxyyyyyyyyyyyyyyyyyyyywr���������������������������������������wwyyyyyyyyyyxv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyxyyyyyyyyyyyyyq�����������������������������������������������qyyyyyyyys������������pyyyyyyyyyyyyyyyyyyyyyux�����������������������������������������ryyyyyyyyyyys��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyxyyyyyyyyyyyyyyyyyyys������������������������������������������������uxyyyyyyyw}����������pyyyyyyyyyyyyyyyyyyyyyt}�������������������������������������������ryyyyyyyyyyxt������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyxu������������������������������������������������wyyyyyyyxr���������pxyyyyyyyyyyyyyyyyyyyyv}��������������������������������������������|wyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������vyyyyyyyyr��������qyyyyyyyyyyyyyyyyyyyyywy����������������������������������������������qyyyyyyyyyyxt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyxv��������������������������������������������������uyyyyyyyyu�������qyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������yxyyyyyyyyyys���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyt��������������������������������������������������vyyyyyyyyxy�����qxyyyyyyyyyyyyyyyyyyyyyt�������������������������������������������������uyyyyyyyyyyxw�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������xxyyyyyyyyyq����swyyyyyyyyyyyyyyyyyyyyyxr�������������������������������������������������pyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{vyyyyyyyyyyyyyyyyyyyyyyyyyxy��������������������������������������������������qyyyyyyyyyyq���uwyyyyyyyyyyyyyyyyyyyyyyw~�������������������������������������������������ryyyyyyyyyyyw~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyv���������������������������������������������������uyyyyyyyyyyu��|vyyyyyyyyyyyyyyyyyyyyyyyw��������������������������������������������������vxyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rxyyyyyyyyyyyyyyyyyyyyyyyyyyu��������������������������������������������������tyyyyyyyyyyyy|�vyyyyyyyyyyyyyyyyyyyyyyyyw}�������������������������������������������������wxyyyyyyyyyyyt����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyv��������������в����������������������������������tyyyyyyyyyyyyxwyyyyyyyyyyyyyyyyyyyyyyyyyxs�������������������������������������������������tyyxyyyyyyyyyxv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyxw����������ȣ�uqtwvsqy���������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�������������������������������������������������qyyxyyyyyyyyyyq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyywz�����Ҽ�~srvxyyyyyyxsr������������������������txyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys��������������ֳ�yz����������������������������tyyyyyyyyyyyyyv�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyywry��}vqtwxyyyyyyyyyyyxtr���������������������uwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyvy����������ܲ�vquwxwup�������������������������wxyyyyyyyyyyyyyxs�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ywyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyxwwwxyyyyyyyyyyyyyyyyyxts�����������������rxyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyvu������ն�xpvxyyyyyyys{�����������������������syyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyss�������������ryyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxrx����wquwyyyyyyyyyyyuw���������������������ryyyyyyyyyyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytr��������˪�rvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxutuvxyyyyyyyyyyyyyyyvu�������������������uxyyyyyyyyyyyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywrs|���}tqvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyws����������������rwyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywvvvwxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxq�������������~rxyyyyyyyyyyyyyyyyyyyw�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyxyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytu�������Ų�zrwyyyyyyyyyyyyyyyyyyyyyxs������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxtqx~~|wrquxyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyxyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxwwwxyyyyyyxyyyyyyyyyyyyyyyyyyyyyw�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyv��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxv�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyp������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyxyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxy����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|wyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw{�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxs�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyw�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyxyyyyyyyyyyyyyyr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyx{��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxu�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyw���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyxyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxwvtrpqrrppruvxyyyyyyyyyyyyxyyyyyyyyyyyyyxyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������txyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyxuqs|������������xqswyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxs�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyxtqz����������������۾�}qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyuqz����������������������꿏tsxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxv���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxss����������������������������љusyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������xwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywrw��������������������������������Ԕruyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxwwwwxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyywx������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyywqz������������������������������������Ƅqxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyywvtqptwz|}}|yvspqtvxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyr������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyywr{����������������������������������������utyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxvqs{�������������Ⱦ���yqswyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxw����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyxry�������������������������������������������Ӈqxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxtqy��������������������������ssxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyr���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������vwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyysu�����������������������������������������������svyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuqz�����������������������������țyqwyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxu�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxuq���������������������������������������������������~ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyywqv�����������������������������������~qwyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyys������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syxyyyyyyyyyyyyyyyyyyyyyyyyyyyywq������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyxtq���������������������������������������{sxyyyyyyyyyyyyyyyyyyyyyyxyyyxyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyxyxry���������������������������������������������������������utyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyxst��������������������������������������������rvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyv����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyxyyyyyyxyyyyyyyyyyyyyyyyyyyyur�����������������������������������������������������������҄rxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxvqx�����������������������������������������������ƀsyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������rxyyxyyyyyxyyyyyyyyyyyyyyyyyy}v���������������������������������������������������������������rvyyyyyyyyyyxyyyyyyyyyyyyyyyyyyup���������������������������������������������������qxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twyyyyyyyyyyyyyyyyyyyyyyyyyyz�b�����������������������������������������������������������������ŀrxyyyyyyyyxyyyyyyyyyyyyyyyxsr��������������������������������������������������������swyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wvyyyyyyyyyyyyxyyyyyxyyyyyyy~{Ma������������������������������������������������������������������usyyyyyyyyyyyyyyyyyyyyxvqx�����������������������������������������������������������vvyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������{uyyyyyyyyyyyxyyyyyyyyyyyyy{�g%���������������������������������������������������������������������������������������������������������������������������������������������������������zuyyyyyyyyyyyyyyyyyyyyyyyr0++�����������������������������pxyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyut�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz�Mxyyyyyyvs��������������������̑sq9++M}|xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyym+
"(09EO]lv{�|zyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz|��J+)Jgvz~��~}}|||{{{{{{{zzzzyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy{~>+S�zyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr|������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyy~_+=o�|yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyy}s"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy�Z yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyr}������������{wyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyy�W++a�yyxxyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyytz����������������sxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyeyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyxr�������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz<+eyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyu���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|vyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyq��������������������~vyyyyyyyyyyyyy:yyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyxt���������������������ryyyyyyyyyyyyyyWyyyyyyyyyyyyyyyyyyyyyyyyyyyyys����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyr����������������������uwyyyyyyyyyyyyyy6yyyyyyyyyyyyxxyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr�����������������������ryyyyyyyyyyyyyyy�Byyyyyyyyyyyyyyyyyyyyyyyq����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyyww�����������������������syyyyyyyyyyyyyyy{q+`~xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyyxx�����������������������vxxxyyyyyyyyyyyyyy{n
++m|yyyyyxyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyt��������������������{xyyyyyyyyyyyyyyyyyyyyyyyyyyyyzv~yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxw���������������������ryyyyyyyyyyyyyyyyyyyyyyyyyyyy|m yyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyv�����������������������ryyyyyyyyyyyyyyyyyxyyyyyyyyy|m
+yzyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyxyyyu����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������wyyyyyyyyyyxyyyyyyyyyyyxyyyyyyyyyu�����������������yxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt���������������������������wyyyyyyyyyyyyyyyyyyyyyyxy|iyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������syyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyxwxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxt�����������������������������syyyyyyyyyyyyyyyyyyyyyyyy}dyyyyyyyyyyyyyyyyyyyyyyyyyyyywy��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������uyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyw{������������������������������syyyyyyyxyyyyyyyyyyyyyyyyMyyyyyyyyyyyyyyyyyyxyyyyr����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyys�������������������������������vyyyyyyyyyyyyyyyyyyyyyyyzzyyyyyyyyyyyyyyyxp�����������������������������������`++�+����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ryyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyxyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyZ++{�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������qyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|w����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz�D+d����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zuyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyy�Z +Z����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyq%+������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zrxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|g,+>��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������宀qtxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyz}k<����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ø����~zwusqqppppoppqrtvz~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
--
1.7.10.4
1
0

*****SPAM***** Environmental organization is expanding and currently recruiting worldwide reps
by olena-patches@lrde.epita.fr 22 Jul '13
by olena-patches@lrde.epita.fr 22 Jul '13
22 Jul '13
Environmental enterprise searching for representation internationally
5% commission on 200K cash flow originated from promotion and sales of proprietary research articles
Necessary conditions:
- Own a company
- Be reachable on daily basis through E-mail, phone or Skype
- Proper execution of all planned undertakings
In case if being interested, please provide:
- Name and Surname
- Age
- Telephone number (including country code)
- City and Country
- Email
Please answer to: Lenny(a)careers-consulting.com
Faithfully yours,
HR dept
1
0