Vacuum: allow usage of more than 1GB of work mem

Started by Claudio Freireover 9 years ago200 messages
#1Claudio Freire
klaussfreire@gmail.com
1 attachment(s)

The attached patch allows setting maintainance_work_mem or
autovacuum_work_mem higher than 1GB (and be effective), by turning the
allocation of the dead_tuples into a huge allocation.

This results in fewer index scans for heavily bloated tables, and
could be a lifesaver in many situations (in particular, the situation
I'm living right now in production, where we don't have enough room
for a vacuum full, and have just deleted 75% of a table to make room
but have to rely on regular lazy vacuum to free the space).

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

Tested with pgbench scale 4000 after deleting the whole
pgbench_accounts table, seemed to work fine.

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem.patchDownload
From feddd4f58c30ca6a446ce0eed343f2562030f0e5 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:21:01 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turns the palloc for dead_tuples into a huge allocation to allow
using more than 1GB worth of dead_tuples, saving index scans on
heavily bloated tables
---
 src/backend/commands/vacuumlazy.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 231e92d..dbe2040 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -155,6 +155,7 @@ static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
+static void lazy_space_dealloc(LVRelStats *vacrelstats);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
@@ -1310,6 +1311,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
 
+	lazy_space_dealloc(vacrelstats);
+
 	/* If no indexes, make log report that lazy_vacuum_heap would've made */
 	if (vacuumed_pages)
 		ereport(elevel,
@@ -1952,7 +1955,7 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+		maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1969,7 +1972,19 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	vacrelstats->num_dead_tuples = 0;
 	vacrelstats->max_dead_tuples = (int) maxtuples;
 	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+		MemoryContextAllocHuge(CurrentMemoryContext, maxtuples * sizeof(ItemPointerData));
+}
+
+/*
+ * lazy_space_dealloc - free lazy vacuum work mem
+ */
+static void
+lazy_space_dealloc(LVRelStats *vacrelstats)
+{
+	if (vacrelstats->dead_tuples != NULL) {
+		pfree(vacrelstats->dead_tuples);
+		vacrelstats->dead_tuples = NULL;
+	}
 }
 
 /*
-- 
2.6.6

#2Simon Riggs
simon@2ndquadrant.com
In reply to: Claudio Freire (#1)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The attached patch allows setting maintainance_work_mem or
autovacuum_work_mem higher than 1GB (and be effective), by turning the
allocation of the dead_tuples into a huge allocation.

This results in fewer index scans for heavily bloated tables, and
could be a lifesaver in many situations (in particular, the situation
I'm living right now in production, where we don't have enough room
for a vacuum full, and have just deleted 75% of a table to make room
but have to rely on regular lazy vacuum to free the space).

This part looks fine. I'm inclined to commit the attached patch soon.

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

Tested with pgbench scale 4000 after deleting the whole
pgbench_accounts table, seemed to work fine.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

allow_vacuum_work_mem_gt_1GB.v2.patchapplication/octet-stream; name=allow_vacuum_work_mem_gt_1GB.v2.patchDownload
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 231e92d..db22a26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1952,7 +1952,7 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+		maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1969,7 +1969,8 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	vacrelstats->num_dead_tuples = 0;
 	vacrelstats->max_dead_tuples = (int) maxtuples;
 	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+		MemoryContextAllocHuge(CurrentMemoryContext,
+							maxtuples * sizeof(ItemPointerData));
 }
 
 /*
#3Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Simon Riggs (#2)
Re: Vacuum: allow usage of more than 1GB of work mem

On 9/4/16 1:46 AM, Simon Riggs wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

If you're asking about how long the dealloc takes, we're going to have
to pay that cost anyway when the context gets destroyed/reset, no? Doing
that sooner rather than later certainly seems like a good idea since
we've seen that truncation can take quite some time. Might as well give
the memory back to the OS ASAP.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532) mobile: 512-569-9461

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Claudio Freire
klaussfreire@gmail.com
In reply to: Simon Riggs (#2)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sun, Sep 4, 2016 at 3:46 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

In the test case I mentioned, it takes longer than the vacuum part itself.

Other than freeing RAM there's no gain. I didn't measure any speed
difference while testing, but that's probably because the backward
scan doesn't benefit from the cache, but other activity on the system
might. So, depending on the workload on the server, extra available
RAM may be a significant gain on its own or not. It just didn't seem
there was a reason to keep that RAM reserved, especially after making
it a huge allocation.

I'm fine either way. I can remove that from the patch or leave it
as-is. It just seemed like a good idea at the time.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#4)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Sep 5, 2016 at 11:50 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Sun, Sep 4, 2016 at 3:46 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

In the test case I mentioned, it takes longer than the vacuum part itself.

Other than freeing RAM there's no gain. I didn't measure any speed
difference while testing, but that's probably because the backward
scan doesn't benefit from the cache, but other activity on the system
might. So, depending on the workload on the server, extra available
RAM may be a significant gain on its own or not. It just didn't seem
there was a reason to keep that RAM reserved, especially after making
it a huge allocation.

I'm fine either way. I can remove that from the patch or leave it
as-is. It just seemed like a good idea at the time.

Rebased and split versions attached

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem.patchDownload
From 7b47b59d89bf3edaeb11c4ffe3660f3d5b7b86de Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:21:01 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turns the palloc for dead_tuples into a huge allocation to allow
using more than 1GB worth of dead_tuples, saving index scans on
heavily bloated tables
---
 src/backend/commands/vacuumlazy.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 231e92d..2c98da4 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1952,7 +1952,7 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+		maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1969,7 +1969,7 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	vacrelstats->num_dead_tuples = 0;
 	vacrelstats->max_dead_tuples = (int) maxtuples;
 	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+		MemoryContextAllocHuge(CurrentMemoryContext, maxtuples * sizeof(ItemPointerData));
 }
 
 /*
-- 
2.6.6

0002-Vacuum-free-dead_tuples-sooner.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-free-dead_tuples-sooner.patchDownload
From 24fa0815d915cc31ae455ef60585f54a33dbd09c Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:21:01 -0300
Subject: [PATCH 2/2] Vacuum: free dead_tuples sooner

Frees the dead_tuples array sooner, decreasing impact of huge settings
for autovacuum_work_mem or maintainance_work_mem during lazy vacuum.
---
 src/backend/commands/vacuumlazy.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 2c98da4..dbe2040 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -155,6 +155,7 @@ static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
+static void lazy_space_dealloc(LVRelStats *vacrelstats);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
@@ -1310,6 +1311,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
 
+	lazy_space_dealloc(vacrelstats);
+
 	/* If no indexes, make log report that lazy_vacuum_heap would've made */
 	if (vacuumed_pages)
 		ereport(elevel,
@@ -1973,6 +1976,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 }
 
 /*
+ * lazy_space_dealloc - free lazy vacuum work mem
+ */
+static void
+lazy_space_dealloc(LVRelStats *vacrelstats)
+{
+	if (vacrelstats->dead_tuples != NULL) {
+		pfree(vacrelstats->dead_tuples);
+		vacrelstats->dead_tuples = NULL;
+	}
+}
+
+/*
  * lazy_record_dead_tuple - remember one deletable tuple
  */
 static void
-- 
2.6.6

#6Simon Riggs
simon@2ndquadrant.com
In reply to: Claudio Freire (#4)
Re: Vacuum: allow usage of more than 1GB of work mem

On 5 September 2016 at 15:50, Claudio Freire <klaussfreire@gmail.com> wrote:

On Sun, Sep 4, 2016 at 3:46 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

In the test case I mentioned, it takes longer than the vacuum part itself.

Please provide a test case and timings so we can see what's happening.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Claudio Freire
klaussfreire@gmail.com
In reply to: Simon Riggs (#6)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Sep 5, 2016 at 5:36 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 5 September 2016 at 15:50, Claudio Freire <klaussfreire@gmail.com> wrote:

On Sun, Sep 4, 2016 at 3:46 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

In the test case I mentioned, it takes longer than the vacuum part itself.

Please provide a test case and timings so we can see what's happening.

The referenced test case is the one I mentioned on the OP:

- createdb pgbench
- pgbench -i -s 4000 pgbench
- psql pgbench -c 'delete from pgbench_accounts;'
- vacuumdb -v -t pgbench_accounts pgbench

fsync=off, autovacuum=off, maintainance_work_mem=4GB

From what I remember, it used ~2.7GB of RAM up until the truncate
phase, where it freed it. It performed a single index scan over the
PK.

I don't remember timings, and I didn't take them, so I'll have to
repeat the test to get them. It takes all day and makes my laptop
unusably slow, so I'll post them later, but they're not very
interesting. The only interesting bit is that it does a single index
scan instead of several, which on TB-or-more tables it's kinda nice.

Btw, without a further patch to prefetch pages on the backward scan
for truncate, however, my patience ran out before it finished
truncating. I haven't submitted that patch because there was an
identical patch in an older thread that was discussed and more or less
rejected since it slightly penalized SSDs. While I'm confident my
version of the patch is a little easier on SSDs, I haven't got an SSD
at hand to confirm, so that patch is still waiting on the queue until
I get access to an SSD. The tests I'll make include that patch, so the
timing regarding truncate won't be representative of HEAD (I really
can't afford to run the tests on a scale=4000 pgbench without that
patch, it crawls, and smaller scales don't fill the dead_tuples
array).

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#8Simon Riggs
simon@2ndquadrant.com
In reply to: Claudio Freire (#7)
Re: Vacuum: allow usage of more than 1GB of work mem

On 5 September 2016 at 21:58, Claudio Freire <klaussfreire@gmail.com> wrote:

How long does that part ever take? Is there any substantial gain from this?

Btw, without a further patch to prefetch pages on the backward scan
for truncate, however, my patience ran out before it finished
truncating. I haven't submitted that patch because there was an
identical patch in an older thread that was discussed and more or less
rejected since it slightly penalized SSDs.

OK, thats enough context. Sorry for being forgetful on that point.

Please post that new patch also.

This whole idea of backwards scanning to confirm truncation seems
wrong. What we want is an O(1) solution. Thinking.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#9Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#1)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sat, Sep 3, 2016 at 8:55 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

The attached patch allows setting maintainance_work_mem or
autovacuum_work_mem higher than 1GB (and be effective), by turning the
allocation of the dead_tuples into a huge allocation.

This results in fewer index scans for heavily bloated tables, and
could be a lifesaver in many situations (in particular, the situation
I'm living right now in production, where we don't have enough room
for a vacuum full, and have just deleted 75% of a table to make room
but have to rely on regular lazy vacuum to free the space).

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

Tested with pgbench scale 4000 after deleting the whole
pgbench_accounts table, seemed to work fine.

The problem with this is that we allocate the entire amount of
maintenance_work_mem even when the number of actual dead tuples turns
out to be very small. That's not so bad if the amount of memory we're
potentially wasting is limited to ~1 GB, but it seems pretty dangerous
to remove the 1 GB limit, because somebody might have
maintenance_work_mem set to tens or hundreds of gigabytes to speed
index creation, and allocating that much space for a VACUUM that
encounters 1 dead tuple does not seem like a good plan.

What I think we need to do is make some provision to initially
allocate only a small amount of memory and then grow the allocation
later if needed. For example, instead of having
vacrelstats->dead_tuples be declared as ItemPointer, declare it as
ItemPointer * and allocate the array progressively in segments. I'd
actually argue that the segment size should be substantially smaller
than 1 GB, like say 64MB; there are still some people running systems
which are small enough that allocating 1 GB when we may need only 6
bytes can drive the system into OOM.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#10Claudio Freire
klaussfreire@gmail.com
In reply to: Jim Nasby (#3)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sun, Sep 4, 2016 at 8:10 PM, Jim Nasby <Jim.Nasby@bluetreble.com> wrote:

On 9/4/16 1:46 AM, Simon Riggs wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from
this?

If you're asking about how long the dealloc takes, we're going to have to
pay that cost anyway when the context gets destroyed/reset, no? Doing that
sooner rather than later certainly seems like a good idea since we've seen
that truncation can take quite some time. Might as well give the memory back
to the OS ASAP.

AFAIK, except on debug builds where it has to memset the whole thing,
the cost is constant (unrelated to the allocated block size), so it
should be rather small in this context.

On Tue, Sep 6, 2016 at 1:42 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Sat, Sep 3, 2016 at 8:55 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

The attached patch allows setting maintainance_work_mem or
autovacuum_work_mem higher than 1GB (and be effective), by turning the
allocation of the dead_tuples into a huge allocation.

This results in fewer index scans for heavily bloated tables, and
could be a lifesaver in many situations (in particular, the situation
I'm living right now in production, where we don't have enough room
for a vacuum full, and have just deleted 75% of a table to make room
but have to rely on regular lazy vacuum to free the space).

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

Tested with pgbench scale 4000 after deleting the whole
pgbench_accounts table, seemed to work fine.

The problem with this is that we allocate the entire amount of
maintenance_work_mem even when the number of actual dead tuples turns
out to be very small. That's not so bad if the amount of memory we're
potentially wasting is limited to ~1 GB, but it seems pretty dangerous
to remove the 1 GB limit, because somebody might have
maintenance_work_mem set to tens or hundreds of gigabytes to speed
index creation, and allocating that much space for a VACUUM that
encounters 1 dead tuple does not seem like a good plan.

What I think we need to do is make some provision to initially
allocate only a small amount of memory and then grow the allocation
later if needed. For example, instead of having
vacrelstats->dead_tuples be declared as ItemPointer, declare it as
ItemPointer * and allocate the array progressively in segments. I'd
actually argue that the segment size should be substantially smaller
than 1 GB, like say 64MB; there are still some people running systems
which are small enough that allocating 1 GB when we may need only 6
bytes can drive the system into OOM.

This would however incur the cost of having to copy the whole GB-sized
chunk every time it's expanded. It woudln't be cheap.

I've monitored the vacuum as it runs and the OS doesn't map the whole
block unless it's touched, which it isn't until dead tuples are found.
Surely, if overcommit is disabled (as it should), it could exhaust the
virtual address space if set very high, but it wouldn't really use the
memory unless it's needed, it would merely reserve it.

To fix that, rather than repalloc the whole thing, dead_tuples would
have to be an ItemPointer** of sorted chunks. That'd be a
significantly more complex patch, but at least it wouldn't incur the
memcpy. I could attempt that, but I don't see the difference between
vacuum and create index in this case. Both could allocate a huge chunk
of the virtual address space if maintainance work mem says so, both
proportional to the size of the table. I can't see how that could take
any DBA by surprise.

A sensible compromise could be dividing the maintainance_work_mem by
autovacuum_max_workers when used in autovacuum, as is done for cost
limits, to protect those that set both rather high.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#11Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#10)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 10:28 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

The problem with this is that we allocate the entire amount of
maintenance_work_mem even when the number of actual dead tuples turns
out to be very small. That's not so bad if the amount of memory we're
potentially wasting is limited to ~1 GB, but it seems pretty dangerous
to remove the 1 GB limit, because somebody might have
maintenance_work_mem set to tens or hundreds of gigabytes to speed
index creation, and allocating that much space for a VACUUM that
encounters 1 dead tuple does not seem like a good plan.

What I think we need to do is make some provision to initially
allocate only a small amount of memory and then grow the allocation
later if needed. For example, instead of having
vacrelstats->dead_tuples be declared as ItemPointer, declare it as
ItemPointer * and allocate the array progressively in segments. I'd
actually argue that the segment size should be substantially smaller
than 1 GB, like say 64MB; there are still some people running systems
which are small enough that allocating 1 GB when we may need only 6
bytes can drive the system into OOM.

This would however incur the cost of having to copy the whole GB-sized
chunk every time it's expanded. It woudln't be cheap.

No, I don't want to end up copying the whole array; that's what I
meant by allocating it progressively in segments. Something like what
you go on to propose.

I've monitored the vacuum as it runs and the OS doesn't map the whole
block unless it's touched, which it isn't until dead tuples are found.
Surely, if overcommit is disabled (as it should), it could exhaust the
virtual address space if set very high, but it wouldn't really use the
memory unless it's needed, it would merely reserve it.

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

To fix that, rather than repalloc the whole thing, dead_tuples would
have to be an ItemPointer** of sorted chunks. That'd be a
significantly more complex patch, but at least it wouldn't incur the
memcpy.

Right, this is what I had in mind. I don't think this is actually
very complicated, because the way we use this array is really simple.
We basically just keep appending to the array until we run out of
space, and that's not very hard to implement with an array-of-arrays.
The chunks are, in some sense, sorted, as you say, but you don't need
to do qsort() or anything like that. You're just replacing a single
flat array with a data structure that can be grown incrementally in
fixed-size chunks.

I could attempt that, but I don't see the difference between
vacuum and create index in this case. Both could allocate a huge chunk
of the virtual address space if maintainance work mem says so, both
proportional to the size of the table. I can't see how that could take
any DBA by surprise.

Really? CREATE INDEX isn't going to allocate more storage space than
the size of the data actually being sorted, because tuplesort.c is
smart about that kind of thing. But VACUUM will very happily allocate
vastly more memory than the number of dead tuples. It is thankfully
smart enough not to allocate more storage than the number of line
pointers that could theoretically exist in a relation of the given
size, but that only helps for very small relations. In a large
relation that divergence between the amount of storage space that
could theoretically be needed and the amount that is actually needed
is likely to be extremely high. 1 TB relation = 2^27 blocks, each of
which can contain MaxHeapTuplesPerPage dead line pointers. On my
system, MaxHeapTuplesPerPage is 291, so that's 291 * 2^27 possible
dead line pointers, which at 6 bytes each is 291 * 6 * 2^27 = ~218GB,
but the expected number of dead line pointers is much less than that.
Even if this is a vacuum triggered by autovacuum_vacuum_scale_factor
and you're using the default of 0.2 (probably too high for such a
large table), assuming there are about 60 tuples for page (which is
what I get with pgbench -i) the table would have about 2^27 * 60 = 7.7
billion tuples of which 1.5 billion would be dead, meaning we need
about 9-10GB of space to store all of those dead tuples. Allocating
as much as 218GB when we need 9-10GB is going to sting, and I don't
see how you will get a comparable distortion with CREATE INDEX. I
might be missing something, though.

There's no real issue when there's only one process running on the
system at a time. If the user set maintenance_work_mem to an amount
of memory that he can't afford to pay even once, then that's simple
misconfiguration and it's not really our problem. The issue is that
when there are 3 or potentially more VACUUM processes running plus a
CREATE INDEX or two at the same time. If you set maintenance_work_mem
to a value that is large enough to make the CREATE INDEX run fast, now
with your patch that is also going to cause each VACUUM process to
gobble up lots of extra memory that it probably doesn't need, and now
you may well start to get failures. I've seen this happen even with
the current 1GB limit, though you need a pretty small system - e.g.
8GB RAM - for it to be a problem. I think it is really really likely
to cause big problems for us if we dramatically increase that limit
without making the allocation algorithm smarter.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#12Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#11)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:39 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I could attempt that, but I don't see the difference between
vacuum and create index in this case. Both could allocate a huge chunk
of the virtual address space if maintainance work mem says so, both
proportional to the size of the table. I can't see how that could take
any DBA by surprise.

Really? CREATE INDEX isn't going to allocate more storage space than
the size of the data actually being sorted, because tuplesort.c is
smart about that kind of thing. But VACUUM will very happily allocate
vastly more memory than the number of dead tuples. It is thankfully
smart enough not to allocate more storage than the number of line
pointers that could theoretically exist in a relation of the given
size, but that only helps for very small relations. In a large
relation that divergence between the amount of storage space that
could theoretically be needed and the amount that is actually needed
is likely to be extremely high. 1 TB relation = 2^27 blocks, each of
which can contain MaxHeapTuplesPerPage dead line pointers. On my
system, MaxHeapTuplesPerPage is 291, so that's 291 * 2^27 possible
dead line pointers, which at 6 bytes each is 291 * 6 * 2^27 = ~218GB,
but the expected number of dead line pointers is much less than that.
Even if this is a vacuum triggered by autovacuum_vacuum_scale_factor
and you're using the default of 0.2 (probably too high for such a
large table), assuming there are about 60 tuples for page (which is
what I get with pgbench -i) the table would have about 2^27 * 60 = 7.7
billion tuples of which 1.5 billion would be dead, meaning we need
about 9-10GB of space to store all of those dead tuples. Allocating
as much as 218GB when we need 9-10GB is going to sting, and I don't
see how you will get a comparable distortion with CREATE INDEX. I
might be missing something, though.

CREATE INDEX could also allocate 218GB, you just need to index enough
columns and you'll get that.

Aside from the fact that CREATE INDEX will only allocate what is going
to be used and VACUUM will overallocate, the potential to fully
allocate the amount given is still there for both cases.

There's no real issue when there's only one process running on the
system at a time. If the user set maintenance_work_mem to an amount
of memory that he can't afford to pay even once, then that's simple
misconfiguration and it's not really our problem. The issue is that
when there are 3 or potentially more VACUUM processes running plus a
CREATE INDEX or two at the same time. If you set maintenance_work_mem
to a value that is large enough to make the CREATE INDEX run fast, now
with your patch that is also going to cause each VACUUM process to
gobble up lots of extra memory that it probably doesn't need, and now
you may well start to get failures. I've seen this happen even with
the current 1GB limit, though you need a pretty small system - e.g.
8GB RAM - for it to be a problem. I think it is really really likely
to cause big problems for us if we dramatically increase that limit
without making the allocation algorithm smarter.

Ok, a pity it will invalidate all the testing already done though (I
was almost done with the testing).

I guess I'll send the results anyway.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#13Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#12)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 11:22 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

CREATE INDEX could also allocate 218GB, you just need to index enough
columns and you'll get that.

Aside from the fact that CREATE INDEX will only allocate what is going
to be used and VACUUM will overallocate, the potential to fully
allocate the amount given is still there for both cases.

I agree with that, but I think there's a big difference between
allocating the memory only when it's needed and allocating it whether
it is needed or not. YMMV, of course, but that's what I think....

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#11)
Re: Vacuum: allow usage of more than 1GB of work mem

Robert Haas <robertmhaas@gmail.com> writes:

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

While it's not necessarily a bad idea to consider these things,
I think people are greatly overestimating the consequences of the
patch-as-proposed. AFAICS, it does *not* let you tell VACUUM to
eat 100GB of workspace. Note the line right in front of the one
being changed:

         maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
         maxtuples = Min(maxtuples, INT_MAX);
-        maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+        maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));

Regardless of what vac_work_mem is, we aren't gonna let you have more
than INT_MAX ItemPointers, hence 12GB at the most. So the worst-case
increase from the patch as given is 12X. Maybe that's enough to cause
bad consequences on some systems, but it's not the sort of disaster
Robert posits above.

It's also worth re-reading the lines just after this, which constrain
the allocation a whole lot more for small tables. Robert comments:

... But VACUUM will very happily allocate
vastly more memory than the number of dead tuples. It is thankfully
smart enough not to allocate more storage than the number of line
pointers that could theoretically exist in a relation of the given
size, but that only helps for very small relations. In a large
relation that divergence between the amount of storage space that
could theoretically be needed and the amount that is actually needed
is likely to be extremely high. 1 TB relation = 2^27 blocks, each of
which can contain MaxHeapTuplesPerPage dead line pointers. On my
system, MaxHeapTuplesPerPage is 291, so that's 291 * 2^27 possible
dead line pointers, which at 6 bytes each is 291 * 6 * 2^27 = ~218GB,
but the expected number of dead line pointers is much less than that.

If we think the expected number of dead pointers is so much less than
that, why don't we just decrease LAZY_ALLOC_TUPLES, and take a hit in
extra index vacuum cycles when we're wrong?

(Actually, what I'd be inclined to do is let it have MaxHeapTuplesPerPage
slots per page up till a few meg, and then start tailing off the
space-per-page, figuring that the law of large numbers will probably kick
in.)

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#15Simon Riggs
simon@2ndquadrant.com
In reply to: Tom Lane (#14)
Re: Vacuum: allow usage of more than 1GB of work mem

On 6 September 2016 at 19:00, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

While it's not necessarily a bad idea to consider these things,
I think people are greatly overestimating the consequences of the
patch-as-proposed. AFAICS, it does *not* let you tell VACUUM to
eat 100GB of workspace. Note the line right in front of the one
being changed:

maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-        maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+        maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));

Regardless of what vac_work_mem is, we aren't gonna let you have more
than INT_MAX ItemPointers, hence 12GB at the most. So the worst-case
increase from the patch as given is 12X. Maybe that's enough to cause
bad consequences on some systems, but it's not the sort of disaster
Robert posits above.

Is there a reason we can't use repalloc here?

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#16Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#14)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:00 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

While it's not necessarily a bad idea to consider these things,
I think people are greatly overestimating the consequences of the
patch-as-proposed. AFAICS, it does *not* let you tell VACUUM to
eat 100GB of workspace. Note the line right in front of the one
being changed:

maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-        maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+        maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));

Regardless of what vac_work_mem is, we aren't gonna let you have more
than INT_MAX ItemPointers, hence 12GB at the most. So the worst-case
increase from the patch as given is 12X. Maybe that's enough to cause
bad consequences on some systems, but it's not the sort of disaster
Robert posits above.

Hmm, OK. Yes, that is a lot less bad. (I think it's still bad.)

If we think the expected number of dead pointers is so much less than
that, why don't we just decrease LAZY_ALLOC_TUPLES, and take a hit in
extra index vacuum cycles when we're wrong?

Because that's really inefficient. Growing the array, even with a
stupid approach that copies all of the TIDs every time, is a heck of a
lot faster than incurring an extra index vac cycle.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#17Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#15)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:06 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 6 September 2016 at 19:00, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

While it's not necessarily a bad idea to consider these things,
I think people are greatly overestimating the consequences of the
patch-as-proposed. AFAICS, it does *not* let you tell VACUUM to
eat 100GB of workspace. Note the line right in front of the one
being changed:

maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-        maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+        maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));

Regardless of what vac_work_mem is, we aren't gonna let you have more
than INT_MAX ItemPointers, hence 12GB at the most. So the worst-case
increase from the patch as given is 12X. Maybe that's enough to cause
bad consequences on some systems, but it's not the sort of disaster
Robert posits above.

Is there a reason we can't use repalloc here?

There are two possible problems, either of which is necessarily fatal:

1. I expect repalloc probably works by allocating the new space,
copying from old to new, and freeing the old. That could work out
badly if we are nearly the edge of the system's allocation limit.

2. It's slower than the approach proposed upthread of allocating the
array in segments. With that approach, we never need to memcpy()
anything.

On the plus side, it's probably less code.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#18Robert Haas
robertmhaas@gmail.com
In reply to: Robert Haas (#17)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:09 PM, Robert Haas <robertmhaas@gmail.com> wrote:

There are two possible problems, either of which is necessarily fatal:

I meant to write "neither of which" not "either of which".

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#19Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#15)
Re: Vacuum: allow usage of more than 1GB of work mem

Simon Riggs <simon@2ndquadrant.com> writes:

Is there a reason we can't use repalloc here?

(1) repalloc will probably copy the data.

(2) that answer doesn't excuse you from choosing a limit.

We could get around (1) by something like Robert's idea of segmented
allocation, but TBH I've seen nothing on this thread to make me think
it's necessary or would even result in any performance improvement
at all. The bigger we make that array, the worse index-cleaning
is going to perform, and complicating the data structure will add
another hit on top of that.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#20Claudio Freire
klaussfreire@gmail.com
In reply to: Tom Lane (#19)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 3:11 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

We could get around (1) by something like Robert's idea of segmented
allocation, but TBH I've seen nothing on this thread to make me think
it's necessary or would even result in any performance improvement
at all. The bigger we make that array, the worse index-cleaning
is going to perform, and complicating the data structure will add
another hit on top of that.

I wouldn't be so sure, I've seen cases where two binary searches were
faster than a single binary search, especially when working with
humongus arrays like this tid array, because touching less (memory)
pages for a search does pay off considerably.

I'd try before giving up on the idea.

The test results (which I'll post in a second) do give credit to your
expectation that making the array bigger/more complex does impact
index scan performance. It's still faster than scanning several times
though.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#21Simon Riggs
simon@2ndquadrant.com
In reply to: Robert Haas (#17)
Re: Vacuum: allow usage of more than 1GB of work mem

On 6 September 2016 at 19:09, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 6, 2016 at 2:06 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 6 September 2016 at 19:00, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Robert Haas <robertmhaas@gmail.com> writes:

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

While it's not necessarily a bad idea to consider these things,
I think people are greatly overestimating the consequences of the
patch-as-proposed. AFAICS, it does *not* let you tell VACUUM to
eat 100GB of workspace. Note the line right in front of the one
being changed:

maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-        maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+        maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));

Regardless of what vac_work_mem is, we aren't gonna let you have more
than INT_MAX ItemPointers, hence 12GB at the most. So the worst-case
increase from the patch as given is 12X. Maybe that's enough to cause
bad consequences on some systems, but it's not the sort of disaster
Robert posits above.

Is there a reason we can't use repalloc here?

There are two possible problems, either of which is necessarily fatal:

1. I expect repalloc probably works by allocating the new space,
copying from old to new, and freeing the old. That could work out
badly if we are nearly the edge of the system's allocation limit.

2. It's slower than the approach proposed upthread of allocating the
array in segments. With that approach, we never need to memcpy()
anything.

On the plus side, it's probably less code.

Hmm, OK.

What occurs to me is that we can exactly predict how many tuples we
are going to get when we autovacuum, since we measure that and we know
what the number is when we trigger it.

So there doesn't need to be any guessing going on at all, nor do we
need it to be flexible.

My proposal now is to pass in the number of rows changed since last
vacuum and use that (+10% to be safe) as the size of the array, up to
the defined limit.

Manual VACUUM still needs to guess, so we might need a flexible
solution there, but generally we don't. We could probably estimate it
from the VM.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#22Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#21)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:16 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

What occurs to me is that we can exactly predict how many tuples we
are going to get when we autovacuum, since we measure that and we know
what the number is when we trigger it.

So there doesn't need to be any guessing going on at all, nor do we
need it to be flexible.

No, that's not really true. A lot can change between the time it's
triggered and the time it happens, or even while it's happening.
Somebody can run a gigantic bulk delete just after we start the
VACUUM.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#23Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#7)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 3:45 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 5 September 2016 at 21:58, Claudio Freire <klaussfreire@gmail.com> wrote:

How long does that part ever take? Is there any substantial gain from this?

Btw, without a further patch to prefetch pages on the backward scan
for truncate, however, my patience ran out before it finished
truncating. I haven't submitted that patch because there was an
identical patch in an older thread that was discussed and more or less
rejected since it slightly penalized SSDs.

OK, thats enough context. Sorry for being forgetful on that point.

Please post that new patch also.

Attached.

On Mon, Sep 5, 2016 at 5:58 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Mon, Sep 5, 2016 at 5:36 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 5 September 2016 at 15:50, Claudio Freire <klaussfreire@gmail.com> wrote:

On Sun, Sep 4, 2016 at 3:46 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 3 September 2016 at 04:25, Claudio Freire <klaussfreire@gmail.com> wrote:

The patch also makes vacuum free the dead_tuples before starting
truncation. It didn't seem necessary to hold onto it beyond that
point, and it might help give the OS more cache, especially if work
mem is configured very high to avoid multiple index scans.

How long does that part ever take? Is there any substantial gain from this?

Lets discuss that as a potential second patch.

In the test case I mentioned, it takes longer than the vacuum part itself.

Please provide a test case and timings so we can see what's happening.

Robert made a strong point for a change in the approach, so the
information below is applicable only to the old patch (to be
rewritten).

I'm sending this merely to document the testing done, it will be a
while before I can get the proposed design running and tested.

The referenced test case is the one I mentioned on the OP:

- createdb pgbench
- pgbench -i -s 4000 pgbench
- psql pgbench -c 'delete from pgbench_accounts;'
- vacuumdb -v -t pgbench_accounts pgbench

fsync=off, autovacuum=off, maintainance_work_mem=4GB

From what I remember, it used ~2.7GB of RAM up until the truncate
phase, where it freed it. It performed a single index scan over the
PK.

I don't remember timings, and I didn't take them, so I'll have to
repeat the test to get them. It takes all day and makes my laptop
unusably slow, so I'll post them later, but they're not very
interesting. The only interesting bit is that it does a single index
scan instead of several, which on TB-or-more tables it's kinda nice.

So, the test results below:

During setup, maybe for context, the delete took 52m 50s real time
(measured with time psql pgbench -c 'delete from pgbench_accounts;')

During the delete, my I/O was on average like the following, which
should give an indication of what my I/O subsystem is capable of (not
much, granted):

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.47 5.27 35.53 77.42 17.58 42.95
1097.51 145.22 1295.23 33.47 1874.36 8.85 100.00

Since it's a 5k RPM laptop drive, it's rather slow on IOPS, and since
I'm using the defaults for shared buffers and checkpoints, write
thoughput isn't stellar either. But that's not the point of the test
anyway, it's just for context.

The hardware is an HP envy laptop with a 1TB 5.4k RPM hard drive, 12GB
RAM, core i7-4722HQ, no weird performance tweaking of any kind (ie:
cpu scaling left intact). The system was not dedicated of course,
being a laptop, but it had little else going on while the test was
running. Given the size of the test, I don't believe there's any
chance concurrent activity could invalidate the results.

The timing for setup was comparable with both versions (patched and
unpatched), so I'm reporting the patched times only.

The vacuum phase:

patched:

$ vacuumdb -v -t pgbench_accounts pgbench
INFO: vacuuming "public.pgbench_accounts"
INFO: scanned index "pgbench_accounts_pkey" to remove 400000000 row versions
DETAIL: CPU 12.46s/48.76u sec elapsed 566.47 sec.
INFO: "pgbench_accounts": removed 400000000 row versions in 6557378 pages
DETAIL: CPU 56.68s/28.90u sec elapsed 1872.76 sec.
INFO: index "pgbench_accounts_pkey" now contains 0 row versions in
1096762 pages
DETAIL: 400000000 index row versions were removed.
1092896 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.47 sec.
INFO: "pgbench_accounts": found 400000000 removable, 0 nonremovable
row versions in 6557378 out of 6557378 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 129.24s/127.24u sec elapsed 3877.13 sec.
INFO: "pgbench_accounts": truncated 6557378 to 0 pages
DETAIL: CPU 34.88s/7.91u sec elapsed 1645.90 sec.

Total elapsed time: ~92 minutes

I/O during initial heap scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.52 99.78 72.63 62.47 31.94 33.22
987.80 146.71 1096.29 25.39 2341.48 7.40 100.00

Index scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 7.08 3.87 55.18 59.87 17.06 31.83
870.33 146.61 1243.34 31.42 2360.44 8.69 100.00

Final heap scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.78 8.65 65.32 57.32 31.50 32.96
1076.56 152.22 1928.67 1410.63 2519.01 8.15 100.00

Truncate (with prefetch):

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 159.67 0.87 3720.03 2.82 30.31 0.12
16.74 19.11 5.13 4.95 242.60 0.27 99.23

Without prefetch, rMB/s during truncation varies between 4MB/s and
6MB/s, so it's on average 6 times slower, meaning it would take over 3
hours.

Peak memory used: 2369MB RSS, 4260MB VIRT (source: top)

Unpatched + prefetch (same config, effective work mem 1GB due to
non-huge allocation limit):

$ vacuumdb -v -t pgbench_accounts pgbench
INFO: vacuuming "public.pgbench_accounts"
INFO: scanned index "pgbench_accounts_pkey" to remove 178956737 row versions
DETAIL: CPU 5.88s/53.77u sec elapsed 263.63 sec.
INFO: "pgbench_accounts": removed 178956737 row versions in 2933717 pages
DETAIL: CPU 22.28s/12.94u sec elapsed 757.45 sec.
INFO: scanned index "pgbench_accounts_pkey" to remove 178956737 row versions
DETAIL: CPU 7.44s/31.28u sec elapsed 282.41 sec.
INFO: "pgbench_accounts": removed 178956737 row versions in 2933717 pages
DETAIL: CPU 22.24s/13.30u sec elapsed 806.54 sec.
INFO: scanned index "pgbench_accounts_pkey" to remove 42086526 row versions
DETAIL: CPU 4.30s/5.83u sec elapsed 170.30 sec.
INFO: "pgbench_accounts": removed 42086526 row versions in 689944 pages
DETAIL: CPU 3.35s/3.23u sec elapsed 126.22 sec.
INFO: index "pgbench_accounts_pkey" now contains 0 row versions in
1096762 pages
DETAIL: 400000000 index row versions were removed.
1096351 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.40 sec.
INFO: "pgbench_accounts": found 400000000 removable, 0 nonremovable
row versions in 6557378 out of 6557378 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 123.82s/183.76u sec elapsed 4071.54 sec.
INFO: "pgbench_accounts": truncated 6557378 to 0 pages
DETAIL: CPU 40.36s/7.72u sec elapsed 1648.22 sec.

Total elapsed time: ~95m

I/O during initial heap scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.48 32.53 66.10 60.50 31.95 34.88
1081.06 149.20 1175.78 25.44 2432.59 8.02 101.59

First index scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.17 14.95 43.85 70.07 19.65 40.18
1075.57 145.98 1278.39 31.86 2058.51 8.78 100.00

Final index scan:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 17.12 1.50 169.85 2.28 68.33 0.67
820.95 158.32 312.00 28.14 21426.95 5.81 100.00

Truncation:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 142.93 1.23 3444.70 4.65 28.16 0.36
16.93 18.52 5.37 5.25 91.17 0.29 99.22

Peak memory used is 1135MB RSS and 1188MB VIRT

Comparing:

Time reportedly spent scanning indexes: 716.34 unpatched, 566.47 patched
Time reportedly spent scanning heap: 1690.21 unpatched, 1872.76 patched
Total vacuum scan as reported: 4071.54 unpatched, 3877.13 patched

Surely I didn't expect it to be such a close call. I believe the key
reason is the speedup it got during the final index scan for not
having to delete so many tuples. Clearly, having to interleave reads
and writes is stressing my HD, and the last index scan, having to
write less, was thus faster.

I don't believe this would have happened if the index hadn't been
pristine and in almost physical (heap) order, so I'd expect real-world
cases (with properly aged, shuffled and bloated indexes) to show a
more pronounced difference. Or when using a cost limit, that will
artificially limit the I/O rate vacuum can reach.

Clearly the patch is of use when I/O is the limiting factor, either
due to vacuum cost limits, or due to the I/O subsystem being the
bottleneck, as was the case during the above test case. Since more
work mem will mean a slower lookup of the dead_tuples array, not only
due to the extra comparisons but also poorer cache locality, I believe
it won't benefit the runtime cost of CPU-bound cases, but it should at
least generate less WAL since that's another benefit of scanning the
indexes fewer times (increased WAL rates during vacuum is another
problem we regularly face in our production setup).

Given the I/O subsystem on my test machine isn't able to produce a
CPU-bound test case for the amount of dead_tuples involved in
stressing the patch, I cannot confirm the above statement, but it
should be evident given the implementation.

Attachments:

0002-Vacuum-prefetch-buffers-on-backward-scan.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-prefetch-buffers-on-backward-scan.patchDownload
From 7c7efe7f8451a23b62d1c7285b44a34b533b370f Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:33:48 -0300
Subject: [PATCH 2/2] Vacuum: prefetch buffers on backward scan

This patch speeds up truncation by prefetching buffers during
the backward scan phase just prior to truncation. This optimization
helps rotating media because disk rotation induces a buffer-to-buffer
latency of roughly a whole rotation when reading backwards, such
disks are usually optimized for forward scans. Prefetching buffers
in larger chunks ameliorates the issue considerably and is otherwise
harmless. The prefetch amount should also not be an issue on SSD,
which won't benefit from the optimization, but won't be hurt either.
---
 src/backend/commands/vacuumlazy.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index dbe2040..fd18aae 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1828,7 +1828,7 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno;
+	BlockNumber blkno, prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1836,6 +1836,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 	/* Strange coding of loop control is needed because blkno is unsigned */
 	blkno = vacrelstats->rel_pages;
+	prefetchBlkno = blkno & ~0x1f;
+	prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
 	while (blkno > vacrelstats->nonempty_pages)
 	{
 		Buffer		buf;
@@ -1885,6 +1887,23 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		blkno--;
 
+		/*
+		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
+		 * Backward scans on rotary disks are slow if done one buffer at a time
+		 * because readahead won't kick in on most OSes, and each buffer will
+		 * have to wait for the platter to do a full rotation.
+		 * Should be harmless on SSD.
+		 */
+		if (blkno <= prefetchBlkno) {
+			BlockNumber pblkno;
+			if (prefetchBlkno >= 32)
+				prefetchBlkno -= 32;
+			else
+				prefetchBlkno = 0;
+			for (pblkno = prefetchBlkno; pblkno < blkno; pblkno++)
+				PrefetchBuffer(onerel, MAIN_FORKNUM, pblkno);
+		}
+
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, blkno,
 								 RBM_NORMAL, vac_strategy);
 
-- 
2.6.6

#24Simon Riggs
simon@2ndquadrant.com
In reply to: Robert Haas (#22)
Re: Vacuum: allow usage of more than 1GB of work mem

On 6 September 2016 at 19:23, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 6, 2016 at 2:16 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

What occurs to me is that we can exactly predict how many tuples we
are going to get when we autovacuum, since we measure that and we know
what the number is when we trigger it.

So there doesn't need to be any guessing going on at all, nor do we
need it to be flexible.

No, that's not really true. A lot can change between the time it's
triggered and the time it happens, or even while it's happening.
Somebody can run a gigantic bulk delete just after we start the
VACUUM.

Which wouldn't be removed by the VACUUM, so can be ignored.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#25Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#24)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 6, 2016 at 2:51 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 6 September 2016 at 19:23, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 6, 2016 at 2:16 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

What occurs to me is that we can exactly predict how many tuples we
are going to get when we autovacuum, since we measure that and we know
what the number is when we trigger it.

So there doesn't need to be any guessing going on at all, nor do we
need it to be flexible.

No, that's not really true. A lot can change between the time it's
triggered and the time it happens, or even while it's happening.
Somebody can run a gigantic bulk delete just after we start the
VACUUM.

Which wouldn't be removed by the VACUUM, so can be ignored.

OK, true. But I still think it's very unlikely that we can calculate
an exact count of how many dead tuples we might run into. I think we
shouldn't rely on the stats collector to be perfectly correct anyway -
for one thing, you can turn it off - and instead cope with the
uncertainty.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#26Tom Lane
tgl@sss.pgh.pa.us
In reply to: Simon Riggs (#24)
Re: Vacuum: allow usage of more than 1GB of work mem

Simon Riggs <simon@2ndquadrant.com> writes:

On 6 September 2016 at 19:23, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 6, 2016 at 2:16 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

What occurs to me is that we can exactly predict how many tuples we
are going to get when we autovacuum, since we measure that and we know
what the number is when we trigger it.
So there doesn't need to be any guessing going on at all, nor do we
need it to be flexible.

No, that's not really true. A lot can change between the time it's
triggered and the time it happens, or even while it's happening.
Somebody can run a gigantic bulk delete just after we start the
VACUUM.

Which wouldn't be removed by the VACUUM, so can be ignored.

(1) If the delete commits just before the vacuum starts, it may be
removable. I think you're nuts to imagine there are no race conditions
here.

(2) Stats from the stats collector never have been, and likely never will
be, anything but approximate. That goes double for dead-tuple counts,
which are inaccurate even as sent from backends, never mind the multiple
ways that the collector might lose the counts.

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to be
exact is folly of the first magnitude.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#27Simon Riggs
simon@2ndquadrant.com
In reply to: Tom Lane (#26)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On 6 September 2016 at 19:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to be
exact is folly of the first magnitude.

Yes. Bear in mind I had already referred to allowing +10% to be safe,
so I think we agree that a reasonably accurate, yet imprecise
calculation is possible in most cases.

If a recent transaction has committed, we will see both committed dead
rows and stats to show they exist. I'm sure there are corner cases and
race conditions where a major effect (greater than 10%) could occur,
in which case we run the index scan more than once, just as we do now.

The attached patch raises the limits as suggested by Claudio, allowing
for larger memory allocations if possible, yet limits the allocation
for larger tables based on the estimate gained from pg_stats, while
adding 10% for caution.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

vacuum_mem_estimate.v1.patchapplication/octet-stream; name=vacuum_mem_estimate.v1.patchDownload
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index b5fb325..478ec8c 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -88,9 +88,13 @@
 /*
  * Guesstimation of number of dead tuples per page.  This is used to
  * provide an upper limit to memory allocated when vacuuming small
- * tables.
+ * tables. The guesstimation becomes ineffective as table size grows
+ * so we use a heuristic to say that beyond LAZY_ESTIMATION_THRESHOLD
+ * we need better estimates and will use more precise pg_stats
+ * data after that point, noting that it is still only an estimate.
  */
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
+#define LAZY_ESTIMATION_THRESHOLD	1000
 
 /*
  * Before we consider skipping a page that's marked as clean in
@@ -117,8 +121,8 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
+	long			num_dead_tuples;	/* current # of entries */
+	long			max_dead_tuples;	/* # slots allocated in array */
 	ItemPointer dead_tuples;	/* array of ItemPointerData */
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
@@ -154,7 +158,7 @@ static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
-static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
+static void lazy_space_alloc(Relation onerel, LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
@@ -492,7 +496,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	vacrelstats->nonempty_pages = 0;
 	vacrelstats->latestRemovedXid = InvalidTransactionId;
 
-	lazy_space_alloc(vacrelstats, nblocks);
+	lazy_space_alloc(onerel, vacrelstats, nblocks);
 	frozen = palloc(sizeof(xl_heap_freeze_tuple) * MaxHeapTuplesPerPage);
 
 	/* Report that we're scanning the heap, advertising total # of blocks */
@@ -1597,7 +1601,7 @@ lazy_vacuum_index(Relation indrel,
 							   lazy_tid_reaped, (void *) vacrelstats);
 
 	ereport(elevel,
-			(errmsg("scanned index \"%s\" to remove %d row versions",
+			(errmsg("scanned index \"%s\" to remove %ld row versions",
 					RelationGetRelationName(indrel),
 					vacrelstats->num_dead_tuples),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
@@ -1941,7 +1945,7 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
  * See the comments at the head of this file for rationale.
  */
 static void
-lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
+lazy_space_alloc(Relation onerel, LVRelStats *vacrelstats, BlockNumber relblocks)
 {
 	long		maxtuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
@@ -1950,13 +1954,52 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 
 	if (vacrelstats->hasindex)
 	{
+		long	tuple_estimate = 0;
+
+		/*
+		 * We need to allocate an array to track dead tuples, so apply initial
+		 * criteria based upon user preferences and limits.
+		 */
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
-		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+		maxtuples = Min(maxtuples, LONG_MAX);
+		maxtuples = Min(maxtuples, MaxAllocHugeSize / sizeof(ItemPointerData));
+
+		/*
+		 * The amount of memory used for tracking dead tuples will be
+		 * limited by the number of blocks. For large tables this limit
+		 * becomes ineffective in many cases, so we need to more
+		 * accurately estimate the number of rows likely to be found
+		 * during the VACUUM, if we are scanning indexes. We could
+		 * use this in all cases, but the stats lookup is slow and
+		 * we don't gain much from it for smaller tables.
+		 */
+		if (relblocks > LAZY_ESTIMATION_THRESHOLD)
+		{
+			PgStat_StatTabEntry *tabentry = NULL;
+
+			tabentry = pgstat_fetch_stat_tabentry(RelationGetRelid(onerel));
+			if (PointerIsValid(tabentry))
+				tuple_estimate = tabentry->n_dead_tuples;
+		}
 
-		/* curious coding here to ensure the multiplication can't overflow */
-		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
-			maxtuples = relblocks * LAZY_ALLOC_TUPLES;
+		/*
+		 * Apply the information we have about the table to further reduce
+		 * the size of the allocation so we do not overallocate memory.
+		 */
+		if (tuple_estimate > 0)
+		{
+			/*
+			 * We have a tuple estimate, but allow 10% slop for timing and
+			 * other issues affecting the accuracy.
+			 */
+			maxtuples = Min(maxtuples, (long) tuple_estimate * 1.1);
+		}
+		else
+		{
+			/* curious coding here to ensure the multiplication can't overflow */
+			if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
+				maxtuples = relblocks * LAZY_ALLOC_TUPLES;
+		}
 
 		/* stay sane if small maintenance_work_mem */
 		maxtuples = Max(maxtuples, MaxHeapTuplesPerPage);
@@ -1967,9 +2010,10 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	}
 
 	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
+	vacrelstats->max_dead_tuples = (long) maxtuples;
 	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+		MemoryContextAllocHuge(CurrentMemoryContext,
+							maxtuples * sizeof(ItemPointerData));
 }
 
 /*
#28Greg Stark
stark@mit.edu
In reply to: Simon Riggs (#27)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 7, 2016 at 1:45 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 6 September 2016 at 19:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to be
exact is folly of the first magnitude.

Yes. Bear in mind I had already referred to allowing +10% to be safe,
so I think we agree that a reasonably accurate, yet imprecise
calculation is possible in most cases.

That would all be well and good if it weren't trivial to do what
Robert suggested. This is just a large unsorted list that we need to
iterate throught. Just allocate chunks of a few megabytes and when
it's full allocate a new chunk and keep going. There's no need to get
tricky with estimates and resizing and whatever.

--
greg

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#29Claudio Freire
klaussfreire@gmail.com
In reply to: Greg Stark (#28)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 7, 2016 at 12:12 PM, Greg Stark <stark@mit.edu> wrote:

On Wed, Sep 7, 2016 at 1:45 PM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 6 September 2016 at 19:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to be
exact is folly of the first magnitude.

Yes. Bear in mind I had already referred to allowing +10% to be safe,
so I think we agree that a reasonably accurate, yet imprecise
calculation is possible in most cases.

That would all be well and good if it weren't trivial to do what
Robert suggested. This is just a large unsorted list that we need to
iterate throught. Just allocate chunks of a few megabytes and when
it's full allocate a new chunk and keep going. There's no need to get
tricky with estimates and resizing and whatever.

I agree. While the idea of estimating the right size sounds promising
a priori, considering the estimate can go wrong and over or
underallocate quite severely, the risks outweigh the benefits when you
consider the alternative of a dynamic allocation strategy.

Unless the dynamic strategy has a bigger CPU impact than expected, I
believe it's a superior approach.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#30Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Robert Haas (#11)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 7, 2016 at 2:39 AM, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 6, 2016 at 10:28 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

The problem with this is that we allocate the entire amount of
maintenance_work_mem even when the number of actual dead tuples turns
out to be very small. That's not so bad if the amount of memory we're
potentially wasting is limited to ~1 GB, but it seems pretty dangerous
to remove the 1 GB limit, because somebody might have
maintenance_work_mem set to tens or hundreds of gigabytes to speed
index creation, and allocating that much space for a VACUUM that
encounters 1 dead tuple does not seem like a good plan.

What I think we need to do is make some provision to initially
allocate only a small amount of memory and then grow the allocation
later if needed. For example, instead of having
vacrelstats->dead_tuples be declared as ItemPointer, declare it as
ItemPointer * and allocate the array progressively in segments. I'd
actually argue that the segment size should be substantially smaller
than 1 GB, like say 64MB; there are still some people running systems
which are small enough that allocating 1 GB when we may need only 6
bytes can drive the system into OOM.

This would however incur the cost of having to copy the whole GB-sized
chunk every time it's expanded. It woudln't be cheap.

No, I don't want to end up copying the whole array; that's what I
meant by allocating it progressively in segments. Something like what
you go on to propose.

I've monitored the vacuum as it runs and the OS doesn't map the whole
block unless it's touched, which it isn't until dead tuples are found.
Surely, if overcommit is disabled (as it should), it could exhaust the
virtual address space if set very high, but it wouldn't really use the
memory unless it's needed, it would merely reserve it.

Yeah, but I've seen actual breakage from exactly this issue on
customer systems even with the 1GB limit, and when we start allowing
100GB it's going to get a whole lot worse.

To fix that, rather than repalloc the whole thing, dead_tuples would
have to be an ItemPointer** of sorted chunks. That'd be a
significantly more complex patch, but at least it wouldn't incur the
memcpy.

Right, this is what I had in mind. I don't think this is actually
very complicated, because the way we use this array is really simple.
We basically just keep appending to the array until we run out of
space, and that's not very hard to implement with an array-of-arrays.
The chunks are, in some sense, sorted, as you say, but you don't need
to do qsort() or anything like that. You're just replacing a single
flat array with a data structure that can be grown incrementally in
fixed-size chunks.

If we replaced dead_tuples with an array-of-array, isn't there
negative performance impact for lazy_tid_reap()?
As chunk is added, that performance would be decrease.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#31Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Masahiko Sawada (#30)
Re: Vacuum: allow usage of more than 1GB of work mem

On 9/8/16 3:48 AM, Masahiko Sawada wrote:

If we replaced dead_tuples with an array-of-array, isn't there
negative performance impact for lazy_tid_reap()?
As chunk is added, that performance would be decrease.

Yes, it certainly would, as you'd have to do 2 binary searches. I'm not
sure how much that matters though; presumably the index scans are
normally IO-bound?

Another option would be to use the size estimation ideas others have
mentioned to create one array. If the estimates prove to be wrong you
could then create a single additional segment; by that point you should
have a better idea of how far off the original estimate was. That means
the added search cost would only be a compare and a second pointer redirect.

Something else that occurred to me... AFAIK the only reason we don't
support syncscan with VACUUM is because it would require sorting the TID
list. If we just added a second TID list we would be able to support
syncscan, swapping over to the 'low' list when we hit the end of the
relation.
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532) mobile: 512-569-9461

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#32Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Claudio Freire (#29)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 7, 2016 at 10:18 PM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Wed, Sep 7, 2016 at 12:12 PM, Greg Stark <stark@mit.edu> wrote:

On Wed, Sep 7, 2016 at 1:45 PM, Simon Riggs <simon@2ndquadrant.com>

wrote:

On 6 September 2016 at 19:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to

be

exact is folly of the first magnitude.

Yes. Bear in mind I had already referred to allowing +10% to be safe,
so I think we agree that a reasonably accurate, yet imprecise
calculation is possible in most cases.

That would all be well and good if it weren't trivial to do what
Robert suggested. This is just a large unsorted list that we need to
iterate throught. Just allocate chunks of a few megabytes and when
it's full allocate a new chunk and keep going. There's no need to get
tricky with estimates and resizing and whatever.

I agree. While the idea of estimating the right size sounds promising
a priori, considering the estimate can go wrong and over or
underallocate quite severely, the risks outweigh the benefits when you
consider the alternative of a dynamic allocation strategy.

Unless the dynamic strategy has a bigger CPU impact than expected, I
believe it's a superior approach.

How about a completely different representation for the TID array? Now this
is probably not something new, but I couldn't find if the exact same idea
was discussed before. I also think it's somewhat orthogonal to what we are
trying to do here, and will probably be a bigger change. But I thought I'll
mention since we are at the topic.

What I propose is to use a simple bitmap to represent the tuples. If a
tuple at <block, offset> is dead then the corresponding bit in the bitmap
is set. So clearly the searches through dead tuples are O(1) operations,
important for very large tables and large arrays.

Challenge really is that a heap page can theoretically have MaxOffsetNumber
of line pointers (or to be precise maximum possible offset number). For a
8K block, that comes be about 2048. Having so many bits per page is neither
practical nor optimal. But in practice the largest offset on a heap page
should not be significantly greater than MaxHeapTuplesPerPage, which is a
more reasonable value of 291 on my machine. Again, that's with zero sized
tuple and for real life large tables, with much wider tuples, the number
may go down even further.

So we cap the offsets represented in the bitmap to some realistic value,
computed by looking at page density and then multiplying it by a small
factor (not more than two) to take into account LP_DEAD and LP_REDIRECT
line pointers. That should practically represent majority of the dead
tuples in the table, but we then keep an overflow area to record tuples
beyond the limit set for per page. The search routine will do a direct
lookup for offsets less than the limit and search in the sorted overflow
area for offsets beyond the limit.

For example, for a table with 60 bytes wide tuple (including 24 byte
header), each page can approximately have 8192/60 = 136 tuples. Say we
provision for 136*2 = 272 bits per page i.e. 34 bytes per page for the
bitmap. First 272 offsets in every page are represented in the bitmap and
anything greater than are in overflow region. On the other hand, the
current representation will need about 16 bytes per page assuming 2% dead
tuples, 40 bytes per page assuming 5% dead tuples and 80 bytes assuming 10%
dead tuples. So bitmap will take more space for small tuples or when vacuum
is run very aggressively, both seems unlikely for very large tables. Of
course the calculation does not take into account the space needed by the
overflow area, but I expect that too be small.

I guess we can make a choice between two representations at the start
looking at various table stats. We can also be smart and change from bitmap
to traditional representation as we scan the table and see many more tuples
in the overflow region than we provisioned for. There will be some
challenges in converting representation mid-way, especially in terms of
memory allocation, but I think those can be sorted out if we think that the
idea has merit.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#33Claudio Freire
klaussfreire@gmail.com
In reply to: Pavan Deolasee (#32)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 8, 2016 at 11:54 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

For example, for a table with 60 bytes wide tuple (including 24 byte
header), each page can approximately have 8192/60 = 136 tuples. Say we
provision for 136*2 = 272 bits per page i.e. 34 bytes per page for the
bitmap. First 272 offsets in every page are represented in the bitmap and
anything greater than are in overflow region. On the other hand, the current
representation will need about 16 bytes per page assuming 2% dead tuples, 40
bytes per page assuming 5% dead tuples and 80 bytes assuming 10% dead
tuples. So bitmap will take more space for small tuples or when vacuum is
run very aggressively, both seems unlikely for very large tables. Of course
the calculation does not take into account the space needed by the overflow
area, but I expect that too be small.

I thought about something like this, but it could be extremely
inefficient for mostly frozen tables, since the bitmap cannot account
for frozen pages without losing the O(1) lookup characteristic

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#34Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Claudio Freire (#33)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 8, 2016 at 8:42 PM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Thu, Sep 8, 2016 at 11:54 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

For example, for a table with 60 bytes wide tuple (including 24 byte
header), each page can approximately have 8192/60 = 136 tuples. Say we
provision for 136*2 = 272 bits per page i.e. 34 bytes per page for the
bitmap. First 272 offsets in every page are represented in the bitmap and
anything greater than are in overflow region. On the other hand, the

current

representation will need about 16 bytes per page assuming 2% dead

tuples, 40

bytes per page assuming 5% dead tuples and 80 bytes assuming 10% dead
tuples. So bitmap will take more space for small tuples or when vacuum is
run very aggressively, both seems unlikely for very large tables. Of

course

the calculation does not take into account the space needed by the

overflow

area, but I expect that too be small.

I thought about something like this, but it could be extremely
inefficient for mostly frozen tables, since the bitmap cannot account
for frozen pages without losing the O(1) lookup characteristic

Well, that's correct. But I thought the whole point is when there are large
number of dead tuples which requires large memory. If my math was correct
as explained above, then even at 5% dead tuples, bitmap representation will
consume approximate same memory but provide O(1) search time.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#35Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Pavan Deolasee (#32)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 8, 2016 at 11:54 PM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

On Wed, Sep 7, 2016 at 10:18 PM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Wed, Sep 7, 2016 at 12:12 PM, Greg Stark <stark@mit.edu> wrote:

On Wed, Sep 7, 2016 at 1:45 PM, Simon Riggs <simon@2ndquadrant.com>
wrote:

On 6 September 2016 at 19:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:

The idea of looking to the stats to *guess* about how many tuples are
removable doesn't seem bad at all. But imagining that that's going to
be
exact is folly of the first magnitude.

Yes. Bear in mind I had already referred to allowing +10% to be safe,
so I think we agree that a reasonably accurate, yet imprecise
calculation is possible in most cases.

That would all be well and good if it weren't trivial to do what
Robert suggested. This is just a large unsorted list that we need to
iterate throught. Just allocate chunks of a few megabytes and when
it's full allocate a new chunk and keep going. There's no need to get
tricky with estimates and resizing and whatever.

I agree. While the idea of estimating the right size sounds promising
a priori, considering the estimate can go wrong and over or
underallocate quite severely, the risks outweigh the benefits when you
consider the alternative of a dynamic allocation strategy.

Unless the dynamic strategy has a bigger CPU impact than expected, I
believe it's a superior approach.

How about a completely different representation for the TID array? Now this
is probably not something new, but I couldn't find if the exact same idea
was discussed before. I also think it's somewhat orthogonal to what we are
trying to do here, and will probably be a bigger change. But I thought I'll
mention since we are at the topic.

What I propose is to use a simple bitmap to represent the tuples. If a tuple
at <block, offset> is dead then the corresponding bit in the bitmap is set.
So clearly the searches through dead tuples are O(1) operations, important
for very large tables and large arrays.

Challenge really is that a heap page can theoretically have MaxOffsetNumber
of line pointers (or to be precise maximum possible offset number). For a 8K
block, that comes be about 2048. Having so many bits per page is neither
practical nor optimal. But in practice the largest offset on a heap page
should not be significantly greater than MaxHeapTuplesPerPage, which is a
more reasonable value of 291 on my machine. Again, that's with zero sized
tuple and for real life large tables, with much wider tuples, the number may
go down even further.

So we cap the offsets represented in the bitmap to some realistic value,
computed by looking at page density and then multiplying it by a small
factor (not more than two) to take into account LP_DEAD and LP_REDIRECT line
pointers. That should practically represent majority of the dead tuples in
the table, but we then keep an overflow area to record tuples beyond the
limit set for per page. The search routine will do a direct lookup for
offsets less than the limit and search in the sorted overflow area for
offsets beyond the limit.

For example, for a table with 60 bytes wide tuple (including 24 byte
header), each page can approximately have 8192/60 = 136 tuples. Say we
provision for 136*2 = 272 bits per page i.e. 34 bytes per page for the
bitmap. First 272 offsets in every page are represented in the bitmap and
anything greater than are in overflow region. On the other hand, the current
representation will need about 16 bytes per page assuming 2% dead tuples, 40
bytes per page assuming 5% dead tuples and 80 bytes assuming 10% dead
tuples. So bitmap will take more space for small tuples or when vacuum is
run very aggressively, both seems unlikely for very large tables. Of course
the calculation does not take into account the space needed by the overflow
area, but I expect that too be small.

I guess we can make a choice between two representations at the start
looking at various table stats. We can also be smart and change from bitmap
to traditional representation as we scan the table and see many more tuples
in the overflow region than we provisioned for. There will be some
challenges in converting representation mid-way, especially in terms of
memory allocation, but I think those can be sorted out if we think that the
idea has merit.

Making the vacuum possible to choose between two data representations
sounds good.
I implemented the patch that changes dead tuple representation to bitmap before.
I will measure the performance of bitmap representation again and post them.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#36Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Masahiko Sawada (#35)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 8, 2016 at 11:40 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:

Making the vacuum possible to choose between two data representations
sounds good.
I implemented the patch that changes dead tuple representation to bitmap
before.
I will measure the performance of bitmap representation again and post
them.

Sounds great! I haven't seen your patch, but what I would suggest is to
compute page density (D) = relpages/(dead+live tuples) and experiment with
bitmap of sizes of D to 2D bits per page. May I also suggest that instead
of putting in efforts in implementing the overflow area, just count how
many dead TIDs would fall under overflow area for a given choice of bitmap
size.

It might be a good idea to experiment with different vacuum scale factor,
varying between 2% to 20% (may be 2, 5, 10, 20). You can probably run a
longish pgbench test on a large table and then save the data directory for
repeated experiments, although I'm not sure if pgbench will be a good
choice because HOT will prevent accumulation of dead pointers, in which
case you may try adding another index on abalance column.

It'll be worth measuring memory consumption of both representations as well
as performance implications on index vacuum. I don't expect to see any
major difference in either heap scans.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#37Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Pavan Deolasee (#36)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 9, 2016 at 12:33 PM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

On Thu, Sep 8, 2016 at 11:40 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:

Making the vacuum possible to choose between two data representations
sounds good.
I implemented the patch that changes dead tuple representation to bitmap
before.
I will measure the performance of bitmap representation again and post
them.

Sounds great! I haven't seen your patch, but what I would suggest is to
compute page density (D) = relpages/(dead+live tuples) and experiment with
bitmap of sizes of D to 2D bits per page. May I also suggest that instead of
putting in efforts in implementing the overflow area, just count how many
dead TIDs would fall under overflow area for a given choice of bitmap size.

Isn't that formula "page density (D) = (dead+live tuples)/relpages"?

It might be a good idea to experiment with different vacuum scale factor,
varying between 2% to 20% (may be 2, 5, 10, 20). You can probably run a
longish pgbench test on a large table and then save the data directory for
repeated experiments, although I'm not sure if pgbench will be a good choice
because HOT will prevent accumulation of dead pointers, in which case you
may try adding another index on abalance column.

Thank you, I will experiment with this.

It'll be worth measuring memory consumption of both representations as well
as performance implications on index vacuum. I don't expect to see any major
difference in either heap scans.

Yeah, it would be effective for the index vacuum speed and the number
of execution of index vacuum.

Attached PoC patch changes the representation of dead tuple locations
to the hashmap having tuple bitmap.
The one hashmap entry consists of the block number and the TID bitmap
of corresponding block, and the block number is the hash key of
hashmap.
Current implementation of this patch is not smart yet because each
hashmap entry allocates the tuple bitmap with fixed
size(LAZY_ALLOC_TUPLES), so each hashentry can store up to
LAZY_ALLOC_TUPLES(291 if block size is 8kB) tuples.
In case where one block can store only the several tens tuples, the
most bits are would be waste.

After improved this patch as you suggested, I will measure performance benefit.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Attachments:

0001-Collect-dead-tuple-location-as-a-bitmap.patchtext/plain; charset=US-ASCII; name=0001-Collect-dead-tuple-location-as-a-bitmap.patchDownload
From d1968d625ca1bb07711681a2d824737c53d27c8c Mon Sep 17 00:00:00 2001
From: Masahiko Sawada <sawada.mshk@gmail.com>
Date: Thu, 8 Sep 2016 13:59:23 -0400
Subject: [PATCH] Collect dead tuple location as a bitmap.

---
 src/backend/commands/vacuumlazy.c | 232 +++++++++++++++++++++++++-------------
 1 file changed, 153 insertions(+), 79 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index b5fb325..ce7bd7e 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -98,6 +98,28 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+#define BITS_PER_BITMAP_CHUNK 32
+#define BITMAP_CHUNKS_PER_PAGE	\
+	((int) ((LAZY_ALLOC_TUPLES / BITS_PER_BITMAP_CHUNK) + 1))
+#define BitoffsetToOffsetNumber(chunk, offset) \
+	(((chunk) * BITS_PER_BITMAP_CHUNK) + (offset) + 1)
+#define OffsetNumberToChunk(offset) \
+	((offset) / BITS_PER_BITMAP_CHUNK)
+#define OffsetNumberToBitoffset(offset) \
+	((offset) % BITS_PER_BITMAP_CHUNK)
+
+typedef struct PageEntry
+{
+	BlockNumber	blockno;
+	uint32	bm[BITMAP_CHUNKS_PER_PAGE]; /* tuple bitmap of blockno */
+} PageEntry;
+
+typedef struct DeadTupleMap
+{
+	HTAB	*pagetable;
+	int		npages; /* # of blocks hashmap has */
+} DeadTupleMap;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -120,6 +142,9 @@ typedef struct LVRelStats
 	int			num_dead_tuples;	/* current # of entries */
 	int			max_dead_tuples;	/* # slots allocated in array */
 	ItemPointer dead_tuples;	/* array of ItemPointerData */
+
+	DeadTupleMap *dead_tuple_map; /* hash map if dead ItemPointerData */
+
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
@@ -148,20 +173,19 @@ static void lazy_vacuum_index(Relation indrel,
 static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
-static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+static void lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
+				 PageEntry *entry, LVRelStats *vacrelstats, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
-static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
-					   ItemPointer itemptr);
+static void lazy_record_dead_tuple(LVRelStats *vacrelstats, ItemPointer itemptr);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
+static void init_dead_tuple_map(DeadTupleMap *dead_tuple_map);
 
 /*
  *	lazy_vacuum_rel() -- perform LAZY VACUUM for one heap relation
@@ -237,6 +261,7 @@ lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params,
 		aggressive = true;
 
 	vacrelstats = (LVRelStats *) palloc0(sizeof(LVRelStats));
+	vacrelstats->dead_tuple_map = (DeadTupleMap *) palloc0(sizeof(DeadTupleMap));
 
 	vacrelstats->old_rel_pages = onerel->rd_rel->relpages;
 	vacrelstats->old_rel_tuples = onerel->rd_rel->reltuples;
@@ -427,6 +452,26 @@ vacuum_log_cleanup_info(Relation rel, LVRelStats *vacrelstats)
 		(void) log_heap_cleanup_info(rel->rd_node, vacrelstats->latestRemovedXid);
 }
 
+static void
+init_dead_tuple_map(DeadTupleMap *dtmap)
+{
+	HASHCTL	hash_ctl;
+
+	/* If already exists, destroy it in advance */
+	if (dtmap->pagetable)
+		hash_destroy(dtmap->pagetable);
+
+	MemSet(&hash_ctl, 0, sizeof(hash_ctl));
+	hash_ctl.keysize = sizeof(BlockNumber);
+	hash_ctl.entrysize = sizeof(PageEntry);
+	hash_ctl.hcxt = CurrentMemoryContext;
+	dtmap->pagetable = hash_create("DeadTupleBitmap",
+											128,
+											&hash_ctl,
+											HASH_ELEM | HASH_BLOBS | HASH_CONTEXT);
+	dtmap->npages = 0;
+}
+
 /*
  *	lazy_scan_heap() -- scan an open heap relation
  *
@@ -493,6 +538,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	vacrelstats->latestRemovedXid = InvalidTransactionId;
 
 	lazy_space_alloc(vacrelstats, nblocks);
+	init_dead_tuple_map(vacrelstats->dead_tuple_map);
+
 	frozen = palloc(sizeof(xl_heap_freeze_tuple) * MaxHeapTuplesPerPage);
 
 	/* Report that we're scanning the heap, advertising total # of blocks */
@@ -731,6 +778,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 */
 			vacrelstats->num_dead_tuples = 0;
 			vacrelstats->num_index_scans++;
+			init_dead_tuple_map(vacrelstats->dead_tuple_map);
 
 			/* Report that we are once again scanning the heap */
 			pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
@@ -1125,8 +1173,18 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		if (nindexes == 0 &&
 			vacrelstats->num_dead_tuples > 0)
 		{
+			PageEntry *entry = NULL;
+			bool found;
+
+			/* Search current block from hash table, must be found */
+			entry = (PageEntry *) hash_search(vacrelstats->dead_tuple_map->pagetable,
+											 (void *) &blkno,
+											 HASH_FIND, &found);
+
+			Assert(found);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, entry, vacrelstats, &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,6 +1192,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
+			init_dead_tuple_map(vacrelstats->dead_tuple_map);
 			vacrelstats->num_dead_tuples = 0;
 			vacuumed_pages++;
 		}
@@ -1367,11 +1426,15 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	DeadTupleMap	*dtmap = vacrelstats->dead_tuple_map;
+	HASH_SEQ_STATUS	status;
+	PageEntry	*entry;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	hash_seq_init(&status, dtmap->pagetable);
+	while ((entry = (PageEntry *) hash_seq_search(&status)) != NULL)
 	{
 		BlockNumber tblk;
 		Buffer		buf;
@@ -1380,7 +1443,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 
 		vacuum_delay_point();
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = entry->blockno;
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
 								 vac_strategy);
 		if (!ConditionalLockBufferForCleanup(buf))
@@ -1389,8 +1452,8 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 			++tupindex;
 			continue;
 		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+		lazy_vacuum_page(onerel, tblk, buf, entry, vacrelstats,
+						 &vmbuffer);
 
 		/* Now that we've compacted the page, record its available space */
 		page = BufferGetPage(buf);
@@ -1425,33 +1488,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
-static int
+static void
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 PageEntry *entry, LVRelStats *vacrelstats, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	int			chunk, off;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (chunk = 0; chunk < BITMAP_CHUNKS_PER_PAGE; chunk++)
 	{
-		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		if (tblk != blkno)
-			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
-		itemid = PageGetItemId(page, toff);
-		ItemIdSetUnused(itemid);
-		unused[uncnt++] = toff;
+		if (!(entry->bm[chunk]))
+			continue;
+
+		for (off = 0; off < BITS_PER_BITMAP_CHUNK; off++)
+		{
+			if (entry->bm[chunk] < ((uint32) 1 << off))
+				break;
+
+			/* Found the offset number that bit is set */
+			if (entry->bm[chunk] & ((uint32) 1 << off))
+			{
+				toff = BitoffsetToOffsetNumber(chunk, off);
+				itemid = PageGetItemId(page, toff);
+				ItemIdSetUnused(itemid);
+				unused[uncnt++] = toff;
+			}
+		}
 	}
 
 	PageRepairFragmentation(page);
@@ -1512,8 +1585,6 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
 			visibilitymap_set(onerel, blkno, buffer, InvalidXLogRecPtr,
 							  *vmbuffer, visibility_cutoff_xid, flags);
 	}
-
-	return tupindex;
 }
 
 /*
@@ -1947,12 +2018,24 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
+	HASHCTL	hash_ctl;
+
+	MemSet(&hash_ctl, 0, sizeof(hash_ctl));
+	hash_ctl.keysize = sizeof(BlockNumber);
+	hash_ctl.entrysize = sizeof(PageEntry);
+	hash_ctl.hcxt = CurrentMemoryContext;
+	vacrelstats->dead_tuple_map->pagetable = hash_create("DeadTupleBitmap",
+														 128,
+														 &hash_ctl,
+														 HASH_ELEM | HASH_BLOBS |
+														 HASH_CONTEXT);
+	vacrelstats->dead_tuple_map->npages = 0;
 
 	if (vacrelstats->hasindex)
 	{
-		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
+		maxtuples = ((vac_work_mem * 1024L) / sizeof(PageEntry)) * LAZY_ALLOC_TUPLES;
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
+		maxtuples = Min(maxtuples, (MaxAllocSize / sizeof(PageEntry)) * LAZY_ALLOC_TUPLES);
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1968,29 +2051,41 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 
 	vacrelstats->num_dead_tuples = 0;
 	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
 }
 
 /*
  * lazy_record_dead_tuple - remember one deletable tuple
  */
 static void
-lazy_record_dead_tuple(LVRelStats *vacrelstats,
-					   ItemPointer itemptr)
+lazy_record_dead_tuple(LVRelStats *vacrelstats, ItemPointer itemptr)
 {
-	/*
-	 * The array shouldn't overflow under normal behavior, but perhaps it
-	 * could if we are given a really small maintenance_work_mem. In that
-	 * case, just forget the last few tuples (we'll get 'em next time).
-	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	DeadTupleMap *dtmap = vacrelstats->dead_tuple_map;
+	PageEntry *page = NULL;
+	BlockNumber		blkno = ItemPointerGetBlockNumber(itemptr);
+	OffsetNumber	offset = ItemPointerGetOffsetNumber(itemptr);
+	bool	found;
+	int		chunk, bitoffset;
+
+	page = (PageEntry *) hash_search(dtmap->pagetable,
+									 (void *) &blkno,
+									 HASH_ENTER, &found);
+
+	/* Initialize it if not present before */
+	if (!found)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
-		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+		MemSet(page, 0, sizeof(PageEntry));
+		page->blockno = blkno;
+		dtmap->npages++;
 	}
+
+	chunk = OffsetNumberToChunk(offset - 1);
+	bitoffset = OffsetNumberToBitoffset(offset - 1);
+
+	page->bm[chunk] |= ((uint32) 1 << bitoffset);
+
+	vacrelstats->num_dead_tuples++;
+	pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
+								 vacrelstats->num_dead_tuples);
 }
 
 /*
@@ -2004,45 +2099,24 @@ static bool
 lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
-
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
-
-	return (res != NULL);
-}
-
-/*
- * Comparator routines for use with qsort() and bsearch().
- */
-static int
-vac_cmp_itemptr(const void *left, const void *right)
-{
-	BlockNumber lblk,
-				rblk;
-	OffsetNumber loff,
-				roff;
-
-	lblk = ItemPointerGetBlockNumber((ItemPointer) left);
-	rblk = ItemPointerGetBlockNumber((ItemPointer) right);
-
-	if (lblk < rblk)
-		return -1;
-	if (lblk > rblk)
-		return 1;
-
-	loff = ItemPointerGetOffsetNumber((ItemPointer) left);
-	roff = ItemPointerGetOffsetNumber((ItemPointer) right);
-
-	if (loff < roff)
-		return -1;
-	if (loff > roff)
-		return 1;
-
-	return 0;
+	PageEntry	*entry;
+	BlockNumber	blkno = ItemPointerGetBlockNumber(itemptr);
+	OffsetNumber offset = ItemPointerGetOffsetNumber(itemptr);
+	bool	found;
+	bool	ret;
+	int	chunk, bitoffset;
+
+	entry = (PageEntry *) hash_search(vacrelstats->dead_tuple_map->pagetable,
+									 (void *) &blkno,
+									 HASH_FIND, &found);
+	if (!found)
+		return false;	/* quick exit */
+
+	chunk = OffsetNumberToChunk(offset - 1);
+	bitoffset = OffsetNumberToBitoffset(offset - 1);
+
+	ret = entry->bm[chunk] & ((uint32) 1 << bitoffset);
+	return ret;
 }
 
 /*
-- 
2.8.1

#38Robert Haas
robertmhaas@gmail.com
In reply to: Masahiko Sawada (#37)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 9, 2016 at 3:04 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Attached PoC patch changes the representation of dead tuple locations
to the hashmap having tuple bitmap.
The one hashmap entry consists of the block number and the TID bitmap
of corresponding block, and the block number is the hash key of
hashmap.
Current implementation of this patch is not smart yet because each
hashmap entry allocates the tuple bitmap with fixed
size(LAZY_ALLOC_TUPLES), so each hashentry can store up to
LAZY_ALLOC_TUPLES(291 if block size is 8kB) tuples.
In case where one block can store only the several tens tuples, the
most bits are would be waste.

After improved this patch as you suggested, I will measure performance benefit.

We also need to consider the amount of memory gets used. What I
proposed - replacing the array with an array of arrays - would not
increase memory utilization significantly. I don't think it would
have much impact on CPU utilization either. It would require
replacing the call to bsearch() in lazy_heap_reaptid() with an
open-coded implementation of bsearch, or with one bsearch to find the
chunk and another to find the TID within the chunk, but that shouldn't
be very expensive. For one thing, if the array chunks are around the
size I proposed (64MB), you've got more than ten million tuples per
chunk, so you can't have very many chunks unless your table is both
really large and possessed of quite a bit of dead stuff.

Now, if I'm reading it correctly, this patch allocates a 132-byte
structure for every page with at least one dead tuple. In the worst
case where there's just one dead tuple per page, that's a 20x
regression in memory usage. Actually, it's more like 40x, because
AllocSetAlloc rounds small allocation sizes up to the next-higher
power of two, which really stings for a 132-byte allocation, and then
adds a 16-byte header to each chunk. But even 20x is clearly not
good. There are going to be lots of real-world cases where this uses
way more memory to track the same number of dead tuples, and I'm
guessing that benchmarking is going to reveal that it's not faster,
either.

I think it's probably wrong to worry that an array-of-arrays is going
to be meaningfully slower than a single array here. It's basically
costing you some small number of additional memory references per
tuple, which I suspect isn't all that relevant for a bulk operation
that does I/O, writes WAL, locks buffers, etc. But if it is relevant,
then I think there are other ways to buy that performance back which
are likely to be more memory efficient than converting this to use a
hash table. For example, we could keep a bitmap with one bit per K
pages. If the bit is set, there is at least 1 dead tuple on that
page; if clear, there are none. When we see an index tuple, we
consult the bitmap to determine whether we need to search the TID
list. We select K to be the smallest power of 2 such that the bitmap
uses less memory than some threshold, perhaps 64kB. Assuming that
updates and deletes to the table have some locality, we should be able
to skip a large percentage of the TID searches with a probe into this
very compact bitmap. Note that we can set K = 1 for tables up to 4GB
in size, and even a 1TB table only needs K = 256. Odds are very good
that a 1TB table being vacuumed has many 256-page ranges containing no
dead tuples at all ... and if this proves to be false and the dead
tuples are scattered uniformly throughout the table, then you should
probably be more worried about the fact that you're dumping a bare
minimum of 4GB of random I/O on your hapless disk controller than
about how efficient the TID search is.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#39Peter Geoghegan
pg@heroku.com
In reply to: Robert Haas (#38)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 13, 2016 at 11:51 AM, Robert Haas <robertmhaas@gmail.com> wrote:

I think it's probably wrong to worry that an array-of-arrays is going
to be meaningfully slower than a single array here. It's basically
costing you some small number of additional memory references per
tuple, which I suspect isn't all that relevant for a bulk operation
that does I/O, writes WAL, locks buffers, etc.

This analysis makes perfect sense to me.

--
Peter Geoghegan

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#40Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#38)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 13, 2016 at 3:51 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Fri, Sep 9, 2016 at 3:04 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Attached PoC patch changes the representation of dead tuple locations
to the hashmap having tuple bitmap.
The one hashmap entry consists of the block number and the TID bitmap
of corresponding block, and the block number is the hash key of
hashmap.
Current implementation of this patch is not smart yet because each
hashmap entry allocates the tuple bitmap with fixed
size(LAZY_ALLOC_TUPLES), so each hashentry can store up to
LAZY_ALLOC_TUPLES(291 if block size is 8kB) tuples.
In case where one block can store only the several tens tuples, the
most bits are would be waste.

After improved this patch as you suggested, I will measure performance benefit.

We also need to consider the amount of memory gets used. What I
proposed - replacing the array with an array of arrays - would not
increase memory utilization significantly. I don't think it would
have much impact on CPU utilization either.

I've finished writing that patch, I'm in the process of testing its CPU impact.

First test seemed to hint at a 40% increase in CPU usage, which seems
rather steep compared to what I expected, so I'm trying to rule out
some methodology error here.

It would require
replacing the call to bsearch() in lazy_heap_reaptid() with an
open-coded implementation of bsearch, or with one bsearch to find the
chunk and another to find the TID within the chunk, but that shouldn't
be very expensive.

I did a linear search to find the chunk, with exponentially growing
chunks, and then a bsearch to find the item inside the chunk.

With the typical number of segments and given the 12GB limit, the
segment array size is well within the range that favors linear search.

For example, we could keep a bitmap with one bit per K
pages. If the bit is set, there is at least 1 dead tuple on that
page; if clear, there are none. When we see an index tuple, we
consult the bitmap to determine whether we need to search the TID
list. We select K to be the smallest power of 2 such that the bitmap
uses less memory than some threshold, perhaps 64kB.

I've been pondering something like that, but that's an optimization
that's quite orthogonal to the multiarray stuff.

Assuming that
updates and deletes to the table have some locality, we should be able
to skip a large percentage of the TID searches with a probe into this
very compact bitmap.

I don't think you can assume locality

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#41Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#40)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 13, 2016 at 2:59 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

I've finished writing that patch, I'm in the process of testing its CPU impact.

First test seemed to hint at a 40% increase in CPU usage, which seems
rather steep compared to what I expected, so I'm trying to rule out
some methodology error here.

Hmm, wow. That's pretty steep. Maybe lazy_heap_reaptid() is hotter
than I think it is, but even if it accounts for 10% of total CPU usage
within a vacuum, which seems like an awful lot, you'd have to make it
4x as expensive, which also seems like an awful lot.

It would require
replacing the call to bsearch() in lazy_heap_reaptid() with an
open-coded implementation of bsearch, or with one bsearch to find the
chunk and another to find the TID within the chunk, but that shouldn't
be very expensive.

I did a linear search to find the chunk, with exponentially growing
chunks, and then a bsearch to find the item inside the chunk.

With the typical number of segments and given the 12GB limit, the
segment array size is well within the range that favors linear search.

Ah, OK.

For example, we could keep a bitmap with one bit per K
pages. If the bit is set, there is at least 1 dead tuple on that
page; if clear, there are none. When we see an index tuple, we
consult the bitmap to determine whether we need to search the TID
list. We select K to be the smallest power of 2 such that the bitmap
uses less memory than some threshold, perhaps 64kB.

I've been pondering something like that, but that's an optimization
that's quite orthogonal to the multiarray stuff.

Sure, but if this really does increase CPU time, it'd be reasonable to
do something to decrease it again in order to get the other benefits
of this patch - i.e. increasing the maintenance_work_mem limit while
reducing the chances that overallocation will cause OOM.

Assuming that
updates and deletes to the table have some locality, we should be able
to skip a large percentage of the TID searches with a probe into this
very compact bitmap.

I don't think you can assume locality

Really? If you have a 1TB table, how many 2MB ranges of that table do
you think will contain dead tuples for a typical vacuum? I think most
tables of that size are going to be mostly static, and the all-visible
and all-frozen bits are going to be mostly set. You *could* have
something like a pgbench-type workload that does scattered updates
across the entire table, but that's going to perform pretty poorly
because you'll constantly be updating blocks that have to be pulled in
from disk.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#42Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#41)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Sep 13, 2016 at 4:06 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Sep 13, 2016 at 2:59 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

I've finished writing that patch, I'm in the process of testing its CPU impact.

First test seemed to hint at a 40% increase in CPU usage, which seems
rather steep compared to what I expected, so I'm trying to rule out
some methodology error here.

Hmm, wow. That's pretty steep. Maybe lazy_heap_reaptid() is hotter
than I think it is, but even if it accounts for 10% of total CPU usage
within a vacuum, which seems like an awful lot, you'd have to make it
4x as expensive, which also seems like an awful lot.

IIRC perf top reported a combined 45% between layz_heap_reaptid +
vac_cmp_itemptr (after patching).

vac_cmp_itemptr was around 15% on its own

Debug build of couse (I need the assertions and the debug symbols),
I'll retest with optimizations once debug tests make sense.

For example, we could keep a bitmap with one bit per K
pages. If the bit is set, there is at least 1 dead tuple on that
page; if clear, there are none. When we see an index tuple, we
consult the bitmap to determine whether we need to search the TID
list. We select K to be the smallest power of 2 such that the bitmap
uses less memory than some threshold, perhaps 64kB.

I've been pondering something like that, but that's an optimization
that's quite orthogonal to the multiarray stuff.

Sure, but if this really does increase CPU time, it'd be reasonable to
do something to decrease it again in order to get the other benefits
of this patch - i.e. increasing the maintenance_work_mem limit while
reducing the chances that overallocation will cause OOM.

I was hoping it wouldn't regress performance so much. I'd rather
micro-optimize the multiarray implementation until it doesn't and then
think of orthogonal optimizations.

Assuming that
updates and deletes to the table have some locality, we should be able
to skip a large percentage of the TID searches with a probe into this
very compact bitmap.

I don't think you can assume locality

Really? If you have a 1TB table, how many 2MB ranges of that table do
you think will contain dead tuples for a typical vacuum? I think most
tables of that size are going to be mostly static, and the all-visible
and all-frozen bits are going to be mostly set. You *could* have
something like a pgbench-type workload that does scattered updates
across the entire table, but that's going to perform pretty poorly
because you'll constantly be updating blocks that have to be pulled in
from disk.

I have a few dozen of those in my biggest database. They do updates
and deletes all over the place and, even if they were few, they're
scattered almost uniformly.

Thing is, I think we really need to not worsen that case, which seems
rather common (almost any OLTP with a big enough user base, or a K-V
type of table, or TOAST tables).

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#43Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Robert Haas (#38)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 12:21 AM, Robert Haas <robertmhaas@gmail.com> wrote:

On Fri, Sep 9, 2016 at 3:04 AM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:

Attached PoC patch changes the representation of dead tuple locations
to the hashmap having tuple bitmap.
The one hashmap entry consists of the block number and the TID bitmap
of corresponding block, and the block number is the hash key of
hashmap.
Current implementation of this patch is not smart yet because each
hashmap entry allocates the tuple bitmap with fixed
size(LAZY_ALLOC_TUPLES), so each hashentry can store up to
LAZY_ALLOC_TUPLES(291 if block size is 8kB) tuples.
In case where one block can store only the several tens tuples, the
most bits are would be waste.

After improved this patch as you suggested, I will measure performance

benefit.

Now, if I'm reading it correctly, this patch allocates a 132-byte
structure for every page with at least one dead tuple. In the worst
case where there's just one dead tuple per page, that's a 20x
regression in memory usage. Actually, it's more like 40x, because
AllocSetAlloc rounds small allocation sizes up to the next-higher
power of two, which really stings for a 132-byte allocation, and then
adds a 16-byte header to each chunk. But even 20x is clearly not
good. There are going to be lots of real-world cases where this uses
way more memory to track the same number of dead tuples, and I'm
guessing that benchmarking is going to reveal that it's not faster,
either.

Sawada-san offered to reimplement the patch based on what I proposed
upthread. In the new scheme of things, we will allocate a fixed size bitmap
of length 2D bits per page where D is average page density of live + dead
tuples. (The rational behind multiplying D by a factor of 2 is to consider
worst case scenario where every tuple also has a LP_DIRECT line
pointer). The value of D in most real world, large tables should not go
much beyond, say 100, assuming 80 bytes wide tuple and 8K blocksize. That
translates to about 25 bytes/page. So all TIDs with offset less than 2D can
be represented by a single bit. We augment this with an overflow to track
tuples which fall outside this limit. I believe this area will be small,
say 10% of the total allocation.

This representation is at least as good the current representation if there
are at least 4-5% dead tuples. I don't think very large tables will be
vacuumed with a scale factor less than that. And assuming 10% dead tuples,
this representation will actually be much more optimal.

The idea can fail when (a) there are very few dead tuples in the table, say
less than 5% or (b) there are large number of tuples falling outside the 2D
limit. While I don't expect any of these to hold for real world, very large
tables, (a) we can anticipate when the vacuum starts and use current
representation. (b) we can detect at run time and do a one time switch
between representation. You may argue that managing two representations is
clumsy, which I agree, but the code is completely isolated and probably not
more than a few hundred lines.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#44Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Pavan Deolasee (#43)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 8:47 AM, Pavan Deolasee <pavan.deolasee@gmail.com>
wrote:

Sawada-san offered to reimplement the patch based on what I proposed
upthread. In the new scheme of things, we will allocate a fixed size bitmap
of length 2D bits per page where D is average page density of live + dead
tuples. (The rational behind multiplying D by a factor of 2 is to consider
worst case scenario where every tuple also has a LP_DIRECT line
pointer). The value of D in most real world, large tables should not go
much beyond, say 100, assuming 80 bytes wide tuple and 8K blocksize. That
translates to about 25 bytes/page. So all TIDs with offset less than 2D can
be represented by a single bit. We augment this with an overflow to track
tuples which fall outside this limit. I believe this area will be small,
say 10% of the total allocation.

So I cooked up the attached patch to track number of live/dead tuples found
at offset 1 to MaxOffsetNumber. The idea was to see how many tuples
actually go beyond the threshold of 2D offsets per page. Note that I am
proposing to track 2D offsets via bitmap and rest via regular TID array.

So I ran a pgbench test for 2hrs with scale factor 500. autovacuum scale
factor was set to 0.1 or 10%.

Some interesting bits:

postgres=# select relname, n_tup_ins, n_tup_upd, n_tup_hot_upd, n_live_tup,
n_dead_tup, pg_relation_size(relid)/8192 as relsize,
(n_live_tup+n_dead_tup)/(pg_relation_size(relid)/8192) as density from
pg_stat_user_tables ;
relname | n_tup_ins | n_tup_upd | n_tup_hot_upd | n_live_tup |
n_dead_tup | relsize | density
------------------+-----------+-----------+---------------+------------+------------+---------+---------
pgbench_tellers | 5000 | 95860289 | 87701578 | 5000 |
0 | 3493 | 1
pgbench_branches | 500 | 95860289 | 94158081 | 967 |
0 | 1544 | 0
pgbench_accounts | 50000000 | 95860289 | 93062567 | 51911657 |
3617465 | 865635 | 64
pgbench_history | 95860289 | 0 | 0 | 95258548 |
0 | 610598 | 156
(4 rows)

Smaller tellers and branches tables bloat so much that the density as
computed by live + dead tuples falls close to 1 tuple/page. So for such
tables, the idea of 2D bits/page will fail miserably. But I think these
tables are worst representatives and I would be extremely surprised if we
ever find very large table bloated so much. But even then, this probably
tells us that we can't solely rely on the density measure.

Another interesting bit about these small tables is that the largest used
offset for these tables never went beyond 291 which is the value of
MaxHeapTuplesPerPage. I don't know if there is something that prevents
inserting more than MaxHeapTuplesPerPage offsets per heap page and I don't
know at this point if this gives us upper limit for bits per page (may be
it does).

For pgbench_accounts table, the maximum offset used was 121, though bulk of
the used offsets were at the start of the page (see attached graph). Now
the test did not create enough dead tuples to trigger autovacuum on
pgbench_accounts table. So I ran a manul vacuum at the end. (There are
about 5% dead tuples in the table by the time test finished)

postgres=# VACUUM VERBOSE pgbench_accounts ;
INFO: vacuuming "public.pgbench_accounts"
INFO: scanned index "pgbench_accounts_pkey" to remove 2797722 row versions
DETAIL: CPU 0.00s/9.39u sec elapsed 9.39 sec.
INFO: "pgbench_accounts": removed 2797722 row versions in 865399 pages
DETAIL: CPU 0.10s/7.01u sec elapsed 7.11 sec.
INFO: index "pgbench_accounts_pkey" now contains 50000000 row versions in
137099 pages
DETAIL: 2797722 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: "pgbench_accounts": found 852487 removable, 50000000 nonremovable
row versions in 865635 out of 865635 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 802256 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 0.73s/27.20u sec elapsed 27.98 sec.tuple count at each offset
(offnum:all_tuples:dead_tuples)

For 2797722 dead line pointers, the current representation would have used
2797722 x 6 = 16786332 bytes of memory. The most optimal bitmap would have
used 121 bits/page x 865399 pages = 13089159 bytes where as if we had
provisioned 2D bits/page and assuming D = 64 based on the above
calculation, we would have used 13846384 bytes of memory. This is about 18%
less than the current representation. Of course, we would have allocated
some space for overflow region, which will make the difference
smaller/negligible. But the bitmaps would be extremely cheap to lookup
during index scans.

Now may be I got lucky, may be I did nor run tests long enough (though I
believe that may have worked in favour of bitmap), may be mostly HOT
updated tables are not good candidate for testing and may be there are
situations where the proposed bitmap representation will fail badly. But
these tests show that the idea is at least worth considering and we can
improve things for at least some workload. The question is can be avoid
regression in not-so-good cases.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Attachments:

vacuum_print_offset_stats.patchapplication/octet-stream; name=vacuum_print_offset_stats.patchDownload
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 2429889..da25016 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -121,6 +121,8 @@ typedef struct LVRelStats
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
+	double		count_tuples_at_offset[MaxOffsetNumber];
+	double		count_dead_tuples_at_offset[MaxOffsetNumber];
 } LVRelStats;
 
 
@@ -236,6 +238,11 @@ lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params,
 	vacrelstats->pages_removed = 0;
 	vacrelstats->lock_waiter_detected = false;
 
+	memset(vacrelstats->count_tuples_at_offset, 0, sizeof (double) *
+			MaxOffsetNumber);
+	memset(vacrelstats->count_dead_tuples_at_offset, 0, sizeof (double) *
+			MaxOffsetNumber);
+
 	/* Open all indexes of the relation */
 	vac_open_indexes(onerel, RowExclusiveLock, &nindexes, &Irel);
 	vacrelstats->hasindex = (nindexes > 0);
@@ -337,6 +344,7 @@ lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params,
 									   params->log_min_duration))
 		{
 			StringInfoData buf;
+			OffsetNumber offnum;
 
 			TimestampDifference(starttime, endtime, &secs, &usecs);
 
@@ -378,6 +386,16 @@ lazy_vacuum_rel(Relation onerel, int options, VacuumParams *params,
 							 read_rate, write_rate);
 			appendStringInfo(&buf, _("system usage: %s"), pg_rusage_show(&ru0));
 
+			appendStringInfo(&buf, _("tuple count at each offset (offnum:all_tuples:dead_tuples)\n"));
+			for (offnum = 0; offnum < MaxOffsetNumber; offnum++)
+			{
+				if (vacrelstats->count_tuples_at_offset[offnum] > 0 ||
+					vacrelstats->count_dead_tuples_at_offset[offnum] > 0)
+					appendStringInfo(&buf, _("%d:%.0f:%.0f\n"), offnum,
+							vacrelstats->count_tuples_at_offset[offnum],
+							vacrelstats->count_dead_tuples_at_offset[offnum]);
+			}
+
 			ereport(LOG,
 					(errmsg_internal("%s", buf.data)));
 			pfree(buf.data);
@@ -787,6 +805,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
 				continue;
 			}
 
+			vacrelstats->count_tuples_at_offset[offnum]++;
+
 			/* Redirect items mustn't be touched */
 			if (ItemIdIsRedirected(itemid))
 			{
@@ -1135,6 +1155,20 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
 	appendStringInfo(&buf, _("%s."),
 					 pg_rusage_show(&ru0));
 
+	{
+		OffsetNumber offnum;
+
+		appendStringInfo(&buf, _("tuple count at each offset (offnum:all_tuples:dead_tuples)\n"));
+		for (offnum = 0; offnum < MaxOffsetNumber; offnum++)
+		{
+			if (vacrelstats->count_tuples_at_offset[offnum] > 0 ||
+				vacrelstats->count_dead_tuples_at_offset[offnum] > 0)
+				appendStringInfo(&buf, _("%d:%.0f:%.0f\n"), offnum,
+						vacrelstats->count_tuples_at_offset[offnum],
+						vacrelstats->count_dead_tuples_at_offset[offnum]);
+		}
+	}
+
 	ereport(elevel,
 			(errmsg("\"%s\": found %.0f removable, %.0f nonremovable row versions in %u out of %u pages",
 					RelationGetRelationName(onerel),
@@ -1726,6 +1760,8 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
 		vacrelstats->num_dead_tuples++;
 	}
+
+	vacrelstats->count_dead_tuples_at_offset[ItemPointerGetOffsetNumber(itemptr)]++;
 }
 
 /*
image (29).pngimage/png; name="image (29).png"Download
#45Robert Haas
robertmhaas@gmail.com
In reply to: Pavan Deolasee (#44)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 5:45 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

Another interesting bit about these small tables is that the largest used
offset for these tables never went beyond 291 which is the value of
MaxHeapTuplesPerPage. I don't know if there is something that prevents
inserting more than MaxHeapTuplesPerPage offsets per heap page and I don't
know at this point if this gives us upper limit for bits per page (may be it
does).

From PageAddItemExtended:

/* Reject placing items beyond heap boundary, if heap */
if ((flags & PAI_IS_HEAP) != 0 && offsetNumber > MaxHeapTuplesPerPage)
{
elog(WARNING, "can't put more than MaxHeapTuplesPerPage items
in a heap page");
return InvalidOffsetNumber;
}

Also see the comment where MaxHeapTuplesPerPage is defined:

* Note: with HOT, there could theoretically be more line pointers (not actual
* tuples) than this on a heap page. However we constrain the number of line
* pointers to this anyway, to avoid excessive line-pointer bloat and not
* require increases in the size of work arrays.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#46Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Robert Haas (#45)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 5:32 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Wed, Sep 14, 2016 at 5:45 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

Another interesting bit about these small tables is that the largest used
offset for these tables never went beyond 291 which is the value of
MaxHeapTuplesPerPage. I don't know if there is something that prevents
inserting more than MaxHeapTuplesPerPage offsets per heap page and I

don't

know at this point if this gives us upper limit for bits per page (may

be it

does).

From PageAddItemExtended:

/* Reject placing items beyond heap boundary, if heap */
if ((flags & PAI_IS_HEAP) != 0 && offsetNumber > MaxHeapTuplesPerPage)
{
elog(WARNING, "can't put more than MaxHeapTuplesPerPage items
in a heap page");
return InvalidOffsetNumber;
}

Also see the comment where MaxHeapTuplesPerPage is defined:

* Note: with HOT, there could theoretically be more line pointers (not
actual
* tuples) than this on a heap page. However we constrain the number of
line
* pointers to this anyway, to avoid excessive line-pointer bloat and not
* require increases in the size of work arrays.

Ah, thanks. So MaxHeapTuplesPerPage sets the upper boundary for the per
page bitmap size. Thats about 36 bytes for 8K page. IOW if on an average
there are 6 or more dead tuples per page, bitmap will outperform the
current representation, assuming max allocation for bitmap. If we can use
additional estimates to restrict the size to somewhat more conservative
value and then keep overflow area, then probably the break-even happens
even earlier than that. I hope this gives us a good starting point, but let
me know if you think it's still a wrong approach to pursue.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#47Robert Haas
robertmhaas@gmail.com
In reply to: Pavan Deolasee (#46)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 8:16 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

Ah, thanks. So MaxHeapTuplesPerPage sets the upper boundary for the per page
bitmap size. Thats about 36 bytes for 8K page. IOW if on an average there
are 6 or more dead tuples per page, bitmap will outperform the current
representation, assuming max allocation for bitmap. If we can use additional
estimates to restrict the size to somewhat more conservative value and then
keep overflow area, then probably the break-even happens even earlier than
that. I hope this gives us a good starting point, but let me know if you
think it's still a wrong approach to pursue.

Well, it's certainly a bigger change. I think the big concern is that
the amount of memory now becomes fixed based on the table size. So
one problem is that you have to figure out what you're going to do if
the bitmap doesn't fit in maintenance_work_mem. A related problem is
that it might fit but use more memory than before, which could cause
problems for some people. Now on the other hand it could also use
less memory for some people, and that would be good.

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

I'm fairly sure that our number one priority should be to minimize the
number of cases where we need to do multiple scans of the indexes to
stay within maintenance_work_mem. If we're satisfied we've met that
goal, then within that we should try to make VACUUM as fast as
possible with as little memory usage as possible. I'm not 100% sure I
know how to get there, or how much work it's worth expending. In
theory we could even start with the list of TIDs and switch to the
bitmap if the TID list becomes larger than the bitmap would have been,
but I don't know if it's worth the effort.

/me thinks a bit.

Actually, I think that probably *is* worthwhile, specifically because
it might let us avoid multiple index scans in cases where we currently
require them. Right now, our default maintenance_work_mem value is
64MB, which is enough to hold a little over ten million tuples. It's
also large enough to hold a bitmap for a 14GB table. So right now if
you deleted, say, 100 tuples per page you would end up with an index
vacuum cycles for every ~100,000 pages = 800MB, whereas switching to
the bitmap representation for such cases would require only one index
vacuum cycle for every 14GB, more than an order of magnitude
improvement!

On the other hand, if we switch to the bitmap as the ONLY possible
representation, we will lose badly when there are scattered updates -
e.g. 1 deleted tuple every 10 pages. So it seems like we probably
want to have both options. One tricky part is figuring out how we
switch between them when memory gets tight; we have to avoid bursting
above our memory limit while making the switch. And even if our
memory limit is very high, we want to avoid using memory gratuitously;
I think we should try to grow memory usage incrementally with either
representation.

For instance, one idea to grow memory usage incrementally would be to
store dead tuple information separately for each 1GB segment of the
relation. So we have an array of dead-tuple-representation objects,
one for every 1GB of the relation. If there are no dead tuples in a
given 1GB segment, then this pointer can just be NULL. Otherwise, it
can point to either the bitmap representation (which will take ~4.5MB)
or it can point to an array of TIDs (which will take 6 bytes/TID).
That could handle an awfully wide variety of usage patterns
efficiently; it's basically never worse than what we're doing today,
and when the dead tuple density is high for any portion of the
relation it's a lot better.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#48Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 12:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

FYI, the reported impact was on CPU time, not runtime. There was no
significant difference in runtime (real time), because my test is
heavily I/O bound.

I tested with a few small tables and there was no significant
difference either, but small tables don't stress the array lookup
anyway so that's expected.

But on the assumption that some systems may be CPU bound during vacuum
(particularly those able to do more than 300-400MB/s sequential I/O),
in those cases the increased or decreased cost of lazy_tid_reaped will
directly correlate to runtime. It's just none of my systems, which all
run on amazon and is heavily bandwidth constrained (fastest I/O
subsystem I can get my hands on does 200MB/s).

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#49Arthur Silva
arthurprs@gmail.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sep 14, 2016 5:18 PM, "Robert Haas" <robertmhaas@gmail.com> wrote:

On Wed, Sep 14, 2016 at 8:16 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

Ah, thanks. So MaxHeapTuplesPerPage sets the upper boundary for the per

page

bitmap size. Thats about 36 bytes for 8K page. IOW if on an average

there

are 6 or more dead tuples per page, bitmap will outperform the current
representation, assuming max allocation for bitmap. If we can use

additional

estimates to restrict the size to somewhat more conservative value and

then

keep overflow area, then probably the break-even happens even earlier

than

that. I hope this gives us a good starting point, but let me know if you
think it's still a wrong approach to pursue.

Well, it's certainly a bigger change. I think the big concern is that
the amount of memory now becomes fixed based on the table size. So
one problem is that you have to figure out what you're going to do if
the bitmap doesn't fit in maintenance_work_mem. A related problem is
that it might fit but use more memory than before, which could cause
problems for some people. Now on the other hand it could also use
less memory for some people, and that would be good.

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

I'm fairly sure that our number one priority should be to minimize the
number of cases where we need to do multiple scans of the indexes to
stay within maintenance_work_mem. If we're satisfied we've met that
goal, then within that we should try to make VACUUM as fast as
possible with as little memory usage as possible. I'm not 100% sure I
know how to get there, or how much work it's worth expending. In
theory we could even start with the list of TIDs and switch to the
bitmap if the TID list becomes larger than the bitmap would have been,
but I don't know if it's worth the effort.

/me thinks a bit.

Actually, I think that probably *is* worthwhile, specifically because
it might let us avoid multiple index scans in cases where we currently
require them. Right now, our default maintenance_work_mem value is
64MB, which is enough to hold a little over ten million tuples. It's
also large enough to hold a bitmap for a 14GB table. So right now if
you deleted, say, 100 tuples per page you would end up with an index
vacuum cycles for every ~100,000 pages = 800MB, whereas switching to
the bitmap representation for such cases would require only one index
vacuum cycle for every 14GB, more than an order of magnitude
improvement!

On the other hand, if we switch to the bitmap as the ONLY possible
representation, we will lose badly when there are scattered updates -
e.g. 1 deleted tuple every 10 pages. So it seems like we probably
want to have both options. One tricky part is figuring out how we
switch between them when memory gets tight; we have to avoid bursting
above our memory limit while making the switch. And even if our
memory limit is very high, we want to avoid using memory gratuitously;
I think we should try to grow memory usage incrementally with either
representation.

For instance, one idea to grow memory usage incrementally would be to
store dead tuple information separately for each 1GB segment of the
relation. So we have an array of dead-tuple-representation objects,
one for every 1GB of the relation. If there are no dead tuples in a
given 1GB segment, then this pointer can just be NULL. Otherwise, it
can point to either the bitmap representation (which will take ~4.5MB)
or it can point to an array of TIDs (which will take 6 bytes/TID).
That could handle an awfully wide variety of usage patterns
efficiently; it's basically never worse than what we're doing today,
and when the dead tuple density is high for any portion of the
relation it's a lot better.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

I'd say it's an idea worth pursuing. It's the base idea behind roaring
bitmaps, arguably the best overall compressed bitmap implementation.

#50Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 8:47 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

Yeah, I wouldn't worry only about lookup speedup, but if does speeds up,
that's a bonus. But the bitmaps seem to win even for memory consumption. As
theory and experiments both show, at 10% dead tuple ratio, bitmaps will win
handsomely.

In

theory we could even start with the list of TIDs and switch to the
bitmap if the TID list becomes larger than the bitmap would have been,
but I don't know if it's worth the effort.

Yes, that works too. Or may be even better because we already know the
bitmap size requirements, definitely for the tuples collected so far. We
might need to maintain some more stats to further optimise the
representation, but that seems like unnecessary detailing at this point.

On the other hand, if we switch to the bitmap as the ONLY possible
representation, we will lose badly when there are scattered updates -
e.g. 1 deleted tuple every 10 pages.

Sure. I never suggested that. What I'd suggested is to switch back to array
representation once we realise bitmaps are not going to work. But I see
it's probably better the other way round.

So it seems like we probably
want to have both options. One tricky part is figuring out how we
switch between them when memory gets tight; we have to avoid bursting
above our memory limit while making the switch.

Yes, I was thinking about this problem. Some modelling will be necessary to
ensure that we don't go (much) beyond the maintenance_work_mem while
switching representation, which probably means you need to do that earlier
than necessary.

For instance, one idea to grow memory usage incrementally would be to
store dead tuple information separately for each 1GB segment of the
relation. So we have an array of dead-tuple-representation objects,
one for every 1GB of the relation. If there are no dead tuples in a
given 1GB segment, then this pointer can just be NULL. Otherwise, it
can point to either the bitmap representation (which will take ~4.5MB)
or it can point to an array of TIDs (which will take 6 bytes/TID).
That could handle an awfully wide variety of usage patterns
efficiently; it's basically never worse than what we're doing today,
and when the dead tuple density is high for any portion of the
relation it's a lot better.

Yes seems like a good idea. Another idea that I'd in mind is to use some
sort of indirection map where bitmap for every block or a set of blocks
will either be recorded or not, depending on whether a bit is set for the
range. If the bitmap exists, the indirection map will give out the offset
into the larger bitmap area. Seems similar to what you described.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#51Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 12:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

For instance, one idea to grow memory usage incrementally would be to
store dead tuple information separately for each 1GB segment of the
relation. So we have an array of dead-tuple-representation objects,
one for every 1GB of the relation. If there are no dead tuples in a
given 1GB segment, then this pointer can just be NULL. Otherwise, it
can point to either the bitmap representation (which will take ~4.5MB)
or it can point to an array of TIDs (which will take 6 bytes/TID).
That could handle an awfully wide variety of usage patterns
efficiently; it's basically never worse than what we're doing today,
and when the dead tuple density is high for any portion of the
relation it's a lot better.

If you compress the list into a bitmap a posteriori, you know the
number of tuples per page, so you could encode the bitmap even more
efficiently.

It's not a bad idea, one that can be slapped on top of the multiarray
patch - when closing a segment, it can be decided whether to turn it
into a bitmap or not.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#52Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

Robert Haas wrote:

Actually, I think that probably *is* worthwhile, specifically because
it might let us avoid multiple index scans in cases where we currently
require them. Right now, our default maintenance_work_mem value is
64MB, which is enough to hold a little over ten million tuples. It's
also large enough to hold a bitmap for a 14GB table. So right now if
you deleted, say, 100 tuples per page you would end up with an index
vacuum cycles for every ~100,000 pages = 800MB, whereas switching to
the bitmap representation for such cases would require only one index
vacuum cycle for every 14GB, more than an order of magnitude
improvement!

Yeah, this sounds worthwhile. If we switch to the more compact
in-memory representation close to the point where we figure the TID
array is not going to fit in m_w_m, then we're saving some number of
additional index scans, and I'm pretty sure that the time to transform
from array to bitmap is going to be more than paid back by the I/O
savings.

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#53Simon Riggs
simon@2ndquadrant.com
In reply to: Pavan Deolasee (#50)
Re: Vacuum: allow usage of more than 1GB of work mem

On 14 September 2016 at 11:19, Pavan Deolasee <pavan.deolasee@gmail.com> wrote:

In
theory we could even start with the list of TIDs and switch to the
bitmap if the TID list becomes larger than the bitmap would have been,
but I don't know if it's worth the effort.

Yes, that works too. Or may be even better because we already know the
bitmap size requirements, definitely for the tuples collected so far. We
might need to maintain some more stats to further optimise the
representation, but that seems like unnecessary detailing at this point.

That sounds best to me... build the simple representation, but as we
do maintain stats to show to what extent that set of tuples is
compressible.

When we hit the limit on memory we can then selectively compress
chunks to stay within memory, starting with the most compressible
chunks.

I think we should use the chunking approach Robert suggests, though
mainly because that allows us to consider how parallel VACUUM should
work - writing the chunks to shmem. That would also allow us to apply
a single global limit for vacuum memory rather than an allocation per
VACUUM.
We can then scan multiple indexes at once in parallel, all accessing
the shmem data structure.

We should also find the compression is better when we consider chunks
rather than the whole data structure at once.

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#54Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Alvaro Herrera (#52)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 10:53 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

We could do that. Or may be compress TID array when consumed half m_w_m and
do this repeatedly with remaining memory. For example, if we start with 1GB
memory, we decide to compress at 512MB. Say that results in 300MB for
bitmap. We then continue to accumulate TID and do another round of fold up
when another 350MB is consumed.

I think we should maintain per offset count of number of dead tuples to
choose the most optimal bitmap size (that needs overflow region). We can
also track how many blocks or block ranges have at least one dead tuple to
know if it's worthwhile to have some sort of indirection. Together that can
tell us how much compression can be achieved and allow us to choose the
most optimal representation.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#55Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavan Deolasee (#54)
Re: Vacuum: allow usage of more than 1GB of work mem

Pavan Deolasee <pavan.deolasee@gmail.com> writes:

On Wed, Sep 14, 2016 at 10:53 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

We could do that.

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#56Robert Haas
robertmhaas@gmail.com
In reply to: Alvaro Herrera (#52)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Sep 14, 2016 at 1:23 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

Robert Haas wrote:

Actually, I think that probably *is* worthwhile, specifically because
it might let us avoid multiple index scans in cases where we currently
require them. Right now, our default maintenance_work_mem value is
64MB, which is enough to hold a little over ten million tuples. It's
also large enough to hold a bitmap for a 14GB table. So right now if
you deleted, say, 100 tuples per page you would end up with an index
vacuum cycles for every ~100,000 pages = 800MB, whereas switching to
the bitmap representation for such cases would require only one index
vacuum cycle for every 14GB, more than an order of magnitude
improvement!

Yeah, this sounds worthwhile. If we switch to the more compact
in-memory representation close to the point where we figure the TID
array is not going to fit in m_w_m, then we're saving some number of
additional index scans, and I'm pretty sure that the time to transform
from array to bitmap is going to be more than paid back by the I/O
savings.

Yes, that seems pretty clear. The indexes can be arbitrarily large
and there can be arbitrarily many of them, so we could be save a LOT
of I/O.

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

I was just thinking about this exact problem while I was out to
lunch.[1]Or am I always out to lunch? I wonder if we could do something like this:

1. Allocate an array large enough for one pointer per gigabyte of the
underlying relation.

2. Allocate 64MB, or the remaining amount of maintenance_work_mem if
it's less, to store TIDs.

3. At the beginning of each 1GB chunk, add a pointer to the first free
byte in the slab allocated in step 2 to the array allocated in step 1.
Write a header word that identifies this as a TID list (rather than a
bitmap) and leave space for a TID count; then, write the TIDs
afterwards. Continue doing this until one of the following things
happens: (a) we reach the end of the 1GB chunk - if that happens,
restart step 3 for the next chunk; (b) we fill the chunk - see step 4,
or (c) we write more TIDs for the chunk than the space being used for
TIDs now exceeds the space needed for a bitmap - see step 5.

4. When we fill up one of the slabs allocated in step 2, allocate a
new one and move the tuples for the current 1GB chunk to the beginning
of the new slab using memmove(). This is wasteful of both CPU time
and memory, but I think it's not that bad. The maximum possible waste
is less than 10%, and many allocators have more overhead than that.
We could reduce the waste by using, say, 256MB chunks rather than 1GB
chunks. If no new slab can be allocated because maintenance_work_mem
is completely exhausted (or the remaining space isn't enough for the
TIDs that would need to be moved immediately), then stop and do an
index vacuum cycle.

5. When we write a large enough number of TIDs for 1GB chunk that the
bitmap would be smaller, check whether sufficient maintenance_work_mem
remains to allocate a bitmap for 1GB chunk (~4.5MB). If not, never
mind; continue with step 3 as if the bitmap representation did not
exist. If so, allocate space for a bitmap, move all of the TIDs for
the current chunk into it, and update the array allocated in step 1 to
point to it. Then, finish scanning the current 1GB chunk, updating
that bitmap rather than inserting TIDs into the slab. Rewind our
pointer into the slab to where it was at the beginning of the current
1GB chunk, so that the memory we consumed for TIDs can be reused now
that those TIDs have been transferred to a bitmap. If, earlier in the
current 1GB chunk, we did a memmove-to-next-slab operation as
described in step 4, this "rewind" might move our pointer back into
the previous slab, in which case we can free the now-empty slab. (The
next 1GB segment might have few enough TIDs that they will fit into
the leftover space in the previous slab.)

With this algorithm, we never exceed maintenance_work_mem, not even
transiently. When memory is no longer sufficient to convert to the
bitmap representation without bursting above maintenance_work_mem, we
simply don't perform the conversion. Also, we do very little memory
copying. An alternative I considered was to do a separate allocation
for each 1GB chunk rather than carving the dead-tuple space out of
slabs. But the problem with that is that you'll have to start those
out small (in case you don't find many dead tuples) and then grow
them, which means reallocating, which is bad both because it can burst
above maintenance_work_mem while the repalloc is in process and also
because you have to keep copying the data from the old chunk to the
new, bigger chunk. This algorithm only needs to copy TIDs when it
runs off the end of a chunk, and that can't happen more than once
every dozen or so chunks; in contrast, progressively growing the TID
arrays for a given 1GB chunk would potentially memcpy() multiple times
per 1GB chunk, and if you used power-of-two reallocation as we
normally do the waste would be much more than what step 4 of this
algorithm leaves on the table.

There are, nevertheless, corner cases where this can lose: if you had
a number of TIDs that were going to just BARELY fit within
maintenance_work_mem, and if the bitmap representation never wins for
you, the additional array allocated in step 1 and the end-of-slab
wastage in step 4 could push you over the line. We might be able to
tweak things here or there to reduce the potential for that, but it's
pretty well unavoidable; the flat array we're using right now has
exactly zero allocator overhead, and anything more complex will have
some.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

[1]: Or am I always out to lunch?

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#57Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Simon Riggs (#53)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 2:40 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On 14 September 2016 at 11:19, Pavan Deolasee <pavan.deolasee@gmail.com> wrote:

In
theory we could even start with the list of TIDs and switch to the
bitmap if the TID list becomes larger than the bitmap would have been,
but I don't know if it's worth the effort.

Yes, that works too. Or may be even better because we already know the
bitmap size requirements, definitely for the tuples collected so far. We
might need to maintain some more stats to further optimise the
representation, but that seems like unnecessary detailing at this point.

That sounds best to me... build the simple representation, but as we
do maintain stats to show to what extent that set of tuples is
compressible.

When we hit the limit on memory we can then selectively compress
chunks to stay within memory, starting with the most compressible
chunks.

I think we should use the chunking approach Robert suggests, though
mainly because that allows us to consider how parallel VACUUM should
work - writing the chunks to shmem. That would also allow us to apply
a single global limit for vacuum memory rather than an allocation per
VACUUM.
We can then scan multiple indexes at once in parallel, all accessing
the shmem data structure.

Yeah, the chunking approach Robert suggested seems like a good idea
but considering implementing parallel vacuum, it would be more
complicated IMO.
I think It's better the multiple process simply allocate memory space
for its process than that the single process allocate huge memory
space using complicated way.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#58Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Tom Lane (#55)
Re: Vacuum: allow usage of more than 1GB of work mem

On 09/14/2016 07:57 PM, Tom Lane wrote:

Pavan Deolasee <pavan.deolasee@gmail.com> writes:

On Wed, Sep 14, 2016 at 10:53 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

We could do that.

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

The people are usually running out of space for data, while these files
would be temporary files placed wherever temp_tablespaces points to. I'd
argue if this is a source of problems, the people are already in deep
trouble due to sorts, CREATE INDEX, ... as those commands may also
generate a lot of temporary files.

regards
Tomas

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#59Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Robert Haas (#47)
Re: Vacuum: allow usage of more than 1GB of work mem

On 09/14/2016 05:17 PM, Robert Haas wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

Regarding the lookup performance, I don't think the bitmap alone can
significantly improve that - it's more efficient memory-wise, no doubt
about that, but it's still likely larger than CPU caches and accessed
mostly randomly (when vacuuming the indexes).

IMHO the best way to speed-up lookups (if it's really an issue, haven't
done any benchmarks) would be to build a small bloom filter in front of
the TID array / bitmap. It shall be fairly small (depending on the
number of TIDs, error rate etc.) and likely to fit into L2/L3, and
eliminate a lot of probes into the much larger array/bitmap.

Of course, it's another layer of complexity - the good thing is we don't
need to build the filter until after we collect the TIDs, so we got
pretty good inputs for the bloom filter parameters.

But all this is based on the assumption that the lookups are actually
expensive, not sure about that.

regards
Tomas

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#60Claudio Freire
klaussfreire@gmail.com
In reply to: Tomas Vondra (#58)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 12:50 PM, Tomas Vondra
<tomas.vondra@2ndquadrant.com> wrote:

On 09/14/2016 07:57 PM, Tom Lane wrote:

Pavan Deolasee <pavan.deolasee@gmail.com> writes:

On Wed, Sep 14, 2016 at 10:53 PM, Alvaro Herrera
<alvherre@2ndquadrant.com>
wrote:

One thing not quite clear to me is how do we create the bitmap
representation starting from the array representation in midflight
without using twice as much memory transiently. Are we going to write
the array to a temp file, free the array memory, then fill the bitmap by
reading the array from disk?

We could do that.

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

The people are usually running out of space for data, while these files
would be temporary files placed wherever temp_tablespaces points to. I'd
argue if this is a source of problems, the people are already in deep
trouble due to sorts, CREATE INDEX, ... as those commands may also generate
a lot of temporary files.

One would not expect "CREATE INDEX" to succeed when space is tight,
but VACUUM is quite the opposite.

Still, temporary storage could be used if available, and gracefully
fall back to some other technique (like not using bitmaps) when not.

Not sure it's worth the trouble, though.

On Wed, Sep 14, 2016 at 12:24 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Sep 14, 2016 at 12:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

FYI, the reported impact was on CPU time, not runtime. There was no
significant difference in runtime (real time), because my test is
heavily I/O bound.

I tested with a few small tables and there was no significant
difference either, but small tables don't stress the array lookup
anyway so that's expected.

But on the assumption that some systems may be CPU bound during vacuum
(particularly those able to do more than 300-400MB/s sequential I/O),
in those cases the increased or decreased cost of lazy_tid_reaped will
directly correlate to runtime. It's just none of my systems, which all
run on amazon and is heavily bandwidth constrained (fastest I/O
subsystem I can get my hands on does 200MB/s).

Attached is the patch with the multiarray version.

The tests are weird. Best case comparison over several runs, to remove
the impact of concurrent activity on this host (I couldn't remove all
background activity even when running the tests overnight, the distro
adds tons of crons and background cleanup tasks it would seem),
there's only very mild CPU impact. I'd say insignificant, as it's well
below the mean variance.

Worst case:

DETAIL: CPU 9.90s/80.94u sec elapsed 1232.42 sec.

Best case:

DETAIL: CPU 12.10s/63.82u sec elapsed 832.79 sec.

There seems to be more variance with the multiarray approach than the
single array one, but I could not figure out why. Even I/O seems less
stable:

Worst case:

INFO: "pgbench_accounts": removed 400000000 row versions in 6557382 pages
DETAIL: CPU 64.31s/37.60u sec elapsed 2573.88 sec.

Best case:

INFO: "pgbench_accounts": removed 400000000 row versions in 6557378 pages
DETAIL: CPU 54.48s/31.78u sec elapsed 1552.18 sec.

Since this test takes several hours to complete, I could only run a
few runs of each version, so the statistical significance of the test
isn't very bright.

I'll try to compare with smaller pgbench scale numbers and more runs
over the weekend (gotta script that). It's certainly puzzling, I
cannot explain the increased variance, especially in I/O, since the
I/O should be exactly the same. I'm betting it's my system that's
unpredictable somehow. So I'm posting the patch in case someone gets
inspired and can spot the reason, and because there's been a lot of
talk about this very same approach, so I thought I'd better post the
code ;)

I'll also try to get a more predictable system to run the tests on.

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v2-multiarray.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v2-multiarray.patchDownload
From f85fd4213eb6c0b4da8dc9196424f6e8a5a2a9a7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c | 252 +++++++++++++++++++++++++++++---------
 1 file changed, 192 insertions(+), 60 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 854bce3..2df17b1 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -91,6 +91,7 @@
  * tables.
  */
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
 
 /*
  * Before we consider skipping a page that's marked as clean in
@@ -98,6 +99,22 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment {
+	int		num_dead_tuples;	/* # of entries in the segment */
+	int		max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset until the segment is fully populated) */
+	unsigned short  padding;
+	ItemPointer	dead_tuples;		/* Array of dead tuples */
+} DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray {
+	int		num_entries;	/* current # of entries */
+	int		max_entries;	/* total # of slots that can be allocated in array */
+	int		num_segs;	/* number of dead tuple segments allocated */
+	int		last_seg;	/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment	*dead_tuples;	/* array of num_segs segments */
+} DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -117,14 +134,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray	dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -149,7 +166,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment *seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -157,8 +174,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -498,7 +516,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -677,8 +695,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -729,7 +747,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -911,7 +929,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1123,10 +1141,11 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0); /* Should not need more than one segment per page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,7 +1153,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1237,7 +1256,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1268,7 +1287,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1362,7 +1381,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1370,35 +1391,41 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
-	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++) {
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int num_dead_tuples = seg->num_dead_tuples;
+		while (tupindex < num_dead_tuples)
+		{
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		vacuum_delay_point();
+			vacuum_delay_point();
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
-		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1410,7 +1437,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1421,34 +1448,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment *seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer	dead_tuples = seg->dead_tuples;
+	int		num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1582,6 +1611,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment	*seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1592,6 +1622,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples-1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1599,7 +1634,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1962,7 +1997,7 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples, mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1971,7 +2006,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1985,10 +2019,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment*)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2003,16 +2045,73 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+		if (seg->num_dead_tuples >= seg->max_dead_tuples) {
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will
+			 * no longer be valid, so we must be careful about that.
+			 * In any case, we must update the last_dead_tuple copy in the
+			 * overflowing segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples-1];
+			if (vacrelstats->dead_tuples.last_seg+1 >= vacrelstats->dead_tuples.num_segs) {
+				int new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment*) repalloc(
+					(void*) vacrelstats->dead_tuples.dead_tuples,
+					new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs) {
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+						vacrelstats->dead_tuples.num_segs]);
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL) {
+				/* If unallocated, allocate up to twice the amount of the previous segment */
+				DeadTuplesSegment *pseg = seg - 1;
+				int numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX/2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int nseg;
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.last_seg; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2024,10 +2123,43 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg, *rseg;
+	int nseg, last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the item pointer.
+	 * Given the number of segments involved, binary search would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++) {
+		int rcomp = vac_cmp_itemptr((void*)itemptr, (void*)&(seg->last_dead_tuple));
+		if (rcomp == 0) {
+			/* Found it, what are the chances! */
+			return true;
+		} else if (rcomp < 0) {
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot)
+	 * Upper bound was already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void*)itemptr, (void*)rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2037,7 +2169,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
-- 
2.6.6

#61Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tomas Vondra (#58)
Re: Vacuum: allow usage of more than 1GB of work mem

Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:

On 09/14/2016 07:57 PM, Tom Lane wrote:

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

The people are usually running out of space for data, while these files
would be temporary files placed wherever temp_tablespaces points to. I'd
argue if this is a source of problems, the people are already in deep
trouble due to sorts, CREATE INDEX, ... as those commands may also
generate a lot of temporary files.

Except that if you are trying to recover disk space, VACUUM is what you
are doing, not CREATE INDEX. Requiring extra disk space to perform a
vacuum successfully is exactly the wrong direction to be going in.
See for example this current commitfest entry:
https://commitfest.postgresql.org/10/649/
Regardless of what you think of the merits of that patch, it's trying
to solve a real-world problem. And as Robert has already pointed out,
making this aspect of VACUUM more complicated is not solving any
pressing problem. "But we made it faster" is going to be a poor answer
for the next person who finds themselves up against the wall with no
recourse.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#62Robert Haas
robertmhaas@gmail.com
In reply to: Tom Lane (#61)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 12:22 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:

On 09/14/2016 07:57 PM, Tom Lane wrote:

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

The people are usually running out of space for data, while these files
would be temporary files placed wherever temp_tablespaces points to. I'd
argue if this is a source of problems, the people are already in deep
trouble due to sorts, CREATE INDEX, ... as those commands may also
generate a lot of temporary files.

Except that if you are trying to recover disk space, VACUUM is what you
are doing, not CREATE INDEX. Requiring extra disk space to perform a
vacuum successfully is exactly the wrong direction to be going in.
See for example this current commitfest entry:
https://commitfest.postgresql.org/10/649/
Regardless of what you think of the merits of that patch, it's trying
to solve a real-world problem. And as Robert has already pointed out,
making this aspect of VACUUM more complicated is not solving any
pressing problem. "But we made it faster" is going to be a poor answer
for the next person who finds themselves up against the wall with no
recourse.

I very much agree.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#63Tomas Vondra
tomas.vondra@2ndquadrant.com
In reply to: Robert Haas (#62)
Re: Vacuum: allow usage of more than 1GB of work mem

On 09/15/2016 06:40 PM, Robert Haas wrote:

On Thu, Sep 15, 2016 at 12:22 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:

On 09/14/2016 07:57 PM, Tom Lane wrote:

People who are vacuuming because they are out of disk space will be very
very unhappy with that solution.

The people are usually running out of space for data, while these files
would be temporary files placed wherever temp_tablespaces points to. I'd
argue if this is a source of problems, the people are already in deep
trouble due to sorts, CREATE INDEX, ... as those commands may also
generate a lot of temporary files.

Except that if you are trying to recover disk space, VACUUM is what you
are doing, not CREATE INDEX. Requiring extra disk space to perform a
vacuum successfully is exactly the wrong direction to be going in.
See for example this current commitfest entry:
https://commitfest.postgresql.org/10/649/
Regardless of what you think of the merits of that patch, it's trying
to solve a real-world problem. And as Robert has already pointed out,
making this aspect of VACUUM more complicated is not solving any
pressing problem. "But we made it faster" is going to be a poor answer
for the next person who finds themselves up against the wall with no
recourse.

I very much agree.

How does VACUUM alone help with recovering disk space? AFAIK it only
makes the space available for new data, it does not reclaim the disk
space at all. Sure, we truncate empty pages at the end of the last
segment, but how likely is that in practice? What I do see people doing
is usually either VACUUM FULL (which is however doomed for obvious
reasons) or VACUUM + reindexing to get rid of index bloat (which however
leads to CREATE INDEX using temporary files).

I'm not sure I agree with your claim there's no pressing problem. We do
see quite a few people having to do VACUUM with multiple index scans
(because the TIDs don't fit into m_w_m), which certainly has significant
impact on production systems - both in terms of performance and it also
slows down reclaiming the space. Sure, being able to set m_w_m above 1GB
is an improvement, but perhaps using a more efficient TID storage would
improve the situation further. Writing the TIDs to a temporary file may
not the right approach, but I don't see why that would make the original
problem less severe?

For example, we always allocate the TID array as large as we can fit
into m_w_m, but maybe we don't need to wait with switching to the bitmap
until filling the whole array - we could wait as long as the bitmap fits
into the remaining part of the array, build it there and then copy it to
the beginning (and use the bitmap from that point).

regards
Tomas

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#64Claudio Freire
klaussfreire@gmail.com
In reply to: Tomas Vondra (#63)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 3:48 PM, Tomas Vondra
<tomas.vondra@2ndquadrant.com> wrote:

For example, we always allocate the TID array as large as we can fit into
m_w_m, but maybe we don't need to wait with switching to the bitmap until
filling the whole array - we could wait as long as the bitmap fits into the
remaining part of the array, build it there and then copy it to the
beginning (and use the bitmap from that point).

The bitmap can be created like that, but grow from the end of the
segment backwards.

So the scan can proceed until the bitmap fills the whole segment
(filling backwards), no copy required.

I'll try that later, but first I'd like to get multiarray approach
right since that's the basis of it.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#65Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Claudio Freire (#64)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 16, 2016 at 12:24 AM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Thu, Sep 15, 2016 at 3:48 PM, Tomas Vondra
<tomas.vondra@2ndquadrant.com> wrote:

For example, we always allocate the TID array as large as we can fit into
m_w_m, but maybe we don't need to wait with switching to the bitmap until
filling the whole array - we could wait as long as the bitmap fits into

the

remaining part of the array, build it there and then copy it to the
beginning (and use the bitmap from that point).

The bitmap can be created like that, but grow from the end of the
segment backwards.

So the scan can proceed until the bitmap fills the whole segment
(filling backwards), no copy required.

I thought about those approaches when I suggested starting with half m_w_m.
So you fill in TIDs from one end and upon reaching half point, convert that
into bitmap (assuming stats tell you that there is significant savings with
bitmaps) but fill it from the other end. Then reset the TID array and start
filling up again. That guarantees that you can always work within available
limit.

But I actually wonder if we are over engineering things and overestimating
cost of memmove etc. How about this simpler approach:

1. Divide table in some fixed size chunks like Robert suggested. Say 1GB
2. Allocate pointer array to store a pointer to each segment. For 1TB
table, thats about 8192 bytes.
3. Allocate a bitmap which can hold MaxHeapTuplesPerPage * chunk size in
pages. For 8192 block and 1GB chunk, thats about 4.6MB. *Note*: I'm
suggesting to use a bitmap here because provisioning for worst case, fixed
size TID array will cost us 200MB+ where as a bitmap is just 4.6MB.
4. Collect dead tuples in that 1GB chunk. Also collect stats so that we
know about the most optimal representation.
5. At the end of 1GB scan, if no dead tuples found, set the chunk pointer
to NULL, move to next chunk and restart step 4. If dead tuples found, then
check:
a. If bitmap can be further compressed by using less number of bits per
page. If so, allocate a new bitmap and compress the bitmap.
b. If TID array will be a more compact representation. If so, allocate a
TID array of right size and convert bitmap into an array.
c. Set chunk pointer to whichever representation we choose (of course
add headers etc to interpret the representation)
6. Continue until we consume all m_w_m or end-of-table is reached. If we
consume all m_w_m then do a round of index cleanup and restart.

I also realised that we can compact the TID array in step (b) above because
we only need to store 17 bits for block numbers (we already know which 1GB
segment they belong to). Given that usable offsets are also just 13 bits,
TID array needs only 4 bytes per TID instead of 6.

Many people are working on implementing different ideas, and I can
volunteer to write a patch on these lines unless someone wants to do that.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#66Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Pavan Deolasee (#65)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 16, 2016 at 9:09 AM, Pavan Deolasee <pavan.deolasee@gmail.com>
wrote:

I also realised that we can compact the TID array in step (b) above
because we only need to store 17 bits for block numbers (we already know
which 1GB segment they belong to). Given that usable offsets are also just
13 bits, TID array needs only 4 bytes per TID instead of 6.

Actually this seems like a clear savings of at least 30% for all use cases,
at the cost of allocating in smaller chunks and doing some transformations.
But given the problem we are trying to solve, seems like a small price to
pay.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#67Robert Haas
robertmhaas@gmail.com
In reply to: Pavan Deolasee (#65)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 11:39 PM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

But I actually wonder if we are over engineering things and overestimating
cost of memmove etc. How about this simpler approach:

Don't forget that you need to handle the case where
maintenance_work_mem is quite small.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#68Pavan Deolasee
pavan.deolasee@gmail.com
In reply to: Robert Haas (#67)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 16, 2016 at 7:03 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Sep 15, 2016 at 11:39 PM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

But I actually wonder if we are over engineering things and

overestimating

cost of memmove etc. How about this simpler approach:

Don't forget that you need to handle the case where
maintenance_work_mem is quite small.

How small? The default IIRC these days is 64MB and minimum is 1MB. I think
we can do some special casing for very small values and ensure that things
at the very least work and hopefully don't regress for them.

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

#69Robert Haas
robertmhaas@gmail.com
In reply to: Pavan Deolasee (#68)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Sep 16, 2016 at 9:47 AM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

On Fri, Sep 16, 2016 at 7:03 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Sep 15, 2016 at 11:39 PM, Pavan Deolasee
<pavan.deolasee@gmail.com> wrote:

But I actually wonder if we are over engineering things and
overestimating
cost of memmove etc. How about this simpler approach:

Don't forget that you need to handle the case where
maintenance_work_mem is quite small.

How small? The default IIRC these days is 64MB and minimum is 1MB. I think
we can do some special casing for very small values and ensure that things
at the very least work and hopefully don't regress for them.

Sounds like you need to handle values as small as 1MB, then.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#70Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#60)
4 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Sep 15, 2016 at 1:16 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Sep 14, 2016 at 12:24 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Sep 14, 2016 at 12:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

FYI, the reported impact was on CPU time, not runtime. There was no
significant difference in runtime (real time), because my test is
heavily I/O bound.

I tested with a few small tables and there was no significant
difference either, but small tables don't stress the array lookup
anyway so that's expected.

But on the assumption that some systems may be CPU bound during vacuum
(particularly those able to do more than 300-400MB/s sequential I/O),
in those cases the increased or decreased cost of lazy_tid_reaped will
directly correlate to runtime. It's just none of my systems, which all
run on amazon and is heavily bandwidth constrained (fastest I/O
subsystem I can get my hands on does 200MB/s).

Attached is the patch with the multiarray version.

The tests are weird. Best case comparison over several runs, to remove
the impact of concurrent activity on this host (I couldn't remove all
background activity even when running the tests overnight, the distro
adds tons of crons and background cleanup tasks it would seem),
there's only very mild CPU impact. I'd say insignificant, as it's well
below the mean variance.

I reran the tests on a really dedicated system, and with a script that
captured a lot more details about the runs.

The system isn't impressive, an i5 with a single consumer HD and 8GB
RAM, but it did the job.

These tests make more sense, so I bet it was the previous tests that
were spoiled by concurrent activity on the host.

Attached is the raw output of the test, the script used to create it,
and just in case the patch set used. I believe it's the same as the
last one I posted, just rebased.

In the results archive, the .vacuum prefix is the patched version with
both patch 1 and 2, .git.ref is just patch 1 (without which the
truncate takes unholily long).

Grepping the results a bit, picking an average run out of all runs on
each scale:

Timings:

Patched:

s100: CPU: user: 3.21 s, system: 1.54 s, elapsed: 18.95 s.
s400: CPU: user: 14.03 s, system: 6.35 s, elapsed: 107.71 s.
s4000: CPU: user: 228.17 s, system: 108.33 s, elapsed: 3017.30 s.

Unpatched:

s100: CPU: user: 3.39 s, system: 1.64 s, elapsed: 18.67 s.
s400: CPU: user: 15.39 s, system: 7.03 s, elapsed: 114.91 s.
s4000: CPU: user: 282.21 s, system: 105.95 s, elapsed: 3017.28 s.

Total I/O (in MB)

Patched:

s100: R:2.4 - W:5862
s400: R:1337.4 - W:29385.6
s4000: R:318631 - W:370154

Unpatched:

s100: R:1412.4 - W:7644.6
s400: R:3180.6 - W:36281.4
s4000: R:330683 - W:370391

So, in essence, CPU time didn't get adversely affected. If anything,
it got improved by about 20% on the biggest case (scale 4000).

While total runtime didn't change much, I believe this is only due to
the fact that the index is perfectly correlated (clustered?) since
it's a pristine index, so index scans either remove or skip full
pages, never leaving things half-way. A bloated index would probably
show a substantially different behavior, I'll try to get a script that
does it by running pgbench a while before the vacuum or something like
that.

However, the total I/O metric already shows remarkable improvement.
This metric is measuring all the I/O including pgbench init, the
initial vacuum pgbench init does, the delete and the final vacuum. So
it's not just the I/O for the vacuum itself, but the whole run. We can
see the patched version reading a lot less (less scans over the
indexes will do that), and in some cases writing less too (again, less
index scans may be performing less redundant writes when cleaning
up/reclaiming index pages).

I'll post when I get the results for the bloated case, but I believe
this already shows substantial improvement as is.

This approach can later be improved upon by turning tid segments into
bitmaps if they're packed densely enough, but I believe this patch
represents a sensible first step before attempting that.

Attachments:

vacuum_bench_results.tar.gzapplication/x-gzip; name=vacuum_bench_results.tar.gzDownload
0001-Vacuum-prefetch-buffers-on-backward-scan.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-prefetch-buffers-on-backward-scan.patchDownload
From 37de5a6640c2f99a0e938e59d7788a90bdb1a59a Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:33:48 -0300
Subject: [PATCH 1/2] Vacuum: prefetch buffers on backward scan

This patch speeds up truncation by prefetching buffers during
the backward scan phase just prior to truncation. This optimization
helps rotating media because disk rotation induces a buffer-to-buffer
latency of roughly a whole rotation when reading backwards, such
disks are usually optimized for forward scans. Prefetching buffers
in larger chunks ameliorates the issue considerably and is otherwise
harmless. The prefetch amount should also not be an issue on SSD,
which won't benefit from the optimization, but won't be hurt either.
---
 src/backend/commands/vacuumlazy.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index b5fb325..854bce3 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1825,7 +1825,7 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno;
+	BlockNumber blkno, prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1833,6 +1833,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 	/* Strange coding of loop control is needed because blkno is unsigned */
 	blkno = vacrelstats->rel_pages;
+	prefetchBlkno = blkno & ~0x1f;
+	prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
 	while (blkno > vacrelstats->nonempty_pages)
 	{
 		Buffer		buf;
@@ -1882,6 +1884,23 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		blkno--;
 
+		/*
+		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
+		 * Backward scans on rotary disks are slow if done one buffer at a time
+		 * because readahead won't kick in on most OSes, and each buffer will
+		 * have to wait for the platter to do a full rotation.
+		 * Should be harmless on SSD.
+		 */
+		if (blkno <= prefetchBlkno) {
+			BlockNumber pblkno;
+			if (prefetchBlkno >= 32)
+				prefetchBlkno -= 32;
+			else
+				prefetchBlkno = 0;
+			for (pblkno = prefetchBlkno; pblkno < blkno; pblkno++)
+				PrefetchBuffer(onerel, MAIN_FORKNUM, pblkno);
+		}
+
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, blkno,
 								 RBM_NORMAL, vac_strategy);
 
-- 
2.6.6

0002-Vacuum-allow-using-more-than-1GB-work-mem.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem.patchDownload
From f85fd4213eb6c0b4da8dc9196424f6e8a5a2a9a7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 2/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c | 252 +++++++++++++++++++++++++++++---------
 1 file changed, 192 insertions(+), 60 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 854bce3..2df17b1 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -91,6 +91,7 @@
  * tables.
  */
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
 
 /*
  * Before we consider skipping a page that's marked as clean in
@@ -98,6 +99,22 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment {
+	int		num_dead_tuples;	/* # of entries in the segment */
+	int		max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset until the segment is fully populated) */
+	unsigned short  padding;
+	ItemPointer	dead_tuples;		/* Array of dead tuples */
+} DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray {
+	int		num_entries;	/* current # of entries */
+	int		max_entries;	/* total # of slots that can be allocated in array */
+	int		num_segs;	/* number of dead tuple segments allocated */
+	int		last_seg;	/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment	*dead_tuples;	/* array of num_segs segments */
+} DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -117,14 +134,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray	dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -149,7 +166,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment *seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -157,8 +174,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -498,7 +516,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -677,8 +695,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -729,7 +747,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -911,7 +929,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1123,10 +1141,11 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0); /* Should not need more than one segment per page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,7 +1153,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1237,7 +1256,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1268,7 +1287,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1362,7 +1381,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1370,35 +1391,41 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
-	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++) {
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int num_dead_tuples = seg->num_dead_tuples;
+		while (tupindex < num_dead_tuples)
+		{
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		vacuum_delay_point();
+			vacuum_delay_point();
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
-		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1410,7 +1437,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1421,34 +1448,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment *seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer	dead_tuples = seg->dead_tuples;
+	int		num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1582,6 +1611,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment	*seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1592,6 +1622,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples-1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1599,7 +1634,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1962,7 +1997,7 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples, mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1971,7 +2006,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1985,10 +2019,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment*)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2003,16 +2045,73 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+		if (seg->num_dead_tuples >= seg->max_dead_tuples) {
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will
+			 * no longer be valid, so we must be careful about that.
+			 * In any case, we must update the last_dead_tuple copy in the
+			 * overflowing segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples-1];
+			if (vacrelstats->dead_tuples.last_seg+1 >= vacrelstats->dead_tuples.num_segs) {
+				int new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment*) repalloc(
+					(void*) vacrelstats->dead_tuples.dead_tuples,
+					new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs) {
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+						vacrelstats->dead_tuples.num_segs]);
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL) {
+				/* If unallocated, allocate up to twice the amount of the previous segment */
+				DeadTuplesSegment *pseg = seg - 1;
+				int numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX/2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int nseg;
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.last_seg; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2024,10 +2123,43 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg, *rseg;
+	int nseg, last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the item pointer.
+	 * Given the number of segments involved, binary search would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++) {
+		int rcomp = vac_cmp_itemptr((void*)itemptr, (void*)&(seg->last_dead_tuple));
+		if (rcomp == 0) {
+			/* Found it, what are the chances! */
+			return true;
+		} else if (rcomp < 0) {
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot)
+	 * Upper bound was already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void*)itemptr, (void*)rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2037,7 +2169,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
-- 
2.6.6

vacuumbench.shapplication/x-sh; name=vacuumbench.shDownload
#71Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#70)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Oct 27, 2016 at 5:25 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Sep 15, 2016 at 1:16 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Sep 14, 2016 at 12:24 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Sep 14, 2016 at 12:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

I am kind of doubtful about this whole line of investigation because
we're basically trying pretty hard to fix something that I'm not sure
is broken. I do agree that, all other things being equal, the TID
lookups will probably be faster with a bitmap than with a binary
search, but maybe not if the table is large and the number of dead
TIDs is small, because cache efficiency is pretty important. But even
if it's always faster, does TID lookup speed even really matter to
overall VACUUM performance? Claudio's early results suggest that it
might, but maybe that's just a question of some optimization that
hasn't been done yet.

FYI, the reported impact was on CPU time, not runtime. There was no
significant difference in runtime (real time), because my test is
heavily I/O bound.

I tested with a few small tables and there was no significant
difference either, but small tables don't stress the array lookup
anyway so that's expected.

But on the assumption that some systems may be CPU bound during vacuum
(particularly those able to do more than 300-400MB/s sequential I/O),
in those cases the increased or decreased cost of lazy_tid_reaped will
directly correlate to runtime. It's just none of my systems, which all
run on amazon and is heavily bandwidth constrained (fastest I/O
subsystem I can get my hands on does 200MB/s).

Attached is the patch with the multiarray version.

The tests are weird. Best case comparison over several runs, to remove
the impact of concurrent activity on this host (I couldn't remove all
background activity even when running the tests overnight, the distro
adds tons of crons and background cleanup tasks it would seem),
there's only very mild CPU impact. I'd say insignificant, as it's well
below the mean variance.

I reran the tests on a really dedicated system, and with a script that
captured a lot more details about the runs.

The system isn't impressive, an i5 with a single consumer HD and 8GB
RAM, but it did the job.

These tests make more sense, so I bet it was the previous tests that
were spoiled by concurrent activity on the host.

Attached is the raw output of the test, the script used to create it,
and just in case the patch set used. I believe it's the same as the
last one I posted, just rebased.

I glanced at the patches but the both patches don't obey the coding
style of PostgreSQL.
Please refer to [1]http://wiki.postgresql.org/wiki/Developer_FAQ#What.27s_the_formatting_style_used_in_PostgreSQL_source_code.3F..

[1]: http://wiki.postgresql.org/wiki/Developer_FAQ#What.27s_the_formatting_style_used_in_PostgreSQL_source_code.3F.

In the results archive, the .vacuum prefix is the patched version with
both patch 1 and 2, .git.ref is just patch 1 (without which the
truncate takes unholily long).

Did you measure the performance benefit of 0001 patch by comparing
HEAD with HEAD+0001 patch?

Grepping the results a bit, picking an average run out of all runs on
each scale:

Timings:

Patched:

s100: CPU: user: 3.21 s, system: 1.54 s, elapsed: 18.95 s.
s400: CPU: user: 14.03 s, system: 6.35 s, elapsed: 107.71 s.
s4000: CPU: user: 228.17 s, system: 108.33 s, elapsed: 3017.30 s.

Unpatched:

s100: CPU: user: 3.39 s, system: 1.64 s, elapsed: 18.67 s.
s400: CPU: user: 15.39 s, system: 7.03 s, elapsed: 114.91 s.
s4000: CPU: user: 282.21 s, system: 105.95 s, elapsed: 3017.28 s.

Total I/O (in MB)

Patched:

s100: R:2.4 - W:5862
s400: R:1337.4 - W:29385.6
s4000: R:318631 - W:370154

Unpatched:

s100: R:1412.4 - W:7644.6
s400: R:3180.6 - W:36281.4
s4000: R:330683 - W:370391

So, in essence, CPU time didn't get adversely affected. If anything,
it got improved by about 20% on the biggest case (scale 4000).

And this test case deletes all tuples in relation and then measure
duration of vacuum.
It would not be effect much in practical use case.

While total runtime didn't change much, I believe this is only due to
the fact that the index is perfectly correlated (clustered?) since
it's a pristine index, so index scans either remove or skip full
pages, never leaving things half-way. A bloated index would probably
show a substantially different behavior, I'll try to get a script that
does it by running pgbench a while before the vacuum or something like
that.

However, the total I/O metric already shows remarkable improvement.
This metric is measuring all the I/O including pgbench init, the
initial vacuum pgbench init does, the delete and the final vacuum. So
it's not just the I/O for the vacuum itself, but the whole run. We can
see the patched version reading a lot less (less scans over the
indexes will do that), and in some cases writing less too (again, less
index scans may be performing less redundant writes when cleaning
up/reclaiming index pages).

What value of maintenance_work_mem did you use for this test? Since
DeadTuplesSegment struct still stores array of ItemPointerData(6byte)
representing dead tuple I supposed that the frequency of index vacuum
does not change. But according to the test result, a index vacuum is
invoked once and removes 400000000 rows at the time. It means that the
vacuum stored about 2289 MB memory during heap vacuum. On the other
side, the result of test without 0002 patch show that a index vacuum
remove 178956737 rows at the time, which means 1GB memory was used.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#72Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#71)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Nov 17, 2016 at 2:34 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

I glanced at the patches but the both patches don't obey the coding
style of PostgreSQL.
Please refer to [1].

[1] http://wiki.postgresql.org/wiki/Developer_FAQ#What.27s_the_formatting_style_used_in_PostgreSQL_source_code.3F.

I thought I had. I'll go through that list to check what I missed.

In the results archive, the .vacuum prefix is the patched version with
both patch 1 and 2, .git.ref is just patch 1 (without which the
truncate takes unholily long).

Did you measure the performance benefit of 0001 patch by comparing
HEAD with HEAD+0001 patch?

Not the whole test, but yes. Without the 0001 patch the backward scan
step during truncate goes between 3 and 5 times slower. I don't have
timings because the test never finished without the patch. It would
have finished, but it would have taken about a day.

Grepping the results a bit, picking an average run out of all runs on
each scale:

Timings:

Patched:

s100: CPU: user: 3.21 s, system: 1.54 s, elapsed: 18.95 s.
s400: CPU: user: 14.03 s, system: 6.35 s, elapsed: 107.71 s.
s4000: CPU: user: 228.17 s, system: 108.33 s, elapsed: 3017.30 s.

Unpatched:

s100: CPU: user: 3.39 s, system: 1.64 s, elapsed: 18.67 s.
s400: CPU: user: 15.39 s, system: 7.03 s, elapsed: 114.91 s.
s4000: CPU: user: 282.21 s, system: 105.95 s, elapsed: 3017.28 s.

Total I/O (in MB)

Patched:

s100: R:2.4 - W:5862
s400: R:1337.4 - W:29385.6
s4000: R:318631 - W:370154

Unpatched:

s100: R:1412.4 - W:7644.6
s400: R:3180.6 - W:36281.4
s4000: R:330683 - W:370391

So, in essence, CPU time didn't get adversely affected. If anything,
it got improved by about 20% on the biggest case (scale 4000).

And this test case deletes all tuples in relation and then measure
duration of vacuum.
It would not be effect much in practical use case.

Well, this patch set started because I had to do exactly that, and
realized just how inefficient vacuum was in that case.

But it doesn't mean it won't benefit more realistic use cases. Almost
any big database ends up hitting this 1GB limit because big tables
take very long to vacuum and accumulate a lot of bloat in-between
vacuums.

If you have a specific test case in mind I can try to run it.

While total runtime didn't change much, I believe this is only due to
the fact that the index is perfectly correlated (clustered?) since
it's a pristine index, so index scans either remove or skip full
pages, never leaving things half-way. A bloated index would probably
show a substantially different behavior, I'll try to get a script that
does it by running pgbench a while before the vacuum or something like
that.

However, the total I/O metric already shows remarkable improvement.
This metric is measuring all the I/O including pgbench init, the
initial vacuum pgbench init does, the delete and the final vacuum. So
it's not just the I/O for the vacuum itself, but the whole run. We can
see the patched version reading a lot less (less scans over the
indexes will do that), and in some cases writing less too (again, less
index scans may be performing less redundant writes when cleaning
up/reclaiming index pages).

What value of maintenance_work_mem did you use for this test?

4GB on both, patched and HEAD.

Since
DeadTuplesSegment struct still stores array of ItemPointerData(6byte)
representing dead tuple I supposed that the frequency of index vacuum
does not change. But according to the test result, a index vacuum is
invoked once and removes 400000000 rows at the time. It means that the
vacuum stored about 2289 MB memory during heap vacuum. On the other
side, the result of test without 0002 patch show that a index vacuum
remove 178956737 rows at the time, which means 1GB memory was used.

1GB is a hardcoded limit on HEAD for vacuum work mem. This patch
removes that limit and lets vacuum use all the memory the user gave to
vacuum.

In the test, in both cases, 4GB was used as maintenance_work_mem
value, but HEAD cannot use all the 4GB, and it will limit itself to
just 1GB.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#73Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#72)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Nov 17, 2016 at 2:51 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Nov 17, 2016 at 2:34 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

I glanced at the patches but the both patches don't obey the coding
style of PostgreSQL.
Please refer to [1].

[1] http://wiki.postgresql.org/wiki/Developer_FAQ#What.27s_the_formatting_style_used_in_PostgreSQL_source_code.3F.

I thought I had. I'll go through that list to check what I missed.

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem.patchDownload
From b9782cef0d971de341115bd3474d192419674219 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 2/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c | 295 +++++++++++++++++++++++++++++---------
 1 file changed, 230 insertions(+), 65 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 854bce3..dfb0612 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -91,6 +91,7 @@
  * tables.
  */
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
 
 /*
  * Before we consider skipping a page that's marked as clean in
@@ -98,6 +99,27 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dead_tuples;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dead_tuples;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -117,14 +139,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -149,7 +171,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -157,8 +179,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -498,7 +521,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -677,8 +700,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -729,7 +752,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -911,7 +934,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1123,10 +1146,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0);		/* Should not need more
+																 * than one segment per
+																 * page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,7 +1160,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1237,7 +1263,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1268,7 +1294,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1362,7 +1388,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1370,35 +1398,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1410,7 +1446,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1421,34 +1457,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dead_tuples;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1582,6 +1620,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1592,6 +1631,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1599,7 +1643,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1825,7 +1869,8 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno, prefetchBlkno;
+	BlockNumber blkno,
+				prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1886,13 +1931,15 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		/*
 		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
-		 * Backward scans on rotary disks are slow if done one buffer at a time
-		 * because readahead won't kick in on most OSes, and each buffer will
-		 * have to wait for the platter to do a full rotation.
-		 * Should be harmless on SSD.
+		 * Backward scans on rotary disks are slow if done one buffer at a
+		 * time because readahead won't kick in on most OSes, and each buffer
+		 * will have to wait for the platter to do a full rotation. Should be
+		 * harmless on SSD.
 		 */
-		if (blkno <= prefetchBlkno) {
+		if (blkno <= prefetchBlkno)
+		{
 			BlockNumber pblkno;
+
 			if (prefetchBlkno >= 32)
 				prefetchBlkno -= 32;
 			else
@@ -1962,7 +2009,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1971,7 +2019,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1985,10 +2032,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2003,16 +2058,85 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dead_tuples,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.last_seg; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2024,10 +2148,51 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		int			rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2037,7 +2202,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
-- 
1.8.4.5

#74Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#73)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#75Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#73)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#76Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#74)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Nov 17, 2016 at 6:34 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#77Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#76)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Nov 18, 2016 at 6:54 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Nov 17, 2016 at 6:34 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

I'm concerned that it could use repalloc for large memory area when
vacrelstats->dead_tuples.dead_tuple is bloated. It would be overhead
and slow. What about using semi-fixed memroy space without repalloc;
Allocate the array of ItemPointerData array, and each ItemPointerData
array stores the dead tuple locations. The size of ItemPointerData
array starts with small size (e.g. 16MB or 32MB). After we used an
array up, we then allocate next segment with twice size as previous
segment. But to prevent over allocating memory, it would be better to
set a limit of allocating size of ItemPointerData array to 512MB or
1GB. We could expand array of array using repalloc if needed, but it
would not be happend much. Other design is similar to current your
patch; the offset of the array of array and the offset of a
ItemPointerData array control current location, which are cleared
after finished reclaiming garbage on heap and index. And allocated
array is re-used by subsequent scanning heap.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#78Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#77)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Nov 21, 2016 at 2:15 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Fri, Nov 18, 2016 at 6:54 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Nov 17, 2016 at 6:34 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

I'm concerned that it could use repalloc for large memory area when
vacrelstats->dead_tuples.dead_tuple is bloated. It would be overhead
and slow.

How large?

That array cannot be very large. It contains pointers to
exponentially-growing arrays, but the repalloc'd array itself is
small: one struct per segment, each segment starts at 128MB and grows
exponentially.

In fact, IIRC, it can be proven that such a repalloc strategy has an
amortized cost of O(log log n) per tuple. If it repallocd the whole
tid array it would be O(log n), but since it handles only pointers to
segments of exponentially growing tuples it becomes O(log log n).

Furthermore, n there is still limited to MAX_INT, which means the cost
per tuple is bound by O(log log 2^32) = 5. And that's an absolute
worst case that's ignoring the 128MB constant factor which is indeed
relevant.

What about using semi-fixed memroy space without repalloc;
Allocate the array of ItemPointerData array, and each ItemPointerData
array stores the dead tuple locations. The size of ItemPointerData
array starts with small size (e.g. 16MB or 32MB). After we used an
array up, we then allocate next segment with twice size as previous
segment.

That's what the patch does.

But to prevent over allocating memory, it would be better to
set a limit of allocating size of ItemPointerData array to 512MB or
1GB.

There already is a limit to 1GB (the maximum amount palloc can allocate)

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#79Haribabu Kommi
kommi.haribabu@gmail.com
In reply to: Claudio Freire (#78)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Nov 22, 2016 at 4:53 AM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Mon, Nov 21, 2016 at 2:15 PM, Masahiko Sawada <sawada.mshk@gmail.com>
wrote:

On Fri, Nov 18, 2016 at 6:54 AM, Claudio Freire <klaussfreire@gmail.com>

wrote:

On Thu, Nov 17, 2016 at 6:34 PM, Robert Haas <robertmhaas@gmail.com>

wrote:

On Thu, Nov 17, 2016 at 1:42 PM, Claudio Freire <

klaussfreire@gmail.com> wrote:

Attached is patch 0002 with pgindent applied over it

I don't think there's any other formatting issue, but feel free to
point a finger to it if I missed any

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

I'm concerned that it could use repalloc for large memory area when
vacrelstats->dead_tuples.dead_tuple is bloated. It would be overhead
and slow.

How large?

That array cannot be very large. It contains pointers to
exponentially-growing arrays, but the repalloc'd array itself is
small: one struct per segment, each segment starts at 128MB and grows
exponentially.

In fact, IIRC, it can be proven that such a repalloc strategy has an
amortized cost of O(log log n) per tuple. If it repallocd the whole
tid array it would be O(log n), but since it handles only pointers to
segments of exponentially growing tuples it becomes O(log log n).

Furthermore, n there is still limited to MAX_INT, which means the cost
per tuple is bound by O(log log 2^32) = 5. And that's an absolute
worst case that's ignoring the 128MB constant factor which is indeed
relevant.

What about using semi-fixed memroy space without repalloc;
Allocate the array of ItemPointerData array, and each ItemPointerData
array stores the dead tuple locations. The size of ItemPointerData
array starts with small size (e.g. 16MB or 32MB). After we used an
array up, we then allocate next segment with twice size as previous
segment.

That's what the patch does.

But to prevent over allocating memory, it would be better to
set a limit of allocating size of ItemPointerData array to 512MB or
1GB.

There already is a limit to 1GB (the maximum amount palloc can allocate)

Moved to next CF with "needs review" status.

Regards,
Hari Babu
Fujitsu Australia

#80Anastasia Lubennikova
lubennikovaav@gmail.com
In reply to: Claudio Freire (#73)
Re: Vacuum: allow usage of more than 1GB of work mem

The following review has been posted through the commitfest application:
make installcheck-world: tested, failed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

Hi,
I haven't read through the thread yet, just tried to apply the patch and run tests.
And it seems that the last attached version is outdated now. It doesn't apply to the master
and after I've tried to fix merge conflict, it segfaults at initdb.

So, looking forward to a new version for review.

The new status of this patch is: Waiting on Author

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#81Claudio Freire
klaussfreire@gmail.com
In reply to: Anastasia Lubennikova (#80)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Dec 22, 2016 at 12:15 PM, Anastasia Lubennikova
<lubennikovaav@gmail.com> wrote:

The following review has been posted through the commitfest application:
make installcheck-world: tested, failed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

Hi,
I haven't read through the thread yet, just tried to apply the patch and run tests.
And it seems that the last attached version is outdated now. It doesn't apply to the master
and after I've tried to fix merge conflict, it segfaults at initdb.

I'll rebase when I get some time to do it and post an updated version

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#82Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#81)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Dec 22, 2016 at 12:22 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Dec 22, 2016 at 12:15 PM, Anastasia Lubennikova
<lubennikovaav@gmail.com> wrote:

The following review has been posted through the commitfest application:
make installcheck-world: tested, failed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

Hi,
I haven't read through the thread yet, just tried to apply the patch and run tests.
And it seems that the last attached version is outdated now. It doesn't apply to the master
and after I've tried to fix merge conflict, it segfaults at initdb.

I'll rebase when I get some time to do it and post an updated version

Attached rebased patches. I called them both v3 to be consistent.

I'm not sure how you ran it, but this works fine for me:

./configure --enable-debug --enable-cassert
make clean
make check

... after a while ...

=======================
All 168 tests passed.
=======================

I reckon the above is equivalent to installcheck, but doesn't require
sudo or actually installing the server, so installcheck should work
assuming the install went ok.

Attachments:

0001-Vacuum-prefetch-buffers-on-backward-scan-v3.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-prefetch-buffers-on-backward-scan-v3.patchDownload
From f7c6a46ea2d721e472237e00fd2404081a4ddc75 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:33:48 -0300
Subject: [PATCH 1/2] Vacuum: prefetch buffers on backward scan

This patch speeds up truncation by prefetching buffers during
the backward scan phase just prior to truncation. This optimization
helps rotating media because disk rotation induces a buffer-to-buffer
latency of roughly a whole rotation when reading backwards, such
disks are usually optimized for forward scans. Prefetching buffers
in larger chunks ameliorates the issue considerably and is otherwise
harmless. The prefetch amount should also not be an issue on SSD,
which won't benefit from the optimization, but won't be hurt either.
---
 src/backend/commands/vacuumlazy.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index b5fb325..854bce3 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1825,7 +1825,7 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno;
+	BlockNumber blkno, prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1833,6 +1833,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 	/* Strange coding of loop control is needed because blkno is unsigned */
 	blkno = vacrelstats->rel_pages;
+	prefetchBlkno = blkno & ~0x1f;
+	prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
 	while (blkno > vacrelstats->nonempty_pages)
 	{
 		Buffer		buf;
@@ -1882,6 +1884,23 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		blkno--;
 
+		/*
+		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
+		 * Backward scans on rotary disks are slow if done one buffer at a time
+		 * because readahead won't kick in on most OSes, and each buffer will
+		 * have to wait for the platter to do a full rotation.
+		 * Should be harmless on SSD.
+		 */
+		if (blkno <= prefetchBlkno) {
+			BlockNumber pblkno;
+			if (prefetchBlkno >= 32)
+				prefetchBlkno -= 32;
+			else
+				prefetchBlkno = 0;
+			for (pblkno = prefetchBlkno; pblkno < blkno; pblkno++)
+				PrefetchBuffer(onerel, MAIN_FORKNUM, pblkno);
+		}
+
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, blkno,
 								 RBM_NORMAL, vac_strategy);
 
-- 
1.8.4.5

0002-Vacuum-allow-using-more-than-1GB-work-mem-v3.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v3.patchDownload
From 084805d565dced136903262cfad4fd395468a9bb Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 2/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c | 295 +++++++++++++++++++++++++++++---------
 1 file changed, 230 insertions(+), 65 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 854bce3..dfb0612 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -91,6 +91,7 @@
  * tables.
  */
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
 
 /*
  * Before we consider skipping a page that's marked as clean in
@@ -98,6 +99,27 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dead_tuples;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dead_tuples;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -117,14 +139,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -149,7 +171,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -157,8 +179,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -498,7 +521,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -677,8 +700,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -729,7 +752,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -911,7 +934,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1123,10 +1146,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0);		/* Should not need more
+																 * than one segment per
+																 * page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,7 +1160,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1237,7 +1263,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1268,7 +1294,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1362,7 +1388,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1370,35 +1398,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1410,7 +1446,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1421,34 +1457,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dead_tuples;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1582,6 +1620,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1592,6 +1631,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1599,7 +1643,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1825,7 +1869,8 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno, prefetchBlkno;
+	BlockNumber blkno,
+				prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1886,13 +1931,15 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		/*
 		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
-		 * Backward scans on rotary disks are slow if done one buffer at a time
-		 * because readahead won't kick in on most OSes, and each buffer will
-		 * have to wait for the platter to do a full rotation.
-		 * Should be harmless on SSD.
+		 * Backward scans on rotary disks are slow if done one buffer at a
+		 * time because readahead won't kick in on most OSes, and each buffer
+		 * will have to wait for the platter to do a full rotation. Should be
+		 * harmless on SSD.
 		 */
-		if (blkno <= prefetchBlkno) {
+		if (blkno <= prefetchBlkno)
+		{
 			BlockNumber pblkno;
+
 			if (prefetchBlkno >= 32)
 				prefetchBlkno -= 32;
 			else
@@ -1962,7 +2009,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1971,7 +2019,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1985,10 +2032,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2003,16 +2058,85 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dead_tuples,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.last_seg; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2024,10 +2148,51 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		int			rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2037,7 +2202,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
-- 
1.8.4.5

#83Anastasia Lubennikova
a.lubennikova@postgrespro.ru
In reply to: Claudio Freire (#82)
Re: Vacuum: allow usage of more than 1GB of work mem

22.12.2016 21:18, Claudio Freire:

On Thu, Dec 22, 2016 at 12:22 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Dec 22, 2016 at 12:15 PM, Anastasia Lubennikova
<lubennikovaav@gmail.com> wrote:

The following review has been posted through the commitfest application:
make installcheck-world: tested, failed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

Hi,
I haven't read through the thread yet, just tried to apply the patch and run tests.
And it seems that the last attached version is outdated now. It doesn't apply to the master
and after I've tried to fix merge conflict, it segfaults at initdb.

I'll rebase when I get some time to do it and post an updated version

Attached rebased patches. I called them both v3 to be consistent.

I'm not sure how you ran it, but this works fine for me:

./configure --enable-debug --enable-cassert
make clean
make check

... after a while ...

=======================
All 168 tests passed.
=======================

I reckon the above is equivalent to installcheck, but doesn't require
sudo or actually installing the server, so installcheck should work
assuming the install went ok.

I found the reason. I configure postgres with CFLAGS="-O0" and it causes
Segfault on initdb.
It works fine and passes tests with default configure flags, but I'm
pretty sure that we should fix segfault before testing the feature.
If you need it, I'll send a core dump.

--
Anastasia Lubennikova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#84Claudio Freire
klaussfreire@gmail.com
In reply to: Anastasia Lubennikova (#83)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Dec 23, 2016 at 1:39 PM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

On Thu, Dec 22, 2016 at 12:22 PM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Thu, Dec 22, 2016 at 12:15 PM, Anastasia Lubennikova
<lubennikovaav@gmail.com> wrote:

The following review has been posted through the commitfest application:
make installcheck-world: tested, failed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

Hi,
I haven't read through the thread yet, just tried to apply the patch and
run tests.
And it seems that the last attached version is outdated now. It doesn't
apply to the master
and after I've tried to fix merge conflict, it segfaults at initdb.

I'll rebase when I get some time to do it and post an updated version

Attached rebased patches. I called them both v3 to be consistent.

I'm not sure how you ran it, but this works fine for me:

./configure --enable-debug --enable-cassert
make clean
make check

... after a while ...

=======================
All 168 tests passed.
=======================

I reckon the above is equivalent to installcheck, but doesn't require
sudo or actually installing the server, so installcheck should work
assuming the install went ok.

I found the reason. I configure postgres with CFLAGS="-O0" and it causes
Segfault on initdb.
It works fine and passes tests with default configure flags, but I'm pretty
sure that we should fix segfault before testing the feature.
If you need it, I'll send a core dump.

I just ran it with CFLAGS="-O0" and it passes all checks too:

CFLAGS='-O0' ./configure --enable-debug --enable-cassert
make clean && make -j8 && make check-world

A stacktrace and a thorough description of your build environment
would be helpful to understand why it breaks on your system.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#85Anastasia Lubennikova
a.lubennikova@postgrespro.ru
In reply to: Claudio Freire (#84)
Re: Vacuum: allow usage of more than 1GB of work mem

23.12.2016 22:54, Claudio Freire:

On Fri, Dec 23, 2016 at 1:39 PM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

I found the reason. I configure postgres with CFLAGS="-O0" and it causes
Segfault on initdb.
It works fine and passes tests with default configure flags, but I'm pretty
sure that we should fix segfault before testing the feature.
If you need it, I'll send a core dump.

I just ran it with CFLAGS="-O0" and it passes all checks too:

CFLAGS='-O0' ./configure --enable-debug --enable-cassert
make clean && make -j8 && make check-world

A stacktrace and a thorough description of your build environment
would be helpful to understand why it breaks on your system.

I ran configure using following set of flags:
./configure --enable-tap-tests --enable-cassert --enable-debug
--enable-depend CFLAGS="-O0 -g3 -fno-omit-frame-pointer"
And then ran make check. Here is the stacktrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
(gdb) bt
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
#1 0x0000000000693dfe in lazy_scan_heap (onerel=0x1ec2360, options=9,
vacrelstats=0x1ef6e00, Irel=0x1ef7168, nindexes=2, aggressive=1 '\001')
at vacuumlazy.c:1337
#2 0x0000000000691e66 in lazy_vacuum_rel (onerel=0x1ec2360, options=9,
params=0x7ffe0f866310, bstrategy=0x1f1c4a8) at vacuumlazy.c:290
#3 0x000000000069191f in vacuum_rel (relid=1247, relation=0x0,
options=9, params=0x7ffe0f866310) at vacuum.c:1418
#4 0x0000000000690122 in vacuum (options=9, relation=0x0, relid=0,
params=0x7ffe0f866310, va_cols=0x0, bstrategy=0x1f1c4a8,
isTopLevel=1 '\001') at vacuum.c:320
#5 0x000000000068fd0b in vacuum (options=-1652367447, relation=0x0,
relid=3324614038, params=0x1f11bf0, va_cols=0xb59f63,
bstrategy=0x1f1c620, isTopLevel=0 '\000') at vacuum.c:150
#6 0x0000000000852993 in standard_ProcessUtility (parsetree=0x1f07e60,
queryString=0x1f07468 "VACUUM FREEZE;\n",
context=PROCESS_UTILITY_TOPLEVEL, params=0x0, dest=0xea5cc0
<debugtupDR>, completionTag=0x7ffe0f866750 "") at utility.c:669
#7 0x00000000008520da in standard_ProcessUtility
(parsetree=0x401ef6cd8, queryString=0x18 <error: Cannot access memory at
address 0x18>,
context=PROCESS_UTILITY_TOPLEVEL, params=0x68, dest=0x9e5d62
<AllocSetFree+60>, completionTag=0x7ffe0f8663f0 "`~\360\001")
at utility.c:360
#8 0x0000000000851161 in PortalRunMulti (portal=0x7ffe0f866750,
isTopLevel=0 '\000', setHoldSnapshot=-39 '\331',
dest=0x851161 <PortalRunMulti+19>, altdest=0x7ffe0f8664f0,
completionTag=0x1f07e60 "\341\002") at pquery.c:1219
#9 0x0000000000851374 in PortalRunMulti (portal=0x1f0a488, isTopLevel=1
'\001', setHoldSnapshot=0 '\000', dest=0xea5cc0 <debugtupDR>,
altdest=0xea5cc0 <debugtupDR>, completionTag=0x7ffe0f866750 "") at
pquery.c:1345
#10 0x0000000000850889 in PortalRun (portal=0x1f0a488,
count=9223372036854775807, isTopLevel=1 '\001', dest=0xea5cc0 <debugtupDR>,
altdest=0xea5cc0 <debugtupDR>, completionTag=0x7ffe0f866750 "") at
pquery.c:824
#11 0x000000000084a4dc in exec_simple_query (query_string=0x1f07468
"VACUUM FREEZE;\n") at postgres.c:1113
#12 0x000000000084e960 in PostgresMain (argc=10, argv=0x1e60a50,
dbname=0x1e823b0 "template1", username=0x1e672a0 "anastasia")
at postgres.c:4091
#13 0x00000000006f967e in init_locale (categoryname=0x100000000000000
<error: Cannot access memory at address 0x100000000000000>,
category=32766, locale=0xa004692f0 <error: Cannot access memory at
address 0xa004692f0>) at main.c:310
#14 0x00007f1e5f463830 in __libc_start_main (main=0x6f93e1 <main+85>,
argc=10, argv=0x7ffe0f866a78, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7ffe0f866a68) at ../csu/libc-start.c:291
#15 0x0000000000469319 in _start ()

core file is quite big, so I didn't attach it to the mail. You can
download it here: core dump file
<https://drive.google.com/open?id=0B-7gUWL5Lg_gX3VlSXBaZzlKTlk&gt;.

Here are some notes about the first patch:

1. prefetchBlkno = blkno & ~0x1f;
prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;

I didn't get it what for we need these tricks. How does it differ from:
prefetchBlkno = (blkno > 32) ? blkno - 32 : 0;

2. Why do we decrease prefetchBlckno twice?

Here:
+    prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
And here:
if (prefetchBlkno >= 32)
+                prefetchBlkno -= 32;

I'll inspect second patch in a few days and write questions about it.

--
Anastasia Lubennikova
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company

#86Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Anastasia Lubennikova (#85)
Re: Vacuum: allow usage of more than 1GB of work mem

Anastasia Lubennikova wrote:

I ran configure using following set of flags:
./configure --enable-tap-tests --enable-cassert --enable-debug
--enable-depend CFLAGS="-O0 -g3 -fno-omit-frame-pointer"
And then ran make check. Here is the stacktrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

This doesn't make sense, since the patch removes the "tupindex"
variable in that function.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#87Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#86)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Dec 27, 2016 at 10:54 AM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

Anastasia Lubennikova wrote:

I ran configure using following set of flags:
./configure --enable-tap-tests --enable-cassert --enable-debug
--enable-depend CFLAGS="-O0 -g3 -fno-omit-frame-pointer"
And then ran make check. Here is the stacktrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

This doesn't make sense, since the patch removes the "tupindex"
variable in that function.

The variable is still there. It just has a slightly different meaning
(index within the current segment, rather than global index).

On Tue, Dec 27, 2016 at 10:41 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

23.12.2016 22:54, Claudio Freire:

On Fri, Dec 23, 2016 at 1:39 PM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

I found the reason. I configure postgres with CFLAGS="-O0" and it causes
Segfault on initdb.
It works fine and passes tests with default configure flags, but I'm pretty
sure that we should fix segfault before testing the feature.
If you need it, I'll send a core dump.

I just ran it with CFLAGS="-O0" and it passes all checks too:

CFLAGS='-O0' ./configure --enable-debug --enable-cassert
make clean && make -j8 && make check-world

A stacktrace and a thorough description of your build environment
would be helpful to understand why it breaks on your system.

I ran configure using following set of flags:
./configure --enable-tap-tests --enable-cassert --enable-debug
--enable-depend CFLAGS="-O0 -g3 -fno-omit-frame-pointer"
And then ran make check. Here is the stacktrace:

Same procedure runs fine on my end.

core file is quite big, so I didn't attach it to the mail. You can download it here: core dump file.

Can you attach your binary as well? (it needs to be identical to be
able to inspect the core dump, and quite clearly my build is
different)

I'll keep looking for ways it could crash there, but being unable to
reproduce the crash is a big hindrance, so if you can send the binary
that could help speed things up.

On Tue, Dec 27, 2016 at 10:41 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

1. prefetchBlkno = blkno & ~0x1f;
prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;

I didn't get it what for we need these tricks. How does it differ from:
prefetchBlkno = (blkno > 32) ? blkno - 32 : 0;

It makes all prefetches ranges of 32 blocks aligned to 32-block boundaries.

It helps since it's at 32 block boundaries that the truncate stops to
check for locking conflicts and abort, guaranteeing no prefetch will
be needless (if it goes into that code it *will* read the next 32
blocks).

2. Why do we decrease prefetchBlckno twice?

Here:
+    prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
And here:
if (prefetchBlkno >= 32)
+                prefetchBlkno -= 32;

The first one is outside the loop, it's finding the first prefetch
range that is boundary aligned, taking care not to cause underflow.

The second one is inside the loop, it's moving the prefetch window
down as the truncate moves along. Since it's already aligned, it
doesn't need to be realigned, just clamped to zero if it happens to
reach the bottom.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#88Claudio Freire
klaussfreire@gmail.com
In reply to: Anastasia Lubennikova (#85)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Dec 27, 2016 at 10:41 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
(gdb) bt
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
#1 0x0000000000693dfe in lazy_scan_heap (onerel=0x1ec2360, options=9,
vacrelstats=0x1ef6e00, Irel=0x1ef7168, nindexes=2, aggressive=1 '\001')
at vacuumlazy.c:1337
#2 0x0000000000691e66 in lazy_vacuum_rel (onerel=0x1ec2360, options=9,
params=0x7ffe0f866310, bstrategy=0x1f1c4a8) at vacuumlazy.c:290
#3 0x000000000069191f in vacuum_rel (relid=1247, relation=0x0, options=9,
params=0x7ffe0f866310) at vacuum.c:1418

Those line numbers don't match my code.

Which commit are you based on?

My tree is (currently) based on 71f996d22125eb6cfdbee6094f44370aa8dec610

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#89Anastasia Lubennikova
a.lubennikova@postgrespro.ru
In reply to: Alvaro Herrera (#86)
Re: Vacuum: allow usage of more than 1GB of work mem

27.12.2016 16:54, Alvaro Herrera:

Anastasia Lubennikova wrote:

I ran configure using following set of flags:
./configure --enable-tap-tests --enable-cassert --enable-debug
--enable-depend CFLAGS="-O0 -g3 -fno-omit-frame-pointer"
And then ran make check. Here is the stacktrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

This doesn't make sense, since the patch removes the "tupindex"
variable in that function.

Sorry, I didn't get what you mean.

In 0002-Vacuum-allow-using-more-than-1GB-work-mem-v3.patch

-    tupindex = 0;
-    while (tupindex < vacrelstats->num_dead_tuples)
+    segindex = 0;
+    tottuples = 0;
+    for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; 
tupindex = 0, segindex++)
      {

variable is still there, it was just moved to the loop.

--
Anastasia Lubennikova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#90Anastasia Lubennikova
a.lubennikova@postgrespro.ru
In reply to: Claudio Freire (#88)
Re: Vacuum: allow usage of more than 1GB of work mem

27.12.2016 20:14, Claudio Freire:

On Tue, Dec 27, 2016 at 10:41 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
(gdb) bt
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
#1 0x0000000000693dfe in lazy_scan_heap (onerel=0x1ec2360, options=9,
vacrelstats=0x1ef6e00, Irel=0x1ef7168, nindexes=2, aggressive=1 '\001')
at vacuumlazy.c:1337
#2 0x0000000000691e66 in lazy_vacuum_rel (onerel=0x1ec2360, options=9,
params=0x7ffe0f866310, bstrategy=0x1f1c4a8) at vacuumlazy.c:290
#3 0x000000000069191f in vacuum_rel (relid=1247, relation=0x0, options=9,
params=0x7ffe0f866310) at vacuum.c:1418

Those line numbers don't match my code.

Which commit are you based on?

My tree is (currently) based on 71f996d22125eb6cfdbee6094f44370aa8dec610

Hm, my branch is based on 71f996d22125eb6cfdbee6094f44370aa8dec610 as well.
I merely applied patches
0001-Vacuum-prefetch-buffers-on-backward-scan-v3.patch
and 0002-Vacuum-allow-using-more-than-1GB-work-mem-v3.patch
then ran configure and make as usual.
Am I doing something wrong?

Anyway, I found the problem that had caused segfault.

for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg;
tupindex = 0, segindex++)
{
DeadTuplesSegment *seg =
&(vacrelstats->dead_tuples.dead_tuples[segindex]);
int num_dead_tuples = seg->num_dead_tuples;

while (tupindex < num_dead_tuples)
...

You rely on the value of tupindex here, while during the very first pass
the 'tupindex' variable
may contain any garbage. And it happend that on my system there was
negative value
as I found inspecting core dump:

(gdb) info locals
num_dead_tuples = 5
tottuples = 0
tupindex = -1819017215

Which leads to failure in the next line
tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

The solution is to move this assignment inside the cycle.

I've read the second patch.

1. What is the reason to inline vac_cmp_itemptr() ?

2. +#define LAZY_MIN_TUPLES Max(MaxHeapTuplesPerPage, (128<<20) /
sizeof(ItemPointerData))
What does 128<<20 mean? Why not 1<<27? I'd ask you to replace it with
named constant,
or at least add a comment.

I'll share my results of performance testing it in a few days.

--
Anastasia Lubennikova
Postgres Professional:http://www.postgrespro.com
The Russian Postgres Company

#91Claudio Freire
klaussfreire@gmail.com
In reply to: Anastasia Lubennikova (#90)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Dec 28, 2016 at 10:26 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

27.12.2016 20:14, Claudio Freire:

On Tue, Dec 27, 2016 at 10:41 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
1417 tblk =
ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
(gdb) bt
#0 0x00000000006941e7 in lazy_vacuum_heap (onerel=0x1ec2360,
vacrelstats=0x1ef6e00) at vacuumlazy.c:1417
#1 0x0000000000693dfe in lazy_scan_heap (onerel=0x1ec2360, options=9,
vacrelstats=0x1ef6e00, Irel=0x1ef7168, nindexes=2, aggressive=1 '\001')
at vacuumlazy.c:1337
#2 0x0000000000691e66 in lazy_vacuum_rel (onerel=0x1ec2360, options=9,
params=0x7ffe0f866310, bstrategy=0x1f1c4a8) at vacuumlazy.c:290
#3 0x000000000069191f in vacuum_rel (relid=1247, relation=0x0, options=9,
params=0x7ffe0f866310) at vacuum.c:1418

Those line numbers don't match my code.

Which commit are you based on?

My tree is (currently) based on 71f996d22125eb6cfdbee6094f44370aa8dec610

Hm, my branch is based on 71f996d22125eb6cfdbee6094f44370aa8dec610 as well.
I merely applied patches
0001-Vacuum-prefetch-buffers-on-backward-scan-v3.patch
and 0002-Vacuum-allow-using-more-than-1GB-work-mem-v3.patch
then ran configure and make as usual.
Am I doing something wrong?

Doesn't sound wrong. Maybe it's my tree the unclean one. I'll have to
do a clean checkout to verify.

Anyway, I found the problem that had caused segfault.

for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex =
0, segindex++)
{
DeadTuplesSegment *seg =
&(vacrelstats->dead_tuples.dead_tuples[segindex]);
int num_dead_tuples = seg->num_dead_tuples;

while (tupindex < num_dead_tuples)
...

You rely on the value of tupindex here, while during the very first pass the
'tupindex' variable
may contain any garbage. And it happend that on my system there was negative
value
as I found inspecting core dump:

(gdb) info locals
num_dead_tuples = 5
tottuples = 0
tupindex = -1819017215

Which leads to failure in the next line
tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

The solution is to move this assignment inside the cycle.

Good catch. I read that line suspecting that very same thing but
somehow I was blind to it.

I've read the second patch.

1. What is the reason to inline vac_cmp_itemptr() ?

Performance, mostly. By inlining some transformations can be applied
that wouldn't be possible otherwise. During the binary search, this
matters performance-wise.

2. +#define LAZY_MIN_TUPLES Max(MaxHeapTuplesPerPage, (128<<20) /
sizeof(ItemPointerData))
What does 128<<20 mean? Why not 1<<27? I'd ask you to replace it with named
constant,
or at least add a comment.

I tought it was more readable like that, since 1<<20 is known to be
"MB", that reads as "128 MB".

I guess I can add a comment saying so.

I'll share my results of performance testing it in a few days.

Thanks

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#92Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#91)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Dec 28, 2016 at 3:41 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Anyway, I found the problem that had caused segfault.

for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex =
0, segindex++)
{
DeadTuplesSegment *seg =
&(vacrelstats->dead_tuples.dead_tuples[segindex]);
int num_dead_tuples = seg->num_dead_tuples;

while (tupindex < num_dead_tuples)
...

You rely on the value of tupindex here, while during the very first pass the
'tupindex' variable
may contain any garbage. And it happend that on my system there was negative
value
as I found inspecting core dump:

(gdb) info locals
num_dead_tuples = 5
tottuples = 0
tupindex = -1819017215

Which leads to failure in the next line
tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);

The solution is to move this assignment inside the cycle.

Good catch. I read that line suspecting that very same thing but
somehow I was blind to it.

Attached v4 patches with the requested fixes.

Attachments:

0001-Vacuum-prefetch-buffers-on-backward-scan-v4.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-prefetch-buffers-on-backward-scan-v4.patchDownload
From 988527b49ec0f48ea7fc85c7533e8eaa07d6fc3b Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Fri, 2 Sep 2016 23:33:48 -0300
Subject: [PATCH 1/2] Vacuum: prefetch buffers on backward scan

This patch speeds up truncation by prefetching buffers during
the backward scan phase just prior to truncation. This optimization
helps rotating media because disk rotation induces a buffer-to-buffer
latency of roughly a whole rotation when reading backwards, such
disks are usually optimized for forward scans. Prefetching buffers
in larger chunks ameliorates the issue considerably and is otherwise
harmless. The prefetch amount should also not be an issue on SSD,
which won't benefit from the optimization, but won't be hurt either.
---
 src/backend/commands/vacuumlazy.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index b5fb325..854bce3 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -1825,7 +1825,7 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno;
+	BlockNumber blkno, prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1833,6 +1833,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 	/* Strange coding of loop control is needed because blkno is unsigned */
 	blkno = vacrelstats->rel_pages;
+	prefetchBlkno = blkno & ~0x1f;
+	prefetchBlkno = (prefetchBlkno > 32) ? prefetchBlkno - 32 : 0;
 	while (blkno > vacrelstats->nonempty_pages)
 	{
 		Buffer		buf;
@@ -1882,6 +1884,23 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		blkno--;
 
+		/*
+		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
+		 * Backward scans on rotary disks are slow if done one buffer at a time
+		 * because readahead won't kick in on most OSes, and each buffer will
+		 * have to wait for the platter to do a full rotation.
+		 * Should be harmless on SSD.
+		 */
+		if (blkno <= prefetchBlkno) {
+			BlockNumber pblkno;
+			if (prefetchBlkno >= 32)
+				prefetchBlkno -= 32;
+			else
+				prefetchBlkno = 0;
+			for (pblkno = prefetchBlkno; pblkno < blkno; pblkno++)
+				PrefetchBuffer(onerel, MAIN_FORKNUM, pblkno);
+		}
+
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, blkno,
 								 RBM_NORMAL, vac_strategy);
 
-- 
1.8.4.5

0002-Vacuum-allow-using-more-than-1GB-work-mem-v4.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v4.patchDownload
From d360720415a2db5d5285a757c9a06e7ed854c5c5 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 2/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c | 302 ++++++++++++++++++++++++++++++--------
 1 file changed, 237 insertions(+), 65 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 854bce3..8b714e0 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -93,11 +93,40 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dead_tuples;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dead_tuples;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -117,14 +146,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -149,7 +178,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -157,8 +186,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -498,7 +528,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -677,8 +707,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -729,7 +759,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -911,7 +941,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1123,10 +1153,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0);		/* Should not need more
+																 * than one segment per
+																 * page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1134,7 +1167,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1237,7 +1270,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1268,7 +1301,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1362,7 +1395,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1370,35 +1405,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = tupindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1410,7 +1453,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1421,34 +1464,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dead_tuples;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1582,6 +1627,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1592,6 +1638,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1599,7 +1650,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1825,7 +1876,8 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno, prefetchBlkno;
+	BlockNumber blkno,
+				prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
@@ -1886,13 +1938,15 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		/*
 		 * Speed up reads on rotating rust by prefetching a few blocks ahead.
-		 * Backward scans on rotary disks are slow if done one buffer at a time
-		 * because readahead won't kick in on most OSes, and each buffer will
-		 * have to wait for the platter to do a full rotation.
-		 * Should be harmless on SSD.
+		 * Backward scans on rotary disks are slow if done one buffer at a
+		 * time because readahead won't kick in on most OSes, and each buffer
+		 * will have to wait for the platter to do a full rotation. Should be
+		 * harmless on SSD.
 		 */
-		if (blkno <= prefetchBlkno) {
+		if (blkno <= prefetchBlkno)
+		{
 			BlockNumber pblkno;
+
 			if (prefetchBlkno >= 32)
 				prefetchBlkno -= 32;
 			else
@@ -1962,7 +2016,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1971,7 +2026,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1985,10 +2039,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2003,16 +2065,85 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dead_tuples,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.last_seg; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2024,10 +2155,51 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		int			rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2037,7 +2209,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
-- 
1.8.4.5

#93Anastasia Lubennikova
a.lubennikova@postgrespro.ru
In reply to: Claudio Freire (#92)
Re: Vacuum: allow usage of more than 1GB of work mem

28.12.2016 23:43, Claudio Freire:

Attached v4 patches with the requested fixes.

Sorry for being late, but the tests took a lot of time.

create table t1 as select i, md5(random()::text) from generate_series(0,400000000) as i;
create index md5_idx ON t1(md5);
update t1 set md5 = md5((random() * (100 + 500))::text);
vacuum;

Patched vacuum used 2.9Gb of memory and vacuumed the index in one pass,
while for old version it took three passes (1GB+1GB+0.9GB).
Vacuum duration results:

vanilla:
LOG: duration: 4359006.327 ms statement: vacuum verbose t1;
patched:
LOG: duration: 3076827.378 ms statement: vacuum verbose t1;

We can see 30% vacuum speedup. I should note that this case can be
considered
as favorable to vanilla vacuum: the table is not that big, it has just
one index
and disk used is a fast fusionIO. We can expect even more gain on slower
disks.

Thank you again for the patch. Hope to see it in 10.0.

--
Anastasia Lubennikova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

#94Claudio Freire
klaussfreire@gmail.com
In reply to: Anastasia Lubennikova (#93)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 19, 2017 at 6:33 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

28.12.2016 23:43, Claudio Freire:

Attached v4 patches with the requested fixes.

Sorry for being late, but the tests took a lot of time.

I know. Takes me several days to run my test scripts once.

create table t1 as select i, md5(random()::text) from
generate_series(0,400000000) as i;
create index md5_idx ON t1(md5);
update t1 set md5 = md5((random() * (100 + 500))::text);
vacuum;

Patched vacuum used 2.9Gb of memory and vacuumed the index in one pass,
while for old version it took three passes (1GB+1GB+0.9GB).
Vacuum duration results:

vanilla:
LOG: duration: 4359006.327 ms statement: vacuum verbose t1;
patched:
LOG: duration: 3076827.378 ms statement: vacuum verbose t1;

We can see 30% vacuum speedup. I should note that this case can be
considered
as favorable to vanilla vacuum: the table is not that big, it has just one
index
and disk used is a fast fusionIO. We can expect even more gain on slower
disks.

Thank you again for the patch. Hope to see it in 10.0.

Cool. Thanks for the review and the tests.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#95Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#94)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 19, 2017 at 8:31 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Jan 19, 2017 at 6:33 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

28.12.2016 23:43, Claudio Freire:

Attached v4 patches with the requested fixes.

Sorry for being late, but the tests took a lot of time.

I know. Takes me several days to run my test scripts once.

create table t1 as select i, md5(random()::text) from
generate_series(0,400000000) as i;
create index md5_idx ON t1(md5);
update t1 set md5 = md5((random() * (100 + 500))::text);
vacuum;

Patched vacuum used 2.9Gb of memory and vacuumed the index in one pass,
while for old version it took three passes (1GB+1GB+0.9GB).
Vacuum duration results:

vanilla:
LOG: duration: 4359006.327 ms statement: vacuum verbose t1;
patched:
LOG: duration: 3076827.378 ms statement: vacuum verbose t1;

We can see 30% vacuum speedup. I should note that this case can be
considered
as favorable to vanilla vacuum: the table is not that big, it has just one
index
and disk used is a fast fusionIO. We can expect even more gain on slower
disks.

Thank you again for the patch. Hope to see it in 10.0.

Cool. Thanks for the review and the tests.

I encountered a bug with following scenario.
1. Create table and disable autovacuum on that table.
2. Make about 200000 dead tuples on the table.
3. SET maintenance_work_mem TO 1024
4. VACUUM

@@ -729,7 +759,7 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
                         * not to reset latestRemovedXid since we want
that value to be
                         * valid.
                         */
-                       vacrelstats->num_dead_tuples = 0;
+                       lazy_clear_dead_tuples(vacrelstats);
                        vacrelstats->num_index_scans++;

/* Report that we are once again scanning the heap */

I think that we should do vacrelstats->dead_tuples.num_entries = 0 as
well in lazy_clear_dead_tuples(). Once the amount of dead tuples
reached to maintenance_work_mem, lazy_scan_heap can never finish.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#96Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Claudio Freire (#70)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

You posted two patches with this preamble:

Claudio Freire wrote:

Attached is the raw output of the test, the script used to create it,
and just in case the patch set used. I believe it's the same as the
last one I posted, just rebased.

There was no discussion whatsoever of the "prefetch" patch in this
thread; and as far as I can see, nobody even mentioned such an idea in
the thread. This prefetch patch appeared out of the blue and there was
no discussion about it that I can see. Now I was about to push it after
some minor tweaks, and went to search where was its justification, only
to see that there was none. Did anybody run tests with this patch?

I attach it now one more time. My version is based on the latest
Claudio posted at
/messages/by-id/CAGTBQpa464RugxYwxLTtDi=Syv9GnGFcJK8uZb2fR6NDDqULaw@mail.gmail.com
I don't know if there are differences to the version first posted.
I only changed the magic number 32 to a #define, and added a
CHECK_FOR_INTERRUPTS in the prefetching loop.

FWIW, I think this patch is completely separate from the maint_work_mem
patch and should have had its own thread and its own commitfest entry.
I intend to get a look at the other patch next week, after pushing this
one.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Attachments:

0001-Prefetch-blocks-during-lazy-vacuum-s-truncation-scan.patchtext/plain; charset=us-asciiDownload
From bd10f56beb365e3cbfadb87d27f8aeb4b33f880e Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri, 20 Jan 2017 18:04:51 -0300
Subject: [PATCH] Prefetch blocks during lazy vacuum's truncation scan

The truncation scan can be sped up on rotating media by prefetching
blocks in forward direction, because the is a cue for the operating
system's readahead to kick in, so that by the time we request those
blocks, they are already in memory.

Author: Claudio Freire
Discussion: https://postgr.es/m/CAGTBQpa6NFGO_6g_y_7zQx8L9GcHDSQKYdo1tGuh791z6PYgEg@mail.gmail.com
---
 src/backend/commands/vacuumlazy.c | 36 ++++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index a2999b3..e676072 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -98,6 +98,12 @@
  */
 #define SKIP_PAGES_THRESHOLD	((BlockNumber) 32)
 
+/*
+ * Size of the prefetch window for lazy vacuum backwards truncation scan.
+ * Needs to be a power of 2.
+ */
+#define PREFETCH_SIZE			32
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -1825,14 +1831,24 @@ lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats)
 static BlockNumber
 count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 {
-	BlockNumber blkno;
+	BlockNumber blkno,
+				prefetchBlkno;
 	instr_time	starttime;
 
 	/* Initialize the starttime if we check for conflicting lock requests */
 	INSTR_TIME_SET_CURRENT(starttime);
 
-	/* Strange coding of loop control is needed because blkno is unsigned */
+	/*
+	 * Start checking blocks at what we believe relation end to be and move
+	 * backwards.  (Strange coding of loop control is needed because blkno is
+	 * unsigned.)  To make it a bit faster, we prefetch a bunch of blocks at a
+	 * time in forward direction, so that OS-level readahead can kick in to
+	 * speed this up.
+	 */
 	blkno = vacrelstats->rel_pages;
+	prefetchBlkno = blkno & ~(PREFETCH_SIZE - 1);
+	prefetchBlkno =
+		(prefetchBlkno > PREFETCH_SIZE) ? prefetchBlkno - PREFETCH_SIZE : 0;
 	while (blkno > vacrelstats->nonempty_pages)
 	{
 		Buffer		buf;
@@ -1882,6 +1898,22 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 
 		blkno--;
 
+		/* If we haven't prefetched this lot yet, do so now. */
+		if (blkno <= prefetchBlkno)
+		{
+			BlockNumber pblkno;
+
+			if (prefetchBlkno >= PREFETCH_SIZE)
+				prefetchBlkno -= PREFETCH_SIZE;
+			else
+				prefetchBlkno = 0;
+			for (pblkno = prefetchBlkno; pblkno < blkno; pblkno++)
+			{
+				PrefetchBuffer(onerel, MAIN_FORKNUM, pblkno);
+				CHECK_FOR_INTERRUPTS();
+			}
+		}
+
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, blkno,
 								 RBM_NORMAL, vac_strategy);
 
-- 
2.1.4

#97Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alvaro Herrera (#96)
Re: Vacuum: allow usage of more than 1GB of work mem

Alvaro Herrera wrote:

There was no discussion whatsoever of the "prefetch" patch in this
thread; and as far as I can see, nobody even mentioned such an idea in
the thread. This prefetch patch appeared out of the blue and there was
no discussion about it that I can see. Now I was about to push it after
some minor tweaks, and went to search where was its justification, only
to see that there was none. Did anybody run tests with this patch?

I attach it now one more time. My version is based on the latest
Claudio posted at
/messages/by-id/CAGTBQpa464RugxYwxLTtDi=Syv9GnGFcJK8uZb2fR6NDDqULaw@mail.gmail.com
I don't know if there are differences to the version first posted.
I only changed the magic number 32 to a #define, and added a
CHECK_FOR_INTERRUPTS in the prefetching loop.

Ah, I found the justification here:
/messages/by-id/CAGTBQpa464RugxYwxLTtDi=Syv9GnGFcJK8uZb2fR6NDDqULaw@mail.gmail.com
apparently the truncate scan is 4x-6x faster with this prefetching.
Nice!

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#98Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alvaro Herrera (#97)
Re: Vacuum: allow usage of more than 1GB of work mem

I pushed this patch after rewriting it rather completely. I added
tracing notices to inspect the blocks it was prefetching and observed
that the original coding was failing to prefetch the final streak of
blocks in the table, which is an important oversight considering that it
may very well be that those are the only blocks to read at all.

I timed vacuuming a 4000-block table in my laptop (single SSD disk;
dropped FS caches after deleting all rows in table, so that vacuum has
to read all blocks from disk); it changes from 387ms without patch to
155ms with patch. I didn't measure how much it takes to run the other
steps in the vacuum, but it's clear that the speedup for the truncation
phase is considerable.

�Thanks, Claudio!

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#99Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Claudio Freire (#92)
Re: Vacuum: allow usage of more than 1GB of work mem

I think this patch no longer applies because of conflicts with the one I
just pushed. Please rebase.

Thanks

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#100Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#95)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Jan 20, 2017 at 6:24 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Thu, Jan 19, 2017 at 8:31 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Jan 19, 2017 at 6:33 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

28.12.2016 23:43, Claudio Freire:

Attached v4 patches with the requested fixes.

Sorry for being late, but the tests took a lot of time.

I know. Takes me several days to run my test scripts once.

create table t1 as select i, md5(random()::text) from
generate_series(0,400000000) as i;
create index md5_idx ON t1(md5);
update t1 set md5 = md5((random() * (100 + 500))::text);
vacuum;

Patched vacuum used 2.9Gb of memory and vacuumed the index in one pass,
while for old version it took three passes (1GB+1GB+0.9GB).
Vacuum duration results:

vanilla:
LOG: duration: 4359006.327 ms statement: vacuum verbose t1;
patched:
LOG: duration: 3076827.378 ms statement: vacuum verbose t1;

We can see 30% vacuum speedup. I should note that this case can be
considered
as favorable to vanilla vacuum: the table is not that big, it has just one
index
and disk used is a fast fusionIO. We can expect even more gain on slower
disks.

Thank you again for the patch. Hope to see it in 10.0.

Cool. Thanks for the review and the tests.

I encountered a bug with following scenario.
1. Create table and disable autovacuum on that table.
2. Make about 200000 dead tuples on the table.
3. SET maintenance_work_mem TO 1024
4. VACUUM

@@ -729,7 +759,7 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
* not to reset latestRemovedXid since we want
that value to be
* valid.
*/
-                       vacrelstats->num_dead_tuples = 0;
+                       lazy_clear_dead_tuples(vacrelstats);
vacrelstats->num_index_scans++;

/* Report that we are once again scanning the heap */

I think that we should do vacrelstats->dead_tuples.num_entries = 0 as
well in lazy_clear_dead_tuples(). Once the amount of dead tuples
reached to maintenance_work_mem, lazy_scan_heap can never finish.

That's right.

I added a test for it in the attached patch set, which uncovered
another bug in lazy_clear_dead_tuples, and took the opportunity to
rebase.

On Mon, Jan 23, 2017 at 1:06 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

I pushed this patch after rewriting it rather completely. I added
tracing notices to inspect the blocks it was prefetching and observed
that the original coding was failing to prefetch the final streak of
blocks in the table, which is an important oversight considering that it
may very well be that those are the only blocks to read at all.

I timed vacuuming a 4000-block table in my laptop (single SSD disk;
dropped FS caches after deleting all rows in table, so that vacuum has
to read all blocks from disk); it changes from 387ms without patch to
155ms with patch. I didn't measure how much it takes to run the other
steps in the vacuum, but it's clear that the speedup for the truncation
phase is considerable.

ĄThanks, Claudio!

Cool.

Though it wasn't the first time this idea has been floating around, I
can't take all the credit.

On Fri, Jan 20, 2017 at 6:25 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

FWIW, I think this patch is completely separate from the maint_work_mem
patch and should have had its own thread and its own commitfest entry.
I intend to get a look at the other patch next week, after pushing this
one.

That's because it did have it, and was left in limbo due to lack of
testing on SSDs. I just had to adopt it here because otherwise tests
took way too long.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v5.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v5.patchDownload
From 92c610b4ed064afba0f914efd78a03c61f4742c6 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 288 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 ++
 3 files changed, 247 insertions(+), 59 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 005440e..0b1d347 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -93,6 +93,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +112,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dead_tuples;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dead_tuples;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +152,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dead_tuples[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +184,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +192,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -504,7 +534,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -683,8 +713,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -735,7 +765,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -917,7 +947,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1129,10 +1159,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0);		/* Should not need more
+																 * than one segment per
+																 * page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1140,7 +1173,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1243,7 +1276,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1274,7 +1307,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1368,7 +1401,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1376,35 +1411,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = tupindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dead_tuples[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dead_tuples[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1416,7 +1459,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1427,34 +1470,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dead_tuples of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dead_tuples;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1588,6 +1633,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1598,6 +1644,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1605,7 +1656,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1973,7 +2024,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2034,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2047,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dead_tuples[0].dead_tuples = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dead_tuples[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dead_tuples[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2014,16 +2073,86 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dead_tuples[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dead_tuples = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dead_tuples,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dead_tuples[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dead_tuples = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+				seg = DeadTuplesCurrentSegment(vacrelstats);
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dead_tuples == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dead_tuples = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dead_tuples[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dead_tuples[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2035,10 +2164,51 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dead_tuples;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		int			rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+		return false;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dead_tuples,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2048,7 +2218,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 9b604be..7198fe4 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,4 +81,12 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7b819f6..dcec617 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,4 +63,14 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
-- 
1.8.4.5

#101Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#100)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Jan 24, 2017 at 1:49 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Jan 20, 2017 at 6:24 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Thu, Jan 19, 2017 at 8:31 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Jan 19, 2017 at 6:33 AM, Anastasia Lubennikova
<a.lubennikova@postgrespro.ru> wrote:

28.12.2016 23:43, Claudio Freire:

Attached v4 patches with the requested fixes.

Sorry for being late, but the tests took a lot of time.

I know. Takes me several days to run my test scripts once.

create table t1 as select i, md5(random()::text) from
generate_series(0,400000000) as i;
create index md5_idx ON t1(md5);
update t1 set md5 = md5((random() * (100 + 500))::text);
vacuum;

Patched vacuum used 2.9Gb of memory and vacuumed the index in one pass,
while for old version it took three passes (1GB+1GB+0.9GB).
Vacuum duration results:

vanilla:
LOG: duration: 4359006.327 ms statement: vacuum verbose t1;
patched:
LOG: duration: 3076827.378 ms statement: vacuum verbose t1;

We can see 30% vacuum speedup. I should note that this case can be
considered
as favorable to vanilla vacuum: the table is not that big, it has just one
index
and disk used is a fast fusionIO. We can expect even more gain on slower
disks.

Thank you again for the patch. Hope to see it in 10.0.

Cool. Thanks for the review and the tests.

I encountered a bug with following scenario.
1. Create table and disable autovacuum on that table.
2. Make about 200000 dead tuples on the table.
3. SET maintenance_work_mem TO 1024
4. VACUUM

@@ -729,7 +759,7 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
* not to reset latestRemovedXid since we want
that value to be
* valid.
*/
-                       vacrelstats->num_dead_tuples = 0;
+                       lazy_clear_dead_tuples(vacrelstats);
vacrelstats->num_index_scans++;

/* Report that we are once again scanning the heap */

I think that we should do vacrelstats->dead_tuples.num_entries = 0 as
well in lazy_clear_dead_tuples(). Once the amount of dead tuples
reached to maintenance_work_mem, lazy_scan_heap can never finish.

That's right.

I added a test for it in the attached patch set, which uncovered
another bug in lazy_clear_dead_tuples, and took the opportunity to
rebase.

On Mon, Jan 23, 2017 at 1:06 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

I pushed this patch after rewriting it rather completely. I added
tracing notices to inspect the blocks it was prefetching and observed
that the original coding was failing to prefetch the final streak of
blocks in the table, which is an important oversight considering that it
may very well be that those are the only blocks to read at all.

I timed vacuuming a 4000-block table in my laptop (single SSD disk;
dropped FS caches after deleting all rows in table, so that vacuum has
to read all blocks from disk); it changes from 387ms without patch to
155ms with patch. I didn't measure how much it takes to run the other
steps in the vacuum, but it's clear that the speedup for the truncation
phase is considerable.

ĄThanks, Claudio!

Cool.

Though it wasn't the first time this idea has been floating around, I
can't take all the credit.

On Fri, Jan 20, 2017 at 6:25 PM, Alvaro Herrera
<alvherre@2ndquadrant.com> wrote:

FWIW, I think this patch is completely separate from the maint_work_mem
patch and should have had its own thread and its own commitfest entry.
I intend to get a look at the other patch next week, after pushing this
one.

That's because it did have it, and was left in limbo due to lack of
testing on SSDs. I just had to adopt it here because otherwise tests
took way too long.

Thank you for updating the patch!

+       /*
+        * Quickly rule out by lower bound (should happen a lot) Upper bound was
+        * already checked by segment search
+        */
+       if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+               return false;

I think that if the above result is 0, we can return true as itemptr
matched lower bound item pointer in rseg->dead_tuples.

 +typedef struct DeadTuplesSegment
+{
+       int                     num_dead_tuples;        /* # of
entries in the segment */
+       int                     max_dead_tuples;        /* # of
entries allocated in the segment */
+       ItemPointerData last_dead_tuple;        /* Copy of the last
dead tuple (unset
+
          * until the segment is fully
+
          * populated) */
+       unsigned short padding;
+       ItemPointer dead_tuples;        /* Array of dead tuples */
+}      DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+       int                     num_entries;    /* current # of entries */
+       int                     max_entries;    /* total # of slots
that can be allocated in
+                                                                * array */
+       int                     num_segs;               /* number of
dead tuple segments allocated */
+       int                     last_seg;               /* last dead
tuple segment with data (or 0) */
+       DeadTuplesSegment *dead_tuples;         /* array of num_segs segments */
+}      DeadTuplesMultiArray;

It's a matter of personal preference but some same dead_tuples
variables having different meaning confused me.
If we want to access first dead tuple location of first segment, we
need to do 'vacrelstats->dead_tuples.dead_tuples.dead_tuples'. For
example, 'vacrelstats->dead_tuples.dt_segment.dt_array' is better to
me.

+                                       nseg->num_dead_tuples = 0;
+                                       nseg->max_dead_tuples = 0;
+                                       nseg->dead_tuples = NULL;
+                                       vacrelstats->dead_tuples.num_segs++;
+                               }
+                               seg = DeadTuplesCurrentSegment(vacrelstats);
+                       }
+                       vacrelstats->dead_tuples.last_seg++;
+                       seg = DeadTuplesCurrentSegment(vacrelstats);

Because seg is always set later I think the first line starting with
"seg = ..." is not necessary. Thought?

--
Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#102Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#101)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Jan 25, 2017 at 1:54 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch!

+       /*
+        * Quickly rule out by lower bound (should happen a lot) Upper bound was
+        * already checked by segment search
+        */
+       if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+               return false;

I think that if the above result is 0, we can return true as itemptr
matched lower bound item pointer in rseg->dead_tuples.

That's right. Possibly not a great speedup but... why not?

+typedef struct DeadTuplesSegment
+{
+       int                     num_dead_tuples;        /* # of
entries in the segment */
+       int                     max_dead_tuples;        /* # of
entries allocated in the segment */
+       ItemPointerData last_dead_tuple;        /* Copy of the last
dead tuple (unset
+
* until the segment is fully
+
* populated) */
+       unsigned short padding;
+       ItemPointer dead_tuples;        /* Array of dead tuples */
+}      DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+       int                     num_entries;    /* current # of entries */
+       int                     max_entries;    /* total # of slots
that can be allocated in
+                                                                * array */
+       int                     num_segs;               /* number of
dead tuple segments allocated */
+       int                     last_seg;               /* last dead
tuple segment with data (or 0) */
+       DeadTuplesSegment *dead_tuples;         /* array of num_segs segments */
+}      DeadTuplesMultiArray;

It's a matter of personal preference but some same dead_tuples
variables having different meaning confused me.
If we want to access first dead tuple location of first segment, we
need to do 'vacrelstats->dead_tuples.dead_tuples.dead_tuples'. For
example, 'vacrelstats->dead_tuples.dt_segment.dt_array' is better to
me.

Yes, I can see how that could be confusing.

I went for vacrelstats->dead_tuples.dt_segments[i].dt_tids[j]

+                                       nseg->num_dead_tuples = 0;
+                                       nseg->max_dead_tuples = 0;
+                                       nseg->dead_tuples = NULL;
+                                       vacrelstats->dead_tuples.num_segs++;
+                               }
+                               seg = DeadTuplesCurrentSegment(vacrelstats);
+                       }
+                       vacrelstats->dead_tuples.last_seg++;
+                       seg = DeadTuplesCurrentSegment(vacrelstats);

Because seg is always set later I think the first line starting with
"seg = ..." is not necessary. Thought?

That's correct.

Attached a v6 with those changes (and rebased).

Make check still passes.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v6.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v6.patchDownload
From c89019089a71517befac0920f22ed75577dda6c6 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 291 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 ++
 3 files changed, 250 insertions(+), 59 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 005440e..1d2441f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -93,6 +93,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +112,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dt_tids;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +152,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dt_segments[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +184,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +192,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -504,7 +534,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -683,8 +713,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -735,7 +765,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -917,7 +947,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1129,10 +1159,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			Assert(vacrelstats->dead_tuples.last_seg == 0);		/* Should not need more
+																 * than one segment per
+																 * page */
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1140,7 +1173,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1243,7 +1276,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1274,7 +1307,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1368,7 +1401,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
+	int			tottuples;
 	int			tupindex;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1376,35 +1411,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = tupindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dt_segments[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1416,7 +1459,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1427,34 +1470,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1588,6 +1633,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1598,6 +1644,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1605,7 +1656,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1973,7 +2024,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2034,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2047,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2014,16 +2073,85 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dt_segments,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dt_segments[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2035,10 +2163,55 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg,
+				rcomp;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	rcomp = vac_cmp_itemptr((void *) itemptr, (void *) rseg->dt_tids);
+	if (rcomp < 0)
+		return false;
+	else if (rcomp == 0)
+		return true;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dt_tids,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2048,7 +2221,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 9b604be..7198fe4 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,4 +81,12 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7b819f6..dcec617 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,4 +63,14 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
-- 
1.8.4.5

#103Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#102)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 26, 2017 at 5:11 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Jan 25, 2017 at 1:54 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch!

+       /*
+        * Quickly rule out by lower bound (should happen a lot) Upper bound was
+        * already checked by segment search
+        */
+       if (vac_cmp_itemptr((void *) itemptr, (void *) rseg->dead_tuples) < 0)
+               return false;

I think that if the above result is 0, we can return true as itemptr
matched lower bound item pointer in rseg->dead_tuples.

That's right. Possibly not a great speedup but... why not?

+typedef struct DeadTuplesSegment
+{
+       int                     num_dead_tuples;        /* # of
entries in the segment */
+       int                     max_dead_tuples;        /* # of
entries allocated in the segment */
+       ItemPointerData last_dead_tuple;        /* Copy of the last
dead tuple (unset
+
* until the segment is fully
+
* populated) */
+       unsigned short padding;
+       ItemPointer dead_tuples;        /* Array of dead tuples */
+}      DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+       int                     num_entries;    /* current # of entries */
+       int                     max_entries;    /* total # of slots
that can be allocated in
+                                                                * array */
+       int                     num_segs;               /* number of
dead tuple segments allocated */
+       int                     last_seg;               /* last dead
tuple segment with data (or 0) */
+       DeadTuplesSegment *dead_tuples;         /* array of num_segs segments */
+}      DeadTuplesMultiArray;

It's a matter of personal preference but some same dead_tuples
variables having different meaning confused me.
If we want to access first dead tuple location of first segment, we
need to do 'vacrelstats->dead_tuples.dead_tuples.dead_tuples'. For
example, 'vacrelstats->dead_tuples.dt_segment.dt_array' is better to
me.

Yes, I can see how that could be confusing.

I went for vacrelstats->dead_tuples.dt_segments[i].dt_tids[j]

Thank you for updating.
Looks good to me.

+                                       nseg->num_dead_tuples = 0;
+                                       nseg->max_dead_tuples = 0;
+                                       nseg->dead_tuples = NULL;
+                                       vacrelstats->dead_tuples.num_segs++;
+                               }
+                               seg = DeadTuplesCurrentSegment(vacrelstats);
+                       }
+                       vacrelstats->dead_tuples.last_seg++;
+                       seg = DeadTuplesCurrentSegment(vacrelstats);

Because seg is always set later I think the first line starting with
"seg = ..." is not necessary. Thought?

That's correct.

Attached a v6 with those changes (and rebased).

Make check still passes.

Here is review comment of v6 patch.

----
* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples. We
* initially allocate an array of TIDs of that size, with an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
* uselessly for vacuuming small tables). If the array threatens to overflow,

I think that we need to update the above paragraph comment at top of
vacuumlazy.c file.

----
+                               numtuples = Max(numtuples,
MaxHeapTuplesPerPage);
+                               numtuples = Min(numtuples, INT_MAX / 2);
+                               numtuples = Min(numtuples, 2 *
pseg->max_dead_tuples);
+                               numtuples = Min(numtuples,
MaxAllocSize / sizeof(ItemPointerData));
+                               seg->dt_tids = (ItemPointer)
palloc(sizeof(ItemPointerData) * numtuples);

Why numtuples is limited to "INT_MAX / 2" but not INT_MAX?

----
@@ -1376,35 +1411,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats
*vacrelstats)
pg_rusage_init(&ru0);
npages = 0;

-       tupindex = 0;
-       while (tupindex < vacrelstats->num_dead_tuples)
+       segindex = 0;
+       tottuples = 0;
+       for (segindex = tupindex = 0; segindex <=
vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
        {
-               BlockNumber tblk;
-               Buffer          buf;
-               Page            page;
-               Size            freespace;

This is a minute thing but tupindex can be define inside of for loop.

----
@@ -1129,10 +1159,13 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
          * instead of doing a second scan.
          */
         if (nindexes == 0 &&
-            vacrelstats->num_dead_tuples > 0)
+            vacrelstats->dead_tuples.num_entries > 0)
         {
             /* Remove tuples from heap */
-            lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+            Assert(vacrelstats->dead_tuples.last_seg == 0);        /*
Should not need more
+                                                                 *
than one segment per
+                                                                 * page */

I'm not sure we need to add Assert() here but it seems to me that the
comment and code is not properly correspond and the comment for
Assert() should be wrote above of Assert() line.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#104Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#103)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Jan 30, 2017 at 5:51 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

----
* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples. We
* initially allocate an array of TIDs of that size, with an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
* uselessly for vacuuming small tables). If the array threatens to overflow,

I think that we need to update the above paragraph comment at top of
vacuumlazy.c file.

Indeed, I missed that one. Fixing.

----
+                               numtuples = Max(numtuples,
MaxHeapTuplesPerPage);
+                               numtuples = Min(numtuples, INT_MAX / 2);
+                               numtuples = Min(numtuples, 2 *
pseg->max_dead_tuples);
+                               numtuples = Min(numtuples,
MaxAllocSize / sizeof(ItemPointerData));
+                               seg->dt_tids = (ItemPointer)
palloc(sizeof(ItemPointerData) * numtuples);

Why numtuples is limited to "INT_MAX / 2" but not INT_MAX?

I forgot to mention this one in the OP.

Googling around, I found out some implemetations of bsearch break with
array sizes beyond INT_MAX/2 [1]https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776671 (they'd overflow when computing the
midpoint).

Before this patch, this bsearch call had no way of reaching that size.
An initial version of the patch (the one that allocated a big array
with huge allocation) could reach that point, though, so I reduced the
limit to play it safe. This latest version is back to the starting
point, since it cannot allocate segments bigger than 1GB, but I opted
to keep playing it safe and leave the reduced limit just in case.

----
@@ -1376,35 +1411,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats
*vacrelstats)
pg_rusage_init(&ru0);
npages = 0;

-       tupindex = 0;
-       while (tupindex < vacrelstats->num_dead_tuples)
+       segindex = 0;
+       tottuples = 0;
+       for (segindex = tupindex = 0; segindex <=
vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
{
-               BlockNumber tblk;
-               Buffer          buf;
-               Page            page;
-               Size            freespace;

This is a minute thing but tupindex can be define inside of for loop.

Right, changing.

----
@@ -1129,10 +1159,13 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
* instead of doing a second scan.
*/
if (nindexes == 0 &&
-            vacrelstats->num_dead_tuples > 0)
+            vacrelstats->dead_tuples.num_entries > 0)
{
/* Remove tuples from heap */
-            lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+            Assert(vacrelstats->dead_tuples.last_seg == 0);        /*
Should not need more
+                                                                 *
than one segment per
+                                                                 * page */

I'm not sure we need to add Assert() here but it seems to me that the
comment and code is not properly correspond and the comment for
Assert() should be wrote above of Assert() line.

Well, that assert is the one that found the second bug in
lazy_clear_dead_tuples, so clearly it's not without merit.

I'll rearrange the comments as you ask though.

Updated and rebased v7 attached.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776671

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v7.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v7.patchDownload
From d32610b0ad6b9413aa4b2d808019d3c67d578f3c Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 314 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 ++
 3 files changed, 268 insertions(+), 64 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 005440e..8cb614f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -12,11 +12,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(N log N) lookup complexity.
+ *
+ * If the array threatens to overflow, we suspend the heap scan phase and
+ * perform a pass of index cleanup and page compaction, then resume the heap
+ * scan with an array of logically empty but already preallocated TID segments
+ * to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -93,6 +106,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +125,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dt_tids;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dt_segments[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +197,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +205,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -504,7 +547,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -683,8 +726,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -735,7 +778,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -917,7 +960,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1129,10 +1172,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1140,7 +1186,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1243,7 +1289,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1274,7 +1320,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1368,7 +1414,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1376,35 +1423,44 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dt_segments[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1416,7 +1472,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1427,34 +1483,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1588,6 +1646,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1598,6 +1657,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1605,7 +1669,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1973,7 +2037,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2047,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2060,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2014,16 +2086,85 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dt_segments,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dt_segments[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
@@ -2035,10 +2176,55 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg,
+				rcomp;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	rcomp = vac_cmp_itemptr((void *) itemptr, (void *) rseg->dt_tids);
+	if (rcomp < 0)
+		return false;
+	else if (rcomp == 0)
+		return true;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dt_tids,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2048,7 +2234,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 9b604be..7198fe4 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,4 +81,12 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7b819f6..dcec617 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,4 +63,14 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
-- 
1.8.4.5

#105Michael Paquier
michael.paquier@gmail.com
In reply to: Claudio Freire (#104)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Jan 31, 2017 at 11:05 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

Updated and rebased v7 attached.

Moved to CF 2017-03.
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#106Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#104)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Jan 31, 2017 at 3:05 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Mon, Jan 30, 2017 at 5:51 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

----
* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples. We
* initially allocate an array of TIDs of that size, with an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
* uselessly for vacuuming small tables). If the array threatens to overflow,

I think that we need to update the above paragraph comment at top of
vacuumlazy.c file.

Indeed, I missed that one. Fixing.

----
+                               numtuples = Max(numtuples,
MaxHeapTuplesPerPage);
+                               numtuples = Min(numtuples, INT_MAX / 2);
+                               numtuples = Min(numtuples, 2 *
pseg->max_dead_tuples);
+                               numtuples = Min(numtuples,
MaxAllocSize / sizeof(ItemPointerData));
+                               seg->dt_tids = (ItemPointer)
palloc(sizeof(ItemPointerData) * numtuples);

Why numtuples is limited to "INT_MAX / 2" but not INT_MAX?

I forgot to mention this one in the OP.

Googling around, I found out some implemetations of bsearch break with
array sizes beyond INT_MAX/2 [1] (they'd overflow when computing the
midpoint).

Before this patch, this bsearch call had no way of reaching that size.
An initial version of the patch (the one that allocated a big array
with huge allocation) could reach that point, though, so I reduced the
limit to play it safe. This latest version is back to the starting
point, since it cannot allocate segments bigger than 1GB, but I opted
to keep playing it safe and leave the reduced limit just in case.

Thanks, I understood.

----
@@ -1376,35 +1411,43 @@ lazy_vacuum_heap(Relation onerel, LVRelStats
*vacrelstats)
pg_rusage_init(&ru0);
npages = 0;

-       tupindex = 0;
-       while (tupindex < vacrelstats->num_dead_tuples)
+       segindex = 0;
+       tottuples = 0;
+       for (segindex = tupindex = 0; segindex <=
vacrelstats->dead_tuples.last_seg; tupindex = 0, segindex++)
{
-               BlockNumber tblk;
-               Buffer          buf;
-               Page            page;
-               Size            freespace;

This is a minute thing but tupindex can be define inside of for loop.

Right, changing.

----
@@ -1129,10 +1159,13 @@ lazy_scan_heap(Relation onerel, int options,
LVRelStats *vacrelstats,
* instead of doing a second scan.
*/
if (nindexes == 0 &&
-            vacrelstats->num_dead_tuples > 0)
+            vacrelstats->dead_tuples.num_entries > 0)
{
/* Remove tuples from heap */
-            lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+            Assert(vacrelstats->dead_tuples.last_seg == 0);        /*
Should not need more
+                                                                 *
than one segment per
+                                                                 * page */

I'm not sure we need to add Assert() here but it seems to me that the
comment and code is not properly correspond and the comment for
Assert() should be wrote above of Assert() line.

Well, that assert is the one that found the second bug in
lazy_clear_dead_tuples, so clearly it's not without merit.

I'll rearrange the comments as you ask though.

Updated and rebased v7 attached.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776671

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#107Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#106)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 1, 2017 at 5:47 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

I don't see the mismatch with reality there (if you consider
"dead_tples array" in the proper context, that is, the multiarray).

What in particular do you find out of sync there?

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#108Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#107)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 1, 2017 at 10:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 5:47 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

I don't see the mismatch with reality there (if you consider
"dead_tples array" in the proper context, that is, the multiarray).

What in particular do you find out of sync there?

The current lazy_tid_reaped just find a tid from a tid array using
bsearch but in your patch lazy_tid_reaped handles multiple tid arrays
and processing method become complicated. So I thought it's better to
add the description of this function.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#109Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#108)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 1, 2017 at 6:13 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Wed, Feb 1, 2017 at 10:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 5:47 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

I don't see the mismatch with reality there (if you consider
"dead_tples array" in the proper context, that is, the multiarray).

What in particular do you find out of sync there?

The current lazy_tid_reaped just find a tid from a tid array using
bsearch but in your patch lazy_tid_reaped handles multiple tid arrays
and processing method become complicated. So I thought it's better to
add the description of this function.

Alright, updated with some more remarks that seemed relevant

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v8.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v8.patchDownload
From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 318 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 ++
 3 files changed, 271 insertions(+), 65 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 005440e..4a6895c 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -12,11 +12,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(N log N) lookup complexity.
+ *
+ * If the array threatens to overflow, we suspend the heap scan phase and
+ * perform a pass of index cleanup and page compaction, then resume the heap
+ * scan with an array of logically empty but already preallocated TID segments
+ * to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -93,6 +106,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +125,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dt_tids;	/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dt_segments[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +197,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +205,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -504,7 +547,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -683,8 +726,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -735,7 +778,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -917,7 +960,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1129,10 +1172,13 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1140,7 +1186,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1243,7 +1289,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1274,7 +1320,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1368,7 +1414,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
@@ -1376,35 +1423,44 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dt_segments[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1416,7 +1472,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1427,34 +1483,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1588,6 +1646,7 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
 
 	pg_rusage_init(&ru0);
 
@@ -1598,6 +1657,11 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1605,7 +1669,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1973,7 +2037,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 static void
 lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 {
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
 	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
 	autovacuum_work_mem != -1 ?
 	autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2047,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2060,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
 }
 
 /*
@@ -2014,31 +2086,147 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dt_segments,
+								   new_num_segs * sizeof(DeadTuplesSegment));
+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+										 vacrelstats->dead_tuples.num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					vacrelstats->dead_tuples.num_segs++;
+				}
+			}
+			vacrelstats->dead_tuples.last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dt_segments[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
  */
 static bool
 lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg,
+				rcomp;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	rcomp = vac_cmp_itemptr((void *) itemptr, (void *) rseg->dt_tids);
+	if (rcomp < 0)
+		return false;
+	else if (rcomp == 0)
+		return true;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dt_tids,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2048,7 +2236,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 9b604be..7198fe4 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,4 +81,12 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7b819f6..dcec617 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,4 +63,14 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
-- 
1.8.4.5

#110Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#109)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 1, 2017 at 11:55 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 6:13 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Wed, Feb 1, 2017 at 10:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 5:47 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

I don't see the mismatch with reality there (if you consider
"dead_tples array" in the proper context, that is, the multiarray).

What in particular do you find out of sync there?

The current lazy_tid_reaped just find a tid from a tid array using
bsearch but in your patch lazy_tid_reaped handles multiple tid arrays
and processing method become complicated. So I thought it's better to
add the description of this function.

Alright, updated with some more remarks that seemed relevant

Thank you for updating the patch.

The patch looks good to me. There is no review comment from me.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#111Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#109)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 1, 2017 at 7:55 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 6:13 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

On Wed, Feb 1, 2017 at 10:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 1, 2017 at 5:47 PM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

Thank you for updating the patch.

Whole patch looks good to me except for the following one comment.
This is the final comment from me.

/*
* lazy_tid_reaped() -- is a particular tid deletable?
*
* This has the right signature to be an IndexBulkDeleteCallback.
*
* Assumes dead_tuples array is in sorted order.
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)
{
LVRelStats *vacrelstats = (LVRelStats *) state;

You might want to update the comment of lazy_tid_reaped() as well.

I don't see the mismatch with reality there (if you consider
"dead_tples array" in the proper context, that is, the multiarray).

What in particular do you find out of sync there?

The current lazy_tid_reaped just find a tid from a tid array using
bsearch but in your patch lazy_tid_reaped handles multiple tid arrays
and processing method become complicated. So I thought it's better to
add the description of this function.

Alright, updated with some more remarks that seemed relevant

I just realized I never updated the early free patch after the
multiarray version.

So attached is a patch that frees the multiarray as early as possible
(just after finishing with index bulk deletes, right before doing
index cleanup and attempting truncation).

This should make the possibly big amount of memory available to other
processes for the duration of those tasks, which could be a long time
in some cases.

Attachments:

0003-Vacuum-free-dead-tuples-array-as-early-as-possible.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible.patchDownload
From f080f8377b7200ae9c2a02abfb0ef0bf6e2d5d69 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 4a6895c..60a6c18 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -206,6 +206,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
@@ -1358,6 +1359,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2165,6 +2169,24 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		pfree(vacrelstats->dead_tuples.dt_segments[nseg].dt_tids);
+	pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
-- 
1.8.4.5

#112Andres Freund
andres@anarazel.de
In reply to: Claudio Freire (#109)
Re: Vacuum: allow usage of more than 1GB of work mem

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(N log N) lookup complexity.

N log N is a horrible lookup complexity. That's the complexity of
*sorting* an entire array. I think you might be trying to argue that
it's log(N) * log(N)? Once log(n) for the exponentially growing size of
segments, one for the binary search?

Afaics you could quite easily make it O(2 log(N)) by simply also doing
binary search over the segments. Might not be worth it due to the small
constant involved normally.

+ * If the array threatens to overflow, we suspend the heap scan phase and
+ * perform a pass of index cleanup and page compaction, then resume the heap
+ * scan with an array of logically empty but already preallocated TID segments
+ * to be refilled with more dead tuple TIDs.

Hm, it's not really the array that overflows, it's m_w_m that'd be
exceeded, right?

/*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))

That's not really the minimum, no? s/MIN/INIT/?

+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;
+	ItemPointer dt_tids;	/* Array of dead tuples */
+}	DeadTuplesSegment;

Whenever padding is needed, it should have an explanatory comment. It's
certainly not obvious to me wh it's neede here.

@@ -1598,6 +1657,11 @@ lazy_vacuum_index(Relation indrel,
ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
ivinfo.strategy = vac_strategy;

+	/* Finalize the current segment by setting its upper bound dead tuple */
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+	if (seg->num_dead_tuples > 0)
+		seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];

Why don't we just maintain this here, for all of the segments? Seems a
bit easier.

@@ -1973,7 +2037,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
static void
lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
{
-	long		maxtuples;
+	long		maxtuples,
+				mintuples;
int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
autovacuum_work_mem != -1 ?
autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2047,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
{
maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));

/* curious coding here to ensure the multiplication can't overflow */
if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2060,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
maxtuples = MaxHeapTuplesPerPage;
}

-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 1;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+		palloc(sizeof(DeadTuplesSegment));
+	vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+		palloc(mintuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+	vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
}

Hm. Why don't we delay allocating dt_segments[0] till we actually need
it? It's not uncommon for vacuums not to be able to find any dead
tuples, and it'd not change code in lazy_record_dead_tuple() much.

@@ -2014,31 +2086,147 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
* could if we are given a really small maintenance_work_mem. In that
* case, just forget the last few tuples (we'll get 'em next time).
*/
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that. In any case,
+			 * we must update the last_dead_tuple copy in the overflowing
+			 * segment descriptor.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+			if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+			{
+				int			new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+				vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+							   (void *) vacrelstats->dead_tuples.dt_segments,
+								   new_num_segs * sizeof(DeadTuplesSegment));

Might be worth breaking this into some sub-statements, it's quite hard
to read.

+				while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+										 vacrelstats->dead_tuples.num_segs]);

dito.

+/*
*	lazy_tid_reaped() -- is a particular tid deletable?
*
*		This has the right signature to be an IndexBulkDeleteCallback.
*
- *		Assumes dead_tuples array is in sorted order.
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)

Have you done performance evaluation about potential performance
regressions in big indexes here? IIRC this can be quite frequently
called?

I think this is reasonably close to commit, but unfortunately not quite
there yet. I.e. I personally won't polish this up & commit in the next
couple hours, but if somebody else wants to take that on...

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#113Claudio Freire
klaussfreire@gmail.com
In reply to: Andres Freund (#112)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 5:05 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

The exponential strategy is mainly to improve lookup time (ie: to
avoid large segment lists).

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(N log N) lookup complexity.

N log N is a horrible lookup complexity. That's the complexity of
*sorting* an entire array. I think you might be trying to argue that
it's log(N) * log(N)? Once log(n) for the exponentially growing size of
segments, one for the binary search?

Afaics you could quite easily make it O(2 log(N)) by simply also doing
binary search over the segments. Might not be worth it due to the small
constant involved normally.

It's a typo, yes, I meant O(log N) (which is equivalent to O(2 log N))

+ * If the array threatens to overflow, we suspend the heap scan phase and
+ * perform a pass of index cleanup and page compaction, then resume the heap
+ * scan with an array of logically empty but already preallocated TID segments
+ * to be refilled with more dead tuple TIDs.

Hm, it's not really the array that overflows, it's m_w_m that'd be
exceeded, right?

Yes, will rephrase. Although that's how the original comment expressed
the same concept.

/*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_MIN_TUPLES              Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))

That's not really the minimum, no? s/MIN/INIT/?

Ok

+typedef struct DeadTuplesSegment
+{
+     int                     num_dead_tuples;        /* # of entries in the segment */
+     int                     max_dead_tuples;        /* # of entries allocated in the segment */
+     ItemPointerData last_dead_tuple;        /* Copy of the last dead tuple (unset
+                                                                              * until the segment is fully
+                                                                              * populated) */
+     unsigned short padding;
+     ItemPointer dt_tids;    /* Array of dead tuples */
+}    DeadTuplesSegment;

Whenever padding is needed, it should have an explanatory comment. It's
certainly not obvious to me wh it's neede here.

Ok

@@ -1598,6 +1657,11 @@ lazy_vacuum_index(Relation indrel,
ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
ivinfo.strategy = vac_strategy;

+     /* Finalize the current segment by setting its upper bound dead tuple */
+     seg = DeadTuplesCurrentSegment(vacrelstats);
+     if (seg->num_dead_tuples > 0)
+             seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];

Why don't we just maintain this here, for all of the segments? Seems a
bit easier.

Originally, I just wanted to maintain the validity of last_dead_tuple
as an invariant at all times. But it may be like you say, that it's
simpler to just maintain the invariant of all segments at finalization
time. I'll explore that possibility.

@@ -1973,7 +2037,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
static void
lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
{
-     long            maxtuples;
+     long            maxtuples,
+                             mintuples;
int                     vac_work_mem = IsAutoVacuumWorkerProcess() &&
autovacuum_work_mem != -1 ?
autovacuum_work_mem : maintenance_work_mem;
@@ -1982,7 +2047,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
{
maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
maxtuples = Min(maxtuples, INT_MAX);
-             maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));

/* curious coding here to ensure the multiplication can't overflow */
if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2060,18 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
maxtuples = MaxHeapTuplesPerPage;
}

-     vacrelstats->num_dead_tuples = 0;
-     vacrelstats->max_dead_tuples = (int) maxtuples;
-     vacrelstats->dead_tuples = (ItemPointer)
-             palloc(maxtuples * sizeof(ItemPointerData));
+     mintuples = Min(LAZY_MIN_TUPLES, maxtuples);
+
+     vacrelstats->dead_tuples.num_entries = 0;
+     vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+     vacrelstats->dead_tuples.num_segs = 1;
+     vacrelstats->dead_tuples.last_seg = 0;
+     vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+             palloc(sizeof(DeadTuplesSegment));
+     vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+             palloc(mintuples * sizeof(ItemPointerData));
+     vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+     vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
}

Hm. Why don't we delay allocating dt_segments[0] till we actually need
it? It's not uncommon for vacuums not to be able to find any dead
tuples, and it'd not change code in lazy_record_dead_tuple() much.

I avoided that because that would make dt_segments[last_seg] invalid
for the case of a just-initialized multiarray.

Some places in the code use a macro that references
dt_segments[last_seg] (mostly for indexless tables), and having to
check num_segs and do lazy initialization would have complicated the
code considerably.

Nonetheless, I'll re-check how viable doing that would be.

@@ -2014,31 +2086,147 @@ lazy_record_dead_tuple(LVRelStats *vacrelstats,
* could if we are given a really small maintenance_work_mem. In that
* case, just forget the last few tuples (we'll get 'em next time).
*/
-     if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+     if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
{
-             vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-             vacrelstats->num_dead_tuples++;
+             DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+             if (seg->num_dead_tuples >= seg->max_dead_tuples)
+             {
+                     /*
+                      * The segment is overflowing, so we must allocate a new segment.
+                      * We could have a preallocated segment descriptor already, in
+                      * which case we just reinitialize it, or we may need to repalloc
+                      * the vacrelstats->dead_tuples array. In that case, seg will no
+                      * longer be valid, so we must be careful about that. In any case,
+                      * we must update the last_dead_tuple copy in the overflowing
+                      * segment descriptor.
+                      */
+                     Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+                     seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+                     if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+                     {
+                             int                     new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+                             vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+                                                        (void *) vacrelstats->dead_tuples.dt_segments,
+                                                                new_num_segs * sizeof(DeadTuplesSegment));

Might be worth breaking this into some sub-statements, it's quite hard
to read.

Breaking what precisely? The comment?

+                             while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+                             {
+                                     /* Initialize as "unallocated" */
+                                     DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+                                                                              vacrelstats->dead_tuples.num_segs]);

dito.

I don't really get what you're asking here.

+/*
*   lazy_tid_reaped() -- is a particular tid deletable?
*
*           This has the right signature to be an IndexBulkDeleteCallback.
*
- *           Assumes dead_tuples array is in sorted order.
+ *           Assumes the dead_tuples multiarray is in sorted order, both
+ *           the segment list and each segment itself, and that all segments'
+ *           last_dead_tuple fields up to date
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)

Have you done performance evaluation about potential performance
regressions in big indexes here? IIRC this can be quite frequently
called?

Yes, the benchmarks are upthread. The earlier runs were run on my
laptop and made little sense, so I'd ignore them as inaccurate. The
latest run[1]/messages/by-id/CAGTBQpa6NFGO_6g_y_7zQx8L9GcHDSQKYdo1tGuh791z6PYgEg@mail.gmail.com with a pgbench scale of 4000 gave an improvement in CPU
time (ie: faster) of about 20%. Anastasia did another one[2]/messages/by-id/13bee467-bdcf-d3b9-c0ee-e2792fd46839@postgrespro.ru and saw
improvements as well, roughly 30%, though it's not measuring CPU time
but rather elapsed time.

Even small scales (100) saw an improvement as well, although possibly
below the noise floor. Tests are very slow so I haven't run enough to
measure variance and statistical significance.

I blame the improvement not only on better cache locality (the initial
search on the segment list usually fits on L1) but also on less
overall work due to needing less index scans, and the fact that
overall lookup complexity remains O(log N) due to the exponential
segment growth strategy.

[1]: /messages/by-id/CAGTBQpa6NFGO_6g_y_7zQx8L9GcHDSQKYdo1tGuh791z6PYgEg@mail.gmail.com
[2]: /messages/by-id/13bee467-bdcf-d3b9-c0ee-e2792fd46839@postgrespro.ru

I think this is reasonably close to commit, but unfortunately not quite
there yet. I.e. I personally won't polish this up & commit in the next
couple hours, but if somebody else wants to take that on...

Greetings,

Andres Freund

I'll post an updated patch with the requested changes shortly.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#114Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#113)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 7:43 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(N log N) lookup complexity.

N log N is a horrible lookup complexity. That's the complexity of
*sorting* an entire array. I think you might be trying to argue that
it's log(N) * log(N)? Once log(n) for the exponentially growing size of
segments, one for the binary search?

Afaics you could quite easily make it O(2 log(N)) by simply also doing
binary search over the segments. Might not be worth it due to the small
constant involved normally.

It's a typo, yes, I meant O(log N) (which is equivalent to O(2 log N))

To clarify, lookup over the segments is linear, so it's O(M) with M
the number of segments, then the binary search is O(log N) with N the
number of dead tuples.

So lookup is O(M + log N), but M < log N because of the segment's
exponential growth, therefore the lookup is O(2 log N)

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#115Andres Freund
andres@anarazel.de
In reply to: Claudio Freire (#113)
Re: Vacuum: allow usage of more than 1GB of work mem

Hi,

On 2017-04-07 19:43:39 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 5:05 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

The exponential strategy is mainly to improve lookup time (ie: to
avoid large segment lists).

Well, if we were to do binary search on the segment list, that'd not be
necessary.

+             if (seg->num_dead_tuples >= seg->max_dead_tuples)
+             {
+                     /*
+                      * The segment is overflowing, so we must allocate a new segment.
+                      * We could have a preallocated segment descriptor already, in
+                      * which case we just reinitialize it, or we may need to repalloc
+                      * the vacrelstats->dead_tuples array. In that case, seg will no
+                      * longer be valid, so we must be careful about that. In any case,
+                      * we must update the last_dead_tuple copy in the overflowing
+                      * segment descriptor.
+                      */
+                     Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+                     seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+                     if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+                     {
+                             int                     new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+                             vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+                                                        (void *) vacrelstats->dead_tuples.dt_segments,
+                                                                new_num_segs * sizeof(DeadTuplesSegment));

Might be worth breaking this into some sub-statements, it's quite hard
to read.

Breaking what precisely? The comment?

No, the three-line statement computing the new value of
dead_tuples.dt_segments. I'd at least assign dead_tuples to a local
variable, to cut the length of the statement down.

+                             while (vacrelstats->dead_tuples.num_segs < new_num_segs)
+                             {
+                                     /* Initialize as "unallocated" */
+                                     DeadTuplesSegment *nseg = &(vacrelstats->dead_tuples.dt_segments[
+                                                                              vacrelstats->dead_tuples.num_segs]);

dito.

I don't really get what you're asking here.

Trying to simplify/shorten the statement.

+/*
*   lazy_tid_reaped() -- is a particular tid deletable?
*
*           This has the right signature to be an IndexBulkDeleteCallback.
*
- *           Assumes dead_tuples array is in sorted order.
+ *           Assumes the dead_tuples multiarray is in sorted order, both
+ *           the segment list and each segment itself, and that all segments'
+ *           last_dead_tuple fields up to date
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)

Have you done performance evaluation about potential performance
regressions in big indexes here? IIRC this can be quite frequently
called?

Yes, the benchmarks are upthread. The earlier runs were run on my
laptop and made little sense, so I'd ignore them as inaccurate. The
latest run[1] with a pgbench scale of 4000 gave an improvement in CPU
time (ie: faster) of about 20%. Anastasia did another one[2] and saw
improvements as well, roughly 30%, though it's not measuring CPU time
but rather elapsed time.

I'd be more concerned about cases that'd already fit into memory, not ones
where we avoid doing another scan - and I think you mostly measured that?

- Andres

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#116Claudio Freire
klaussfreire@gmail.com
In reply to: Andres Freund (#115)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 9:56 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

On 2017-04-07 19:43:39 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 5:05 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

The exponential strategy is mainly to improve lookup time (ie: to
avoid large segment lists).

Well, if we were to do binary search on the segment list, that'd not be
necessary.

True, but the initial lookup might be slower in the end, since the
array would be bigger and cache locality worse.

Why do you say exponential growth fragments memory? AFAIK, all those
allocations are well beyond the point where malloc starts mmaping
memory, so each of those segments should be a mmap segment,
independently freeable.

+             if (seg->num_dead_tuples >= seg->max_dead_tuples)
+             {
+                     /*
+                      * The segment is overflowing, so we must allocate a new segment.
+                      * We could have a preallocated segment descriptor already, in
+                      * which case we just reinitialize it, or we may need to repalloc
+                      * the vacrelstats->dead_tuples array. In that case, seg will no
+                      * longer be valid, so we must be careful about that. In any case,
+                      * we must update the last_dead_tuple copy in the overflowing
+                      * segment descriptor.
+                      */
+                     Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+                     seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+                     if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+                     {
+                             int                     new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+                             vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+                                                        (void *) vacrelstats->dead_tuples.dt_segments,
+                                                                new_num_segs * sizeof(DeadTuplesSegment));

Might be worth breaking this into some sub-statements, it's quite hard
to read.

Breaking what precisely? The comment?

No, the three-line statement computing the new value of
dead_tuples.dt_segments. I'd at least assign dead_tuples to a local
variable, to cut the length of the statement down.

Ah, alright. Will try to do that.

+/*
*   lazy_tid_reaped() -- is a particular tid deletable?
*
*           This has the right signature to be an IndexBulkDeleteCallback.
*
- *           Assumes dead_tuples array is in sorted order.
+ *           Assumes the dead_tuples multiarray is in sorted order, both
+ *           the segment list and each segment itself, and that all segments'
+ *           last_dead_tuple fields up to date
*/
static bool
lazy_tid_reaped(ItemPointer itemptr, void *state)

Have you done performance evaluation about potential performance
regressions in big indexes here? IIRC this can be quite frequently
called?

Yes, the benchmarks are upthread. The earlier runs were run on my
laptop and made little sense, so I'd ignore them as inaccurate. The
latest run[1] with a pgbench scale of 4000 gave an improvement in CPU
time (ie: faster) of about 20%. Anastasia did another one[2] and saw
improvements as well, roughly 30%, though it's not measuring CPU time
but rather elapsed time.

I'd be more concerned about cases that'd already fit into memory, not ones
where we avoid doing another scan - and I think you mostly measured that?

- Andres

Well, scale 400 is pretty much as big as you can get with the old 1GB
limit, and also suffered no significant regression. Although, true, id
didn't significantly improve either.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#117Andres Freund
andres@anarazel.de
In reply to: Claudio Freire (#116)
Re: Vacuum: allow usage of more than 1GB of work mem

On 2017-04-07 22:06:13 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 9:56 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

On 2017-04-07 19:43:39 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 5:05 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

The exponential strategy is mainly to improve lookup time (ie: to
avoid large segment lists).

Well, if we were to do binary search on the segment list, that'd not be
necessary.

True, but the initial lookup might be slower in the end, since the
array would be bigger and cache locality worse.

Why do you say exponential growth fragments memory? AFAIK, all those
allocations are well beyond the point where malloc starts mmaping
memory, so each of those segments should be a mmap segment,
independently freeable.

Not all platforms have that, and even on platforms with it, frequent,
unevenly sized, very large allocations can lead to enough fragmentation
that further allocations are harder and fragment / enlarge the
pagetable.

Yes, the benchmarks are upthread. The earlier runs were run on my
laptop and made little sense, so I'd ignore them as inaccurate. The
latest run[1] with a pgbench scale of 4000 gave an improvement in CPU
time (ie: faster) of about 20%. Anastasia did another one[2] and saw
improvements as well, roughly 30%, though it's not measuring CPU time
but rather elapsed time.

I'd be more concerned about cases that'd already fit into memory, not ones
where we avoid doing another scan - and I think you mostly measured that?

- Andres

Well, scale 400 is pretty much as big as you can get with the old 1GB
limit, and also suffered no significant regression. Although, true, id
didn't significantly improve either.

Aren't more interesting cases those where not that many dead tuples are
found, but the indexes are pretty large? IIRC the index vacuum scans
still visit every leaf index tuple, no?

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#118Claudio Freire
klaussfreire@gmail.com
In reply to: Andres Freund (#117)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 10:12 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-04-07 22:06:13 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 9:56 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

On 2017-04-07 19:43:39 -0300, Claudio Freire wrote:

On Fri, Apr 7, 2017 at 5:05 PM, Andres Freund <andres@anarazel.de> wrote:

Hi,

I've *not* read the history of this thread. So I really might be
missing some context.

From e37d29c26210a0f23cd2e9fe18a264312fecd383 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

* We are willing to use at most maintenance_work_mem (or perhaps
* autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
* depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.

When the chunk size is 128MB, I'm a bit unconvinced that using
exponential growth is worth it. The allocator overhead can't be
meaningful in comparison to collecting 128MB dead tuples, the potential
waste is pretty big, and it increases memory fragmentation.

The exponential strategy is mainly to improve lookup time (ie: to
avoid large segment lists).

Well, if we were to do binary search on the segment list, that'd not be
necessary.

True, but the initial lookup might be slower in the end, since the
array would be bigger and cache locality worse.

Why do you say exponential growth fragments memory? AFAIK, all those
allocations are well beyond the point where malloc starts mmaping
memory, so each of those segments should be a mmap segment,
independently freeable.

Not all platforms have that, and even on platforms with it, frequent,
unevenly sized, very large allocations can lead to enough fragmentation
that further allocations are harder and fragment / enlarge the
pagetable.

I wouldn't call this frequent. You can get at most slightly more than
a dozen such allocations given the current limits.
And allocation sizes are quite regular - you get 128M or multiples of
128M, so each free block can be reused for N smaller allocations if
needed. I don't think it has much potential to fragment memory.

This isn't significantly different from tuplesort or any other code
that can do big allocations, and the differences favor less
fragmentation than those, so I don't see why this would need special
treatment.

My point being that it's not been simple getting to a point where this
beats even in CPU time the original single binary search.
If we're to scrap this implementation and go for a double binary
search, I'd like to have a clear measurable benefit to chase from
doing so. Fragmentation is hard to measure, and I cannot get CPU-bound
vacuums on the test hardware I have to test lookup performance at big
scales.

Yes, the benchmarks are upthread. The earlier runs were run on my
laptop and made little sense, so I'd ignore them as inaccurate. The
latest run[1] with a pgbench scale of 4000 gave an improvement in CPU
time (ie: faster) of about 20%. Anastasia did another one[2] and saw
improvements as well, roughly 30%, though it's not measuring CPU time
but rather elapsed time.

I'd be more concerned about cases that'd already fit into memory, not ones
where we avoid doing another scan - and I think you mostly measured that?

- Andres

Well, scale 400 is pretty much as big as you can get with the old 1GB
limit, and also suffered no significant regression. Although, true, id
didn't significantly improve either.

Aren't more interesting cases those where not that many dead tuples are
found, but the indexes are pretty large? IIRC the index vacuum scans
still visit every leaf index tuple, no?

Indeed they do, and that's what motivated this patch. But I'd need
TB-sized tables to set up something like that. I don't have the
hardware or time available to do that (vacuum on bloated TB-sized
tables can take days in my experience). Scale 4000 is as big as I can
get without running out of space for the tests in my test hardware.

If anybody else has the ability, I'd be thankful if they did test it
under those conditions, but I cannot. I think Anastasia's test is
closer to such a test, that's probably why it shows a bigger
improvement in total elapsed time.

Our production database could possibly be used, but it can take about
a week to clone it, upgrade it (it's 9.5 currently), and run the
relevant vacuum.

I did perform tests against the same pgbench databases referenced in
the post I linked earlier, but deleting only a fraction of the rows,
or on uncorrelated indexes. The benchmarks weren't very interesting,
and results were consistent with the linked benchmark (slight CPU time
improvement, just less impactful), so I didn't post them.

I think all those tests show that, if there's a workload that
regresses, it's a rare one, running on very powerful I/O hardware (to
make vacuum CPU-bound). And even if that were to happen, considering a
single (or fewer) index scan, even if slower, will cause less WAL
traffic that has to be archived/streamed, it would still most likely
be a win overall.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#119Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#116)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 10:06 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

+             if (seg->num_dead_tuples >= seg->max_dead_tuples)
+             {
+                     /*
+                      * The segment is overflowing, so we must allocate a new segment.
+                      * We could have a preallocated segment descriptor already, in
+                      * which case we just reinitialize it, or we may need to repalloc
+                      * the vacrelstats->dead_tuples array. In that case, seg will no
+                      * longer be valid, so we must be careful about that. In any case,
+                      * we must update the last_dead_tuple copy in the overflowing
+                      * segment descriptor.
+                      */
+                     Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+                     seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+                     if (vacrelstats->dead_tuples.last_seg + 1 >= vacrelstats->dead_tuples.num_segs)
+                     {
+                             int                     new_num_segs = vacrelstats->dead_tuples.num_segs * 2;
+
+                             vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *) repalloc(
+                                                        (void *) vacrelstats->dead_tuples.dt_segments,
+                                                                new_num_segs * sizeof(DeadTuplesSegment));

Might be worth breaking this into some sub-statements, it's quite hard
to read.

Breaking what precisely? The comment?

No, the three-line statement computing the new value of
dead_tuples.dt_segments. I'd at least assign dead_tuples to a local
variable, to cut the length of the statement down.

Ah, alright. Will try to do that.

Attached is an updated patch set with the requested changes.

Segment allocation still follows the exponential strategy, and segment
lookup is still linear.

I rebased the early free patch (patch 3) to apply on top of the v9
patch 2 (it needed some changes). I recognize the early free patch
didn't get nearly as much scrutiny, so I'm fine with commiting only 2
if that one's ready to go but 3 isn't.

If it's decided to go for fixed 128M segments and a binary search of
segments, I don't think I can get that ready and tested before the
commitfest ends.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v9.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v9.patchDownload
From 9b8f90f19d558a7e6a32cb253d89819f7c300598 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 346 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 +
 3 files changed, 299 insertions(+), 65 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 005440e..4f0cf1b 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -12,11 +12,25 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity (2 log N to be
+ * precise).
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -93,6 +107,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +126,33 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated) */
+	unsigned short padding;		/* Align dt_tids to 32-bits,
+								 * sizeof(ItemPointerData) is aligned to
+								 * short, so add a padding short, to make the
+								 * size of DeadTuplesSegment a multiple of
+								 * 32-bits and align integer components for
+								 * better performance during lookups into the
+								 * multiarray */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +172,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dt_segments[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +204,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +212,9 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
+static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -504,7 +554,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -683,8 +733,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -735,7 +785,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -917,7 +967,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1129,10 +1179,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(vacrelstats->dead_tuples.num_segs > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1140,7 +1196,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1243,7 +1299,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1274,7 +1330,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1368,43 +1424,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dt_segments[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1416,7 +1485,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1427,34 +1496,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1588,6 +1659,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1598,6 +1671,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (vacrelstats->dead_tuples.num_segs == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = &vacrelstats->dead_tuples.dt_segments[n];
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1605,7 +1692,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1900,8 +1987,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 		/* If we haven't prefetched this lot yet, do so now. */
 		if (prefetchedUntil > blkno)
 		{
-			BlockNumber	prefetchStart;
-			BlockNumber	pblkno;
+			BlockNumber prefetchStart;
+			BlockNumber pblkno;
 
 			prefetchStart = blkno & ~(PREFETCH_SIZE - 1);
 			for (pblkno = prefetchStart; pblkno <= blkno; pblkno++)
@@ -1982,7 +2069,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -1996,10 +2082,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2009,36 +2096,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (vacrelstats->dead_tuples.num_segs == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dt_segments[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
  */
 static bool
 lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
 	ItemPointer res;
+	DeadTuplesSegment *seg,
+			   *rseg;
+	int			nseg,
+				last_seg,
+				rcomp;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/*
+	 * Do a sequential search to find the first segment that could contain the
+	 * item pointer. Given the number of segments involved, binary search
+	 * would be pointless.
+	 */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	rseg = NULL;
+	last_seg = vacrelstats->dead_tuples.last_seg;
+	for (nseg = 0; nseg <= last_seg; nseg++, seg++)
+	{
+		rcomp = vac_cmp_itemptr((void *) itemptr, (void *) &(seg->last_dead_tuple));
+
+		if (rcomp == 0)
+		{
+			/* Found it, what are the chances! */
+			return true;
+		}
+		else if (rcomp < 0)
+		{
+			/* Found the right segment, further segments won't overlap */
+			rseg = seg;
+			break;
+		}
+	}
+	if (rseg == NULL || rseg->num_dead_tuples == 0)
+		return false;
+
+	/*
+	 * Quickly rule out by lower bound (should happen a lot) Upper bound was
+	 * already checked by segment search
+	 */
+	rcomp = vac_cmp_itemptr((void *) itemptr, (void *) rseg->dt_tids);
+	if (rcomp < 0)
+		return false;
+	else if (rcomp == 0)
+		return true;
 
 	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
+								(void *) rseg->dt_tids,
+								rseg->num_dead_tuples,
 								sizeof(ItemPointerData),
 								vac_cmp_itemptr);
 
@@ -2048,7 +2264,7 @@ lazy_tid_reaped(ItemPointer itemptr, void *state)
 /*
  * Comparator routines for use with qsort() and bsearch().
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 9b604be..7198fe4 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,4 +81,12 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7b819f6..dcec617 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,4 +63,14 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v2.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v2.patchDownload
From 61cc443443c2126dd2232e13f68f541166af5ddc Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 4f0cf1b..d82aa7c 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -213,6 +213,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static inline int vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
@@ -1368,6 +1369,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2193,6 +2197,25 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		pfree(vacrelstats->dead_tuples.dt_segments[nseg].dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
-- 
1.8.4.5

#120David Steele
david@pgmasters.net
In reply to: Claudio Freire (#119)
Re: Vacuum: allow usage of more than 1GB of work mem

On 4/7/17 10:19 PM, Claudio Freire wrote:

I rebased the early free patch (patch 3) to apply on top of the v9
patch 2 (it needed some changes). I recognize the early free patch
didn't get nearly as much scrutiny, so I'm fine with commiting only 2
if that one's ready to go but 3 isn't.

If it's decided to go for fixed 128M segments and a binary search of
segments, I don't think I can get that ready and tested before the
commitfest ends.

This submission has been moved to CF 2017-07.

--
-David
david@pgmasters.net

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#121Robert Haas
robertmhaas@gmail.com
In reply to: Andres Freund (#117)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 9:12 PM, Andres Freund <andres@anarazel.de> wrote:

Why do you say exponential growth fragments memory? AFAIK, all those
allocations are well beyond the point where malloc starts mmaping
memory, so each of those segments should be a mmap segment,
independently freeable.

Not all platforms have that, and even on platforms with it, frequent,
unevenly sized, very large allocations can lead to enough fragmentation
that further allocations are harder and fragment / enlarge the
pagetable.

Such a thing is completely outside my personal experience. I've never
heard of a case where a 64-bit platform fails to allocate memory
because something (what?) is fragmented. Page table memory usage is a
concern at some level, but probably less so for autovacuum workers
than for most backends, because autovacuum workers (where most
vacuuming is done) exit after one pass through pg_class. Although I
think our memory footprint is a topic that could use more energy, I
don't really see any reason to think that pagetable bloat caused my
unevenly sized allocations in short-lived processes is the place to
start worrying.

That having been said, IIRC, I did propose quite a ways upthread that
we use a fixed chunk size, just because it would use less actual
memory, never mind the size of the page table. I mean, if you
allocate in chunks of 64MB, which I think is what I proposed, you'll
never waste more than 64MB. If you allocate in
exponentially-increasing chunk sizes starting at 128MB, you could
easily waste much more. Let's imagine a 1TB table where 20% of the
tuples are dead due to some large bulk operation (a bulk load failed,
or a bulk delete succeeded, or a bulk update happened). Back of the
envelope calculation:

1TB / 8kB per page * 60 tuples/page * 20% * 6 bytes/tuple = 9216MB of
maintenance_work_mem

So we'll allocate 128MB+256MB+512MB+1GB+2GB+4GB which won't be quite
enough so we'll allocate another 8GB, for a total of 16256MB, but more
than three-quarters of that last allocation ends up being wasted.
I've been told on this list before that doubling is the one true way
of increasing the size of an allocated chunk of memory, but I'm still
a bit unconvinced.

On the other hand, if we did allocate fixed chunks of, say, 64MB, we
could end up with an awful lot of them. For example, in the example
above, 9216MB/64MB = 144 chunks. Is that number of mappings going to
make the VM system unhappy on any of the platforms we care about? Is
that a bigger or smaller problem than what you (Andres) are worrying
about? I don't know.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#122Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#121)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 11, 2017 at 3:53 PM, Robert Haas <robertmhaas@gmail.com> wrote:

1TB / 8kB per page * 60 tuples/page * 20% * 6 bytes/tuple = 9216MB of
maintenance_work_mem

So we'll allocate 128MB+256MB+512MB+1GB+2GB+4GB which won't be quite
enough so we'll allocate another 8GB, for a total of 16256MB, but more
than three-quarters of that last allocation ends up being wasted.
I've been told on this list before that doubling is the one true way
of increasing the size of an allocated chunk of memory, but I'm still
a bit unconvinced.

There you're wrong. The allocation is capped to 1GB, so wastage has an
upper bound of 1GB.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#123Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#122)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 11, 2017 at 3:59 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Apr 11, 2017 at 3:53 PM, Robert Haas <robertmhaas@gmail.com> wrote:

1TB / 8kB per page * 60 tuples/page * 20% * 6 bytes/tuple = 9216MB of
maintenance_work_mem

So we'll allocate 128MB+256MB+512MB+1GB+2GB+4GB which won't be quite
enough so we'll allocate another 8GB, for a total of 16256MB, but more
than three-quarters of that last allocation ends up being wasted.
I've been told on this list before that doubling is the one true way
of increasing the size of an allocated chunk of memory, but I'm still
a bit unconvinced.

There you're wrong. The allocation is capped to 1GB, so wastage has an
upper bound of 1GB.

And total m_w_m for vacuum is still capped to 12GB (as big you can get
with 32-bit integer indices).

So you can get at most 15 segments (a binary search is thus not worth
it), and overallocate by at most 1GB (the maximum segment size).

At least that's my rationale.

Removing the 12GB limit requires a bit of care (there are some 32-bit
counters still around I believe).

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#124Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#122)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 11, 2017 at 2:59 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Apr 11, 2017 at 3:53 PM, Robert Haas <robertmhaas@gmail.com> wrote:

1TB / 8kB per page * 60 tuples/page * 20% * 6 bytes/tuple = 9216MB of
maintenance_work_mem

So we'll allocate 128MB+256MB+512MB+1GB+2GB+4GB which won't be quite
enough so we'll allocate another 8GB, for a total of 16256MB, but more
than three-quarters of that last allocation ends up being wasted.
I've been told on this list before that doubling is the one true way
of increasing the size of an allocated chunk of memory, but I'm still
a bit unconvinced.

There you're wrong. The allocation is capped to 1GB, so wastage has an
upper bound of 1GB.

Ah, OK. Sorry, didn't really look at the code. I stand corrected,
but then it seems a bit strange to me that the largest and smallest
allocations are only 8x different. I still don't really understand
what that buys us. What would we lose if we just made 'em all 128MB?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#125Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#124)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 11, 2017 at 4:17 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Apr 11, 2017 at 2:59 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Apr 11, 2017 at 3:53 PM, Robert Haas <robertmhaas@gmail.com> wrote:

1TB / 8kB per page * 60 tuples/page * 20% * 6 bytes/tuple = 9216MB of
maintenance_work_mem

So we'll allocate 128MB+256MB+512MB+1GB+2GB+4GB which won't be quite
enough so we'll allocate another 8GB, for a total of 16256MB, but more
than three-quarters of that last allocation ends up being wasted.
I've been told on this list before that doubling is the one true way
of increasing the size of an allocated chunk of memory, but I'm still
a bit unconvinced.

There you're wrong. The allocation is capped to 1GB, so wastage has an
upper bound of 1GB.

Ah, OK. Sorry, didn't really look at the code. I stand corrected,
but then it seems a bit strange to me that the largest and smallest
allocations are only 8x different. I still don't really understand
what that buys us.

Basically, attacking the problem (that, I think, you mentioned) of
very small systems in which overallocation for small vacuums was an
issue.

The "slow start" behavior of starting with smaller segments tries to
improve the situation for small vacuums, not big ones.

By starting at 128M and growing up to 1GB, overallocation is bound to
the range 128M-1GB and is proportional to the amount of dead tuples,
not table size, as it was before. Starting at 128M helps the initial
segment search, but I could readily go for starting at 64M, I don't
think it would make a huge difference. Removing exponential growth,
however, would.

As the patch stands, small systems (say 32-bit systems) without
overcommit and with slowly-changing data can now set high m_w_m
without running into overallocation issues with autovacuum reserving
too much virtual space, as it will reserve memory only proportional to
the amount of dead tuples. Previously, it would reserve all of m_w_m
regardless of whether it was needed or not, with the only exception
being really small tables, so m_w_m=1GB was unworkable in those cases.
Now it should be fine.

What would we lose if we just made 'em all 128MB?

TBH, not that much. We'd need 8x compares to find the segment, that
forces a switch to binary search of the segments, which is less
cache-friendly. So it's more complex code, less cache locality. I'm
just not sure what's the benefit given current limits.

The only aim of this multiarray approach was making *virtual address
space reservations* proportional to the amount of actual memory
needed, as opposed to configured limits. It doesn't need to be a tight
fit, because calling palloc on its own doesn't actually use that
memory, at least on big allocations like these - the OS will not map
the memory pages until they're first touched. That's true in most
modern systems, and many ancient ones too.

In essence, the patch as it is proposed, doesn't *need* a binary
search, because the segment list can only grow up to 15 segments at
its biggest, and that's a size small enough that linear search will
outperform (or at least perform as well as) binary search. Reducing
the initial segment size wouldn't change that. If the 12GB limit is
lifted, or the maximum segment size reduced (from 1GB to 128MB for
example), however, that would change.

I'd be more in favor of lifting the 12GB limit than of reducing the
maximum segment size, for the reasons above. Raising the 12GB limit
has concrete and readily apparent benefits, whereas using bigger (or
smaller) segments is far more debatable. Yes, that will need a binary
search. But, I was hoping that could be a second (or third) patch, to
keep things simple, and benefits measurable.

Also, the plan as discussed in this very long thread, was to
eventually try to turn segments into bitmaps if dead tuple density was
big enough. That benefits considerably from big segments, since lookup
on a bitmap is O(1) - the bigger the segments, the faster the lookup,
as the search on the segment list would be dominant.

So... what shall we do?

At this point, I've given all my arguments for the current design. If
the more senior developers don't agree, I'll be happy to try your way.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#126Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#125)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 11, 2017 at 4:38 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

In essence, the patch as it is proposed, doesn't *need* a binary
search, because the segment list can only grow up to 15 segments at
its biggest, and that's a size small enough that linear search will
outperform (or at least perform as well as) binary search. Reducing
the initial segment size wouldn't change that. If the 12GB limit is
lifted, or the maximum segment size reduced (from 1GB to 128MB for
example), however, that would change.

I'd be more in favor of lifting the 12GB limit than of reducing the
maximum segment size, for the reasons above. Raising the 12GB limit
has concrete and readily apparent benefits, whereas using bigger (or
smaller) segments is far more debatable. Yes, that will need a binary
search. But, I was hoping that could be a second (or third) patch, to
keep things simple, and benefits measurable.

To me, it seems a bit short-sighted to say, OK, let's use a linear
search because there's this 12GB limit so we can limit ourselves to 15
segments. Because somebody will want to remove that 12GB limit, and
then we'll have to revisit the whole thing anyway. I think, anyway.

What's not clear to me is how sensitive the performance of vacuum is
to the number of cycles used here. For a large index, the number of
searches will presumably be quite large, so it does seem worth
worrying about performance. But if we just always used a binary
search, would that lose enough performance with small numbers of
segments that anyone would care? If so, maybe we need to use linear
search for small numbers of segments and switch to binary search with
larger numbers of segments.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#127Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#126)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Wed, Apr 12, 2017 at 4:35 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Apr 11, 2017 at 4:38 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

In essence, the patch as it is proposed, doesn't *need* a binary
search, because the segment list can only grow up to 15 segments at
its biggest, and that's a size small enough that linear search will
outperform (or at least perform as well as) binary search. Reducing
the initial segment size wouldn't change that. If the 12GB limit is
lifted, or the maximum segment size reduced (from 1GB to 128MB for
example), however, that would change.

I'd be more in favor of lifting the 12GB limit than of reducing the
maximum segment size, for the reasons above. Raising the 12GB limit
has concrete and readily apparent benefits, whereas using bigger (or
smaller) segments is far more debatable. Yes, that will need a binary
search. But, I was hoping that could be a second (or third) patch, to
keep things simple, and benefits measurable.

To me, it seems a bit short-sighted to say, OK, let's use a linear
search because there's this 12GB limit so we can limit ourselves to 15
segments. Because somebody will want to remove that 12GB limit, and
then we'll have to revisit the whole thing anyway. I think, anyway.

Ok, attached an updated patch that implements the binary search

What's not clear to me is how sensitive the performance of vacuum is
to the number of cycles used here. For a large index, the number of
searches will presumably be quite large, so it does seem worth
worrying about performance. But if we just always used a binary
search, would that lose enough performance with small numbers of
segments that anyone would care? If so, maybe we need to use linear
search for small numbers of segments and switch to binary search with
larger numbers of segments.

I just went and tested.

I implemented the hybrid binary search attached, and ran a few tests
with and without the sequential code enabled, at small scales.

The difference is statistically significant, but small (less than 3%).
With proper optimization of the binary search, however, the difference
flips:

claudiofreire@klaumpp:~/src/postgresql.vacuum> fgrep shufp80
fullbinary.s100.times
vacuum_bench_s100.1.shufp80.log:CPU: user: 6.20 s, system: 1.42 s,
elapsed: 18.34 s.
vacuum_bench_s100.2.shufp80.log:CPU: user: 6.44 s, system: 1.40 s,
elapsed: 19.75 s.
vacuum_bench_s100.3.shufp80.log:CPU: user: 6.28 s, system: 1.41 s,
elapsed: 18.48 s.
vacuum_bench_s100.4.shufp80.log:CPU: user: 6.39 s, system: 1.51 s,
elapsed: 20.60 s.
vacuum_bench_s100.5.shufp80.log:CPU: user: 6.26 s, system: 1.42 s,
elapsed: 19.16 s.

claudiofreire@klaumpp:~/src/postgresql.vacuum> fgrep shufp80
hybridbinary.s100.times
vacuum_bench_s100.1.shufp80.log:CPU: user: 6.49 s, system: 1.39 s,
elapsed: 19.15 s.
vacuum_bench_s100.2.shufp80.log:CPU: user: 6.36 s, system: 1.33 s,
elapsed: 18.40 s.
vacuum_bench_s100.3.shufp80.log:CPU: user: 6.36 s, system: 1.31 s,
elapsed: 18.87 s.
vacuum_bench_s100.4.shufp80.log:CPU: user: 6.59 s, system: 1.35 s,
elapsed: 26.43 s.
vacuum_bench_s100.5.shufp80.log:CPU: user: 6.54 s, system: 1.28 s,
elapsed: 20.02 s.

That's after inlining the compare on both the linear and sequential
code, and it seems it lets the compiler optimize the binary search to
the point where it outperforms the sequential search.

That's not the case when the compare isn't inlined.

That seems in line with [1]https://schani.wordpress.com/2010/04/30/linear-vs-binary-search/, that show the impact of various
optimizations on both algorithms. It's clearly a close enough race
that optimizations play a huge role.

Since we're not likely to go and implement SSE2-optimized versions, I
believe I'll leave the binary search only. That's the attached patch
set.

I'm running the full test suite, but that takes a very long while.
I'll post the results when they're done.

[1]: https://schani.wordpress.com/2010/04/30/linear-vs-binary-search/

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v10.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v10.patchDownload
From 709428f67960dd20eaf34846a0b579766e0701f6 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.
---
 src/backend/commands/vacuumlazy.c    | 408 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |   8 +
 src/test/regress/sql/vacuum.sql      |  10 +
 3 files changed, 350 insertions(+), 76 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 5b43a66..ddf19d7 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -12,11 +12,25 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity (2 log N to be
+ * precise).
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -93,6 +107,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -104,6 +126,34 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	unsigned short padding;		/* Align dt_tids to 32-bits,
+								 * sizeof(ItemPointerData) is aligned to
+								 * short, so add a padding short, to make the
+								 * size of DeadTuplesSegment a multiple of
+								 * 32-bits and align integer components for
+								 * better performance during lookups into the
+								 * multiarray */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -124,14 +174,14 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define DeadTuplesCurrentSegment(lvrelstats) (&((lvrelstats)->dead_tuples.dt_segments[ \
+	(lvrelstats)->dead_tuples.last_seg ]))
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -156,7 +206,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -164,8 +214,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -511,7 +561,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -690,8 +740,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -742,7 +792,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -925,7 +975,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1137,10 +1187,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(vacrelstats->dead_tuples.num_segs > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1148,7 +1204,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1251,7 +1307,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1282,7 +1338,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1380,43 +1436,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
-
-		vacuum_delay_point();
+		DeadTuplesSegment *seg = &(vacrelstats->dead_tuples.dt_segments[segindex]);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1428,7 +1497,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail("%s.",
 					   pg_rusage_show(&ru0))));
 }
@@ -1439,34 +1508,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1600,6 +1671,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1610,6 +1683,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (vacrelstats->dead_tuples.num_segs == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = &vacrelstats->dead_tuples.dt_segments[n];
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1617,7 +1704,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail("%s.", pg_rusage_show(&ru0))));
 }
 
@@ -1912,8 +1999,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 		/* If we haven't prefetched this lot yet, do so now. */
 		if (prefetchedUntil > blkno)
 		{
-			BlockNumber	prefetchStart;
-			BlockNumber	pblkno;
+			BlockNumber prefetchStart;
+			BlockNumber pblkno;
 
 			prefetchStart = blkno & ~(PREFETCH_SIZE - 1);
 			for (pblkno = prefetchStart; pblkno <= blkno; pblkno++)
@@ -1994,7 +2081,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2008,10 +2094,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2021,46 +2108,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (vacrelstats->dead_tuples.num_segs == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		vacrelstats->dead_tuples.dt_segments[nseg].num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
+
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
 
-	return (res != NULL);
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2088,6 +2294,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (vacrelstats->dead_tuples.num_segs == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = &(vacrelstats->dead_tuples.dt_segments[iseg]);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 6f68663..4fc3179 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,6 +81,14 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
 -- partitioned table
 CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7c5fb04..904d439 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,6 +63,16 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
 
 -- partitioned table
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v3.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v3.patchDownload
From 88201f24483f3b63f42d560e66e8bf7ebd3caf61 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index ddf19d7..50f82b5 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -215,6 +215,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 					 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1376,6 +1377,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2205,6 +2209,25 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < vacrelstats->dead_tuples.num_segs; nseg++)
+		pfree(vacrelstats->dead_tuples.dt_segments[nseg].dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#128Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#127)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Apr 20, 2017 at 5:24 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

What's not clear to me is how sensitive the performance of vacuum is
to the number of cycles used here. For a large index, the number of
searches will presumably be quite large, so it does seem worth
worrying about performance. But if we just always used a binary
search, would that lose enough performance with small numbers of
segments that anyone would care? If so, maybe we need to use linear
search for small numbers of segments and switch to binary search with
larger numbers of segments.

I just went and tested.

Thanks!

That's after inlining the compare on both the linear and sequential
code, and it seems it lets the compiler optimize the binary search to
the point where it outperforms the sequential search.

That's not the case when the compare isn't inlined.

That seems in line with [1], that show the impact of various
optimizations on both algorithms. It's clearly a close enough race
that optimizations play a huge role.

Since we're not likely to go and implement SSE2-optimized versions, I
believe I'll leave the binary search only. That's the attached patch
set.

That sounds reasonable based on your test results. I guess part of
what I was wondering is whether a vacuum on a table large enough to
require multiple gigabytes of work_mem isn't likely to be I/O-bound
anyway. If so, a few cycles one way or the other other isn't likely
to matter much. If not, where exactly are all of those CPU cycles
going?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#129Claudio Freire
klaussfreire@gmail.com
In reply to: Robert Haas (#128)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sun, Apr 23, 2017 at 12:41 PM, Robert Haas <robertmhaas@gmail.com> wrote:

That's after inlining the compare on both the linear and sequential
code, and it seems it lets the compiler optimize the binary search to
the point where it outperforms the sequential search.

That's not the case when the compare isn't inlined.

That seems in line with [1], that show the impact of various
optimizations on both algorithms. It's clearly a close enough race
that optimizations play a huge role.

Since we're not likely to go and implement SSE2-optimized versions, I
believe I'll leave the binary search only. That's the attached patch
set.

That sounds reasonable based on your test results. I guess part of
what I was wondering is whether a vacuum on a table large enough to
require multiple gigabytes of work_mem isn't likely to be I/O-bound
anyway. If so, a few cycles one way or the other other isn't likely
to matter much. If not, where exactly are all of those CPU cycles
going?

I haven't been able to produce a table large enough to get a CPU-bound
vacuum, so such a case is likely to require huge storage and a very
powerful I/O system. Mine can only get about 100MB/s tops, and at that
speed, vacuum is I/O bound even for multi-GB work_mem. That's why I've
been using the reported CPU time as benchmark.

BTW, I left the benchmark script running all weekend at the office,
and when I got back a power outage had aborted it. In a few days I'll
be out on vacation, so I'm not sure I'll get the benchmark results
anytime soon. But this patch moved to 11.0 I guess there's no rush.

Just FTR, in case I leave before the script is done, the script got to
scale 400 before the outage:

INFO: vacuuming "public.pgbench_accounts"
INFO: scanned index "pgbench_accounts_pkey" to remove 40000000 row versions
DETAIL: CPU: user: 5.94 s, system: 1.26 s, elapsed: 26.77 s.
INFO: "pgbench_accounts": removed 40000000 row versions in 655739 pages
DETAIL: CPU: user: 3.36 s, system: 2.57 s, elapsed: 61.67 s.
INFO: index "pgbench_accounts_pkey" now contains 0 row versions in 109679 pages
DETAIL: 40000000 index row versions were removed.
109289 index pages have been deleted, 0 are currently reusable.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.06 s.
INFO: "pgbench_accounts": found 38925546 removable, 0 nonremovable
row versions in 655738 out of 655738 pages
DETAIL: 0 dead row versions cannot be removed yet, oldest xmin: 1098
There were 0 unused item pointers.
Skipped 0 pages due to buffer pins, 0 frozen pages.
0 pages are entirely empty.
CPU: user: 15.34 s, system: 6.95 s, elapsed: 126.21 s.
INFO: "pgbench_accounts": truncated 655738 to 0 pages
DETAIL: CPU: user: 0.22 s, system: 2.10 s, elapsed: 8.10 s.

In summary:

binsrch v10:

s100: CPU: user: 3.02 s, system: 1.51 s, elapsed: 16.43 s.
s400: CPU: user: 15.34 s, system: 6.95 s, elapsed: 126.21 s.

The old results:

Old Patched (sequential search):

s100: CPU: user: 3.21 s, system: 1.54 s, elapsed: 18.95 s.
s400: CPU: user: 14.03 s, system: 6.35 s, elapsed: 107.71 s.
s4000: CPU: user: 228.17 s, system: 108.33 s, elapsed: 3017.30 s.

Unpatched:

s100: CPU: user: 3.39 s, system: 1.64 s, elapsed: 18.67 s.
s400: CPU: user: 15.39 s, system: 7.03 s, elapsed: 114.91 s.
s4000: CPU: user: 282.21 s, system: 105.95 s, elapsed: 3017.28 s.

I wouldn't fret over the slight slowdown vs the old patch, it could be
noise (the script only completed a single run at scale 400).

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#130Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#129)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Apr 24, 2017 at 3:57 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

I wouldn't fret over the slight slowdown vs the old patch, it could be
noise (the script only completed a single run at scale 400).

Yeah, seems fine.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#131Masahiko Sawada
sawada.mshk@gmail.com
In reply to: Claudio Freire (#127)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 21, 2017 at 6:24 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Apr 12, 2017 at 4:35 PM, Robert Haas <robertmhaas@gmail.com> wrote:

On Tue, Apr 11, 2017 at 4:38 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

In essence, the patch as it is proposed, doesn't *need* a binary
search, because the segment list can only grow up to 15 segments at
its biggest, and that's a size small enough that linear search will
outperform (or at least perform as well as) binary search. Reducing
the initial segment size wouldn't change that. If the 12GB limit is
lifted, or the maximum segment size reduced (from 1GB to 128MB for
example), however, that would change.

I'd be more in favor of lifting the 12GB limit than of reducing the
maximum segment size, for the reasons above. Raising the 12GB limit
has concrete and readily apparent benefits, whereas using bigger (or
smaller) segments is far more debatable. Yes, that will need a binary
search. But, I was hoping that could be a second (or third) patch, to
keep things simple, and benefits measurable.

To me, it seems a bit short-sighted to say, OK, let's use a linear
search because there's this 12GB limit so we can limit ourselves to 15
segments. Because somebody will want to remove that 12GB limit, and
then we'll have to revisit the whole thing anyway. I think, anyway.

Ok, attached an updated patch that implements the binary search

What's not clear to me is how sensitive the performance of vacuum is
to the number of cycles used here. For a large index, the number of
searches will presumably be quite large, so it does seem worth
worrying about performance. But if we just always used a binary
search, would that lose enough performance with small numbers of
segments that anyone would care? If so, maybe we need to use linear
search for small numbers of segments and switch to binary search with
larger numbers of segments.

I just went and tested.

I implemented the hybrid binary search attached, and ran a few tests
with and without the sequential code enabled, at small scales.

The difference is statistically significant, but small (less than 3%).
With proper optimization of the binary search, however, the difference
flips:

claudiofreire@klaumpp:~/src/postgresql.vacuum> fgrep shufp80
fullbinary.s100.times
vacuum_bench_s100.1.shufp80.log:CPU: user: 6.20 s, system: 1.42 s,
elapsed: 18.34 s.
vacuum_bench_s100.2.shufp80.log:CPU: user: 6.44 s, system: 1.40 s,
elapsed: 19.75 s.
vacuum_bench_s100.3.shufp80.log:CPU: user: 6.28 s, system: 1.41 s,
elapsed: 18.48 s.
vacuum_bench_s100.4.shufp80.log:CPU: user: 6.39 s, system: 1.51 s,
elapsed: 20.60 s.
vacuum_bench_s100.5.shufp80.log:CPU: user: 6.26 s, system: 1.42 s,
elapsed: 19.16 s.

claudiofreire@klaumpp:~/src/postgresql.vacuum> fgrep shufp80
hybridbinary.s100.times
vacuum_bench_s100.1.shufp80.log:CPU: user: 6.49 s, system: 1.39 s,
elapsed: 19.15 s.
vacuum_bench_s100.2.shufp80.log:CPU: user: 6.36 s, system: 1.33 s,
elapsed: 18.40 s.
vacuum_bench_s100.3.shufp80.log:CPU: user: 6.36 s, system: 1.31 s,
elapsed: 18.87 s.
vacuum_bench_s100.4.shufp80.log:CPU: user: 6.59 s, system: 1.35 s,
elapsed: 26.43 s.
vacuum_bench_s100.5.shufp80.log:CPU: user: 6.54 s, system: 1.28 s,
elapsed: 20.02 s.

That's after inlining the compare on both the linear and sequential
code, and it seems it lets the compiler optimize the binary search to
the point where it outperforms the sequential search.

That's not the case when the compare isn't inlined.

That seems in line with [1], that show the impact of various
optimizations on both algorithms. It's clearly a close enough race
that optimizations play a huge role.

Since we're not likely to go and implement SSE2-optimized versions, I
believe I'll leave the binary search only. That's the attached patch
set.

I'm running the full test suite, but that takes a very long while.
I'll post the results when they're done.

[1] https://schani.wordpress.com/2010/04/30/linear-vs-binary-search/

Thank you for updating the patch.

I've read this patch again and here are some review comments.

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity (2 log N to be
+ * precise).

IIUC we now do binary search even over the list of segments.

-----

We often fetch a particular dead tuple segment. How about providing a
macro for easier understanding?
For example,

#define GetDeadTuplsSegment(lvrelstats, seg) \
(&(lvrelstats)->dead_tuples.dt_segments[(seg)])

-----

+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return;
+
+       /* If uninitialized, we have no tuples to delete from the indexes */
+       if (vacrelstats->dead_tuples.num_segs == 0)
+       {
+               return;
+       }
+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return false;
+

As I listed, there is code to check if dead tuple is initialized
already in some places where doing actual vacuum.
I guess that it should not happen that we attempt to vacuum a
table/index page while not having any dead tuple. Is it better to have
Assert or ereport instead?

-----

@@ -1915,2 +2002,2 @@ count_nondeletable_pages(Relation onerel,
LVRelStats *vacrelstats)
-                       BlockNumber     prefetchStart;
-                       BlockNumber     pblkno;
+                       BlockNumber prefetchStart;
+                       BlockNumber pblkno;

I think that it's a unnecessary change.

-----

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *)
&(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));
+

I think that we can change the above to;

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *) &(seg->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));

We set "seg = vacrelstats->dead_tuples.dt_segments" just before this.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#132Claudio Freire
klaussfreire@gmail.com
In reply to: Masahiko Sawada (#131)
8 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

Sorry for the delay, I had extended vacations that kept me away from
my test rigs, and afterward testing too, liteally, a few weeks.

I built a more thoroguh test script that produced some interesting
results. Will attach the results.

For now, to the review comments:

On Thu, Apr 27, 2017 at 4:25 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

I've read this patch again and here are some review comments.

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity (2 log N to be
+ * precise).

IIUC we now do binary search even over the list of segments.

Right

-----

We often fetch a particular dead tuple segment. How about providing a
macro for easier understanding?
For example,

#define GetDeadTuplsSegment(lvrelstats, seg) \
(&(lvrelstats)->dead_tuples.dt_segments[(seg)])

-----

+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return;
+
+       /* If uninitialized, we have no tuples to delete from the indexes */
+       if (vacrelstats->dead_tuples.num_segs == 0)
+       {
+               return;
+       }
+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return false;
+

Ok

As I listed, there is code to check if dead tuple is initialized
already in some places where doing actual vacuum.
I guess that it should not happen that we attempt to vacuum a
table/index page while not having any dead tuple. Is it better to have
Assert or ereport instead?

I'm not sure. Having a non-empty dead tuples array is not necessary to
be able to honor the contract in the docstring. Most of those functions
clean up the heap/index of dead tuples given the array of dead tuples,
which is a no-op for an empty array.

The code that calls those functions doesn't bother calling if the array
is known empty, true, but there's no compelling reason to enforce that at the
interface. Doing so could cause subtle bugs rather than catch them
(in the form of unexpected assertion failures, if some caller forgot to
check the dead tuples array for emptiness).

If you're worried about the possibility that some bugs fails to record
dead tuples in the array, and thus makes VACUUM silently ineffective,
I instead added a test for that case. This should be a better approach,
since it's more likely to catch unexpected failure modes than an assert.

@@ -1915,2 +2002,2 @@ count_nondeletable_pages(Relation onerel,
LVRelStats *vacrelstats)
-                       BlockNumber     prefetchStart;
-                       BlockNumber     pblkno;
+                       BlockNumber prefetchStart;
+                       BlockNumber pblkno;

I think that it's a unnecessary change.

Yep. But funnily that's how it's now in master.

-----

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *)
&(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));
+

I think that we can change the above to;

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *) &(seg->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));

We set "seg = vacrelstats->dead_tuples.dt_segments" just before this.

Right

Attached is a current version of both patches, rebased since we're at it.

I'm also attaching the output from the latest benchmark runs, in raw
(tar.bz2) and digested (bench_report) forms, the script used to run
them (vacuumbench.sh) and to produce the reports
(vacuum_bench_report.sh).

Those are before the changes in the review. While I don't expect any
change, I'll re-run some of them just in case, and try to investigate
the slowdown. But that will take forever. Each run takes about a week
on my test rig, and I don't have enough hardware to parallelize the
tests. I will run a test on a snapshot of a particularly troublesome
production database we have, that should be interesting.

The benchmarks show a consistent improvement at scale 400, which may
be related to the search implementation being better somehow, and a
slowdown at scale 4000 in some variants. I believe this is due to
those variants having highly clustered indexes. While the "shuf"
(shuffled) variantes were intended to be the opposite of that, I
suspect I somehow failed to get the desired outcome, so I'll be
double-checking that.

In any case the slowdown is only materialized when vacuuming with a
large mwm setting, which is something that shouldn't happen
unintentionally.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v11.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v11.patchDownload
From 1886860a97245219b328b50b9aca9f65c1da30d7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 409 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  26 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 380 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 30a0050..69fc00d 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,34 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	unsigned short padding;		/* Align dt_tids to 32-bits,
+								 * sizeof(ItemPointerData) is aligned to
+								 * short, so add a padding short, to make the
+								 * size of DeadTuplesSegment a multiple of
+								 * 32-bits and align integer components for
+								 * better performance during lookups into the
+								 * multiarray */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +172,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +210,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +218,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -510,7 +565,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -689,8 +744,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -741,7 +796,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -924,7 +979,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1136,10 +1191,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1147,7 +1208,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1250,7 +1311,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1281,7 +1342,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1378,43 +1439,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1426,7 +1500,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1436,34 +1510,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1597,6 +1673,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1607,6 +1685,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1614,7 +1706,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1991,7 +2083,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2005,10 +2096,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2018,46 +2110,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2085,6 +2296,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 6f68663..c4ebec5 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,6 +81,32 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
 -- partitioned table
 CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7c5fb04..85f4f9b 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,6 +63,25 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
 
 -- partitioned table
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v4.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v4.patchDownload
From 64e3c9451ec56db075d64b82ece8afaa2731cdc8 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 69fc00d..6f6c461 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -219,6 +219,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1380,6 +1381,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2207,6 +2211,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

vacuum_bench_report_unpatched.logtext/x-log; charset=US-ASCII; name=vacuum_bench_report_unpatched.logDownload
vacuum_bench_report_v11.logtext/x-log; charset=US-ASCII; name=vacuum_bench_report_v11.logDownload
vacuum_bench_output_unpatched.tar.bz2application/x-bzip2; name=vacuum_bench_output_unpatched.tar.bz2Download
BZh91AY&SY��������0��r���?��@����\ a�~}�}��v�(���@ �=
EP��E(A@��
H
HP�*�QAQA@(U
��=���@U�8= ��5�ke�4���@
P
P((

 
(Q@PP@���
;��lX�Y�A�D""	�z)@�z0������Kc���`l@����(^��0;��>�OC���	�
���4�0(����x���D@�`DA������=��<A"A"AD:�QB��>���=�=
"	B� D���{���(�x� �"� �"����S����" �AD�l|`�{��D"	A!D.��HPP�|��{��H"�B!�/|
�9B���C�
*������'���U�#L	��&���b24��22����I*=SdLG�i�#��dd��M���~���S ��� `��@2�2	=R�#�*4�4
�#@�b0�)I���
����OP��)���=G�S�<��x��T����!**�@(4��2����N����LG�Kl���
�Ve�v!�H�)W���S�CT�������O�3�<�\�|��Z��o[��w�yo��;zs��p�&��� �����<bC��%���wf��4��aJ��7�
�B�e]Nm�����{
��WUVe����������_/g�|~�U�=����H�a�b�
����
�l��$�����Vm�����J�������b�3(��UZ�KYx:u��=�����N��/�����������{����{�:����#?���U
���l�h���>7�>�T��U�|�o���F�M-�����S�3,fL1��0��$��C1
S*����������{�?�����-��Z�z�y�7����s��_.���y����TU?����j���df2��L��?�e�A�>�����.N^���=f���9u�]���}
��yS�T��J|�L��Ob��$��)�U}��4F�]��U]��&��&U�G���<���`�r�����2����U����;j���6�v�J����������mwj�wUND��k��wZ�Iwuw[b�����]u��w]�WWwv�.��2�]r����K[�wI+���E��Z��s��^w��"����5���u����s��N�;;s]��X�3�s;�Sk'u���m�J7]��K���WwU&���v5�-�U����t����%�������]v.��t��d�+��Q���wc��k3k����K3)�n���u��h����]t5�]�RcG9�M�� ���6�����joMt�S��&��2H?N$�����D�N��s��&w]�q$�����s���]w]�rK�����//��nn���x����Z�m���@H$� ���d��@B@"H��r�#;��""$���U�Z����s[sn�-v�$�$�d�$�$A`�HHfd�L�3��$�I&�nm�jwksj��\������\�$p�d��n	$�AI��"**���\���sV�j�b"(�DE������I�&0`�"1DI�C0	*������&��" �� �H�I2A$�u�$�� �DDb"����wmr��c$��2R`��0G�U�m�[�x� �L�I$II��.�"cQ�����2I$�I����$d�;��@3����#���A����;��u8NtK���I	2 	$�	 �1$�BL�$�L�K�:.����� ��I���9�4�A�]�L�t�H�rw]��_�������2L�61*W���������e+(��m���t��-4���SQ���l����v-�KiK6-:��]v�]v�fib�����2�iJ�����u���Jj6i�Y���Rfk�����i��������n���&�2Ct�$�I$�m����!����>w�	��Iw�wswtQ �N��s���$;������q8IBI$:I"H��A�" ��$�$��H�D�!wu�D$wq���$I2I�� �*�u�	ID`�`���������$A�BD�d	���2$�$�I �1 @@D�&L�2I$@���H�� �XB�L�@I����#I�!��"1E&���@I��c$D���$�H�1�����!d $��a"He2�	/;��1F1%��$��� �"$�".��F#���%$&Hd�b�RB���3�r� ��I*�V�H@D�3!��/7t�2d��&�2�6e4�2�f��,���$��L�T�&�wWf�u�wn����f��bJ���fS]��S)Q���e�4i���u�)�Ifc6�e�]�i��)���k�.�h�e�fY�,�h�:��ewWn�n��n�l����v���34��n�[��F(���#��@I$�	$I �	$�$���I�"'w"F0d" " "DD`������1Dc� A��FJJ`�1`��2FD�I�DE $�DFLA��`�vb ��	 D�b1���c���	I���D���L�$�$�! I�$�$�u�$�!2JHB0�BL�	���N\r��1"�"(1F`A@`�&C&"H"D���9��������`$�A����H"���DDA�c�.�����#�d�����u��fi�"�&	!$&d�:����H����yy�^x���
���Q��sr�")((1&F&L�<�y<����.���$�b���(��lQ����D�3"B �#���Q�Sy�����6[��f���]�)�,�f�5)��)�3F�d��K6T���%Id�-3i�K6l�R���m�]��l��6��-�)%�6l����d�R��%�]v����J4��KIR�4�����T�M)���F���n��.��%+�]�����<�~����������j�{��E"@@!"FLAA$H���"'�q�����"�I$��$D�r����r &��b
LF�w �DG7�A1!&L��DL�2D�C!�F0D_�������L��A��&H	$��JBD�A$��0Is��w]$�QI�����b"�Du���IIA�7wN����d�s���wp��wDDH������D��""�$�L11&��@�wwu��"�Ad��DL �	2&B!2!$��	`���A%&I�HA$�II�%�]!�$I�"1 ���AI�I:�	����$�$D����&��1!DF�" �Lb(1��F#�^]W,��e&���l��)���&�����2���6Eu��J�iM��a)fn��4�&fn�E$�&��#I3LY�eIIEEJfi3M&J(�2RH���eSI54�����4fY6QD(��C�� 	30wvHL$@B��$�@�JH��� $� �A I$�!$�!	@���$BR%$`���L�D��@`� ��"J(2���&L@��HD�$�$�b"+�ABF��0Bd �	$$I ��A5� II�h
1A���Q��E$�$0BI�IF""@DD�BA$$�&�&I$�$"$30&�L�	2d��$�d�E1DAd�%$��$d��H2A�DI�JI#2�L$�4�d�(�(��b(���-����LA� ��,&�M& �$��$�a�AHH$A"d���J(��F��	
!:�0�d�,\�4a1�YJM&�%ifi6�%4�h��2��1Q�Iu��������Le�]W,d�M4���U:��gW�W��n���������f��^v����WH�g^y�&���IF��w[t���)S�U��3��`�x�s�(�@H��ww]�`�LQ�&JI2d���22L�wd $�0��$�A!0d�	 ��Pb(1�b"(�(��F6���)L�"��F"I����H]��A%.��A2$ $����H@�;�I���$��IPH�L��D��&�
J@ � 2	dI���2d�I�'8���	0d
%$D�<�#H�,�b3�2Db$�@`���2AA�$�%��F$�oU���fD	�!K $�X&���1���c��14�	&&1"$2S"�	&��H)I�t	�c#$b��M& �fL`1IOWL�Ld�b�H�JJI1����E4F�1�cE7�Bb� (�M,��We]7M;�a*i���k�l���3�wwH���]�����2X�jM�����jKF�fjf�ZJy�4V���v���)o;�O.��.�����d��m��T��Y�n�*����M3jL�E'w1�;�@�bI(B$LL$����%��4jEh"��Q��A��HE�$� �1��$Q�&#A����F�b�w[���AEC&�DIBla���d�6#a#F�M&
X�h��f2$��A)"DA $HQDBH%��!(��A����E��&(��h�L!��A��LP�(�c�A��d��	�&f2$� � ��E���"���D����1�0��&DP�FF2J B"I1)""-�l �2��
�cA��I�h��6��F
�b��� I���p�,���*�
E���E����4<k�
�s��wn��s32�I���?>|����1���r��H��-�W9�-��;��lZ��F�$�6�����������<��<��k_�!Em~�m� ����$��V����-VD����HI�[s]&L�
�1��tE+k�k�k��E��*����#W5"*���-WDD��H1'*��
r�II�� ��.�0'wH�	�&��j����6��cf0�fe2fE����|~��?���������"�j�����roN�x5d��y�P���R�L�������M��>���7%�In���>����Y�� e3�U��s�s�f,����r�������
�\�6�vD��$��u�������`6��� �������W���Q�^�D���~?Y��������;o�O��S�v�P:��Vc���l��������k~}7�'����*������(��R���(��R���(��R���(���mV%���F5ATF���-^5s\��EE���\�j*1�[�O:����\�j
DZ-���F�Q��j5�\��F����F�Q��lh�V5�F�j��Q�����jMF�lj5�F�*�F��"����j]������sQ��j5��F�Q���\��k����j5j-�F�Q��j5�F����j��j5�F�Q��j5�F����j��j5�F�Q��j5�F�Q��j
�6�5�W5sQ���\�j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5�F�Q�QF���l[sW5�\��F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�Q��j5sW5�\��F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�Q��j5r�\�1���^5sQ���\�j5�F�Q��j5�^5sQ���\�j5�F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�F�Q��j1�KRm����F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�E��������\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�^5sQ���\�j5�F�Q��j5�^5sQ���\�j5�F�Q��j5�F�Q��j1�b��Q�����j��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5�F�Q�����j��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5�F�Q���ch�j5sW5�\��F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�Q��j5t��F����j5�\��F�Q��j4�����U�����y�Z����Ml\�k����)����@�����mW�=�~�j����|����$I=>�=yx����O�z�z���^��������}�>t4� w����Z�y}g5:����kL���y�S2�=��^��J_��`u�
�?��xJ��!��?����|�W��_��H9r�VL����jD�7���j�g�~� �x��������y�A�/F�M�J�uV�5�Q9�a���P�*U���n�7&]�r������68)����Y�%M�Op�9�������z�4�F�h�
DzZ_���#��C��d�u�:n�-��p��U���d9r��wul�F���m-��]d�S���U�����z�`�C�����%�
����C�v���������cB��Vj��2����2t�]����u����<�ec�k�j2)jNKB��U^@U	�y����V����0��k�����UmRC����+4�lt����9�.
t�=P�+u�����O
����\��R$����M�����Bd;���V+�+6�1
���3})���+�N9��U�kYWR����An7/�mk�f���qcX�o_z�����D[s�z�5'be��m�q�wg��2�k(��\�Z�*x�#P;bCXC��:7V�T���t|t����\�����ODz���>BJ5��������c;2E
��%�����M����x���|�����R�����n�X��}��YA���c��]Y�4K���0�������)��ZR�������^����'2���!8�U��{sr������P�Nd��G�JY�A����6u��-Y D+��p�Lx�Z���p�	�]����}����p���z��&.���&b.
4�^b��UU�v��8tX�oR���m'1��E�L��i9����W����Q���JI>{u;6���U-y/N��/���j���=�Twd[�8����>[��{j�n��b|;��g��C�UT+��u�`�W�Ca��&�O�pV,�n�j��i����}��:ml���gu��^�\'U������sv�V<�4H)r��0���b�km�9��|���My^-��&���c-���mz
C�U&��u��*�;�;Ur�!�2��<$�{������*�9�^�������gH������Y��
��S9f���PQ��b.AS�f��s���4v��\��b��l��p�5T�:�s�2)��r��f���Z
vgH�d�������{c�����3-�l��
���>K���J����t�������oS���<�������lU�x�v�Y]�v�h�64��C��l��#s�[W�]V	F�;�>�u>�}���H�w�������3j����.cn���a1��k:��Nm������4#�Y��I�h��r��Lnv��5v��.����fd/5��*���Z�19@��fqSPR�������i������oom�������,�~�;<L��MHSz�}j�M��������!�#�(����c%���������{6�;F�B$���=����G�V��(W��;�X],�Ww%�������;E�a�,=��HiL��el���'���L�8m���m�����Y�8"||�sjU�������`�X������Y\����q��u��*�h<�t��uoC+-�����kGf���3��uA�nq3�7��'��9�Z�Y���Z�CgRMl�{7���N���e]�&OM���eVVr��T������b=&�eg,��%Y�WU@w��0`�1�wZ���R>�I�y�����v��,�N>����q\�=��K�	�0��'^n'E��w,��{����d|-mj�Vq��q������uI��UCH��e{��*�B(P�dy����4$�St�zoE���h��wXY����N�kG��������6u��,��Z�����%PZ�(\#�J��L�EE�uc�U�
�t�������K=.T5F�������T(&�]�%f�Uc�$.��]��q_S�*���9H��#��T��Z����]U�k��V+�t;������8��������[{VK��a��f�Ks��8��;������
���y�
�������Iw�{3	vX/w:\�v�q��Lxww�J
���m��6Nn�Dw�y9Kvm���X �����y,���
-��)-�cu�����N�V]j������h�u��"�oeg\:N����1�3����P���p����$������������Wd��4X�T����M��Z
������a��yf���](9-�i�5b�3�e&���mUQ'��}���mn*�Xm�����x��V�����#w�{��Vry����/�I����TN%��m8j��^mM����=D�1��w��pe�zxCqr�
���oUY��,�%g.���kf��=je7w��� B�����f���e�����z����`�H������{�����k={/.;��z�����*����8�k:�z��52�f�7�VM���Je,��&�p�G�=C�R�5/s�_Zj���!�V4�^)6����p�g2K�|m�B�L��0d������:E�c����nwu2��Ly�W��{]4�U������v��6l��������$����K�Gw_�����H X��;�0+��]�hV����#��M�$����%X�����0m����M�����S��������$��n���oY��a���kVn1��H8t`�]vB6��:�pu[��������1���2YfX�y�7�GI0�c�������6���]��g7�����\�����������v����
��n����^��l`�l�W������"�ZI����k���v���d��+�$A������������i�`�������L��q�=���xR����T"gX0�����.������^���K�2�<����V�RW4�'��o�6,�6���[i����[6��A�5��M����m���p����p���G�8�K��	^�zZk�M��^���!�s�,�Zx��r�����u���B
�:r9�U�E7�n��v�l��yr�/���K���e�������Uu�	{~XV�
;r���;����I���:usMv��3z�V?e�d�b��H�V�v�UI����Q��}m�Z*����m���m������z���hp=;e�<�n�3�{dY�H��1�Wpn�Q��{��f(��2�����������nHu@�t�N�K�WPAla��Fy�w}s�=�����1��������M���gOF�W��1|��45m�<���l<�C}�s����1����r����������G�o��9z�O�����yWM0���x�l:��s32D���.�l����T��^}A�:A���	(�u/�<n��i��*�4�(�I=�"I4��P�i�T�}�*��n�Z$�{'�e�UoM��u]�UX|�P!hHA���,��|�,}u���
���?0�#2�a+r��:�x
T5���G��k���4����>�T0N�)�9���w{](��-����2*T��gf�J��UL5���P�C�� -��H�5���su�����5����K�8���i+XY@ ��l���H>�������B��P?l������,���n�\���X��!m���rU���]��9�]�n;���2S�0Uz�n�b�Rw���)$���1P��������w���]B����j�����ApA�;��U��lgc�k�q���3/6�vWt2�l��;������u�<����cjx�5�9�{r�KW�G>���b���}b�[�����/dAc�V������������b��J��LU<V�*�VFs��.���h����C�{����~.����K����75v�\���hc������`O7���+�6�=�N�3�� ��
�*�p�CE�������h�GUV�I�~�Y����\���1S���EUfX�b��v�I�sP��"�a��e��Y�Pv����u����fuC�"��\eI����XF�u��Pa�����v@��[JT�47�� ��\N�h.�i��u���b�4�+��ff���������]s0t�~���0J�)h�����w`��j'8�[����z��v�oe�������A#��z����VhM�;����y]�*�Ud%����h�GZ�C�K3y���P��;�[F�-t4���
�����v�����Xu�l�C^�����U�
4�#}��l:s�#��!�C�;��U5G��I��E<����%����m����UV�,�kf��y[����`����cUW�n��o�p]�����m^����6�����a����WMuKkV�e�^�����Y�Uo-;t�ZY9d��u�������9��;�_.��Y##������i�t������*^�������S1�%b�����~���!���w������[�o���<w7�{w�����j����������\���6(a{l�Vk�so*�e�V��e���n�f���v�5�^�R��7�[���Af�x�:4����Y��XDp��/:�f��Q��A�o�����dB1.�������N-������)���9YxxUb�{��9Y�{�����Q#]S]f��s��/�|���q
���S��:x�)�N�?"������r�Q��2b��2���^���n��P��iM��{.K��v���x�r�;\��L���P�U�v�[�s����|�:���}���Jo��4��)��o���YU��5����>��r���4�Eu���o*����BOH$a���*�v�����z����;�:1�W�M*��k�5Oo��h��:F�s��.5fp����`X�C������K��.����U^G�h��Q�������Kk�.��a�c�'���VE����m�C�0n'���!�a!��!3��.�Z��
��h<{w�U�V���#F�u(A~����}���f�_*O��:�]�������/�g3�z�5���)�=c�l�,&�F��Q���
DT���*�����Z�`oP7u��u�2;��7Q*�.����\��q���n�������
S{��H����M�,��Y+o5�������7����T�K�������\��y������oq���<����V��y�,��w��m`jZAn���b�v�ru��;s.�sU�N������WkvV���S^3s��w�-��<�u(�P����X7���n��*���f����s�F�b�j��t\
��B�SR��lu�0]�k�{���V��nBrU=��4J�JoN��]W*��D�������4ec�s������������l�Vj��P���v��TsENE�b����{UR�[J��5O;�=�U=��������:��������@�T����bu��wW��ImF��a�]vh�f3}6�*��W��%�c�6J|z�s�;]��i��������u^l���p��[Q����v+f��<O����s�q�}t��G(��mb;qJs��Z��d����{l�{��G����T�F�vVVR��W2�#�t��s�=<�L]B����p�H�,"��*���w�H�kU1E�j���n������t��;N�,�xs;BR��6�e���fKl1���3�Z���g^����=F�'3��������X����0��n��' ��U���._^P����v�p�32�	�o&�@�ou�}w����OZ:�FW�T_
�C7Q
m�5�[
��%wm��u������8���wiTI�6�������K����7����
t�;��:���j������@������+����tz�Z��;�����4>����8S�C������qJ�P��L9���e������}*��&;O������]2j,�(i/E��C���q��8k:�Q�>�:U3�9���[�T�9��
��$ZA��8�:B�oS)2�W<�=j��K2��<�K����|��#<��Z�Jy&�����h����2Z�k3��}y*��^J�^Po��V��c#+��su\7�[��v�R��j����9S�������)Q����7IU�W�*6CJ)�V��	#6z�o�.��7���{vt�]N����g+�k�4��)P������c������Tt��	B�4Z$cG�����M�E��	���S��>N<��_
>�L�"�n����}R���T�S��]f����m�H���������0�\/��RV�x�>����kC���A���#�5�������`w�
�z��u-���T+v�Kvga���lK����t������N���A.�+���[eg���r���LA�WI������y�Ss*�������ea���4��=T��l���T������Z�wH�g	����es����(=������bX����w[���U]���
��)��H�������Cg����`�;��Z�B��gi����5d�B����.��u�4wk�E���Onj=�U�o����U�K(p��"�$I�����������`p�������i<��B\�O����0V�����.Q�K
��.���X\��R��vN���],f��Xro��!;Z{]
i��;��������/j�7eUi��V�e������o^�4����yw������JUSq�3�V�k�a��"�MM�z.�eU�Z�^�s���Z�%U+���������30��\wc)������Y��nB�K�u�r�9�k��^���\�Z�q�q��a���/t%0\�����A$t �5K�Y�1�!��P|�>w�=���v5�Ee��yb�>^N���d�Kz`��u}C�n
����.����Ar�D��6�u���Uj�e{���r;g��y�*��t|8����x�l����5����v���������X���U*�_�w�{����
����;�I�����]<+o}��Om��a��(��)�UJ�J]
�D�S�q�3x�����'u����t�YY�*�.a�]��v�t��n����M�� �;�t%=J�q#�x���\��]�(�Lb��}ZQ|�+50*��k6�]{1�rn�����{[*V`�U�B���NuT����:�+�+� ��n�b��vcZ&�4�dwXj�H�d�S.�#|u@�J�V�����.%��hcF�7��J]Gu��S���L��mT�4B)%�� oU^�Y}��j�<�D�p�[�� ��.S�fe�*R���p+���T5W�j>���M��Q�9��cs(S�'fVf]n���Ytq�F��!C:Z+�N����������E�^�b�������E��
��Z#�*��h�Z��^���o�M�[���{Kua�7��T���nf��}+3(n���|�mv����d$(�F�(g7&c�7t����vs�v������g���0���l���2���U����U�/@vg
�J�R���b��c,m�-��m�^|�L�{l1;�,�	�
3���R�!�]�s�/���4�X(m����*��<���mW���6��`�vg�__����r�i�X]+����xu�p�Yr�2�G/��e�Yp��X���4�!����%�P��0v�9UR�4����7��_0�q���7F�r�SI��dY{�E
���T�V������zB����5UZ^��L�{1��~[kd���������GZ/�Uy?t��}��u\!���t�����,��#���e�1����8���e��z������.�P5�+�
���sF�^��]����H�&LJ<
u������oo���T�E��%�B����x�����A]��wJh�k:���y���{ov��eU���l�\r���ISX��(�t�nw&
t�yj{tv@��o*�E`��t�*��5�U��n���D���*!�{t����=�U��vn���{��1s�/[=���,���]�k�R����K����K�n�]�H��'L,��nT����w�h��=]w
JS�+<��c{6o��E���]�4����R5�F���Z�W(L7T{HW��,��iA�Z���fd������Mxs���R���e$a�U�<��Pv�� �y}��f�M��`�B�z	��"Q�DW>�����,,�C\���^�c�\��.�p��v=5Y-t���x���a(�<�{( q�S�0����A���y���$
��Y>"��:�F������Y����!�^/{��)r�:��2�&j�����@���{/0�:��;��T�z�����w���na
�2���N��-�b�q�!P^,��r���{�P��B�.���'b�����5��/%��p��R�On���a�� ��o.�������Y������m�LT����2�#%�w8�����W���rwxu��*�v�]��7o++B����6@9K�����O����J��m�,�g�����r��+n�4+T2;��H��,fP��A�EUj��[�9v�N���V^���������e�i���l���6T}\r�T;�8�u�G�1��	3jrZ�����`���B��j��N����m]�+U���Y������v����[x����V���V�����r��!J/n)��C�
�=�A Kn����77s��]��B������M9yj�n>�������Y��T
��m�b��P���\��j�l:��������b��,B������Q{��i�-�G9��Z�sx'�b�?�u��������W������9��/���n�c��^����vk�b�V����M���1�(�����^�Mp���]Lp�G�����2N/x>��:��[&q���E���v�����^���tP��(����
Ez�9u��A�{[���=Uxs���c}�i>;O����uwy���n����~�_;��3m�U���UZ9�u[��V�n����WM���.���������y7��j��jr�����o<����pi������6��s�a��h��������cm�:���=���D�'�E���D_���%Vg`��t7r�4���n����CB��Q�y����^�Wb�&�������Q50���kt�����Gj��ox�����m�e�]�-�v�I��m���+J����L���|�(w��Kr����W^�������a���n��Y��LgJ���q��1�j�_X��Yr��4��Z�����J���UA��6�KY���SH���V����}����*�yJ����n����O1�N��.k��mz��^=��d��k��Q��U�Ia��M��dy�
X�a�N���[�Y�r�B��T�C��G���V�5����s5��z��vn���H�����V�j�1�Z���;�^j��A�km�-]��]��c������A����^���W������������[��������Wg�b����3t�fV5s5��B����������������������S��&CT7.�a��^���
�N��wl�U�ht��"��Z�m��y�'`�]9[��_�c��4���V��!I�u�n�n��7�f�V�+�9*�vZA�	��j�x�ER"���m�Z3D����S��������6��.Tj��v���a�6[%�
��U����B���? C�������T3n;t*��t�]9��D�������LYX3��Uc�Ga�M���Cub�;p�i���v��:xv����,��:����I�/k�Vk�7@A����/���U�[jnYKwn�^W�e��5���9Z�R[�nd�����f���K�@�n�r�����:��WB���N>t=$���A������|��������`L���U�U�2�eV��	�X*�&U`L���U�2�eV�X*dVF�YA�X*�&U`L���U�2�eV��	��&E�1f	��U�X��X*�&U`L���U�2�eV�X`L�R��,�1V*����eV��	�X*�&U`LU�1,	��0��b��2�*����+aXe�eV�`L���U�0����	��&*�2Q�X(`L����*�&U`L��	�X*�&P��#eF�0&U`L���U�2�eV��	�X*�&*�f*��eV��	�X*�&U`L���U�2���*�L��<�J�p>��}�_�)�!��|����b���bSD��1�I��GY$�x1V{���v������+��VeO���e�
2�kXVg��k��P���-��}��7��X�j�i��\�/��Y����}Wus[���V����m{���}�]���;�sK��'������EZ�|0��'Z��"���/������z
tIW��I�\�������N�<Q���(�@�����;au�33:j������%T�*R���2�)k��h�wgLQ^��2�����$<"�DAB������)`�NW���p�g
}wA�������#nJi����[��pE���������y1eZ�M��gu@�M�]��2t�������v(y�2���}���?>�6���~?_��([�]|��8S�x�T����L����@v`�Nms�z��7r��3����u���e�.����!/�]���Z�xn�|��Pe��G�W�[}��D�����~�������o���N����A���?n	�;���[�.v�������_q�x��������DDa���@H
e�]�����������}��q������>��0i�o���
���A�������������y�~^�xg$�W�'��^x� �o	 ��^x@Bjj��DM�y����}�������}6�>����������^^Ek��g�����������7������o@M���*j�_Qb""t������Yp�@�I:k���*E`��~�	k�^W������B$AA=����{j�F"#�r "O�1��#�Z����1�M]����J���""""������{[�^�}��m^{����x�x��������<��x�x��;���-�oe�������{�Lm}k���h����q|iF�Z�����/v���@@��tDb"#}���T����DDDA��A�yk�DDy��� 5^q���Oj���}���V�#`�DD{r/��>y�@@�����#>��DDb"#�$�T�{�""1DD�#=����������WB��%{�vQ������|��y
��V_���q����^�)u���hWo�j��n�U���o��se�������/�|��w�K�]�S�m�x�M���z��W�W{�A������A6
yK�n��"">�����".FH} �#k�q�"������.�}c�E��|���_v�1�DDD��W����m���>�#��|J��F#O�w�Ov����@�zvp�[������Y�W���:��O:�����|��]v7��F�G�����������/���~�����x�~���K��o���/��^.�[���F#�1���@�T�H����6H@>���ik����������DD�D^�m���1�B
" mw�����]��H@@����[�IG�DDD_@B�����Hj[��!�}��~/x����t��uF���5�2/��O�4A�n��Q�,�>�3�XH�J���������O
�"#m����F~F"1}DA@{ox�����#(\�������F1����^�
���[�W�������DF|���>� ������[yY�A> ��B@�+�^\��b" �"H��uwI)���o��;_W?}������[���FP���d�*��'Mu��m�������K��OePY�0mT6��W�y��7�"1r-������:"#k/X0b#x�O��`�������#�������FD�1}DA��	 
����������"1<�u���#�11kyk��m��DD� �}���^D�(b"1"��HA�~��~.��^����{��y�FaH� b#���c	<R�RE��^u��[�������_}�o�����DDDb"y� �p� ��n�]�DF ����b6�}
��o��F""}���������#�K}���c�""1Zp>�U��A������7J`�V�Yw���#�����l��8�E����wX	�.��/?~y�qq����������7�k��)������m�����~ 
DG��6���&�����<U_A2H�x��$��"I�I�IN*������U-6J�p1%{j��$�I_�.�KC|�VL����L����`�Q��P<����������/�����~�._���{����k��>�����������o������������r����s�Z�/����i������<{�q��{gf�������i��1vL�7��)iP���[T�<��1ve�������u�i��e������&w���mP�SAW��<���R�f��eL�E�gc���`����*"����`�����D�k�4����V�[Pn��s�
���p�	��PU��=�oE"��s��n3�&z*����������ykE]�p�o�^5��U,������
�9��o9:y�=��:��PP��i��i�A��d�sV;z�35j���a���B������VhX\��<��G���{�h��UMum����I�a��9�?me\�R���e��AX�:Wh��i�
�o�q�z�fuX����^aePE�k�'V
{��Yu}{���J�^�}�z�}��PV.�-Bd�0'��T7x�vx'������8�v���.\��+�?0=��-��gWM����kZc����G�MD��^�W�j���p��\n��#��6LDn��9�rCD�(����{�Y�Lr��P]BP����C���wRl�u~uo�gh�Pf�������|�bm��>�8:�.R��r����j�V�~��F�>f��`���^{O
��K�+]X�A�o��4�x���11�)YC@n��\]�
��`�����e�W��(Sd
�h,��F������[<��5��8��&|*�������As5��Z���"�����3Ixv����F@5�Pc�����oUF�l�z:�W��O.2@������bSn1�!���SV*e��{���8"�Ty���2M��X�
�=.��M�-E����&�4�-���%L��/��C�Q�v0����,�u"9�&y�M
����mp#�w��d��]K�x���d<:����{��S:�&�J��;90�K%�l�}�<��)x�7������"N>����u�����
r����|{]cr��1���{'�5��.�{�"����]/:76�	�������l����8�,6����<l����X:m9�gid�t^P@x��r�c��E�<������,���9��t���;q'=`yy��AT���
�e��K����}��_Vgc,y�������7-��KU	��f%��yL�Tt��:��9y@B���*�m�n���:+n�jv�r�
oI
���U���z{�hg���1���4�^����%*4�[��K7��7�������B[7k�h�����;�,�Mu�6�u�*�BDa��� �ht�3+����e2���p7����.��6�a����fW����{��P|����t�n�����Bh��Vb�t�uu`�U`$�-�\��z�R��fp�T*���Y���>V�]��2
+q<���[��Pg\��<7VV��_���{��:��
�mY�	0PP_��${����P�����t���*�UXF�lBM'��"���b��g.������$��@���E�3�"3)��f.:��A�t�bf�c�	���g������}�PK�7�P���yI����MK����r��XL:0^\-�~�����Z�X[�6GZ��v�� ���zB����?j���5�o\���}.�]t�y�e;��O;������Q
6
��7BL
t#7;��g0q �K@�l^��ce�7{D�����O&mV��Z� �n�����+����4��J:����N��?]�?��wi��C�M��+���zcXO���t]�t���`����tO^W�Z�uG�
�UU|�f���i��V|������Z����iDp��S!�]N��^���*Nx�Xrk�X�����|�;�u	~��z�z
���p94�3Mr���C.N�q%�Fa�C��*�e;�2�B�|�yv0P�[�[�hiyUY {t�lY�1�
�o�*��-�2$}0�1e��EU��^���<���Q�4l���]��hT�C������Gep�D���ku������T��K6/v���:�e�[���)��I�Y��iz;QL����d��.`H!%�y�4�e������n�T�]c���T���k��.�q���x��\����'F�'�RX������4w��jm�kL�+o*1u�����M�vxkjP*�y�U�[�EK��)���R
���*�e-�P4��[��7$�:m�"�����'e��
wfCc(���w����	x�-�{�Y����Jc��1�������;w�w�����������%yL���c��hQ��R:����]�h�p�[�5��n��F�q��czm#����V��G�Ck/A"���^��/E
�vh��d����|��*��W�����
;7Z�yY%���.�vnV��w���z�"�G��i��1/�����Y��������3mUU��\�3wS�z���6o��b�ew��T(/^}��7�b�F���u�]gQ��n�EO����fQF���q-�:��ySg�	NA���������uj������`���a^c\��xF�
y��t���%XFz	3p�V�7��"��R�P&=<�	�r���F�<���.+6:Udw*=�v�c��H����UMke�6(������c1�<��[v��;�V5�;��N���}2K������p�=(S�E�xU�U65fW�
vv�ff&�Ra�4<�$����Mc�T�qT��fz��)x:Y���iU��J��j�X4�4�x����nf�0,l&�n�Muuxl�{������;sj�1:����.�@���#���������Y���w�f��<��WP��_���u����*i�{�&T�+[�����[��2�-��{}�^�^�f}w����/J#��Z��}p���vi�Ez�\9y�v{k3]���d��S�LMZHr�������j^��Y�/3�wf�u��i�^���������S����������V�*�m��^w��I�,��}�DK����}�T����y���0'���)���������V�v��"8r�<��t���F������R��v��W��&\�����)��2��;+<�
��'�?/g~�{�J�a�;]�����(R���i)����
��<^L��s���eR�=0�nU�M�{N��0�v�-�'.cdpWK��0(��s�=:Q���o5�����uy�u��A�@W��j������8�������0B��Y{R��u�#�b����,m�j!�����v�fv�~�QoM����s5a���]!{��F�^�gL�]�� �69�����]:Y���j�M��������8�1��)��s8��3�
�0R>���L�Z��k)U���Mf���(��X$1x���1otTE�q���<�R��=�A�{���#4d��6]7[�h+9��J����
4�Y�p����2���].��g+��\�k�6�nM�lt�4_||�c+�e]�|E�bt�~�z��b�^{|XaG�X��u���������a��qQ�W�e��7����Kl���GM�][��Z���p����������|U��#�1�R��L��S@� �K�����u{w=��E�"�3w�x�>����w��� ���a�&�X)�tA���k����$���a"���i*{�Jft��W��]P��jSq�h���_�����0��������!,Yy�v�M1�>,{��4�}�M��z+^���3^�S4���h��VFq[ T��|o�U��^|�G����2�-U��V��`�FL����W]����{|Z������mP����W5^Myz<��������}0�=����o��lyV��v0���^��B��[.X�[�����r����X�P�@���h]�U���]AR��]ks��8M��P.���7L���]��Mk�:��$���,�����xM�xmc�3�k9z_t�QQ�����*nX���]( E��|j�����i��EZ	n���K��
����"��jc3�S�
�Y{������f��M������V1|�wk�|��z6��zyp��Q��u��Ub{��Ub��9-�`�Zq��&v�����XVHP4Y3�#�u�a�����������E�6��8|h�w���Z������3��mm�4���gu�
��e�>��2�R��T��9x�9�7;�)lwJ�S�k��$�]g,��Q��dU�c���=#*�l�>��k�t��_R��3#�"F��d�"2m�?�A����\V0`k����ga�U�I6�&u$����)��q^P�B��s�����W=��eih������q���<���uV��Rs��:�.����WN�f��be��H�s���m����K�Ne�3��h��M:��G����KM�.�MJ���j��,K5���&��,��eX����sl{6��������^�GMeD7�u����\�������U��#�jk��v�q����������E%7����Gk:�gUy05w�����2���k�pl�"����������U��UC������!�Z���p������##��j�u��n{�ACe�������I>%�w����hK\����L�����4_��sj^$��|KXd7�e|$���x���T
��r��U��/r���a����D�)IZ��[wO}�Q�tz
�������yj��F
�Pd����[��j��n����{��W�UAh�x���c50`�p[26�L��T�y�`l�b�/1�����W]������R���������������u��F����us�>�ms�fx-�(w)�=�&P��KM����v��������[`���vDR��nv� �	f�(��&���.�t�y�?�����C����
IiZ�q�]��9dr:���k����ez�zq�w=6��,������Pr9U�!��W��H���j�Q>K���e������`(�u��Y�T����[i���������6i�k�
A{4��!�%^����:,���9o
����+M�����(�����%��Z`z ����w/oq��,aV����+N��{�tf��B��yt����z�^e�^y���EX�<h
�3����c\i����a��k�d��fIb��l��,M��uP�P�k~���u���b��Y�2P�tq�S�B.NWFGQ�X��V����N^N3���;����{FvY�{pc�k�"�����kg�t���A�^�7K��]���vJ����F���jqT��"��;�e�y����r����eL[��X�@��6����P���Y~����v���u+b�s�������7
�7���:[�
�;����e�7ox�����/<���w��)�+:����{�7�u�Y�T(��%]�Q�8|4OU$��*����x���g���3��	���;C<:���bb�ub�d�^��"�j�^�����B�Gf�w.'T�TsP��#)g^��1���|�:�_Gf�xQX=�|(vlo�D7��xew��86�)��-PG+k}�HQK��e���C�.��o���=��#�_���K�6�N�����c������V��R����F�����w�K���R
��K;uZzTCZ,4T|�D�1[���,������#wv���D��A^�P��lnZ��4|$'����s�]#��lO
��1hx
��8���
��4
E�vK���0��7� �/+BS��y
��]e�&y��p�VDFR���S��P��!�m+�����w��e�g��))������@������=��O
h�C��7��9��T��Z����3dD�P����Or�����{/#R�k���>uv+lZ��������J�z��]�������������xj���F��
k`i���[Mu�����V��n���4�ff]U�.��5�$��X�N�5��1W�+�mUW�G����IkA�8p���W'.���mKv���^��7
q:�����?^�:��K�� Y����h[ngJ���s�5���{r��9�GC#���vz��)u��[l%�����tWG��;7��~5������t�{D����{��t3F
u�T<&r`]����u�k����h�L������Kn�b�`��>�����rH8���������o��qd�'X�6������|(R3�C&�vmwn���h�3��U�+�::��8�rn
�5<�(�nz�������V|�&��x��	[�\8����*���3Z5�eGhs��2z�xf&	M�1<;���K�3���Qu5����m� vR��j�Z��S�����c�&
�k��/zU0S�bT�5:oL�%u���������<:E�x�%�`z'�Nn-[�j����g�d��Q,�t�{*�{��M�h�&��^���
�.x�J��dY�>��.���.y��gQ���WP�U�jL;��������{%�f�f���B��t�����
�S�4��r�����-��w:�����y�C��b�f���gm���S]�{~�����,A6���b��
#3V|7O���p]�z�z`!��%�����G�
@
`�rl�!���8�p����mqS$�{��`��M&�����a�G];�Q,�j�-�+��������.��-*��;��������V��\��O"��4+�+'G���u��m���������]s���s+�
`�d/Y<eA��Lz���{5s�e�+Z�����D�p����t��&��
���u;��+�z�/04�&+�aR��������������&���}�:�%q���9-D�#4�l��]v�zf���7kL�F�a,�\8[}��UWa�Z��];��nxE>� �]WBm;D7=z�>y������=�p5K1p���@W�^yo)�B��W�l�������8�blx�U8��h�7�b�f����P��`���0�2�u����+���������!�����h��;��PUMX�Nn��u��}��K�8����TR��w������dZ���e�fp�������R��851B�����,��56��t�E�A�*�����,�`�RM�U]b���6��+,��k][���F����j*h��J���v�[�O:�Uy<Egp5<������U�h��%;5W������}�����7�[5{�"�P����)�����d\����{b�����i�at��:��u�<�U{fm����W�R�ry� ����w�BB�V��v�1�wBS0V������H&�W9J���F�.O3�ix
A����������P��dT+�.�N�vW��c��Y�O�A#<��{;o���n�pa���5��s�5��3rZ�;ac��}����[������g�m����rb���{u�1P���4��������Y�wN�UPu�<&�^�V�P��~��Q��]V�'~����5v1���c\	g��.���V;V@����	\�g-�21���{/i��w�x��]���4����l�x�
�,���)UM���,�/!��y�|@��<�M����sL;1idX�|7A�xk6�*��Y�H���������o��p��#��N�a��o�C�^�����u�,e������Cn_
]��1�}z��u�z\�T��w�Y�d�(���n���=���� �i��������]ZeY]@�������9V�gtz�p��bI���;�^�u������=<.�4��//�o"�TW�{+M7�d�f�xA���$u���m�G6��4$/N��ol5/������y�Ob�~����\���V�S��;1�*�T�'��jf]��d�����>���ve�d2�r���a�����*����`x|���XB���v���]�x3�����w����DU�U�Y��w��x�����A-����v��]��Gj�������v����]$q�^_U��x�=�$a+�{/i���<�Y��wpUH�-�~��H��0$n�U�u�.�5�ce-rsy� [�z�3j��n���r���h�{+@�������F%���X���b8a���
L��`N��Y�b��r���Q[�/��/n�����+�]�����x��Ox�����U����'�a�Jgn���f��z��N�Z��=�b����N���U3�SW�
�Gb���lj�6�3����OhYU�O�S��S�@�A���������������
_�����^t�7I�"{}[��[���kGf]lYw����[k�N���$*��B��)��nM�� GBq�c�����������2�����k*>u�]Q����7�3D�kpz�%���7�}��jC�-=Um2a���Z�x��xA���A1���]�t~������;r�T����.������~��9ut�/��]����+���Nj�����A�X��7���i�Zu����j��gZ�M�����;��tF�h��4��F���/Y�3F�f����}K3k�������i�����U�4#ZjH�n9[Bg�AZ���O��^���v�w+SM����Iw�5�������v�t7��S���4��l����@�Z�Z�kl�����^{���}s35�U�v2�������@`�C��%VEp���z#��q7�z�����������e���
Z(n��ZFb2�Ox�/K3��h��D����g��a�G=�g<(V�Q�{V�������Y�}PU��#V�-�kUZ�!��ld���r��r`���������^� 
��������0#�gb�p����������Sn�CUS��6�c���WlOif��:�Ks�{B���_ijb����|{������=iN�Z�����G�+M������L���3!��'�C��
�~UYj���I��3y����f���n���/�A��Ie���<�N�"}���O��vH�C��a��.�J7�j����[�S\�,���+FZ\k����`���6�UU��0nA(]AW����dl#�;�����V(�B�955�}x�r���wt�+2����D�9��p�;}���fW3^#T����(���
e�(���S���4��T���v]=>���_�e)}!������*	�7�����Wf=\HIjTh�*�%�]�6��S�!�D[���W���H��a8*{i�9�p����:�����l�Z�[���]���z��]����#��Cr����������v��
�5;�R�4J~WT�)D`'}rvq�,����3���XB�Yy,��A��n����Z�a�F��}-V�������{O�:J��t�wg���b���s�2��A��.�k�0�l���u�B��g�#K��vo���:����4;�:s��LUm%Ce�YfR
��[FN;���bm:�T0y
�<swS�J����J��q�������&���j1T����.�g�R�+0�rLR�q�]�>����F����uU2������,F���3�W^��3�V��`>��Y	��Y��|<)���Gd����8x���xfWo��~<e6���6�Uff�fh����9��:���331}uy{�������?����~h5�d!���:�=����C���kMf�������\������6������o��s��������������r�v��<��1V���j�;f���+������T.�����n�ZG	1�_eP��2��^��p#�U�nO���#����tA+�A
q
YT�X��V���\�K�����\�ES��},b���Pz�<�J)�EN�89���������w�C&����Q�{�FP����������L�F�n�5tY����MY�T=e=�m�����}��`����X�ZSnd�Mm��5�y�6u����h�Y��6���i�V�Q��9�Gt��v�MX�UK��\3�������&n��N��U7�������_�����P[��Di��6
U�b��A���G���hD��t��]6
���.��k@��+"�#�d����yc��+X	�S����
��`�O9v���UE�]�T)W�mU�*���=�p��P�WLnybu�os�lP.�h�����3pm�����i:����^>�]y{]Sf�tp��hvZ�aX��k^N;�s^c�����p�[�����xP��V�@]���64_������;X��w.�i�Q���E�)�����y:L���2:X�n`�ui:���EF��S/wROE�������/����������(qR����rS�9��l�!}Ln_n��������S���7�Y����{WD��p+������2��Q�.���6��fq��f<�wO��+A��I\��kra�����J�Ls���Ey�Pwb�����e����r��������!������m�����Y����}�p31;�;w�tG�*���W��� �'�8�vmc��Ni�go<���rr�
����]3�rZ#��{��sjm<z�H�S!�����~��
�k0wl�33��x�5�x���l�j�X�Ck�������3����i.ZL�S�V�f�!MZ�����ps���
�Jr�6��=����qd�������NZ��!��y�M���y�u}��-�n%V�L��������Y��4�f�+�Uh�r�p�$�NV�u����z��:����Uj���F��m����������<]������wy����wh�H~fe�]��c&3XE�,�Y���K�\�	�t��]q6��h�eXV&E�mM�����w�����kW�|��7�j�����{����������x;G���E�c�����@���������]}�7���]V^}��������V%��~o�_��"| ~����V0��~�Z�����?{�����Y���=�j<�X�\+���S[�cl�b�����$�UF�	f���$��k�9��w��~hE�~����uf�~�������9��p���st�����������w�\C>�xV/[������S���6W��Oh���BWk����xV]�Y>����}��ps���������������|X��P������S�������%���kv>��Nz�������|M�����������v+����l���K����>���-
_>|��}s>�u����/�}!��s��k�����CU�J����u@9�wW
N?�s������d���$H}�|����t�@����=h��w[�`��9�a�>�~�$�r��U.J�.����
�%������=����`q�^
��u��W}���S�7~�_�|0o?�g�X�g�/����r��_���=��eyc�Z��������L�y�Z4S���_�S��3�7�o���]���KZ}@iE]�������Q��.��Wx�9����>Yc����j��;W���m9b����N��`y�+�B���'�b� lAsr5���'��>C}����1K@�+���Dj���������
�`������Q���n�sZ3�y�%t�C~�{�+������U��m�z7Q��9��������]�>vm��[T�uO9(����X�<�v1�@�}�r��+m����w���|������m{�9�_$�:uj@�r:f��,�K������>�xfv���c�\���
v3~w�g��O\B��W�J�����K�>��7f�=�:��B��v/��v_s����Z9v;hm�� @n��^���>������8�:�n�}��o�}���{�o	hv��EXG�����
i���5��>>�P��%�1\Lq��K�nc�1�G��������~��1��=P�UUUUXO���k��sJJRu������k����N�J�,�k�=�^����sZ���V���X�x���n�l�Y�z
���@�^���H8
lY���;����X��MP��j�u��P��-��u�}���*�JvW��O���m}_M��f��m����u��{��?g�_���gUVUyUx�wUwUy�x�z*�UqU�\UqU�W\UqU�W:�*���W\UqU�W\Ur�����*������*����z�*�������������*������*�����W\UqU��*������*���U�WYU�W\UqU�W\Ut��U�W\UqU�W\UqU�W8p��� � �$�a�K�r���� ��J�a�jJ�.\��.K�r�	*�	*K�2e�$�I$�&���M�&���Er8�rF��I$���rI$�I$�I$�I$�6)$QM�uI$�I$�AAAAA�I$�I$�I$�	$�I$�6G��]��fJ�a��I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�M�7$k$�I$�I$�I$�I$�I$�I$�I$�G$�2lQE�(��l�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�H$�&L�I#�I$�I$�I$�I$�I$�I$�s$����$�I$�I$�I$�\����$�a���a�*�� �	*a�a�$�I$�I$�I$�%�uA$�I$�I$�I$�I$�I$�I$�I$�G$�5$�I$�I$�I$�I$�I$�I$�I	2I32n�$�I$�I$�I$�I$�I$�I$�I.���I$Iww$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$����I:I$�I$�I$�N�I$�$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�A%C
AA%TT2Y0I$�I$�F�m�$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�D�rH� �J�K2��2lR5�(�J)�w$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�d�9$�5k.I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$���I:I$�I$�I$�N�I$�$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I!�r����$�\��PAA�IRfd�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I#�\��&Y�I$�I$J9"���I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�wrIs3.J� �	*���s&L�fI$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I:I$���I$�I$�I$�$�N�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�A�%��dR5�I$�	$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�	$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$��8�����*������*���A	R4�*��2T�L����	2C.���$&]I%���"�$�%����$�wrIww$$�%����$�wrIwv�13	9�]��	2Iww$�wrBL�]��	2Iww$�wv,X�$$�%����$�wrIww$$�%����$�wrIww�D�L�]��	2Iww$�wrBL�]��	2Iww$�w{��MI	)%ww$$�%���]��	2Iww$$�%���]���T$$�%����$�wrIww$$�%����$�wrIwv�SuS0��%����$�wrIww$$�%����$�wrIwwwUwU$$�%����$�wrIww$�I$�I'W����(|�*""�||A@� � �A� �8����6����lbsd�2h�������0�R���R�lm�*�U��EUo�M�XZ���E�k���kS�N�u]:tx�{���S�Y���=�UQZ	�����g{,��2������JC��%��e��H��M���N��T*k
Z�K�b�ywO7M�����LCa-Ufy�_Y�����1��<z��""";Dm���DDD�������^�Z�[N�t��m��N�-�z�1�
(�kZ���(t�c�3�N�kEt�������Uk����>f�������y[�V�����p�H&���.�n?n���y0�L]���z�i����w
����X��r[���n!����kM��o=t��6���DDF""$���������_;q����o��>:t���4�n�:[*��]:t�uUz�+���uj�U�UB~��h����-�VX��t�Vd&B��E��l�E�[�Gu�=����Q�X�g��wq;;zn�	j��6-�����=t������DDZ""1'�=�Z�m��m���l_�6�o0����t������h��=��R����y�^z/B�i�y�m���(�:4��v�z-Y���$���i��6jlU���h�f�)`#6��i�9wt���n��E�1��t��6���DDF""$�����kt��1n�:u��m��m�O4��t�����N�:u���Jt�Z;����{�����������)X;�WB����A<.�+l��%�8��W��U�z�*���zZ����0�n:����V
��m4!�����������DDZ""1'�;���U��M�����ku��N�t���:����mn��5moJ ����^}Tu�>/-�o34�$�^1�����������m�Y�<��oS�]2��[Y��T��6��x1�T�g�Akv��v��""";Dm���DDI���k�N�v���:t���t��V�kZ]�n#)�b�h�����������y��PV�`�!�4��z��o�lR/2��fn���(i ��u�4�9���j���Hc-:b�$�f1hZSX��G��bDDDv��""-�����:t���Oq�X�Z��q�[GV�������N�:y�Z���N��$���q8��������Ygj����X[�t"S���l���"�V��f���$��N��:{�z���w��*�����DDDDv��""-������t��������^�ks-k{�M:i��e�3��b���N�����]��_�_x��[2��S2���4dc��Z3S��������2i�Z��*?�Z�R��RfX����'x*J,���
��x�����DDE�"#x����:u]:t��kq��Kt���N�6m���km����qC���T<����_K��+~o�f��E���-c�;�U�4=�U
���������t���=|��CO����|2��@Sy%��F�^�M����-��]WC7�oYO:��-��
�����hP�J`Vr�V:��5�O=���M����>9C ��2���q��\;�5#���T�
�Y�m��VlU������b�����|2�3E;)����P��{�v`O&ure`�����������<�O���{q��[Z�^�����&M�v8�T���x�m�vLz�7��L�f��i��8��MN��Z�����u^u3����J
�j�qs�UV�Y�T�c�����M�<���sp������rid����g��A
��`����
��T
M����`U]��^w�e]�B���=Y��[`X>0�3M���}f�����p����AVe�2�����
�X������������F��e�.�_v�+uK�e�A��6U9���b�]]�/�/�_z
�/���wAY�c�� ������hi��a�s"`�s��"g�I������Z�����W0C��6��^gyE�79���Y��)x����7p�������]\Wu��0D��[����,�z���U���f�k�z�2���u��W
��E+q����Mv,�w�=�71u�7v�@vel�)���zw���6��3K��,b�+c��������\��gu����L7P.
'��rN;��\�W>�6��hGU��+]�i���;���nK����5u�w����3F��p
��=�M��c�{�z�zx����1Y�����������5W^R�����MqM{}]y�=��s:�T#��{9��@C�x:t����f��E����L����y�1fZ����k�\��Wn��[v�U<w���	�jy����t%M����/3]'o0���w��1��U���*����B9x���JM;�� ��{#bj,AZ�N��
�����Zro:�q~�t��w�G?������{G��-�+��p�t���x��������,d�	�R��Y���65�*�*���Zbc_��h�uV�~���<K�������}��:�_�����������G7��l�a{�r��!r�Apj�,$�8�ub�++_��~f���t���__��\_j�>�cF��v����G�\e�=�W�k\�whe�b��M_��h�=s��� ���qUB�:FN���fe?STu����E����_?�������=����%=�����M�U}�X�Tg��|���A/�1���S��B�������|�w?��wc���r�1��X�W��UV���]��W>FvkQ�_o��	�:�x\s�C�����Ror�N�7MhS/|�I%f�0�������}x��Zg��l4�w�|&��b��RA�f{��`O�:C��������Yg���%<�n�n��=�L�]N�����@o����O��wu��]A�([c���5����ll�P��2^I�}��Pf%_�h>�$���}����o/�Eejy�u/^rd�3W����
5�lw/�ohw�g�>���v��/g�m�������om�����C�������w[�����/�?g�\��)
�{��]fb���Z2r�|GUr�
t8n�����j�m��>B������a��Z�(�G�o����7���c�����7���UWq[�g���:��]};s�}.�\&����-���.�f�}X 3����
���_W�������>��xq��uQ���0���5�{�����L���_Ma�M�y,H���
�|�s+7k���)����Mb��%�U���������{���=g�T7<{e.�c#�h=s�M��e��%*9�����|4o��oww����	"8_���+�-�~��2�?Z(z�m|��;+{�����Nt��s���B�����H���������OxIN����J���.������?'a��i.��"�V�����I���������<��u�������j�~��e`�����h����������Y\n�ok#�.��}�F�V����}�q�W��*|�x���Q��-��w;�����yGu���;�K�?�
V�����U+�s�������o�x|U���X�|����A'����5e!���d�!5�������=��Ng]�>������]W����Fv��z��W|���s�1�����X���'�:��_W3����7�}�(�
?������hX��^���\����*��w�xUU�UU���"""#�������}�����{7�8[��U
V�V�Q���U��1��U�TAT������������{�%�{�%����zu�W]ATATATATVYe�TATATATATL�UTATATATAR����	�-�$���J�RJ�RJ���
��
���p��p�
��
��
��
��
�<�<��:������
��
��
��
��+�
��
��
��������q������DDDv��""-���������WTUZ��esO�����n��q�Slc�L��Lt�E1�6�1��h�+���m�tS0���:S��8|�T���n�slc(����ZsssmV��r�������].x���7�?������_�]��Zh��*WW����,j-���u�����n�q�P_��^f^q�x���}S�g�7=���P\���
�S.���u�������g���L�������=t��k�^��Q��k[�������o�DDZ""1'�����[�t�6S.���1�M��UU���_(}�p����&'s�Q�6w`�^Z;��WN��t�J1F��:)a��n�}|��*��v��3�s9�[(���n9j�}:�m������\�1��:�%v��*��Ck�>X^��.���U��.����o��`w=��^�PT%x\!�zU
j��(���>��:�e��c�]���G���C���Uz����7��s�SUzT�j����U�w��Z�ks�[����q������""#�F�h���DD�=Dlq��6�6S�(�Lcjv�eUi��h�������h�Es�*�-�G�����:x�����t�6S�*���Km�m�����������1��R��UT�����������n���T�o�U_�]{������F��2���#k������xuJ��~#�R��}^�����u�W@tV�n�
�UUc���m�mJ���=�[�7��5�=��z��]���_��F��sM^������_J?�z�G���Q�6���DDF""$��#o����~?��<m��as����9��^x3�:�[�6S��c�1������q�������g�A��N:q��g�*�[�6R��mkl�&j�5�OZ�EW���W>|s��5�����uz��7N�W��^�/����4�khe�����P�|wB��VP�=@��p��^��o���������{h�>[�;"�x^���[c����#+�T�P�>�P��v��~�.X��������xu�����tNx�R��8���=:z������DDZ""1'�Q�_���Zt�������t��]�]���)�)����>l�i_�C�WN��l�A��n�����1U������������4}i�����J��S�����t���L����W�R�r�Yw�m�wg~��y�<p?�>)~����W���@��#(J����
0���h��l
�������Q� m^q�G��tR����(���5Kh���!Gs�3��+���=b�_�i�P��6S'���7,�������x�����]=|DDDv��""-��������*���|�l[j<i���)���mUV(������:et�����iYTt��K�[k[eoM4�����q��Mi]h��uN�t��������76�&+}�����K��_u~��l��W��|��4n�kj"�1�T|������}�� :�6�����w�w�������"m�#��3���m���z��������1��0�=�V�M�������PqUL�����<G�O������DDE�"#x���WZW�w���:q��)�C���qn�l�S���US��8���jaUU��ce;��F-�)t-���9��4i�Cc���6�6S�c�1�i�����|��*�UU+F�u}���y�4*���0g�����g9�N^o���v�I���n�*�mT�M�71W���_Q������}����Z�U]��l�
��R��C���(a�.;��b3]��u��<��R��#�8����O������DDE�"#x������Tv��l��j���1�1��cz�M�7�n�������)��qT��8���{��t4���n���3U����i���\m�6�����kC��6���h,����^�D���[�6�5�4W/��U+���^O��������]����6Q������c�\�$#ld^��\�(��u�
����r����%`����3D��x����0���1�=��Y�N�
���j���C:�x���8���_Q�6���DDF""$��#e>U���KQm�m������]mkl������X[k[am�cU����4g�R�t����W
qn8�zU���|g�^������V��W���N���o�m�����p��BX�����e���z��]��VI5������AX3A�=-a������t�BZ��
����e>�q'w_�7=+�������1�>?�>>""";Dm���DDI��F���c�ckcj�h������8�e-T����YV���N��:c+��V:c)am�m���WUM�����R�Km��QcMU{��?���w�=��G��X���P�6�,�����WU~�//����^����i%T��%J�d�'x6G�*����;zi�����o�]����Yy6�yV����+�p�����fu=�y����l��qf��
U��G)uY��q�RN���o�������M�7��a��k��4���������:�J%M�Q�jt�,ZV/6�%��G��n��pu����gn�d��U�|�`��`���z��������r�%r������C,o]eLH"s�q83��t�i�{��n�E�����|1r���5�Vn����N�]s���(��5��d��P��n�C�e�1&������aTP&��&:giF\|�-��G����35K&���!*[��/C/��Ed�#�V^��c4�v���:�tu�"��/s�������Gq����C�����g�l�C�BR�I.���b��g["%��U����H�
�V+�*���zs����M2�v��l����
�+z��������Ja^��s��=�"WL����3
o�-�n��Ly�T����]������!�&���'^���zw+	�Zg��d@����`u{qS�;y�sh�����LL
^��:M��'�n�]�v������IW��L������y������v<��j"i�{� ��tOo���T��P�UE���c�^�=yh�81��7i����i��o����v-+���
��:yn��X4�c8��������dg\�3A�t���.�rx��Qa�n��g+f�R�=]��H*�[K�kb������;�{���:�k���:�Y�=�������]R����2�k������C�*
*��J����XK�����i�2�_fj���������7�\SN+f��
�
�s*������(�j",����-�������h�xh���[��M�;���H������h������XU�z����j�iYQ���ww)Bn��|�k,G����c����U���B�v���=s�����V������4����-�����\�~:v�^w��^����Wy����{���.]��]�#��c%�J�S8��:�.(�d�8�	���+@xC\��������V*;�����-�j!4/�;��}������������}�}�����m�u���,�@f�.8�$���_W�����mA!�3����g.>�,VuR_J�b��*��k�>5y���|����U�}�D��R��f��~�]]9�����I=��g��4�������b���>������7dY�������L%q�W��z�;��>-
u��9m3_uM�������G�,�~���4��
�������
]��8��F����h���{������u���~Bp��N���}������_/��/�����S�6~uGF�,i�*�����2�����p���p�����+��������+��p�0�r��$��nem�;�;����{:�2|���Fo���Z�kZ�t�x�un`��2�K�BvnR_��\����u[�_��w�~��Ac�m}[S�������-0^����.��u��O���}�>!��/����S���k�%���^-���������3i��u��r9��=�������!�-��e#�?��ev��;W���2;o������6��������[��a�E�������u��X=C�S���?D����m|�/�������J���f����������V������}���uX������fc�@��E��r���}��O�%v?d�&-���	M ������r����.���z0-�1O����VU���@��w�=�c��?P�LK������}y���u��3����z=�_O����H�]cO��-�S1��C,���{,��y�W�0�.��w�������FU�V�o�����G�s�hL��o=9���x5���A�_��>�����
��y�ve��f_R���-�|Q^���/,��wG�)v{;�����9�}/t> �b��y�i�~vU�v���m	�p|.�*���X�������l�-��^��>E�����s4y��t����J�I7�2*��{s��xk������R���7~��+Y`^Vq��h��
g����P}���?7{�X��`0�S��hC��9�0�w��4}�'����l	CF������9�}m�1�*��x4�Wi������C�"������r������.�g�m���
��%�T�x'U����U�����K����f��X32��e����Y�r��U�r����e�/`�}�-P��u�bT$:(fW'�U�*�����^i�e�<�� �
���s���J�)��^��*��v��UW�U^�U~���UU�"""?�z�}�W�~mOr��=[�����F�B��[���s�q���
��
��
��
���<�<������*��*��*��*���,�*��*��*��*��*���wj���*��*�[����U^�z�$��$��$��-�$���J�RPUPUPUPUs8n�8UPUPUPUPUW�s�y�uU�EPUPUPUPUU�W8ATAT@{A�q��=z�����DDDDx�""$��#o�V�+F�+E-���|4����8��6&��q��Z�6����hi�+�:q��n2��[+�t�����������������76����.-��*��xz\���O�'���x?`vcv(�(�|����[#���|�[c�|ZY��$�71T,�a���}���`����l��k��������Z��MuE��>�������������""#�F��4�������M*�(������h��(����O�Uc�1��*�Z�=h2��������)4�������u����.�t������oGu��;��Q���e.������z�����3�Uz���������?��w�G��VM�t�o��]������u	���<����e��Nei�U��������PwN0V|���O�vw��4���0�t�������	��Yc�{����?�:[�>;>_�"""#���DD�=Dl�����G&���<�2��l��N��Q1T�N8����ZkH�������j��U�6����V�*����6�������U:t�6����Z�)1Lt�6S�5|�����������)_o������?���E�e�&��}�ga6&
�V���s{���n�w�2��/�W��;>{j�M�f��E��')�_%}����9�6�������;v������#h�����DDI��F�|�U�������_�*����[��V���t����S��-����(c���6��B�t��]Qm�m�iUb�mll�������_��i�<���{���s���g�/���/�I���t���h��
��v��{��3�s��O'B<V���o.�D�N���s�R%�	�cpf<��}9�i�f.'����x8p������DDGh��"""#�i'��J:i��[��S�c��[iV��:[A������v���^�UZ���]*��m)��jp8��)j�[��R�Z�-����uT�W�UR�k?~�.�������p���M��r�U��\.����`����uRe#&�8����I�����V.���%N�2�QG�D.�?x?Pq��G����""#�F��4�����Q���|���E8������V1l+���������[����y.����RRIIJ��������l�e+:cJ��VR������z+*��LiOZS1�S�J}���������|����Z���������������b���}�Z%��<���7W������C��W-G���{Q�C��9F��
����T27Zy\��x�[==>>""";Dm#H��<x�)��j�����Q�[>���8�)j�Kh�xb��K����[Em���V-liO���;U;v�m����m)��@���������=��T�������/"Pew^7�1��A��rc4�fw=�g�u�Z� ���&���:�����!
�����v��Q�������DDDDG��""O=F�m�:[E.�kt��~���-�UUfR��cJ���*�uU�U\q�4�4��QX����T�[��S1T�-�����4S+�*�������z���3����5*�����o9YrG��[��/T5"q|�E��t��je��7@�`�����8B�����n;b=!���#h�����DDI��������U\qn44s�q����U1���K[��VheUc1�����t��s�4R�Z�-��J�[��S>}�������{��;�����V^�wmRk
�_��p����_7l}OR

1[�AV���Z��D{����Vos_����w3��Vu�.�_������������DDDDx�""$���h��/F:��b��z+Z4���m���[�Y�1�cC���t���1�ZWmUc���K�U���)uT��[KiMhw��c���)������������k��:���x{�^���J�����N���Y��M��w�Th�m���E�]y�,i=f�ec�����5��1������
�(���:���w| ���w�]�v��,Kk��^���\5h���X��q7[w�oi2pZn�eR���:C���S�N�q��z����Ukp��,}Tz���W��l�N^u��1�O�7�e$n�UX�f#>d�G�y]�:y���<�z�Q`O����]�ju
��*V*��tP9�����3f��R��W��s���uFh���Rx6�������5l���W��9�{w�U����b��.����e��VB��4���/^.=g\6K943����U�V�t��s���k�TV��+��O,"��f^��:��+�X]�
c��D8�h�1��B��x����`��Vf`�']�#7b�t������r�A�l�D��e������j���������fru#����[��f������"T��$Z�� ��G���#��pf>|��{we�;|wy,T������
��B���K�o�""�i��:�c����.�'ke���h����;�[��q�z���y���&��\��]C^������u^v��*v��\���f���@�(t>5�v�k�0�Ske��]�v����Oo3kJ����Y�j���1�j
�4t��j�=F�o�}y�V4a�u��5����t��B���v)���;������G����(��nL�=��C�-�-��3�����)w-�c�q���2��#u���3��XWV�k]��2���_[���9S)��e�"���w��*��r-d���8l��t��9��r���������//���T����h'�+O�������.��;�3��uD��S7������A�Ai"wf�V�����w�y�ka7��.�eq�@�w�c���S#N���x��%z��W�0"�P4��*J}n��Y�;���9G+�!��UKx,����Wd;���;r��H��T�o�����.a�O3��~����X��
������Wj�0�u��:��31�7�����K����9�t��2k���[:�5I���&���0'S�K�N1L	�f�����@��HV��������A
�@��}�x��������5h}���4����f�������~A�5����������kl�����}K���xa�3����M1����n�u�\3�����\^�������"���/6�|������m<������=���}��Cz=[�m������v�:>V���2������-V\�&���<�
_o�|�^z�Y����e`�����)+Z�8����
��N���{�y�3������g�7,�Ogm�7�>k�u�+�\������2���z�������u5�������=jr�5c�����������B?M�?
�\�/Ho�;�U��H��l7�c�c�r~48��
|� �Yx��w���f�x������G������s�]P���3������i��v�����.��m<�S7^S�`�>����l��Q }��e�}�^3~����JWVg�o�����%a���P��,k����~������q�o���������>��x���k���}�.�~����}_O�}�R���w�X���`]�=}���|�:��g}3��^�r#��u����:����>���u���k:������C���u���k6��V�U0�\�tH��}�`��gt���O�7;tug����V<u�f�+������}����}�/RY��c��F�=�;o<�O�M��&�.��B���fd:�Q�t���@����V}��s�'~R���`A�+,�O��`����sT��i����-��[�T��{�M)�_�;����4z�}�R��/�}w>�-uxg3�o���j��<���o�O�}Py����������4#�}��]� >���t��>g�\>�8��[��)���5���>��xL����;��L!�~;�o����W�6����W$��A_V�������rUM���������?�bF���BZ������99������r�!{+T?!���_����4__�+P{G�V�����b�������S�����1�3��<�p�:GXZ'���E��T��k��,���>��-����~�����~pr��R��^g��w������\�t���0*�G��N��,9z�R-��V��f	�T4����8��S������]���U��w��He^:Y��f<{
��9�r����U���WJ��]���������.\���x���%
i
�|��v���
��o���c9��B�*��*��*��*����<��:������
��
��
��
�,���
��
��
��
��
�
���
��
��
��
��
��H���wrI[jI[jI[jIQTATAU�����TATATA$��$��$��$����JKRPU=z��^�z�����*��*���+�
��
��
������;����;�w��Q�6������DD�<z�+��4V��U6����]Q��[E1�1�cE?�q�8�K�-n��cF(�:cE,-n��K�Z�-��J��[E>y���/_*�����Tz���|�����7�[)m��Z%�6N�O{����Vga�s^��:*�I5�X�=��������������i������wh�Ax���A��~u�R��6�h������DDGh��"""#�i'��N�Q��]6�m���1li]��V8�6�����K�[�����S��t��Q��8�)j����V�S�����E=���V1�h�:X�j��
����=�v��?�V&�Z�!&�,T���/V<z��8�*���hb�HY�����vU�
J+(]��*���1�sS�����q���J�+��� ������DDGh��"""#�i'��E>)V�Ki+m+��v+�lq��*��m����m)�)��c�4;h^��j�n���Z�[��R�Z�-�����m��������x���������������~�U����=l[w%~���-��"zwR��L}}��L�5��)YVv����]��3�Y���c�w*����so;������:����n�����v����""";Dm"""O�F�|kt���F���)��cG��uF1j����m����[����+E-n����Uw���n�����c1��CB�n����kK����_P�������y�������1�k��������n��fNg��>y���k�����g�+�[{�&��f������p9�����
V!�������������x,pC��|=|DDDv��""""<F�x��4S*�m��)uE���)j-n��4���8��i_ZVhs�����4S��1�cE1��1lhc����WZ�)�b��4W�+�����|���SZ���V���UJ����]~kw�����������wTj!�u���q���\�G_6d,���3\
�=���4�:qvh��:�P���"��_����]�����pe�b�U��n�c�_��6������DD�<z���X����U���)t-n��^401���4���+:cEy���W[����J��m9Jq���K�kt��e�=��T�����=�l����o���s�����c�b��Q�����{�����%�V��L��%��	�du>n�|^����3�mT�f�M�~�W���
| b��>>""";Dm#H��<x��^4���:Z������f46���h�N8���������\�+�8��iNR���U.�kZ�KZ����C��8���-�3��W�^�*���UT��-����Q7Y:�X)�x�[�se{r�Q���X���{/U�� �o�n*��x=��A��:����=Aj���������q�����DDGh��"""#�i'�=Q����c6����J�+��m)�tU��1T�*����EZ��WzULc^��7�z7Tc�q���Tq��j�kZ�4|i�I���R�_�UJ�s��{�w���<��9�xW��)��Y7��l�����V_sm��$\S^�}Z*����]]�a��Yk����&�z�EU�*S7��5��q�<G���""";Dm#H��<x�����Q�c
�)�c*�3z)�b�zW����8�MQ��1����+�P�:YWUKZ�U���e{�1�eMQ���C��{���M�|ok���Y����CXHC7Jg1�64,�VT���Sw�������!1��O+��R�uD0wC�s&��c0�e�Jb���U���h����=>>""";Dm#H��<x��W����1f�-Un���FR��,�Q���j��YV�Z����c�>j�WZ�:YV�Z�����?�*��lZ.���f��u���S����G���d����[�%�����������		g">�����������������Q�T	��� v�(�V,��7|v�	}�tUV����z�+7��}��WP���I�T<��`sE�o��,����c"�f����OhY&h���3 ]��y������������w$�1�
�Rw��v�s��Z�
�V3�P�n�H�������VQ���c�Z��%+�Xo���
�P����+�j�Uun	PJ�&7	x�����QkT�7r�V^���ms��&��]GO��8m�a<�RU��e��CERy���?�<���ZJ�����;�N���a�lChd�5T=4`����n�*�P���s��qdz����Ir���/�|o ��]::9���j�U���GaK���
�X�4�>�	�| �R�p~
���7�*�:u��^�wi�R��Se�n�
>�r�>u�]��u����pJ��6����A�v�R��i���Lg�IA��r���{�����x�����H�j�Q���h���{��gF=��X�c�Zh]J�o���	�����~��ev�WOj���C�D���E�!��92��[�E�mB�xNs�R��E����;�lZ������|�6ylT�i2��1AK�C]�x]�I9���\�7����[��_��"��w�����.��Pj�!Q1�ib���T/Y��NK�2�g�frOp�������t[������TV�������u\W���ai�k���{�7�]�U�n����#�� ����S�M��s���N�Z_\��B����@�o:������NP�!���>�������f���_qW�Z��^��-���z�����]�V���$[�Ku��U���Kv��uI�Y|{�F:�7n83&r��Q�6�d���2m�V�*�-/4�;��mm�r%.�����.{u�}un�Vx%�j���j��A�j�����Voui���j�����kj��U��P0h�g�vT�^�������.��[W��:����;w�x��p���e����0�%�UjL�H�P��d��� q��&�8��
��uf��.��k�K{W��5
�>�-1���w8�b��+��\Ap'��?JO������������GH���d������������e8C��W���}��X~9�H����m��^mfv�Y���y��{>��0���v��V^hJ���o�>��k����}���w���[��������W�������=�����]l��/m�@|�`�n�^SK=���{�[�y���go�|�x3}�����.��x}<8]��������g��q�������?�T�N$>�����f�����]��,~��T���+��O�����c��I�vQ��JL����6��{�S��5�D4�S��0�u�ID��,�S����eB�C�Fh<�We��_��y�����-�j�v$~W��~�oR��8g��zg��\W��]�/����7�i7���y�z��4A�C�@�����������{�������5V����^d��(���s:��{����_}��Q�ctU{��Z���>��/=����J_o�}������0��������U���|�7+};��Q�xQ���%&������
9_Uv�-��}`$����������${���UK��/��������2�������efc�0��3+3�jN����4���lv=�|xx�)�����[@e�;��.�.�����-
��|�����n�_��}���9R����_7�z���}<$Z�yq����l�A��c�CE�n�V��c�2�Y���>���EM��%�J�����y��.xQ�������#_��B��ia�|.V��b��
�onb?oX��~����=�t���k�Y���3�5{}���5��B^1ar5~s�5Ovu[��#�+7�����b���������>�%�������*�7>(	���'����i�]wVz�e�X�W}/��>��~[nn]��`��7�L��s����ks^f����y�~���&g��`���2��<������g�~>n{]:n����X��=�`l�������u�~T�+(��vz}7�b7U��]�/�����	o�D�5�y�������y�k:kJU+�UR������;f��6��������j\�{���������:0js�(���\����;1�T':�sf�I�,��>"��f�������\��Uz*�Uv��U�������������8�L�X�7w�wY�o��N�CU�U�Tq��Us9�g8�hU
V�PUPUPUW��y�8u�W]ATATATATVYe�TATATATATL�UTATATATAI[jIH�[jIww$�������UPUPUW3����PUPUPUPUPUy�9����U]tUPUPUPUPUYes�TATAT�����q��=z������""""#H��=DG������������c�)U�q�9T�8���m�k)kZ�B���eS�;Mr�q�������|��9�|�
�^��=?d���\�W���d�����kB�������Y���L��i��nlJ�V0�1aLPhX{h��
��r;����������S����������DDDDF�z��w�U�q�����Q�����|2�1�y���;v��2��\q�:��6�9�
��8��Kmk�,t{��{�K]�����������!�"e����
L�i�u{[��Z��l�/"���jKWJ����b��U�T��h)cQ�9�a�fa����������������""""#H��=DG����T�n��wUU��1�]Z����1�c�`c��TZ�-t-k[�v�v��}x�UUU���y
���s��l=-����
K���6^���;9uX.�E�[Eh��x�[R�+��@�n^�4�������F]!�^�����k{��o�_�;Z8����||DDDDDi�DD��#m?����8��Lc�*��c��1�|���1��(q�muUm�mz���b`c��w��~;P�B�k���U)_�UJ���W���e�u���}q��3.���f���c.V�X^n:y�cK���u�uk�*�J�sH���1f�����
0�A
����H��������DDDDF�z���Tc��5n(�n8��nP��-�8��8�y��v����9N�8��])��9��1�kZ���]����U{�����b��}Ct�����ZLX�5�6��0TC�2��MLP9����Jic���;�Cw3+9ztFLYAY�]��sd�����0�!�����""""#H�����""$�Z������1��J�1�_;�������y�U;m��2��1��*�q�����UkZ����UQ_����k�������]u������${N���En���1JK,�oP��dB�K�J��
E���m��LWbi(^���5�
y��������D���������>DDDDDi'������q�u�Lc��*�q���8��4�=8�[�UZ�����o3����q���q�j���oZ�:4��W�������s�������������8)�m����/S�j�,�L[*��[;7.[����n^��������	�vV���(��-������<=�G��G0p������""""#H�����""$��
�1�YA�c�*�Z��US�=�n
�n8���{��lv��(c��B�Z�B��������J�W���w������u���}�c_�DY�0U]�����P�BK��mm�P�-���i���<�JP'H��@��B0]��]*n��aT%��
�_]u�U~��q��_����DDDDF�z���-k[UX�1j-kZ�V����m�m��c�1uE�k~��c�e)�c����R���UR���7��3k�����^��
N���j�a�p��5�S�2�	M3��*��nf(�bV�x����3l����a���x�gL�/{����U>�[�������������"""""4����D>R����*�c���c���kw�Lc���n�WB����UWq������n�����(�	��9C�_���`*��Tau���0���t:�����DP0��>����K=�4x{����Z�{,{�Yy�Up���a�����kD�����v�5r�j�]9�#��7�N:�d���K������!��STn�hyW�7$�:+s������
'�f���S��r�����^�V���s�}[N{7q�wW��[���v��/u��6���	RHWy������O�K��(�J�JR�Vgq��b}v�)����Ouv���r��+z��,n��h����p�n�G����Z�(<�9�k5q�Vm��x���ZB�:�.l��z���f"����e��b���g��Fv��pTo�q������E����{T�r��O/g[�RS�i�	N�ev�i�l�$N��A�����3��qL��|k��\>P��r��"�<�UB������9�������Y��b_���W�j��*J�!���L���9E�%5M�����l��;:�If�L�$?<���Yif7��b���,�r{�l�{Z^PF���������m�@���x��<�����l��{$�@��qD���@�9.@�75T�ie���=j�*gt�s	�mAz�J��upkj��n.��S!whmd ��)e���7ts�R�)���������a�T�tv�4m���twg�1�����&�
�s
KuB��h���x�]<���M.����}����9�!�u�c}Lp�w:{���j wwu�=m������gwR%C�33cu�+
���rX���@�a���Os�b���y�p�����f\�1f�<U���2*������]F���v���e�R�wX��2�w��Ss"�zH@#���S��q��8�}�i���k�K���-�~F�v�}	��{�F�_������Q�%�Z�s�4���,e�U8w�fa�e��[�T��J�Z�����,��sGs���E)G|�����B]]NV�61�mu��\�[��q,\l�j��k�{�z��WN��'mI��=�i�)����������T+�5UV���O\��{V��x��t��WkmfX��R�T��.�4�1VLL���\��N1&"�8�*�U��m
�l����i��go�WG��}ba�u��������	����`��g_��3��������F���������8��F�������� \;��4_w���������#h���}���u����:��J�����c����5,����N���;���mv�R��g�.��
�=��IL�{�vQ�Y��5������1_O��t~�������:��j��#����gR�i�W�^:��o'�@��H�-�w���N�}�o���k�r��+2k��B����j�|��w����X[>Y]�5�w������:
y���AN������qp����+���m���|�F��~H�+��0MX�U����������Z������;�
�8��>�,���+����������;�
�������6����mf�{_������T����Im=r�C�SK���RM s���_U������X�g|�r�~�%�
:R���5��;�[��������#F��B��3��4�����q�F�]����`���0�)�M�����O��_T��Df_C7kjL�Wo��D��>��j�����n���s����.�_Y����
����p�w>?uj�|��5����^���!eQ
����U�� �����[�(������;���_|6X�v1-8��A�������J�����u����:�:e�����~���+>:;���|�_/�{p=P���w}�����-�
�J��O.�W��z�yJ�8��o��-�7K������LC3>����C8Up ��t�9q.G���u-��d<k�8D����������':�_
ZOQ_(��/�R4��s������G�	����������<���������>��^~�7'�c|3���;�z��f�D������A�>�q��7yp�>��v�0s]����o���~p�����9��]�z����c�Z{�$,�MSB���y��,`_V��.���~X3��Z����x��]����K��PF�r�y�����W�����*}��pg/������{���P�Z�*�_����_�3D}��������)f����  �wN��y-���n%�eS�r�����w5�9���=�o*f��I,�4n�A�q��:o��7��:����WZ�:�*�������UW���DDDG�z�}�W�}��{��7�o�j������8��*���3�j�*��F�B�*��*��K���dI)-I+mI+mI+mJ��*��*���,�*��*��*��*��*���wj���*��*��*���������	�����I+mI �
��
��
���p��p�
��
��
��
��
�3�9������*��*��*��*��*�����
��
��h8��8����QDDDDDi'��������8��Z���Qmm�f
�1�qJ�1��Qm�o{N����v����<x���uGn��c���WY��C�����}�/��9�o���������e���b���0�����Bk��U��������8�4��4�sSq�����.�<:�Ot���a���0hc���������"""""4����D|�kZ��Z�����r���8��1�b�KZ�����(c��B�Z�s�z���o��y����UJ��k�~��w���������Z��,uZ����u�3E]C��^>L��X�����S=��Bt=i��W�j��cv@��C]������""""#H�����""$��T�c��V1�Z�kZ�JZ�����lG*�8����m�n2���c�Uc��y���UW���u���5�����s^gm�oiM��^�*H�4s/���%��GgN������
����r)��
<�N�}w�����5����yC�c�<z���������"""""4����D~���8���t�n�����[��XZ�-���}�
q�����UX�-��m��Wn�����
��q��U8��9o��u�~;U_��������>����4�nkvP�Z�[&�
����c����N���;r�\��p�����w�?5��[P��� ��[y%Gi[lK�E;�<?�a������""""#H�����""$�
���q�4���Z��&X���2�\q�8����Eq����XS[9�Zemli�6��Wn��eZ���y���~�{���6�g�/���#�A�����.����eft�����e���Z�M��^�W�U�m;��^�1,���(�5`���c�f����Up"��RJf�=�����c���z�������""""#H��=DF��|c�4w���c�U1�b~�)�quE�k���1�c(c���*�8���1�c���y����[U_����������j��]�I:�����.$F�=PF�h�B��b0���l^
+Et�F�
�������h���{�8[���3�]��w�5��R��8��o_��DDDDDi'���Tj�c�Lc��Z�-�)Lc�*���uT����*�Z��c��V���/z��A��{��{�_�h?7�>��B�i8��3D&��(3������*��[O=J�ifQ��q��ZG/u��	��������������R�h<Gn<}~C��""""#H�����""$����)��p���������q�5�e)�[�8[�<��1�/��6��]�J��8����c4���t_�����������~o�]sE=56W���Z��uY�1TU ���o�5�;;2������)�Q�*����\���M��Q��
�����c�?����������""""#H��=DG�������1�v���q����Lt�#i�uGn����1�b�Z��Cc����vj�B�������{�{���������2���*�!�z�����[����$x�*�.���l#�Q"�95fB�����w�����>Pv��}~C��""""#H�����""$�*�Z������U������m.��n����k)kZ��ULc�*����_�G�e���v�\�]������!�)'��u*��"J�r��D������%1�����RH�4�����#�6���.������G�u��Jj�l���s�
�9)��*����6��-�R�n������b8���jz�${)�[�hq���sc�y�����[B��NP�����;6�r�p�!h����h*�����tX���t^�U���j�v5�;^E���S�.����pe�dk]e����^���o�/L@�Z��F6�B�����.��q���a�:��o��yC}f�jhu/(�VRr������j��*�e�)��������o���5q	t*����S��.l��rv����z��1��Bl����1�vu��7��;���(�:�W�9i)`�=�mV�M�Yu�yG��j��.��fY;�j<���i�]������5<
Cz��U���U�.�'Xk�|}�V�e�o:U�B
�h45X�������B����~��#'�f�P��^��\=�oF�#W��NUG��
�k�es�{Y�wd�y����wu���(�S�:���������a�������T��wZ��3	�\!�Y�Q#�x�7���� �}����)����f���r\�t���j�j�����D���-RV����Wi-����Z��l��p���t%���p
��W�������e�c(e��y��r��-�Z������l�/+<�YtZBwK��wJ��@1�W:y�����=�6�=
����#�-EY�o�8[:�����.��.�'�_J|*v
l���;�D������|��o���yu
�e(S��fM�����lY���/t�33��Et����<^�$����P,�,O
�V����m�����{m�����|l��;x�N��o��|�pi��R�u85{�����
p��ZE�7EP��N��Uu/����M3O(�����bY�D��y
��=�z{�������UTS��^w�z��s�J�Z�t���m��*�j��R���W]KB`�b��Z�	�`��	�O4)�u�M�g�u?V�|v�}y���=89�Q���
n�=.���-����~�V%�5uw�}�y�Vq�W�}�������/���O��Y�'Qg}��������_+���y��Xs�L��G�M\/Z��\<����������u�BX�S��=�h��Pu�sCo/�;�(�o�Z�
���hV��_^WR���K���������+���cn����B���g�7C���fs�P��=��|�#kWWV���pzT�(�e���Cy��W������>�%f������d��/�+��+���~1~���B�o�0}3����.���������|���������A���/d���TR��}�~�2����W�w�v_���{��=�M��I��;��������f-�Z:���������������t�D
V�����VK�xp���"��G>��v>�����PUo��;��_�����]g�0���r���2��X�>�c��@��������2����\���w��������,w}�,�����.�9����~�@a-�lN�;���|�n�2�Jcb����S��w���V������M_�^0~:%�}Y)@�Os���4V�V��H���7GKG����A�����}�Q��Q�Z:�V	�U��M�#s�%��W��Kw���Q|�
�9t%j}]��
���*����M�Sb�����������o�e�;v ��}xB�
�5�6���&��>��������x
!N�1�aFU�f})u�k����S��|_�~����*[�G�g����_L#���LvD��[@�;e����������P�|o���y���8���}��?Q��������{���y�[�'��6L��T�����Xz�O��Ra��$�
���@��F(V�{�+����nZ�'�&6	���u.0Jw�w;����h5�x����U
�B��e}��Tf������B�:�sG��1`�r}!;%}��W�1O�.��ce��Xw��������K�>t3�e��
S?��������]��6�����U�����������N��(�R��������
���(@�oe<����f�F`�?�?x�{�W]*�Ut�����������yr���.\�Nx���%Q*�|���T5Z5ZG�W3��s�V�P�h�hUPUPUW��y�8u�W]ATATATATVYe�TATATATATL�UTATATATAT]u�u�8^y��ATATATAT\���ATATATV��V��V��]����D������
��
��
��
�,�p*��*��*���33��;����=���Q���Di�"6���Gh��m�x��8��?���8���1�a��\Uq�XZ���1��Z�����m��|���7ER����y�5�?|N���%�U���h����K���S��K�e�c<n�+yCU/j���GE�6����7J�[i�����C�9�����E�"#DDDDx���$��([k[<�q�]*���G*��8������?:0�����V���T�c�(����8�}}���keU+�UR�s������b��w��%J&A61GvF��w��VV��s]�Y-�7���)'k�w�q��/)�T��Z���[�t��o0�AO�-��~~G���DDF"4�����DI�#��Z������-��kZ�UV���LU1�[f��R�Z�J��k+ZU�kYUkZ�>K��W������UT=��T������MpCm`���q���2�l��-�x��8^������9����73j) �������y�����_���"���""""<DF�z����V��eU�k~���>��X�1���V6�<��8��.����+�,��klR��>���U+�UR�:��������_���W�5,Kp�n�p��R�V!V����N��b�bcA��XGw���U��������Njo*�h+�;[�}~|z���DDb#H�����D��;~�V1�s���U<x���V���7��8��|�q�Z��1�QkZ��*��8��V����������z�Zkt����{����y�}wN�����J��*�2X���vN��kn��YcFZN%�e�������^��I�����sO{���v���������DDb#H�����D��;=|*��beU1�c�US�?2��1��
�c�����*��c`�c�*���������_���c���m�n��
��^�KV�Q��^�Z�Y��B���]m��k�Fc�m �U����3zW�#��;[_���|DZ""1�DDDG���"OQ��Jc���c�Z���)�c�w�[�7���*�q�8��r���n����xV1�c�>8��UU���[�5�����k�`�gX���S�I".�[^6��t�f���Im�����������^Z�eb��O
hX�����[����"���""""<DF�z�����8��<���q��V����*�1�z��UX���Z��aN��1����1�~r���8�������*��UR��CG���?���B������y�&�De���"��
��������Vqn���c�ck2���l�����]Z@�����Z�G������DDF"4�����DI�#���C�U�R�����kcLc��Eq�}��Q\q�����b��Z���Uc���=���|�WZ�������_s�}/���le7�d��ou��G+Ckm�
�0��,�;��������aSf���u��*��5��R������:[?���"-��"""#�Dm'���
�Z��eR��c�U+�3)M����(uX���UV|��U/�m�]QkZ����q�](����|�}��]�u���F�������=�b���R��Z�4JK�1�K�~�z=R0q{=�����Ex�5X�4�@p�U-O8���������A�Uu�L���Y^Eg���7+^Y\Z���{E\��5��
u�5����=&���[4Ac�di(=��B�]�D�����k��-������N����j�]W���ZS&��K��=)���K�]��;=�t���VTV3(��D��w%�������(95Q��{����S��vL���������O��cB����k���	\�
�N��q��\�^#����gP��v/��D�M]}�6�����r���t��\�3M�zn���"��u�KUy�d�x�JjVQ�n�����utt	��\�}��wt�� /��v6o����-�������Y���HH���]���%�
X��n��@�9�`7��9m�G��v\���$M�hWQd�k�9m���m����U%�lee��l��][�b��G���Z��U���\�������{}��F�N#����'l�{j��v��������
s��n��]W�M�����������;�W���a��d�N���n�8�q�9
��*���UK�sz3,v���fZJ_\�I��v{tn���wZ�v���v���+���`���k�e��0�us/Ul���/3�j�ppmnw>�a��1Pnp����������O���
����I���
��ItN
�f�����25��������6��p�.��"g`Q�������d���oOAj=�	���X�1<�9����Go=M�KD{�*�+��H��@F�r�D[/!F����M�cM�6�(����
����*�]����XgZ��\��:����=��/���_R�Z���2�+
^#y�����'�c.m���e1���r��1����Q]�:���ko-����*n����(x�����Z���O�mn'��V=�x�j��	�|�o]�
o[y��9�0��ur�����oK[x+i���rz!���$s��m��o�����\`����O�/<��/uWw��/6�t���[�R�T��]Tu5�cb2���`���5S��V���l&���<�s�{I��U��w�Y�R�Wk�&����nZ����9R[�6��>��w�b���u�]O�8+���)}�he�|Z�������x,�1R�`��E���&�7��~���|%}=�G^U���������{:��w��}�9���0>s*�}����������~�_P�����f���<������*����uy��5��;O�g���;��`x�1�2�p���)�Y��G��}���Q�7�X����W��\�>�������������'������~���b��/������^woB��0��+?}��o�o�J>%�J�}�>����lC>�|7�r��.h�m;>�d;���x8�W�k�h�f�������-����[X����Eo3+�`�-=�������>\v����y�0_�.��7y^�s��N|���3������La/u���9��MxqxS��������!��~���V�)-.���7�]{�Y��z{��q^./��f0?�@������\���g��&�P�����1D=�k��_p�p%�uC���x��0�>��+�@m�xHSH|po��^�e?.���A @O���m�����XuP�;������W/�~Vo����U
�Y��ctx���<����N��J?}��;���������f_��{��R9����t�������+�������j������7t<%������]�-;[��e^���=��}P4.���^��`]S�=���R�DO��f�U�.�
���^�ZS���	]]>C#�$�n��j�}�w�����;��:�����d��2+����o����mn����eP�z����������S@������{��y���2�%��
�lv��P>�h���K{Q[Y/p"B~�_6�]M��3������]��/�b�*��s�f�J����_&�|�/�aY2O�R^�M ����k{�L�oR��p�x�7���<�]|����z���}�,�=�lS�����33~��R����N�%l.���[2`��=�{���������������)f��z���q_��N����-��J;�j�u����RA;�8��M:�;�����7w[��������z�U]*���U������������������{���{������o��N�CU�U�Tq��Us9�g8�hU
V�V�PUPUPUy�g�s�]Uu�TATATATAUe�XATATATATAT���UATATATAT	%m�% &[jIww$������ATATAT\���ATATATATAU�y�<�uU�EPUPUPUPUU�W8ATAT@�����q��z�h���F�"#h�=Dv�����8�������4��R�k[��8��.���k�-k[�8��>��R����kZ�2���7�"���UT��(6�
����yH����wTR�]e��A#���7v�����.�I��f���	+{�e����������;��Z�h8�q�������DDF"4�����DI�#��R���x�R���>4����=n�1�N�*���<t��1�1��r����qk�J��8�)�c��[W���_-��>}�}}����ky��eW����7��*L]J����J)z7��K)��L:������E���ra�x��8��IkhfL�����}����<�|u���v��?>>>"-��"""#�Dm'���z�)�Tv�����5m-m�UV���?;n����k�����ks)Lc�P��P�-�T��o�J�1�<��i���*�����[c�UQ������T�z�p�+o�7��*�U�m#x�{1�@�-ZV.mJ�����Jv�^����S0���7.U�-���8&�{�����|z���DDb#H�����D��;{���q�:�Sc�v��;���q�1U�cEZ������q��r���8�_m�\m���T��8���o�U(��UJ���;����k��3HIW��� �`�49�nh���&��+k@q��kz*��J�J����N�\�3}��*�������}��c������h���F�"#h�=Dv�����'��yUU���wUU�V1���������J�o.��J�1�x��Cn8���V�����q���������T*�UU*g��|��������B?7Q�P`d,�;nb�CD���w�A�-���o�Xr��I����"!�Bl��v��*�-n�V
z/2��=�<#����"-��"""#�Dm'������S�n���c��v�q�8���mkl�}�Q��N9[�5��r��[�7�U�������6�;O�j���v����������o���N��hfj���R�WLL��F�W�������e��U"�"�U�B
���g^+�j��FH�^��\����u�<(-������Di�"6���Gm����U�b���;�5����m�n�����9U�qjkJ��Z�J��ut-kZ�KZ��_N���{����_�Un*��!�2��:�X���hjw�ff��"N��mk�
mcT�j�F�[;oM�����`{���	M�u�����o�_��|DZ""1�DDDG���"OQ���(��8x��1�1uKZ����?}k�\q����c��1���kZ����]kmUT����W{~���������*��i�TsC[�������]�Z������Q�ZPA*4�AEG���Mzoj���^M{�����x�����h���F�"#h�=Dv����c�U���2�1�]Z�������kZ�5���kW���-V���|jy�J��UJ������|�1��_��j��k;�^+��U;�w�m[n��Cj���Y�N�iL�B��O���[��������Di�"6���Gm�������V:c����[Tclbw���v����ky��S���Z�q��1��W;���>k:��3��s�p�:E��.�6.�8HO�*��Wf���1�4��^����3d�i��(����o�Nm��Vun�N�r�s��\�4��u���7������[z�"����G��Jk$mms��3����
rvq���{3�k��
�+��[��-������p�P
R�
�V^Q��*b��kZvc��Eh�9�9&5�Q�P���(eP�E�O;�s*�X��Q��u7bup+z���VX�z�#n�����&VSm����r3s/W.���]�h�
�B����xQ9�_\92�o�<����mvm�Y�J���r{5�����S&���$�����Uf���K���N�9|��9�\�2�����t1�Do�_~�����i���M�V`yo�o2�����r�}�-��+-yH���bq{{vY#HM�{O�\����P��G��V��i;
*�tfy�V��f=��VA���*�B������+�H+Ur���(^M4�����7�S��ox'�s������s:��Cu�7k����1�%����t1cW���:r$%��,��Gs�	��N�Y�����+�7�2n�)��Y~�X���F+�������6�++0�}P[C�������OZ�Fe'2 ��xw:�U������z����fp�������moJyc�������[n�`��K�����;������*�H6
��N���&�	x����}�r�`gp���x
�E��L,���p���2��]D�U�i��f��*�<�6L��P�{�;��EV���3� _����Y����O��^�2�_j�-U�f������t��p]���n����L{I�9���z������UJ�UT��Q{y�7��~u;��=����E$B�j�[v�lu���^��lW9cS����
7�jRb�������k2���un
=��1>���Z��������V�2�&��F��W��RG�}q���wF��+b�!X�F�������'I]���������G�4e�p|\/����r�x���e��c�,����R�T�U.
\f	�d��e']I�11Xb]h�o����M���'Z?�.���CT��gM���?d�
��5���%wC�)�O�5��J���:�VG���2�9�����2��5; �K�_�V���{�2�vN����h����v����Q���;�w�R]n����Ng�wm{�>]7/�I�����N�����+a�W��g+��5�O���c�������:|�T��?��}��/��������_�O�?�O�{�`����%���G}�.������>�8}�U���P�7�V��������]|�����w����n��}�e 9Ut#�?k���5�s�/��DS�������&�A����%�k�doe��wem}6�<��eY�qJ��{�[*�$o}(�3��9����3�Z��Tr�������c�{T���;xHW��C���^_��s��lNc��4���N����!�_|��_r��}�uv�W���{��F=[���_?�r|N}��
�������p�����������]E�M�����9����)�@��=?X]�}�v�+����F�B�",��#Q����+�s����__����f���9�KG������w�Y7J�}���h����+-��>��yC%��f�<��l��{'�����S�A�K���T!%et�����	J��|u�Qd�m�Sz�<����ha��Y|������,�o4Q�B}W����8�g{�?/����Q%f�>�������>?�e|��w��{��T��|e:���A�Zt=����v����i��.���G�NV����Z4tuW���JU�J�����������0k.�\7�����O'�}��V��I�ovfw|��n���b�U�W��V���������M�;��������w��{����v���UR��US�<?�|���������������e�i�`�u�e`"^
UN�v^�2���PQ��������)������g������W\��UqU��������K�.\�r���q�w��-D�i�G�mP�h�hUkx\�c�AT5Z5ZATATAU�y�y�uU�EPUPUPUPUU�Y`UPUPUPUPUS��UPUPUPUPUW]s�gX^y��ATATATAT\�U��TATATATZ�V��V��]����D��������
��
��
������*��*��=���������>w���{�z����DF"""1h��"OQ�����1���k�Z���p����U�k����}�9U\q�8U0�cuKZ���u�^U{�{����~������������jq��Ufh���on�n�S���q2��8��X�����+2�n��gt:�M�{�*�����y:�D�{��{� ��>�������z��DDDb""��D��;���S�8�ox8��q�(��9tZ��~qN8��-k]����o)�t��Z��|�=R�_����|������_�z���=�z�"H��r���
�[�V���������c7���{�a�h[�oid[+f"�j]����0�Z??=||z�o^�#���Dm'���U�k��kt����8��B����������1�-k]��������I����W���������W�����)\��ym"L�fd����Z�!w)�����y�����M�{N-�CMk	S�r�a�h+�~����v�}~G���V��"1���DF�z���)�c.�1�g�Uc������v�����y�X�2�kZ�e1�g���w��]kt�S�UR����:������je��n����f�k�vw^f�5�����3U�Q([�U��S�v�Y����\�m��k�y���p�UU���-�������V��"1���DF�z���|z�8�����c.��k_��1��c�7��q���e�3��8���c�|���UT��^���x��������(�[��65�YK7��'�^b)
i��tf�M �1��UE�����V��.�U�8���O/���?UUx���q�������z�����DE�#h�=Dv��1�g�1�e������U\q�.��k^��kt�R�������Q�c>T��>�J�UT��{�w������9�d0pR�ov�,m^�v74�Kqb�4��T��h�s
u�2�j.��C�����]�}����z�j~���lx����_�[����DDF""-DI�#��ct�����3c�Z���Z��Z��mk���� ���������}������op����m m�
v�%�r�5��m�o^k�.�$�����h�������f}j���������������o�����^�[����DDF""-DI�#��Z�T�1�E�k�U1�e�Z��2��3�S�me���-k^������J�+�UR����������P���t��5��uzs
�i��5���Fm��P��j�����Z)cA��^m�@nf�n�WT�������<[��������z�����DE�#h�=Dw������2�Z�������x��}����:u�����w�^y������UT�?gz_��_�h��+�(a
������
��j���������*v�S�U]���g���4�f���/�f
���}����<[�������V��"1���DF�z���|�c��*�����Z����q��V���1��)�c-V���Z��A�����q�*�`<"�����,T��3]1n�QU7��*��
�GR�3k�m���N���i��!��vK��T{����kY��\�7��A�Wpu&oJCoR�n�x����R������%'�H�ekT��y��R��X���Uo�Nb�,�gOVq�
T���W�C�DgI�h�{CVTOM�`mue�%����\'��;��J6�\�#TFJ�lI�R
����4������$�G���:
��N�B���S���:���'�>��f���:�u������A>��|Z�]mhcf`���n���wt��	��XX���{H�C��^]��`��]��k�r���M���n�/��p�f�D_r��J�r[u��5������Y���wY�p��b��71A����U����}`BT���.S��'u���,]���/��(
�����buS��8�Y�c�Z)W�$��F��sr��|.�����=
<�Ad����u���F��b[K��}JX����*,�����>�,iO��r����(�D�d��h��	����tp�3�<�P�U�X������C@������O\����J�*�1�������z�g��O�����+^��43!��Y����iM,�������C�g��w�V.���n>�����]��{,=�q��P�sNae�H���9�T�B��T	l��sr�uMh8�KU�s�\8�K*��z�\��i��z������v��L��cw)�Whu�']V1��.
!'DA��/v����|v�\��ej��0���������N�L����/z�8�^������{�~H�������e��6�s��d��sD�n3��:��Wl���k-�n#bm4J�|UpT��:���V����nw]�C� �F�W��-�_OT*�44,��q1 [[���S�����|n����NI����*6B������<y'��On���W��c���_{��x\�0����!NW�u�z�|��+W%����65M��9]C/g]���Ym7
J����V��Q������n�|jY��������������������6����ky�w~����wws���<_�<�^y���.S��|���v���T��.\Bg�SDd�,��"k�V�o[���M
^,S��}���}�����F.�f�������f���cp�����g�3�]���5o���Y��0��S�:<����u���o�N�5wff��G>��)y������
�9�r����S����~����o�~�p��������������R������4�Kf,�9g��__`�g*�Ui5b�1�P�:����)�e^#�����}���73f6����{�}�����N�28��_W�v�v��h�wx�T�.��V�l��_��5�
9�~��o��6���0�.������I?FM�$y&�"(|��:\7%
��� �eg���wbz�C��vO��C+�x,�k~YN��|�~(�n����rU�8yU�JuK>G��t���	"��%M�_n��K�����[�CPku�B����*�.�bn�v}���~������fT��"k��!����yi������?v���*�o��a�yo�,c�?H�x��gZK��E}�F{~��\�
'�{�}y8�?�^O����g��n\=����e��U0������}�����_k�/>����~�W_b��W��>��D���~��fmS1X_���W���r���v�����������>g�����[�{]��g������x���+�.3�v�a����_w��z��;��+��D��cO9�����}��/�vc�T���]}�+�2�8][����s*���+�5��h�/�}��19A���|x�Oh}��FL���oX���}���m��[������ts���;w�=�/�.�_[�z	�&���������x���}(f��i�Uw�k��}�W�w��u$���xx{��{���;C�����n�628e�{JZ�E�bSR����qnR����;l�h6�yZe�n�R��mmf�n����m�
b��@o�Z��U���W]*�������\�r���?�!�qI_~"���]�������8[�U��1��TCU�U�TATAT^g�����U]tUPUPUPUPUYe�PUPUPUPUPU0n�UPUPUPUPUPUu�:�u�U��yTATATATAU�5[�ATATATB��������gp�-�$��$��TATATATVU��TATAT������y�w�;���=���^���Db""#���$���Z��e1�gc�z�1�-k^��um���:u��K�S�}��k���UJ�s_]s�����]�����S��E�D���-lBi���tl������"�`���a�0�k)3�r-1a��q�m���Ux}���n"��?>=|z�o^�#���Dm'������3��:�c/kU���-k^�Kmk�����9e�k����_�N8��+��R��UR�������{���:���]��fk��9l�i�Mf�Qn�b	���/j�n=_�h���nR�����O9��<�7�^swO�UQ��-����_�[����DDF""-DI�#�~�N8��Z��-k_��3��2���wKZ�e�k�Z������iJW���|�k�n�<��s^o8Sm^����V]:���N
�W��#%c���>�)D&���v�B�[��/n��zj�,�������X�������^���Db""#���$���Z�WkZ�����l�1�^;�U)�U9N8��������������|�I���kb��UT������6��_���6�L����sfM��GNM�ou3�"�����`�W����!��^�C����
������CZ8���^�[����DDF""-DI�#��:u��N�Z��w�c�r�����y�~���~��c����������U*�QD�9�f^�o���a�L��	���]�5[���+a�����p���ZF���i�McR�E���y�l�lffo���������|z�����DF"""1h��"OQ��c�-V�K�Z��?>wLv��z�Z�/zZ�-p����y����1�c>����W��s����FW����P��iT��YUbQ�d�3r�G�7^u���*!$;yW�{L��l�V&)��������h����������z�����DE�#h�=Dw�c��k_��c���3�Z���N�:t�9�c��N�f���J��T39���{����k��7����@6����LE�r\��D���UITw��[�h�.�GLnl����W������^O���C ���?#���V��"1���DF�z���N�t����MU���Z���k���\Z����X�3��k������U������7���r���/�7�U�Q�����B����3�L�uF��(��9��J����Vv���jX��2\��Z�GB��Iz?����c����^�z��Q����DDZ"6���GhUV:cf�������c������{����:t������ew�[�{��*��W�g���������w�_��R�KyI#G-b�Tn���b��A,".n���u[k/Q1�����r�
n
������\��^5�t�o=�z0A���D�z�o^�#���Dm'���kZ���e=�1�8�1�c�cl��lczZ����P��mm8�Bm�C��sl+T�z~���_1��Ef>�X���������?��}�����u�k�������5��bi.t�����R����6�y����;M��]x�����6���KE�f� M6���t���dZ����d����^n��c\��-F�.���z������_���Wxj�,������/��d �	�YH4�/!������������A���%y����TX���=�zj����W� ����j@
c���$BH6�o��)���U���~�}_X7��4�W@���G�C2������#�U�umUND�)�q�J��qW��r�h:��;U�WB@�$�����b��E��L���I~p9P~@F�O�Q��=_��D��?��j����u\��A�J�RnC��h<��PwU�d��8C�=hs�?�0?d�zHd4�����������{��E�#)�����{*�<�����%�]2�kI5���0F23+m�h���h������[Z�V������mF�A%d�����E�W6���j�l�,�fT��!fD��J��\�Rlm�������2#13*���*��FJ65mZ���V���DX�Z��X�)T�mo�m�4
Je"n��
A�{�l����U�#�
�M	N�������9$��Oy��Y�,I�|�
����9����;@�8�E�S��CUA���%3%E�L���LUbE�h�bT�2�l������D�T0��i%u�h;��:!��$�)+�pnH2*����U�J�pn:����i%~�|��`4�|���R�H�eT�H� �V�r����`;��#�D�4Ogi)$��jQ�b�!��z�����Ot�d�=�s�����W�*>�=����b�����P�"
��$�BRI�;��^�� ��!|�OzA��N�y%<j�����@��A�U/�U2\��R{����W���9��$I7�� �L���lH;@�|���E�x��q'����WD���$�`�1E���6�]��|�rB�U�V��`s-�T��@��r%$�2JU$�@l��A�1	�2�U��s��G��D�%$�����U|���	I'`s!{j��\�A�B���>��:P��<*�p�d���&Npt����P/l�D�
U-�eh7 �E�H�h�DM���&*�����r��1%z*����!�9����)��S�	�C�:$��d���@��Jt��U^�xDOc�^`��{�S�|���i�>Z�kM��km6�m���|�"H��J��S�/��e�^�?����N�I��{7+rec�����������@&��U��sP)��4��B]��{|������q&��%�������`|����ut��;�
���^���k�����z3�p��������������%��b*�h�U
5j����6lW@D<]�Q��h�n�X��Z����v�����[�V�}�{����C����.wy
�1��N�>)fF�t�^���C ���|�$�U<����&��mV��!d���/82
����"I�VT�Sjk	�M��<��=�9�z��Zq"I�1%bE|A�_j�%1N]]_\A���U�lC�%m�t�U1%}�>@y��]A��*��;�U���S@�"���T��t����G���fff�����6�����X[2H�z@����O�A�"y��	�=�D���w�����W�C��C�8"{�������������8�`��8ffgp�=`�-���A/F�{�5"mU���j/H7�U[WZ�����(+$�k=��� 6]��
]����������>��� @oz����jZjm��
��,�4X�$mm&�AEU3(�l�����jJRQFam��45h��f��l�(&5)TJTE-���j��m�1F��@������j�J6��161P���PPEH �q{klf�b�5�a6�5�f�Vm���m���Z���R������L��j)
��� J6��+UV�U`���e���Z���[5E���h��-%U���m�Zm�����6�mM��f4�����P��1L����i���6�v�$l�+YU� �[w7#�0��!V-X����;�I��6�V��(���r(	@�W��>x<���u��`n���������r�5���L6�R��kY)�������(x�p.����`�`!���v�M��s����Lkf����Q�J�PJRI$Qn�������90l���`m-;.��`��ICZ��F*��9����mfAKf�*�oP�xA�`��wnA6��v]�km��J��B��u�I$$����1���=�pwV��	��t��`��6qGMmS(���[���H�Q���*T��|A���`�`���0�����,4��SYi��gJ��R��V�U�����s� �w����a`�!�0�������6�J������IPV��1�P�y�!	�'�n�vu�c��uZ���D�3n�=JP�R�l��42�P�=����;��0�l!�@���&�RdT�(���` E<1�U���4�`�d`�M���TIQ�4��h??UUT��S��UU)=&���bb4bd�A�`&z�$M�F�6�"�d A
����S=E5$F�h��2��2���=O�?���������Nr8~Gr_�����������:yqi�}��ks�<�|�����[[_:�#2Z�M3vj����K���6�o��������7����8G
�?�$q�I$	��]��O��V�����e}������������o���[ZI�D����I���c��4�I��S���'$�!8�K�sv�������W��]��~-�[�+�^G�������EY�3��BA"f0F�fd���&L�I�b#&�2Pd��GwAs�3	���D�Vt�% ��Dc�PDD0d���III�	���&$$�����&fHfS)����23!D�������1�\�c	$�N\C3!!L�@IH�2d�PJ3���a"&DL���LIa0���3!$Hwp���#���� �JJJIc!����!2% Hh��������� ��D�	����D!$2C!2Id�dHffd�3	����H���	���	!$�	!���	3333�Y4iDD`����a1$RbHLHd�� "D�A&	$���D���&RI&Ja�����L��	!&L�$�1�c�	u�u�A�h��B$��"""L�RDfBf ��$ �2�$S0�L�� ��1�
3!��d ��L�H &$�AD�0`$�I�H�$ !#!a,��MR$Hw]w;��0�d���D&H1�DE�2� �&ffS(f&��&2��d�B���vH!#&HL�I�12"H!#"`L��fS4�2��!���D�&w\"	JDd�!dL2`�1� �L��� ��fQ!	�&s���� ��$�Q!�d�!IB��� !�D���I�$��	��0c$IH00�HH1�2A&L�P��CIFJH� 2�!2$�&`333)���CwvwW0$���I���&L� I2dL�d�&a(H�R��"a�!3$d30��B�n��H$2`	!"BdM$��8D`��3  d���00d���&!	$cF"-@I��$�"��$0����$&@�IA�2����JA� H@BA&d$L��a(�LI�"B �2���� $3)L2�%�F=71�"D�S(B(f@L�&fN�Bd�BC	���H$���330I���1�1�������IBD�I!�@@BA��b#�F1�S0�#$I� dd��LdC�AD&$�Q%&�(���,���&L3!���!#&�I�I�0"A)�L �0���HL�I��y��2���b�����&���L��J((�b�0�I	(���I�0&��!���I)�R&e!L J$�3!&@���2@3$$��1�������$�BS
�aBB�f@LI�	�32&`L ��"2dd�J#FH@R	��@d���JD�����1!�P%"b��F��$$&	"1F	 IBD��2 1�`���4�2	� ��F>�h�b�����& 4b�4lQ����<W�0Y
�A2S3"beI���0�"`�%�F((�"�LIE!Di!����H�����C)L$$AF#D`�Da1!	�JdAa��"CP�B1��Q�c&ff!D����d�4%�AH�!L�d3  B�))"L ������1����c�ffBd%$�������������I ��$RAEmB2! ��L�&d���f�L`0I�� ����a$�$�1���HI	!�$�  �$2$HD�	�� �=� �D�$	$�4��b1�&B$H�H@HA��$���RI&
P�D�&P3&`@��Q�(#!�(��3 �H�R	�"f�&M���uvJ"JL� 	(��1	�HBD�&��2f$I�$�I"S2�@b
H#!�"��32b4�D�S0�FPi�`JL�12d��L&1���A��1"BHCA��M�$�� C �H�H� �Y"�#�4)0i�"
"(�JLa)6�Hd�D�D��L��D�L��""`  ���d�������"(,Q��DQADD���L�DBa(JLI��%Bd�$i)"�`�BHD���2I$��F`��2�H�&%1 &�R`�QQ��D�i4���%&�1	�&M#"RI RIP�D��"�2d�AI`0	���I���3�0$L���i��I"fI	�P��d�H ��!2�!��	&I	IbH�A�(d�)��FBPh�F!�Dd�����!%��d��L&��"$� �A�	)�f$��"Q �HR���BL�fdHI	�!%$2����(
L��1�1������30��HH"J\�$��F��L�d"dM0��03&L��&Be	�1I)BD��3$P�L��	&I�I4A)�DRi0&���H�d��0�D�d @��DA	��D$�0b)4�#�0��0��!"2&J�""1 ��2Rd�`��D�"�"bd�	$�@�%���($�""CII��$�H����(�F#��`���H��!A���r,�@��H�hBBbDLR`��C0Q��)�� ���@�L�d�&d�3!��wn&3?�� ��L�f@I!0�Db#F#�6� 2!��'�P�K�*�����3"dF
)�a�����`�@eL�,��I�)�4�I�I��d�A "F"��h�#b1�b1�*f!I	$PHRD�D�b$�L�(&Q(0@$�&�&i"#b;�E!!�I�L�$�i�@����B�"�4PS! �$�h�DLH�����I��$���b(��Di"A0�bLa"I4��!��%&JH�$�4���&0�BX�1���H���w^d��(1�cL� �J��L��F"��Q!��"��%�Bb3���
AHP2P�`��(�A��Q���R`�3
I�BI�1�fS f$�����%$h�$�QT ��X����,X��@�S0`I&��)P$`0�I��!DPQ�
dB	fA���y���!cDD�i0�(FRI&	�0(�RDD ��D@�#�L P�!��X2X	*L$IFH1�#��2d�DIADb�,h��DIb"�bQ#��mQ����JH�2F1K&&J1I���&��),A�����& 
3H�2DD�R�EA�$P�0$��4IA�%&���a� ��0BR��B2���I���$�A���FL�Q�b�F)(J(�H4@Q�Ec&2b�(�i$�BbM(�X��lfY0d��4�%%&��F(J�(�&���F�����D��w,d�RT1L���@���2�B�1�@h���&�Q��5�,Dh��R!�D�Q�dM0b"0P���b�2Q��JLF�&�d�RDDDE��hA����)�i&A�����b)
F3$���#$�	P�$I�d���#1�LH��S!� �J��;�DAS4%@L$�1��L,�$����S"(	�$� ��$$�d��A�BMQd�BRD� �L��2"��d$�e"�B4BP�4	&�H�&��0L�d( �JIRX��H��1�-J���A��,c%)()4!�F �(�i6
6�����L� ����#�����X�4l�Q�6�0j�$�b��c�����1��"$4F*�,TI�)0`�&m��E#Q"���Q���X���I��F�TU�2d����*�D+Z��0[V$����rH�$����j�)+l�2I��b"
�`Z�(�� ���0W������u�w��p�����������Y����������#�������r����w�������o�������y���w��#�Wp���-bMY+�������Rj���U�F�Q��b�ch�k���nZ��j5����j
��h�F6���j#X��TZ-m����5sQ�kt�.[slj5�+��E��F�Q�-��\���W
Q��������%���j5��-�6��Q��jB�lh��EF�(����X�[����6�F�Q���-���Q��j5�U�[���Q������Tj-��j5�ITX�lTk�F�Q����cQ������F�Q��h�h�5�F�Q���co����j5����F���5�F�Q��j1X��65��Q����F�I��������F���F�W5sQ��j5�F�Q����j5�\��Tj��j5����F�QF�Q��j5�F�Qb���j5�F�j��Q�����j��j5�F�QF�Q��j5�F�j��cW5sQ���\�j5�-�F�Q��j5�F�Q��j"��j5&��cF��lE�j5sW5�\�V*+sW5�F�b5�Q��X�j5�\���E�j�E�W5sQ��j5�E5F�Q��j5�F�QE���j��j5����F��m�F�Q��j5�F�Q��j5����F�m�mnj��Q��j5���F�Q��j5�QTlk�UrwZ��RZ��W�\�j5sW5�\�k�F�QE�X�Q��j5��W�\�k���Z����F�Qb���j
���j5�F5��cF�j��\�*��nlm���F�Q���j55�F�Q�������m��clj5�F�-�5�-F�Q��cX�clQTjME��F�h�(��F�j��Q�������F����j5�F�QF�h�j5����E�F�h������j5�E�[�F�Q��j5�6�F�j��Q�����m�F���j5�F����cQ��j��j5��������Q��j5�F�Q��j5�F�Q���b���Dj��������k�����F�j��Q�����j5�F�Q�5�EQ��j��j5���m�Z�F�Q��j5-5��Q��lj65���F����j5����F�j��Q��j5�j,lU��Q��^5�X��r�Z����F�Q��jKRZ�F�Q��E�5cQF�����(�65�E�������U��%��j5�j5A��j�F�W5sQ���\�j5sW5�F�F*-���QP[F5F�Q��j5sW5�\��r�lZ6�F��-�E�Q��j5�m�\��F�W5sQ��j5�F�Q��j5�F�Q�Qb��-6��Q�����j��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5�F�Q�5�\��F�W5sQ��j5�F�Q��j5�F�W5sQ���\�j5sW5�F�Q��j5�F�Q��j5�F�Q��j5~m����������~_�������r��I���������i��g�$!	�����(��z�����A�
�O������U���/���������vg���
�ih��k�kMu��Yw&��AW+��$��u�D�jmr�;v�������vc�~��yrzJ�����8e�g��=�gU�7J����I�]�
��%c�/���B�oYT&n���tsr����s
��H���q:�{���Al�R�����F�������eLK�
����L;����kxJ��(]i���8�v��f�k���*��o���-V�W!�U�B��}����ws���#v�c�KDR���n����l�z���2�"��
jA��2���/������
�qN�M��m��cXh��2;�����	L�V(��y�F�������i�r�JYI2q���n-Np�������=6��e�0S$�T���g�E�[��$y�o�l�no����TnY�����w1[8X��u�*�_K��k���6�e���9jv���y����v�>�������TT�gAT��-S�Y�l;OZ�^v�������0���=��"�+e���?IQO�,F.E��{�#ow �������j���*���=��.�IP�&gPm�j�A�����:|����r�����
dB{&�u1Xe���;t�0�E�)�J�i�������U��w��g�3���va�����r�i��Z����q�V2�<�Ru�����V���vqeJ��c�j�����M��9B���������]����h���,��������:(���!*OY�y)���C;w5c�D+b�]�Ip��b��Vu�v�*6o��������;��h���]��e��J��Xi���;N�����/7%s��k����&�1os@E9�:��������tS������Go����w�)�%�e<�%��M�Q���)b��4pz/
�Lq��v9��U����,L��a��� ;zOuL��;0Z���4�#����2vwyWkG��L�w���&�\��l����}�R�����*�Hm���RT���L�*��v��wnY��2����t���0E
uh
��v��K-�����H��"�`e��b�b#x����na��isz���Q�w:�����"@�1<�5��[��)2\ta�W�*�P��[�)r`�xwP�0Toz���.��;K�RA�T��	p��{����8n��b��	��t��H#��|����n_d�+U�n�CYM�[�>�<�O�����v�Q����|(�ZU�1�G��en��-���D�
����6.�WS��Z-��?,����x��e:Q�V��O��@�H�!R�}�71��S�.L������
>�J.AS*,����&�7�����=M���,Q�����e��]��HV����@A�*��]���f�"�B����� K!F��+F:r�0Fv#�5�C3�F��t�	,�-���7������v�r����V^n>�e�<&.�#��zk�z:����*����a�;ctsr_�x���R�N�����f*���j1���*��H��zg��O@QTU�	�z�^	&�����$Mt{�j�]����}[%D���S�����-��+6�]%d#�w�#�P���^����yW�utAfT\J��8
���K�25�D[Kr$�����G��v�:�;��;��=
��o.���j:w��;�����{!P�Ds�l���s{����\�-m��
��x�n��}����4���&����[�rL����A���rW.��N8pB�����x��z��v�2����gs
4h���v�k`���Y��+U�� �����PD�fDRb�n���3�\�.���l��u�Oz���kb�t��x�R�S�KL�����'�����j�y�=>���Qz�f��w�{���R/{��u����w��S����������I�C+:8VL;�W��t[S���9�c<��_&<�`X���]�G���s�9�;Bc���Sw�(�&���-\��s1�)��*%r��2�T����f���������*'f���N�#��\��8en���jD�Q�I�����oT��d����l��W~C6��$�����
������a��Z��U�xa9y%��4��o�������T{��u'>.p��V���V��s�X�������8/^��uN�!��}�Qmi�7������6�`�^OJ<��zE&��!�rX<�)c�8FQO7i4/��/���-�Z�r���+TO�{�
����m���4����������1�M�5�k���9���N�{
�r��xe�������-k���%D"����v�%]oJm�z���}��{�xi���wEt��;c^����t�Q��G�p���}��Q4����a��5]��h�����x���������]��Zx�[r%�j�^,('�Uj�	��x��qS������L"�=5���*�/r9/e��3	@�:�#VGi�K���'o�X��,�3F
c�	Rq����(��B��f��E*��P�]
uh�����:���nd�"`&��MV
J�9�Ut^cD,�p�����i�s�V��}si�pY���Uf���i?s����U1U�kx�fj�s-,�1o�{&�D��������
(�]����)��s���d����V�,�\f�K���Y��>.6�"�N
�u��a��.MN�e��(R/!�<�����'��u�D���pp|C�v�m��Zb�Ui�w�[z+Q�R���H������F��u������F�����A�d�������P��n��e�K6P����$o��)L��t���B��fh��D)��D.��R�]�gX�����n�	 ee��r��4{��%D�F���GQ��[�����lW�D�8��tPz��������l�8T�Z�����p���7��sT��Y��"
�Z%5s�<u[�-��~��9[��v���zM��E9�%u�Ny�����������5�Is������j�/#�-h�!{�oefJ�Kc��9j�\�8J���wk��������U�b��K��c{��O���:�:�����M10�m+�Nw��QI*y�r
��D;�.�.���
��QIS�K�����������4^V���D�������R�\'wJN�\�3������8�.�D������I�AJ���=g�N�q���=�q���j�^�&J����*^�$���!�q�]��������������o�"�B��+|�s'��fh�Jo.��I��e6{l�7QRv7["��pIK�}�v�����<��W�e{�@�o_=�o
�k��]�+u�[=�����j�Z���{���k����2���j�N�)gq��<8�������T�y*J�c�K����m.�*i5��ni�
9Q�R>������i��j]u��S�ri�A��wP���KjNY��k�Q�JL��cXsx.�1��;�����-���
�"�[���h4\�������
���ZR��H�pm�3������%q���F0�c��V��sG�-#k������I���ode���*���)�5�jR=���f8�s!vu[�J�r3x�X��v�����V��$r
f*Vk�����EMT��&I�w��M��#�[X_gG2;���X���������:&����I�<���Ku�2ZY��&ne�a�N�}���U�����7�is�]���u62��-F�$w��&���0�)�y�x���z9d�L��Zb������R�{��_%Y�P��N����;�n����O`��WB��x�I=��C	'N�I&h�-"�9��M~Z��d�b�����~�[:q#o�h��z��Q��}uu�c��������7���yy6�]��x�;��y<������g���U��\����[T#����{���s.S�k*d�AY���*���u����o&AD�U�*K�NH�K�Eq���i�7��V�zToJE�BWI��7R����8����u�+����I%���I+�H������]�2j�n�'���f�����/C��v��Q,��5�=G�t��K�����t�F�����h3#�x���������wdQ�X��7	m�]�z[�8:9�t�Kv���f�n�V��gRt��"������w���/��W�G��{�%������g+�z�����U�6�2)c����d�u�v���������f<�Q�,N�u��x��Z�����X���nh��V�v��������X��+k��V�5�y�1����o{�����ub�����q);�
[�^�;��5&���O@��`B9F���z^�k�G:@%oN��u�,W87V��En�t�'�6�������t,�q\�r�WV��ok����RK�jNlZ��DQ��E���	We"jo�yg�M(`��VRd��
�(]�/9]*_18��vwue����7��G>�4��y]B�)�k'8��#oFPr�����Lnhf,7V{�G���'P����iE�VM����
w��gZ<����hl�E%���]���F@���,I�^�7�#��&s�.6�Yr.��etA-�Sq���<�$�*�^��t[{9�`h���r�eM���{���4��/8���F��q�Vf�3>j�w5.q����7��H]�/1�X����K&����8�)���C1r���e���Vh3����WdP�2�s��Q5�ypf�����Ef��O�ZN@X�����/t�w������H�K}I�2������|F7G��+Uf��(�tC��k��d�Uyop��R%`���Kd�;g>�����O.V�a���yh��V�8�������`�F���'������n���\jW�6G��e��n�|��o�*��7
���U��}��y+S\�O�lG��6��i�Y���X�ib�����n������e[�ck�L�h'}�v��	�������u9+���{&��vd|�Hx�W,++�y�KK��B���K��M�z/�V�V�4���,�.����`KegN�6�]k�)�E�\J�|2�"R�H1j��h�0��)!��7t����kx�w9��9���(z�#�p��/%)${��up�����k�J;�/�C|z$z�9�+n�kM��C�|�^~~��'���7���]��7K;�X�7���u�'e^��s@�����7��&�i�^�K��{^�S;�syX�1�]�7W�.��K�7R�:��W@�o��zZ�2�.l��VU��{V,�j�X	G3��������i]�P����"Z��A�4�s��*�
4i�8O@�
Z�����mv2x�����F�������u�����pM�n��_e��a���^��4
����������u�����)f������pY��!�p���a�I"���f%n�8����k��Qo#x4�W?nh�����-a'r��	�fK���V��c.��N1���)D�]]!PL���.��#���V!�ke���#��{ Z�_�������V@F��EY�wt��!��Y�*��f[B�$����9����M��
���=SDL�|S��b���B[~�Of�=J�E�yg]�N)�;0�+
9zm���\����v�j�S��,��/�E8�/�&\���Vw���U�����d��N�>'r�}vwL���"�[v��Z�e����NLZj�n�	~���-Gi�3������^.\�Lb0�JL�;twEO������fzR%kj���2���d�q
Z��3@(#Z����#��j�`�,1c�wV��X��_q�.iEp�e��"�Gm�ohH{��u(i�T�*�l��1Q���8�c�6z����e:�,/�����)/vn���1+
 �4(����R"�����XQ����q��)�{�
�0�3IA�c�}-)�vZGA�0�7��[b�N�Y����RW��x�[���oB���"s�$�|P��E�Qef���U��=P�sR���~z�$^����&��U))�����!y�{8�n��`��Th�6�:�9�o6��i
$�����jf��j7��/1�;��y���I������V&M��SN$u\K7
�!dR���K�\��\M��{d��F���2�]C�V����VbWj��\2k�{LT�.�J��^",��p����/�����]A���i�2����W�|l�+)�C���=����!
T4Q7B�42�X��� ���3��G8��b|��-�C����mi���TQ��f�bXD"�l���J\z��V$���k�����3B4�ySbc+���������L����5�':����~�t|�p7'Q�E�d��a\�a�������,vK����%n3zz������o��`�;��\�6��,U�8	g
.f�m�0��������H�;�n��`�����&ou��G��AGYk���CC8�W-�:#d�9f�]�����k�f���SyZ��{�^�T��3}w�����f�H��(N,S�I��n��
�k��������"���h(�TV�
�c���@:�[\�^�Fu!q1�Q����r����v�7F���wN���`b���7rQL,R��]{R?�yj��B[�<M�U����{]���Q���"���t:cp����<�����r���s1wU�.h2\Y`������]A����V�T���;�V���nP�������'i6a�������h$��9�Z�+G�\Zz�e�O���6�S���u�����y��]���S�\D�����(�e�VMr�ch�y4�N7+x�6�������\��n��]��N�'s��%�5��!'mj4�	E���i�������>�E�}l����z��&��	3���l
1���K�����r�������]+n��M��f'E,,����_���#yj�
��^S�����{�G\���1MI� ����� 7x�R��fXE�@���,���tV�J�-[��m�_����b�f]��r���E��#�n�eac�e�JJ����D?.v��9�k �p���<66�l��]�Z�S���]���q�V���������"���bvwi6^�Q
.�)��{L�3%d.2[�:MGn�w�]�tsv�_]T�j����4P��>\hAN�������|��g+��e��Z��u�zv1\cl���v��KetNi��m�E��wkpvE8�d�wu�i��������J�SK�^�6����m�0v���lD�H��V��m+��9h���G�/y3��
���������.�R':�5�uB83�Y�Q�w<�]�p\������%�
f�������yZ+\���Y��.BK��2������5�n����o{j���	����Fg�����FN����;2�*f��������_#Q�C�f��Yic������j*x���i]�k/c{]�����0V�s-��-�r�������F�+9�0e��3o	�M�w��`���]w]Y3M��������gV$1�P[=��-b���sz�n����}�\^���Z��C[� $��9Q��bt�/����[����x����h��c�����
����72]n9%����er`K����u�t��K���F�����6-����X
ea�.-c���J&�k=L�o+�:�c-V��N�t��@�/C)���{�<��~��df��BR��7N�sY	�o^k[)����X��We*��k�c�u�j�T	]u���^����	T[��gYF�*�ak�X��-}�8�j�TW7ee��Z�f\0�9)��f���]�h���*�5�{���"��a��t�U������6�������50�Sdkz���<���{�k(��E���z�
��7��,��+�Kv�C�d�*�R���G-�6���ou!�z�tBot��.�TMn�����7�����
�7:��c������"�N�>�})�ogacM]��������0�e����h|f�(+��5�M;-��N�)_nb7(L}��4��:i��pV�p�������Nda�m1��N�U��`�+r#Z��T�}�R��{i��yr���X���HY����}�zr���V�p�>W3���Z��k�fw�a2m�E�W������FV.`Ru��m��L�+$YB���_������ws��,�m=�����<�xo���Q��I���rP�GV��6)��Bq���F���{�{K@w����j���#��nT��y�twm��Sy��W�
��7���K�2�R���Y�G]8�����Q���������-�����;5+0�0�e�2�x�x��5r�	��C�)��4�������MG��V6�=������V��s����9���2�N*�R�hq��J���;�(Wk��!l���>�5%;�4���Y�7�h�Jz��eF�t,#�v��S�9���D]X0�T����������J�&K5��f���L6�^>����_��Y�������R7�\��%��,zG�ONi������3r��=Yi��vT`YDC��������qZ�	�2)��e��6x�u l���5����u�`�N���t�Agz��CjVIEu�WS�4�[,��"�[��2RoF�2��4��f�T�%�r���]�DY�7,�&�C����;�wh����J����a��F��,5����&�����ev<a�����c���k'a��gqN�������5�V��
���N���^�1J���N�ONG�����3GV��74wS�?���-�.�<��}�+|�����_y��r�����+��Y��N�������r����73R���)���[wY;,������v�����-��7�`����"��v����+Z{z�����m�9hIr��KH��n��e�w
���U�Gj�e;}�����G�1�/	���G�.���������,'��'&��)���Mc���N��'#rVu'�;�wd�����3�M���6(�;��gpF3���-��mU���W�
��L��*��J�3�Ln�B�c�*^/fB�n����>�t3����L��x�f����8��/���=x-xG��u����q�=���{|��<�; �-��Wtv�e�o�H�������^r��F���0��e�m��^<�]��T�{��0�-�G��.�����qZ�}F��Q���u^c�T^|��U���guz��AzG��=���\�Sq��}�:�NQ�A�@�*�fGr`;K:����pX6.=
������M���8x����_t������8���������O������X��L�Gz�r��OJ�:�e�2�f�ZT�{���l�����t���r�6�q�A"t @1�x_��Bn�E������]�����B��c6�|�6�9t�-��>�1C���#�cgU��k.��.�w�t�Q���/O%0����iJ�j��yW��tW5�5��y�q��k�3J�Hv��	Kv�i�����\S��dY�����&ktu���0�����&P����J�1@��z�+i9m.��X��-��+�(��o��g��X�O@N�/8'{��(���rm]�|�.�ve;tX��<�^hsL�b6���*���%E�d�����$n]��Z|��]{'>��(�2����6��z����&�B����rn_f�h����������I�9[��e�����B����x4������\�s�n>���n��jZ������f�A�����a�R�80�s����:[(	��+[DG;�bf\39�d(y
Oj�J��M�Y��\VWKv��
6A6�h�rz���p��>��}r�����Z���:\��j�������6�[c����o*<�bB:��5��j������Y`���r��B>$e����������l8�E�t��eo�#��E�0om�Y������	xH��r��E���f��Y{GF�f:������W	�o�u$�X�b].K��t���]H���������d��Lu�(��mG|��g6D��)�G+*BA2_fql>��59GY�C��gr�]@�vy�����E��Sd�������wk[��Ig�5*sm����y�Xe����������(�*N��if&x�����Js��d��F�N�����7����W�t/Y���$��6*� \'[�
g�c�u�+��Xf$�M;h����PJk"O�@�)R*�&���$Rk������"2�h�D���-i 
�\���S��V�J[��9���tjiL����n�G�O*�����fn��.�S�F�T��!�*���o�5��.�����_����o���z����#��pI���V~��G���B��x��������[�9�[��y�����_�m�������\�DD6���#������DDb#TSm�wB���""���1un����b"0��~��n����c�1F(�(�~�����b1����(���4�_�l$D����ADD~�w"�D""""�[��1lA����� ����0`�c��"#QDO}�wwws����H�@V��
��@ =�$ c1�[^[�H$��s�����������Qc#���mw�;��N���Dw1�H��(���8b�cb�*LQ����������x��;��$�8�Dk{�G���<�����.������w]���9�A���b0G��pA�m�����QA�"�cb1���$I �I$�A$�I$�h_������E"��.������AI �I$A�I$�I$�wz�Dx��!�|��C��v�k�^�Dw9�s��s�w]�wu�s��_J��1�z��n��s��;���ws��H4H$I$�I$�I$�$�A'�5��(�^�F��<�wwuI$�	 I$�	$�I�H$�������wws�������D�V�o=A��
�5A�����;����-�O}ww9ww9��u������9���w9�s��9;�����9�����������ww;�����"w�H"��8]��x��wws�����H$�I$�I �I$A$�I$�y�����������a<������MhD�	$H$�I$�=��������w;��Bq��"{#oUK��  ���w]�wu�s��9wu����wu��9��w@@��o���@�����n�����;m����]��w�s��2$�Z��=�����Db1^�"#\�-���\��<���������$@ ��D�MH$�A$�=�������w.���9���;���ky������� <K���wwwV�	�I$�I$I �A�I$�=;������������ �s�$�I�I$�I �H�A �I$�I$�H'��I$�I$�A �O@������F.��^�����\���w\��<�����;�����s�����wN�wwwwwwwwwww���=��0
#DF��s��.s���A�I$�A$�I$L��O�2Q�>;��������7��"��F"1��DDF#���wwws�5�z�����V�c�������H�N������HA��k� ��*�DA��DF1�	�[z�|z�@$�1�QczDMV���������9�rws�����u��   ���Gjr q���%�DDDDcT   F1�9���u������������b<���D/81mu�����F"	r1k�"L$�@$�o�<����BHs���9M{HI@@>>'�6�O�p��9wu�]�u�b�|I$�]�����s��9�\�w\��wwwww;����j�#�����C��'w9���������p1�{BDQ�"#�ws����5_��������w8���u�Z^#�<�wp��8�������������(�^1�����N�����
��	g�������,QE����m�������9�wnF1��D^�h��5�1n����" ������������N�w��;�ws��r���E���\��G����.�k��"3��������O^�1��""�Q��=��r�������]�s����9r�p�9������������p'��p$`�#��s���]���w;�������wDb��U����F�Q��\���rwr1�o5�m����������������I$IA�*����=����sk���I�����r#���(������H��M��" ys��"1:1E1�F#�����ws�����w;��w9�����""�!D�j}�u���� ��$[H��t@Eb���$�$�"�4I ��y�5`����D`$ ��N����DA@���s��A$��DA{�k+��^&(�1��PF"#^�z���#k�";�A�\F"1�����-��1E�"�{�U������k" ��"��F �Z���$�H���W���e�������_dg��F1�"1]F| ��f���$D����"�Db�n�I5z�b#wpwp������;��;�wts��y�;�s��wN���@����6�U� ���z��r���;�wns�9�\������s����G.���w@zH��/���DN�DF/w�����s�wN��&�$Q�IQI �	A$A�I$I$�$�B��DPG��D��@���[���k��D���	�B6A��DN���y�+���^�]�������5�yj��������D�!?�����$O��$�;�o���{�N���'��$!	��	?��%s78��/��G����?���?��k����_��|yz������cp��&�������I]����mR*5gS��JV��yt��L�v��n�Z�7����t�nbOV�4������6&=�z����q�1���UDUX�5����������/��]�~�s���KHk�����v$I����(���+YUu|�S�t�&�'�V�I�&]�-������(��]��|�D�m�FJJ�_s��x���S���6MN��Z;��k��!�__5�W�"O)���k��Ab���&�[���U���	b������_V��y�n�7)>Y�U���DNm�OY�Y<���Wx�����8(^Zy��C+v�L�(������x�]�^^���4[7=������N�g���:�����u-#Xi��X�-Q�U���\tt��^hx0�;s��X`��(��5�841��O"����&��6c[�g9U��Nc[k�{��T�6��gN�	��6B��zu�+I�����;NWX6��U�K7Q�n�`�_T��z���=u����������VM�H���a��VL�9\�����w64\��p�EQ����r�W�1
���((bM�Qs��v�KZm�i��p�X����+�
�{��&��9��5��V�m��{�T�G�^�<�**(F���2�^�`j��#�C
sF�,�P� �3��O6v���$�����T�PV�������v���/�������NV�����@����l]5�VVm��k3!��rako�w��)�jg�}F7��*�H�d�;��-�tX��!�9w_)�}t^e��hj�d�wN.���r���s@���i�V�F/89��L�9x���z�,���#j���T8����(�����"nT��KU;;VD�,��������Uf��sU�������$�>�.����z�b#:��d������8��V+�� ,;2��rh�L��!�!v&o,v_u��L�,��o3y��N�:dIN���7%3�����m�K�v�+��������v9�����m3�#6��R�f*f���o���J�'��Y��<�Q
��i����57�?�&�w
0]���S2�>���[����[�2`��%������2�V�v+��Yit�i��*ViE/�s�D��E������oj�M�T��i���������_W;�*v�,���)@�^��l��%cW��h�gv�K{��;��m����`����-���f�\������d�����e%u�=���/�4�Je���F����%en�:>m������`��
�J����i�HgZ6�n������,<{�6�j_e:8���[��V�G�+����{&�����n.%���+��n�^Vzu=�vV���"i�J��i�����S�kA�pTc����w)��O*[���,CL�[��rx���2��c���t�����V�}+���Nc��
�m�G�����u��i��[����z�I}�kU��{p�u3RSL�@�,��NA�a��'�;F�tP�q�3s3���$�C�����sW9'�F�Ka��/� �h����Q;�W��eK�V�k����lm���e�;��9�����z�8�N��@pU���Y��}��pij��:�q�w��U
c4�`���D7{��4���8�V��fK���pb���;�%�
���9�j��)��:C�jX�V��+<R��yk�S�Nv_$��Ye��s{���o��5����#���j������9Q�yH�����a�B����IF� ��x��Yq���u�.��6%���Q��&K]3o4�@�a��*�k0�9
��yH	f�Q
*��7����&�)����J���\��w]��a{�8���ZX�����yy`u�'�	�-.���:8���w�L�t�9�;TA�����;��ow�Y��WW��)W�=���#�W�N�e2/o<]4���i�]����w���8];������s����.�]�K8����hl$R�_[z2s��<��BM�P�5������u�b�����E���ae�)�w jFf��mS���D���"�����'�@��9b-yK72tpU�{���>i]���v��R]+M��f�i%�hZ���' ���x�v�cn����m
��Fe��-���E1r��@#��P$�sJ*�s����P��&N]/��BT��@m�,/��.��7��R���g�}M^�d�N{�]=Yv�F�^����a����gN�e\�����l��%��Y�������{f�u�'�[��V$��v
Qc5{��j�W�N�om�u��K8�%^�Z���9q��P��D�]�����0�NM���y��"�x!��;W�y�2�<�f���f���_�k���J��,��h���Oc�$�dW�;��
yV��6E��a�����}wg���0#>8�\���V
+6#�e�#'��_	{�.3�s\�]E{�5�*�)���M�J�)
��p��JU��u��wN������K=����jX4�&����
�v������I2V�I���vPj���uI7��RgejL����qq;�w�g6��n���{�*�F��,b�o Y]L�Q���h�����x�2�N{|zf_I�Nvmax7�����uC80���
��EW�����m��P5�.AR���y@k�>����]�tco�f�y+��#h�_�J��Wv^cu��P��L�z�x������Uz�2f������q�nk)����Z���K
K2�P.L�;���L;Q�o
m�[�X9IU����D���CM�b)r�yV{��R���C2�e�8�j�v�e-N	r^����f��G��N�3z���`�3��8�	��v7��s0:r\N�f��)�&����uf+��V�=�x���L$���[�K�����"��2n?nI	-���_w������k�^k�7N����#�n�Z����S�bV�W,��jK8J���`�������GY�=�;�T��d��,�y�M�}�7�
�����O����r�s����VU�����B��������������*�B�����\eE�>t����@�`��aV:61���.fu��3P����^k	
��!��8(wr���{��*����u�*���������gN���Ij����f&T�qu���+�)R�K���[j�y0�(��.��q���|�-c2�6AYZ�����C��L�p�v�V�(w%�3gbH�]�*n'P����e�S�<� ��KZ���VWbn��u�r���}W}R�A�1Q9�$�ZrK�p��+4��1[^���&�/�SfX}��������+��5��U����w���1���Vb�
�Cw} �������*c��v^�bq�������B��37�Z����m=bit[����rO��rt��Hr��]9���v�^`�&��YH5R��X�*���:z�:R�V�$)���.*r�r�����e;�!�v��=�B%9��]�%�v��]%���P[��
��Vh&�Tx%KI����=�P;8q��3��t�G_+[l�AC�^;\-����r�wS_T�v�ea�qP���4l�]w�]��]m3S���L9�����C��#�o=��!8�%Y�4����v47M,�]��Q9�=7�d����D��g&�����V@�#R�k���i�$C��X���"���8��\j�t���t��(���YD����lP�|DI�Yvi]:X����Wg(.���6���*���xWJ<e%-kB�A�M��u9{��.+�7%fWf�Y�*����g%���:���^	W��I��������5�zI�nL�t��0��;��.�ae�=�o�2������������Q��[t�d�Yb����/k0P5wR���va����n�.^z���y��[��m����:KG
�+��Xj
�u���4`(��v����)��L��n=Y���+�kU�����s%-���f�xU���W)Ns�(Wz3=)|@��r�K+MM�`�
4���}d���VB�a��t����X�=w`$���Nna	F763�{Mb���M�{E�#J��=�G3Gk<*X�xn�B�YJ'A5���
a���q���x�irrG�#�.1������/��m�4Q��`�[��s�����SCZx�sF�'���c���
k*���#0�RA����r��Z��]����tEh���\���x ���w��F������� �]����M-��]��h���j�u�Qt�4�V��i��$�����N������b5�]�'VSD[��N��Y�F9���&�?��0�E�#��v�����}�im�:$����*U�T���'q�3D�6�����+�0c�����[�C�/��3���F�U����Ez#v�� S�Y��+#+/�������;$&�V�t�v�z�����h�g�M�$1Y�������]��-6����A��`xq�x�������O���������X����y;�W&���:������y(����B��L�e4�l9{sb�K9�������*`�HP�Xx��������\�1r�R�"y��{�"H��Q�h�����{��H����]+@4jH�e�:C��z���k�d6�-�C�1$"�r;���y\�����Z=����=�������u�tS���fV��R��a����2��/	�X������y�\��W�u�h�����Y,�e-�GT/�P���oZod�yoz��P���P#�+i�R_I�VF3�s�S�d'u��n��/0��7��������8��H��2z������	��({i�d�Rh�k��c��v��Y&��c	�<����������������#��a��s:����=��N�|b�����A��d/q���M6�Q�9��z�-�V�03B��Nb.��,��:��e�3#�3���+1��h��s
]7z��t���w6�*���f�ya��]�\��Z����T5�$Y�u���Q`&�����:��Dr���S��\�~.�+�S���B(�7�y���=�0����c�
��)�:O(Q[i��Z�VKSn������	vM�P��y�k����>	�we��k�� ��O<�>CC=�p�=������������k['�.���^vc�GeE�N�����������i�
v
%Xyo�>���q�>zU�:K8@I�z��M�r��l�w����s3�rI?9�+����r�����bd����u4L�"��x���zGY��*6��']�)���Y�f�L�S ����ZZ��WsL�w3��r���2���A���� }An�*��+u��lQgw���A=��SW��6���n����4�vuf_GJ�"��rh=�=N��V�����V�W���/N�=�B�:�y��G#6�����]
un��DmM��K�S=5��d��r$���R����I�Br�p���
��3

^��&:P�G��z�s�����h�2>U���0���N|�<��x-zp��%&���I'�Y�[��;���d���������fwN���U� D�/����6�vQ�t(��:K0%�H��t*t����B�.VVT����.
��V����3�������]��&�{���o]-�����n�1����jW:����s5���,�Y����sk���9^V%�W���[ �Q"��a+��y5Y��������^c��kqQ<�]�l�[����h���q�?V�|3�gV�����j�{1`7�����bfy[]��v�����M��8�1���t	�Q������=���T{��z���'�v)�]�����`���j������o$���dG=��f�2��V��N{sU�M�j1\;��k�����6��Ap����T8��\��3u����=��5����iV��������@��-�fQm�5w�����|�LC�3�.�T�Z�N�%��U��:�7�m�����5��Tk��q�����z����N�$�S:^��
�;�����A3���a7H�Q�=���SR/�D�[��b��61�=| �g,���v�g`�%Y�3]r��J,etGu�Q��I��y]}�Z��*���*����j�y��i����#.�ha�K��pg�/+��[CH�[�{��U]�-�)��3�8a�k����0���;�!�qO�S�F\���d��z���7�����d��](m_&;k -�s��W0^^gC
i�1b�z�g�����]�� ���s��9�L�����3�m��o ��m ��(#�O�4+�\o=�C�J��k/���
�8����F�k����*"��WG�x
�z�
����=V2:�y������E��}[-3B7�z#/z�pC�_���m�
t���d�Vr��7��6zl��^�):��\I;��}�]s�9At������w|�������^���f��%m�cb�z���-��NTe�����#�&u��Mj����A��`t���=7 ����d��w���j�Y��
t��e^��9�m�7�uZ�"����]B�
���5Y�Le�f�k��vJ��������.���P�U�t]���yNf�/+����~z�����G���N��kY<���I-)��}���Q;X���f����z�����^���Y�b���#T��.�'��4�h4���={S�2�.����Se�f������8m��pH��
7ot��1�G����#���e9h���V����
���<�w
'����
����ub���Fj�.}f��������1���Rv�<��:��2�)\M�X0�B�ag2]��}K
k�$���I�b��{�]N�LN����+�7r���%����~�{^5G��"W}NU���`��KEJU�q����3�9���^���2�Af�VR����C�+g�]C����; !]��C������6_6+;'��5�
K"r[\�u�(E=x-�7[O5�D��h�������9���}.��XL��"�\�Z7��p��
�2���g����+�7����Y�E�FfofK�i���d���RW����s7L��J��e�Z2�N��e�e�V(�_wVWZ��6��Kh#�[�OT����$��vl�����xn�{&��&�P�Ie-���c��J��X��h8fH9k���a����x�v����d` ����}�@�[]YQhOS�O9������������--D�g�\��`'M�Ma��%]�#YK�MV���nR�9�l���.����.Ob�����1���i�����e�g_8l�lfaF�Ts+�%c�6�L���8��9����sNL7O�l���)��:�5Ix(P��`��E�^T���:&3�+����b�}��2�����)B��;%��"��^�i��N���L�u#�Vme{;y��u�q�\���lj��m�k(����'@�/6����w �5���c�'G[���t�k����Q��5b�%��8�l9	�I�����SiU�[��[�x�E�vyy���l�5����1��
���4=��,�"���D��Z�������qi�#B��f�.�kL�d�������u�g,ZO�o��:��]�3eJGGh��L/_t� P��9:�ZIt,{.���hjt�n�r��JJ�������+	*�)�����GpO�mV�����S)��2P��T+jk{���l	8s��������M���J�d��nw�
�&�q����s��k
K(��f�� 6"��F(����3�Q�����T����,��{������{C��
�������f]��K�5]�`Le����b���KZ��4It�������m[���T].T9d�@#�C�9:���pq�`oc�p�2��+��Z���,i���$B�^a�.�k��iVe�+u��t�o��em ���j*�9�f�iN��6�"|(�w��V����Z('-[r����{�*��1G]f�	��asuL�iZq�8���Y|Ig�6��OZ����.�6��5il������Y�s%h)�nh~��w��x�N�^���)����v����� Xd�Tt�7��4��}7
�mr�������'N�y+��x9����\6�i����X���H��������*z<���}��������F�X�,�"u�;`���]����]�5O'�Z{	����;F�7/9m��c5S���{.h�J��2��s�R%��|H����EJ��{����3,L�-R���}�1|TX3h��7X��ksx�w�������{��v�f���zN�mWk�����W|y�&/j�Ed;���_.������)��S�<��������Vne�S4m���z*e_.��[me�txY/���aFK)��	�����V�J�,]I�S}@-�1�Us�uZ���{0�3f�%o��Q_]���g2]I���2M�SN�0v���ia���}�*n�������S�:~�Z���7=p�����9����`1~�������0��fv��I5�m�2]�{�y���hs�oh[3���G���b��q����]�����������P^�8�>g����/��88e�v��6����Mrxv��9��Y
��#�:��-��b�
rhu�oT���J�F]8�����,���<��wK���)_f�u�\sU��jeEs����'Fz���7X��Pa��[��a3�m:���D��kmTO�4��V�����]�i(��{	�0��r�<����Y��Z��W���Uz�p�G��.b+�O8��g���p������t�cL�����AW�iP]0���;$�[�:9Cn��j���M�8��h\�����������u��p]E�eb�#�U%��U��q,ea4uU����������+��C�m��c�M�aQ����b���A�e1]���4$�q�^o��j =���c��*	D��9v.HttL9n]^�&v��(�Q�_e�WJs���: k#��NJ�6���v1�=��'�\S�;��91�o[���OG�o�At��)e���@��\�Wui���Xx����\��j���fyN�lP����S];���gH��yZ7q���=�:�02=�^���;'��YZ/5�q�B_`V�ftA���\A��3�Q�A&����Y%��;��z�lS�1{Vm���)t����o4��j5}���f����0�R[��=F�*�2�y�1N��k���c��+���.��]	���{�#B�M������K�������Y��
�
w�o��L�7�{��M��oE��Q{1����T�������R�jul��/Y�y����s�:4��1�e��0��0�F	3]�%~�U�6F����Qq�r���<R�D�IH��4�n�jmrh�B[��b��[55�����������-����
]b�Ay=��W�+�Y�+��px������}
"���wV�������[��t�M���s7]r�pP�\���#
C�Ii�A,���-S8-g��Q��K4X[J�B`��:�+�iO12������&1��G�����3�,9�[��b7*M��_e
�MwSe���:�������u9�X�M�D���d�����t�����EvM��TsIE\�k�\��x��(�n��:�#�������s#���5x�Oc�._oV�x�p�����I�J�S�z�fi��,�'c'kU����g'�V�7`�������q�X�
��bWwn[Xn�7��?!�$�^��rR�X�2��V����>R��KrL7����h�JUDMC��������,��	�9g��������`�()�I����;�r�3sQ`�a��C�l@`��c��kh�]]q����r�_E3����W���
6��>U��U��+�	g��v[���dN�S����+�7������]W4v��&��WQ�=2�2�n
J��kf'�U�,��������{&yfhn��= ��I�%��Jt�m����*[������7RX;�z�����E��]q[�d�II:���7���n�����u}`C[���G���/
��������D<Qee��������f�h]^��G@r3��n��\ph�4�b�/Ed�t��*�^T�b�bB���#�S��������������kL\�(�g	\�����%�<�����Lk]yX	��������fY�$��t�}Myt37}X��h���!��u���U�3��%�b/f�+L��@��qNW��G�c��g�2|�:+5�D�������v�d�����p�Sn���4�_i�o�d\{0no]�|�H�[�wN��;m��bv3]�����c	�`�	e��v\�%�ln`�KX������8������������i��|~���r��BI'�|��q�5��
��������������8�������|�{.Lx�-��S��4y��6�r����/���<)1���#�&{);���U��������ag3���p�=��|�����p��p�10`qi�x3&V��:���:A;7$I���6����5`��u`��!�h��1�\���e^TZ	��_N���K}��_� B�:Xiw����z�t��)Ku{���������yK�~���iM
W������x�����o_R.�y9�_9i-/GR��M��Q��O7$p���2��d����w+1l�~os�y4��So9�����y����.�W#���TS�O��D�K�p^��t�<��;Kt�2�t��]����h+��dtfr�O9�����J{�79�;Sq������pR�����q���<�+�=J��#!���Q��Mgd��l���f�&����K8�lSR�i.�:��V#7���]mbl�����Tr�����u��V�^���%f��nhM���*�i�E���1���-�;I�1�W\v��\��!���*����J|m5��	��\��d���n�^n�RcNX�c4�5v�}

c$���xBl<v�s��D��p��B-s��g@�r����A��z�d�9��p�B���3,�9"��24�����w�";����A��wk�O�
�].��x������w�u�q���A�lV
�i�A��I����SE�I^��E6
����
���v��3�;�����}�z�e�����3*v1p�Q��I+�q�;eb�����u��9r^�<Y��Y=s����7�o�����-����W�C����2��p���w�z���R���m:"��7��Wm
u��6���j�.���L����;pR=���.��)6���7RV�x6>�����xu�MZ����fQ�:��H���n�/7y����_�5��F���)Vu�I��
��j��YB�J�RS�"u��������o`p����[<�z��W+�H%��b��#�4�yD����)A�������]z�f��#F]_:������cS���i��j$IIrA��d�y$�z�D����U�^����(
?aV�|������r/����_W���������S`�@{��y���B*�D(~+��/�=��]&+��������Z����
k��qd�������
L�p[U��\�$��|^�Y[W�JoG'1wM �9U��_���t[T8�������������=_k�g�oe�����V�R;���jWK�%����~x�j���]���C6�W��."����+{�����Kr���NV��u�:�Z��o�nVbEE��8L�r�Y����Wl�[T�q��
{�������]w��/����K��a6�J|�GT�;���MG�9���,V�"*���q�o1D'�J�{����S���&��XX�|�m��}�`�-i���o��y-�}[��v�e����SF��Z�R$N�+�Cd[�Xv.���zb���;4=[C��%]�h��s9������	x��A��!������j�Q}��nV���U/�)���z)t���i����,�2���|�@���!�V�����������z�}������7���������s��[)G�6�=J�L��}#�
	����������R�>�t��R��G# �l����������+��^�I�Fn��Wg?*��6�������)w����}F��W�A<^�b�k
�-��{u�$�������B�9_5},K\b������G���x����p�"�dY�U��]�V,�c�-��EG&0����{NM;�wj��Z�z��
e
q�}���jk���)t.�o�������x���7�^�0wQT����:�������)n9�6��������5{�V���5l�p)����K����n�nQ�<��H����;<��)-�O���i���I�>��[\�����U����>������G�E7���u����Nl1�����;EgL|�=�"]��Xi�|�i%�]�i?�9����+~���a�W/�5C$�������
3�K�����+x]l���D�����u|>��-W���I�bb}����o����6�����G��fY^8Z���zM�����,���)��zb�p|^yxw}|���'�����g�U�s��U���?��U|�O�D>I���{g<_���~_o���3�w_q�m�4����.���\$YH���}�mb��*n�\ed���rS8����*PdF^����d�R��&E��Mt"�T������!4����/�����1��~>�N��v���n��v���n��v���n��q��n����������������eGQ�u[YEQE�d�!S�3@�(��(���0�0�������:������P�t:U��f`i��� B�h��m�Ei����3��0��48C@��(��
���8\-���4�c\8�HB!��I$�N�q�P]�� -$GYE���b�l���!cB�B#�����
+wt08B�1�!��i�a�af`i�nQEQEQEQEQ@E�����E��v�`ni���`Yxi�p�G-�p!�4�
zC���1����d����]�Ea��p��"�N�q�Q@a��!�a>��Ie���@#��$�I$�I�04�B��7p���
e��@��F�m�f�I !�@��q����PXhq�QAa�� -��<�afavP]�P]��`p�1�cF�Hm�wwpf`Y�PY��i�Y�j��*����l�4��`p0����0�@���0�,��(�N8���0
84����(���6�Nm ���8�d6�E��+J�-Za�XY���������7w@����`1�#	$�@`�I$��@��wt`i�m�a��QEn�e�B�E�a�ee]�EQEQEe$�H��BA��>���2vn��!�@.6�(�����D �rS�C1��QA`@0�6�04���E�`i��p��x\m�PY� �{�_����z�G���������Hl���e���!c�@$�fea���p!p�Fa��qEPXi�hhp�1����8�����a�i����e�wp���fi��YE	$��p��(�0�@`@��]�QE��q����N8�4e�PXn	@>@�1�@`���a�a�a�XY�i����\ `Y�a�afeQE��w�r��ip.�v�X�m�QE�a�P�I wwn� \p�q�hm�
I
(��(��(��(���3��
e��!�YE������(��0�0�,�(��(.�(��(���@a�Q@` -(��4]�]�QEQE�`�|t4�
�M!��Y�hx���@n�eP�����)���(���2���$e���I��<@;�@7wC�������08<6(,4�B��e�QEP06�(0�0e���eP]�f`	$�wwHC�u�h�TuYVPvi��"��I$�*T���H�4H|:������$�]J���330��6�p�����(����(�����>����3
����+3
(.�wJ(.�wJ��
���(��0�����$���Eg��$���I!���ow{���{���{����������www��������]��Y����ff`�������www�����������8w����Ho�[@I$��:�%V��4kt6�or�6��n��������+*����
��4h�6�m������I~��v�g���������{���������{�������������ePfffn�fm�w�����j(�7t�I��I��H5���)#��Q
�ee��F��$�������s3�sws
2�w@���(����(�37w@7wv��+r����
��30wtwt���
����332���$�{��$�e{���^}���{����=z���n��v���n���n���s���v�v���B�s?|m���?{{m�3�.\���Nyr��.\�������+��-��Q��{�w��7��\��Z��1TPH��1M/a.��0�X��yU��[��`�u�\rp[1N1��a��"t�,6�5M1u��t��CQ^v�V
�4�~�o�������}�c�:cc�+�1�2d���v�M4�L�\�i��r��M4�{����w5>|||i��*I���>j��w]?
9R^�F�fc�������%�1:�����-e��]Y]jS$TUs�
�4����&��z��f�G:;M&kn�t]r\���+�����O�<r��c�:cc�+�1�2d��v�����-4��8i�.\��M4�M4�M4�Ofm$�����}���O���s6]���J�[�ovJe���XVU`��p��G�mwC�T�2S��MX�YX��93��T�����{����_*���T�������/�|x���1�t�4�1�V1�cld������r���y��-4�v���M4�M4�M<X�f�Y��<�wS�e��-g���o	��Y��j�7~���Y��Z=D�L�5�Ec��5
\�@�����Og��s~.�Z/�]�S�jc���#�c���_o���1��1�c�1�1�b��cc&L��n���M4�M4��.Zi��i��i��i��$�;���s{�*��$����M�[$�"��QU��kt�r��@���I��,��V����9����5f�6�f���^����U�h`-�c���le�:�k���g�;t���1�c��i�c�c����&1��m4��\�q����i��i��i��i��y��|����n��B��
k��4Zsn���W��:4����s���s���BV����0��J������e�\+���ya���R���N����~O��|���c�LcLc�c�6�L�1���y��-&�i��i���r�M9����i��r�Is����w���5V��t�7"y9�n91K36Ad����ceg^��f�2�N�����#F�gC���������Ivo��uG�^9fe�\��>����>;x��c�1���1X�1���&Lc�n�i��i��i��i�r��M4��.Zi��"Hs��y�>z�n�h��1���M�I,b2�V�n�%�O�G��������}r<�Uq��"�uN:��R�Q�	��IW}J�F����9��=��b�:}�
�n�9v�1�c1�1�c�c�2d�;v���i��i��i��i��M8i��i���H5�s���������m+.����!G s6����F��@�9��W�:t�=;1l'�gX�M *]��B������l�e���R���,�5�����B���ohy{|}��w����1�c��i�c�c����&1��m4�M4����i��i��i��M4�M4�O���$��u����&rpv���
;�O�P����fi�J����Y��B��Z�� ���z��J��G��R�Px�{���=*O	�q�����o3�����T�+}.�8�	��[�.u��KFm��3w,�X�6�A��f���l����]���^z%��d����u'�n�B6Cc�~��V
����(t��]�����0)���;OVU�����Q��[�VM��������;S��=���w8�c���=��aX2o3���,\�#��=Dn�"��O�����y�5�����FY�R��	�v8g�oVE���������.��Vm���2���x��;P�����k�VP����&o���j��4�@��2	��q���.�
O�����a�J��%�Otf�p��7
Brw����)�uJmu���j��M�b�k/-�I��j��]�T��%��)��#a]�A�NY�����H�xel��d�nW;[�������[�p�pV^���h��\Yp&f��*��W�����9����rD�^S��r�q�R��
����$���u,�]%k'��c��2..��q��`HR�W��"���f�wN�+;�>�zk]��k&��J���<�
�������������
��`���d�/-�}�{����.&I��
�|�����a�/k�_]��y������+W�vhJ}?>3�J�W�V1J=�E8���{�B�{\�����l�_x3`��Z����<S�Md�+HI�3{�V{hR�/V������sv��b����IV)3��d�V7*���C�z��]���#g,���g��P3\���>�H���Y�|%d�����z��E�]��PS +����O���%m�:�Ay*���V��R��r�g�o@����y��vvx���[LT;�+���u���(��mZ��PZ��/"�����<k3�ol�3����N�f�#������i��2
����6��t����5J�h���q��Cl����o]�)��qY�7*�
\�*�������v|���+z�tR��P��:�llm]^��n�i��;���*�����}����k���z��U^�������m�W�[em�V�U��l�� �&I"q$������]��{��s���^�;%�a����U�F\F����117i�tu������Jt�k�]�4i��?��K�4�>���D��4-�*x�%��L�d�tos��M�'�wn������{6�z:��*���PX��&����7M���sP-�Q������������N���Kg�
��|���
�
Q�'��|{<�������L���
�����&���}B�]��{�p+V�QcA�T�2����{$�����v��7o��B�
V�6���<�Q:�����5������"7s���=L�OM�
K�=��z�����3�>�V��[p�:bk_#}�L5�1�ijV*����b�����V�1lS��R�Io���m|������<�h��(+&�T��{��Hc�2<�M$g��C>�7�=��W[~������u�l�E����~:��x���{�=�(k��������}��W`�Wv�g�3�](��{���L�3�I�{���)�e%Y��J�':���c^�{����nX�n��n�:�Bfd�\W�\�����Kwo��)\��w�������,k��c0]������yz������Y1����7�L����K��2�����b�������3�2=��9���0G��(�K���T���b����=��)��l������;�N�Nrh�Qk�m��h���	�8W��8�����������s��N����|"��68h�QF���z{s������g(��wL9u����i/�@����r�x������4v��
����n?���f]����M�9��V������I�7�ev�=���j�*Gn��X%��,N��2�K�R�'FV���9�����_����o7����*=�3��w��~�_������5��2�����[�3��Q�F�h�v�XU��$~k��k>�
�y�}�np�{NV�KY�}%^�;��y�c����sC�#h�N�����1�
�y~;�����LYX���j����x���[[#�L�=������<H������),nr���J��?�����{�����ki���m
��%e�wyn��:���29s�xk���9���
��]2��*����6���t���Ho�y
A.���g/Z��k;����s�am���N���+8��\�XF�aW����:�J�/��+�
]y�����<����������;��6�������
����,�3�nU�e�M:�+t+n�B�,�7���_7wl�*���e�e��Y[�e��tpYe�����������s�o������<��*���������cw��������:����p��
�t����,����w2�����k���7j���U0wuS�T��h��4H�E��$���4�`F�T8uP��C������s���p��������
��������m]9���
���i�6���T�1�s�o����^wy�wy���P]8wY[v�Q���,�,���*��v;wj��*��*��}�UUU	$�$��I?yyyyzy���}��===�LcLc�c�6�L�1��9��#�UsD�U\�a8UW0X�U��Ur���&�Nm�1��H�G
���,'
��
G
���Id�~�}_}�UW�|s������|�N^��q��;�����`�7�p�$�3nX:�����X����D��2vx<��b����@�\"ea1s��LXZ���k+
��v���c�%t���w.�(
�� vea/�z�������D���������X�1��N���1X�1���&Lc�1�`�Oa4��\�+�s��U\�D�U\�d�U���lNm�/�p��#r6�n`�p��`�*�����A����~��~��=�k�����!��W�����j��VLR�z�P��Y_	�.S�^_3\��[=��Y�RaU��j*	��T�D��U�kl��q>:����l;�Xp�����WO&e]mx��3�4�����t�Y�3Oi��}�����o��o���X�1�t�4�1�V1�cld������ZUj��?'�||i����nH�*��pE��*��+J�$��"m$�M��I+J�ARJ��PP�*�]!��~O���~k�{�q~���h��'�5�YYA��G{�Y�y�0Q��Ov����1Q�vG��g��z���
��w�����XJ�*�^qU��nr��}\���@�2�+�fv�����u,��qn����e1->��>�|v���������c�LcLc�c�6�L�1��1�A���V�~���D�z��.�5�I%r�Z������&Nn$�i����ZUjZUj
EiU�)�V��_�B?i �����+��Q����df�V��CW\�����J��-�|�KM<#���3�*�Ep;�+`q��!����/�jzxK�-v�b�}D'i���m�
��/k 9N���
�g�p����y�:������1������1�c1�1�c�c�2d�;x�5��V�pG	�V����-���i&���PRJ��PX���P~��-��$��V���V���87��H�����~����_��sm�6�K�K����v��%��Q��Qf;�������; YhR��.��vk@���9
��d�r���{�Me�b��)���7k��{����S�����o�����<M�-���o}��x���������v������X�1�t�4�1�V1�cld������V�Z��V�Z��V�ZD�.�l�4�mA�dm�m�^$q$V�Z��V�ZIxD�B���"����������U_}��O����e]9��2��sqV����)�,�RK�����
���6�LTt��Vu�F>>���i���/��m��se��s��P�]�����jj�wI2���jI�C��n��n��u�1*�������>���>�z��c�LcLc�c�6�L�1��1�9��&�UjG<D�I4��R=�D��M��mARIZUj
�iU�=�#n[m�)�V���6�m��+J�A�r}}��w��{���s�'���K�t���R�����M�	�9����UEO 1w�j�g,���uY�&��d7xXG�e�������]������K�h�L����K&]��g��eI�{W!�s�F�<����>>�����}�}����c�:cc�+�1�2d��v��h{��
��PY
��H�\$�i��~pF�6�m�m�m��K8��m6�M�q�M��i����%iU�,�ZUj
�Bd����N|���w��_�]�E����6�L��`e�%�n�%<�d�4�e��\�B��/U�d�v�}��B��s�E��63����=Z���Bf��v�rWmw���q��������������}}r���1�����1��1�m��2c�c��+J�AP�*��%iU�*�V��V�Z��ZUj
�J��PT+J�Ab+J�A���I>���;{�����J�����7f�_��U��}����w3���T��;������a���Z�����X]z��OY��^���r�KEC2�G�r��e��S=��e)�e�]^��og����������X�1�t�4�1�V1�cld�������8iU���"�V�Z��V�Z��w8M�m�����V���V���V��I+J�A`�*��W�������
���`�QR���@���ts���,vqv���D�xD�er�e�<�)lU+��.	vg*���LV(�������/����!�AfT�)�2<��y�dZ����a�x,,���>DA��gK{)rll�yFzH�� ������������otYYr<�+:	���)K�2e����_��n�\�#����%�D���2B�Nsg�Mn�^S������|���2�����\|w�K��w���BZ��7�HdW>�����5�jA)�q���c���L���6!6:��cF(��F��Q`������NX?EKvJ�Sl�u=�5�]r����Yfv���?
%Y��+%G�0��(����op9x��:k�Kot��U	�
������2���6=�cR�.W9v�{}���+�L�	���v�&D7���Ch.m[���������@�*�]��DBuu�vFA�t�dWj�\��� �q���Y��S�����f�2��������j�$O ��;����u�bV��U�u�sk*Vz�2���4���
	*�}��st�8��s���o+�v��t�\��[�9��TW;��L������N�=������:I��O��v���cU����K�����8���<U\��ef������M%t�;|kU�X���1�����P,1�]��q}q��(���a�LC��ZkxV�knH�&�JJ]c�
kd�v�M8�v���n�2��]�;m[u�Mq{3&�ic%gn]v�����������L��p9{�+
������,%72�2����7v�k����j�y���%@SUc!C)l��fl�NOW�G���uAfS�9���k;U����L�,.�
v��\A�A�`-�Zp48�q<���l}6TXn�7L7��bF`��\��0�3���K���c�V���Zdr�	����t�;0EI��o�{�Xu����������V+�j��'�p��{�����t�n�*W|y_T����f���Y,57hh�����������y���zK�;��N�$�q��0q$N"p�q��u$��A��w$I'�U#c>�����B�0�����`uro�Qtt�z��6@����.W������?�
��;��o������Q�0�������ri)��6�V�J���#�+L����X��UE]�+�aM���������(���F5��s��`�L������rU���SU�mwJ9s�V�'}��O&+p�s��Y��4�L�l�K�,g�0m���V6�%gm��O��H81��w�`�j�8�#q�}�h�������}����v��GY�V�|�>����Eu�m����_h�����;t�-��)�a��>�h}��pX��k����4M$���S���fM"�����������Kf�Y����^\��3��w������P}�E�v�����t�����������\D����G�c�����>w��Z
v'=ad���vE�r���2�=8����o_����V1�L��������������3�=\s&��3}[�sk=h<�)�mxs�����t���L#����x<M9���q�o43����Y����v�a�o�����a�������E�7�� �W�����L�F��[��=�����T{���[��^���^���(�����������v^i�G�J�
z|��-8E��\��eu�W;s��l�3�u�����;S����G���JZYU���3����>)������V�b���'#�����K�����7�������zzx�������w��b�T��f���T�j�F��hTY\a��@��w���k:�.umG�,��k��5�`���]��a:�:��	N�1���wO?&b�������2�����{�h��M��js���Y'~rR<�s�VO=�B���	�E=�t|���U����}��k��i���7���S!U���n�����w`<����/p�u�Wtz��u�]9G�?�u_��9_Gn<����u���c���9���6��x_(��������b�
m{��zS�OY�{��p�=���sZ���|�������uv����z���*v-���?��-�u��R�����XO��P����kY�[_�7����M=lf�g)|���O�d���|��u��������o��Z���7��=���<��:w*���]k,���U���L����^����yK��p��&�Q�bt�+8�!�
M�c�Zw/u�:�:($����I nl�FG:���|!���yS��a��������O~=��}�������tM��I�D�?a �dU�e��wM������&�e��V��e�X�~_/���M:���e�XY[�e��U��WG�V�U��W@w�����>��<��������������c7j������������7l�l���p����`�����c
��{���}������X�2��c*��w�7���3v�ws>�����c*��:�wT8uQ�v�U���u���Tn��C����m]9���
���i�6�p�$4h��N��ub@7A�ov]�$���*������*��Ye�e�ATk���TATAT@@@@@����������#��c�:cc�1�c�8c&L��o��N�H�*����OxD�I��m�(�*��+J�$��#m6�PY���"���'����I��m�5��A�I����~]��~>X+3���t�������L��U�*r�J��o0v�v'=��ma�}�$���w[�5��[/]���
6��z��h�K�+z��Q��u�U��G|#s�����l��]_��ry_UW����|x���x��c�LcLc�1�v�d������V�Z��H�&�m�����V�np��6�m��%iU�*�V������j!ZUj
�ZUj~W���A��L�����>s?:��|R�]���G��w�g��1��lmqQ=������M���4qK|������{w�)���)��=����K���w��^\hD�n�kIU��3���u�}�����$~<t������^��c��c�1���c�2d��v��j=D���j
,�\��>�\��PY���"���B����p:��9r�mH�qRM4��"����!�U}���������1s���hg km�0=�]B��r7�.1��%@Y���U�������pHfWN����
7��\����b����RaG��Vt�I����������'|��d��?��x�����1�c1�1�c�1�1�&Lc��cNgz�M4��+J�AB���$��V��l��m��u�&����mAdJ��PT���PY
��P{��dA�H7���|�u��u����]t�����m����x�o�	��F�"��g,}����@��7�|���?h����K�Q��B8���j-#&���*��U�B<�H��uCq�����nW�_����|t�����1�c1�1�c�1�1�&Lc�o�d*�WXJ�U�$�\��(Ur� �Ur� �Ur� �\��)\��,EW*���U�~�����_�������_�kI\f��^(���f�w���-�V�OU�XV�n,��x���N�������!{���Qq5�����X��kxT��%b��F��3\����:�g�~q�H�c������^��c��i�c�1�����2c�x�{!U��d����m�n$s'%D��WY��q���\AP��\D�N$nI&�r��,EW*�
�W*�8I���>���|���s8����_9���:������f��]����`-QU�i)T�H���\��{1�c(�H���a��R�Wb�C�K����#sI�� ����e�{�LO���d���F���z��{�F��������1�����1�c����&1���q�t�j��7$Ur� �\��,�U���
%r�\A`��\AH��\Ad��U�J�U�I�9�dH}�{������g�s�V-�������t�G��E �^|_��������+WZ��L��V������������e�����s�(eu����T�X�����I��O�w�\u��Y�{�����:�$�V�m�^��X�1�t�4�1�c�lp�L�1���c�=�J�U�\��,EW*�jp*I+�*�$���q"��q�*�WX�Ur� ����q�">�UW�}�����W��A��4�U#�4��|�^��=��)������\���y�_��6���UpZ������	�gn�L��)������
4^�7�5|w�Y�������`�>Y�,��f��������~o�)����;}y=c�1���1�c��2d�;v�� �J�U�"��q���q"��q"��q"��qB��q�*�WQU��^�����"� ��^w�������n�Q�eN/��"���J����:�7�=��7t�:�I�	���m
�XC
q�q������Y3U�G��Y�L��I�2�e�;���W*���_o��.�)>�����U_/��t��dx��c�LcLc�1�v�d�����8��*�WY$�\��,�W*�E�D�DUr� �EW*�U����\��(�\��,�W*�>����~�U~~�'�?��to��0����1��Z�2f�H��su�K�����h���wM�n���ZPu�{�����M!b��L�-������2��Y�����5ry+�*|��XtF�i���c0;���>�[W��^��n���vd@}O#q�c������e�������&J�t��'����VbX�������{5�S\cLnLm�]B�����TvL+x=�-�]�@�o9��dF���j���5��A���|�6�R�!(�������Cr2a��t�������U��r��u��
��S��p�eI��ZV���E HC���OlML�h�t�u����!Y�����mP5E����mV�B�Rr���"@ag����1n&�e�����wqCr�L��2xQ]�~���k{p�������s�Q�
��T���F7�SQYm�����>P7��+�5����.���[R����wn.��C7�1���Y�w��/j�=�J���L��@��e�X��&�Vu�A`Nv�������e\�bt���Y��E��O-u�bW��T��l����t��xSY�{3=H��<����L�YG�!����@g���R�����t'��Gs�#�������|q;� Y��7��s������H�K._����j�`��.��/r�������
�R��	gE�I�����ul�����;�]�w����|���/ac�=�~.t�5��,�#���]��������V�}R�gs6����w�XzU���w�_�`�9vv��5Ji����Ol�=��e-�Ogt�����ka2�em�����@���(��w ���+v�C,�Q�c�!�Y���z�^vno��t�]�ue��Ke���2�ef���y����h����G����Z�%�����8���0�v�k�}��J����u�q�Z�!�>Y�iwpu����J�r+"�e�����d��\��=!P9��M�Sp���F�vn	���\�!�N��]�G$��	�&�J�4:��)�z���i$C�k����a��Gm�~o��}���'N!�8��w$$I�A����U^������VJ������a��������:qc��77�u�����gw#���g�}�����r���."��WAb@)�#M��Y���>����j]����Z��fu�<@�H�*yN��}=�v���R���Q���[���>���_W��J_�`~�i��_��M[��$��l��9�}O���^&X��q�9g)��V+.eq��� �vC]c����V��}����Q#�����7�$;�+5]��y(���}K2���/y����K�����{���KK.�pW�X��Y5��?����L��8��|���O���R��m��h���D?��=���<�`��\+w�Rw��Nl��+����+c���"q���rg��}
���o�����VU�-�.�L>�4N�tT/�t�P�}�|:�Y7N
�R�����<�S2q����[���u>L��_e��/fr4�8��m��\����+o�$�s��
�_�>�<>��7%��1g,8R��8N1e�M��um]]>��!
�KgZ0l��x��gS�l�xVc�\1,�{Y�~����L
��{�Z����y�g����$�����A�1�IJ�������y��0o��a�RV��88���g��Mk#��>�U��rz����2���A����[sG$,���2t}����(�C���m����4��mz&����I�����Uo������[��!�����/&��;1��N������B�:��g=����u�M���jQL���m"~ls�XM�-�;�J��dz�u�f��+�V��\w��~_��x���8T�1�z���bMFTq���Z�f�QI�
|B��
:��I�u��0�����[w�nC��_>����,�0�Zec|T��{�+�@�}&�M�e�a
j������h>���c���WfJ�\��O�:fr��+H�0$�S]�W%������-l������Rd�(����L�s	8�[��=nu>/��tz�S���=��7N�"c��P��q�X4����W�!��yd
I#�k���Z�0�sw�����p=���}��>?})f�@�������oD���U�~�A��L���s^��,����|k{�o;�?�~���T.%B�[7*:Bk��N����u����Q�P�Z]bG���F|����L{[��oz�i����/�����DL+#�nLT�u�z7j���)���-�7��t��i��P=��];Wlt���N�������������}��,�����;��]��Ye��V�Ye��Y`o��|�n��4�����Y`Yen���hYWw]Y[�WG]�s�o�������(��
�
�
�
�
�
�
�7q�����
�
�
�
�
�
�
�
�
�t���������w2�����k���7j���U0wuS�U�eS
v������n��g��~�U�eP�6�p���mP��F��TT8v����v��Q�n��j�q�t�;j�*�����T��s�o�������q�ywtT{��v�����h{�����,�,���*��v;wj��*��*�������y��y��<�1�c��i�c�1�����2c�x���{�I��\�WX���q�*�WTJ�U���q[��j��,�W*�!U����J�U��"d����q����������U���d7	y��*���F$RLi43-��G�c.�8�2�n���]�D���m�*�9u}+igu�xGV��ez�w^�gR)P�.��p'�.��r=�-3�
��W%z��{�R^w���O��v�������c��i�c�1�����2c�x�{!U����Ur�s''%�4�U��#�r� �Ur� �$��\AI%W*�	U�����6���/G�o��UU��g�A�O��W��+V�?�c�����5�����|�U�b�� �u2y���af������3�}�`��T
�T������J�q�V=i��.WiO��V����%k�5ril�E
��!����Iuem������������{����1�����1�c����&1���p�pG\��*EW*�
�U�����\��*EW*�
�W*�	U����Ur� �\��?_��8�=^�����{��S������.�������GU
��,�,K-W���I�����li�C����y��\���6���
�\U�9��_�S�x����]�Rn��NszJ����n���e�@
����^�e��B�{=UU�����y{�~})��1�c1�1�c�1���&1���q�U����W*��m��rG.\��U����Ur� ��\����H�&�r����#�"��q�}�����w����:_��Yj�O�vWs���F�����`�qr��4�S��Q���r������F��Q����e��V2�e��@4(��=�;o�>���]Is���!Z�3D��I7��������m���.�Q�����h�uuW�_�w���<}y�c�1���1�c��2d�;v�� �$�\��N�	7!����$���q���\AD��\AQ*�W���hr���$Ur� �Ur� �3�B>��w��<���~u��}�Z�H�}�M�����v7��i������)t����-���"�n��f��l*�f��B���c��p��WM[g8M�����ha-"�Ka���
�j�<���S����S�*��")����i��y�	���M�x��=z�1�c�1�1�c�;c�2d��v��"zEW*�D�\��5��R+�*�D�\������q"P��\H�
�U��d��U��a*�W'�}�'^{���y������u�p`����udAl�����5�F"T�s;&>�];V*��]����/����t�1�j3�3a�����n��U��S������GJ��Ga����	cq���x���n�|~<}dx��c�LcLc�1�v�d������zIUTd�I�m��T���Y
��orF�m�,%URK��"UU�UU�������������U_}�������+E�~�)nV�r`���/�YO��t����s��[V�x��������-�b�U�5��	�D���j�XKxD!��e�Qe��E�o4*-��se���.�EW�~�������#��c�:cc�1�c�8c&L��n���*���N"�J���D�����lK$���P�UD�rH�m�%�%UQ6nCm���$�UOV�UU{����������]3b�D�����6��^e	r�_g��~��ks_f2�]��U����������]�i��&��/����t��5`f*��zN��5{F�V��<b��M�d�9����g�}������x�2<z�1�c�1�1�c�;c�2d��v����
��$��URID���JEUT�T*��������I%�IUU$���I*%UT�~��{�������������J��:�`�r�	,����gm���C��-N���^��+��nM�B���V����M�<�kgv� 7��]c�x��}${d�
��;�Z����u�Gp��M������C����><}dx��c�LcLc�1�v�d������$�$�URIQ%UT�X�UUI%����JURIb*����UU$�
��^$U_��U_���_UDP4?4������N|���r
�V>�x��?Y����������<E@��Lp������VI���P
9n%�o>���e���h/tg���k��L�A��0�c:�p{�X�rA����i'9���$VwrD]r���|ha��a�|#%���x�,J�2�� 5u�6;�)c3`�d��C`c
*��N�'���f����+\�x3����v�������C�):��C;������lo9�e-�j�����%Asa�O��TA����;o/Y���	����/��uFkb\��;��Wu2^�;_-Y��dT��JAb�F0��s����cSQ���J��,��8z��X�W���b}���Y�u���N���j^���P�q�����y�7��9]�A�VL��Y������t!u��`w$�S{���,��CS�o�owuKSv�y$T����!��c0%�4Kt�V
9����r��p���	��	R�	js�3R��{�wD���MZ�[��r�3�����o/Er�N�������o9������]�b��6�,�b��{	�+"���e�.���sS[�G��&�#;��$+{	w[t2zu���k�6aV6AwpH���p�9�A����|���vd�u�m�Z�U��zwG��f������n�{����0P�q�$��i��;(��lX��V3C��R�_�b�m����*j��1��f.��#�%��\	JEn��<
�/t�/n^�s��%^"����lj�K����9;�Re�zQ��yL�,
�� ��|r�����&����R�a�H����N��m]+V;,������&�j)&'="t��C��5l�/K����Y��By�y����������nWg��e�=��:���[�r���$�Ul��;|�}���\�Gq=�y=���'��1,���SAw�l
�i�3Z��n�db���"*xC��F�3*�8���nV��v����v����;���������Zq"����[�����!�3��ji���5�������}j<��o����eG��������fg���8�H8��'�8�8�'<�
�� �H<�{������B�#�e�B�5���f����j�����H����}��^U�&zC�Q����~���;��|����Z��r����(E���%o��h��@S��a:g����h��w������.�����c/�=��L[&����xlM�����,\gg"X�D$�czo�
�F��F��P��81�����e������/����<j��A@s�8�����~���nv�����{�Z�%DQ ��#&�!��$~����w���*M��=��K�=�:�S�v+�*�U��N��I>����C�{���W���n����a��iX��v�@�F���\�a��;x`<0�����+J�F�B���a��(��-��|e����=��:R���V��zw=�'�v$���s�Y�=�7+/n���{9�u�����B���������tnU�~�o�'kI�+��WRo���L,r�5����Z�^�fM�^f����b�I ���z�O�@re2���0�ju��W��i���yg�N^��V����}���Z���H�7����,~�LW�6>WF�?l�
�$m6��p8_J2��7�B���A]����T�o[���!;$3������u"�u���������(]g�����P�����=��U�������}�w�>���2��T25� k.[�N�C&x���8��>VyE�"Q�+8���d�sU��v������S���k���]��^������t?Zv��x��gv������������+�z�vC&[uz��
��]J�A�R�iK{����oy����T�+���w������+5�h]u�,f�nP������stlu����w��,O��F}6�����!�������;Z��x��;&8y�O(��]���p|+c��_o+���	��x�q\ovM�9�R!�����[��4�X������#2�S�qa�-*�O�R�f��|�\��y�t;���w�Utv��Q	�����i���)$��u�:�vS~4��2��&�*{�r�_"���1��nq��-"����6�|M?�������3��+9�K~��+<����	����~SM�d���_��-�������UU�{����G����������J5wP�~���ic�tL������]:`m��H����=��a>�e��C�l��qv�u�p��+/�W(�������EZ�tGJb�����]f=��b����������OO?w���T���&�[$����$��Y`Ye��r�������Yen���`Ye���������N��hYe��V�Y[v��wpU��em�tpU��>����~W�y�U��TTTTTTT��1��wu�TTTTT;�����U�����wpWC��L�T�]�La�WNv�������2��c*�k��7���3v�ws>�����c*�q�C�U�j��5���
���76���v�*��v��7j�q�t�;j�*�����mP�$��4H�L��
�{�J��@t��[u�C�Ye�n�UP1��f�PUPUPUUUUU�y������������1�c��c�1�p�L�1��?%q	 ��UU���UUI*���UUXUUXJ��UUD�U_�I$�I���u�q��9z�S������N��t�[�������J��J#Rm
��������:�h�skorGG��;���R�H�rL������)28j���rR��UE�~_�w�����'�W��O�����1�c�1��1�c���2c1�j{$J�������J��EUUB���UUJ�UUb*���U_a� �����~:�o�����h����MQ
\��e��WQ�E�assbH�����Cx�r�E�u_�^��������*�>5E���c�T����b����&k��H���l~>��^��c�1��1�c�d����c�*��IUUdJ��IUUdJ��*��%UUB���UU��#��g�����{���x�����q�~utd�yt`D�:�nPL,���o(C{2S��(0��1H��S������5��;jCr���&5�c�{2*��Ufe�l�9y��b�&��DHzeU}��-�6����<z�1�c�8c�1�c1�&Lc�1�D���UUP���$���$�����������UU`����G_R$���s��'}_��>��/6Z_�I���G�9����O_^�g����{1U�&�����e����V��|{�������]}]����|�v����q��!��>���N(�f�,��3��\���������c�1��1�c�d����c�����UUY���UUY
����I��mRIUUB���J���C��k:��=������x�w�d��w���86���t~w���{5�yCGU�����B�.a�Qgv�v��j�Gl��s�\{U�f�S��#�B��)������\�xQ����o>���r���<}{=c�1�c1�c�1���&1���UUP���l6�m�UVH����U]nm���%UUI*����#��^8�x��x����O��=o}M��u��\b�:���5p�[�-|>������e:������\�\u��X������$7�z�wR��/z�^M�WQ���:���;k�Ne.�}U�o��?Y�c�1�c1�c�1���&1���UV"���$���I*��B���UUX���!UUB��\} }�:��~w�w�=��S_����%:��z����<�f7�����jj����^[�����=��mw��$+sG�X�L���c��W4�*�)r�Zv5��f��Y���f\��l���������s\nuu��u/��Zr�t�}{=c�1�c1�c�1���&1����6�m�IUUd*��UV"����#m����UT���UU�I!�H���>�)^�W��E?�e�;�-X���dv�sP+]������K����8����;
u��
��#N���6:��3oi>�1Z;�D��_�W���4�8����*n^��.U����>_{���}~�=c�1�c1�c�1���&1���~D�m��D���EUU�*��IUUb*���UU$�UVUUg}!��~_������w�;���u/w�w��;��N.�]
�q�f���w�_h���F��y�Ub�]	�:>���\Y��V]�9����8�I�������]�V1_(n��%�:t�-����o��1���=z�1�c�8c�1�c1�&Lc�1���I6�m�UVH���EUU����I*��EUU����:�������|+��E~�m~9���9p,��,�|���D���� �y'W6k��'�]��%/2��Q_=�Q��\)�F��w�u1�'<(����&&��,�k��c4g��R����A������Fu�U���f5L�������d����W*d4����E��\2�XC��c7nj2�(
v�����������#����v��AW���Z��=��tk��{�n_m�T��p������'�����6/���X@��1EC )Z������Hz������C&��kL���#�i
���|;^�=��������:��Zu�=8#)����������l7�	�Q'�7 �����I)^�2����
�te8��$VLt�}�cf^>hm������D�{g\�+8�	��B;��d��]Op��jQ�.����+e3c���E#v��������h��u�I��G��>����n�Me����7+���6������)�s����=�W�)��z��u�=m�����k�����G�v)��5�[W��S���d�����[��T��gD��o��6������>~Z���^���j��RNL���)b��Sgcr�-��1�x\�@��e���QX^`�Nv��|[��	�s����j��_P��;O
��;y�2Wu�$$������E����{!��x;J�Vh���_R��V�w�������W�Fx�v9�B����,�����V��������r
�v�; �T�
����A1r�wC��AE�]�n�8�f�\���(b�p����s���R�q����������y,���$Uc�C��A�Lo�7��Gs�k�j�e�h��m=���n��}kJ8���;=������,<5��e���ui����;��Z������^�7�.�/%��{��s�R���G�8:T�9����M�iV�Gf��8z��k���*x������G�d�k&57}��(��!w��|8l�x�F_�uy17�������gE�n���3t;`�s8WWTswl��2�����g}���Y �A��D��F��T��5k����[oum��W��^�{�_��7o
7Y�n��Y����������or����4����,[�n�����U��g��~
�gN�����c�+Oh|���3���u������66|H<�	G��%"�sm�3n����;8��e���}>���.��s";���vQ�����V%�-���f�{g��,�H��v�@+2�������t��������/\�z%o2��i�,����c+�n���3�g2��F�g�so�M�\
Y�������}gL~�����'��E��3H�g���{����o&������#�fx�'5�������]�3�������P���n���}���j=Nw��Xk���*IQ������>���J+K�^f��P#����GlH<��������������[�������ub�_9Y��Y��e*]�@����'���Jd:n��a���b����$N���$��C�ya�K4��
��0s�k��/0��kz�y�]y|I$���+�e�A+�����s�8�������a�tx�5��]��zA��])�\'�} ��7�����eOY{k^��Y� 0"_m�w��;���8��:��_l����Z��!�rj�+}��%�CW���f��6���[��mTC�@L����]7 =Rg��V}��]/2?���J�B�'t���������E�d~�{�e��N�{��1B�K�G���i���C��@�U�6��d�jz�A�fge=��2�������N\��������X��XTz�����W�S��K�=����G�=�r��Z�S�s6'��=��.�2y�s�ev����M�����]Dc��r��>�U�c*��[�Z���anA~rVoW�������f���5���U`���]33�g�|;YX�\r'�+��]f�]s�N��e:`k�����-1�����8@�E�h��)�BE��:���"��z1��5u�������������kY6����]Gu{�������i�W��g{X�����H�t�Tu�&jUG<���/�)]��v��)J�Md����k�l��������+o��	���(�\��q�l���*��p���w����	j�_}�W�~�W�}��3�������EwL2�:n���
��7�C���u�������EX\C���m������3�����k�1t��G
H�_u7����Iv\w)Q�o��7��������j������N���������~L��r�,,��nU�u�Y4�,����l,������|��vi�wM,�����+n����
�8,��B��
�8>���������<�
�8*�*�*�*�*�*�*���3v�l�*�*�*�*�*�q�@C���
�t�����������U0wuS
v�1��]9�����c��u��a��<�������������
�u����Tk��C�U�mPP����gY��@F��Tn��C���s��@wwXu]6�p��0���s~������k���� ��
�p����
������h*���f�v�*��*��*�*�*�$��I&I	$�~��������������c�1�p�1�c�8c&L����3�"����Ue����$��*Ue���Ue����Ug��	��u���C�������r�����R��0����#yRWu����,t�����F�W��=���e�tkJ�)S\s��5��{,����4�������=�����u���tI��;v�?g���1�c�1��1�c���2c1��OQ*�YbIUVQ%UY��I6�m�7�m�d*���UVY
���UV~t�I?~���?�d\��81�v����
�m:a]�5'Wo�n�+�,d��F+���Y@c@v1��6���eI�
����K/I��u}�7�����h����]��������1�c�1��1�c���2c1���UUw=�u"t���H��8��U���UV|�O�'����R*��$UU�"���}�$���s��|�u�������V�&�r��Z�b�'\��������l�Qu�F[�}����	U����9wx�c���y(�k#�o��J��d���)���mBC{�pY�u�{��;���lt���y�c�1�c1�c�1���&1����UVR*��UeI%UYI%UYbIUVid�V�e
���UV~�����y������`��Cje�O3c�p��D*g���h��ksY��#�W����������V��mmN�%)��tm�5]]�S=�%��M����u�N�*w]���5��������O�lt�������1�c�1��1�c���2c1���UVX����UU�"���UU�����UU�D��,%UY��@�$���������]N��H�l+3ut��5g&	A#��^-�:��J�Y%�sq.�k�)��Y��T���m�hX��v.5��j*v�.�t�^�����;Wi.��i����v�������<z�1�c�8c�1�c1�&Lc�1��*������nw6F�m�d����Ug|�m���$�UfI7M��r�UVw�!� ���nq�7��?�����WE��E���Z���m���BR�s�y#�����lt����V�5y�w��7���aG`qL��b/��T��sjb9�cf�/I[FY�z���w]����:t���~G��1�c�1��1�c���2c1���UVT����UVQ*���J���RIU���UY��F�m�d�����H���~_�o���*����KJd��cN��'\�aX���6�c(��{V��.bGP��(��A��Hz�:T���#�S�&����(M�^Ap����`j��Zr���{���^I=t�];~>����c�1��1�c�d����d�H��,�J��U
���&��m�,�J���UU�H��,$��,$��:�I'� �����z_�����+%�����S��@��tv��P,Vd����hT0+�r���nSB�S���� �X�a�#�Mb�r����C�
�W��Y���'v.�����o�v�������1�c��c�1�p�L�1��Od�UVRIUVY
����UeI*���UU�UU�J������� �$��|�������W�{����no�Y��������/R��N
w�MER����Y���B��1d%�e����-j�Gw$�����_}wo7�o}k�S��kZ���xH�����c��c�1�c�1�c�1�2d�<c=��Ue$�Ue�%UYa*��"J���$��8�$��e����UU��Z�����}b����|���
�S*��)���K�b=������
�:�t�F5'E��u�v����
����5�{3D���.�
��;����C�m��Ov���F%]���r��������,�$�u����F�I��!���F����x���O�&w��)�W���i�{n��.���;2��u.���M�gk��o5>SwV"]��'�S�0�M�P�����s.�2���[���f}vq��p6-3���1�Kv2���8�A�l�iI�gr$��s�@�zGTE����X���'s1;�u����:��S���,%�f�HK_m`Boh{��p&������M_3rqys�+
���q�Qt�S��A ��}9r6%sm.�����T8�3����?.P�e\pg\�,�p��5���������T6�����(~�;���V
w��2"��v���;���t�m���~A��Q�"�{1d�a%+ Z�*�9}|��Z�\+Ob��3{�-�����15��^�I�Bg����3���/�i�*X;(���F�-eY�^]��)�&�9�"�����7,�_;����=���&W���a;d�]�G!�xL#e���/���������p�M9p�pC���i��4m�q�U�z.���\ggM:�A��:�����L����5�zIF�s	�1������Y�}:i<���R��3�~Z��Y�\=8c�K��=����gye�`��&�n���0����wR����a���G�^������j�U�I���Z��3k���j���VN#�&d����+�f%`��Gw�li��Z����N����,����b���J�sK�u��3	;��]v�v��JA���}��m���(J��q�����^>�oy������2�S���y���h�������i2�����,�����}b�:�)>����4�R�0g��@�!v��mm��[u|.��t��sL:�;mX��E��w���r�rY�,/(���:��O�������t��omr���}u�]sy��yy�jv�Y �Ad����Ui�Z�J�kW�[ouo{�����U{��+��uC����~�������I�o�Y���h
�����[6�u���0��{Ut�u�^�S5����d��o�i�]�N�to��y���� ����Z���:2���u����v�{Q����BV��%�����v�c��7z��+����29(�W!�<`�4���+���d
��5���f��R����o������q��"����M��7��������b��'o!o���5�[B�&(<n?&�D�9������A(�o�v����[~%��zyVv(*�x� �lq&��t�������oS��0�P[�su���G�����G����M8�Z"p�^#���acD������iD�>���m��
�\=�'�F��K6��8���/��@�v��xu]��Gn���l�Yw�_)����G{LtR��f��(�r��L�|���=��mF�+�B���vr�n�������zP����*iv��l`�X�������e��%P���]�>?�:�k��v�����\��]����������a���i��A=��V�eG9���];F�Xv��s T<�|����w�����p�Y�9d9(�}D����q���X1>T��=6w&��7��j@���]d������
�>N�th���N�]���r��f��X^�/�m����+�g���m �N�q�!BeC����cr�������Rcf]�'���[�2�;y�T/������Iov��+�n�lQn��J�����V��9�������"���,�����g.7Y$��y����)���RjR�]tJ�]����/4���T���~B�XHh�g�����Z�,�aa��	��Z����.g��H���H��TU�P��D<��m���[���,���%�n��}�eaXl��rgo��[����3�-S��3$�iyk*��
�{�����R��z�����t�����[9mk�l2n"���sy�Z����2���y�	��g)�|sn]��w�uQV�*�����6��51�KX��\�����u��o�=���,�w���n�x	��&�4L���t�]1P�@{/��Wh�+������{�������������������J��!t����PM?�k-�d�Q��
J�����[�������
_iM�#WjY��W�dh2��u�D��tQ��Xw2	�����O�����o��������IRH�?&^���e�p,����Wtq�Ye�e���m�e�X�~_/��n�:���e�XY[�em�U��WG��hU��WG����~}�^x��WGPPPP]@@��n�n�`UUUUUTT;���7M�,�,w��t�c*�GwU0�mS
v��mSwU1�eS�U0�o�no��wuP��}���Q��U�j��5������s���p��������
�t��7M��\�����
���:��T8uSn����s�{kw�5�y��i���:���*���,
���
�7�����
��
������fg<��<���������<x�+�1�1��1�c�1�L�1��SS�+J�si&�m���M��r����%UYEUYI*���UVT������A~����������}�KQ�}���rf����iyF�'uu�#�H���W+�C0$[����c�*�����Y��Y�B��3�f�7�w{���P����1���x��V1�clc�1�c�lc&�2c1�������J���J��UV�eI%UYG�"���I*���UYd*��go�>���UW�|o��~�?�yx��I��+�o
����oo:��%m]VM�����7�Nt������i����:��wm�cv�W��������Jt�t��2?���q�z���M�w��H�i���O��x��V1�clc�1�c�lc&�2c1����UeI*��*��K$V�e�UY���m�*D��*D��,EUY�g�$��I��]s���t�W���^K(�r��w�tm�8y:��M���\���t��X��8��w�IAw�8�e��r��[�����K���sr�C��F�]�������z�z�[D�����>�O^=c�c���c�1���L���c��Ue�IUVRIUVT*��Ue���,�UVY
�������>�{���W[���)�Swc+?l�����n���<���9iU�mNqgWf;��B�7���Mcr��{�����������i6���8n������Jd�)����u������\ZG����?X���c���c�1���M2d�<cOb*��"J���UVDnH�m�8����H�q��nY"UU�UU����m����}��U_}��u��������"E�J��w��d�f����+2D~O��O0���dm)`b���]�����t�<�g�\����dm9f�1�)�r��Nz�����}o����~u�=Uv������X�c�6�8c�1�v�2i�&1��z�J���UVd�|�>>>>K$UU����UeI*��$�Ue�*���}�D}���������_���,�[l]����yI6kKp,���A,�Q'DQl��Ji��C.�a���V�ot��X:��[\��gU��-+$�aC]�,���)��,�����[����aW�U�����������X�c�6�8c�1�v�2i�&1��z�UU�
�����m�RIUVY
����I��nP���EUYR*�����$�����|����|����9����b�0�����d����}��=���(>|��}!Q�����z�m!P�:���t��n����������4KU����7�>u82C���}��|��v�������1�m�p�1�c��d�&Lc�1���6�m����m�*Uf��m����J���J����&�m�Q%UYa*��� �$/��~w��������z���Y�n���B�q������H�e��s#��\�c�.�*��&���;�����������)!��l�O!�n�J������i�-���������>�{����^���1�m�p�1�c��d�&Lc�1��"���$��,���*$��*I*��EUYbIUVX�UU�$�Uc�UW��������?�������grG�n;0�v�wM����Y���s��YZ���[�rs���)7����.U��!�<�_d�_9r]�[�J���d�����8�FS.J7�2�}k*����t��?X���c���c�1���M2d�<cOH��,�UVX��������D��8P�\����m�,�*������}>�J����~�E_��_�������4r�����;�Ra�X���})��F�{�+��Q%����H����zn��E*f�4��b�o.�9��{�C�	O�f^i����n]�
q�����;�4�u�	�9�5g$6Q::������|jS�U�`=L��Zl���d*����S�Aj/F4.��'O$Lv��XN��2����['����d�y���BL;�����IR��N�������Pr�,�T$�cq��"����%V")�%9�)�]�����X��
����(9�U������%�$�]�H������2E+e�t�;em��[Qm�"��|���:�Nhc�mx������	F�F�[�a���Q|�����=�B��,�M�&��b�M��X0��]I�c(�����x�e=��&�E+�v�N.Q�-�U�o����R6�92,��u%�KZ���.�0b�
eMj��1����w_*�Ale��`�p\DXgy�x>	�nfG
����2�s;hru������*�;�y	oK���4��������\�26�yV������d���&\���l��v`�{
��w4���;JH"��z�]��s|��J����g@l���>��rG����3�
���W��`�.wZ
�]�
�M���"Tyd�U�z�N�a�,'������������{J�F6l�u����46���D��c��y,��������s���A�[X�EZ�_uN���Gi�
���#��m��s1�����Lf�b�u�/Y1�����j���z���k~�q��E���{;��)�#��c"���z�c�`��:�4H�3!��)O���R1������F��k�����Wr�<�]��W�q��|v������'c&����{���"�gM\�rs���xU��2��m����+
�?2��A��z����Nc��G��mM���xB���}Y��tR�:���
[���d����.��QjZ�c;`�x����@�@s��������iW:gud��B�TV�t�P�60]<<��=z5���|�����
II���$}�4���Y��*�T�Y��W����U�U^��~�L�&����Wka&��01�\)����Cj��Z�N�@��`�.uam�n�vr���{Y����xpt/~������1�T;��
\&����yI���'��s��3�&}"��r����Xc�
�I��]
�Qq�vZ�.��)
�^>]��o��Nd�=3u#���8���d��ttbe���N,�8���h����CH�=�����10r��)lux��8�$	%�����S�}+Y��}����p�
6���}��kp�Y�nr%����PH�O/���2�

�wW�����������2eYM#_��=�������PAX����l������\�:�#��y��Z�������M<���QTQ�-�����*�*�T�k�/�����T>%}/�s�����m��0kE������=�����z<�����5���!���zi��n+�<�m�j��2��uTh-D)3x��U��3���`����A����J�)���������Z����;�O�����Cs�l^�����bBKkNR�b��#��4>��y|��3���3_j�]��n��r��M.+}�������6��]o��~����K��
��3�vS���q�E�:}�J�p$a]K�[%���Y��7+c��g�=f������"����s+M��I�E�W��[.��s'w{����/Esa�6ec�~��Y���
����N\��>c��>��mz���<��=����#L�P�S�����%c��^�\U�L�a�����(h�a}���;(���A�I���
����gsb� _^_���$N��������%��B_c����2Ygs��	��+n�V���
%����)�r���|�T;z	y�=&f�G����x�+{x#��k�#)����h?:~*��
�$b��H@e ���&����|�G�o�����=So�@E�6<�H�UB��.;�l��^%&�o�=|��$���O�d��������H�n7Vp���S!���;kM������%��7����G<�=�����6H}����%-+���t	/`b:�����{���W���~*W����#���=�8�O3n�i��u������9(����������|�
��������Z���f��$�\���]�����[]�z'��Vc%�7���{�������z{?4��4ou�M{�������Yg�,����������+t,���,�7���_76��u]�B�,�,��B���,�����+n��������>����~W�y�U��TTTTWGPP�����,
�
�
�
�
����*�q�@F��e�e��:���e]h�����a���t��`���1��a�F��� ��6���I	�l�B��c*�q�C�U�mP��F��TT8v����v��Q�n���Q�v���uP]�4��s��C�U1������>���|�\w�n����
���i�C�Ye�n�UP��gmPUPUPUUUU<��fg<��<���������<x�+�1�1��1�c�1�L�1��S��UU�D�UeH�Ug{m���Nx���Yd�UU�UU�vI6�m��*��~I"I�I��t>��X��m��y��8�)�
��mm3N�������n��V���m� y��ivu�
mJ�V�2��*�����h�n��/
��[��So��k��qD��v�n����c�c���c�1���L���c��$��*���UU��UVT%UY���6�m�d�UVX�UVY	UV}�d���8qw��o���6���E��?����3i�����2Rx
+NP�m
a,��,�-VB!!GF�i��u5Q��D��g
��7YI�r�����8�
��_~1�����^�c�c���c�1���L���c��D��)$��,�J�������q�%UYQ%UY���m�m��%UYBUUgs�$��Ag=�?:���n��;�*:����1%i�:�n�YX:��,�Vs�[�2��uuh�gH������a�f@�v�-���>4�f�;��3e]vS%���]}+js�}��z�S�y��o}p���������^���1�m�p�1�c��d�&Lc�1����V�eUVT�UU�HUU�K��e�Ugrl���nd����||||�*�����$��o�Yy�y���z��������9����������1d�D���Y�������Y��=gM$���f���^��r���%�4
'�^�"k�R����;�b���o�n�`�;��
���M���u[�ee�����:||v�}z���c���c�1���M2d�<cO`��*EUY`��,UeH��;�F�m�B���l���r�UU�I� �?���~k�~k�_9��'���5D��_K�:�
z��Yt�.��JyM
��EbY���6��$���L����\f��Y*S������K�(�f!�V���F�_�;�(�R�Mv�������7[�����n�;�8�&�^�{����5��	=r���?X���c���c�1���M2d�<cOR*��$��������$��(UU��"��*%UYdJ���UV{��������;��+���>�8��=T���w��5����;�
��M�Q��tR����\�[X����w���$U-M��MM�[w)��^��I�3/fl@��^��n�w8Bn��=�a�e)��:�����bI�v�^��]i{S���~����}}}z���c���c�1���M2d�<cMz%iVv�H�m�>l6�m�Ue���(�Uf�%iVTJ���J���|�B#�$���;�5��q�_x���;�s���W�O�r�����gX���K�������{M�������J���Z���v���L�[��{+k������(������n�����w��l*��t�F��}����}|cm�~?O�c�c���c�1���L���c������UU�����nRIUVREUYBUU�UU�J����������A�:��S��w���n�T���),dz>{tu�<D��%*��vG)u���Y|��*��:Va$�u*E9P��**GQ�g^��c�P\���f�C�������N��#1q�-%w$'JQ�}��>������}�����1�m�p�1�c��d�&Lc�1�������Ue�J���UVQ*��"UU�I*���UU�%UY��H}����������Z�Y��8$��^PA��c���V�v����=}@,�0������;D����=�����Z��Q)����$3{;��ehmf��n���j���������q6rwU_������������b��cc1�c�;c4����u=�����Ue%UYQ*��$�UeI*��J���%UYI*��;���������n�w7���c0���]��w(���$��%�����_($UG�7�n�90���%�	,�7��*�q��3�@�i��,�����{|�_�y��v���fz�����m�(p�S��t�2����F�v�bH*�����Bw��Ku�����"�8�<���b��$���������9���v&��J�I���^M���2
�t�>"J+���&����of���B�i<�@�U�������.,�X�������3�
(��^������[�l��'�H�����=�1������uI���0�X�1��5��w��t
9Vo�u�D��U��RL%6V,���Y��k���(����ec�tXT��Lgd���������T��)�Hn�nC��+5��Q_M�����U!W��v��i�s�5�m�E����-x2.����|��u`�0����LYy�����LA����S�m3r����8Lb�l��K�y�����=c8j,��v���q��T,F�+L����-��*��pc�/��z��%��/OB�[�� ���*]�&�2y����#��eN�����S;
 ]e���c�w��<d��`nM�f���<����vfj���:�R����p��4���0��2u�Bc�DYXf�=�K��b�Em����O��lz����
����z(�BS�J�g����]b:�#�e;��^������z�{^�����%�-,����$�,D	�pR�u�������F�h�5������@��=��@�;�$���7,�O��t}���A�:wF������������p��"1�E|emzfp�)s����2�T�'�Jl��YS�����<�};g_OG�g���M|���xc�,F���d�]�vWQ���y{��1���N�:�����Z�g�����X�����������^�N�s �_r]o:��8������������r�T�����WWe�[&(�Y����PX��F��`��s-��Y��Ap$������!"f����o{�O�1�����s�4v�Skg����S\}68��.9O+W�*���rA� �A� �H��"q!8�[J�}��+T���W�V��W�}��?vt�D����%�~����/l�~�������v�S��!����Y��Y`p�\)`�:B'���ujy(_��}��,����sE���b�g8�WKaB�"z�#cYqvk�
Dgo)�m"kcw��}����m���N���3pj��'�h�X����������%��[Wj���X�d���BS	��Fz���W���������X��w�]w���9Le6��\q�/ns:�����������T ����Qb0�����y��dQlS4��^�"N��+0zJ�Hx���u`��vX�'�Y��/�E�`�
<mj���n�rwr2s0�u �NwM	f�����I��O��z|5_��:�x���6����]D�N�y{�:��+���=8�������^��2��J]���!�5���Y������r,6Y�M��;y��l��L�N�4���'I������7%tK.TA��w�����r��������v�(�	�������6��0;���X9�����z.�y^������E�����6��w|)������b���/�J�oO����w��0Kx�%�.�G��
��`�,p_q���4��{���'����R���n��f;��r��7�2�J�-5�i��=�f .9x�N����S5<���E+=��������-D��������6�F'sK7��j�g�0_�w�T���<���;t�*P��*�������#��c���$��j��^�/=y*���n���MsyIB�F�rFAl�)t�Z����"��f���I�$�.�F��<o��a�x���N�{����g�#�eSg.�\�uw^+��A����u:E������K�A�>�!Y����;
)w��Y�[��y����w������S�������V������XD�z��<@�f+�H�AoU��8�������5��������u��b�{E\8~���b���(�{��R��i3RUkl���\e�-:|5��\
s�d���v �|k~O���_
�Di���n�.Y
iKk����O3��m[�h������������������D�~��)Yuw�~��F���NO��J+�����di	Q����{o2�\��n��)�������v�U��$���J������{F���.�]^��yyzz}���Y��N��{��h���T�	'�T�D�*��;*��:�,�,��B���,��~o�,���vi�wM,�����+n����
�8,��B��
�������~}�^x��TTTTTTTT��k�+v������p��
��mPQ�v�n�gw��t�c*�GwU0�eS
v���SwU1�eS�U0�o�no��wuQ�n������LcTk��C�U�mP��F��TT8v����v��Q�n���Q�v���������WNs��p��$N�`�����ot	$�$$��p��wP��Y[�[�AT��Y�TATAT@@@@@|���<���><x���������1�m�c�d�&Lc�1�����lm��TUUX����UUQ*�����������IUU��?o����w<(�l�hJ�n�J���9��&}�G�m��!V����[��:GWZ�pVsw�����z�s.�n�|t�S�����������{�y����q���	;r���~>������1���c��+��L���c����m��UUU[����mRUUnm$�m��IUURJ���������y���_���~�7��Q�����h�����B`�x����X��5���r�-����L����&|!�efVS���c2��w���)j�d*VVK���[��f����������^�x�^<c��1���b���d��x�:{$UUY"��������m�%UV����mRUUT���UV�� ��'�������o�5�|�~��nd[r��iB��������.����� .����=���0�v�jF2�Y�b��D��Ra��|��
/���������i��RO�>+��~>�z���x��clc�6�1��2i�&1���UUX���������UU��.V���UUdUU}���!��I��K������+wl��%�&b��Ew1]	g���BY���X����M���������2�\a|���$����R<��]\���A}��J���T���{�&���������^<W��6�1�clc�c&�2c1������UUJ��
��$�U_7$�m��UUXUU}�6�m��>�7����{�?>u�>�;�����V��x��8o��V*4���"�n�/\N0v��;�t��a��j�Q9a>ei��!E:U�s�Gx3��y�|]��_>q�[�5����n����������1���c��+��L���c��UUR������������m��X�U_v�m���U[��� ��q��������������'c���Y*2j��2d�h���%���l� 2�]�C�:��ZL�6)��\���'tW�m;�1Jhj�2����nv���w\����.�����|m���O��=z���x�1�1�cc�c4����t�%UUIUUJ�����U^���m��UUY$��������U^��z����Y?�������:m_U�]�����������N���7�X��B����
�Z�S��:�����[������5�n�q8����&���b��3���"��v���~����}>����^�x�^<c��1���b���d��x�:z����UURUUT���sim��H���%UU�*��J���>��UU�~zW�����B�q^,��*d�����s%b���s�������N�]
�w}}Y���oZU�}:>dS�U�:gD�U�zw����t����)K��:�������~s���[Rr��z���=x�^<c��1���b���d��x�:{$������UU����&�m�D���IUUdUURUU}�!�I�O�?5����?s��,��+T�4�:n�R��{vR)�]��!���m*�L�E.�]��X�������������M�������w��sjH�<n���1*��k>��|r�������^<W��6�1�clc�c&�2c1��z��UI*��IUU��6�m�J���[6���J��*��*������S�>���t-��k��k�}�d�n���I���\��s�IR��zw�^���������#*$o+IP�Cw&��^�G,T��E�<���u/�K���#�.�H�����M��u��u����%Ge^jJ}����`K)�W>��n!4%[��B+�7�\����%�5�x���rjs�Yo��{j}��R,�V0���k3���U����<[h�D%c�}~��V��;���et��S�5p��U�mJ�����a3)�z%81k|�:��/Q�������Wa��d�x�L]����@X��*��V�4��lb������H
k\����u�&-tO�k����v�'��pygY�`�3��c��T�SV!�I���������87T����y��j���DH},���	�X"��x�GC�U���s5q����6��D��,]��;���/�����*!`Y����Q�n"��������1�z��I�W�j�4�L�RF��l]����v�' ��s,�P��5Bw%U��eC#+�{���l�����AT�^mXF�{0I���n�0�rkV��Oo{"�K�A}�Tm]q�=�I+#|$��5�\3:K�2
o6U���C-��2�q5��t���.����^!.�����3��J���r��X�KF<x���R���i��8f4;��J�5������������5�I5>^5aA7����F�
��{IL|70�l\��c��<55�y�nGff��E���{�Z�������o�2�����b�ri�1���tB,s��|��������:�7o�vH���$��0��u����nf�lRpXlU�r�#�\��=R
�M.�dqOej�C�m�
kX/���+����r�;��,r�b���wn(�`��*���7.X��������Y�fn���A�s[��	o��b�3w�~�g_��s�vI�_1�a��1��kL�o��������j��f����"�p���U�-S�Ua��[YK$�.�(�^vk^�ar�tI:oW@���H=�f�3z��s�����m?a�/��1v{�������n^���:e�Hei7XV&UW����A��d�d�~FHG	8����e-R�i_z��oN����@���!������gN!��
�����-��o���'��\W;U����'�0��_-��L�6����a��B�g��
�V�)L����V]�������}t.�x|]c:bz�d~�������{|iIk�5���,R���D4�r|�zy	Xo���@h��:���K��L��[����=�5x�==;�=�S�����[e�v��-;�Uh	E��K����������l�^��
�s ���s=��,���i��:�����s�s��Bt��u�V��C^��th��L���[d��$�r�k�eD3'�K(����a��X�79>�O�c�n�{�i���\�\�d6�Y|`����.����Y���X73��lu����d�7���gfh�2`_e�l�������}���[��h���x~��}���e�R�i+nk�nnY}������Q�M�u��q�����WhB�=��c����o��b�����-��p������e[��?��!�V��6h��k^V�a��-�q.�	w�Toia��1-��4wr���[�&��ZO]W}2�Vp�NK���H�fY�����+}��i�g����r�M���}�D6��Ra���E?�TZb�"�v�C�C�"��^9��od$[,��@{��2�>����W��X��DY��dP������P~��[��C���9�s����ys���-������%�M#R\�or�N#5"��71ZM'���b�m�w.� n��8<�[l�=\F���/7yv��Q;�J���,��5���A��wu��,��zn���l�}|~�kl�$�]|oW����0�<`��2�K������x|���L@��������
aLq�m�z-����p[s�u�%A{)M6Ys��u5J��x�lL��5(d��W��vdJj���mo����>�������)mL�3�oT8�8���s�xR6ms���J��B��p����ey�� {c~7�p�Q$6���Y�%gnA�n���sg,E�Vd�s����^��N�yR��.���*'7��������������?.>�1�b/�1�f7pR��$��T�P��0�����b{���s��yw<��v������[IW.)��x�5�>|s�Kqg]��6����K�[Y�I��I�s5�_}�����O?Ow��N��F��I�M�_��vI=VY��6���wGe�XV��en�Ye��7��n�nY4������,+n����*��������*����h}����>��y��PPPPPPPPP�����,
�
�8*�*�*�����Tk���,���p��v��u����n����j��v������2��c*�k��77��;���7~���p��1����Tk��C�U�mPP����gY��@F��Tn��F��WNs�����u]9���M�nI
$N�`�����ot	46��p��wP��Y[�[�AT��Y�TATAT@@@@A�<���m�����<x�1�m�c���1X�M2d�<c=UV���UU|�&�m��*��*��*��M�m���*���"C��'����:����N���~wg;��,���Fj��I�[Dt��:U).���O�:ei�.��H������������I�GE��&1��%cv;H���+/�'Z�g7�>���7x��������^�x�^<c��1���b���d��x�:{$����ZU}�M��kUVJ��UU��.\�r�b��h��%W���?!��o�~Ml.���g6��|���a�%��]'[o�\��Wm��H��!7&�]N��V�]��wt�j��]�v�i|���YH���I�
�����;�F<��}�(��Xg�T������?^�z���x�1�1�cc�c4����t�%UU�UW�rI��mEUU�UUIUUJ���U[����o�$�}����?s�)W���\���:�+eR�F����e�B�����Y]��V]u=��H�n*FC�}�[��3w]n�+�e��+\zQzV�k�XnP���^���/�g�q����rv�����_X���������1�m�c�d�&Lc�1�����UUR������n[T���UUR���UUeUW�H}�D���w�����|~Mm�u��3b���t��,Za�;���(6YZno9h�{�N�����s���\�2(m��nRQL���>���������7��<^��;D
�Y������v����1��������1�m�c�d�&Lc�1��.\�r���.\��6�m�UU��.\�r���.\�r���}�=�?:���x��O�N�	�YChd!b��Y������Y+UI�y�7$D��+kzMw���������	+o_,���[gV�VK��m��np�6U����v�en���m9v����������1���c��+��L���c�.\�r���R���Ur���.\�|���\�r���/��$>�y����9�|���5t�������nsJOu��QNd��S��:CycxY�^�MNr�m-�G%&�Z���9u4t�eK�n���q������L��s_Kt�|��������}v���������1�m�c�d�&Lc�1�������.\�r���.\�r���.\�r�UU��.Y�R$>��8��S�k����y��+%1X�GaK%��+U]��T��v���a-T2���+�m�.��^���t�Z���J�Dr��t���h��L���;k.�Y���r����X���x��clc�6�1��2i�&1����.\�r�UU\�r���.\�r����m�.\�r������ ��'<�����nMkfi^+��$����Y�.����I�kc4�%����]A�]���2$�9u2�O��o
����<Y.6h^rUn~�F��n���V�>~�_~}�1�����1���c��+��L���c�.\�dUUr���.\�r���uU\�r��UU��.\���� �^���q9��^9���o��7����/�c��{��7���}���k2�������]��mb3\���V�5����o�c2gNT)���3�+���L�����*\`��������?�}z���������1�m�c�d�&Lc�1����\�r���.\�r�UW���\�r�UU���������?��O��I��?����5$����-�u�Y�N;�������_�������Z����=�����Q<[_��������K��$�����nG��2�O�}o�,��a?H�I�����n]=�'��R6������G���cQ����#�D�����#������=$!	��>$�?�W������A	c��o����${������h�� 4p��H�z��D�?�����}��D��9����t���9:�$�F����j�����v���~��]�|C�$��58$!	�����>H�!N_�����.�����4���?���rG��I	�$8 �q�H�� 5�$�4��D���Q��	B}$�>+�N �Br�����'*��'���'����8i��_d��E�Bp���M9m�����Y$�?��!B����N'-G���O��I��8�$�����������'��{������'�?��&������$!	�P�!+����g�?i#��1�A����d��?��G�������{	 ��/�����w��!+���O����y~��8���2$�����x��������N��B���	?�NH����#Q���,|�I�id�Sp�!?�9�!9I��%I\D�GN>G��w�?�uB����/�nk�B�>I�M��bO�X:��������3�iI����8k��H�	�	9Y��2$!	��84$�����$�>�i�'���S�|�$��I?������wG��~���'2F����>�?��$��?��?�����o�y��k��?��W���~U|���z������N~M1���u��D�!?|�g��r���R84������BW ������i���?����B��$�I�n�t�N���N��N��?H��>�r���I8$�����?s�6���~���i�J�����������q�s�y�8�	B~������p~����N��HB��g��$�$�{�?��v?�Q�����dm'�8��#�8'��r�����/�������"r�j�������
�2��KbZ0+����������.�����pC����	�=2M2�U��[im���T��hm��d>�U
Q����-�h�h�P4l&�����T�Mj3m�
��j6�5(J�U4jKU�A�JU�V�-U$���%QT����&�(�m�������`����b�l���m�i	�T��km�4X�i[m�[bZ��3Z��l4l��dJ��RTRF���R�5Kl��J�&�V�hd��a�V +l�&�����R-�����I%��F��mZ�b�w������Q/X�|P�8G��F���,ca�F��[
4�kHI���d4*@*���]�x���c�k����`,����n:]�f��$@��g�`t�}4Mhf��w��0=�nwW5`wu��n7n�p-��
�����[�y�������Qfhv��<`A�m�wN Bt��`FK��	M����ht���T�)��<�l�1��L�f&�"Q���le+���@� �m���. ���b��n
������!wH��Y
R�IR��t)�I	4�o�;���npl`��Z`�0�
�v�j����n]�X�fRZT����x��V�,,A
��l0�!��LR�j��)D-��MV�SM��J��5��z�Ya2�
�BLX���M�*������A@IU���f�����8B���!B����@�S���R�H�44~��a1@"�L?U*F�%� i��@�0E=�%(�)4��*��������������C!�10 �	=R�#���S�����I�� d1&&���SO���&�H�CRoHF��Q�hi��
&�6�������������'����I"O����5�m��^����o��|������u>�~{�Z��n��kkk�~�R4b7�4�vj�������-�;���������������H��~�j��A?\!"~�?��*DA'�gQ�y�vX���������|o��o7���������?y!��#�15&�z���B����|��c�������?��c�|}��O�<���,I�We�d��fXRBH� $ y�B$���2;�I  @A� �)"LBfR&$��	%!�H�&Lwq!>t�,�!%&32d�`���c��	B	H 	 I/;��0A��;�r`��"	  "$�2b �������f!����0DA�2R	3�L�� �H$�$�	DBBfd�$�@I$�I$��&I!2D&e(������$A!$0Ri,E%&�`" ��&L!$�b2D�i0DA�����0`��&�II@"(������\�L��4E���%&����� �����d� ��I ��H���#��" �12Rc0d�L�� $�1" ���\I�d<�D$�$I��2Pd��&LbHH�$���	 �I ��� �d0&)� "L)� D�2�HFL�b�� ��F"1�� L�@L�!��L��svX�D�2��I�JH���H�!Hi%	@I $�2&fH� �����@��"�"��$d�1w]��-�!2dI����	d#$��"�H�($�232���$$��22D�L`$$&L��D��3 @I@I��H$!2&L�2Bd�������$������	����$H�E&	4�d���d����)�e2���!	� ��BI!&Dd��D��L�&L���BRh�1��)�iJda L�d0����&I"$d  � 	 ��0���2B	�LA!!��	 � ���	�$��HBa�c%&3
fa)����$L��ffd!$�!32�	�	�3$AD�L�ffbd�B�	I	�d$�H�	�	�&D����30	��HL�"��b ���$D@ID$���&	2$2��A��(��� �QF�1 �BI�qF1#�tI����#��	��	��#P�$�C$��]
2h���c0FL@fdL	fd�� I$�H�&d��)��1I�a)"e0"�1'.I��$3&bL�#2�FB���R0A� " ��d�q	� &d��L@��O��|_&��S!$$dH0II2&	$�"L�A&BL�LC0�R�F1�L Jf��)�H	)2d LB	�I"��	(�|�&$L��)��fF&�A��2Pd�����@FIL�!�A	�	0J�I�$	$�$& BF#�	4�$$�Rd�@�HL�� a)"0�H�� Bd0R"$�d�F�"H���&Ld�C)��!&dHS0&%���	$����$�,o�u�1E�$0��&`�	��!!@a 	11FH �H,�&"Dl���"$� �2ALI2c	$RQJ
)HA)	�$L!BS4��1���R&�D&O;�S0�C2@@HJ����1	@d�II�DD�CCb�f2@�$	�J �2FH$�D�2JH0`�$ddL�d  �,��%�0�Q ��|�����mmm||�I	��0FH"L�	@DH�L����L�F4b1��7��QF#�F1�b�!!�$����(BL�HB�"� 0%c!fT���Ja����& d)	$I&�HI2HLR(�"�`��F1�7����C�$&BCfa����!��	$Hd0Fd�"2I���"&a����D�A		���!$L���L�$$�$�L�&I$L�%b�"HH$��Ib	& � �&I�L�@�0D�����1 `�� $d�d��I$&@L$�(H�	2!$�	1�$�B�` $�LDHBBI�$2$I�2FHL��a&	2"Rfa �&$�SJbBJ$��!����	L2HBd%$F"�DDM���&b""(��$DD�D!�a�B��H$�H"`�$�� �"Lfd$$dBF�L�0&fC32�Cd2L��A��#2@ 0aL��N�c;���L�	�d(�a�&������Q�DDI����"@	!#&���2D�B�BI�$H�"d�b��$"��	�$�������Q�2b�
#""1 B0��"	�����h��$�R&$)"BK�dD	�LD ")(��Rd����	�	�L%3!�A�A��`&DD�3����D���D$�f��R!JR&H�"&P	3(�E)�2@��&F�R&L)	 d$��3I0�( ������LH�		Gu�HHH�� 1�AD%HH �2i�P��Je2��(�d��0���� $�D@)�	&L��a"�L�1��1�0���2&B! L��	&"�4�T��H�F(�ch���1�fd2!J#BR`A��0�$��� @D$l�0��2")$H�RP������BB�A!"$�I�0�HH�fa1	D%3I&�JfR@f!� �!&d�D!��	@i0&Lc��d�E��2 @����BS#T@����!e��@H  ��� � @D�e$F"&QF1���Ld�B$�"&�DH��JS$���L�JI�PI%&H��1�A����d�I@0Db`��`�d#�����B �4�(���dh��DL�f��FD!��L�F���e�fL�BF2�H��Pb,h� 1DQF4b4c`�h��a d�D�$"H���& M2LC0�	@�3a$��e#	����fD���e&$d����1&dE	I�RHL�B�_;��(�FS2�2BI�D�)$���	P�$!1&0�3������1�*"�b,Dh��"�H��H�$)�f4��PI�S$�!����C"!R�2DI��%!��&��D���$���b����Q�b`&I0a���e0���P��!fC0��d����$$IEd0`�&�1������(,�I�$de�P�&b&R30 H� d�%% d���Hzt�d�7w$���M�1�Q	�f�D�I&��ccE�FA�4bJ2" �)�&Q��XL��D�J&�B��JiD��FID)
JR�$ )�0������a(��&S2bL����d����EI�5%RQIE
"��d�5$FB�1Dh�6,

4$QQ�$2���6	$�L�d�3��@D�#E2��L�F�lfd�I0I2Q�%�b1��P������A��H��Db�����`f��	Qc@l�PX��m��	$��0@�"1""1��(���,h�a4��LI" ���J3"FP$%!1�3RF�0FL
1I�$@IRj"���1�@�b2��Q�F4h�E�0X��Qh��((���0J�2FL�4�$���1����0��"��Q"B�"QHd�1H�H�
��!�")$��b�#dI!���		��3�o�������Y�@d��F�d����	�( ���,TbQd��%��Qi�IPThf-(�Q��1PX���JC��Ed���--��Z �5E��H���)�`1j��X����R$!!%&��[j
��4I2�c��Z5�Z*(�$D��b����	)�J��e�L�j�!	Hi�	�5�D�&fU����U�D�#6��(��@�H�$Bd$�#3/�����}/���}�~����o[�o��������W��?bB�&G�$�����|r��~O��������z���_�_����/�5�{6�6�5���&�������m�F�c[�r�Q��~��Z��j5*6*��1[���F���F�+sQ�Pj5%clTj-F�Q���j1l����j5sW9m���sk��E�Q��j5�I�k6-��Q���m����j5r�5�E��b�Qlj
Q��j,V1h�4U�ch��E�TU����v�j*��cX�W1�[�F�QF��-�F�Q���5\������j5��[��Q�5�F�F��h�������W5r��������F�Q�����1���F�Q���j5r�Q�������j4lV+���Q��j6*6-�E���Q��X�6��#TX�������kF����F�Q���6�����5�F�W5sch��\�j5sW5��[�5�F�Q��j4j5��Q��j5sW5r��V5����F�Q����k%��j5�E���������j��j5��(�5�F�Q��j"��5�F�Q��cX�b�V����sW5��V5��k��F�F�����Q�j5�Ilks������Q������X��(��F�Q��TF����MF��j��j-�\���W5sQ��j
�-��cQ��j5���j6�5F�W5sQF���h��Q��j5�Q��-�F�Q����������\�-�o����EQ���\�j5�F��Q����j5�����X���5�\��F�QF�h�j5�F�Q��QX���j5�F�j����Z�F�W5sQ��j56��j-�F�Q��TW*��-��Q�����5Dk��Q��j5�6��i-F�Q��j4mj6��5EnlW6�U�F�j��Q��j(�(�m�F�Q��TF��V+r-���j��Q��E�Q���F�Pj-�F�lj5�F�lU�IjM\�sQ��j5�Q�4m�F�Q�-�\��r�5�\��F��m�EF��j5�E��E�V6��Q��X�cb�5�\��cm�\����-�F����\�j5m�EE���j5�ck���Tj5sW5�F�Q��lE��j5�F�`����j5x��]�lj*+\��F�Q��Q�X�"��F���j����F�j��Q�����j4TZ5�F�h�X�j5��-��QcQE�Q��cX�5����F��m�F�Q��j5�F�Q�����j��j5�F�Q��j5�F�Q��j��j5����F�Q��j5�F�Q�����j��Z�F�Q��j5�6�EcQ��j5�I��j5��*5�TF���\��F�W5wv�-��Q��j5�F�F��Z�F�W5sQ�����nj��Q��j5�AlV5�F�Q��j#lF��j��j5���5sX�Q�5�F�Q��j4k�F�Q�����j�5�nj��Q��j5���5�F�Q��jKRmb�������}��������'1�O�?��\?����������4�)g�$!	���_�����?�����'��>�]x��.'����!����pg�.R��.;��\;Z>�,
�����,d5�-��1�������"��X54�u���-��}��d�
Gz�z�����F��>x�_!3�b������}Lm�^�;J��W/�s�s�T�R�[�r�E��`�F�����b�*�������hGl��^��VMk����j�^;�{W|�����'�k|$�~c��8.�MH��kU;�n5i�yP�nfm�X�d+����C����9�������{0k��2h�;N���������Yw�h���,�|��I��3��`��u�y���n��y���E�<�������������74��8Z���n>��<(�7����a�{�t �<o�p������������F������&�(�g��@�H��7,u���)�1���+^A��YC�q|>�zp��'�4�i��QN���]nK�T�4(�M�������m����J�+C�{P��ah��L)��nN�����<�s��rem*}n�J�r���<�XQ
Ob/*����K��~|�e�������i[��v:��8�I.1���q1��X���8h4�gd��n�G�:���%F�������)��;������I=�n��fM�{�~]���4FN���`��{����r���R����@����b������%!��\���IY����=������q~�M�^�'k8���9
�#= ��w��{�+�h�f��[ye�{tiC����q���=0U���%���y���[/��N:U��x������uM��;��P����C�-�<�QeNnt�d�gSZ����M.��M|G��r����g�]��zSy��U��_�E��}g�sE�^��U�^<�<=�����
�n��![�)D}���R�Bm�|��0��������`��N��������~�������}�6�3�0
�7�;nV>�KA2����:��9��!\�Lv%��������;s
�5���H�X�`����	������,�}q4�X9)i���gW��/���b�o;
����

�"�
�K��X�' 5���Nd����u>�$�f� �����o���U����\�V!�! ��;�
v��p�/y���v7��k=���3y�}�QQ�Vm�����Z��le �ImT���r>�{}��������e�og��^v6�7���2��c����*��]�(�su2#�U���+4�B�wpf�P��f,���r^�:�e� �&K�J��Q\�
�}��*Z�b�7�*�_@.�Wm������N$]����I+���z�B
�l��1j�m[�Wc�:�}������-�P����=a�r}eg������4��a���>����
����`���#y^��xqJ�����G^�x3����SS��f)��i.�+�R�%��\��d9�`�gWhc8m������Q	|�Z��f����c���
0�_KDp���.1�<pM���k�l�If�u����5�{��1vm�C�c�Y^��!����Lw"�s���{������&	}���]y �Xss�tp����J�7@�7������XK�|[����}�,������5� 1�-�@':��v:(�&��O�v�\Be���5����t3eA97��v^�)�e3�|�oY�]u���s:�L�G�s���[5�
�hmK�y�C:��+V��������ju��|
���+=������>�U� �n{�N�-��Otv3�
�f��U�!d*���ww�{�W��r]<�����{v������rk���f��K��i\��N69��l��gB���b�r�e<�7�[�����,��8t�X�Cq�30n���x7��(�wA�]8=�{$�����[���e<�y��+s2�S��+c���|T2l=�L��%��|�(�X]s����*AM��m��uisw:�D��|���f�lq�;V��K�����:��'��������[�:����e�.����M�j�b���p�f�2��9�)�\���K<9�N��hC�N�3�M�
n�$�6+S*�o�yz��O�o�A#�������r$�0c���eb��>X��w.��>G�`:}�F��T�G�f_S��:�V��t��lY*`�fb��AnC��"@m�
��;��9��r��ak���#�:,�[�������s�U�L�'YT���l�er�u��j�4�x�������9�l�7-�w]�
l��FE)��N�U�-�m^�����Tj"%�SG�	����`���OpJ3���A�D
7��T�"l��7��m7�
�m��g�5�60�|0XXc�g]��DFM���foow����������n��{]���~������`),���^���������Um���2����R6�\�fv\�<+.Wn\��+7}��`h��w��z�y���5�Bhsf^RT�kF�Q���#r�n@7��/p���x���Je��0;�b���S��M��H�����=pQ�>���/	��hB�k899r�'�����J@V��7��Z^���vM��3%]_L�9M�u����8hW��@���\�e! DT��S>�
�4��]��v�����j��9�U����vM�/8�L�gF���;�=���&^���\��p���gRm�TW�x�X��;K+ao���f��-F�vU�����.���P�\���v��[��*��q���������������WX������k�w5Dv��U�zdb5�G�=�O���{��n�#��D�Fl���l���5E�Ko�<��sC0�}��k������6��zU���.�9n*��Wl�r��z�����nWv&i�LC+2��B];��>�k���]f������Lc���o���<����Nk�g|������=/�yy�5J��s��e^�E����������B'8��c��U@8
N1���v(s��V%^w��I����}{<�k���^��B�yO�k};^���xG�8�C��>}B�t��\�^��!��fa��������g�'��*�w�E��#�������0�9��+��2��C�E�t��D �)���s��r����8k_�t\���/+�����������v���2P��t��0+��}4eL��[�bT�g
����*R�66���%��l��u������<�+��v{$O<��w�|���o��a��y�V��l��V�*�������P��xfd�������/���������7;w75�gc�F�����E�TM�+��#�M�V�d-�s|�+�;���s�(F\���x��FF���NI�]7�v�o&�-��DWL��ud}B+�3�t���W+�p1(^���^;+������(����x�Y��������d�o�7g+-������7��B�Q������WVh�����X*�v�{#�x#����X�M����z6�>m�ZY
5�$���'��}����1���.������y���2�=��n��G���#����#�s�oz�<�pU���������l��K�<x��s��Qg��>������W�Y��L����m����@�`F�5�U�w��p�^�-�;�nn��n����L_�����U��-9l��][�QI�j�;�f���l���\��T`�&s���$���c����&&�w�R����}�N8���15�y���Tv{K�^okqf��D������{�/`���#�5�e]�V���������?W��wMh�5�n1)���hm��3KI����0�z�����d�;z�w_�9��X��,LX�JW��i�g�J5�N�#�	|s8���bv*R�'�\����j�i�oh�VO�vw$Y�R�i�-�

n���R�W�N�c�D���[u�/{d=>�x4�;0��)\y�t��3&fk�0�,�w�7c�����9w��N{\��q�����t�mu�t���w3r�R��E�dK����4S�)�%��4�mS�]2:E+��F�oF��g
KI[j����SLXH�1d��v�����5]&��t�uj��u�G��{\��C�F-����Hr|����T]��>���.��bL�Ka�Ic�!���/A�����,n��W{�
�D�7]��o5Ky��P$'��cF����v����������
_}]�2������X�rf��5�|~O�|����6$�*J�V���)QPlE�l9�����J'��9�KLS��f���b��1��We]���&axR:��$��k���u��jbY�a�i0�������ZHv�/��	��S�F�&�tJw[�����Z�k5����/&���ls�gj�k��fe�v��������~�B�Y���&����}$!�����G��C����r?:����������<������xMg���	���2�.�<��N�����������E�%�`��PZ����]��lr����@����������v�\!��wf��2�S���pe���Z�����=��t���:����Vl{��l���3"�������o{��3��F�1U�ry�[���E���1_g{��V�j�������88&��O
�EN�=,��P�JtV����v�[�� r5�����R��2��+��xr�gd�R����y��Tk3�*2�U�����Kl)��]&(x�n<L)"n�`t��f[���b6u��a���S��<Z!�^Go�x"�rG�L�Z��.��H�;&A�&�e�]�J��!��������67I\�d�t��]{x=��V++�n%��)�d���]�S�20�U��>�2U�������]��F���v��,��I���s������{�iV@���b�P3�.K4�Df�M����%KW��v�E�>��_#wh$���1 ��t����k��-��NwJ���C�W�e�y�])�R$)��vn[��������_H�����*E�t[R$�fg%wGg��9u���N�2��Q���*!&��U�e��{cL�=:���]�y�n�#�B�YDh�m���h�FC�t2�X������+����I��I*y�V��W(�����k@[�	��(�}V�b1����J"�nrm��3s`v�����#�=��(U�03�<>��<*��i����rvc1����f��:��3��o���"-��<�b�>��^!;�:��z�����n���7����`@�����;�����s�c���P����#w���X����QI	���%��<�.��.��i��fU���������t���+����^��s�{�z�K��.���v'�{�u��$���X����-��V4���[�|��
���:�h��S�5Wp[|q������3rp�'n18��(-]�u��N�@�y���]m���<����wM��~�����
�.���Zb�u��7�F��;������h���*��k�zy�_c���9>���g5���Z���x���/9�	Y`��yC	�Y�i��V�]y}�m� 
G.m��p���<!�[�	(p���v��-X�����4��X����]N�]O#�G�q��'��������~�������/4��TN=D���A����@���Q�0�����iZ�]��:�D�|H�����������5������D�d���	�@^#E7��O)��)����kqr���`nA&�u���gge+����o�������D�7d�P���������"��@��* g����5�R��BJGw�6o2(��D���`��#�7��P�x�"\=���`>�e	��(X���}�t���`��o��q��>L����"�h�Qu���9��LXz�r1;���"�{��3wg{�����rn`2n�1��������r��j�z���.�����%t�H�S|/��x�Q�^q�5�(�*�6�������;<����X`�������p�8��C��v}�����s��<�e6�3}��z��������(>8��K��_�����,z3��{�+��r��H�Q[����j�zn��6L�[�@-��B*3:��i2��[��K��N�@�c~���O}������Y���q�t��5T��3��h�V����_Y|H��]�a��r����Y�����Q�����R�A&��L��/�������w���vT�MM9�r+��_����{���l�7h�'����}����C�@uoN4������V�a2h��m��1l�u���q����^�����7�dk���pN����o�V&0f��
\/��g2���o�:�c�/g���hYz����\�����_Y:�����u���{��x����������,��HI_J�����)�
),������}���6x��+���|��nhV/q�!�7�����qp/������rl�d���w`Ut 4|�����Q&/�G��q���L�G�������oj�W�=j������<�p���B��6o��c���N�PVv���Q�����Z�p/D.r=o:�gN���tCc���u`U�@�
���%��|	������J�0���@�q�kh`n��x�c9���F0��j�����cuj�b�\�b]p�u+h�$����� �L>�yr�������}��G�8�������w������4����a���n9���M�j����fZ��R�2�2�Pt����_�Kv���#�0��e�3����B����;�����wm#w�6����?�x�w-=��
T�����:g�	d$�!6\f���RW]�	�os�����(��m�!��xp+:�z>�[y��	��@T��/<���R�O�
��`��Q���6��{�������5��G�B��j�5*Ol\3.�Ks�n�Y��������NN��������6!��8���<������p���<&���v��z��t3{��Cu(V�K�z�Zo7=��R2������~��\C
X�X�{hWH��w]�5s���1��{x�u(v�J$he�p�7�f����z���m�%�H��e�����28/I�@MH!78�(|
����=����,��^��2w��xq����;�9���/{��j���x�����.
��M�����.}��=5[����+n���iU��T����B_Fl�����6�����`�\-�>�_8Q�}��M���t��z�0_�.Jv�<d�k�	��=zj���&�`���Y|VN��rAp���!�H����)p�|C ���0�N���w4'��������������V��$�}������0m<H�vA�&����NT-��S7X4��������j>9�9�*YV���id����
HU����:�:*�3%���Yym�Ed�+�f�r�'��zp�qz*��U}��9x`|�%Z,�X�Td��`����m��}oWCnD��
�[��0^v�^�S�q����yB�j��s�����;Q���{���}�r+�=����LQ����DPY7�q%���yN��1�v"aP��b�y��j��*fe��3��/]}u��]-%�(�Lg�fk�;Q$�\����h�I��u���uFq�n��H��}�Y�a�I�/wj!Wd9���{�8[/�ST��$�<�!�R-u6,\��<��>�yC��f,�����`M��Gm��B+1qc:.���t�D�w}�j�n��%gP���������i�a��]l9_�X;����w6���1<�7,��/c>f?t��d�vz�����|/{	��	.'<jCae����<���j�To*�z�;�#�l��d��i���;/=���3wW�;�%F0wV�+�#��8fy�j�3�x���
������K�G:��	��|��Z��A���+n�d4s��w(�B87����ys���v���GV���(�bJ(���^�����������������}w����y���,A��c	��������M�x���L&�&���������(�����f�Y�����2`]#'{U�7�������>s����j}����A�L��h7�97:� �|�b#j�7zkuh���8_EA\]t�����u���o5����f��.�dR��w����g%��k�)VA�[��$�����+��r��:�y�I������FH��zx�"M����(���%L�q^�Y��L��Oq��o3���[>�{��;�o5U�0��orL�Y]}�f�}�*p�1
�����/n��[|�����M�y��l!�Q��8=����=����z
�|��l�B���L�n�
�������q��
���"�F=<ra��O��Wj������)�R����s����{��v�9������=b"�/h�5o�Rs������=��y�I-��E����
I�t��#��,���A���J��Y�=����S%�'+�����F�X����%�8���7�k��y<eI��d����y0��Pwv}���}�����:t��W�|�E���\4�^���'��l�8J�U<g-���
I{T���3�d�%]����EBN{��B��Y���v��]�z�$������N���5���|k�/���^+Qr,�U������8��T�K��3�oZ��b�����qbs�
�D�s� �{�HL��%9Y�R��Y��|h�������^�0�����{Gl��L�w72�����k9��M���j����%�� �\w9wCYdQ�L��sgT���v�`���X�wn������D�q-'������v�SH`^~�����9�!�ot����e�61����h��]Hy��pT�P���������T��+��8�n�z�����\��]A��s�3(i�����S�#�t����&�d�u�M^�����I������rmX�����c��.�>iy;#��"���N�"�hhSy�n�@���j�����oEX��0T����wR�u����)T�������|z�~�D�Jh�bj��Ly��� v�ck�����
�s@=M����I�����*v^�F����`�R������+��s�v�[��H�}�������^����o8���y��^�V1���75�iQ���n���C9�#�<2���S���*��+���	B�r�G&�(���}:���q��yao��*�]N{O8��NjJ:���M�O�Ff=�;;s_-@�OVS�d��\��{�k$�mnd�G���nwy��������S�������aZ��R���|y����.���Py���:����Di��i3*����������U��=�xF������������bs��n?MH�����r:�9N�"NT;N���M��baw�m!a��w���=+������}n�7�����=#���3v��(�E
wM��	`���C�{�$]������q��[��0M�VRn�h&����(�����d�����t�@�u����MLZ��']��Nh����E�=�{��;�� �{�W�������<����W�Y\���*���}n����e��5=R��&�tVu�*����� �Q�YA����SM�5��dC�������t�+*Z���E�vywx����(�l������r�J	��&q���u���r��/����/�r������������"Z'�F��3b�H�
zk�v��MN��r_{p�p�8{5n��x��R��]:)k:&��P&�qr�kt��jq���f�u����)�=e>0��.h�������\ke�n�^���5�6w	2V���gn�,��XY���;Q�j��������_r����C�}��{����7���#�X���PAt��p(e����6I��gnm����v�;Q������}��*NC�W"����oU9!9ao�������{���FE����U�]�gr��e~�����{q���1��-���f��qf�p��m�o��n��v�	1��'�g[rUl�^�r�<�@9h�n�yv��a]����)Jc!������:�+J�&��H�-�����^���[��H�^���B�Q(4g
q���0�|����0�h���H�h�S��gy"�Dnnnl����
�����Cl����)����+U(.������v����w�^*��)�MU�s��W�v�i]�']��;W1������.n\��^���^{�~�d���2�x-_$�n�w3��!/�Y�������&�d���������
z������O�?�����8����2p�Q<D���m�Gr1��!Q�A��F1cb*���!DDDs�T �DF`�5���" ����� �*HH����$A�S�" "~n];�������wu���#j��m]��D4U�&"�
����HDI��"""?7w����j�����b����s��b""1B#P#���<@A�����������A����@"(����^�F)'�o;���s������:��Z�Z����d���wt��9�wt����w\�9r���""#���#-$�l��"#��1D^����������<�����s� �� �W\���Z���w�w]�s������s����V��@^s����AR$���������<x�w\$��F�����v�����m��m���wn��m�wwwwwwwwE��tD@b�c���;��������w;���;��������� ����<��1�}����w����;�������@p�M��cccc�9�������wwww�wu�wu��A������"�����`��s�u��"#s-^��
�^Ez�Gs��������wwwwwq������wws���s����6��I$���s� ������wwwwwt������;Z�A�wu����s��7���E�DDb"1;�u���{��w��s�vDD\��"1������!�m��sjW �W��q�w8������Vw����9� �H�	 ww^�s�9�\�9;�w�.rwN���D`�[��w��<9"1\D1�Eb""���J�x��F1���(�(�
""/}9���t�z��A�c�h�"��������������������"H�������m�s��s���DD@��6�F""(�F������Nj��1���������������wwwwws��k6�DD��#���PD��(����b""���������������p�k5y�-]�^�"z��$@A� �	$�$��^��H#����k-\w �����QG��'�q�s�(�Eh��
���=��ww;���6�|"1u�ZU�-$8 ���w9;��s��9�r��rw||-w���9ws���Ar"#�wwws����������5����k��z�+��q��w�wr�c���N;�� �DnF ����F.���;����c*��#�$��	$�Iwm]����wu�A����wpD@E��6�c�1�Q{w]��8����cF�"��1#�OW��"5w\�9�\9s��9u��c�Q�b#��w�����������wwtF���$�$��m�����Du�!
��j�sxp  �""����^�����9�N��sDDDDDD@�������������7�k�	�"$�	$	�� QG�Q5K-tb1���	1^�AA$h��cF11c�����Dm^n:�>���zy�;������w��� $��������""1 O|���"9DDDF"#��k�A�Am�"#:1�m���`(����9�s��� �Lb�F�o5��@Ea=��h(�(��1F"y|�u���1k�@�:�A"'����	 �����j�U���I�p�""#���8rw\�9;��II $�4��/k��
��B�,{��#p�c�b�1E�P�@B���D���F������X#�y��""#����o���{�����<�l�1��t�]��B`]n�DDDy��5{��� �}u�]���@@������Gp#�9�s���ws�������i��n{	<��"$�5�A��;���ws�wws�;���<��� $�b 1���s�.��9�n���DE�wm���v���n���om��v��{m�p�e�������;���9;������9wwwN�������KuzV��<�w;�ws����s��� ��ys�'�|�!��z"�#|;���s��ws�����wwwwwwwwws����������� �[�������[{���1��||@���s���1F(�|��#;��:y�����\�(������ww�s�����wwwwwwwwwwww;�������(�(�;�������wws�������������ws�����^ y����������:��Q�_����m�)�mmm~Z���IB�?�$!	���l��������$�N	Bq#�O������?�k���G��������g��?����������q7������@��YW��07pN� �XfW6���uu��
Xnl�u����WKd�����lG�<�j�&#������3n'/O0&�,��g�<NT��X�����|Q������[�7�]�-�����iM��s����t,���e�\�A8�s���'���W=����������P�����m�R�'
�����Fj��:V��$7�^�X��	n�@��_B�r�#��e�����xM^��� ��E�P��r!�Yi��1����j��������@���\����{�dr�5n�!k�2�K�-tM�1u][YW����q��b�f���lk��H�d�F�����
�X�����h�����,�Ys�`�k�jy;	����w��lp�v�a����2y<���m��3I��g.��9�23V��%����]���%c����
��N��5r���9��������S��e[���;`��Q�o�{\��,�����1�f�P��j��$�8��M<��8�����������Eu�����������mI��wX4��i��p��FN�2pY[�6����ot������N�*P�B����/��;������,2f���y�P������E�g��W���{������@�e�g]����Y�aa��@;��U�)�������%jqm������<5v�L��MA*[��[�������a�{�������;��sy]�vep�W�������sb�J��o�������\��L��M��~� ����ib���O��}�V��q���=E����<�{Y��*Lf����X������5&%���������L�).��&�#vfI��l���_A������w-9,����D�N�G��
h�������!��Jd>�I`B6��;K�]�}'�3��w�z!0M����	�S�>� ��	�M��r��+q�^�����zE����4��]s2����1D�R���6`�5n
�kAr�����L�������P�Ql���]C	�*��N^I�+;�3�]���T�|k���^{o�re���n���1[<��.=��\��*!R�(YlR�I��k����v�p���3 3���D��uJe��:�o.����J�p5;a9Q��#9�_s�1tb�:�H��x��
�blG�-+�@�7��'�&�{%o�����%AQ�Z#V��x�j��N��_�\o#�����;����{��F��mN�*�9����V��Bg6�V4z����m%�q(��M���N�y5j���C�ov�~���l
����Pgj9��D�K�����w{�fogj��g��`��U�+�0����{/�,{	:@������LvYq�_���{'�������KA�We.i��R/j=�R�����o�k���a�;f�t�s��s�e���V�����5�����K}�zS�y�'\��0f3����@{��g�h3�4�����7{�n�/����J�<�dvo>;�.O��@�0������i��f�:���8��9{��k�����u�������=�=��7�P]�������������T��X�	��Gn����#���w�N������7l
E{�����d������*[=}�y�a=Y��mLx�.�������!��� �k������]w�����h[a����hc��)�O6Ts�r���E��;������'�g�K��c3{(��Fd�T�����.��R�)�������k3;'����=�=���W��m��0�o��3��,�����;
+�����s��*�pW���f��e7���C�wM��-Wp�5���hv���O0jyJ��)���\��*���h�������
�
�����7�:�K8��*x?8�zwp���l#;S8�5&XQsw��G��S�!zJ:CP��FX�;*>�,�w���]fy��o>���n������2�K��������9���F��S��������>5�n��.�����/��b0�Wh9�%�W����\b���Q���!HJ�Z���_^[�wv��"E��U+�����i�������+�[���t4��<����+��4I�xo���^4p�Q}�o5Y
wS}�����!wg�G �p����
��������I3�������u>���M�r
%����.�;
��|3~�u<j�������X����P���2��,�W=��TS~x1��q����7�j
���<��b{���{<�4v�C��A���&������YA���!-�^��K/"��]��^�l����z�_E�EV��S6+�l�5<����{��W���H����r�h�9F��k@]�w����zv����������=�������YH5t�;��M�������R$hi��/MJ4;N0q�sy.���N4���.9=/{X>y5%�}I�w�������x8���8XJ�5��s��D�LN33�������{���EnC�{�+�}���:_n�����Psk&����GE�2Z��'F�<�fT��f�3N��w�e��q�.�W����r��*{��TnrS1��T��4qU�����5!�,�q���T3����?N\c�SW����{���:������(�:�Vtv����@���N����%oC��[�q{�t��q��J������[��=�z-���u9��xMNr������:�
�hn��iy�du�w�6n�qX�r�kevD�w{T����ZZ�31���|��C!J�7�
�2��^\3*��}+DC���us�.�q����5��o�m���3�732�^�R��>`�����~cz�3/�����|!W��������!����5����Q�>��l[6K���/%d���3"�oo����?v�C|t����M��\4ag���^�{�Q�����;�=�v�N/f�#��������������}<���Y�g���W=��c���s�Qp��s�9��r�>XOA��:	r�K�,d
���M�3������b�{�|���2=���T�)��m�����2o����T�����6�}�`��������.H�L������������i���x�Rf��Kg�m���x���d{�cAg�����y�5o�]n���#�<��|;y���5�M�����e�9K���w�LcD%c��8���}GkQ\�F���r��V�r�*����q���[+F�goD&��ku�U�fpIB�u�u��������}02��}����SU���D�}9�]{k�<�E$j�#���eE�;6�L���+[
q�0��7����&���4_�W��@��:e�-wE����:��Kuk�GY��}�>:r�H"��@�v���8�l�8�*YQx��Uq7KZ��)�v0(�G�6Z��#"b����>�;�s��|����������sd����Y�/o�V��9v�2I��}}���*���Q�3�w��r%�r�Q��/������6�-v�yn�
�����
K������z�S��0���ve5��U��\��LYu�2��K�i���������r�J�Gf��b����I����C�3�oIS
�u����������y���]��v�g��y0F�M-�M<}L�f��������[��ob�N���+�u��%�m�p���dC'1�*� %�3�J,����1+��D8vf�2t����{�p����3��#��bY�H=��	�cc\\B�=�9������&������dX��O��=�D�%��P�Q�q��+�,G���3}	�!������������!��gV�Iz+���$���YF�y��^����V����m���@�����{�O#����|��^��8�d�$F��z���Y�T3���z��*�.�2j��1�\2��iC��)2��4��t���(6�������o���8��|��r�����O�z����*���l=w�n_����k>�O�E��EvW�T�{o;�����)^���L�R�����y���\�������Nr��V�o��YW�m��(s *�
��f>����q��J�n$0�sn*T�qy���o8�}&�H2���*T�/����n��|G��y=V������������^|�wo�q���H���}���r�x��v�z������669�o����b��J�yc����w����.��>�0���m���#���8�>}���A���8��P����-,��t��lJ��1-�������=��9w��k�������
oU;�>Q��Y��1�!���uI+�U��y�h*�ZK���)�����u����#]�+���z3�n�0l�y]�����{4���X+�
t�v���[6T�F��X7��r��x��s��n�uj���U���������-�k9��������&��I�)r������Z�����l����
v��*������$����u��-��\�����&6���dwq�[�~�{�[�����k���D@M�.��RM�s�c7����M��{a���q%����K��������������G�8��������/#��)��{3=Q{U�N���u\�{J.6���Z�-���E�P�X&��qHsT[���q�9��I�+�����z!��:�e����U��7��2L�B���&K�;����������h��y���n,[k ��r��&�k��f���}2�V[�f]^��\P]Q��+^�f�W��"e2:���;��+H��7J�9������&�����;�3���)����=�l���G�x��f���Pe���nVGfvP�1��[b���2����[2�_]���`Z������1�����;��o39D&�N����n�������L��@��gm�(E��v�
+e\d{��xg+���a���e�sr��zei��F#9���I%�WP
��M��n�
gV��r���i�����5�����S�a.O��m�����r���H_w���l��]�[{�a7tIXh��2�F���i����/y�i�:#diQ��Nybb�W{�:����a��3X��9[����*��7�����JV�8�Z�}��F��e���wX�Rhv�V�u".u7c=3G:�:����UJ>�z���Z���6p5��v������\+�DN&F2��/�`	�gY��(Bx��S%�.�I��s�3�=������H3��p���6^�.�������!�^�/� �� �fu�F�I�������v#���-^|���bk���O��E����Ix_JM������@�����s�-�k!��&u�c�e#p�������W�\m�����2����N[W��J���^����B�$���d����wa�3��o�E��t�������k^��"N`}o���
��>K��4�WM�e^���.�:t���)�N���ff��YV�7�'G>>p�$�i�=����&s9���+wg}<G�������Ga��u��/�z�z�)�����/z�,0E[���b�Y�P�����&�%�a_Q�\�����qJ�f����X>7ps�<zh�m���V�9�OQ����C��.�Q�{�
|_z�jI���8����,�Q������{{V�\�J�Aa�,&��<~�#iA���|�q
�7z�o��pcG�H�8�6@��O����mb�������/���}W�f���C5�6q'���F�{���1��(�r%�Y{����9�3�{'y��{e����w{O,^�y�a�����O�>)x/9qe�F�'���{�<0s��n���1Yb��|�^>���M�J��'�4��N=ve>��i`p���p�J������aA���Aeu�����K=�{7s�JRJ������:1S*���{�bb�/$���`�������4:�M�J���Pjg��Zp%���23�g�d��h���q�.�����r�v�sn���������������������)>����-!�9����U'�t���o=������o����A;�����*����v�7���P[��+`�[�����i�s��[35+�E����������b��~T�<�=�njX�
!&j���o�^����m���Fdoj,��x��L35O����>���=5���o^���Fq����w^"�����F��w��Vuvvj�*��&,(�]��aA���_?(<�������T��0c��`UK������a�3�6m�9�D��'KQm��)<����]�[��[����zR��Rx�������P^�R�e?l�O�F��O)E���^���k{U�/��RbO0t����q��v*2<��)��q��n+&p�2�]�3i��7�0�&���������]^�+��S�{��rx��f��1ek�������\�M%o_b{Lf�@c"`3g^`��JM������_�5�O��`�u���d�k=�jwS�H�&�������,PN
K�|�4@�{���>���o��=V��yP���3.+��N�s��L�rog��8������'3J�����������w���O+��T�,wOq��le��G92=]yL�U�U���0w�����#n|�����t��;������������4����?x�..�r%M��/m����Y������<�Y�����G�dW����|=�kh�}�Vv����\�!@���z�?y<�
}�{T����� ��6�����T�Lo#��+g�;���_��N��pT��
p[M��u��GJ��,��j�2��v.�Ua�����M�T������6.5.=�]��&��SX�b�Zs�1X�9�/���Z��6�'���L��%�)��_l.��x�q��Y�4{w�u����E7��+;1st�p�C6������sz�	��������aQJXI�.^�v�����{=����Ml��V�L������&����4ZB�w��4�����h��`��l�]�}�F���NQ�LY�\[I>�`w�y��������xLRv��c�����Qdk�)�V��Z�����M�k�H�I���n-B�t��`���)lz����x�x0��;��x�����8����n��V��e�����*�nV��=��7��f�����NGc�r��.����,��+uac�W�H��i|x�sx��9��}�]��k������9U��-$��1g��2Ir�{*&��	o2DWet����G8�L���������s�����k2h�W�"���y;{��W��4	��j*�vgD���a�c�G�k7�3�ns'-P�:;(�9=Rg{�9�loo!��EF
����U!3������6���bX���]�Os�������_)^�{���;�ff�����������8�w*O���/
=v���;z:6�Ha�����5e1-k���m�U�.6;E*��[�r�������
���~��y�z�xx�����E4z�xy����Q�~�"N��a���9������������t�<�9T���9u��Iy�p3��O���f��9W����3��{��b����+&N'�\�S�����r�"x��CB���r�z����=m����Y�N�����Y�Tl=R0���8��Ne;"�`��5	x��4(�a�]���s���O��vk��Nz'W=�r{>�Dwhr���p_jt��\�f�X8
�R=�\}.Z�*�����V,�6�[�`�v��VZ�r]&�xN�P]_s���d�LR\�����w`h�\�w��A����pGN�`t����'�������$S��#{6��$l��L����t��:�4�P��-7P�@IJ��KD�$�-����[������fw���D��J1���%�G�x�r-�S��!X��7����nV������y�fY����Y�e>��M3=�s9���{�������ev�ji�V���v����m*;���5y��������8��s�V��#13qT�dG�n���M����O2��m��(�82�����g�X��w�����1��J,uQ ������]��4v8�1���@�	[�c�$�24����>�+qL���-���:d����\����{V���HV'32��x�9���G����O��}��G!�gdN��R���D�����0��B��{f�����R�"v����9�A���y;~�l�7�1�.@#E��'����V��}w���7<(f�#�u,��,�&���r���s�D�E��5�;p�8��]��8����*���W��gy>�b����L�9�)���������k=��/����c~Y���Z�G0�{�o��r{y<����v/}7�ou������~�����NzgH�+�&�f�Q�$��r��f�+�����W�l=�(wFK$+j�rK��c�OU�����R��}f*�d�U	�7��3�*��[���M\�,��	�q��s_�������]�����c��k--��y�45'�o�k��{�G����j{����?v��C����7=�7/F�_s�����Cq�s�����|�b���s�:�aox}��Rk�X���9��P����r�z�1S=�{�f*\�zK+]�A�Q���Up�% ��>L��w���b�V���U�w)jE�<��F{���v^�bj��]�����.u(nZ����]�nr5�����W��ZA4�6O�����JW_{
l�?Q�;q��{^�5��'6;�]"��[���j*Q0k���|,�����{�c�n���0!j���Q��
��(:��(��,�_5���<���L��*V�/'T�k�;��uv���������s���7��{x�������n1L�Oo��X����d�jZ���Z@��9r��d(����-�z}���c�y�����&�J�c{���{�=���g�A������G�w�,#n��������wmqg5��-Q6�K`�7
F����j���l���W��f��N=���������'!wI�%�%�2x��y��8m��h�#��JUCu���@���g�����{�s_}H�b�V�:�tsgvi���oBy�+�~�v�YS��h���w7�p�cE��Zb)��N5�P���I<)�t�'LO������������E�qc���L������}�G�����F�x��@�p2�=X�+Ha}�����x�U��P��5��u{���ww�=���F�kI���JqPov��u�u�v\�{�,b���r��zZ.'��"s5g��M��.��.�y�\��q
������=}&��~\"��EsB�&�|����\����tZ�F<�SM�
�j;y�en�_}7������L�s:v�s��+��^Iy�
�0.H`�v+U]�'��*����{��?a��+�j�z���96c���%����Y�.�����H�v�U�\�"��t�r��,VBU����|��#��:<����O��n��|�[�\#���-{�%�U�Rg��V�Z7z3����I|Z��������q��
j��6�����!�3�]��C�s<�������G^�D�����9�)�����
osy�8�i���o3���x'^z��[9�V`g�{��>�������y��{;y<������a�����S9�ULB�n��t��u0
�*�Y3S������	�;]�df�����3�����R.���@1xc)����%_t�����3���gv��`'��z�T�i�QT[��Lo�}�:��q}5E��s*>&�"q|�30S���evuN
���;T3��*t�%��M�::�]��;{�c�����I7���}��.���v*`]3�l�� h�����)V��hO�������y}�VC�:u"�p(c��|r2�v.�=��e�}�)�zy�YS���9t;��2��{{�U����uw�������t�,�F��Y�Ve@ay3���PDc~�{�}�]�p3&��&�)�N	"�{�]]�Z������!3<�>�?;�yY��	����K!��5���/;X7>U�$��fl��V�e�zP�ztNd����7�
�A�����o�����n03�":���fQ�[�t�������<(�+j�*�c��d�Y���W��v�q���w�z�5���,�T�KOF]��j@�,t�'����6�����B����x�<�.���n��������=Dm�s����l`��9C[����m^j�������n�Nk�C��E������V]-����x�^)-���)�:��)������Z��)!�� 3�IR��s������(r����l>���\��YW�H�Cv���7��f�(W.xS�8���8�f3��U���S<z����]O2w#��z{���������*����m��o�}�,�D�V�@1no���y����~����O�����~������ ���5\'���������h�����oC��q�<���W���������q�Y����;8��\<���9�.�3bb[�j���T�����'����o��$����2������t������%�Q���WU��>b
=�L#}�-�{�=v�JJ��aC�Kuz����th�'�>x�k��.���f��"*��q��i��M�yY��s���z=y��������F�=V�^�a�p��tVr����T��c���h�{�2��+E�����u�s����_8��"��YdcH����S�4��x�j��-�xO��!�nm4*:&��fv�y��s�V�1��A�v��Dm
6�����]f��Rq��8O�������r�/g���:���P�����O��3�����
M)3�<�xC�t��� �lt��q+9���k�3����!I�������-J�:��a"�����8�p�t�T�x��/-W
�~g-��<�G�Z`���s������vE&�/wU%�'9�0vv���9��L��'i�����o�z��n������vU��&������0��D�nN�_>�����"��cw}�u1���^���<��d����'{.{z�Y�{,j�;�^6�iH������/�F'{{��K�.�s'�No�6.�J����'�������[.�����]
��v{������7����,C�����o��q� Xl����i]\��6=�3L�_6=���"�6���K=�����z��Q�m�7���_� ��cn�3j�=nN��Z�����6�7p���������ge����-F��14*���90����8	����0�*7���F���z�c�gw\B�y�w���>^J`]���q�Q�`"���y2�A�����O}��{�������,9�o�w������J�?{��`������=�y�5��E�wcb�T�mz�����<�T�.����|���C��.�}�=�����7��"k�8�x��W���������-l+�y�x�YY`k3�����kr	�����	��:�b�d��b���7���v�������������$
�{$$$�����U���{��YUMm_r���>[��-Q�}�_=�[����U�/ek��;��C���^������������YEd����~?`b�m����p?/i�KC@���&7��9zby~�����8�"\���>�������n�1ew�Y{Pd�<��-���yj��\���R�������+.�����_�x=������{���_Je�SlRq�~����z����bw�@�wn;N�����m�u)�
��������%\6�U��){�D�2������:�<�$��V#4�t�S�r���jW�Q��� /[OM��u�j�p��Q�'�]�`�D��=�h��=Nzo����m�]��s�,��a��`����L�R+�r�u��������z�������w���.WK+{.��������e���ZHc�~r���`}���O}�^��b_s�8$��F�����`(}^��%�C�F�`6�V
��)�{=�m������=���q�W�}�/<y���~�������|�j��&3ob�����!�w�������0�������;����Z��������R���<�n)��Z^�H1����?&��s+1;����ny�������3�����k�g���z8c�@*T�8WN]�)���-a�����V�7��i��������������2�N���q.��o�kC7�3�Y���a�������9l���H^�K!����4���rw[������n�����W?2>���<����N���v�vzS��o���������]�����XG�<W��o�5]�������n������jp^�i����3�7q���d��X��}�B@���a����{�.���O�����O'����5��e(�7��;���Wy^�yx���C�V/,�/�w�_�/=�,}q���0&�.�
�U	XTl���kn]�T7\�El����mn!:�����^Z���m�o����x=@����$��y���zX���R��]y��og3���y.n�j�_�E��w
�x1J#�{5��Q�>�n�GW�E�t7i	.��U�;��6����Y�^��w����8���	 ���}U��w���~�6��k�=K"�C�cyl��������In=�IE0v�v�,�
]�'C�
[���w\��xs��{�-�\�f��6���h�t�\R����~o��=�o�NR|�c��<������_��������x����<x����<x|���#��Jx�#�C�s�q�9�8��!�#��J%�D�r>|�s��q�D�Q(w�wW`�8�����t���������hB�9����!B�:����4mP�z��{��)tc)kR��R��B���)l��e��hUT	(�Z�w�B7www@����	w�������Y��n0��I�KY���!8���B�`m�� I�q<�v@��)��!8���p�Q�5�ckX�1���5�i�t,���X���s�����Z�Z�!���v!B����K`�4�5�5�7"���]Qk���v]JR��fc@n`	u]u<9���']W]�s�A���4��]-u]!8��)����)��!�Y�6���� �Z��R�B�!8{���
uJQt�t`����<@��w��G��O��_�������F,i����������,kZ��p���q<�\�Z���E,�W�;��
�b�Z��]vf@�)lc.�@1�nw����Q��(A��30@���
0b�(A����R�����kZkZ��`:R�f1l�
��'�,7w3���B� �R���@p�Ru��+������T�)@�9�]R��vD��Fb4���9s�����N.r��`�X�����s��n�j�UU@3 �l�������:Q���� :�m�j��4��ZN���_]Os���`�]R���u�)JW]��z�q<]����JR��<�R��)����K[
�r�����s�B� ��'�@t�M
���n �������hn]�%��� �B���x����R��� ����CYN�����fff8s�A���@�:R���KR��@h�{��{��[1k��O�!x��<x�-��6�� �
������u�!t�S��uU@B�!8�J@hw���f1�����8�E�.�����N��+��_6BQX3M6�����A�hnXK���Jxq)JR�U.��5}u<B���JW]:R���hB��
]��L�����R@.���3�Z���!B�!B����8]R���)K��]�@)ln����u���f7tg@
]���� �7F1�2�����X��'�R��];� cE�����^3YM�Uw�*��wwv	uJ-t����������8���Z�kq�i���gL�R��X�Y��4h��a�]�����A��kYR]���B�!@�cu�(8t�.��K���r�K�
ck�cF�����[�Z� ��2��!8q< n����kF��n���wwq�k��@]���U-��w�B��k_ect2�qu��5�1k��]w�A��
1\@��v��ne��<���u R�e�uT8n���s�A�!���R��)�������k+��{�*��%��p�K������R�
��!JZ�7(K�W]Jxq)JR�����KZ�i���A�� ]�1�(	p�K[7,K�W]Jxq)JR��Bs�8�*��
q����>}���L�e�;�v{:����K��s�����8�}�v��}��s�}���w}���n{����n��������m���������������}�����m��}��s���.�{��K�������7��U33������p}��m��w�6��|`����o��m������o��|`�������?�}��m�����������}���������p}�}�m����p}�w��}�����}��w���v������x>����o��|`������m���������o��������w������=�����m�_�����}��������}����}�������x>����o�����7�w���w���=���o����������������w������{m����}��m��p�I$vwq'H��.\$�H�q$�&d;��;��L�w����������8l�����}��m��|6�}��v���|��|0�}�����}��}�m�}��
��|s7^��������}������1����<x���<x�^<x�Y��x��������!2?��m���W1��.d���.\�i���\�i�������5$"��y~s������':��}
������@�1�����&O�&UU#,������P�e�\�6�	k1\w���q1�Y�@It���M[�f�i���O������x�1�c��1�c�c72c�<x���i��i���.\���-4���U~8�U���.w��U��������bZ�T�����=wH�b{[���'u�&
�%���2e������fY�2J�1p�d���(���`�����d������/������������/�1�c�1�1�b��c&�Lc��>r�����M4�M;����i��i��i����������=�����(�5�����]o�������5I>�Em�
��J�.�^��R\/S���vg}��M�w��Z<�y8������Y����r���O�r�1�c��i�c�c����1���4�M4�M=����i��i��i��i��{:�����y������������3���]�rd����awfJ�LGp�_t5�����)vq�bd��A�}LY��[��pD'!�YI>=�p��=��q����\�m���y��z����o�x�1�c��1�c�c72c�<x����.&�4�i��M<��r��.Zi��i��c� on=��{�������v�;��������vt�*����v��ky���-�X�K�]���{+��:���c���'�,��Eq��{wr�38�t��J?����}~��9x�1�c��1�c�c72c�<x���i��i��i��U��4�M4�M4�����W������������4��h����� ������."9Y���g������8q=�9=��8sp^�W�����uw�V��#���/~EVG{W����}�m�N�=r�1�c��i�c�c����1���4�M4�M4�I��w9r��.\��M4�'�C�y��������ry���M*&�����O[����`n��C���.��������:��Z�u{��[�@�b��ZB��IY��[�U��j��;W�*��/����y�N[Wo�x�1�c��1�c�c72c�<x���{��/%��4�M4�M4�M4�M}?e}����2��v/���Q�s��S���
���GS���q}���a�;-yKb�Q�.kz.�qDz�R6���|7%��nv1��Y&r������3D�`#X����^X��o���������r��c�;cc�+�2nd�1�x��M4�M=����i��i��M8i��i���H{�����3?(��
��4�N�D6,_�'�a������$v��x�e��"\���T����7���8�'�d2B����;�����7��H�yn�����������w��r��n��c�1�v�4�1�V1�d���c����i��i��i��i��h�M4�M'�g>���}�G��%�V�y/�_����������?A��Ru�k�w�����U/I0���2�>q������EZ�9��6��n�����R��nK�����_"����a:���U�=I�{R�#H���g��+�^A�����<�����q���g�F�m������5#��4��e�"���N�{wn��*r����E4AW�
jEBGO���u"2+~�p��������-d���2�^�7vU��VF(�z�v�B�����_$�P����B�����!\Vf��^VLco�16�.D��Q�_)*`�<����]s^T��S�>�\���{�s��2;/�h�_davm:l����$��t�=�-�_%m���r�s����S�n��@%��pZ�L���%���Q)�+9���+=]�V����v����ci��+W3�����S��jr����gnE.\\������;t�aY�O�9���>��}K�xi�`
*"��=���Y���@��Xj�vp�$�����#�$����a7Q�N�J��D��D�����:�+%�����������Wi���V�C:���6����g;n�e�^�2}�v���Go��&'sL�i�q%7'����x
���i/���������;tc6��am�\b�
�t�����tat�}��i����'��,���{��91gd�B���_n�����F��V�,�Y���N�!����1��w,&�I�7v9��wM&���MN�&�Z5E��y�K�a1h��[�tR����z��y����n��a�������[�����u�A�W�2����9����R����Fh�>�D�����8���/>�������r�a���gY�\���5��Z}�;���'������||��n��s�4S9��������=�����o������0��hD
���B`���4��z��F�M��@CE���%|U:�l42��g���%�J/��<�!����x��'A�%gy���#���+o5�����PQ�mY��;��9�u�������Q����w���"�������nyw��}���Ns$I)�A��Od��;�rA��d�8FIM��{�9�g�}k���9�u^�/�h.�",�{1�e��lD��gh����Rl;p�T����Be�=vg�1Tl�����D��L����Y���;/���s���8�q������T���@	\�)�����)���k|, 5��P\���J66Wb�Z����������4�!�Ku:G��f���O%��o��l}V{g�����PJ;���8���{	����>�}�}����x������Q���K�����,kY�e#%�,t��kw�I�|�����])(�a4Un������S�SO��5d�^���K3���Rv����eIWV�b���=�SUM����N�DG.�����#���I��0��
y�v�J�������+L�Q����]�*A���L������*s���i_{�|������Z����d�5���g��o���t�k����Gk'&Pl}��wWd���=�z�mS��]��i��W,�|�~nw�]�I�������*%��-�
����v��0g����x7����yc���[5�4��3W_-�F�u9&��;Z���G�M�J����G�*��H�Y�r��tI�T��JufFm����`����]��f���+��|�����W��ec�f
�7���Y��v�7��n����+�|�r���Y�?��$8P�c�p��[��*K�7�W_�����'�YX-�f��{E����MTf�
e�]��:�������k36���r���KG�d�]����y7:��X�0�������e�Y���8-�cl�UsaH��:b����e��.�V:8v`�Y���Q�{��W�l�Yx�������[��fT����,L�,a�5yo�����_P*�9�=���f��y�FR+��������\�������4��^���>��o�f��VY�8	oo�r��_�~�*ki���-�<�L�lc�3����
���c��J`l���p�R��^p��N:�.��r���w���������lNZ;��s��������m_�����Y��`�#���N�u_�Y������

W����g�s|�����gn�A����~|�Y�327~Tv/���r{�g�jk=~�J����p�w]��-`	89p�"�����o`��Db��e)o��n�&B��}q��5}3o
D��=T���meE_v�79s��I�������������������~��v��6�v	���.�7`���m]������Gs�U<6�i���9����z�����a��n
���V�h�V��m��}�����o����w���������kpUWS`�F
�`�mx+��U�Z0<�=���F��^����z����3�m8+�n
��x/W[�����h�9������]n
�`�F
�
�`��^�����^�����=�z�w�������^
���x/^�8�m�����^�j�u��wu�{������z���z���8m]h7W[�u��TV�������~���_����ATATATA�TT�����G
��������j�����*��a��f���_��:c�o\�z�1�c�1�1�b��c&�Lc��c���
��
I8UW0Yp��`�p��d{8�66�n`�*��,'
��!����������W�I?RA�����9�����q����?C�:��{�/GF�����+)�c��Y+�ul�*�\�/�{���.t ��n3��D�{2xbY��]��n���1��G+8�Mu�=��k�D%KnI��%�]�LBM�$������~����?�����1��o��1X�1�s&1�c�1�`��D��Pr�������*��*'
������?n#q6�n[�����m�NU�#�UrE��D�����#�������s����Wn�]����;��j��/�i�Gn��gIY�v�^���d�z��[K'Y��'J
���N����g��1J
��tCf��o�/�j�>���9V�#�^��Q����}��o�����~}�r���1�c�1�1�b��c&�Lc��X���"V�Z��������*IZUi��a+J�AP�*�$��V��T+�V���V����V���C��s����?���_7��fN5��z�f�7��w��ss/3�����&f���{�SZ��V2k���Z����B���E2�:����n��a����*�.:�*t�����p���Qs���7%���u���:|x��9~?�1�v�4�1�V1�d���c���	+J�$���O��N��t�D�*�H�*��+J�ARJ��PT����$�*��+J�A�~�������8w������!���N��U���(����1�(������U�~s(��=��s���cD#���W^�������d��U��VF��H�S���[���!.tmv���j�~�7���"����g����;_G��w���o����^�1�c��i�c�c����1��1�>"�������������O��I��t�"������PR+J�AD�*�D�*�G�x�����O�~������������\�����������=wM������}�I���%����<�X������TvCd�2o�����Hk�����o���u��VB�������@�>���n����>�>n�3����f�y��^e�O�];m�������1�c��1�c�c72c�<z�5�ZUj
%iU�,�V��V�Z���V����V��%iU���&�Uj"����~��}�y�{����l%r�;CK?������w�"��w�����3�G����P�2hOZ����
��}c����r�u�n%^T�V7v)��V����QB��xxD��u��`�U����i����^�Q>�������/_�1�v�4�1�V1�d���c���I�8I�
4��
��Pw���m��|�$��i��"�������D���M���	+J�$��M�m��j$��V��s�$?RA��g�{7����N/}s�s������AC<�,y���'�k���)S��-Y�
������b����gM���e�{Yq�@�PO9��U
��\����FN���K7���ogwbr6������sQ�lI�r����N^�1�c��i�c�c����1��1����!��m�,EiU������I4��PTJ��PQ:m�m��+J�H�8i����V�Z��iU�N�	8������?���~���g����m�w�����=�y����4�������FN�&H9S�}ep ;��uy�=r:��T5f�X]J��]O�������j�:
���	]�^������]L���cP����������1��;x��������1�����1��1���1�c=c���F���P	�M�m�����V��V�Z��V�Z��ZUj
�ZUj
�iU�*�V����$�~�A{������~�S�9��(������L��LMYyz���~����kj6���rs#j+#r5��\L��8e�b�4Fz������sY�����2M�zp���I����p��dk�v�[9�d�v�����#�����{��~�}r���1�c�1�1�b��c&�Lc��X����V���������J��P}�I�-����I+J�Ad���PP�*�5#��f��?C��~7�~��C�����Xo���t��������Q!�.[&�.�).���e�9
v��hIR�u�����+C�����L$�e�u�Ck����G����E<(��/���j�y�����9/(��fd���Al�7u*�:�4*�%�|�=�B��;5=	/����`H�#^����N��gy�U���{O��~�c��}I��yc��/�.�Z�r��<���b�t����<�+���,�8D��=�/��rWw�Wu��c���81y�����m�k>^���,�����{/z�oq~�������V�o�v����z9�V��]����fT�[��sv�*o���D�hX��d�%.r�!���7��v�[��v.����z7���z�f+1��d{�t��i��9���J����N`� �x���4i���}�w���z���%��eFJ��\�d�6b�Z8����`^k����Q~��`�-\������7�T	S��]X��������O���{=��?�/��6�Q��V��rb�����H�e]���H���<�����;��8e������'Y�RU�{;*�g;�����#���4g�,��z��@gge�[Y���L��8�H�"���2��/7b���0��V��5�2�9DW��wX�������y�AX#�	�nj������K��fm�s};tVy��5�����02��|�5����/�Z��
���`F���"��,��	��
q>��+j��J���P�&^Wh�}[f|M�0>f�<y�Sw���
�ff�u�������B�l��Gp����hDt�lo����]�Y�	�����`�4s�w��v�d����4n;Q^!c\�Ml�����������}:��`�8����n���L����V��+o=I��79�av���M
���s�\�����v��M8�������z��]���������G����{�k���,��zl��n3�-��������Z�K����}v��v{!F�Es�s�����"������5����\m��.����.���(�J�g��mi�l���k--l�����A��u$II"d�����^<������4P���R*���;=	����&�45��������=���;�����z+�/niau��`���Z|�^������|}��D����wS���h���������}o���ZO��q�Y�����g��L>�I3W�����1��sjU�2{puH��.x�`>[s�����Cyjr�nJ���������@���%��^������JN�}��	��������F���1����7�@no��{�����2V��}������o>���G�I }[�����k�����v;�'�m��
���x��QN8�Z�!�Y��Ko�n����x_+��^u�8=E��v�b���@<Q�=O��q~�R�l��]��<���kB���
����V����������\$J����IPywo-��������wkT��P��..f.#NQ����SNY������R���<��QZ�����������B���r87{P[�@!�����|�c�������3�����Rc�����U������=��FrQ��n|��s������v�$N
CB���`De��Q�� �X�������(�h�s�x|�:���V&;W��
�W��=�.�.A�\���������D�+/����w}}N��n�B�~c��)�iM�%�����$s�-��;�9��O}����<B��T���u�zu�d����'f�����F��KX�,���V{���3�nh�
c�-��pY���Yx���G��z�u������?"�x�\!}����E���m��!�5�o�%Wx�kW@5CWx�9vu	}��W�7m����5I��h�~0�}�3��?�5o�����~L�V�7���D�!-�+��J2/F���q���[�l��=
yL<�_�yf�#�}���2��\�k���z���z��m�O=���w���Ik5sQ�'v�u7fo>8�NCYc����K�|�GT;N#����ju������O�.V�7_T�:R���w[��,��{�7ZDwpk��Xs!>��:�%��JY&L~2�QQ���}�p�w��&v���{���T!'������k�?��,s��k���E�]�<�9�_<�=����W�y���>��L�M~[�����\���Y���z�".}���m��8����CwJ��5pO���7gc��,���y�{��	r���%�/_k�=���=���U���o�]�<��������~�>�7����~|������7������{����/V��j���8�����y���xm��7=Ts7w�����u�5P�WS�\suZU�ZU��h�V����w����_�������Pu6
�`�F
�����Z0U��sw���`�z���]n���+�c=V����������u��m�[F1��m���pU�Z0W�m��}�0}�}����pW[���~m����z�����o����Pu��^�zq�����z������]n�����ww����^��^�C
]h��������UU�5��7~������W��~~PUPUPUPwUU
����n��8mT6:�a��*���y��
�&�7$��$��
��|�_/���}����1�����1�c�����1��2j����5�IZU���ZU���ZU��gF�6�m�D�8��6�m�AR+J�PRJ���'S��$�M�5��H.���Z�?,���o�?&L��7�����r��bl��*3[e�?`�kp�1z�njZ9��6������F�j�l�yL�n�D�����yw��7�V���"4���R�<\#��y����:��fo^^���6�������c�lcLc�1�x����c��5�V�f��IZU����Y�(���5��n[nj	+J�PYV�f��ZU���V�f�����G�~G�?��~��������#7��������5>m=��!��-�R�P����R������	�t������s�;u������NN��[�8��
�y����}}B�*=��7��"v�_g����7����]����Nb?v����^���c�;c�1�c��8�1�c=c&��$V�f���$�Vq2��5��*�AR+J�I;�d�i������Y�����&�U���V�f���>����s�����?�apK^s��:2g�>�����$��*�8wG��8�c<���f^W9\�����9��'�� 7�	�,�J=�2'C��]X�m�
v9�}�}�md���S;�nv8�.��}�����}�v���z��1�c�1�1�c�<d�d�1�x����#��O��iVj
%iVj
I+J�PX�V�f���Y�)�Y�,�J���
����������$�{�>[������]�x��Tq�:=vh��Qk�� �V[�& �>���~����M��Op���J����9��-���{�m��N��M�x�E�	VZ2���J�]�u�7^K"u9�{n��������9m�^�+����G�������������1�c�1�1�c�<d�d�1�x��'|�IU�� ��6��8��Ur��*%W+8I��M�m�s�*IU�� ��\��
�*�Y�Ur��>�C��|�x�y���s����������x���EHp/���X���7�	��$�&��j�C�����R�����;�7yR�y���b�&/�����y���3km�{^q�e`��o_V�e���noz�{����'�/�=~�#��1�c��1�c�1�'&1�c��Y8��Ur��,�W+8�VH�9Y�"���A���j��!U�� �Ur��,EW+8���n[�A�� ~����(V��'�7��U_�����4����r;�9����e6yZ������T��x��8S���R��XG��<}��y,.����u�j�4��Zz	�wf���9�s�����o{����������_�1�v�4�1�c���L��1�=d��I�m�s�6�U�� �I*�Y�*�Y�B���AR*�Y�"���AP��gX*�Y�I�8�n}�����D}�����7�����k�;+�+w�~z���wx��.����l�3�������INj�0�C���$15��Io����\�s��'z����e�P�/�IWy[.��}��bJ����7��v���r���>�G��c�;cc�1�c�N&Lc���q���VqH��gY"���Ab*�Y�J�Vp���J%r�gRJ�Vq�*�Y���:I:t��m$�� �>g3�7��6o��B�omT�����s}:������w1��i"c���n����{���'�vf����-(�Q�o` 9@�rv������m[������R�������{=U����9�m�;���?�w���t�������1�c�1�1�c�<d�d�1�x��'|B���Ad*�Y�B���Ad��Vq���gR*�Y�*�Y�
�VqH��g������������~�y��?���������N�/r�$&�lLC�y;�:�R��}5���W������Ii�-Y���rxq`���O{�Yl�����b$�Zw7L��[���:kqh�7�����n�1������c�lcLc�1�x����c���N �EW+8�/�IU�� �%W+8�g'�$m�np=�
����8��J�Vq
�Vq����Aa*�Y��S>��ug���O|�>s<��� Ys�����J������La��;wx$�xk�v��%C9��3Ew,u�r��h�����n���8m8�IA��@����W@�?%L%�Z������a��� uF�JP�����T,�D���+j.X���W���PZ��#�t�w��Lo	���a��AG�������������M������]	���L8��F�����6���&�����t'<4	^g�Q���������k���]������f��x�&y7���$b)^�����F7��8��b�7E��u�BN���[�Hm-k������wT[�8��u��H]�g�.g���H��������i�n]M�5�v��XdI�����_,�{�b6�%M
�)D�'�P�{\t��v����V����r��k0r�B}��+��K�Q��!wGC��`����[FU+=��5�d�����d�Gn�T9�����������sr�E�/��*�Z;�����!�]�X�TY���y�iS��k5�W&����~�������<���������Q���h����	��f��U�sP���5b�fnl�=\���F�g�(�{��3���p��C�n��ry�><(�%��u��D�3
K<��K�xE�W�'&���m	3��;S��[E��2���0���Ed����&����4q�(W
�9�z�V���j]���z�R�XC���-��rf����o=��lW���|z�u>�3���| M�����^-x�X�������G��&wq����l����Y�����������)w3��Oi�����{��&3���W���s�����zR�����@��A��W����P��i��{����[�V[W�k��[�u����n*+���L5��`j��:k&[3�S����+�y�{ca�z��1B*��u��v��y�>iG���d��I����\R�+0�Dv�HK��}���T	'*�������@o(�pp��5t���1�����M��T*�u��Nt����;��Em����8�B��z��\����=����zoo}�n����f�Y\���������FG�6�T�Y�W��L�ii���A��u$��H��{<��z��)s����8z��5P��`�:v��_1���:����Ep�X����c�7�j���k��l���{#����^����U9�K04k�����wap\���?2�X�.u/V�z:�aX���u�7�o_�}�g���3�����������F���y���P�#6��z�u�����x�=xs����5���q�fo���C���0.��s�����:x����q���^�Y��]
�jW�i��}�&tz�*8�b�Q���;	����[Wp��v�3��~Vs����d�Y^��=i����{�Gx���m9�f,7%�{�}A��
,v�����y+�j�W�F�)'���'�sm����������)�#O*�(�n��v��<E���78���o�l�����8�;*��=��������%��~�������U���T���$a���:�u��jq�hjn�!����`gG����S>���z���W��wp�$w{������:�>�{�N�w���,�W���e�$o �R;�/��@��B�"Y���;�&r���k�K�����E�N���wb�C������e/���~�����c���������_��������<�����/�C z����+{��]7dK�YO%��@���P�1��h�b�Y0���i����N��N���������=M���"���o*�<�RC���p�G��_tFx'v�9����JO�w�o��u���.>����.8����~T"�Ghrg6
�\4b���.Y�9�RCr��7��p^����G2�
4�8�'����+��>������.%��:T�o�
E���kDB����];��>;�[)����������%��x�&��N9c�;���7�M�=������W}W�.K�d];>����;8������r��:��	����p��L7�{�q%gv��&�Wf���fV%.��������re�9<d��]y�����/������Jf�����9P�y��t�m���<1.<��1��f/:f�uyH��:�k�9�_���E��=Z���S�w��}������&��I������>����!�Iu��<��'�z���su�[��y�Z�W:gjI�F�����jKU��uM��M���\�d���\�z�g�C��v����8�S�O<T�+�40T{��|&�)�rW]�������}�{���}�0��$���H��]�n���m]�����;��y���U�nz���{��^�wZ����V����V��h�V��m�Z0U���{�����W��0~~u��T]M��*��������V�h�������/^�x/W[����
�X�U�����+����]f5[k�V��s7[k�]kpU�Z0UU����^�����^������^�]��������������x/^�8��z�^�]�z�����^�w]��������^��^
����f����]h���*��C��}���~������A}�����>��*��;��*�����7wU6�T0�C
T0�O<��@C
T0�G7:��N�:t������1�����1�c�����1����A�
�Vq"���AH��gY
�Vp�S�K!\�Y�w	������Y�r��*EW+8������A��}�;��k�������?����f�u5g����{5��Y�ry{�}��llh�p�E����r��y:����{�w�@��c�����.qPa�jk��x�r��?�3C��
��YFN���3n�=��vn���i�}��������G��1�c��1�c�1�'&1�c��Y8��Ur��,�W+8I����$�p�i����J�Vq���AdJ�Vq�*�Y�$��gT����D��q'��N�H#�$�s��/����/�������������Z�I$C�����������q�����2�rv2���&.�����J.�����["le�G{{*��9���F�0�xi��a�qH�0\Y�x������������{�1�v�4�1�c���L��1�=d�D�IU��$K$Ur���J�Vq"X�Ur���Ur���U��$K!U��$K$����H���Vq"}�s5I'�H5���q�O�3�A�*�vY���1��Y`��]��U�l�,oa�a���j@L��0���i�����������#*���
2j��=���?t�� ��i.���I��g�����F1�/>y���|yx��r���>�Oc���1�����1�c��&1�c�oY8�>I\��D�\��D�YUQ<�U[�I%�N��g%�IU��$KJ�Vq'S�$�I6���%���g'�}Dd�����_xX�����^���tp��W1�;i�6��X�n�y������r�BY��#;�������l�����q��0U;����h�[M��;�9%��*!��Y"�:8�43�wAQ���y���U�������]mo�}����>����������c�lcLc�1�x����c���N$O�%W+8�,�U��$J%W+8�,�U��$KW+8�,EW+8�*%W+8�,��$��8�,�*�Y���H}��D}���'�=���'�����6;)V[j�<Kq�x(��^^*djN���u��k0
�� �+C0w X�%������� 0�qh�����ys&t[.�����$���B<�kI�j�x��h|Um���c��1�c��1�c�1�'&1�c��Y8C��F�V�Y$�\��W+8��U�� ��\���m�s�,�U�� �Ur��*EW+8����� ���~^u��_���/�`K�iW@U��\m{��g�q��m�#��c�����gm��okS`�;���_Ak��3���5��D����q�*��uV�jX���8��I��o1������1�c�1�1�c�<d�d�1�x���$�IUeI%I%U�$�*��$�UYRIb*��$�VR/�%U�$�H�����J�*I;��C��{��;��\��{5����������\���T@b���]�vd�����������
<�ID�����r�;���yL��	^�������w���'c
/c����9��pw}�f>,v�����||c�1���1�c2q2c�<x�z�O����$q8IP������$�m����UeI%�%U�$�D�VT�R%U�$�6I6�si$��&�nm$�HG� ����2�=�;���w�����r6oQ������������+��8�5)(hb�Y*��5�:�%�;ws=����7,�j7YY���G7���������t�5{�W!���95���������~<v���������1�����1�c�����1�����|
�*I(UYRId�UYE�$��UYRIR*��$�����KU�$�"���K$UYRI���H?=���'��_�u�_8���o�H���'D�hj��:Y�s��a�T���=([iKT	_b�x���"���}�_��q����v&;�s{v��t��}�m=���Mu.�����\uz����=���:v������1�c��i�c�1�8�1�c<y=I'�*��=�I��m�RIdIUeI%�%U�$�
�*I)VT�X*��$�Ue"�IVT�o9��8���O��������sh}�U�B���l�*���oi���{kH\���xun�|����VnM=�Pw���iL��9�[5s9��sB�T����r����/����c���c��w��nV<u�}&@�u
m�����b��7
y�����ei�E��Q����`�^�W�8�vf�2���{��r"�+�0��*���^������s��s�F�/M�����U����"��>g�g\��nr���ZNr��/�g�7������n����>��*���c=e.�9e�����v>��_Y8^��Q���
$y����9��WF{��$���6�K�����h�,�����A�|�������VkOI�}���7��p;1,��,&<��&&��X��w�"y���N<^,����_qX�h�e��)@��A�-vV�����k�������;r���8@�=�EE�*%$	nsg���m�WL*d�M��l�L[��V������&{�c��f���w�:������7s���'v4
e�T�������S�{q��_'�,����(�+@��������Y�dn,��/D�c�2w��w~>��k�����{�%G�TiA�)���^��\�J��e!���\�!���\C���
�����S���Y.a��4�R>�n_=���-��S��y�oo�����������<��x�&F�m�+v��������TbP�7v;��X3)��{Z�33D���m�������{�q(����^O�y��lL�GN�uugL6�vgFZ��;������Fq�������ib/�V2�%�qD���'E���A�����79k�="B`rx���[y�[�;{.gp<���'Q��	k��z�O�����=�);�'�����U�;��&q�@u��W
����;^D��w/3j����1��r���D^@8��������W�����M�9S�p�3��hW-x("Z��wzv-m�Q����.|p�q���Q��������"���0Gu�}%��"����m��}���<��3�����R�����8'p���8�d���A��y$$��A�3�8�y��;���~k���jq��w]��C�����9�fpk=G���F�L�����l������q	����y����NdSn���b���]��F�d���0budG�M����^�wY����+�#�jK�O5VPO���B�5�vM���M��<6�=�5�6�y]����/�f�����sm7s����6�>���yt���{��u#�������U�Y�����M~E�{���Y<����������m�f�^������7�tml���93�{Q��^#3j}�E��X7�T;��1?a,����Y�����M��T\��|����yf��0��I�NJM�R���_]��Ds�1��b-�w��� ����������������{���U������8��^k�xk{6�i�S��p�"#�����?x0��?R;y��O+���V�el��g}���R�qyY�7i�X��.�3{](.)����t��!��_�p�u���m�z�{��*R,��q�9�vJ�zI����F
�K������J�h
�Dr�
nM���S6.��1[S��D�S����^$���V���:w�M�Q>[{jQ��{�1��������7����u���tB5�����DS����
G�1����C���w��d�>�������fp����:xW�r�Gx�}X_OY����^#�.��fb����w2*��gc{������ws�|j����^���2���/��!�����V�-�y�[6|�^c:)����SMEA!wg���y%�s.�Y��*������xd�g],�G����N/�_=>��OWpTz�{}��g�����t	����9���[u��^�YF�_e	=L���+���sq%��;��l��U���k��w��U��Mq"�y�����Wz����%�4o�zg
�E+�dx=�
ffOv/p
Z��K��Wh�����Su�'�+�q;��7�8H������\��!��q�E�
b���6�,r�����,�A�����3��9�Vs��O\��`���� ����On��[��#VfW�,���/��������{��ms�^��EmU��9�my�-��v�l���=�y����g7)��}���&}����
��^����!�>>�����B����w��mO�n[7X����3�/��#���������������������m���{����L.Y#�*+fL�$�>���Jr{���O;�����-���C�c�:���=���q������Q���]�;�����������������?l;6I-7`�	�?�h7>�h�j���8��q�T��uQ�j���U6�wu��n�CT0������V��m�ZU��h�V���������_�������Pu6
�`�F
�����Z0U��w?��Z0^�z�^���������i�]kpWu��z��j�������U����Z0U�P[N
�u��]n
�u���������������~�/^�x*�^
����z��Wu��z�w���j�u��w[�m������^��^
����l���x+��PZ^�sw��}����7��?(*��*��*��;��*�������Q�j���C
T0�C
T��uPP�U
�<�33�x�\��]:t����c��c�1�c�1�c�2q2c�=c?%p$��U�'�m�Q*���7��n{6&�m�H��*EUYH��(�Ug���">�����~�������y�v�U������)�1u�k�LyI���)7��o#����pi�%�@�&��w�c$pQns�����f�5�7y�vk�B|t�]��~��1�c�1��1�c����c��d��"V�e�*���UVP��*Ue�%UY�$�m��I%UYa%UY�u��� ���_gs��w��t
XP?�����/wgt��c�l 46-���Q����
>���3��$qV�ovG�"����d����������c��w+�������������~��_^���c�1�c�1�c�2q2c�=c=��m�*EUYd*��Ug��m�������IUV~lM��r��UgD��$����<������;�]y/7���s����Gh�������W=�������tB�#����{��o��-��i���A����w���9Q_^T;�����k�����s5\}�>�����o��~�=|c�1�c1�c�1����1�����������:u,$��(��������$��)$��*UeB�������I� ������2q7������]���]�������Ey7�B:5`E���p��K9r�^�;��SP�������U�Z��>Z�6�c������Z��D�&+����L}~����>������_�1�c�c�1�d�d�1�z�2|���%UY��*�YdJ����Ue�UYbUU�UU���6�m�����W�}����%��������-<����"�e���
��A��(v��������:��)���J���$!�D�V��=z�1��������V�xgf�-{^���G/K��X����L��5o��G��m�c��#���1�c��c�1��L��1�X�O�UU�H�Ue"UU�&�&�m�R%UYd�UU�H��)%UYdJ��>�>�����>��������2�F����1���vrX����_{\���>���������D�[�F��H�#\�v��#�(�s@���F��xf�����=���W��<y�yu�=��>y���<|m�n�>��G��1�c�1��1�c8�1�c����"m���D��,%UYD��(�Ug��m���
�������J��q$>�����`���~�_�u��)��#BV��FB{�V��**=��K�cp��{N0E0WCW�3$�����LE��!��
g�v��r�������,�z�������;t�������c�1�p�1�c�N&Lc��c'�IUVX�UU�$�Ue
�����m�)Ue�*��$�UeI*��:d�����	Z�9���g�w����cy��h�`d���L\�%�s�m���C��;\��*��9���rc9��/v�z�2�:�vg7�F��t���w�����^r���Y��\s�u���j��C��:m����z��1�c�8c�1�c'&1�c�1��%UYa*��f�6�m�$����UVT*���UYbIUVX�UU������H����\�o������s'�y���rg���v_�^K���
�<�l�tE�F�:2�)�[}�%�����~}T �������`��OI��,���������7R�1�.�������O����=���c�1�c�1�c�2q2c�=c>I$��)UeH��*Ue���(�Ug���m��I*��E��*�?\}�noA���0���O�fnJ}���*/L�&\��Ul��-TNoE��������2���������o������i_Z���r�v��~pM��w�@�����=�������	8�c/����fd�=z{�2��-	-�s;Fr���j�G����
'����iT���#F1G���q>��tW���v���0p}V�p���U��8M��}&�A�[E�bY)�\3���R�;���l��OW)��OwuD�:N�$�F#n��"������PK;	o.���w+��y�������{�HdlE�SN���I\�V^��amx�h�M������y�:���������Q���F�F���k�K�0	1b�69y���1�)t��l�f�7��z}<���r�6����I���C
�����x����v�,<EU�����v�rs��W�_��Nd�]�m]61����7H^!����Rx��=��7%q./�{`��u�>{��t3��9�lm�Du��n[�����J��T���0�s�r[��l��~�o�������}��l�����9�=wV�aD������@v�x���s�s�`�s�t�X]�����i�������&]���!�ssL~����`�a{��p�1;a�������(G64x:{����b������dn�efJ[2�M9WpTS�jg;��T<u����:��Vm=�2�3`s�[��������s��������}��N�\��t�<�*�O���0����]d;����
k��	9���Gs��;�Q��V��L�+@�N�;���g��"���Ed�Qi��P���������M%���l�u�f�pf��=�����]F3��TM>�>���y��L�e���a'��\���V3gS�h��)E����C&���N�����2�^
��]�|���oT}��Xyz��ye���w�Al~o88��oh���y�������vv���b��������f��rq�:�������:;�/1w����w"
�����%t�1(���n�
uU}������$�G�C����'�bq'L��d�=�2\����y~�0���vV^���g}���s&����~��|�����m��|j�+h�f��yG���<<E��''�'�|����Ego�x����� ���u�~���U~8�-�G��i��^B���~~o����r5����[���/gn�k}���������������*+��{v���n�O//N�����5����yR�V\r�S�r����\���e�������/�{�������:���������n�;@���!���*d����)�<e��>m�b����y��@�.R����}�o���xi����#���m��S7*���xd�/]�R(Y;[-5��i}���������U��l��W�P[�������>�J�Mx�J��`����_o������������kf�{ww���+����,�}�#'�uv����^��O=�O:����MvK������.��Z��_��z��H����s��em�}��������s�$��
�<�����|�Xn��;���Y����6a�X-�mpvw!9����}�g���=�)c�=�H���r�{�!���AK�Y�'<}2V���.��o�z����������S���&:�*�9�A��]!�Ky��;�C����<��Xn�����KN���w��me+��xN�|�qiW�����������n���&w|3Q������PU7�������X����#��:-J���ZJ�q^ff����?f]����O
O��q���/j�n�����o��=�?'�L�z��������������k��;]�w<��x�^����%�w�r��f�{3K����J����
ji@�T���n��:'6�l��]N����?\k�������L�d������>��i�r���
�b��������?yj��V�u�?:�g����&x[�����oU��Uq�P�)X��w�c��g�g&��{mn����
b���1��
�aP��6*6�A�r�Af�^�2�t^6��X���8K�}���b��v������}/��)��5��Oe��|q�k���/����=��]��}�����og|&s�p����b����\�t�~��$~\����\�<����7��0!�L�jH��L�:����7�^�������)�Z;9���[�S� ��oM��bo�_������$I���k��.��z3�v�%>4C*������|�_O����L;6I-7`���/�Z
��Z6����N5uwU<��Tp��3s�G
���z�����U5u0j��7U�5[k�V��m�Z0U���{�����W��0~{��pUWS`�F
�`�mx*���*��������/^�x/W[����
�X�U�����+����]f5[k�V��p�*�^
�[���Z0UU�����]kpW[���~m��w�^��������z���V��Wuw�����^���/^�cW[�{���m��Wp^�z�^�z�U5wSf����]h���*��C��}���~����
��ATATATA�TT6�?�7m��U
��j���j��;��*��I�M�! ��������|��������O���1�c�1�c�2q2c�=c?����UTUUQ*���UVB����m��nnm��TIUU���� ~�A���������/Y����N��#���;.�Z���4M��'hJ��8���a��g�a�� �'���cnL
���K�*��S�8^�K�Ay���5���Ng^s�WDO�]�x����z��1�c�8c�1�c'&1�c�1��J���UUb*���UUd���UUQUUa*��U_d�}�����fQ����oH����,riT1������n�_�j����0as)%*�	bv���S���yq9���2����9��w�Adp������y�vX��1�,%��-
	�e���+���}t��L|~��1�c�c�1�d�d�1�z�1�
���UU��F�m����UUd�m��$�UVI%UU�����G�H-����w����� �����]A���R����z�v��1�s�'������X��h���9G�#yD����Y{^;Dx���QL�w/y���=:��r7�����>s��gj:�;���I�q��}���<x������1�c�1��1�c����c��c�$���$���EUU�%UU
��EUU�*���UV�����!��z�:��y�'�=w�<^w�l�c��^O]���Q�s2����7n���w���l{mn��0�0,��P%��F>������:��}7�`k�����yj��n��$�/�oOf�{I�����3y���kk������|��o���������c�1�p�1�c�N&Lc��c$�UUo�I$���K!UUb*��UT���"UUX����UU�}�}��D}�����>��*�}������7f��T�ngq��+h��W����������ch]Gc/�(����=��;���K��	-Z,��J����m����b#!�v�
f�{��D��8����9����{�Nl������t���=|c�1�c1�c�1����1����m���UU���UV$�UV
��J���n
��k!UU�q���O����~Tc���3:�����o�{k��:�^k��o��{y�����;��gcJcx6�O�&������(U�/oMU2k��m&���m�s-�E�;������������K6���eNO���}�}��U��?g���_�c�1�c�1�c�2q2c�=c�EUU����lM��j�UUb*��EUWSp�m��rnH�m���UU~�!��y�s?%���|�����\gS!9�L��[��w��^lUgv/�����s�\����[���(y�@������{
��u�D&��G����>x�x=�	]
kv������\���$|x��o������c�1�p�1�c�N&Lc��c ���UURJ���l�m��T����UU$�UVH���*���#��j{��������Jw��������2�tZr7;=.w�����e�Y��v��gS3�8^������:�X��2���(�A�`S+-�K3;H�r��������s<����>6���?Y�1�c�1��1�c����c��c�%UU"����UU
��*$��T�UUy�$�m��$�UU
������|��~sg���4w�X�<�
}���l}/�%���3�R2�/r��������TA��jYGR����S9z��yv�������_+��\�g]lI��;v�}{�1�c�1��1�c����c��c�$�������UUB���UU������k$UUT���"UU{������w�{��s�6�9���n���r6��Vg7}}n'��^�S���y@wv��4����C@7z5;s��O}��\�/*'�$Z����/���-C�Y��uh�y�a)#��Gxt#_`������a@,���Z�f7�/�n��[S|������{~�ss������M(�aJ�g8T-�K�x�%��!�=���C�w}�]�����jp���X��<���K�r��<�s��vy�Gh�&��D�W��Won����������F/m�|���wE�2
�/q�D!��w�c�Zqj�9�e{���]@{�J/����E�]F��^��������V���`��<��()���5����^^�c�;��u�:b�d���k�p8J��~�T#`�f��s�p�A���!��A�u��(���v��.��stt����c�w9n\��^����6}����VN�_]�G�W��������]{��{��ZPm����u��m�5��#��wq��7��x�Bgm
��������.���pn;l30r��B��l��2�U���J��e��j1M�����<�b���P��GI�:��R&���8����������W�����e���\kfyU�����g��F��cx�/9����n���������5�9u;!���\�����#�p�
��a���K"L,�]�����^�5Z��(�f�%p8����Q��l�������gy{���V&�������KZ&]��]R"��H�f�e�j�m�lC���(��B����+2nk���n��j^n�O>B���!�:������M#V0/zwhf�����{����_l��(�5	��A���0B�k/A��^n��X ��W��0k������U�o*�43����R��qS��H�zmM-�6�I;���������$#��/���������������&���cM�����*�Eu�kbu�8���7!�����EOU[�N���u*o���._\'5�!���W��$�����za�r+,��-���g|]�|�� �H,�Y ��:H�D�	8Bq;����$L�������3}g	�>.��5�[�\�4-q'����V�4R�/���u7��H�^#ar��Q�;�g���ePv����@j�s+y�8����i]����W�w0�-�C���M�r*��+�'p��
��R��a3p���4��W[9���&�����C(
�:���r���\�&l������.K�]��a�����}X�c������"�����9�+	i�{�]hF1�V���^������d�d{
������\&Ccj����QU#�x�x��=6��];����5�����6�l��+%��N�T�^rh��7=���o����]s��I*����`-o���K���������mG�v�\8���!���w�Wy�r���������6&�N���N������|5%���Q����S��$�����ux���y���O��b#{/��&��n*�iyb����]�$#��g�C��=*���3$I|X��t��M��q�_mUK��<���u#�y��Q�no5�+i
��xs���M'��{��SV���u_)J���v~�����x���g:'�B|��u�X���g=��y<R)�~��1
[���V��Ex`{Ny��?zb��x�,��),�\):�.�WrW�1�*���*��;����rJ�-U����@�"��d+�]#�o5��n�/Vr��Ar~#�N��F�_(+�(���x�C
�3�9�.����"�kV,��S@�K���e���M�]�
��~��.�c�`����������w��l��G�Y��y���q��[t~mz���sv�|5u]3	��^���=��8;'�L���N`�.������xo5�3��R.�
�=����2�V�>bd����Czp��y���|�Vf;�*�OC��f�nO�8������������hr5����@
t����F�@}�O�
�[��1�7(P�c����������u�5�\�����x����*�Y�[�N�{cr�[�<7u�).�D^��������P��c�\�Q	\6�AW�V}�v/��
���*W���_}_~�����?�S���'��5%�
3��g�����Eun/�
�[w�2��92W.���@�U�y�h�u!��wE�������S8��b��RJFK3fM�u����r�����G���}W�����������~��;����Z
�z�m�w^�j�8��y�����Zf���w�����u���j�`�k�n�@j������pU�Z0~��������~o���+l@h�V�h�]��Z0U�Z0<�s��U�w^����z�wu�g��pWZ��z�^������m�x��U����u6
�`��mx+������]n�����~=��z�����o����[k�]���^�j��x/^���z��]n������{�]�z���z��=T0������^
�FmTV�q�T9��������_�����ATATAT�@Cl��sv����;���a�������	$$�&���d��BA�c�/�����}���X�c�6�8c�1�y2d���1���D���UU{�M��kUUQ*��d���V���I*��I*���>�"?b#����o���v9������r����l��c)�t�#[E|Cfi@�y�%��w6eZ�l��'ENi&H��jOt��C�/r��G���s{�
w����{Q;�e�Mqn�>���?�{��~��������V1�clc�1�c��&Li�c���%UUB���UUb*���UU`��������������m���G�}�����2����������)u����d�Fr�9Gw�A��v'�j�r���I��>�
"����gE���fY
������:��������6s"n7��;l��dWfy�V������]wo<o��>:t������_�c�6�8c�1�y2d���1����I&�m�I%UU�*��%UU$���m�$���UUT*���UVs�}�
��'�������������}�hw*��1��cb���n)�]��{�q���95���/g=x��eq��Wy����;Z��R|�a��A;t��*�<D)��{��<����o�~>����c���c�1�&L���=c�BJ���*��I*��D��U$�U[��:t���UUY"���UU���!��'����?���3"g����^�
��o���T&Gt�v"��J����k�������u�������$���3�@n�^�]5��j�'1�]z*Bp�q|�s��u����t�������1X�1����1�cL�1�1�z�;{>Bm��RJ��IUU�F�6�m��*��rm���J��*��D��W�~��SX����G�_��`=��Q�2��on�1c��s;�::`�vS���8��;��cv������;������L\�{,l�|�r�V�t��]|����8�}����pI>4���?O^�1��1�m�p�1�c�d��1�c�1���? ���K$�����
��mX+J��UU$�UVB���UU��6�m����>���7x��?�O���v��K�1s_s�T�$w�nE�������d��O�Dr�ZV������u���1����{�b��j|0[\�`�}������;~>����V1�clc�1�c��&Li�c���	%UU�%UW���m�����s�iUD����Ud�UUX�UU{>����k���\�~}����������"���O��9V�J�tg�MC���{T]���s��F�7J�xX	���^�c������p�S#��-��:�"�m���������w������||c�c���c�1���c��c��"������m�!+J���BN�:t�$�������&�m�[
��k	UU��H<����~j�[�;�z���%�������h|4�������N�Vj���q���wf9�����wv�����������<���I�\A�uv��{-��HD}lh�9��7�sZ�|�#�N��o��=|c�c���c�1���c��c��*���UUd*��I*��UU}��6�m��*��I*���UU���"� �<q��/��9��7ky���������<���S�fm�i����8���wos���K,�
m{��G���]���{�����������������c�������wg9<��0�o#Q���
�����_�����lv��=z��+�1�1��1�c��&4�1�X�n�����k$����UUd*��$���d�U��I*����6�m���>�����(�t
R����/�w��0$�`nv�9g2�Z9�0���w���m���rX�k�/>�h���y0]�f���z��v��!|�[:d�mY���N������S��So�k�}����_.v_8�Q�d�[��gUK��.�6Y7[���B0����y�|b�/�s��]����9�H��N(w����0�?{(��������HJW%5�Dc:V?x������/����1������w��>��f�y���b���w�.A�$�M��w��?>N���r'��aoK<��pe{�+�G!�^�n�K�#@��"�8�K���\�,�|���`�mT�_y��o�s!�[�z�|�����������s(]����������o;���3�uY1�U���]N���g�tEE3o�g6.���J�����q�L�::)a�\�W
n���j��Kw���{����i� �.]\q��Yz`��9�a�:�"G�_Q+YMu�{��1_i:�Hv������g�r�h0������f����&����l�{;^�C�GGvP�'�k�7���e��b}:�xkrm��%cb��f���+���#�j�!}��x����1D��� �\�G
�V���\��*pG�����&KN�V�%�%&��rK���HR
W_>�{{Ero��7��.�5��a��������=3���ds�������]��v���5�Sq������F\��r]�09�/�VO!6Z�u���[6����;����L�����]q2���c���G���d
`>�{m�hx!i�J}�����K���pq	��U�`�,�;tJ�LQ��A�f��q�2��m��r�n���5�����Q��X��G�[��I�4V#+�f�/���uM��6Q��./������fef�{�{���+����%��4Z���S����"��SdU�:���V�F���G-�1��h��[���&dC�����<"����R|��!�}��r��O������B���$@��S�{�|���/s����r7��us��7b#�������$$$�C��N ���p�N"I�$�'"d�$���zY���5�O{���{9Y��[9���z�fE�������z�������g;;�X����j�T��3������d��mwH�*�W�{%��yx�G.�c��fmmI�wj�h�)�|�v���V�����l=��-���=�9�9��:Bf����0��g2o.����;��E|.5�G7h�zD�"�Z@�Y��+���z�  G1YO�M�!�C����N�J�����&X����^�������z���iJ%OJy*�5���J��Nba�9��I�6�K����&���]�]�d��(�n��3�WP�Vg��lU���D}�w{��~�8�%�|��?-���u�79T�������#���jx�X}k��O
|$�`�I�i�G�n�����
.����d'�[��y]��}�s���y��9\�v��Ns�W�s���C���y�:��w7���/�:����e;�g��**L�����j�]n)hd���������**!�w�E��I����B<�l�y�*������4��6���u���nW�b��X�{&�Pq����*��QMPvc���!~���sOO'��=:�rk��*���"�;�M�n��3���^��;v���wh�_����'vcL{�+6��X�yI�k�`��|�<�����~�n0��eal+�oE�����Q��.�����J�Y�����^�6df��^�F�|'whEM����&d��aW�
+`2$y}�3X�<�Q�]u=��j�����V8�X=A����v,��C%��dT-���Z�� ��7�dzX����&�a��k���{%�<P~
r������g�
�x��q�UomJ����C���4g�]N}}�tX#v��f\�a��0�H�v�L�)���Wb����V�1��o|n�����5��E�r���H�*r�����c�>u�V����������?V/=�������@��'�2��:s~�z����vxk]8/;�7ux�Fh37�����V��{	�����Y�v��'�0^�wS�m�����f�kR1���9B�vy��������z����#��������+����������7���h��I�VW�qds<g��Lswz=
�]�����rt/��rP��uY�e�2&�z���u\�S���8k��b��zp���]l�c]�w�������~��������l�C�����w������h�j��8��q�T��uQ�j���U6�w�^�CT0�����3uZU��h
V���*������������~?=�[`��F
�`�F
��x*���*��������+����]n��������n
�[���^��cU�����
�������+��U�P[k�]��u6
�u���������������~�/^�x*�^
����z��Wu��z�w���j�u��wuwm������^��A�����l���^
�FmTV�q��9��������_�����ATATAT�Cc��������PQ�wU5P�U5S��@��d��BM�nI	��|�_/������z�+�1�1��1�c��&4�1�X�o�I*���UV$�UVB��Ssrr�k!UUbIUU`���U_R>���b#���G?���?�������9��D���"�*���nW���'NMc>��5����Iuy��-��daX�y1b;�����7jvwPs�5����rk���{���&��z����;�
k��+��O���c��z��+�1�1��1�c��&4�1�X�o�$���$�����������I��mQ%UVq7!��UUUT�UU~v	'� ���3�s������v�������
�R7@{�c��M���!���� _D�3�J��[y����wbp��l9���L���gw}��r*�7���^�+�G)f���5�]�<����l}}z���V1�clc�1�c��&Li�c���UT�UU��I��m�l���mREUV�D�*���	:WN�BUUT�UU�RH����������}WO�_*�{w��3�|��j�������up�j+:���tRgb���NVsHCnu�~|yv
��o������M[������7�y��x��J]��7pVx�WN����nDOc�u��.����SDG���������>>1��1�m�p�1�c�d��1�c�1�����*��������UUD���M�m��d�hm��TEUW_dH}�
{u�8�]�x��/Y;���|.`�v���y.I�f�N�u����<�t�$�1g+���it��A�a��w-[p�P���i�)�l3x��={F&���v��sy��{�7��}y����C�����~>�||c�c���c�1���c��c������J��$J���M��j�*��UU
����m��Y����@�$=��}X���wOrW�v>���(���;tw}���E�3�2s��Wbx�s6�����o�T�s�>]4����������+^F�a5�}z`�f��y����W*��6�<}��>�|�>���}����}�|c�c���c�1���c��c��*��J���*��EUU�%UU"���R%W*�$���������">��������.2�����d�*���V��vgQ6�N863_n��
�7i��T��7f�����L��p��&I�w��PB���{	l@u�M�#�/Jc8��s�\������&p[�$���x�}c��1X�1����1�cL�1�1�z�;|I%UW��6�m�EUV��iU�%iUaUUQ*��%UU�*���>�����&��_�MK����i{������+�9���.�"9���[�;�w���)v+����:w`�:a���8"���z��!��ZfL�5=Pn6��SZ&����Y�GwG7">����g������������b��cc1�c�<�2cLc��v�J��������m��$���$���UUTIUURJ���UU�z��
�33��Cf��o���^O��������9�o\�W	+	����4���0�O0R�Gs�]g{)�w6r|���#H����v�:�K���vB5a���?1��o��=|c�c���c�1���c��c�	*�U�*����m�������������UV����UZ�MnH�����|���z��u����Z\#	�F�U���`Gfp��5a���I7�a��Bg*�;}YT��T�����5��Hi��z��O��t������1X�1����1�cL�1�1�z�;|%UUEUU%UU�UUI*���UUjY$�*����Ug��}�:���������J������`��������:K�VV5�j���jK�D��=���9_w�Lu��<����U1��&t�76+���<�.I*�v��%��'5�r�* F*�3�#��y{��ER������Q{�Zn������Z(r��������}��\s������E�0}������������Q�un9�W�|C\
�rU� ���-i����	���n*�G\m#r��+��X�Q��B'j��6�N6�7���C��rS�����s�^��l��S�9O8`�[I��e��U%���DF��{�fZ��&<�T��:�A����E�q����l�:�W��]��-��.��y�kI]��7�n���n�f�G���nL��c�rU���-������u������l���YNK�0�z�W������y������3����;Yb\�����+�A�ac����.����������=��|��u�g����b��(ir_u����*V��G��(�d�	��N�4M}*C��]��	�g)N�J�<��{1z|x��L=��d����aG��$m`����V�qn���:���E�38P=��_I^��@�/�������A��t{�`+�����6��ws���!��-e��xX���Y�������
,:M�#��i�����*�.(���`(.������$���������B9,���{|��n�n^��s���T{�d=�E����;��w<����S�����Z�o�g�f��>��C7A��������m��}�y���6�����r��U{�2{<�\L���FW��^���A�M<9�u;F@&2�>��Y2�����o��s�]c2��w�o*���`�����qU����dW9��2;�V��2�Q4;}2�#����n�S��w�.4��f�P;�*��N@}t�/Vi��\��jz����x��T���V���_y��^^|��fw���;�B�N����������X�y_7�7f���ww�����TlR9�sU-^�����[j��s�*����U}��U_|��d�t�~N	'd8I#���r>��D}�����{��Vg#���v��'�4�{"�	I�����bDc�����o�����8o,�.�8T<�8�N6���O6���[�^�`�����s�����L�t�R����2;}��.^����cL@F���8����u:��;6`���>�"nd��Hy�J��o�e�5����a�%l�w|i�`����_�T��ko~��8	��/������5�Cg���rk;J�w	H��\�N�����dMB�>��gg�������7X��7�o���x�Y��3q$:z&2�[���>�y.�6r�J�:aS@9p�1���M�2x�tbmw]�����i�K�����5h���3��n_���>��KX7��]��E5"���w�8�rP����������-�z�8t�K���9_d�~������]�)��%�D���Q��r��^{[����1Uq���os��W=�Z�]�t���r�$��Z$QiSBv���[\���pr<41�{F������y�������/����Wn/�3��~e����-\������7��e"O��n���ga����zz(��L�V��8gM(��P�����*U������
g(�WyS=��z��5��G9~�we{��g.����x���J4��AX����w�������p�efE�C�[>w��7k
�����y`�^]3zF�N�#��U�].^X�����gOb�R�M������t�����]d�{�`��`���}�WXO��8&u��qf{��Q�����T��/v�_�>����w i�y|����],��&}f!�{-�[T�����U8�����{D�����{R<[��gOI��*q^	b�����l���;�S�~�8���v���=?c%����he�w�:����n���{"�������:������~K;���o�]��L�U{�w�P�`^5�{�*��y5c:��39|2a�y���O��Y>���W����2G���p�Y=�3������Z����[k��\X�@p�����u�c�Gp�X����Z�h�\����
��]���^��t���G������7K����b�el�*�����UW�?U���v.�~X��;�����=���`�}�����&��H2;��Z��E<a��r+�:��uf��r�^j/;������N	������DD������~����_�y���������������Tj��8��q�T��=Tp��3s�G
������hc����5Zfn�@j��h
V���*������������~?=�[`��F
�`�F
��x*���*�{��*����^����]n
�X:������+����]n
������x��Wu��]kpWS`�F
�
�����^
�l�z�~~w����z���������������������^
��x/^���z��]n������{�l�^��^��C
]���w^���uP[i��9��}���~����
��ATATATA�T6:�m�n�UU�uP�U5P�U<��TT0�$$�&���l�����~���������{�+��cc�1�1�Y�&4�1�X�o�UUb���UW{H�m��%UUI*���UU}����k$����G�I���s����/�0��W7d&���3fU�6	������|3nwg;]n��]�N��Uee-�c�e�*�-g
�{���Ki���]]�Rg���74������}�������z����z�1�1�cc��2cLc��v�
��$�UUUVU[�F�m�%UUU[��N���N�(����A��'��z��7��K��|�k��]�{���E�vu<���H��c2���B���2�/��U�nqK�<���8���iY�����N�}\���
�#g�lw!k���b]k�I���������_�=|z�^�c��1���b��1�1�z�;|*��IUUaUUQ*��*�����m$�m��EUU�J�����}��~�D}�V�c������_n����;���h��w���V\3�n�bc6���eG�����-�b�wS3p��R�R������f�\Sr��Z�
��&��C�.�*�y
��N�{��b"/�������~�������������1�m�cd��1�c�1��*���m��UV8�IUUaUUIUUQUUD���UUn$�O�I�O����`������U�r+���1��p8nvN�3_Ajsn*����}�M�o,���1i�x��2$P�<�6&X3���>�6�W�`���edG�����l���"���o������������U��1���c��,��c��c���UV*�����������UUf�6�m�%UUIUU�Bd�>y�?�_�	�3p��p�?�[��>;����KHd
�;N�.KL��=3N����L���beK��B���;�����"r8")�V�4��W�������}k\q$�N��������^���cc�1�1�Y�&4�1�X�o�UUJ��"����UVD���EUUI*��*��UU��H}�D����\�q����_y���RH��NM��}���d���gc�>�����ZI�%��N��4<(�2���%��d�R��&�5���f�x�E�S���M�������������^���cc�1�1�Y�&4�1�X�o�UU�D�m��%UUH���%UW��m��T�UT�U_v�m��nAdH���������[�~�w:��l�ml�:��������~�%=����4���
�d��mC�ese�9�j���������N�z.�x�
�2`����8vj�i]D�{9��=�n���:���N����o��||z�^�c��1���b��1�1�z�;|I*���UUXUUQUUQUUQUUaUU���m��*���C��u�=���/?��ybc�.��@P��w���&^	��cy���wLb��h�����`Y8,9�9�e����f���#��^�sYs��91H����n���z�o-|�ri�~�;h��v�6x���so�]�#�O�����������������1�m�cd��1�c�1��*�����*��UUT���UUEUUUU���$�}�
{���c�y^�G>�vb\]v�gi��ns7�f�3uWR=�U��93�v�h��=�l�mxqv�^w]j[t����!\�0�r���Z��;�i������n#��V�k���ND}�~��?X�����z�1�1�cc��2cLc��v���U��*��J���UU*�����m�IUU��6�m�U^O~nx���"�������_�F�c6-ok��ysQ�����|�>����2�AfdNs��\k������Fr�U��F�k@1^
�W�w�+����#ro�Ti��\�y�y/�������
�X��!508��,R��Y�������}���2!;8�$ad��r��������ue`:Kt���Ph��5��o�����^�5��k}�\���+�����Y:ZCL�P������d��Y����S��g�#��)���k����c����n����M��vNX�]F�;.d�N��t�G�v�o7�x{�W^B^�R���!���]�0^k�����g�����x6B�~~���D����t\�����m$�3�4j��n�znW�Of�&�Z��K�g�
�.��P�d������6q]d�
��'}���9�u�^�&h�*������/v�����a�q�
�*��l���
���=�t��r��.
H9�:@"�}��(|Ld����n�n��i�����a{g`'�b8�	�W�#]Y���G����05.���6<xcw�������.��.����f��eR�M��+.Ev����1�9z��w�(T����P�:�Z��ZHgy67X��6u{��z�e�����$��81_+��uz�e�/t~�o<�.�X���w��5#|g��<!0�N�>�~���w:F��?�<��l���i@7��hy���}�����I���?�,C#K�m"r���*{��#�;�c��&�c�9��A���C���.m]����a�;Y:]����pkI�.�Q~,_"��������|��;�e�u���68s���B�J�������e�Fw]�r�7����J��:V/�����v�;�v������+\����O2k�DEm�yB���.����q	�,�����^vrW�'���K~vOl
�Pf��C}���m��6LO��oV���F�br���n����u��J�[�P�c����B����
��;��D�<��E�����uR�f�NT���{��z�������`#�b`�n����s�M���1��[�+ UP�H5$�����OBp��*R�}u�ZV�M��UW�����?.�v/N��yB�w���2��V��ga��8���7�EOzWf�`�q��O��A-��k'�W9�k:�����)bQc���������.���{���~^�7������U�k�}����R7.l[�\D4����f��$�]��|����.o/����)���X��z��Lt�����S.{��k�j�Y��f�h�Xr�T���\+)��5o�>��������F��yWZ��<Qat����"�d�
�F�=���qc}�nf��W5����J�g}�����<�/t���!A`�\�������F�f��j�����8��Cp����H�������g=���X[��-�-uy��9�����2��n��J4FQ�����7
��{ ������{v�������f�"tj�p��>����K�{��D�^���Nl���������������64�B�If��^y�@�j5�p��Y�f�z�9�I�;=�dQ��C�gt�d�x�����x	���z��l�7v�L�Cp���N�ef�]�S�?7���.(=�|��
�
d�S��r�}�7GI`Z���cB�����C��2&��Uuw�u[u�|����u�Kt�w>��em�Px�=$S;yf���4(�U�x����W=��t�,�X3���7/_va8��%Q�,n�@�E:F��{zc�!(�����y��~�Eo5��������{��������Z�����\��~9��g��5���w����Z��]��E��Tg���o���V��5,F�5s�� :_����2������5�3�}c}���6g���/+�k�<�*��o��Pzy���1zY��oM����y���}}d��H����<{��;�
"����.�T�)M�l +��k��mAWaX����HND32���e��q���q�O��y��
D<��qo��w�8���hJ�m��n�55���>������H��{�gX����=�[=����X|�R�;2�l�4q�����q9{����U�}L���,I~x��y�o&;|W�������T�Ts�2yZ�u�""#��b#����fW{��ro����=-_�O&��v��0�i�uvf�����7+V�"��p�&d�s�*�8�j@b;��5�IL��=���Z�U'nk�Z5�|����IW���t�������l]v�7���}��������~�����6{=������s?���o�w���mz�����6�O<��hc��7=Tp����8���:�a���U�U�5[N
��i�V�h�����~����������UU�Z0U�w^�h�V�@=��?�h�z���]kp^��u�]kpWZ��z�WZ�m�u�F��`���������F
�
�����^
�l�z�~~w�o~=��V�?{�w��������������^
��x/^���z��]n������{���������P�Wu6m]��u��TV�NuQ���~����5~o�~~PUPUPUPwU
��g�s7m��*����a���a��x���l�rHI�M�! �5�o�������}��^�W�X�6�1�clc�&Li�c���$������m�{m���UVIUUEUU�J��$�UVUY;�!�H}��s��G��������������N<���l��v�o����$�M7���sK��n!v�r����Wy'r�������#�����x��N<�%�pGU3noGwck�{��������}c���������1�m�cd��1�c�1��IUU\N$�UV%UU�UUX�UV%UUIUU�IU��UU�>��">����{���������Q�o���*2�&���t2������c{u��*�@�����q��-�.�9����n_����v�� �f;M���(���b	�4s��J���[�d�}~��<~>�=|z�^�c��1���b��1�1�z�;|IUURUUT�UU%UU����UUIUUd�������$�?��������B��F����V���5���nvN�;ab��7u=Hb�7aRW�"[�^#��
�C���/����
��v�-����������������^���cc�1�1�Y�&4�1�X�o����.\�r�������r���.\�r���.\�r������A��s�<��?:�-��6�u#�rv	g���2�r��y�����6���V-2
\I���#^*�0���u[�^��b8�%Gp����]�Y6��dj�6m��_?���������>=z�^��m�c���1fL���=c�r���.\�r���Uq9r��.\�r���.\�r����������D}���^�Gb���~�wnw�����5�G;DB�{pEr4�����so@e�H�������}��c]������;q���
��sFw%��ro�����Z���j��*��������^���cc�1�1�Y�&4�1�X�n���UW.\�r����iU��.]EUW.\�r����}eW�}��O�,e���V�!Rt�~j/�tI�!G�����T��{T��ow9�gY��=0mx�^t`X���@k#��0t����w���RV�X�[�z��z���]n_74�]�:~>���^���cc�1�1�Y�&4�1�X�n\�r���.�UW�U\�r�����n\�r�UU��.[��#�����"��������*�J_�����>�u�$T�85�8�{�v8�t�-!�*k��,�(��p���F6���NZ1�j��7�\
++�kc��s�8��v�����z���z��clc�6�1�2d���1���UU��.[UUr���uU\�r��UW���\�r����{��e���?�7����Y6��3l��f�e
;jo�}\�'F���4H}G#�N�r�����J����M���2������(_����F��w�����
��E�W|�.����w���W�o�����^���cc�1�1�Y�&4�1�X�n\�r������.\�r���.\�r���2r���.\�nO�C������~�����N����7�m<@���5d����2�tW�'j�wY����o�R%�b���}����sx��:���a���������������nvq��{�\��������n�{p�_��X����z��clc�6�1���1�1�z�;r���.\�r���.\�n���.\�r��U]IUU�����9���Z�]��7j���{����������u����r�o�����;W�~m�����~K�������F�/������]������x�&�N�<���R>w=��I�|���H�?�	��G����'�9�r��j����m��&���I?�8��?��G�8�\��lm��2I9�$���HB���D���W��i�O���K�<�?y�|�p��������:���I?�8�b?�V���������o�$�A'��)�$�)��q��Z������k[Z���m���h�B��p�N�p���O�F��!=q$�����R6HB����?�,����r��v��'����� |�	$�8q����$�	C#���h��5��$!	���t�!8�A	��?���9U�$�+��O��p����>��E$!	�O�;i�n��9��I>���b!M>��M8��G��H!?�$������I��O���W�?��O�������|����4�~�4��Bm�!J�jl���?i#������?�'�i���?!?���|��B'���?��:|H��$m�p����9������?����}��+�?���z����m���V���������$}p���j?SQ�1�"O��I57B�#� B���qT��I�q8����I�O����B�9��r�;sS�B���?�l�,I���I��WD~G����������O���v�5��Nr�9�?�HBO�p��I'��%��F�	���q$��I�rO���B���H�����'2F���}�?�'������5�'����M�A�����C�%W���W��dL���}x�.�q���3{��>��	�?��.�F�p8i?w\�HB�!'.$�?v��:���?�i!N\p�?����i���I�����?H��>�r�w��G��;~��6���O�;I4�%W��$�D��?��q�s�{���$�D�!?�m�g�������D�����!?O�~?�&�?�~���<���������6���H����$����/�~�9��_�#��?���(+$�k)�<��TO�?�
]�����������=����/�P�$�BU(*TTER�	*�
T�
�"��R�!D�(�!B�(R��R��DT�)
U*���(�!(�PJ�)���IT� �UB�x��7�J�UR�P�* D���IUT�)JAI$PU�)UR(P��%IQQB

RH!)EH�T����URIT�$H����A U @"�U@�VF	$$�T����)R�J(�_PW�l1��$"���m�U�J�T�J��J�Q
H*S|:�'0-�4����X
���)E)HEP�{�RE
�P��$����b`����`�������*�RU��uJU	"J���0;��������0,`YXK�����EAJRU�D���AEPJp �A!A\X&`��*�PQ
)J�wTRQ
�QJ�$�7M0F���N�A��%R")*��R����@
6�\`�0BA.�#`�0Z0�J�R@�I*[��T���$�JT�w��8! �� ����4�**���H�#{:D
!T�@��j`�!����n�!A�P
�H��F��Q*P�"����A!D&��3���
(P���UUS��O�O��UM5@4�@4h4����L�UJ������R�%Q��444
���I*4OT���$�L�S54�I����U4�Jg����4h��L��P�6M&#4F#jz���������G.Y~GpO��H���������������������Z�����q�I�8$�N�����8q�	?��������s����~y�^�-�~l�o���V��U[m~u�m��������Uk�?VW����_���?g
��?U[��i�$����������4�I��'p�!9�!	��O��5�V����|�������
������t��vT���,I�K3x��H���fffd�BC3332�������������1��$�2�Q��.�&La!�	��	!2f��R����� `12DH�2$�HBd"^8`��&e32��	������`&d$���f	!&d$$�BB@�1$A$3� ��$Dd�v ��I�D�� �`�1�1!H���"rd�L�$���t���I� B����F���d��%!�HLA!$A$����)1"�fS3)L����d�&d$���$�$@DA�$I$�D��fBH2b@@$I!$!$�	 $��7wQ�@0A�q$d!��d��0�d��L�wv�����3D���%!�2DD�C$Dd3)��!/	q2B	2I�!!$����D� ��LDA!2A�D`"$Db@x:aL4
1F1�(��II��DA �	)$�		�HI���	bMY
	AA������!�%&� �$�I$D�DA�D����i,w] ��$A	����3	DcI��DA@wt����"""���A��
#	AA��&I2I9�dD�II�&H1�$�I2fD&HB@@A"0RPPQDQ�
d�����$�H&�b(��(�E�A�`��0I$��H�HB�9t�L��cEQ$322`��H&bH����d�CIP
C!��@�#�BD�� @Bd!)��I�� @A�I2d�I�&B(1�fS2$��� �3$��FHH���H�E�L���FJ!��I�������"$�a0b�)"0�$�J�a��L	)�$��%&$&H	��=;DI�!�F0c�(	(L�G]�IB�&a	3 $$&H$�L�BG���d�G7 �Q��		$D1&��t�Jf!fH���H�$2�A	��!%$`�fd�			 �&$�P�b�FdS�H�C3	��I	2R@A�&LBd�c.�� �B�o�^BH���H������$�� ��"�D�$���$�0�2d�!2��2$��D&#$2C �"L�$�R%E3�p"JdH�H��L�e)�S($$ `$D� If$�	$��b#�`$��I!��$"BBf@�I��H	L�D$�I!�3#De)�$d �$a	&bd&a2����@C&H@a)	 "a3) 1�E1�(�X�BI/��&d�$�"I�0�0�D�`A2���RD�0A�FBx�$"Ld���
@&S�&� H$��$A�I$D�Bi���BBHDRC	�"�Ph��(1�R!`CI�H�A!�d��QA���"1�c@� �&P&�E$�2D�i�a.��H�	��( HD�d��(J)4��H�����g8����I�"z�__������/�HH�2��I,����	4�%%$A�@Da0�2	�2b��Bd���d2F
C,��Ld��HQ&�"#B�0!2Re0F1K�t�
�I�"�"H�	$HR�!���L�IHDI�A�A�ARbHH�L��!�IJBdH	�Ba��)�d�!)"	2`�1�]n�SL��$��D�2E%%L��
D��4L�%)$�0b���%$���BiL�H���@�H��� $�H��$���$�I@d�� �BLc;�&"
dbA"h�	�&"�a�	)��	�HRD$Db
#�����#�$a�,&�X��2A&bI�"�A���A�#(��cF1F4c[& )"A@�@L�	��&S2$��� �hB"A �HB�"�HI�Hd��4c4QE�m$��L���A!��1#d��""wn�"A$�4I��C ���2�2d�!$�01���a�f�@FC) �R�!HRL�0I�"2�& H�F��HL0������$�Fd"LH��fRIHS)��b$��fe0�)���BfA�&3(B��B``L0�$�L�2@�D%D"H���(���I2`�r�����L��L�ABd��2Bd!$�1!�RD�� �!"S#��1��1�#�D2�)#H�PX1DFD`�IDADAA�I��I��"2I$����PI���$�0�"HL��&#&RI�) 0%d��PQ�lP��)2(BH���I�&�c� �1�
L��A	��1&�M&J	4a(�ID��f�S
e!���`�$�@����$�2)Ab$RI� %0�$3!$��	2$�`�f!$ �0��L�J�':�)$�I��#$$C3+�(�����
�ke3(I�'w �I~�w$��\HH�"b�1&�
�4a��� �"R���2I��	�`�!F`@(0$3$&d��!)�	I��HA	I�d�1�1�� H��Ji���I%12
Ha!$�B�H`H$A���0�D��� �	B!S$	��& �!$3H"�	%�H$$HI��4�9��E2L$d�(1���a�DL!���#$�%!3���fBHFC B��I���	��3	�LH�� ��$����@`2AIb4Q�HJ,QE�b(��Q4cF1F$������d��MD�$��2P( ��$&J$��I�&J$4$�I�L"Ffb�$�)I!��RC0B�1"DQ��a����H1���$�4 PP�$�$�I@�)(���!A#DP`�c%"&SB2H$� DI�"e��I	 �b4��Lh�FM"��b�/����LDI����,j
�h�Z�DB��a&K��f(�@�$L��I`��$H JL	IA�2h2F0F1&�h���F�F �HD���L��0�D�DHe1���(�I	��T�l�*Mi(0ZJ�d�
�d�&��h���VB$�*4X������c�m,E1�6(4d��M%��J@Q�,(�%Dh���,AIRh�& �$��2BdM���f1$$Q	��	�A%(���,�4�B �!,d�	d�bQH�2FH��B	DB$a2���Lb�Q$�Q$&Lh��S��d����D��I�"!�2I
aH�d�d.��!H�H���$��a0Db
&��$F���4�MDi2d�L#A���L`"&RFB�2
�1�#Q��b"A	�C3(�E$P� $�f�1��������	$6-�F1����lm�FBA(�I�0�F����D����E�M�K&��b��&#$bE$D"H!0$H�2�$�JYJ e�����cBd2F�F34X4o����@��	$$HH�D$�[��$& �� �2�D6��I�I	2���0F�eh���[�lBfL��Z*5&�F+�,d,h**d��5��j��E�h�AEb�P����X����Eh�j6�b�D�&
ITE�&���a"�m�AZ5���lZ5�$�Z�X��#F���bHJ,V�4j���� �	��������	!2Dd���5��F�d����Z5Q��fL�j�m�Hd�%�`� mX"�"C`d�2JC0�!$$�)���~{���?���8�������~?�����r����!Or8O�^?a�O\�t??����s��?�_7��;�������c&��\����UL������TQ���\�r-���-�"��3W(�,m�AF��+�^71b�j�\�W5��j5�Q�"��RZ�F�b�����X��\�j����-�lX�+I�F������h�j���j-\��\��6����Z"����j5�V,Tm��1��V+���c[�������]�sk��Q��X��F�5E�������t�5�nZ��5sQ��X�j5V4m��m�5�����T[x��r��(�sW5��j�F���E��b��Q��j�sY-Ec��v��j5����b��Q��E�E����X�TZ"���cX�KW5r�slT[�������5�(���[�[�ch�-���j������QEF��b��j*1X�F��m�F�j��W5����5F�Q��X��Tk6-��Q����I���nkwv�lj5���Qh��-�5TF���F��b��*�k���5�h����j5�F�Q��h��h�m�F�Q�-���[%\�������������1Tj,VKch�����j5r���Z(�*��5�Q������,V�j6�EDj�r+s��-sQ�5kF6+�����h�j,b�Z5�\��ms���X�X�x��F����k*���55�F��Pj�F��1lW6�����j5�(�m���*�ElTTk5�����++6�W**�F��*��%EQb��j1X����sF�l[sW5j-�X�1Tj5�F��%�*��Q��j5�-�6�F������U���RU�nj5��Q����b-�cQ��j5wv��mr�*-�nk�EEcQb�b���j5-�&��Q���\���p��r�5�F�Q�F����TZ+�F�v�F�1���Z��j5�D[�k���Q��Q�l[�F�Q��F����`�����*����Er����nllm�F�Q������Q�j5�]����j��sU�F��6-��j5QAj5x��]�jJ�h�jM�Q���k&����\��Q�����F��1�F�Qj5�DV-*�F5��Q�����j��sW5�Q��j5�F�EcQ��j5�\��EF���j��msQ��j5j���Q��j5Q��F�m�\�j5sW5�\��F�Q��j5��**���F�j��Q�����6���j5�F�Q��j5�F�Q��j"����j5�KcX��QlmsW5�\��F����F�Q��j5�Dm���F�W5sQ���\��5sW5�F�Q�E�Q��j5�F�Q���h�j��j5������Tj5�F�Q��j5��F�Q�����j��Qlj��j5�F�Q����Q��j5�F�Q��E�W�o������g��'��m�;�[�����\9�O�m��O���B���_������,�����
�g���?���5������u]k�y5����J�A;���bwf�!�Z$�$Xm��������]B:'!nhk�����S�����-R�zV�bm,<Vt7}*��W�����u�����b;����f�B�b{J�pRW��e��qP�����%$�kz��]�q�n��X�:��$�aa���[��H�ov-%|7�w1�!�����[��� "8;�������U���.1��0l�v���C5���f����&J���nsO;s2][�����Ik����L����j]�����=-���h�a��qWh��������r�7�fh&9�����m�s�&����[�l��F�s����*���H3wW�ir��jT��Wr��_w��@���4<��3�����������<����f�7�����8�V�����a]���i����I{5p�G*1��$���M#���K9R�����Ag8��KK������S���W��eeK�Q�Gv����V"���O�h��w���������H������	�u��|{��8�$�Q����)�����������8Y�B���\�YV:e�P�Z&�Zo������n�����5YF��I�.����3��'�RM��E,��������*�u�z��/ff���2^X��U��@;)�����r���z�#�� ��-����1&�t�scL�-��T��F��ei����rx9��u���0
��PLe���z��A'��P���`"��^�Y�[�������w����XQ�<��r�.W:\�o|F�W8�������|������t������uh6�-a�Y4�t��232���t���N����]��]:����.����jM�(dq��7��]�`M�����z��Gw5������h$���4��3������g�����&�m��}$����	�[6�W1�������gm�BU�<#���J��R/����w��S�8�cv��;�A�|���ux����8V*-9�0�����.L����;��R0Z�V
�I���QV�%8���YDnQ�R��F�u�Sa�*T����#A��I.�oCr�%�_t���oX������W�4`��
�����VU�
��V$f!n1�^7��7����r���I�Ic
��.�x���)�u�*TK<�|���DZ�2��������u�:���co^0�!������;qvY��	���+{Q�v��p�3sqJ��*�)9m���e
v��i�h�]L������n�]\���u=T�9O���&g5:9����H���
:wsKM��&w���+���4����<������}��������=�%5��+35e�)���S�j�������i�+����9���.��Eb;�B@�j
�$/�+�0������n f������u�G�fWN��;3X��sC�uV������;l9u�Fi�t���W�i��T%<���EM���Vm-���BCz�8���iE���PvT��1���)����n��n�����
0[D�0�D����!�k��h�w1*u�$�rC�����[u7�h8LhRx��y�;�:�Wt�)��O��������{�^��w7$�Vfo9����q�K�^V�3oj�e#���]�s{Y��nc��KV�Z�U�Gh�f�86�9���q��������\��v���9�6���I���>R%��{���h��!�V�;&i�s��(�Z��l�m��)t����O,���	72�Z��������������v�ic{�:���1��k��G�E��"����/qVL���bI�|f��8�Yu�W�N��Q��g&�4�)wkF-�1����8�<4�i���c�<��.��m��e�6����5��������F����0w�\�x�#]u�y��hYX�����*R��v�g��y�T�
��T{M8{�c-�c''��� ���o�C'�)�������sh[�Ev�������+E��&����_X�A�U��9�E��������:�Y2���c�0��2f�����%�y#����%��x%��)_RX������h�Z��YX����Gw�v���Dh�@�v2�s����%u*�M6�����*nEsAUt��zs�^��`��Y[�k�X���x����c���u���9]�x���|i����K7��X�W�5�"�swI�]^��$���0��1��H��1��l�(K�����)[V�������K����'Q�@�8/?w�iC��:C�$�~��Eq��k�f\�zEq'j_8�*�9p"�^f�Khi�;��CeD�����x����c��h������d����\�������md����5���[\�gV�w��p�����O��� G-����GP��� �S���knG��"�0�
��z�T�3D)���V�|w�i���{/�J����nt��pS����o\��..�,T{-�����5�S���j�c���1�,������'�D��a�+�x�$���L7Ps9�tn9��ko�����d�����D��N��nm-����+mX�<[wC�FcgIkl=������xk/�%\��.
�����|f�D.<��a��Ef����tU���D"h*�*�PIl�"��P�w�1B�$��*���,Vv�G����qP����o��-X����EYD.�m�*<��n&G	���4����3Ui����
����/�=*�* �qbC��yY�Pu�/��b#�EN�v�����Y7B�l����m��[=Q��|Vi���������v]E<��n��7�Peuv����]�Yq��n���`�����������9PC.^��������N��:����)�3�n��n���1�l���j�Oz;���������-l�,������=9�����]��9$�����;����E��l���J���S�8�KIK��l�=,�C�v�V=�n��i����j_>�|c������J���J�K���EP���d�����[qeY��n��S)�Zc����WS&U������j]a]V��ukN\���E��';VU���Z[z���|R��%3D��"�����{�x��N�I]��Q�����M��=,:��^����e��p[O��a�W��
�#���r���E��k\�������A}O)�wq��TQ���72���#��bup@.���\N-� �i�B�b�8-u;���5=u{�3�H�j$��)���)�!s	�q(��I_+�We�8D�b��In����oy`i1!k���i�����+�&Zr�������������C|�����������C�����#��*l\7U#�ow8��9�����R���:���T���
foV�a4h��N��������x��2��`U����L6y������9rd��s���xL�PZ��n��,�s7�=��*�B�u'�s^��������<���YS�#���b����]*��.���I'�*�����
s+�3)�%u���Y�n
`�.:���}/:��t�����%/2�_1��F���5�<�}�iG�6�t�y�{]J�jRi��=�q�E����GC��D���f�h�V����P�2��%�I)�:�
.S������S�9�P�m����A��Gx���\��>aZv�C�S��NH;2\��k_nK{�Uc�H����eJ�������x2^g�ly\w;+���v�q;�s�*���h�4��M/�%�Gp�a��;P���:n>������a��;r��r�"�2*�[j�R�f�H �U�`�x���n^
���5h�������]����QO�tn��w%\�*1�j
d�0^I�v��,b���]�{5ZP�5v��}��o.����v�2�f��2�o7���]��X�W�4���<V�I��!�*0��jL��!+I;]%#{o�����^t�q�+�p�Y������;1��*���}���S�O(�^s���uR|�K�7�!�',|���v�V:��t���{!�Z�o�2��u��Mvw5�&��.p9���v������u���7���qn���q�4�c}]=�g�n3$�n�X��1�8�G�N)���k]�B���RQ�r�*e��l6�@6�+n�t�����*�cr&�s�r��T�2�v��}%3������Z	2����h-.vuO�T4�K�vD�L��+gE�i��;\�h4��&�{���z��m��-C�g�O)���Q�2�M��1�Ud�evh�kX<p���d��H�+�5�$�f^�����1������J�-�,�i�X��#X��9+0-;X��8��kj	`��gy'8h�����W,�Z����T���e�^8����C&6��}�c\&"�;
��/;�h����-5����[4�v���������]�����m�m�{1V����d���S}tf���G2��pl�:4r���������moe�������M�w����[����T+x�9��.	8�y�E��cw���)15$
������
XR�e'�����s��1h��3h��u��u
@�T�j�v�� �I�Yr�,�V-����@�Xh�FLT�a�<F�Q�%r]�2�bv��������<Eb������������x��7u�G������V�}b�.��p���5����0X���/��W`�����	��J�Ez�ou�������-�C'
�M��V�|����
#,�9�<0V��C��s�{6-�p�f����E�kmU��{���#"&;��F�o]�q�=5m�C�[��n�5�������_�������q�lT���0��pv���mm����Z���jv�*	eD@�b=�Cg>�,'�[�������z� ,�>�j��AF./js|u��/X�M�zU=�� ����s��iMgt#����-����������0���o�|�r��y�l���C�(SY5L����x�\�0�����\�����f�2i*j��}h�(#T�;P�F
�����pae�v��#�t�sx�I����I-�x[���bt�����f�e<ATY���S/�%��7��^<o�^��Y=OwW��^��X�:v
F���X����o�S�J������F���U�-=���^un�VkN:�h��w�
��b�)�R�M��^o@���WKe����n�1��ti��`������N������(��p����/o����v@i����U:�),4��r_=}�I\-��0��� �����;���+��lb/,����y��	�vk�C������o��'4�7z�"a��sG]���->rR@��e���Y�����s���U�1�z� M�(
�+8CJ���#�aQ�R�iE;��:�qv�f6D���V+�)$%���������f�h�g���
��.*��e.J�������")T�/�#�������t	���gv��D��%�AM���*F�8�{���B�
����o�.l���:G����N� {h^W��IXD�Tz�,cd����_T�]�F
%O���]n��[|�Oj�Ob�c� ���IV�1^8��
�BS&��`8�h�t���(��]�v1z��"�
��$+������:�al<[Yxr�"�%S�N��K�V�0E[��MF>7���Tn�T{/Z�*����E&7������oH�Sp��7j���eK"���m$���&��O#���Yrr*�]�h�����������������t�Y��[Ww���q������=�����e(B�-��_���J�\�|oh���k��K�p���Re��:����6�������7�:��P�T6���s1`��	j[#��K@���+��+�]B����;�5���MI)�T�v9�e�a�a0�T]�(#k.�����R�]��hq[8_0���t�.9�Z<S��
�=����[H�����Q�W��\=��pT�*�=����0��j5]
�S]a9�o�]4�����G	���H����9YQ���^*����n�hV�ZC���
y�G>0�0��H���������U��L=���+�mu�Dp�veGo�.�1�2�7�U����uj����{��-.�)c��$�I(�*���]|�9�h�V+@k2��)�u��d���'PgE����P���J�u�K�@�����R�a���$�����5X���q"$2������'A��R�GM%�\ZA�LX(��i���S����kf�ndmWw��=B�-[jZ;�q���]�t6�j,qL��iG�NU�R��J�z�X7M�W�2CV�`*��*����Z~::�o77�Q]	]����Y�>O�3.�CM��7�HH%M����Y"13W���h��{P]�q[5:'�^=��P��J,��������N&(k�
����S��og$"��	w[��Kz�CXC�f���vnjV���tED�y�i���1Z%��I*#*(�J��!KFe��*���IzS��4��=�w�"�&���W]t6�<v9�b������>Y���	Hv�������Q-'(.��K
��f�O����prJ�>���e�O����GV�W~�G3W����Y
`�X�]���&�Oh��nO���'T������*�,f�q�	s1V�s��M�eZ`�(�}�GN��d�F;�[MX+#����@�Utv���lx�����)*W���(�+C�
U�qW.�4�<#�����4��B(|�n���Z�	_+[Egc����%�,�����v�v�iN���e<�6�A�F�L&�])��{����+):�����&���j}2k���E�L��[��uM��a�z�����b��{vO���g\�7������E�G[����;�����S���h����u��@��s�7�����5����ce�{��
3;�]����j�'�rT0��-v<9e�qV������F���t_l8E�`2�`�;��w9!�x�+������z�wZ�d�4P��)�����2N�y�kK�-vZQl��wS3;�ziwT�.�9P=�fc5I3��9�������,k(C��"�����Y=W�*�K�5�>�gHW;����vRU2�Em��������U��yj��mZ������k/{1���m������u��[#B5�4�3b��<))I�FT-��B��$9�)J����u������������c���s�BZ������a����V�o2(���p��T�]a�"��]&m�F��~7���������z�9�=��S���,�����L��KFx��.v��B�vi����*X�x�28�*�2�bN�mp�M��\��Yh�hM]�Y��	�$�B�g��Y�����I������b�����bun��*��u�h�>��/�aeW'��	�������qv�b������L��{c*�7V�^G.��jU�i�H��\���wxI�P;�D�T��6o52�ehO9����k�E��-���V'Z�gl��+�
��3O0��p�e0kpL�!O��"�����-��{���n�Sz��{�����FMS����jq4�0�����[�=����v�u�;t��l�p.c.���A0;���B�����L�������j��aX�������
\WJZ���X���"������j�v�\i��f�mGy/E�d�v��B�����}�r�����wF������:�
��$��9����n�]eKm�P�:�
Ev��oMv�]�Bo,��V�1��1��Y�^^$������ o�����
\�}Vw�e���P�������C3`R����R������h���
8-��JPyAY���k�Lq����m���7Fatb����K"��j����E,Z��l���H�n�d	�rb�h��z*��&�
����C.���������,V���w�J�[B�$��'�M��[����8�%Am���ZS����2��gC��of�r��.���W&���i��Ia�b��������;&��,��E���0j#�yS�e��m��4�^�a���l�����k�k@CYVv0���:B�<
u��l��2Ds�'xqV;�+;�U<��xMD�K�O����C,���1U�]"�����t��	�m�H����=�7��m��}��.���eiM�E�aV�OI�i^fU��G�g0p�FH��
��Rlo�]�+[z���-�w���n�y%������)�j���=������
>�N`��#x��6Z��f6�l7]�N7v�2o.�v�#��,*S����]o=M�,�.�Y��&�����<]�v6����	y��`}�7e
u��Q%c�H0���k�mIx��a$X���ZOr�=A������A��:�������m�,CN����V&wl<�T����Q�S��}�������]6���E}����5��z�f���2"�R��K2d';wNT�U��j�y���,�XN!Z�%�&��m��#���-S�g&X��)��$��	m���"�����e��!}�[�X\.��m����$t��T��Iq�n��1V����.!���A��`L�&�l����
K6���e�_6�b������"���AY9f,��M�Z:�c
y����g�WwY�n�<G5�9������������v�{�pR�8R#�{v=
�r7�-��r��V+*��]F��W��D����J�`W	+�zk����a0���aw'M�D���P���X�g[��
����+�q;���s��.���!:��^�Q��,������11@�[M�;H�=�+.@����*n��//�gt7p�����;TW���&#��?.S�
{�4e��{��e0,��n�<�.�-H_d���"��y
�+��]��G
�v�`1��(��9]��Ch��G�J5}�p�z��cR*�n���b}��Z��0��q����x�v�m�&z��T�������l�����diLVq|%���GI��5���=���K$.,u�hF�c��H�����$�Z�c���`�!�����6��]����Em.��~}��\����7�/S���c��t��#����i�����C�x(*����A�3����a�JD���U:������":u1��E���RWn\��O`�����LGH374�{���I��U��U�8g#�W�4����p�2-���B����*�7�)��9��3A9�:���M�U�N�������P8kS�1�J-=�gR9`�H��zE���*����C;�S��C]�8E�Q�_$�Jp�,�v�*5M�UL���+�@Q�gV��<���u5��WkW
ObXj���:V��rN4��c�b��K���*eL���J6++�8�|�gS%�\�v�����S��n���z�L3�s�fVVN|���p�Te_�t����NF�[r�o��)F�t������������
��m]L��8��\��{wX����A��S��Wf���J�!�������R�Y\���N�;��+*^�2���v�m�W#����7]�����x�J����wnq���X��+��Z�W�S��+6�5m��;�od�Z9��:l����ybm���1����[�]em��6�X|��AY�K��'#|G]�Z�o���
������c�`����A "������+��n�4$����O�]GX��(d���
F9��U���
�Z��`�fsUF�;���D�:��"L��pU��4����o���IG�n�$��y+t��H�r�WjX�.����;��a��5�^�r\$�
^^b����:��t���C�������Q�i��6q�����d���1���3�:l�gN�#��g;q$�;���tjY����K$�C����X���L�
X�*��V�=��{�"6���+����Zn�4V������Y��S�V�Lb����	�:�M�<����R���FM�0�3}�e���Y�w6 s�is��A���i�K�t�{S�f^.�����8R�n��K:%��jc���8��>��
��j�u�c�����8�0l�=�z������m���nv��vm��m���$��E�7BPY����������9h�fw0j�X�V]�!:U��^��x;%���^e��e&][2-;�ow�"����w���)��/
#m��zh�����]������a�d����e�l:v��Q[u�������V���X����d�5Sb�w����������Hd*����Z�7�:���_��G���&�G���������B���O�#��'�?��N_����p���k��_��o��0��Ab ��[�Nk�@A�QF4b#Q��"#�9������#"�~��A��r@F(�c$���-k��cU~������Db"1��m�Hy��#�������DP� �@$�Aolc�"#��C�)0FL"�{�����F1h�X�k^""""" �+��x���Z�Dd#���E�D������7m�j��Db#jE��m]$FV���Kyl�{9wu��w.cc�(����-���^�-� �b���R������������2���"1�@�zb1�^��Dcb�1F"������^�F1w�h0Ak6���u��"`�Z�j�DA
�	P�(�"�"4c(((��[�#�Q����!$��odu�p�F���H ���1�c���"!�+5W�5�A"(�#�#U��F"""3����1[od/H1y�Mi���{A������z�#�����$���V�W����F  �c�^�Qb� ���u������D��QFk���(DF����$��$�
��`�j��P�P�$�B�0mk�""�F"""	
�U�{M��y��Z�f	�U'�t����B1$F"0�������c1c��b��ik����DD@��11�m^o��[�`���[[�o/MI���KiE[�i��-"���cT�Z��B#"""" �EZ��Z�b���"" �"�m���t`���A$���w����rw]�wd$H  $� !&��b'���<�6�F0����&�� B	$�m��b����z�1w� l�"�
���E �D@k8 �)DAW�B�[oV��"C��h�E)$$HD��Dh�z��W�y�w9������wu�s�9�rth�b<�r�I�����ADDDDF��gU�DF"�T��1F1��F2��@���s���s��""1]+v�6��$�����@+{����wn����;�u��cE�#yO~ws������T���v�#��CU��-�������m��`���y���
�� ��������S^^��T{��9��9xA�<]�s���"1���!F1��zww;��D�G\�#�������"�wt\��s�8\�9�www������1�@A�r����s�����_0��������F$.wt����.�������W���N���tDD�QF���r�.���]�h�1E�� <�{`�DDA�2W������m�m����_;pD�����F""z��P]�N�\�9;�#b05�#��y���"���s��
n����F��&LI�	HO]������������/�C��E����"#�W � ����I�HH$�%�@���p�������1��wu���wp;������0N��s������6�k��m��m�����m��g\�#=���I$�IwC��d�I�I �H\De��^�6������$D� /b"1���55tG�w����;���;�����#oi���wpq���E�W�H m�����1=�A$C�Wz��\�.�������9���������`�D��������s��5����y�I$�DDDz@z�����c��k-�	<�w����$�]�A�������~:��mmmm~F���%D!	�<���'_��Y�q"i��.	?��B�H���|I5\np���_��q�����^?���������������W����y�s�����i
����:����X�����K���������i[��F����;���&r�&���OG�
%N�leD�����Ff����od��./W�/jge�15��Q]��Q��]b����2[�g]���� �HA=��v&��L�.�e���j�s0�g6iy��!&%1�7�$/3�����l�l�@.�Y�����-[e�+�q[\n��h�ye�J���w�al�mR�y�m]����z�
\�5��-m���%^�x��J�*�sG]Z�c�����V������c���4�zB�%i��(ww�4��'-T�w��P��7���;�wz�#��Y"�d{���n�sl�4=�W�����*�j�������������"6f�R�_f>Ccs3R��F=��3��Q��&��D��fP�|F2c�3�����5��<j�kK�s��kA-���E�x/x�K���\�:V@.��Gh�2d�K�
N��}Y)��c-
����m=��Q�*-�bF���&r�����a����w`���+���U�bq�8� �5��F��K���;'h�A�O�nd��iV���w|�j�0���K;i����/j��^A�L mE��F�(�^a�������#�U9��o��I�l�V*�����#/lmI&����]�Z�������]�9��1��J;�IlG��z��@7(G�iz�*�L�.���4�dI#w's}���rW�-�3�*$�6'���^�@(Ff�C4��t
���I��6wmN���mb]0$;eh|o����k:���Si��&k����P�����2��v�M�Ps�.�ot��J����0�3
�	�E�TxKe�tb�����ER��|���������^n�f1��nSz���u�o+N����hC:�k5v��uu���1����!q�������2���o��3-G����s$u�*���8m�{r�:lrV��{��!�m����+���"+
+��N���^f������BT��O���^��6��������4RO���������f�<�ms���[��p����{w�o��l��D�-S4:��5���X��f����
,�h�r���H�E��0d6�gpV��v]���L�*0�n1�wK3d���u_
1ewh��_2L��K���i-��J�L���������q+�u�����:QM�N��������WM���T�3D��u[�h��m������N�[���\^��t�b�(�^-�u���S�l���I�/`��+����r��nJ������*	c���#M���D�Wh��U�k`7�k.�G������R'cS�V�U���a��K����;�V'<.�����:��i���;:�Ww�U�4���$��1�8_V��$E�q��;����G��b^�-��a�����j�Z����z�����^��7���D�������`�i��K1X�ljui�bR��TU�Y�l������9:��q�U*N�x�6��j��N�vV�2T��c2���Y���+w�b�fn1y���V�����Hc*	��A\z�����k�v]�I�X��{�W��Z�\���{�va��}"R�'
�X����Wqm�:��cq�����U�����[�c���sp��a��;@K�go'&�������O�i��I3�n���Yy5������"�E�����KVGq�@%���f�s�rK�����u�8#o%�F�>C;Z�;����[��*�yNJg��_H����9�]("��*�`�{�Y+zN\�x=�W�
�)j�[jZ�cf��Cx8��c��f,����
5�g�f����1���,�d�wx`����]p��#���
=�7���'0�9x7�q� 7��*T��&�4����h���Y���5�Uv�/�J��S;��jo��z*SE3�R���f�R1fth�������m�7YOr�[�����r9���kfoQ�j��Y�[pW9X:�_n��@�y�Y�.��B���3e�����3�A�H�+Jz�u�6O9����B�j��79�����0��v��E��Y�YQN�Z;i6��,-jN��+��aWb���F��J�U����Y�z��,VY��Yb^���U�����X�U����_=�v%y7,�:&:M���v����Y�LK��"��9REX��N�F����,5��:W_)[sBeT\��e��`��;�Q=��tV���	v�J��cvm����y�-6��[}0�u�(��.�x�WW�����o����+���[�(3s�"0�v9�G��}bk��+�<��8���;U�h2����S��W���f����]8m(Be�	W�8�]�)�2�p��y��8)��L�]GIDv_t�z���%w����6�������!M���<��������}feg{�u�%�]*�|yL{�R�0�V�p�����
��$�+�+��������T+O-����q�m �2����t
z�e\�BH��)�}S �A�����{��������<� ��zD�Z�.K�d�L(�8�
7Y�����C�[+��f���:��e�-R�j���WD<������Yv�������zm��Tv����d��"A7j�{���I���)^�M��0mp�}�
�7�@�X&�o!{���ow\�
���qwWS�����2o7}������yJ����]lNX�R�KI�'\0�j��o�R�_\��
G����G�`
e�����|3�)�!���_[QV����+�u]�G����y�nB����ln2`U���}i9�u��5��!�I��Z�:I4��r����z�ZYg]��s��r���D���.�V�}+h�1	v6���]]N��)���6^;���3,�cU�r�SC]��`P*mw%����2mV�v�]��q��+���[Had�f�+Kmk���nj�����)Ru���y���0�H�{N'�����tp�PH�v�K�D:W�@���t���"���m�+�����b�C/�]�n�#���Yl���e��.���36�x��i�T���	�����#������{j2���T�R��&r���)$5��Z[��qiPw��ws��wSt��q��[@�#6`qh[�������
i7�����4�6����!��������}W��)z����{��d����l����f,���4���J��2^��]����s�6�	^�'�R'f�{M�t�G'�5�H��F�{H��d����X�]t��@�AK<�/,�7d��q�-Q�2��wG
���O�������
�7J�{y1�;%:��Fm%����L��EGV��|�"����@��U�(f����5�a��<f��2P�N�0����������u3n(�)6T��������,H*8uZ*�8�]e[��Q�$B���*T�������wb�Z�U�+iY��U���t��P��f��gz�b{��y��C]�5Z�;E��2{��F�$%�
(]�1���3�8Yw}*W*�9��L���T[%u�X#�MiaV��b<�w�����g#�cj��� ��*�_2���a���Fr�����!�����;MiGmZ��Q������x���x�n�6C��h:!]d�
u���#5�����u�������+�.�}J��4�bf]��wR�%�D|���y��X��]%GCq�9���i�mt�@%�����c1I��B)K�o8�d�N���5(M�&���s�[���-+�����oq�hf@(���[��� ���4��r����G!��v�G�R�N5�&����kW��Cz��p�����L�.K	lf���`�ecY�����Qpd���+Q�y��C2���e�O��j��^b����p*	�DW]�a����]W�k�E�4x���[��q]���{�(�/J�O*f���3tsi��m����m��-Iz��3�Q%����E�f<kVOX�S6�� ��c+Z�����'DN�
�{Ip�%��wH� hor��kq�:�-����N4��&���fE#\�c�v&f���.t��������A��droS�
���cs��r�NJ�LQ�K�M$�����X������z�W�'��
��\�n����Z����R������-����<)��4b�.I���8%*%��+0��.��e�'�����D�Q�cu����4fM������m����M�a7���Yk����`���q��h�)�=X�:��43�'��'%�X�!����7��i�Z�
����;��v(�Pytn���R�`S��4{��Z��V��uw,�t�v�y]wG����=�,���,���f�9�]���V��#��gp��C���t!�)��{�#��6�s�L#��=�E���k$-{�hB��z�OF�����U{g.v����b���u�{�}(�n
m�n��1�
��\
�:wh[�'t���KY1����=T����6�x�W�|��i���
j���um^��wV�'j�#����y���d����OrX�T{����$�wr����LC(ZK��3�������g][�s�[$)���N�!���P'��q�pj�B���9[���y��`�6Z���,#����&tf�9�Dkt�����m2I���w��_k�G�a�[��t��{��Af�H�������5��-��=��+t�����9�^�<�Rd��d�2�>�n�����0��������g!�?\t�c����_22
�;���*(9���//Tg�[����P����	B�,�����i��W�#��;�%V���_9���z=Oi����7�	k���k����*f��C�������D��
;]��+v���
d�ne��^���b��
��%���L�:7���.T���b�V�;��*��({��
fET/=������pg.�oE"�r��e��]��f�����p��Y<��9k�3����)��1P��o������E�������}%&�-}�e��s�TK�@��:��4�8��%��#��N�35��!�eY�bTY�����w0�O�31gr��WRf��C0i��x�}A1���r��$5s�8�*�q&�l���N��s�����V1�o��o�pCM=���h.va��IY$,�N�4f��ao4�2<|�f�V
�O\�����k��XE���d!(��6��'�h24���uvf5A��s���vH�lGKx�7��)[�K��D�gR�RcA����.G2�%
��c�^��S% ��|7������SkP�^�GC�VW
<lq���4���O[c��d�� sz��Sv���,���$aO�;��;��WT����dTjly����f�����,�7�N��l�U�E����c9u�]�n�:��L*l+�wWTR�!$���y6�I��,��M���:d�
�5���n-.�m��^����m�Ma�7����)����D����QoT�����&�*��Z��X��n^�3IP��}��.Y�������V0���\:��s3=��Jn&#���]NP`=N�"����`ueG/f��e.�!������p��91��(����
��1�"VRi�����1N��9��vS;
���"�Z����&X��e�b��5f
]�e$���eU��I�L�#��7���E�������&�E�d��*�����i������ ������5}�f�e����QG�$9Gy$$7�F:b��f���u�K2�sn��efMjF�5��s��*���6�������{v����%�fX&n���{It*�����_f�,���F�6_��|�bf^��\�y]��������� ��1��F�\�T��B�c����*�}CS�����;�3xR{�iT��5g�K94oP�W}��K����U2�[C�s���p��U����,�wGE��W��VM�J�W`���<��p:~.����R[���������|rq���^8e�{�f���DySh`�_e�Y�����+vr�M]���r�����������t�������7q�>��+��A5"y��T���kr��J�*�5�S�����g;���m�{�����
j����F���]�],��sV�:�%�v\��`*6�i�s5�����|W,��\�/�c4���LaPXi��_m�0Y��+�&�%}�����u:��������'8������Iw[��b���i�/��s%��x��^WS�Wp�����{�m)35t6�(��P����2�E�������qEF��iU��%cK9�J��6�-�{y*����V�h��� *uz�x�L��B����l��c��W`V�L���gG��KrQ�p��f[���y�b4{xf��VP�a�$bx-��+�`[
�dl(��]�3���B����� ����4<���c����r�Pi�8|{}�/��S���6�L�i�u�}t�P*��fV��������N[���z[�(d�q�3���	��e9�
]���n�����p�
�����)�6�OY4�����HD-����y��%Sec��9����O���k������Z���5��\���������:�`j�F��u�"_n��h��h=���%6U����d���\$\(�yU�W���C�Z���{����vt�f�k����+��x�;t��)�d���R�i��D����B�����u��)�vX���yX^f.57�f����v�
&�U>�l(1t�Z�W^����U�
	��"���q��fD
=/
d��/4��J��0�9��	�l�6��������F����9��w�8�e�K�������������a��0a��z�R;�]W��m��S�9����5u����O2��e�|�����d���J9���W^�;�]K�L+���w�l�S���r�0��~��V$����@���V{��%��*\:������Rn���w�����S��A��>��r{i�W#����B�\���y����btk��{Ok����d�a�-��p�|�c���C}��2P�WoQQR8r�����q5]oP���r����7h��-�BL�Y����<JT�NN�Z���x�)�>�u�X�������-��|bm.$n���OU��kt�o|
-w�:����:M�M���u���;Q];(��4����EYJ���1,�D[�N���'��[R1R^U�q�Y�U�5�n�B�5����(zM��Ir��U�5V�������9l��i6W:��k5)&�2���a��.��k��A�.����V�kR�<@@��T�]�K�VD5j�u:&,���a
���l��E�Q 75�23�h���d;�����e���Z�])`�}���T����Wq(����E�D�]*=?2w�%v�R��w
�n�G���V�%�H��r���\o;�Ju��=8�o��hJ�e��9��<.�@"�M��!�)�K��e2���=��5��������d�Q��X��w�%�x�c��yvSP.�_m�Mh�(���*.��9�'�����_P_A�Sm����D��7P�=!�eB���g��];(e����0��r�7.JMemr�X����i���.�b���jp\���0��cZ�U���U3��G*�Z&���6�q�����]�=�`�������TY�2��0Z�I^apU�v���/-o��a)����������D�e:�\��Op43�U�5�Is�,�J�:�k�r����%�V���������j�����3 �y�5�7�|�4������WQ;�������Un�nd�u�5O7��r��a��w'q��
�q��J�Sy2k�G���+	�\j��gu�I�l@��T��|w�.��El��d�]�����v[J���N���=�^E�Le,:�K��)��3�����g${w����8e�8S�)k�Z�=��:h��a{6�����W�iT����l�.��oeeIS,>w-�w��nT�
k{��xcxn����mi����{D�&���:����Q�Luo��������\W�S������Wv.�L��-Nf���G�sle���%(��y[��h;���5kl�uT��e������v����<�����J�����]W3+
���D*�y��WL���#��
�F���=�t�=n�o��O��S��+��wrXJx���v����V��Wh�M6��`,�����t��a�K�,��.�S	nu�YnQ:���*���#���:�4:d��O�����!,G��f���j21���OV���]��=��)��Q=�7|)����	����Z�a��������K���4#u�h<;�hf�V��)F�Z
�����Hv�tF>]�����`��7
��N�h4�Nw�h^��c;f��{
skVJ���������4�j�Bifw�:3(��}:`	5��D���;�k&Cx�9��lM3\;��W^�c�����{fe��y��x�ru��("�V���o��f����hu�w}��X�� ���y��<����y�����r�#RV���[�dFYn�����It��5���Z��>L���v���iL
��r���Zn��H�(=�I�r�n�>����#6z;�h��ig6�=���ir��W0n�N6T����Z35<���[|y[��i���9�-5��m��Q�c:����&UxlZ�Pk.�F$�n�������� �����+| �gO3f���x�y-���W����p�@��4F����F����T���bZ2��Q��r�L�>��n����������=4�W�Ou�NE�F��G����%43C���V;j:%������Ff;=��TFG	���j@Sz�[��u�0�PQ���V������*9t��QvnSo��w�e�g"��t����]u��U�$S��eXu���,��t{����3B�E�6�-��5��e���8�sy�r�\us����%)D�,��qEr�|o���#���k�Xb�a��]��U���Q�
�
^�.j��{\E�m���df4c<-��uv����7�aV��!�>8_��^��Js��.���B}r��U���
7jP�L�\>���J
C��`��t���
F,6��e�m�U��y�:���{���/Hs*��K�Eh=���F�tQNK7��&v��}��M�#�p��Q���bw����Pl c��l�����Z���H ��'$�*�4x�q���:�6���[t��y�����a�������E����x5��D��9�u�y��bT{:����lU�DEN���6��j���n�m>���wW\��y���6��mV����d��vB��F��{
��gj#���:X���mZn�w,b�J�������K�.�`vvx��LlR�jg���;Wt��������:���X�+���v�o��E+�_C��3l���;��a����0`��u#���v��B��c5����`#{�����5�I�j�u��c���7j�7���n^E{[T�ljNU������3$"�si:9��q��E�����t{E#+�(�nq���4]��/7�����e���U���/�R�5���
&�4���wB��+�]J�w�j��wF
�u�b������cQ����z*Z�xC.��X�)��n5�/��u�5�����6�+5��d�b��"��V�Lo_VR����M��w/M��Z�2J�;�X��:��:��2X��uk'Q]jS�-Y}]�����T�V��z�2[���K�A�L�[�vr���oj�omh�7K&j�m�# �$��U��*Q5��ku��
�������u,�z)=H����L����F��4��������[�����+9S��B����g��ri�[/Z��5%�i:.Y���[n��fK��5�!+��������G|�l����e�	U�
��������b�P�XrR���+�K�d���n�����U�3�����yg{H������c���x����Cb�k��"����Z�n���H��x�:�8r��;��3
G����.|����tH��������Q������Y���a��6��6���
��/�hi![�{���8�R�C��g�.��
��]�{EktL��N�k
O���oIT���WLgy���VS��d<�6����|A�\M�N^o���/�.����P:�	JG���bYU{0�h�
^�����][�je-�H�1g)W��6��OI)u��[�m�:�n������c.�I���������7;]'W7��37$,&���Y���f�-���m�`�7�����>�f(��4,R���!u{
��rf���8-����'�7�_����t����9}�BH!?Q��N#�&�����;����<f�v����'Q�4ne����h�O#F�3Q��������2@��=����d�i�L���6�������:�+���&����rs���������aL����|��A����� �����(���M�+�;Y�p��V3�B@��l<�4�:�3�����	���:���8��Q�{�R7�-��r�-Tw��s+4��7�L�]A���������k.��U�8��g���:��z����[1gT����MA���-\�\�����[�=C]tNm�Qq�m�:�����0��sc���2������\X���jX��I*n��.��|�[p��eV�#
�x"w����j���p=�;4:QG5�<[N
v�^�(C���K�iS�G�whd��
�0e����@�^7�|�I2��U�p�z���<�[�y<��}B
R&�%��
�������R��]�8�hC���SY������l�b�;�n�[pP4
�[����s��F�?��n�w�3m�rh�X���������7o7�r��n��X�j���^��8��T�:�:��,b��p[���>���a�=����h�9u���!M�`��g�XwX�6�j���h�w$������6���(��|Z��{N��]+*���]Lo�t1M�B
�F��t����=�"���5��������!
7�*z��X�f'�������yH�����	����B�e�v�����s�w.��2(�V]�:2j��w�g�_I���y8��V����#�X�[p�8��'�@�g�4������9[��Oz���T������[�&��c���L��i&X���5�Oo�:I�}���`+a��rI[��S6�U"�a2��r�GV��I������Ne���M���7(QcW[h��
ZW���D���������>j�t�	��wv�k6�f��4�������8;Q�sF����	��RV!B���G��wp�k-"3Ot��xSeT�u�w��_ �4�A�K�w��c����6���ZK�Y�{\b�ku:��Z�x�Cz�D�'t��v�\��������?��u$$w$$�� �H=�R{$Nq8N#���~UU�P�����H���?}��'�������"��~W���g��z{���3;�L�w�������M]]��{�������=Y��������)������N-�`�b�`�j�)?.J�eJ|~w2������\�5/b�����������?K]@�I���X���O&c��v��8^Yt�g�u������6D��LD��s��]%�}��:��!l�������d|���V����E\�_b	������9i��������l]��U�t>�R��;p�Sw�Qg�9�����N�n�]����gl+��P|����#�-V�u��ye0����[��D�����z�f�-l���7����\4�� CKX����]�c��1b���~M�����C��WG)��D�&�$�������g��b���-�gehI�3n�������PZ*p�SJR����������x�V��Wg3�������B'����]	�o4�H����E�X�p�-p����W�����+;�f�.)��������:��Qf���Mo����{�9�V�7��&q9{���Oc�x�Cm���R�j�=�����_������Z�����n������)���2}s��m�0=����7-e�==���6?K�t~�7����g���^��au��#���0�n�=�5�.$�������m���fj���'�s���dv���v<�k��a����-
E�F����z�^K����GE��awp�7aC],�r�f�Xx��Y���J��#���V�J�]j�R����g;�~�1�R��k���*d�.u���k*�X��Ro�<�n��sM�r���*�������];�������Z/m-+u;j���3��4@8o�(�E
�2�2�9@=yBN_����<�1�6lT�������{D�x
0~a��(��9��KB��.���[������
K:&w�����+tX������V^�r�Y���o��}��������v��^�{=�9f��Xq�^
j�!C�U6���f�YG��x�j����[|�X��am���w4�JcQ=�g������a?�����9����0*g�3����I�/s�]��[N�m���SGs|��{�����W���W�_�=^�{����w�~�*�����-��^�;��W����|����C��TU�����h�se-�gVd���T��H����:�X�����(^�[5���
[I�:����������%��{�U�z���'�������o��v�c�����v���n��v���n��v���n��v���u�:���n�==========*(K�$�L���2���0m������n��1�e�*R�].IR��G�.���&Uc66=�G�����Yk<�<��������s[X�M�"QH�)J���M�n����a�����8�{) B�O�.���PL�B�!A2�!B	T�-t�z����{�����C�u���!T��B-�a���<k���w����A%�8�{��C�ks��I;��b<O-Ns���*T�%J�%��a�6��l�[:v�0Fc�B�������e��0!�-t�Bs
k�}���Ke�KQa���� ��jR���k����2���s���od� ��v���1�T�wv %J��A*T�
q�c��<���`R�x�SgQ�o����c��(`�9�\�21�k9��9|��k�y���0�d��*�F<�Z�<�kT��1�e�wy��d�R��1�<9<P�;����9�9�p��E�PJ���c�o��;�d����p<k���;r�R�%E���c-j�Kc.��!BB�����������>|���>G��+��x���}>����z
�$����1�����ff`�1�e���.�(A 8�{�x
(�y����B,�w��8Y��7��0����$��y���d��`sU($�0�G;A��*R�Z�j�.�(B����A%�i�n.PfVfwk������c.�����T�'����s2$�9�b��)JR��s��$�0h=`1�����0�;\����{����\�8�;}���p�<V����8�kM�b���A%���B� 5�[�.Ix�5�.P�R�k�#Q�s�:��_-���Z�1�c-r�{����fNT�T�)JT��)JR��������nb1�Z1�B=��B�fc-�z���Q��[�x��<�����
p� k�Z��8�9��c�������B��;�{������!B=�7]��K0���s��B���L�(B� ����T����A%�o�ph�[�/��5�o�~��
��{��X�����MV��Q�z^��3�@�1�e�JT���Z(�<�#|��1}���;�!B��5�$Q�y�JR�7wwt8�*@���c}.�g*�(�#�9�y���	T�81��;�p��9�s�s������� J�]-��=sT�)@8{���<�<���y�o�y�c�]U(C�gk	�9����Z���p��:��B�����!$�2�&P�K2^�\{��b�u�;wE���wwwp*��B	P��
{(����eB�U �.�,���{wv!�c�8p���K������R��*���<�Z�<���yr���2wnvu�����l��&R�(|�*��)J�T�(��(F1^n��z��2��*@F<�[�Zh��;�=k]�&��U�R[
�f��w`K��%�i�n-R�a����!B(����wwovPKc�Z�[{6�����Y}m��H���9����c��|�B�c�k����B�#u��@�
9�d�$�x����5��8�9��������82��������k[��h��p��)J�!A*R�(B���x�T�)R�!A*��\7���=��`��s��q�s�o�R��-�s�w;|�J�T�@-��I*c�5�5���v�������w���-��y������F�Q��]$����r��(����f<�7�`T�A%�i�i�=��!y��nXy���20����Z�$�JR��	R������B�!B��JR��A2� �J�!���!B�Kck�	Qk<��9�q�s���
wv��2�
1�������y�8��Ily�y����T�����e����R�\���@�������\��3.�U5�0�������?!B�~R��I2J��)J�%JR��I*R�{������{���y���!�JT� �c�7����c-e���B�P�!X�N;M��<�p;��r�Z�xn�����Z��J	R��)R����*�Y���wwwpU.P�!�1l�&@Ke�P��\;}�w`�!B*T��*@����zzy!B������ �t*H���������QQP��5S$��`��Bf����b~�U%T�@\\\\raQ0IW&�qP**�E.�����}
M������\tt�wLL3***3%K���ba�����u2Jj�E.�����T
�M�A10�L��]E�L
���T���&eSB)wP�!swHB*�E.nP���3*�L��]�)�������U5K�&%3�*�0LJUB*�T�jP�T�	�]���]W�����}*��������USP)wwwB�WWR*���.�����T��]H�U]���L"
�������&fPL��RJ��B�(BL�OWT���**�s����QQPqqqp*����n��UL�������I�E ���I'��$RG��$�\\]�������������D;��E${��D�%}������������>�i��n��v�����v�]�w;Wn��v������!L>K?|�|��eU�����N\��Y*��MM�eU�i��.\������=������|�����A�������[�ln�� LH+T��e��2n�
�nY���U����g���M�v��6Y�2d:P��Kr�FL#�d6(i��to���W�����Mw��:|t����]��c�LcLc�c&L���1����r���MM4��MN����\����m���q*���.g;�"C���S�����5�u��+/��jI(��qR,��Z���O-irA0$4��V4E�t+0�C2�P��y*aywn���2mTY�^���$��
�G �4�or,�oT�Z���\s��}q�.���o��c�:cc�+2d���1�v���r���i�SM577*���.f�ji�������k���}�|i>�=��[z���V��h��JXDY�Yn�MWvwR+.�
lR�X���\�f�DR1ab^�5��Zs[7��#8����\�0�V�C2�����Ee���	=��O//O|���1�t�4�1�V2d����c������i����i����i���SM54�S$��3�5~u���a S���wV��v�\*^��������f[���yZn�r�72bv�����,X�mL�%��3M�Z����M�B���H
��4��R+E���t�n�9v�1�c1�1�c��2clc�;v�i���jg.\�9r�i���ji��<�s4�K%H�M�g��K�0X���uw[*���g������'l��&��^Q
!v��(M���R��LpV\���n`K5R:;.�VS��f
�u�:�#�T!����m�t���1�c�1�1�b��&Lm�c�n��4��MM4��N�i����i����i��B>k;�\o�G�O
�6��l�D���Yo(�s�
��d�5{"���r������Xs1J�*[�3-�
ZS����
@���X�%TE������z{�g�����{��LcLc�c&L���1����i��.\�4��i����i������_�������F���y���}����kA�*����Vc�q��4����������������C/2b��(�8T�Nb�#���yr��<�9R�70�MW]���������v���1�c�1�1�b��&Lm�c�n��4��MM4��MM4��MM4��MM4��%{�[�W.�]��2�3#J�OV����j��23'*���f���e8�^;��#L���w��6�leJ�&U�o��,�N��������o���c�:cc�+2d���1�v���MM4��MM4���]�t�7]�u��^��j�������y�TF�;W�7JH�k6��dVN[��9�����81�&�P����c�������KD*�7j���&Y;��7�W}w����n�|v����1�c�1�1�b��&Lm�c�n��.��n�uv����yv��n�u�u�����u�{�?�U_�O��~~8P�g��o@�����M����6�l�O(�����k�7U]�W+����c�#���I ��������N�==�s7�\�Ef��\��y2��yZ�Wa� ���IU��-�����&���C��1
���j�����6dI�]��f�	
�3(�T�@�����\��m��3f�6v�0��s�1wr���Pgd
������������:��]8��-��
�kX��n�b�]����+#����9�r&2=�Nmr���f�H��L�+za#y,;����n�i�h� R���(��U���
�Z6)������v���%-=�s��ku���>������r�yYV������t�S����s��H�W�:f�C��7LJX ��f@�������9���SR�������7����e�B��O�-.[O����KaiX�����u�s{�\�CN�FL�o'��}y�;��A�QE+&��b�����w;k)E���p�a����A=uh���mp�b�94��&�Hj�En����G0�J� ��������]�Df��p_C{����3����8F:f+�ok�hr�%#)M����c����'+9��^*�l��|�sEQ1#0�D[�C�#�[�,�SFm��\9�^�&��e�<��h�%��\�gj(��Mw���u��wd��	
���S[.����������H/��f>�tp8v��9^����}�&#����V�e�������fR���O@E)C�m��3z����Y��{Z���`���@���J�;�J� ����J�F�o!W�C�s��9,���I�1�T�������V��h:��q�q]m�w=���6o/
.��`�la�(�G;�\�<��)Q��,�\����o�'��VS���,�g�Yz�,�����]�d�*������rHHLu'mt���F21���]�4�*����m�H��'p�y��
�(��z�|�k���Mp<�L�'H�=�wm�8�E�����1�F��

&��@U�k[���N�6�1V�8�8�o��U�]�Ee �F���}O���w$��� ���H8I;�!�A�LD���q�����������z�oN��i�$]� �����:���]�e�X���J�zm�X�������b��WP�� Au�{[�ta�T�_z��4�OJ�����Py/)���/�Q4����\�Xg+}�6/>�+/&�<�h��#��JHs+o+k"l�������[�RDS��v�+z��r�����������y��L�u.��7���_���c��*WWz�������]x#����k%�igY��F�{�y";�f�����oq��r������jn��[o�u����M�kRU77���qlv��m�_�37}����\���W��b�O��9��s��������%����9p����.���&�,��D>�Y����j���21���n��U��]�T�����58!�v��Hp���L)�f��n
��
�mC����z����/��{ix�p>v,�+�M��n�nRW��&}w�?WT����"��V{;�'|w_���L�������� �sw2�U�������G����R��~�%^j�}�<O���L�s
�\y�����B�n��xH���t���{UJ�2�K�T��.��m�����[��Z�&��z�Q[5Mt+��4��/�U.������u����F�8�bw��W�E'`������%���NQ�K�[3kc���4�k�oM�E���y�u��w�I�P6u0����We�����:���p�zc/)�(�~��E�����iM���<��{���]�\@���\�V������Bv�iG{�����;�S/k�C}V.�UjH����3ed<��RJ������i�x��]8��'����S�V���I��^��t��W��`�}e{d���U���|��b���g�6�/���]*'f���{����\�R�9�R�|�:)��kHhd�������9'[�|����Nw����t��O{���j��B7^U��������Mo�ZX}��L =D�W�K�����@���\��r~�W1 k5`8!��j����L��[�i�����8�DM�=��}�_�
��xsir�%���d��H�)��k^�-������5���Jz��	��O}���&���W���~�W��\}�o��MZ�@8�U~e�����SO����e��#���l�:m�����j���v�.W�J����Nr��	����PLV0�����(:;��v#g���W\��9����������l~?n��������\@'����5W�!��
j��!�7kU�t[,clU!K/�M��iHB��$5�W�b���j�U�*�����R�]�y$J���E
�.�
��L��1�1rBh��
j�&U����5�]E��2��������-s�ms�����c�c��uK�Y���Yk���c���!��d�]2k���������1�C1��uc���c�66�l�������� Z�LcUr\����0�1�UH@�T)�U��-��GK-P6
�B�ms���-s��:��c���c�{����/z�����j����"�B*�*�5"�Z��*���C5UU�@H@�TTUU��"�2H�%!����>����������O���c�1�1�b��&Lm�c��c'0p��UY�#�U��R8UY�'���������H�Ug0Y�U���q~�������dNVs�8UY�%p��i��~��_^w���N8��_�8����7����Y��J�pZ�n~�H�X(�<�;�#������S�L��r�`lk���vM����Xb�d��#7��=��U�)+%��;H���NngN���a�����|��<|V�<~�=c�n�;cLc�c&L���1��NQ8�$�=����S�9��\�����`�$�Ug0R8UY���qH�����i��$�����ns��4�m�`�*��x#i"?�U{���K(]O����+L���6��?���}��S�z���,�u�����$�j�
U�Y�*.�U:���	����������W�M�m6�S��I�f(�Zd����f��q.�z����w�����{�����1�c1�1�c��2clc�;x�MA�EiVj
EiVj
�ZU�q8q'������sPT����B��5��*�H���p�i����EiVj��I}��3S[�w���������-5���sh��e1�(���f���2��|��V%�r��pPt�g�*�"��_�}�xZ=�>���DV�V0����c���X�nsW=h��n�l��>I�z�oX���r�~1�c��i�c�d��c�1��2ja+J�I?tp��|�����j
EiVjiVj
�Y�)%iVj
�V�f��%iVj
�ZU���q$?t�~������>|���?	v�r#�X;��@\a�y;9�X���c��� ��������l�����82G��n);&���<�-3���)Bn�Y9P����p�@��s�����%F5xk���o����������z�1�c�1�1�b��&Lm�c�o��<�H����Y�"V�f��$�*�A�7M�m��(V�f��$�*�A`�*�Aa+J�P~�!�-�4G��������A������?w�����?>u���������g��*;�[��;������R��u�PWM �SZ��zh�68�R�>�9��(���}�4�v�Y���fU�xx�FX41��WK�}c`=@9�{��/g�n�|r����o�^=c�1���1X��&6�1�c��d��ZU���V�f���Y�)�Y�*EiVhq8H�*�AdJ�����M4�5�+J�P{��Hd�����_����7_�r���2X��Y�����y��S��+���*U���<n��w�i�3-eA���2.r,�v\d�j��+^��p�����jWa<_.�����	���i<L�������6V�]�;�7���v��\�z�1�c�1�1�b��&Lm�c�o��<8�H�M*�$���q�������V�f��EiVj	ZU���ZU��/8D�*�$��N6r�sI/�!ZU�IxD�s���H3��>���~��~s�{��W��Y��K&j�EG6�5G�];��	D����&�"NG�(9��+%wJu���4�$���x�c�����w����M��.�i��<�E_C�{3��u1w��{�������&wn�u�h}i��������c�:cc�+2d���1�v�����+J�PTJ���'��#�||�D�p�q$�M�5I'�����$��Y����&��M�5H�*�AB��5?:�G� ������75=������:'j��c�8��b%��[u��sF��WT�/Y���Y!j��~�e�eW;%��f3Je��5OE�y�����2U��j$]���H*��E�����=gS3}w-#���|t���^�c�1���1X��&6�1�c��d��ZU���ZU���V�f��+J�PTJ���M���M��sPT���5�Y�,IZU����">����^~�f<e1�wVS_��� f�^9pG^fJ"�f�Z�%�����S��Vp��Bf�p\��m����S&����4=2�u��sU\.H2u$Wi�V:�^���7�9[kl�5�W�����������X�1�t�4�1�V2d����c��4�s�OH�p�m�$��J�J���"��5��*�AD�*�Ad������5I+J�PXJ���W^��~��er�����_�����V��b����NEy�Z�$���k=R�&f����2�V�Z�����e���l�y���:�u��}S^7}����	3��e���o;r���hm�[�j�Py�u:Bl����Zl4U�-���>�2e�f+����V$��������m��0�����r��E�@�7"��1���.a��v��-���b�V�^g�[���DP���$����8���e����$EQ�
I�8;]����JG�7�s�<�kZ�0R�wy}����I�iM6���W�&1�I�t�;KrA2�����e��X��Z��EHO_%�j{�VfWV�Z�u�0���b�$�:��(���������H�*�H���x�[�|���7Y����i�aw�M��:n�m,����g;'�o^!R����`HV�V%u�J�Y=�bC��+T�@�@.Q��X��Xuj���Z<���QQ�����;�����EU���E�y��RP8m�Wa�4.�����z�J���0��w�[�J���0��T�#�����2�u����wG�.��\��Uk�vJ}�Qp�h���f� �bi��XM�SS�u�wB��)^�x�'Qo
�ok5�(
j�Z��F��:�j�d�:1G:.�+(�����%��Wcj���Sh�ht��=
��=�������Z����#���89�x{�;�A���N��}}7J��Y�Q��7���qY����s.�Q0N�I��s��92�v�r���e���I@�;3���47�0A�w2�t�wL�(���J;L��`�����Y���K�g�r+���<��J44��q����:X�����b���u�Ot�Q��H�E�w��OjXUf���\�A7n.�u��-�7q������[���Gn���+��������������Z�� 
j<G-/�q��IM���	��h<���\��$%���L����z5���]�5CG����'	z����u�Bn��7#Xv�W>���^qs��=��
��z�j���jU��m6�V����I� �<��������~w�(�)b��:#�\-.W��nE5l��y����8r��~�qD�lmCt�����.K%�
��nn������c�������.��z��ow%)�yR�.4(j�g�pP�ow)Q�*������U�k:q-�e�}��#+�y ��F�z
���H]�+��\'x�#����u�s�.�EW����z�����iCuM��5Oi��i]��4���m������w7G��w1}��p�<E��;�}��k3/J�E���(,������P
.+�RP��G-��o�����l�(�*�;*|��f�o��u���@��b\�z�@���P���{sg�����]m|�Df_�������{�'�S��u<�}�MSRu>�4�?K�M���]+	S���x�Yw��Zoh
h&�Uj�����5K���a��BT�1��}�q}���GnV=.�HZ��i��3�P��+���E,���s�;\��t���r�2_^,���A
J-����uv���Uz��VITS�q�%�ez��8����~]'-�����mw����4Z�Q�����N�VHGs��%����nV�^������W�K��T��>�M��F[��cW�P�#C.��=^��9�Y������D�����j�U���T�V���e�{�9|k0�m������t�e����m�]/)�v��IV�AQfW�������F���p�,x/�I��_�-�l���]�v������ys���uFvG~���g����M��)������T�40\���v�Z�D��d��q9��������
����S�Q��Z���{p��/!�~��\�#��!{��>�3$����_��Vsc�Z�?
�����w���f�,�X����
	|�ja+��s	��o�8��K����������x{���x��xk��}���5�����U�5�Qi�9�B����}}��~�^�V��Zs0�M_Z���o^��N����v���lb�jvu���9�]�
lP[	�tj)����J�u7�C�xP�"{����W����[��L.��w�����������b^i�����{��}w���q����q�����?$����~g���\���	S���������W�X���W0r�k�v��2�����}I���J���]�1�����k_`M����=~��d���Sa��EO,[�����
�q[��{�������~��������h�v>���
j��B]�sHB1�n�����X���B�X��M�2k��B|�D��j��\��-P�"�WkR���	��bzz��Yb�t���k��e�1rBh��
j�g�rjB-nMtWD��l�f�,44�j�6�\�c�j�3!�����fcR��Vfj��VZ�1�c���!��d�]�U���*@0��R��:���@�����*�1�W��l���� ��� Z�LjEr\����0�1�UH@�T)�U��-��GK-P6
�B�ms���-s��:��c���g��m�_oj���w���� Z�B��!�����Lj��(j��*�*�
�����,�"�2H�%!����>�����z����}>�c1�1�c��'lp�1�c��cN'z�ZUj
�ZUj=�H����m�,%iU�,�ZUjF��7$�i��������V�=�$�6�m��pG�z������3J?����������;�%w^�3��f:��,��^�����=O-�lu]�����t��l�<J��|��n���a������g_v���*nn�q���<`W;"�I��u[Q�e�E��v���<t��������{����������<z�1�c�1�1�c2d���1�v��jd���Q��H�&�m����V��V�Z�{$���j!ZUj��6�����ZUjV�Z�M��W��UW�����~|��?����o<_�/�q���|��<������)N;.��%}X��0Q�Mr������e��2.]NP&�[���Wa�G�p\��jh��Ma�\�e������l�s�o=��<�~:v��������c��c�1������1�v��jb+J�A�"�Ws-*��+J�Aa+J�ARJ��PTV�Z����V����V����>����Ns���~k���R
]��'WD�h]-^F&).�e�����Z���>�e0�Y6Z="�.�__���������M����E�����?V@���#l��]m)8k=�*e�����ODi�m�	��j����>�?}����c�1���1��2v�c�;x�4���'��iU��q#���$i�V��%iU�,+J�AaZUh{8��m�����r�mA��r�m9��!��Z�d�I��~������}�����;���@��������dZ�`��Q�.����gaLM4�M���3��+4$����������vMA(2�9�{�T�����\�4���6�v����F���h�e������|��~�����^��c��i�c�L�;c�1�c�x�{	U����\��:�m[q��m�m�H��\AdJ�U���q�J�U����m�-�������{����g�7MW�#!�������Jd>�/�h���uX��R��E�k%/����v�p��2�.I�oZ;B���J�����������'��[fy�h�%+h��������x���z��c�LcLc�2d��1�c���8�����q$��\AR*�WQ*�WTJ�U���F�I����
�J�U�I%W*�
�W*�
��#��|�|�����'��;��5��[E�����?�{���i��1��qh�Gd�r�]X�-��[Es�Xc��'��f\�������u��R�+.M�.�r��0�
�y��XU�:�z����o����#��c�:cc�1�&N���c�n�1��t�j��7U����Ur� �%W*�
�U����Ur� �%W*�����M���XJ�U�I�����	$���y���_��e�]|�tl��)�@�3��4�[��"�X�n�ri���
^2��7�V���K�v�
)�=�3[���1������@+�'*��P]�m���Q=e�����{��N�>�=z�1�c�1�1�c2d���1�v��A�I*�WQ*�WY$��\A�D�\��*EW*�W*�����Y"��qB��q��I>�;���5���\o������s8���<�{A��v�z������[TASz�����)` ���Ld[�2��r����F��uI�������b�g+T���������4�}X�M�K�L��{���{^>><}y�c�1���1��2v�c�;v�� �
�U�
�U�
�U�"��q��qD��\Ab*�WQ*�WX��U��7����_�������q?5��~~������s�s�(*�����{�,e�m`�E'=�1�������6'V�e�g4���y�����e��a�b�}1�<T0���kC%��,��"6���L~������x����X�1�t�4�1�c&L����1���c�Od���q"}��m[q"XIU���Y��	%W*�D�\��>q$�H�n[q"TJ�U��D��\K��8�MD�m�n$N3����{�z����<��=��!�����]�����J�7��kFb$��.9�NY�������pH��[����7VL����Om��td��.���� 3����<����pZ�C���P���i��ZV��=l�#6�i"�C�'���b*���iwSn��m���J5���"M^����n�j:!��R��V[�'���kF�Q�
�'.b�������0�]0���SWe�����\��5
p��V�o{m[q�%	xm��:�"�vN<��pe���,j�~�L^2�����/����,p��r�*��
#d:�11^V(,�5a�N��U�����u&m����,�xvD���O�y�wb������'B��z��y��<�a`33^gWnvb���X
�Y�nT'1�;�7���#k�^�@@NP��6�����w�X*��xR�e��ge����i�����y�K��b)����pz�L�dCWXw�x�{79=.�
}��SR�v�Jc��v��M���M�J[��ep����m�7k��CU�z��[�'�C�.�94U��KZ�z�k�e���%�_)�j�,���ZTI�fJ�z�J�v�]
3{9�(,(��r�N��X��&���16��Z��Sr�����^��������"���l/q�N�q$����l��P�CO��=�;\���
���7�E��3r�7�����A�q�dx�RQGoeN	YJ'�U)�����g��.�m��+q��e�>yD�V�]8�
��4c���r��%�K��W�w:�k�ar�b<�+�����`����C�K��r��.������*f����c�U�/��]�N���)&��wf��Qzjp�9�Z�VD�]��gi[�T��N1�
�;
�����%1Q��N��3enWr���c<���9N��D��4WEK�g�$�w[��D��gh��!�J�������:�v���}�^7�r��r�����u;�s1�}q�*��L����e�T.�
}�=4������������Km��j�����A�H;�D�H2H9�������c�g^\|��]���-z6|vk5~�9�.��z�����1�u��z�1�I�se�����}�wn��_�+�{�<(�;�fW�xQf���|���&uwQ���|\�����uG���9� �g���m�ya��g��u���~Y���������}�h^5���y���|���*�Q^����]}�Y6��p<��@���s��q\��
�YDE�*�N���Q��k	=SUj(�i�Tm��S��6=���q�O�=����z^�w�g��R��I���.1���+�N���y�Oz�k�S
-Q�3~K$3\�(�����A�"Tx��r#�^W������W����&��������O����)j_��w��� l����t���i#�an����l~�����e�s����|ua�{�V����c�:�uM���J�D/
���X����gP��qA\T9������g��S���z��GI�c7}3�w[�=b���T�������0��i�*��k�5�LN�UvX�M�T��{�S�&�\n�D�TE=�Z<��U7>��wWS6P�k
8�RU�
��vW���e���8,b�*���3y�vU���_ �&���k�lcU������wF�@Q����tZ���S�G-��wm'��Ji���iT�|��u���������]�g6��������XSw��+6�^�r�-�4k������V1��gB{�6�E-��,�2�����7cg-1��v��`�j��q�)�W!�����T�q+����i���2���X:�g���{��!�MD���]J�/�z3y(������]|+~i�jy�&�����y.���D���	N����8��=�t���>���{^z}�'h����7#y�������E� �&�~��U_�7n��b���Zf�}VH5~���,N�5���b��|�Wg�E��E�(�x������l�����H����+�3+R�,[x.�Y�^�)\T��nd�/_���Y[i��f{�.-_-#��Eo��-�;W#��-P�V,>-��)5j���2<��l����
"���w��#�����{�2����5������BT���Q1���r������o��
=���3�:�W[����?h�$�����_�<�����q���U>�h��R�����N�*I�/r����{���T�sE/'�:�������Z����J����(�;(1�����8:3e��+j`8sw��&��5��q���X��lv�������ss���O����5W�!��
j�i��5���tB���HB���[k�MtU!EtHkV�!��	��
B+�0Uv�-����W lOs���h��5!;��-"�c��\��-jj����\���[�]�!4[+�

,Z�
��8���8����h�1(f1����T�����������`����B-���+�Cj��d�m�t��bP�c�]X�d�c����w�Y�w�k	�{z�-W&5"��LcUr\���� Z������c����U!����mc��k�X�1�[V�1������@� n�B��T����]���*U��$�JI $P�5UU���UU�@H�TTUU�@����39��k�x������������1�����1�d���8c�1���q"z\���Ur�$��I,��q"Y"��q"}�F�V�H�J�U��D��\H�"��q"XJ�U������$��s�?��~���.a��#��\�K�gb1���wG3�)S�����&������Hmn��ldRv.�ZUG������������[�����QU�8��������������}t�|Wo��^G�X�1�t�4�1�c&L����1���c�S���&�r����II%r�\I9�$Y
+�q"X��U��Q*�W58�XJ����)%W*�D�\���U����$�O���DG�H3��y���_x�5��<��w��M�:�z�t���}	58��9^���~���b�rq2�*n<������K']3��`�	><����k�kt4f�FM�/wl��{ ��ax�f����n��}	���>>:~�=c�1���1��2v�c�;v����"��q��q
�U�$�\��,%W*�
IU����Ur� ��\��,%W*����!���o���]�������y����\vT�5�w+olU1P�����eum��������������7���'w��
��:�,����>���b�\D���[�st6�����K�`KY��%
Dne(*������v����<z�1�c�1�1�c2d��c�;t�� �$��\Aa*�Wp�UT�r'.\��,�W*�!U��#s��I����78�6I6���ARIU�����$�?'�f��~��7�j�����q(�k�8I]|nj7yj����"��V�X�zp9yWw�oK�;Lt#�r��`Q�eL�v�,3�KjYh��^t<��}m
��v��u������w7�M���?3������1������1�����1�d���8c�1���q�Ur� �%W*�
IU�����U�EW*�"Ur� �Ur� �EW*�
�*�Wv�$����~O��}���OQY���RG�;%���5�
�����v�:&�q����y���N8��u��3z��gmvP�v)���*������K�K��|r��[8�f]Kd4�+���9KIQ,�������;v�����1�c1�1�c��'lp�1�c�o�dIU����J�U��Ur� �\���XJ�����W*�
�W*�
�U����Ur� ��I�A�����:��������8����uP�n������Pt����d�Zt��@\�h�s������8�@m��;�� j.zj:��n�d�S��^e����J�����"�����MJ���-��I��;t�������1�c1�1�c��'lp�1�c�n�$��J��$���I,�UU$�H���K$�URIQ*��}��	6�j�JI*����RIU����>��Ay�������}��?y�9���Y�l�/��'m�p��?�))��AU��y,W#����Wi�{J���'ln 	�5dXX(��5���U�M��z��7�un�L���
�J�����k�4�������lI������;|c�����1�c1�1�c��'lp�1�c�n�$��*��NR*������I��m$�*����$���K$���I*D��GS����t���I,I*���_"�H3����8�Z�|~s������e��w$u�/U���+"���w0����VIn�/X�n��{�@�������k����l1�b�w}�mw�t�;I�nl� �����n�O�������4)��a�{���w�������x��c�LcLc�2d��1�c����\D��+�T�Y!UU$�I%UT�RIUU$�UUI%�*�����URId���I,IUU$�dI$�$����xg�^�����t�2��n�/�/����CGAx8�������@�����k2=+��uX�:��F�c��B��(�g����]F�m���-��V��N��%u<���3P�R���8�k�|��q���~>:V������1�c1�1�c��'lp�1�c�n�$��%UT�X�UUI%B��I(�URID���K"UUI%H���JI*��xq	*��������ZI�k���k�oW����<��?"��*[�������#�3��oW���5��V��r��2��B�|-2FZM�N���J���l�Vh���M���d�[����6�wl�^e���NM�l������utv8�[V�C90��>.�����/������eP�m"��t�����"sX���*�k&��|i�����E��pf��w�J5���m�$%�2�b7�W=���{�|�wF������!s�kb�a�����=y�1Tg=�}A�X6��lXu����]	�(���p�!$D����t+���W ����{�s+
q������>Yr�!V�"��c5���T<��
�Y��QT1�z(�����X��yN�w9&�ta�7(�N�l�������^�7�hE������������Z�d\�}/�M�4�����d����wt_X|��2�ty4���"6n�M}V����|a�MY��[���_c�tY���9&f*u�������Anjf����o)U��j�-���^�\���$�����1x5�7a�r���*����D�n���.�r4�q��&K�������)H�^��2e�w��:��W\GJ������v����wE�Hnq��s���h�a�3:��Xx�
`9#C��Gm����v�sR[��k�b�����-� ��)������p�M����-��"���&���h�)s��d�������|j$�:�YWx]�vlQZF��8#���[�3K
��:S��f���c���s�V&���6s������	�7:C��MwE��	f����]�5�$��C�n,��$����>���3o7E���T�����wK6�&wz�����{H�%h2��0�y�+2G��0(U�������H��r�b��f'��y{�����')A�0K��]1�<�Ze�ag0��E���d�w�j�JR-���(���o"�I��Y�
�$�
���'=��&B�b����f��MP��t�Ck�q�����gil��\0���w�+��`y�Hx������1<��j���@��vx�	���o�x�z�%�Kp
�I�_��� �A���q#�$�q$N$�;��A��w$���y$��xi���W��n�'��_����.��k�y����i�>�����5P+��A{����t���v���Cc����Lq���;����0�R�����Neq��S��x7C u���n`)�y�7(������G0�b����n�wK��{]��][.EW9%j�d��.�V.+��R�Q|��v���[J�L�O��	���Em�F�0F1����}��R
���z\�
i����}�r����
��;2h��R|�F�����g�WY�^����V����O�[���������L�o��� ����}�v,�}S�V.�1i��������/ST���a���f������������9��+$m�T�@�����u�_��^	|u�����2f�T*_�)eK�N�S�[r�x�T�>J�3��H��qje^'�w0^���t�;���:^=��Q��E+�����
��F�)�Z���2��dH��#D�y�������W������O�����U��z�u�G���P����q��y=�y�����shgY��+��RiMnX�MbicY�-�U��Q��}{����g�^���Q�
�}��}��0��G����C�t��^W��<;G�K��*�C�S��F6FT���]�rQ7-+���s+L��I���v�h��$>jf�hd{1Yr���sy��e��VF����Uy
8��������f��M��0N]\�'`j����e[��&��������r����wj3��EZt��2��� �k����c�H���	 �
;�
�P�+�3��Y�����0�#���g�]2��b�w��n�b�u�O��|v}��m�oJ�`��f�Cz1V�-e*�5���e
��S��DY���{g,XG��(i�D��$��=���o����Pd���W{t"�=}�jct���zk�5��L���Q�O��H�����u���wJ�* Y��1	Y�(��wE#����a��o0���V��_i�es���S���Z����4�q���*g���^�y���|mO��������ZyW������E����}q�(h��m�x������UW�U{�������-Z��gN����<��e���J��3}��z��/[��wq��b�pWC.��e�8�����&�=��a���xt�[�I�r��
�N�5f��&�c�,��
Z���Ww���si.������������~��q:t��|�s�4>���
j�-�B]�t�G�k������-�1�*��%�����gbT�!�!�Z��#$&����W `��jK�!��l������/wMHN��H�X��$&�Z��-vq�W&�"���EtHM��m��CK�l��0f1�6�c21�J�fJV1�.�es��k�e�c���@�[]�lZ���mf�b�\�c����T����J�1�W��l���� ���@�\����2�0+��
��5U!�P�5Wg`��,�@�*�����k���\��1�b��1�Wm�_oj���w���� Z�B��!�����Lj��(j��*�*�
�����*��y�Y������<x��������x��c�1�p�1�d����c��c��DA	���n
��k$UU~�&�m�H���UUP���UT*����~����>a�o��]7�3��1��(�i�r(�a��ne�{��2���!������V���2���v;�N���@)��*���tkP����pVJ
���G� 2�z��R���VeU{��������^G�X�1�c�c�L�1��1�x�1��IZUYUVEUU���J��$���UUP���%UW�"=�U^���������y�k�O����L#"$�:
a�PP���K1�m����Gr����b���S���z���s=2IX��Y�f=4M��������;��Z�=|����|I=WM�����=z�1�c�8c�2d��p�1�c�1�d�UUT���$UUR*��I*���UW���m��
��UU���C��}�����g���������.d��FF�)�
�d���Gj��%���2��5+�]�����=��%	W��J�=
1G���W$i�]$n����������o����t��~�?�1�c�c�L�1��1�x�1�%UU����UUT*��EUU����UUa*��%UW������ �����>��w�kE*	*�����F�)\���������p�p�)+,n�U��6�*��8�u2�:���U�������m-�L����x�,{oLu1
jUW���[t�}dz��c�1�p�1�d����c��c�UUT����UUX������$�UU���UUTIUU�$G� ���5����-������������2X�r�K�t���r���C�9,e���b6�T�-�W�3d�������j�&�+�"^�m��Y�SW��	=c���}y�c�1�c1�c2d�8c�1���$�������J��UUD���UT����UUY"���D>��d��s�3�;v��������� ��H���Vn�oo6�\�n��8��:hf�����adSF���@��u9�e;��l�'Z; �V�W�tR����u�{�����O�����1�c�1��1�&Lc�1�c1�z�UUR*���UTJ���UU"���UUXJ��"UUW����������?
�wE�{���en~��`���H���]�I�v�j��w$AG%�t����Wi�I>`���y)�����u��r�Q���F
\��p8v���d�x�t��#�*T���.^<x��G�X�1�c�c�L�1��1�x�1��UUD�UV
���UUa*��UVB����UTJ��~���$~y�{2��~M��������-J�j=�N�
>�]m�.�������8&c���>R�RJ�$wo����������E��v+�0��*���6����Q�[n�����OXx`�Q>����l}y�c�1�c1�c2d�8c�1���U���UT���EUU
���UU�%UU�%UU�%UV��C��s����K��]�-��wk�u����@>o��I�e
C�v�a46�ut�/��*����
��\1u}&�r�&r�-�e7����}��t�b������ML�t���i�����v����7���w�|w����N��G�X�1�c�c�L�1��1�x�1��UU�*���M��j�UUTJ���UUR*��UZ�$�*�����Yy����������+��2���j8%(c���G�Mb�]_WS|��W�����g+�
�����4G����j.�K��(��;a�WR��K{�5E����K��v^��[��jLR��[�F�
�mf�j�Lm���[����U��pc�t0����F��+{K��mh��c�$1WL�5}�.���R=�O^�0.��	���<N�����t����Uf[��ST���V�X�PK0���A5\Bfs�wi��lz52}�,Um�A-���I������X��^�������)�n$y���9i�pKY��p���Z&@v�/wfe��fow��P'�k�k�ur�&�on��1N�'.U�N�7�\'T�u�f;/��<�%�8��8��*��Z���B���s+WN�����1����)Ru���yD]���\�v<�
%��]i�P�b�h��U���V=��{(��9��L��w}C�`4qRA��sZ��=�>}s#�o���;v����;/2����,mfY6wN�x6!�L\L�B������:��4�j������"'N�j\�<�|���T��8�(4n%��n���T��QV���ms��ouJ��Q�m]���-]`E{(=B�;�����wj}C�K�v�FJ*:�����a�e�:��g�&������������H�'���*5�������Nk8R�	�n,��[g�bV^0{��)@�=��F��\�6x4��KE��S�):@�����r��'��`np#���D`���v��K�i�M�mLwf����Y���V��T��D	E��6��y�m=�,��)�ou�������h�5���`Y������v�������q������V7�h5+.�b*�]>#���v�B����`t@'i��\����L���QPw8.�R�Y2V�0h�=Y�����i�s��	����.m���\��/E,�������!h��Z���1CU0��������������W)&��� ��w1�i����Zq��\�;�N$m0���-UW����{�U�����U5-Zi��|�T�N:��D�H2H5�������=�������x��r��>�K�9�8�]e���^�i�9Jw�����U��H�${<5_N^<0��ss+�ki�=n�\-'��.�������:�$J�^��.R��m���g���{��S�5<��+z\q|�:�{m�$a�.AJv��e��M;�U�M^��P�r���CDIfJe����F�r�����X�u�moF�<Yt��<"������zW�2����Y���/]���f����H1+Gx���K��{*�H�?v?�^��������}�.��.���1�i��u���<Yv��>�p1���p�������k����+���}O���)G�X)����>x���OeEA�8k�X��[�q��u7��-��p�>i��5��6{�������K�
��DM�m��T�U=�vN�������<~C�!#I�1�:_o���+'�������:���A��p�
F�_j��VS�6�Qu���I����Q�z�����]HyLM<l��Y����C������xm���A�L_V���u,B� �z,$���\���)�Nd�W�yKg����k��O^!^-z*�$��	���W��}�6���v��+Oi����6����[��p�����c"f]["���e
��Aie����t�i\�����%gX���8S��:<vC��Weg<9��������i5���E�c7Xm�7���y0�i�kGq�&IQ�������s�.4�9E`�=��O]��W����kL�^*�.L_�����l��y���.�Pi^F�I��r��R�����=��%���qn'kzL�I�$�����N�V��j�.���������mY�nn��E_��_/E���s�\��C��+$�z\X�X*'����:R�>��]���(f3��Z!�.=g��w�(����1[F���o�����j��]���{rv�Xd��j\K��e��f>���^����-�)�~�R���P����_#i�S�\�8�V�9h�y����T�{ojV�3�Z�u��oB1�����My���������{����_������|���^/�����l
��p�	�Y)<N�=g^��h�M_c�����O�v��;���k�1F��.��LrGMgA��g^���X�N�I�m�)�(�ZqQ�L�8�2����{������������Y�{��x�����5_��!��
j�[��5��EtB���UHB���[k���B�����P�#$&����W `��jK� Z��l������/wMHN��H�X��$&�Z��-vq�W&�"���EtHM��m��CK�l��03�V1�
�%�3%+��V2���5��V1�Z�� �!�l��!�[Y�X��:X�1(f1�.�c2R��`��m��,�;��@-���-W&5"��L��0�1�UH@�T)�V�0[m���Z�Lj�B�ms���-s��:��c���c�{����/z@6����j�Z���"�B*�*��j�S��*���J�*�*����
�l��*�*��H�"H���$�H{��>����>�����1�c�c�L�1��1�x�1�%UUB���UUd���
��	UUd*���UUR*��i�$C��=���w���t����D��E��4�R�EeY:V�oT����I����������lY+�8����+8��������.��u���G�r��S7X���q��M[�<������z��\������G�X�1�c�c�L�1��1�x�1��UU�%UUI%UW�rm��*��EUUH���EUU
���H~��{�W�����_�o���+5cL��Tv�zw3/)�^�t������C����w��x��H��$��[+�u�jP�X	�����v���n�
e����]���Y�Vn�u�P��bn���r���~>�=z�1�c�8c�2d��p�1�c�1�`���UU
��%UW��$������|������UT���EUWD��$��{��u��������^����p��o���������&�*�G2�6�[X��D+��Y�8��2Cwp��X�O^RL=�^kd)�2n�T�.m6�;Y�c�:�����iw���s|����x�����;�G�v��<~��c�1�c1�c2d�8c�1���UVH���UUX�UUP���hm��T*��EUUD���HC�$f��+�������(mZ���M����vM�qE����YOU�;�u���j��4�feX�3JW�b:�;�Q�����/16��n���"��;Z�^;��\���WZ�����\X>������G�X�1�c�c�L�1��1�x�1=�*��%UU�J��$�UVUT����d�m��%UU�IUU�I!��
{z��7v�+�`�������M�_h
�&mV�V�yk���f����R��`��N�,"��(G��2���&��V�\Ui6]n�����������|�_ �WO�v��2<z�1�c�8c�2d��p�1�c�1�d*��UUY
��!UU�H�*�EUU�*���I��m�mH���$��$���]���|���e�u���m�K��L��d������SZm"u���b��.�J����rV
���^�Y`P��,�(�B%2���m�/��%V]��Jb�D���\��K'hL��{������{�������c�1��1��2c1�c��c�*��%UU�����UU$�UVH�U[�$�m�����$�B�����$W[���N}���8���j�������2����l���(=�vh���\������d;����e���q��m2V�;����|��gC��$������������[����{7\�\����M���|C���>>�Oc��c�1�c�1�c&L��c�<c��H�*��UVn
��m�6���mI%UU
��"J��UU���C�${�_���{oNW<_�w-B��J���Z������Q�,�-�xmY!3t�fV;�����Qj��m�eK�pht2�Rvp���a�N��n�;Q��mzM��Q]��m���:0�
�R��#�o�����#��c�1�c�1�c&L��c�<c�J���UU`���$���UUP���UU
��!UU�$�� ��7>k7x��_s��_�?Ld\J���Y�E&���J��.�*��P*��/VB�M�#p�kS~����w�B����\�m�B������U��d���+K���q�3t\���Z�X�gC�q�W�<�}��?^��X�1�c�c�L�1��1�x�1�EUU�%UU����EUU����%UU�J��$�UT*��_�`H+����?�M�<���L$v
�4S��V������r�a>��f�����(�+]���fZ����f��u%:`�Xkd.����|H���!��w-�	���Up�6�"���4[���v��^��m�d�R M�U�G�����U�������yj�����A(�����H���R|mM%���=W����]��*SFM���P�Fi���r�^VG�w3����]�j�f��8��6��e���ef&��K;k]�������J#��{���g�l����J�*^�h����6�k���B��7{9t�*^=������)�z���ru��U�y[H<$����\Y�0����r������eb�g��G���0X���I�j�8�b��zK���k]�h>w�d�Cy9A����������`�f]���H���h���6��$�s��1���������<��gg�S�D� ����[�����Yt������&Ud�x(^���F9�=n���]�8-%����vq|z���4L�vH���V���]���a�bf��N���6s�4"*:<y��y�k)f��R�k�|�l��������R��\��J��fd����f�v�������,�$C��m����G��Gn���LZ�:9�����7��>�	v��Wj�h�rF�7!nj���F,�Pd��m�;�����X�^�)[�����y��sib���U����lxb�3�����a���F�67�X
Y�{�9��\����&����Is�(���\9�x����`5�Lbr����\*X���������`��Ama	���N��e�gr�v�Y���=����fZQTt�g^P�y&[�sKf)�>CF�e(flyG�*e2Ac�v!�ecg������l�[#�����x�8��Y��4��T���F@�y^0��z�4��M$Wc�Y���],<iS�]t6�^���)���K�j�i��r�mmH�'�M�T]u+lgM�F�<u�]uy���pB���$5J�:�
�#�i��N�j�5e��/ZZo_m�=�����������g���s���q$$�� �D�"pI�I8�D� �I�'�}�����h9e{]�����x�^��;��r[�A�@/m�4x���f�~���6+]E>&R����������MLE�hvv9�����m	����rb����A]��v�D>�5&�h�&4
������^a��4��b��8���J�`-}yh��?g�:-u��4���������m��s�
�9�T��i
�Sy�j
\t�c�
���R��O���J����[X�+�eO���X�/"�w����O�E���Uwa��a���� q��w�$��b�O."��;����JA
Qp����u.����:���^A.���Y��6i��\fV�>N������T�`6���k�����o*[����E\������}o�y�W�z��)e<\�<!���-V�������[�l�-XAe�ah��WN�2��u���!gC�B�v�T�lV�:?[��h����;����+.']d
�����_%4	���2�����P�M7������m=��4t4����D����4e��l��}�:v�+����i�'��Y�^6Y�
�eKo��R�;�.a�=�����Y��H�4�2we:�/����2��u���VBFE�J���2�7�;�N�;Q���Kev�q�	���XSgS����������9�]����o@8;.��]g<U�vcoc���b���	��M\}o������Q������U�;|������8p�����,V���>���/><��9�����[$Xo�.��_�}�=H'��~w$����8��=�8fv���F�,�Y/�!�z��������������p�A�����LD��wG���Q����Wu�9eg+C��3q�Wj�����>��'cZJ<�yO!����*�����s���&��	<n��������D2��]�z����:N��c�r��������V����T�^z���wJ���_]���y^���1��E�IzQ��u��La��:VVZe{>�g�h�9��qm�B�.,����Ia�N�eKU7.X(l��Rr�'0��?1�����������=��%���1�;p��-^G�~IK����|���u���Nwwg����)9*U����������)��
�*P�]�	��~h�Gm��e��s�b�V�����%;Wn��X$E���2�D��ul�;���wv5n��i'B�qU{���o����{+�����*�JW��
j�-�B]�Uv�G�j�M�t[,[mU!K����MHER�WD����!�!4W&�"�WkRX�i�v�g���}t�{�HBw�pZG�m��!4Z�6�k��j�5!�&�+�Bh�V3lX�pe�����8����J�1(f1�)X�d���i�ck+5c��LB�Bmv��k�U��
�G[X�%�:���f`e��Z�
�{e��x�����B����U����\�W&5"���1��&m����T)�UH@�m�u[X��uZ�V1�c�1�b�oz�{P�H��P�-UB�R�U!EPP�-U
cUPP0)@�EPP0TT�m�@@�ePPbH���$�H{��>����>����{�����1�1��1�&N��4�1��Mz�+J�TIZUX�UUYUUY
��$UUY"���UUXJ����C��~_~�DN�J����<�M������	�vE�yWX�i2��9�2��ye�3kD����E9V�`��q�z�l*
��B3R������,�[hH���X����|�m�z��n�?^�z�+�1�1��1�&N��4�1��OI*��%UV�EiUH���UU}�$�m�����S{�&��������"#��}��������5��i�c���+ry�!�c+z��b�cz���1/1Kn�9{������L����c���-��,8���5�M�So6�j�F4�{�U��������=c�c���c��'lcc��c��$���UU}�m������UUb*������mI*��*��n���nq��w��[�����x��5��*�taon�jmN3.ASQ��d��{�J�����b���EY����r�m��&�}�����y#�����[��#�Xb�nR��6���zW�^����v���1��1X�1����1��2v�1�1�x�:u=�6�m�UUT���IUU���'�����%UU�IUU`���$����I'� ��|�|��������f���e�w��m���L��He�+]�n��[�2��i��M��MRY�
�t�����F��-E�Ludg���Y��
J������e���b���$A�F���>;c���=z�+�1�1��1�&N��4�1��OB���UU`�����m�����UUP����UT����"#�$y�~q���d���u����F/.�PrHqE�x�VK�����E�7�5&%��wvU��Yn�m�d�W.�^������������y�X����vj�_���bU�%L���.�����]�+�������b��cc1�c2d��cLc��t�I*���UU�nm����UTJ��	*��I*��$���$�����${z�g~n��w�|��?-�9GK��r�V�^���r��\���v�����w��P��,u.��je��NaJ��n�6������GoV���G0\5�Y����G/��U�����m��O���^���1�m�p�1�d���1�1�c�1�����m���������n"m��TIUU��U�IUV)$���J��gP���k����������2N�b;�ohGuimd�J�Z�mVe���+ne�w�Z���
��S0�j�P�x���)lH���nj�KV#��R�n���F�cJ���:�:���Z������I'����_X���c���c�L�;c��<c=����U]��6�m�M��m��"����F�m�M���k$�U\J�Ur���W��UW���_��������t4J.�B��`X1mX�vV���)��C�u1`M����a&���{�/k6�h#�E��h���:�7���=���%���m���D����*]�,4q��I��v������X�c�6�8c�2d�����1���UUY
��T�V�T�UUT*���J��UUB���UU{7���}�z�����s��~_��/

yN�
{Y��~�W��5�zp�z�4�Y�������h����t��D�U�e��!W�B�����ksu����
�����+=��f��K�(�.����F�73U����w��������z��V1�clc�1�c&L���i�c1��$6�m��UVNv&�m�$����U\*IU���UUd����UU~59���V�|
������4?Lx��
�e�����s��P�T�m_*�0���
��9�sc�Vs���G2��gY�-3������h94qc�U�b�u}{�1���&%��m���iMk��r��]��&'���u�������H�R����C����K�fVhZ�2XxR9�H�E��Q�4���[�b������3c�:Iv��@�<^	�];:r�<��~6���1R�n�
�h��������;0��5����X����L���w����D������f"��8
������]$��]�6�e������"6���+fVq�pei|�o�A\ow�Ov�������$��z�����w���eF�7;a�:���	b�]}�����a}g��k�:r��xa�x��Y[�0Kd`����^�3-���3/
��8�w���=����m��G3{��)}����e���������G�J��rR���'��i�y�>��m���'x[t��w�/E���Q��:Q�@�%Vf��=��3SM����`[���+�0
C�4�v�md5�d�j��W�Bl���f
��xBN�u�}O��-6��K��8��k)�3��N�w.���;Bd�����"Fw������H��l��<�>ilw�f<7~@^��V��m�-f_d�oyk�Qe�Ht:����Ke;l��S���B�{X���A�ny���w
1��Nu�l��3���k��e�����ap�W�b��[�a��t�D���]�]�f��
�NIN-'���B)u�����A��k�
3R�A���&�,ld��b=b.�|����g��
�k������\������GQ��	��9�R���d)aD�0�RRy'*��:��6��#��+�:��{v��3��P��'e�<x9��V���|�R�,�T��n9�(��j�����W'7q�u�.6�mn-a�>4bW��%L��w�mp��}[��������W�n�����B������]f����H�]c����.G6��:������N���Q|a��J{�UyW,�����E�gk���6�bR���P���-�7y��;u��k}q�����d�� ��w$I�[W�������J�uZm�����U}�����7��e���-��0-.�X��$��QyW�emm������{
]�����N���iY���k&���R�4.��m�5�OE������V�y�<��GZw�t?oaNv,�d�V�����b)��C�]\��^������qR�BU�W0sM�����:7��Q��Q)�;Z��C/���<SQ](^g&f���Yue�{����H���UnY9�do%��8T���3i�-'B������#�����K�D.8�N�1�Yh���J��srY���#6&2�w����I ��zwsQ��TN�s[��UH�U}���;S��oE�m P���'t�5�NDj����R�o��1yR��/�Q�t�+�<w;P^�1�P��J@���+b�{t�Y����$[����n��Ov���%�M����[�r;yY=���u?<�Q?�g�7{����^������3��w�C�[����o>�c�E����_i��������k^�N$o�����2n�
M�����]K�p�N@�`�������S)���J������1�m�-,3�>�2M/���z�V�|�Aye������+���9��{����6�-(�R&��[\�F/>]��#�9�4&���v�����b�Y���[2��5�-��a�U���_*yR=��L5Gr�TF��o	ZY�_G[���&�����*����%{W�]��� l��^�w[�����@{^�vk7�\��
�G������f�����jt9|�>gH��:aY�
Q]3z���������uk�)[�(ie,(7�u�t�������K�"�-�jU�X����vq�,�\r�q~����/��d78Rc��wf��������|y�%w]!+�1�(�E��(�n[�=��7�� g�O���e�f�u�9l�I�J�v�������q1�=�[wP�IPy�����-���!���lL�
�5�[o7�n��	�����{���z�{{e,��2��s�kyI0�X���4������8^����
��'I�L��2=���v�Q���dL�s��S�$�&k�d�O4�����I��������~�W��������o�����&�:F�h�R�A���]��Y�U�(��w�v���}�Hw]�9
2�[v1%i�l�!����-���Ga80���<c�
����/.B9d���w�<w�:�[����]�c}1����'�O��>'�S��9�MW��!��Wktx��4�]�E����R�����Z���U!EtHkX�B��ErjB+��m�l�]�v�W����4�{�HBw�pZG�m��!4Z�6�kR�rjB-nMtWD�����Xhib��m���c�j�3%+����d�cR��U�������c�!)E��:���5�c21�����J�uK����k�pn��;��mP}�x�U��H�+����LjER-U
cU�L�c����SR*��j�\��1�\����c�-�c�v����0e�H��P�-UB�R�U!EPP�-U
cUPP0
�EPP0TT�m�@�eP0TT$�"�2H�%!����>�����{�}���X�1����1��2v�1�1�x�:{"J��*��UUT����UU�����
��$�UY>�$>���!��������*0$AX9S2����;����Y����R*�2��n��oQ;�=�"�3��b�q�sB��������t���li4���/)#�!@136�ffJ;y���^���{|�������X�c�6�8c�2d�����1���UT������*��*��UR�����������������U{���:���[�`���CqJJa����m[S@WJ����[�Wvq��f�	�
���S&�l���^36+�[�%N��Q��U:�"���n(��%Y������:����������y�����}��c�c���c��'lcc��c��w��m�"���UU�%UV|��O�������:lI�-��B���$��+������UW��I���+�j���M��gt�������Cv���oM`z��H%��$�kq$����j�SI+��	�T��s����F�V�Z����Vc�����f+4'�{���g��������X�c�6�8c�2d�����1���I*���UU�EUUHUUR%UU�%UWrl���M��&��m��AUU��$d�/��{5��:�5�z��<,�F����������pO	�+GJ�(�����+�su����
��J��m�N�e��f�:��*����
�
�X��E��~4���=�z�=�~�v��}x���c���c�L�;c��<c=	UUa%UU�%UU�%UU��UVUUT�UUXIUUR*�}����z��UU�������K��a��ie�o����bt��80D�!�����a�<�4R���9��j�]<tF2����n��jI"�A�����:kN�������kYU�X��'�sD��L���9�>;�s6��j��?X���c���c�L�;c��<c=�*��I*���
��j�UU����UT�UUdIUUREUW��� ~��5��_��n�������;)X��5X�%t���&�O)^�F� ��i��2Z�/u�����A�����o��v:'
�	�/6����@�o(e�h*��mM��m��Yah��wf���QM�/�{��5������	?�Wn�_�<z�+�1�1��1�&N��4�1��OH����m��V
��V"���$���$���UUP��������H��H�d��N~���I�;���!
G";Y[�f,A��1V��s��4�c���J1J:�weH!R��)��P?m���M����m������*�yf�\�uu�ya��U^��oY�m��$w�����	�j��O������1�m�p�1�d���1�1�c�1��$�UT���%UU����J��������u7�m�
��nqH�d�=�~����_��v�
��%�)�Z��i�^��Kz.J�'
�e���D��Ij���,�Y3
��� U �V/-�c� 3��y]�X�q��j��71��T;5��[�{���7�d����1����X�c�6�8c�2d�����1����������*����m������UUTEUUB���UUj>��I�*�\O��?}��+�t�J�C&K��Wv����i��9zi���vw��X��Z+*V�j����Ok����r�I[�
�#.�4q�����Y$-&�w�����}��y�R�������z����������b��cc1�c2d��cLc��t�����UUY���%UU�UUbJ��IUURJ���I��mS�2�$��5z����_�v�]�.�nXr���(���[�n���LfC�2�Oj����E�}H�t�=��z�6M�Y��E�5�d�� ��mWd��{hqe�;�hW
:�o9��X���}����#*]4�Pr�B�z;]'����	�(o.U����q������r��
8�C�����Z[��7gmn�=m���zk��V�J���L����c�v)b��b�����G�]v�jZ:h��>�������M�eq3xm����yp�MP���a�:��Qlt+,�7y�S�wJ��p�����!#o{�q������$r���"���h��;&Xy�+��R�nr\��h�:�Z	Q7uaS8�2+�
Y2����Ir���D(�y�tResU
nwLk��$_�'�@�N�e]�P�}�h���o��2z�����sl�N���!F,�t�b�7v���e)y;�x�*(A�k6�����D&l��N[�����_S�T.����Z��v��8jZ���J����FF���;j�M�@�}xh9����~@Ya6�[|���#����F�w�lur����nf����@������|�2������Z�S�U������GixxiY������2�.�<���T[ e`}��+�%����������&����I�g68�2'��;x�n��	���|�
vN����g$�<�,���c��D.�����t�4�Z�����(��M�nN5�gXdoc�{��8R�oyA�S^�\���qa�S����{�tx�d*�����F8���'�����{i�s��6��{+c��1��b���*yuy��3�����
����q����=b�-Ea:C�
mM������I��.�|oQ��I����RIpp���X:�:�����v9������(�u�L�o^������%.�����fs�b��l��;�:���5Wz��=�1�k�����)(/�S�XB�A���,���Q���.��S��y\in:1���J�d�_fomYA��p�1e0����toM��C��78�5]���.�y���9��W	�*��������2A��|���I8���������6�+[�[o�_}�p���{���3�x�q��S���]�h���Xk���f���rx���+��_
.�:d�i2��]�	��/�q�j����q���2���%�,Ct���3u�-�V��Z���x�CYk��y\��b���x����M
���[��b��o1���I_JXo9��wMt�m�z��aK.�,xp��q��'l����`���k����,K�7y	(�X��y�����*Q8������<T� -o<Q�;�e��hFk�,�c�������}�pfK"q5y�����
�[\����o����`�Mi��h���w���4��+~�����O��x~��$Kw_�A�%k�5�����uorU�������,6�{=Lu����/����m�����,�,����Ymt�]&$����!�o�C�%��9�g�a/��:l+�L�����V^`���"��f�g]�J�A}��M�&���wGn��}k3��
|��~��$3������5�o;\�����3JX���V�xk'fu=�Wu,v�y$�������C|����o�T�*�7;/@��FW�^h��1w�@x2��������@{�A�^��fO
b������hX�����3���n�{���%
!|�2���S*�*��]��$=z.[���JUd���X4�����(�Vs���R����{������og%F��y�2�N��j�r�t�$�Z��x[���yr���2��*��Ls���v�n-�e;[��]��*p�O��-�+�=�Z�m5�h=�����W���gj-��y�
�bL���.��+�K�ou'��?K�$��L]���C�{�_�8�����t�g��Z��vk�����hK�3f��Am�!����(�H����b.�������+y��m6ul�w��b��_��N��a����Go+��Q�[�����<����)T�b�[������ep �i�����d�f:!q��bY>�����5���Y������
��2�8�u��)owv�6���^����Z���c���?��z������/(��exA
����n��j���BV.�+w]����X�vp������z���"��f�����!�Q���U�����kw^������G�l'��

z��Tn�:����u��g��������b�??<��Z����C@*�J�t��@�#��<Z���\����UHB��3mk�RT�!�
�Z��#$&����W&1��j�b��U��^{����E��!	���n���X�!4Z�6�kP�esH����kRG�c6�a����l��03�V1�)X�%�3%+��U��6�mef�c�q@1HB-���-v����M4c]mc�3��V1���k�pn��;;l[T�{�!�rcR*�����l�C+��T�U��j����lst��
cUR�[k�X�1k�V���c���c���������w����
j�B��!�����Lj������*�*�
������RH�)#$�"R��_��>��������������1�m��2V1�1�c�1��$������6M��rY$���*�����h�m��%UUD������|������������m�V����O��d�o,%1;��glW=�����X�*x������K��	��P�(4�'5f_�X���d�lmVc�e�V�p4�g&��Xh��4��*[���V����q������>�x���x��clc�6�L�+���1���*��6���k"UURJ���UU}�I��m�lm��X�UU$����@�$����~[�<��m���5�]h�;B��K2�������V^��-���(2��.:�D�N�$������##������A�s�1l��C�b�+�we$Y�\������������^�7���t6����������+��cc�1�2d�����x����c���F�m�$����UVUU*��UUb������*����d�^������V~��X'-��p�[��D������R6���)������.U�2��L�����Oh��z�����h�\��= �D��mJ�f
Ql�kM�Wf��8lv
�o2��bffGwc��H�^������~>�x���x��clc�6�L�+���1����UV���%UU�UUQUUd�UVEUWSq6�m�J���{�������7�~�v����H�dSK?n����+3d�=��d\�*�-���yZ��<�s1�NY���%���6CXw��S��m����e�wh�!Y�NV�0�����N�I�c�[&w��]D����?X���������1�m��2V1�1�c�1�����������UUXUUY$����UU����U_d!�H3�?>q��������o�_;8H�7f�>�Q2����u.�LnM
.��L�3+n�(�W--����W�G�R��{�c@�^G���s4�� �<X��u%M�������B����u�9�m'y����;k>�[��$��*�����^�x�1�m�c����%c��<c=�UUb��T�*�������UW��m��Y"���UU��d��x�{�y�7�����5���u��N,����B�{P�Y{.LAv�����wZ[t�A��.D�JIW~�2�3r��6NbZ�f��so,fy�#��^\��������b�
���Z�}9�/������G\^�>>9W����^=x�^<c��1���&J�1�1�x�:z�UUQUUaUURJ�����f��m��UU�J��$�U_dI$�$o�{�z��_���g}[��-��B������3S&���-W1EG�N�iA�C������u7J���z������A6PF��w�Md��
�HR��IZ*b[S������X;�u�������u�m����_^�z���x�1�1�cc&L��cLc��t�UV%UU����UU*��J���UUTUUR�����A�?:�{��<�\����Z(9�5HW@L�k!��h�w��p],%�gD�]���a^m��j������P�T�����jYgko1^�.M�b�L�i�L9ed�5���j�������+��cc�1�2d�X�4�1��Ob���������UUX����#m����UVUT����^��U{����_��+Q�����5c��B���[�i�HT�����0O��3Y2R�.�v��P�omK.���y�K']<&2�d����+�
�R����w��y�4��OX�}c��+��cc�1�2d�X�4�1��N=�Ur�$UUY"���UUT�������r��������l�m�����m��Y�����������Z#����Ki�F����������,��@]�^K������K���Ec����cs#�
��)�q9�L�g3e0�F���t�����t��:.`�;I]Y�S`���p*z�:\��EO�C�c����M`8��C�v
1fh����h�ON�����{�����������0]=Q^.}����jZ9��:u�H�	��3^�5Bbb^���vU���mhit���}vs^|��0������qv�������o���z+2k��j�w��2���E���<�
Wr	w]]����R)��8�@;�L{�oq���l�������r�s�^5��y�f��X��R���f��A���P6�������d�a��f��*�����
�M����{�zKJ��,��|�Yd�8�HI}�!�������S�S ��%��ci��O���9@�y�����IO-q
������E����1�N%����7f��h���E��I�2������/c��7�{tu�4�u�P>#*E�4�f���,�����$Y��jO[y{�YkK��J��
J�t2�+.��*z�����R�o*Ce��:��jq]�y��AE1��[�(}/�(������
��e��7(�m�'
����U�I��FL�6��L,��j��3A�/���)�z�mZ��P	s;#������=0�U�X����\�<����n�	m���e��P�� ���[�@I`k��]��\��ws��c;75-Q7B�\����e��P}�/z�"]c�	]���2�a�/�V
������]�u7XR+���s����d�;9P��g2��@��M/S{�\�X�����.�u�����qW���Q-���9�U��7|8��w��v:�����J���=�P��J���a�r��S.��_V�����W\z��#]8jS2q���mb�}h��i=z	��&�R����,��1��0��s���H]���a�ZZ��(�r���d;�de��wY[[�8O �,���9��T�+�l�������-��\�A�H>IrA��d�~I�'	�ml����6m�����YU^��������~���`n~�g�>��p&3�1��5*��x~��C�f|�<���H�ur���
Gp�.�r-�mm�%��R0��wu��u$������-���mb��Dn?JNU��X��f��SRU�������7��4�[�3mZ��������qe5�|�*�vI�	�4��jjB,`/9v3Lf�����tC�8�f�fT�����f�"������n��Z��2�+pi�V�������
6�������@r�~zH��G������d��T�f���9�E���
�7�7��!�m�5Xk����5fg��wenb���k4�p�����5�%��m�8)�e<��_Qa9�neCv���l���}Y��d���;��].�G��-*�b�L�!Q`aU����]�qog
�<��*k���ZS�W�����YK��k���wCCgk`g�7��l�W��]�N�W�J�.�z�r��D���S��v��M��/o+�� �l!�����k���;�������4;/�qc��=���>��F�+����������W��jf}��N���)�����n�
.����������[���Q��)�w'�=u}�x����x�6����"�[�����o��TF�,�����I�u���2)D��;WgH<�3!��k*nR�9e[��A��!�U�v��-7���������%��w�P`R�Z�/�������go,�EGj��zf{�*�Cf����ji����9t�������,�y�L�K�z�n�8e��;���3�i$�Z��EyI������ir�������.b+3N�{}��X�F��X�	 �^�&�R�����x���[
������t�� @5i��0:���r�/b�����V��OcC��H���c��]Y���]F�B�TyZ��\��Z�s�:�~���:�l|�����N���w�Ac��U���` e5;h�ZKp}'7�.���!m��z����*Xs�~�4r��7f�tdu��YY#�y:�j]H��J*��9����p���&���������fGY�,lw�Q�\0�~�:/�LB�����z����U{��?s���,�t���l
���f<-�����)��6�����^Fp�h�cl�W%��-MB�3���/���^�b �����m���On�TxJ�x.m��������O�����
~~�J��e��G4-"�o�!	�]�Ev�G�Z��+�R��j�B^X�m�rjB+�B]�eR�b���\�����5[+],W4�j�[�g��_]4^����j�����kRE�Cm��
�W4�j�8)�!4x�3lX�@6�]X��6��r�1�C1��J�:��m�M�YY��-\B
�E��:���2�2���k���c�cR��9��mc�m��ggm�j�[�{�
j�LjEP0\�
��`rcR*�
��1��0[m���Z�Lj�@6�ms��-s��:��b����c�{������ n�H�T�MUHBT�!@B��T)�U@@�`0cR*�*����
�l�*�*�*�*��y�fg<��s�m��>><x���������1�m��2V1�1�c�1��VW���m��,J����������UYVVU'�m�6�J�+>���A�����y����i����	�K6!�"st�;�'���Y8�^�����-F�������#Q�Zh���v���$��I�E
�)9���r��:����������~�Sr���>�������1���c�2d�cc��d��%U�dJ�+VI+K+�����XUYVEU�d�VU�Ueorm�����UU_�U�z����������?[	�M�4����� q�*�%��Vd���Vu���O�mcS0[��FaU*�GH��mGZ�O%���{�fB�ZD�-��*���Z��Sdh��t�3
���I;r���������+��cc�1�2d�X�4�1����UYVD����UYVVU*������6�sk�����m��=���A�l��g�s���>}�S�S�{�.�STj�z�����i\n�+�2���F�����K1������X
�Djh����nRT���,�����i8�B���~�l�+`�{����qvJ�����_^�z���x�1�1�cc&L��cLc���=EU���6�sjJ�+sSq6����UYU%U�RUYV%U�d�VW�I$���]��?<���w��_{�k�iG2�n�� ��!����9���������i����#����)��m���(���)�fb0+`I�L�������vh�zd$6�2������������^<z���x�1�1�cc&L��cLc���=�VW.\�\�s9n�������.g-����IUeRUY[�B>�=|��8��>|�������IW��lO]���!*Y�Fm��W����L�U��`sn������3YPK�n�2��[7F'2c�
�+t�
���H��VFU���mz{=<��������������x�1�1�cc&L��cLc���9r�r��-N]J�*�Y\�s9r����*��\���r�r�S��{����~�)���S7����-B����F�K��f$�'�����[��2�nb��nf�U�����+���n�BN16=������a�a�v-k��uw;�Wn�z�����^<W��6�1�cld����i�c1��.\�����8p�8C����*��\������A�g����~��������#����-Y0���\�B���vM'\�.H���J�oa�+WWyq��rk���^�py[=U��������?9������i����}}z���������1�m��2V1�1�c�2t�����.g*���r�r�����.g.\���r�r������$�d���g?�����a
��0�-�Z�Bk�f�7��F`�A-��Gb�V�fe$E�F��`�u���n�*���*y����;���(sN{|�������lx���x�1�1�cc&L��cLc���8��S�$��U�VW.\�\�s9r�����3�.\�d�����\}D��H;o�8�������<���u�h���3hVhh������f���-����V$A{���/j�2�#S*���������~ k�G^S�l�z�H![Z�^�d����MH�8G�W������^<x�1�m�c����%c��<c'N\���r�r�����VV��m��r�r�����U���3�i����_����'��I��?�����R�	<��u���:��;��w�m>��_���R�z������kz�Q�'�_��?�����9��M��	���zI�!=$�o��������������;r���<������M����#���F�����G�I?�����G���?��C�B�?��I����i�O��K�;�?w�1�|>8v������?���#���G������i�������DI��������8����A$t�V���mZ6������iYc�p�.�p���rI��jqB���>H�!N_�'����&����8}I�/��?fHBOx�I�UmcmZ��j�nkj�&G
9p�&9z�t���'�Oc����$A	�����I9U�I?���?�t��O�z�$j,!NX��-��s�$�G��1 �'����u]������V����U~����$������~��p�����Od���������������!	�I!+�����~�G����#��?����d����N��"A	�_���?��>=�!	]G�������x�����H��\?��O�:��_��|�����!?�N&�����-��}��>Q$��Y$��AO��`��W��-^�z�R���o�U���7�c�����r���H!	������N�$�����_���O��$T��$�����F�N8I����1��Bi��"A	�x���KQ4����k���GO����~��!B3�#��?so������y"O���c����g�}��7��?�|_������?[m�|������+�1�����������z������~O��r���R84�����"�� A	��+O�����;�<L!N\p$��?�:N'rGQ'I��o�~8���}$��Q��pI����:~��m�����$���g��$�7���q�Q���N���8�!	��o��?�����?�I;L!O��?��l��g��1��-GM������F�5$pG��N_������8s�_�N\v��$���PVI��S�S1BX���  �����w�?���{'��Hw�+mHm�J��CQ�M�i�maljH�UR���P4�6iT��R���mhT)*�f����6��UZ4�D�4LEmm��j)mM��i�#m�`�J����9�#p^�Y������,�����kI��l2�UR�V��)I
�-j�)M�m�����Z)MD�4�*f3f�V�Sa�U)4�j�Z�%�V���fIHU��E$*��E�mYI��l�d��Z
��[fF�������]���TDUJ=;�:u@
�w�X�1��a��61��a
Uv���!RZ��@�J�u�*���p�����������n�����j�*vfY��D-f��Gl��D*m�����k��d��X�7q������$-�#f����"��B�D%�<
��6c��p6�p;����,0#`v ��� ��[Kl�Y@
P@�����p]0B���k������T�.�"Dk+���QDI"��^��>
��3,V����N0�;��pBp�"��RQ��*rwiHP�E�Thk3�x{�
�����
��Aq����-dj�V�'}��T�JB�[j�c>��60l`��&�������[�	�UT*�[���jR���!T�R[�xo�e`��#ac!��n�w\�
4l�jS�����)�P2eP4�>{�X{�8����8���:��
(%S��UUO��O�?�UUD4�M
0MS��T����`��#@���E?C	*%T�	� @�d�d< �(�JFC	� ��L�F�	=R�#��M?SD�Ti���6��4� ���~���SR�i�D�M��@L�h�S���������8y�'/��#��w$�����q����x��o�cn#�O����|����W��C���j���������W�������+��;���������������Y�*�
�h���k���_�~��������l��j��'�gq�'����o�8����I��I�����������4���;�BrHB��6n�����o�W��6�����[�&�����bM�q,&�o���$A$�$�0 �:���������"�I� "D��a 0$2�|�2��d���&L��`22	$&@�L���BRRQ��L� �	�&d����P��e2��R��HL�3Ba4�$�I���$!D�A��#%�J������d32Nq!$&@H3&I �D�	!�JC2��2!��! ��33!&S&fa>@@`�"Ld��@A&&L� � �$d��$!2�Jf�"Ba ���$��	���ff$�3HI����!$�$$$HBS%��"I ��Dd�A&2d��H���c�! ��	$!0�HHH$.\��wri�.DI�""�&a�&fC! $2@u������d��!2d�!g���&I
RJe3JC!� #$I�B��S3L�I@I�$!:d��$��H�(e�1!%2D�� H��iJdJC$IDE1��c�c&L��" 0�r���$IM	��%4L�����	&H���d�I �	��D����II�L��32�0��)�FfI2�E$�$D�I$$I������  !��FLi�B����&A"D��	�f�I�L����BHb!�&a0�����@�$�$�f1c2� I�$��2d��&1�FBLb$3"Bd!1!	����A	��S)�e�(D�AL�1&��&�"0@Ib1F(��(�H�$2&B@�3@�a@d�""��%��S2d�!!	�2	�
"H��$`�b���"))1L�1�	� 3)��fff@� I	&D�!(14�E�&H�L��`��$� �	��d�$�L�I�1)FH��%JM%&M%&H��$L$@&d1�`�d�PQ�B�FB��&	=:DH�D�I1$<�I$�$����d�$�IDF"��2bL��$�Eh�����`#$d2I"I@$%!�d0Rh���d���� �$b11��$I �$F(1I���4�%&���Y4�!� 	!��L��)��~����D|�Fa!d��)33))3! BA L�b�E		$c�`�$��%!�)�s�BbB$��$A$��)#!��H�������BC1�C�e2�3L�
BJf�����H2RD�$!(fH	�%!2&H���233!�H!0������!$I�!�D22D&Bf		H�!$3���@����!$��H�L�I����RE&
(�% �wc%F"�0�L1	$��2fRD�2����I�I�e"RA�4�LF�4x��a 1����2	��d������H�DQM%%�F�b����&��@3I$a$!"@!��LC2fHJ 
# $�����1DE�D��A"��F0	"�����J���N����	��b������Z��������$�FI1I�1$�)#&$�c,��,���%!�@$	I�&D�z���H
�#�)
LIIID�HLBa0&d�#HL�I%$�@�20���M���H�@����H� 2DI$fD�b3 0&L�Id�"%2��b�����2B��	
dI)�J�	�@	�C(��0���	A�� ��$$�3!&B&RBd���$�d2`"�$��a�\��LI�D%I���LA�aB���"L� �L����L2f �#$d�H���IA2%$dL�LH��0H�$"P$		��$� !2�$�	2D	(0`�I�)$�2I&H���2�"1���2BI� �H��3$�w�  ��R���2�a2�e#3QDd"2PA&�1�J(���!2CF1&#��Q$b	(��fR%��H� ����I�0�&�F%$D@��\1wtE&$�8���c���`����JH��& ��0D
 �"I��2Pd�LPi0Rb)"0@�I�Bd �L�	A
�33!�2	3$"����0AI� �;�RII�h�I��4�X$$0�i�BF��
I2&&!��P�I�����&$�d2Db��H�&`��I&���&L0!!�$!�	�!"�S@`Bd�`$�d %A��$b1"'v�s���4PX������4P@D�A�$�0H��"H�L�$���H�3(����!��fdHB���"@��a$L� a#�
&���&` $�eII HS!2��2RA�$�
�FL�1���"(�0Qd� A�42JB"��d��!2S#20&aD�I���2`A(�$2$�����Y2RRP`�A�f���FBI!�fFd!&	���D��I�"�CL$���I� �!�B$

���h,S0	d���fO���HH@�I(L�&�%$���"�x�Q�lh�CJ%2bI 4��H�PDI��`�	0"��" �Q���D��H���Q&M%���B�H�H4Y) J1E�D�Ba����DX�A�&1$DBfB��I$��I(LH2���$�D1`�I	R`�H���JX��PII�4�D�ID ���
`�X�F-&�BBD�m�A���1(�#u����CHd��`D� ��� #Z0Dd&$�%JC0(�2b1I��4�PR`� d���� ��M�ADE"c� �P���JH��D��@$4�I�0��P!0���t��A ��2LC�"iI	�B$�RQ�X�`dI0`���#��(�h�Q�4�BD��	0�$D�0�2A�0$�	A�� �a � Iy���e2 L0"`�H��02!0�QBBPl���hH�1�&#Id��M�DQ��b"(�`�6K"�ADTh�E�b�HMY�E"(��A�3 ��1�4A���&�J(��)�II�4BcH�&)�i�2��L��4j

�b
�"�J���5!d��4QF��F�,Q`��IX����ch0Q�"�E�64i),���*�6(��X���q�l)�L#F�Q�LF"�$1JP&eFHM���1F���Z(�&�F
�����m�Plh���AQ��Lh� �$3%#"I����$�X�&Qd��i)��J���,m��"4h�,RQ`��$2�D� �$AH0FL�"� )1�I�1(��DX�Sd���4 ����)P$(�
"#Y1d��d�f��Bf�����!�����4(�����D)E��1�
H�H�QD	����
!@fh	
!H"	cbL%I�1�D�I�
�$TZ�X�VB��RQATT%d�"0m�F�QQj(���	2��0��BQ������|V�[�[cZ2@BD�kQ��ImZ@H����0I�Z�2@D*�I�&I��&	2e���UZ�Sm���&D���%[Q$H�BbJB��L$d��i�	#  �Id) ��	��_N��	"���_:�����������~�������M���_��!�	By;����G���+�/_��8Y�}��q�]��~,��������I�p�f�eljf�f�B�,m�E�nU�F��QQ�mo�nj4j4�ch�
h�Q�;�[���*�k���@Z6�jKQj5��k�h�Z5�Z�kr��Tch�-�E��b�cch�1Q�5�6wj5\�+\����m&���Q�j5��
S6�X���EEE\���kr��F��u�-I\�r���Z5�,Tj*��Q��j
��m�5���5sW-F�Q����h�b����b�ccRV��F���W*��c\���������clE����h��Ij���+���\�m�&�Tcj(�5�k�E��h�5���6+Ib�6����\��������(�5�%����V4lZ6��F�b��jw[\�������Ql����QQlj1�
b��d����r�����cF�lZ5�F�I�1h�
��IX�sn�EnEk��5,j+#j"�EQ�
��cX�lU6�TcQ���b����\���j��[����j5X�X��5�4j�QjMF����X���Q�5������5��LU�6������r*���Q��cX�d��Z�5F�Q�5�����nj��Q��c-�E`��E��c��F��j5r�-�m�EE��lV5x��4j���*�6�Z�A�b��ccj5��6+x�r��sW5�5�F���j5�EE�b+%����\��s[�������j5��j�T��F��j��lX�r�W5sQ�*��E��Q�j5�6��EF���j5�DV1h�X�(�-+\��N���km�k��F����lEb��j5�5\5r-E�m�\�jM�Y5F*�F�Q��b���l�Q��j��j5����F�Q��j5�F�Q�����j��j5�F�Q��j5�F�Q��j(�j��cb����k����\�j5sW5�F�Q��j5�F�W5r��j��T[�F�Q��cEF���j5�F�Q�cb���x��F�WKWKRUF�Q��j5�F���X�j������[��Tj5�F�Qch-�Q��j5�ITj,V(�4T�b�c�Q��5sW5�\��F��6-��Q��j55��EcQ���\�lTh�r5]-F�Q��Tj5�F���j5�EE��F������j�����4Z6��Q��j*4lU%�-F�W5sRj����nX��F�QE���Q�X��F�Q���F��X�F��d�&��msW5�\���,k�U�F�Q�����h�5�\��F���k��r���F�Q��F��h�5�F�Q��j
�*�F�j��Q���W.Tj5����j5��m���Q�����TnUsW5p��F�Q�6�c�Q��j5�F����Q�����������}���_�}[����1����9�_������Yg�$!	�������#Q�o������������:�w�������_�o^���+qg���p)CI?`��j<��:�'S�����Z<H4.TC2X����t]q7S����)��u����:���^�<4������w��(w��h�0�4���������s�a2U�;�����Y��J���P���R�Wn�Cz��f�8M��HQ�e����(�,qA5�����TvN]�j�o��'�v�3gN�I���a��� �k�����j�F�Z)9����<K9#������v��Y�3�����m���L46���r�n�	���;�fn�(�|�u\b>T�X+�B��/�t�L��p�'����6r�Z��9�y��K$��wV�����1���[�p���l-j�R���uK�n��������Ze5[$���������jh��Ru<U:�[�6iN�6
Vw]c�n1�^L��c[xf�~.�C �9WA9��d�t��r��}[��BAI��2���]F��'wD}�����s�����GP�XYW+0U�*y��$8R��mq��q��2������%�l	W��aN��v��\��M�X'h�D�qh�[R���0*��T���Y��9�b��R ���v��3��� ��K�.����R=�����������l���P����i�}�o.t��J;��PpY-�,��-U��������euc��ko��7������wOi>�M]��k�mXV���O����Vk�����HWB]�L��G)��3K���w-<*�U���6�m��e�'>t/3p�#D��;��#�'>.S��(��Q=��n�j��U���B86�;qPG;��R�1t�Zuo`��4����Od4��3������l��&�S��8�Q�I��[���_IR�����@�L�����
�j
��.

n���Fp��\��.�a����t����ly��BoWIki��i�#z��XNW�ik��;k�����(A�M��x�%,�V�Aa���������2�����]�N��Q�LN�����4y=���:��[��w(F;M������F�Z�� CHs�oV2J��eK�w`�j�t�v��}��cz+v�h���:&E�v�����:�z*���J�EE�1��M2�*�����K+1��=n5�-����C�lD��a�
m^Q�:�Q���L�M8����N
���u��Q���TY]sms�=1�;���d�<���E��Z�6Z������+�Y���v��t��h�5�(��E�����j��:��a�X����[*n6��`�_QV���
t%��������1
!:'��a,�<�-��G��'U��=����^�;P_-�|��F1���C
g�1MBV�t��^u<�k�k���8t�z������s�R��v���q�+�w����X�Q��#q����wN��B���q&����������L2n��W��c���#�)���)[���v`���A�3\NLV����g����eG
%��H���a�Gxta��dEwDM[�Rv��`#����[����:�;�����.��[|%���2>�J�Gx�Q��+S%p4��V�Z&W<�b��Lrh�
����\��q��S�{w���+7*��]�G�2�����rO�{��:omuZ|���*6.�2��j0�B�f�Vo�8VM�L�7�x�,�<��i[JU2#�d�-��x���DoHWra���#$<�{�kI��LWQ[� ��N%��Tu;���i�/y4��;�)@���@���#��:��w5F����e��M�#S���;[z�^M	^���p�wG!o�u����IV����S��h5��s��4�D��AWTCp��9��Z�m�
�1�u$��bi����rmmOW���s�U7o%����:��,����x:�v"�]��$���M�������#".u�u���i�`�(�R���=��'JT��9"G���]q���uf�iMLb���Z�D9�5����_N}��Q(��B���iN
5]X��v�'bT��=�#w_�<Y��5
W�G��%�%�B+No=
�V/2�U-��yL��������ngm�(a�eY=h�pK���%B���G>�3�&��-jt������HE�$s�����v�Q&
��r���']#��k	��[� ���B���V��[��B���T��[oN,X�-��(�yJ-����f��G-�8�9-X���u���2�R�x:c�/gT�sU��;�w`M�p�v1N���+��SS�2�H�s��<'z�bV���\����8���i����������k��Zcr��G�Qq��,�%�-�����w=[�x�{O�=�:T�i��({	5�6�C���7�*RC�o%-�,�]h����q��Z��
��F�8v������3�R��#t�:�� �F����d}��A6�f��W����h���J�C3����QhF��&�;c����f��;.��������&����c-��`�#�Xg�����
��B_c;���Fms�2XeK$I�6q����w��g5��N6��9q�`Y:��.����3��gB=��[v[��OMr�M�;Y��/w�|���'B�6���n����-2�s�'T-��-[��gC^�<�R����{R�����O�fw{p�K���)�����*5N�.�yJ[�W��p�
���uy��vC���4g
G�D���s#w���
�ls2���Y�r'1�3T�+2���-�M$��
���H|R��0e�0;�Ki�\d�u�p���V�S	�}�u����tq{�&�<�-������QP�q}J�MLO;{���
��&s\R�D,�n�	��M����gxZ@�,����:������:��o7�����f�*����7�tg:$�<'qH����"��kH'Ar�vR���9`�i��:4�����iv1��~�+�k
	�?l�2�{�iR] �z�������E��;Z�,�x�Ch�tIJ�g<�L���P��Z�Z��p<I�G�2,����XZ��������dO�����+subo��.�/����+T{�i@�����Y���+K.,����]�X�uJ7�zS��y� ���z��J<�;��9A�0[��;���2�kJTo[��j�3{0.�3�!��Z���LL���E��E�6ySCn��y�n������n�i������updG;1�9��<���#�V�����}�[���%`��L����j�_�Rq[�,����&f�LF;��M]�Oq�(�7�@s�a�9��r��)��}����/\���e{5����?T��^�j)��oJ�)�M��1,q
%$�\r%r��"J�S3��8�!��/��$��i��� �_;���@����2��y���[C)�MU�J�����p��Zh��t�nr�A��+�h��������G_�f1V�7��W5���u1G�7�@�J��`��j�n�n���	\���S3P=X��r��:I����6�j�����������M��~@Sk;��u�R�[R���-�X����x-�PN&����:E����n��X>4��
u��(�� �E�t��u�2<B�dqoY�w_EX~���J��s����J'�>�w���_6��2�1<n;���������eV���h�Gj-5�374����5����az�;e\�Gw�B"500'A�t�����^�J�#���/wwY�t{!�$���U#M�t�
��ui�"���|����I7_-J��=m��w�i���3�!�;p�YT��Q��Q��y��H����4v8��������KSA1��jLu�z�Q���]*���%O�=�1������x���&�����4w���JVl�����������%�*-.�+ �]�L��L�V����n�.�S�~���R<s^���vNB��4�W����������<�I�� �����{��s�C~��ZE,��sQ����4�������z�i�D��H#�������*F��U���g���H�051jy�Ems�tmnJ��]<����W;%_%|�i�;���s�N��l���k{�k>��5��CU�I.T�rIU�I�����j�F���wV�Zq�x�^=��lo��Cm.:��<4�H%�E
ym�IG\��\���Q�a��zyr�Q��5|�l<�X��M�U��Yq�y�Rh�������S����PL^e���w �A���a����wm�Z��tO5�kJ�����z��,iA.nt�X����VY�����i��$��K��V�VS�{;}�jVA�V{���x:w\(���'����y��m�@l�j���JD��M
�!z����8�:v�!�0nZf^�9[��-��������	[�����]�5:� �f���goV���W��z�]��8�������L=s��������r���B���
Vi]����gU��0j�Q�1�)��V�|���V��{�(Oet�:���5�N�N��t����H)��X��������lT��F�4��>��yj���M���x�7pS����d�v���������:A=.Qz�<�P��R%�-;8���j>�$�,���j���������nk��L�Fws�M�Y�$��w[n������F��4��Z!��Co9�J�Om���hV4N�LQ1��m-a�Kn�o�l��J�����7o(n������MT4g^�<���:���0�:j�b������ F�@�j�3L�� h	!x��T����_nw�B*�����Ni;y�e-�B�����&*��P)g(���p���&��_
���7.a���&� f
vS#�V�����Id�Gh���M���i������J��i��J��W+�vng�#��5 u��������D���vu�Y3v�X���z:>��(���d�����)����*\#���l��Xk������U�=�1+df,'2hYK���1�^�ad�����;����S)Q7t����Q�i'r\�+L�AMd5p���x��k������E��Y�\��HU��:��mSk#�.-l��p�k=�������:�rZK�S3����k}4\f[�D���Oq�W��;���vJ3}�<C�.r����K��pM�;hd�q�UIlv��K[5�53����B����T!����*������Pg
���P��b2���7
g��){��;�2�<
�+%8�hb�r��*����\J���m*����cEi���v��
vk�3�]DL��E�t�P���b�N�$�^��O�W�,���
�]���e�{
��q��N�f��{�D���_T�l6y�q��.��'���
��@�N�'��3QL�)���M��f���qE�Z�f���Fq-Vx��Z�n����������v[b�����j%���B�-�����4K�L���d]}a�e\���u��\-,�w;��TLF���D��$oV[.JF����Y</u��rzOm���$��p�}�Q�#��<Y�QV3Qs^4��qW?K��qN�^��!�#�f�$W,v�����F�z�U�����k����F�]�yKo�+�QSp��v ���,����bT�:�@ld\x�����C)X��vK������v9�N�R��/Q��(����<�m�Ec�2��C�w��Ay'y��m�U�vKUA��]��jq����O`�7k�e�K+Y,�=�a�����Pp��W�J�m�qI(au��������rK{
��J@i
N�XW\(������c�"iU�C�{C�w��T��R�����g�*f��2�+%TA���`7��^4ljE����l$��Vd�"�k��n�a#�
�#��U�FS4�:�QX��N���;M�����o��2�������/�V�������Z��"�epf������ywP)��/��[�i���q�9��:��"�a;�����\\7m��m,��������!�N��;���:L��kJI�j��U�,���v��
{�^S�u*����l�my
��r�w�QN���Z����,s1935�*�5Cz�I\(9D��'+Zi"�U��s���y�����j%k��"��g]�Ud!��/���b�L���LE�������(TX���D����@�:������"=��SY{{d^;�&^
���5L7�YC�*�BD�W��F3��]t�(���w9c����;S��oV�G�&%p��B�HE�c�q`�g�3@�G����+1�#,N�e�t��p��D.�t;!d�wz�m�+��V�t� ;�	@������R���Q�HIj�V�Y�72�E.���J`upAHfS�}P*huS�o28B�i&��y��D���)��}���y�2'��th�ax
��"(�O���w-�Y��ul��b�h��MB�g�}�EWGB�>����-��1�6k����{�����%�J�a���f�'yY)�f,���f#�ZK:����S���;�;N���i��%:d 7d��q��Q�	��+��]��tvY/��++m�J|r*kn�SI�OJ�,�-k�����iJec��3��ge�W�4�5e(.��	y�����5����v��]m�n�m�|�z�1{��}�
Zw��l��l�-C����j����7Z�gA���%���/�������WX��%;���3�L�6a{�17�+Cc9,�P����wF�P��sp��nm8Du�����T���3�����u���(�@H��e��R�=���M����W[eSxJ���>��H6�M^���e��n�],4r��������hHm"v����5X(5���)C�Q��V��j���t�(p�L[6B�0�#��YV��J���1�#�y/�T����{u�;��TV^����[�c����v�G6�bs���.T4z�\�D3�y3�n�_�1�E)��neq���s���%�����{���<�$�^��J�VM!����S����i�+���t�[te�dWa	Eo{m�v������?r���i��H��+K��9�:Y��I���od�0Y�t,�|�Xdu{�s�^	����
��4��`{`e�3�( Nk��]�*9���9�)�O%��o.�)����kr��o����d}��:��m�;y�����2rk3)7�GtS��1YN����l�GZ�.=�7������+.�����#J�T'��-f�o�Y'I�w��
�A��V��ct�qf������u���p��+(Y�
��-U���Sw.��GXl�]39�����^�X�Q$�w���E=K8f��oJ�m#xo����m�a��w���*.eF�8<.d�v���;]���D�u;�y
���[���5�n�!��M���M���#�)�,��@�c���TJH�P�p�m���������sv�f�c�:u��tl~T�J:�D(��F���c����x�uv�R{S
:���<�#��\�34i�t
��]�OHI���h��n������p���OUu��2��3V1z�P����-�����tw��:��A��
�L���Gr���J�X���QE�b���5��g��Z���7�[Xk�v�W�`5�u5�u)J�6�z�X�,R�,����l�����4�Y�{,Cw	���������%��&{�k�"[�����'oI��R:i����	yoP��4�)�h(��B2����x�bp�a���#o+��v�VrKjcz�\���sV��F�U�]F�pp���`��D�f=���������p��.�^2f�Wq7���RKak_g�mB��f�K�7v���,'k�/�nVgL�[��\	N)���"���Jb��JN��5s�_uhU2w4�"�k��pR�,���[I��p��n����-�P�k3����)8�7�V����C.�gq�����+:mR����\��n�VH��5l�� Pe-Q��c����H�{T���D�����u���3�u�T��M��f�:x�(
���p�(�x7��LI���<����������������i�h���=u���y��p�M��F<��O_���.�����f�Q��;��n	/�K��WW��7����v���)�6�����iL���quB��-JI<�m[����
N(����\�{��!nA��`��Z�Ms)T$<����$%6Y.D���RXz
����	�lKo�X��[n�F�\9D�,�ut�;��7MbF���#����e�������]G��+NH���K�����z��O^��)��Y0q�n!�y��Ci��aB��Y+N��d�Y��"1���M��J�l��z��m-�5���ou����s����3@��T:�(i!T���rqF�o+s/�e��7Y�N
�uL����]u�|Pt������&���<����O�B�����<��!���9Vm�+Jc��Cg�e[��d+����k7z���o��k�Rfw(6����Z�k�e�������m�LI����7�Ee�\������kS�n3gp��,�X"����ve�����R�+���kz��Z=��n�4��5�����@�]�@wc�J��.5���XYfa(�Zn-�Lp����f����%Xe����H1^�����]��hm���y��U�Ev#n>}taE>z3S��S
���Z��c�����;��	"��������v�b�=����9�Y��/a8W����]2%�w�����gM��C�A(�a<�}�����t���N.������pD��+8�('�.�����z����J1��=�f�y
��j��a[����cq?E
������<������\j��G�e���x� �`�KX�sS
	��qb�n�''\i���w��`��S����b�����5�@�[�G�K'�ov��Y�V�B�7|�w�7i���:�[Xf��!��T.�K3�N
i;��$��mi���������+B��Lu~��7��$����zvd�5&�#;w	���e����in]j������-��t���i��C$���S70I��}���6Pl�XCkUk��v�}M���lr�wuM9�T�R�W��#>SW:�r6������Fgp�3��.Qg�����q�7P�n�����]u�s�����wcs))N
���KCl�\��_f��vy��g���mM�<i�
�^��sa�v��]�5��3��p���Y�&tECZ�0l �]r�>����	
[%f;m�������(�zH��_#������z�����k����=�2Sm6���VNr��������(���f����t9���%W��yn�'r�9j���n����tNw��X�#v�-��z���5{�����5^����*���|Oi���{�eh6)`V���+/�]�iq�R��n�}���C�\�)����+s�=H:�R������`�4M�x*��9�I��A�%��]�<��U���o�������xus�����j:��o�������!�jX'K|��0��B���W���v*��(�>V�� ���e���OP�m�}X���[�����������������+��C8�u�o	U}4�c�Dp���U�`�H�R����Y�A|��jm��]C�Y�.]�a�G������8ub6w������Qp�f�_W��Zge�6�ih��G��t�5�����V��u\kI�V �!:�(��hX�;���Z��-m�!����m���o[]`t��v���V�,�s���<���B)P]��}���U+A���mmN`���>�;1���������$�(�����}:�R�W��F:o$�7F;��[�Js��&Q��vwL�vta�a���S�a�#�����l#3K�9�����-���@��n�����ww4;�@[t�.e]GsU�N���q���'[�-%=�o�ji����m'4R�#�j�CH�k0�H��)]��<������i�F��A�A��yn��b����u���u���Uo6���5"��jq�W5���|��uy7�L#h[��N_$�er�Y�mbm�Y����P>�Z���YV���^c�D�����k+Iv�"\�������-�V='�Be]�L��b�5�0^�pc�.]�+fH��q'rT�6�j�_t(Q����M����B��g��v��(�����1w
j����C��xqVA�`��t��&�D��a��6]���s.K��G������Y�����?�G���g�����G��t�B��O����	���o���k���9�����}��~m_� $��b+[���(����H.F�~p��W�c$�����Hkw	$�$�F��q$H""3�]r�1��� �#<��1-$�W����DDDg��r"5�����(���j�$B`$�m��" m�5�d�y��$Mm���H	=z�o6�������m��Z��* "1Df�"��mn$��Qb(���k{DD@@$�����
1[�5����F-��u���"1�"R1�����jr�Q�1�DX
[{DyS�D������� (�(�y}6�x$D�D�	�{&���H���������$����nc��6����m��U+T6�	$��\�4b�1�1��F$DAVZUox��
m�	j��V��-�b ���M���W�
�$Mm]o�Wo�""" �����P^x�s���v1@�Pb��z��[^���{o5J�����-�����EF"5j�+@$�$HH���c�bj��WZkp���DDD� Hy[��j�������Q#�xe�{�" �1-��@�m[��(��F#���Z����  �$�+n�m�i�DAU]���b'���wpq�0$BH��Z�����"1"%��F1&��3��	$"H�H�""1V�D�$@�U�E������$�On��� �"O<H��E�I0����K�V�pD��I$�IFID���"5�$�����DD��'���Rk���1�b%�1k��;V���z�2b1:/=[y�"	$�F	������'������F�>8U;��"���$hK]���^�� ���1F5���n��;�"""��F�!�U����*�B""#�"%�����rH � ���W�]���������"�g.�s���b(�1����" #oZ[w�����wN���wt�������b1�|���|[�H$���@U�Bu^���DDbI1�(�DcE��c4��DDb � @�p�.�9ww9������������0A/'wu��w\�ws���N�h1Z���DF(������Z�!��#C�s�����c^���&�)�A$���B��@D�H������s���s���*���j��"""�n*Z��-y��@ q�<w�.��w]����Q�������]��wwww�F""#���M_��3����ww\��wu��EPQ�#1�;^""�Z���������k^Us��PDD��n��u���!��b"!rbI"@������	$$F��tb"<���V�����p���V��C��w�����^9�����DDDD�`|5�)��� ��t��\��r9�������]�wt�����������>-�2�d1m|Z��RO�o6��$|����w���s���q�;���������w����Dn��!!V������]�z���"�j�]�r���uk|�D�/�z��_�m[Y	�p�B��!?�?���?t�T�������8$�.	Bq#�O������?�k��R�#�����c����)����/��������}Z�b�f�s[�k�C��L:���^%k�|��s���r��S`���V���f)��9��O%�6����y�,^.��k7T-v`���A�����UW�h8���@�d�b����
�W��5��z�����K�%<R��R������e��s��)��x}�,�fKF^���/r��#��T�����=��]�Z���'@��p�^6��3]�f+G�8o�r%R���+�[���� ���L�f�)�9d�b�-����{�c%5�NAt��1CA4�����Z�x�7u�<{�zNi�R�7x�)��YM#z����a�w2�t_��s�t���t��U�1(A����o�ew��$������Q^U���u[�*9��z-�q���a{�$�[��:�Q�C�s|F��
GOk����n\�8�7;O�n5���92�,�/���y����������e���FI�9��t��[tB)b������S�qv	xG�1��XN�ae�3��n�I��_'nd����Q�D�,���-�R^]�,%��v��x7H5p+j��~���z��:L8����+�a�`��l�$�`B6�:$n�oMwb��bsP�N�D���n�,gz��h%�>a`st�y(�3�h��0�����|��I7t����c��3�V�\�9�5����<k+GY�0��Y��e,G{_�h(����J��hfS�
�A��:�f���ty#[�>�|\��y�p)��{1R����<v���2�o��=Q1F���D�Y$��/]�Hj��h� %XN����0�Z�-�d����g.�m�������
�����i�mI��xe+�9����Jw�;/��Y�w� fk�+[vk��h��S�Pc^�)���<jt��;7!�Dv�������d�~��5����>I`��
��f�Ue�����pP�Oa��.V�.�,�%�f��A��Nh[�
��+N�_+�^>���A���=�����kb=���N�J��A!}x�u���Y�����8�n����\|�9���=��X5��5M+4�q�Ri�����rt<����'m\�Z8�,�y�9���*���e���K=/��\���F�z��
��v�2�A��r��r���.=��
�F�\Z��A���cm|���Ux�H�y���l[�����ca[�,��F��a~|7��;�o�6r>��
[��y!er�E��k'Q�Co��I��M9C����=(1�y�7���',�o
.457Y9��WO2a���:�V�)�F��5{�}k�<�\2��7�8�cn��sZ<�'.�A�_c����2��e
�4�CtY�s+�����t

9)f�
a'	w
��X����gvL7�*C4��'O:W��d���`YJ�03.����!�Z��w|��+����/r����E^�}D��}6������6�&[��o�7��1m�zB��S�
�EJ�`�%�'�|75-��C���+S�����~��6�D��m�3�u@���ju*i^+�j�c6E]�xGX��Yyl�P���(�����xsB���FW`�F��J�5��;;�q�<����R^%�+�{��������'Nh�])U����1�����OJh�k��U�����W��:��2�^[���e<}JA��n�|�'��r	�����4>��I�#]*������PK�m����M��N^�����ze�n]��.�fC��������6$��.������n����n�.����+�VH����Yk�%��sVu��$U�+h=2�����
,��h����W��c��J]�{��Rhj����T����sim�D�t���8D���K;M���7+���7�6��F��
]9�3"L��	�3j^�����	��{��%*�?�����n���m���^��^�����>��gM�B�a �r[��F�7��
���bXf���x(�p���s������
&u����g6��]���9v;��:u	��Y��{��Yj��z����D\�Of��
fhil������}�����=��[�3j��f��/�����Cs+�/+oM�(
iF������\�� y�}���:�4+
]�8�4z��xmj����Zq��W�U�6RF�yX���p���Zvu�h��i�k�H'F�����Ws��xv�%A�[��Mj��r���*��]��S5R��8�y]4V�C�Vq�"�;�5^8�J)��qT;ww���|��e�:���F-�q����F��S}��
�,1�nLC�[]��h�7�Y�1�w*��E��3��w/0�\������������:��ag6EwY�z��,r��1+]�wJ��>�
�E]���
+/H�ln�J4VnK���t:[��Fm39�����v�i� e"�AnT��B�i�,�Jh������1����d�`�w(���:O������ �Nh�:0��t�f]v��u}o8'U'Ed�����U�Y�}b)b�aD]`N�<��:�u�R��������s��@:i
���0X�f��l:��i����7R���V5�"��K�Z���w9�Ou��R[�]��s#e0���}����, VKH�RN�e^
%Y�@����-��Iu�0 �5���M����[�����"'���&�[R������o;�7����}[,c;�"���=���������7/k�,�)rP��
u����8�
V
t0h�N�i���fl�.������,�.�F�dNyz����������d��������WWKevn�gP��{���"�_��)m_sOH��z^�.�L6�{����i6]�5���+��;�u�g
��s[*���v��9spQ��y	�Rv���"��
�(�&���NXr��G7���u�6���)�D�	������'xxT�!�m�N��-�Z�����zfLkxq�M#�.�@������.=�i �HR�fRG7o�|�����
�r�w��,�MM;�A���^�e��f�������km��;E�b�3|�����y2��]Hp-��xd[��>T�.�jy&��x��Y���eo�
�#nw,ar��s\U�7X�pW�<���Vf^L�%M&V�8o>��-T��+�:.�t�,�6�nRH�x���f����Q�(�qY�g�9�'C��[Z�n�me����,�O�7��J�7����_>sFj��c��!zn�R����b���@�j���{'���-:�lQ�Y/6�%��N`��t�WHz+G[���M���[�p�f��*�I����m����P���w��V�3i�����B�{��Kv���f��^�E��������
5���G":�I��i�50���V�7B2��E�If.^��2X;\��]:�D��'��JcJ�Ql�2\o&O�I�*����Nw#:����@�v:r�n��:�l��A�`pE(p�H�xxoJ��� AirUA\����V�V1�����V�ZF���.��mR�;WNTu|�L�qqU�Y��p���mi�'��q����0���5��W�9���4������ns����t�-�k	�� o����X�l��-���DU����]mu&@����q7���!�7M�����_S} �k�=�k3�n��)��i������q��b����W��@{8!6��[@c�����M��9�2NgI'1��|������N������$��aN��t��u�x�f��L�/wE���O.q9���,U�
LISa�v�6e0�������uL��V���VA*�U����L�.�B�}q\��4uN3(�;�%Z#\�w���x��r�U�����/-��
k�7<^�Q�e��ET���W>GFk�j�\�A^sz��cQ%S������Q6N�v�:a�R�e�����z)�h�
��h�J;�:�E�����h��V�CY��L\Z��,l�����q�{���������6�m�����l�6�8�`��sH�z���G��r�Zi���Y�hR.�0
��Wa�+���Y�;	������o�AK�X�3�[���O]C��IK�t�>M���Oe������a�\�7x"��Q����%*����a���
�*���M�6��'�
����aS�64��F3�e��'*��]�h�0��WC���������z~����f�u�@[xq���������Y
	nv��=I+:^��w8>'@�y'��*���Q�)
�z���[5g���u�+��?zu�d��Oy���1���\YS���Z��]q������4����&���+���)�Amq��uRrrm��Ygl��n\Rt3��������.�l=�����l�H���d�0R`��zU`h
[Gm��*
��������H0����cD�yx'5x6i7X5�q�4������)���3�x�E{)Bw�r�g{��5f}-�$��Or��Y'K�l�[�7Dm+��^�Q/Wb�gOR!`�D�����:�md��s�*�;�����P*���W	i���t�_f����������2Q�Ww[�5��gw{0/w���O���n��>T�85�tx�/!@�����s���f9�y��M��[������J^�L�_�+�rL�:�����k�:V�|��9��+U)�7����Cn��Ib�K9m���P��s�
���T�V�kc�/�s���j�X��]DN61�J���k�����f�k-h\�N�qP��rO�LvrM��7����F�Sl��m�J��I��u{�����Nvu������6�0��+��=s(\�����bF]������R�hM�-�/uZ��)��������f7�����.�����[D�����ug':��/;���F	Oe)}Z�d"�!����i�_��Z�K�+������0Yo�`G�G$g9����GR��.�TI�p[+b�Op]�����E�����K{GK���W�
5�����r��]�N-5d�1�5��������O'����N����K�w���}L["�w_5��O!uq�
��v\�eG������������ri�
�,S��,�3F����+k|�*�uIv>0^l�.�B���Z�}cl�VT��������<��a���KYG[,��|'l��F�������>c%^h�V�2LJ�)olBU��=�$����"Z J��YK�6����fm�P�����/mC�0��M�������:B
��h�R�V����9N#s��DP����Z�?Z��/:m�Z���J��aB%V�em������w�ET+h�i�F�'b���na�������+�nfru���T
f�u��'J#��<���wIu^el�t����!��ChZ6������*V�����k�=�������uV�d��cC�}^{qQ1>Y���J��E�Kk�W8#�
Br�s����#(ayW/%�a8z�b�iVN�����=vB-<������Jp��q#`m�x�f�8.=2l[���S��5Voj��n�k�
�K��.�n��|C�������������2���D=����7rWv�us��/V��PKNl\\Ee�|����g�Ic�:s3
�������+r�n
S��
��s�_V���7o;*��x�R�I��r��YM�GTw��,�U�.�;��K�g:��C����E�B�+QR���/X7GJ&���.�M<#�;��eK�Z�u�lWvX'���S�l���#��������H
���'[)(h�)�V�neb���@)�Y��,S����
���F�<�����aMc|$�zV����K�M�kV���-7�����N^0��r��"�K�&<p���z�pm��md�E���
c�|�(M��	����f���f
;����o[+��2�1�\�s��}�&.���f.z))�:u����Z�U���l�94����a�����)�xd{[����jn%��C� 8�3G@�����pm1DY-�F��n���7���sD�7��]�O�Tf&����ce���1��~�0�na����D^��q�hf��.��r/�*�^��1\������N��%9���xk�w�%��X���&�����H��g5�z�)^9�M���v�V��Q}OV�u�]�G��{ov&'j����Yy�7�D��R�v�������t����
E��{�����n$����D���:G.��������U
���'�]�)���BY���u�#��J��f-�q���L����Z
/��)�6K���J"��.��*
�t��&�������n�c�tX���jW]
;w--F�e?a�|mLUq4,8	����eX��sKi�b��f��!��9
�����e��3���u�$��Ny�]:\B�,�L�j�09��d����N��8AT��C�o�PW��E���9D��7�v���A�:�a��\/��<�b������Q2��-��
/;r��z2����'Z��m�aP3����G6�Er�G�V]�L��XD7e�/=Y�%�&������-kqM��e����k/h�p4f_VT�����]u���&c2����f��^.P��H����e�U48�N�b]S���4$�������ln�s(#�l!N���M�Yi����=�Jc�����<�(�]���-��:A�w�����H�w�����[��7����_b
�L'Y-f�7a����gf�gZ\V[���]��h�Q���a:S���1U�Z���f�;2�q��K��q��^����
���=������s�n�]���:V���F���y��K�:N#E#��j&f�w��>�o���X�^a��������c
7�T���j����-�Z���c4�y�:���
���[��w�2�
�b����iQ�$I{���]����XJSC5JP����/�;�,t6x����\�L�Mc,h�Y�s
���l�U�[���]u����.t��J��5��[������8�����K%�[�����Z|�����>TL�l�hi��[����(����]
{c��p�@��'	u��Xxn�H������.�������b��kU�I��tv�h�AEC<	�<��.��Z'S8�W9q�n��+�[k"�pfU�RZ�C[!�����	�q>*�N��c�n����*U���l>-�+7�k"Y)�Z�7V:���P�4U,���5kr4��o��lX�q������;�a�q�RVyec���c2���}U���uguc����&�8�����w	0����+s^���9,vQ�0����|�f�KA�h	��Y�q�������������p���n�8����g�U�C��*�%k����t�r�k�Qg���o��vro)n��_<�^o"�9�}�9zvs��sic���T����mL��b]d�b�s�ey�T^w����5��F��j���5t��J���o0�5�^�8�+�.�v�p�������z(������4S�Bs*�&����Y����,�{g��>w�4�����l�,eu�O�����HV3�u��!�Se����6R�gLn**�"���P+:���`Z�u����jqRwe���K.���
��-��d��ev��X3	����E�����8XYq�}�G\��Iq5�P���yJ�����z�V�J�i�����7d)<��uF�r���]��MBo-�����]a�9�����n]j��j�H��! ��Q����mo]wZ]�0	�p�9%����D������a�K;
�`P�YJ��3'Y���L������u���Y3�
�1���.	���6)�����E2�i����Vx{f�x�qa���K�;w���z_%+���*��������J����]�b���C��t�E��v��Q�}T�yb�j����v��g-=3�
����,���l���J��Oj9�����0_Y���8K���;^-�U:�q����k����Y���(0^I���������B��9i�si�7[e�`����N]�d�] ��Y����n��1�:���6�.����Pr�T�!0����^v^kefA#
?�_N���)es;�5y�f�d;��;��*�l%7�N�>zgi'F��g����1B��J	�->:N�s��R]�1Hh�r���tk����Cm�z�V�^�����!���k_^|k1�vef�w��6��N�/�coh7�����8�]��#���7KU�}��X.L�����k-�:�������9����So��`Bk��*�;	6Zm�����2�	�������������7G����mZ]s�U�5������V�U}�~|����un��3���V�T������T�Z�Ww;�vn�
�#(���X'
mw5]#+s��C[�]i�K���Y��cU�D��
��!)nT��uF���O�3���R�,n���v�u�l�;b�Z(E9�1�����P����)J=w�����F���E�,�u�&s��9��j�x���3�D �0�-��)R����v�P^�m��*���������-�p��� ���c��z��L�{��4����y������[7��m�v�����
�6�x���8��]����E7+����.S))w����3z#�vI��z�<jV�]p/A7����w��f7w+[k�OHR�u#w�,����%�w��x�_�]�#;K�=X@Cv�K�p�$;2JF#[X�b9.��$�P��p�i�����|�Wek5yy#����u����&j9��tk�&Y��]����q7�dR�!��E�bR���KZ������#J�+��m��U��D�Fwwkxt�Y�r�/�u�v@�����-��f��E�����4�T�_v�0v���D��V���wu{Y���@3}��]�o�����:�t�U��c;]V�6�;8O0�S��3T������9']r��n^�zv������J�>A�*���f������	�q��.7w�QM���5+���g�wp�,�+�	[�K�\��}DD���M�������u�pIu�uP��S�5�7X%b�m���n���f ������A��dH������I�qr�;�L�N�]c���Um��%5+�P�v+��L����2�&���{K�#Z��Ab��G���T��K-���H�_�o�1�t�����F���{�a=��� ���
�q�,�:G�g?�L�����Gu�F�Q�u�h�����,���<��h����P'c������\n�}���	9����Q_qw/z��WZ���fs]smpk�r���HO!���)���t
���1(��������{)mZ0-(���n�e���;Z��P��{2��es2���5����G��n�l\���>[�/('�r6��7e�W+�W�e�.f���]��l���:mWT�=���Vq�Z��Q>��5�}���Y�-��X����RM�%p������5��n��^c��<4�f��++��	�Wi��=f�\]��l������io���Z*���=���t�[J���nr5OlcG9�^�7�J�����OU��W�i��<��7�u�9�790�n��{��b�
Y���OIQ��p����z.�U�
����wed<�;F����t9	���C�W��e�}���S�z3s����n	W�u��F���\��w�o$��t�4�,{r�6������1�i��Y��*r=�x���[���ew������U��,�pK~�M�hM�g9�H���eC����z�<��7r2�g����E��r�����
.�e�_E[�B��K�1�����\��
p��&bl�H��W��z����EL4j1���k�F���v?��VN�d�.���l�����un���[T1����67��*��;;��wY�7p���@�e���n����)�fe���w{���Bn���<z+:r��� ��`�w��U�����=��_92�7F�����-Fe��Q������'�[���;�D o�/k��+g�U
���^s��KSlK�m�v�8y��0��zi"=c�R����vZ]�W��bVz���R������`���ho5zf��!n
�����X���hI��������%�qL�����ki�]��k�^Q��%flwG�E�������d�{r>��-4���@��[�2!�����C���4��
/yG�k�j=k)Fwm8���un5�%���T��Z���=$cDv.t���I8)�bu�a5��X��;�X�����N.�@c��WX��������+�������)�c��oH�]���j����V����w��Q=�P+8Ta����E���nsle;P���^�m;��<��8��l���<�.��&f�B��ic
�AL�5��r�ZQ����,�LJ(�n�m1�����Z�����|�]�������=����{��/����O��R$�_�:�M��S�[��{<���?��c�LZ���j��?7z ���T��#��%B��X2����Y9
.�3`T4,y�I��EE\���
N���u'�:�;�yI�3��?s|M;��h;�E��t;�n�����=���k�Y�/��M(���s.�3�L&>|���}\u��;l����h.,�����k�k��p&�1v�YCK����o��
��W�Ke�>'���E�|'R�{c���Q���f�.r�_���r������.)����a�w�(1�� ������=�3��]�I#���r����0�h!QBRX-8�(pO8�] ��N���������C7�'��)�JyJ�w+��B&���s�tT��gTV�r[L=�����
�9�����%O�o�Z�%�����@(n�8����d4c��LCWVZ��}G���4�����I��O5���C�|3h���E��U-��o1oS#:l�s3N��a�+������i�NaE�sR�G�2�L�Nr.c�}D{iN�e���6�qR�����"~�Y���be�����9��zI�%�+��^%�	�p�����_�w��QkQ�{d�g4�q�v�.��0�w3V>��O4��7x���g���T�T#;�q��3�A)�9�_}|7��q$�1�����+���]`�������h7aO�t�����<�s1���kxUx(K{;9Juj��mnw,��TfV�V���:L��&
]B�nl�lmv(�S8�gI�k��z��V�a����^�V)��4���aT�v��z�����z��rWd
`��&IHG���b'���\��v��r
�/���7����b�����kI�!��kz#�K=)S����
[9�����F�����/
���H��giK����\&���R�
�����KR\�v�e
�������a���N�c+6�M��ye2����"�Bfu��R=w�� ��v[�,r�q]p
J���#�V��W�ip��?q-��|p#������8�|i[�MN�|U�z��+0������&�����+:r���.�	
�R�|����������N��{d���H8�7$$$�"�V��������J�+U�+,�'���V~W�bg�����kU���s���;�����sy=�8?*L�����K��_��n����=3�
]c������g��2�����p�ra����XQa=�l��nZ�8�L`hx�5��l�}�p��|�y�Y�O��=�Q��G�V�(bG������{���M^��7z����mS�
�s������i��Y��!���Y�Qk�zGN��������@�`��Dt����������xRA32������~k�H�������%������Q�
���_*�u�e�\�
���x���6�>�<��&06�8�k���%���f�o{W%��wXgLk6h�q�W��,X&����Z����b����<~����(V�>�j����f�p�����}"��:v�-��
�J������h���i�������\�T��-�92aY��K�K����KFK:&�P]�f����u��n���L�'���m�w}*�w�%�q3N��C�
���U��_^�B��g�
7�=3��F�+��+��R�P=am��J6��@1u#:]uwv���i�o-����6Q����'�^w3���y����hou����&L�un���������v�4����iF��0T��{�y�����J-4�����}�5�nm�&�o-����u���e�ux����|�j+��W�4��<����?��D|��c4�:��gz��P�c�������v:�&�t�	�V���(B{]]���s��OR���C{��M=������	s��Y��
qA������pV�N�{�.�G4�������4QhY;��9�6k�x�N)���������;�����n����j%�VK��Q�U:Q��I��Y���`�R����_���;*�r����U����7�]k��x��I��,������uW.��NC�ub�+��'�0���pTi��~��w�������c�9�]OS�r���E��>yY����l/��x��N���wwJ�)UI\=�<�����bA�\���5y<V��@7�a;�x�y�d��������r��(���A�w���S�$����w���s����)a�:b�������\��8���������!�~�];'uRu��7i��[&7[2����l>�[2�>ft�;����9��-3Q��z���W�]�����������<z�o���~��v���n��v���n��|||||||||U������t||||||||||QFYG���	@�!�k��!����� �B#A`InA�QAa��@��j���8�2�0�d#h�zJe�
���,�,����N�L0�>(�.����+
�(�,��(��n�E�$��Ab�L��(��(��(��(��������P��q����(���!C�u�Xa�XY�e�QY�QEQEa�d47�		��{�c5���8��App�@�c!c\pi�\`��B!�@$�Hn��QA`p�LGp��;\^�u_��h���0�
8��;M
��N�Q�YE�R�7w@wt3
��(���0�(��(�(43�:��P� 0I

v�� �2A��q�n��C'��TmW@�QEQEQEQEQVe��E�Y�@
Pb�GYD2��PX����
3-��h�����P0�,��048@�>$�=(����H�0E�B/�K�s04�Bh4�6����0(��k���4!��e����,����AA��
d���� �c�eQ@QEQEP��{�y�>��Y�`i�y��]�����@������e�#���0�2����t����6��B�C�p�a>6�(��L����_g`_��q\P������(��QEQE�1������q��m�YE���m���-GCA�B
2,%�;�l�P"���\nfX2�(��FU�EQEQE�a�<m�3,������E��8K�	$��J(,���@#:�P�-���P��B�F�N��J���#H�����!;

�H��;E���9gp!cp!�����@wwpEQE`�����6J#�7�M����X{g�YF�Z,tJ��%�Y	�v�T����I$dC!�������h�[����u�eQAs,,�,��(�,�K��G�
q�B�		�����ABA�5��(,�0�,,7L�vxQGp(6��Za�X	���(0��8����6����(��0�,� @�N�@�!�5��!��xT����9�������5�v�`��N��m���D!���l�����*���3s,
��
(�Cn�5�i�afa�e��a�a���a�a�YEYXV�aXV�a���v�i�q����q�i�a�a����8�\=�#��N����HA�eZnaGX,�@#�Xv�E��o��!!���0�.��0�wN�Aa���2�
40f`Y�PX��:O�8!C��q�CC��aaae�����FbB�q�#����s�Q@d�@�u�n�������D���D@�!1�M�u�B-���F��YE�a������!i��XXhp1�����J%�CFt:	B����
8��;@����q�r��7������0�����*��2��2�(�dB>����8hB�L2�((��0�(	$�@I$�8Hl|m�����//1��@�!5�x�Cd�a�avQEQEQEeaEiZW�v�@Dt.�oJ:�� ��]�PY�a�$A@��� k�8Hd"0lc �1� B�
��0��8����i��4t8��9�1C��v5��QA`@N��
�L��,,�(��(���04����47
0�0�0�hh@�a�ePY�e�Q@vQEP]�@zm�fQE�.�(��0�
4���@�ACB c! �
;��v�a�X��p��E��h��.�t �N2D.6�(,QAf�$�I�����(,�0Z�m�$�4��
(��(��(��(��(.�(���$�IA������Ac �!`�I$6H>��I$�
(,�M#�H,4�44�����J#���4!c]��!�@ �$� =��
4@�p�1�q�q��h3$b
�L0���(���2�x	$�@<�	'���x���L����a�$�!�G��� ��� 0�����(��(��(��(��(��
(��(,�0#m��1���.8C$!0�!�F2@�$ }��c�@F�d����e�QEYE��(�P�k�>/�2��L3�t� C�!�@�!�M0�q���!�B22���m�d���8��;M0�
4����1�2��`vQE�e��a�a�@ B�l�
���E��2�b#,�0������������
�0�;��I 30,�(��(�>>>G���N�:��:u�xf]`]V]�.��vQVVYR��t*@�J�.fX ��S��(��(����Y�t���QFY��ve�YyF��YyYAe�awA| I�o���a�@~u�W{��������0������3.���������B��q�4)R� +�q����*|||Qv��||QWef]��e�U��]�XVYE����E]�e^e�E�VVYEYYeQ[��V{avVfQEn����QE��QE���_/��vVf:t����EY�AvQ[��Q[��f`�������uwe������fen��mn�n�����w��VVP��^������}*U������[[[@eeemn��n����������VVP�R�]���$�Q�h����J��������������2�(RA���k�� �#��$JBW����4��m;z�4���n��v����n���w;��Wn��v�����2!L���N�:Y?sm���.\���.\������+-Us9r���s:m5$$�3<7���K���g%x�PP�Yg[�/fk��B���q6��1n'�m�LCe=�j��G4����6c����Y�;N-�R9]@���Y�"h�����U:i��n�9v�1�c���2d���1�1�c�v�M4�M&�d�UV�i�.\�����J��.K��^�W�������~<�����$�������N'�!����He��E/rb���TfBC��Q��[/�����3�}w�
U{w>�f�T��	s��%�C��G�;TWmk������{�����c�1��i�c&J��cc�1��o}��yr��\�i��i�����i�.\��O^n{�3S�g=|��
�L�-BJ���h4�0{�uxn�!���T�����|J��.�(T��*9om�������TR�	H
+����y1�����(��9K�^%������{p��o��9v�1�c���2d���1�1�c�v�M4�M4����-4�M4�i��i��>��TM}����=��x�~cSf��=r��D��;\'H�=�uM���V^��V��o��nd�������J�*�*�]��n��w�S:��C��rG.�k���O��V�R�wTkX5]������=�:��m�o��c�1��cLc2VLc��1���i��N\�i��i��i��i��i����?W����N���-�]��8a�Z6����c��p��sD���a]���3��-M����`�N-������[,�sk�vF�2sWR8$Y�,:�fu�D�/�!���}�/���������c�>1�1�d�Y1�clc�;v��.\��M4��8i��i��i��i��d�o������y��-�1v�n4��
����
|��Ff��D��$�0����M�C�+%J'>`����H<V��B���h��w��Qy�.���!0{�Z���>v����1�c��4�1�%d�1���c����i��i��i��i�.\�r��M4�M9��Dw��R�����n�L�S�T��d�L�V2J�bY��Y@��U�|��Eg|�a�a&���fG��[��8$M�vY*8e,�]�Gt���#�R�|�_O�/���1�|cc���c���1�v��M4�M4�M4�M4�M4�M4�M4��� �7�k]s;�����c���[��VM��+H,���T"*��N�v�Gi$��/���;&�v�5[�6d��B���i��+$�c
w����7�]�����|}�?�/����1�c���L���6�1�c�n�i��i��i��9r���q4���i��o���>|���Y�k���e��Wu)YS.�M�&���v��(�����.��|�:�s��D
���e��������w�c�M���(���yR���N������{=������1�c���L���6�1�c�n�i��i��i��i��i�M4�M4�'\?�"L��U;����g?;NO���t�u���K.���	M={C+����FgjcQ��6���a�/g7)����y'c��T���&����.m�������k�����S%�b�,a(d�|+�vN|i^���.��AE�z(�Ge�Xz�2�8o)M\*�H�7A�ot��*;��{2�n,��wT��h'�E�k�u���k���'����L}�f�"�vM�R��h�P��j�� ��������*���P��`Z�m��f���t�B��=�P��]�X;$w/�9��E��i^����[P�B�,(����[y�j��{���s9&c-�����w�����=�8�En�g��IP���2����]+m��f���cRyG=���E�{rW���6���h�'/2�(���t�����{��5J�uwvE�>�:�D��S����M`����zVVJ�t\��V:���1�{�47+��L=�/�<��kV�C�����������"��n=��@���L�S�-T��)W�����)��vQH4�+�w,�Ql
�������������w���HP�d�R[0C0&����9)�������>��X�����1�0���d���/�p���������]�	"I��I;+�i8���e4v������q��+�&Vb���
,F�G;x��,�T�H�%��k����OE��l�Y������N��8�2����]�^��r�u������;R���4�AR��4��];YD�k�S����{j���3rE�*�w���8���2�ndCf�����G���k,jf3P���:�
���r�2�: �%������
��J|iB"o�V��u�
]r}b���x���<��{3���ig�D��3X=�V);NcJ���]������kZ��1'����jL^�Qof��fa[�
*�;n)������v��V~	�:�e�����W=���u)FM�����;}��������(g����p$K}xa��_`;ZKYw\3=�W���Y��	%�P�;���y[�z�\����>k�������95$I�$��7$!�A�'�$N"y$$� �0��.���������w|k��Q��YHR���<��Q�S�v������|rJ<R��I�?V�
_YvTAdd�Q1S�����XmqI�.�[�~����9�nO����}Y���W����x��+e>���:��=H��;�����+�����{jYH����<���L)�s<�.{5+))����a�8#(���D/h��<n_�R�CG1(^<���\���9�Wk@����U��Vn��^@[�^����v������^4/���>1ig2�VWK�i��>�S=[e�nC��#$����z{:�� �����e�9jv�:�Un���u���������b�inP�����o:������������J�3.Jz�N(���Uf\�92�C���Vbp�o���w�_�_;3/H��w�t��g^�(j��}W.X��i��rbf��5�������^�e�T�C�����"������p��������<�w�`5�g�U*v�Z
?�,���zk��WX�)>�������������q�9���\�X H���_��:���X=j$e�n�}���qM����4X%�z��)�z��O 2��$�tF�.��{\b�%���]���rAZ)��O����_d���x�=}G����)�4��0�iU3f*����2q�8�����Q��;A#��k�_F��f`����k
��y�"��i�g�o�����V�������7y�S���yem��~�B��=��^��>����K��G�756������������=����y��xk���m����;G)k@�#�]
wE,�Jvv��dd0��W��/P�����s]��Zy�����	��9R����N�Tx�#�8�Im�n*�?{3��]g���n�	���J����`U����aI��L���wyN�����/��������������;)r�����t��c.�w����9����<w�)0�����io.��X(#�;}r[ ������^����y�x��/��q��+����=��R[�z�����Cz�Oi���kJ�k9q�ce����7/��������)��\�Y>1T?u�k��w��P�{��{��U�{��;��~O�6�����rK�E��v�j�x�������9N8�V�Z��d��
	�si^wp����v]���,l0Z�[]u�J���oD�(��Z��T�	k�U{������~{{�{�����mm^�ki��I��*@�+�Dh�����m���E�����=�m���8�T��{��
�����b.��V��� ��T*A�]��������������������=-����n��b-��\�����q�����V�b�qq�M���u�V��������q����:�V5���[������yy�&N{m;DGB�DB�Dt�V�
�
�R�wDD*�D*���{��U��������9��B�DB�R�R�R�R�R�5�=���Z�Z���K�%R��U""U.��H��K�%R����y��m^��+��H��H��H�%R��U""U""U""U""U".���{H��H��K�{U.y�T�r����=��=��H"��D�)���g������^��zz{�>1�1�d�Y1�clc�<c��#�Ur���&�y8I4���0X�U�'S��#��m�#�Us�UsJ��
G
��
G
���U'���^������~��w����u���:�M���i��\Z&|%B�ak9���2�f��}���sr@�k���f��M�j����g�����U�Kr	}�T�]�4^���w�#��OYi����~|���q�[�I���O�v��x��c�|v���2d���1�1�c1�s/Q4����������������������?g�8m���8#q6�n`�K$iU\�Q8UW"�?`�$��?>����)����QU��x #����H�9o��N\��m�`��]]���/Hv�X&���S;��uM��I����k�����iY��*����Y����.�oW�z���rq�/3���U����x��^=c�1��i�c&J��cc�1��1�=��*��%iU�)�V����8D�V�Z��$�*��+J�"{8I�M��mAD�*���*����������~����|O�����m-��d���b�x��O������tDxByD[�)e�+kO4���T�pS4:�-:�XNi�u�3�Z�;����K\r��q�q�YG��)
#]�u�-L'z��'�u��l���_v��������c�>1�1�d�Y1�clc�;x�5�?���j?$��c�O��G�/��IN"�V�Z��V�Z���V��V�Z��iU�)�V���H���j3��������f�D�����Xy��F��g,u���;��//`�f7�����k��Xu��.���K/
�k��`
"r������i��,qu��b���Q;mR�������.�v������f����uQ��/��������c�>1�1�d�Y1�clc�;x�5�EiU���%iU�*EiU�?cd�r�mAQ+J�AdJ��PY������
��D��?|����A���\w���/��� ��K�v�CWp9��q�
���8��J����c�ZY�y���&��7cTg��c�*�}�nS���A��\1������Z�����a��0������,��������g����{��^���1�c���2d���1�1�c�c��
��PX�V�Z��ZUjZUj
EiU�>l6�����ZUhs��iU�,EiU�=�J��UW�}����C���;-6mv�����<�b!Zo�2e��4��7������m������u�����OG���f��1q��s+jmv������q^�#�� ]C������vC���������m�>�x��c��1�1��+&1�m�c�o��Nxq�Od�4������N"K	Zr�H���r&�m����p�V�Z���V���V�o��qi�����V��s�@�$�|�����No�����w�K��w�u9����{�=��V�l�(���/o�������j��\�%-2,�e���wZ���w����1���Z(����^y2.��<V��h�b����}�����n�v��j�u��zUjO��VKu���������������/^��c��4�1�%d�1���c��������+J�D���8I�4��PT+J�Aa:m�m�F�q$V�ZI�q���m��j"V�Z��ZUj��8��A�����k
W���
�d��M�-�q<������K�I��Q�������S����.�O��Kz$�a���vEf�ZZ��^<�Q�slYk�v�iu1�9�W����7�������	�J��Vuu:����;�{�g���n��m��l}r���1��cLc2VLc��1��1�A��J��PT+J�AD�*��+J�AQ+J�AQ+J�Ad���PY���$��V��8�~��}������g���|���/�4��b��o��V�[��RU4����M��	����2S5}���U�����6V��1�Y�!n��T{�),�U�1�2��XH
���uu]C9��Df�=�l���APi{����Uz������}������~=c�1��i�c&J��cc�1��1�=�������PTJ��PT����K��Uj
�V�Z��ZUj
�J��PX+J�D�Nj�?�~?�:|��������7��	��U�:��]n�����Y�����QX�C���k�f������7�a�wfH�!e����pS�`8���6�����K��UND�#��9x2]���[������u�tr���c^�R������7oSxg�x�Wf�z��f���OkT��is0�$Y�{.�.���b����~�>��]*�<3���(�����LD�n��2>�],u���������m^�V����[�c��b�B���]f.���	�u����e��K������T:����E><��j�Ge�nv��+��GM�TI�y��Z,�����}�J�/����	�f�n-I�j.��MX�k�����+e��t���K�H�w5oVNY�xk4E`���!i!�E�o%g+7
D��t&�}X�S�;��������\{��y�Y�������&@r�4kf�"�S�����T(9�Z�d`6�����
�v�T�i�gb�W'��2^�����aH,>]�v��x.��|��+j�n���cr��n�
8ocfT��u��#��k�[�]sB�����*��g���������V6\��`/���E���c�k�e�������`��)P9���eZ���B61]���e�JvpkB�y0�N
m����:�F���;�p)�V����O���+q��a;�i����1K{�����f7��l�F]���=����\u=y|$����.�N��yf�������[��YfeY6�������W�{2<Q�����vj�Z�,,��z�Vh�1����RU�/"3�)��/UY`�{�F�����K��p�������W������R��=��|V!*0m�������#���F���R%��N��o��Z�0:e_��:������Z�mx^5�]�3A����`�������������p�~�������F���#���}f�ND���(�������������%�h��e�����%I�L�i:&���D��8w�;�0��I=/+�S�Q��1V�����y�I&$��w��E�����x�����8���$��IRA��y$IIIra�mw��}Z����� W��������2���sE
�J�����\x��;�A4,�	����8��"������ge�/h0�����;�Rs��v�}�$�w�+��~��^JZ�xV�����/�����Er�������������������q��
&O>����������� ��0i�3zM;e�	�gq��P)koi���Bz����+==��V<b��|���"����Q�+)���z�Yy�*�������U�;o[����`�g������d���|o�r�Y�_j�E%{[}F�E���0��xz���-�+ k�}��N��Y�J�nmn�����~�Yq.�]��cF�&t��Y�L��q�7(Q*����������[~�e_n�G�7rW�v�W�����P�za>��&���!���U�[�x��3���J��%
gL\��$vX��{i��qa[]]h���!�\����KU�\�T��m��b`���#$��J����� s���ex}����"���O:��<�DK�{x���_�GI���c����GWwmq7L�:x����k�����O�{N0oq�d�������<���tj�9P���@��r�r�U7ws���X�9������$���n�����z0���E�Z�u���9������60�7�=j/wxY����k[��yy��v�6�D�D5���VN��v��c������9�����I�#���rn}YY6�^��'����Z����IP��wq�2��G)0%V���V�;^�+V��(mt���<��G2'����Da��J���"�n��)��u�����uz��{��PPXz�VC����d���^�U��-�b~Jw�~�����y�}X��w��ct�;�(��J����<*������n�~�������~�:bU�k������p]r��B��C��]L�k-��-b?b5;=c_��{k��R��W1�R�ugm��7���=�1(V��O������*���������;k�Y�d�V�����fs���&3����e[��Z��ZAw�y����bG;@�Q��%n�W��z_u���W��v/,W���T^b��j��q����{fni��z������3?.�������g�]��j�{b�_�!BF�j�|���}�,����6����A�z�7�FA���!PqR���Y�����S�E����gb��V����=�Z�#�,�m���M[w������O�*�^��y{������U��kh���[H���	2�*AB�o���#GGh�u�+m�.�������lDl����W�w~�=�]*�D]s��]��b����������n�w����$M�@�]@*zT�	1lE�Z��������8����q���LV..0��;��*��b�+wv���8�������b���������tv���������3��h��":�"b#�:��;���?�W����2����������Z�
�
�\�j�!V"!V�V�V�V�V�W����R�R�V^J���^W��*�dJ�DJ��v�DD�������}W��}�DJ�DJ�]��s�*�*�*�*�*�dvL�*�*�*�<��\���^��K�%R.{U.D*�D�(�$I�����{=��}���{�1�c���2d��c�8c�1��1�=H�*����D�*���*���*�#�"M���m�,�ZUj!ZUi��M���m�:��{���W��������!���_��G�i�$a��5������upmN�J����+��[5vG��i��T
^����Ya^�9:�!v�U��m|��/#u��R�]���2��6�&��k�����I��F���s�g<��=���������������x��c��1�1��2c���1�v��j��I6�����ZUj!ZUj!ZUj	ZUj$����N'�+J�Ad+J�AB��������>���S������}�����������kh�&,0hte�G73`t������U�F�ev�;$�4�u�UdH�ibk.��c�H$a@#���0��.	�)n���?-��
R���6G��f����J��y�����N�-����C���;x�2<z�1�c��1�&Lv��1�c����ZUj
=���m��r�j����PR+J��p�u��N���ZUj
EiU�*%iU�6H���~{����������7�K��� e���AJ2x�]�]ty����Nk��U������r�sW��c0��c#R���J%���.�,�v�����R��1w������Z����-_��{R�7+���������=~�x�<�^��c��4�1�&Lc���1��1�A���V�s8�)&�Uj9�$�p,F�Uj	ZUj
EiU��q$l���mAd���PR+J�A`�*��~�����{��9��_9�����C���&Q�RhJ��(����\���C���/����y�v���n��>�u�7O�
�-��gmb���.�D������1P���R����]q�N��{���u��T`�1���������������c��G�X�1�|cc��&1����c�n�1��''�Ur� �\��(�\��,�U��D������q���\AP��\A`��\AQ%W*�� �$�z��j|�{���K��T��j�s&����.�%�Y�h���=a>��������s�W���i�c�#X��`���P\F�-&�����{���E#�J��z��0������@��#�
	����{���o,�z�~g_.���m������1��cLc2d�1�1�c���8��*�WR*�W|���V�Ab*�WY$��\AEW*�
�W*�!U��I����I�M���A�>���A���W����=���A�j��l����(A���;�	��.�e�ep�wLMUG{0Q�x���t�I_V������w�O�g�.�jf{�r �;�6���c��6�k!O�Ar%��W��W���clx��<z�1�c���L�1�v�c�;v��=�>6���D�EW*�D�\���\����\���%W*�NgIbM+�q"Y"��q"R*�W6�I���$�$�]�5�9�����~k|U�]�_0����H���
[�C<F��t���vx;l���&�m�m`��Aac�%��7�����&_9q�v-�s���e|���Qx~�d������@{�+9c1/rS2��^�=������������c�1��i�c&L��;c�1�c�x�'�\���Ur�$KjUW.$KUr�$KUr�$J*�W%I*�W%%W*�D�%W*�D���$G�H|�~?/�����m����nZx��$�1>�G�i���y]��/u;�#�"gl�I5)�������x�X����5`�"�\w]��3X�j�=}�G��|"U��F(]�	��`�;�E�z���Og��z>����c��4�1�&Lc���1���c����M���%���\H�D��\H�H��\H���U��H��\H�B��q"T�Ur�$K!U�����������^�����~~������W_��vo�����yV�������*Z�FP�kP����,��c6�N'r	��k%B�DX�x��Fj�0�����&4���Wc}���
���<RT�A��t�����?�o��?O#��c�>1�1�d���lp�1�c�o�dJ�U�$��\AI*�W,�$�I*�WY"��q"��qD��\AD��\AS�����+����w�����?.�����k7�^��9<�������m;Ia������
�8��EOm���k�YO���g.	���1�Gwc��GnJ��EL��MJ9J��� ��l�P01������n�t�����%������kaM�VyssX��s���L{���
<�H�����&;����v~�t���X�T��x	��4���;��	������b]��
Snz]8o�[6�Y~�����i��]q���ML������]������5w�d=�:v�Yn��!$���k����"S:d���i�w�����l��������R�W/+�fQ�Cl����;�e�k����e���#�7]���Q6��b�vP�Y�ei���#8DI��s��C�<%���
o�5!�pUut�p���K����Zl�
][�.
���`���j�����3�gW������][�ti��e��&uEB<��h��afnm�v�#B=��nW0]!����,5��������9[r����:�W�WY�,�������c!�R��g9�N�.B��Z��i����0��8��_E&�:��e�g�������Uh+�N�8��<�V,�w�O:�����f�Y'f{Buw������X�l5��~v�%���V�_W!y��Ml�vk����Ol+Q+��'g�j@(bw5T:r�eI) ���Ry�j�%6�c&���kJ�:��F��c�mb�f��*{���-�S�#6���nV��A�3.������:5U94-"=��oF��.���3��e�1ppKDg5���G.�j�[���{��psh������.E�������GH��U�heu��d�=�z����k=�����{M�^����I���n1�;kbL������}�;��E��i�.�������O�:���(�����#����3��1�t���^��<1�kWb��TY�E�^^nu:Wxm]O;�gP�������s����f���"= T���w��U�����Z����j���@�H;���� �H2H9��Fh�o1�4t���sy���.���]@=Z�'k+��d�w?}�m���S��kR��;+������`!��6!�rE^�S�e�����SE}����8���}8�(]c�|FG��C��8���R�U�a_um���fE�������
}�#������x���A�Qy�o�o��NQ%?�uO����+Q���i���	������@o�6FLYx�"}����|S���\����+'��N��$��p�k9(m��2��'�_c�7���*��:��z���i:mM��d�2����iX���/�����VR�<L�Y]����v���`��M��~���z:��VW3|-�dT�#���;�����p�C�7�����8g������e�0�lQG&��� ���Qo��*t�H�=]�c�Z����|T���ty��
����)�Zm�L���x*^��kg�k��
y��7���R���~������������(�[�tvb�>�������������")��3��]Iv/���-Z����r��v�]:�X>�:���A{K���yR.���b��{�k|���k�#�
�1���X�����5�����ghs���T.Wx�N�
�.�����*$�3>��6��[��~��6�*����u�$��:�8V2�����G�m��;.f�����Xx�\�"�[�9���[����7H3
4����}����W�2�]���
<X^}���v�]v��i2�Z�'m���RZ#[x��Mu��0��&i6���c&��J��m$�x��2�����Q���f�so���v\�i���f�ah����?�O2�����f�T~R��z<��P��:	:}H�6z��f��]�lL$���H�yC��s��Y�0 �5��YC�S���V�St �y��`��g\�f�s���ok��`v�7�{�����W%KN`�\��KBfc�������~W���9��yo�
�M&�D���F��i\*�iy6>w�9�
�E�au+_�#ZB�tf#����I�����o��or���v�mB�;^��l8����$X���d�����{�8����fK���G�Q3:��������z��&��>�Ik��v��}����������{���U^�����~'�+?�����/��P���u���LWv��A�w��l�Y"{��
9Z4���`��v�h��g������V['�vf��zj�m����.���q���U�>��>����J�#��$������z�������h���������wC��1[m�c~�F�:;Dk�1[h��t��mu�v�b#g�"U*�^����G���U���{�k���V�b�r"V�lV�N��������{�]��������<��[��y+[�/*��//+�n$�b���#�Z���kq&/"��k���������v+����-��GGh�������������#�:"!V":s�h�X��Z���tDB�DB��{��{�k�*�|||*�]s��"b"j�j�j�j�j�q�����*�*�<��]�j�y^�DD�]�*�*�e���>������^W���*�/��8�����s�???$DJ�DJ�DJ�DJ�E�v��b��v�\���s�j�{�U.��H��T���K�{U/:�<���N�:t��x��c��1�1��2c���1�v��A��U����Ur� �U����\��,%W*�$Ur� ��\��)%W*�"Ur� ��$>�s~|�Mk�����9��R���"�h��}����CB���[�����*�[�H�����Mh~��~{���A���X/s�j����6
F_�����~h�������N������\��9����]����9I?�m�x��=z�1�c���L�1�v�c�;v��3����n[q$s'D��W9�"K�r�jp�dNx��� �\��*EW*�J�U���q��q���u��� ���������o{������QK�FY�9���)g�����F�� �`����.���su6V���h�q�����!����U������$���l��m��4�F/�}���Z�����B}r��n�?L�^��c��4�1�&Lc���1���c�=$��\"jp��\�WT*�WY"��p��G����m�H��\AD��\$�p�RM+�q�*�W~���%W�~�����Y�~+���� W�;+��f�_���&b������T�v\>U��5����f���SCa0��I���hu�nm��2�'���l+"��QwY:So��i��g�T�Rn�d�9$�\�m�?O#��c�>1�1�d���lc�1���8��$�\�������U�,EUI'0nUV�A�Q$�j��=�Cm�n �n
�����F�6���AR*�W}�G� ���s���W�����
R���R���K�M�:�	e�
dVw����
:����r��]}��*fH�<����6�p��]��Z��7g��� �X����I(��P��Ew.��:��n*T�U��g�������z��c��1�1��2c���1�v��A�\��*\��)\��(�\��(�\��(Ur� ����q�IU����$l6���A��!�H<��9��3�����m�:�����Rh|M ���x>%�R��u�]5����������V��,�2��zi���Rf�;"��E1PU��(����}�%t�:�y��p�D�MX=�����-U���F?*7H�����t|�|k�`�[m����#��c�>1�1�d���lp�1�c�o���m[p���"W.U�B��qq$n
���Y
�U�B��q���\A`��\A`��\A��	$�d��x��U���o!vO�5�.�[g�������~q�������.�����J�A������"=4%lD��*�}�uu�Ub��
�~��W7���]x�n*:
�f���2:��|T������u��b���xf��������ny��������t���x��c��1�1��2c���1�v����z�UT�TJ��$��URIb*����UUI%������I�#�6�j�K$UUI%��I<��>�C����n���F�>��EyQy�����g:�������R1+�����j,����y�]rFjE2��z�0]]u41��S�Q������%^;�u���2�qS���c�����vmi���By�~+!�����;@�C�V:����v�����dz��c��1�1��2c���1�v����z�J��G��I%UT�Y$�URIR%UT�|��6�m�y8��6�j�x��$���N��6�m���J��$� ���|���>g?��]n��G���n������
�m��'��P�R���mYXX���v
�PS6��MU�>F}���,L*�,c�����_I����+.�HdX����P��'�a�=�qV�6�M�w�R�Q��*��2D��>;t�}dz��c��1�1��2c���1�v����z�*����J��$��m��I%I%UT�Y$�URIQ*����UU$�B��I,�UUI'��!$�${�}������q:��_��#������i&*���JerX�=>����0��uk�8���Gr|��������*��
�����Yw�'���	9BVj��O0,�G1)Kd������}�gZ��75g���v��>���^��c��4�1�&Lc���1���x�OdJ��$�%UT�Y"��I,URIH���KUU$�D���K	UU$�$��$^{&u�;�%�%q��~ei{�+�GHA��uz��
=�a7S�=a��X(������E����M�:�
o)E�.�k�5%�;�y:�5�6<������:F�v�!V5iM�R��-L����6f	�����#b�^p���Q��[����\&\q���j��W:K{x�G�/5�k��|�R�'p�Mj#����x��k��I�W���:�c��g9����/|��;4�K���U�U�2���D�ln,�J�d<H$�37�v
�$��O:��:;��B1X�W%j.������q�,"���jM���!X�������+<�=[�rj�gs/������Ub�i����IK�����bb�%���:�\,'x\����G���K�����%�K����r��;����z�D��%V����p�����I%$�\[�T��>�c�tM�-dL��5I�3'K��=�/8��nn�3��L�i�����$��gS�����6���c������m��NTE������������f�2�J	5�,*P��!�V<�V)�S'CW(��w#�-w����wJ����t*K������N_7�tF
u��r�*�7lG�H��Yn�-�u[b
��A��}V��N�������a��������7��xj���B5���fB���b������b�2g0`��$i���kf���%�6�r���"l�Z�a)LJ��#�������\N.<�v���R-��N��)E�6�����5 �Q}a���F���8�6f��f.w��e s�V����f�% �>��X���|�T}6�������Y8H���S �f�$�m�4��7�b�;�0�1�w$�I����_���I���=;��7;�}��e���n�<�M�L{�����V�E�;Xfg`�O7��+��m������EO[3���Q��Nn
�����ldL���U-�U������x�~D��x&�R0��!��e�}k3�4e�Bf��b����a��ei����,����E>��m�����#�N��	�1^��u�5Y�d[j���E)U^�����~�'�'	'	"p�� ��d�wU^�����}U^�����~m�������V����#��*�p]r�+Q�uL�O�������1���e����=x��d�'����\�U�Y(B��~����[WF��-��}=;������~�����5��h?z����i�}��lS���.��w�w��a����f�:o_���l{u����6��!8v�&k���'�t�evM��.f�.�I\����{0'�+Ulf��}��x;��h�e�Vn��A��h�U��h�C��-���9JA�{�e\GX��m�v�H6���6{��������W���L�����hT�=q#sa�H�J>�=I���7�m��
�]H�_3i&��z�K�Z���j��fw]��+9��S��
J�L���RtM,��^��^�J����:T��y��Bee�Bm������P��}����l��������(c�]"��uhE������M��u��a��/6��,���r_�wj����u���@&���Z/����co��}�!��_�o%ZKk/����]��s,������S�/��jr][��g�ED65�X�����UK[�Pfn��%����H�Z�tWH=���fHQT+����f9�����]���g�55�RaVK���Og���S�`���C;��I����PNgV���A���\/BV���-�w#��'�a>���Z�:W�H��>1�������Yp���F]��^�|Y���vT&�4��'p��{�����o�����&j�Wv�Y�]�=���N���Nx��d����8���{�4����[y�;O����6����A,��)y�qU�T����/����78���4���pd}NQ����c�])^E���
�/��I~u�k�3}v���+0OE�l@��G�J��3j�5���:�����@{4�����Y�l
$��"j�_nJ+��uw��.��2���U
�j��\���k�+mZ~~t��
�%�x^�[G�����V*�����2�;��6�edg�rv0�����z>C����R��j_�? u4vwt��<�������\e����zAv����\+#�����4
7��lU|��+X.v��������k4}��{�������??U���:��n�$�mKq�*�6����l���+7��ra�6=�V[��u�'1K�����J�g�N�]tt��/^b��������P�����%��6�<���Hv�B�poY}���^�^~�n��O*�V����{[ZB@�a&R%H(T�m�c~�F�:;Dk�1[h��t��mu�v��4v���x��{���G���^^���qZ�������\���k�V������>>6���v��=-���r��b-��J��n8���8���\b������#���k�����������*��/"#��4u��kkb#h�"4tv��N�yy�;9�m;DGNtDB�Dt/V�
�
�t���
�
��������B������E�=�"!V"!V�V�V�V�V�W����R�R�S�J��v�W����vD�D]��e���>������^W���*�*�vJ��d�DD�DD�DD�DD�E�e�'=��DJ�E��s�j��=��<��]�*�s��H"I"AD�$�H}��{=��g�����1�c�1���&1�c�1�c1�~J�'
��I*��I*�����m�k$J��!UUd����UUa*��u$#�$�&|����w5<��������^�k��Q^n=p��~��G/����=���%]V�^���El+�������_N�74K$�;v����%�TV�e������0�9d���k�?����>����c�1��L�1�c1�c��c���Cm6��UUI%UU�IUUa*���UUdJ��IUUH����C��{7��~���|�:��q��J��A����'�L��^�i\uXD��U��H��ZGl^Q���+9�x�����Z��x�7
�a���]N���2=6��mJ��<�_9C�N�����c��c�1�c�1�&Lc�c�<c�D�UTIUUd�UUYUUR*����6�m�%UU�*���U_D�� ��q����ro��|������t����|��x^$�����T����H;�g���5<�����[�V7
|v�y���t���6�J�3�u{����V<S����Y]�R&����D���m����x��c�1�p�2d��c��c��c�����!��N����UU�IUUd*���J�����m��$���q���H=����\����X��E��q��q�j���i�W�u-z����c��Brm�2���vj��Ffjbf�{�i������X��@"[���W
����.����Y7���R�C����>�Oc��c�1�c�1�&Lc�c�<c�"���UUT���EUUD���EUW"��X�UUTJ����I���u��s>yw�~Gl[��V^6�����f�vL��m��f��9�N��0Yh�*��V���ms��<��4���f!Z����N�[�6q�|��=|��\I��|~>�=z�1�c�8c2d�1�p�1�c�1�b*��$���$���EUU�*���UU"���UUb*������y�������|���,�&,�Y[�M"3*Xbc\
V��@'@�X�N���q�okas;{�gs�4�v����8��wu��Xv�
�1��%��
���eXv|�����OU��?^G�X�1�c�c&L��1��1�x�1��UV����m��P���7$�m���$���UUT*��EUV�A�H<����~s�;���=��:��(J�����j�Z�31f���#��ml�-�f,����YW��f��9��L����G��*���I���sd���z��������7>Y�����o�~>����c�1��L�1�c1�c��c����%UU�*��%UU�*���J��UUI%UU
����#��k��q�^����qC��W��
�GE��Y�lIy��68��2YRd|r��_b��K���>����D���m'J���78l��W:L�'������	shei!�fj���J���-���������?g�����=���c�1��L�1�c1�c��c�$�Ud�I*��I*��EUW�nH�m��UT����UUY$��� �Iyv�-������o]^9���W�u�����\���������n�_M����������k��yD����m����5��p��kf�+��v�m-���,�<����7�VfT��6�3�/c��������c��c�1�c�1�&Lc�c�<c�����$�����������J��$����UUR*���T�|��}�eC_�_�?7�s9�����s#4_:���N�������j�����D��&��7M�^������6��kx��nw'�)m1���0i�%����h�,W<U�B*��{�����R�|��U�]��YYa��ER ;
B���3������r���c����0t�9��6.t��.�����g�T�::z�7Pn|��Jy��U!��r�:�}�*WF2ka��m���,���*�I��#|ss<�����r ���42�@�3\qc�����
�,����(��=�q�B��J��ZK���,+�����-�,���\�q3��
.��yGx2����g+���~�H1N�P����UY��8��)�3�:\[z���I\C����OUe�Gw�:�fr��ElD�5����h�5Nj��6����K�/����fM4/���u6�u�yOe�y�a<�Wp?u�
r��P�W�!�h�o���K���2���^evVs�\���
g__V�E��LSJ�K�|	����A��j�m]��!���j@��im�wd;K1I���n�R-�kF3�kim�f"�F����4{���t1e����������8�UY��U,f�"��R<��]�Z���ry��
T&e��6>p#7�`���'�ik��k�"�s�2r�7H�IB��&&d���Z=����ry[7��m�+3��`�5�47n^S��������I!������N��%;X��3�r'"�s���\��[��s�PE��uj:���CRm�4w�v��wJJ�� ���Y)�F]�z�Q��9�G�x
��������%����\�3��(�!`���FT��0��
�t� ��X6in	K�o�N���$�+�|COloE���O
w����!������2ev�x����w�e�1������o�nd�nnjt�%GB��������q�D�j�.�
����=����cS�u�>k�s��������gB�v�iUa���+���}��/y����q,�����������]u�V�����|����#�#ikY�e��*�}����m��{�UW��Lly>���8�{EWd��n���X~�Q��cm��?e��u{x05��_C������G�;������Q�2}�V�\5�+Z;�6@��g������V�~�
g��P�WQV�Gh��82d�\k��t�v��0{�HE;[���3.�T��������/fW�g�S0+���Nk�uWX�U��*I��2�a~���x4E��������}�`����FrjyF���2�&���
�����������������Wks�.������N5o���j����P�x�����w7�7��mY�������{��WWw�6.5�
��FC7�zf��
���VY�y�{h�����|P��S�N�W����/��p����h���5���N�#���K\H�p���ht&�	�[�'z@c�t%�gl}��ER:Nq��V����gQ��l��FjZK����/}�m�q���T�|D��}y����(�V�k����*G�x.}(�\O~f��<M-`��[�a���������=��Mr����g�e��~�v���9����Lw��vR�I�2�n����;���/Uh�g.i�<���J����<:�g��#Kh����*6�}��
���^r���|�eZ�����+R����sg������	.�|_]���7�h�!�`��tS3��lv=����*=�dY����z�[:(�����]-c�u�0`����1 �������f�sd����{M�U=�qr��z�VA�4��2�m�n�Lh_2y�;�M���(�h4�[y��������c��=}>���m�6��_?^mK�N�N+�	�}!���u3�j�+��"������&�9���+������m���51�X�.d��������h]C�B=6�z
������<VI�������5'����=K�����:NP��{�;���J���z���[}�h^X������}�|�*@���mXu��Q�W�e���&Y+|;'*}�v-�s&P>S� ��th�X�Vw+O8m^v"�������s
��1N��m���|Y���;&��>�>���W�~������~�����{����b9����^�{����+�b��O!�u�(r��p�j�7��/����������\w����
�H�����tU7����S�)sy������U��kj����7s���H=[��[o�U�oN�������������O*�V����=��! ���sX�m����mDh�����m���Wu����N���h��n��*��wu]=�j������w���yWI����X���k�y{�>���j��Wn=������*��"��t�J�����������+[�1X���;�V���Z�I����h��8�������b�����������"�����#dvs�"4C�9���E�g���U��U������U��U��|��|��~>>>b)����T�T�T�T�T����n�R�R�S�J�E��^�J�DJ���v�]�j�DO��������^W���*�*�vJ��d�DD�DD�DD�DD�E�e�'=��DJ�E��s�j��=��<��]�*�s��s�*�+�T�w<���N�:t��x��c�1�p�2d��c��c��c�%UUH���im��J��"UUT�����UV����#m���q�$?d�}����������~{�?/���ay@���6�
J��gY6�v��t��Eo*t��f���koj���YdWj��~8Un#w����W�k,���t	����p�c��M��w�*f�O�s���a>�������#��c�1�c�1�&Lc�c�<c�����spm��X�UUY$�UT�UUX�UUY
���UUH���}�G� ������/�����-e��t�	����5P3"���SJw��q�R��Y���v#1A�.YOu�sz>����V��L���������Y����}�]]�l�

+QiP��IqBm�4O�B~>9c�o^G�X�1�c�c&L��1��1�x�1��UVH���UUTJ��$������m��	UU�q$�m��UUq�I!�H5g��jc��x^Yc9�-�����6f�5�X��n,
�t��-��G����L�����&��pZi.��]ue`�|.�Rsj�2�����-����l���"��3h}����)R�tPjKV�q ����G����������1�c�1���&1�c�1�c1�{	UVJ%UU�*��I*��$��������m��P���U_d� ���������]u�i*�#X�+Kx7?�GZ�D�w���N�%��0^�j:�����2�q�k^�TIh���[H�k%u����9����L;*)�F��N�0�&��-K|u����|����\�z���l}}{=c�1�c1��2c�8c�1���EUU$����UVH���������UUXJ��%UW�A�H38���s���w�,�
n�����J�Um��9c^�����neZt����n���Ln�����E���n��U������~6�=��a�������a��6��;�Z��f��z#���v���#��c�1�c�1�&Lc�c�<c�$�UT�UU|�$�m��H�UV$�UTIUUQ%UWrM���md*���_��$}���_���{oG��$�X����ec����83YC
i#q�wO��fF&����j�ae����kb*�������:�!vk���w���p�P� ��o�{���.���-e[A:��{����}�����~W�z�1�c�8c2d�1�p�1�c�1�R*���UUH���UT����J��	UU�����md�UU~���_}��~�]���X�xb*]5G6����[�3w�K�K�^�y�SR4~�Np��p���#�"&Q�����������������K6X��u��������,3/74��N�&/7��~�y���2=z�1�c�8c2d�1�p�1�c�1�D���%UU"��$���m���%iUa%UUI%UUH���%UW� ~���3��=�}��������������������VVj�-���J��TcV�N���-�3i����J�I�����h�v4^����wi�������f�
^:����]t�j����pUU���-����y=c�1�c1��2c�8c�1����UTJ��%�IU�����Ud*��UV"�������UU����I�z�V{���������9�M���FRd1r�u��oV�@���O�$�;�v�j"���;u�����W%{��e	�evq���u�-R���J5)p�\��V���z�������#��c�1�c�1�&Lc�c�<c�$�UUUUX����F�m��*��IUU��6�m�%UU{�~~~~�������_�o��������dy��.T,�����=��^]���Ji�������6nX&��(����t3��{K�L4[[K2f�9
P�H\�C;U^�F<EC��
�+gMb��+|�:{�0��������y�����>����72t� xT�,����]�gr����9#{����^79�
5�et�eb-��Y������a��_0��j� �8�e��D���E�Y[�AE^<{����P�<mkx�/,p���v�H������He��\3�b}�
�qHJfm+����"J���m�Re�z���������B4���|N��u���Q���v���]3�LDi\���m��`����=�7d��P�sM�\���f���q4.Nu
%i-o�r������]����/%���Q�d��� ^�
��w���V���DZw�I8=Z�{^��mM&�����}�1��^]��m[��mu��������{� ���
N�.��_��5���8�
�:�|S�D�W�:�7�QZ(�c��n
��m�c��'�2j�v����n�1��Z�E[���R�s��9�l��B�sq���F�!��+!����A�u�.�����L��xM��S#�[Y�n��S<��OEj-���jW	Y9��/�72�e�Yes�X�2r]d����JW���������F��C�
�w]1�h��6�kr�R�J��8��w�����Z�Qr�e�����aIY/F��f�Z�Y�o�gyR��x����8zAk@s+6�X�6�5r��r�r%����U�yl��l8��u���t�z���jzDV��v��t�MytI3�T{����<��1�<���|�3��n���9,��a��d�����@u>F�������2�V:��b��
����r�u��+��8�Wl��cjD��p]�8fd����c356
7�s�Z��Y��1U�V&��c�KT�������	,��]9�~�&7��C�'#���J�|�We����;��'���n�N�9�[i4Y�Y��3����&.�jU���6�6��&,�w�NuM���(��"+t��A�A�H2H?$��8�8G	H��"|��$�����9��������}�<�b��F���2�QZ��.�4�u���h^n}�k���IN6�9����-�{�������[|�7+w���^�8�X��yY���%��r�FS��l��Wn�����{���}6l��,U�p�ip��2�
�����p`m���o�.;�p?d[�x�����~qml���_Or���\�NN�?R��E�t{+�g�q��g�]s*����5���`�
����p�U��	�IL�����I��g�V����(J��:���V��}���[���f�A����,�������7:���2q���,�v���������z�H�w�S,���2��3-�4���@�f��+�X����=|O:����Qs�6��)u;��}67��}��v�$Umc����s(����;#.��+���g[��) ��f;��Ecv�������"4�b�f?��K���_eF�Wx)LkS"T���M�����]��JYclG���n�^�\
;5��z����
������s��
,�%��V�p��	4N��|K��2����d+����O�����,����4P��7Z��5N�h�����<
s���\���,�~����GD�m��Q�KRm�i�
�y���}[�r�������o$Oup{O7��<c�6��W���5U�8|<o�V�;��������	��m��zd�]n�� ���L�\[+�
����OH������z.\��)MM��eG���|jVD0u��iR���0D3��T
e�u7%yf��j�Y����3��I��~Z{�}��rfa������fLT��G���e�9S��J������%�e2�U���2	yN������{��H����U�[�d��e�q����F-����w���	�Z�� �d�,to���E��=��g��4���Y�}}�`.f��>��H6������P>�����Vd�N�+w<	a�+���xl�����]�X���xd�WJ�����y\�j�=�6whe���WM)uj,-��������),u���:t�������n-�j��[�K���f���^�}�����������Ft(��P�;q��xj��{�C�I�k+a���E���p"N�	�������s�'5���a�P�;��=4����,y������Il�����b��8U���������������u#OkkH*���e"T��H6����#]q��GGh����"�;�6���5��������t�]�����.��V����\q&"�+��u�/}��||m[�����{���V�WV1X�k�rV�^V1yyX���kq&+Ga��]�j��1y�m�qyy����c[[lE����E����E��;9�!�������V"���[D*�D*����DD*�D*���{��V�
�
�����U��U�U�U�U�U�U�]�;���T�T��H��R���H��K�%R"�T�.�H��y�����{������*�*�vJ�������=�l��*�*�j��=��<��\���vD�E�j��d�$D�"H����g����{�}��������6�8c2d�1����1��5>=H���EU�a*���UeY"�����,�T+K*�UYV���>�_f��O�����Y��)��������R k�5����o�O���WV����B]*rf.����O$/:�<������Niv���h�Uw�[��iy����^;���'��c�}x���c���c&L��;c��<c'��EU�aUeY$���%U�bJ�*��VU
�+��&�nmP���;}D�� ��8������`�aK�W�CH`V�:p�#��6��(����k{�]�b�s�1u����'��]O��)�"�>��r�����n�L��KN��\�u�Q�F��#�N��v�}z���c���c&L��;c��<c'��UYT��*�UeX��\,�*��
�+��M����UY^u�:u:~��D?RA��y������5��Wr��R�����$;�b�{ON����C�%>���qWe$�3�SQ<Nv��*��[�z8�r�v��;jt��/�P��R�k�����M���o��1�����X�c�6�8c2d�1����1�>=H���EU�`���H�,�"J�+{D�m��
�*�$����U��_d� �~��~y����������=�u��N�&j��e�z\�V�����M"����Y��:I�H|k���c[1�c�}u��M6�}&��"���<�pIm.$���3/l�5w�G��*������|������X�c�6�8c2d�1����1�>="���EU�D�����:H�����UeR*��"UYU9�I+K*�%S�����UW�����9������Wx�
��2��r%
��g7���v�p���eiZ��-���Y����@���
Z����L�H��Z��X�����^��]D�/�4�Y(]+b�}{��~�����n�_��^���1�m�p�2d��c�1�1�c�2|z��+��D�:u:w7�nmb*���U�I%U�d�UYT��*��V?O�����������������Y��[����5};/oe�T�1m'�\;������<MT�:��>4Ky����X��
�y���z;)8�K79[������u�;��35��{�lg"�o��]M�'����>��z��V1�clc�1�&Lc��i�c1���J�*q,�J�eT*���#m�6���m����O���S�����d��*�Ue|�G�$N����������tqYZ��;���T��<9��$��/�T^��r�*����u���t���v�FK������n�X�g5`���K.���:o����"��������n]6����^���1�m�p�2d��c�1�1�c�2|{	Uew�6�sl�
���[�rD�����UeY"UY_�m�6�UYU
�+>�C��&�����N,��z��\����35=�j�e�N�<���s�-2_J�v]�����5�����\
"��� �;�Jm�n@�r�O���f��Fo.(�X����}_}�>��m�����^���1�m�p�2d��c�1�1�c�2|z�UeXIUeYUYU"����M���{m�6�VUH���M�&�nmg��I��g�>��|�������|����f����f�,wr�] ��Cr�p[�Nt��������4��.�;���X:��������Z��MVWt�6n�8�D��z��u_W��|��>>�O^=c�c���d���lcc��d�����EU�H���$���$���TIU���U��rm���F�������'F����L��o��E�kb���Y�+Ea&q�WXq�A6�vS�E��]�#h���Q��-eI��s+�B��f�~p�s��k�zgxoe=�o9R��K�A����;�N`���x����	}���m������5e#6"^=/N=$e]_1��0���{w���;��<������V����t��wP�7��`7]r.�m�-'�+�YWK���+��;�[�����'J2f���
2�hw[gt	*�zU���Z�=���h�u��m����WQt��
���[��M�\��9���g�~��c�>���s�����h�;n��R{0nN=����W����Ba�Zz3�Re���:W����}yl.[�8�����:'U�Vy���������{��n��y7������t�������lL{���]��=�W0
�)5��#���K� L��t�J/Q�9{��$���\F]p��uW���;�6�_TsDS�M���{��nW<��}��K��9A#�j#���2�T7�!0��lf(����Le������y��x��`
l���d�3��FV���W
�kR��������7S�v����M�\�D���=31���{�y���+����������E�k,��&1�]�����G���cz�����\���k��4,����ML��s������sq�w�D� a�{f�qo��Mw���n	EG}�4�Rhs���4$�7�j��M����=����&��P�����fm��[Y���A��Y�v��g����
y��8��/�a�V�8�����]\�y:�Nd�v�1v�d�_u);���]�.��jX2dT0��s�(fVg��"�N�K���E=�����;DY�V�)J����5���3&�]�RTj=��[]�\ze��Dtsx�	����.Vc����ud<���������Z�������=����G�c��t������M+}��n{��6(V�
A@��qR�m�h������������,�ZU	�tM���!��Y��\����'sOmp���u�z���Gm�R'Enu�|���{� �A� �A�O�%�Z�U���[-e����U�����^��B�*e|�]#��+�/�����l�N�������QK�����dy��f�#0]�7�:x�L�Yu��q�2�ol�%�S�3�b�Pe��=+q���t������9=3�5^���h�V��#R���{9"yq+\���i�#'Ac�9�������t����XG
m��]�f*���qj�j�Z.;�X�Twj�V�)^��nRhu<j��]��������~%|�������iRM����^Ep��_k�+�Xj����R�n�^z�+�:�����������"L^y��P����[�ox��i�w�}�uQ�"]����{V�`��zr_��WC���O��SG�� ?j��c����JAS,7~t=W���^Q���'_:��/�oEG��zT��.�k9e��s{.y*J������g�s(I6���Q�M+��u�L�vu`)�{t����j��z��-�&`��9s�f`�YT�tf!~��YkI���J#�o�S�U�gx``'�8l����[eU�:�3��i��tj�E��X�g66���O*��_4�	
��K���P3pSf'�yN����&��j���M�bk��]_�����r�N]g�><I�(����C��+����>����p�H����e�c��*��)s�������Uo�;OMF��V	�����C�J3��%�v���X��h���	F0+,ZTfm�9$���K[����\�9���7�>��}N��7���[xL�q��Z�J^qv�~�^�u���^��*X�7�
�R���m����z���^�@�~<��W��#��6��#�M���)N�/Eb��n����K(%O����[6���a�U����)�#kobEr�������Mstva	��z�9nT��k+�'�g��ov��J�<��������7�v\6z�u
&�B��}��$@%=���*I��r���"Fp�Dd�F��V�-��CxB*RVu�4h�6�U�sW%W�Gm�Wf���������z���h��)��w~���D�:�����e��:��^���/��������p�w������]��6����{��{�����n��������4n9V.J�T���(����-���>��r���Yb�aZ���.�.D�#:-!/!���tZM��o,������SU���[V������5U�<�=���������'P����G����
 t%J=�:;Dk�1���WK��u�v�b4v�.��U�N���{.�wK��\�+]����8�R���k�V������>>6���v�������r��k\b���+[�/+���\\b������#�g�[V��q����]��\b��";�#G]����/".�"4tv��tv���vGg<b#D=���[*�]v{�h�X��Z�y^���X��_|��|���!W����V"���"!V"!V�V�V�V�V�Wmwt��R�R�R�U".�J�rU""U.��H��R��U""}���n�����.��D]��*�vJ�������=�l��*�*�j��=��<��\���vD�\���s�*�D�"AG��g����{�}�����������c&L��;c��<c'��UYVBUYU"UYVBUYVH���I*���U��pm���I%U��!�I^y��_��������F�:)+T[7�8��%E�u�\�e������"��e&������k���.�b�����[n�/c(�"#�>��!���V���]��'���1����X�c�6�8c2d�1����1�>=I%U�P���D���������+��6�siPUY_wI���TI*�����$_�mo�<�{�����qJ�m��i�d���s���9P�B��W#d�������vJ���(��,2fp�m�\����*������aUo�i��I$��c���X���c���c&L��;c��<c'��IUew6�&�nmREU�QVU�UYZ�+K+N���r���"���J�+�$>�\�r�~~R���o�
%�t�	�kZ���6S��O:��#{oz!������gi���t%��n0��/va�s���-�w�-�6��7�|����~K�]�dG��;c�����b��cc1��2c��cLc������*�����#m�6�*����VU�$���&��m�6�&�m���D�VW�H}�}����"���?�r����	���],�U���vm<�Zkh��=>��6]��c{[Ee��pIY����m��#m�=cj�m;X�+���0�KWL��7
�}�jU���E���~yz{=��~���c�c���d���lcc��d��B���J�*�*����6�sj�UeXJ�*�*��!*��D������z����{���P�����n�Y�y������k7��S3�����f�����)h�n��3�9E�,	�*Y��Xu�i��
�,�m����83�O��O�{��fj�oh^V���w���W����������X�c�6�8c2d�1����1�>=�%U�d%U�`�VU��VUUYR�J�*�U�d*��X+K+�$>����g�{�/��>uo��kZ�����|��=Y]��Dv&)�@n���5c��x����
��f5Kt���7V^DG�����U��s��i'\��=j������k�T���Mv��{|����|��j�������X�c�6�8c2d�1����1�>=����m�6�{D����$���%U����W+*�UY_vI���Y"����$�Y������!���(e���s%�
Z��r�������Z������V�Yu���j��j�FQ/�^��k���T���[�|ww�x������sE�IQ_/\XOZm��?X���c���c&L��;c��<c'���VU�*��
�*��*����%U����m����*�*���GC��A���������&�/?��}CM�:M�Sw)n������{1����1F��:��-�A�v��m�on�e�����D�sR'i)�����Q�RX�q�����]oc�k;���I��*�������b��cc1��2c��cLc���	���X����VV�����R*���UeorF�nmR*���Uej:�I$���y:���^9��e�]�>�Tn�0�Zg��e[���)��t`wh�����h5Wk�[�[ASIm�N�P�>7�*��f�l��u�Ju(�7A#�kw!P<An��j��3
}�O��;c����c�c���d���lcc��d�����������%U�d����IUeXUYTUYVVUJ�+g�o�}��|*����@�nzo785�����U���~��=�W8�`�_SC� Z�7/�������^���j�X�8t������DN��v�W3k&kqu��0�IJ�!����"�B�}v
��������-Y���4	��M��������W��sF�*S
s�����Ct.0s���"
[�v�R���%2����1���U�,%Z���V�I/�^o��R�E:�����9�]g����.�
���D�Kp��������28�e]���a�.������=V���:���mt�WP��Gw=v]�.����k;l���VY��������A�|���k��pM�z��v��)�L�2����Wm]�sgQimm�]��Wc�J�������%��)M�g�it_jx!���R�:2$���)��������6�����K��fE"��E`���5n����]�W5�{�d����q=����#|b��#����2�vk3:�Z,"=w�v��}k;%B�M;�j����zr���94K���X����Im����\����{$��L��m���<;z�o4b���_7��g�����'M��d	�j�"�}��a��5p��)9v��^J���D�&���[(����$@G!���=�8+-h{jA�2��&M����
�S���X$�������,��8%+��skD�b]�F�V�2��:\�-l�4���	�@������VaX���luu�\�&�*q��^bz�au{��#��V����������a�e��a.���+,b��d�<�g8��}C1D����(��;"�v�$V��x�5X>���R���������8����&N���X��Y�5N��n8FV�	�r���c���8m����f��Sv�Y�,\Y��#:�����p��z��r��!���)���
#�kOn�;�����]�^]Ctu���tca��lI�0�v��������jn������7�dM�h�X��-of�;f��wox��Dg����J��q�u�u��>q�A��|�����������ek}6����ZN'�A��s��>�����5��������n~J���2A���v�E#��o��fx�Y�wzi9������/;���nU�eD��q��s��\��x�������YOGV��C����4�E���V�=��3�]�~��0���9Zbo��8�q���6"�V��$���Y��k7s�R�]->�m�=���\�(� ��]���s&�f��7����t�[? �i[w4��X��1���S��Y�{�OLtH{S&��>t������a�������*�P%QP��,���N�����y��nk����������s&pAD�w*�G^���9Y2�R<����'yp���]�+��Fc�S�x{'
�;�rS�0j��M�;�+�Y��m!y��h^�J�����?}^�N^un)���vu,��t�rvbA!����W�%
��=��$ke5�Z}���d?g���^v^��	Tt�Y���� ���
��2�d���{��t�d�U��'7-��Rf�f�7t������]`z~�3�	r��� v���bC�0���%���PL]u�E���pz9�^(�2����2�A�\1��R�XOf+�w]%�f}��~�3�����e��k�/Qo�,�B� '����wy����=�D{�#��gL�u�����KW2�x�mU�I���]��"����1vabpf�X��}b�[�8��G%���XP��;f�
���k8,t(��]�j���GyY���4`�J�.�;���11����j���N��zQ���i���r�.��+���X{N��c]�����F>��Cw�s����n�<���8����dY�w�R�ok����b�������
Y�Wy�S��&����U��>�M������/{�y���V����9VSW�M�����zQ���=G�>&���Gc5e�{9��z��b�&z3x,I��������$���5�2�7�2��������V��`]q��u�W�u�����ds�C�d�/�'�����*�0�t��"�����&J�O��R�B�"*����2[��9U�Iu�$iu>-�:R�b0����`�+*�������������W��U^����O����� ���Gw
��B�z����[l�B��6�����{�Z�y�/��������S��9fJ{)�Ze�C�Y���h-Ti�j������������c;�J{���������U����u
���D_��!�������������#]q����^����;����1t��\t������Wt��u������*���EJ"V5�1Z��^�����������Ov//"�����q��J��n8��b���qq����+Gd�b��eZ�������h���������u�"�����������"�u�E��;9�!�������V"���[D*�D*����DD*�D*���{��V�
�
��=�
�
�J�J�J�J�J�k�����j�j��v�W���v�]�*�j��v�DD��������U�]����U""U".�K�%R"�T��T��T��T����N{H��H��R���K���\���vD�\���s�*�+�T����{��{���<x���������1�&�1�V1�1�c�2|{"UYVIUeXUYU����VU�J�*����������W�����W���O�5������=���m�����Eo�[��kl���S�����L�,%*��u
������R��Mw��������>�I���%�
4u�B�{�M�,IB�`�U��?���O�_X���������1�&�1�V1�1�c�2|{$�VU�UeT�VW���m����m��UeX���UYU*����� �$>��n~�������`���/ �[��j��wa�^��k�WSTC����U�c��\��0vq�����=�]�����	}���h)P@)�H���DS/J:�i���|WF�u�e����w�]?��z���x��clc��l��+���1�>=IUeXJ�+sp�m����d�:u:Y"���IUeT�����������D�� ���|�??%�n����k|�d�)���'k��tn�'J���WfYBK3dWH)��:�%��>��o�J�P�gegmu��
'c��[S��Y�c#��������;s��Q��X��W�[��]q����}����������^�x�1�m�c2m��c��<c'��*�����*���VW.\�[IUeRJ�*��VUD�����$�w��s�������-
�_"�t�����u�[��ca1�s/Ken����JPwn�Z���q��y��Y��u��$�z��f8��pK�IE�xN��K����������<z���x�1�1�d��Lc�cLc������TJ�+��m�6���m���VU�U�RUY_7#m�6������d�|����g]��9�y��{�����X���s�/�J@gL.��,����v)6�\�>�ob�#���$����6�#�3n���^hR�v*0�X���Wm�Lm�������}��>�������1���c&M�c�cc��d��$����UYVVU��*�*����m��J�*�VUVW��B>�~R�����y�"������q��k�P8���j]4[+2���n��nj�����n�j�t�^�=k
u��,���or�(wA�N6a�-���i����?^<z���x�1�1�d��Lc�cLc�������UeT�VU�*��$UY^��m���VU%U����m�����A�H9{z����R���N������p �%H�O;�{��ZU"`�fs�	��M[�#�_kS5Y]0�3���$;:dB-���^5�7:�������j�PNu�4��J���������}c��+��cc�L�d�1X�4�1�����UYTUYTUYVVUIUeX�VU*���VUJ�+�$>����~n��?��6������k��*	]<�+��b�)J�Ge�sp�}
��k��II��-����K����{F�o�;)f+����CGa�o��}^:�W;�5��#N]:z�����^<W��6�1��6��b��i�c1������m$�m����*��������M�����VU$����UY["d����?,����z?q��n�d$���P���!�/��N��l8��u���&�}���B��{�r�x���h���	(W�Q�{I��v��&fNw�V|}���~>������1���c&M�c�cc��d����\��*������*��%U��7m�6�IUej�������k2����5{��M��t��e��Pm��L��4xqD]���Uf���*��):7z�W�h��Ow>�@y��[������++.�F�I�G9��ik�
@8���3��A�[y������ji���w�p���b�����@;u������U��[��"��*�{o(GB������Q71'��
[,H���Z��F������9�<����7����r�h�P���\�������}��Jfp���b�p�7���$[)��6Yu��WE��S�|�*��-^] �:���U���l��c>Tr��a����D��&7��W!���*=-������l��1�
V��Us;pl���%"�k\zEWZ��-�f���7V98'}{���{�Ef�Sd�����nR����b�����RUnn������N�]M.$�o�z�=�e���R>�g�j���uyJ��pr����"l+��A����n�H�����!O5��VS���]�X)v��*�ie�������HF:=���k��'v%���f.g9L]"���8.ene�pE@��ov��)�]����|�Z��2ffht���v��m����:��bT�g_a*���i�oJ����$Lg��p=�=p�b������96�"I��}�S}F�ui	���v�P���(�0+����I���U����V#�n}6-�+	T�T��`��J�^[���	����9q�����7�[��zB����������V��=��l���tB\��I+K�{'h)��B��L�O���]�vm��y-�g�L}�@�T�����������~���eno���L���_T���]���I�R����}f������8��aR�]x���uK�:�����I�^�A�4��]���R\�Q�^S��H��:��Ob��{���k����5V-"_1��'��+6E�;�^;��9����QR�����rQ���%��fj���-�Gp�0R#&)���Kjkqd{�Z��f���wX�5��G_s7Qf���E�,W�n
4�����X��Y���V���A/T,���N�|���2�gH&��ow���8�w� ��s$H2Ho�V��W��Z�6m�}uSM��������|~+g����&���$
���d��2V��4�������
*���������{�5�v\V6��r��,�y����9��
�W��{�<F��c�����:����<P�
��u���8�{�wQU�Q�`aJ���z����)�����6���"�X�����������SAN{Ms�{mPv
�}�J�!8�]�m���3#gh��x��Q.��:j8��Wp�����[�.���\A����p��9"��\���������xX�X�'���K��o#Uv��3/����i�����G�k��������K�edBH}q���w_��p��RZ&�NQh3c�wz�'X����o]/t�Fdt��ef�H�w�Y��Xs�f��R�x{����px��C�h��m������:��#��#�:��M��E���v	�;�ldx������@����~�a��`�Qa��]����PbN�E�u��n������z>R�5i*�.�b��A�b6k>�������������r�.���"���������C��R�j1���������|d��9yxp�e�e=nO2r�"�#����U��|�L�����r�E�8���0���y�wW�����r��xT��7Nm��Hj��g��v���P��b�������.��g������;���w<�����y��<0X������`�w	\�y�RF������)R*? ���E<�O=��t�Oek��wkpv��;9��$��U�)vf�V�S�x/��^;\������������������-yb\'����^%����U�Y�?�65o��k,��	�GC�PYVqR����*�o���#��]t�����j���E7u�}�����0������}�r���6.�2��=� R-�����uw�f�F��O4�eeec����Y����6�����'M�~���y����=q�h��30�U�����H�(��I���D$������0�b�u�Vc��AM�2�t�����^3���s5+z��������^���UW����~$�����?se%��=Gm��0W%I^��.9EZy�u�*=w��N��dp��x���ujfV��H�R�/�u1��'�j�,�e���/�f������������_���'P�ckiW��!$ ���*Q&���F��:;Et���i����v1��8�����t�]�����.��V��^V..�EJ"V5�1Z��w�}��������z{�yy�U��k�V�W%kq;j�//+�\\b�qq��L�+]vU�\b��-v�+����";�#]q���//".�"4tv��C�y��;9�!�������V"�����U��U�������X��_|��|���!W����V"���"!V"!V�V�V�V�V�Wmwt�R�R�R�U".�J�rU".�H��H��R��U""}���n�����.��D]��*�e��vD�D]��*�*�*�s�v�gb��v�\���r��K�{U.��K�{U.{%R�{Y����<��m��x����<x�1�m�c2m��c��<c'�����*����m��TJ��UUQUUEUU�UUEUW���A���y��:���s�gZy��q����E�\��@�*8�����5v��1;��}X����D�w�����$N���;Ztnf=�q������k�]��6���GF������^=x�^<c��2d�&1��1�1�x�>=�UUY%UU����UUR��������$�UV%UW��}�}�~u����/���F�'b
����[�c)`�*;&�fNE<w��\�M��������-^��4���Z���f����� �L�Ci��E+T�33Y�%S�.��~>������1���c&M�c�cc��c�����UUd���*��*��J�����UUUU�$j���Y��sNV��7�������^�����i$�����G>�E��J�'|���������E��!X���:H\lJ��n�S++b(+%�A[:��S�\������o��;r����z���x��clc��l��+���1���%UUIUUR��sSrm�-���m�����n\�r���.K����UW���������y
M�^0�A4-����7Y;�h��6Ruy;������N�3R��K�� .	��eX���������iX�E�F��\�����Tw��b�\�������~�������x�^<c��2d�&1��1�1�x�>=UUr���.\�n���.\�r���.\�r���.\��C�U{�������+v���{J�4Mb9��'\�S
wm7���1dM�����t{�wN���R��q���DP�I��I��o��t����H3��-C{�o�����z����=x�^<c��2d�&1��1�1�x�>>UUnom���.\�r���Ur���QUU��.\�r��D�� ��|o�O����~:
~���e3Kt�����k��J��,�;i��K����`���H���H�@
<G0V�#3�7���-/)�,&�K���($mq�C���������x�^<c��2d�&1��1�1�x�>9r���.\�r����m����.\�r����UW.\�}�I$�$��5������_8���n��2qg��]���F$�T��9��MkU�)u��Jf��?��b��R�����'9k�a0}���c*k jc������9�pk�w�����=����^<W��6�1��6��b��i�c1��\�r���*�����.\�r���.\�r�UW����'����U{���?p5�zK��?7;���j�Y�9n}������sG\n�������b���S�t�E3��=��|�t����S"+{*<��j�����s���7�k�x��>u�_�~>�c����1���c&M�c�cc��c��.\�UUY*��r���.\�r��r���.\�r����$>�������V�]���W��c����x�B��v=�n�C(�2�e@���(�n��D�M�0�k.���u�Z4aa�� �Y���
C����)f����������^=x�^<c��2d�&1��1�1�x�>9r���.\�r�����m�������2r���*��9p��R�5���?�$�#I?��������u;~��<��9��;����[_��}��7����k����[����MI���O�O�;O���i�����M��Bw����|�BzI������d����O�;��gJ��5	�������I���$��G���cQ���D���m����r?�v������B��:$�������)?���BX�1��q�g�#���;m��#���$����X���o�#���_�(�}�$�	?��?���o����~mZ���[kU���p��y9i������p���O�v�~��������~�H�!N_�'���M��NX�O�RC������=��8p�@�8$I${���$�28i���1�����D�!>�{+�N �Br���;"NUc	?��h����g~+��#�dB�$����-�?�s��}�I���������Q�2$��"I�)?��?�����*����$���~�S�?�OdK��I?d�?i!M�B�����O��w��?�&?�>>�����?�2G�'�"p�a$����'���OdB��8v�����3��x�����I�����d�f���\���'q�!O������$~8Cr5f����"O������!	����!	�O�\D�%qqN$�����w���>B�1�\�����!OI�6N�$��I��WD~G��3���EI��j��~������M^oU�����Z��~����H!8<v���>�pI���>N��q$�A'�I?sn�B3�#��?ko�Nd�?k�}�?�'������~���������]~��U�H���}���'�������\k���~k�?:��g?�!O��g��r���jG����r���D!	\��V�����Q�G���$!	��N'�9��;�>D��;[����c�'.g��$���_�|~�Sp�F����&������<RO�����q�#�����d�q"��������t��?�$���D!	�~���l��o���c��Z������k#i?{��8#�~$�������������)�$����1AY&SYPL������0��R���e�@����@a�_>��(��%	EB�*�*)T%
�RQR@J�I�%%A%((��RD!P�JT��(�
U)AJ
�B��(U��D����E!J��T��T�3���*�I)"��J@UPP�)B��)
��IT�D��JUJ�%*��AR�I���T�%U!U@D��RJ�*��%*RR%�*
�	H"IJ���$���J������"B��h�t��� �'`�";�6X����)$�U1�R�
J�%J�>���1�-LK����,X!�f��A)UD�VX���!I*JJ���`��-�V c`c`l06�EJ�U"US��*�T�"�UR�/Qpp@�`a�,��A A�IT	*����**�H�I(
��B ��a1�B�6H��QE%hD*�%		-p�X-0��'�A ���2%D�JP��6TUD�R�������60BAl`�B�T@� �rT��*��)(@�8;� ��&0�`�X-0B�@R�JP���U$T)��@�� �!�n���j��	*�H���IU$HH��<B;�!B�6L<@��5<�UT��US��?�UR=HFM@T�L~��T =%(R��m@�
4��
R��O%���
0&Fb`��)D?T��COA�4mCP������z���F�$���<�Bd����2z��M�y'����M?��������D�?��S]�m����28�{���1�o}k�wRq
I'�~-�_��n�_������%�G������������O��4����A&��'��~������k[V�s�e}�������j�����?U\rI�D���#���'�����m'��N�Bt!M|��������W����{�
����}y�-�S+���2����<va333!&fffffaA&L�2d��& ��wt.s	�B$H@�;�ff2BA	11V �����#RB2A�������e��B!v$�P&H�RH���d2$	LD��������$2A�$D�CB$�L��d��H"���$A��H�A$&d�CbL$���H��		�3D�f�)
_.�0D��Z"	�I2���&���D�����!I))Jf���$�B�����"A$�������BBfBD��	��L�L��DH&L��2RR`�I�$d��Lb �)���HI�)
������"H�d30����	���	H�2Pgw �B^rnH�H�w@I	 $!�!"BI��fc�c1��1F#!!�fD�$L!�2� �H!��$�C$I���&$�����	��	�	����D���33!33333!	$�����LY�Cd�wq;��I		��d��� @&L� ��!.��e��H`�$�����"JdfS��S"fL)J��$�BH$$bH��  ����&$��$����3"���b	#&HA�L�L�$2L���31�c��1����@I(�E��"`��@bM!��sq(J$$FH��$$0FfL�1��� d�dc�F2$�#I����L$��0�e`� �`H�$!!2!$�������L�$Dc��fBA$@P�I	��)"	 ���"��1%����B1A�b2F$��'u�����		� 0@$@H!2��%&L��$H�2d�H�
d��)00�d��&C3	$&H�L��&iJ����"ff!	!	JC33$I0�BD$d�cHfa	$�d JL�0d��L����H��3$��fa2	I#wD���#3 @D�I&HL�@]�@���,���bb22�H���C2$$���dL�!"@�d��$$b1�RcBb��d�hM�BP�H"A��$��	 �0	�$�%&IJF�������bF��a��v�3"IH�32a�""Lj(�2FK%IFLIEDRf,�I����&L�&�A%��0d��d�i2fA3A��A$2$�HL��C	HP�Rb$�L��L��d�� 2$�H����	2I��b"�"b"$���L�	�$�0��B$� �$�&#	�DA�A�I$���F�o�v1�h�1A<t&2a2���FL3$�2e$H�dB$`�lI1A ����&��1(�B��F(!32D@�0L�L�MHDb������&(��d�`�B�
F�)0A�L�@�H""���(��"L&HL�L��L%�Q �A0��wWb� �7e��4��I��������O������o��1F"�I���@D���Dcf���$���$�		�	0D��` �fP2#"FfHe!��4��$e)	
R��A	����"P���@PII�&F��&Rd	 0&$�$@��@���`�@�`�#0AD#D��$I$�L�D�LD0�Hd$fII d��%$I 333>��$)
`�fH� �
(�F	� �@DE��Q��H����0�HL�@B���32DIR0��JdR!��I(RH	�I! ����Qd3A0HC)	��$�� A	 "&Sd�2d$��������I	� ���L����`�
LD����B#!�H$���H��� �DfHH��� ��c%��E���M$D��$@�����@Dd�4��L�$��$dBe2!2C0�	�1`���$���L�	�
"��$Y
\� ���0&�H�Y$�L�"A�(���D�D�JS3$3	�I(2a)" 0DADL�	2cREE�R@�$S��fFL&���F1H��%0�A�0%0�1bI1�
2F1 bLFB)���A����L� 
,6	!��X�i"L�db�F3#2&$&B2I��12J"0F"�D@B10! b���4E�h�(�I�I3$`#!DI�"� fHF1	2����f��d�&��$�I2I"QF�$A�����!d1�D02`@�$��`�"BL�1% A��&$�	#&fL� ��II��1b(��0���DPfS"$�$�L�2A��$I�D�e��d�!3$F�h�1E�Q�c�0��0$�FI�@�""��E�(H�RD�#2��$I)$0$����I2&������yIx�@PIA��1"$��R%2Ce��H�a0�2a2c�"�Q�F��1$@	��0FL�bI$I��) 2h0$�@)" )��2H�$#"d�`�M ��C1$&H fb��	1�!�d��&��$��b��B
h���$�L�D&BH@�f� ��(�HL"$�"H�L�I21�" �dH�$"	2���S��S2a1������d���4�2	�$e&LAI��)�AHH��f1���dJ&Le���H��2d$a�����)HIB&@�&fP	"b1a"�d�PC�
A�A1�$I&�C	�"�3I��Xe�d��&I0I�D�	��&&`a1@"���d�
��H�� D�1%�AH0d������!� HLI4�2F�	,�F��(,`#b4cZ�L@`��/@D�P�I$f"B1)�d��"HIIL�R@aE Rl1Y,��"d�	��B$RD	�"��&�)����$(�BhJ�Q�b@�1!��b��(�F6J1h�&$�,�4PX���4Th�TV#��L� 3cX�F*1�4�d@�#hJD�"��
b"		���LI�4E��IH���%$$`���BFH�	D� �I`�D�H��
H��I��L�����A�Pl
`�Y4E&4"k%E�h-����J(�h-j(���)�21��FQ���3,X-��l�F���M�U�Qb*4lh�I�#D@P&�(I���I�QL�����#H����0�d��	!E�KFI4��c�A��,E�F�1H�&�AFLX�0��4&(��IL�"M2Q����J�I��d��b2b�D��R�0R `�C%&
��RdM&�DH���3	dD �0Q&�1�b���$11$��M%4�c03$���D��#A��-��*+I��F�X��I	)&H�H$#PD�
d�DL`�� 2�	!c$��4�0�A�#1h�4T�Ab* R��b���I*)�h�$�"B�c(�cF�6,Z,m�6)���@�"B!Z��������j0j,����� ����Z��*�[�H�$6-�Q�kjD�D�U`A�"5�D@@$m�I	BF�R����	�mlAA�L�����DIfAm�&I!j�@�Z�%0���$DD`$��0�f	�	)����$�������k|������O�|~�~�����?s����!<�4�����~���>=���ji�'����������W���m�&���Y����[	�m�1m�k�Z�[���Q��[���3��6�E��h�����-�1lW*-slU�Rcj1�1Q�mF��-�c&�F��scW5+\��6�F�QF�*���h����mt��������ch��U�F��5��lF����Q�mQF�[�Z5����v��c\��`�1Z*+65�����+�EDj��nQ���Q����jMb����b��6���X�j66�����W5�k�*�����Q��j5��lj5�EF������*�\��F�Q�-�cQ�X�j5�-�F�F��j5�+d�%�b�U�\�[�r�����b���j55*�E��Q��j5sW5�\���\��F�Q�QcQ����F����EF���h��\�[����Q����j5�5�E��b���j�����9�����F�����b���X�j5��cQ��lj5AX�-���cb������j��j5��-�cQ��Th�QTEQ���j5s\���j�����6�F��+E�Q��5�F�cQ�b��QEW5r�nsU�E�cQ�5�F��`�-��Q��j����6���W6��Q��X���#Z5�F�Q�b�Z#j
��1�k��&���j��������QX��T[�F�lm��cQ����Y6���Z�����F�Q��5��cQ���F��X�l[��j��Q����Q�nV5�5&���h�(����E��1���nk�������F�X�Q�5A�h�U&�5���lj6��Q��X�h���jKS�T\��F��5�Q��TZ1�j5�9[�-D[cQ��j5�F�Q�E��l��Q����5I[�����j5�X�5��ch�j5��E�X�F5�\�5��E\�5����E�b��5����j5-�E��cQ��-�����wu���F�Q��b�cX��Tj5�X�,lU%���W5���5�\�lm�F�Q��clj5�F�Q����kr�k�������F�Q��X�X�cTj5��F5�d��5�F��-��Tj�F�W5sQ�\�+�����F���j5�X�KcX�j5snh�66����\��F�PF�Q����TZ�E��m�cF�X��\����ch�W#Tj5�F���
��Q��j��Dj�m\����j5���X�j5�F�Qcch��j-����-IjMPb��V*����G5nj#X�-�EF-�h�m�����-5�����\�j1�Q�1F�Q�[�E�d�F�Q���\��G5���Q���jM�E��clk�F6�W6��Z���r��j4j5�F5��Q�F�Mh����5O�C���?o�k_��O�3�_��M?�4�����o����,���������G������z����=���<��������p�%�h��lU1�3����[��a�C�-�{6+��lfq@>�\6��w�7=���S2����I����3�l�;j�kf��,�x`8��T���H%<nn4n>���k���Ye������ wc������������B���������BK<�G��=zc�tk�B����O�B����a�	g<�P�����c�4h�gU0�4�����Jlt���AQ��$��k+��8��.v
��EY;��tXEgTy0R��RNB���\z_L8������p��$5S�Fi{y�Tv���,���wUH�Ktm�t
p���.��1��B��i+�]��Or���0$�;��:%vb��������WV[�E��-=�9%��X���	��"]u]=��$V]������}k]�m#W������]���4������[�i�:bv�&d��{E�����DCN[5������&�)&�P�7Fs9g+7U��V���^���A���{�i�
����kLR�
CkoJ/
��������b ��,�A��~ �ox��$��k�:`�]}��#��������4h79K8L��������x+l�*6x�!D,�LQ(������������M��,Y�`������B.�c+d�8�r��b�k�t������c���� �{��RVM$�_}���Cw*������47J��"�y������y`�#e����^�;EJ�j�uu�{FW4�I3Q�����D�)k}�aw9�=y8�Eo��}��a���Y:r�����;��kd�t`��B6�g5$����d�r���c$�ur�b�V�����^���
�����7��S.�]%���ks�������&f���#��;����<���"������
g�Y������+}��]t<��T]�h��gQ���L�K��L-�\&wWD�]���8�d��b���V�#j�v(�%V���[R;��Xff8bO���V��:���d9[����ZF�=�a*�j��]%��ed��n� �Q]}v�F���U��&��)W}i4�u��P�A6����y]�6���d��tK�&�W
�H���)[Vo�n����]����90MhL�
��#[�
�$��F
���jaH�4w#\����I�]�dX�0DOh(�����|������+1�l�oC�9���Ja�ke���\6JrP��]���2���QC7K�4���,�M�Av��J�=F��"#F��/uf�QY�t2]�J��Q:��fbo�%���l��	������
gm�L�S����Z���Z'��v�7�E
������I`���g)�VS��k���v^��$6�A������������a�����+}}�,����J�������RJD�Z����79�{�.�.�b�u����n�!�@D����YkvywX�.���nP�Im49\���T����+��K��{H#����o1�eu��(6<s�xs��d�u��:�U����U���YESd������n�7��,b���q��c�z���Q]*�af���2������2��{�!�E/&M�Wt��K.���oT{���l����TO�-�0����r�jy��'�@������'��\�����i_mei2���us:�����i�{j���������7��4�.-�����rc��W����m�Vjb\;
z)v�.���_K�N^��.ize��KS���)�G����=�������]�\��Z7:��7%�T�h��Z��<e���%3��M������������$K��[��d�%��bk��f�|��[}��O���
��3��$���p]��T�vh9�u-{�����V���l�������&p/6Z��{MCu��
�����.��e�J�&Luj�u�s0$s�����L����|�eC�s��'�u����g�����V�uG�5Yf�i�y�uc��<]���W1ks������a�dI9���k�j���u�������N�V��T�����1��#�\�a��i���$6v�PR�rSS45�������-=�:���z��cu��6�{\�,��S�$@��=�|��r���NS��������)�)����(n����y%�=����]"����I��ju���k�S��v>}�	���6�������q�M)��n���{B�5����!���87�-�5����,�&M�X����������*X��swt���pY�"�:gk�B����!/fugV]\�y�a:����r:��4/��Wv��,�I�{(�4��D����o� �z:5���G��N��VVP�p���P��R����L��;m����WY#��^R��u����m�6�'��{a��m���#�s7�N\�o�������ux+�w�B	��b#�F�j�g��.'x�Vw�TU���	�����*
�v������W%X���^�-����@�|�o)�s4k�(l�8�S��}ajA�$�}�Y�!�$3��(�o���[�{Z�m���i��s������uf48m>�}�>Y���yW7�C�W��J�vg5����O���� �]m�[]{��Y��
�B�*mi��i����C��eF��G�����t�H%���kzh�{���f%���k��vb^�&��5��wJ��0`'.w�f�iDc��g������.M��*:�������;�����"��t�q�����C�{9��;5����.\�@2)EU�}�Z���������\P��y7�<���f�����$��`kr*����9M��{����y��rbs�D)����N�E3���_et}��n�&=Y\�r�������:d�f����Z��V�������!��W"y��+�IJ('r0lQ�`�f(���w��%�����k����uy�X�6y���R�������.kb�7*]`.��\�7YT�pTDTlM�5M)�w0�����d �	����7H�s����#�V�j�W���ig�i7���+��}������j	KX�;�2��sp I9���Y�7��\���ot"u:���Fs<�2�`.��u��g�d�;�o����Z������h.��3�G}�������Z���'�G���Sw>��\�Z��|���Sh�	*
k����/��"����pK)��D@�J��c2�����n����VQ�A�X��7+S[�7�}f�wc�u�.I�tkc��^�����d���c����p�J����4�����P�����n�md�}9�[�F�Lz���R�*yJ�	�7;����uIr�]%�G�X�Z�[.�J��rgA���3E�E���a��q/gq����;�fo
��=:��>�����J�"��q��x$��6�ozs���������'�t��J�;sF�
�)�]=�qrw4I�U���qN���ts5nr[���g
�0���I�o+�9k"^����VN%��o���\/@6`z��u�����Wmv�L��eE�����;z�r���������rJL����U��+�c�mt����������8�V����T���:��'��Wk�^�$n��O���*�+%I����C�T�9u�r��z�m>['3X�vo@�KCt��+z:z���9������J�S�72����W�(YnG1nv�=��tx�����^U�y*e���[s/��j�����T�Fc����[Q�%��������On���U
��:9E�����V]���.�����]��w5�����tz�I$�������*������a@��6��e�\�A�Y��?ue�2�V�=[�nQ]N���1��\����xq��J�&*��\�C�GZs�;�RX��z�+�M�f������.�N������b���b������i&��tM]�����zN��P�j*P����Y��e+��c�[����f���S\�5�\��s=�u�z�Q��1����]����s}.d�8����eQ�:��J�^HAA{*g�Vp���*�2��$p �'`��6���eb��t{a�k{_vMZ���4e"(�.���s]����o�
�ib��(���[V�4��k^cJ����j������X��������RG;{F�X*:ED�4R�\�)H�%I*4MD����Z�����*�O����L�_s�����E�>5�F��i	
c�3n��,��@E#�f(�N�!���J�m�������:n���*\�)I��Y$��m�\�m�m�.����6�m�N7�G_M��wN���V-P9H�K�7\�;���kr�^=��:�+Iv���v����HEX%�����1|}a%�n�6�d�:V�A:%M\�����X����NpC�&�c-����j6r
8���N.������D��&:�(U��a�"�+��"���	����&\b������i��m
���k^R��fg+�h�3�"�.N\�^�K��a�����
Wun���R�X+qj�M`X�f�S�D�g!����!Y��u�;���Gr1����;�P�{������n�]�o�X�(��7��v`�U<�szN�5T��Vn�X�����t�*]�x���p��*0ky[*�v���/��j@�v��Ve�}ot�n�R�������Vow6�`U}me���qs�3]�����"�[n�.nrv�E�����7B�s@V�i�M�
�:a�	�)��E�T�
����<��c������wf����H�0:�{rN��8�t/x��{�a�'��F�����A�.��Lu&���i�U���ml
,������,IF^���<������y&��e�k&S���Zp���`f����b�a�����b�G_���*��jd����v�.����L���k����3��]��$�V�Ep`��v��s'����/A��T�e�v	��"���{��3q�<���BK}��$��]V��U�k+��B=�����'nb<GI��c�n���+����D��6��k���l�I�r�����z�� 1�\X�0V��9�*4��_b�>�bG��5H����]��z��]�t�4�A��ps�.�T���*���Kz�b�
����)�w�%����L����sZ�]f��}O���s�G1�I����P�o���;Un�������W�}���.=(���(^���3u�Up�;�dQ���cR�{����������8M����1���b�w�8���HoM������{�	��wc������ WTT8,]z�K�M��J��.�"�OVe��F���S.+�x�����&q����������r�	�t�t����G/
����pQ�K��=�]��������P�.9vg����Pt8��6��h�����p�F�6������F����w3L@Y7�2�,��T�	Yu+��F�E��_4*���.�\�A�'.����I���Y���� �-nP���3����X��\i��K�xs-4��gWM�	�9Y;��8n^�v��j1
��v���2���=�"�WX�pK3p���DD�3t��7�P\�1�N�
���0�z��;��IQ���L��+t��|�S!7���X�7`w�]D1��
��l O;|L�NV��������<��v�>�������=e��t(��sJp�`m�=������6��]����n]J[fsLNK���;RV]<��[	U6��>���l�}eM,��=�+H8I��4�y�k�U��N��
������K��Yk���Z���C`!����a�=,���D��Hml#:t�E����E�F�R�6gvr8�5	�*��S:/(����9wh��_[E$���-�Z�$�$��$���wh�,���]n�9"��(:��gM���j�y��<�E]�S[��i��7*Y�R�i�
��v����$%HR�M*	
u�t���8�
��m���j6E���X�TV���]=����Y�("7+��u��/Y����6�6��nHHp��=�M����H��q����6)���������n-4���*�g��	h<Br��9�5+T��GV-a�;c����L���x�Kh�cP-5��
���u�F�=�%�����zqp�z���P����c��|��}��*�P�{/
��S�+9���0�^���t�j��sI�n5�mY)v�B��
@�X�9���u1C�|5���;�,��C+x#�u�Ex��79�tb��8��*c����7HNFn����"!q:1�l�'�V�y���W�<�I!a5�0����;�PF�2y5�Q.��I1g\t��O�eh����Wm�K������]��N���@8��-iwf��rJ����A=p�0�D�_j���jC�r�����O��'
+N���p�����CH������Y���y�0��i���je�r�������:h<wXI�k/����	&(3^l���������i5�>tL��nT���R���AC��%]S���S��5�S������Z�YL�w��1R��pPv�����}�����tU�]��r��ZY�|��#Vt��@,i!3��fU��s%������/m�����	X��b���r��P<F�B�o-��j��/*
`��bJ�+�����w+�C�I��&��9TneLU��J<qJ*��<��UBh�;)���Y',�i9��VCDDE�W���j�s����9N���QLp:g^v��`�L��2%`�����L�2�b��m���<��o{]�����u=��
<kFu<X��o^�h�3N
.���l0��O�5x.�s(����%B�UJ�I6��}�S�����*[�p��(Z����{��� V�W=&LJ��F�b�dii�L4(T����;�e���~���#[����%Y�Y:����u�{f������  Ee��aA������t�2�Y$o5/xi8y�r��ht7��-U�����R�
:�'b�6��0�#�O^��9">p�E�Wn��{�
94�)�5��f��}5&��i�QMl�B���Z�/8��
��+v����:�nSIWsmo���%�P
���gF� �M�;�<��$����F	��
K��w�C����I	ry��)��9s�������8s�lM'��l���8��Z���t�LeU�M�SOFQv�pVo�p�EX6H`G�C�^����MRZ�
���d��&����2�#��VI�����"��d��t!�J�J��Y�tT��n��{��r\�������Nk ���k�wa4���\]���835.�����	����F�n���;0�4rSf�D#�U��j:P��*T��������u9��=y���`�j*H�2
��Z�SoY�:�U�;��G�A�n�e�Z[��sB
��g*Q]L����Ugk�z����KN]]�����\GSr`G��w{pR��!o�3
k���n��������(���'6��Y��#�a��8�4V��vwv�CYd
r�<=I������}�E�r�"�L����9RL��,���E��-t�s8*�����h��������Z������%�4���;j�t4�%cl&p0��s�����8f��p�Kf5csW;��5��:T�f�����.�tF���.��Zt��XS�B9Xn��]�a���r�Qu-���.��uK�W���C�Dc�rI�V�����SlY-wa�l�T����N0�:��wN������}�L$U����4����P>z����2��F,��k�o����O=�M�m���Nl<��X��*Z���Sk�v�e{��M��P��X��`	�(&���y1��Yck/	�u���������7l!w����2
u�f��6�<G{�o`E�C9������<.�e)+-�PC
u���f�{C�u+<�����u� ��\�
\T���m�4��+km���*
y����I}�9�[�`w����������M���skAbgf��������Q!Q����$��k��l���9��p
��VT�j�e�:6VSt�����^G�o���8��\����������2�t��|jf�J��������s�P6�n���x!k���;85K)�9�u�.��rL�`��XV�+���d
�u���s���P�De�D��\q]5�u���m�*����*������m>�5-T�e3}@��J��Cp>�����sF���
_V��\xs7`���	]�xd�n�v��	-���7_���v�N�+R�l���C���������jp7{��%Z|(l����V����5�W���JP��3�������C��}q���#�������sz�G�k��}@=�f��mn.Z;j�;u�/n���{YB���
�u@����r,&�^����u'�����b����Kq� ����mu`q�]��f�;}�����O��|*W�[�Y��S)���a���u��=�����3c��q���b���t^�6�:��L�lw8��f���q���L��^������}e7��<w���V�4va����V�r��|��\���d��c�.k�J�+#���u����H+[�r�u��"8���\��bq 
������������Mv�*�Z7�:����v�s6�W���M�;�^v��	��#7/Pr��v�3�hj�;�Ph�(>��c�
�M��O0���fD��������[��a���]v\mt��AQ	:�����&6k�{I�IA:�r��u��D��=�R\�g�3n�r�;XyU����4�ZI��Q:���e�2��/Q
`�g<�
�F��A�B��h��ec("������+��Q����j�^������ v�����
�g���WQ�>������=�c�4�-W�P=U������%�z��A��7@��&(i��d�C�A�lPn��r�s%E�joFq���$����2�.T��Wi����N���L�/�I\�}6HB
���S�!�e��NN��toK�t`9��k�T�k|������f�����������T����c*�Y�
G��+u-��F4�.�S�M���2��X��k^��l�];]�&��m�=����)�k��%	\�umPe�e��Gn�����s�Et\��E��������c�Iw����t��x���W�1����l�R����gf�m*Y�F����er�������L*��rM��7�R:E4ta���C�8WXb9�������Y�O
[�3�e���<8uu��f�������S��3�����2��uk$os�b��kS-��d�fn��%]��4�n�f$!{-i%�y�p�NDcFv�R�dl9G%[��
�:��X��K�XB�2�����p,A�r��8]�H��&�h27U��N���w��qrO���6�I8�beC8�I��0��5Ar���])�am�d���v`J�qMQ��K,G-f,�Z�L�hF�T��
��*��%��2����e�����R8��4h�W����7�tJ�u���6�n���@�|�����){�L��n��"�uM]R���$��9$�'F��.�8r7�Jv������,��Q������t�-�
�-|��g��l�LM�����a�{k.�{C�y�i�n�������-��N���79u+Mp���_)���KmgD�_��\q&����mt�"Dq��i�=�-��_3�kv(b�Y9�W�G��B������oOk����Q�QC{sIr���]q^�e��F��9E���*���j�>��u3��*C���	�]r-y+��,WzqxYh����b��:N�G�8�n`h��^��32��e�j},b0dK��h�u��k�n��=��$9-��.�U���
�*��!f����&��A��#��w-�J���w��D(�R]]�-�a&�W�VZl6���������*�6�D"$������*�
>��U�{��sJ�Bo�9C��t��Q���P-�7�r.�\�����L�{���PR������
�u�\�]p �;�YXn��G�a��+#+�����K�R���8����>�ugu�e�5���9s�2�������h��yyh��T�����P(����j���]����Oie�K�/3)@5fg
�]��.�x���T/%�����0��A{p�����	��YPm�+��k/sjY44�q)U����Y��`���E@�t����p��oI���RP�0fi"���q��#�TOT,w
YF�MjX�f�]�E��L9p�Sz\����\��=u���Q��4�nG�����?�G��!	�l��?�H������t������nMk��_��o���L�#A *����[b�mYYj�gF1��#�������,�o�9��w/5�"�Q�I@H�Uo��is���[U��<���Dc`������b"(�F#�1�V�
"$G���x���@�Uzyk�A�C�1E���"�I���^o1krB@# @���6�{M�.&�b�4[k�H���Uv����d��5��Db4b���]�N�s��9��9�\�"4b�E��EW��W�-z�AA�S�A������w;�w8�����#"A�-�H��F(��"1A0�QF"�{�����������ww;����"������6�v"1��A�����r�Z������DF1���	$�$"j�����	�F1� �DDD����F""#��+6��  �	.���A����b#���wu�"�""/-w@6�LE�8���������F����c�((���DF#�W�w���� � ��DDg��#1���F� ��/Q�\��'s���s�1�b(�F,��V����j��$�H""-yl����D]��Db"(��������%Z�#�Db"�������DDCU��� ��kj��DDA@Z1#��9�r�����1F1��� �u�s����6�T�"!���V���[�(� ��#������]�DDDDDBI$Z��#Wj��V��5��cb�4Q�����n�Z�"""6��FtDDA�QE���5u�� �6��!<��KH�Df��DTMB""1m�z�""�k2��k�`���$����Wx��oD�y��mo��16��j�[�Djm]SZ�T��k������w\���w\�DF"%Z��|m]m���1��} ��66b1yZr"���s����w]�s��]��Q��Fb"�"1{��DD@k��"����ws������9������b�cE�"��"8'{;����1���� �y��'��� ��@�`(��1D��wu����D�V!���j���#$���E�������9��m�x��jJ��yl�DH"6�Ab0d�I
H#��wwws������������[��""""���QU��Wj��g�;����� ��@<wG9������wq���k�&8 �""" �*� �;��b�%��\�Q�b�c�	 �	�I&��@b�	���b"  �x����1�#z H�����������(��#������D@
�����j��*�1,E4m���""$�$D^}%�mo~��w9�1�(���������0Db""�Q��F"#��]U���Ab0�c���[���n�*�;��A"@ "y�N�[n"1�� hA���c�F(�F#�"!���]U�@B,QcE�������$DDA0DDPj��mw�
�z5w�^unF ����j��c&#E��D]_R�����DD(1���b ����A����l�D��<v��@@(��Z���`�Y��$��z�����/�}O�5B�����'����!	����#�MH�zSD���BjF�?������M?�7��S}�
����������_����P���f��,$?���?�E��������V��.�BoS5�3g;�i����	��incuw�W!^��H���G]������(��*��7��utYy����(=��Y��9��k=^��p�.�����xV����L��_OB�`��F\4�&mi�T�nm���m(k�$���Y�T�����C���X�Uz[w�68�[������W6�z���
j�x7]%e���7��@v8x^b��V����Vn�'zA�����I�O�F����#���Kfc�f�������Y���.��[�������%�mR<=~�	���u�5��\������r�����!W�2tNJ����j�0�r���v���kN��j�0��F�	��m������E
tw���+mh\2�8+vm��o��7���\9I�BZ5�	��tP�
�Y��]+�!<:fr���4�!��2���6v�1��X�V�{��y��s�k�o&7�\�Z3����4Ny�[x3&'XU+��q�C�b����]��2V&�<v��������
�R�/
�,b�������05p�]������[:���z�w&���Sx�\I�U8�/v$���y)��.�r����q�h'���vc�NN�d���2w5�tqx]GL���J�i\��.E���:����+�%����h��)� �s6�Y]���YX��wt{��YM50�2��"\�1��2U��Z�v��[ur���m[����x���;�����s���LIx6����`��[x�n�.��Q�I��Nff���5U���U/i�>������T�T���<�����N�.�I�l�7�tl�q_�w�i�'������EX]�U�V_=��>�h��!���io���W����qWu��&�S'M���\���.N�����	Ed��bvY������s�D�r��{H��9�5��������<J��	{f�����+S�dx�	�����{�����C7��j��k;V�����{�*U����N=c[��Co:=���@QAD�����v���::
��zIbw$�SO.�WV��	&}�a��-����m=�z�{�v,*�,�ON2��
�}xH��X�����u�WT��G.-Tj�
�nu:t)���}JR����S:��IJ��:v�9T�[x��;-��p���/C
��.9�B��%�����WR�i���iG�^�3a���f�%)k��]���������[Y����q��,���MTd�mA�8`��5�`4�V�_.Ao���n��y�	��&�99��C��Y�E��{�����-B��)���SE�7w�fK�&:3u�#[�k���L%�X���{��6�
���AaJ�������d+��*��
Y$��[�{�a��Q����
G��*^fM]��u�4�#�6�,�g���xS0sa������������H������NOf�)-���oqZ����z����[���+�[���(�xn��,��{�k#1�X�7x6��g<������G�l���wH:����\��m���w�Q�f��fH
�H{^Y����g�h<tVx.��7�^L��������=���x��(����9�Yjv����*�;���Od$j������b&k,��2��W`�%.����th
��]B���V�b�u�O�T�x�G{�������r���D��mk�����[�H���"�w��n�\_M�]���]k�	���c����,j�J��"�����X���H����[�J�N�EA"���p
�0&�U����O��%=7�Y4���$��*d&�n^_,��K�+t�&�k*��\V���y�nT����2�\&��r�������<]���Q'� b�9)3;s���h�W����Fu���R^��s)fY�����vA����x��9�ht�n���\��9g�m���5�!Zq��H�h5:�+�w5��w�m+��gM��u��E��:�����Q��$�]cU�������U*������z���g8F�lX�������Vj��isw*@u�j/v�����a���<��i
���s�-�2�@^[�.��h�{�e�P��d�W-;�a�:�w	�0oZ�q ��.������)�C��{�[i���#9�A]EwL����P���7���L��2�sQ;�����N�:������k�����u�-��o4���}s��"s4��S3��{v^`��qi�i>n����
�2���8��6�����/fQo��=�����v���;jdAM�D[�	O$��
�U���� ���*9�G���w�YS���Q �&K��,G���wYsU�
�g�XW3.X�w�,<��\��mM�;��.��Z`��P�)���h�Y���\0��K,�-�������'7r�r���7D����=���"���Ni�azm���KUn�9G7��}s����
�Y*����gJ��l��I��U��gh��]��Y���OX�]Xc'8�_(����3��V^�n�A��KA:��������(j��nD^�����
��("�n87p�{N���
�
�7�����2�oT��+���PR��H�e*�Z4�3-�@GFi*��h���'���	I��(GAN��`�,�\�n�1���#���!\����{z]��n����@�D������z�Z�{�n4��:j+�'���5m89)������qk�v_:�$f[�e�X��s*�B�_�_i,���3h��
���k�{���oj��1gEqu��/�n��v���A���%�6"����WY�U"/Ik-u��E%2wl���c�Z,<�3;�U7h�	S����"�����W����)!�C��]k�KD�U��t���U�6h�Z�y��4�s���
00��#��	�����Z�7g][;)�}�[�����3Fc��U���6r��)u�u
C�40���je^��9�er�������pX������qT���e��n��/jt�6�w�W����m����vS�����d�u_DC��a��e�����
Ql��<�m��E����z��\�����$���z�J�R� L�,����ON�Jd��������8pFQ���X�����H�;+M<�^k�o[<�=��D�����;���Z����D3$�"�I�{��u��S{�y]F"��u7!�g�%���E���`�������b�����b�H����Z�i��5��af��[�q
��H����B����%�u�O4����g��%������D��GV*X����
Y�7d��g8����]���$����	��+�,�6k:t+#�acz��Gg.��u��j&�5�}�������r1W��d�X�4�T�V\��n���E+�/��.�������0�v�v6���p�$a�HgmJY1��7&O��NR5�V�WGR��u��qs�C��!)� ��X��[+�R�zw8w,���������v��4Y��,t]�uk#�^���
�S��������������(�5��A�����q*.���nJ=|���������3��"u��<,�������n�j������d�]X�y�#�/EtU�I�W�cg��}w�3���u�������#��f�����<����>�@��J�HI�m������e�9m�t%���
�]l.�I��8�MM7��D��B��Hq�+��)f����.�{�,2eF��a1�o��q�Z�s�6����p8��,R�rU��2%{���
,*�������o
�r<�n^u]������e�;
��Aa�MT�����|�m#xWDq�R��Z�����{���������'����m�x��>*����O�Z/K�^3y��b�~j�����m�r�n��{��:����0�$�M�n�����z�<����I����Q���i</��*e�Z �%u*U�����PhJ�t�����f��gE��Q�%yzk/��=X�J=���������I�+������vz�j������0{j���Lan�D7�V����������(���0��7�J��Eh���\������l�B���md[���au}RV@�����-�}4<��u�l2�������[Cl^���m����f�]�C�������=�����WWw	}�VM<��DU�V����m�����:�7�`�
���]�A�1�(B������:�h�6a]2#M��#�II�=h�:c�����mf��+��BsO��|��#Y���V��7a�*��
4���C8���E�v���9�$l�Yj;�,���N�}�[	Wv�x�h��9fH7i\ge��BE�-�q���LX�ub�c�t�������S��9(7�Sl��&K��l�����z)��t��`�� nz��X9K���q��!+�����f-bc��sa��b�`�d�j�9�Zmcc���������U�������q��F�(^lu���/_U�EX�l;����
#/�����m�t��n:�����J#9>
:�-(��gp�*�����B
b�5�����Z[�t�,t�8�X]��,�e7�(���^Kn�R��*u�H��pth�g���]�n��p�r�r��d���v���7c5s&���'n����f����nP����q�T�����.�;�����+*�<����9������A�u�����=t#��9Lq�G����J(�����eK
���l�-N��EK��(�Z��L�rx�G��FVny��z�<zM��A��Gt�Yj�
)��eG������tU�x���o1��sf����2����KM�`/�Z=��y$jP!6z�	�Sy$	�������m���x��\�[�G��s8����m��R,�EOKn7�N\�w��;�[�@N�	�t.����{&���z���E��,��������v�p����Yq��#W$��$O������Fr`���^�{��os�S
����r����K�(�q�&������]`A
�%iu��>���K+1������"�
�/���wfc��)���*���]��	sT,�O)	�A�vg����s-V��j��K<[�2���;ZC&�R-r��m�@�"Oo@�A���=�'8s��*ha�W%^;�f�_�V��ym��a��MQ����e�+p�hN�z��+n=������]il����W��N����9Z.���+aB��P���K�W5����gZ�d7�L����o;-�6!����4�IH�)��������#6��]�4�Mn�6]8$������=��Ut�Qh0�5��tv�^J]�]��Y;� ���w=INw�r��������t�Ox���5xVY#N���|�Gq/�)�����:��u(H;�W�>���u��#�����-�~�/����+���R�;.(�B�F����0��Y�v��!��lc{_zx��O
�m2�IXPT��v�PT������0��@:��fA9V�NeC�I�T�M��y�1)����h������������(��Wr����C��zl�Y@������������V��f��tk,��3{�v�"U�uq��n�)����3�{��t��h�������Z��S�u�P7:���	|���niCN�x��LS�8���25&h��oC�+M�����N����M{x:�-�{�> ]��*f�5�T�`�t�y��a�������t5M^1&` M��� ��sd����!��rS�������L&�(H8��u;��$}����|��[[����v��u�wp�4���
�ou'����x`��a�0:�r�5�
}i1�8���-n��`�V7ue0N�2���'P��	V�L��:k<R{[/�3H���\iMQ�r�k�s��45vsV+{Y��tc�a���Uym�"���M�`	����+����+
���9�B��m���k����n���65z��L��]t�g��������{�u��Zt���{�*�s��@h�,��Tqu%U��{z��q����5��q��yBj�z+���
;:����3�WJ8Bwcv�bwJ���y�|pZ�^��`S;��ki�t��)�����Cm
$����*�N`9����G�������
�+p�g�R����-J�|�,����4p��K]
'��G��{]��w{l�%���7^�e�d��aa�LZ�9���)BV���OS�k&�;�=�&����DWwv
}bs.*W(���+�f)#��4�lvI���a�G9hB���*���op���V�lM�f[��A:Z�t��^f�3�bR[:��{2�;�Uo/[�sq{��B��^�W�["��kr��XH�����D9��NS$���fQ�n	��Nw��LE�u�F�'<�+�����;�s&������7��-����,��w/wd��91�B�����b�69�
���"���/:,�z�b��L�)kt�5�� ��=�T)b�����' �`��Po�eR$�4��{��0�<���]1B�F8N��`$�3�[�;��n
9�
\@96�����t��S�f��1��f�hjju��{�d������^�@��R9E@'Z"����%.������|4���I&"���LbN����������nr4H����������s��N$������B��sk�GN `�rG���Vn`8�T�������6��$�5
Au_F��HE�����=���u���r9�]m)�L�Y�������Y�����t�;�V�&3�h#��n���Zk�\6�A���d��N��VY��������t������{�iGxk�:����w���yN!s��@����a.��KvL���"��/��(r�U�n�����q���2Ww�bc�����5l�q$�5�}gX�X�uV�H��Z��}Ik���v�u��$(���-��r���.������p������8����dce��9m�)�;�m��������njw�X�r7������������G��Q"w���E{UD�,�n�a��s��t�Y[�!��
�FF�oof������w"x�Y5|���\��*)	�=������K�x'���L\�z`XwFu�x�Kw���8��@�#�!�(>��o��4o37o1ng_��i5u�][���Ib�������R
����c�au��*)evo$��i�]^��X<R���^!Np���T�3m�I������w����X��M���H:y]r=�B�6Y�M'�x���9aBe�Z�e���%O3�ksv��S�.�THD��^)�/�g��$rM��]�>@�8k>�Qd	^X����ny�O8+�[���Jn�32�OCd����s�yr�K�P�"Knn�:��v���;g^�'WY�r����m�9�����H5���3�:A0mV����SF�.�[��'vPx��u�������8�Sb���vM����f��r�1.�0[���j��*��Wk10���u���%l\
]�[����
�m����xf�3��Z�g��1��aa��&�:�oXL��W�(����3��Yw��
y�[�nNSP��v���tKG�:�k~�*^������E`�CF���v����b���ei�P�����\u���@{8��y;^����3�>�[������r<s���5�������j���.F�������\EJdSX�(�+(�}aN�n��\�H��E�LH+�c�
	���<f^�E��{T��������eB����(���`�ro�4�ky"���2�6o�H��')*M����L�h��8��l=Cs����/y�|�T����a����������}���o:8b�S�d���LB.�r]�{2�\��N������B�6��eC�-�Z�qUX�`�9�9L�X6u���[�}X��]�ed�2��4JL�2���{q���-i[.�3&Z�f��K��C]Y��v�Fn���{�Jw�M��9��nk�d;�I�We`��[�8�i�f�����)���+�2�n�Wo@Co�K����p�ygw�7Y���:}��;����d��eu��gF�pi��!�9R����/���*wQ�mr�}��on���\��}HP�����d���E]����@F���-�0�v�-|4�G��9��	����+]0�j���u*���x3�P;Ck���gKR�������`���A��TC|1\]�w�B#r���1�V;g���<�W������&e]K���j.�e�����dq�p���:�������V�r[7r���8�C���jO��������|����wP^3��Z��(�j������kW�Yn���9�C3���'YP��+}v<���]����y��id6p]7�n
��-(;p����k�9Jj�����`�OB /�	cI��X���ij����Q<\��*=��;�Dh�Q�B��Wu��-��+�"��R�5(j8��{U�[�C�=��L�\s��#l�|������g=H�;t���]�p�5�q��9�{��>�+�<����^�[���i�_�rkqe�mx�q5]�����+^T���Ar�R�5���GM+� ���IB<��8\�'*�oB�����Mu�
U�\S���e�y�bV��S���Kk4^�W�F�d]���f�b�']�^�����u���Rh�����Nv9:'i��-G�9���i
�C�����7a�f�����
@�R�]��E�}o�\&9���^L��M�m�F0���]�:u��E���	K�������'������;U�#A������#_7v[���9����R�
�kJ�=�e��Y��BgN,�I
+&^���
m�"�yc�)������E��������]�Gd\�}n�\���+/o���I�eu��a���V�5t#�Eq���@�i��`G��;	�"���x�����K�`7�S$O#|��6�j��w$e�D�A��*�����X
*��]�s�n�bN����Z�]���������6�����l��$�]YZ����7X��;xDw+t�wP�Q��m������������@��OB�z�F�NCR�[{2/L7O�9�\��R�*[pw.�{�EM|�7s�cp�u�}���	�S��VG����������<xor�2�����9{�V�eurt+u�s��u�����^��u:��6�gR�S���.��xX�-/J��OW ��fFu�&W+�Vnt��2��
����L�96u_)��=�R|��&�D�G�����Jn��oz�C����9]��wQ�=����g����\s�+�oqHI�`
�m��R�R��f�C�h��LwA�o7��La���*w��b�k��:V���'"�{7	�1N'��r�1@.����4���#�[@>��i����mh����5$Z�O�INY�B��ahJ���o�q�2�ENC	��J�����bv���W�!o���L��9�ME�K�.���8��o2l���S�,��,�����l��>�)������������H��j6���tG�f*;J�c�@��=�YtL�u�Tkqa"��1S{r�t<(��s�	��..�����<
����E����L��S����������[��m�c���8��6���t{���A��:�-s��F�a9�fQ� �QZ<9���$��8�[����f�Nxm��K��0�`�9�fD����Y����O�Y�L���
� �r��d�0��j��e;���;c�Q�";��F����i�g1��^��Y,KL���:]��T���[`��i����+u�>N����};���^ �0���CwV�����|zs��u��t��q�M�<���j<��ia��''X��\[&�9�M����*����5��*Z�/f�����"��>�}�*{��L��������.'VE�wsc�������3�p�rnb�7�D��Tnr��Ux���4�k��@T��������|��
�y��n��iRJ�e���P#�"�6LMg1�Y(+N���8�}�eM�>����wB�L[��������-�Z���������|(�y�����U���&�,���L�&Y���f�%v;;Q-=8V��FU��sU$P�[Y2�.wg\�6WU'n��tx�R��3r��|�p������:�;_*�gP�],[�7������b��������Z,V�����9sU�#'-�Of���-�C{�������[�����36����^I��$�yY[�^���RH���;U�T��$wB5�dQq�N��4��rZ&"CS�x���������[��j�0=)iPu�m���.���X�{�27*S9e���Nn��/8;�W6�[H4�5���7!����xM=m�e���GOV��(���_�{������������u�A$���j5�6��G��?�+�� w�������Oj���E�9�J�5]�w��������y^A�Y��H�9�-K-�j��xR�nt�)��V�5�lg!�����R������e�KP���m�l�q�p�Y��&�T��7p�s.�����-a�/V�������%�:#{�k^mk�A-��7�`,2������W�7$�u�sq� ����e�C�W2�����S2N}|)� �9�����&r��CZS���;3S���@�z�Hro5������:�Ss��S%����n�-���
�x���C(Ep-���wm��������K�ie;\(]���ti=a#n��k��;��qq'���n�L��Z�a�E�@���r�����7�d�7�o�����N���rr�:V�[��dv��#���A�r�1�k������.9����f�l�������-�����e����p���xZ��Vxb�GhE6B�i;�N�#�=q����,)���f�x��H������w��������em�6�[z0�������fmm���� :����ymv$���{�e������08�����[n����*�����X�c�n�� z��g��fXw��n�D�ef���"=9�<�O)vn�������iM��������kC���`��i����Ai���Q��n!��7������Nnx�f�G��p�������3\~�;�<h]�����bd�����t���1K�[Qw`%�&�T������2��Df�����1����9�$� �m�x��
��F��=�;E����n!���[���D�pw&��4.��X&��U��;����.������g��@�4qgV������([5u�jJ��T�-����]�9K/)�L����w�B��_j���%P|��i��P�Y����M�����q��7�5�L��Y]Dwv�[���yQs���"�
����P]�#]�����������ED!��% �B
����������
��+*��\�G�CXh���r�����C6���k8���$Vo�M��@U�H�$]����d�jI'�A�O$�� �$N����|O$I�5"&�O�*�
�/�9_�_�����HT����U^W�t=���~�kC��J[�z�����/���T�G���3����q����<���g�vP���wQO���CPJ����Z���������	��MG�y���??�
��Q5������Z:�����r���b�o^;��jR��0�����Ty���gC6�9+%s�!d$�,=��^L8�yNM�k:������G��6�_=��6�(_s{@�o*�Kf�r�^�_�N)qa����w-��/�����N������5}V��v����i�����X����h���ZW:���SU�/���h�qv#u�����4���f��I6�)c�2�=�h��V���W� 0�Kr���i�������og������J���).���X��=T=�0n�z��i���%:y�M��M��[@��[�8Jl����L����i�MW���������������>�ns��"��V���&��y��kBi���3�����XCk{^�R(�+;�����;b�������Z���Hy��kt�^g����/��Os�P�S�K���������Q,_ty��,�z�����[���f���>�p���v���qV�X>�"2q��vI�+u!st�R!�l��7�q�=Q��k�*�6�f�'mP�/n������D���X�N��~M��kH�32�|G����l
w�F|�Ci|�d��!Z�}vt�(��{��6�V����haf��}r��@�1�G\��9��N[SX����v�Y�yV~����{�n�7�4�)��c���n��~!lH�
������1y�
}���Q�y1�(�Yw�lr����V�7F�fKZ:���E�&���
��sk�Gs�����z�r�_o8�Z�v�p=�-_8�4����S�������"�|)��%W����t2���l�%��1��3���Sm�����;?$�
��
@����U�w~����B�e�	�����DP9%m��U����~�\G�����H�=V�5elzM��H������)/P}]
x��V
Q ������B}��p�6���c�� �m�����j��������AgCmO�?���d�����k����������nk_��H�B~�'���L������0�W��%]DTn�:����'}M�Z�][W���@)���$3{��7[�7��5�&�f��J�v
�n��V�J�TJ���2�l�:��@�H�d�t�i%Yi%���zH!=$�����������c�����v����L�S)���&`�T*%2�L��T*
�B�U(�|B%�=7h�"�h�<��(��(`1r�K<hvM���(Z�{��N� f7w}2It�)@8��pt	$�o���b1���m{����^������c��K�zP�T
9���������H!
���KS�LT�(��U�"��8��<�B�Q2@��n8�<�T*
�B�S0��e*R������R	�������1�c���v��)JR���Z��*@�J�!A*R����;�y����k-r�!F!��l618�e2�OZ�j��yL�+)�`��=�tn���AT��1�c��9�
��AB���)oZ�����nf3
f�|�gw���wr�3���z�w�����[�{��/�
��c[����7�2@	Qtyv{���UH$x������T�J�X����;�� ��&Q���g;\�g���s��7�v��R�!B�!�kz��sC����kq�j����%�9����r(<��������S���<��L�k�@�� ��4s%
�<�7���S�<��=t�����T�)JT��)^�#����&@�q��yr�R�1��0�����k~��A������70��Ig�i�m�@�4�5�9�nz�fcu�\��<y�g�*�!B�!l����9"�c��.-�n���A(Cc���9�kq���@B�
��p����y�=T�����nk���!b���T�($��4�d��B���1�<��Rc\�V��4��:6�5�p����c���������0�1�nz�n�q���t�(�������5�h��UQ2�TXk�yr��330������` �*P� UPwww@������!�K���7�`;wwwt�7�V�����T�{�`���Y�@���7R�ww�s��)]]S�T������y�nz�i@A*-f��r� ���UU.�X�a�;(.������woJI`���P�fd�B	-w@.U(�|y�s�{�v���<�7u�������]��&P�G��2!B�
��J�Z�h���{�9�����e�P�!B����v�R��[�k[�4���v7'��I*fy�+kjIR��)R{�c��)���e����=�&�q)�Be3L�U(�B&_�.�[��C!�c����k�s�s���<*�fefffy��8�9�9�9�v����]A%�g�i�p�;rn�������
(�s�a���5�
k���h�=l�u�sZc���4�v�q�H���}})wHA*>�#�Ig�8w���.��9���_=���1R������O7�z���j;�8��UPPj����E)P����c��� ��z����v��%R�
Y����y���\��*P� �!B	.�p�T)4�M���!B�!F��<��P�
.���w�)R�!BH733!BL�BJ��)JT� 
���&@�5�9���Ic����J5�������wwwU�n���� �J�!B�)J�!B333������ �
Y���zP� �����p�s�s���v�n�U.@���z�R����5��G#���(�����!B*�Q�1���g�f7]�A%�`n
p9�nf��1�sq��k��`whUPh2P�9��^�Cg�T�9��7����!��3�g�k���5��.@����0�c���Xh2��B�wwww<�����pp�330o1�nz�	0;(1�<�����n=��h������T�Bn���2�X���zP�!%JR�]�R�	x��\�,h�=k�{u��zn@��G��z�7wwt BIg�9��!�y������y�y�X4������}����&M�!�$�!+��wgv�H[o��PIg�v�K���c\s������{���p;q�y��x�[�8!���%JR��I*R��J�����!A*T����YtJ�B�*]�R� ,�5����9�������%E���e���c�
pkZ����8���;��������!B�!B��)JT����@[�9�g�UHA2,�;��A:����G���c��TX4+���U"�������*R��*IR���zQh���_����B�!-�7�Yky��jQk��n���s���	�.��B�!�JT����� ��eB��{��
<kC[��p4�wp�G�c[�aMk�������nk����nxx�;\��k���)^_������g��u��l��x]����!u��i�z��G������jR�/��&���e��e�[���go��{����������������vb������q1���\�����eT��B&_�M*aT�jf~>TO�&aT�jz*�B%��!R��%UU!wuwtL��������J�Kkh
���$�[�����I'��]���	]������K���%U5�uw2s7s7��\\�
���I���%5��SPs7���.�n�ET�@����
]M�����UTTT>
���fe�����IMB�`UUU>>!3��	�!�r2g"r*EUn����&I�eS!w3qp***.���....&&fUUP\\\\�w7WRs"�j�.����UM@]�]�;�)�$�$�0�$���
�w$���UK��%SUB�wWrL��	R����*��....���ET�*��|&eS�Wup*�7whL�`UJ��I�T�3*TL!2MUO�?���v����1���n��v���N���s�v���v���n�N��uBQ������eUt�:t��N�:t��������Ud������y)��_��t2,ww��X����Pwuug&����J��ZFV-�q	Z���]H�I0T0�x��
YB��:r�1fA�������
Tr�q]`o
H��kM\(�6�a�|}��O}���{�1�lcld��V1�c�c�;v��N�6�m��m��:t�m�rUU�������t��&�DgZ���<�P���~3B��3\������������f�	���wi�N��0
�j�/
U�*�L�U:[�l���p�VC��������N&��<f^�-�����y,������O�������{�lc�1��m��1��1�q�c�n��N�:m���M��o}:t�m��m��m��=������5����-G���'���W�!�V�(��I~9YzH�9&k*��N�������XL����)�F(���\1�Zhd���+j����=�2mB���M�o/Q��.�n9����g�����{=��w��c���2d�+�1�1�c�v��N�m��m��u��M��l||j����������z�2nT���l6���+N�]�'�r���-N�e�Gc0�vdG]]��#������c�,�4_�G�-�yW3^c��P��ha�v����3�7ub����FNA��XF�u����L�T��-���K�������;c�1�lcl�2c�c��1���m��t��m��m��m��m��m��oN$���o}�Vnd~��>���h�7wax�K���R��h'�(�/$�Z��B�w���8�M����m��)������I���A�)`��\�E���V�l�u���Z��ON��=�<t��c�=���d��V1�c�c�;v���m����Mm��m��m���m���N�7�UW�������[GX�k2e���i��1�U��%a��jD���J����Z��� 2�;��t����^�����y��c���SsM�U;.�uM�����~�z�Ri]===�t�1�c��6��&1X�1�1�c����m��m��m��m��m��m��o���z���#{���2��_�8��fe�N���B�*��J���/M��X��<��]�����]����;N�����u��0@u,�2de�kMn{������^��zt���oo;c�1�lcl�2c�c��1���m��m�N�:m��t��m��m�����|}�����$?By bl=�����0Z�7�Q���z�:L��O:�����-	m=����J�m8�L�����j�����x�����<��o_���������1�c���2d�+�1�1�c�v�m�N�:m��m��m��jm��m��m��!�k��|�A�����Ee3��o����id�d�-[�^��l���7V�����m�n�����������fC�:<U������+]`M�������������c��1�L�1��1�q�c�n���m��rm��m��m�����m���L�D�������S���h���_o
��H�����s\��]A�gGm�9(X����F[-<�g�A\(e���[�8p�P��6�s����b����Z����PG��SgW<sGfD$�`N��SY]SME��@L��"�Ag ��\��#����V�L��
�)F,k���+<v���
��+��F�=z���������������e,�|���4���G����:����������6On�/y����sU�mI���$����Ik�<5��IoVlg;
��
%�xk�i�#����*R��']^��mg����#|�[���3`�2�;�A�^'Z�Z�JYm�;������0���v����rD,(
}����vx�F���F�������V���N��d���h�Op���rQ��/ZU������_.���7�����)F];�T�;��F�#s����h������:g%��R5}Bv��������S9�
��s���-�=�-��m����ma�������n�k��2��,�	�R����k����b�V�6�����4���;���Za������VA������Y��E'�L8&U��Z]���4�Y&!e����_a�[�����g5�����W��s9S�P;q��������l3u.n�����L:����4���.���2���`!���}9�6�F�L�,���uzG��.�f5]k{�,5nt%�%�P��M��.�&��j��cjg ��g&������7X1
k37]�JmY�������ty��;w]4�6:l��H�^n����ghMi2�:�
�o\s��-���[��rOQ���<O�@Gu��nk��Z���g�B�3E�7$���������^��B��U����!MN��@(����@X���.���X:j�X�*�U�����e��R�6�������o'�4�]����������������x�;��$=S6���W��3��5��-�G�Xq���J�I�����foz����.N��y$H:<�
A�H5!��&�N��P�H5#� �L�����o~��������fo���K���\

���Y:�{�&xU��M����#KVV�{�v�$���{%��U�x:f��l����&���JO'S�*�\4��o����=L� �Y+$�6�Qk��2���V��+7e������F��m���V�X��WBY�l�:��C$�Z�i��5�.��+��{Z�xU�VL�~�6�
7��sV�CY�W��5�.������I+���[��:�jYV�"74MN8u�Y7��S;^��Ob�������i1�V���c���W�#����I��������R��\����L�����m�G�{��_�X{�V:':���wp�	���H�t�������K�r��a3b�pb���*jin*��Z��d^}[L��:����d������=���WS���	��K��iP��r7�}�8�#���o��gY���+����o�N3�}{t�VO=�������R����_:]�u�!����Lv��`cp#R����+�</w�V0Z������`�b���w���[{�����_V�r���a����*���tFp���� ���
�V.�����fq��-M�je\��E�����%6�[SK�������2f���>�������r��;���b5��b���0��6�z���i���*������w�w����dl�n��>�XsP<���m�H�����o��aX�������������yV�*���	e�W;Li���s�<�e
�{k��L��X��,�J���{js���*
��=��H ��[*j7�����:]eK^:���5�%�.��fS�^|5����\u�����u�"��������u�%s��O��.���f�|F������B�!�W��d"�$��n�(`�-����^(�&��f����*h���HqF��d�r��A:j|M������7Z������K4������X����7o�xn��f*�-���O��]�������:f�6�b�@�4�e�{�nu��������%���R��q�c7����?F�_wb�Aa��A�p��V�0fg�_��������������)d���������'B�n �Q�y�sy���W��{����#�G��;��B�mw��o�9�������z�<+"m^SFEC��
�B�y��sM�\^��������e�p�	W��t�U��	W*F��xr'��:��t=���������{�����S������.)���MHAkt�K>F~�ub�2����2�3V1�:�1�.�^<xi��m�c�]~F9����K����Z�j�-u�|��|�������o��|{��rT\�b�UsB����\���\�-UB��[@�*��!�
j��5�T-!�!4UB�P��WM3lW4�#��m�h�<Wk�Wktx�pSU��%��1�-���mc�����vm�Ev�����c�M��1���P��U!�r�U!K-tt�� eR�[+]mU
cUR-U
cUP�5U��66����^���w�����l��h�k�UvCW&1��T���uZ�!@��H@�k����d��\��Wd�k�m��P��q�R!��J�H	#�g������}����c�=���d��V1�c�c�<c���*��,F�U�D����<�����ooon��iU]AQ4�����UWPY
*��)UWP��W���{���U�{�N����
M���v����x�)e����-H�k+�����r26�-�c�;�U���_��|bh��n����Gmtzu��T�������+�we�������w��+i���7�MF�{�������������c�{v��2d�+�1�1�c1�uO��Un��J��
*��)&�U�J��!�Ut������i�u�&�U�$�UWI.�?dA�I���9�_����������l.`V���L��U��
y��3�CS�g�Q�6�.��H�{��v
2����k^�K�d�,j�TsJH�iV�V���1%���2���K�����oN���:x��1�c��&L��c�8�1�c��cq'�jG�m���mU�)�V�SMM55X���ps�q��6���6���a+j��Q+j��I+j���	$�UW���������l!_�����i��Jn���b:�-�t�����������5��G(m>ohg`�/�\��)2��(Dbo��q��v��y���D(lnLb.u6I�1�nW�_��OW�x�����1�lcl�2c�c��1��1������O�4����ON�������V�����"������J��pT�V�[�������������&�;�����k���<������8��_b��[��+���{�� )<����
�|9.	��r����9$��I�s��wt��m�9�Y������G62��aB�r%/�n�9�^(F\��r�2���&�W��=�^��F1�:||c�1��m�&Lb��cc�1��1�>I$����Dj
��pQ[Un���:q��~��N!��q�(��V��%mU�,%mU�>�8��#��i��v��A�������u��k[�|�������t�)M�\'1z)����,�63��q�t^�;w����nC8������I�{��eT��D��:�%jY����[p���PI���a�/&a����i���&��I�K[�U��^~����~���1�{cd���c��1�v��n�$���B���B���H���N$q��7�Et�[��V�[���V��V�[���$�d����[�}fs����O�\��'������f��_e+D�v
z�I�k$����M]��=�!v�)�f��]��,���xmbG��*�H����QT��i����Y��������,�>QM�����t��u1xzM���F?U{�����=������c��1�L�1��1�q�c�o��M�H�j���H�
���H����+j��a+j����]*�D���>hp����r.�MH��V������A��5����z����k��X�~�F�n�D-c*��]�z����!;��&gF\��[�na�3�M�s�����yLp�������t�;fvb���������Mx�/%8�s��*��OlW>s�RYii��gw������v�>�||c�1��m�&Lb��cc�1��1�>D����y8�i75#�$�m\m��8���q�*q��6��749��V�sR5��H�n8�Iu#R�V��"N6����D���"d��S&�3��9�������y��,w��e�����R�d�����&���x�R���9fK����
l#B��sA��1,���Kh���h��R��	�`��wB<e;��{@R�(�u�a{4\Z�9c#Iv�]M,���:c��x�����c��1�L�1��1�q�c�o��Y�O�m�����V��%mU�(����+j��EmU�,%mU�*I+j��d�[Un�DG� �������u~~s��rru�\������������1��s(]J���&!�d.�4�(��3����jY�[��l�m�P���'uu�U�.�m�@KCw�[��,"@T
�ut�Sv��:��E]z��~�o�������>1�c��6��&1X�1�1�c������+j��d.���pj�]*����������9�N8�"������p
����~�~}<�O���Jt�����9B+��Z�#{�wfV�,��Xq^�������$o2�=�q�
oMC1�0M2���X�p�S��"m�'Sj
"r�]�`s�������Pgh���\T�l���Yf��� P���f+�:�q�5GB27���B���b�oi�]��O=�
��Qx6KAWl�fn�t���`�wq���L��v��n+����*����5F���������o\����*����/�ZK�Q����C�Q�4������^�zX����5��w{����Kj��=xA<T�����)���0>|D�[�5n��������������������E�3��
�96����l���v�O���-��-��e���8\�kF�Y#��G�y+��+���a�R��[*n�)O�!w��>������N�lW6�s��c���e$�JF6���<T������3�&v���3-f��!�f��,�	���=�B�y�rMJ�2�;Af��s%f\*��&# ���l��8�7x=�3���*�I���'R�An��)�JT�
��wk�8]�������@of<�K����C�'k�&l����lh�{U��SB�^<��h�`����p��m���d�B��������Xx�"��ui���Xn���Xg���h$��kuk�=;��n���w�#�BkZz��XZ�/����&`��wFXf�4�����n&z��roV>zj+�o�wD�;g]'9�3�A���==��z�5�Z`Y�-=(��c�uc�,d����������M�
����f��r��M�-o3���)�f��R�:����D�Uo-����qe���:����4��F��a<Q��Fd�l���������h��a��s4�}��5u0���]2c��r�*>�'99��v�WpS��tw2R���/9:�_Y���n�w������qB��2��E���H�z���J�]�]K���-����N��f������k�q:#J��������l�Q��W>J��3&���6�h��
5�<�.�s����a_y���WdI�h���*Hi&�=I�A� �I��d�y$�;�'[��?��O�a��t����F�G���%E�����;���[�fj
Rz�����7��},_ur���g��a�G�x�R%�zv�{a���^U��K!����U�x�X�${�k1�#��nJ���|�.������������0(�s��+=G ���="����I]�1���aU�p�G��+u�0��Qf�0lu��0�����&��|�3��<�ZF�Q)7
e8+A��V�����1�5�����of%1\����l���5LO�'�PV���7����O�z�p�$2����$f���u��<��.�P��Y��BaV�
��>�����R����������J�hS��SY��QR��A���G�Q�����s���e��+n
����V���<�4��>�����NFWM�U�F��Es����gw�j�r�U��%�kL/������V��d4�8�+M72�nW=�5���3�O���9�9-r���.[R���w��6�I�Ni��Wr������y�q������o���Uryb�71��w��y@.����[L���.�b��'���X4PPt�N4>�Z�:|�����
q�l*8d���O�pe���9���9����R�uRU���o��A�+�����Mm>�7Es����}N<F�ZA%�d�O&�H����Tb���>��_�_,[���V�la���,+�zJ�:�����tx.��}|�rm����$�]Z0xb��O�v�nb��{kr
�J������}Q+�����^���d{�x<�P�Y�BMmn�6��W��@����Z0�t,���C��K��{b�x����}v�!b,����-��a�@9�G$�#�Wi)��w��J��$~�c�&3�$^�])�!����_�������:f]����
����{m���R+:����zWqX�'�>�����sC�[\�m\���u��N`���/���t��v�����6������l���t�&����l������Y�g��.? ��s��Zu��9���L��� �k;�J+7�u2#[��:��Z�������A_#�9�����|G������k��hf��
�|�i����>w~��z����U{���c+g�� 
n���O��1��_7���Y�E�TC��*�j4euq�������O7z�o��s��s���5�5����������`���EZ�	��H����\�h����5����tf����G�^�>�_��������mmjIU�n���_��5!�M���1�.�Z�[]�X�Vfj�:�X�:������,����uK��V2�.�c2R�n������\��C-u`�������
����C1j���MU��j�LcU�L���!��-��l\���Lj��5�T-!�!4UB�P��WMX�iG���!4x��j��h�T)�V��T*N$�{�����x�  �����vm�Ev�����c�M��1kR�P��U!�r�U!K-t��� eR�[+]mU
jER-U
cUP�5U���
�_k�����w�����l�X��� ��2�1�V����s��81BbU SU��g�]��-s�]��-���-r��d.�ms��s[���������������1�c���2d�1�c�4�1�c��cp|�������O�D����q�,�mU�,�[UnG4��$�&�q���V�[��V�[D�4��m���}H��Hy~W������P�b5��L����7"�����S������%�,m�NIO�oHQv)����`����<�J��������W>���{�i9D'��	c��y�F��n����M5R�j������J<����{�_�~�w������G��c�=���d��c�li�c�o���I+j��dI[Un[Un
%mU�,%mU����r���pY���NM"rD�n8�$��V���{��������g���/����Y.]���Ap�_!��wt��*��r�
rV[z)b3������p�w/i�T�H��'�[ML�"e����'�Q��Fb���3�N�d�[CPrF��X�����>�xs�.�������H��N��������o�_#���1�lc&L��1��li�c�o����;���zzn
���Q6�����V�[��[Un
+j��RJ��pY$���88�����#��s���y�z��7�zK����������q�;�Wy�G�U����D97�lI�y�5E���a����mj�X���kfK��D�����t�	eA�\`{d���(M�����Z��p�[ZL���Wl���=���[��lv��<|c�1��m�&Lc�;cLc�;x�6'�J��rI���6��p�j(m�V��MH�$�j����$���nD�$���"X+j��������RJ��r'}����$�<���}���m��V��_��.[�)����{5��Z�}t��r����H��1�Qv%h���`�Wb�,�d.��&tz�i�]J�e��
;Zrs�M��+d���Y��7��������zw8?{v��>���1�{cd���1����1���cR'����jD�Ut�H��Ut�H�Ut�H�$�]+RI�jNA�8��b*�V�J�U��"XJ�����P�UW����/��t]b�����1�����l<P����2�X���s�d�rl��]��\�}D�z6��������i�*�rQ.������S��������9��ov�b7��w!���M3YP�O�On=;c�����1�c��&L��1�v���1�v���:��i]+R%�J����Ut�H�
�������jD�]+R%���Z�)%WJ��I%WJ����H>�;����ww������?-�*M���,c�Lq�%����I����-p����N"13�2v��'MK�d9�Z\��(���	�Z��;gA�������*s��a�������=~�OF1�����c��1�L�1�c��1�c���4��{q�q�8�WJ�"��j!U��${��Dq�N5��,�U��D��Z����q\j"Ut�D�jG���$������o���:��?LY�7��������F#�H���of��b)�m���VfE@E2��	
��f���m��tF ����k7}��Dn��wUf
u�K�z�=�8��������c��1�L�1�c��1�c���5�"��j
]+PX�Ut�G&���8�J���*%WJ�$�]+PYUt�Ab*�V���C��z��^�<�w��?*������Q��b�F���S��.eq��=��)g�L�sn���XYR�%���r��.�������W��1k��eu�����0Tx�a�����B��'�\����]������n1���x��1�c��&L��1�v���1�v����EWJ�y!�����]+PT���j
�U��D��Z�<��Dq�N5�*�V��]+K��R?w�]�?UU�y���_Y���l~�������.cR�	���1������UJo����l���2u�������C@��&������8i���V�VMg;�:\�����Hx�K���Q���
���u�2RK}k���H~���q����>>1�c��6��&1�c��1�c�x���U�����Z��Ut�H�Q&���Z��U���*�V��Ut�AD��Z�.�jH��Z�_��w;���u��rs�z�����O�+.�o��kM�������o�����]"w�!B�7�W{@�/v����h���������b;���S.gD2�����w�3������5��:��jnk��;{���11��m��[�)Q����*^;I����n��E����gv�����*]q���1+~=���a�f��%�H�8|���V��������
V!�$;��49��,���D��mv5�L�:we����Y���&�^'��v���:��Yy�mm]���JFV��sv.��Z��-+g%=�jFFws��W��7Q�9c�,=��!��4c</v��9�r�4���i�9��d��Y:)6e3��>���j�fV���N�9+s)}��Hh�QwWnY��g@�Omf��R����.s���v�[�]�sw8�Y�����m:j��)�M�}�����6���Uf��*��3Ej[����Ne&6P�8�0H�J�[^���<�l����rdU�r���9lC�o���\
����E��i�����gK{�<��A�#�;��g��`y�������k���}L�dw77<�Y��iN�u�mmo���8^c�����.�R�Xt��a����X�-0_����Q�<[�:U��X��N��
I����S�']�|�N�n�Sz:N�p�V����J��=�w-����k�'��E��{s�&���%���!C�B��u����t�ve��:�0�f�cq��>����{��WA�&�m���MB��\����]e���)0���wf���x�0k���������y��<�Kd�y�2�t{��6���b�,�u��s���r���^��j�(��F�<c��6���g��W7|��Uzit8�V���
����6������_S�K���W��`|�1�8����.;���������Z�����K��U9wL���N�%�u�lrGA����E����a�V}�n[�4��L&�����Fu0Wp����N+6Er��T���^�����MKZ����}j�}j�}���<���� �Z�.w5�r����n���]o�_Tyi��� ����J<��a���T�5�w����^�f++��O�����N��#{+���}�w�|���a�f�����y��
�>�XH��-��m
�����������,�F��b�5	����L��<|�*��O)\�c��#�Y`��*�D]�V�2!����\�k��������N���������:�.9�.K��<������#�J��!���}�����)����/Er���X�@P������:8�h��2����:\����00�3������}���&��KT��N)N���i����P������KG���|�~7�r����"����~0J[��v.������ya��%.�����+���e;��XDc�����
1��������Wd����s���d��?^<	�~
����]�����������o��+?�
Q���^�MmM`�Q!LsqP �������Z���;�Xn � *������i���0����L���V7�,�1��2�y�>��q���2��;L�����w�w\�o[��Qx?}>��@����D���}jI������k7'Q�2��z�
�q��5j��LvLy
��,yJ��(�$�'�wA����vsY�n���}}������_t��,�fm|�����4�vW[��^������1N���D���|�����SZEn�,[aWp%� d��2M�oB8���cH	�{��Z�oV(a��]��~8�|�������n�m[�l��������� �EW�6�M��x�Nd�mlF��}�w���-������K�c�������b��9��S�&��S����=(:���	�t�?�B���qY��[�~�����7�\�0�������f��^>�����gf�%0Q%
�^����1�����	>�l��������+���|w �����/���.�W�����<�Xnq\�{m.��h(������s��
�����������x�B�)k��zt�0E�,���+4�EPN�'8�"G�g-��3s%|����k�SY����2�V(�G7�y�4��w���i�o���_l�J�t��'���xsI8��W��W�����$9�}>[5�b���������7���E�.��ja���1"����cF�Vj�������*r��t����WN�/n���K3mfY1%����ma�x�P�"7�"!�f���U�{=���w����[[GR5w[����B@5= �����1�.�Z�[]�X�Vfj�W:X�:������,����uK��V1�.�c2R�n������\��C-u`�������
������Z�j�hSUrc���k���ip�b�W4�"�S��MtUHE�HMB��T-!�D�+�B��6�4M+�����<U
cU��%��`3��m�ms����s�gm���1]��}���-Se��Z���T-!H@�\����!	e���Z�l�B�e]���MH�B��Lj��@���`2�8����}����*T�Hb)"g������H��&%�+��lRmj�:�-s��&ER5Z�slZ���k����mu��k�
TBb@��	�R�$H����{=��}�#��c�=���d��c�li�c�n�1�>$Ut�AH��Z��J��j
�*���(U�+PY"��Z��U�+PT���Z���gJ�?R�UW����������������/}�F�t��kcI�/]��+������Gp�1�&a��E��P�t�b�
;�
�
V1;��#0d���z�����&�Tw/��3q���l��[K inT��UW�������_^G��c�=���d��c�li�c�n��j�$�:V�����Z��j$�I6��j!Vt�AH�:V��U�+Q'z���N�j$����]N��(U�+R.�MI����HG�H3�����_����+��m�b�aD��%���j�&�bo�
��n�D�8�_������iK�2�*����������tqj%ru��/���7v�Z�K��������%����>pM��[������{�UX��������1�lcl�2c�1�c�1�����U�+PX*�����,%Y��EY���Vt�AbU�+Q&��RJ�t�AI%Y���%Y���n�� ~��}���9���q��Y��?���������b�m��LX������%(P�5{�:VW�G7���\��������
][�U[���K[���M�.���@�{R�7Z:�U��tE�p���%���#^K8N�u���������={H�:c���o��<|c�1��m�&Lc�;c�1����j�EY��D�:V�jiK	VY�D��S�j
�Vt�AQ*���,�Vt�G&��$q���AD�:V��g��J�����}E������X���k�y�;�vG)�X�pZ�K�������iVi��{5u�B�����*��3'qG���������DR��-,����
����=7�
��9vq9"7�s�g:����*�_�v����_#���1�lcl�2c�1�c�1������U�+PTJ��j$U�+PX*���,%Y����:V��U�+PTJ��jU�+P|�g��}����?5��_�7����k�}���d��	Yv|�A������o^�����Tr�5{���em�u���k!���U���
m^+
�V���zX�/��ua%�G���N�IV������������===�|~�G��1�c���2d�1�c�4�1�c�s�5�*���)gJ�H�:V���gJ�D�:V���gJ�"��Z��U�+PY"��Z���?RA���~uz���W�i7���K,n5oo
���d���0
���k2�	]�u�S1�E��d��������f�#i��T��]��n!su���<��xQ������e<n�!7f�����S�^��y�}=����<|c�1��m�&Lc�;cLc�;w;x�O��eT�TJ��I,IVUI%EYU$�$�*���U�H��D�eT�T���I,�YT]D����%W�U{���~����_����1�6�f���5V$����9�'y�N�)��������nA�Cef�������ZV�eyY2�ee�:f�r%u��B��g%c����)�Bc:7���hb�&JTPni����5
�UW��������������1�lcl�2c�1�c�1�����|
������8�N98�I,eT�X*��$��I8������C�N*I,eR?&���C����I*%YU$���{���{����v��?o�X��T�TPn=�
���x���j%Wtt�)$�fR��z�*�Y����]���K�-�R	Swl�/U�r��j���+��AB���net�Ny[%=3��"VZ�u����}{��u��S��>8�����>>1�c��6��&1�c��1�c���I'��U�RId�VUI'�$q��IQ%YU$����I,eT�Y$�eT�Y���K$�eT�~z��O�A����}���������"82��,��M��n,T��N��0�n�!�AW�[�n<V���h]�#x���m��DF��#m��(�I�s]���nGS+2���P���1�!;��PBo`������������#���1�lcl�2c�1�c�1�����}��N98�I,�U�RID�*���VUI%"���J�YU$�B���G ����K���Q���~*��YiT�U�\V���������+++V���`�j���fa�9�0���(v���M�?7����Y�Y;��]!v9�S�T�=��/�.�L�\a:1�������fF�z�"X����tk��=Wr��TU���.�y���>�koEFX5��7c0��J��m�B��v��i:H����aY�mk�_'v��%�v,dV��L����2�6�#�e�����Ca�Ci��,EM[F�q:
���xetSI��w_b������n������^�R���0����s�����}�<�J�s:����W26s����ek�>��oIV��i��/2��yf�pX6��(�S5��pB���!{v�������7}E
�����r�]+��"�v���]��-���.B��N���h�U�J\��K"�H���+7qn��^��3u�;��S���6�Ei/�9�/+Ut����Q���WsoX&.�1\�Q�4�!�qs���`e+�m��7X6��V�>������O-����o� m�%�j�2���������������5��]=���{]]q�-�8
��W����Ts>������������t����0�;�;�4_LJ�N�[p%Z�N��(q�u�wY��Vr�1���B�s����+K(��r�&�z�M9p(*���j���BX;ha��$���wD���F-z�rtc&��n��V�G#u����E+�!*�
2���,x,�c&�;k/��Z���4�D����z�<�����x���q�L��V.R��%������l��]�V�,�v�����Wu�a53bWh�fr�=x���I�vn���-�H�ky�~&V3���&��L�v�G��4y�N��Z���J��X��]d����rR2��n3�&�����%��mZ�/�rV*����ZC&!��������&�M�� �j�_s����IS����_:1i�B,��h�����X2��j��0�km��K���0N�I-��%(�������S����z���2�y�����B<uU�xUW��=DI��R$�H2H=I"y$$$��z�u��%�������S����u��
�ewc��9�l���KL������1��>XB���vV�(�{��nV�:y�{��2���>n���R�o��������,7����~���Ot�+3�2�"��������q����[r����KW_Dr^2�������f��N���x��+)u]��'K����/����k~���
����!u���
�Q+�hW|k9�W�wWz"��:C�Y����!�e����t����t���~u9�>��[�����q�\W�x�������>X�����d������A���]�l�	�}�<�2�XFYC)!c0���(���S�'��M����iu������m>�������'9-V���r�:m4��u��d��O������J!/p�.�wi�K�������`c��?hj�r����NH���[�!���{qwnj�];���)�O��}�>pc�_�:!Z�Uk:4�'7��~.��nQ���9���s�u�j�Y�*�������������#�b���w���Y�Yf�H6��C2
I�%e�����/�*+�/f���X76_}�����m��h�>x������\��=�����!g*z_|����;���k
�dV��������������E�=�vk g5[�nd���k�@�V=w��Q+�J����o�?��)-u|~������Y����k��P��R�2��{����`��Z\{�A�3�����r���r���`�'�mV������Y�'
^�������l�4=38}��$��d���	�7f��8��RO��b,]��R�7�b�N�l�;^�����W}���l�a���PE�]�����Y�L"�j�Y�r��8�'�������F����06v��D���c;_5}������\����o)�>�����*�l��y�}`��VC��*e�,E�������ma�@���:� ����������Y��{�5m|���&d��Y��_�������|y��;4�wp,�����-�"�3���w���${{P��{���`�k�-����h�����{���U{��������_��������-���w8$��6���h���S�2H��z��
�d�'0L�rm-�2]b����[i�g2=���m,�)@[�iIW�ku�&j5t��m���
'�������{�������'���i��z���a����K���1�:�-q�-��mc+35c+�,cR�yx���Z���:���s����V1�.�[�f��`2�:�+��]X��o��/wCw�C*�+�`� ���\�����5b�UR�8p��T
���BT)�V�;]B�]4Kj����j�h��sHB<x���	��S���<U
cU��%��`3��m�e[E�mZ�k��{;
��������c����-jCZ�B��l�LjER���J�-R�U!G�]���MH�B��@�Tj��U@�e�q�{���-������"�0-���-r�������j�)6�k�@���B`�T�MV�X��l���EvJ���X���\b@��	�R�$H����{=��}���<c�1�c&�2c�1�i�c��d���! ����%U�H���UYY9!��R*��U�b*��$UY_�z����U^�����f	_nU��W���&����[W���!��:�d�L!�����Q��Jmi�D�A�����F��YnA�4������-Jv�fX�7�KP���J��_��w����}�����c�1�d�&Lc�1�1�c������[YVH���VU�*��IUeX����$�����q�'$�VW������U{���?��g�c��r��v2�n�M��u���A�x���J�����B�bc�dy��������<�$kQ;2`k4��vl��n������Z\�m��PF�-W�
�`K����_����������1�c�M2d�1�c��1������8���$���I*��!UeY"���%U�dJ�*��*�VW�^�z���U{�����|s_����COdv"��r��yu����V�I�cv�m0����WoK��[k���WN��w��D�����J���2���Y�v�.Q��`sZf���{��~�q�����1�c��L��1�cc�1�1�B���VU����IUeQ*��UeXIUey8$��N,$������}�R���~]�[?7��u��i� �����w��(f�YW�I#�^�T��:�nf�r���jJ���`{��Ag��id1�B%-��uu����R]��;7�),�*��(m���:0�������������������1�c�M2d�1�c��1����VU����IUenQ+k*��VU�*��!UeXJ�*�UY_Hd����I
��Z����_��
����c�������Ec���Skeo]��z�U������Y�k��w����f�O�l�swF�gNYI
j�-U���f�U���Y���w)�&���C��~�=���G������c�1��d��c�1�1�c1� ���UYVB���$����J�*�����VV����UI%U�������U^����1���]�H���>�E�k���J��e�b��S�u���;{���jL�nk�d����f
X�a���VQ<���M���j��(�a�/
������Yj����-���I'���=?^G��c�1�d�&Lc�1�1�c����!UeX*��$UYV���VU����%U�dJ�*�UY_b� �=w�^����vz���:�����zsi�l�G@n�rV[�.��6D�j9iP6[���u�������A�]")bI[.��o+ X���T�
�]��4U���p�A������d�����������>>1�c�1�L�1�c�4�1�c�2c�EU�R*��EU���q������IUeY$����UeR*���$?RA���u�����o�s������� s�f3"m����%�~1���-��V�Vk���N�Z� T�dP����2��2��t� ����R�V�[q�i�m�W�=<�|�=������1�c�M2d�1�c��1�������������I��Y
�*�VU���EU�b*���Ueo��W�����������}�V��MLl;jJ��}h���%!����%+�o(�h����e�dg$�u�*����X'Iz�R�s�����tI��S&�A�#)�<�f����������������1�c4���1�cLc�<c&>HUYVD���IUeTUYUVW���q���Iq������D�����k��2	'�����4
�����yX�|��F@2��b�P�Yg
��%��-K;���������6q#N�3�I�ak�r�^�\e�	��w�[,�5�L���!P\vQ�Nq�s��T�����f���\a�@;������x9�$,Ejb�w�|��[]x0P�%����`X@b��w�/�&X���w���x�$j�J�0�9X6������d���c9�B�U���D�������P��2��*�\�]����/�������#6$q����Z���(��n��;$�Q��It:�xg
�t����K����P���&��Y��b1��u��7�ArZI��x0��}H���T��F��Y�Y���V�\cFV�B�^�n��w�z���'�;[��@�k�6u��
m���3��Z;����f�$�-^e�Pl����H"���T�i�*w`��7�����u�t[]�u��]�G&�k
��T����H2I�	�Bf���5f�����W(j�%�N�}��Y������j��(�{Y�vZ����5����������s���jqb��l^��{B���B�������3B�v������9��+������b�R���3���s6����4q�y�
�fu�3o�u:���{x�H&
N��M��z=G�)n�W�5��H���`����%J��W\�(r����l
��P�Y�fc�K�:�������)�S��xb�q4\6d��:�fN����q�#k�����5���u�m��j&��0�l��3h�P��-���:N���������S!��Y�
*�;�]^F���.�Z�Y�5��Q�I�d�.fw-������.vVCV����^������%�M�;n ":����}���R'WM�}�Vf8���mi��S,+2���2��w�zY7���
�m��"'3gU�K�sA4v���-��#AzM�yE�OlA-SR��H6�����8Q}Wy������A`��%�1�B����xTt{���q���[���.+F.K���T�Z{���������IJ��F�����{���rA�H?bI<�j��j#� � �H<��
�J?\z�������5
����p�8�7���xq�:����%�^w#q���>�����bZk����ef=�ejey}�MB��d�*�e��������ji�������hu���5�LS���/���s��������
�����im��"�^=��vY�q}K�������:WM������k}�h��C�_�a)W?�X�f�]�m{#v��r��z�r�0��������Swq����[���"g>Y@��2K,�9��tV`7pF�}G�s:������F�K���������_;�i�Y�3v�vX,�s�:�9�O|���_zN5��\��tr3"�����n���S�K��3n���wI��>�z��{��g�~��E����,�o/����>9f�_TY�����1V�t~&�Kd@>�j� �.������2�$�S��V��d�J���!�a��O�[���K�����i���3�1R��_�;�_��+W��|ES��7�-�1�}�}�T�N�}�L8w4rT"���%���	XL��+#�o2s��
���@W�{�C���o��,\ot������.���<�H����
���J�F'o��~��]��q��-��d������������S�gaGf�ZQ��u������{����
�&c�X�Rl@�������%i���_I\�o�Y#���^������k�*n�z~S��o�&�h��]�3Vh��	n�-�7V�E���5�xu'������8��]m�o��N0"������{0�O���8����G����L���0T��������t�)�p�YZ��*�!\���]���j���j�o����R�Y����wxL���{������L�4���Zx�����3���.�����
ga��w'��b_A������t�p��m+z����K?K���G��~^ wB�������tD��w�rG~�E�v��V|sgg�k�gdzP�X����j��j�jP5�Z�:&��G����~�B����������rY�}�[�j�r�.l���qL���t���prV�}6�M�.������umgj�
�|�����H�w����-�/R~�C��^������{�����=M���|�����U��T^k���nF���l��7�,��]���U.luv��j[{�]k�;��kwk
#i�w�Z��GS-�BM^�
y^������������t��i��z��������:_������1k�mvKkY��\�c��[���,��6�1�.�c�mX�T����ub��5U���\�[X�OK}�q{��rT]���\�����5W&1���UH����P6
�iEP�5[�tUHEt�-�� Z�����K�!��`&��Lj��h�T)�V�D�*���1�1�m��k��ge��6b�oz�{V1�Z��k��
j�B*�
��1�HB�+l�H�T�!��MB��T�UB��������\�����[��@;�!Er`6[+klZ�U�i�+���lRmj�:�-s��&�b������-r�k��j���WX��%�k�T�	�R� �����{=��}���{�Oc�1�d�&Lc�1�1�c����U�D�VU�IUeT*��$����Ued�q��H���EU��{��?RG����P~�,�_��cx<-Ws*�R�He�e=5y�=Y����`���U@��d%�s��OM5�������
t�kp��h��/�y���u��T�$�CO2�(;y���!z}wS)kW^���z{c��dx��1�c�M2d�1�c��1����%U�a*��UeT�UYV
�+��8����UYU$�VU"���$C�$y�������|��OZ�y�s���3"B�%XX5�x3���E �\�]=f��w@�a�u���z�nQ��3��u2���t�)D�suTj�� ��S
z���g���������{����1�c�M2d�1�c��1����VUB���UYV
�*�U���GrqR*��"UY]��$zzz����!�H�8��3?`���\���O�^�&�]��^����B��V��F���`���L�+��b�{��m�4��{R�B�b��5x��v��^��B���>�c����||c�1�c&�2c�1�i�c��d��J�*�J�*�J�+�8���IUeQ*��U�d��*�%U��"G� ��~��V�^w>������(�n��z��M�����[ba����Ae�,[�nR������w[��,~�����1��U�����%�H��w$;���HI�Q{k[���*a����1��<~�>1�c�1�L�1�c�4�1�c�2c��I��Q*��"UYU���UYVI%U�`���VUH���?D��$z�����]~s\�]o���5w�$)g&���i�v*�Z��(c.=���j+�x�oN7m90)Q�+wj�����}���W�G������&g�C��6�fa	�t\���@��u��u9��������#��1�c�2i�&1�c���1�x�Lz�$8����UeRJ�*��VU$������%U������N(��������$�_��]�/� kN�t�d�l���-��"zGw-^md���]E�Ua�9��+m����V�����$6��*j�����J�L����m4�����!:��������{����~;{zv���y>1�c�1�L�1�c�4�1�c�2c�%U�a*��UeT*��$J�*�����I*����z�����������A������:������������=�AS��(I`��w�������m"%+��#g*[F�lQ����2��e�"�-8\�Y5"�������G]�� Q����\�woC�17v�A��{�������������1�c4���1�cLc�<c&>UeY���%U��N��y8���XJ�*�UYV����VW�{��{����~`������O���3
����������n��4�������m�W���
����hCf�
����{W�����Xj�wJ%�U�sM^*o]@�)�B�������O///{~>�G��1�c�2i�&1�c���1�x�L|D���%U�I*���UeX����VU���%U�RJ�+��$������W������f�4���m��a��e��N��xm:SIU�3m�I22�po,ky�IZ�����q X|��Y�e(3�h9������n��on�F�B�Te�057A�����g�+�����9����]���������c�1��d��c�1�1�c1�U�I*���D��N*I*��!UeR*��	UeY
�*�Uey���S���=��Z��~M����MY��Fs����~���f��4��y�wi������C%�@�J�}s8�+���a��]���n����kT�cY�I����5�v#��9����T�����v�R���$�:L�b�\���n��u�}�e����I���J��}gj1x�=���HdO�q�cW�������Y��q��W�r�K-���8�*#)h�:�������M�9L!���`<Y������p6��I��Xwt�b��X������Z��%	J������c.!��;F�����l�z����u��\Nu�&d�A��N���+AO4b{�b�Z���^wtVT�u�i������~�����Kv���8=%P9��;�����������vN�i@R*�e
U}�zT��sa$�����WX�W"���et�f�j"�������S��k�[�8.ul���[Y][���c�5b!�\� ��H�f:���������&�k.�*��D�)]���l(j�\n*�b��_��-UYv4U���f�����MfTD�@�ng!�p
W�
���=���h���T��1`q@����^*R8���E.���Y}�]��60����6�3�3Ti���;#$����.���0%�p;L����p����r�����Q��#���3Mk���_R\J�������iC��P��Q���sPy^�h:��������������T�^��+���7�c���dI-s3�5�o�d���%��M!���n�8�r�9N������'3&D���t+��������<�g�N����2������Z��r���ww!L�U���z��t�Wp��K{�K5q�1cJEW{Y2l��	(��T{B��9���\'(��z4�� �!=�S+`���a���v�`�z�k���kkT�e\Cv�Y]��"7!*�������uj�.������6����y�U��O��
��4m^��
�0n���cbi�����)	7�B��E�VZ73�MZ��6��KL�W�C���L��v������������d��Mp�V�����S��I���N�8�R.�{������2@�
���g9$IIrA�"L�$��i4��H<���
�f��r����G����`�#�1R��7�+Vp?�?A�/�5wK��+�Y���Q���6>X������]���r�5��
$���a�u�=���[=s�����}3�~��m58*����<��}X%�����#�"�����4v�n�8��h���r����r�r�=3���E-�#J���x�_n{���g,�;>�K�����W�>�M��B����������3����_\����"���<��u�j��rV�8_b�|�c���vp��egY�vX	�RmL��pcz��+����y��5�V�4(y�+�V�W��p4
�?Z�����kw��k+.ZxIx��f�g�6b����s�O����q.��*�pHE�j���WF�6���WnW3�����5.�w��M�V*/d���W��� �:��;a{��t���!6��\������"�{O�S��DtS2�E��3��6��=���&�	�����y������eY�0�f����|�6��3���}�������s&}�JK���	���m*
	6�����������Y����;��f����9.������6�lu�-(f/�oA6f�Y�r�=�GH����w�N.e�m��O{F���@��6��@����g��-�_
b3Y���l�8Y��Vw)qS�K���1X����e���W2�e]�6K$�,�e�F�/���p�ge\�+��S-����!��M�
��v��X�\z�pF������Y�f���PSi���;�=��Q'�Je����j���3
�0���VO���������$�����C���VM�j1��P3!�Y[������}��q���p���cxF
�Sz�]t��R+�s�M��X�`���?|��RX��`�K#�.G����A����N�<�]]�+O5^�C1���+2+17x�Y�%e>�����d��m�O�\�q+������#�l��Mc�~[�w�z���v�6r�%|�;D�k{L��B���k��?i�����t����'4Lr�QG+�{��!�����@*���%w���MGW�~��^��UW�}���]��^qm^W���Q���qh�oD
l���F���6�c�����G�F��V����U������tG������t���#6���5Ij�6�	-e5)4���+�nE�)����k5���5^�������������j&��t P_~� H*���c����d���������1��u��x��l[,cR��9���uK���V-�3UP0k�@�`����������;�!�@�0k�
U�
j�LcUrc�\�T�i!lU`����U
cU�L���"�h��R-U!�t�-����x���
EP�5WM4x���c����`3��m�eZe��Z���v^��er�����c����-jCZ�B��l�LjER-��KZ�lT�!��kUB��T�UB��������\�����[��@;�!Er`6[+klZ�U�i�+���lRmj�:�-s��&�b������-r�k��j���WX��%���J��� 1O��g����{�x���c���L��1�v�1�1�x�Om��V�U"UUs�D��8��I�qb*��EUU�*��%UU"���J�{���������B�J_�S��V.���-65����1
��"1PE�B�d;�N�{e�p�Z�bZ��Be�r�t[{b�1�n�3j���Z��jh���N^��j�a[�Q�2+l������	�����_>1��1�q��d��c�lcc��c��UV"��u"���$���$���$���$���$���UU�v���'�z���?5�����
Y�F<�!-�%*�g5zu��E;��nH��/A�B�L�@�R�����c����Ho^�@1n��V�(�	��+# ����h���.-����~�==<������{�~{��c���L��1�v�1�1�x�=�DUUY
��$UU{��q�D���%UU$���%UU�*���#��'��Y_�A��>�����zP`^%���6]z��\��0�XA�M����@x�����Lcs$2�*Y�b;x*;�QU��S#K6�8%���c��|�w�]����s}z�\���{q�����c�8�M2d�1�c�1���c�1��
��|C�8��*���*���*��$���UV$�UT*�����J�\�����LKn�GE��Q���q-J���M��T��v��k��h����tH;�[�Ph���=��e����Z*4�PY���ARb���y��{���$�������>1��1�q��d��c�lcc��c��UU
��U_����8�%UUD���UZ����d*��H�I���C������������`
����\�o>�Q<���a�yFV]��*[Gkk�^Y��C%*�^��"9o7^1����h�� 8�,(q�Wn�b���=��=�^���7�?��l~��>1��1�q��d��c�lcc��c��EUV�$��^�8��*IUUR*�����'q�D�UT�UUY"UUo�>�[���f~�2��������:<� ����h��R��+A�m���Z����V���5������#��^1i��t�Tr{)ar�CO.�5�����7n�ww��}u����1�����1X�1�1�L�1�c��clc��{|B���UUd���|�8��)%UU����%UY(�UU���H�}��������T��^�#M��F3�z%f��rX�y*��f;^*�n1�'�r���c�rn���s��XW.�{q�]5���e=�<�CqZe-I*�U~yyy�������b��cc&�2c�1����1���|��8�����9!�q�9N8��"N�J�UW�8��,�J��UV��$�� �������y���[��~��������z��$�)���EJ�D%�X#�(���6���1�b�E�
e�n������J������W/��W�j��UW�d+^����=���������__>1��1�q��d��c�lcc��c��UVB���UUd��EmUD���%UU�J���UUbIUU~��^�����~g�������t��J�C�����J��.���{�Q���t�M��3y�m�����nx��
�+A��X,�L���CU��k%�um=b�����=�^<|c�c�4���1���6�1����	UUBUUX�UURI����r$�q�YUt�$���$���J���y�5�������z�y��~�&Q,g���e��Bt���];(N�5�T�:���yK�iT#t�d[������h�,����F���Xb�f�c�E�/D��@m������I�;-J����{��6D�	��)u�����5�H�i��wFt.f�[����Mb����4K;[�3q<;�����������w��x�k#�oc���I�\f_�c1��
r����6�������\E`��
�`I�*C�>������k0_^E�m��]��k�����.�T����.g�Y�Il���:����Ku��n���g!�t���K��*�W����-F	����G]�3o,�F�A��Ev@��h����75Io��!�E��;�3�k%s���Vk�`=�9}�8�}�)i��T�)��q��,�M'����y
�C����oV����JXA����{�>,-�$�j
�A�/]�%N�Z�zW���/P6�I^����<Q �p��hV^��S�1��.U���Mt�zM�����O#������@w�����'(!�������u�1�(
G���g���d�X��zmm]u��L%]0#�+^3N����.�v��]K�Vk�Q�X6Y
��T�L���p^�=��-�t�����kZ���zsT^�������}.��d�V�Kd��3h<���{��}���L�m���s���/�v�������LW9��
;�M���k�����=&gbga��k"4K�qk��P����]=�h����
����Mo=�B�����m�+tq�G`7Xs�UM%'\���q>�;��9�l��#�6z�M}|n3�u�4�=��h���qw�����p/���P}���O`�����
�iawB����K�51�64�����������]�N�����c@��6��2��R^���#o�X���u��f���E�l,����u�^f3�
������ �K���{��/�n;����W�E��fb9���	���-�}�e�T���#P�}��F�NQ��L*�k�9�YP�F��,�
CkQgx7�\���t�,���nk�������{��3Y�H:�RAd��_��imk��J�[*V��x�d�bA��������z����W~{�}s�!���}q�a^�L�����\cs&cUo{hv��f�)��sF�me�tr��[Bg$
�����f+;N���ku1���7���>��y{�
}H#_U��v�G��5}Z&���$�K�L�|�U���a�'(^i����Z�Z���l3ek;���3@�CqU�e�6YEG����]ES�
�C7����6\�f�����1���z��[c�%������������X�;����wZ�������e�j}��
���h��
�gk��%�L�)\�5����r]^m�(X��u[��N6�r5a-��E�legB��H���.G����-���*|���G��[����FWt�m�8����aD�$�}Wh���K}�nj�k[u�|5m����6�5������D��}��(v�h4��h>�1���g)8�*����*�?V��(��s���~�oQ�����w�I��q�?$�����v^h��/l��E_[.���k���!��U����j=2�O�p�����RR�t���[��������n�J�q�����T�w|���fxo{���s/�or�*���b�j��G�������uu���p���������	�9{�6RJj�a.��3-�V�����Xa7	������5�����z�}J��GoZ��f�XU��.�F-������DV*�N*��U	��i�{�x�:�Z�T7��>���q�`0>�G��]N<�_�A�K�V<��f�H^:ys~m���Re0�
kb��dY�.�-a�/�����{Z�^ku������&�W:�!u�[p����u�S�h���������e��'�2�-�G�L=`�����9g9a����|D1�l���f����`�G6l����[����yR:����j����Y�V.��v�wH����Rn��s^�[�.����=SP��4A�v���$w_�u:��9*o0h�y�F�U�W+y���}�dNN�MLMy������Pel���]o��a�rz�����P�2�I�������?����{����~ 3������
�����F��[���
�Y35��6�e ��u����;��L����<����z1�y�v�M�e�={%�����6�K0V�����3or���-4n��z��g��������t����g�K�}_GM3l[/�o��\�����%�������t��uK�����[b�c��V1�:�1�.�c�]X�d�����]X�C-�`�������
������\�j�hSUrc���j����Hp����l\���MH����R�WM��B�� Z��%�\��1��Bh������B��ltu�\�x�����L�1�]�^����l�C{�����b�6[X��HkUHBT�m���H�B���c�T
����#��j�SR*��j�P6UW&1����0oz�_@����R�W&e�����@5[V�2�8
V�!�Z�P�pb��,U SU��6��C-rbm[@�j��d��vB��&�z�����Z�{�����������c�8�M2d�1�c�1���c�1��IUUQ%UU�%UU��UVI%UWs�q�IUU`���������+����~��hE�������j�:��n�M��o�wy��p����!Zp�N��8S+3���z����&�:�0X%������Gq���VBOF������U�a�:p�j&��/%(re���''VI'�zq������b��cc&�2c�1����1�����8�UUUUT�UUP�UVI$���$UUTIUU`�����C��d������B��������jmH��
;3ae-'b���VY(X��I��`���
�����I=:�S����N���f����6X�Y���$��Ts��-������+|����U~x�{��?^>>1��1�q��d��c�lcc��c��"������s�H���q��I8��,���$������"zW�������IUU�HG� ������OY7Z���M$�or��n�m���j	Z�#6m	���8%��L&�
�.���C����i��$��[zY%�O�V�c-�����d2P�(Q��s��������|�8�����������b��cc&�2c�1����1���C���R�IU���'�PI����dEUU	UUb%UW�8�8��'q�Y"UU}��� �e��S���~n{����|�Y�F�f\cW[�$`�5�9��3FY�l���*�Z������7*V�4!Ml�S�zfAr��h�*�;������Aw����&��[�z����^��$�W��_>1��1�q��d��c�lcc��c���5	�q`���D���J��*���*��$�������J����D>��~}��������t��'�]Oy����N��������WK���'1n�{[�v�����X��`��u*�9�f�q����L�-�������� 5�fT����Q+�r�S�0��{=�{�������_X���V1�c�d�&Lc�;c��<c�UUT�UUn�[UX�����J��Y
������8�����J��o��UW��U^���������g���?�\�����dAsy=���J�vc������1�lz��-�H������]�D6/2`uv���6<A�i�O+r��^-���W��WR�����_������w��������c���L��1�v�1�1�x�=�*��r$�q��"����$�q�I%UU$�U[�V�V��������I� ����������^�����;��F+VV��24wF�ES�WtfYB����r���J���������2R5���������c����U>naI����B�p���������������z{����c�8�M2d�1�c�1���c�1��%UU�IUU�q8��	UUd*��d�V�TJ��d����UU�Q��k��w��Y�>�������z����]�����HK����t�z,H^�jV��3ou���;��t�O�]������nZh{#��f�V�6Q-C3m�h����=-��w[���z����lc�����1X�1�1�L�1�c��clc��{|D�������$���U[�EmUdJ��	UUdJ��������}���S�]|��S'�}�z���bN�p�<�W��D���c`�����l<�S\eKc^����9�S��r���XjQ0%�L�&`���f�o�������S����p���]7�����c��?X���V1�c�d�&Lc�;c��<c�"UUX�U_z�q�Y%UU�J���UUd*��I*��Ue����
�~�x���B���3#���Dz\<
_T3�3�S�i�'m2[�/��j+���VA8k�5����
|�U�E�����,��"gj�������e��r�L�S%���ry�+qN�����|4�y�����r�������Nm-����U:��d���B��w4�fS�����H.uj���Mk"
�<�a���2V��MrAX�S���b�#���@��P������w7�m�n*�{����4��gb����Q������+�C\H��Va�����w����N�F�:�3VXf���__<Y�LNl�'�5��U��d�iW��*e5��Y�o,�R�O�w���^bhME�muvv���b�}�i�a5�%j������n�������'�VY��;��vL=k7d$@�&��%J�������;w������Y���N��.�=b- [��k9��R�f�F���^�
O�<]��K�����U�QE�6�y%Y2���=�����M��e�.��RK��a��}q�+/R�������np:#����nr!l��5��(Mn��h�8*+��
A����6��C1Py��m����L�����[�K<&����}��e�}���7�aY7E�j*6�����n��������ZW����15��J%�gCP���w.{��%��������V�k��������� QmbS��N������QV��|A��4y� �z�F��q"���or����5�2�r�7����v�M����e���{q�R,����k[�l�-Rg��J�B�����]B�I��*�S�M�T��[�d��Vi �������Y�x$�	��Qr���V�zWWvM,�h�Y�k�Q T��A����
�����yK�4�N��yy�d
r+������X��
��}N���
7���6�V��`�D����|�e��W2�k���&�dr�fx��w�{������]�	�q>�tz��������9u����F�����R��d���������� �A�A� �$���f�2��}uJ�VZm��{V��������w�KQ���*]|�@b����X(eb�<UJ�
I�l�P�B�{�L������G(���m�LR��s�����B$�����+'���c<�x^L��t�
��������r7��eB�SP1e��T�	-��|��P<3f�a#���%��y5P��}�������Em���O����#���et������)�Wb�����G������4��h�08C�����]�,����Ck���+ b�6���Q��k��c>}pr<[BJ�;D� �{��n.�)VPNU��9\���� [)�[��}��q[���KU����<�P�����F�3)\�m�(p�s2:���1�=*v�hK}P�k��3��{�-Qv����	'a�_o�f�����M��O�;zd�WWG����6�JK�G������_������\4S��*O������J���������^���V��k����z����V�K��3s��,��N����S��ck���lY�������I��7����z�����k�%Bh	���Y��Yw���)�Z��2���:�&��
�N�q:�1��sy@�@�����f�2�}�e��r(\���1&x����X�e^J�q:bObf�a��_!�r���������U������=�<�^	���k6��������eY��n�����BQ�3���p0e��=��To������Q�!�;*�u U����% +q���f[�D�Q{��qj���	V������~X$�xR��\����w�v����{��V���D�������)�*n�8���1����u%t��B�����:u�+%�]�TX2�a��gg`���I�Vm
�J��3Mw�3A���]�����i�>1X�^�����+����K�?
�^���U��WD5;��cr5Y�p�^V�"�]�"����@k+f80�V@��
e�*5�r��Z1�	����P���*���V%Ae�7�|�i�Gwgr��_SJ�5���[��h�&��X�4����Ew�_bV�]�Z��n���G��UUW��U^��a?~����W�vL&�Y��=YB7Ys^9)����b��h3�T����nm����+ �Z��8XusU���ne�	[J��b�MV����n����Ra�]{��x�y��}��{��N���3������a�L���_KX�\�����%�������u��uK���m���X�:���u���u���uK���UP0k��`�����������!�@�0k�
U��j�LcUrc�\�T�i8qT
����,U
jE�L���<WM��@6�� Z��%�]3I��6��4MB��l���P�5[mW �<[,cj���1k�k��{;
��oz�{V1mb�e��Z���T�!H�T)�H@��+l�@�*�B1�v���5"���ePrc����Z�����[������"�0-���-r��0Wg���v�\���d��&�b������-r�k��j���WX��%�k�F2��1�3[�����q�����<x�1�q��2cc�c��<c�$���$�U[�EmUdJ��$�UVI*��*���8��,�U\�A����_��9�o����J���icJD��f#
����=�-�I�K��������R���-q]�K8R��ch ���g�G�H�{��Z�h:�d��4��nAcwVW��=�=�1��������x�1�2d��q�c�clc��{|���UUUT����UUXJ����8��(������M��H}�>o�~����gS�����{��U��6�v��+����J�*h��
x���;��gF^�N���T����4Z-�����*�N��U����JLlIdY�R�K��{o+�D����o�����+��cc&L���1X�6�1�����U_}OD��������*��9�8���U\��8��*IUUaUVO���H-��^�����^s_����D\�tfmDE���.Tc0�>���:��r� �����x6x�����	��'���)<���;4d�U�;v�J��r	�T���x���gb�{���/{|v�}c���������&1�1�V1���c�1�����UUR���UU�������IUUEUU�*���I'�'���jW�?��p �)N�E:��%�q�!n���`�2"���/-��GY��F�������Dnm�o��/D�j�QOA����	�6���,���sW�h�������<W��8�L�1�1�b��m�c1�o��UV$���%UU�UU�UUIUURUUT�UVIUU��D��A��g�^�:�u���g�8kfj����+
IX�-���=nG7i���\lz[�WuS�N�����"������mnWq�iv�T3����oX5��{�"$��B�Q�yy�����1���������&1�1�V1���c�1��*���UU*��*��%UW�$q�X���	UUd�����A����7�G���/�v�^C������Yp��U�z�P���w���r�T�/��B�q��l�n}Q�9�`���5[��t�b++������x���??7����<W��8�L�1�1�b��m�c1�o����������������7�q�N**��J�������������_��?�����fH���+@5ik���J�,���M�T������w�9X��t�&�T��#�yuC+j��8b���;*��=�����]��}'���������+��cc&L���1X�6�1�����UVIUURUUTUUQUUdUUY$���*��*�������������;s�?+�>5�Y�,���:.����dfH ���v������j��TZ�eJ��YoHS�������T �u-s{�.�0-Xn�:m��-�z������*�{|z~>�����x��c�d����+���1���UV*��IUUd�������������������D�}�<������������v���g)�M������/NS�;����pn��	�m��A����MX3�hI�6k]�zy�e�yWM+�Y}���Vow--(AkI,�1���AJUU'W�o��<|x�^<c�2d�8�1��1�1�x�=��]*����UUY$���IUU�7�'t��������%S���f���?x�VU�g�?M�����U�wn�7���i�E:�8�{N�7w	y�0S������<��������H����WY�mN,��	O
���A�^��k��)F���0q�v��V���=n��B�U90��V���cE^�4�6I�r�:3br��H���Kyr��J���u\���z������P)
uf�[��������*P����
C���3-P[����|�������7�Or��W^gk����h��e�DF�H*�yV/�KCb6$��aWS�R�3yn�]��8�����0B�^��Xh%�e[�����T��(]�����9Y:�v���nj��Ma6��f�{jI��L�����y�q�
,N���/
��Qhj�C�!����bi=�Cd���H�����+-�M$U��<sy��9V��7l�f�:�:�:�wK���|��e�7�<G-�u�Nf�u����e��9}f�n�I	n��T
c����_3r����.�[bJ:�>2���*R���8j*�mK>�X�R���B
2�R,�s��yj�	k�V��o��iqr���-q���Hj����h��^���x�m�1N��Fe������D�k�[��%o�{;U���JQ��;7-RTZ�`��5m��j�D�Oh]����P��8V]��q0�r�/V���8�U��k4��r��$w�M�sh��-a��"�q.������c�������r���S�x�U�K�]c��t��I.+5�B������������0�x��+��-�skt����C1"��V*���uu���b�����`J[���K�t�w7����
��]�u\��[;q�����jYh�}������M�)���nY���rWgt)����Z�%+��Na�E��J#�=}NN�>�ue��%]SNru�y�u*����c>��W�h�*-��wx��+��H�����":���W�b�q@����KU��Ti��ut��t��;��[�nM����]���S���2I]n��e 2��,�&��������;c������t�Z��#�|���X�����%��F'��j�/*G�z���eT��� �I�A���M$��I�j�������M��,�����v�L���O����yU��M��zRp��&M�;�H���"�]��y�C��w.�����.�����f��{9����P��(�?��qSmW�|��F��5���|��r�����<�9������t�/�k��;7������[������qS[��s2;��k ��9Yi����PN�����Qs8�vup���B�j���[O�X*��\�&���L�Zcn(vkim��\����/���^�[�����>,W|��Qt�B@��Z��-#��������aD%�J4�Kn���m�����I���9l���
U�x{��C������u�D�M�.B�\����j�F�����v�F���w-,����d��������U}	D��c��P��Z������SO�^���H�����9�����u���b��L�yJR�*;��u�h�Zq�6]�\8�����}X%>��|����},
2E��u��T������]�����uD~�P�W��n|L����e�JH�	����6�(�����McY\�7��,��R�[w��)�n^�4��x��H��x�s��te�&=neMk^d}�*�(sl'��Z����\�o�i.�8Is��������'��}�UrV�lmh�,��������oV��I��
�r�K��j�k6������E�R�g����d�����\�K+�H��d��h�9���Y@5���xlhb�ZJ��7i���r�k�z�������tx�������}W���e������q�����mc���
P�������!t�M������zs���R����,%���of���d[����<����~��z_)����u���������]tC���|]�`a���-k���{�b�C!�4�[�����j�s��^y�Ei���"�W%2b8��$��9%65�����
��������[N��>���@n��n�E�����d�R�U��J�;'Ik�v�����C�v�R�Ve��yN:������a�.J�M<w����7a��.�����:|��dx�
`��r���_Dq��V��+cj���{�V�{��{��U�yo��
����]+�_H6��RT���Z���L���j��zcj�s.�h�Fak1D�Q^���W�0��\V�+wM=��@+�be#v�e�����a�gY�,�wn���x��z?w��_�����vv{���W��L���_KX�\�����:��Vfj�W:��:���������X�:���v���u���uK���UP��W!��0���s�^���\��@�0j��U��j�LcUrc�\�T�i8qT
����mU
jE�L���<WM��@6�� Z��%�]3I��6��4MB��l���P�5[mW �1��1�v�c��5�������7�}����]���+�CZ�B��l���� [m���Z�lT�!�;mUB��T�UB����1�U@�+�����}�w'z�!�L�emm�\�j�L���6Z�.�k�@�T����,U SU��6��C-rbmZ`�k�u�]�]V�'Z���Y�Ld����u���x������+��cc&L���1X�6�1����UUz�8��,*��*��*��*��*������*���Bd������~�����������0^�����5����e�N�dD�.��u�P�NH�
��	������P!	$2�V����b��	����Ef����!�Uv������><x�1�q��2cc�c��<c�UU�UUX���*��J������UUT����q�}����U{����PM����GN�
��K�EQ���j�KCU���a\����8���en��ROr��������V�4z�"��U�����s����qu���{���$��U����������1�1�&Lc�c�cc��c��%UU����EUU$��������rN8��NI�q���q�O�D>�_���53y��������4�7WV�'�Q'2�H�)��iy�)��E�m@n�������2�t��j���[.��W�l���H��m��imi�����T=~������<x���x�1�2d��q�c�clc��{t����*��*��,J����q�:t���N�:t���N��#��y��������7w9��Z����i�J�P��Y��Td��2�J�wW�YiB�����	b�z34�2$��{n����W#7��a�����
����QZz&]��m�yx��1�����+��cc&L���1X�6�1���N�:t����UU����:t���N�:t���N�:t���A����5�_���&��^��z���uw��t�b��k��wO�-�or�6�$B�F�P��4a������%Au�#��[:d�������W�{�6���3�r��;���g��=��������x��c�d����+���1���UU��N��UYUU��N�:t��*��t���N�<���� �}�>~y�o�S�����^�����}�S�������C6���w%������n��LP�6�p�Fb�e���L5t����H���-zY7��bwwB����gr�������g���~>�c����1�1�&Lc�c�cc��c�*��t���N�:t���N�:t���N�<UUt�������A���=[���{��y�]�5���or=V�B1�+�$	�]��pj���e��z�m\5 �t��S��Q8���Z$l���D�y�f8�6�2�%��5	�q<���v��
J�-Ozzv��������������&1�1�V1���c�1�N�:t�UUUU��N�:t���N����t���N�9�"d��5��}���{�wz�}��b���j��n+���za��lX��Dm�JI��Z��XfY,A�X!��7\U����z��$��s['�]K�SA��;�f���Kylm��*-��^�w�s����}�};t��v�}|x���x��c�d����+���1�����N�:t������N�:t�N�t���N�:t���O=O�����>�����5�c��zD~�!�wo���$uK��&e�K`�b�U�������j�a��V��c��)d��l:Z���Q�]�+�s	���M�I��]gi5�U<zU���\
�|m�����W�{�w��;zt���}v����x��c�d����+���1�����K*�����8���OUU]:t���N���8���UV���~?���O����+7�o����o���.u��������n�M��m_����z��Z�o���?�������-�����~�o��������>����5�OY	���\�K#�(O��>�����q���~u	��w#��2N���G������&����O���C�#���W��������������O�b$�?�v�~��G�������?��Q����?���\�?�O���?�8�pj"O������6�MG��-�j��V�����h�[m����R?�����N�zK�$��74!O4������'O�I���.����6��O�?��$���
�[l��kk�Uo���T���!���4�&:|n=��!O��#��	��'O����$�V1$�/{$�{�M4��_d���BI?�{m��o�]G��'��$��B�N����jt�j?�H�BBI'��i��I�=?��W��I?����&��������srI�H��B���AJ�o����/�H�����{}��������H��?�$��"$���?��n���!J�v����G]?{�����A$�^���o�����k��Y����!	�����tG�O�rF������D��md�s�!?�u�'I=�j$�+Q&�Z�i�=$�����#�AON��:���D���H��9��?�`���+��������"��m$������h��ZI�������Bm�
?�"A	�����,}D�D�������5$�JI���q�B������?s�������y"O���c�$����O�����w����I��Z��5<��y����u?��:�/5��������{��!	���?��M:�nF��O�����B��N�������z��z�����'MhI����=��rG��������H��>�t��~$�$�O��=�s�8�R7�G�$���f�~���~�����k�u�y���
B���������h����$����'�����$�$���?������kZ�qR~��nH�'�$��c��~�4�?eH�4I�����1AY&SY��������0��R���e�@����a��>D�&{��*RRM�l[Z�)K$��ZV����H	�KX
P�h����m�kP���Z4�I(�@�B��D���@$QB 
����T*��M
ZiR�$�[j�hU�J)w��@UJ�B��;�������
�m65���3T���BP����B��B��RUI@@h��h���JT	"!�le	(�l�Qm�ZDJ*B�BQ�$4�*QTkk[0����EQH]�vF�*��B��9��UET)J�T���@��h�������X�']��N�k�nF�h���S9�R��)%���\������q��`m��.�����,�wb�h�R�0�2M�9.�R��R�)T������`l`m]��06;��p'07Vh+��R@�)UV��=R�^�I��H��G|x<��������`��.]2$V�kN�tT�(�f�C>|�0�a������
�v��,!����5���
$�}c�U*���_�=�wp����aj�s�	�9�����,�(�T�,������]jc�=`���pcw9`��i�e�6n����%+����J$�AP�KeK�x9��,�,�N�L���v�Sm+`��D���y�Z�
V�����:�������5�6�6�p�R��V���6���W�EJ�m�|�u���za��v0����vv���4S�R�Q?T����b
4� S����R��d�S�A*$�����U?��UUS��O��URI��


	=R�#�Q='��2= 4� ���~�=I5"Bm�z"4��L ��I������k���?����|�������$O��s���{���
�����m�p�����q���k���Hp��W��X�_�fWf��������������w_��>�
��REf�W�+U�mj	�g����!"�u'��qq'�s�8�s����o����W�i�$��c���?�?�Ri'��y"��D!	���f����������M��~;���d��7���&��,%�,�2fBff$D$�22 �`<�����E$���) 	@#wv'�e�2Bcc#$ ��!	��FLfhff�)0�Id��H�RH����$�$wt$�F ��Ld�ci2B$�JC!�R��HS4�C"d�H��HH�����HJf`D��BDe0���BBHB�$3L��L��$$&ffffe22�$�1D���!	$���I2d��!��$L��BC!�fffd�$D��$�3�� ��fR�L	1��a"L$HHd`����(��b2��f]���4Pb1��HAPA
��a(K3!��	"H��$ H�Aw��$��$L��$!��I0�@&H��$DI��������O9.�I�H�33!y�H���H�$�""H�	��  !	$$�	CwWd9vfa $#���I��!$����$$�H@$����as�	�fd��I	��;!  ��L�I�d�fK2�J$��va$$!%	�L�2Rd	$!� $�C @@s�@I	32Bd�2fd�	2I������ II$&���� 		�&d�	2`	 �� ����2��H$2@�BA`L�H�$�fS)���!2I�	2dL�D� $��J&i����%�D&@Q�1�BHfa2��$H�$I@`�)
BB��H&`�$��D�B22���2$!����� �$���HD�"���1�		�	 $�$BR#&�"JB
eDC  I&!I�@H�$!&LI$	I��&L�2A �!���	"B"d��������H�A $�@�I�d�Je!��@d�" �(B�L�)"H�"$�3 @@`$��	��$I���2�!"f

(�Q�Q���1�Qzu!&P	I��	  �s���0� �$�I�	3(Je!�E	bMcI��D�M�d�bK��f��#F%$d�!��I��`"2������D	0�@�	H	P�F"
�0�Hd$�32@f2�������B!��&$3(L�I���?��~={� �" �IL"S �3333L� �L� D�L�d@HL�A�H$� &LI���IDI����d I�H��f@��I $��@ �1cRd���"	HL3I&�� �(�F"1�DA��&LFM!��e	�1�0�`I�R@ff�P����Hd��)�	32�I�����I��&�c�&$(�(�D9��	0�BR�iaI�Aa
�% fD��G�� a�"a&)�@"I�4�&2R�H����"hLE	d1�1�a2E��DP�%�Hh( 	 1�&���4J!4BJC!L��Da
�`��A�����LA!B�e%&)K2i�3	I B)�&H!0�L��2�"H�d�!�LI$�H&f!$��H2fd��!2&�I$$�2CDAF
��4d)	$�@[����kkkk���#$2 �	#��I�I�$��&�DF#IIa1%$���c
��4����4�"����F1��0��d�`���	Db(�"��Pb1��I2P`�3 LA�#$$���&I�#<��RL(��

I0IL�����3!"2d���I"
0I"�"&E0�RL�&b&A��I���4L�b2Q
!"C!!�!dI$��	��$�3	���;����&LDDI $FDc��(�Z�bJ�A%)(�����d1$� ��PD�	$!$�Rd��&Jf�B�&	(��`�
(�E��d���b��1�E�130Bf4�&
H���! �$���I$			��H��	$3F�CI�DQ%$!�D@ID�$�2`(��s�1�.r������)!�"L�Db2`������(�PX�d@�vL�	�2���0�H�Ie d�$d�$���2A������$$I�I���b��I��dI&i3 &d�a	2d�$��&$I�-h�0RdCH�!	��"4bL4HI���a�0��d!��wp���C�BD��	$!!�3L����0
2`�	2I�L�"	"
"H3 S$��$)14�D�$��&dL�H�HL$�BR���4��(���MdH�3@����HB�LI&B�����a$F(�I1&f�Jh��!!&f�I�� �ARD�C$fQ�$F$$d�H�b1i2d%2��P� ��
J&L��"HH�$d�"JH���II��A��L�I!	�$D��� $�1�� �"�a�TId%3$$�� b#"&$���d�b�I������r	02�a��HI��#F1c;t��&FHA�@L�II�IL�(dAA3(
��RD���4�0h2�fC����$ �����LD� I&d�	A&�2RF"4HcL�$2$��A�&$�M)2i��b2PiI�)A���A%",��b�(�(! @�!����h��%))��C0�PFC	I�B��`��a�B�0I $��L�!$L�$�L0a0�!	�1$@Q2��3�M%)I1�
4lD���$`�!0hfL�"P�D#R�c ��2&i ��DhLh����^K��E%�A��"�����Rd�& ��D�&Ia�A2`!	 �D��4�	@i"0b0Q%	�L���)���D����$����b��2�#Ic��I�	P��"
K&$�$�c�$���fA�4�	#!!��!���!2FD�a() �%�d�2`�f	"dS�$	��d�I��)�2�(0i)2l��d�9�I=;B�2A�L	���B���L�f@���h�2c((���A�Q��4cF��QQX���� �$��ADTj,DlF,b"0jM"�L#
%D%h��lc��b5��b��QE�AD�1%F�,��IE2HQ��@(�JB�"
1c&C6(�PQF�,Q�h�$�A�Q��0�dD"HD�2 )3$���P�1i�0fR`f��s$&BA�&L�I4$�,�Q�DQ�E#��� �FI�L����I% @i#D�R$���(,!�TPc&�5H@I$�(16!2-�rD�BcFI@4�F�2B�D$&D��$d$BH�����Q�&H�`!"�eB�L�I�AIIfV���(H� 0c3"f� �2,I$cA!�"��I*I1%�Pc�&6$�0h$�$H�$�H0	�Cd� P�D�1%L#B&da��"dbc��!A��JffJ)��&I21�i"���D���c	@`��(���M%�����"�M��(-3&"�$��}���~����fffh���0��J��#�Q���D&C$���Q��FJ)6"��d��E%Jah�,�h�6����c�(��"�A�dKF�h�6�Bfa2V#F�6�5�X�kIL�-���Q���RF-F��m�d0�![h����`���&��mn��L �E�Z�1����RD�V�&$��	 �H�;�!%$�I2A&0BLA��2FB�M���[��������[�o��o��~;t������~�B��#��$����?���������������������������������Y�Y���Y�Y����U�Z�sm������+�_�nj5�F6�F�-F-b��[r���j��j5j(�j-�j5�F�EEcQ��X�E��j��jwm��Q�5sW5�F�-��*�F�Q��j(���h����lj��j5�5�E���j5�F5�F����j5�������b7*��Q\��F���TZ5sW5�F�������j5�F���%W6���j��j,j6��lQ�5�F�P[+�F�Q��j����Er���F�j��Q��TE���Tj5�F�Q������5sQ���\�j5%�-F�Q��j5�A�KQ��j5�ATd�Kb����Enj5F�Q�����j5�F�Q��j5�F�Q����������j��j5�F�Q��j5�F�Q��j5�F�Q��j��j5sk��F�j��Q��j5�F�Q��j5�F�j��Q���Qh��\�j5�F�Q��j5�F�Q��j5�m�F�Q��d����Q���\�j5sW5�\��F�Q��j5�F�Q��j5�\��F�W5sQ���\�j5���Q��j5�F�Q���j5�F�Q�����j��j5����F�Q��TZ5�F�Q��j5s\��5sW5�\��F�Q��j5�F�Q��j5�F�Q��j5�\�nX�(����Ub��\�j5p��F����j5�F�Q���W5�\��F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\������j5������F�Q���Z"��lk�F5���Q��j��j5����\��F�Q��j4j5�Th��\��F�W7-�r���F�Q���cQ��j5�F�Q�5�d�-�\��F�W5�5��cQ��j55�h�U�F�W5sQ������k�\�j5�F��+�%��j5�TF��E��b�c[�+r�5F�5sW5sQ���r�Rj���F�QE�Z����Q�������X���h�j5�6����clj5�AX�V"�X�����F�b�5�EcQ��j5�lZ5���Q���j(�M�6�k����j5�E��b5F�Q��j5%�-I�-Q�b���5�������j��u�5F�����j5�5U[F�W5sQQb��[�F�Q��j5�X��lj5�F��5��Q�����j��jwksh�Tj5�F����5cQ���\�j
���cW5sQ��j5���6-�F�Q��Q��Z"��j5�E&�j1h��\��F�W,Z�5��j�F�Q��j
��X�j5�\��F�b����������j5�F��5�F�Q��j5�j5`�sW5�\��������5�F�QF�Q��5�F�W5sQ���5r���\�j5�F�Q��X�j5�F�Q�����j5�_����+�������������_��.�p�~?����CM?�Y�����k����Q��o����-_��������_�����:���y�~~P�U������5�E���=Eqk�+d�*]�d������8[E��^)`�?[����"�w�������V�mn�������E�mj����%��.�A�����TE�
�M~�s�����~M�o6�u��SS=��-A+%J�;KD����������s9�7yY�(�1{�����������}�E��r���f���b&p����b����ec�7/�tF�L�yL�!�MM=�(`v��#&���V���Y�n���4�
�"k���p�Q|�t�5����)���������m�%k�:I�2]��J����k�����p�p!�h!�^V�V�e:���wWx�<ZXTL]�i��n��PX�w�+�:��5�R�2���E]E�|�V���@�1X ����@"�Z'.��\����q��g��|�I���Y��#,��y�uHz���c��J��Q�����Y���N��\e�s��%m
.���$m��{J���� 3����s��U."3����e'����@�yn�j��
���l�B�\���o���^uh��[�	����]�����9W<\��w��W����I�4�e8�mt����3��)V8Y5������l�<��W������MG~�#z?U�b�go�F���Y��*�tG_.:
�W�Lrd��9'��"�HT8��F��U+7�A����y����n==��6�u�7�f������N������p�i9t��%f�N��n��
�l|�)�����V���t#]�:e*'e��%kb�}
%+���
p�����R�S0���g[$�|,�p����=T�wNP������*Q�7������*�F�~���a���{+5�~���T:`���������|3���z7;EM���/V��}���n��21���H������s����*�co�I�����E������a[�r���D��;���e�J|�^��%_C�����c�lI������D�NO�W�1���R.j�U�7	�]���.�=������Ml�vL��*�q?���^Zyu�R�%�{9�j�Z�GI��u���[��]���fmTUmf������g�F������Bbz�����4����7,g-�yD*�;�
���*(�%�zwn�w�J���!S>����kg�������y�h
�]}�w�����-<�:�R�)ju���t�+������������[��0Apsb�j�H�B����^T��L����[���S��\.��y��E-�$[6�����������^����Txm��r��G�����me5�6����wB���n��t����G������6���n�8��=�X]���v���2;B��w{�*+�9��Y����@�i�y����Rr����'������5+��oL������~�;��^~�v�m��
�*Q�Z;�B*�q��A�\��
F,���5m�U�577TZ\�&>�\��\�����u���gS���F}��������B�/���'�����z&)�����r�Zx��GpD{z�uq�L.�5��X��Ws�K����4��V��!����f��uX�B�&��s������
f�Xc�P�0����a.���3���:�����e���j�ZO^�=��������k�h��u5�.�+���q���������w��&�R�*D�������k�M������W.��99qBy�������X�pnGGOm�OE��>t�	�'���� ��-nb&K�h��q=��G~�������e�~ww����~���`��k�o��������J�k�"A�m������\/���tn�Gc�����������=�{����������
82�Yn����-k�l[����T���pVt���W�N�<Iv��Zhm���S=�����l������~�g�m���{��Lo���D�x��F#��"<���}CWnoC���k��
�w��bGoO>S��t�'s���H?�������z��[�B[�'�������m(���9����������D����[\-8�]�=n����o�?�3�l��.��������`�N&hF3��z)�b�2uX06��e�\����[(m�W�� %f��f�:�/���#-K��\g�PX���r�����/]`�ux��sO����w(p1�&�EV����������+9�PO�r��v���@��&�p>���Ks)�k����mtCL&�a��Z����L�J)�+�Ti*+3e+@��u*��1��,�f-�d;�:sh8��s��i�����2�acb4��6�i&���fEz�� ��N�/��Kt�a�T��G"��
GY��-�Q��
�5����B&D�����B������JnI;C!�7�P68��T��F����t��+8��+�T-L�T���$�7������f^���u
@=�4�-���b�������D��L���}veo\���9:B����cGn�uf��5f+���\Okx�y���nj��.��2��x���,�9�%%�kr�h��$��q�u���s��r��q��������[��=�����������-�z-[���\���Vl�u���v��w\q�k]c����n^s����[|�)�Z����B9}(j�K���s/@��\�*�u�D0Q�����1�������Z*c6�&_>[Z����f��F�y�7�d�#�&�[��&Z��P�x�0Q.}�i��vD{��m�z����c62��D��w��R�Gc�NV�\{�Rc��'-i����T��o�������N�Y�,F,8!k+r����p)��\o33.�;�I������IQ�nD��2�!��O�{}l����#Y��^s��"����(+TI��FZ�����|�l���e���F-6��Y$\�wugl0P�,�.��C:�SL�+J���h����e�A#����u \��3���"�:Z6y�v�)�v��H��^{�e��������n������5qoo3�u,0aR�c^��������3_���?�����F�b�{57�.�^^k5���I�q�
��E����8C�'\�'f�����MQ����52�1G4(*��v*���{������������t�D$�u18n������v/-��v]��0zK�����K"�}=.����q�����9����=m�|��^ia�?��:��@�Wtj-N�h��R�V]�41C�s�/k��EOF�����[�*eL�n�4�f��R��J�=�kK�-(�)���r�M�mk���.���G���e�\\;������
�\�um	���������Z��1�G�Q�bok��o6�����nL�&�:x
h����bR��g������+�$���v:�������Wt	Y(���i�N���������#��e�Ca����t�L��g�:m���a�--=
�����lm����#��Y}\�0�P�b�[[���b�Im���VI7[��v���(p<�rq������lTZV��)V��)gS�+GZ}5R��{�T����Xw����m	��������>z'D������%��b��J����$�Y������Mq��e�E����v5FWV��FQ�t�.�E���6��K��1�����������UO�����/�{�������1t�����S���+��Y��n���M�\(��y��n�)�p���q�7C�V��������[��U�XD%��#�t-��6�T]�PN �E����'��U�q;�z$8v�"��tC������U1is@1<�$M\�5�wcuZ��h�2
�� �����PA*H�b=)��w(�w�o_��$E�v���z��g����~�q�Rr=O��z����!��R��h�r�"rR������o=�p"(o*C��ViV�Y%����BX�H��K��T���6%��g��Ap��D��qU��D���Y�K�t����Q��TMW�k�'&��V���^��%e��WE����7�z��*��^����h�=p��B�q���g 48�'���x�+�Ifr��N�SN�IR���;�y"U�zk~U�H���eg�����Y^u�	����������+�������;@��'u��z��a���������=�0R.�����J���("M�I�Z&�������TJK�{g�t�,b��������P�)6�
�m�7x����sz�@�������W�\VR���������:�L�N�k���y�����Q2;�b~�[nE����U��q]��}��h`aU��w�n�u�+�8A���
����dB��Q�x�"�Ne����]�.7��B���
���1����i!���Pz/;Qb����q�P�h��/��9�4r��l��V&b���#s��"f������;��%�d@/�2=5�%�1��A��������'��+
�#�����������a�Y�n�������/./e��������Y��nz�.�v�����=�c��j���w%3lh=(M���z������,�%r�{2n�t������������7v��`�����a��a[���J�T1�N����"�@ �@���7>�^���,]d.��J�I��Vj�X����5^mQ���v7�h���(;*B{`v��
�����Wg������N�)YV�0rfj�s�pw;1M���	�j����7F��C��t4�u�>�gsV���<]���B�E"����6�;����tj��k�*���w6Z��R%����c����v��}u�mA�]�ov�k�������w277���}���T�d��f�W^���CW�:���1a��A
�Nw
�����S��kmM����H�;��*�"@�C�feAl��WotX��N���:�������r��CV�7QL���v���$���zf69��A;�><E
j`-���Uc
}���!��m�Oi�8��j$��u�0ag)����]��;#
��83+��	'���n����>&,��h��������:�L\�6���4�}��|^���=`&�������s_0�WA5�TQ�
��6����#�xn]��s����u;4�M���U�Im�y��m�����hp�T
������#8wv9�\��DgU�EW�4W
�oz�0��4�M�Wr!�p�B�X�_v��T����tMhfk�������lEY���"�[�b,�������Qp�k��Y"{B���u���f���eI�������y\�����'�z�����a�Uf�YR�h|�d��+\Q<]h\Wk�,aK�J��W�g4�*�6Ne����CD-D��V���~��H�+\����v3����z��\��������.����krj�����^���
>3���\�����E'	L�lv��H�	/R�{2�Z�VF��5�f�Z��t-1��83�TD��U�i,��([�D�-#���\E:��(
@�6�@h�[a��je��h<X�����{v�y�e	�&��V@������,�N�%����������S gsF��o A6����3wa���e�W�)b��f&�nL6��M.�@C�^�'yq(������B(�*�mp#HT8��yf��$+��(���-�L�N���wr|�d��s83 ��6{�P������
�+��F�o=Qqn���Y�lq�Sc�?NM$W;�$H������%�B�Pf��3�C��;W��C�e=|0�����	�������r�����(����f=��3�]����#�\R�;����h��u�
��}�f9�]|t�3�h��h��e��L�r�$���7�������S�CP��4o���W�DS����]���m�O��$�[����v�Yi�t1N�C�*'z����3rn>M�����^c��r��]tz��X�B���R7�����}��L� ����Z��quxu�.�L��G�RX�Z��k������U���,����o����&JVt��K��l��Wf�	JA�y
���N�����&+kX�:���-�����u���y��@�1p�,Tj�����I��q�<`\��q�����-a+ 74X�l�������n�B�5.�&[���u�]�9��
��'����j4�^YZ�B��.����$�J��sp���f��-�g"�2n�����4(6��M������I�V ��$��j��7�7���kV�4�gr.��v�Y��h�r�����.AD�t������v�w:4i#�3&����n*Zk�G�&>\�Wd��AD�m�V��b��.��k����u�
�:�b0I%����k2��)����R�����
��(mr��b�T��{c@Kn��Dv.��N�����
;=�����^K�!�y��5Mh�u�fP\��:D��hbD��S�b3�:��;��\�)na����h�B�1�(0��wT�<��Y�G�v�K�}��n���)�)���l��[��@���L���j���+Qb�j�K(n�6Y���@����R���#Mc�(�jkfa��V��A\!KL�����8��{���0���0��.�r� $��G��M�u��H5�+�Y�-/�S+�]�=J+&�Z��~0�\bq�^-�;�v��)25G:a�Y��0�%%9�3[�V�-�l�B�a�B�z��%s���r&�	(�u����iQ��z�\���R
f�n�A�
��6,����-0��H��H��3E��;s.����9���2����9��2a��1m��mwa��H���%(��e3&j��1<If����4�����|�mm>n 1�ACj�D�(+}/�-sFk�;:�$S�5����
�0Jf���a%�E����M���������P-QP*a�\97��P���Y��,�a@&;8�q���������z~�`0Y�%vP��&+v�0�AIe����s2�l�����`�����u��u.&Pn��GF���#F����JK���K�u����^ �r���	��kI��S��b�y��*WY�������@����F
�
���0}��jl��SU������XeU�8p�[��!Vumv�N���
���z��e(��):������(��w�d�r�j�sw}�>n91���F�b�6U� ��u]�Yqm��R�tKAF�*������2�L�Y����C�xk
�Be��
��!^��2b�z|ws0=��gL��sPvP�tZ������DQo	�e�m����nyb��f���I�o�f��k�K��b�X���
X6����2e$$W}i����#(�G0���Wr��a�r�l�b��quJ�m]����fv����I�i�nf`��Lg�d
,��]n���]��������x`�:XY7�!r��
���&���p��U�����8���;�-�/iZUvHt��y����������RWR�
��j���|1�Wf�l�6��>wP���KNnTB�,*4x�Go4[z���omVf�1�sx�������|��P�F',�w�{��)��������gc�n�#*���=����A/3�Z�Em4$�k:G��E[���K �5u������-�,@��:�������l�M�{c�eY��\j�me���Z�0d�9�x�s�zt���5�%�xv�n,a�	4h����sRg����Z�}�N�bzI� vE��t�Q���������P���RT�&p(�.�oa���2.������y���t��9��>��$&d���e`��%����oS����9�X�����#���u�Y��>�d�+,����y+Y�B	l��H�smK�T"����6��x����'��x�L���')oU�s,Xp��������}����ml7M��Vw���siI�uwc8Y��.�e���U��8�r�J�!�����jf�8IqS0��R�\�,���6S�
J�����A��J��f���e���7[}��(��f�U���q���,�� �����:GZ8n�=�)2��N[8�
f�f������Q��kY��U��9�V+���p(;#����3;0�A��l�5�%�����d�F����u�����7��8���d)qC�G����>�u�:���d�Q����*�h���%�#��I���5=��K��	v��)�!�l
�������4�D����YA���f�������p��8p��}v����q%��X�o=�g9��;G�������r3M���v��'iVs�]gw�_gv�e)�~�~��U���oCs�����o��=��1:��U�F���i)b��<�m������v���f�|n��
cv�����|�C�k(3Q�@���He�;C`!�qD���B���V����H��K��a��@j��p�J�����/I���������5�]3T�j�j<��5;lb�f<����z)���<���O�*T�FD�=�g�/�B��'�Z�WN�-�&`=C��8Re��iz�`��J�W|�r
jW��CNJ�/��E�\0��B	�i������
�
�2�vk�����wb�{o���.YLh5��nA.����Vi�|��i6f�����f��p8j�z�J�'L���P*q@�
�'�V=�f�4��(n����0�i��%����n��v����Y�S[k�`�������t1���6P�%��[��
����p��:	]�Oo���ax�Xc|���9H�E�mJ#y�v���.\ln�lnf����[�d>���������;-�c-�EF����:-&���t������OU9�R����)��Xk�Not���+@�o$����w4��v,66���5�������'b�1M�Y�0�F��`�M����{��5��l!r5�
8E����i������L)�����������}oV[I�8p{�m�A]����E<�/;G�[Z}��A��_�RG��8$��5�g���w>�;g��f���W�zyB�E8��F��"���<���)M��+�CS�[��.��M��8@��,�����w����d!�l�9�X�w��PZ�V���O��4��3{�g��#0������,��J�sRr�Y��CmF�En���y�stM�E��3Z�E7�X25:����C����d	�(���E���������x9H�4��@F�_|aY��O"r�f�m�	�CvQ�
��7��:C�a�(��f�����4f30D�����jv�B������7hhN��,���&P/n��|�B�Wb�Ek��gl�[zQb��������Y��������X�#����n�ut�w���������I�i������J���<����7���H��{u!-���\���;f�����r���\���0_r} ����w������
1f�a}�r��WK�Q�Jw&���]��������-v+Nj]����I��Fm���t�4����	Z�r�Lt\T*�8p�d��W4�������S$F�0T�wH��Y�����F����S���g`"��w@������o������J�Lz+�bnK��\���M���X��67"b�og��~��W��N����wb��~W$����`7On�K���A�Ba����W[��,������/������x��c��n�_c&�M��Z#�]LKr�j��hf����9��+8���I�u�k���
���
]���-#W��c����>�!C2��w{�NH�n�������gL
�X;��*�� ��i�%�>G>5i��������)���V+xpn�j/^����I����*��J�N�-�goINQ����,Tk4�������tf�nL��j;�a:;�GA��sZ,P�1R�5>�}������������SJL;\���9S�{3��5���`&���S�38n(�z��q%&�����i�rmNvMu�&E9��
���#�K{6�r����[7��Km�nnjw�*������n�;$����X-�`�'��t�i����t3P������C*Gd�r�3�Zt�1r����XD�L�f[���
�s�3qU�P1���w2�����]����Z�k�����1=��0�Y��<�Dp�yi�X�a�����(�c�R�\m��b�,�K2�<_=<���P�	�*����X���s�bQ�5N���]�9v������(d���]�g"�f��u����I9�	twy�L,�W0�Y6Pi\-n2����\Oq��t	��@�>&�u�Z	�A�4�g,/;{t3�>������z�����Z�������������8���"��
z���������o~����[��<�u���~;m�c�QQ�1Db�c�-~���DR�im�\~��������H�(�:����)�b((��F0#F6��[��0c����;����������wH���#�"""3�k�D~��wp'w����	$���b~����� �(�hb5o*��j�����wq����wt����A�"�""��'� �����DDDE��wp��DE���$�@<������G^z��tI  H��"$�M	$�	$�I$�I$�����E�^(��E���1���������������`��6�	/	Q((����"[���$""#�����r���NE���"""" �$������DE��DD|�DA�D;���9��w������(�oV�t<��^8�H&�$�H$H �I$�	#��Dm_(D{���Bz��������9w{��t�DDD��������<_A/<{@�DF"���`�~��]�"�����9�s���wu��&� �Mh�D�D I�Mhs��9�]����w{���7��I$�$�I �$I$�h
��3���m��5��#Uu�DA��F/N���������;�ws���z�u^Z�EA4I �MI�IH$�g�w����u�#�;��ww�wt��9�v"|��s������ID�H4II$�I$��I$�I$�I$�I$�I'���H��9�s�w]�����$�I$�@�	�IH�	$�I���w;��������<���������;����wws���@*�^���Db#����qx�;�wq��w�w]���w|s�9�w���==9��.��s��;�q�I$�I �A$�Q �H$�H�$��k�#z1�����.�������;���.��]��s��.���y�]��s��w]���&BJ-�I$�MI$�MDI$I$�&�w;������w|��$:��c����;�����ww���I&��	 �	$�I$�I4I�����������w=����$I$�H$I$�I$�H��I� �I �	 I$hP=�w������\`�� t��!$<���s�������j�;�']��o�����w��w;����w8"@�[/��x �'�G�������������ws�����������;��:�������w����ws����\����s���"Z�����=�{�q��#�DD�;���wu��w\�w]�x�9wu��/�������� ����y�U-�}�O��A��_b]������\=I@=m��	�{�����U�#��m'���wb#Db/h!�  6�V��^j�G�DD@���t+��8A�AA�{���w;�w}����9& �����"������$�=W�}����DD=����@{�v���2MW��L���s���9n��a	$��Q���"AA�F��"""/�����@%�'��ck�$+^�����DDb#�DTA#�������;�����9���wF1��k�q�c�mH����s��wu����w:��"�	�����H���F!\�|@����y�@���wt���9wu��9�r��9�����+z16��\��9��u�����DA/�\��#�"""#� �""" k��FO<b1���\�9��wu��cE���`w�z"@$�$�/� ��" �AA���^x$|���b����1D@m_R	{���I$>IH2I`������w����`1���ck}�t������n��H"" 1���s��#��W��q���!DF1��s����v#����r ��
����Fk�
��H	]>��$��		<�%[�����9���r�@I�$ �" ���F<��(����9[y�1�����"""""""(�����w]���Q�h�IF/���������
�� ��;��;b����1z�9DG��[������0���b#��Dz��8��������1�" ��`�#���������w;��*�/������h#��AG�}������������wwwww@�V��;�z�s��9r#�N���I $�'�I=9���w;�	'����#�J�O;������������A1��c��F#���������������Dz�	$�x����{�s�9A����a$�y�Z�DDB �>��;�}}w9�#=����(�cg9������6j�'�d<�� �A|A�����ws��������(��{����+��|� �Dz�&��C�|ww8��9���8���wG;�����s���b(#���+�����QI^����F<�#B����H"!�o�$b1�bG~W���?-��+[[[_������!O���r!N����H�{�M:�����'8$�>�W3s��-r�����?����������g��������7���3��9]���6�v�'0���$r��t|��vY�m��=�>u�A
��|��2���,`���Y�]-0�!N�K:,��*�G73��������@���$�f���vm��3j\t���j���Pm�5\pDr�u����:���U)��[(m:M�r���	d�#����k���e#:���8������n���^�*Y)�����}G^�p�r�xI�/S����)�|��G;%u�q�g�Lb9D'��������a�������Z�Xe�������������������{�]3�N��y&=[�M��g�(e��K*���Y��Axf����n�_K��p���k� ����F����r��)���	���gTH*yB*��+Q6����ue�.�Y�b������[BZ�jm�kd���Le�z>[�d��"*�����/��g9c&]���I%�,"��A��r�s�F�\�-=5cx<����`[cTP
�9���Y,�^"���3%���4��2N��x���I��KU���\����$��|�4B�.�W\��>`���W`���u}�"W�VK����V�]e�A��'�n�F�^�z�sF'�g
����7%5���I��Z�B��9K��C�_j�
�t����L��1^�;.�����w��P���bLTr���2�p�+:v��p�u�re���k8�������t�R���(_Z�]`������dT�3,.1m��O�)����D��!��%t���M��A��0�E���t%^m�OK��X}���Y��DJ�M;�]fQ�����o{XMr���IS�D��������vs��������ok�������y[����:�V�����NsrI�ky.�yY=�f�<��R�m�w�0v��J�#4�@]��3��Y���	�B9��;������B]�r�n��V�]����pCa���R��
�L�����C�2.gE��I��y��L��|�=Dd���j:oV�7Q�,�D�[�
L'�	������-V��c���sx����Z��:�`����"��Y����L��u8b��]k.7%�^��j���n[�~��j7e�q2� ,�S��]���p�����o=cx��.��U�d�/W�h����V^+�!��]mMXN�3���]M�rPR��"�#��P�����j��0�m_u����w�y����k�����?w\�\�S�
�_ex���+�:G���z����6^�h�����8�H4�-��*����#&����s(2���M�����������;��m*��U�U8Y_C5�S�E�����`�&��s"]�a�z�\n-����X��M����������T�n����@]����1(�"nJ6�}�OJW��!*)Q�����m[����y�p�5��k�ef��p�nL�d��G�r��;M���K^��/���I��;���W$�>��W��������;^��
������j�k��e0����S<7����$j����#��G�������lw"���-���������e�NR��D53]��u����z�c[��XH��)lg]��@X��#��bRB]��������i��)��]�uI����f�2��=�f���#{6d��N�\��Q�V]�:�����9������hJ:�-�N�ZGq���C"=�HY���mu�6�dy[��������M5����0I��vHY�7N�vk��s���O`j^D�|2h��`�-_[L������'A���V~��������3��'��+��QY�
��g�K?E�ow��s���K���t�~����QY"-����(�G�S��,���I�|;c��A���Ftz�w�mNF���������`�7E[�x����|��=���B�l64���.�#��/FtDZ2�������Z������T��!��F,������9^���Q����H[	�z���gc���Vf��������Yz�s��@{b�'��+,EJ�V�[���W,����^���$��4<�F8���=�b�s0�]�E������v�S���%���H�4���-����1����t{�����F���g�Y�7������^��94���4d�n�S*�����^�/����6�����N�H���������Cm��n����5�2q��1�4��f���Q���������;>MS���*��\�t�7������\V���Mn$���e�eG�x9����ZC�tx���|�����6�}����u��G��GeV"o����+d#IE�Vq�qz:���8uh%��oq
L�Y9D�����jA�3���2<��>
����.v�TY6�jf�m=��wx��e]rh��Z��P�EwRkn�A.e����m�_7�*�R�����Iu$���
��$�t���?���7Eg
R��O%�I��������&k4�����1�G��6�M��aK�+��L7e���I"�I�M����d�VL{�d��[����Ki����RR����.���|���[���r��x����Y��8�V���M��0��@}s���j�A2�����f�OosFm�Q��W�$��������YEZ�{>|
��I���������4*�X������C�5+u�,4�������,R%N��d�HA*��������n!�����	v
�*��u�}o���	[��Bl�,H0�oWrL��@����
�9A	�"�
�����]���u�K��N�xh����O��H42�����m����q�U��I�o���Wnvm���]r���"�g	���������o��8�����Jw�=����Ms����zw(�*�M�x����oQ`������b��h��9�3����G�����n,}�|I@��	�|@�rp ��'�������_��Y}YM��5���-�����-�'V�+�&�VS�4�:)�z�M����q�����c	f*bW9�]�����-x�AZ�J�m��V�K)v�b��s���v�	Mb��/P'���[N��s����+��������(jv��q�w�N�����:���:��*1K�z������:�(]ek��e�#9Gh��I������B��@�l��f�-��7����6Ns�$C��c�����J��3Wj�H1�]G3����R������/����O�����u��7���n@B�'��������w@���${:����Ca*F����J�+���������K����l�I�NH�G�!�a��7���%�5HP�^���w8��;�p�	������I�X���
���&���H7[1XV��ei���T���wA�;`����t������Y�2����d{���1���q�qvI��������	���%^eH���M^�V��jF�����WC���p��� �;J�Zoh�&�T�"�\�g��z��(vP��][��e�3D��E�(��3d��U���][���L���l�C�*���l��Q�g+����
|;p��6�,��F�r��m*
��bR����_D���]O92��-o��,����N��{������k`y��+�������gg�)����}7:�����r�7��Fl����G��^h,���o�{�n�f)�E���z�B$u-�z���-�X4�*pA�����.�wV�^��.����+d����T��cv����\����Lj��i���M_YA&]�� ��{Y�r�)\/������G
���ki@�[�zX��BA���B����Jn��T�3-*���+"���2��:��7�|35a�����@�0�t&*$����]O+�[�����LV���J�o�5;��[j*���t�n��E������#7]2$�f6WIf�0�muiS����{K���7��t�p��[6�N_"�J����C��[}�e������M�,2��EhV��ED�B��:7��R����G���r�g9m�7��bk��QN������e^��AJ������+U�sU$x�u�)fi��t����WLVm��+�af.��D����2�WR��>�{q�;�����I3�5*x��U��&��_fXEF����F���=&���(�4v]��QS5�,��bk�B�Y���6u���A�Qu)9�e�T���h+r��.��8v�JQ�����+H��B��<�(����{�V����-��i��}��D1la��zZg����L�`��&=Y��6+J���v���{���{��G1�U��&�����2��0T������v�@;��������1�kc�`����c!.^�s"�2z���Z`���
�K�N�:�m9������y�+'^�B�w{�/��t+@����-�E6Xxk�k���GA��_lo����L�����F=���r��S&������}�H�'G���5[p,����(�n��oTG
����
m8��J��c�D;[*���'!�f�f\T�V��)��fg3d\�����wp�N<����������n�m���#�^N[��/m�Y94��$U�9� ��E}���uu,����F�<��ZA2������X`��b���*��z���������~����R���iq�u����0���7����|e�5���+`�OD�^B�����U����U����!y����A����"���kU������b4��e�f^C���	x���
����v����]�n�!�I������]�Qw�g'm��a,:�=���xR�������b>IV*j��Ra/o���0����J*�������5���Z�������p�o��@��%Ga�=��7{1E`�H�q�c6��w�%��P&�j�"��}}����1�'.���}9�go6��b��F8���BGRlm��+�����r���k;�+M�X�&��e���n���9�PL�~����������f���^���rt�)P�/�]w���%��L��������w^=x\��"]#����'���y�u�&��wn�	��V�o�&?n���tt{��[b~�TeE����N`�r�\�Jw�q���[�o2�jj'Y���b�����7�<gA�S��8hj2�Az�Kiu��Ev���kU�;p�e��5����FH��C(���71,[KA����/[��_)�7��>6�V%��r��I�hu��P:�i:����*�P��m�sA�Fszw�T��+eh���Y9k���#�����r�l�gC�p�R����T�Z�a�w{,Q���7G0��#4� qyf�9���Y;6��pg5�6K��7�n�Lfqev
�������)��cvI��q.��U���z�vd������[��6��9oD����v��������\����)���]6^5��A����oG�P�mL�Xd�)�b����9e7[��3L��d,(���L���l�q����N�m�8G��mAfh�(f���S��P�T�;��NSa��D������,��x���[�mR�Q�Y1�|��8��N�av�����(��}��ZN��h���Bf����=��N�\���=cOs�����j�*Ki#U�o�>�v�3@Y����,�j�R_
��;�u���]�����2��V���yR��o�M9��Z������8{���& ]��{z��HLy ��Y�Y;�}�#���0�
�����<�_R3{���f�=0�_ZC���0vI����5�����Y�TZy�
�sq�>�H�d+J��qK�S��+2QS0e�����Lk/)�$�Z�s�l��;72f#E�@����0$�<�*���J�`8#��d�|�\u������%c����s���,�R����:���9k��c�=�v��2�`�
)������}����a m���Wm������.l��+Q�8��Z����\�N�	*���-�r��������P�"o����T�������X�Hr���7�����2��gQ����E	����/sl�5�:�{����S��9`]��8!��d�Wn��:����Q�����`��&��gf �Z���gs����*/?Ft���_:?C�w'm9�i��7�Y(�|6�9p�&f��-5s9���������J�-��O��4�](�{d������������t{��7�w����/������=5����0*�������fg-���cj9�Q�k lCN!o27c��"�u8&����0P�N�}]:�N���t�Y��^d���d��v��������K���g4{0W9�^Y��.���L�`:;�
����������EXR���V�X��v�/����!e��t�|�h�7F�����������r@��k����'3.r&��;c�	l'Q>�S_%bnY��j�	���_d.��w�(��ro����,�D^F���E�E3����&h��z��~�C+Rto�?/{P���t�A��o������H�+lv�CY�t59U��~7EPn��P����o����:���ViRP��#�D^R�(�k������{V�1n�tDC���������s��'e
�iPt��]�� ��u���V�t;zywa����rU�6sf�&��R�%��}E���+E�J��R�����P���&k*?U�u�~���^~�_��8D�s��9���-,(�iM�n�`��7��>�m&'�X�uN�����H�e-�v[��S?Y�*���T0����U����eb�g�T�����(<w�.��G:���f:�m��M���P����L��
P�p�[�h]lI���g�E�^no�ZH�m��i��&����0��wOj�����u5,�����"G	����<)�u��M��]�� #W������;��d����R*����b�D��)��Ak�+��pvv���j37%v��:,�uaw���1Iw��+�^��plm����l�^� ��]AP��W	�Pc��E�Qrt6vB�h��v+R�n����N�]I��ge�4���P�����fm��"rn\�����;�i���p�)Nuz��i(S���XX�4gq;��
�+#{v�Ka�e�'�I��k���}N�
�e������7�|��|.L�%sn+�x"����D�����G�_�����1��odTV�{.�br<���S�cN�����;���X��Q/R�\�������"�p�n�rI���B�S�=��R�X)����J-F�!��'�H��������0�Q�U��}!���������0&�"��X��a����n����3U�k2(��
%�0+
���Ll�4�n�
8Z��|�����Cw���y������{?mH�������������������<Np�eP,vm�����V�N�����n�t�_	�k���'���
���P�q]/���]eQ���^n��@dG+�C��-��%�U����}�>����WY����KG.��@�7�]�4V�[��*����`�Of�{b�ndA���R�Z��n+���K8�����h�I��������l�
^gq2�cV���J��;�3+2kCl��1�X�A�p6�3:���{���:JNo-{8v�+�K5�u��������7$����m�����,^��drc��)i�f�\�-���w��XDT��"g#�����bo ��x�������ru��)"�9�v�.�9��u;�N�&pU	���'���w����4k�u�\�Fp���,�_p�
�
7z�9u�Yeu��LD����kl��7������"�*�������]���fq�$[z6f���-��d���q�5<2]�"�6�7YG{�WTG(Yk�W=���
E�B�M��+��tH����V\6r�h@�����>S����,�',������h
�
i����y�B4PZg]���k'd�
��QT9*<�Q�9����'s�f�Z4�V��y0��z&tW��d�9�M�=>��G�e�������i{��#�OY��+��|�F��[:��Y\�mf1������Nn�9f��g*C�\8lg�0r��*�3���|�;1=��+wQ��|�tr�&��Q��
n'�T�01�hY&��9R�����t�n���+k@��F��I��&5c��M���YSQ�������0J�D��H{8��n����nRvo�������Q��v�I�J��,K{n�u5����u&�3��`�N�F��w���������W=��5o�^�b������[��\���i�+��R!�M'�+�a��v��7i5�����Ee"�qN�=��=Z�:i>���O\[��� r�Z������k��1����������������]�����yz�;q������������7���8����3+{FN�����������B����6h���g(x��1Ss��5>���K����;�2����PP�h�?rb���M��r���CVx���re</[�����G��PkD��z�	�33��^m���}:J6usW�Zv�iVPu}�T�2�o]vh��}���G�k����Iohy9��B:����n���	���R�T]�LW���2��������U��z~��n�I�k7
.U[����������k*�=9����X��a�{�.��v�
���x�b.������#����8`��*�w!�R����f%[l(���F`������_����|_1x���<x���6Le�mv��h��5�D���lM��n�LX�q�����VB�2����<��w��oN��]��([A�$X^����t�	������V��9����V����R��������|��M�-���lxn;��T�6��.�
���8V�1N�t�r�0m���_.��y��*Zr�5t���yH������g�|2���1�9.&�CV
qh�v��\�P^�T�&�0T�+$R��J2V�j�H�b�[�����f�\�����ya�VNNeG�;�|�/�^��%���*G��.t8%q:X��P�o�N,<�b������v�v89#��W
����qO��3�v��8����0T0����a���,��Y���Y�!���G����m�v"��e�W�M��{�o��ccS�N�I��=2��/;e�t�����qjL<i��&�/��n������9�y��g;�7�wW{[I�F���9�����7n�H5��_]�z�n�=\��Vu%Y�g
i�Tf�R��/���O��Y�b�uv�
�^��7�,�I�J�5������j�����%9���C���X��Bp,�T�j������ �ht6��
�#��E��kbu�9��5\�&�fFjS�\3��)n�wM�����0��O��A�������7���L�4��������n���%�9c�h�u����7,=�Hn'��DR���j��D��&q�P..�y)���wH����bT,s�����x����NW7u�Z����RW�\���K�^h���ml ��LY�:h����RcMv1��a<�4�a���CQ�H���v�;�Ku)d��=5���1�����0k�3r����&�����E�i�F<P7���O�[�Vyh^����UK��4'Q����YK��S09w[x�V
t'��F��;j�3�X�BC���,�������f��hQ���4�|0Tw/��+�;�B(U���O�������������~���ih�u�+��9���r�t�������u	W���&E*r�{�������>��6.�o.Y
��������;��W��IHc;ng:�tc��:��Oh�z�&r=s�
Ay���K5���N�o���gq�<����
��
�Cs��*����6�HS��;gbcb���t�?j������y���U��U�44�$��7]�}A��
���t��*eY������:��D��Z%�������v�JGVki���p�5#4��gU��kn<�q�h
��Ih)e���Pm��xw�wM`�L����>��(s),b_G�������N	Y]�{(�r��X��4���{Z�Q��;m�T�������B��yK�|���sz���n�������ON:N�m
{���w�WC�-���N�;9��kM�*o��]��\����a2���U��Z�&sY���:����N	+�U��#X��/D��j��q�Yc-.�	^�������>�������j[�ut&�1%�;o������%� fQ��x�����st:�7u��*XjMkkA��M��(�n�>�B�c$�������r�����u3�q!����2�� 7�a�U�1��^C\��F�����u~�����?w�9p���w�����$�c���q�iQ_O���zw�������s?�v}��w[�����n��.��0Y���p��em�w_�YU����o��ns���M:?C��/
��\Lj��a8�n��e�",5z����R����m��g)��6�Z���[5�-��Z.�S��R�2������c��J��`ZC����]��n��X��	P>�XOn��2��h���jA���$7�U�_���?U�~O�������z�v������a���V�����w��k
�kk�!+�t�)	��y��
��fQ�5yh������J�%�Of:yr���:ot^P���eac��IK�:n�J�D��$���X����G��D��V��R�QZ^�����E�n��������}��c��Y���O�A���d�9u�����I����Q�0�4ZY������,M�	
9F����D�BS"�����T�Sr��n����Dj�h��4+��p�+��+�wkU��i����%�$I�8gCi {�s3TfE����r�*��i��:�����?w}>���'���%���f
�s��:��s��5�
gV�v�`��uqj�N�pc�������1ge��b���6���-x�h�:��'a��]��gkX�k���0�-����q�{�r�i��)\T��[��b�D��m���Qy����@.�avuX�b�F�
!n�m��de��AT�"e#�c��y-e�����M���R��o��!���2����e[���^(����&�����/q����flN��2���9�3�]R������m^������*eK{@u��-����,==�/�m���y���8Ptu^��7D��@N0y7�*���n�>��7�V����@L9��
Z��:����Y��^��`�[�7a���9�D���M�,Qr�9|�Q������u��R��);%����.Z;���Kq������bv{;:�����>{]�`n#���A�l�F����s��k�7F�I��H�z��_:�ysS]_6�_�� ��q$u$D��A��d�z��pp��������[cck����}|���}�����M3;~��}�I/��]���N�}X�50�������������Y�����g(*W=v�y���x��sl����M��{�J�y�:�������+�};b�Z����M����]��C�fW�A5s��1�XN/���#�qA�$�)����W�����>�`�kN����S|�!������yz�0D0����3YU�����s�����^o
�,��<;D�Q���vrWye���7~���G��$����*��0�a��>���_�x-U���:{i�n���R�yrO�cf�u��d�T���h_�u���V�'�V������ �8��O�b�l�{������;;�Y���@(0'@���=�J�	t���1��^n�y��W�x�"��7NP��{c��� J����g�(�Y{[����{���;b\�.�KZ��R�n��(�zYr�8���M"/���:�V[�gOBf��z�E��f��%�B�`��U�P��6�l���{�h���y�w��]�l���o���*&���<��gG�}h��yy/�em�����j��	=���`<4��������\��j���;�
�Q���0Q�x�'�p��WwT������h�?o��j��_3�8=�(o�_��#�XGx<�{T���q_�i8nMQ��:�qtz�HR|����%���N�.�n�d�w���Y�N�k �r��Q�Ov�G�`��������z��3���M�)���~�S]���r��o���E��u
(u�/����t��Z�s���1�4�4������{B!��� ��N�4���J��VN$�c�e�z�Y�z���}�A����4�9F��~Z�z��{r�L�qvp��*l�����}^������e��}��'#��i���Kh���7��`���qn�U���{]�/�T��mq��)_�y�����9������Wr#O�s�M���@�g��z��������1	n���U� F�������>u�E�K8�w��s|�.���g���9���eq�yJ<o�m{�s/������7�[�����Y����;�H!?x'����;:Y��_ hQ�!������F������eif���[~��O[���	�YC���}���yu�Q<82��f��1fd�q��V���G�&;���n�Ndt��N�F��:9Q=x���Gs#{[�������������������?������;~?�����<x����<x������>|������>|�����!2�B�a���L����5�;���������B	T�n��m��!B�f_�8�HU@���-�kr��{�A'�gtu��wZ��!A*���Bd{�����5�H$�c�s0��s���	�U$�Z�9�H%B���$�yf0�������Z���b������5����5�i�7Nq�p;m�,���zP�����U<�A*��m�nZ�=��(B!*K�6:���*U+��}JW��T��z�3l����!%JT�
ykZ���<��k��8�!BJ�<���333��(a�n��T
8�O-kZ�[�1�n0;���� �@�)G�h.������?�����~��o�
m� ����B�!B� UP*R��*I�T�)R*R��*IM%p��l��NC�<���,�0�ne��B<4�<��*� ������8���������'a���o�W73�k���s��������@G�]���cZ�c��k_�<����w5s��R��W����oH&@������OP����T�I*�!B�!B�U@���� <4u�(A'�@�=����h]�e�L�z�{�J�S�R����]��p�Nsn�J�<e���;�,Oy�A*<���!�*P�J�'����zPI���]���@8B	<Y�lf7u���x
�������$ S���4��b�D�R�(B�!@!BJ��(��_�5�;l[��c��-�kcZ�a�Kcc#"���I�`�p
-�<�J�!&I�T�)JT�.���!B�!$��yR�!B� B	<����%R�x
[�v��yk1�f�5�n0�1�n_�7\�0a�n��O
k\�9�k�*�UP�yf`&P�O<�q������t����B	Q����v�n���[�yJR��J�!!B�eB�!A*�!�b�!�G�Z�e��jO<��~���4p�m�(�eB�!B�������s��p��
ykZ������~xS�Z��<y�lg�-��www@�����<Y��d����g�wv*<��f_�;�����E�psr��J�!�]��qA�8�c���%JP���wwhA2)��kZ�5�q���������x�0�������hN�V�W��<a�m�.�����!�X�9��eB�L��kK�UP
pi�x&P�O��-c��z@U��J	a���O-kZ�����{�{��.��c\�8������6���9�q�p�v�����>}�;SD�v�)#�ZI#t�������Dn� ��4�	%��F��v�Kt
�H��Ct�I�t���h����I�O��
���U(���UUTJ�)%��R)%��2�Z�$���I$���www�}��}��}�����|��www}��}����ww�}�����|��www}��}��}�����}��}�v�w�}��}��{�������{�T����*�=�xUT�>������fe�In� �wv�R�[�H�wU*H�z=�QU2�G�2*�j���z���z&&UPTTT����
����z=��z=�UUT�G�2����m�,`�m�B�
T�R
{��5g����
�����U^������U5R�z}R*��C��W�C��J!$�$�h�����H��$[��$�[��"J��$[���D��$Z=�{�����W�G��>���G��>}�}���W�����<x���y<x���x���x������9�Bds'��i��UUs'.g.S�3�s�3��.g-��r��3��U���74�<��8�{����:�|���ec
P���������v�0/�����P��R;���7������
3����g���+n��Ov�s;��kw(l�Swf��te��*f���)b���^������r�m�v���1�c�2jd�1��1�m�c��'�ys9i��<���������MM>L�e_�'[nm���X�s��u����k����_9�����ki���!_��P�g�#���)1j	H"��O)�Q�����6V*M���L
��+M$��e57���E?��Zi�)m�`P7�)����OM{..�f7�+���������{�������1�v�ML��1X�1���c�����YZji�\�Zjiys9i��>�����ji�M��{��w8��\���w];���9x��d�������iW�*s�}Q��"�a1�{�����f��5��B^�um���
��bX�S�I}-�F��Tt���n�2�B�X�z�7�S��dU��U�}��������}���>�1�c�d��1�V1�clc�<y<i����i��|�����MM4��MM4��=�!��s�s�y����� �9kB������k2b5�'X�2���Fc��:e^6�WC����;u3�C
mJ��q���K������.T����um��`�`FQ���GM^n�}�s�:�����J����^1�c�l�51�c�c��1�Oji���ji���ji�����r�r�/��h��>������3��q R�-_�
{���R��X��VX�����oZ�q���P���{;B��H�]MR���-;hPv�6����������e�G��f*;�o}��������o/������:��w�V�+�N^;x���1�c�L���1��1�m�c��'�54��3���d�����M4��MM5������{����{�V��y��>���)���6��WM��F+wwY�q����*��\U�.)�.��B��6���sP&��8�e��O��E��=�Nj0�}�hVF^��4��L���&����]�z��c�1�&MLc�c�6�1�c�����i��VU��.g-54�SM54�SNys9{�;�$��p�Lw�Jk���f�f�S����b	'��T�����jU�
R��t Q��)cS$�n�m��n��4���]��*��*��6��	U!�&�*�x���1�c��&�1�b��cc�1���MM4��MM&��i����i����i��{!
u�^�����j����9��YL����
�W0S�q��6s++.L�/��6 l�X+]#�����QC��G���-�2�Z�v1	�dP^C����;m���X�1�c�d��1�V1�clc�<y<i����i����Y���54�i��MM4�����O��S��A���`�Hfc'�15v�Y���q}����r�&S�Z���s]'��
mc"�i��Sn�O�o�+�y�=l���dc���dOW>k�����5��sw�i����\��c�;d���c�c���1�x�x�SM54�SM54�SM54�����i�����	=�:��:��o��j��vo�������(������:$Z����e�T^��Ow6hn���LT���`UJN��MtM�8���[o;���G!���)��;��7%h�Y/N3��n��.�������2��nr�[��1{��%]��w<�6+���2fz?o�K�t�&;n.l�ON���X7v���[D4���!oMC
n�/j7���n%�0�����s=��������#�5K��M������k��94j��T���QZ��;n��/A�J^�>vu�����((A����V��Q���X.�_n��f��E$7�47�V%����qB�����K2�Coiu�������@��f�m��?G����z�;�\���N��X+vJ*���\��&�VQ��g������T"�5�s�.:����Vt�2�����l.
��y)c�y|������fww��U������������V�����z����p�t��SQ�@�N��B�n������X���+�a�������������LfWYa��rV��N�h�DdQ�77pP�(�&K��z�����K��L�������r�#�I��E�g.uY$s6L:.G���z�X7.up��,^��$(em�]|�LV��Y�������@:k $�M!�OoVb�*Y���nY�.Z�]h�ZL���_W9JC��T`s�vY�W%�� �	
5��*�p����]XD�a�VO@��e�l|��)����
�)�JO�i�$��R�6�yp���BR���Vr,hn��h�8nf��vp���l�/(Zo������O>�7��k�I�]
����Z�c��&�1��Vi�s���X%f�!��

c���5����!D�g
&3�U�O����R��nmf�=}�4�����f�lp����7.tC�w.������+2W����d:XquI}
2��#qV�v�{�4bY�P�{��t�qe�;h
���8(c�&b�}���
���l�o��1�Po3w����_~����������u�U�{'�oE���;���T~���G���}��q��d}�|�I��A���'{$Bw$C� ���CI�"k���:��x�Z*X�t�_�xVx��W K&�`�-��-���<���B�����5�i?=������{�?M��`�1n[I{oCdY6�������6�����}��wP��.�����&�L���Lr�c��U��4*vv����Lf�'c�8Jf�qv�/M�����G���1.Kz�Io��[K��;�`~Z9���;U���H��L�[��gz7,S��������OG1�P;�G�y���*4�]iSM�w/v�hf�]��b�4C����h ��D���zyPFK������;�P�ra������Y[<��{b��Z���-�:��M�����+��R��o${P��z����r�W9PK��:��Z��O7�x��M�c0
����qv/3�C�!���:�s�gg�-�~4VT�zA�E�����P3�����_�?]��uz�1.U/�$�1�x�{�����@Vv�p,�0{�_�B�_`wn�_�1�9'�n��E�����{6�^��nW�/;x}�C��V9�����3)�qZ,�d�U1D��_c���%��j��{FTA�G[�E��)]E����%Y����
��v�����5�/�L�w|=r��O���^���1�F����������]+��w��f�{wZ�����v�N��Z�}��]r���~w����S"���M\$����r��Ti-;��W2[g
�X��)�j�������x��l�N���W.�|��R^��%4��9�`�u��/g'7����
H�9�zw'���{�|=}����1.W&��������3/���>�`T��O��#yN�L��7f"�p�tmES�1��|�uz�Z/�S�d��8X����(��v��������kF����}�o��|0�l9����WbK�9��&t'����y�B��>h�X��S�;���<BZ�hF5w9�Y+�f�p�.q�]��q�w�kz:
w]:Xc��I=����4Meq�SSC0`���:�[��oY�lMhE�������=7�q;��2n�;B��,����0C����~��7���}w:�����w���5�S��>�C�H?'���>k����o���M�?�\8U�>�(�5,������O���X���W���F�4��VZpVJ����utz�����w����.�A��"�j|:��^��^�ont�/��N6{����\R��������������_���������UW���������}�e��k����[u��G;����kt?oY����hV�v���4,�����*�+n���������	%��R)%��0�mt�����$���������7����
�
�
�
�
�
�
�8*�*�,����`�
��
��
���5���1���;�hU�o����U�j��v��c*��v��7j��v��c*��wsr�v��2��c*��2��c*��2������v��7j�s���c=�s��2����<���2��c*�w2��;j�q�L5�Th��5������c��GuQ��UU�eQ��U0wuQ�v�Y��<s�u���:t�n��z��c�l�51�c�c��1�X��`�D�*��
*��"p�+�,I���H�p�'
�6�
����`�G
����p�+�,����a+��;�����H3��)&�%/�I�_������g 7y��r����f&I���kx�y��Y*W\�E\#�L�f����������������`�h��}������Y���)#vly��d�>����+����}����c����1�;y2jc�+�1�1�c�����&�V��#�Y\�I'
����$�VW0RI���d�����Nnm�s�7
�6�!���E�q$p�+�8�� �����k[�����x�����M�S�m�lz��~��Fe��%�kOK)����Y�����'T��^=����f)�x�ib�=�4�,wK��v(�n���{�S/*��Li����n��������g{������v�������1��2jc�+�1�1�c=d���	ZYZ������,+K+R8���d+K+PT�V�V��I+K+PT�V�V��������,�A��G��U}�������I��'���7�Q�&L�9X�������tR������.�v�bxn�t���yWy����m���F�`�J�<���K���5�:��%�*����4�e\�������hR6�u7��t����_�/��c�;d���c�c���1�x���������p���I9u:j
�ZYZ��ZYZ��ZYZ��ZYZ��ZYZ��ZYZ��V�V����$��q��s��p����Ig��T��������z��x�K��J
�i����;O2�.\M����f����:3��{���}q���]M���t�r��H��^����������m}y��q���F�o��y��UG������<z���>1�c��&�1�b��cc�1��Lj�Eieigq	ZYZ��F�6�smA�6F��6�����"�����,�>N�&�nm�*Eieh������O����$������f�y
��hl�y�]�=�6T�i��G��#o^��UwK�'���m���t��g�sM���x��R������U���.�Q�=��i�8S%���CW9�����Q���G��L���}����}��������_�1�v��S�1X�1���c��&5������+K+PY
���&����N]N���V�V������,IZYZ�*I��V��%iej�}�� ��>q�|�������y��]�u�|R��5a�+�i���uC�����xu��F�p#>2=Y�'s��$�kw.��<��)��;� p�Jv�L�9�|�W�v�R�\Q��6\cW
1��_�r��7�p��zY���������>���c����1�c�d��1�V1�clc�<z��D�����	4���H�,�AI%ieh|�nm���������"�����,�E�&�H�M��$nq$�M���>��A��~q�����b���4kWe��Y|
�����9�p�"�L�AS:�v�����p�����Y�)wxvJ��X\�
���m�q��f-G��X�:���z�B1��Vewu���"@��
���w�}�~��N�v���^�1�c��&�1�b��cc�1��Lj�����,�J���I���	:D�4�t�
���#���6��+K+I7��8I�6�smAQ+K+PTIZYZ���$>�������7��E��G�o������������w�lN\vI���^����������}L�{z��~mZt�p-�]����xd���=U�v������cjB� 8T�W��$���F�G�~�w���[}���������~���\�|c�1�&MLc�c�6�1�c����IZYZ����m�smAB���"����'
,�AH�,�Ad+K+PY"���H�,�A������U}���?{���,����n�-�S�4��*����ZZyL��]M��1AR�����z����!����)=s6����u6���>,�,���:�L�\Y�`��E}Ke�I�jFj*5'L����;�p���lt����/��c�;d���c�c���1�x��}���nm�,Eieix#���������"���q��	ZYZ��V�V��%iej	ZYZ����gS������_��Z���w_
�|�qIb������{�O�}
�u/��u^�F~������NelVs�U��*��-����Z�M�]M�{���e�V������Rg�]��J�l	����m�ovud�+s���x����9b9�����r�f����q���7���VS�i�:2^���j3�v�nZW2��*Hz�0�6h^�2�^���wIm�H\w����v4V�j���(����E![��
���f92D����_e��%��va����kh�c��$���i�f�m%��]-�������_\gfO�������/c������(���M��h@�����a8�#j��r�*8�,oV9G����T�
��N��3������9D�l�Y
��,���n�95C-9p�@�J�T�s#N3:s���F9��d���Ju��m�x����#�����	�0pgz01��q	(�+�V�q=�����O���Sb������2y��k����u�W%^A���V��d�cj�|e�.K���$4zN7��S:�
���I}kV�V�|�I(%��b{[�.�*��������ta����
�%sr���!\���]�4n�Tf�h��k)j�\�Y��*�'��g�����gQ�RsY�y�2�:�GK�7�US�uo7��]�����1�g�9G_N}�����+Y���0���G+;���s2iqv�W�m��2��se�1�0aF�f���X��6���80
�|���B��
=����wTb@
-�&�`�f������
�9�2�������)�6�1P�����a���Q�G5a�R���~����������M�2��{�������#n����8�]��n��|� ���# ��Y���y`T�$��ZopQZ��b�Pb������%���l�fY���v��KS�1>����^��T�v%f�G���s�]>����
��
�:
��	��uVk���eQ*�����:�@s��#h��{�O[�D���� �).7;P�q�/�{>��j��1��9��}��D��rE��2b�
����������t���qs������kc>��Q�>�����b"p����'${$H7$��A��{$�d��&��q7���\�[b�{=��s��}b�X���:e!�h���,X����4~���������#�G�&���'W4��w��h���R�f�c��vS�3cU
�����y=��V}��� *9Q�/�"����h��[���i��t�+DZ�hK����5��8p�|O����R?6��h�s�u���i���
5��lqI0�6��?/�^b�=4���n~��������_4��[*{@������jS�84��:cxh����o;����'Sa�]Y�=��kq��zP�]�X�I����v�u�!�%����+�a�K�E�r��7*������$r�qX�m�j���_iZukY�M��S}
I��9���f�jz����7d��k��p|1fY��Yg�#����W������(�@��f;D��8/r`�W�3��+:F��[�MLRg%�a[J����h�b��QM�,�}J�S���g�*{�1|�g�=��&!�~O�wW=��&�>��98����u�f^�T�9��F��8P,V*�(�et�&����b��zm-��Ol�
����:%��cd�J�aB�+y���q�y�=��'��p����gt���N�s�|VV��7c�������F�<��K�� (����:�������#�����F\�j���F�	����oq����s��We�-QV����VJ������q���=~�� ���Kku:��ud<����0P�
Q���
���\v��
t�gJ���m�M��f�Yv���':�GoK��CF��8{q���h��7���������G�����s}��;�vZ�����HQ��2����e\�������Y���D��u���wH������> ��)i�^��x�z�d�zF���]s��cj�����X��2��!��{��&W����#eT�RK����+~�'u����35�9�Pg�������k�����
���J�j����vE�aN���]����t���w������z��3�k�����Z���`���u
����i����,����b��P�7���Z�K���Y��=�{����>�����{x��@��2]Y"�[�c��l
U�������UW�|??�
�G��V����l�Eim����\�5S�6����	W�������XUj���+(9�0a�jNv�$��4�<:��)���c:������be�2=}��b���}G�}�����}��}��a�JL�IH/�����K�
�������������
��q�wu�[������gu�4+n�C�n�B�,�+n�B����*�����
�8=�s}�{wl�����(����������3���*�*�*�*�*�*�*������:k@A_�*��+����������]��c�<����Q�v�����eP�6��7j��2��7j��v��7j��2��7w7,�7i�c*��2��c*��2��c*�;���7j��v��;j��3��=�c+�n��)�c*��2�ws*��F��T�]�F���\��a��a���1��4wU�ePP��U�eSwU�mPQ�v���:t������1�c�d��1�c��p�1�c�����8�>H�����$�,�H�$�����ZYZ�,�iej'�"nm76����F��6��D�,�C�qm76����B�H7?;���?57���7��w^Nt�C��<r�rz�?��~������_����.*����'cU������#S9��A��������#�K�m]����������_t�]������W���}dz��1�c�L���1�c���1�x���>iejD�����ZYZ�(�����V�V�JIZYZ�*EiejD�����$�,�H��d�}���o���\��7�?��_�q�����&��`T��>��;e�ni���I��g]^��_a<��#��9�7%��m����#�_qF����+�uKW��`��Wl8^^���G������7���Lv���=|c�1�&Lc�1���p�1�c������"���"jR+�q"r�-,�H�6F��6��a+K+R%��,�C��6����jD������V�V�O~�C��w������y�����L�5�!����O�e�y6C�����Z	���Q$~�j<�f]��:�4�u��*W�*2f%��l��,�U��-��&B�_����;�9�]���]����b?�cn����1�v��S�1�c1��1��cD|��,�AP�,�AH�,�9�"q8�F�YZ�gEH�K+PX+K+PY$����(V�V��ZYZ�]���������O�5~�7
�����7`��:8��)�lIM�ND@�Jj�]�����Gg>����HFs�������\��3''�x�YA��\����yL�����f�ntt3�t����Q�;:������O��G��1�c�d��1�c��p�1�c���8���J��q"��\A`�9WR*�U����q��9WTJ��q$�9WXJ��q��C��|������~|�]^w�k���vj��R�����(���(���0�3t����l�����St2fR�].#h��D��r�b��h<���*�+fe+������;�esz��_T����:���W�u�s��w��[x���������c�l�51�c�1�1�c���� ��Vr� �I*�U�
��qB��\A��6���w8#hm��n �U���(�g*�"U���2}$��'�|���������(�����n��t/�����h���'��w�0ug�>���o�Of�.����6�n� ���U_,�H��S��@����)�����A+�����f�6�}�Q]���G��������>�_Q���c�;d���c�1���c��'�q�;m�[q�*�U�H�9WY$�g*�Vr� �U���5,IZ���)%Y����Vr�"M���~��G��">�����������?�w��o���������#Oo&�Vtub�����h8�q�E�{�M��n4�$��
j���V��<q*��zX��X,��]N����f��s�]�V������1����C�j����G��c�;d���c�1���c��'�q��#m����������-���U���,�J��q�IVr� �Vr� �$�9WY
��qB��\A�p#��_=�������u�������p�a\���n�e�bfY��t_9�S����n�����1�"���F����z��rn7��z'2&;���Ovd"Y���;��0���{��w����sZ��Mm#����t������1��2jc�1�c�8c�1���A�J��p:�
�$�s��Ab*�U�B��\AdJ��qI*�U�$�9WY$�9WY$�9W���!��~y�<~.�}h���o�1�Z�{?n[xGf-mS����5���!)n������Y(>���BV�������,;D��k-K��n��<���fQy0���9H�z����}{�1�c��&�1�c�<c�1�c<���&�	>Inr���I"U���(�g*�E�D�BU���)g*�
EY����Vr� �$�9WRIVr� ��s�N9u��>�?_��8�\���-|;��&N�	lPm����]�|���\�5������LU�w�Y�s���XlJ+����l�X'S�.Qu�-t{6-��b,Ur�k�`��9]00�2h���v7�vS�WV�Te�Kn��\��:�u�4�F�����gIy����tH�������e�[� �[=���%�e����=�+�aKXVw�Wj9f�<�I�&�'����WN�s{�A�X2[�l�O�����.��������de'�tS:}j�.�q-	�������x��;Y;3Z�2�H+������7��Nw~��~}�c�oq��~�k���������e�B�.�y��/�3_v�����>��}����rs�r�K��x�������IhX����p�c��y���%)m�r�d����Js������ST�U���Ks:��_"�Q[��]��|��Yr:��m|�+4x�h���M��)�	�Y�.C�gd�H�����i��1�)fu>�s��k1��y��<2]��At���h.U��rX����p�K��^�j�������.�w�q��A�
l����N�$���e��>2���W
����y��n���/�����v�]��1��2������;;hp!N�qn�:^�������x3���	��K=W�]+%-w����);���]eSl�t1�om����W.�3C��7������w\��,���u�d����[w�t��IZ;1������8[y�*�.��Cl��8*�j�ScF����E����ugrN�i��l��(�6��w2������u�=��Ve6PPl��
x�F��1��;wB��\� J������b��������ej��������*�Pe����g���h�t/6e��\1����p���c=NG2)}(����=��2�����[/`]��������f�����������h���!�e��v��,��7�Q���������N�9B�����r\�,6F��t�B��Ki���i�;���rMJ��'2�����N�g#�&����������������l�R������m�����u$��A���=������/�w���k����	e%�Z}[1g�����g�����X�&,X����zsB�g]vmw]�L����3�oK0N+�1���Z�u��Jf�MP��m������d�"�����jG��8
 ���x�J��)��[�yT���}zb��� 6y�5��=�c6Ga����Z�7l�t�-���%'������g7�d�����}�:9��
��%�(����3���������=���|��� �mv���TC\����1H��I�����2{���3-��{]�?/�;�����1�l��aT�b$�^��'y�_���(��)g(d���M���Em�f,�-����j�����|���y~����[��E����T�t�y|�}���7��+��.����!��z�\���	
3����c:�w�����(]c���:��K-�i�RG��
b�q�mfX'�o_Z@�v'�{e�L����Z�o�8��w$��d;���X2{�8�+������7�:�A���4)���t4�9�l�~����!gP�����x &U��I��wZ.�]��E�{����������������>��Uwa��8����n��������#8����\�\8K�D-��B���v����������vs
�mH�gD�����Oe���s�/)��o�0�c3�t=����r=��8�%t��<����ohGj�gL���s�X�#q��-"���\���+d���"�n��������r�@+-��jG�Z��A���3/�������/�y�'��k�.��emB����}���t�����8e[ON�I��]ZG����zZ/=X��g\���3+�M��������{�K�w����=�%{��=��jf��P��5c��I�W�u|�����K�E#�w%z��v�_C�:�<=��U�������]��fj@��.��4��P�����zH�-��a���z�$�����7vy����I+�x/K���c�!qF6��D{�A������s��M��9/(j���iX���*7;o�����@rWci���1�y����o*�N.��{����H�������=�m\�k���3F{����k����������]��8�W��kR�������]���[������7-��1�7�B�ujIN�EzBV
K�Z���[���sZ.����[��V
�X��bV=eV��/z.:7>��2����>����������������<��w�?VY`+w����wV�v�m�hV�s����
��������w]�B���>���,�����*�+n�B��
��������7���v��;�<��*�*�*�*�*�*�*�*�
�c;����������
�
�,����*��*��*��c*�v���c<������;}��X�2�wT��LcT��L�Tn��LcT����X��1�LcT��LcT�1�L�T��La�Tk��Lc�{��1���7Y���1�Lc}�ggg�}������s����j��F��T�]��]�LcTh��7M�����w2��k*�;��,`��@	$��|~?������}��1�c�d��1�c��p�1�c���8��g*�!Vr� �\��)\��(�\��(�\��(�\��N"JEW*�J�U������U��5+<�(�M�y�+�Dv�eP�#w���H��Ie4���s1B�YIf"�M�-5����^Z�]���*�n+N��r����z��H���������z��1�c�L���1�c���1�x��A�$�\��;���j���%���WT*�WY
�U�"��q���\Ad��U�v����%�G��RD�~�����_���)�)�+���"�[kr���^eG����9���{���^��	�u������������g�k9�y�M������J�Z�k^�6;���C��s~M��H��m�>�L�_�1�v��S�1�c1��1�=c��8#���qH��\AdIU����$��\A`��\Au��UU�"��qH��\Ad��U��?P��$'�����5*R��8C�"���F�i�%1A������6�?��Z.h�E]e��'\��o$�0��R�2���
�
TV���^��6��B���.��/H[Q�����������d||c�1�&MLc�1�x�1�c;z�F��������U���/4�UT�|�U[q��q���\A�r&�V�Gs�3�M��r��Y��q�Af����?��|l����	������F��N[5�`�]��)��h�F��Y
���S�*U�����@���W�V5qSXrZ�]���[���^���[�v������5�#���6���#���1��2jc�1�c�8c�1���p�8D�m�n���M���"��q��#m�n �%W*�U�������q��\��,\��;�}�������y���+���	aU�yS�e�"�l*����V�R2�Y[��a�YaV?���VZ�����.6Qp�V���3$I#���[O+������r�]�y����'����?Y�1�c��&�1�c�<c�1�c<z�w�$�m[q���\AR*�WX��U�
�U�B��qH��\AbJ�U�$��\A�I�H;���A"@?Z6��R�����'�*��q�����Cv��-��N�b��\���y��!m�Z�����5����z��{�n���kof�v��y<���5$��t�������1�c�L���1�c���1�x����|���I,URII%UT�X�UUI%�%UT�TIUT��q	*����UU$��UUI''�q�d�_<��'Y��f�^���9�<���ok[ojc}����W������=�9w��\T�z���2����n�-z�Pw[�S3�����n�"������y�w�7����dWw�|w4�q��~I$��[t�������c�l�51�c�1�1�c����$�UY#��K!*����)��I*��I,EUT�w�M��i$�URI�pm��I%B��I>�>�����G���F�^�wV�����b^�nD���������tO'2�}|��l{�d��2j������m�;���6+g����]�����C������}|��������, A�/���N�Y��-����������n�������1��2jc�1�c�8c�1���RI�	UU$�IUV��IUU$�$UUI%"��I*I*����UUI%"��I*EUT�}������"#���|����2���l��z�u_V�G'�������l��{<�������N7s����F�j./�����=����{��q*y=sYk2���c�/�>#�j2�m)�p���O/c�����%<��5�Z�<��I'��t�o������c�l�51�c�1�1�c����$�!UU$�
��$�URId���$��URIa*����UU$���I*IUV$�����8����s�\~u�������m���� ����7�Bp�eK����`F�>=���&BD56]��Zf�R;j�9D^����_gY0��(����i�=�hxn��7��k���JM�`�1�������+y5��%�=3D�c9��!LT�����%�{��-�����������a��{P�R�|kx���kv$��v�|P�n�����#��9��oX.�p��G����������Yba�������$���6�W��L��F�Om�[����SU�T�l���oG:�XW��z��6r�)�\��+vq�sN60�u�
������}#w�k�`%"����D���
�Xv�C��8�u��w���H.���x�����
�F��3����i�����V�b���ST���,��\N����T��GA���V������]u�!��f\��%�\��-��g�=T��S�����[f�:=��=\y��n��	�CnYIZ�����-�Q�P���f� ����\���������m=�����^$Hj�o�]�Rl��^�J:�DY��V�CD�LN�w�)����n����c�?_W�������E+*���������Y��.���6��o+\J`�1GY��+)�,���e����+2-�%������a�;q�+��e�SB�HrO���7F����R��)\]�@m���Ap��6��L�tc�m�eK��;Jgu��)�O����q���l��T{w(���e�aa��P�9h�av���]]��KpVP}�m��;�f���j�ymtF�
7��4�f����)(�.����y2��!��{�ChW0� �j�^��)dW���>�Skpa��r�-�F	s;@��_t�q�Za��/{�'^s%7�Q9�o�R���J�j������e`��^��D���`��j�*����te��	�B4	V�(uP������Q�@\����v�_��#��2U���}��wg���<�dv�|6k+z##�����'B^p��B��b�*�d���J�9�@q�����w�J4���q�0d�V���T�u����!�Z���2UA�A��8�8H�#��"q�_V��kI���U��m�U�uU��J�����G��>F��@S�{X��Z��_���:����=O�md�����&��j����m�k���cy�s
��g�HO,�C��[�

�[��1D���WS�9��lU+�_{FT��
�-������<�G6Z���8S��l;|y�.������mp:��L�����R���������g�r�3a0���u�G*+�(�u��;�g������Fy���f�{%�x�fIC��m���V���#�v������'� Z�Y�	H��3�������i���b~R�*�f�O��q�G�^��Vs7Ae�V�Md�W��G{��Q���b^������;�)��N6/t��#n���7*��0��(n�3!�mu)�{��}]����,��j��)�r���NW��\�(���e�(�/I����,+��ml�7��j�������3����(I�	W��L_l{Tn�������eU�S�_�5����m���MR���ts+(K�d#��7���U�#-tFbQ�;��>�x6��j����i��'Zg��^�<D��(�
�fK���i�J���[��u��4����	�O
�&��T��K9��z�\����K����>�7�
0�wo��#��G�R��5y.�6���=U�^m��0����B&�b���#��V%Sr�hc�F�Z9v�� ���]��N�Z��p��N��K�2&�b
=���{]���$��R�������mn�����B�B��A�^��o��~���u����c�i�'3��;����X�ki�	\�=��/6�������-�Z��5�����8�]���m� &�zz��yya�c�4���u�dN`��|F�#���a�^�n��=��
�{���6���G����/\���E�
3��'U��"U�i1s������c`�?l'��_����q�V��g�d#����c�2��r�A��6m����	/n�����5�,���1]2S��"��70���Z������t�\�z)]��}]������b���������*q��{���=g��Cn���]n|�g!k��Z	�f�V�P��!���
�|K}M1cv��5wr��NAB�-�s���������;�:n��'l�V�	�vJ�+������������_���)#��,m�	�0�u�X����b�Zn`[��V7���V%s1�����2�gtP�������<4�e����	pKaU���<����=I�����3�26u^z����uD}�#�����������������}��=����W����~�p,�7um�hV�v�m�8�������
��:��u�4+n�C�n�B�,�+n�B����*�����
�8=�s}�{wl�����(����������3���*�*�*�*�*�*�*�*�*�,����
��
��
��
���7X��1���;��
�\���}c���mSn�1�eSwU0wuQ�n�1�eSn�nY`n��U1�eSn�1�eS�U0wuSn�1��Q�v�1�g��{��W�0�g�S�U1�eQ��U;��s����j��F��T�]��]�LcTh��7M������2��k*�;�I��.I$�2����~?����^��c��&8c�1�c1�c��c�W�NUdJ��RJ����6�m��UUdJ���I6�m�EUU�*���"� ���_�f����7��{���;�1���M!�u^�.�z,���d�;��VR76����E{�7��L�sw�S���Y������y�<u��nd�<�������Q\eF�����^�]7OOQ15W�VW�k���}�~�>������������1�c&L���c�1�p�1�c�1�O��U����UUTJ��a*���UV����M��k$�USd�U*����~��}?*e��e\C��Gw�em�������/�v�d��oU>VhCv�a�����#�{Y�PSsX�e���g��]�:�������^�����=�uY��_#:�}uU}
��������~����_�G��1�c2d�c�1�c�1�c��|����s8IZUu7�m��*��EUU���UUY����U_����}_�U}��������O�w�G��Em��t�p���f�����6��^��"��w�.^R�������kj�d7A���Y5�(U��UuwzXs*��)��y������������������������1��2c�1�c�1��1�X�>$UUT���*��%UW�$�m��%UU����UV��L�N�����_����s��S����^][���o���[d�
VI�IM�&��-!Y�1hs�s���]���e��`�w�vCqWt����a.JVi�f�[�en����W�\�{�=�����}���}�_����^���c�2d���1�c�c�=c�!UUR*��*������j�UUa*��U]m
��j�UV}�$��"#���y�#��f�o�{���f��N��NG����$�vZ�w@���Z5��b=5zM���-���)����+%����k����u�c��g�������G[6��T�=������p��_}_�7N�1���=|c�1�&Lp�1�c�8c�1���J��	UUD���%UU�*��UVH���EUU����@�$'w�x�\o���u�Y��������6�r���2�����zju���������7?�	�����G}�e�a�jW�15���G������md�/���5���d�tM������[=;Q6����������>�O����1��2c�1�c�1��1�X�>$�UT�����$�m��*��%UWN�$���KUUD���������H~���y�g��y���s�,��o<���==������{s���������u�n�G7�X��k��2�zn�����(����4�?Y&����Z����4����������e������vw������>�������1��2c�1�c�1��1�X�5>I$�*�UVB����m��Y
���UUD���6&�m����� �$�5�>��������yw���u����A���M����L�*���-�"����L���
f�5���i&s[���{cw*�<�t����I����u���g}���>1��������c�L�1��1�c��c��c$J��UUQ*��UU"���UU|�Cm���UTJ��~�#��o��p?�����f��b:~��#�a1#g"t��f]u�};{��������{�U�7}(�w�bk���\T[�]�oL�y����[�#�Wk5�B��6�)4�"|v����������1��2c�1�c�1��1�X�>H�UT��������UT����UU�%UU���QU_?������
K����0+G�d�t,��G�O;c��B}`����r�>����*
�[A��K7��XD0����r�Gs������RN�Z��>Y�]smr{]��pd�(���\�k6�~��Q�C�RE�CyJ��t�wY���}�1�U�K�� ��m�h	��mn��u���=����$����]I�������6k����~����g^T��n�_'����O��j&q�/oe������'3s��7(�qn�1��@($)�����"�\���U�X������o"_f��
h�����[ R[iZ1�U�A��k�fg 	T�47�0���|q����
�*��=�������2H.��]��*L B�U��Zn�fr�	����l�1Z�Y����n\ -�77V8��RST�F��a��(�u��+n��Z��w�7��[��V�9�j*))s����$��K�A�*�L�Qh�����N;3#{:y*�W�=]��v�����q�����Kx�3�MV�.!S'FL���K��nnH�#u}]r�8�����{�V���o�����=.�Y����Jen��oY�d",��t�JZ9k�&c��nZ���AFF�%8.�	����m��p9���5�u�'�`It�\m<���N�V������Sp��F^b�����k�����V�?h0+9�:�Z�y��u��kA/���uh�4!��4v���v3���W8��Vv������qr"%|��]+��f4�d���9�"E��Im��,���p�F�c���s&������o}�<�}�d��Pf�]��_Ce�l�[�Z!�f�$�ku����wc���\}�LbG�6#K8!;�v�����m�B��8w)�����,����d)ot�	B�2l��]4{8�r��ulp��;��7L����5�pQ	�v���t�]�{@
�������Zi#QS1w-�:CTt����2�((Cu����,J��4T9Z2���Wg������tT5�zHJ�j]s-u�0���j�Uk�NV�8�����4�D	�\�����)���V���D� ;!X��Y:����D��_#2������
�x��]������D��f����Xw�q�����_7���� ��}I��jmi�jl��Zm��V��A��y$$d�.��y�������{�D}��i�q��L��x`;���AE�{q8����l{KJ`�����K+ �����EN������_ms7t���{��e��]L���a1�������vR��p����:��P���T������o�\P���m���x"69����t�3����6�0���2��O�O�
B��r2�\�{,���L�Hqp�u�����\N'��	�Xr�����v��<���������|*�i�Y��[���6����J��
�+���r
��2\�
T�?f8���t����x7,�KD�<�dz��d�Z�S������%�JpFj���N��F�(��*k]�������pw4�i����T�$����V�C�z{|��;#�qW�J�����]+�+������?]o�~E��ou,�����l�\����yT'���:���4m�H�S5���^�=;��dy���jZN�.����w2���J��nG�,Z�tM:��0��Z�L� ���
|�!�3���e�{�������=�}S'���_B����@t�{�s��NTN��s�pv��i��U�]*f����{�������m=;g_�V)T�H��x�w+<�\��2�W�v�b��1Z�#��r��"�,^"	%���^k>,����=[��Mi6���h(��R�b���2�{����~;��������x�����{*�n����>�}0�S��4=�non�������V}@���=E����	�����_Z.��ce�
[�M�C�;�����h��F[��*=�Q`���=W�f7VO6�M��i��.�;��\Y�+Od�����ZV�9W��kqP6,��W��F��SN��mW�~;%J���_+m@WU�{�5c�����"�o�f��
���-n��������G��T�*[[�
��S�J���pGx����o��n��2�;E�������P��c\�%H/�+�L���n�j�<�r��{7	�Z�r���s���se�+s
���Y��C���c-^����t�|)X}iQ�>n���W�`�K=����6����:��v'�S�rJ���8�N�
^�o������]��>�o�'��_DD}����G��U���si�a�?��F����5P[z�.��Tns+P�W������0���7�LG�����Ra����d��|^�y>^Gsb}>�U���V���RP�5_W����}>�{��~���0����1�_���e�����/���[u��]�[u�:�kt+v�Cw6����wM
���������,
�������
�8+i�tp{�����nYy�w�PPPPPPPPP��gwUUUUUUUUUUYe��ATATATCTn��Lc��ww�F������1�C���0��c
����`���t��c��0����i���1�LcT��LcT�1�L�T��La�Tk��Lc�{��1���7Y���1�LcTk��F���\��a���
�\��a���;����2���Tn��C�U�eQ��UU��$�H�~��~?���}���y�c�L�1��1�c��c��c�UUu7��mdJ���I��mF��m�������UVD����!��m�����H�����G���~��?�w����3s��z��2��f�;��e\���y%
�V�T��U�,�Q�4���w���^s�u
�������$�����\x6�&�����5�{�Z������!��n������1�c��&8c�1�c1�c��c��UU"���UUa*��%UW��m���$�m��IUUb*���d�>����5����)~U�4t&���W&dJT���q$�0����NnS�*I;���N��]L�t�L����T2K���}�VU�X"��q���vP
�aS#��{9��c���jj�g%��>�>��������G��c�2d���1�c�c�=c�$�UVI*���UUT*��$���m$�m��"���UV"����}_}�UU}_����.�o������83��)P�yU��l��i�unu]p�q���B���0V�����;���,!�L�����UG{*��^�.cUU�:_j��&��l�Lb4
ff�IB��U_�����~�}{�1�c��&8c�1�c1�c��c����J��EUU�IUU�m$�m�����%�+J�$J���*���D}���DG������z��7'����{��v�svw��n����zk�y������v#|���������Z��t�6��W4�����wv����o���o��S����}Q����^Gv�9�Y{U���"?����>��}}{�1�c��&8c�1�c1�c��c�$���UUT*��U_6F�m�����UUQ*���m������"#����7����?�o�?����{�������g+
����6��*-��O(����-������V_�=���S����_&Ar���G�e���K�7b���&n,����t2qu�K8>#+m���U}��.��������c�L�1��1�c��c��cS�F�r���UU"���UUH���UUT*���l���kUU�u?i��'��������g���w�_�d�~����N��N�3<���n�g������\���f�U�]"z����}�b�j�LD;k����T2V�����r�h�X�Q�r����d���n�w�������t������1�c��&8c�1�c1�c��c�UUX�UU`���UT*���*���*���6�m�%UW�$~�H�_8�{���?:��~�����`
Kk�hve���N��a�{��u��z7k�rr*����VGVl���7���a��1W����D�^�Tl�+��
Hn�B�^^&b�"�0G-�;�'��6��������1�c&L���c�1�p�1�c�1��UVI%UW���m��$�m����U����UUY���UU� ~��^y8���>No�����T��k��[w�D����RX�!��l��ww���r��7���:�o2��F�b��,x����k��|[oW��������o�{#���1�������1��2c�1�c�1��1�X�>��6�m�$���UUB��{Cm���UUXJ��	UURJ�����#����_����{Q�����
�ns����gn������I��u�>�z��wk�*=����d�,�
U��/3,��R�6A��ou��w���������#�>����g��}������c�2d���1�c�c�=c�	UUD���UVI*���UUB���*������J��3����'��5pm��3QX7w6����Fj
�[����	a*�BV���S�U�C�w\F��������
��_f&��wd��
w��X^�w��]�n=;(F�k~{g9���:xR�/�`
�MW$�����]z�	�.�g�����*�;?5��_��5�X����y����f�K��m��M�y}A�$9�F��.�F���W����zM�������0��	���,a���t���s�>��4H�\T����c�@[�0X�M�r�mM���aYu�8���c����)����i����h5� �4����{��`�a0���m(���5������r�A7�5��{��d9����83��c���5RYP`0m��_]��M\}9��_B��'RRp��������#���L�muuEW�;DW��t�UO��^2�l>�
OT�e��@7B�c�*��� �+r����fts�!��d������w�?_������z����\��}�
��
Oo��u`b�Z!o��3�,w.���M3��
�fP��39�v����@[fM[][��Jk��`9�����{fY����<�Z��{5�S
4�{�m�-�����H��<��n���7s1���>��D%{���{no���Y�c+�O^��M�y��bQ
�A�ccUgvTF�����aus����b8u�D���xR{�B=�o_Wq�-W�H��.��J�R�K�rvED�-��*�d����?#S��fh���3Z���lMjw��a�%th���a�����v��}��QWr�	��D�����;�y2�]����0�e�����v;�ftS��Z�Y9�^��#�6���Y!�������]hv$X�p�9�A���"�OJ����}
���;~y���m�\���3]Hj�N���90�	G��������9/-��e����+"�k%f���yeRz(��\�)*���6G�7�{�)���a�0CI������5��oW����h2D�`����{��K�.<\W���W`zw���(�l	7^t��^3/5U�� �H<��"{	��$�N�pN$���y$$$�;���s+�-�����������[��u>�6�[�:
���}�j'��q&�=��$-v����^�`�����/]�6��K��5���$�\�����o��j���u�\��T2l���K�7�.�{����1s�{�1K!�#`���%�xk5�l2�#���+2�����gV�!����r�`~���L�V4�"���sz���%�������nC�c�y�Z����-�l�ln[�o���p�D���<���i����Dy�D���_�e����!�N��&�A���l����	�<��#Yu��*��`��{���l ��nP+l]C�]�\>��=���I1����f�jh2���P�����n1-���Ak�X��,���������C�f�lPX=CUf���r���B[��V6����X�Ro��\�}W���B��nf�U�}����>�����{JxR��j35�x�=8h|0��Ml��q]6����`��xJ`>��X��};d����\�@����aP�l) ��Q�FW�S������{�v���c�=
+�c����v����vvD��� �T�l�H�������AY�.R�S�[	�����G��]�,�������:��,�����.T5�:J�\��&�9��vz�����\A���+W�������&���5���pLt��������xxq�����]��-����/�����0����L �[����F]����8��01�����8�h`�<�hz���~!�������?m�[�����i�����n�
���z����/�r��v[]r����C��#�p�k��h�KS���s�����������znmif�z���"�"l���D�G!��OqD�3��-3�!��O��P~��=�'���?
<�:Z��V�9��b��Q����5�����e�\lp�nJ�����s"��+�9\�z��n���K��v��/nr�|�A~��S�w2m�K_#�`$�
yZ��@�g�\
P���|���t�}��g��:�l��+[%�����b�fq�?3���������oVw���!�$�{������b��5��~v��rP�A��2�����S`0&ho��5�VT���m�~��pZZ�2��F���e�`�WqI�����OL�m�y�G���o��|��������{}���}����ye���=������]�[u��\��v�B�+t7sl�;]�t�������,�����
�
���������WG��o��f���wpy�UUUUUUUU��wuPPPPPPPPPP�Y��TATATAT1�F�T�1�y�v��Tk�����cT;��c
��0��a�����a���1��c
���&��LcT�1�La�T�1�LcT���La�T��F��T�1�����^x�u�yLcT�1�F�YTh��5������a���������7j��F�T8uQ��U��PQ�v�U�o����??���N��z��V1�d����1�c1�i�c���$IUUR*��UUY"UUTIUU�"J��U"���UVD���$>�7����\w��K�{�������T�?^�+2K��(���9DV��U��h���2#e�~�)=���Z��b���#��
K+x���'����^kqX���1J�G�_�_}����<c������b��c&�Lp�1�c��cLc��v��UU`���UUTIUUd�UUXIUUI%UU����$�����I>�~��z�������:������Vv���y�gd�3�}L��.�{c�j%y�2��27�2k2s=�T�6m�7�fw���d+}�����d{;���v�f[�������.���Z.���5���O���w�����E�G��������?^�>1��1���1��1�c�1�1�c�1���UUB����m���UU`���UUT�UUR*���npm��u�'�D���~Ow5��x�����������;F��Z�j�k//�rf���e��;��u
��@����.�Z���m�7s1���&�e
���a�v
�YW���
T�kV�����<��2���}��������k�5������?�.�m������1X�1�s&8c�1�x�1�1�z�;|�*���J��$���J��X�ZUoi$�m��UUT���!UU�~~�!��������g~k��q�S&U�fO���J��^9���
�D+��]�y3.R�6v�1��*kgV���Y�p7y�o1!S^CB��y};��a���[��=����#�������b����}[����� �cz����������/�������1X�1�s&8c�1�x�1�1�z�;|����UUb*��x�I6�m�I*��UU����UT����?RA����N:�����\��'�+![N�fB]6�-!f���u���V!,�0������$B{���K�N����nr���vu/��.���Oj=su���o�������Y����;P���c7��bA��fq��><Uc������1X�1�s&8c�1�x�1�1�z�;|$�UT%UWSh�m���J���*�����m��$�U[��M��k$���a!�H=��dbg��[���^t�Wu�5!�*]���6���33��GV��'��#�ml��+���w:+Y��������5�F{�}���Wo=���n��j�j7�R����<�����o���u���z+=1-�w��+?X���V1�d����1�c1�i�c��� �UT%UW{m��T�UUR%UUUURIUVK	*��$���}�H}�z��~|�����>�6]t����[��17Jd�c�;j���K��z"�Kf��h�w���AZH6VJ�/g�����w2b~�B������On��Y���#�z�f;�
���N�{�N������N�����������1X�1�s&8c�1�x�1�1�z�;|�%UW�"�#m6�&��m����6�m�`�*�U]�m��UUX*���?�U��~���m+��?�s?C)�6�6�r����:�w��#{*��ut\O��������{���ovM{X��j�j�J;��Y*l����LX����L=�}y��|k��>1��?X���+�2nd�c�1��4�1�X�o�����UUd�UUI%UUD�U]���m���J��J�J���UU��?RH?RC�������]����&n�J�L�4���o,�h`��e���4l����@��+"��Ym��"sNRh9�3vU�O)5�;l��E{n2�����H�v�7:{�z�z�����w�5y��s9H������}|||c�c72c�1�c��cc��c���UUY"UUY"UUYUUQ%UW
$��T*��������~s���~�
���H����?9V���u�a��+n��X�%v5X�5p��M�������^�C���e�=�JyYW��%[��C3���O�y_�5,���i���A����L�F�n��+�x��	uI�R)�����$�tC4�K�3�����0��F�M�/AO�2X�$�L���5��ryn�4)�����;4�0��z3�v�.���`
V�P_r��8ZU�����u�f<8���IkQ��c	�y[�S"���3�*��������&E��0;�M���f�.2�yue���Q2�_a�(��H���u�e�?�w�P���qp-����.��wtLclh�2�X*��|\�a�l2��i��s�s���r��e�'��j��VW}hJP�����0���������p�j��k�T�8�^=r���ox�c�-�a�:��!��k(�A(I;�,�����!���G 9�2���;�`+$��K�
�Z4:*,��Q����*w\��"��yh*����F
K�
�|�[6��
�����:(j�����=��8����f����9K��&���n}��Z��{��L���n]��/d�����X��d�CIK7��l�a:������E�������6�{/�\�R���k���\�d���L:�`�rg+�fVK|���Y'K�����Cr�C��H�k�b�H{�S���o
�����<�22�k'Z�Z�GV������X=(6r�������4�\���u�:�k�	��2��d��L�l.b\�:
"������ y�����
-oLbi2�7$��(����p�R,����wlS�omX�4J�w��uEm�pR
�=�w�
��qj�`T2K�%N�k&������N��6�����H
�K�g]�h-)����^d��@w��-j���+6���/nf���X�cS6]1D�w�<�`�D�S����;j�(��[��%Q:��������5�
�3�x�T,3��4�v�x)�s�k�M�C�����mA�v����&M�9����Or�st;�8���H;�������"L�l������[5���6�$$����:���Z�����uy��������X��#o��/d��cj52��dR����w��=�*����g�A�a��,ZfHy����*z6�_x����6�*3�;���>����_�hW7A<�X}!MoF��������!\p�m�8kzd�:�q������{��,5�
��6��7�0_�3+�������2:p����D������M\�SZ�+�����<��^+��D���HzZ�2[7ZC>�Q�����vu�>Q���Hg��EJ���_�E��Wx�u�]L��y�:Df���=S�om5���^��,�������*z=���������"=g�r�>���~�:�,o#�M�����sk+l�|e�O&�d���CF�v�;(ErY`�(k��z{.���m�w���:�:<
���_����+�u��U�FP{���.2�9R7��Ef&��N��!�������N��nV�}5^+My�n�l}2	jQ�%���KM��o�yJ�A�B����v�^!^��>�~�W��-��y��c�.o
\��bHf�������vT=��*V�-�����N_Ne[���T�\zP�E�����C��<�gX��]����j����
n�a���9���W������ w���b���B��zPx��^R����|j�
����+x�����;J���1E&�Y���/��f_���Z���_�C�P�c������8j�k)Q��[6�*@;-��A���
�0�w���Wb��.x,ngm6F�������}^g��o���Q�{������S�:|�Z��n*=��1���4���l���L��������N�
��(��r�&�i�;����si9�����U�;r+�V����b�<�Q����F�3��3@����E8����m�E�M���iU�:wE^�����`uyj����1�����{5`�<��D�!hL]�=�����FnW�)6����L��w���V�]]�KIoEyQ����~�{�i��4�toO��_^{����m>��h^��������~����6�/�[}�������UW�|����'�~�HH���rI��������Q;���72�}�����������s������(�+��*�9�]�Vwvd�������eV����w�����������d�gg������}�w��}�w��0�A#wx�I��w�K��k�$�����]�[u��\��v�B�+t776���v���]�[u��e�[u�@�[�WGm;���s��{���/<������������75����
�
�
�
�
�
�
�
�
�,����PUPUPUP�U��S�y����Q�v�����eQ�v�0wuSn�0�mSwU0wuS�U1�����a���1�LcT�1�LcT�1�C�U1��Sn��mS�{����ey�
�y�1�eS�U�eQ����;j�k����;j�k�sGwU1��PQ��UTn��F��TTk��@F���~:t���O^�z�+�2nd�c�1��4�1�X�o�J��$�UUQ������l�M��k������*���*����A�}��u��u7�.��U7l���loD��s�kQ~������G/f/��o�
���wq�����8�9D��qf5��<���BJ�"��/2����gjd����������[����<���;~>����V1�d����1�c1�i�c���"%UUUUX�UUb%UU�IUU���&�r�Y"UUYUUQ%UW�H}�|����O�NRiU�D'���<�6���R�3VZh��7��������]��:�bGH*2��m#���R�{D]�o[2��B�D�lR*��_v�wy�������Kjn�D_w����}z���+�2nd�c�1��4�1�X�o�UV"���UUy6I��mbJ��Y"��������KUU�m����>�7����������z��_���:��=��F�=��������9=��y1qs���D���
������d]SH���-�W��X��T�B������ 
.���Ve&�V~6��7���N��o}�O�6�������b��c&�Lp�1�c��cLc��v��m��~M���mQ*��'��m��J��	UU�M�m��~I7��mQ*��"eW�|���Q=�*�����������n
U���u��c7uyBR^�����4��[`'���%����Gu�Qm��Y����%�#s$�X@��O8L�-�xT�xR�W�-�f}U_��c���=|c�c72c�1�c��cc��c�����&m��nD�UVD�UVH�UVI%UVnCm���UUQ*����A�8��w�S�w�w�]q�n�8���B�S�]����
�0��T^�>�k����^!��(Y�'zs���4�"�U
������AX�Tspd�B���2Z.�[Y�]���q$�m�L~>����V1�d����1�c1�i�c������I*��%UU$���%UUEUUIUUQUUbUU���$�2|�=�s�����oD/���x����1^r��W..
7e��ys 1�5Z3z�6{��w�����u�s���=����2���7��P#3YqFS�K�'�k�O��l~>�=|c�c72c�1�c��cc��c������&�m�$s\*�J���UU������*�IUU�l�m����!�H;�<���<c)���X?�3D.a��r~��n1V�mKW�F�d��j�B�Z}w�=���Fz�{'l'+�V��y�R/�.2e�Y��v�651�����rM�A�s���m7�k�����������z��+�2nd�c�1��4�1�X�o�%UU�UUQ*��%UUH���$����������UU���UU}_�U}���x?5��
�V�<��4Z
6�E��ZK�h��6[�C�����WwJ�S����{}�/�uO�~R��g/�������{z{���w]T�
�cT�1�Z���Y�����B�����H����~>����V1�d����1�c1�i�c���"J��$�UU$������UUQ*���$�m��%UU�UU��B>���ul��q������w��$^�����������5)1/p�(��n��b�=PP'�R�u[5��8���Dd���X�k5`'�]-�{������3z���E^�7��z����[��\]y���D����n���z��+�2nd�c�1��4�1�X�o��UTJ��EUV����mbJ��UUTJ����M��j�UUSw�������y���������=9���v3{�����������b�X�����M��j^�#��t�X�)�XdlX0����&P.+�^_[�r1et��)����0�����rNm��&o"�`��>]�Mh��Z�!�7(�N<�����wD���0����,��s\��E�����[���t�p�ZF���\���&n�H�z?3{�3b}�wYUI��d�S[Q�RN^Y)��FLS��I��`�PpI0�n��7�A��$��oNW#4�7��	�T�W#�����e!G95�0����������x�n���W�(-A�/(�����J�#|�14wc�O6���;Wd���t72�;%gL~��qO]�g^�o]��wy���P����8�o��d|���zA�W3���X;�U���������Qb�=���1������/����j������$XgZ�ZnY������k���(k�,�<�$�K�[RU�I���vnBK��=���xs�:
�������p�5�[���Q<�����"c�w��n}�Y~�_��b{r����=��������1�'`�Fj��r�j���iN�dL�����{�L����	�7D�n����6����)��Ah�J����f�cV`����tY�����0q<zd1�J]�N�R�e������L>zC����0V����`��QlD�9J��7��L�����w���X��w�+�=��t)Wy��	`���JZ�o�����he�=&;�����:V��,8o�vi8\�z��;�{]Gn����|Yc(����@��w�K.Q�(�:'3L}evk7�E�U���VnG�5>xq[���l$v��1"��n\����y-��z�m��9}`�@q�sbMc����$4%��wRG�N�G�l��HAp����7���
,�������I���]� -Z����"bba���N/1��9o������/��q��wJi���� �.��K.�����fd-���(,f��'(�Q�%_]�1+�9T��u#�=��
X:�5���(�'�hJ��$��I�
�~'�U��ZVmW��IV�������}���=��_�*���/��?�����u	p���gr��3	mS4�g$+��8m�|�u�be��l��{<L8�����1��:����Q�F��h�����o �r��*��F��(������S��,f�������������34+��y�7���u��D��K<����oG�(�V����;�4�!{fv�[u[�>���$L����q3���Ku�w�P��.�!�$�,�OGJ���'V������g�(	Y&��oa'��o�o�n����I��z��f��C�"<����%��Q�g����\*�irVoV��`�YD���3`!%���R�w�&����6����r�����&���*���_W"]��������X�E������2M�CDQPj]��'��c�������n�������p�^p�����v���S�k�e�|���"�lS0<�W]�1��dx��W���u���{p���T�p8��GSKk7�+��f��^8l�����U�I�u����B�1=���3�|�{��#�u9��R�s�����U�h(������� ����lb�������=-J��`������z��+���@=�b��:9���<����M= ���X�v��Ks�e�����O`x{9]�1��aS^��p\�+(G�����f ��)!�F�D5
Z�����F���v/�'���En�9��F���G�����]���!jr�kr���%�����j��Z�/1��v���mc��wU��d>	�!�.���N)��f�������zxgJ��Yf��c ���	�Z����s$��z�]L�i��o�rJ�������1Nn��������*��4,=�-�ut��J0�^��F]����*�Rh�������:��)�����^�O7�3���z�ktz����G��Z���s���vp���K���y����b�G���gKWCMs}X9@��e�*��eJ����~�py1
��o��������{:���nD���>����">�������uy��vO�zmdn�8�lN���2���������f����{�7;w��:9{���/�+�R�g}������t�Jg������%����"�#ki�2}W�R��k�w��LDG��~��}������G����Zw�����;�W��n��>��1�����+n�B���un��Yen�����v���B���+n�B�l�+n�B��kt*����pU���{��{��^x��TTTTTTTTn��TTTTTTTTTTe�wu��
��
��
����t��c�<�;|��5��}��1��5�����c
����`�����c��0�����;v��2��c*��2��c*��2�p��0��c
��\��c�s�����<a��<�1��c��u��4wU�mS
v�U�mQ�v�h���0���7X������2��7j�*��@F��������?��O^�z���z�2nd�1�m�c�cLc��v����%UU���
��EUU����UUY��&�6�m��"J�������������b�.c��m�;('[e����A�������H�N�p+����c�����w��Je�����3���^�����K�X��[��Y��$�xqRP�3J6��fA�v���?X�����z�2nd�1�m�c�cLc��v�������"������dUr�UURJ���UUX�UZ��� �$��|e��6�Z����7�=����U�s�M^��i�{`������[{��������l�E)9>����d��]g����l���w{������Oa{|����#�M���y]��k�c�.������|�}w);v����������U��1�s&1�clc�cc��c��UUXJ���UUdJ��UUnnF�m�%UW��m�����M���:"d�������������������7�����i){9���=[�s;�:���U������FV�vVt�������{z�-��z{�wxk��r����i�y��=<RI����3�{��Vv���=Ff��{�9���n���^�>=z�^����1�cc�c��=c�
�����UV*��UU*��%UU����U_d#��U}�����Z�2�~H����������q}���������F�}V��dW�:��_�6�#�"�$���z�!���rbz.
�B0��Z�F��T��p3[;s"���/6��5~������V����k����������#���|t�}c���U��1�s&1�clc�cc��c��*��%UW��$�m��IUU����md������t����UUdUUnBd������?WY�
�?���=7�J���yf������S��{�����tnMF�r�6��d���M�E�1��{�q���G�W������;�9��Z�9����v��E]�g�>�����Ow�U��F��g��������||z�^�c72c�6�1��1�1�z�;w>$�m��UU�UUY���%UU�J���������UW�� ������U��&�����F�U5�����&��������U�{����Tg{&���:��#���E���#k�YS���&�J����.����$+��u�D]��6�;���RjS(�>��������>���W�X�M���1���b��i�c���������m�$���UT�����&�m�EUU%UU%UV}Bd�9���1?�7~���[�H�U
V�@������,r�T��h����
���3kP1?�f���_������*����twW��2����Y��N;�����<|c���=z�^����1�cc�c��=c�"UUT�������UUd���UU}��m��������'Q�$���s���q�7��ur�*��4i
��%�*F�iIU���V��F:�p�#��f���\�xh������~:�z��z��W��lLL����[�;o�=����}�o����������������z��d���c��+���1���$����6�m��UU$���������UU�UUJ������g���|�r��Y�-1]
�6���wn�H�����=WY��m���T������r�;n�`l���z�D�&��I�Z��.�~ju���|p�r���}c����������1�1�V1�1�c�1���U��UUT���UU�����I��ma*���UUI*���'5���[�rk����y��y��;9�s��2��HJ�Z��t=��+�����:���;N�t�C�	�-\���t+D%v�����KXQ�X���%��7�M#�`����M)�&�S�n������v���
�\�cl��v�W7d,hYY�M���I]Y���,�r�/a�@!DX��r�����k1����������9�K5v�W�R&�e����@������8��n15D:������NWt���"���[��&X�6���Km�X���3��.��+����c#@h�=h���*f���E,���������[+E���8�K$�Y�����0=�ZZf���0���Pt��"B�b
0�:���!2�[���S`+v�G{���z�5��r�[���{i��z�����1�9�qN���� �<�x��s�Mv��!cp
�Kj��M��sz����,e����
&EfU�a�x�����q����s0���g~�\z����3���oa��lEs���W�����2���n���W�V'n��6����Mu{�������{�����r��u4�k�F��il�`1_g$��\�uAXm�/!�Kq[�as9qO��vc����G�K�h@��#� ���}s�*6��m�<����i�R��v+��!��������*7o31O�A����o�h���8�w����%����0v�:'��dz�g:�}
�������j�>��;���!��}Wd�����?~��?�L~��������������t������z;����U��rn����t�jIG
:��h8nQ��@`���(�4��Ph=��s9��u^�k����Lr��f�^>6����y��\~���y��Q��M���uN�����Vu��5GES��Kt�|7�p���6�L;i�@����C������sa�n����}qY�'������	<��R7��Rr;����J�-�y����H�n����'-�Jn��VMOD|�;�Y#�	��@"�����%����{�g^IIrA��u$$�~j��ZT�f��Z��i*��U}�U��k����^���$��Hm'\t����]�������{��i��:��=��Md\�e���36�+x��,�����X�0�gh�w��f��e��gp{��vF{��!���2�|��#����x}O�k�����Y�u7�I�7�{/�j"����A.B7�9sB�k����v&��)���@���3�Z�	=W������sT��e��r����]o���/+����|���}��;W0V�_��2��ulN�l:o�x�4��V������<yR#z����
�u�J�E�����I�������zc��%���+�����Y=�\�Q��m��l�Tc�6��Wb:o��@��4���zA���3;�Z�z�s����.��%�f-L���[S�seX|$����0o)r����]>�q:�lS���"��n����S;$�y��.WS��t)���m���2"V���C��sZV��`Yx�]�)�8��16E_*Q.U=;=�g�6kn����-����0v�C(���5l�}�������k�2��v�(XR��S<���������������>{�6��������4j�����9Z�[|t�82���+0�J��iH*��������aM<�,9f�5�-���wq�Jn�P�f��(2���Z�����.}M������z�c�'z4�������;��Y��������n��m���,���y�1rf�7#���{Xs��L�a�f=��8��]�����|�F�/��R���`{�����)M��4U�nc�O%������mAs%s�p����}e���w��x��c�i�V�{������V�n	��2iJ[W�����}}�P}�vsP���dOi���;<���Vou���>�C8����H3*t��p4y��b���%u����8����{Y���ve_�An�i�=6
T��t��}�B5��wk�nbC)A��d�{As���Q����y%%L2g����;��*���o3h^�tD�M���A	�yb��Dk�(���5g���_W����������x8-��Qh~��c*�7�C���k�w��`d�8����id �a��INL���^���xn��od�w������Y�`��W�����>����*���b	��H�+��]]_e�_���[u��]�[u��[�e]���gY��wM
������
�����pUV�n�]tpU���{��{��^x��TTTTTTTTn��TTTTTTTTTTe�om��
��
��
����t��c�<�;|��5��}��1��5�����c
����`�����c��0�����;v��2��c*��2��c*��2�p����`���\��c�s�����<7X�<�1��c��u��4wU�eQ�v�U�mQ�v�8wU1��PQ��UTn��F��TTh���7�s�6�m�t����^�W�X�M���1���b��i�c�����*�%UW[I6�m���������m��K%W*���+��q�$7�?9��8���Z��3����qo Go
�S&"�y9Ef�Z�]�@�^�M���;��
4U����������"vYc1:.�����w�{�[�w��z���W��WJ������_�W�X�M���1���b��i�c���
��k5���T������*��M���k$�UVI*���UUu>�6���=����
���C+U�X�:�
��L1x�*����Pom#���'
��2������x����S��o5�����vef.7d�q��UoM����*�h�;de��x��;�4���o��>>=z�^����1�cc�c��=c����U�UURUUX�UU%UU���UU*��UU}Bd���9�<���z�u���]o��P���Q����[�o�;�L�2^����_�v}�n.y�quQ���������h�R���bA��I�Fxa�X�X)TKN��S�(S�T�(��Y�����>����W�X�M���1���b��i�c����r���.\�r����N\�r���.\�r���.\�r�����H7��]�����\��q����:���MsG|wiv�$BD����WJ�.4m4)"�k��vQ��U�Ubx��h�8>Y`��!r���f�y��@gef]����|qm�������W�?^1���������1�1�V1�1�c�1��UW.\�r������UW.\�UUW.\�r����� �����)~~�Y�Db�o����(;�t�
���/ ���&��`��l#�D�D�V,������w�h	N�����������M�����+���W����u���-������=z�^�c72c�6�1��1�1�z�;wUUj��r���.\�UV�p��������.\�r���A�=��7������d�.����3I��������v��o��G������U���e#�3cdj���:��4����v��b��GC2�_e��L���4
ZA���G+H��u�����u�[i���?^����������1�1�V1�1�c�1��.\�r���UW���\�r���.\�r���\�r���A��w����(�y������f��h�9t�n�m�Gq��e��z���m(�
�Cf��{W�V�+3H�XO2�
C�n���;��hV�t����!����Nm{�"uw�����_~�������^���c&�Lc���1X�4�1�X�n\�r���*�����.\�r���.\�r���.\�r�G�}�G��D}����?��W����G����gw��z��}w���e��\Wf����-�I���V�r��eK�.�����pR�����;�_i��Vn�U��mf�4�������v&�tR���eh%����z��}�o��o��������������>�^����1�cc�c��=c�r���UW�UU��.\�r���.\�r���.\�r���d�}��~@�������1��<X@N����k�����eW�<��c�}����������mNjb��Y���c+#c^���d�s�
��;Cp,v]����Ux��Oh�������Oh�8��2��z�
�@[���V�>6�}|c���������1�1�V1�1�c�1��.\�UUr���.\�o��6�n\�r���.X���n\�r���u'����?�$�����Y�[~��
�:�_����u���];vt������������N��k_�~W���[���d����k����������_}�W�����]H�I���'�3�s�"�������'�O'�9�r��j����m��&���I?�8��?��G��?�?�"�i��$����?�?��HB��N�;�W�3i�O�!$�?�<�?y�|�p�������G���O���X���o�G���������I���?��O��7���D$w��$�p�"q�H�{9i���i���9x����O�F�!O\I8p�������!9jN#�R�M���,i�nR�#�b����GH>q"�$����.$�/�Go�$!	���t�!8�A	��?�xD����$�3��O�O�8p��_��G��dB�$�C�������~*I��&BO���������I'�"I��?�D��:L��_���	?����~��C�������i$��i�$B�wB��?�K�����c�1���?�O����$~B���>BH!?��H��<��$B��p���_��g/������������������]��&G�!?��	?�NH������~���Q�"O��I56!O��d�H���moZ���Z���������D�����c�Bt�?������B�RG�M���?��I;������?�y:v�R~4I��?��N�F����NVG/�G��Bi��	 ��������H��O�?�����$��I?�I�tHB�\I������s$i���'���1�d�w�����������������/�$��'A��_:�;j��o����{'��0��������	���.�F�p8i?w\��BW ���������Q�N��������'	�9��<�;�;?�x�+����c�'.gq�I�'�(����cnH�����NRUp��=R_�}o�l>�����_m<�������m���w��?q�O�$�?��B������6I�����1��������q�T����I�>$������o���1�+���$��0��b��L�����
���3�a���������������}R��=����*��k+34�l�l�lm�R�i�1R���,�L�J���6�6�h��m���h�T�aZ�D����%SMU�UUUS6$1�����Z��5��d�SFk-��Y�6�d�V�&��kU���(
�@||�����XRfe4��)[e�����kfSf[b��mK"kl���j����
ib������l��X�i����"��m[f�5�Smm���$��
5��m�me���mJ��f��Ti�Z����U��j��KCl9��z�(C&�M{n��hQ%0�0�#b�.������bY�3)j��m����n}�+���B��5A�u�
x��k��h��`g00�s����J5��M���9�
@���5�h�������������k�@�N�%���)�j�e��y��(@vc���0-�p-w����gm����`a�� ��6���s�@i�
hD��^�u`��^�'s�;��p��m0���tRmE`��[s��t$�[k���pp���f�{v��X30]�S!�6���,��C
w�y4kM`jl5����80��0l`��B��5V�306j��j�����@��f�`����|�0F��{���
��m���m��l������JkB�4�����c!=`�;60N���FZ5���h�w��zS@�4�-��K�|7z���u�&a��O]��� (�@P(
O5UU?�UO�O�URF�4�y�5JT���44�2b�E?&!*%5D
�~"x��S4��21bh3SM&��$�JERM(����=5z����@�U4�Hz�jH�F��L&I�Q�!���Si)�����������r�#���$O�o�_�s���z��O#n#�;u�5�_o�r���$�B���d����L����~�����������_O�?��;�:p���H$��H�?_���~�����_��e|��,W�%�}��fm���U��M2$��?|���?�?�I����yB�B�|���O�=k}����[��~���I���l��\��$��e�rM!��� �b�!"��L�`0&%��$Ha�������H	 "A��&L����wA$D��C2���D�$�2@@I�&$��L	2A
fC3	��fBLcwv �JH��I"$Bd! ��$�D�$�BC2d�� �$��(�@dH�I)�I������BI�$��$D`�HL)�4!�4��(HL���9�$&�2�H�33�]�t�"	 ���.��bH$2BBfBHB0F1$����L��"H�	H32fL���!#!$�2Hd&c$d���e)L�`0�L��Je!L����D��&f$$!0�2$2&L�2e3	��$$&Bwq HH	BHi�d�0d�d&fC$�HBA$�#���HH$"f�e2��	��C�]L�dHIL!2BL�(��&11��H�D��#& �`����	����)2e&����"$��$��I�&t��IH$!0�10� �	��"2���P�u�w]���d� �"&	 �$�13�Bd��&B	0���A�BBBDBFN;�"'w $� �e$PJD��1d)�a��3�d34�L��dI���H�#A&L�$�H  �&LD���1�d��2��L�d���L$���I�Q%��$�D&	3e)JfC! �"H��I C ABd�b�BL���I"	  � �L$�� �d����2I�a	'w��H��	HDA��JH�3�L��2�HRA�����Q��wnt�LI�U23
ei"�$����I��H&f�@bH�����1&2���4	�J@���2��4�D��d����	��I%)Ji 	0���� �L%! ���$���I$��$�d30%!��)�LFf3�Azp0��H�@��rB�2Rd��Ld�BO.�!�1���fd&2Dd��0DC������F!"H��	��fC!���FH�LRcd���%&�&�$���	�	2�!��I�! $�C2����Ld$)��� %)J� �L��������&@�C /���0D2@A	)�$$@@L�a 0 2BI1�(�d��H�Q��1��1��2B�2he�Li��4fQ0���2	3 L��fd$2� ��Fe b�Y(0Rd�u�A�"��I�#��I��1�2��!!D��D�	I�JB�)"BPI@I�I�I	�B)�I���L��%$d�HH��3"��d���"JLA��AI���B$IH����H�a���I&d3����&������QF664lh,�"I��3")�)�	�� ��I�$&f`�X4b���(��%$�2��H�0A��ffPI�d��%��$�!�����$���D �$��31L�	!!����%!"L �&I17�A�Rss��!	���}~�������{"JD��"2Rd������)("	�d���0@�4d�"LE1��cX���c�@$ �!3"d� ��Id���|��cfa	fS $	!Ha"fI$��F ����� �&LA
H�h)((�1DF�I�;$��F0�@`
12R$2$�`I$�!����@�) �!p���fL2"d�`L�0ADA� ����%&��d��LD@F�&$��#���F�b�LHL���0LI��$���3&C$�)""L�(1��RF��1�&L���L$Bd!1��d��DRd��I�ID$�d��#�b�4��d�A2IIA��$ I34%
CL��L�4�	L�@$����1H��12I�BB &D��a!"BHI	��&H"	2A	$�#����� �1�$�"4�����������d�$�)(��"H���I	��(DHdH2S0I2S12E$�F�R2L��H�a2D$I$HL��I`2a3&I"LI�3!$�"B�� 2 �� ��H 4�`AF(�4Q"H��$d�P��3DI#$�H�$	���S""D�HI�����h4� FBB �&2�2BD$��DD$L�&fS$�Q�FFD��bH�h�� ����A$0�!33%0�e��d$��� B`#1#1L�34A���� �Rb0�d�,��c�D��	�;!0��"H��Ha�#&"��� �)$D�@fbHI`C �@��D0$� I���H	L�	�3		�%	����LD���(��B@_���C! �DX��LRIE��$$J@��$0��	$fD �	�Fd2I"D��
�H)<�)
Cd�L����&���`�%D$b$�2b2cH%#	�H���L2!	"		�cA�HIB"�30	L�R��&L��d�����H�  �2�"��$�
Jd2&L����"A0A"fI4II 2I�Lb(1�C�&dh�"2J"R(�i!�DR I��B@JI�JI��I�)$3������2II&� Q�(��FC�i#E!2
�#��Lc2
A����Q%�}7���RK2�S&IAfY�!D�D@Dfd��I��Fa$!2&R	)�1��$IeBh$2H�,��H�����c$C2�F1���HC�	�S&D�	��2�J��Ie��0��4b&e�f��$��D���	�$�"d�"H�A��X�,�LQ3	�@�(�d�i(,<��I���H
D�C
	�C2&$I�� �!Di"0F(4Q���1X��1(����@HI�dBBh�$�
RB��)!���$�A@���A!�1FH�cI��i4!���I)(#F1AaL�����0%%Y�D�M!h4�J
�BX�f��"�IRd���4ED���!����B!4cG��F�A��b�Di(5%%��-%b��-1Q�DF(Q��M&��4���2�&���b�k�F�E�$�����#Rch���ll�5&�1(��,�cEF�6�����-EF-�6���#i60X�Dh�ld��Q�QF�&B�	%�e!@Y � ���Z�(C$F�L�4��MA(@��h��f���2h��L�J ��b��hHi"��(��`���h�0L�Cwn���bH���	A#dF JJ��H� �S40PX�	*
%H`�"D�C %&,�f2b"A���& ��L�$�4�&�`�d�H�dL�0�b(��#%�0cE!J"i4`���F
$H)2b�@f332Y0(��2A�P��I�X�4�
Ib"�2HDL����@I�4���%Bj"�4$i$$��I��:a���
6�}��}���kb����b��#ch�$HfAlj��X�EX��	$���[hH	+E����T�)�6����$$$V�I#j�fBH��A!���� I
m�H	)2�hL�2��0�
U�"H�$�2d	$I"LD��2I�������k{�?��;���?�_��/�n��s����'�G�I������������'���'�6�������������3k3k2����k�(�7�Z���G6����W�-�F��5��F���j1�m�ssj����5sQQcDm��cQ��h�1�M�����j�m�F����msh�j5m6�Uk�F�Q�nr�������������5IjKQ��j6(�TF����V65�\�r�����;�r��6�����m�F�Q���h�TlmF�Q���Z���[sQ���\�TZ5�E�-�����j64Z-��Q��j����\�Q�6*����F�RU5�cQ��j5��U�E�ksQ���\�j#lEQh�j5�F�Q��EQ���lj5��m��6�mIj��W6��lb������j5�Qh�6�*�F�Q�6��1��cQ���\�j#QY6*�EQF�Q���QEb�ch�j��j5�r��-�EF��b���Qh��5�F�Q�W5������Tj#X+5�h�lb��b�X����j6*J�QF5���msW75r���Eh����F6��U�Q���F�sQ���cE\�sQ��c���F�Q�b����\�W5��F��Q��TQ�m�F�F�Z����5�lX�j1��66�TZ5]5N�m�KRZ���j5�j���nk&�lj5�IjKRm�����W5�X��j�Z�F�Q��lj5��Q��j5�F�E��EW5sQ���m�F��h�j5�F�RU+�cQ���������j��TV5�F��Z�X�Q��j5���h�k�����#b����\��F�W5sS�[���k�F�Pj5��V6��W5sPm�����F���j5,V+�5�F�Q��F��E�QTj��j5�����nlk�F�Q��lZ
cX-F�Q��������r�����j5�F�EF�X�j5�F�Q��b�b���-Hm�cr�M\�sW5sQ���\�5���Q��j5�F�Qb���j5����F�k��nj��Q��j5Tk6��Q��j5�F�Q��j5x��F�W5sQnk�b���j5�F�Q�5�Q��j����F�U��UsW5�F�Q��j5�F�Q��j5�E�F-F�Q�-�j,mE�������j��j+��-F�Q��j5�F�b���j5sW5�\�5��\�j5�F�QcE��j5�F�Q��j
�����\�j5sW6��h�4[�F�Q��j*1lm�F�W5sQ�������5sQ��j5�ITj,[�F�Q��j5[�F�Pm��X�1h��\��F�W5sQW.m�E�Q��j5�DZ5��Q��j��j5��(�m����F�Q��j(�Z5�F�Q��j5��cQ�����j��j.kr�Q��j5�F�Q���lZ5�\��F�S������j5�F�Q��j5�F�Q��j5�+��W�o�o������s�Nx�?g�?����������4�)g�B�t�?/���F��������k����g��N7���o��?����3����B������u������K��!2Z�kj["t��
j�N����@:���*"�����PJ���5 ��>zg�'���d�>V��K�����f#�`��!�p�CF�=������ha�%�f�:��E��v'T�>{�K����.
q�Q���&7�=��h�����s|�@tx�P��e����{9��k�)���c��3�x��w]<��]�	�#���IV���5z��K�"	4�U�[S�m���/kuy�P3�N�K��I��<��,C��+���d�5�~��^X���U���_����~U�p�s���-[I��76m5�ua�hye�@'�IO7]���
�nQ ���`����M�9hLA���k�v�d�t�a*�U���m	�D���������'������l��`(�
��]�,boN�{S����K{iV��tw��xJ������2o�%�k�QD|�`�dJ3�Pr�G'>���*h>`N����v�X�N��-�Z(��{F���m�@�oR������}!���|[xt���V#tD�����w:�4J�'�q7j�p��r������L���Z�.����<��LtFb�I�Y�����Bs�����[]N��m���\�S&kF�}���0��=����+C���=�u5+�x�S=pgz���P�yo�^���era�����9���#i��n�\$(`��E*Kv����`^��7�7������v	��E�si����!����Qn��^�����ok�q�S/u;�2�y5Z�^��N��d!.�?uq�/�����:�����m	}%fy�"�t��k-��b��LQ��\u���th
�H�6��:��u�c��@/���9G.).S�X��h������-u�
��X�5HD����]E��r����>]��U�oikV6t,�SI>j�������^c�=a�;������~���>���ykh��E{��^�\W�O]�F���$Y|�Z-�Wcw�OP�d����q��"����ury��szr�k/>�j��d.�r��i��a��DVv~������>���?a�]dNs'��Z�s�8Ns���vp��5��X���s]��m;�9��\��$����d,���l���;~������VR�e���KC� ���oidk:����0e�KW�f��.fE��z��,8)�}tC�����������p-��t9{��I�K-?c����
����&;����w��)�2�z�|l{7�����r�P-<�����{�*Z�����5v�lkf�gvJcS���=7zG�f��I���n�z��%���W���������[,�5����c��w��If�Hv�W�ok��4�P�k&����[���e��K������lY�h%n��T��]�����<�=���dMV�$���Ut���z���WI�u���e�n�cYW{hGA���#j�CCRi`]�qZ���I��o(r�s�u!��\�h�9����L�Zw�NS��\�a�n�$�~A|�z�m�����d�Kl �����v^e�)Y�)��yX�&:�=���W���sb~����+[,��������IVty�����8� 
���S�_��t6Mw
�[��u�/4Z�5a�s}8=���;���n����M�}��\s��r~=��������Z���h�j�`p^]+�\�t��J��w�J]i�s��k�>�'��|�o����=9�R�u*<�B\���������c���p�P���pAB4��J��&��onD�i����
Kkf����ZB��[M������uC0���y���]h���P������@��� �]mk�����;�����s�~y
�.\4�9�3<fk��[*�]�}{���r���~4��{�J|�G��^���>/���zw"����r��l�FL�;�v����`v���8���9���a�k����������DC��ln�#�l�����e��}5@k�VV(#�����h]�J�gr�]j��u8�ga�ls��g������[�;�	B���������8���
���3)����������ur~�\�y.��)�~�����E��d$
bI�X��]�E�(����&�FGs�������F,�t������h��j�H|��>����Yd������{f���D��g�|��P���F���h�������d�R���?.�0��}z�F)K7��)�v���x�m�������. 76m)w�J������c�W ���}�b��&�f��u%)����XG�/���{�"a���R��l��N"��������S����2���������e��4yt}��~�+��t[��=��6V������Y��x��
e����W�,z:�9���mix������9Q�����S��>Mg����]��q�=�V{����ct���t�?��R�T��9�\���h�4���/Oa���G� �I�Y,����Z7B���t�i����-����B�B��n��T�dE*�f��1����������$�}['�^7�zT������yuu�lh!$$� H?@Y��J����k���/zd��j�t(�J2���.��[��*k����j3�\9	v�_ �a�����{��������y*����e1�er.�y��o���S��]��jy_��	Y�\o���������~A�Iz�U�J��	t����u��r��}L�T�;����e(��#]�{!��;�������,��&��z[h�����{��O:s���cV�j��q���;�q��?����u��w��{i������+}��z��{<��mn=s�a�z_j�^S��e�]��u�N����"\��jI�2���uf.���������&�X�ip�M��5r���T�>��4V�:�]�_O�{"\^�j���y�2T�
rK�LX{���h�j��T��#����o)��`.��7�(W���=GxT6�Q�����.������>kq�BK���m7��,��/:��w|�����8����t�V��T���g���{��*m�<������[��9�$�d�4����so�4��J��l�U���=����v�G�zNm����wW=K����Yh�8�h����
c|,u��L���!�{�X�
i�;����L���h�-�3V�o>���e���Qb�u;2�����Hx��y=Z��Z}:�^���qtyLh
��K�\�+��\�*��1���t��������7,�i�W���W��d�c�Pi���;ze�N���\�e;t�<��r�g��C�K�������^���y3m��k���s��k�N�8$/uguj���q�_+���s����������(�y<�`u��o����^��"��{475d��!������,
&f��~J�nrR� ���k=�[g
x�_�36J%]��-�y��k��G�'����{����N��|*k��w�/K���?7��Jl�����n�}.�62Z����*;R7�}����\��j�.��^�N�Vm�����m6Y^y�f�mEZ�*X��U�W2�����Ws�{K%}�����h���o���\\�
>�������/S���5��^������k�]AEb�{�����sj���:[W�{�|�Y��Vs	�z���CV���}YIS��mu�;c�tw�js��z%C�Y.����q��%E������d
�?U�q����X>��x�~�0;
Z`)Tu�n�F�n���IS�M�n=���.�Y���'Y��U�^���]I��8�2����Q�1\�RUwF������k�����������Ecu��/y*�W�]}9��f��|?�g��v����*�Z�H�m<Mo�a�s@0u��sh�����(�$k2�����_Q�}S9��i�(u���Q����,N��d���`��e�pE~�>)�I���sa)O��-���&�{���X�6�y���5�:�;'.j����+'��)��i;�����m>%�#�<�K��<�6��K��b�~W�w\,��"�=��&�����l�N|��vj���S�T��ln�����:Iy��-�0�s��?'P~����\�y������t������<uC
}:��M��:��(�����O�l{�:L���e���[�h�Mt���br,K�5tv�I�:���0�9I[��sDz;#�����\���W��[�&J�]{^�u�J�����%�����=DD{"Y;Lko�:���T]M�N���K�0F5&��}�hK��m�g��w��sq]������y����^+['Y��u5����:�����]9B�h��_m2�"�iU�F�X'Q# �������'=2L��y�/����p�|��u=�-w;z�����};��������M>�����~��&��!��GE	1�x�)I:�X�q�!�{]�`mjV�����k���Em���{;�hvS�&���W��1c�y�h8[�����������Y�y!U���V�{�Whe�4���7���4��O*������4���=E���{v��V�����>Xo��w����
��mf���/�����V���~�� f�@#_$^��ta�C��pc����
e�&��6�t���P���Je����fu<���n��{��pZ��S�vl�P���K����bg\�������28�v��g0��"�������or{��V����2y�q���C�����`a
{���z�3��=��wr`W=��Z��	p���\~�Z��ad�����}�eP��h4��[��/�r%!���G!���6]g��:���b�Y���{�o�{V�n�w6���+��|��G�%��*���-��~����G��^����>A,�����hw���9q�QK-e�I����#3(�3���nB��j��m{�������v<��\oekWRz_G�<����]�	[�j $����;�x��������go��$}�n��h�><��^������W5�5�4�5]��+\���)H;�����.��U��m��|�X��6
BL�]����=�u8�^W-��_���9��!�"����D�����qF���=��.���|��5��<4��������L^X5v(���������Y=�t�����!K�6w��.N�����(�=/gm��6���7�g��U>���	�_l_|��� >H����7��YMKOnp������K9�A�	��I��]���F�}�J�%�������\N���w}�b:�'�w���\\�}����(Y��;��-�t�����p]��y�V�`�/�nN�jo�!��$��a���
�#h�n���p='��i���0�%��-�����&=SC�.����b�:��m�4������������d�^���K\�2�>�������*�8�'���N+��K��W#��b���,���>"�t��������<�m��.E�����G4�/$�1�W/e��;������T�Md��m�f�S�=���M�Kuj��wR��|Hx�_e��m*�Ks|f�����)A]��~�����(������*�#+���=0�����Z���t�s�JIhM������H��d.�vt���o"\2�L,��?k
SzP���������������0#�K�<ehY����,���x��j���^{N	E�I^��(}�����s��v���2�J���P��:�PBD�Al$��J�pR��Gy�z�#��q����O��^�����[+n�����d��4"aS��,���"��wJ�U��������2��f�q��[\���;��������R�;�rg8�;��$^
>�#g��!����6�j��{�Epo���K�.�� c��/2���
U�;��;Lr�$EO	��[��gY�N�S�L�
��B�����/��1e�%��c`�6y��O��7��
��e��l4��[=Y������ke2�����wv�v:bt�Z�������g�'��k�2���v6�[�0�o������^�Y��Y8����>����w�TY��Y��\�C����b���f���*!q�q�c��'�v5f�����V-���YSVq9Z��������r������n#�<�8I�+�r���)Y�fZ�oj�)��2k;tZ��|�Ihu����:su�+j��h�=6�������oR������b1��������M��>g��l��a
����8CGts%�y����G�+�u�u�n��Y�A0�04}�@�2���FX����-���/�$�����ZP�G��gf�y��H�����kTU��c������, �W6���;��O�x�LMD	�<*D�y4|f��f�W_2�n_v�j���P���P��-%������i��+�3��8�u,�����[�hev",�(LB������Mi��C��N���n��v�:e�ht�m���r��_M�Mh����Uz ���7�H������T���X~+-lM�'�z�yZ��;�����>�-����6o���i,P�I�Z���j��]�g�����85}�AV�])=���jD��*u(��4�96�\��\��w�n���/�Y���Q����2�{��R�=_����^��z"Z�L�o� g	Z�[�0���`�n���(�im"k������=�1f)J�\/�
i��O��M�3
wv,�����jo;�SA2�m���=}(�{�r�YE�Y�qX�nXkM��GI'T'��e����
w�U�R]�����7:���s#P�:V�����E���."�����(��
csN�R��9��es)B�k'y�R����r�]�����#��vk�N8����������+Hh�QsVN�xE��xqml�qq�J�x��*����KA>s��|����7�A�*�'���o�����`'.>������7�W�k�a�Xn[<��Oy�:s�=���[+N{�)�H�;������z&��7o4
���{�?n�������l�F@�a$�����P�������
	���0�Wz�8�!��'BN7��K�g���ZNL�9B���v��3��d�{�h�>&�e���cC�v%�'�/��<��$�rC
\27(X���tb�4��u�������H,s���#���J��y&���(�L	xZ���j0���t�!n}�2�1���v���g�V`�
fU��L3�����l���'��n����s{G0u��>�j����X��b�(0��jw�� ���2g=;���FB7�<.��FN�}�Q�/�+��Y�\�%�����r�E/�^�Kko9l��"�h��xd5�X9��4���%�tb�H�+$���|��m&��X�)���@�	�o%lQ{z�}Z�y�R��Wu��A9]o.�������?#y���T�3���%������n%�G����7{&^��������0��Z�c����\TJ��=w��e5�C�"_H�W�Grvwq+�!�!��.k�V�D��)B��I��W�6b�	Z��1!��p=C���\�C8\�uS0����uf5��Ev{��-�}���������RZ���LwPw���D$�$�������m3K�����s�vt�n�o9Y����-�Uy[B����s�����!���o[;���W�M���~B���������K-Z��\�'�&�c�jr����jw�`��{�$��,U���H{�te��5�u)�W�|����?&�}2*�Z�s�9U�������'@mhZM��i�}2:}��m���"��6C�/�~��Na����1A�^-���X��7������|����b�'�o<�h��n���2m`����vM4�J���8�'�������v#I���N��L�c��Z;��jV�XN�H;V�����t��A��n��t��Y��T�vr��m�:���6�<����O����z�^����r��J
mk�:OHUym���uf���>u�l0@����u����iv���f�*�W����z���ax>�Gs�m���^���yRR{��K L:0���[^��p�����Cd�������i\3��Rbg�N��`t����h�����\�HYr�ooc�����k}�!%=�m`��djE�,:[8pU�uv�D+����$�&�':��{�I�eY*����4��W��yu��r-*�%O4��[}��T��Ya:^�FN�qb��:o1���,bXO5�z�s�v�
�������0e�>�3��T�O����^�j���Uf�Y�**�S�[�Y���"m|�O�8����^�1�Y�};��h��|Y.�u�v�x�S+�v9���"�%Jm^�q��� ��o����f�5Z�M^�sw�-����,�+����L/-a7�`�ik�=���L\f��
�[����Z����X��b����-5�W<:*'sGS���AED�J��T��=�h���?m���*�)4=���c�z�Wd�y&"���\�OA
�.�U���u���{�f	�a��V�'0�z�M����o��'u�ta5���7��?7���I�����x�_w[A�������W�N�f�L��fp]�tAJ���J���:8�u�U���W��#�l�	���X�5G�8�U��i�'lp�����������W@��`;��7�9A��`�K�4�Z��������IvV]���C"Au"�C�
�3���4<x����1l�	����w�_S��<.V�z��N!YR,;VPq}��;��I�,���R
i�a�l�����x&����1y�Q�0��7�p�%\�qowmIJ�����j��5|�NJz��7'�F`������������}���i���W����6���D����FEu:��t����K7+�-fv�=����
���;���k�����'���<5{��Khs�+�O��}kEii2+�B��.m&���I��=��{[�;=O�X�]V����c�|m���������Xl�*}�j��6�Y��j�n��I����d���[�Y~���x��b�O��8�.�.��
���j>F���R�IFD�[�oA��e��i��/����l���a����Mk/��QL��j��+�������qv�����5mPns�S*������v�
��������S�8��7L^��������p�����f�����Kr�I���9^�'��K�����V���b�1�+q��O�h���~o���"I;]+sU���_>��7�f���@�]�.�Mn!7-������hq�	(c]�����Q;���y��=��kn����u�����q���I��.h
��k�l��o����k��w* &�z������G@;���]��1\�������s�G�d/k������6L��h���q������������W����
�!m�_�q��<�7RA:�g��y���2��=�n���V���<�]����S�2����E
�g��Z����{��{�_3��W+B{�b~��\��{g������<��87R�������9��J���.e�����EueE�S_����+�������E��`�m�+�f���E����98*���k������3H%�h������o�� }�zB�9)�r���~Y�r��$����-G�dZ�����8��ysH��������HGv������k�tV�&��I��u�l�}�xY 5Ovt�b���-��XuF�G%X��Xq������mJ��,%�l74��(������3���vgq��bP�bW���W�@��[��|.r���"��/4�6MK���i�(,<M�x�t�wA��L�U�!B���|����B����Z����_.$��&�J���ca>Ro����/F�0HK)��:����3�n";h��c�������2t�g��n���e<O���p�W�� ��v��S/q�|���JE�Z]���<������VC=�X9=
#w&�OW,$q[����k�6��[;VN���VhN�����+��2���������r�������bv���[}��aRHITf[�H�[���{M��iw�����=/q`��|�[d%�zOD��w\`����!����<��X��A�����=0��:�7Z�5����M���$����Y1z||�C��������d�N�^����*y���\EY��u�������������j�(����T�:�������ki���8��{�`�s���>wz4�co����r=����=�Z�F`+���1��8$����������p�!?{D����Go�O�����/��G��9��8�O'����b�4Y���CQ�(�o��6�`��F���w9�GsWtDh� �"""1b�U�|���1j`�b@W���n�#1j��������WtF (��~������9�r���B����W\�"""""
 ��W� "I��F'�]r" �DF"�np1��C���DVr1I)���gu�;�����""������I� @F�,E�m������xn�:0c@��" �DI��8s�c�"�Q���DDb""""Y�
�5")�"(*�*���1�|$�1�b""J#(�'�Zy-[���]�s��u������zzN���9�I2@L�H�����+���w�w;���D��""1�s���DA=m��7��\�F1�bch�������������N��;�����1N���DF"(�1�"� "$^��(��"#U^i����������z�*��xzb#�b1B6����Q�DDH�DDO��������2I$�� �� ����������ws6��[Wb���@y���@
�m-�"#(�F1E�m��m�#�1�`�����wc�1�1o=1y��W��D@^�F����" %W�TG��DEM� H�����$��ky�5m��yWj�
k��#
��!���%M[|�j�������W����	 �6���W���"�[_-�{���������w]�N�Q��((�QEF#�7�A���Ov��D�������$#W�emr^`�F3�@A^�������DDF"" z�p���9�\����s���w9�QSJ��"� �#�'��"����k�"��F1"&� @@ ""�I@DD�^�s����  �����f��@O7�D^^>0	$"""1>��D�]�wt����1����0^^_6��>���b#W�h���I!$�$����"�D-�k5W"�����I$ "" ������ ���������������k�n�
���j��DF""D`��!YOd�����wu��9wu��wO�ko-����;�s���������$�F1�c��r'���s�������1������ �r�9�\��>��u�P]hj�HI&��7��������ww {��<���9�����\�E&"" �D�ws�m��m��Dc��wp���t���������i��iv�K��m��mf�m����y������s��\�6�1�����w�wN������wv1��_��hD�Z�[��c��s�w�;�s�w]�����wgw���]�s��wu����w\��s����]�������F7��D�N��www;�!����ww8�wwu���^W���1����F#_6����Db""	���:�����DDFo�@y��w\�������'t�������\��a����3�""'�� �DUt����1w��"+��;�����������mv�m��m6��e��Z�T�BH��9wv�b'�Db1��^��r�=|��wp��;�ws����w;������������DD�������"1�t�������@R����v�y����m5�Yv�i�����6�^r  ��F7��'x�1�c>���;��� �O}wt���{��S�#�^��;����w@9�r��s�����wv�DA����]�����������^#
���v�m��m��m���4���^tDC�m�^b#���ww�tT��@�@��1��F�
�A]�v���wwq�������������wt;������DD���ywu�� '���H�xm��\b�7�w��k������;�s���wq�����"#��j����em���ko@"A&�	$�I$�����w{������8N�(�"#d@6��"1�����z�j�H �DDDb��q������;��������������1��F��$@W�@*��^�1���+z��n��k��$�$�m�U�[	$mW��^~/�_�-���?8�%�!	����B���������O�pI�B��G���Ig<q�����~�Q�~������3��G���g��������6�C����]������y�%�$��&Ql�*cb��o��cK�Z���$W?{]c��dQ�~��HU��l��K[���j�&�3X�����*�^�V2Z��� /�y���8T|��7��six��o����e���SP���e�L]+h�g����� �-�y���j������c�#e���[����.��*�������y��o�c9�w�Bo�$�2�o�z��^z�)�<2_\����FV���9B�v�������d�"���8�L��w:����Y7���^��^���a��!t{��$vQ�L�H��p�+��D�
y��<�/>/�e?+��3Ko�s�#�^�S���B/k�7{�o�Hd�	��}�]����d���`<������C��`������I7��B���W�w
�����kM����w��Iy��\@�8�m����;X��7�xud�$�����O��K�\�4Z2�S�-���$��<2]�r�|�;�����!���z��x])�N��nge�*����WZ.����[�����@,������@�A�j��9�ay��>�w����
�D&IQM��E�+�u��f�9`�����o�H���[��z�V��2�C���c����Ys�ks���Q7	je���|�<�+��z?.|��l�w�GM���f,�u�N���N�;"�|���M�d{��\��|Tl�o<`�m������0V��g�0�yM�%���,�����nk�=��]x|��K��7�6kSv�u������������J����z��3}�������LX��Kv@K������C���+��y
C6��+�[����A���LYm�W���;`K��2���9(���36��{R���,/�7�zZW;*��mh-�k�2�� �������'j��cI���8�F��No�N�N
����&9��A�#�-��6l��[�_S�'��*�<��xxd���F��g�Z
��
~�����i{��#<�+z#�{&���*�Q*{����{N<�\3s�N�����O[V[V�#!oS�m��p���.������a�8H��=�xL�0y�Y�9�T���WM|��"�|}���}�5&t�~��p+���c$������bzv�����k��D�N�$���v�Z�b�,Q�|A�|�3����V_g����T#������x�#x�����qB��n��%��vU�G�
�4d~�n �W����.�w�jU����8k��#�v�0��W����]��B�nN}��%�o�=�9z������2����t�^��1E�'W��t��,�;������S�����<0^w.>���frB��hn2��X�>��{�L� �*aO�6��uP�([��{���Y������(���MOuD5���atr�yO8�]W��"Cm�e!��C���{����r-V���
-Y��o�=���u���wo1f�Dm�
qv������~�ol�R��bX�������c)^.��fX�a>2���46P���t���k��N����|�w�w�s�g�C<��3��\O�m�Q!2OC~����f{�}S�C��d���������/xD���w����N0�8d���}����t����'�svH��s�����)o����GVflq��:����vct>�-��/$]��x��f����V"��@�<z���oBi&�LQ�+v� ���[�!��M����������l��B����;=��;��lz��5X��V��cN�l�9�(�K(>�������}���gc���{�v�3k��
�|�uE6��z���F���YW�-��{�2O�w��:�V��7j=�o�������$���'�����������G��@���_�w2�_N9u��
�����Z��T��S���Wb�9�W�;��n{��e�}N�������3�� �x`�94��I��������5��%S��S�y���n^k��[F{��@���`j��m��\�y����c��v�g�Q�4$��>���,�Q���7I��n��IJm��X:���vfK��:(2����e���3��7�|v3��&���I���v��;��|uX�)�u���M\W���u#�+d�X���@:\�j������P�*w�����M�2x�k�_oWSi��o���!����;h�U���2��~��7�d�����]�zs�t]
YW�H��y�B�}���c\U���\^�Z1�s�n]�����ui���S��\x��\���N�$����	���
���� Y�M��������xPY�wY�r�M�;*�%m��3�uM��>O�n�����}�6�_Q���_Wo<�ObP�����Q\�+>��=}��-�\����������Z�xQ����p�������}��K�w��������i0u*��	:Ms�j���v�k�=��)�b�6�����]�M]�i�@_Z�c��1��9���|��M'<��b0�l�b��o�j5�*f�1�Vc�OX3h����@�_Y��4)��>�{3wy����p��Q���JE���r0���������V�p��%��1�*[4\�-�=`������RB6@D���Oy����i.i(~���:�v��@R��F�I��<�~��~TF�;b��z�3utGf�r��Oo��_Z�M��=���
�.�����9��	�&���VE����dv��6���%��>�yo=�x�'����P���}��u�V��01��L{�e���]5������������5��}JI���Zx�x���#F�3������{|}���0{p�}�����*��k ���vU�sl�Y�G��rz�=�&��-o�!3]5�����z���(�U��l*�4��������/�cd�3���e�%~��.x��`���,�k�f.}���*��l��������J��q��;P��q%��j�)h�}2�n�����cp����!�t�Q"�����\���ta4}����C%���:*iX�?t���s*������b��,\��(z
g������;�������K>�������2o�w{����}���ZO�����������������+�
@M�ogZ����w�&��w-���z�&kH��#|����`*Gy8<�V(��T^Fi]���:����������L���#�����(�N���NZ�����g���W����W��/������o�[-#����U�����s}��5P:�8���3(����*����_!�u�}�vj2���g7�l��<=�:3���h��^�
� �A���<��K�t�Csr{�����y[����m��������W��O�������v��A|�u-���;�gZ�s!L"�4S���C��k���S{�Sx�����Z�HA�����_k�b�\s=����{���G^=qW!�2|��z!����o��a������7�~jv)�%���n%~����8�����y�.���o���������|��I`�!��M"z�nU�;��z��5�ec������#�J��qvq��8����#���N�2�/�y�����n'�+�fX��o=z��~���1�1+�by<��[�n,�������ho��F�m�}�����fU�����zYi��k�l>�+6��'0]��(��<�����5���>�=���(�R�
��5��
�����Y�@y�6�L\R�C��v���n,�4����V�T�1�<,}�`5�}
�e��v�Wg[���I�����v��(fU�2���^:���Y
5�������+c�y�G�:�6�>���zGK�����]���![[3fN�oI�W��w��n�-&����S��fG�O����w���+b1�nQ�$�*���n,��;M&}����u����y���,�s���sOkvH����O����)�#};;���tJO��'�1��k�����
���n�tj��)s��}������E������zJw�����}������k�Y���7���7��j�S�3��OBD���h�7������s'}����v�)T��^�Y����
q�o�}�\n��������|;���B�=�Zie�\}}}�	�I4)�77o��x��.��������
���
��w�h������.�_q3�9�(%�o�\��|k;�r30F����:�w;�{����� K~���#2�	jE���_ueu�*i�����
Nl�t��x]�	��T����6�{�����l�nJ�/�Z���<�r�v���co�����r��%�-Z��#�Z��{Z���f[)��-$b��	�)����aW���KsR����k�m����H���tud�����L�ovCKo��
o�S���Z��1��c���|;�=��;�
�l]�����_���@c���.�2kv�_
xV��v$S�8�����;6A�6�+�[��]����������;�*�k^s��~QoQ@��r�h�sf%���(�Y��A6c����mEc�:��'|71>���-�Vj�x0�+a�v��)[�w��rX�������������l��o��Y����3	1h���7���'vR��=�gG,�3^�Y6�y�y��\���E�`�Wdx��w���;��7����7�V����`�W�����nv ���k1�+�%�dL�R*��}�4`j	5j�e����k���:�c��\����}{K������H��j�W5�2n��6�����5����:���)�k(�=D_���	�����K1G2�a�a�.��q,�������P�k����y��<+��EJ��v�8�\�T�R<]���|�
�M�W���]��������)���{�����*���S��N�9�{�[�L1�WDi<��x������^��n�NY�f���C6�le�.�Q>0���-;������N������Y�.w�3q����B��U�������:�b��[��7t���A��o�0�Jo��zCwO�rGHu�/7@�KH�SP�/t��N��XKmuk�}���NQT�w��b�lj��i@����Y�5�(�]���OO�+j�+#���{��y���r�o{^+hv����JU�y�y;������������~|���,>B����??
'�y��,�!���J��&��F��OjZ�.��������Pr����4������1F���rv��2�
]\5�zE>��Qj!� ���+�-�o:NOt$%�W`�[������w�z����a�]^�u\�b����e�������-��f���@���e� r��<e�I���/�@��<��)����D)d<��Fbck2P(f���C�����o�vE}a�u�M�}�kGj��1��972�Q��"��Q6�i�E����l���=��u>��w�GPW��8��Rv����C��	�m�R]��=��IxVr��^�j���j�����n��T�����G��wxZ)D-�X6Yt���#6:�{^R����v������f�����Q�.��Q�k/J!��y��O+������\����y{�;)��Ln�S��k���]�r
�}��we��z�|��	]�q��i��0���r�p[���q]��/���#�]Huj��Y�Rp���n�EQ�%\��;7
��%m
��8��y'�����?tz�2�����i��������i�wbs����0��\f�a�j����>��d�[���}B���e�O��q����V(w��,�l�3�};{�q�}��=��;^�{j�7���O�Hc��9�OxG�������p�_@�����yJ��8#�IFY|�r���v!��������c�:m
��P�I�s/���������k2�%�6�m����o(}=;��%�/��+���U=o�H�tK�TPq���������iG'�2��}D��}#���s�r�.c�kjY3����Q�H������O�����G]7%^1���x}���lweH"��y9%������ux��k4O[]4;K��Y^@�����r�yL��4�(�u}���f�G��*���]�C��Xs��}�AR����R������l��X�56���e�8N` �����;�������o.�F�uWW�K~<z�c�K����n
\K�����7��x�ck_���.��b�g9��k������I��:q�{�b=�����9�����f5Kv������L�$��Q���r�,�A���"%����=���n=/�v=� ��0���{PMC-��B
r�h�����Y�_a����.0���yJY��<?L��
v���{���Hn��s������.�����~��5��yd|�.�=�F+;�E��F:g�\P�/�����$��R��w5�����P�^{��x��9:��t��g
6����3�r�ux����
������/'��x�����w-���Utt���^�OS��z��=�\���}t�q+����mmv��8�`��+��>�:�i���Y��@�Z}|�������+gn���k#����g�+M-w'��n���U�i �������O�,pG�+�.��[�y-j*G(����e��6�=��:l�\�te����l����K�];�'N����}���V\1����5+
W���f����2�M�s]�a����?���n^R��YK���]W^�H�j���M#��TS5zE^��~;o�	�O<!z/e_ge�l�sb���D(mY��r�+��k���g��l�J���-��l��#:f�����.��Am^���%��9��f�)+�8���
����f��z/���$��u3��0m\�,6�H�0!����B{+i�A�����nN�9-���t��S[q���}��In30����l6�Y��>{����)���S��B}�Z��U�-Q
��k�N��W�2'-C#�K���A�nQ��w��fN�Sc�9PY+J��\�ur!��N�{Y�S�kP��Q29�j!�����������9w0�=N������Cu�y���i-R��a<M���q��(.�p���uA���P#y�R����8D�za��kqv�K�tY�+�5�kh��La�b�����dz��Y��f��X��U�6=�~��C_u�a�'u�a�����D����;�O�9j�)o��Ko�n����q�	�4[�0�ae�Je��gH�nFMY2�S�NU�
kKy���w���[
w�@
�}{��� :I�,K�U��&��w�e��7����*�9zO��F3����zK�E �r�S(�Q�{j�#k/U�8�`X�%��g��k&(�)������c����x)�d�x@���Ci���x"�!,n�%o&�e�sV[s����L�Ykb�;�E�g��;�#1�~���FK�5��2��`�n<}���;	�-���zc������a��:���n���������m��7;6WZB�W�}|�����y���E�����TK���*<����;R�����Is��=���h��F�3}�)���)HbY����9����d��7�
���i�n��U�e����/�Byw��H}�d��cNy�_{@���fq������,r�	{�v�`'�w+�j��������GU���,����g��vG��6G�z�^�D�R<9�L�lq����i����w��
�!�@��E0���Z�k7�2����wGjBs\�
uh��{&l����Z�:���w�Of��K��}������W��=n=�"�hu�ya�j�xV��#���f���vC=n�=�CP�~�������c��yJ�:���@_zd��V��������Lv.|{v����]��P��M��Pn���,{\K�j����S�qg����g��3N]���J#����x���=�����J�fK[a��M[�~W�O�;��xa�G�7�P�G���f)�U������6������mNZ���Q���;�\vk[w�iKQs�;&���u���]��=�����K�a�����v`a�~�����S�E�}=f����P`$.���6<S�gqI`��1�g����i���s5�s�{���_{�\k8�&�X������osj[��U��QF������Z���k�b/��	�p5��yu����#f�m9������M�]��������h����ZK��LIw�|'�/r�a^���.�{�q8O����<j�L\(������AMQW��7k��XI:8��`���Ur���j������](�{#�V72��-gY����=�tu0�:��s���f�\�����r.��n�q���u-���5���<k6�g<�4������pM�3.�)R�6����;[���1��t��2Q���&�GK���J���������6�^�=N����F��j��:�WiS��A�����2������&X8f�[�m�a�CJ�=��(�HL�}���F����g������m*>Y���o7@O�Z)�t�xiau�����wh�z4���7W�R4�oG�C�k2b�}��
REJA�i�$���U� ��n,�w]+f(#��u��)Y��'l�d��@J�&,�e����0����[�����y��J�1c(���}B��|��)b�']����I��<9����et{� ������h�^�[����w��������Y�]v�9]�Zr��#"auj.}�i$p�k�z��<�V\��|��tKP�u���n�AZ���_�CR�����\�S:�(=->����A�B<��f���������t�i�0������:+�U�A���Z���W�y�$xY�=9��t����vjb���<������4R�6��G}j�#������f1���Y�r^����U���gu���njzn�j��7������hCy����w����B��{Q��"Qn+�t�mA���-Z���y�jN}�!�^��������g�8���v���Z������V�f���� �V�E^���S�O)�i�1tOVt������
���nQK�M���G����%�����$��/*I�����qa������<u�n��L~jR�r���w;���^��.�=��)���f/&���2��v�N,�*�����;4��>~7���T��z>rZ]�$"6��v%s�BnnA���:`�V$�+��\�w`}��}G�����{W�����e��E:�[X��e�Y�}RG�����L"�_A��X�r��9�DQ����1�����6��e�b�����8���.9���CxH�:����g/)v�i���L�#shv���=weE�jqy4��s
���9�<^������+w�-���[�������e1��=0�����\��]�����Cy��Ym�S�����v�;��o:G�F���x��&;K�(O,q*D�<b�C&��������d,��.���b�{^���'�H3(�X4i�$	����s�yY�6�qb�g�
���R��,�X��-p^��|b<L���6`�k����sL8U�i���������J=�m���3�S�v��7I��X�|�K_�����K��� WaICWw]�\����\*R��6gK��3�Yk5���W�#����OS��l��>�rF
2��!�V1���=��;k��%��Y���p���������o�U�cC���+�)������9��sGDq���9f�|������.*����b�E
�������N���eo[r���4��0h{{�%���h��g�����j{4�z�q�NC�o�@���
��e���N��{�3"a�
�7���3%T^�Y3�WK{���%�{���\�u�|��lT�Qv��oo������U�{%�Di|4�{(��\�����o�F��P�!f���tV�Bz��R���[��E
/{n���J�_t��t:��fwU�����f��������M��+�B��00���m"�U��% �&����/�E��Of�������p�Tr�Ut�e������S�2R������9��V���-�w�]����&R&�]�'�-UN'$XL�/����O:�n���O�`�j���������t�p��IG4;���Ju���3a
Q�������q�q�b�A������y�����n�>�s��=|^��2[+���|�]��e�j��j��`���:n�����cE��>Odw�����=��pl�,���S<V���y�]\,=��s���v�b�o�{����ao��Z�b�D�<����*�'�������c����y��p35�)*����XVV.5�����s����qg�#�����������	 ���W��?�/+z�n.�������;w�������2Q�j����W
=IR���a�M�[Wo�1]�+y�Y���9����@j���eZP+�-�����y�s�F�U�[Z;quk���
�.C�����8����n������������Ov����S.z�n�����w�F���_���z-V�&���%3j�>f��N2+��>�������q��q���47R�o[�Y����r�*��1�}:���7�]HZ�WSn�*����f�nw
�is������1;�s���S��Oy������rRv���$�/�mv�nYZ����������^_S� ��v����@��
��������z���D�}{']�o�35�<���������U��&v�,�7j����U�R�����*-3k�����F-����56�z��)��x�/�R�`���jWd[�2�y�&��!*�W>�k��(
�A���u{^����_qT3��7�/�3(N�)>j�
\YC�^���L���\:�`���p���Y�F�U���,�:���.�K���2����#wJ�n*�C�����4
�"�9v�r����b����2�t8�I��T���G|P��c�Y��{8_���V��:���V������I�J��$�
r���'�0����3���p���au.e.�<�\R������f[�vW�zt\�nc�k�
I���Z'�=��g<��+JHQ\i��y�}%#��5(��d�N�Y������%'��_d�Z���>rT9.�\{:�r�;�=���8q��]N��Or�o���r�x�l]f���A�����d���
�I_C�Q�����vQ�:�y�m�W����s,KS
���-�}@SIA���R]����%���1������S���3���{+��3��w%�S�q0�}��:O�N3s�H��[����1�K����O����wi{a��������l2��[���5�
i���}�j��F����I�s��y����q�����NfXx���)9�����u���9���u��z��Y ����#rA��H<�d������jjU�5Y�SU_��>��-�m=7��_[����E�~������3��e_�&����E�r���~Wo��0;7�<�?y|]�*�����/�^p��I��uCAZ�������T�:6I��7����K������)z������<}HYB���I���xcZ\'<�m��/0y�[
����Qg�VzI��wfA�l���<��z�a��-�,�k��5�<�,�^p����KV���]s�2E�ehgk{_�t��${1�et������t�8<�����Y^����r/!Z�W~�88����;�}=����L>�T��2�����V�U���1�F��n6}�Y�a���:��g������x�3l��/:����t������R��{��y
�T���C����� M��+���R+T����{�+����3�d�i��^[�8K����+zOnw��=xE�2n�mF�4����;e���6��"=X�W�����{[&8�6��bf���f�p�g�H`r�,[�M^��N��;
&?6����w�geBKTTxP7x����+� R����)��yF��E�L������m�{C1����nvV%���?U��y�G&}y�{��h.U��X���6i��������5� ���:4�Z�m�-�G9���N����kZ7��K�1:��XOn.B/V��f���9�G�t�WA*�������������g�t�R)���h�+9���;Q�VwaF3�s�g7k^��gXc���r#�xz��N��NA+uE;qCY*�vcj}��Y��������}��eM���l��8�������S�7�
6{_��[�I��'C^����]�]a�W�y12�1{oJ���xg��X�}s_���)��z��_l����y%%�O�)Q�����H������I��EY���|;'I�����QM�������f���z�c9��:q�6��v_� �JM������9�=���
������!<������r�.����?����c[xI2z�����xba���[u�y6��u%��������Q��N��'�l�`������KP��J�.�4��m����n���!o��w��e�{n�j_�1���PjU�Mr�v=0jyQw��]�~��6@4�;���`t+W"s����|N=��?��$��A��??&�W������|�K7������O"��]�8�p����M����n�X�>�d���B0�K���+~D�@������-����s���yl��`�*�osH!9I�=���������1�����x����<x����<x����<x�|�m�@��������������EYXVXY�F���hq��m�	�pB>�(��(����(,��8	8�������Y��p�7�q��@�@���:k(����s`�6�  ��������$!7�M�6�J,�`�`�0���B4�MBR@0
���A��e��EQEB5�d�������C� �F�i�Va���=�7@4�����Fa�XY��F`�p����m���5
�(��(��(��(��(@�2��2���YEQEQEPY�YAv`@�A�5�2�2�(��(�t���B��F�7��	 X ���NEfh�j�^aXRB�l�;733���1�!v�����6{�C�� �zm�AYE�� $N8!@!'p$�HP2�(
8BvH� !���������!0���#M5`Y���1��p�?�B=>����0Fa�X]�QE( �m�r�P]���a���)�
�um
���*���(��(��0�BXw����i����i�.����4��>�QEQ@E�8 G����]�6�*B��E`!�Y�Q@`i����EQEQ@��1��F�i����a�`,�M4�0��lg,(��,t��4�EF��i��FF'X1�>��`p� �B�(��(���q��2�(,H��,N5��P.4p��j�Y�Bs���
(��(��F�0�����A��B�����@���xv�x�f���@�PM��$C��r,�!��f]��q�{�P������0�Q��4�PX���
8dB��0F�i�VP� (7@;���YAf`gc�@�M4��fYEP]��a�a��6�(,0n����@0!�Fa�$�PX!A�e�������94��N6�#C����8c���B���.��	$�B�(��(��*����.�2����0�,��(��(��C�{���������8`���48 ��PEPY�eQEQEPQE���`X �!��B��2�(��(.�(��m��v��Pq��z#,��(����0�0� ��PY��i��
�d�B�����p�d��(,
A��e���!Fv��
��d�eY�Et||QwAfX2H�/CHtF��f�P���c�(�04��1��@
�(,
�7
�YE�M4�q���4��c!B�@8��1����;p����fYA`��@0h��`H0��e���#��m��A`����B��(��(���(4��� �������30,�n
��0� � QEQEQE�]�ah�B�,�0HF�j��e�h�!#}��d
4�M4��feQE6H��!�$�+(,�`#P�2��,�(����`www��`�4�MB0�3��������
��@�!��7��@`����;��@�4�MXwwpQE��x<�@��4�MB<@����B�m�n���YA`�@�	�4�r
�8#1��hEQAv�p�
2�
���i �(��B6��G����!���D�)��e>8�0�B4�M@ ��� �r��B�(����@!�>��dB��F�YEQE�
��0�n�a�QAfXY�QEQ@�0�a'hq��J��������X����QR�$�Y�,K
(��0�I a&d��Jd�������!�0��p	���B�D�!�$��L'
2�H.�������K%H���&� ����%2d�L�B"IED��H2I"@#$&	�L�B�E|�_/��& �������2�(��(����(���>�����J�*++(+�����������*++(RWj�*T����������m�I]�++(R���*T����K,�8rI	"d� � `�&d�/2�I$����J�Y�	$�@fff$�I�y��I$���x�<,����F��"�2B@9$�"�2H�I%$8HH�)#$$Y��$�I+�U������I��	H�)#$�"�2BI&ID�$��D�$�II"H��������x����1����<y<��p����������<m<y<sB����t���+�.\��UV�i���r���/mUnYU]���~��|���6���YK^5�Q��Od�68X��#��;2�<2�"����Y�Z�M���]�wM��uL�1<��k��)���Nn	u������;�|��3+s~w��w���wz���x���,c�2d��c�+�1�1�c<x���.�r�g.\��i�\�^\�|���?M������o�nH5�����������������p[.�{Y(�f>������F����E�����U�h7:M6��qL��i+\N�A�W^���|.�����R��-��>����K^s��[��m]�x���^1�c2v��1�c�c��1�<|��r�Ni��M8i��i��i��i��|��@�����:�Z������������N��\s)���P�]��0�	��_
$�����3��wh��zm�j�z�r�q��������Z�k��N:�\������%�um-
<n6>?O������[�1��;cc�+�1�1�c<x�M4�M4�M4�9N\��M4�M4�M5��s~�C]��q����-��7o�%R��Mek�&6����Z���]h��\�[�/���������E]��w����u���n��!P�jT�(mceM��>o�����x�1�d����1X�1���c����i��i��i��i��i��i��i�$5����9���][����=ec�*�b]�2��l��ms@��`;�"��i����<pd@l�6.�m��R��f��
�R���y}%eG�RxfN����}�w���'�c��'lcLc�c�6�1�c��i��i��i��i�p�M4�M4�L�������s�{����m�G��<k��������yN�-�S���N�&���:�ZO+3-H����*gc[@�J��x�J�$��D����!g45W�i��>]�o���~�O��}��1�&N����1��1�m�c��4�M4�M4�M4�N�.\�9r���i���I/S�8�]�;����~t���RR�������x��<�J��R�kO�#��.x�>�O����[�%
�By������Y��������Z��yl�.����a�5�t/��z�����;x���1�&N����1��1�m�c��4�M4�M4�M=����M4�M4�M9�+�����s���t���uO�)VaB����7U<�r����M]V��e�%���X��n���;Ob�"�5t�6�v��k+�t|���:�K�[}1�[�s��{���N�nU��o\�c�L�;cc�+�1�1�c<x��.Zi��i��{9r�yr��������|R�|�������w_���^������iRm����������oi.�����w��[����������O�vZ���&��2�7Kgr�]H;�-�xc�:��]a�Z�.���un�&��]�Z�k}�u7��_9t����X�1��2v�4�1�V1�clc�<x���i���'.Zi�4�M4�K��-4�M4���I=�{��������~�g���
u�Z�rW�!�[)tU�Wo��b(q�W��������	|064K
'��Y���DH�Y]gq\�+}�r{�=��x�����?����y���d��ktDKD�w���3i����u���LZ�A-G�fT(-x���W�&V����o�0�~b�|�#���Syw����V��Qo��1	M�l�'=�7$���4x\���;7�`�u�|{:��r�I����U�;�=��\]Qge�{�b7�a���Q$t�x��7�$!��@D#{�W��"�������\KK����R%�{�G��u������a}}����c���a�������^x���5�,Y[�9��j�-�,���J�D�bZ�ry=]�rz��gO�vle�.��.1�x���U��������;90i�T���1<�����/��CG1�r���b�G�IOu��Vq��`[P^�������x��p���v���������m���J�^xos�e�J�
�y{�y���q3�gx��Y�^�w����	�j�q��D����:��y���g��<�s�z;���{�'�}iQ�;N�:�J�=<%�'$���d'��
���SxI��u�A��96v8��WyL������������������"�./9��/���\�N�O�S�3g�����]nv���@����������q�Vn�x��8���x)����,o4�nf+^Lz"���6���o�;����]r�xr�t�
�yG8�p{��������jG@�	YJNk�sx�tB�Y��sm�1���C^�$y�n�	���#��4�u���9��I�}d�c�foKW2�jp'��}��\��}����g{��T'{�`Oa#cSM�+�W�������s��]n����`:r�6��e��n�6�`X,g��R�To\���9%�N�@Dp�s��6��Fc�:������r�����LF���.�r����Rq�Q!����9�}ZR�4d�y��p��9������Y��/�����|���vw�u�}����5����8�d�p���L�
A��q$w$D�H8���Y'�I�r�����������}7�����z������>�x'�y���O��C��s'[�X��JN�6���O������g;����~xV�U�.�����jv�`��I�
��e�=���m��z����#[B^�-�����HX�����Z��D��;{�����C���E����V"y�����~]s���
r���^mAy�����N5
�JO#^����'2���0�,8o�����{���hB�R�Q�m���s�6��}c��{F2��?1��/�6��!nV���$'��,��&�z�#:Z�5�t�0��
��v4�W��c�����s}����k���Fu��/&b8oktCNe�v�pvj����X�����w"]2�U�o���J����ko����Z�N�:��9FN^��������4��Ou+-�S����Z�L�u4	]j��ys��g��9��^u����He����xt���k���v~�;T���G���>F�`ki�v8W^f�ne�pH���4`���d9��YP��c����6e_�j��S�_�2^��:�F9X^2����f�Tpt�q*���k����&��]B�M�&�;���Q4�ij�X��3���.��������X5���uea��u��5i;{~*�zY��u���h��Cg��-��}����v��������O����O�v����7{3���&G�=7;�%�����3+�.>�E\���xz���E�P����6��j���|���)��������d{��v������QRI�����5;������Y������e&,|j�kp���� =�!������c�Y�����l-[z����q�:�u��������n��>��J�w/^z��J���(���g��1wN��r�y���7{�S���V��e^�u�jWL��������{�����������xZ�/g�����Nk���~	���r��+��f����
c�e{����w_�mu�n�i�����a���F�]�� �ws%��m�>6��.�4(�{
�J#N�
�b������{��;j�<t��!�g�Moe�E��`&�' �=����	��O��$�S�����]������uf�<���z�=����mjQoM�����j�����u�
fV������A�j��,���j��L��3��u]r�����.4;���U&���%�[��+-������Z���U�[�����������<y��������������LC�}�]Xl�|��\�c��uZ�P1�c�5�������\�
���Wl���k���]v�>_�������H�l��J8�	%���$�1�k�]U��j���c���mSM���X��p���m�e�W-Wm�U�uUWd�c���c�-�m�m�`6�U!ER�UB�P��U eP��U ZEP��U!N�����T
�=�x�iHBT�UHBTU!ER5U
��Lke�����Lj��*�ePP0TTUU�=/���{�0�P0T
������
�hZ�*����MH��bj�*����`2��*����lT(*�*���z���Lv����X�2d����1X�1���c��c�?$��Us��U\�H�U\�g��t���,�8UW0y7$�M���,�NU�NU�H�U\�W	?�� ~���?<����2����{����
���]�i��s���g�OwogN����_����mOuz�)z���-���������S�X� ",���C����_,�<��=4��I">��n�o�Y�%k�#�m��~���;c�����c'����4�1�V1�clc�=c�^�#��jD��W0Y�Us��U\�Q8UW0XNU���8�H��6�n`�p��H�8��U\��D#���}~|��f��}���f�����������������;����\N�������eNf��]`Sy]0G�;�}=���������qr;�n$�>{�:f�3r�
��Nu�S9��;�y������o�c������c&L���1�c�c��1���A�I%iU�,�iU�(V�Z�������EH�*�������y���m6�PX����B���'�$�O��y����_�w�|�~_%�������\����Z�JQ�x�W�Z���?���o�oc�z;��+�Ay���;�}�o�/<�����{���;���m�k��G#���-���qr58��z��Y���2I>�v�������1��2v�4�1�V1�clc�<z�5��+�*�O�8I�8��c�;r��PTJ��PTJ��PRJ��PY"���V�Z��iU�,�ZUj��D?i �}��P�m3?3����h%�eebb�����J�i�v%�W��9j!��m��]��
76���Jl�H[8e�q�c�j�����v���'�����t�X,��]��Za�#���]�S�9�������d?�����N_�2d����1X�1���c���+J�,���*��+J�A�7	�-��"���"���J��PRJ��PQ+J���8p�O�?t�}�g��~/����B����e�Y�����,�j�+ftH��Fg.Pc%��W)������=�H_�Sz���N���.c�mEt�z�bx����g�:�z���������!u6R}���q~��2��S|����?g,c��r���c&L���1�c�c��1���A�V�Z���V����V��nm�m��+J�A`�*�$��V�q�Id+J�AH�*���H�$|������9�w�_�����I!/,�.�S����Z�m�N��CTJ��)f.zmD�z������[sS[���*{��p�Y��qyI���:p�e9��o�������y�y��g}oy���������>�||c��'lcLc�c�6�1�c��cNxq�d�$��M��NxD�i�V��V�Z��ZUj$V�Z��ZUj
�ZUh|��	i����V�Z��r}�d�S��?=�2����<s��i-�G�����"9s������O{�<�i��2p����v��s��D1�7�:��SI�j�w\;3x��O~T�"�s�p��4��[O�#g���jw���w���]o�����n�m�]��:c������L�;cc�+�1�1�c=cH�ZUjD��V��q�6�m�?8�6&�m��K!����R&�����|N8��R9t���V�Z�,�J��R']I�I8������~j���z��|e��e-U���Mk��[��9��~�����
d��`k��t��h,�W[�nU����YBOW��L���]�6�5����\o!G�;:/M�g(;�Az�w�������8�k]��������^�V��>�z��1�&N����1��1�m�c��X��O�V�Z�,%iU����V�KV�Z�,�ZUjD�I+J�H�$��V�J�iU�^#���$��V�O������$�<��y�����z�}�~���|gW����J�:���X��(+K����L���Y�ON���;�o�.�<���j�7IRy�������k:�?q��<�78����T�Eo��~�\��������q3;C�����\�|c��'lcLc�c�6�1�c��cRO�H�
��R%�+J�H�J��R%�+J�K�I�%iU�q$��V�J�+J�H�$��V�J�iU������������"�����3���[|EmY{Y|]hV[wm�'��j����I�0=�^��sP�@���C�PO5�{V�^����7�;:��jy�������{N����\��}�y�>�RU�A�0s����|�gW5��T�6G����%�{.�V���U��pD ��]NDX��u��E&2��Ou\������kfQk[5�j�Qre��Kr���h��z��;�O���<��<�&n�wkZq��:����[r���y�������`����EsxX����j���Y�������R�k.�_���������O�-g����xy ��W������d�Xu],Go��y�����v\��;yF�U�Z�*-Ldy�2�$�*���^6��.7'Na=d�;�c��o��v`	���������A����n�-O�q�Y3��^��z[HGT{���=tG�5@�[M��re���	�U
F��a��Mqu�����`���^��gl�kf�2��u<�9�c}n�!�����Y�om(���B��d�%���}[��jH'��Ym?sW���JB��	P�N��4N�����*���j@Q���r[p�[�ZT�umK������\�{d��B��S����W��T}�cZ���z�F�yr�@t�X��@`������&h'=q�s�0����l��mU�q����vY�����W�=��jq���7���La|�s�3�(9i��a�;}<�����0�u9g'����>���\��o;�>�c�#�$�i&v�^JyNw,�R��_�It��4�Wc���0��=[�����K���'(�no"�����{;��%� <T��}�K�.����.����v^ffm^��K�]Z��hV�`����7��7���N�����Rc�5f=z1��z���r�n���K9��h�G���4�������k}{���G�������������-\�'%��Y��[��u��k����zY�^s8t�Ek:������	��w���:���u���w�=����w
��C���p�����|���������ny���y�,�q#�	"�����A��w$��U_}��l�+`�j�5���:����n����o
�\�{��Kw�BM�]��N��?��y~7SQu�<�����p���M�����t�^�3��wZ
�����uo����Ma:y��t�������2s�"����{/�~S���~���>�]G6<}���>��m	cE��o�e�-���"��^��{s;OT	�Y�*~����u����"���*�=^���z� V^���>%���U�4F����J���:���u�E{$�w���W��!u��W{�{�%�;���	�]��i.��y��3��,�1S�����f.]+hS���|�$T�Ol�����;}}�2\����lL�W]�2L�OE��2�E���m�t������mhN�/oV���M���o��t�����-�v�`�;}Y���^���\��t�)WVk}���Q�i������K.���d�U�i��t�k8'}+�y\F�?2��h��Y�t�]��AD�����0c�+^�s������rw���c�1N����Gc�^.[���q�
��������b�k�WtV!=���(�,�����Q��d�8H��>G���/��e��zp�Q�������
+��{���|T����_����
+��b���rd������7f�;~���u�W��
����5�%���)��������~I{���R{^��z+��N���[���Sy�z�=��]6�w��g�b7��k6��O�Q�V5���_e���f�q=�F�r��`u��M��tU������������{v�y�.��k�A�����e��,T�w~��c�����]$+�_-�iq3�qg�����.��ysF�M�yC�3(W����6:}�������z��7��W~w���V�s���!E�����w�����iw�I�B������
"��Mm�n�L���WR�\��-F�����^���"1,��C��u�\B'2��l��Pp���"��j��[��E^u�������N�~�����Q#�[l�R���������o�����t��h=���v���]2f2�����]n"�P�������UW�}o��~����V���wg�����l)M=��_����u��>,�.���_jd�"���9e�����=�WMq�������\�1����+q.�\ x3��^%��uRvqr����$~�����d�q����|��x��w9��s������g����0f1�Z�P�uc�1�C^X�^[\����\��p�\����\����\��@z{��&�{��{k�1�mb]U��j���[�mV���-����s�����X�V� Z��d�\����X�1�k�1�c��6�m��B��!���HmH�-�	I,X�I�T-!HB�����U
jO{�lER�U!�R�U�HBT�MUB���S�eff��S��*����@�TTUlEP0TT�������@�n�@�eP6
�*����hZ�*����m���bj�*����`2��*����lT(*�*��:��u��N�:t��z��c&L���1�c�1�1�c����*�D�*�8�N"O�D�9t�PY���B���I�6F�m���V�Z����-��'��&�6�m�H#�$g��o?�~����E^���o���9lL�h9I�-� yw�9���Co-�4_-}��.MGrZ����=2F{b�����x^&t&�=�������4����r���
u��0j��������>���c���L�;cc�1�c�8c�1��1�>"V�Z��V�Z��iU�N�i����ZUj
�V������j
�J��PT+J�A��}��q:�=�>�<q�?uz��:�3|w�����zR��8��J"k��D�-��+��0��m���@6������=U���9���K`�f��
it��	����-\��e������������}�����z��1�&N��1�c���8c�1��1�>"V�Z�K	\��9�9iU�(��V����n[m�,�V�Z��V�Z���m�m����$#����wg~�~��.���zU	�n�BJ��s�������K�
���5�{�B�b���������e�
z����/��v���
�k*��F�J�%c�1�u�CGn��{�u���M^��\�����V�v���#���L�;cc�1�c�8c�1��1�>iU�*I+J�AD��V�Ng,�M4���p)iU�3�,��Uj
�ZUj
�ZUj|�I�-��>�>�����|�w���z�}�|^���?�v����5[��-�>kZ�=f�s�t)�E���,YI�����C��1C����Yi�}�p;��i+����P�}&��(w
��[��r��u��8�Q����o_Y�1�d���1�1�c�<c�1�c<z�|���\Aa*�WY��qD��\AdJ�U�&�I�M���Y��q�*�WP��\A��D>��7���5��`?��?]�O��\������pwe��1����F�_f������N�5Bt���D��VG;���79i�N�^+53��u�`��9���Z�K����W]�{�w���������v���c���L�;cc�1�c�8c�1���q�*�WP��\ARIU����$l�m�-���Ur� �%W*�
IU��x�6���AQU���������������w���&5xlf�t���j�U�|��m����:�J��y��n�t��;Sh�m�U�����"je���9e:�Vt����;�J�����Vp���.�Mm��+Fk��}��������#���L�;cc�1�c�8c�1���q�v�j��9����WRIU�������qB��q���\Ab*�WY$�\��,EW*�$��}I>���8���o���~M������������lF���-��{�L��d4����%��zp�_������z3�-m�<����{���z��z`U.>Ku�����wy���/�V[�=��������<����#=�o��UW����c����z��1�&N����1�c���1�x��A�
�U�$�\��:�6��r��,EW*�
�U����Ur� �$��\AdIU����W*�
�Q �I��y����R������&y<=���Y^�R��2�y[OMW�������v�+���M��K�����b��{�����y�GE���(�������*zT���:sri��>��.�$~1���z��=|c��'lcLc�1�x�c�<x�� ��U����Ur� �%W*�	U����Ur�;�$�m�n �Ur� �\��,�U��^\H���$~����u�Y5�����nC�mv�Y�M��U�/���Kyg'���Gm*����]����V�n���e�����k7�4�����}f*x��t*y��7����,h�:�y�����Mu��.�I��[m���#���L�;cc�1�c�8c�1���q���U�"��q���\H����J�U����q�J�U�$��\AB��q���p/�;��k�����l?k�����:��<��]�d�X�r��[�X�t��xr�������%Xw��[���Z���x�x��|���K����j,�:#>.�.��3���+�1�g#���@�������e�rZ�����^���o�u���e��Pc@��S�(�	��R���hIe���=Ri*]�N�B����]x;r�aT�j�������!�q������|�5k-O���������GE�bZ��z��dl8U(-����f�d��V�Z�Ou�{�{�R\7������e�(�s�0��w�.8��gc�E������\���������.rp���wt��KU�����f�(�8�Kt9._xf5����~��<�AY�-~�c�@;N2x����(g��NlN�'���[�C�<�T�]]�8���[I#��������v#�G��(�G���e���\��`���ux�����Ta��iZy�gE����]�/v�����]�5���3f�w
vG]�uy���G����[��2�����B�a]<'��ZO6*����z��rd0�^1��G�����m7�Wt��^U���\<���F)r������'t+���z�t?;���c7Vv.6,����9�qf���������y�����E9{gC�5c�j��!�"zj��Ds��ZSA��k;����^{�7�
/����be�n�r�xC1��������1�S2��������@A��^�t�<	�z�-�������y���:;�����z�������}�\�J����
�r�����p���wC�B���'���/;�8��Fr�[Yv������������p�)��6D6�����v�4���5����<�����9elo9�_JCz5����B>��v������*��t��r{������c�]e��u���fa���}�	�z�+�������$
��������~�k��#=��y�����K���f���z��m'^��'�����G�~��t����t�}[Y�:s'���r���~Ko��*[T�S[k���J�u$�I�A�A��~s�S��'�g��lFr���3���f��=�o���������z{(��h��q�����G�vQ�����H�/'
K%�=���t0�����w3?>��^���]���6[��>�`>�b�
g������g� ���F��=<���Y~����y��c���[��.vk�0o��;�k���g� ���z��<������M�v��8�8u�NOkQ���	���v��Kyo��5\��<�/Q��*R�p>��������w�[��~{^���N�IF�X���3t/�1�o3w���G3�sr��+4�V�����Y�l��ke�,��Bx���',$�ZzS���;���!����^�%�}CI���������K�+Y�#7���t���	������"�Z�������X����������������S�BsW��f���W�z���^��U���q����^X���%K���y������0�ox7}s���I�`$���������:��WS�U��s�A��U�y�}*���^��a�U�Y�f���V0p�9��~�J��9����wxw]�����������O��[{���J	&�����������|Q�%J6�����!�Z�Yy��q��������O���mF7��U������.�	�4��o�Zj-��[b�,�3��D������'S�;�i/z�eN���M:�e��q�=1��e�0���e�n���;t�4]=��(�]�J�4�Vg��n��l������9�}�u	�b/�d�K��	l����[k�,.]�R^p��s��\����Y�t��f�*�����x�]����{Qo�`��m�}K��� <0�K�)�F�-����}�{�o�]XI�2e����pJ�aP�Atm�w@��s��1����
J^�����f��@z�Zc<��n�
�WT��mJ�l�sR�g^�;��]��
+��n1�5����w�k����������wYW<��Y��:��b�c������|Y������~;M���)ASHy��v`�������������\�EhcaL<4o�
����_�.&�������������������w���s��x�N�[�u�����'�9���}��������T�/�9���)��bJ�]�'{5��W����s����l��i^��@�����M��H5�����J������.�z�h�`}]����+���}�?��{�>p������R�����>���d�c>O@�q�1�`�:�-�h�1�J��Z�����@5Z�P+�Z�P��Z�P�uZ�PP0���!4[��@;:��1�c+��LcUP��Z��l��4�m���k�`�8�V�Z�q���%Z�UPvJ�1�[X�1�c������� Z�B��hZ����l�B��H����!	�vv��*�5'���"�B*��j������!�@���@�T)�l��3[T)�U@@�eP�l��*��"���zz_oic{�E${�I����)! �$�
���-U@�eP0T
�@�LMU@�eP0TU�@�eP6
��UB����
��N�:t������L�;cc�1�c�8c�1���q���U���&��n[q�*�Ww�M������\��(�\��*I*�WX��U�
�U�������~��$�5:�����m���g���{:[N����U��I���!��hb����7�G��gy���v��<xi�t�3��D��
&N(��e�
�~�9u��+�_�PB�\(�q�����(��e.UT�r��=}{�1�d���1�1�c�<c�1�c<z�|D�\��,�J�U��c����r� �Ur� �EW*�H�#qM�m�H��\AP��\AH��\D��I���BI'�H>fh���b��F�q���W����:oq�V^#�������$��gYX�L��{0���E��T����L�bS�h����|�sP�Gwz�Vn��9��������p������=}_>_w��=c�����1�&N����1�c���1�x��$��������	U����\��)\��,�W*�$Ur� �EW*�$�\��,�U�������� ���z��'�x�j�>]}����=jk&�7������6;��l��	�y[���2a���W;=�1g�������o(�dj������0L�7&NV�*�/e��;�Mc�]N��+k>��oM}j�y��'�x������z��1�&N����1�c��c�<v�� �$�\��,�Ur� �dJ��Nb9r�\AQ%W*�&��W.U�IU����$������"Ur� ����A�w���+��?���?\&�J��������D�����1��>�
���K��*���i������Z������4����nR`2�5������vT�u"z���&[�YH��#��
�T�O�w�����O�z���z��1�&N����1�c���1�x��G�q$|��n[qB��q�%W*�
\����E�GEr�\Ad��U���q\�����6���A�H}�g��N���h%_�G�FXW�.��us<�w�����"P�����X�&9n�u0��w|ef���w6�*�
s��s�,�m{���j,p������=�Q��KS:���&�{��e�XJK���~�����}���z��1�&N����1�c���1�x��"jp����qD�\���q$T�Ur� �I*�WY$�\��)$��\AdJ�U���q�IU����I�A�]�w>q���9��3���{��9������f���UK�6�;���#s���:��]������K�jNWy���8��`� �g���9����a�E��L����5���Os,_^M����m�����R����}_}��}>�v���=|c��'lcLc�1�x�c�<x��I>	UU$�"����*����UUI%����KUR/��*������I,�*�����}�U}�������{�i^�u?]�����n?�(�����z���~29������UHP7[����^l�1����u*���C�%��t�;���i��Y.�$���J���J���������j�SJ�e�$e�#�[�W��}�}��||�>����z��1�&N����1�c���1�x����}�#m�����%����JIUU$�l6�m���*�������K"J��$���m��J�J��$�A�H9���'���x��������;�������h��i���T*���0X���T��U
�kI����=�3W����YQ�&�����u=|^������n����X������[����a�}yK���2��.�;x�����c&L���1�c�1�1�c����$�"J��$�UUI%B��I,%UT�Q*����UU$����I*%UT�T�UUI'�d����r�~q}���'���{�����W2j��^�����(��7����������9��/��$"����rx�a����������|����������������,�;��Pd��\�����8�/=�3�y�^�����v����_�2d����1�c1��1�<z�O��URID���K!UTy�I�������UU$�"��I(�URIH���J%UQx�>s������'}k�u��������Y��7���;�.���fq�oM�����]�':	mn�|�F�44�vv�,P-�8��{W�����s�Kw2���f���1�uiIvJ�j�����g�X�*Ll���h����rsr���ZvC��]��[��c����S���LU�n���}��cwS���3K����k}��9@�2 ��c��l�������LbR�`���)��[����g�����=/{�w�����n����L38�������k'a�}�{��G����sv���8J^!�\��W����{:����_#I�:[M���\�S���e���&��p���L�����r�;{��DU�����CcGk�����*m�����.Nf��
�#���]f��a�q��.����R�:�����v�rzQ��k�����|�1�Q�Y"�,j�uR���9~�;�'o7�����f����8<�FJ����/sz��'^H�����x���V5
r=�av�������)P��]3u|��4����M����>{�;����^K����$[-C'B���y�F�s�z?dE��Ri���=o����{-����5w�K���7Ku�����������fl�W|QK�#���d�6q��2����&"zH�q�y���r�j�J7�R��P~R��U����{q���L���<��ec[S�v�z���?JR^��(�#ALu��I�
�Q{�_r����Y�w�F���p���|Q~Lj�����=
��]����=������9:���N������q,P+c��[�c^Zy��nk����u��[q�X���t�\���:��������*y{y�8g;�:y�i��O�)~}7������B#����{��l���o|��d���:w{���lZ�t�����E���v�������A� ���dZ��L.����CH��Y.C���#�Gz�W]>���c�^��]W�.��_v���e=�(��TtWu3S%9	��[OI���Y/�T�����cRm
����{=]�?{r���.[��������u{���z�pp�!'C�$L���
����������~-��j����X��I�&�_f���R�sr��C��Z��b�CD���4g�m=�R9W�2��fgOe���a��l��m@�#�.���h���e���u@��-�������I~W�����j����R���(hc�=�A��^��$�c�4^�L�7M���i��;�>�R=��J��N��IF'�ufZ�.�<��wU�t�����,��{6u����'��e�V��p~�dm��KYC30.�����]������|��MF��]�v�(q�����������^�S��CY~�oY�j���}N������v{���Z�~�������{�7�w���M�'Q��-��z��tf�f�K�:� =��9xu����,j���/�Cn����j*m*��d�y,R���'����'V$P|�e�)������2�!��t����>��Y�Xo������%W^�g����/k���0���n�vN{�g\F��K�jR�m�=��5������(�n�}f�P����^Q�xrm^�&\��;\��r����=�1:���-����l0X^�'#��n-��O=�^�Z�����~G�s���s�)��)�84}�����/V�{kkUvj�T{����^_[Dg�������L��2��r�������?@B�v�\Y+�/)�O�q��CL�R�B��2�|�������.�!S�������V�K���6�E^�2yR�Y�C��&dQZ}w������\;z�3%�h,Q����������
9�z��7��apT@O��������@/�`Q����,������#��q?\}���J�	%)7u��x�_�{k�{����������>��R7{,�M[�O�I�%���������g���k�\�QQH*����}����qtnV���-�C.Y)^:9G���Mvz�W[�^��Sl#f�_�-����Q���	�����X1����O ��y���&E��:z��*jT��V���������'�u>��7�-�\���N����������G��1���p�7�����o=�{�]pn�������������}[~����>J:��b/�����������3r��k���'	��u��Y�������O#���9�q��VJ��R������=���U��9Z������u���C�y�'�O��� ��`��U�sp��jY�����7)�+5�11�.�������3�������W��������v|�������/{��LC�}�Y����=���1�\����b��1(k�c�k�@�l���W`���k���\����
�`7���Bh����vv1�c�:��\����MH��)��T�E��3U�q�8p��2�U���m�%Z�UPvJ�-�[X�1�c������� Z�B��hZ����l�B��H����!	�w��x��������!�B�� Z��UH@�T�MUB���S�eff��S��*����@�TTUlEP0TT�������@�n�@�eP6
�*����hZ�*����m��BRbj�*����`2��*��UP6
�
�@@�o�>�}\���O^��X�2d��c1�c�1��1�z�1�+�	'
�R*���UUa*��EUU�*���UUQ*��%UV�Q�$��������W��>j�7���s����$�2>v�p����6f�lK��K��9���D�����,�VuY��Fp����F�������Jc��y���.y�l�
�����������w�\q��:�$��<V����=|c��&1�p�1�c�8c�1����V�U$���%UU$���%UU����nCm���UW[$�m���������C��~��s�/����A������{_l���k�wP��V*�����{Z�dm�NK���]�e{��*�l�.��#�u���\�(���@��iofdo��������/WC��k�#s���7�����6�����1�d���8c�1�c1�c��c�%UU"���UU���M��jEUU�*���UUEUU�J���C�$�������8���8����?Q��z��a��X�?�e���z��U�O�aXW���e<�U<��/;3jM����4��w2��}[��|��������N�6���B��j���zk�;�}��3]���y�����N�?L���c2d�1��1�c�c�=c�*��IUUa*��%UUD����UV$������IUU�/#��H�I"~V��������Yg*�mm����w������f�d����fc���:�ep�6Q�������6��n��6c���a�V/zI�CU�%=q���Vz��w
�.�c��z��}_>����n������1�&Lc��c�1�p�1�c�1��UUK!UUb*��EUU������J���UUb*��%U/�+�U��������W���}w��^LY�eAS�O��uf�O\\|i�6</����/����a�����^�2��o����[��<t������K�5(]����A�[[Z]��m��+���I�;������8��k��������o����c2d�1��1�c�c�=c�	UUI*��%UUUUUT����"Ur�IUUD���}�!�I�������>�$5Z�����]W���{�{:�I30����B��_;�(	s�y���J���K����t��l�6����2A3��X<O
�B#���tuP���v���jn�[R��_W���������������L�1�c�1�c�1��1�X�7��m������������UV"���UUR*��%UW�d��{�����.��@$���YX��������r������c�wW�����wK������wv�%���^���9��Q`OhQ�;�{Z��{u�}5u�����ksV���|u��~:V��z���1�d���8c�1�c1�c��c��UUd�UUX*���J��UUa*���UVH���UUg��}�D��[��������'���Y��N���dc����a��IfU�����JhU��@��nf?��^���V�����6�v�_H3q��7��\�%f������|}>~��|�_�2d��c1�c�1��1�z�1�����UV$����UR���*��EUU�����U_Q�%}_�������N�Pi���sf=�F�Z�>��)WB���oe�5-"�o1�.�k������s��m��^$�_nA�u�,MG�����9���^�Oa�s���u��q��O����������c2d�1��1�c�c�=c�$�UU����UV���UUT���%UU$���XV�]���5~k�8���{��=q�\�?���{���_������WK�����=%�{�Ke�JwB~�?�+�/�<�%u� �&i[G��m�U�N�k��@�����]5UI�#%7�J���.Z3��G�#.���a����7}}h��
���c���8�"^�J�Z��g��+��+��{��\�n3�Q�o`�t6l�q�OGR�y�wWR%���qcd�1��= �+%]m�;1xd�����8D��a�{�4p������W�k���h=���v���!����
���Nyo���;/D���sw
������H����r����s*c�{*x����Srq�%�h�������^gs���N��7�8���+LsD�dJ@&���gZ�`[�
�E�ou�_�TXf��t�����xU�w�x��8W@HB�������j��n�$�[�\�_���.�]n��fksz�S�&!���d��o`]V:�d32J�����!����/�u:LUz�{��z,�����6cM-��kw4����@��W4���_e�����V�����}.�
��w]�k�5���
��WC���);��
�Pm>%�����K��Gr&n��\;�
y9m�|��~7S{��OL'�
�U��./�� 2��7�d����O5��5����[E����>s��02��}qC�=�H�=:������/��z�?T���:QK��5^8���he���E�j���.����(RIi�RQr����%��v�O�p�~���� ?SsK�y��=��/�N,RV��P�,�Z�i���]��G~����r*9�5�^v*����^5j���^���t�X�����*��5�RoX{s�KG>�*r�0W��n_5���o���P�=A���V�����[�G��y�^����c����az�� g*Z�wo�9��u����O�z������v"��+1=x���[v�������M7e�|0L�d�A�_n�.)-%���9�"����&�Sz����O�j��qi����V+��\{��v��0LU�[����<U�����[�� �A� ����$�N"GRA�A��y$����9�_@�!J��^�
���>Lg��h�<m�
��0�i�Z�����};�p�<���gX�"E�(��[�+_����}�	�[���Z~�(M�oeuL|�w�c��>��<ev�o�<��;zY�9�Z�#@�^'�9���C�#]u��<����"{=�����,�S������]�����q�]���������r=���g����O7�cF����t��wm(�DR��k���h�Z�VmB�h��@�
z�������5�=.������_X���U�����C�@�%�F�������_i���V?P����4�������[��U����h�$�!Ey�]��P>�����Y�.��%z��gY���zv���GTE5d���fv>��}a����j2�d�Y�/�My�y�).1���T��1v��~�s��B~��jI�mx�)Lf��G���e��VA����
�gb�C��Wf�vz8�dv���g��$y�W���u�Ag������o�(��[�j<��{��X
i
��t�>�B��J�*�R�K����gn;�*����'�WJY����~P��1�]����R�S�
��:M^�@:B"������?~2�+����k����]�N�Q�x��~�ohq<Snm�8�^��=�&vW;�tg���'�)��%���
gU=�����g�[�Hio�FZ�Ik�vb4�]s�e��zn_z^x,T*v���W�xGOQ�>�\Q�=K*����u��{�s�V�����a9&��xv��h]k������7�&�O�t���i\��:hv�7�vh#�)�<��VOs9R�#!�%R�i\I6�Z=���q)�C���i�#��7r��(->]'oK���:��l�*Fr�5Z��d���ZwQ]j�L��Y�q��s8F����>�[�+�n��K��|z��o�U��#7n�f����,�q�����!���W���a��v���>��������?�}�����@��y3�D�O��7<	s��^f}����~�]��':�]o�C�1�s9q�
Kp-.��M,�c[i�0q,�+���������G�!�����s�W�x�~y:N���;#��]���b7����6��WG�%���2&�V��\����"V=���{!�4��`�t��������6���������r�E��5fg�����������?<xZw<x��}>�Y����<P�]s1�`�:�-s���1�J������P�C-s��-s���-s��:�-s��
��o�-�����`��1�CZ����i��)��T�F2�3U�q�8p��2�U�����V��T]���k�1�c�1�1�5"�B*��"�Z���"��*��"��*��"�Bw��y�*�5'��5"�B*��j����UR-U SUP�l���YY������
�`2�P6UU�@�*���zz_x�E�B��z�`2�U�@�eP�-U�@�eP6�U!)15U�@�eP0TU�@�*�U
cUP9����u�<��N�:t������L�1�c�1�c�1��1�X�>!UU`���UUQ*��%UU��Y
��EUU�������I��:��~Yw����.�_��,�+\R���v�}��Z�����']����@�cf9n�y�����l*�))���.}1�L[�]�j������9��N������\�������������n�������6���|���c2d�1��1�c�c�=c�$UUTJ���UUQ*��%UU�*���UUbJ��7"m��}I� ������KY?,Sw�aPr�V���qO�{I�����GOM����
G2VWrc*D���#/����fwV)#�Prf�.�t�=�N���Y��K�D:}�C���6Xn�bN6���/r����~o�}~�#���L�1�c�1�c�1��1�X�>I%UT�����UU
��UU�����mbIUUd�UUT�UUg�$��H<|���������w��w��5��5$h�l��`?���vY���9�y�����5�6oV�.�f~�`�e��n�Rz�9��i����j�Qt�OR�����%�5������N���{(��������t��>G��c2d�1��1�c�c�=c�~��m����TJ��EUUD���%UU�*��IUURJ�����|�~�n�k�������S�^5��1��<�}:��w�x2��UE�F����N��fg7�����m����\�$���:������8��0/<pf�%���9nz���e�9�]��������c2d�1��1�c�c�=c�����UUX����UUd���	UUd�����6�m�D�����$�o�s���~q�q��\q��x���R�c��������E��-���H�����Z����V��t��B=��X�Z�6��U%e���b�Xs��W*�;o���]�?�������}�����>>1�d���8c�1�c1�c��c��*��������m��Y$�UU
��"J�����m���rm���#m����?RA|��s��{�^~��5>�n������	:�K6r���)����w���$2�ff�?�y��<��>bqfv��n�,x�s��9+�%^cQ��9Ss�]��t���wR�������������||c��&1�p�1�c�8c�1����������UU{�M��jIUURJ����6�m�&����j�UW���I���:���2�S������S\�E��/�I+�fz�yMn���Z�s=���X��w65,���Z��;�r�H��Y��-e��f�1������p�2b,"6\(�_UW�����>���g����c&L��1��1�c��c��c%UU�%UU�%UVI9�i��P��V
��UUb*��U_�W�}�������i����
���WP�b2a�z�����z�th�J���Ts�\�kB���
�M�`��f��e�4_T��,z^Y�S�s2�iA^�����o��I�<��:5UU_���������||c��&1�p�1�c�8c�1������$���$���nD�m�����N�:t�UU`���EUUD���!� ������k��8�{����u���/��t[������\R�-P���YY�9���
�F�]	��k�g^�\����b��J��lE����Mn�;Q��3/6U��!�;���������}�l~>����c2d�1��1�c�c�=c�$UUY"���UV"���UUH����U^M���m��&�l�?�\+�o��������6ove����>8�ZK|{U��&/k���);O�a����;����ZO5Pp�1�a�ZSY�n��W�D�3�Z�}�7zk�� �����E�r�tD������b/��������vG�-Z����S�~�h�����+�����������;a)LY�Ziv���Q�:��RSv�w������V1,��5������~9���)��#��A]Kt�1�2J��+�c�7U�����A�iG�n=VTT�m�y<�^33<���tN����T�l�}��_P��t[}6��u���#r;�d�)���k��))��\��WF��A��2���1=�����S�i��UsTL��.��s���������Bpe�S(�����wN5���t�{9��������0l�r��������=���Y[����{�>}�����VY�.����A(���o�;wb FvQkT�B6Wa%>&������)."j[%MV��I<���=r����+{]j��8��Lv^���M[C��('�9�I��C�Z��1��6�z]z�&�=��Ss�W�AYW�����!v+J�����\�Y���� �y���Y�����Wek:�dy�?x�vv�_��o�a���U��:���wT^�{����O<oK���/����{.�T+�����MO�h�������{��n�^[�����9}�w_��M�h��o�.���~�5F.��p���hy�����+{�2j��{vs�����\��3;�J����D��-��jY�^�P�2���N�}N�
A�������|�u�4��"�o�]hswV�n�J���-��WQ���<���sh_�����o|���/�Y����F!a�<�O���������2�k��V[U�%|��I�����J�E�dz�OU��m�on��9�<���0dL���49�F���N�G�\�9����nL�j���H-�4�e�wum���-u-�����������������t��i�������u�fO!��R�w�������'9�u��H7$�
�"~M[}���Si[J�jm����A��d�u�<�=�����:���<w�tt����xl{���
����<��:����0��9�:Q�c��,��9>|2�e{<#&���Z6�(���1f�6^&P��Q["DV���x�vB�9&��g������.�Wi����'X�������6��-�z�6.��WL�����d"���:6mt~��m�����Q@G���Q�����;�����O~V����ei)�`������K�6�Dty�z�]�}�h~I}�N1�Kj�xtl�3'��+.�u^���y����x��&�v���/9�L���V������J��������IW��+�N /����]��y���sS�^�����P���=�}�Gu8bN��cz�������M�yso���[������4WkOme��s8�I���+�{S�{'m����=D�b��H���Y����6�n}p�d��U�O��{zmb� ��<���U���T�����Y�S.�n��J�V��;������&�9���KVcO��3Y��CW�s���&*��q,����^Z ��|%��y!�������k�^'\���|�����{������f.
��+WFhvkTz�u����X�d
����a�cWt&g4�����%���o�v��q,s��{R��^�a��i����wbfm,������<��%w���
���2o�e���d��W�����y�M�z�{FN�Y�{U&%�t�^���/���^�����J3�q^�hn���+������k�^�*�;����$����Z�k�&C!���n�%��������W�����T��;^u�4����^p*����]�a�n�
^m���T�\��G?��)�#Y���8�[���j�s���	�vz��5�o:�L^w4������9��7���� ���/�n�B���5�E���Pux9����&2L�5�i��Bky��^U�rG\�����e�8�?Q���jf���X������c�.�2����6c��F���u��������P]WGc����^������Y�
}6^�T��i�k���b�c5�}�S��j���p�k�^�s���� �����/�������[��nW)��@��z-���
���E��u5a��:c�w;w:���������%��opE`J��f��@�wx[�w6vr�pL����J���O:k���}_��������R��J��Z��JT������V���2�\��c���j��-�c����<���k���\��v�\����\����\��z{��&�{��gc�-�c�����T-!�%6[j�h�Vfj��0c�x�Vj�q���*�:��+�V1mZ��1�c�6�6���U!ER�UB�P��U eR�UlEP��U!����;�P�������U!ER-U!�P6
�B��Lj�
�B���+35�B��TTU�@@�eP6
�*�*������4�{��m����U@�eP0T-U@�eP0T
�@JLMU@�eP0TU�@�eP6
��UB��TT���N�:z���1X��&6�8c�1�x�1�1�z�;k��V��ZUX�UUjY$��U"���UUP���$���n$m��~�?Q�$;��k�����o��������G[Z��h����m���f���%�����<B��YVK��w���7s�
�d|IR���TJ�&�A�n�������>�����|����|�m�������1X��&6�8c�1�x�1�1�z�;|��UT*��d+J��Cm���UUT�UUTIUUQ%UUI%UW:Bd����k��W�%���|���&�s���d�YKIV�KO�N��Lb����R:��V��������f��)����=�	W� �+�u\1��b-��wl|�����^���}U_������>����b��&Lm�p�1�c��cLc��v�UU�����UU
���J��"J���J��q�UUY"��������U}���=0x%S�1�x�iY��Q�y�U.���Z�[X���
����z�)K�>*-�:�fQ����O��g�k�WZ�w.�UJ�,��)�Xn1�����
�]���y��8�8I'�������_�c&L����c�1����1�������UUd����UUX����J��'�D��N�,�*��$����@�$s�����o������>�K�9Ha�n�V�X�U�0w����R��ws/�;]N�6:g<XJ33n�VR�����W���v����ng%E��mB��FXY.u���G���������1X��&6�8c�1�x�1�1�z�;|�%UU��UTIUU���6�m��m��
��UU����%UW�HG�H>s��9��s��q�~+��e���c����'e��;�B\�������k���{e�s�}�zq����c_KV-������u������/]���������"����Q�u}U�6����>=|c��2clc�1�c��cc��c��J���!��m��#m���UUX�UU|�$m��YUUY"UUY$�U]��#��}�����3��z�}��y�����N\�2���Y�'�e8���;Wceb���gc�RV�^QX<�vb��������l�V5��J���%�d��y	��
lJ)u�}U_�����}���>>1��L�1�1��1�c�1�1�c�1���6�m��UU����nCm�������UUP��%����%UW��@�$������jd�����-�<o��Q��8H��It���������z�L�o<��c�����we�mQB�a�����Q���w+�e]fc���v<kb�G��t�����eW��|����������b��&Lm�p�1�c��cLc��v��UUY
��7!��m�}�H�:t��$��
���J��#m���UU�IUU���A�x����8�����v��^�����e�)W}m�����H��2%��RQ62�c��^����G��f�c�.R���b���*5n���;�����W����.��a�(�������v��o���_�c&L����c�1����1������UUR*��UT���J��	*���UU�%UU�>�����g�o���?9�Z�y���'�����n���j���YI�cC��|��SC�r����b�c�9l�bW5�J�We����`;G����v]���S���vw�|����"|r���?X���+2d���c�1��4�1�X�o�J��*��I*��I*���H�m��b*�U����UU"��|g6/WyR���[nB��*0��,���7O����+��q��D'(MMu�Q�T,V��r����D�14���Wm�V�|��kwfR�5a��[�N�Y���eV�k�Y[.���{A8B68�&
8BP.e��F����c	�����3vP���V�u��WH��x���
��f(�t�#Z>b�7�m��P��r7Eu��h�[�:�����i�{�/j��g(��U}��)��g$��9��\���|B��b��_VJ@��r�_G�{u��j��y�6�Z+��j�24�Tx�������a���/$J{���N����W����7?$sBV��;iO_�5����������g��18]����S=���:dKw�P������1��b�Gf{�#��
�q*S�!"k���/�<�j��s��p�Rr#�&����v�T&[#���d�_2����F��b�������������*�w�a1�q._����6�*�5-�f9�;���������t����\1�����E�IMY�'4-� SL�}�&�gC/�LisN��/^z�u�����6�A(:�uFb�9�f�v]��Rmq20�� ��r����7���
J���3��im��V�.��(��*���k��d���F�eR�!���n���1!t��R.��>��V3��lr"��w��c����)S��rw_	Q�������}z�h�}�RDrs���Xg{��B��3�T �Y����v��Mrz�:�������k�����w8Q���7��W�{e��po!�3lg53-r�O6�!�H�g�z#�����rT�5��y�V�
��J�T��[�;�N��)�l��3L&�������F���T1O
d�k3AH#rE�h�g���YWH��i�����yx�<{�����.�@vY;��nf��-Z�&��J�*��*O��K0rc����%��������5;����2>��]L�����y���P�q��#���s;f�{��Of����M�S���������-V�J�3�'[j���t����'W-��!5�%m�9:�ea���
]�){��d�E�{���!�T�X���RA�A��w$���~	'�	��-���M+*�V��[o�_}���v)���/�/l����,��6VD�[�:{�I(�_��Fg+f������^Y�������3�	��G�EY�9�����NE����C�N��f�E��
������mm��,P�]�����ta��vl��>��;�d���F���L��(}����J��/Y���]�"��0�K�����Q�|\c-�^��;�9�@����r�\])
8�0�a���{W�)g����T����;���X�%���Z�skz��gE\���pB.�L�Fx�h�Y��i��\����3	��4F����)1�����{����
�\f��\\�b���o�r$H1s�oV;�K�����=�x���\9.�5�o���pP�6�8q^
���#!S������aMv)��,��M�t�lB���y�j�l����v�/��{��`�J�4A��}7i�r�i�����Fl��OyK���g�����yD���|��t��vzz-t��a��(�V�gF�k�i-���s:Nu�m=r��
������]�y
���}/;X;Wnwt��bH�7]�W,]�)|ZK3YW���cn��z�c[�&\��r����*����>-
��\�y�-�O4�j�S�4�x�V^�G�<[�
��9��s���n��1�Ve�J��;�e��R��'��$�yx7�{r����p���l�������4�iQ5��x�v�{��@l[��g`*�����3��76/e��/O6���vm��wS��l�+]X�`{Wn�^dx
��h�����q�������o�OC����O�?A7�3K����+s �������*�7�j���c�*����Q��v1�!r:LV	�����V�����x��gF46���/f����{J��2��AVxz��c����s�i��y��g�R�C
w�p��W�g������u5�*Bk��?G��=x���~U�dx������n	C����:[�fZ�d�����ej�o]��^��,���`�r�>�nkkj���P��3��q����*��������������u|5*BR��s��}(��O�c�����oW��]����wB�}p%�/���������������/������[_�^jr��:I�}��AY//&T�������!�8�����T���r����:JZ����va�L����s%�l]��<M="J�YZe]�a����U���o�����J���+"�m���1��n3%+��2�\��c���k�-�c����<���k���\��v�\����\����\����m�M�wP��0�[@�!�U
cUP��Z���m�i�Y���8�8p��2�U������\��C+�V1mZ��-�c�6�6���U!ER�UB�P��U eR�UlEP��U!����;�P�������U!ER-U!�P6
�B��Lj����YY������
�`2���*��UP0TT(zz_x�E�B��z�`2�Z�����`2�S�����`2�U!)15U�@�eP0TU�@�*�U
cUPy����y�\���t���N��z��V2d�����1�c1�i�c���"%UUH�UVUUY$�UVB���U�TIVUTIVUY	VU���$�����������E�:�y��5�U����Y#����*�*�������/��[�ub��Wx�+������I�L�-#����C$In	LlF`�^FcD���B|i�v�}c��1X��&6�8c�1�x�1�1�z���%YUH�eUH�eU��eU"U�T*��RIVUYU�VH�eW�H}�
{��z����\�-Q�3,�;�����J�l@��P3/����:�fn�@f����$�f�)��u���ZvT��^��oU��������[�F����	����%����s����$��^;v����c&L����c�1����1�&;|"U�UU�^m"m���
�������D�*���"m��jI*��%�EY����O���R�����g4�v_��(����i�tb��X�b�a�!Q:]t���:�tQ����v���}������u����(Ce��
���������EJ�:��9���|x���~>�z��+2d���c�1��4�1�Y1�_$�+R���U�VDU�VD����U�V$����M��sm�I�F��mAVUu����������������0�2/�wga��:t����v�]eF�\oMv�;fVa[}���;��{L{���\��Q�������1�;�������M�[�u�h{o>���	4����x
�:s{�\��;����>[����X����m�������V2d�����1�c1�i�c�c��%YU���nm�H�eW��m���J���J���U�V���U�^�N��� ����y����y�������y�;�j��+�����oE�)������� ]1�]CR}.�b��}�sg|G6�uj��o*�����V����u�g����$��.���Ef���n�J�8x�n
j�Y��C*>���Z���-�]����������||c��2clc�1�c��cc�����"���U�TJ���U�U$�*��*��VUY"���eW�A�H:����y��~N5��5�[��a+���q���]�������|�J����b���u3^!�oWva�ve�+K%=;!����Rm�X����r��'F�����x�-���Vn�zS��G���f��77��n�g|���m���z��+2d���c�1��4�1�Y1��eW��m���B���$��U�	Z�U$�*�*��$�eU�*��}��H>[;�_8U�;6�����VSw��u����[Ly��^GQ����D,��XJ����SL�$�)a��M*�V���)[����fmgv�wWS"���0W�U<�&�4��54�
n�����J�-������x������b��&Lm�p�1�c��cLc���	VUTJ���VUQ%YUDU�U	VUXEYURIVUR*�����D����_�'������������s���C%sNG]x��S�v�OU�<�,���1
���D��L�X���P�yB���������i�����v�z�5�&��T��]�x��K�������.�������m�t��>=|c��2clc�1�c��cc�����D�*��YUdIVUY
���U�VD�*��M�6���eU�J��Q��I��w�
���_O�(Fa�thK�Nc�	-�����*�x#���W���S��G�y���qk!A����w#�k\�d�i�%�5��2eZ�f���]�_-gb�q��e���yf�tT�NaW]��$|V+�����_�c&L����c�1����1�&;|�U�VD�*��VUQ*��U�VI*������*�����������2�W��Y��M�x�����C�B�#���gU����������=�c(t�-����.��q���qVjZ�z���	�{F=��"��������g�WWU��wec+6%@����w��>��i�R=��!4��/jY�t4l�'\��}�;K���C�������_s_
�X���o�yt>b������;C�[|��0�Sss�%F�����m�c2L���EyK�y�k��	��^o��S��D�y�-�o��s�R9��"&8v��Yz�n;�$���>@P=Lu�hE�M|W�Oc��J�'[�K	��Q��Os�r��9
f]D.�x������[5����D�����e�MCgnT����z]����g��OV�{��=�#�p��O7����������ZM�BA��������������\��z��_(��:�x�w��y�OC���^��,��bGG�.~W����:�7�c�V�x<�~L�;O��^	~m����1�<kb:1��Z�g �gr�||R�:!� �#&�=��H�g���AGq��z�'7��_��w/J�4{;y-:���7f�W�D�r[E�e6���^�kci��;:�����IIR�MdYql����y�
�������8�/s��:��(��i�p`f�w�Y�/#��5����{;�s�o ��N�F;wRTrp��sv�_;����X��;�Xi�hXG�a���D/���!rk����]��W�ZMg��.{1l���F���zwu��\2��X�[��b��v\8�]8��3��,���T%3�+7l�
a������O!�����%7�<�:�7 �����SI��33
u�qm����3�}��k��W�&1��R9�j�����+�cl��
7{R����KXi^��xG������]y���r,UT��2��S8{5z�����4�wL��)%oD��X���sM���^?t�������f
��xq�UV���#%������u��M-�'�}�:���9�!��7�|KRc���gmh#��Foy������C�k�;�=9�8=c�nO*�c�?�T�����nH,�d�'RA��?8I���i������e-���ek�U}�������b��-p Gy��3�5���X��M��?�U�j��yu��U��4�����Z����3\��LEi2o�^�o��<Hom��V���j����������	@���_�?�^���WI;��k�����������ff�����p��.������*����N�Z�tNy�6U���CRG��S[�n��<�����' 
�7Vs
a�fa�-���jlk�~��n��mOr�.�W��{��J�RB_|�Z�O9�L4��@���eN�����>��.��x���|���-f�)�;�LP���R���FF�d%��l!�0���5�:������#2q�O�gW�����{��[moa���s�F������gql�S��v�����o��O��i�����8�E�+w�#��`�]�+2n�+-�>Kr�dw������ob�,Y�G���n{�.:�iveb�W��K"��Wn|t��=���u����|����[�`~�lWn��A���SW��XS��+3��k�����O8�E�c�e���`��h������ �qa�=��� }<x��X��|u�^�'{�N_�����-a���DX~�xz�Qa������uC0����j�k���v�]���<&����@�U
o����u�:�;MfZ�`�({�,9�f1y�g�q����|_@��):={)7����{&y�,v�#w�i�
>7���o~�m�n��v�i/C�,����|1��BA�������e�N ��:9��D�6��,��to�����tfR��mzrmJPJ���g��s^sP
d���K��������z{'R�4��=��$y|����=�������~��^0�����^��=c^d�co+�:N��-Gu��a����x�o��7k$hV�.��Q�9��.Z$��d������o�kq�RnG��=G�c��l"�d�����L��<�l������M[���-���`�M���q��s�3v^vf���pe�2�#XGU[�>}�K��]
����@xzw��"C��q�|g]i������:������WH�Q*��w��3"��f�-���U���]����lx�]�q;������4������X���;~�
�s�Tu*<vP��.������:�L!t�����}�����~�O�_�����A
���!7�>����g�>7���c�2�:�-�`��1�L�+�yms��!���������mc��k�@��T���x�-�����`��1�CZ�
�B�k�Se����eff�\�
p�����V� Z��:�s����X��k����c����T�!HBT�m�B�TU!EP��UHER-�;���U
jO{�
jER�U!ER-U`�� Z����
�Lke�����Lj��*����
�`2�U�@B������4^�(w�*��j��*�)���*��j�	I����*����`2��*�1��S���<��<�fs�:��u��m��O^�z���{2d���1�m�c�cLc���HU�TJ���%YUIVUTU�V%YU�nF��mRU�U$�*�:�����}q�Z��]cy�.������,1�����/d�ko!*��A����M��
�T�T)39�6��������E����3��\N*U��,��,�I���F�R��~w���������>>=z�^��1�1�cc�c��=d�k>H�nm��VUXU�UeU%YUbU�U%YUd����IVU}Dd������s��9��g]u�og2�L�X�2b���N�����Q����E��{��N�������Iu�j�My�HbA�f5[%�+U������W����:��CT�w�]8$��m�<~>���������c�1�1�V1�1�c�Lv�$�eU�J����������*�*��*����H������*��>����r���������=��9��g*wjK�B�V�W����+R7ZgV���L�����'gm�!������r�l����k7�,Eq��n�Y�YSTD\�H�0T^l������}[|v�}z�����{2d���1�m�c�cLc����6��jJ��sq6��k"���U�U*��%YUJ����������U_}�~����B�?JU�m�%>K�����J��,��F��P��Iu�	��E����8�B��f$��p��Wug!�m����w�T|>��U�^���<��m��w�[�4�]><~>�z����{2d���1�m�c�cLc���I*���U�TU�VD�*��D�sm��G�����]D�sm�J����*���A������{��R�~����m���f%����jgF����yf!M���)��m>w3$�EM���I,7;(;�����AwY�K��VQ����������s����[|x�����^���&Lm�c���1X�4�1�Y1���U�T�eU�VUX�eU�U�\���q9s4�EYUEYU�� �UW�}����?�_����~qP�Djn��F����n�5��f'�3��d%w+�}�Q����mw32)L�Eio^�$����E����S��N��jm�)�]�&�SV���y�;����5�$��/�_^�|z�^��2clc�6�1��1�1�z����*��YUd����%YUd������'N�N�eU�VURU�^}�$���w����� �y@'��f��9H�d��!�o:�����xL��}�\�����#����oLt�qe���+y�S&��f�.*7)*xb��e:�N�uD�R5�iG|����~q�z��i4�n������^���&Lm�c���1X�4�1�Y1��J���*��U�V%YUbU�T�eUIVUY%YUb*���d�d�}�������W�����ux�_J�������D�zou:���r������ry��mW]�f3 +k�@��rk�=\C�d�S�&M��NG��;bu���������}�����>>=z�^��1�1�cc�c��=d�o��eU�J����6��j�����*�J��U+R��eW���sm�������������z�����a��q����i2���q�gN�c���v�����MO��o]�,�N��ij�����l��v�tpy�K4�E�6�l��[��B��<���8�����';|x��������{2d���1�m�c�cLc�����g*�VU}�m���J�����#[������eU��*�eVs�����L���s��o��3z�:N��7�q5���_u��a��F�/S����>�~���w
b����n��=Q���5���2�.b���\��t���{�a��0
.����oQ��38�����=ewfD��BR�F�l�(m������Y��mu�C=j�wG)�������i���s:�/�%q�M����A3������Y:��j�J��5J���|U���n�=����z������f�c��\�uy]�iZ��u���r�6����lB�OI�h�{����[:bK�;����PO��w{��������=9��#;�M�g+�o�*��
v�h�����M����x��x���P�D���k�r�#�vN���l�e����:�kN���r�RU5-E����~�:�u�}y	�����������)t������meH��L�lYu���iv���C��j�����>U~\�������^[+�*C��;b�7.�yF"t�s���P��M���M�^��6��^���#�o���,S����I*�9�JFd�JZ�"6"�c4�Cr�	���-~�svw�G	��.�5f�x��.+�{�Q�l�y�P�4�%�{�bc4��n+9��q�zU�*)&�S��8���3
7��sc��I�������=Tx!d5��)��,
eZ���uL<|�@$�Bk���b|5c�u�%�������^
-��i��F���wZ���H���A	�������L��Y����%��;"G1��%�goL���Zo�,�+u������B`3]&�y�<����f4/�D<����t�5e���>�n������e>[HWX80j
�z���*��p��������{OpY�=V9�F2�)������_�py�'b�*�F�����q0�`��N/x�C��*"�6�T�����qwT�%v�yMhG�dB��(�����|^���b��b��`->�b65�B�(r���������Y�t��l����(u��j�x����Uy��{lRT��{��3Sy���Yr�x,�sC���hU_}��������$N��$���H�I�p����������m�����~����\��������
����%�_�^�����9<��j����^{���X����l�x
�x���)�7cYZ�\K�W>�������J]i!]�A:��/�d���t'��dCGv�ZN+����_!B���R�T�*�@}OX�����e������B��z�����{8\��f�2���NS��M�5��� ��L����|1��G�}xjk�^[=���T>c��x��N���^\��3�,�<�������U������������w�M�NU�X����b����|G��5�1�a�=�g�v?���T�1b�������������cc�2�t7~%��W��j��8U��N���t�����+*��&Qv���-��YF�v+��,.fc�
rUz���q!s�VT��W*���Fh��,���>�z���
uo�*p=x%X�~������>�o�����[���C�VhgN�����t���V5J�C������st���hd��U���v��H����]�\�=��{����'OHj��{p/�/������yArin�
*��E�!��N�����f	�_V�c���^c�]o�����90���@���-�=��,����4�	��c��L��:�V�p'Rb���Z	��S�����2j�!*G8��gp^����3?e�-������v.�I�wh,��Xugy��cS��W��N�����kpm'�^/%�;fz�{���en=��$\�����n�`wic5b��&�uPW�{n��^���]��uz���o��Ow,����bE��J�7���t��^a_Q��7��0=�Le������]�6���~�������~��}�1�����{b��6�����@��z3�4�)���G5�=�M���=�7�|��P�l�<s
��S����,��kFn�}=�!�io�c5�r���4M�.Zw������;�'��V���<��.��l���#U?'{���k7�~�fz��W_R8cx��z���<q�����E?=�F��O@��Pu/����*���U�&�M�aU���?C���@�?�UUU_�U��Z_���1AS������h�'�Sn�m���'iJ���+5u�� ���I)������m#��6S
���'0�������%��C�*�&��[nM�����rwk��������>�g�������X��5�ut}_��=b�WT��vu�����%��%*��1�h������-�uZ�1��:�1]�2�:�-�`�:�-s��6U����%�{��gc�-�c�mUB���ZB-vJl��4�����k�N8q�Y��Z����\��C-s���uc�1�cc`SR*��"�B*�
��ZB*����!����i�B���w���ZB{��SR*��"�B*��j�U!�P�5UU
c[,����
cUPP0TUU�@�*���
�=/�i���@��P0T)�U@�eP0T�MU@�eP0T-U@JLMU@�*��*����`2�����Lj��w��y�}9�s��^�z�^��2clc�6�1��1�1�z���$J����&��mEYU���*�U�VJ���YUb���IVUu�d����#����O���xiY��]����r�m�oE��;����mc�������}��{+&�t�e-����>)�=j�oY�Jn�)Ff�����}>�����������^���&Lm�c���1X�4�1�Y1�������*�IVUP�*�%YU��$�sm��nm�EYUEYU�"}������/3~R����)	�[�m:4��\����Wni5�MyGn�����!b��j�
*���i�}�	���U��n�	����V���������W�\��vq5��^u�=�N�]�;~>�=|z�^��2clc�6�1��1�1�z���$U�V%YURU�U%YU�q���~nM�6����sm�*�����;�!�H9�t�|��M���{���sjs��]�]bA3)�����a�>zY��H��/�9N�5B`g�16�;Q��U�{����;6K�
�=$!fdW�����������>���>��|z�^��2clc�6�1��1�1�z����m���*���eW���nmUVUUYUbU�T�eU%YU�}��������9q�0hn:c�*�G1�5�"��YWc :�]=���A�T+)�Y����>Bi�R�����.��u�h���q;_n�t��>�:��g��|c������U���&6�1�clc�cc������%jU|�I���T�eW[M�6��YUd�*��eU�*�s9r��HG�!���eO���x�ur�
��n��	��A����IrN��z�):����������oc�y���c�R,�Jj�����k��.uTU�Y�������������z���z�d����c��+���1�&;r�r�����ueU�eW.g.Z������*�s9r�������� ���_���u��}g�8��h�}���a����*S�[��%��c��d����#�Jvf�K4vV��n'�p�WvnH����u��I����9�Nx��x�����n��^�=z�^��2clc�6�1��1�0����y�!��p��8p�!�VU�VU�^���\�\��A�����Wg�W�����n������vem6I�Tmwf�����5\24��:����\�:���\��twr2�����U/ve���|o!;Gq��i���;���6�\u�:�:t������=z�^��1�1�cc�c��=d�n\�\�s9r����3�.\�\�s9r�����3�.���'�!�H9�x�����rr�wv��;�������2u���TfjCI��s���V�=���9cs��}nv��I��_^]����������K+�l0�&����'��z�|����j������^�W�fL���1���b��i�c�c�.g.^J��%YUd�*�s9r�����3�.\�\�s9r�}H�� ��}�����;�E���m5b/��Wu����2eI'%���������X���)oee���J�C��f�}jn�h�y��v�o-��)���M��������o���_�W�fL���1���b��i�c�c�U�[�eW.g.d�����U�W.g.[�f��m����VUjM���������������o�����o+���\�����wM�m�+_��~�w���Z������kz�X*.9���������_�9��M������I�B{����]r&��	��G���G���n]�5	���F��$������?��4j?�8,����������1�G���|�!	��zI;������T�"A	c�G������>y��3���u�`$p��H����,�?����cm�������������$���mj�V�j��j����v�HX��N����?���~��B�������N�n�'/����2]M��NX�N�>����[�?f$O��L�m�b�V�~
�m���@���.$�/�Go�B��I�:W�$�!9~���	'*��'�;�'�_�8p��_d��E�!	�O��r����1��I��&$�_��~]�v^n����[kk����u8|I?�O�����c������|����O�?����������!	�i!+����G��i#���c���������?�2G���9'�|��5�H����a?��;|�!	]�������z���O�����'�?��������na'��!O�i�O���??�������TI?f�I56�B�����[[^j��2��W��,Lu$�������AN���r����H!	��#����,I��o�"�#�>�?�t�"��i$�.����k������_���&�����N����X���������q$�:I���m�!O�q$+��m��9�4��d���M����u_o�������o�w�����~]_��������59�����~|����q<���!	���?���u�������'�B��'.$�?sO�����G�G�B���'O�9���q<�;�;O��}��G�1���=��I�'���v����$k����NRU�8~�T��=?�����;�c�/bw'��!O�k���.�?��I��!B~���2I�O�?s�q���o�����[�����Vmf��U��:���?g������?�I'���e5��$e�b���O�.��g�]������	�� �||J��"��*
)TP
QTR�BJA
��H�D�"% $PTPPHBH�B��*��IUPIBTU
J"��
�UT����R����E
$��R��B� �AIT��U	(D R�H���BDB
��$�P�!$!ED�"��R!�BT��E	J�H�D*�WZ�ET����J��*���J��K�Y�@����B!��6�1p0�B���"%R(
�(P_
p;�X�l���T��* T��PTP�I*\6��3����`C`C EUU$R���R��(!I*��p7V���ff A���I�@$��(���UH8�A!lZ0AF
�J�RD�e��Q!��p7,�M�M�3onA�EJDUJ��Y4"�UUT���:�!k �B5��@
[�uJJ�BDU�Tx���A� �F �H��UP%���PT$R�����AA� �!��((J��
��J���J$�I��p�B	��!A�� �����������4�H&&FM1

1
L&F �����U*��b'���JA��~jU4����I)�����hxP 2d4��oUM?R�����mL��&��� �4�2���$�c����Z������m<�D��������_�i[m������u����<��&���Hp���������l��������������k_�����_i�����V�Z�m}�BD�������!"�w&i�q����q��_���o�x����I�p�����Hb(�$MI�����!NbB�O�?�p���_�z�O����b��q��|9q�	���x��eL���	�& �2nt�	 �����H���		���1�1Q�HH�"0D���#���)�I1&$�c%2��)
C��!$I�D�"d!&aH$��&L���ws�2"I��F"H1$kb��
C$S4@h�Id�MbLEfh� H&��$A ��tS$$"H@�! $��$��		&2@A$�2@I\�!�0��2fd�	��q"@�e0�(f��HL� ��!����������$&C3!$� �$$!'���&1��b(1�d$�!d��@Q&�(
1&32!!30�$���� �2RdJJS"2@d0�fr�$ �����Hd���f`	�&L���;�N���1�)"!&BB&2$	L�H�0�$@c!��IB@�H �BO9.���$��:d���L����!@D�&BBP��H�d�L��H!!$��&�$�1(L%2����&���d����&���3&L�`�����d���" �&e��6��"LHR�2�L�$D�D�	'wd0��2d��		L���$L���I�&S�����s��0d����#�c�F$����HL��#31&fH$�L��DI��:��I!!$1��(J$1L�! fd$!���$C)2`�RRd���e2��Q&	L�$2@	D��BHDdd��$Db2@�$���
1"L$!!" ����	���230��D���DJ	��"H�"FS0�@��B32fd�2d�b#���d�C0DcD`�$L&c"L�!��!���	�BIE&��0��L�$�)�%!	���I� ���!�RD �fC0�HL���!0�&B$ &J��E�BD�"IH`(�&B�HcFLRFa$�2���!!	�&��	�	)��1$HD�b��`�K����!2&x� �JB�"�1�yw$HL�Fdi�!x�A�2L$�	fHX2�q779���Bf��0�Bf!	���fd �"C2Hfd2���fd�"�S!! FLc�R$$)
	�"dffLd���iQ�J#&D!!��������� H��� $��$��1�F ��[QD&P��bJ�LL��2d�2�HI&D�Ad�"I��$���1������2RId�&H	0RPd��� 2d�1�A�X"1���#�3�BfB�a$$ �fRL��"$AA!$@�$�Nn���(��I�(��(�QF1��C�D&	�S0��������L	D�DDIH�@`� �LX�4EE�4Qh��F�EF�%v�B)H�L��	(��)4� ���F�,mI(�X�4j1�F�0�  LH L$��L!II"�02`�2d�@2d��I%) 3"�a�B0����d�&C$Bl%s�Y���� �L�o����V�����I$����2`�$�!$��L�a#	a
3#0�$�LebBfBIB�3)�v�d�Ih��QHd�"D�"L����#�DHHJf�)F(�{����������3	a1�1&#&)�"1J&Rd���%$RD��f $�H<���LBd&d�B@BL&FC$�#!!0�Ff$�&��A�II���E���I2A$@��H"$�Jf2&dJiH�n�� �I!�b$L� 1(M!�"�D��fP��B$2�Ba@��A�H �J@�d��0"L��&LHBB����2�� LDf$&
1d�1$		� 	�I2��d�@�FB�I2a�L� (��	I�$B�H�#��Ib1�
 �
���@�@�b�I" ��I�����%!!	$��d�� A@�1�$d2d�HAH"�� ��ed�R$A�"���� �3� ��L� ���HQ�.�Hd$)2	!2e��H��3&f�`��$�&L� $�d��2d�	�D�$��!!�3#"1�# ��K3LLDII�I$� �b�$�		��1$Q��@@RR�b@�BFBI��wvHhBa#c�
i1�1��A@I�T�RA�#	C�4�(�F��$��0DI!�2�0����� 	��$�D� ����d��L&�D3l!A�("E�!$��"D�!��d�2L��I&L�$�A�B	 &L�`�AQIF �b3(�BDH�2Pb
�d�F(�,1F"�P���$h�2&a&JIH��0IA$A�`#`�$��� 0@I�"D�����4�h���0�HA���&B���HHBH�0��d)1&�$VP�HbZ�A#$�D`
D�D@I��L�ffA�L�I4�������� #����B��DLAH�dLADd�(���3$0�L&�2%"dL�	 ^:�d�"#ID$	2���i%,$� ��bi���h���M$b((�	�%�" �����%	�"
1�4QDh�&���$C�	�IbH���4	FBC h �(����fK&I2A)�L��$c3C$�iL��	"D�F$�I����`"1�
(��!�1�b�M�"2F��"e$&R%)����R$L32 �0�"E 32d����0RIL$FJfM%I��&�d��������cEF���$��$�`�������##!L��bH! )	"��$����a0��#�(��I�I2M&LFA�H`�#D�E`�FJi�����a��F(J$�F$E2F����4b,�LBBB!�E$�#""331����JQ$@HD��&�H��&���#&LlF�i%JK����(BFHHH�&$�%�2c!"��C!!�A"d$IT�I�I
XCFL$jI)�1F(�1Q�DX�E�!��#i��1����0I0�I%�L���I$�PF����$���L�2	L� ��`���&S!B	� ��FL�)	��Q#1S0Dj(�EEF5h� ����(K$DPId�Di*M`�",i(2fRcB�1��4��������QJJ`�IAa
He!����),�������!�b�0�d���I(����1`�2cI��F-I��Z,Y���w]���H,�LE Db-���mF(�"�P�fd$Y!�E1�d� iM!c!,�"a4F2b�L�RF�b���d�h�)1c&��@DD%0�0�&�""2�H�"a(MR0H�BF4i,BP��&"��$��I)J!�d4�"4F""L(�M�F��h����2BD�2F(��(��HI��@$4��3@� �E(#ID���
(�F#��&ffd��X�	���BM&CQS��!�$��I��BM&2L���l�����!F�D�Dh�""���DRI"!
$I9��p�&BBS1��}��?������b�-�m��������	�X�,k��	b#m�B$�j-�-�����Eb���2@�4Z61F��F�2mE�!�"I�����lU��l"�km�@M��@H��j�$j�%Dm��dD�d�"*�HmTA!&�P���$$�2BD���L�$�HL�L!3!$$$H�������h�O���1��S��_�����]�~?�{���B{<����g���+���c�3�_���8��o�?�n'����G����fmQ���`��?����r�5�D[RZ�_���m���*��lTlZMF��QcU�5slj5�65F���-�F��%�h6�h��-sb��r�#TZ
Q���cb+E��I�\�-���h���5%Q��-�
���I�5FMb�Q�5��\�-r�j��W5[�m�j�X���X��A��1i5�cQ��X�lW*�kj6�����T�Q��Z5�5��5E�b����W5�\�lj��lX�5�E��F��cQ�T[�F��.U7+E��5sQ��F���5F�Q�5I�[����5�F���X�V5���\�j��cnZ��mF�Q��Q�h�
�lj5�F����nV66*����F��j�kU�F�Q�`��-�F�W#W5��X�Tj5�F�F�X�j5�sQ�7*���j(�T[�F�Q����j-���cl��*��������E�F�QQi-�cQ��j��cT�j���j5�Tk��j5[%�h��5�F�cW5�ch�j��j5�A�j65�F���j"��m���������j5�h�4j6��Q��c��QcQ�5�\��nm��cQX���^5r���6�����5�F�F5�F���j5����Tj��F�UsQ��h�
��j�F�Q�5Dj��lm�F�F�+���W-sX�j5�5����Q�lj5��-W6���j��j5+�*-F�Q�-��EF���j5����5�Qj6�\��\��A�MW-sQ��j1��X�(�m����j�����.[UsW5�I��5F�F��j5�������Q�j��n��b6��m�E���Q��j5�F�Q��llh���\��*6���EF�b5IE��5�I�Z-�QVM���Q�h*�r����Q���[�sQ�����b�X�j5%QF�EcQTj5�\���l���nj���j�F����j+��Q�-���Q��j5x���\�6��lZ6�-���Q���m���k�F����-��Z��U�F�QF����ch�j5%�-F�F���j5&���lb�������j5���+���h�j*-&��Rj�j�F�Q��-�*��j5sW5�F�Q���l���Z�F�cQQ�b��TVKW5sQ���\�j5sW5�F�Q���Q�cclZ5�\��-�5�Q���Q��j5��Z-�6��Q��j,j5�F�Q���������W5sQ���\�m���c�Q��j
RZ�I�-�\��F��sk����m�F�Q�5DU��Q��j5&��X��#U�\�j5r-sX�h�T[�F�QE�ch���5�\��F�b���]�j5�F�Q��Q��V6�F�Q��jKRZ���������|����7�������#��p�~?����[M?�Y���O���_��5�~��>q������;�~������~����&`�����U�o�t��9\�u�������bc�qPE�	�����q��.�D$��������R��`w�\�8���������7������V��B��������y��tr��)&����K�����6 n�r-3b������F��l���fP�7��Tt�O�:yC�u:[��,�V����}o%��5Q����������e�p_!ap�s�[]jn�P�8Vj�,����
I����Ka�����zb���=��O;
�Cu\Y��e=��S�Q�m��/�)9uu4)[[x�k��P��f��V-eK8�[��/�0�m�HY`���^�j���n�V<����`���n�z(�u�4�T�C��0c�LS����oV�����rU��C�a��N���&V�������\�pS��.�B���D�
���t��v���m���Fkw;�H��(n�[v�LP���_u����:le�Z�6I����qj���#����h�e��5w\D��k�� �3�jGZ3Pu��(��Q{J���G�����3t���������f����6�v�&��6���u�*v�W�0��,w�j��w1�Qk�hsq��g'9�u�������g`N[�[�x�v��MOs.&jV�B�9�#�j��g�
6����V��!�d�gz��Vi[%����tp�/q�z�=��Nf�I\!|���W�:�#�kJ���Y�V�y(��VG
-�������*�����\��b�]WG".m��s��Z��IQt��o�*���[���C���Jj<����k��T�<�@��.��E��C��t:3'U�8���$�%�]lB�9�n�e=O:��+�f5��23zf6�C�*�2V^���a���_'W�����%q�!b��p������wrJ��M�4��g3 �S�gL��'^
���w����j�}�b:�������gY�]Tu;�}j]���D��w�K3r�S(ef������`F3��}1Y�K�E	U`C/d�,�2�x�r]����pC�&��w�`�/���
���fT�����=��]/Vd
��bF���3\���k�����b���M��y�7"�2���,/�
i`��Z�Y`����aw1�xx���W@/y�X�7.
����q����t��B�,��F5�@��L�)��
��������au��{���������x��|R�e�`�</������a�>0"^e*����gQ�vM�MD{{p��u����
XaZz:��#Z������sg �n0��E"y�k�Bln��BV�5�@[��3u�}���a��ne$��)������{�J�� �d����Q�6��]�^�������[�[|Y�����V��8����R[CV�GYR\�8���`����5�<9����7

$�e�%�� y;u��%L;E�`��#e]����t��	�-L)+�9���Z-U�R��R��eC�� 5+�qQ\A]��0��:������Kw���0_%��^���W�o5����k�6��^r��d��]xv��5�Na0��R���VG�Z���<�"��D=��}�XN�9 [�-=�V��\����h������#���DD� '������m���Gk ���g@�u��T�d{Z�����a[�
<���N����p.ax�N��V`v���)tt�oQ��_ 2�������_p��A`�4�x��u/h�*����t�����S7e�����J�U�*d��:`[S4���A-�J���0�]hxF�<�%,���WM��V2������R��%)J3o����y���1sU��+�7�!D���[�����P�s�/��5f�)%��K4�P�o���&���p�~�����:�cA�/r�X,2�����+X��w<��p
��l���\�db�f�u��'p�����yusr�'�]��1���[)�k`�d���u'���K���j�{����{�MC�{D�R�Nd^U��u|��(k-M�<�K�)�4<��'d����jnCT&i���(��Li�C������JAX����J���=���������)�1'uU���S�O�M�L�!�\u����w�"L�9� �����u�������N�J��l���F�
1i����R����Sxs��f�(��u\
��7$�
�cB\w�+�`L}��;�A1V�u
�b�LdWN�K���<X��f��WSFo6g�k�f��h�����/�t��j;�.s��v�a�*���4p��k�k��C�����od�-�6A��\��w�D"M�P�S��
E\I���<�����h�"o^�������W�����%����'�fZ��CY{OqXpF�FYB����ya.��4�&��X�I�a���.ul�b��.�u9���u�MH��u/t@se^�au����� �������y�l�S[.:*��j���uuY�D�����C�M�Q��jl��L����8r���w2n]�
 �HHN����<���h`x��^�����$� <�z^Y�}�a�ki�R��p�!^\��\�j=����J�v�-��pa33M����b�9�@/!A����9@������;�Yo��������
���Ekspr�#�JA��d���Wg^��,���G�>�p��F���+ �3{�V�Y�;DA�5���5C�s��"LU�zt
����|{���q3�	W�ur�r�����	�]��7�K�
�2-��Lu��_T�]��� P�g x��~�R��p��'Fb����xh��s0D$nE��4K����/dC�ys�gF��a{W�2c����5�W5��kZ!K�i��:Ok@�F�a�)���Nq���_ww\R ���	 �\���@����9{���TtO�5���B�h�|��Y)oP������\>�����WY�����3���TEJ\\x�u��[����y�gP5�8�6���a<�&��YkN��B�s�H�o7�z
N4����w��������|�s��R#k�9[	�ij�5�+���k&��R��$���gT�j�*|�r�J��x ���P�-�nE���������8n�p���;Z�n�(��ST��/\����G�������rC��r�����=��Pq��P�J��{�WJ�n�9��dO��]��aQ4�H�\i�.��y>*�,�@f� �yQl��B���"WD����S�;^.o����*U�3W^`���U�D�_��7�T.R����9]��O]�����2Nm��L����"�.�f�^Q���"WV��N�,���s�D$[leu���mt���0��d0��'Y�Wvt26R�
��G&��)tG4�a�#��	�8t��t.[�S2-�o���fi���{������V6����.�;vz�_Y��ug�1|Ptq�!�.=N�l��1�r�HC�wxV���c������h/5������k��fv����z����bO9�7(��1�;�d�z��7 �������w��Vdf@�R�R3ju���������q�j_B����6��WO[�D���*�'Of8kQ��]s<�Ltt�����[��+^�i_8�����V(������\
e�;���]43�������\���������j��tU,oCb��w.��aU���`( �6A;k����Icyw.�	[��n������EP������d;���$9�O������M���p���l���g(�u_Q��C�R<����ST}�K�u
�	Ws��44H���z���Z�R�jbtC+������;��%�f�ad3��"p(��t������\f%�����')�^"����{[����$�&7�Vs7q��j�.���4��� �� ��&M��� h��qFAaDP|�����t[������)48�v��;�t��GlZ]��X������9�s��_gTT����hd5^5�&��o*���������{��!�������J���M�����b�k3t�s}�faC�X�[����J�V��g1k\�9����������,j��N���f����2�t��H�4]�H�L����0C����<g8�er���������tN@HHi���axw���Nkx2��D�4O%��RM�a�[�7�CH�F�A���O6�o�����Sm���n-kqf���oRT��IW���884�l$��F�f,��we^�n��;[���$n�|��$�5����<i�BQ�/t)99��u��U1j���\+lr=v�M:	�s���:wI����m�4Wt��p78�`R���\Y ��+������2��z��b
�|������WaY �/f���^�#�VSdU�52 xU`��s`��R���-�G��$��`u��
�{%H�2Fu"/*���]��g4��$h�WR��fe�V������7��-�J�U3���&���j��M���,!��5�s�H\�J�d�r�Y2���e0up��:�b}��(h�����=}������rU��#{]����X��l�a�OD&:�9�x�n���(e[O�q�6����!���3�H�q\sL�'���� F�b88��Z�(���^v��T�f��vVe�LK:kWB��@,t�Ab��Y�-a�i��;�`�F��WT�������
�iF+j��:�{[�s�U��W[ZN�,}H0���4ui%Y�[���&'e�h��_PT=	n��RLd|4�b��(�����qY�R�ab��ZRQe<��V�F�E����1��&
��\*=�����Y�p��Pi]Y���co(�u%b�2��^_!,VB�K[��5uE(��������^��,ne�k��V1���5w0��`Y�F��o������X+w����-g�N��c6�`I�����wj}��x�8�.[���&�vM'l:F��w��A^e����uL�x;eo�I-�c�W��c��x:���*��u�	���E%����_^��KW\�����M3���m�2Nt�|����j���	N�m�t-���P���LE�*��RM�.T��V&)���j5���Zx�����g%MfM�@�p�frf��K5����-��4�<�;��������+
>�M�P�J#a����D�;��c:�H����������q�]���.�4���6NfS]D�V|1`s2��c@�K����b0���*�I��M��e,��$���������C�]Iq��Cwp�t@Wb�[Vj���������:hv�,�2�n���6U�*��%��
�f�����r8
�
�)�F
�ov��Xt����!Wb�tTG$�#[s��]p�R�!�4�a�;��[�\(�R
�wj���:N$8��CM-6ia�d��N��h�����Ii��@�v��*������F�X��8��r����r�xLw������j���'g
��B��l��d���"b����Ep�Ge��FlPmj%&l�d��?`��D��f��9��4��#�"�|��kJ�f��]�<��P�#��Cp������<%a;�Woqz,9�30S�D�&;��C�}�Y��
��B����xZ��z���]4��Y��pU���;��-�������"�(A�2�_]�l[i�r#��GK�p:�K��+�(h����������������Lvq=���~�gc�(�LW/�p\=�T6���DU�uv��9.����<��)L��Yr�n^������yZ���g���('��*#%X�6�b������aS0��l�w�+eum�mQ}�������9��}�f�t7Jv�R�L��[V*�u����V���X����oB�O��������5?���6M��]��DN��DV�+n��@+�+�/�j��b�pe�����
��vNl�mM:�;J���L�$ga���+2��0�X�O�e��)�0[�+]g}���Q��.�wK$�e�BS5SQ=�{���W��S�D��
�Fn����}@J�`���E5�H����/�h�
&�;[�$�+;����#�CE������K���NLCX��^��:�uu�w;4��Gj�U�j@��N�m�8h��Gm�g
��=:��U�����#g6���&���H���VR�r�w�8��V^n��m�>LV33VE�N�qcu��G�U+6�k7$�iS��pzE�]e"����1��I���|���C}��"���s����B��g��.��$������w�%."�K�(�k�RbU�L��Ta�T;u�����n��o�'�TF��(��*
�Q\1���u��O�_�,�=u��IS�,���+ksV)��e�z1����.#]��8Ne�o]�t��nJ�8
�B�vT/k����%����vY�������%)���;��2��;���O!���gm\����x������}/%{Z6��A���k)���-^�8�oU���<� F���4���Vt����iue���
3m**���w0���� ���{n�M��)�{����HJ����x���8��GT
�Wu��r���H�
��{L�^`���"�xu�tv���J��EDtg����>*
����lU��r�������WR�Gz��
��6>��w.�� z��)v&s������'r
�a�Wg	YNU��"C�
���y��<��wB-S�������D�x�,
�s��*\=V���]��/&T!d��]��{G]�aQy�v
h��JyR�i����]�9�:�%��+Z���6�qd������uH�~i�W`����Z���;��b.��f��6*�8�wa�:��l�oW1.���[B�nY�0Z�h*�����3s����YT`�!+�
���oi,[6M���5@��3�:����4�Ycf��m��OU:tV��2�f�#`��e]�4b����{F���v$�� Cm]�(8����Z7*�I���W��9C^����SFX�j����h�K;L�,"�r]���/g�[�p�	���Lo1�k�������;l���f�%��������y+�6�)��Y-��5��7�r�;J-'b��BKk&L6���mLO3�s��k��E�+��U`*5����4B�
�j��6��]��s��������U�*���n�K��d�g�bR�i.��#���M��u��w����y�s\*��������a7r�RX����(h��h�f�����7s;+���XB�'��Xj^�r���\��Gh�U�1q��q0d�����V�0�b[V�K^�
tL���������E��f��1J��l��OR��a��"k������F�x�vf���?l��e �u�'e��`a�M��k$�%����d��&�v��G��d��3iS�VFAq�wI�y�z��7ug��"���l���U���z�i��8��������H��3r����0Q�X�m
}����������~�����]�t���nS�;S��)��N�v�+v��[&���0������'6�W]I��-�I�Z�3�-�G��W����.�������k�x�q��p��4^��+(Vt/l�H�o'T������)��������Q����8��[����"�.��J<qD8�:w�Lkjf_4������^N���.9(��u����
��]-M���X��J<���R�l����n(HO^�(q���O:�X��K��8��V���0�rf�����*���[e��=j���V���{k8v����l5f�'��1��I��E�8"��V2�<��c:/%c)!�w����%�[|��|.4(e�s�$V������r�a��`�H�Mm��D�2�L1t�����U�H��U�����xl��]!F�CM���V��i0���z�-(C������m
g=lkt��or�C:������psM�S/.��K�3e��(���R���cX�����K�u5�]�J��>��d�������QL�z�Ux�3 m�[_a��XqnBv�.���K�f��(��x��'r���W�
��u��j���O�5:�C{�C��A��7�o�V$��zI����[��������A*^Y��Zt���C��:�hQ�����e����I�/z'����[�G0���,�3v���%����c��ED,�������V%�!�jpfd���T�����&���S���[��]yS�s�	1�a�����]�T�yl�"6�l.�j�&��5}t't9A6������B_����,0��.��gl8�i�����3A�|���W`2�ci<�u������wy5I�4��RE��g�����G9�>0����$��8Kv1�+#&jVF���E�of1V)�Q��jQ�'����P�8��/K(m�����w���3�3��HW<L"����7D9]�f�]�H2�%2a�[#,e= ������+TT�������Y���B��Y�r(���������m�mb�i>nQdh��R��7�^u`W-��y)#9j�Y���|����wGq��=0���V����w�uoU�Z��E�v��Mwm�� �Y��;�r]n*J�8� �����C3��6��x)F�����nu�e@jo�P�ki1y�DY�o�.��xf���S�f���ce���3s�YB8�u�S��P����"�k2����E���D(������9�&2��U�������{+EY��g�v�ydf�y����+����"V6o���fe�5�����1�u�Q��1�L�wy��sg6��D���.�������+�<2������b�I�%9x��gxN��Y3��8�����.s�;�Z�6������#�����t��j^F2���x���/.�$�Ft��]+MLHU�`��;)��:����������]PfH�<Q".����������	(���8�D�=J��Q%t�:��U�H&�fc���j�>���	������Yt���o{+#���JH�6�n<9P�J���#����4���MA��_I��E)9�KSv�YZ�q{�m�(��<c���y��f�i:��� ����������d��|3��x`�o"��B�������G��3���)R�����e*�R��.��U���vc�Zs9��3y�5�d��O_VCt����]�Tr���<����L�����P�N��,k
��s�,e����F7N�����7oE�}���/�5C������3-�IV�����r.87i[pc� ��J�U�n�{��M���������^�8������R�#k�����X������qeh9�Y�6#	�����Bp9{f�k_B��3�n�#c:���E��f��,�-��;����b�j�`�!��s�VQm C������0A�Q�2�fp"D�h�B��ZD����#�-
r��[�a��:����3��5�+
=�/IK"�X�Vm��$����M�w�s��N���v/����.jh�v��H�[3l�����6�"�.]G2�)X>������u�2�r�
h��#�������	�F��=99��V��c{}�}o��oI��J���cE)���vR0��������&s��o1��h�J�������wU��	���������f�S0��.w}EI�6=�yDP�����,<������4k���h���)�!/��&�-n��jG�6>�.��GoZXk��^������[}U�]�C%Z
�M��;z���e���\N��w�/v�`�
Fc��Va��9<��[�*e���v��d�fT0���As��YW�@�\���p��
�W�k�X��z_Pm '�OA�	3�E\/}x�3%1S%�������	}�!Okk��=w��.q��N��aw�@�����F�5|U����r^��{����j�x!g���T�l��k/[.��,������������9��BJ�z�5{��i��om�3:�/\����ast'���f-F�3���t'��VN,��t-����e�$�#Q�`q�[�[:�.�z�� <<�H�X�1��L<��4H�����N3`������p"�$��1L���Stz�e����
/&
����\�������6�C`�������WVJ��eL�/��V�f�P�
�&\�2��G77G5;[�F>�G*�=e&���v������S��t�V_�j�0��9�I�����w�$����5`#k��lq6���q�B��(:����Z��/���*���W�����������{�?�?�$!	��'�t���u������o�e�^g�������m����h�DDDV�[##k��F1DQ�1�b0b#��"U����X������#k]��B#"�!�b0j��*��EcF4QF����6��V�m�����k-W$�I$ 
�~�"" �����E��Q����_%���B"1����@��|�
1�1F-W�V��[n���� ���"""�""""1�E���r0b#����""6���c���" ��#�$�i�^���F�#�����J�A��tAF�(����*oPDDDDD� MU�5y_������m�A�DE�0Q�#k�A"����7����F16��'��F0��&A��E��[����_�^x�DDb"��������|���0c4b""""""#������$b�Z�	$D^���Z�	K�6�{	AA���IyW]6��-�b"  B�����}v���c������R��1y��x��{/�BA;��k�A[o>HV��H��#j�2DB(����Z�I%�]�""""��"w�wpwq��w� ��		$���DF1�^�����DDAC����$�E��h4m����D��9`��� �>j�@�Db1��j������*\��b�b�cE ��1�� �5���	�_""tb"����'m��"1"0J"���(��{�������[[�}0c���"1����$� &�#E<�����$��
�DUiA& ��z��w9��s� A�F#b�1�g���	$�A$��" IZ�� ��A���]$��" ���@T���v�  ��ko�n�����q ��������$F�pc�Fh�(���H�u����ww"1���DDA >|d�x���@D@@�DDDb#a��|�w�H��{�B�1QDc��m]~�	���ui�4���9��I	!kz1��1���DDDb6�[�n�#�`�1������^&bmk�q����E|�
��b�h�DDDbW�a�K�C���Hm�kW��"1#AF-��DX1���	 ���&}ZpF""5����Dh�b��
�m���Q1&"" �`�P`�}�&����F"	 �����@�
�Q�c��F��!�1b"6V�����`�`Mb�������6�����s��.��M�pb�c�*��"Fv� I@A�b"1���]�|kw����#���""15���� �H"X@@F*��F"<�r��b1#�"0D! �W�����O<�t�M�]��]��m��k���s���]���wnr����(�"������""	������@%]����^��QF+�����%f15n���'�!����:B�����D�������4�Dc���]���s���QF1#_v"0F���@DD���""6�@0A@1�>"��
�DD|�D@H;�Th�(�����K�}Z���$�@�$���`�""1���U�""�DDD^�A�������jW�@DFLD�Q��k�}�_Z�5_Mi���@�wwww��P|��;�w]ws�6��"�/�" �[���1�#-_ ���x��!m��D]���]��F#����������8$!	�q"���!?���D�!;���G��Bi���$���!8��'������?�k��R�#���������|>?�����s�={|��Q��O�}=�{{��v��u�k��TJ.�b�2�U��b�X�����7�w:�wK�<�����a�y�\T���������r���sY�l��^�j7l����zl�%����|�
9���J��SM��z��G�*Q�� l-������}�WL��M]��}-WWX�h���E�Es��o�e����K���
$�F^���j0���6����Z��&���6���%���Vl/�r��r��s	���#<���-d*�WW;�eD�-����[�`�[�g �Y�pd�x	��_.&������CG���[|�G�w]���\�c��	���[!�8P���Vk�q�~t�h*&L��MwtT��q������P��<�����M<]N��,�e�����r}gc�^��I���pt]hn������ft��:4VnNSw����@`�E����[�T�jfo�76�7��e���a�q��obp�t�|�K0n��ae��gL,>����G��\
�i1y���9eJ�E�L}���Mn���P����" u)g-�
����
��L�lO!����we\�����'N8�W��2�������
����it�w5�%f1�Vb'[IR�q�G68K����-7������vO��KD�F�P�Z�����3����R*^]��E���e�F��_C��I����c^b64/5�r�8�=��j����SVsl*����g)v��z�rF�55q����.��p��KD�k6gm�#�I������@}��PT!N7I�M(�n�7�&j�[]Khkf����6sf�C��4oBv����U)���
+����8E�����U��n��d<�d���0�sA:���+Rs���x
s2n�
^fVV���������w�d���I����
�7osU�n^�:�����[��p�9�x�����L
�v;���g5�I{�r��v���A�t��.N����pV�Q�N	!�K8`���T�:o
�i`�O
�����]mWE�M���Ga��/
�Bjf��.C�Q���u6o��Go�Y��R*��q���j����C�����N��EoE}�������H��Z�:�|�
�Pn68U�F�Z�����w�0]��f��#\��*i��'N���or��6�CS'9��2�����V����L����4��s;�Loe�q6,������f��D�����^a]�J�[��jj,��-F��<'l��q2��X����z���+��4����jG�����6������B?9��QiI�����~ef�D��*s8�j]�qw����gb��R!��d]�	=WYS+���*C�p�w�n�V�`�����}n�1����!�5m�&�2M}�[��U��,��MI��ck�[���Y��zC;P8��\Oc��d&.��X���*�O��l�(��7]��
����n�u(����"��
�\��t���X�U���Q�Lkfw��������r�V�R�Sz(o>���s4k�����W/1U������Y������3��|�/�����:a��u�s��e�k-E�A���� �s.8��{����G�fZ6�Y��rs�9��k]�qkyb�yp�$�\����]a��sJ�k2��>���oUVl�sYA�����'
�r�D>8r`�t����yP�j�d���LM�w:e������V��k2��h��:.�]�a������3��j\E��j�Fc�ee��n��1�s;uu��j�X���3��7j���C�s&��=�sq�����hn�Z4�y�������	�q&�<�����TL����T(F��yxV��Nj�L�a��7N��T�}0��^��s�m3�Q�;sv����Z�k�TYF��Yyrn��U�u�U�aw}v�����pVA7l�Xv�8����-Y�J�i��:K�=�����Ns������h�A���Otv�+����G45�=6��s]��)�zm���K�r�u-�X��
����[q�uf���v��������7��R��j]�`n�1��Hn��V���f���������H����X](�X��k��]7j�m1���w\�)>*�a;�e�����
��X>VY���a����'���`���!*����,N4���Z\��,P�e�`�wy)�������p��\����E�����{y�\��T=�o�h�A#���F�*e�r���3����=��j���)������\�&��B�������q���D^��|�{
8�u�����.�x�7i������3N�\����a���=2�-��2t�'{��6T�{��0L����P�o&������:Lf��	� �3tv�����BGw$M=����8���/��^Q}ZFk�u*��B��u�=��	j�ega���$uL�}���uN�iI��������Ol�k,�H��]Gv��2�r��3!~��7�����c��x��f$I�oAF]`�x�]O4p�Y���yJ�z�2�$���s��mq��j+`�c�&�cRk�9W�n,�w�8��������d�����]���y� ���33]I�������9� �����2�p��QVy���E���z�ue���0X��Y�(+��(�3��9n#q7���^������Ty�&�/WK{t���%���`��}�,�k5����IQV�l�I���sq$5�t{�Y���Bt��I�����<�����mZ.�XHC8��sJ���*���c76������W��6X�a��Q��������u&n���i����M&v�L��)b���D^�Z�h��|���M+6H�;p�B��y���x�1����7P����g�X=V*�{�0S$���U�������!�b��S�x�f��Ra#n��^=�#T1W�{tR��L�������;`4������������P���<F��|�9�wb4wkZ�.����rn�z��0��T������Y4����q��D�;����w:T ���l�3�:�fWr�!�z��y�K���J[5�����W<������p�Y[B?��b���X���%�m�r���|ma��{���Vq�P�f�n��D6�"������@�����7I�I�7��p.K�5�+����e8�}�lX��u��	g���$�s9������
$>��>n��k�;�������=(������+�#����m�����-���s����7�C�����P�9���1���F5��n�����]����<�����_��w�"I�BE��WV�Uu�#5��9w8��+5�����17�5�Y��;[i�3�H���M�Db�����B|���+�s�Y�����[�9�%<��z�gzN�@��C���n3���(��4���v:���9B����F�[���E������K���9,@�����gv^�.(�5T]����M�s�b+o�+�_$U������U���[���aB�sK�:�:����-�I���S!�����9z��4�li�<����P��#[�<����mf�����oJ'$o�M[oWX�*bv����u��.��������K��p+��{6U�9B�I3LW7�j��l��(
0i����C���C���x�=]��rS���1mYr�(���l��Yx�i���L�-�s@3���if�T�����m�/;�����Y)#��u�R�zJu�s��Z���dI���a��+5A����[���2��W����b)-'S3���^�0H�d������V�G�������z��:���]����v�f�K���p��6�kIt�U�F�w&������r$'�1���=]�u��]%l���)R�:wjr!z*A�9�4m���Z�Wd#"F��6�������`M�����`$}�|]CF,N�HK
:T[(����`$�j��k�<�7(��+�
����0`�VK�;Z��h��������
P_N�U�ev��gl�:��F�(����[�7��b���{���o��	N��
%�����9��/W3q����h����aA���+�>��h��y��Cp��F<+K�u(h�����7����g�]_u��Wi�:-�$��FkydV>��<%TI�	�.��[%�k��Dk���:���R>L'�u����A�A\�����:S�X��C.+�V785��PVg=H���]O�Rj9!�iK#+K�)���L&�6�m�Z��f"����k
wr��P�7;J����:@�B�x<��-���|����,V�K%���&a��d\��n�:�'%�
txG!\���)�T9��m�������4�����* �*����������oN��n���}�b3{A=f�Z��:�3A=]),lI�-���9��-j�T�oB������������5��_�����=w����4��]77�i��R��Gz(r��/b�b�����[�9$�+VV��;�k���",Z�IAG;0E�r�V��+r�
0�,�9��<�1l���K7Y%�����Q8C�f�������v>��#�I5��S�}r�����s���GD��2�]��v�
Y��q��W�t��c�.!��K��c������_[g�I����V�*�uv�%U�l�P�����A�vM
�`��LM��,��Q|%�����4���[�����[{��eI���#���`����S�D�x��Kk'M
�GkiJ�
o*��NI��s`��TYZ�w��	C:
�	+��C�����`6�b�rgk������zN4�P�����D�[wV�i�uo�H\�0��5�W��2l��rb������Q;,Zh�t�������46�����[[������2�\&�Xs��v�1����?`[��4kt���S�WW�Di@�vcC{"n��;��xK<���[�4���8�L�u����������7�.v�V�s=)���"��)�Ff>����_cf���n�9��l,*�(����Qr����X*�=�Z+)K�������S��m�	�����%��q\�p����t��N��-Q(]�d
TRv�����6���V�>�������9���:=$��M6:hWj��iJ|t�bNpnu`�a��.�=8�CC�����vi�������9A=](�(>�|�����V %
f��d,�<�n�T���[�������-`:h�{s���L�i��%�P�f�83C����+���3�S�N����vG�kh��]-<��:������p�m����u�����p����y��U����;�dZ&��Z�.Q����S��]��x��2L;�2<w�smJ�V����}��J������)"2n�\��\���$��|�f�YP��X�-,�U��z���.�������E���S�e`����PB;q%5�[�`�;���3	E������>�:K�������^V���})��K���:]���L�gGR���|q;k����3B�vu3u��Y���%���zs����p�5��V��9z����ia
\�A�u��tMb���P�l3Xs����'�w��Px1�E�oC	*���>�����rA���FFr�$�����NNn�9�z���������;1d�ff�_u�R�%U�y,�2���`=��S{���M=B��.'��I9r�fT��-ID���W[��p��^�o����������4�j����d(
��*GQ����zC�y�f���j]��Q.�M�'3ft#`�������N=Y�����Z���{*k��T���Q�+R��u������N�#�;�.N�x,��:���`���Y��W��]�1V�gJzM���������&��#|�b<�:�Vui��Y��T�Rs��+T�9a����Z �Q������Q`4�T���U���|r8Md$���y��{3)I
!&n�����l���b�Ye���`�0��D�G����.7��d��Z�l�����^Z,�vnb
��9+�}gR�{�sq�Y��^�^[�s�a�5�LVt�t�I��[�B;�.��Fu:���G�����7k��f	����7$�����
��UQ����Z9n`�TJQ`�t�m]jX
���"�l���g|�d��]����"��J�^��@����B�qn�`�&���F�eq]��)��������"oD�)�FqBx��[�3	W���]��l�yYdV��������D'hU�k V3����:q	�zwl���#3o3�.t:�;�VP�$��X���5y\)>�i4�^O��:v�9B�v���7 �oyJ
�i�G4�_T��\A+m������)��]��M������wW�w�'wG"�%��L��r�tA�wvj<�0sT���(���l/Cw�,��dt�2���x\���"N2�I�������&m��[�75�L��J�pGr�{rRt*�VJ�\"���;�@c6n{��2�b�n����,b�_`���w���������c��-�Z�>a�6��������5�2�2J"j]���p��8]������9W[+J{�L�{J\�`��9��K�
�8�V���G�p�b	�������Z7Q#�������>�^����^,�m�Y��f>��xp�I7�����Y���^S}�x`b�!�zC��i���u�l+v+/��$��ME"��r�Jx�f�K�"f5��t�������$�|V��J�:����t��s��9��#�s��T��nm�
�|L�]0I�Y{%sO1���_]�Ev4����u��'d�,�B�����VX��.Q���^����P�"�b.�l��#wk��o1gwT;hs0����p�nv5�@��r��S,�#;�
O������Gup4c�OA����8��v[�/5�$=�����
�b*i)��{{�T������$�%A/nR���}�o"g�����yv���0�=5�0+�p-�Y&�7k �@4[u��u$]yLs|�)��%b����z^9k��4�@���#����O���
�F��O��n���m���e$�r��vo7���2)4�x4U��.�&��M��@����3�	���W:�sJ���;�����f`�5�;9u|��u,>��*�;w$�]��s��0�S�����;������c�Z�%3���T�^���q��Om:�kE`�weu$n��
@�CH��M���t�vwb�����S�
����&n����<;��%�hr�"�\��I�;p�{����Q��7|c����P��74Mx+ ��K[.[���9�8\s&�[]L$Jh]�*��&� �J�������-���{F���%��7,c��i��}��5���l��dew4���#Kcf5&HN<lWw&�"�����n��mi��y�W�mf�j,�_#(��}��
�e��5���&�D]7q�1����������:��p���i�i'|�[X3&#.�a���VI@L�7���k����2��Y&j�Ogu�V���]L��6��%��X�c�]J��dX��DDVp�����������.�Pv �����du�h.�X������R��]3�B������i���j��b�����f����rw���������D�y\��G6���V���4R����u�MEZ���j\����sX�J0�1�����;
�{,��]�K@2�Xq���yvE�#����mmgMEV�5y3�*�W�cl���=�inl��AMg2����g^����B2��f@t56�w;np;,I���"���m����=����g����M��_�[�������+2��b�������^t����gTg&�n�/�i��*��L+�m=#�iB����g+D���.�d�{-��i>�5������j�
��>�[7l��s	�d7����Ftq"�\��iTP�4y>���^n��f�;�O)YQgtv�e�)!�<#�}���(���6���n;�y�]em�u�YX.���l�	+���a��.�Sv��V���-���U�]�`��nh����8������w&��R-!����ucw���M��R��B�t�v6m^���W;�[�%b�n���f�8b�
���B�7�x���v�bCJE&-���.�m/��=�<G���.���:�p�%_J�vfKk�>=�V�o3�in���R9�3u,�N�0QG�_f4�xm�
������M�o &$a������Z�c��r����wB�����|6����5$���} �����v�ZeT�vl*�
�i�7���]f��RV�V��
{��30�3I��;gs���T��`����Q�e�L,n����nf#��)a/���q:�*m������_1SX�jp�(#�[�r�I�n�S�*)2f1Y�\�`8��W��7z���3��\4U��Y���$�p��|����YFd�},�9��y���kOn�bCP��8�
8���Wm
]��rl��w+���P���Fl{�s�-RNO��-%'wq�C�C��
���db���|l*�g�����kL7��P��b8(a��:�Vc�o�r������3��V�m���!&���#o�G���A�;�Z�le�O+
N���d��_�ql�kkf�)a��������5��Pc&E����i�S9�����U�w4��KM3�^_^3�������:L���I��'lA4������mv��-�	q��	�\���	���W%��1V��kVU���+E�����s4�&Y���g0��/�M�W�}\�s����
D���2n[����x���&.�����}�����*�-=��"�]���@���l`�K)��
8���,7+N2\���eJn�2�{���B�����y�kj�6����X���^e ��`<or������
XfG��{�tn_]��5}��f��+�4y�\07�{T�95b�{4�;�P�T�E���K;Y�����t}�L��-[8�V�U���,�A��+'Vg_B�nfd����o���F�����`�������C����5�	pJ�U�<\����ma�n�d��W�.����R��B��n�)�0����B�K�L����N3���_uf�B�\�:_f)�rt�������a��!Z���.�!P<�Q��_�
�;�t���R+P["���(v��N�n@7U`���+-�1����<�QO��������nC�,�Y�X3�N�^>����M<���'.�8��a��P�]-��������jq����V4���8��j�Ijc���;���L_+�d!��U�!��c}]Jm^�v���WFD� P����Y�Xh��]���e#*Iy�v5c-*��m���2�Uu��#���_"�sQ;�� ��p�����P��8����.�2&�K\���qM�����b�b�428-�q�V�s�,�*�^k[W�a-w�����$!vD��d'3 if�row���)�>$.��Pl��];n���&�1�������K9�|�7$r3X�����?auED�=|o���,��&�M��!T�@d���{��'R��8����3]�r,��p��v�H��[����d�z�\�{;�Dy�\���O�U��fH`X�����*�,sq�/M�.bw+f�7�)�|]�a�Cl���u27��Y2�����z�,�E<@�7
��k:���q�1o���eJ�����\
9�9bQ8�����������r�BL�w�)���t6�nv�j7�K�r�-2�(w����YyM�n���\��s�h?*�\N
DFzn3�����]oG��M�����#��e9���/0c��t"m��c�o-��f�_'��^��*�����5J�"���
������D�������Y�m�����vN��n�}F>t)u�/A�l�;�EN�F?G�T��T��X1�2w
��r����q���K
�e���Z
�����]�9��S0T�L�t��,���f�FP��+%�m�2�H����e�]�-����Z��c]�f�C]��wG;�t��J"����\����B�3��S������d9����b�s�����w�������)1�oJ��(��M�������%��f���/0���}�����V��*�(���kA@���������{7��n;���IC����V��t�}����gs���uq�a�F��3����YZ4��5�#����-��fDF���;i��kNg@N�����<����Cl��lXwX�O#�.����M�0 X��[|n_
�.��u��"Kt�V�1��E�|��+&s�YD��L��e�D��'mA���V���:�E
:�+�RZ�|4�*����W�������i�������I'��q��q�I}�]'��>E�7�nY�����7���BG��d���{:���n���`��x���j+A��<�of�����y�Y�a��K���a�����(X!�T�������=���o��N�������;	P�����e�:��$V�f�����k��&A*�35��

��FP��To�V���F��n(9^%���B4��N3�7���}[h�#{�-�2)���0����;��[)��Z��� D&���y��
��L�\�T�-S$<7�_�|�R���l��|v����o5Oe�A����V�XT���qq�}[��+�]�9(7-�VyeNn��P�����a����	���v����|��x�����(b�����6�7�[����|n�I4��z����wl4^��R�zf��Rf=�{h�{�Y4�-���r���k'l��������5f����*Tqf"m�l`�e>6"=]�Y:��L+��tn��VN�a����V.�4f\���\����zu�]d+���Xkl�5���L-uy��S��g$���g��6�*����J�\��e�q$������n�����.����9{-W��F�['0�d�W��+�����vM�8R���d�n�L{$��a��7�������s�&�k��;o�)�qof���&�Z���m#��E�\����7&���[jB��G{C.2AJ�-<j��kr�� ��#����RL��_3;5D�]���U���72r+.P��SU�
��C�93�mQ��p��JY��^T��u�����Z���+,��LV�X�9���z��92��;�������qZ�7���R}�����{�G�G|ljwK����]il��qZ�)�lb�g�9��R�o!����F�X:������Kk�������9���ZI��M�
�f#GJ��#	3�$M������H�8��3*�9�1����a��8�q���)[�b�-r��Pr�[O��l�O6S��\a�3�����Q]�K��&
r��,gfLT��]���yf[�I���5g:�7�_`
9Q��!������yMg6�su�()���n{{��0p����i��EF�L*,���;�}��|;� �A����'�A��{+m������Zi[e+K[_�J����������W�������������C=*���3���=U; ����������)�>>���!������S�������������6;�x���u�P��4&�O\�_x���?	?�;�M<y����������eR�i��?��R�Wh#��lD�)���G�b:��.�y5�n��L
\�=9�d�~|O(����X:6n;#������u�7dMV���W:v�V���
^Svp��W�6��P��U�T����_�k�*R��_��q�''P�&�����5���)��t����k~��)�\*��@6n��l��30���q�������8����{����u5�!�e�e8��Xu�����M	k��q�6��f#7[��n�9��,aNQ��XG����)�r�]:���>�n��~����
j^,�JZ�;�:�p�kS��F����:��Xo:��7,���i�S���8��YO[�\�{.:;����P����>������p���}o�^JJ�#��{�Ok�
}��#�XT����w�k�=����������O�5�G�������_�n��m5%��+Jo���[�r����R}[����P�o2m�9V<�?{b�+��"+��>���������������F����E��':C�:=��?�A&u}�I?_3��EH��d�,3P�p��a�'B�����W�"y\Y�%-������9�s�;�)���y}�^�W��1�)������R���xy��I�]�Z�F;r�DwN;*fMkw��
�z�1av��2�C�oV���2���X��<�����e'�M��fS��!�������W�bF��f+��[�MGgtj�#5�����p|��2��T������3N.���V��h��<�a�H��K�g���u�������WmC%C�5�@�:;7�>���JWWr��G�N�w�����]/�=YJ�Z����Y���y:���tU�N�S��o5�9Y�����B���)S+E$�r���ew~S#>�}2���M���Ov�6�)��j�v'��V\����=����}����y�g�u��m��L��w�2���Rc&W�E�9�_����U��h�i����5���z]=/��K��������Wt����1���7������{�w{��8���BH!?dA�D1;��5n��t����c�U���8���^P'a��JE�j�����9�}Ura@[�f�o<�U�Fn���l����C��8�V�M��L��\�k�;�M����� ��O���7���?�����_�����<x����<x����>>>>>>>>>wwww�L�S)TJ+R�r�!l�Z���%JT����3�p�*L[�x�z��L�J�Z��y����v���%JR��I*S-���w��s����������J-��^�|�b�����=*5�\��J�B�$�3��zq����Z���.�����B�!B�!&�J,�y
���f���������5����-8�O���2.�eB�����w����C!����t����r�\�W+��&I�(ffn���S�\Jf�J�J��x��0�w;��)J��%R�!@�\2���}���!�I=
(�d��>!*H�N��}^k��.���8�y��z|�=-����V-JR�� c��������*I�!B�!c�s��x�����@-��� h��r������w�1�e����c.�-�c)��Z�u����Z��&IT��B� �H ��8Z���9���(A%����n��k�c�2���`�-R� �H���
��4n�5��9�o���ffb	T��)JT����;7�.|�i$x�$�\�q����	T��a�p�@��5�H$���JIka�k\�9�k^k[����Itw!I����c|��[���n��Zk|�A%�7���4���{,77��h�BL��B� ��v���K��RJ�N�w;��h330B���w,����w�*�(BR��Z�$��!�1�e�@���ly��&PL�Tf<��	�x��<�����j� �c��N�{��U.P�C���tk�s�s����f<�{ JB	S��f-^_�:�B:=��I*R��*@���y����8�������� ����J�{71�H�L���}�*R�[.���s($���	y��`{���tIf�hq��{72�UPB	,�F� ��y�����i��9�ak`;@���c-e���)RJ����7u��R�a�9��A*�N�B� 	R�[k��(���x��{�R���WT�z<��x[��l�E�������������%J5��;�KT�a�v��k���5�s����;�����9��;��{�KT�@]����{��� P�N;^��R)lc��A*R�(A*� �*P�!B�@*�Z�7@S(A%����o�E�2��������c�h��p��www@v��r�U �����J-l���81�x������k���]!&@*-g�y�s������
p��7�`�A%�8v.@��-`8c�nR	,�����5�5�k|���k�����z�TA%�4����Kc�Z�]��2�������k�!,��)R�!@!B�!B]��;Z�{332�=�7]��K8nR����2�Z�x;�f]�wv��5�j�c��y�����Z�e��n��y�\���1��kT��)JR�E"��1�@����9��B�<sp�TJe�EJ;�x���=k�
�����n:P�O�4�b�1���U��f.����<�s�8wo�Q�<���<y������!A*.�Z������[1�\�B���;��Z	T�����wy��4Z���
�Ia���d(@����p[�2����{�����R�($�4;�	��J��
��n����Y�<���n�!�	R�[�s�xv�Pl�A*����Kv<i�� ��5�����!B�!A2L������������ �p�s����<�������3����:���R�p�� �(�w�������h;@����@��i�n.P�It���o����!B����c-e��ct��wv@@www{��������P��}��X����7wwt����� R���ps��(�N��x*-lc.��s��B� g��v�����q�=k�2
s�z�(A%��{�����xT�j� ���<{����9��:��j��O:]���������B	-g�y���Z��)JT�	�!B�!BA%��h Fp��K��a�9��*PA*R��%JR��J�T�*IR��)RB��
k�k|��1��Jk���@UP���0�����s�s�v��\s�����8�������ps��T�B� ��.�� �h��!B�!B�!%JR�������\N���LfN��������e[w�isr�J�	�J.��|BH��K���2�Q0�UR�E�t!SR�U7wd��u2J��IR����T��]U�����)�F��2I
��RH�L�jE.���U.n��T�]�2�K���������&I�d�T�]���*�]�����e��BU�Qwv�UuHD�������T���T�������]�����K���&QUD�isrJ�uw^�G��s2�"��gkj��T�I*��T���]�	��T���!UP�!wW(B)u112�J��ER���TTT ���@]����
������&UUqqw2*�uw]�=3������*���T�����2��T
�������S5w7Sps73s73���...�ET�@\\\\�����������U3P����g�y�3��<q��������>1�>><y<�O;x����+��+��<x�x���B�G���:~���d���2r�����.g.\�����UV������g0I'���8�w�x�����;������4Fq��l3Z�f]�Z�U�����x^vf��)%t[�U��A^��Y0���p��1�J{��@���"j�r��gU��*�^>�O7�^1��2c��1�c�c��1�<i��i���r��.W�.Zi����.~8�m�����v"���	!_��8FK�	���Q�0:d�{�@v����M�pm��e���oXdc7]���9	!��5��B��Q��jEo	������{|}=��,c2d�;cc�+�1�1�c<x���-4�M4�M4�M4�M4�M4�Od�{��G�������/���M�P�yn��D�yv��s
�)�S�{z�����v�4�Z	�7q���5w
:i#�O ,�ClY����j�����������ut�&Lc�1�<c�c���1�x���8i�.\��M4�M4�i��i��i���d!��3��s7=��������5�I@���,���XIX�PM�������%��E�w)���n�);5�����h'{�Xk���t�Tv1$d�N��������������2d�;cc�+�1�1�c<x�M4�M4�M4�M:�.���-4�M4�����w�M�w3V��R��������;l:�\7kP����Ys:�Y20hS*Y�V	��\���r����7��}rl�nl�B�n���G%XU�2���<	�q��|N9���;�r�\�v���1�&Lc��1�c�c��1�<i��i��i��i��i�M4�M4���|k��������Q�z{3����.�����F�,5)�*���gk3V9�:oub��n�5n�Oh�j�������O/+�[��1]%�wY.e!�x���`����[Xc�B�=�i{}���<z��2d�1���1X�1���c����i��i��'�U��s��-4�M4�M/����1������^���5��h����z�wR���q��-�vF���N���r-3-;�W��L9n�9u�Mjwt#��Q��5��d�(%��6lk��2�fdVY��dE����6���u�/_�����r�2d��c�1�1�b��cc�1����r���i��i��i�����i��i��=I!����=��������0��\�*�v40�����gj<O*���-�����&p��;���f����M���N[�7����h3 ��@�-:���6��O6��.��CN�\���'���������z{�2d�1���1X�1���c����i��.Zi��i��{��.&�4�M4�Ka��u�������Z��,��YW�a�SF��+�k:��P��d�@����&��6d��q�~�6pE�l�[�m�J��Tbm!�x���u��V��%��Vm���X.�J7����r�nA2������x���2d��c�1�1�b��cc�1���4�M4�M4�M4�M4���i��i��5���:j[T��a��z�+��wp�������4Sc���#O)���:'K]��	p���$
���Ty�����j������:E����umg\r��f���hwWV�-������'w�|K�����"+����e"��87�4*!f����D�R�'�;R�d�kSg^	
�g=�R/e�w��oD�T]�����ar����~!�$���H���3�o5
��l<
]=�5������iS[��[9�N/��i=[7c���������B���2���5 u�����_B�'X{��U���(<�6������#xQL�����Q� \�)����d�3��88mV�7���	�J�"g�:���X:�m9���[�����6�{i�	�@����:�jS��a�Q��s�D�+v�F�OTDD�E�������<�L*�En�����8ZRvo&���]�z����e��6V%���A�����{�q&YS; [����jn��U�Q�=f�t�F��fAc�&Z3n�.�p��B(���>���5�ZA�3�Z*�*"K7co+��`��Jk�D���z+wm����^e�U�����I10_0-ePG2������gG�2����e�D��;u���vC�i���'i��+6����,}�6����*��'6���GEU��sE�5st�����
#�z��z�0����������!T}�37:s�
[@����:�Z��������:�����Ce3���Vn�H
@Zx�$G��|;=j�"��*h�:v73�x�����o]/�b[��� �%Rj�X����	��P4qVd�ZB�������]�+W�����P
�����Brp��Z�v	9��^V�g%E��Vuu�A�W�`����������X�S����L��_T5
j�\��2�lM]�vC�)t����9Z��gVc���������]C��������X���������T.�����#����}��&[x4�U�������]MoE#Vql�%o8n�
C
���Lm�����Z�}�8�������Cq���9���F���9��0u���;k�������P���s$7$���y$d�q� ��H8��'�]yle���[`�������?����v�8+�}�V/��^��E����f�c���d�C�4(�D�t�+1u�q��7�s�(x�����4�bS�=�������r���Z���Az�|7%����;�N���s���{��R�}����R�u�n����v�������n�����w�&V��v���U�~�pr^������&���kqy5�n���`+�s���Bf/�gk��f3J�'�0���V���J������\�Cz1�c|�����������*��G�
B*�����Xe�S;�gc���py�ws�oqP�t�NK��G������Ee���u����
�]*�\v��$�w��-�'�^:���E35����XY7��;]t�\����NAu�|���bBF�#����n31����z�.8PH��>��?<{@���k�g�k���4�^�95K*�{l�K���7��)��<���D�pv��1�)�$n���L�:�P�5�g�*�`��<���%��zS�7���g��u��#Pue��������6�9�w�C������������f=�P�3N�J6�R+6�,�{��d��4VJXk#x$�w�:�l�/9si]������i�<�*�;��F���Og����g�F��L��������T�����v��{�����������l��������f�U���5���_��%��\���Qt��������R��zS���u�����s�9���+J�N����O'{{��4����(��r�;���Y+^�8'k�
;�)�M'gHt��P��AJ���Pt���g����K���>�����e5m5�P6b.��q��P�������fn�>����Y��oe�p	N*����*MJ���N��u�Um�Q_z�oR]��5S��wS��X��O�'�R~�J��o�(�d�R�T~�W{��~,wjIK]�F�k�Z�1��'N��D��(�u�sg,"��s�GQrY�/�2��m������$U���
�����R�,DFF=��ik����=���{��\�������w�u�/Go/��&�#��w��UW������o��C�y})~>M��|�0�{v��{m���[��������� Ky��]��gyY���u������%>���Gh�GWRwGs�o(�M<B��@�=�w�^gpg^)��.���:�m3�)���������������������b�����X���weeee-��M���cs�[]Xl�;fZ�303���WVZM4bP�c�1�C-s���5�\�j��E��o^�z����v�
hWAf�H��")$d��C+�����s����U�eP�����m[V�s1P�j��1]���1�Ck��66ck+5H2��1�J]��1�`�-S]��-u�J��0nNNm�-[X���t�"�����]��������c�c�+���Y]c�������U!���6��]�[UH@�k�)H@�]���;/u��y�6���Ur�U!���M@@�eP��U
jER�!iilUHER-U
jER�U!ER�U!EP��UlER�x��N�:c�o\�z��&1�����1��1�m�c��c��'
��
������p��bOg6G
���(�*��8��J��	�����p��`���Us	\$���$��I]K�|�B��_����d�;9��e����~���]v%S3~*��������K��::�Ek��zN
�a�m��k�u���$����g�1\�W����������w�Z�8U��Z���UW�����������&L�����i�c�c���1�z�1��$�J�A�p��`�*��,G
��
�
��H��F�8m���8#h�6�n`�*��/NU��"�H>g����u�_~����n��������.��k�d��#>��f8~R�f���gc�����g�'\�E@>�#'��M������g��_u���n���F�.R�������|�3���l�JK��M�����^�������������}���2c��i�c�c���1�x��hu��"m��j"V�Z����C���8�EiU�(��V��$�*�"V�Z������D��V���$G�H>w��/�����_��{�w����<]�2��2����"��*�!�%��MV�jt���$gT���w���Y���7�Wv������X����H�Y.%���E��W:z�������(�hV��{�������������2c��i�c�c���1�x��i��O����N�I�G�N����MAR+J�Ad+J�AR+J�Aa+J�AdJ��PTJ��P|�D���i���H��$���{��t��_��[�O���[(�x�E�mi�%<����6����g��@��Gn����z�=8z���y�[�\�������E��9����J���fN����3�u���uw�s��$O�v��z�����&Lc��1�c�c��1���I!+J�K8�8�%iU��iU��7M�m��J�V�J�ZUjD�m#n[m��iU��ZUj$��N�{��HG�$��>I���<��\~�8��_���9��5����]mS<\

�����n��d&e�U�v�3��)�y��W���N���1[����}�A�J��l�Z\��J�V*$�����@G�6�k>�W���c�=z�����&Lc��1�c�c��1���H�"J��R%I+J�H�$�*�"XJ��R%����d���R%$��V�s�KM4���H�*�"}Hd�?;�������}���L�k�|�X�EE{[y��8�:���3N$�S{z`�d���z�N�`1.��-��C�*J�Yf^�����BT]e���W|o5����7.^���3����m������&L��;cc�+�1�1�c=c���|�4��R%��*�"X�V�Z����Cm6�S8��I8��M���b+J�H�"���N���#m6�R%$�*�"d�D>�������8�k�����������p�U�M{u��1����W����T�e����g�]��U�(�����Q_>�V�Q�Q��+�R7�5
��'{qCg'M�Gm�����U~����~����/_2d�1���1X�1���c���G�J��Pu6&���H�>���:i��������$�6����dV�Z��q�M�m��j
�ZUjiU�7�C��_��|������9������4VpZ�w|�L���{����c��:M�8x�+���gZ��X5���fAfs���S;��tW�����/��eE�s��R��;jz��y����{���t������&L��;cc�+�1�1�c=c����V��nD���jH�q&N$��.�5��*�
��Pw�#n[m�,EiU�,�ZUj
�^$��V���~������}�?���}��4���u��1S���|���)���eZ�-�������c�B�n�<��e��,m��6����.�8���%)r��%l�,Kw�r�I:������n�<z�����L�1�v�4�1�V1�clc�<z�5��m�m�#�"K!ZUjZUjZUj
�ZUj
%iU����*�I%iU�,�J��Pq'�q�������~8��55���>�`7i�9��������:��i�SD��CSgwd�x��:yk��;J��.������t��}@��W_Q<�K���v����T%�"K|�8�$ d������
�7}���mK:rT���1V��q(���F>�e��������&�R��-��P�Q�yVX�fwY
���=��$�1��^�(b����C�|=�$�b�����zF0���:�"3����V��=�5R��Q��6�����m���'J�q���)�J����]��T%����ugH�w��8�M�t��c;D�����Q$�'�eB����a�8�V<sC{.�.0�ReS��&�30����h�cO�����p#sKLE�e�w�+t[
��pPM�����b�Q�ih=!�����b�S�\o�������(�L��V!���/����1�������Z��`�����ueZ���n�SJg"��~*��N����z�hQO��o�M]�����S�wN�l.v���WC{h��L�.��
�T}:�n��C5"Jgko96,�����[��Ct���T�l����u�
�w)�B�v����Whjz��bm����.�k�����[+Gu���t��]ov]��fmt�/L����u�kL)%���im�������	�X�1�l��L����n��F�[�p�D�����06�s�|�<K:���yO$��;��cf%.J�-�q����.M������K�c�F�[C05Ri�s�*��"�:���#!��r�A>�����u��v���������b�i
=��G�g2qTnc�wWx(�F
��h\.Y�Su���O4\&c{o;��������cVO����-l�����TY�y��9p�:R�����$3�l7����*���y�����]<�s�JZ#.���tcx�/�nk4�����M�������os�Qpb�����v,�]Y��GQ�0j�y��W|sf���9�=}8B�v�E����j��s���wY��t �[���nC��j������z�����u/���N�q$��'rH�8D��$�{$I�A�A��U^��U�?H*
����5��k1[��n����N8	F���uL�ngG�;��(Ou���H_�1��|h|������)�
��������u�������(��N�Yu�u*B�V�"�����I
�����1��m�Q��w,�{!��'�8k�hHK��������!P�@���#��;�����k��mL�5�z��M86m�^a�w���+$�2���9.����<��3��;�6(���m�C���|���{S���9.5o�>�Hv���8�r�Ye�Ke��6r�e���zt$���W%W��AK)N������c��*���{/y��C�&���Vn�V��c!�N������N�F�_���PT�1�����G��.�����>��v�~<t�gxcO&��(�^��~�W5��Z���[�����H�/�oaOI;�����#J����kb=�Z�E����r�.gV$�����;(��aYWK��^�z����{��c������{��~W������vf�uc:sx�=X�T�Va&��y7-�"���������oN$�0���wei�:��{���k�b���lY.���W�7�����J[��]�����x��o�0��<��5m�M7��L��|
����`�s~��,��V+�`���iUsh��%qc�G�|��x���W�f��X���b5�����zh�#t��Y%p��j�e��������"]d�7+hy
Qe�Z��6�y�o�)���b��n
���J��]�u���H�T?g{w�������vy�"�.�����,�t��xW]�����D���`������p�O��+/k����)Nt<���^s�����{3�kx+>�{�G�gK�
zG�L�b!�O�yp���}�u9+��������/�Z3UB�Yj�M{��9e�#�6�]��_>���i�
-��qYd,�O��v&�����n���#��]�*�'\�����wM����BQ��D�2���]q"v�������#�:�^�����1/Z��@�5q����:ZI�(�V]��lD��I�t�"��o=Zn�]Xcs����~4�9�f�iu����������~�����t��p�#���W�?0m�0�t���+�=�&�:�%����4fn:.b�d�{N���E|�#GV���t������2�0��)��R����lZ�W���Y��s�����?������{|}��������0������j�R�[]��-u�J�:�X���������f`f-�M�����h����0�c�Z�P��kV��k��\�Uc�7gm���-����Se��C+�����s����U�eP�����mZ�Us*��j��1]��1�Ck��66ck+5@��mc�%��@�0��v=��J��'�I) ��C
)���rZ�������Erms���!�1�L]��!��1V1�)l����k�
V��T�V���*�-v�mU SU�L��)��!�vv^��b��l��L��6"���Bh��*��"�SR*�-!KKb�ZB*��"�SR*��"�B*��"�B*�5U$�"J�$T� =�}�g��}�{�W���I�&1�����1�c���1�x��j��V���V���V��8��*�s�����Z�>q#hm��j
�ZUjZUi��&�m6�P}~��������?u���5w~���k�g>u#�L6��\�y�����k��XzVc����l�zz�L�\�=����Z���V�9�Cm�M�J"N�r���[z0���M��ei����o��������n�~;z�O>�G��L�1�v�4�1�c��p�1�c��cP|�+J�AbJ��PY$�*��+J�AP�*��+J�AdJ��PQ+J�AH�*��@}��~~q3��������-���3]O�+���w��V�[�Rb�vJ�:!����k�Be�*�'"���U�����{2Nun_$��$��d�[5Z�(<{�$�T���_%2���5���o<x���z���&1���1�c���8c�1��1�>AZUj
(�������V��V�Z��ZUh�'iU�,EiU�,�iU�*EiU�>��A��~k�����u����~D��2��2�3M����i��Pv���1��8j������m���$vv��R� ����=���cY��4f�����
��Du��w2�����:���;��f�G�J�cY�2d��c�1�1�c�<c�1�c=c����V���V��V�Z��ZUi��K��Z�q8���Z��V�Z��V�Z�����Ad�{������?���b�*�%u�ia6�
�S��s��3��:���Z�Ce,���w�;�}*�0����,n�a����Q`�~7����B�u��nJi��7�����U}��j��K1�J����o��/}�I?<V��}d||d���lcLc�1�x�c�<x�� �*�WY��q���\I��6���AB��q�IU�������q�%W*�$���qa!�H=��������g�kD��=�e��;%R����K��+J��j�����%�or�wL���)��k�=���cl�����}���3��w������,�-��Mw{ PL������F�:��8�����R�5f���,U������z���&1�����1�c���1�x��A�
�U�B��qD��\A��&�V�AEW*�
�Ur� �EW*�
EW*�S��"�r� �u$C�$����k����$U��j�6�'l��\���n�����l�%�����&�n�ZGQ`�������LqW������Q��1V��w\�R1���l�c\����G%"p�;X���C������]W����oX��G��L�1�v�4�1�c��p�1�c��X��A�m�n �\��)\��)$��\AD�\��*I*�WT��U�B��q���\D�q#��I'� �;����~~u��:�?7g��M�5g;{j�pI��������l�U|�<���}�=}@C�+��(��%�)0��V%���;���;:m��	����4��3ewM'3q�V���J�e	YY���51��w������3�g<��?����}{�2d��c�1�1�c�<c�1�c<z�|���\AR*�WR*�W�xI�M���Y"��qD��\AQ*�WY"��q"��q]��� �Y�q��{������V~�kh�Z?"��������.�7����H��������|9�QnY����M1|:����L{�4�L�C1������=(�Nk�k���.W.������BR�4e&wSZ����O^�x�����&Lc��1�c�1�1�c���8��\��,EW*�
IU����Ur� �\��*EW*��pF��n[q���\Ab*�W���$�� ��q�9��������RqU�]M6%f�����+�;7�#��X�X&�V���W�}�*�������Pw]�������'��y�r��;h����L�����
�,�ct2U��
�n�]m��Es���q�wW�a?+�Lc������&1�����1�c���1�x��D�8���U����Ur� ��\��qpEW*�
I*�WRIU����W*�H�qn#m�n ��\��?mf�$��s(��L�C�+Rl+(�]�����{km��/f� ��&�����V;yf�M��v����|�C|+���a�[6�r%�e�����4h>��G �������`xK�2�e^��A�����
U���6���E�gpn<VU0����T�Y�S�2�^m {ea���rB�x),q������.27[|PW3N������������b���S[��Y�m�4+.�pBm�n�kIf�e�l�al�;8��[���,��ofHn�>H^���lR�X�Z�	J���X��]|�(U����A.�j�m4q������g@o�����
��WDwWZz#soKF
bF�,��r���|y:q't�����f��EF=��$��01xmq-5�x�vJ��'�V�B0!{s)��u��3
����dAv���xu-��0�!�&�������=�����t��������aXd!^V�u��� \�{SX��J�`�t)�EgQIm(�i�)�	�x��X&8�|�6�+x�9���	��z#V$�����hwA''5��+5��H�o�+WC�
v5%�����5����L���M&=��A�4Bn+���L���VU)��Y��f�E�]���^]Y�)6��[�Q����6M�����<�AM���7oHHKx�)��[JQR��r�;{��]kbs����Nn��{�{&������IR���/u8�$��'%���������*�-��v�pi���f���[��n�Zc����!���Ul����4)�z&��\Bq����������>H�����q�r�aP���7�w[��u&|iT{�����d���D�����j���yN��D�k��h�H=�&;��h�K
�!.e����������h�Z�A���J��K������F�������S[�+&v�\�Y�q�>,�)��� �����;����j�{�Mf*�/�,��&9��vn��)	$��-��a�lu���-`����Z�s�z�u���rA�M�8'�I��'RA��y$��A��d�����
Bw��n�O6#������Rl��W����}kz��������N;M:�,K�����=�n���R�!B	�vT���u@8T�z0H4���c�V]5����X7�^gH��^��4}�i��Z^(���}�K����mc������������a��Z�����_�r���"/�d����U�{�<|ud������kJ�����E���:3%��k�W����F��'�e�L����~{/��m���2�FBG�8������^:�7Pq����n�2��t����v���K%�?]�3Gk���ot�����]�{�.vW���$�����K�#Z������:�e27���
t/f��Yj�m�$bg+{���\��}���U%&{,@�8�r�u��t}�k�W�������[������t��Y�*��w[Mm�d�U���Z�>u���"�v�Veq�s
gv��4�D&�A�*Y����/��F�o���O	�?9|M^VfZ������#�����{`��}S����.��������z1������������ar�ilod����U�Z<5�z>��l�|V>M�]w�����j�F^��u���0�/������45k��Z\9z���Zd�js�)r�52�,���f::�������u�����L��x��I���]�X�MO{�K����y��1�YtG:�����]O�����db�TV���#��X:��t�T�pT�Al����m��Q������+�x��3��x�~�}Y��D,};�`�����^�[�V�1�x3�\�{I���k��,�jm������y��s�p�/������:�@�c�S��;��"o����c��wyC�E�j�a,�*�c�.M`��k"H�v��ic���`=n�:�m7+�*��9�������L?W��
F��?^�Q�0��O�c
��+vLx�34*E,�0���w��.�)����0x�"�A���[x�dt�����fM�'��H�w�X��?��j���s�R���6��S��B���z��'��Jeu���5�?Z�]��"���}[w��ue�y�����_����UUU~������O�R�����E
����]���``s���l��?���V����Rz��4T���+m@&ntu���������4�J�
^'�wU7��h|	}�
sc)�:I�1��Q�1v�T��)�U�<~���l�|�W��A�@cki��*T��k�E��)X�\��fb�3-c��rSo+�-&�1(e��������mr��@5Z��"�8��@��
��{{��y��9T�]���2�%Z�Urm[U�eP�{[�l����mZ�Us*��j��1]��1�Ck��66ck+5@��mc�d�Wd�c�v�T��Wd�]rR�r����nKV�0���1�@-�q�Wd0f1i�+�`�1X�!��1[-�����U�LB*��j�T�EP��-�����r`�T�MU����^��`���`�\��^���^������H�����MH�@��---��i�B��MH�B��!�B�� Z����m��Bs�z���N�={�d���lcLc�1�x�c�<x�� �|��j��,�W*�
EW*�$Ur� �Ur� ��\��9�#�r� �\��*EW*���~���H:����������>~��7p��o\����{n,���'T���V=������}�9����p[{:�K!+u6�R�'�Py���\!�&a�W$m���lm�j���9��um����z��&���}o�k�w�;�}��D�+<x���||d���lcLc�1�x�c�<x��"M�$|��n[q�*�W9�"K!�r� ��\��*IU�����\��,%W*�	U����U�������7>��A������'����e����;����KFU��g14b�mq������'i��},Y�;�H�y0T�t coM�R�w�r����J��6�3Z��z�v&�����+���W}U�X��=}d||d���lcLc�1�x�c�<x�� ��U�����\�����F�M���RJ�U�I*�WY$��\AQ*�WY$�\��(Ur� �i�?RA��>~u9����>������i����l�{�Eo�W��Vd*��fq��U����ICP�v�wz�6U�b��MJ�f�bv5�D�DB��{vtWT������E��4*�����nu��=�N{��������;v������L�1�v�4�1�c��c�1���q�"��qD��\A��U$��r������\��K�N!*�Wu7$m�m�u8�7	����W*���$�����+��C��_��_��������Z����z��x���������y�q�N��c7-��Q���D$s_���or����A��yC������g6�c4��d��U`�vI�P��8�;n�z���v��=}dz���&1�����1�c���1�x��A�J�U���q�J�U�lm�m����q�*�W��9�D�I6��n �%W*�!U��������������y�{��V��m����~Y%v�v��{��gIa��ah�ok3I���]6�������fgL�eZo���������}��r��5���X�y'(��u��u�R����x�������&L��;cc�1�c�8c�1���q"6���G��I�����Y��qD��\I�E�+�*�
�U����5�*���N$�$W.U����q�"d�>���������]k�r����;�	�6�h�4��
u����a94��r�a�f^�6�B4r_����������nK����*��UX�f�N������Q��"�8��y�y|��8���	��t��������&1�����1�c���1�x����|I*����q'S�N�I&�J��$�UUI%
��$�UH�GUUI%H���N����nH�p�r}�d�����������~S�M���nd�j��)��`�x�!��*��"�]
���0���J��Ax������9��
�{���kr��sM,z��)f���9�������GA�0��������g����������&L��;cc�1�c�8c�1���dw8D�$m��H�p��UUI%�J��$�UU�=�l6�j�JI*����$�UUI&m��I%$�URI�}Bd�3��������}N>k�8�;����rcE�,������E�U�Q�o_�i�6����.��[K�82���zI����@M�{j��S�l���)����jG&L�����#��Ug�><Um����z���&1�����1�c���1�x����|�%UT�Y
��$�EUT�Y"��I,�UT�T*����UUI%����J%UT�x�������*������O�����M=;��+u��H��e(�u����m!%�����(�4	d�M3/�7NM�b����d�`y���hg���n9Sv����*����R��,^�#�Pa&�cC��n�<~>�����2c��i�c�1���c��=I�G�J��J�UU$�v���m$�$�URIR*�����URIQ*����
�m����p���o��UC��*����T���������!���������7�5[m����s��WgD-�0��u��J�0r�)����������^-3\�mG����r�a(ML�!+���;ho.�}Y���n�pP�G'L-���w�Q���sN�lX�I��:�m�-�z�@�#~t;w:���a��8T�W��h���I�5/���^$�&yq:���������,hO'	Xxpxs�BE���Sw�t�^L�}YM�}�u���a���K��bR$��g���$��Z��_\��J���#j���ti��� �Y�����g�N{�r�r�;WOe:��$�{�WF��:���L%��q�%Q��j�^�r�nV!K�dH��>�lZ'��pB����v��>���R�XU|�V[�{ Q\����1�&F������]6��}pp��;��L�zv���N�����K
�e�j�����������`����]�e���,�G���A�}9I�`Yt���q����6�,�87��wQ�!�b�������(9���nI�Ig\�M�������Y���ck'n>��%gg�v���h��m����q���*v�/@
�@sN�m��^�>��IGXt�7N�B;�����������t�S���5Y�=��������M�����r����k���q�a��%2�:�o}���o��E�|�Y���kt��p)-
{����.]���`�f*{G�(�� K���u�=�]8��l�M��S6���l��:����!TtU 2���s���Br��arE
��zS��6���.;o��mK`Z	�T6��u�`�Y8�b�3u����q�U�)p��E�X�[��a��(��j�n��Un����@�z

d�y1>�.fv������}���������r�y�;*�|�d�'+�c�����w���v��dv���1:��g+y�tr�P��FxrL�[�.�������~�� �������3��a���J�~9]R�c��S@��\�c�N��z>X��������<����.��� �I���I8C�H:���� �H2����@�B���/Ec�����	���0���,�������w#���uD6��X6����9��7�/U��);=7
9LG5wS�N2�^s=���/��������8�����rM��k7�S�
AI�K�f	�%@����<��/�re��;�[X����}l7]S����s�w+5��G�N����d�����T�O�������\-������0]\�G�����������$����e���[,���F�$�iX3W�0������;|�V_�U�n�ch�y���A���p�����L��i�����;��K��r�7~���W������z$uo�W�T��������)���h��vtC����'7�%z`��3*d��u��f�����.zW>�@�aV��3���7FF�=E���n�T����z��_��p�W4q���F�s
��������+2�*�T��3�_��$�,�5��Y}���k)���T�XW����r���z��i������7�;������#Xe�
}dt+�g4p������\U����uz�gB��/W��!���%��'�����F�h-R�m�'���6wg.��:�yGki�z{hrC5z�e�~	�S�u��3��������j/s���~|�L�($D�A����+6�W��yn�/W�t:X|_L�
e<�L�q,�����|Me�����5V�]�Z����|��c��
{��Ee�{^��o������#=^l����-qt:��p�����s]�����h���j�j�{"wB�|����6���y�u�C���X!t��������%�=zMv�jM;OT�P��C��u����l�6��k�����Fo�`�I
�Zt���g{�����s�goVD�����q?> ��5��k/��O�{.,?�(�.����b��5=&{��P��v����m�/������y*oyj)L�r���|���8w��L^���3_��W)�������u�fGK����'�H������r���#�����T�+�%a�����w��s7������.���[�{3���U��)������������J������B�K2�~}�t���b
r��-\�;`�(��E����c���K3DZ^d�,j�Z�"�����&d�/j�6��2�LTkr���K /'5��X�j{Y�A~W^��^��~�w��}�����.�4�N��g���B�k�E��)X�\��fb�3-c��rSkeue��1(e��������ms��� �rbk�`��b������������`��Ur]��-s������2�Ka����s����H@�mc@�0�b�]X�-�mef�h-�`������[@��j�����k�JU�Crr^k�j��w���!�e��6�\�c�2�f1�C�b�c���-�@5Z��"���M4W!��T�+�j����R5Wd0n���{l^p
��r)�Ur�U!���M@@�eP��U
cUR�!iilUHER�U
jER�U!ER�U!�P��Um�����8��8���N�:z�=z��&1�c��c�1�p�1�c�1��\"H!8UU����p�m��
�������VUY"U�T�U�T*���$?RH��������I���;�
�`,
}������i-�V]�Vr�6��n��W���f�����*:�����{�i��v��a��n�a�U���J��c:��;�T��X�l~>�>>2d��c�8c�1�c1�c����|nf�R*��"U�TJ���VUY
���U�TU�T�����D��K�������6�a������������Ub��Vm��3+�1�B��]F��C�;l�+$�0&����o��%�-��aoM��ffKt�I�;h�A�*T�z������]��D���c�����&L��1�c�1�c�1��1�Y1��VUY
���$�*�$�*�I*���YUd*��$U�V�����A���W�O�+�u�o�Z�����B�-W`���1����]�v�wn���rX�����a���Z�������J��<'7#�T����2X�}\���u}~��s���%����o���z���&1�c��c�1�p�1�c�Lc��YUb*��$U�U���eU
���YU�"��U"��&�G_�D~���y�������/�Z�e!r�� ��%��S��������/3u���K��l��!�+U3O3=�X���7e*���������������n;[��M�J�s���U�m�n���c��L�1�c�c�1�c�1�c�c$J����eUD�*�eU��*�$�*�eUD�*�%YU��H}��^{��^��;�{�e��1�+a��h�$;[�1M�2������X���jwX]�i��B�8T�L��v���:����kJ����������~�7yG�Vq���������������n���=���&L��1�c�1�c�1��1�Y1��eU���eUH�*�%YU�r&��ma*��$U�TJ���������+��}�����)f�C��N��}��=t�����1���cnZ��Kk*j�y�AKr��������mA{w�m�����.*�LN���/N�$�z�4hU�C�L���6��0
��S�&Uz�||}��/=�������&1�c��c�1�p�1�c�Lc�EYU)eW��m����U�VH�*�%YUI%YUB����nm��$�W����~~
����,b���K�[�d��$��&n�b�����z{R:x����v�#�]R5���.��t�5%a��9s+,Tx�����[�Z�F�x���E���YtqA�X���bp^�-��,���>��G���2c�1��1�c�c�=d�>"J����$�sm�6F��m�p�nm���*�EYUEYUI*��VU}"d�������y�^�y�u�����KY5����U��!Cja�Hk;���e��)�z`wW� K�Y�������<�Q$��5�u�u�Ne�.����[���%@���n)x�VTx
����h�b-^�����������=|d���1�p�1�c�8c�1�&1��M�6��VUT*��EYU`�*�eU"���U�T���i��UW���@��r��*������ouS�X����Vigv�h�K��]DZ��+�&��
�B�c����+�B�h� ;��8��Y�����n�A�����u��e������\2��������
���t�����=|d���1�p�1�c�8c�1�&1�����$�*�I*��$����U�VB���U�V"���Q+R�O��~O����u����9���.���76�W�\G�Q��h�]���;a�����2��"�v���rtS�t�����KV�5�?[y
��.�mq���on�W��PWOn�WY���de)����*�[�-`Ik���;)�����g���M�V��%(�u��Ro>��ZK�G�W&����HU=:�b��k�%b:��L!He��nc5���0UN����J)�|�".Hzn�d��;�b����(;Oox��b`-v`��q;q���s�T;;����y}�,�BR�\��c��3o��C��y�uJ��������]���	��X��"t���;+W3F�������\���6�����Z6��&�2�v�n�Fru6J�%t���m�H�Yo�tJ�		�3�����f�Nw%W�X�AX��Gp�_f������`�������b
^��D�tn��i:bN�����ut[�81��b��0s8�N���n����l���K�"-��:���/���fuuM����m�@T�z���Qx�iW�:����BSY��������$�VZ;a���a
*_s�H09G��,](]H�� �l��x�3�V���poo`'o���u��G�	��o����F��0a�k��?��\��}f'm������x����5s;x�j�S�b	��H�l��7ovD1�8��������0�tA�V���|p��}�V�+�vYsC����Y+9���T���rRxGgN_���]+S���B�wUItuei�\a�ZEn�l�fd��G����b������-��^�=O�.��n�n0H�{����`U�`���m�wy�q�k�Mk��:Z�O5�������Z_wDf�+t�g8���x�7�p�>����+;�7�dq������]n���h���PhrC�vbwL�N�y�d]:�v9*��Wu�J82b�B���2n
�
���R^�wU����m,='`Z0�$���	�/�Y&c��E*�.�M��x����=�e���A:s�8�Nd�rA�"}BT�q"q$���pp$� �H=�$��!�>�������c~���e������}
~��n_3�����CW.c,v�s
����c
�+*��	1/��6Z�l��loT�"�����6%K���o/����m�����a}j��,����l�v<|�J��)96�����\{��
���O���*�L����c���1�s�e�%��_��s�yK��ot��`,�;2b���N��[%���f'u�Eu�����v�VLx��Gv�,N_���G�����sU��@�u���T�G�
��
aE�P]Aw�q��Hh=�S����|2f�y�=��J�y�p����BzZY��g\Y�:v�.�BV���Vk=;*[W��V�������{#��<���AB�v����D/{�������+<��?6����F�_���[ev�I�B�iwk�IW+7�����C	������!��)|�}-��e�4q�t���zu�/j���W7|���~[�~�GT�r�L��T=7�=�u-C
a�i��x��PfJ� ��Z�4Th��{q�����i��O(	)�h�t���*��2�6V.������:�s
\�r�����h���I�l��o�;��a�oY��q��Wb�>��[��YP�I��^Y�i��d;�<����������h\����,���i<�!��:r�����P����[�.�u�_O7����5��j�������t��%�������54_����H	�����n;��r��}*�-R���[
M����b��k��&�F�'�iT����#�#G�����)d����y<
����+��o������[�+�]�Dvc�q��7�b.ms��n���}�^mp"C��iy��7=�
���/�Y�3�^>:���Z��lJ��l��m���{���J�������y!�,N���1f�g6A���H�����=�K����)�7��?K�|\Vz>/nNy�Q��9�}t���.�����lr�4Z�*a��#��f����9xSl^���G��;w���d��bLx�u�}�eww��X����b#Ru�hk�qQK���e %g^vgZ����(���1� "��R����w���y�;�5��N	��|�����s��{��������1[�Q*�����d���[z�cY����+u��w���P��uV]���wNcsuPme�H��-�����Z�$#������RX��������A���On1hi�`�W���zy����>�3��N��~{����sHB-�����.�c�u�k31v�������)�����M�2��z�bP�\���]��!���1��0er�Z`�����X������\�
�@+�P�uW!���\�U!l!-[V��uWV*��j��+��c�1U��c��2�P�
���0�fJUvJ�-�Z��LlEvJ��%*�!��9/5��mc;�����2��U��)X������b�5c�1�b�m���� �rbT�V�!4W!��T�+��k���
j��`����������Scer�U!��@�UU�HBT)�UH�����T�!HBT)�HBT�!HBT�UB��T-!B��8���N�:z�=z��&1�c��c�1�p�1�c�Lc�"���eU��*�EYUP�*�EYUa*��$U�VI%YVO��$�����������<��z���SU<�i����f8�f���kwQ�UY������L�i�Ay�z��
����b�|N���\�����.�����.�#�;0�m�m&���F�F��������{���>k|kB~4�m���#��L�1�c�c�1�c�1�c�cJ����eU�*��B���U�TJ����eUeU$�*��Q� �����]�g��s�I��`���4l��.���e��/i4��0l���bm�n�J����oxWZ�fD�S�C
h�e*Z��a���x��B�M�oA��W���:������u������2�WLx���>>2d��c�8c�1�c1�c���"U�U$�*�I*��J���*��&���6��YU`�*�eW��d������]6���V���q��(H����34K�0�k�R����qZ�	X�����o�6����Q`�^G���
�F�M���"2�b���|W*�?Y2d�1�c1�c�1��1�z��|��*��eU$�eU��*��U�V$�*�IVUY"���U�\}!d������s��w�����=y�Q���������6�� ;�nQD��f�y����0�x�����d�m&���{��tMhm�r.�,�|_\�8��#��;v������2c�1��1�c�c�=d�>BU�T�����eUEYUb���%YUP�*��%YU`�*��"� �s5�|�79���{���lS�h��%�t�a�q�bm����U�FaHm]�8�CSL��k1�\���+s�w����o6����y���5�;H�m����}|�_2d�1�c1�c�1��1�z��|
���YUQ*���U�VD�*�*����H�����&����Y�����$?RA����~����KN�)�SK��
90e^J���-`�;|LUe�.��&a6��R���K�5�&��VN�Y������%7�{��O7��w������~�c�1�������2c�1��1�c�c�=d�>VUR*��IVUQ*���VUP�*�7��m�7	���Y������%W�U^��O���������z�D0����i��lkS9Y,
��b��Y�O,$��Z��F�����9�/��+�N�y���I�4�!��t���7���^No'����o������&Lc�1��1�c��c�����I���J�VUY"���&��sm�Q+R��U�VD�eUI%YUd�U�_R!�H>|�~m���u��V��x
�Z�������/
�P��M,�)����[���Sb�h�-���futZG�m"p�wu�����&)��a��X�z���k��7y�t%���U��v^�d�w_�^��y�x�}~�#��&L��1�c�1�c�1��1�Y1��EYUD�*�eU��*�eUD�*��"��V����*�~��^��U^���u��,��������j��*��Z�o+1&�.��a��	�bN�B@�U;sheJ9�F\���b��y7X��6���C���,����ms�V���]��i�����RS;|f���y�>���o_�������&1�c��c�1�p�1�c�Lc�%YUd*��D�*�I*�����m���eUI%YUa*��U�^��k�}����}u�z�s�>N�v�r��P�0q�|���M�Wt�>[��,�4:��N�0�v�C��g��w��x{x@���>,D�3z�sQyc�
�7��|L<+4R(�k����/.+g	��}A�h��.�#F�D�d����MZ��X���U���+�����f��j��W
������)�[��o�����&��s4� �j�w_����cp�,F�����\x��E�8�kQ�.;�^��W�����c4�L�9��d�S�d�qo���3t�����H�WzFF��[cNh���m��t�����%]�1;vE��4T�)k����^0��+4����,���N��a������%�v7�V�T�����u�����+h
H7�2��|�hfk�&p�����;�y9���Zl�o���	�@�>
�M�]l::Ir���'v�������C���E��,��T����olU����mN�7���C��	Xf�8���V��V��!{��P������/v���dV.����rP�m����e�������.lYG
n�K�a���k��������*�=������	e	�j���Y�mF�Ybyx�1���KY����IZw���d��5�$F������kx�:�v��pG������)����S{i���a������J��RO�^����z��=��N,������M�P.��N�J���bl��!Y&`�hmj��i����}������.(�������N��PbQ���m)�F3����mu�eBR�_��2���c����.��!�u6[�|��zkr����t�o[v���4�wD�8U�6��}��d$r��W�\*�6�J����\�������m���%O����&p6�#��o��Y��gf�0N�+[��v�5���[a�g,�XZJ�������!�:N�3����N�evA��K'�8lJ��7�2�,�j�����C��(������lS&f�Y�5���S����GTN]���#/mK2��Y�X��>��7��H;�$�2H>�;N$p�'	�I8III�A�A�5[����l�����b	�X2}��mr���7j�G����Z��>]�i/����3�}z�2~eb78�$b�uo9^r9k�Ue�)0'��y��p�=lR��t|u3�V�Cr�l�����x��p����X�ok
�tF�z9Tk[�����c�M�8�/����It����x){�hoUm�`Pt�3�d=K��l;.��?�u/��f���'v�_�8� ����m����'�|	.�{����������w=sho�����������#9n�����d��)�pE\��C-npN���4H�@�ut�J(:����!��kLs7a�5�OrM*/eW?N7����� -`�S�<K&�
(w���#�s���DJ�e_��x�X:G:�@�}��n��K�{��.~�i�������W�u���}FP�De����~����
�=���v�	���:�I����"�����&V���
��(u*��IYp�q6�w���6Vz�M����e ���_��8�?^��I�:�mu�8�Y[/kf�"F�����d��������Ww��':M>��zY�C�.e��9\�1L���)m��larW����Ne�?��7#�Mv�kP�������S�k/i����t�I^�8��Z���o�p+>�z�cv�U�D�����KM^a���q4D� ���[v��7��[SO�*�����C��r��	U�Nj���3����7���U����kB�;��<:nz��N��9�hZx�Joe
�����f
��*a�6�7)�4��'��$CR�xF����d�8U�����"�y�M����)'���>al���i�+,5u��I*���:��U��}W��)�^Q��*�7��;~�����|����Y��6��:�p��E����+�����k/erE�eS���z���
�#��a�����-%���v.\:�b$c�29Iv�Ql�Zn�zw���[�T�g�)Q�6��[m;���29�M����-������j��.�d�n�^�]*������=��~w�~L���[u���~���[������� k����x-��jh��'��=��E��
�
��uj��WiSF����MZY7os��l*���r���%[�:��A�n�e����d�p{a�+pn�vn�n�L�u^�������Oee4h5�����"=�C�J�O$@��]X�l�-����:��303��kmef��-0e�����������U�C-rbk�`��0���;{�t�o8`
�W:�+�Ur\�Z�Urm[U�eP���mZ�Uua����`��1�b�5Z��1m|c+5@��mc�d�Wd�c��0er�Wd�]��-r����^KV�0���0Z�@-�q�Z����Z�j��)�V1@-c�-����mr��&!H�mrErk�Ib��MV�0Z�@����
��{om���^NE66W&�j���"��U!EP�5U ZB���R�U!EP��U!ER�U!ER-U
cUP��U S_��=����N��z��%d�1����1�c1�i�c�c������U�TJ���U�Z���*��*��$J��]M��3m�U�\u�}�}���s����s�^j��>Ms�����x��]��hk���q	�4
h�XNRLE����F5��H{������o��5�'1�qi6r�u��]3�*)��%��7��+��������$���v��__�2d���1�1��1�c�1�1�c�Lv�!VUY
���U�V"���%YUQ*��X��������l��6���!�H5��Z��9��~v�_����;z�0sQ��*�5]��x��r���yv,ec���W�hi�*&B���F�vHq����
I��*��V�1i��]+9�[��{�}���s�vX��^:x������&J��cc1�c�<c��=d�o�eUI%YUdJ���$�*����$�*�$�*��YUdJ���|�I�I��/��������1�^�m��
z��4fh��1��jF�Z�o�j���qa�5���u���2�1u!�f�=��F-���
,�����u9����[�]w�g�������~j�G��c�������L���6�8c�1�x�1�1�z���$*��	VUXJ���J��V
�����m����U�^���:u:t������u��UU_��������������R��F:D��%��
��b��e����X��S�t5i�Sh����M�F�����@���Io
i^�dk���q<W(�U�A`oiLa�{�ud�EJz4�����-��_���x������+&1�m�p�1�c��cLc�����*��z�7�N��:XJ�����m���H�eU��eU��eU�IVUX*��{DG�H/�>������?����
;�l��/I�R����d�Eu ���������D���17�YAW��(0
7r��&�f��X�Q����++!�B�+�w�x"�\Y�<�������w�d>4���>�O^�2d���1�1��1�c�1�1�c�Lv�YURIVUu6nm�"����eU��������T*��eW�R���{����0���������W�g�>l�)d�t�a�I����r��"c*b���1�LfU�3an������Utq�-���q���^S��$����{��0���4��P�y��W����������=|d�Y1�clc�1�c��cc������U�VB���eUD�*��F��mQ*��
���U�Y7$m���d�^�UW���?.�>w_jyG�+kn��Z��A�P��R;�Z���n$*�[���R
��M��7���r]]��N�k��Z
;��r$��2�Df���<9����E��(�����^����|}�������+&1�m�p�1�c��cLc���D����U�_s��N�=�r$�sm�Q%jUTIVUx��6��kVUX7�[���{�^�UW�����\���Z�D��{�%�4��xH�*�MyKM��"��1LjV��Zi�(����:���:%�OXkG<�
��/���-�����0���X)d�T�N���z����<~>�=|d�Y1�clc�1�c��cc��������$�*�U�TIVUT%YUd�VURIVUY
����!�������?RA�Y���uu���>��:E���5����
�i���c\E������������%"rS�LX5�T334@
I���j����l[.Bk^�{�����������������c���c�1��4�1�Y1���nm�I%YUI%YURIVUR*��
��K$����U�VU�_??=�]*5[V
������ ��u)9>S-E6cz8�`'����q��&�3���Xz3t{��WL���*�W�+h��.�G%A�KY���sC�cc�{����vT��Q��h:����5cYt���V��V���uU��U��L���[�x���f�R�2�1_i|�-�5&��������h�n�w2���U����l����N�0���[�e�B��S�&�������n��iL|:�V������p9�.�������fK$#;�$�NH�����Qn�j�|e��Fp���klp8X+)$W'��:]����o&(n4��F,��XJ�\��W��3�B�����U��kFm�H�W�e"��������YY���������q���$�h[9L��v���H=�o��0e<��WY��6��X�RGx�	�xvn�aU���KTe��:�.�����(��$3&N�t�U�^]f\�z�t�����o�E��3����f�agGbZ��.�"�<g��w�B�vk ��;�]��uj[N����z�B��q�<�H�2�>&�����������3k9�r�3�;�P�D�9�N�
����-op�@n����G�aP5M��cl���.5������m�������u�=��c���Z$���j�=.�}v���5��a����������-���q�����iWq��Ho��n���+-���T��]reFc[�e6�m�wE(E;w������vr��h]8ol�>�y.�a>��T����<O`������+:���[��pn(C�}{|*���������Tv���Cr1}ft�k�_	�tuyQ�o@	���-t������&�wWc��Ul����2����u��h�O�r1�[
(��x��_aM>��.��hb�3���32�t^���Zy�C�^��Y�p�D�I�]��v�;�k��.Fun�i����v�#D�*���C�M��S���s	C�-Xr�� &��<6��\0��E$ {BqS��x�ur�g=�qf��s�u]nv�o�����*j�h�}]\�a[�����:�oZ3=��K�����RM�k��6�������������$N��rA����+-Y��v��[W�V�����f�������3����&ae��mm���C�o�W}����Y������������d,��:;Aa�$��b����M2��������[y\���������u��`�_Y�J�h~��������:��������tT����mb�R���
�����
�.[����@O�0��1(k�39�^�|N�����:}"e��+q`�~����
w0���(��DJi��-��NK���\X��y�VR�S�]+4'�]�MXY��2������xeh*���nk���-�1k�����G����Mf�|it�Ho�-\n���z�=�R�����;F��f������f�Ed�������g�����Y��{�z��*���
����)��6G���	7NK����z�g=�T@������gp5���Q�a�D;�3i���m��9J���I����l��y@:��$�f�}u��k�N�hw,��i���p[�K�yK_Xx6.|wv�T-����	�a��;�i|+�������7P]�YN�����{.0R�����Zs���;��6��Q�;H�o:�*fJ��\Wt[D' E��U�I��z]=fr�WP�a�5k������pv����;��V��r�Z���������n�Qm_@�OF�����E��/iL����^e�����j'�S�t��^�w4l�N�v�{����r�o����?o��\<��g�_�al���X���K��`�Z�������e��F���&��+�~�T�*���$����_m�~+��S��_{=��q�N����/�:�yOS����M��Vn�c�c�����
��3�k;�Y,�w�r���x�����Kf���w2�!7&���wYDs��Pj�G�-��z�������D�g����_h�4�j�E��ye��_�{�O!NqN�y�~h�&V��d�4���s�DY�@�u�s�oo.kTiu%#�P�v�u�;�L�ni�X���n�V�]"������6�=���F��&����Nep�z��_(	������b�����,Ts��oz��=W���
�$6+CJ���������y�R������������}�:��e�����2�lxbg#������l���7�m�;=MR�{j��6H����FV���k��#��M@T�m�����cS^���q���o_�������Xb��s����_-�!�[{���]�]X�d4[Y���u��f`ev������M4Z`�k�1�C-s��-r�k��\�W!���
������y�nq�(������0�6W!���\�U!l!-[V��uWV*��j��+��c�)�U��b�`2��� -�`�1U�(��1k�\����P��M��m��y�%�k����-W ��66Z����\�j��)�V1@-c�[-�����U�LB*�
���&��0���EsB��r`�T�MU��������`���ll�MB�R-[TEPP6
�B��Lj���---��!�B��i�B��!�B�� Z� IR�$T�D{��>����>����Y2VLc���c�1����1�&;|��eU��*�nD�sm��eW��m��
��	*������������U{�_��^o�;k+�IO���b��6�4��N����8�����YR�L���m�%�a�����`���q?=��m������EK}�.��Q�s�<�w�:��:������_X���%d�1����1�c1�i�c����UVH�U]nH�m��7"M��jUU
��d*��UUT*���}I!�H?v�R����c��"G��%����U���%+s$o6�]]�ll���6���cP3J��K1)Z�YX�2��N����{��q���������v;����Z��"O���:~>�=|d�Y1�clc�1�c��cc��c���UUR*��$��������M��jUZ���&����J��H���w��H��V��o��a������3.��T�+/[3��'H\W���,3���
5����$],L�wHJ��n%%neXB4)JB���jV& t�S���������6��JDm[������y{���^�|d�Y1�clc�1�c��cc��c�O�D�m��J��	*���H�m��UUR%UW>I�H��n��D���JD���H��A�y����7��~�C-,����i���X�����%��18���jD�h�7[�YJ^j����ZB��:����;��@5�M�zi��gs>"�3}7�f@D��R����^��,�c�r��`9��W�=~��c�����&J��cc1�c�<c��=c�*����6�m�D���$��%�������$����RI:t�������$���q�'\q�9���#|�F*�U��(�fg��m��f
��U�W���w0TJ���A��d�#�*�2�5!ii�En�auz���c��%V�+l"K���$u3.�f�����)��b��Sw^��W����1����2VLc���c�1����1���IU_&��m��UUP���$���UUUUX%UU"UUw�$d���~s�<�u���<u���;y�����j���X��0��F��Dm����sp��,d���e���7J�G�n��y3���3
�T3q��wA3t�xV�v��Z+r�FM&n�a�7fSx��7����O__�2d���1�1��1�c�1�1�c�1��I�%UW���m�������5���J��UV�V�VBUUR*����A��N��y�_���g�qE�����Y[�*�����b��������Q�@��r���jf��&&���N6�%�l���Ce��:q���%�p�5z��;�f\zfU��N��UU_��o����}�c��L���6�8c�1�x�1�1�z�;|�*��%UU����UUB�����UUb%UUUV���x*����������+l����[�F,����-�:^��������0��+1U+r��U�";a�F�F�Ee	r�I�\X�e�[w �YsYX7J��+"�
�Qx��x������k�w�$�x���O�����L���6�8c�1�x�1�1�z�;|�%UU�����UVD����UT������m��UUT���F�!�H5������U�~���K`�WKrr�M���)d�9Y�Q4��U�5�^���I�u<���uF�Y+h���-��sC���f6�(�$��+�cc	Nd1�h�������2]e'�X1�X)26)����9�\o�dO�]<t������&J��cc1�c�<c��=c�$�U_w$m��Y"���UU����UU$�������UZ���3\q�y����~s�����V4�]Y|l�f�n4:�'��E�	�C�j��]g0�_ggbj�r�,�qq��wO,&�IN]s{m\�E�J����Vz����jd�����M&:@i:QZ�����X��S���mI3U-#O�@;p2!^"V\�sl�Xt�����n��M��y�p��}BM����[���\q|�:��i$y
���9�V�=Ka��q�Z��+fn
�ZVL�X�w+�`�U;n�b�h����J�TF�Q�\�Y5]HB:��6��*����On���Iaq.W��h,�����z��t-���u���21k
�6��x����r�h�57���9��1�����f</)>��,��5���$��������7o�7{WYb�[�?D{�C��lR�J ���e�����5l-�8D��.h��\�y�b�����xkg%�{�X��������r���8s�u�1dv�g��v�L����b���I�wh�f�����F����������z�}��t����kq�����Ko��zE����@��b�<�;cy�[��4��Q��9�)4�s�\�Q��43/��:T��2�e�}{"�=kP�6�Vd�wK�J����y�1YWZ����[;��S�6��fs\���thWN��hHR����gF���Yl���a���`������K,-��[��7z�9s�{��,T���O1�S�XWS�����=�Z�oRS�.�����<Ll���0��8�f�o.l������J����'x�BN
��uf8^�2V��c�,k��o;/
D�E�f�����/��GZ�t���r��`����1A�=Wt�sq�R
���!��R\;��a�ko�Z�e8�vx�\�u.�K��+0X�yN���[Z�
������/���
[�WX0����B�@
�b��]��i7���/Ul��^0%4T]��$�l���U�(a\tKRc���y��W]^�9��c2h\�t�G�x��,��[��*���;��y�[�����\�RA��s$��A�������i��mT�����mU�U{�����t�8�cu`~��=?+V�	]�e]���$����������bK���{a}���O���p<�]��_2rRU�*�n�@��\���j��������NC�:Y��) (L��\='a���5��}�9>��EWSs3�5�Kt�.��B�jB6b ��yz#KW�ha��Go��3R���3!���|�G6�]�����%���Ca*����w_������Q�XzwzLWD��@��J��z��/yRN����H���m������2���"*RL����y���-��I���ot�R�Y,� +�'R�w=�w�s�(qV�mMn��D����������	�n��#�{@�7�r����y���S{�R��Sq��lg�`Nb�B{���u��4])%+�Z�c�^�}��j�+O�I���S�X*r.��|��?`;�����'��i�6��������K!0��RU�k6rv=o������h����%x� ����}c�/�����fr��{�b��m��`�31MC��E�t������:�m���3��jC"�%���f�9M�
����|�/�C5��e����Jrbu|^�g����<j]����Z<W�){����mS�-b�L���kH+0lv�7�n`2�[��ES�/���V&��2����g�����`R��s�Y�0&-kg��+�>�	�V�R�}�hk[��I�VC�Y�I�����3^��1w���W��a���5��s����}u�tG/a��6bU
����Omlc����%������D��`M��yl��]���s$T�z��`�^W���0�vv�\��1�WX8T��)����h������ky������da���.����
L��f���:���%��y����R��\�q�0��gu{9q���;��\rd���b.�%��t\ut����b>����om"�:�Y����j�{=�m0��
-tr�'zpd��v����>w�����|qKW� 4����
�����=P�������
�F��o����u{��Q���5��m��Ku
�o�oc�hA_��{���U{������'�}���n
�[uh���B����*����.��9�M;&�]�2U��Pws�LV���d�����b�jE��KM>*���X8�mV��������U�W�������i;�T�r���k�����t�~�
�����}�f����_���2�V��G�����@���A�����V1�6�k31��������05��Vke�L�c�%���Tl��ce�LB-s�\�b�7gown�-�����vJ��0erj�-Serk�U�eP���mZ�Uua����`��1�b�5[X�+�c+lB0e�mc�*�%c�-q�+��Z���]��-r�����]V�0���0Z�@-�ll��%+�1�0�S�b�Z�-�[c�����\��U e��M�`������5Z��"���s��������`���ll�MB�R-b�EPP6
�B��hZ���---��!�B��i�B��!�B�� Z����i�Ny��q��m��O^�z�{+�����1�m�c�cLc��v�����������UU{�#m���UUTJ���UUQ*���C�$�>|��w����u��Z�z�P�_�x)i���,
�S7%����XF�H�Ek�j�N�woi��P�2�RW������em�drn���L2�m�r��kt�V
�R�������z���W���I�m_?_�e{=c��1���b��i�c���$���������������m��UUTUU~M�m����UZ�}�����:�[��>�~�����x����k@xIY{x��OA��7mz�xS����!f:���:u���lX�Ua��m��s`c��lF�{����"�k����\�P��S|�>+�����^�=���z�1�1�cc�c��=c�	UUEUUEUU�UU}���md����%UV��ZUTJ����A�w��y5�S;��s����C2j�����w4���OW�����y��N�KnS,$vX�����(N7��K�M*����v���H���+b�AKL��E�
Vk!��9�eUP���O����||{=����clc�6�1��1�1�z�;|U[�I��md�U[����m��m��Y$���%UW��&�m��J����W���UW������y��
��,�����l��J#)�[�a�6MU��f����=�H
�2�_��	��F1��5���ld����R��m4��Z��R���`;2�6c97�x���z�����?X����W��1���c��+���1���*���UUd����%UU�����UVD���IUUdUU}��U�*������?+����������e{K��������0�<XR�:]f%d���ww$^7��P��D$��n��2��J��[t��a�Z$�M��NiJ��b���W]��]��#����~>�||{=����clc�6�1��1�1�z�;|EUU�J��"������*��������*��IUU��Bd�����]�����?����,	���U��)�v����%����I��4Th�d'�Z���gv������x-5�(j�sq�Q.Gm�����P�D+��cnBl��J��o�������g�����m�c���1X�4�1�X�n'���U%UU�J���������m�m$�m���UU$���*����$���'�/^��<��<�~u&����n� �"��GM�z]�y���HP�4���4�B�HnT��/kXwsJm�B\�����T��rc��� ��f�xY�OU�5l�3'\��4������>>=���z�1�1�cc�c��=c�$����m��RJ��IUUbJ������j���*��*����A��u��o�y���\��:�W\v]"��:�V��Zt�x,P2�SJ���ZM����w�nc(����z1�(�mN����lS�[��Ze��/��������[��y��a���>;~>������g�cc�1�1�V1�1�c�1��*��*��*��*��*��*��J��6�m���U[�RD���o����'�P�?qV�1Qm��k� ��V�f���v^�Hb5��f�������v[I�
�j���JzD��)������������3u��7�2��LUx��6����������g�cc�1�1�V1�1�c�1���*�UI*���UUXUUTUUwt��N�,J��������C��wg��g
�*�T������s��;t���S�9��n�X'P���q	�v�=m5R��ySp��C��Zn��G��)fKK���c�fP�u���Y����y|:���p��*Tx�U��S�m���(��x\|Uon���5�t���-�������T�[�D���nTo�)��������4��t����f;�c�Epu�CR����OR�z�IZ�B�9ZZP��d��z��2�����BS�F
1��4�C�g���1���|_lq�#����/lv�T���4P�\�%�I��)��y��+*.�dl��Z���ZVjU>��y����F��w��}�����b��3m>���[�S��4�a����O%�f0�
�gb�m����H��}av�7���|�T���{mq��%���r)�������s���1�j�����%��vf����(Y� �9
r����&�2�����c!4j�q��}�*�\UH�{�9�t��74��
������8��;��+5T�
t;W&��*i+�t�C|�v����#wn�yg:�A��\��rw���/apI���$�F���gsxN�����(��q���!���*{4����
����_r���B�N��ng,�{�vh��k���B�K=�"��m=4�e��Qks���F@e�F�[BKj���-�.�8��-�2�R����g]�;��v�5����m���mF-��s$�����:zQ9K���/�����CC�]��}�����7�;j��K94#}@p��Y���W]p2�,��n��LD"�T��.�{C��kyf���E
b�&�vI�[/�Z��+
PF�����+$V\�����Ck��]Zn�,���MY �����&d��q�n���������LK���+�����8��.�@��Un���i��n9��6���;%��V��u��;t����>��+{����i�M��;�:��r����z=e�wW��.�U��������0�#3�
��Q�7vH�������8R�A}X�s�|iY������VAU^��U{�UU^�$IrA�D~N	$x���8��$p�d���Z���~o��y�����n��=�r$��;�����h����9��5����:$�R����rogI�/&���@���3T��7����m��M��v�r�H�����`�{����k4X��!��v)�g�KG�J���[�y��z���/|���c�9|ou+�r�_/��L�������k�[\�f���,���2��������U���|���#��v�6h�y���g@}@�Gg{� d��`-FX�y�];X�WO�#sc����y����������}�Hk#��r�"����[�sut�]��8���K�/	���o�'��g1��!'R�~�*7`��n�<�q��r������6f����C��I����)���V�NF�:DR���M\,L���F��.������K�k����V����b�t0TmKn�uo��Q�������Z�o(��.��Y�<���=�5uda�]�2������G��b�(-5�v#�T���#���F����O
���}]�z���y�������~~�������k.6��ps%�N����M��C;`5����|ut+x�����pGP��R=s+D���iy��]Zx��w�-0���)�������-�zS�f)K�w5���tz����B�������IE�}�*p����2��N�}�����x�?^�wXY�mJE%�k�A����1���6���vJs��S�b;s=�����	���������+o;c\��+����U�+��sH���������Zma3F���5=���j+�+.�a�eMB��h�$�j��Wu�)<�c�b����[�d��o�u�:�����l�S��\�,�����j���;��wm�m�������H��5�c7+��B�{����%m]���A�e����������v�������8�uQ��7oY���Q6T���<'/����]m�3_X�.y�����P�r�q�*����R=��l4��}w�1Eo��L$��W.�V�:���O_���:��~������[6�$�LBJ��wU-���vX{z��1q����N��c�����<����b�Z�*�&�Z���j?�z�U�����m�����l@~��X3��2J���g,B��%�G[����3��������W�!��������n�oj��*��o5yR{�.���1����.]�������������]<e���H�~��T�
�:�#*�h�303X�����]sYmef�X����0�bP�]P�b�e�l�����q�+��Z��l���E��rs��@���@-Se�l�C-s���B�BZ���Z����B�k�C1�`���k�v�ec
�@����c�Wd�b���0evvV��k�Se�u�����U���owL���\�6Z����\�k�)�����@-����mP1��&!H�mrErls��\���]�MH�]���;om��y��������-U!�*�UU`�� Z����m�B����B��!����!�B��!�B���H	$HJ�� �"������g������g�����m�c���1X�4�1�X�m�&�m�*J��$���������k���V%UU$���EUW��� �${�G�o�b.�D3V������.�hM�*�bDMj�j��R�pcGUm�NV����&�
����^�����Z8�`�B�Z�(:;#8p�]�~u������O����^�=���z�1�1�cc�c��=c�
��%UU�*��QZUX�UU%UU*��UUnnI��m��!�H?%��k�7:����L��]����;����b�����8�oo%jt�Acr�e��*0wU���&��i�3Ymo��&1t���Y����X��vd:vZ���`���FH�A��2���m�j�����e{=c��1���b��i�c���	UUQUURJ��	UUEUU�UUbUU}�M��k$������}�
~u:�^~~Nu�:���~q����r����U�Z���Wf�����n��	��;L�p�z�����.Ad���H�.h���/E]�i���f�\�bG������e�qf�����+O���������q�W^$���?�}|z��{+�����1�m�c�cLc��v�����*������R��Y*��UV�UW.\�r����!�H>y�>u�|�]s��[��~N�������2G+6�b`��PT�c�6����F�;z�\�.
gkJ�c�r=��"^��U�Bi7Y}�(�f��l:q����n�,(Kv����w&(�Gu��q/S�&�Z��/?^����W��1���c��+���1����.\�r���.V���.\�r���.\�r���.\���A���9�����"E]i���Y(���86�l�c���a��B�g���dx.k���y�U��'�)���zB���
f;�n����re�[WJ�MLZ�}����k���7�|��������?_�e{=c��1���b��i�c����UZ��\�r���/�U[���*��UW.\�t�C�U^���+��~���O��*�h�)�����$�`�bXor�v�*�U]L����w���.���4�s���9b�jkt2��1������A,(|s������yz�k�7wmr�����z��{+�����1�m�c�cLc��v�r�����.\�r����.\�r���.\����.\���UW������>�f����i����!3E��rh�v���8��e�^���k�WO
�wY6������`��m���������na��v�����	��/n6�Sf���������y{}������~{����^�X�6�1�clc�cc��c�.\�r���UUr������.\�r���.'.Zr���.>�����U{��~?�A��k�j��][M��2���\{��Ri,9��$���Yj��DR�h�m�9x�1]�r�p�X�^S��U�������P�<�My���/\9v����������^�X�6�1�clc�cc��c�.\�r���.\�dUUr���.\�r���9r���.\��>���C��~T����vfn��n�M3e��mn�%(*fR������hx�#���WY������l\_sr�������e��Y�?F6n�M�u��.��c����}c�����g�cc�1�1�V1�1�c�1��.\����UU�UU�UW.\�r������\�r�����<��?��������r83���w;������.\��;we:o������W�~��
O���E��������C����O���<O�d4�C��D�q:����R>w=��I�����H�?�	��G����'�9�r��j��N�m�M��I$���?��5�p�x��D�lm��d�r?�<H�D�k�!N��:$��j���NR�A	c�c���������8x��������$��G�X��+o�c����?�6��I8�O�9O�$��f���t?��H��$�8�HHN8�@�r�G?�����r����<I?e�D�!=q$�����R7���i8��K56�������}W�������oj�k�[j����X�8��$��� ���.$�/�Go�D�!>�|���'H!9~���'*�����h��G��8i����G�"���'��m9m��71��'��$�BO��������dI'��I�I?�D��:4�J�i�	?�����?{�R|��O���~�~��!6��%~5?���~�#����1���O����$~B�'�|D�BK�?�O�<��	BWq�����9��{�e�M���������|��N�������m[[B�$�������[���5�GT�?sJ�jm�'��d�NRv��IRW'��N:��'�?����B�9��r�����!=u$Zl�,I��$���]�g�O'N�*O��?���8I�H�q8I�������Bi����H���$I"
�Q,~��8$��;����'�	?�I�tHB��I����A9�4��dI���O?���g���5?���o�s�?���8�q8q������~g�6���������Nz�u	B~��?���f�R84���.	��BW ��������GQ����������'	��gG��$��N���?��q#���I���~pI����;~��6���O���r�����I?�:/���8�9��=��q��N	B~���_��*O�G�$�?�!O��?�I�O�?g���j;o�~?������$jH��	��r�&�/���8s���#��?����(+$�k0j�pY_���
]�����������=��� @�|��[jcU��)j�Z��Ui$���4��#J�3m�X�,�c*��K�����TU[e����jJ�*BJKm62RBT�ZP$h

&J�U
�R��
II���	IJ��cm��}1����f�e�X��+B���!����(Tj���$����J������m3YkRUZj�� 5��k%�-�d�dU6����[5Z�Z�U��+A��J�m�V�PL�"�6PL���)Qm[mCm��f���r56�R&�7=���������7@AR0���c:��X�[���1
�������k4�Zsj�Z�
3F�|:x9�������u��`g,	��nM�����ij���@�RJ��x
����;g8��l`n�������*[&���Z������@dl��==X�p;p'X�f6��X����P���m�f��[�P�tP���x;�k�V	�X,`�	�
����5���M��d��:GZ����
���X6�{w.���X]9�f�*�V�����5��v6�04�-�x3����u�Z�#`����+���Uk-�0+��K�
����

Q������j�[����1�kl6��VT-���e�,�:���%
�6��H�<7�^��e�6��	�X��sY���6�h�7�4iE�ZP�����0������X����(�P�5UT��S��T���d��4i��4�����5JQ$�4hE=��QDdhh4@�~"x��D�d�hh`��0��)$mSS���F�M�����h=M�T��)���� �&��F����hf�M�x���������{��~Gq"W�����������������������'���n��Ik�������i��W�/���?����O���?����������p���H$��H�;�~����mkj��>�W���b��/���o���O��[�$�"I����I���c��4�I����B��B�d���i����~_��[��}����W����n���7e��K2��y�#b�C0#2��C!33!$$$!&@	�L����@I;���I ��b�L�L�~�� ���2B`��A&2 "H��	��&���#2!���IINq$�aA�!���JC	I`��B�L3	!�$��LI�D�������
e2 �	 	2$������d��&L�AB �H#���&��LDD�M��0� d�&0bJwp$�G���L�$&3	���3&L����c33$IBRPd&fa<p�!��fII&	2$@HS3)L�FBB��%2��P�B`L���$� @$�@a�D$$$�H!2A��RRQ�c��h����)
L�J&�!�$HD���!	�L���$HH���H�L�d�B��d&$�0��c<p �Jd(L�	fR���3��@�HL�JH�"1D�L`��&d��Hd�`�� $�� �"I#3�$@�L��I�		w\K����$��������b(��@IBH�	�$��9!�wc��&;2�@�H�L��2��!0�fL��2$��Rr�"
�!2%1$		����@���f@�1�FM2 $H�$B�!"a3"Jbd H30�ffa(L��0������)"H�Cs�&H�L���fff$$�$ HI��� ���$ 	2d���2n��&��fd&H��1�0b#�1EQ� �	 HHBa!0�e��Q%����" D
��D�& �LI���a2� �! �A���H�L�QE@��Hdc�c��1���2`$���@� � ��T&$�0���0)0@A!0!$BR��$�Ra) �I2A&L�5�  �  �$HA!��H�Lb@I���=wB���L�:���@	2d�K�����a3��D!0��8��!1�����D��dL�F
"(((��,b�"��(���� @�fP�!$�3!!&f	0�U����d���	d�$S0@`$���H�~���|_���}:� `����2`�&L�d��IA��d��"�E��!2D�$�H�1  2�!2A2�2i������$�34���#$���HA�&H$�%���"�1!IH)"$�����a� 	$$���$�HD�BR��BH�HD�a$�HL�f%$d�F�"��DDm��1��D`�$$$	��H�DQ$bfeD��32�d�I ����
LD2RX$���t�d)4�

D2!�$�LI"H����a��!H�� i4fc���L�" "�������E���C)���D$B2bde1!dM(`���"�D`�)#A�Fb�BXJ$���fd$B`2��)�2A$1�A��&@�D&H��!4���2%��@e��k����$�'.fd2$����O��-������F4Q�F"�cF
1�1���!	Ph(���eA��fC!$�� fa��cfQ"!Fh�A�c%$� JH ��dd0�	!"Hd$d�2A	 ����`"LDA���b�I$��L�Rd���#&"!a)�c0�
D)�L3�D(������	�M�&�����!��H�4�d�#AI�A�c}W
L�C$��A&�
2�2������(0�J!�2I���L�Bfd�3�r�&����� "C2�Rd�$�C"f�$��#�I�� �$�$1�bH$$�H�D�`�	�	�#Db1DDQh2�$#"Q$Y�L�h�`��$A$!$LF3"H&$dL@�12f���BId��H��	�!JQ�FH�D!$�&L�$��Db""1FF �FH�1�H2��f2D�&d�2����(JHBRS0IL�"!"2d��$�A%$2A�(1����(��.rH��I	��4Q�Q�`�$BH��&P�J�L����	�dLSJ�	!(H"d&R�$�DA%(@�PS �BI@`!IH�L�!3�CH"�I"����&0d	 $�`���$�d"L����C�L�2�!�2�"IDDb#2d�&FDBi�2@L$2D��C"H�JH��baI!��!�!��L�b��A�I"E
���F6��1 A 0& 	 �$�BC%0`"Jf�����d��"J ��3&RL�	$!	!���	%QD	��@�J%"$�$$L%bcbJJLI��F�cDALI��I0Hc$b�"���e��d��d�3D��$s�3$dB ����%���$���I%bH4BBI�"�$�Fd����"2�!)�P�����"!F�@�fI��fBd�d�(��Q�Db1����((���h4c	������kw@`"2,	`���3($E��4QF1�(��(���$����!/;q0`��	s����b�("��h�c&�&Q�0�@I�I)(�	�L"S1���L�2bB�d�&L�BB`�I Ifi"#D@E%) �a1�4RF
L`�2c�Rc�d��D�)�FD�9��)0��2@�0FL@Di�3)	4D�E� ���P�$��D���IFLi1��b1��2D$Hb)(��A$��4BH`H��@������$�D��!13(I��d��	2 #�b�(2`�1 dd�BP����I��H
L�RD�f�&L$���H�fB�A�&&$I�$�#21�J�a2Q@fY�M�$���h�DDb1��%�`�E $Pd�d�c4P!�H��I��FH��&����H�$��&BD&D�&RA��@�^w���R$Q"���� $�$��d0E��
"�1�F��"�(��I�&$�$h1�2	PcA2@�3 IA$d���"I���B
	R���#1�!1�@��R"�L(�d`��B�Q�[�RR��I���fL�hI!�v�����"	����D�I�F#	�`6"����#� &D�	I���	L�`�)@%�DQ&d�2)��d��2!DSHA��Hw\��2#�`�E�Hi
MRcEd�cF�#E�4E#Q�"�L�%!B!"�@$&6,V*6b�����F���FJ ��"�1F"�I�(�h����2��D!C�d)�A�B!b�&AA�$b4I��%1�E�$���	@�"�)!!

iL0Q�fRT�e&��c	I�I	%��$��#� J �%H�&�RTE����E#A��1LH`��b��E�(���Q1$�Y$)(�#0�MI�a1���4�*eD h���!$��LTF�"����D	�b$4h) �*4H�DI%�*1d����P�#IA�0b��f���!�B�������|_I�D�C
+F�Z����db��������QZfd�lm�$&@m�J��BBL����		���U�2d���A6��!'���m5���Bemd	"3�3��HC$Bd)��S2H�$@�H���2
$������>#n��s��z�%~���>=z����?B������?�x��=r����'��������o���������7���8#�
��B�d�IlTZ{�sWwm�nZ6+��Q������jMIm��67�WLm��M�6-�(�F��h�Z5�F�QF�b���lF����j-����+F���lcX�j�llm�E�-���m�[�+r�5�DU%�5��X�j56���5�Q�,m����6*�Eh��\�j��Qk��j-��Q���`�F6�cQ��\��F���r5\��F�QQ����������j5%QQ��h�V����F�X�[�j�F�Q��������j5F�W�\�X�c[��[�F�ch�j5�F�Q��j5-�h�cl��5sQW.U�F�Q��b���j*(�kr���5�F�Q��j5�[Tk��lm�EQ�!k�F�F�QQlb���lj#Q���������j,E�E�b+���j5lF��F����j6��"������%�-4V�j-�F��&�ld���Q�cd��EnZ1�*J��j���cQTj1�lb�Q����j��p���b�QlV+�QlRV��5�F���������j�����i+I��[%F�5����V��5�E�r�P[E���[���k���F����h��lZ
cQEQ�m���U�+\��\��F��
���j*�F��*6+h��Q�5��s�\�Z��-�����ll[h�cX�5lZ4m������h��lcQ��j(�k��+E�����Z(�ch��#j(�5�\��F�nmsQ��[sQ��j5�ch��6�cQ��X�j�lmF������Q�*��EcQ��j5�IjMF�X���5sW-�\�
W75�����j,j(�(�"��5�\�E���j����\�j5�m�Dk�b���j#lF�����k��nm���j-r��5sQ�����Z�Eb��Q��j
ATQ���j5�����������5�F��b5��F���j5��F�������W5��Tj9���F��j5�F��5�X�5�^5sQ�����\��5�F��F��cb��j5�F����cQ&��1lm�F���\�j5sW5�\��F�Q��j4j4Tj5E�Q��j��j5�slF�����j5$V-�Rk��Q���lZ5lm�\��F��W5���k�F�Q���Q�*��Q��j��clj��j5����F�Q�X�j
Q��j5�F5�QF�Q��F��66���Qm�\�j5sW5�\��F�Q��j4k�j6�d��\��F�W-��E�5sQ��j5��E��Q��j5�E�cQ���\�j5sW5�\��j6��Q��h�lX��-�F�j��Q��*���\�j5��j1lZ5�F�Q��F�h��,[~;��������?7������������N�7������K?|!L�������K���������w���n����:�\��O���XK���f}���V��-����~~�Y�Pf�}6';��Z�,I����#9����|������og7�.�7��|��pa�����C��9=��  ��
4Up.�������]��P�T��/G[�N��{�x���WQo��> ��+z};4Z=l��:���z
�%�7��0��������:R��������)Y�n��>m8�-��>����@���}yN�����2�1M�OzJ��QZ6���<�~c��`�6�c����q��l:�{>G�����1�<�Z�I`9�����maY����tM���B��G��r����~������6f��uJ�%��v+,�f��E��U��m�e~K���9�����t��T�4���47o]�;a^p�x�Vk��������= �����.��7|�HyN��IG4_P��_�������/l�}.�����)����x�����F�|�3��9����O������_�I������Gx^)3d���-�+k�g�����\e)���._3�w�q�S���{��~�-t5���9�*��zy����;���6\�����l���f�'��J�h5���U,���������IO��}V;&n{��gi�L>��>5����s�R6����eIhG#�(�G�sD�ynx�0����8$\�z�y�nTy�p��-���:�;��Dau? ��w��<��������
����f�u��J��:�C��R�AV}����^yC/������v_QU�Q��f�l�,�`uDO<Op��>��W����$�@���G����n���-��>(����&W���q����!��=��&�@Rc�U7�g�a���@�z���D����/��m���e�/^������D�`�}��j�:�T�@�u�5E��z��
�r�`��x���CL-���/�{�k�[�����\��f�L%�Z�k���@��d��u���q�h���l����6��T	��wEd~�_v��&p���s��J���t�3�0Z���VM{p>�/���Tz���������!�D���LAlT����)GO���c��p��n��d�R����m����=���I��n�aR	����d�O_O{��y^�k+�T&������L���~�����}K~��y�L��?s�v�>�'���v�IP������/Uu�.�k���'��9pd�C���#����/
��xk���]���^W�r�Oi�WXBS��O��Od]<{o�2(^~Y��EL9���,a�lp�U t��R[� a��r l�����#�����ns�fY�B�(�C����=_xf��N�V�uj��T�{��.����,����^f�;O��O,9�(��o
eF���������#nPi��w��K�J�t������L����uI�z���<��p���`j���Wk>y.�,�.7������AQ�?��}-���V�i��"�.1���s���[�9����r��#�0�^i�zcMc�n�3��WE�?wN��.���?y�����7W������~��B��r�G�����{2n�qe�S�'��c�Ns���[����<�S��m�}�AN���W!H��C[�}P=Uz��y����7��M�Y����
hd�hS�7.��BU�}������9�A���c���64o�l�������r�����)�j7�=���B�:�7*��u9��G�[��
{�w�W.���>F�:c1���x���M��l���jf�F��.n����Tk����������d�}C�:��'���{�������.3�Bw�b=�m�g���Y@\��tnf�q���L�w��g
%�7���:���N����V���8s����3������[
A���W��>������7�����m��{]��������c:qed&�����W�x���E6{V#���H�Y�o�=.��
?=x�*1f��w���gA�w�2��e���!�����w{t�W������s��jus�y�]4����K��������;wo���sX�c���9f�qeKc��;]��>�����H�k����(����O��6��<�~V#\�Ms�|7�#|s@���#O����Q�m��B���l.{ub����:xx��_St%��e�������t>��no�d\���6�9y�|�������7����^��<�=y��Noo�,����-p�k���=P�t��.��`�|^���S�Bpc�T���;�/����Udw,F��rnZ�d��n�%].az{eMvF��%����/`�;'__rd�$'�I��!}Q��r��Y��B� *��pF�;YbJ�o	��3���sR!�=��jcV�Y40
��@��
�sR��n��`Fu���B�u`O��/�����i��dB��T4������2Jr{�O�a����z�o�����q�o�a��qi�Z:{�cL%{��qL�T�^�n��;��m�3^I����5��^�j�_�[�p�����<���EN�,w�y�i����r�����W�NIP;������w�z�1x��{��-[��{�����u@�+�U�^�������������z�v���mK{Yrl60��I��q�F�c]z
���c�Qu���.����@�+����1��WV�s���$����w��W��a6{H�:}k<�3�p�F�L1I�;��q�fw����cM�^]V�h��3(lzb�X��V��Z[G�������\�iARa<�b������j�"�B�������^����qi}<��T�|L~��=M�O+^���6{��N�V�Z����������jr��v��l�v���m�>p]��3\z=�>�7z�3���om�"r����&-z�f����[��Y����e\��C8S�K�5mJ�u�Lo�����w�z�w����;/�=����B_>�������hk��!��9r��o^���F��:.��a�i���{�d�������T��Yyr��\�j���x�2f9�s�zT��7��A��<�?Q$����J�W<k����(��6Q+f[��)���7/�����R��)s�We���u�Yw��Va�c��7���4q��s��%vF��h��~�C�f77�?<��S�J����otro�����]�_!k�^Ca5G6�/�����K��:C�"����Wt3@�JX���j���J0��������l��V���>�x8��PT��-�sz�H"�����IR��u��d`5�������vV��}���Iur��-�ee>��{�orF��Fj��������=}�}��=�^�E�m����#&���n�6���rw���k]�����Ms�C�&J���H��4�x�9fI�z�e{���;g\j��`��;��m}o��
9l�d�����,6����AQy�z��f�����V�9�Fk�������U�g�j�9+:���;�n����}]��?:�-/�G�_�	������j�Lk�y��tG��1o��d�����
.�;V��++��7��o�=3�=�0o��%_{���3���9��V��!%����%��#z�}k��H��7�����c�+
��j�w&U�8���f����O_.k�q���z�{�>�i7jGv����/L�] �q�#65v���z��}�4��Hx2n3{=%�s���6
��+������x�W��q�L/&������-+���h
>}Iu��z�U�AK��+�J+��q�b0��O�{����m��3�}��z��hh�����;
�l��zzH�wb���=�����XN���+u
Wo0��\w�P��y�u�:68���/��L�������k����o���Z�����.[�;��e�tk������0=d���=��6���M�<"~�b�}��<�E<��y�S%r���1���f�*���V���k�e�o�^��47��h�]A3��72��\��4�{����#}xp�K�+!&�`�(u�y<����+g�9G���gV4��kr��t���7�-Av�9\����X�:��7��Q�N;�v.����[+I<Wz���o+;�����|����EM����/WQ��q���{��(ulO�/5���������I7�d�<���Z��M��jZ�M�v�9Cd2B)����7&��o�nw��&��s�p���7�p���Zf�����j�H�D�\=���`�e��6���������y�����I�s����$��"��O�GA���F�.�pm�1@#�4�G���X�vw�uv^���e��u�>�'��;���5�G�=�Y��z��^k��-�nx��*�2a��(6�p��>5;��,�dX��u��f���K=�����R}�r�V����q�O���b��g����>M�9���N�~g�8�[��{-���6`����K�V�pM�n�J���������S=�z8��x*�X��s�p�D�����k�����
���n��]����{i��9����gS�O���/\8O
�����g���Oq��{��{�*`cI$Vm��h���Q^.[k��4S����x	
�5��83��*��VG�<���M"�t����`k������MP�����nR�����Kc�2Uq(P�6������1t;+T^����q��W�g���Wg�t���k��X}4,J��Q����l6�
��-�����(���q���}�d<2gr��i�����0��ot�sxg�:�P�h������������mN��h��MT2���������B>B���6%��R�X���u:�`[�r��q<sw\�I��s��;�U]:����r���]�L�|&%O5F�l����p�,��g8�(���Gt��K~��Z���=�7'j�a	�O��v�XY1�4^`����~�����R-����+2����t�n�B���udE:p$�����pV.�e�������o-��5�;7k!������cv���wX*
Q���|@[�Ox��Z��r[��f�J��_:������L\���G��P�.��6�G�K�qE;&I=�f�����}*z��^��z��sS��T�<md��x�l}����X��b����S�l/��[}]W�(��X:�#/�r�U�����cb��������5Vt���uyFg�)��Sq��z�o�N���������go���w�o������d*9��1������U&l0�|MS�]i/'�����j}�1P�����=�3�8-�`�C���{�F�Jd�7�A=��_}s:oi�d��\��Wdw���T
5����;l���7B
q��H�<�i
A�'h�xb��P�����(�sD�eb-���O�0�yyu6�)���t/:!�����;�F��>zp�O���r�q�m{���.nr%M����J�9��]��.�;�ft����Uwi�u�][���E�5�����i��0��&j�8��O��m��[SG�he�����������D"�8�w.�}�������:rn������6�)S�(�Wy�8=��a���(���w7���g{<=�u�^��; .�/�ac���U��on�ulJ��
�u��8t$�+6�f�/�'5��:��Z^x�0����RW�x%s������7��4��z��|������}�s0dHr6��,�+�I[����9|JI3�:&�^Y�7o�:$�P���c39-oOP�������d��{��Tn�F�e�9����}�t`�#v,�����L
X�7��d�1n����i��<N],�9�|��1N0oD1r-�x���	"��N�.^S�����g<�F.��<���gNE���8�j��'���.�������L^��Hx���&?z�$�F����^���rP���K����a���]��l�pT}c�V��*�.�Q��p��RF����ivK�NN����|y������]<��c��5�Ju�DP�S������8�xEWS���m���J��%�]3�h�Loy`G��,�&�ty�cco�nI�f�;���#���/�J�����_�����Ekjb&��w!��d
�g`�:���Y������1��L�p�N�����
�h���Wl���@���K�K(��B������6I�O�5w��U��~������#!�F���0��2�/x�7hC$����hG��'j@)	��L`f���K�$�3�vPl~�3%�@�)���va��K�O�n�Z�%�^�48����-�+�f������}����_K�)��X^h�3�h�w����9�n$YMp��O��569�Q<d�%RT�G9|_(�y����x�y�����h���{����2�
hctr"L�=,
���������G�����z����T=b��6.�����q�C7���
B���	#�.����x���4�O/*i��W�"y�4Z����>�����e��}��|�#.j&l������!%W[~\Zq�*o������(�F��z��ox��,��F���KsV�E�\�����VE�8%;�=<�|���v��b��]x��!���x�D�����R������w����E=���6���e���8wWt���5,��<J����4"��(�uZ��:��80����M��:�7�@'?{���������=c��WY�7�7�w���3$iot�7��5��Q�/��	���&���j����{���?_=��,aJ���J=���}����_5��+@��Nj�!WwOu;qK.���v�Y�<��sv����>��u�>w�T��p����y_�}t�h����]���I>��k��H�O�N��Q���y�AW�zN
�x���^Lp�!����d�J�`�J*�q�*���s���Wd�X������:��$�YY�b��RZO� �0�i�Va�3�D�r�fK��f�B����j{f����+3*,�.�|���a��-���s�d����#��`���n�]���S�Z��yO7�B!�A�� *wF�8W;��^
�J�JZ���h�n�bu�*�b���i>���+�����$\W.�� n7}�a!��!']��#�#M�y��5����i�s*{-l$�{�����w���2�k��}en��6uS�DMS0v \�w]U���`����K�
�tg=�*�n�#{8��
��Nj�pa�E��P�-y���������#H��&��'WU�d�Vj�Y=���G|@��
��X����,	@����r����]����b�;
s38�Q4��]
��� ���VN]8O�K��:=�f�$�J����]:{��T0b����.��-��?���s��\#��'*��������m���,Xw�������U��7�)�.���7l��8k�^E3����'r�q�F�ud�kU��(&U�F4��B�:�<����;v����1�jf]�x+8U��WZ���>�][��X��������9�i�"N�(�U��K!�G6Z!������v)�j����-~&�����#�U���6� �t|�u��-S(V7�����e*�����X�M+t�O����D�'�i�Wa������ZEr��x�����y(�WI���n������<wJD�z�K4��Y���&���"�;��
�r��F�&"
���O*9���������_7����6��������%��y��}����w�:����<�U�e����NC*z
�g��s�B�m��N����4��)���F�<a�Gx�6+w|�+�rn�RJ���g��}��L'u31��59��9."���<���N��t����Vr�9Eu���(�����q���K4r��>��.��[��5���E�}�y�������8�{G#��C�������������;�d����0�=��B�=�y�au�Ys�q���fx�y�����^��f�}i��@c�N��a����!Fs8�0=:c�Dv���J���4�[��4���a���<V�\����(����e�2kkq��X+u�3q�["��sq�S�\����Wa�&����F��e@nc���j���t��~�^E{�����)�<�8��4%D�����Wjm��Z�U�b�
����3�r��2bm"]A�����%�jJp�n�h�3w�a�Nf��KV:��������!���r��� &��[����+�`	?�u����Gh1fKo�
�<C!�.��S�fn����v�����'��;v�",��+�`L|��5����mo-^g����.���f�-WI��9$�����\6D��������uV��M�Q�}���4le���MD`�AY��t[�B�Z��������fjWez��������97(����,<,�L����.9��wn v�������P���� ��L�fv��@�r^4�8T����nk�����_�M\p����Yjl@S[����>|�����q�;/kh��8%����p��C^,1�`RIWW��,��b���kc3`�+������ew;+-��!�a�5��lf�l��XHQ����}��kJ�n�t�A��
�q�"`t]�E��j3�H�����M��+=��!]��e��<�Y��������h���7Sp�m)��)n��
_V�Z��.��
�h����*a���U��K������Y�����E����A|��+s���@�%�t�����/;��U��p���{*>��5RnU���t�r}r����/�f �P��+���0�Yx���T��/�o.%e����@���K4��	�X[�>����j��G�=��`���0�@�cI���<�)���i.����[�vWW������.n��k>u�*G�7�G2���X�P��2�vI���r�����e�p�t����[��������������*����G;l�T
�
����Y_6���gg���W��qH���;t�d�r�d��lx�����4�8�����e^NR��ncu[M�9*��O��z���w_]q��px\�MsL��*�j������	JY����Sh
��/�wv�r���!�f}���Q�|U���p��F�����<����QB�>9�|*unl�7�/y�+fm=+[��q2�������56�I�7;d�o6���
���
�5
;q�qJ���}�}��+`v�@���r�1T��7yG�,�YP�>��8g��)=��+������OI�v����&z�I\yd��fS�|&>��mvP��#�����z)F�[#0q
�[<���/.N�W����]�v��z�lT����n��\��-�a��l��C�g�a�v���D��B!�&q�o,�L�K[�\5�����6�R����=<������*}8ee@�Y��WOe�h���6��J�rQ�9�J�+[���N7I����:�t�g�z��N^�h�O��5������Z�vP���$����f��Xm;.D%��[Y�SM���We��n��B�I	�Sm���Q����}6�#w�5Sv���u�\�D��RV\n]�md���FJ�������K
]�[U��{�2J�'+�L�4�y9+���>����!��_+�7�*_X��DN��s�u�����U�g;�P�P��!J@(�����}k�#�q�`�=N����4(�s���~�V�������pB@{m��\5��i�pv�1
/����3/z^[��s[t��xs��!�\5���%�E��;FI�+����49����]7~Q,P�#.��j��i����k�RV�c���7-���( Sv�l�j�[S�J
��}u��U���+���a����x���l�����_om���+����'~a�n	U�jY�`�
��R\/�h��t]����.z%�o<lm�#��uo�_�z%�1�����K��d���\�����S�G
������|�:u����u*&���S��sd���G-����S�?/,�����^�{F�g���f+���;;���3�V��>�����[�d]�����f��o.����b��l�'�:mV�q�VX��!�V6m��u!����������q�[bY���o%���M5d�Op�"�x��"9������[��j�Wz�V�_B7�����0��T��5q��0z��a�N2|�h'=T%O3�!��>��l�����S����w���{�� ��O�R��g0�\W��3,zg,�i�hD����u��0�%��K�a��!r����q#���������~�SwK�[w(�v��u�\O��q�����|o����#��pI���;�����O��!	�4I��$t���;�_�����No:���u�������C DQ1b-o�F������[k�a��"��� $�H@���F"""��� �������~��k8@�j�T ��ek�"""5~����DI�"��Z[�@C�� [�LD0�^j\�DF"�R1DDH�H��>xH^��rw\��\�1�#�#A��$��^�����I�$�1�F"1�����n�`I	j fA�b!@��;���u��������1F"1�� ��������""�D�B'N���c�G���1�F"" �Db""0{www��^y�]�wu��H�Dc{�DE����"�U���#��Q%oh�#��q�aF k�Sm��_5���oh�kv��������5��a��ham���[����P��mU�"�Z���wH 
�^�\�������"A���0Am�R��{�b�6�� �I&��vmW����k��XI$���E��@6�{@�	y��]Z��	"Mmu�m�DDD�I��V���kJ�������`�#�mR�j�j�������F����mZ���6����*��<������H�4��V��y}Z.�^���A$�I$���E����`/<��	$��������6�����bUolb��`��-SR�����\�1lb1��(��QF1�m���F���� �����;}��F5b��"@@j��^�A��@Ca�`��$�	$�����b��
��6��'�n��G����H$�L������1AA��Z�TO�;�]�wt��c���W�QF0b1R��D�����#P�{ZI	�(�0^��s����]�;��]���#�c�9 �����jI��nH$Q�c�1$A$DG�����^��A&I$Da�b=^�W�3^�\N��Q�Eb1�b=�wz����.N�����"0�B�������#6�"""��������ws����Sp����}u�k���gwt���s��.a��1�F#c�����wq��s������9�Q�� ���0[�F�������Db1�����\�s��w;�����ZDDKnH�$�DI���j�xD�"" �-�".w#AR/v�z�����ADF4������u�]�������9���w;���F1z�d�#�E��B���+W�$@K[����;�n�9���s��� �����.������� �l�D$cF{�s��w;����N ��F"����=z��!{��9������r"�z��<�B�����8\�.�9���u�]�;�\�9wu�s�w\�������u��(����GP�-����B1
�.�����;�s���wb���s������K�w$D]'�9ww.s�����9���'p�=�//K]�F�Dc���s����wu�A�#{��wwws������n��k��m���I&�/*sm��wq����������H�!���m6�m6��.�m�����m�����ws�����ww;����AV����	'�wpAAF ��
�1��w8wu���s��U���m����;�����w�ws�oZ�\\����FAH[�����sg
��"""km���=}�}R[[[[_uAKB���P�!:�����&�����8�!	��	?������s��-r�����?��/���/��?��>������=|������bB������hZ��/��'xyu��mK����J-��������L�N���WE)@-��A�L;���z�O�maG��f{*���k�3�0%�}�!�#��:F
} ���{���c����^R�q=f�7rs�3����#���X������y���{�2^�(�}�W�{����\�vj�o�c�l#�I�����v�+LRX	v�����H�����K�r��Q	�����o6Y2����,�g�\N��ELi��{�3�0��b�`�\`G\�g0����w�/�z"
[����fQQ^Z�+Q��l��i�8+o�9��	�`�+{i#��+�8���R@��4^ZD�x;;��]s�(la�v�����y�]�1�_wV���xa��rf�j�x��5�����������ov��=�g�������!z���w�tR5��r����p�F��b�gU�������	���d��h�*��r���N�R�Nx�!!�W������k]Aw%��p����w���K��#�'�W�/"�	�8�Q����&������69~}�Y������l'���^����]E�*������l.7����22���������W����+�V���W���{��s���w�3�Q���:"�
H��g �/r�g��l��1�o)���pWz�[�����_{�����U�on�����ZcZS�v���A�����'�+�[&��g��+������LDtU��u�6��U��[g���;k�nZ/	�U���k�Vq�H���:P{.��)�|��YE�}���0y(H���������
�>O�;O^t:xb��o2��o���8�o7�[|�t����(�1C,������iA�m�]O;�D�{�*h�#G�I�*m��'�(��wS��������o+Ikt/�L��g�.;X�[��%���w7�������^Hc� �����Nx����-Q�e�=��:�S��k[��5���owN�����y����O���aL	v�4t2b��O��{S�\�@e�Z�E���t�~�O]�h��ueF�jnm�q�n�b���s����L�!�$5�1�����>Z3��|�r�_���l��u#RQuE?o��-�Q�jw��t*;;������\��\|x*���^(��)����v���vK���������*�������M�t1mf�Q�����9����O��zs�]Q���e�F[[���a��~�&�^�j��<1�;����m'H!����>�y��z1��f�]�g���-[x�'Y��-$�����{E�w�'�'�������W��n&�Q�qvs��%����;}�m)Z �����T��0gN��"���^a��a���]��cn%f��W}�t+gyj�JV.�
�m�^�$:p1��['�c-���������;�>=w������1���p:��7�}�T=�5�;���%����zi������
��&Q�����}K�/+����:;�����z�P�K-�����=Qc	)�g7�=�����oC����^YEy�M�������TpK�3�MN���MRPn��T�ZU��>���^�<�X��z�Qy� �/J�%��i�����=�����C�}��q������'If�<�����m3����3X�P��4k�'�e��w�u��1��]���7P9rl���Rtx;f�N&�ZWt��Bwy���6?������t�@m��]���d�t-�.�;/�y��-�3d�!�tm�*]�H��7���&�U��."���@�vw��b�W�-�SU���H��bh�[��)���F�����Oe��&�	+wq�y�����;�����}A:o�G��-�.�v���/Emf���7o4�����'e8uW������<)�y����!������_N��������J���r�d��6����JOj���EZ�����P/��<*9��d���wI;�~��G�Z���p�f'��tO*��%{7q��<�����Ah��W�6������)�}��Z��Y�����u�wh���\�O������{�������7�<�q������}�a�/=,3%#>W~�����8�_k����e��u�|�/C�Uyk�	�������{�}�:��@�U��'�\S]����:�60����q��b�G���,�W]u������,fE��R�`�:�k��xg�}}�t�\�O��2W�]�0D�e�����#��1����G����Y^����z��j,�������.���V`Oz�w�-@��l��ue��+�wxBjl�?�-^��n��p��2�[�5����<���k����J��%����r(2b�Vk�j��#W�=
�"�9$3nN�/P	�p��z\7b�I71�NvQ���S
�m$LBk�Z���g�kr2�y�#:=��;�����-� x7@�����M�g��)Ut�ByX�fy�^��j[�v�K��fZOw��x
�7�����>2��9?>��E���N5��s��w�Z�������[/pv4�����mK��&?K~�����;�}����������o���[N�zK��_
[��_6��������n��-�����NQ�u������%�R�]Z��������$i_�����rO.��=�
�Vu�3����Ox��6a���>�����}��>1e����E;���=&����~}��������r�M\]�)���0��5�][�Jm-����s�Gf6��V)������o�/��(����N�����;\�i����3��f��8P'�2=Ow�/J�o\��o�nu��c��
����A4C�5������3������	]q?���5����]�.�H�a��f,�.�o�'lJtV$v��n�Q>�y�,4
�UA
���4���;�{c���
�V"�L[Uxl
[\r���o>*+��pp�rd7���C��[�������ff��in��j!��qbvz����2�}�53K��(���|F�}���0&F�7����g���^�
_sa)�|��������'?��)s�_��[��j>SG���=��4Q*T8�t�m����6���
1uy��Z{����V�'=���Ej���G.�������.��bEj��`�B��kL��No��v�t�)��u*����*J��2����6�i�M��!����zSNlU���GtO���� e������<e�o\{�s�-���Z�,�Ns�=]�#^X�v\���9R_5�]j��s3�
]0��3�������_6Y{��\�q��k�S�K8�r�\x��&����TX�ep�����}�@�IQ����4�3�\��k��OU\f��*�V^w)����=�Z�A���+v�e��J������A����!�\��yN�LKSZY�[�P����:�&S*l��x���`47�~���<]�n�U�:'S��sx�u���^<�z(�H�vs�v��T��M}����w���
<�5�K����r�o;v/S���\Z�~�v�d������b}�~��9�h��@���]���H� F�S4�	^H���w�;�jO3���{��������~���}�ft�tR�4P�Sj���^��`���"K�5���C���8UiD�������;�(��y/�'�NnV�=w|x�����r�n1& ����1bb���c6�x���\�:�r��W�rRo�q{���*&����P�cvH��~�Z!���}��N�e<�GLx{�C/Hv�8��1N3
[5���nq0^r�k@a�w�j���ij{No�(�j��5��
p�<8���}������"TK���/B���T!���Yo��H����v9��2�@�����q�]���*���=m�R�E���%��3����n������F��|6V�2����*����-���r;G�z�[��Nn]��xg\�Q�������y���nT��v����,uw:���������t��}XG^Z�!u
�/S�����:���n�G�U���R���KM�j����'N���t�yJ���Pk!�o/:�H
Hb�.��]�����u!���\�$.������Y8���>�{�x�����V�NQL�n�d����Q���-����s��>D5'����9�3mPP{�;����Yi�t����e������	��
�O�W��8q�������i�V���b��s:�k�������H��
w���+5����{���N�����1�I����W`z�'����};T77�J�{6�[�*:��i,�k+,��;���XS&��B�E����B����h9|h-C�������+�b�<���e��*�T��V��F\��Ca5��������L�����Bp]�]�nZ�UA�����m�r��f�{��Syy"n�����&tXt1���K�k[�[�b]���4�)��f r����N;��,G�Wb���1�Y�iQ�n��vq���[��xH5.��D��MrAa�8nVr������1��Y]��.�V'IX[]���qv�\2�U0�I.:��w
F� �
�c��f����
�|@t����{�o����g�:�5�""5�Hd����W�,��C}�/U��r�]Wy3���m�>j�Ud��:���)r�B����2�������9s���)��`���C�w�xe�=4��~������������i?�d4I�c�W���G-��;������k0���/f��o���7{eY��9)k�x`�{bf+C�u�e���?-M�����y���!y���}x:�N��
�*�����iok�>]��>�w�����9������G�e���z1�}���N��V?#��n��9b|jV�^����h���7@��Yqn���5�x�s�F9vW�j��Z��g:�%����V���L������R>����^����\
e6��+x�t�Jv�fak�a���Iw�MX�^��vn���{��~����Cy���w{}�=:�`�g�H���{�����35�[����v���+�A���`���y�j���>:���k��y7!���D4���9��n.w`4�";���X�d/2=�����v��1R��0H��09m���.x����]�Y	��S�S���W���Zfy�P���zM�|������9����3��b��<�M��Sry��"���������s�R����gp������w����=X��������2��.��a�n��gW;h������>lL5����G57��O����W�5�� �u��,Y��z����Cni�F��{x��&���wO��J���r��f���#��+��gyo+Q��
�j��]��s��L��I`#���V7b��WL(���������9���H	����19��v�q���K�e���j���x�8�k�;y��!��/��c���+��.�����	�|�.xM�uC�+�&�9���QY�-�nT��V��%J;.BpZ��<�.V�t���e/�COG�zno=bd�����!rK2�c��G�}������_z�����0��3P���6�������|��V�of+,�m��n�x�����c���_�FODw%�����1������.���#p��	�����9b��v����p��������Z:�������It�x��b�=7w�IP�������n�y{%�^��y�\n<A��@��.��=��JvY�����q���5�[���c�>>Cp��U�����A'5�P��b��O{ 1�j���������G=���1�;;����ac��� ������\����W�����xI4���m�,/;�7�����vu��E���-���EC���[�|g�a'������
(>Fb[]q���z,xm�y����5�vv���	�Tv�-�0(���ZF���������!;�w�Hd��k��{��Y��}���Jy�I\�	{�v�:��8��BeJ/2�>��I��J���o>�~�<����u�������}rd�>�/�����q��.6`�@�s�\�wKh��bVW�v�t�����d�A9EV�����Ql�$���Z|�r�k�H��kh��0�u�w�d���U�}���P��QFo*�$��P#�j���8��Z��2��foX
�������$-�*���5�0�f:�muF��gN��n�S��������f����+=[9��Y:_n]�����U6�������w>�M6�����\���i�B�'b���J����������e<�, L&0��T�Wk����
*�I}5Az���';��L*��t��VEP^�C��������F�Z�����	s���oNb��0��K��n7�����v�����sc>c6��6�5�P��k��P��}tG�0l��W=���l�}zS:'�7����|NVH���l�hZk3��SO\��-C>���	�����n$�A������f�P��;�<��L�������R@f��r/h�D}x�h/������+���K_9/1.��E��"a�	�'&T��,,��<���Z]t���$k�/wx�`��x�E������{�g�BY^������m�*�����Y�jR����]��.����z��LYw�5�H+
t�6��W�e#����H��M��&������U�D�J[AK�fj�5���u����	�q/QR��=9K�����X�^�;�T'%na47�7�J�T��;����|������y�y-J�C���=�fi�4m���f�`��]�-�9Xyx�X�n[�N�+��(�����@��������z:uZP��V���R��?p��EDs-?�����s���f�i
��F:����/m�)��7y�i��U�����s;�M#����L,�#�����Xd/k���]����?T���SH��o�������������f��VVXGf�nwM�gf�-��]�`����nR3$09�4��PZya����0*�n����e93��@��������M���n�u�`n��c]"�����7b�\���J`�`������n{G����T��;^�gWZ�r��F�O\��b��^�������x�X���	a��_{�.������;��y�f��:�g�r���gGE����W:9@Z���S\P������V/%�7=�;nn�4��G��1zz��|Q��g�jk��������h��)
]|��b~s7�&9�9�\���_c�c:Rr���9/�d��y�V�d��u����AQw}F�A����� ���a����@/5�a>�r�J��~�,��n����z��� Gv����T�\�u8��^f6�����o6����f������{���x6h��^&��q�d���7V��v�]m'aUNk��� ^4v��k@���	�y�p�[qe�"�[{iwu[d�g[�T�t��I�3{%L�����g���b=�'W<j�����I��N�\!X�^�<��>2�����w�y��b��LL�[�	\����.�����TwX���{���E������������q�|r�0g���G�X�U��Ry=���;W�F�9�x�L���..�����,�&m$���������%���.���������������^��gh��J���{�*��������t��1��3$��&��o'y&�40���p��]���yK�����K��WL��G�;����&Y�L[0�&�p���}�[�E5�WA���vQ!���d�����lu|0�*po,���9'�n�4yH����d\��`-r���,�������,Fl27��[4Fb��{���H%�������`���7W����������^���5���������MJ��@���f]m��ps���=wx��CT��[�
�0RR����t���p[J�=]+\�)���-.�GF�J*�)f��H��<���G���U����(�rVB%`�k�G������6��q5�&�0<)3��k|���=~��of^es�
��P���Y��v�z��f��-������{u,
sF�Uyw���3������R���|Vj��0�a��Oz���J����9���jPHXa�4.m7��i*����z�*:�guu�B�z���$��C�a���Z�=��S�s4A�s�������[wl���Im����4)������gi�{3�x�B�w����t-�d��]�)Y��=�s�+L�Gt��`#t�s-
��O/O�q�(M#��B7��K4���s%r-E��n:9�l���Ddw
#OT(�][��c�Y�/[C:�����\������s(j���+�z���k�q
�3��il�a=�
f��3��	��o!'S�&b���yvk���=�OA��h���&LV����
��T~��w�&<��C���i�0�|�)�j�r����E��t:{���;�[���;�<q�GG�{W�e^n�u�9b������[F{ZD.L��R�v]F�'=n�][�Ss*hz{#$����yB����G�h������F��(r���~-�vN��n�Ml�X'��r�=�,���H��q0{�������m�J&TV�~[�v��m�-Q��ng)&N���n�*J��g���f��������A4j�PA��{k�f�O�����R�n����#<jY�D�*�Ra=�;=�}�����T��'�#*�������'*7����u^��UcOqj���t�������v���b�������������m�zv��.�f����j!������#��o�1��i-��5rW��[j�
6���2rG7L�2��|��$���- uTq��{���dqdU�P9n�dKl���q'7��*���M-��1`���:��@��X�}�����(�9�\�����U7�Y��Ss/9"��V��u��3�N�
��fnk��8U���X@_i�y���u�o��z�z�4��dY�O
��k��b����{�W���4��b7���=����C{;f^�����0�{���i�4V�G�����f>�=N^Oy�\��J�����E(�������= ����u.���e�q:�<�<'��-�������)��`����-�����>=��:�oc+jJ}�	��k��]��8�j������~���������G�>�������+�,��tw�6U�wR]����������sJ:�x����_%�N���w����X�,9_{P�T�����'\A�t��&}	 V��J�g$,�y��c�9[=}[i5��2k�VM��\�V>=�j����<�+�����qCoM�ov��Q�5��5�-�A^��>w=��gK{R������w������9����b��YA��������$>5���f���<;��{it�M������J�Dq�P�9��C/���e��c�v���2�)e]���^f&�Ns�z��DQz
�<����J��!��9��L4Um,�#�����y�%����Q��.���jk����������9$VU�'�+�0Sh�X%3�>�w����w`bO���U-I��w�{���C��;|B���r�1�6lN�b�|)Y�T`�3;�y�q�~���z������v��
;^�P��B�ImY��Z�C��tm����#�eg{������m,�=y=2y����(�r��o�5^�i�N�s,�{e#�{��2�����$8,�����sk���:I0�{
�cb����4��XeK��K�e[����V/]{j8���5�m��=2���1�z?F1�l^+xbt���z������i��_Q_���6I��J<���q�;�POp��}�!���M��efx���>uy��{#��oe��4��l��"71����4#=�w�S��LB���(����o8���|oG<�C(������7|�fF���	�5J��}���>:#-]�R�:���%��je5r��v�z�+�P��
d�h��zL/�W������ov����\�nwP�x�����'���_�}����9����x�}������F{��P��QN�uN'���	�F�+�
�OmSH�F�
	�:�7�;��v[*��L2]�CMb����JOw�{����Y�&�k��up�A�n�*d�����X01;;]�e�y"x�c��
^�f^w�T�%L�����Ca��������z�3ae���'R��_m��Z�y�'U�9�V��cMG�A!���Wi`lv��{��m,S����7N�@�L��>I�5e�Fo��Q�p�lO�Jlc|������fvm�1	�F�&G��!���y����<�zy�������G��
n�����a����2oeV���������F����g�}��~�����|>�?�{��H!?h��G�M54�_~�����z�?��A�c�4�������e�Z�5o��M��/�\��^
�����@��sR���W7����������o�z�q�U��W���r:=B4���	
�:�|�$-��9:�y��������<�G6������hc�L���<�b[�:��,����.�J��A�Qi����$�t{k���vQ�;T~35Wyz�7�r�j�c��K����6�<������N^�O'l�uz���9�Q�r�����e.������,O���;t���_L�i���u��m�m�oL/���D�v���U�jI{��Y��T����C�u�K�q�	(�R�t�����D�5�Z��������1�n]�����lOPcgRn����]$��iT�y��y.�M\���.������
��X��|��\����:�e<����k��Nc�o:m*�S��3�+�pq��l�C�U��y�6�K�3��g8R�;�f��e
�-�T�����Jx���o��P�^��-v����v��d��?vy�_3�^h��mvb��)(������Kv���F�u����i��3_#����;�]R[��"�y�we
������}(���Cs��Fm���[=���w^�-	[��l-57��R�
$�������+�KZ.�����4"���V�b/=�7�6P.�G��mm�|/N����:���*��$q�zu>Y�}VX�>��z�4I��[{��u����(��cc�
�}(�V�k����YSxg2X�;��\M1�%�
j�`[���(2ky{���]�-���&X���Bbf�;M��
��?6���������:�������^�N�����j����gg��[l�&������=V�n{m��G{=<� ^���f�U�}.�
�(����n�/��bJ�����3���2�
�=|c��z����zkY�=�n�X���������|E��8�����3�je�t�`�qutFN�+{m�_?�i6L��G9TX��;2c��g>�����wy5���R���<L���L��~}���7�|���f�s�o�����A�w$���I��� �H2H=���M�6kSko�Rmo?���������/��?�����G��������{���J�u��e]������3��=~��v]�����p��Beh�����=-Z��8���.��c�m"��\b��O����~�2���
��qu��8/}.Z�;���O��O�K����t������G�e��OU�.#������U����qb��U����+F��'/e��`d��:9q���/�*^;���aWqOw�ux��c�YX_���b#����?��)oe�[7�@Q������A�}%��)	Z�T=���z��e�5�8�\��v���J����t[��]���}�0�v�����H�W��Im���u��j�b�Aw+o��,����/f��iHh�u�P�����q���0�Ia�h��`�z���EO~�1����\4�d�|v���+p�A�/!R�����=�ako�����g>��7�]g��9hO��d��q*2���FS�����6c�GG����l����m��fdB���Q��
��{�]/)��Qu�4��{%Y�W�H����Z�~y���W�-cw]�
/6�a��72�����D��8M��t)����L�{Uc�2Z���d�6���g-�������� ���^���7���xO���~�����_������z���	���%��������^�G���>;����8�]]\LUs�I�C�����k�����5	�g
��YV���T���j��W����t����������dk~�iM~�n�
�60=���8�Jo���K=������7�f�F��#����]�:���
9�Ws���/�����KVR`N�,�t�2t��I8Z���w��w��WLWT���z�}������n�*��m��nu;�������������4H�K���|�{^���{�,H0j��t��;XO]��U�����}y��Yo(�d7������������<����<����������ss���O�Ob\*g�����&O�%��ue����~���v�q��b�����������;�������U��_VST�n�\s���6�M�U'z�*�i����s�����VA���~��Sss���%y`��D���H�B~��z�z��w�9������s��@�B��c�Z]�7/0jk&K����l7n����,�|JS���B"�_VA[Y	[���#���k4@��]�uy��/{�w��u��$�I=��������~>�����~��v���n��v���n������*.����Zp�@T!}2�A��C��d���!6@����E�^��2i������33*� ��0�EQE�t,
��@8��r�F���;w2� Ye�ATAUE�T�������,0�M40�#zn���(04\!�:s��( �/�l�a�c��4�M4�����(��,�U�B>����C���7,(�
���aGn�`�.�!B
-�E�*����B� t���8��� ](�����,��B
8��c���N4���UB�!B�!Qt!a�B3h	8c F1�$�@�$�IB�����B
,���L����c�:���8{��h}�����!B�����	����!(���,0��1��i�`
���N��t(���,�����@v�n@2`��@@��!Ye��hn��`@.�Xh0	��Yt!B!AE�@i�7�U��<
�@;!a�Bm����6Ixp�o�BP`i�BL,�	�.q� �C�H�|���h��,��.�,�M��]��`=2� ��C(A@�����!� <2�����v��Q��,���Q
z,�����+J��S\�j��@!@�!>�,�p����v�BB
 M8�"�h�) �q\SCL.	D�QD�Qt ��.�������M�����(��.��A�����!�0��,2�(�p���zar����.\�!B�!B��8d��3M4�M7.�``i�`{b
��=��p�w�.CL�8�A�����+���`�!K�� !B�!X���6ve���(��@�B}�v��>�.���2�mB!r����d9�BA�Jc ��I pH�)���D�hh9��SC��� .�m�f�L��K]AE�Y`@
����,��,�.����@�NB!@�!>��|q�`UB:�t�L��!P�,���k4�Bi8��q��}�Ta�v���Ya�nX�M!B�!B� �r��c��r�2�M;Fi���
!�����e�Qe��!@���TU���L8�Q!1�6�l�&��^���r5b������;p:�2@��>8�0��BL#l�b�[�x����������q|q�v���#}��`3�9��he
�@f`Qe�Ye�Qe�Yt!I$�(����@��`85�d�#�A��AE�Ye��(��;�	�a	���Pa��h0!��i��`���;h��u����	�AE�Yt�{���}� ,���
�b�|!P��B
,�t��-
a��p������UB�����N�A@i�Pi����2���
4�0�
0:���E�[ Hm|m]�����n�Ye�Qe�Yt��pB1��@)P�V+m��i��v<�!
��*�ff��lc�N��B�!wN��a�B�� 8
����(
�c!��F2!�G���� Ye�B�!�oq�^#*�@�r� �AE�Ytd� �F�!B�,4�A��`e������`; ��;�t�`=2� ,�� ����mA@�H�����a��a�c��(���A����B�4�M7,(��,0�00����q�c���
4�M4�����1�	�c@� B�QD����v�!I���!A�c�MM8cn(2�,�������.]D!AE�]BUp�� B�G�B�!@�0�M�N�d>���@�0��h(0h.�!B�I P���`���3��@n��w�'2�� B�h������;��(�4���a��p�1� F� a�ae�Xa�`a�����P�Xww@
��	$�0����4�M�Qe�Ye�@�<TY�0'������c^���>���}�]�0�M7�����@�0��,��@!@���
0�M7,�,��
��I$��;@*��B�]���4�N���Y���4�zf�F����p���pq�p3����@#�.��hi����7��� ������6@���BP`n�$70;���N n� ��B
,2�@��>���]fe�B�n�� ,4�o�@��(0T�d�vBP`h$>>>�����0{��x�NI�2a�<b(�$2} �,Xrd�I�!1$VID$�}3$$$��"A	$�"�"I	"d��D���II2H�RH�O#&�'v��2 .�AT!*AE���G�����0	C������A	��%R>T�*��Z�|T] �H��B.�**���-QT�U#�����U 2`�d�`&B"'&HN�L�"A�'�&H���D��;;	2BI'��> 	���I)��$�rHH`	ID�$�b��2fHH$I"AD��$� �"II$���rIb�! �E�I���H97I$��	"d��D���b�!���I2H�I%$$�d�$�JIE$RG��$��L�$��BA"Ib�$I��I2H� ���!�������x�����c�MGn��z�4�{;��v���n�v���v���v���m�n���!	����������r�jr�����+*����.^Z��M7&R�}�?�O���������W��W���;N�Nz�ZM��7j���\}�x����2�7&��[WI��rn���AcoZ���+Jn�����L;A���w5����o�d��c��i�c�c���1�v����U��y��.u��-4�M4��Vo�����������������������E.��5���b��Abl�����]WHn�:���*�Ss,���cl���	�L�����.a��U6�#Y����}�F��k{p��v���s&Lc�LcLc�c�6�1�c�n��\�{9r���4�M9����i��i��i����}_}�-^��t��pb���2����^m[��VP
%`�wR�1$�^�����=�p�gok`�����!f����^���ih���Vd�)��Xs~K'�n[||x�����1���1X�1���c����i��y9r���i��i��i��i���J�_}���(�Ww�F���m\�+�e�vsJh�wHY_�kw��J����9�b.NOk����U��iV�3S�r��X�]��D�P^]]��Ne�w��4����.�Lc�:cc�+�1�1�c�v���-4�M4�M8�p�M4�M4�M4���W�oy��A�U��J�,S��[��l}���U�XM��i\B9��q<�\m�������'k6H�(���EJv%b�Wn]<���e5�e��I������O����x��&1�c1�1�c�c��1���q�
4�O9r���u9r���q�
4�M5���E�W��������c+%�D�1���x�Gyf+xEu��������G[��
`-��2��X������ilUS��;��6�K����r���|U�w�'MJ�����*�`��<��>?F�v����d�1�c�1�1�b��cc�1��m4�M4�M4�M4�M4�\�i��i�>I�>o���������k1�</����`��5��3��L����-��w���&�H�9����Q����A�d�����t)�E���$�5S;����I�U^�(
����w���b������{�1���1X�1���c����i��i��i��i��w9r���x�~?�����u>����^����7�
�f�c��G��I��1�Z
i�n��x��N�u�XVu�wwY�wW�r�Mkk
��d������E���b�(6
�qU��-k�\�Qh�����w����v��t���d�1�c�1�1�b��cc�1��m&�i��i��i��i��M8i��h>uR�UW�}�Eu��h8����b75�jV�nU�	�5�b�d���j����Z{2�Edg�n�f]�������w���R2Q"�jP������U�xJ�{]+b��?�����O�w2c�1���1X�1���c����i��y9��-4�M4�M5i��i��?�I'�8�S����N��?]��r*Zi)O_����j���P]�XkmN3���fed�6����a���i�m������#P��U��)�wU|��@�d����/7��tVN�~vo:D~���/�[�'�N����k�]����g����SQ�[�{��S�kt���J����
dV�����0����;< �o�7���.��^����_l�v1�������\��Z���[��������\�]����/Q5���q�j�����x��\�d
����vU���3j����'�Ll�q*%�w�+�
����H+K��M�-m%�k���&!���H�(�x������v�l�j��w���.V\�5��5�&`�Iz�y,L#�w���p���2OP����(�uo+�;��g��7��3N�{�cv��R�6���x��L)h0�Y�'zT���v�����p�������8��f2 7��]R�R<f��g.��)�����\��H��T�6wP�gs���
��C�	����i_G*�:n:-q �'%-v3��-Mh�vMj|t2!�R��)�N�<�-+�0!ar��so��5����j�BXXSP��1�f' s��r^=��b�
H���f��H����Q�$����d*��>�sc���������&�'Y�UhF����Y�^{��2�;�����	�4�w����]���Y�����f��6����?�u^��w�U:CKWX^%!$�c%�
��J����A� -�XS��������W�g��sn��yR��������M#��N�rM���W���S����P������i�W�7��Hi�Ujo3R#�,�A�����6.T<y��z���-};j7�����o�h���/�������q*'4p�I�A����K�uh���s�����K�R]����+y,OY��>.>������-�[���R�:��8lG+�0Ie�U���])F��K}%�Os����H%<�;�
v��H��r)%��������nQ�y����/���������kb�Ak�u~_��7���Q>	��y$��rA�Id�p�$���H8bK����^�/�^�����~��M���T���I�����QG��&�Cb�;Y}���<5��
&o�3q��~�|��yv	�Q��3��-M������E�#���������}7�f�}����Z�w*������c�=z�[�:�������[�p���#�(+~�{�Ut���5k���z<N��>��w�S>����#B+�������e����~'>�m����e�:��d��7�N�������7���VLg�3�������������Qaf���Z����0;�������Q��|/�����x�1�/�2A��Wq�j�mU���v�?
}�u�DV����
�y��q$��gE��8��T�85��N���#�o����SDY���F]����{�D9`��^�: w����r������y��������^����������]�Q��0�������,��G��A/��*:P�u�6�|L\z�Sn��������5Z�_�7~Kr��b^i�b=w�cY����x6|sN�{�/h�����NW����������{�����8N���w���rAk�rw�����sj���q���j�*�4�
X�[�sLU� ����f1�(o���=�XVFz���8��k�c<|�;��:u��W8ug�W���x�q��<�<n��,$I^�����5g��7I�^�I��R��}r�W:9[v*��w���	;�R��/��m��{l;*q\s�w{n�X�x���f<�����@�<��V�~�CRyk���F{��V�=O(����_<��;}���l3��;�����]?d<������y���xu�C�Nx�'N��iv������o��h�(��h����M�M\J����d�5��Q��m��t��;����z���m���k�SZ���5�����_���D������������^����9������|������W���JW`VT�#u����mo��]�O:
���L
�5L���/��� ��.�����Y�x�T�A<�C��t��4�IQ�9\�zA���������{��k���r��c:JX��;���&6R���K���o�>�_|�I�/���K���B���,wR���3gq_m�ye^M����rGj�o!�����=��m��������%����9�q��M~���
!���s�������B�
A�]���{y�oc��iU2Vz���%���������{�������t��'�������� ���m����j��h���&�Z�j���"�5o^y�T)�U�
j�@����5U
��D[MH������H�RH�O���7����f1�Wl���c�e�\�
���c�1�������h��m�]�M�y����lt��]6��l����l����t���6��[9�����r�6���1�6�k�Kb��[,y�1@�[m���O&�T����u�j�!�(��!��]���TT
����%�:X��LcUP�5W4�"�S��+�6"�ZB*��"���1���w�W�<�@@�etHM�`P0TUUU
�h�*�*��"�����`2��@���lTT-!>��|��������'����1���1X�1���c��c�?o�i��s��4�m���*��?&�4�m���p��`���sm���p���)'*�w8#rG
����I�;|�_���}�O���w8_���Y����3r�������KRW�onu��\����O�U}]gVI�g(&��������l�����YB�J�hi�bl��.�y�b�������$��s��^3�{�j��w�"}ct����{1�c�n���1�b��cc�1�&1�G3�4����,��D�I8YU��`�eW2%��eW2%��\��q8�I7p��ndJG*��x�p����dO�~�A������8�o������������~�k���I��nfI�V���K}����;��Mt�l���x�����k��3!8`e��nS��uz���>���R6���m��Bw���;�q���q����'������9��f1�c1�1�c�c��1���cR'�E�UjD�I,��R%�If�Z���q'`�J�N��6�m��K!f�Z�)iU��f�Z�,%�UjD�� �I�����q����?=����Z���x����8b�#=��
����9���2��-���d�5��v0��U������q������2���U�tZ��L����l�//�Z�2Y�F�fh~�������:|v����{1�c��i�c�c���1�w<c�="�*��q���|��>5"Y"�*�"Y�*�"XK4���a,��R%�,��R%4��<�6�M�6�R'��$C���:�������f�j���G�T���L��������[��2l�����L$I���a-�����������b)y�����02����gh��H_���.�&�c��l�,G�`/w�.\�z�����}r���;x��{=��1�t�4�1�V1�clc�;�1�D{$��*���8��J�Ab,��P~��nr�mAa,��PY$�J�AD�J�A��F�-��I�$l��6�D��?��~� ����{����������T�7�9D�3=���w�"�m��(�/����N�il����U�|�r��9[V�������E��
�5�V������Gb9�Rm����<K"��P}r��kZ�s]����E~|��l��������;x��g���c�LcLc�c�6�1�c������*��If�Z��Y�V��iU�)iU�*iU�*E�Ujf�Z��Y�V�8�$�#��|����W����3�!W�MXf[)2�z{��<s�=��6���oz��������fO7����)��4��n��;������_-����.����o���x,��������y��UvG����r�����������\�'��1�����1��1�m�c�s�1�<8�GS��3M��NxD��Uj	f�Z��Y�V���iU�,�Y�V��8��J�D��#i$��m�4�����}��;�+�]��~~����.�{�&+&>������q��Y�N�z�������0�.��uO<<T{^��c��e^���T��n{6����,	^+$Mwm���{z����(.�k����V�����|�����\�'��1�����1��1�m�c�s�1��p��F��m�(�iU�O�msM��|�H�����j
���-��"�*�7�q�M����j$Y�V��$�J�A��>���?'y�k\��_��ew%��]�B�����e���W�����c�v������\\�s'c��B�>3���\��)������{x���w�Yn��r�����>��/"�V��
w&L���7�WZ�(�h9|���U���\�'��1�����1��1�m�c�s�1�=4��B�*�"�*��,��PT�4��x��V��iU�,E�Uj$Y�V���RH}������u���<�o�*������
��O�u)��'��Bw�b�1x���R��[E����2�#����D{���1}�e�/���}c�R��5ZI23�-��!���{�t}��V��^�mg�N�7=W�����_~���������g���c�LcLc�c�6�1�c����f�Z���iU�,%�Uj!f�Z����*�I%�Uj
I,��PR,��H�p��Y�V���J����O�����?���G��P�K���I����
^�~��� �
�������7J.�ux��������]Z�R5mu�oRw)�����Mf����A�jv��Ti������W�#��~c;�\��&_.���b�h����_�:��b�w���}wrx���������\�s��/�������w)�C�B��w?Pu��.zl������Sw�
d�[Wfwt�+:�(::��w�U/���'�$�t���w���7���Q��D�����J'�f���������7m��e_gwO,���Z}�{0;�����,�������������K��j�n���E��p�[Zq����/��\y������osGv\���)�\�X��3��u�_"�IU��oNO4%t�^��}`�A.��4r��2�;��@��>��0f�Z���������LN�h?|��R	����+���u������:��s�C}
�,^~����y���1wB=i��Fq[�tY�:��|�_�;�8�������e���(�Xzr��x>�����{{P����9��������=�i�n���G�:6���gj�����W2?Kh�����wnG��5���pv>�Q��0xo�^MOP��)��'V�������.�zs��h�
���O��S�������0���8{��:�I��49�z�Z�mG��wi����D,#�j[7zx|k��<�.�z���u��~pz�o�����������h/���4�gw#��Mh��0�;�<�������N������v�5�*��p,�L,�g)����
U����%��{�,�9Q�3h��%��wY��������n���q��{��h�;U�\Ya��a9*���B���;���\�~o�h��b���i���\w1��sU��<:�+�uj�Sd���K����\��������|������kU���;<]�Di�8��b����L|�z�e:p�/�Kw�>6%��V'������[���c<��e���K�h����sQ�y;�Yrq�q�����8��D�$�H�I��w$II�A�A���(������������Mm��~R���������Qw8�yS<z�<������;	�R��0�����i�z^n�Q�]�d��wWy��.�e���G{O
2����~����>�t��������������7u��m��+�m&%^-�3��1L��X��V��W^��^���_���F���n^�Zf�Q��\SH\�qc��y��?9�H��*{	���e��}� ;}���o�=�������of��uE�q��'�������\��S4j���7o��������nW��w1s�wg���=G��z��S��y��%^c�1{�����Y��Wj��t���e�
�e���@�6x�{0l�_n���9`6qTz���Mf�D��"��������{����.�G=�#��=��n���>��(�ca����m<W�g��^�-����\����t�U�_u���Eu�u&�j�
B�/ktCP�������]{�:����W��g,S�����V*�z��C3�����(�N���j�]l��.�fx�+�^VwH�v�S���w��mz��e����J�x�{s8�e{���4h�W��WmY�����W3^��1�mo�����8�Z��Hu�3�0�����NF,{�l��}{�
�C
���x���}��qY�~Bi��,��z��5�5��0`
�0�fs�5����Tk}����?�x�1G��]���aF��@�d��_�~�>�����=��c����������wq����\ 7�������aW�[��.�����RvC;9����IF�o3w����.44�p]�b&��HX�n�n���^<u�?��n�?]{B�U����"�2������^o��g�CM�z����u��e��>����[>$�K�����r��7�3���=�D��3��7i��n��2<��EB?'����J�k�~�{s���K���0}�.�6{��+oh�Q�m��C<�I���@�"�O�_a�=��Ngw$�W��L��]�k9[��a}�w�b@�C�NG�������Q�4���Wi|����B��e����L��^���u�u~17w�6V��U�=��@���Mh��6*��}U��*�����?G�>uhp���S�]�j_�+����hp��0*�n�f�]yZ��iS�A?H��Vi}W�@U�^_hI[��@,_
R�_5���K��g��LZR��P`l	>UQ��������t�|_�������������������W��*��[��������� ��m���&1��i�b��&�Z�j���"�0^����1�UB��j��U��j�
�H�\�U!��*�{=��o����
��C1�b�f-�c[,Z�W��Ky��ltt��&���[mZ�RX����m�e�c�m���u�e�<�(�eme�k�m�1�<B�q�m�<�9��p�)����}2@A������P!�G[|�'���U�{/��mZ�HEvJ�qE��Wks-UU`��!	m��=k��]�UsHB*�1���5UB�T-!H@�T)�}���0Z�x���+�Bh�C*����`2���P6@��TT-!@�eP��U�@�eR5U`��
�<q��x��������y<��1�t�4�1�c�lp�1�c���K8D��sM����I��f�ZI���sM��H�J�'�f�Z^"M��Q�m���Y�V��$�J�"{8I�74�mA��H?RA��z�y��q�59��/w|s������8L$=XF�M#)*�2i�������y6U+���ow$��5�WW9Y�G��P���,0�4������U�]W]+p%N-"��N��!��._�\�G�K�Sb�(�[�FWX�h*����>*�������1�c�1�1�c�;c�1�c�����*���*���*���*���J�AR,��PTK4���*�D�J�A���$�� �����y�W���������':����-�q?(���GJ�aa%�����S=x_V2t����4���]{�N�o� ��=�����������{�������X��]5���<�:�s���2eo�
R}�_�����w����>���Of1�c1�c�1��lp�1�c���{$����PiI,�\A��Nf�Z����*��If�Z��f�Z��f�Z����*��If�Z����G�������+�<��
_���2	�{M�vd�Rx��&_u%�k�v�
����`�Sce�X�y��\���:�Hg[zr�Y�.'������o3���e���TG��X�c�"[o�I+)��$�~>1�x���y=��1�t�4�1�c�lp�1�c�����Uj!f�Z��Y�V��iU�*iU���,���V����p��jiU�*%�Uj
�f�Z���$�O�A��=��<	�����+*�0%k<.fi���&�����[����� �a��nW=Y9�c ��W���f��^����/�gq��]6�*����:�9;*E�^��:�V���%O9�o����Y�7�/����}��o>�<��c�:cc�1�c�8c�1���A��q+�q����V�AbK+�q�K+�qD��W8"�er� �Y\��,E��������\A��R$>��x�{�����_9�u���/:�w5%������)��}%�e��|$���2�_n��5�?��)�7A����{x����&SW������a���jui��7�zs�y���b=<���j[����t�����K�}>���}����y=��1�t�4�1�c�lp�1�c���8��,�U�+�qH��WY"��\ARIer� �Y\��,%�����Y\��*%����'�"� ��d�=������~N3��w�u�o_��g�V�9\��%/*=���c�8�c���Qu�8bwI�R:��0���N���A����8�������-�^������.���0�7_<�x��k����wbO�c�������c�1���1�c���1��o�bN��V�A����\Aaer� �W*�$����nm�n �E������W*��I��m�I,�U�I����~�#���u��^��a�yi~\���w��F�16��c���0���^%����y}�yy!�����F6�^�:q=�]�g�~��	������6���zy�R|����_Mw�����q���c������c�1���1�c���1��o�d,�U�+�q���\AH��WT�+�p���'>O���$Y\��(�W*�+�p���'_b!�I_����_�Q���/�*���`%�"��4�T���y��~/'j:�����s��e1h�s	���#��G��:oJk�y��-��G��{D����[v>>o���u.�������~>1��<}by=��1�t�4�1�c�lp�1�c���8��Y\��(�W*�"��\"q8ID��WQ,�U���\AdK+�q�,�U�B��\/|H���$�O�I|����=��������J�)C2i/[���SQ�Ea6�^Z ��[�n4"���C}yXI�4�fP����':�H���7�6��8���AQ���{��}�����_����c�1���1�c���1��o�H��WXK+�q�K+�q"�"N$���\AR,�U�I,�U�$��WQ,�U��G�W*�'>�|�y�q��������d
���2���t�f���
���q�3���N�z��~{Te�0u�0`������]�2�>�cq�,������-)��y���(����[��DD�7|��%�@um�wI{�})�tM�2���f�r)���[�0��U�Z}�
���5��3hC��h'������&�5mn����L�Nu���1����~o����y���	�~�|h��n�����w�����a�k�'������}i����b���4Ix��������n�����B��(x�-��\�����M�%^"7n/Ki�h��ft��ve0����f
G�X: ��|�c��B*��*��{��0ZtI�N��B���<��5I�cL����c��p�^+wuqPev�e�}�u�l����G^r���`���V����f(����)�.����\�������q���/���<�;�9Az��t�=�H���;g.A�/u�����~���WS(:?wn��y{&u�2�� wZ�yn�@�[���>���yx��s�<�]2�m�Fb����u�K��y������I��K�g�>{p�<}���yaNJ�0������������.�ol�g��o�����;Ct�u�K4������l�3��Kg�o��Wr_�$����=|y�z�������93�2�R�n]sM��������q��N��
��{T9yQmjfg�j�Zf5t��.���K����a��SbX�gfZ�#���+���Q�4w=�{�*����������7���:���t�Bt����nU�	��n�,�R,�Q�Z=cx�0c;}Y$n�.�#���7z��5z���c��lN+wrW����N���R\j�{������{��q������5���N�X��(��������D"m���������i�h;��=���C	��
D�1��(����L�vY
�C[�4���;�x�����4��}N�w���[G�3eM�]�e������k;�t�
�Ja�jHN�R�$����@n��-�������cLl�b5I.�^�<�A����%��~_�����V��[��?
���[o���A�A�A����>s������7��_3-�uu��h���Dn���T�z��)t����>���k�v������R�G������.���/�fy�����f��<�z��^f�=�i�lV��%,�v���<-������&�;o�N��
W�<��`R.\������Q�����y����e�=&L����_sQ\]���$�Kei����rb�DV�q��ip��e%Nb��6���py��=�������[�k�_����A�����h�'�'��:Z5��,f��c��o�N�� �V������'d���������nm��1Y�d�����������5,��u����O�Lo=�?xU������r���d���n"$�w�o�}���Y9XV%6G��3��$8�h�����m-�,��������{H�|���=^�X�]!��P�Sa�
��a�O{��<mQ�����W�1��	|��qv�����Z�//���An��;f���P���Z�r�	����a�m��v��LV�p������_��C��g��`�,E���o(����dOP^W���P�\~����w_zo��F��7�,���2l��jv���qywo���\Y����LkIO�kv����({�����������K}^��^�:����P��
���yW��5%��<p����1�;n�w��LNvip����^�qm�����8����
�&���|���VFO�E{h�v%x��;�Wj��	��>Ny�N����4]����vK{�Z�����)m�ku�{���K������Rl��R��~��_z�R�
���^P1�������.xh��{��+[Y��3�����/C�P���r]~�ur�i��{'�z�*�I������%qV��Gy��Q���0X3}�v��i F��F����f�=*���v����{n��f��%L�kJ�����{,�u������;���-�h��u��M��g�>��9MoQ�~�����u��%��a�uL�nI^m�h�\u��L�;z_���;-�h�Z9��p�����L�\��Z���ZNe�����z�=�����
�R���|M|�'�_5y�c����I�I��~�w���5��������F������gq��u6���S�B����L���P��O:�EMg8^���	�s"�"�m���s0�gm��
��7�����n�������{�����_����{-���{
o�~W&!�Cm���1�U�L��!4b�Uvv!���������j����\����@�T�MU�`R*�����[�}>oy���b����k�����������m��GKC]Ny�����%�m�<�����X�X��WX�X��b��V�Z��X��mm�-�����c����������-��,c�E���cE����;���m�@=����[V�R]��+�Bj�����U@@�*�B[c��Z��5Wj��\���Lj��MB�R�UHER5U
c_}��L��y��$�V��)#`�pd���II*K�@�ePPP�l�	���ZB*����hZ�*����
j�*�*��'�|����w���o���1�c�1�1�c�;c�1�c��1���W*�"Y\��,������er� �Y\��*E�����er� �er� �W*�����_WT�Y���/�v�#X�X+M��������h�i,YJ�k�z��.5����-DV������������c���m�(��A<�h�t;):f��������D[��c��������?��������c�1���1�c���1��o���nm[qI,�U��c���������$��WR,�U�&�sj��,���������\AH��W^I_I!�I�x�������5��|���s_9|����o�N�S���4<������X�kU��u+��qVK��m������y�����9��v��8l!u,��fs���>:�T�aW�_g]����w�����z�����o�c���{=��1�t�4�1�c�lp�1�c���8N���r��*%�����Y\��,E����>�#i$����AP��WTK+�q��\H�qnCsn[q��t��I"{?:�?_����|���<|��y���]8h���w���G.�Wm���2�?�Q��-��	�8��^0l\��6�������{r{��}1d{�~�Df3����(��1 �-�i�N�����{�	�k�"���C�_}��~O����}����f1�c1�1�c�1��1�w:x�{!er� �I,�U�*I,��Nd�s9r� �W*�!er� �Y\����Fq#�G�����,�er�/	>�#��'7�s��o9��_�o����}����}+K��>
N�cq��{r�e��R.�y>o�v��r�Clu,���m���x��r>{�
���W�K�A�s'oc�=v�)���v��}�����N:��{��������G��Lc����y=��1�t�4�1�c�lp�1�c���8��,�U�H��WY+�q$�W*�er� ��W*���&���Y"��\AI%�������������z�,����)�<����1�!E����b��"��[�3��NW)�����N��X$2+D
y�����i�R��TA���K�c2��J�6��h����+)� ��9A'����������n���O'��1�����1�c���1�w;x�z�,�U�I%���D��%�\��,%������W*�+�q$|�F���-���Y\��(Y\��>��A�>q��s�����~jo\|�2]X��������n:��r���q��B�-�l�c��IM��Mc�[��Xb�������fL�y|���f�G)Z���R����[��Yi$��O��}>���Og��1�����1�c���1�w;v�$��K*����K$K9UI%D�UT�X�YUE�$�|�Hnm��IP�����^#�,�U$�$�UT�TIeUI'R}�!�H=����rq����&�o����(��p�
���kU����,��2r=����G%�I��e�,�Y.���4M[Ja(�������o���������z��7W�/���|�������{1�c��i�c�1����c�s�oI��I����8�$�K*�I*$�����$�����YUc�"N�	7!���$�*�I>H��m����76�i$�>�����^�^s��8�s���w��s
]$vZ����������A�
�}8�VS�c��wk��������3��on��2�����Z�K�Q�����&y��k(��>~��7�}���x����$��n�����=��c�:cc�1�c�8c�1�����d�"nm��ID�UT�Y$YURIB���JD�����K*�I,�UT�R,��$�YURI��}���<����s��u�����X�h�2f�y�}=�<\=��j��N��X�_E�0t����:}U�vm]c)�<������P�b���r�T�cvuL��C�����7;���Zr�������{1�c��i�c�1����c�s�oI��M���I(����p��M���$�UT�T�*�I*E�U$�$����$�$�����Y~_*��_�I:���J��S>�xD��;����o����2��}������'$����vk�u}[���W��N�w��y�8���\x�t����h������V8��m�B�����A��9�e;�(�����=d����%C�������sR��B�b]K��=*���5mw&w��}�iD^t����}��D���j�[r5,�F;0���9������f��i\/����n�����IW|u@�������xP�?^zC���^��TKZ"�]X|��5]�8'�b����4et�9�S�Q�����Vq=���5�b�
I�G���l��L {+�MK&�'����M�z
*bg����W����~����A��C��Y��?tFe*��y��U�<��t�\X���!���� ���%|��A�I���@�'�+9��eL�n��X����3#�c]��8�#�kIvc��)���U�eFN�q9���;F�V{a��c��yU&���]8��'"�q�
�w�e����E����yr<�M���\�RMm��8w%��Rz�S�����s��rl��L��g�X���y7�h+�%s������
���+o"|�v%/��l~i������f�#5�a�N��I���F��a������m�LC��.�<[D���IZ�s�nQ�rX�3K����w~x�?=N���/a��������c�������ki��f����.a�]�|���|���DR�Fd&l��4�OAH��w�wg������\07|X�!��;���S9v���]��{L���gJ�*z���+�6{����7w���M�A�23�}���rV���6����������4F��7x&�����z��A�^�:�y*v�:�lE�4Fa������0Y�]����}���Pu.T9���w���kkk59"yS3Ue�[F�LyLV�w]���{�x��'�d��!�W/�ow����]��
`]�.�[zf�@�������p���8�����>||}_?x��#�P�'DU���uc;�Ah}����~n����z��K�����}�K���$�'pH�H>IRA�A����I}����v�������O�eW������J�G��J��l�qB���WO7v�4Y�/j��u�;Vo�s����O2����������oq���N�*
f��Y��E/=~$�^������e�Vs�������r���A���.��S	,��xZ&�f��.+�>=���U�,*J��Q���(�c;�������o�_�?y�)^��W�o��~Q��h����g�9s���sv�G������`��O���F):���L4{7m����3�3�dE�-`�*G��AB�+cv�����i~�{�i�/p�	���5��
%u��U�_e�����7s5����1G����dZ$���[���c�m)V����!������� �Q�:��h�O1���}R���|��}J���O�YoY�gq��}�X��{��W�^~�Z��m��75��::��������I��4N����-�����TT�=����������������]4�[��p���
jaZ>�sy��}����_#}��x�X�B�mx{P�fe�<$��mm�gDm�:�<���)����34o���^��#���C@Q��}��g��"���P���/�qW�L�[&<����mF=s(�j����fP<{�����\��{��B����a���7U������=��
~��|���y�r�h����0�jzy�������>��x]��^{��.�3M�++;s�J��P��o���0?o���8�S��~�&q��9
<��02��S�\|B�$����(��p���,�R�Gr�0�	h�UjOc���]~��5OB��z�)�\.���{�8��/�[�1��<F_?t���������lL����z��+�7�S+��w��k�g�k����T�G.L��F��+�����1���d�{<v	n�������td������.�����U�������>=~��T��W2��09�n�7�����=g������d[+n%F���xT����P�/����\�|��[�����e��p�
P��W����������+G_�R�f ���P!��
��;|s]s�a;2T�oI��2���������U_}�s���E����������u�}��pg,7�<�y.S���J����v;�"YM���B�n�	c�/V��������5����C�_f����z�L�]V
��]����*d�E���b��g������z��L��C*�:�����?xqZ�6�����]4��kRE�@5Z��"�0^����1�UB��\����1��P6U
cUrT�
���{=���O���x�3���b��<��b�8��:X�������k��1���v�,cly�6�6���������6��cE����5���ckl!l8�6��b��Z��VZ�:�X��$��fCE���cE����;���]U@=����[V�R]��+�@�j�����U@@�*�B[c��Z��5Wj��T�!B��T\����!����
j����}��-_<��U��4�+��
�`2�����1�&��
�!�*��j��b*�1��P6UU!O���;�|���'���c�1�p�1�c�8c�1�&1�+�$�,���eU�*��UUY���UUTJ��f����j�J��?R"?RAy���y�������}q�]{�e����S�Q�l#�n��nfo
�X�\l�Imf�O+h���0�5Y o�+�]��}6�m��a:�aO7nnm<*��vn���B����U�z��8����;t���'���c�1�p�1�c�8c�1������UB���UUI%UU�%UU$�UVD�UVI%UU����y�"I>�s�<�;���K)�a+�L�s�����FgZ{��te
b�l]"q���w[+E[@A�Rn���w��P	�x�lFv��ai��Y�orq��y�P�Ci���N���O'��1�c��c�1�p�1�c�1�P���U_w	��mR*��%UUD���%UU�UU����H>�]��<�Z�����f��\k�q��g���5����)fg�AjWuc5��Y\o-#[�����*)�;�����;m����5��eYs��K�v�>?��l3�\�~��7�T�*�WZ38������;c�o����{1�c�1��1�c�c�<c��UUXIUUd�UUP���UU`���UUY$�U^M���m�G_�G�H=���5���n���_������Ck+���m�r�A��^m9��?�"S��I.�C�ow��[�w(���T��}��<�/	�l��G��ea��������T�y�e�������������{1�c�1��1�c�c�<c�"����I��mRIUU�6���m�a��mH����UVD���UU~{���A�����u��y�w!��j�]�����hP�e�2T��{4$��<6[d�e�H��Q8������{vZ���{�:j��FS�#�ue��r��R"�o%�L��hVm}Q���m�~��'���c�1�p�1�c�8c�1���Ur�$��������$���m
��kUW[Cm���UUa*���$I'�H?7��<�{��>�5�p�������0
r"T�����
�G����*��������E"�5n7S��r�z(|G���jw�\J���l���� ���C�j������N�_����c�1�c1�c�1��1�x�1��J��$UURJ��IUUbJ��$�UV�������UU?D#�$�}�7y��\sl�w�_�'��\e,��KAU\42��V����ie,���b}'6:��J��U�Y�K��n�d�s��M���l�n��T2����������� ���|��\�;#%���6��o�����c�1�c1�c�1��1�x�1�%UU����UU$�UU
��UU"���J���*���Bd��g^q���������������I|�J�A[�����
�q�3rf��$��
@d9L���� �n���mJ�e������rm�p�0d�a�N�j�,j�J�q��-�����]��5��||c�����{1�c�1��1�c�c�<c�"����UU$���%UUEUV�%iUD���EUU����$>���=������5���2�r���Ix�Xm�M�U��ld��/X�n<~m}aV�&y5�8#y�1�q�Gt�j���sZ���X���M���"]�.|��Ql��17���q�&�nb�������|��w�������<��c�1�c�1�c�1��1��=�IUURIUUd�UUX���$UUT���%UUI*��J��O�?5G�u~��W����f~�Wg`�.�\�b�r��z5���&��`�1��|�&���2���Z�fk ��Utj{�<i���l��%��P9�R�>�#��pT\t�������;e���+y}Y;�c���q�KH�yf�����z}���}������<�n���Q��0�Bw��|��7�YZ�gZ��.�����/n�������`����������K��/�3���*����=}�����"���8��2g}����f�����Jk��P���>�W��z�v�����)� �k��������V�u?\����-n=H��8=w�����B:��Y��!�=~gg�Ow�4��?o�U|�^l�������]w�/���2f�{R�o�yj�g��j�x��Q�{�|��/.)��.�3�2��^�)�y�oR����:m�>~3��o�p������U�w���MO^�Y����\n���t��cl��)Lj����w��O|��sX����;=��[/l�����[���h��=t�44��g���IV���pS���6j~s��w�����Vktm�3����u�p���R[���u�n����7����u�)�sb8�;�S�J���Y�`�{�>�Z&������`N����eN��hF�>�J k��!nl��(����1:R����)=���o�����9g7~w6�cJ���d����qvK4P�@gb��-�lL��U�!a�l<���N�Gy7EZ��i�6vZ�sF"�Z�Y:�����q���a����������������x\��]���F��)QLEC2�v�l�PhI�FV�t��u��s���c.�='�����\�����v��N�M����=�w���A�$�w��q:�0@���i���x�u��IPO]�G�M�������R�Po�}��L��wW7�F�:��*�����r��Q����]�*�D7�B,��$��:A�/���8*�z����9)��89�II�����zu��]6���9�������\���K1�m���
@��d�^{��d����C�VS�C��7�m\�|NdI�~qd����8�H�!�A��{$$I9��9�5��������T�:�o�����{*~yF<`�����7�����o�*�^��5]��])���}fR�����D�N�����$���%jI[�}�
�9)��I�Y��,p���eD�m!Zx?V�@��
�k4�=Y��F!+�,xS�2�|��Vzf�g(�.����Fi�M����
[���:�cn(;g���������lB��Q���.���M�(O(�6��:���Q<���������u��wc^����/m�i�&m�����\OoT���������d"����MfA��8v���:]�`�i����_(}��i���������h���g�Jt�'���n��.��>��0����pV�/����y����o��}�V��J��`{B�^�pW���t��]?���^���`Y���}�=��=��~�7w���vAWy�����*��~[���;���Ar�]DSt\6���gA�����E�A�Ia
����p���ua���J��xa��x������E���wKik����|2��Gh+�O�7�[������7�����}�\J���-�����X��\��]����r��ol�\�=W��<]21��7n��$gM�ec�nC��I�a<k�������W}��}�/���6z�Q����	C�J%,��_}���kD6k��(���0pA=����8���V:�R���[�b����(��K��9�S���<�nYU��N�
�[]P��;w���������*Fgib�*�Am�8�� ���$Oz+�k�����7ra�Dx�k�-��_uz���M&'�z��-{a��0i��=���M�#PZY�X�+�b���8�G6Q��f!�#�N�����]#�����q�b��pt�e��IG�\N�4�Y
Z>�1��(c%�<�Gp�N�����x+�Y�R9[�.�7�;ljs���wW^��j�T�
�(��eP������G�=(5�{���\k�$�W�0[<�[���t�w��<T#�X�2��KE���:e�FU���5[�����q���:��x'����w������p�=7�G7="��<����W'|q��Q�#�H7w��z��s����v��������_.s"9�%��M��n�;/��S����`����y���[�j`�gm5\�kgaz������z��=�8��`�J�����[�r#Qo7Z����d��H�\���}�o��c�\C���t��|�{������LBZ��}?2cR+��,Z���k�
V�1�L��<��LcUP�5W `��Lj�
�B��\�U!��*�{��e�����7�9�-������<�X���-��<�:��)4��5����[V�T�<��1���-�-�-���1�<��B-������<�a�1�<�f��6���1�:���%�c2-�<��B-����<�OT����u�j�!�(��V��]���TT)�UHB�,z�&1��T6���-U
cUPrj���"�ZB*�-"�S���z`�|��TWL�h�C*����`2���8��h�*�*��"�����
�m�����@�TT�!>��|����w�����s��c�1�p�1�c�8c�1���%UW���m��$���*�����*���J��UUD���L��	>��$������b�^�_����[_��T��-�"��7V00u^��&�Jzq�m(�^(fdcI��.x��Q��w�������=�oeDK��6>��b���W#������ZQ
��7�T
�8����>��r����_g���������|�����c�1��1�c�c�<c�I%UUI%UU����UUR*��%UU����UUR*��P��IO:�;�u\���F��],�����(�n�Q�<���^�K���k�13r������7�Rp�����n���-�!��;��
c������^�)Z��i�\n�RN����{��d�����y��=v����}z�Of1�c�1��1�c��c��c�UUX�UUX�UUT*������l��6�m��*���������}���~k������c���#r��������.n���8-N�n����u��O{��nn:�kN�^m��~�!��:����Y�Wc�K]2�eK����u��.w�n������SU��~-�cZnt�����>�m�^����c�1�p�1�c�8c�1���UUT*��$����I��m�r$�m��UURIUUd���"UUg���H5�����^gZ�8����N7����m/��^oJn5�*O<�S($�����5��B��dd ��I�n�^�(���Kp��jQm��3i������]��*f�HY��������H��{9�k�3��fe���|s�|�O�|t����'��c�1�c1�c�1��1�x�1�%UU�*��J��*���UU��m��
��"J��$J��8��$��$�������s�[��u�*���+��'l���(�@�����f��v���[�����k�Q8[��L�2<g�=p��������q��L�Ciq��m����3%�����]�
k�����ag��^^y������_7$O��t�?O����1�c�8c�1�c1�c��c�����UVI%UU
��$����$������&��m��
���$?RA��������H���i�T��U�5�C�]��"�'�����wc������w.��7�XKM+���OD�!ZT;0t�����*GW/�C6J��,i��<���!��d��L�H"�sX����N�]����O\�����}x�Of1�c�1��1�c��c��c�U^�$�m��UUQ*��I*��U^��t:t��8�
����UW����H��1����c�31�wy�>�g=��kl�A��Xv��y�^n��u�@��T����ugt=���v�;y�}�G�Y52��{��D��r��j�&�%�-�p�����(\�g�/��_����y���<��c�1�c�1�c�1��1��=���UUT���$��M��k
��$����UUQ*��U_dI}��������-O�e~Y���`�EemC����)�;�9������
�90D*��_I�z��h�
��:�o2��=�������;h:�2r��xs����uC�,��M�:���:�tU���$z�������=��c�1�c�1�c�1��1��=D�UVB���UUH���EUU����UU�����U_`G� ���>{������o��:`��^���5*����i.���k0���R����Z�C~O��"mn�Ksq�!ewW31��s��/�Ts0M>����V��;+`P��yZ��)����������1�c�8c�1�c1�c��c�$���%UV����mdUUY$���EUV�"���UUP�/�������2��3��BG�Y{oa]X�����e m�#������'_��U/6�Y��Z!L�$�N����^�v��q�9���}����[2���s�017�cHhVO4���e���g7T�B|�����O�W�����KrJ�gF2enf��h��I�������n�5�K��������E��d������,�����=����;�������)U����X�M,w��]|�s�xW������|-��Z��\�{$�p�Mr�%C����j vMa��@�=�DYYRn�C#k�&eb����c�TL�34�ny����v����\;ow���!������W�=w��
�9�������zI��}�[p������t���g��U����Dx����|�l��0M���$�jq�IS���z���g	�N]/2S���(����B����^N��5+j�oel��j`(9j�R��u%G��sb�n7�,V�N��������E��7��6�����nX�m�BL��;�KU��1Z=a��|�������%�x��H��a>J��Z���L����:�������$���b5��~G�[W��aY�!���������G]oSm�~�&�����#���p���s=]U���y��2������u�h�
�u���5�+`��V;�������
dg<s��\�MA`����u��v���u2[��zXm]�������{�-R 9��
��%F��w�0/���2�	��Ky��D�4���>���]���vm�2m��_'�^�g�fu�N��y�y��?G�7�����>����d�q<;w<o�Oz���S�������(��������rR�M��/7;���5f�X����jv�S��.�����">x���-���UG^y�&�g�j	�=�23��z��������Fmj�a/:5�iv��P���!����y�\�z�o;%z���sB=�/�t��'�.��Q���@�r�G���9��Bb��A����7�
^�O�-�V�nc�l����C�|���x����������d�rA��u$��G�N y$I�A�A��jsz�D�e���2'x�gZ������71f��+��Vr��N�eo��aF���#������y_x�������5�y-��+����U�>���'��Y��8e��y���{c�����{�E�����L<k�rg�-|�~E`91���W���*�8]=�\�����r�z�w��R����2��T�&�j^�����������xb9�+g�7}����h�������jCrg)�3.Nw���8y�{i�wJK���{��$���kL�_����1�Ub��]����\B�J_�Uo�;��?w�����u��&��o��B���{�&�A�������
a&{w�e���m,��
�i�G�\�v�H�Q"R�Y�������;Y4�a�yk�T2����+S5	����<[���{�y����Qp�h�:�M�=��vN���_�o}[�#=��!#����H~��_�;�Y����U�1m�6�*���S��p�����~�f]�{��\����2Z6�.�$;��"�����=$���{����`�u!`�vF�Uxq�^�I��$�]x�b=B��B��:��L=9J��������M���/�(��MiW^���tX��v�F&1����#��o�X�^����:��Z�zbV���	�t3AylR5�D���R���M�P��^��ov�h��!r{��g����>�p�(aoo��{���EF�K����XW�v�Wh�V�*�e�hQY����7B��U�"��inu_�P��XI�C����S@[*[�F���#w��7��������QJ�C�X�_t���2�P���������-X��9x�w��]�"�v[���W��l��=�J_Z��v�W,x�{mWu@]�d]�����s��u�R���]33y�D^d{�p�"X�W�t#d�7J�r��K��I�=��I:�2w+B/|�����^�'��E�7�n��]�7y����<<f�n�'�j������`{ �8��'y�<=9@_�yxn,��
�[�������'$/��;��H't"X����V�5�K�<�KU�����B��@��������kZ1m^����}_U}������^����~�)���Qm�v�I���,�v}t[v���z���8l
��wB~3\�W��'0�*�B�y��4��r��/u�U�A��;�"��5m/��_g�����{�Y�J�jeUw(�Pm���gE��
��\�����K�!4Z�U�LB+����e��1�UB��\����Lj�*�1���B�����[�/���x�3���b��<��b�8��:X������B�S�c]mZ�RX��<�����X�X�V�X����b��V�Z����[[aa�1�<�h��5��f1�:���%�c�m�y�P!�J�|�O<�T���{��j�!�(��V�R]���TT)�UHB�,z�&1��T6���-U
��
�hZ�B��!�@���Lk��������<rTWL�h�@*����`2���8��h�*�*��"�����
�m�����@�TU!	������������c�c���c�1����1���R+J�RJ����UU����UZ�I%iUB���UUbJ����$�~�����g<�����u����������#G8���������8�s��9u���fGGb��&1��j*!e�B6Y��^�9icYJ
��`�av��/����	����acx=�5�����G�n��c���y=��c�6�8c�1�v�1�1�x�:z�UUQ*��QZUoi6�m�UUX�UUJ�J��$����$����H�� ��g!���b�S���R��m����-���V�����r8���p�CK���kM�;�,�����ffY��FJ������[J�xo[��7v�[��v����M������f1X�1����1�c��i�c1���UT���"UUX���UU
�����m����"��h���~u�������2k{�L������I���)���^4��u��Mu��)�t���`/v�L�l����-������Wv!�;uua�1L�w���]s�o�����O]+n����Of1X�1����1�c��i�c1���UUX���$UUXJ��	UURJ��UUR*���UW�$}�y���@����~�GVPWE��Va������`�4��CoM%N=b���s(��X��j���B��B=�y6k���T�:��pj����qw��������{�\�+�}d�{1��1�m�p�1�c��cLc��t�$����M��jEUW�����m�f����n%D��T����UUY$���H� ���������m_���z�i�}o'Q!
�6��Vt��K�4C�Z����*�����'�O�l�|�s�c�����9�	[��E@�b1%�B�lkI5,A/�L����������I}��}�o���������{1��1�m�p�1�c��cLc��t�EUU$���7	��m�rI6�m�I*�����UUX���UU�}������������~�����aW869o���=���IG����3\�#��S\���V���}u2X�d!6�ut`r�S��22�Q��e�Q�@���>u�9�=k}������O]�6�����y=��c�6�8c�1�v�1�1�x�:{"UUY$���&�S��m��UUY"UUw����mbIUVKJ��	�ZU|���d�:���������?>��{��/[���n��w�<,Z�)�t��w��u�N�yh�z�*V�:�hJ9��������z4Vf���p��W��=v9��Y[�pQ��tU��x:��}���?�:t�����c�c���c�1����1���UU$�U]�H�m��'I����bIUU��
�m�7!��mI%UWsp�m����!�H5���^k�yo���~M�;�8�C��m����a*�72�L�0�R���0�U�N�bq��;|.�Y�5I!W	T�`����@/k4"v@cv�%��FY�+5���������"�{�!i�W�~}��M�~>�{=��c�6�8c�1�v�1�1�x�:z�UUd*��UV$�UV"UUT%UU�%UU�%UUB����� ��q�����?9���W�{��'i��y.+WM�����
��x��
��iAw������H�,�m�w��}Y��<����a�>;�K�����\���!�]�:�����7����������������c�c���c�1����1���EUW��m��d�D�m��l6�m�I*��P�\��J��UU����?�{�&����y����������2���gm�������y��uz�>�����e[d�����v�W"��u��VOV6�o+]>�C�B��`[��t��S��5�|����C��9=t�i{��'�=.���SF��U���+w�^�	�zv�H��<�!���to��/^s�pnm���-]\�
�����;�}*��ac���A��>ES����,)�!=��Y���
��)���<;}o���4���WM�M�����n�;�K��B��x�~��z��?qr�����F��f�q�E^6[�=���</�m>���K��
���d�Nd�z������>%���a�3��K�MF��|�i�������wk�r�"s��>y(���QN�CQH6�L�GV��w0��<B��<� �[���3s�r������E�s��0RA��t@�F� �$�s��W"xW���pO����kk�ti��w��kJ�7��3��s-7tu��5y�����]�����n,0�.�om��t����w�B�������GSI�-����=v��\}����wb��`���S`z���$�:���mZ6m#w���������<3����{��N���4�w�N>��5G�
������n*7=i6��p�s�YyEU��Vy������FMV��+�T��U�h)A�d|h>�E^��}�+�{|��:|�v�Ef�q+�oU�s<WO�)��pU��$r�����!�wSo[�K�L�nK�(k�ww?hY
��d��rOf�-��7��f�n��;;l��Q��k�gK'+�wAj�to=��p�i}z)q������_�h�������/fcvORd����6�����]����cC����,]�.���>��%����.'*g5�E��B�<��9�!p�|��f,)�������l�fr�\BN��x��L���a)f<N�lr���&��v%����r����h��1��9i�4�w�nh]urS��u>G����Lk7��Al��`���S�o�^����w�u�����W���C.�������9�u�n���GrA�H;��eZ���56�������[o���|C���~���T��s�]��c^~5=�g��_�]Hi>�v�{�CX�����<�7��5I����z���q���j�i�(y������F�f7o��xxi1+��b@�N��~ne�<���^�\��
vh'��[�N�$�6f����������;�7�y���UWo��v3��5��<�*��7��;�|�Le�J���H��d<���:6��������haRg�b��v���`�uyw�p���p�V��W(�&h�.e��n�m��8�\5���h�y3��Ok���NC7sT����vd��6iq��ee,�u���y
��	��H�`4��1�Ih]�L�z��.�`c"nL;�Xc���uU�[:�s���=�c��7��H�/�z���W"�m���9�l{���kp�����db��.�/��M��LN�'^�{	��@3��Y;���3=�"�]��w+�O�����~T!]���-��b�����h�;T�T~���4�i�~te��p����v�N����PLf��8�R�*(����4k�i}h���E�'��#K�l����=��p�nzC��y�6��>3^S��������,W�'v4�Q�S
��� 	q=Xoz_�����7����U=����l�n���_[�h�y7�7�����_k����Jm�K��a����?#����i��>�W�w
�hYoe���9��>�]�����'�����iV�e��no=]a���)fG|~���u��|D
�)Cd�*�>�[y�d��O�����(�n�2��w�
���������<G}���A����<N[��f*W�D����0~���]�5��4\��W�1:����s������*��q�x��\n�w�}��d�9?x-���Y
�N��yt��|�����}���<��=�V^�>���{��7�3�q��gaf�. DlVa�G,r���������d|�:�wriT��8o��H���`�R����%{}�g���b��Q��W�_}�U_}�u[�5����Bq*��H��sVjBMkY��h�M�{�i�{���(aU���TB�[gu�������#�G����)��V��t����1����2��k���^]��-�.�+9��n��������2���v�yb���u��d������B-o�m�����[,[,WD��k�
V�1�L��1����5U
cUrc��1��b*�1���B�����[�/���x�b����k��e�\�
���c�c��b�MC]Ny�u�k����y�6��E��������6��cE����6������[9����.�-�mc6�c�m�k�m�c�mcly�P!�J�|�O<�T���{��j����\��T)���Z�����!	m��=k��]�UR-U
��`2�Z���"�B*�)��S���zb|���U��!�W �@�eP0TT]�c`4�&��
�!�*��j��b*�1��P6U�HB��w���;�|x�y<��c�6�8c�1�v�1�1�x�:z�J���UV��ZUY$�UV$�UVD�UVD�UT�UUQ%UY_������UW�|W�������-z|F�9w#NK���9`Y�v�.lxc&�V%�Y�V���.��q�TU������0i��$��f8A����8"eZ��e������w��X����������}�?Y<��b��cc1�c�;c��<c=�%UU���UVI%UU
��UT�UUY	UU`UU}�d��������Y���/�|�}��{����X��������
:*��F^|��%q�L����t`UY�	�6s�W��o�q�������m���:�_n�[{J����&�[�,M�3%�����=|��|�q���z�d'��v������{1��1�m�p�1�c��cLc��t�*��I%UU"UUTIUU`���$���m��-��i$�m��EUW����U_}�����?���0P�p�e];��g4�i�|�K��5�|LoL3:�����B�\����#��j�p7�-�Q��}�u}�����+���/��g�U���`�i�U��Q=���{���}s>s�'�������Of1X�1����1�c��i�c1���UV�$�*�����J��I*���UWrm#m��$���m��U_>�C��������]�5����c�(��6�]=����V����p������M�_v�����-�{|�LO��5�M��6�>�M����<fZ���jj1f������������L��d����_����lv�}{=��b��cc1�c�;c��<c="UUX*��"���*���*��������!*��UUu>�C��jg������v|�u�~_�RX�~��*��\���Zf�[�Uws,����6pqt�A���eeT�L,�>�d���F��(����fH�1�bE`v�[�3�!�D��xue��\$����1�����c�c���c�1����1��OREUU�UUTEUU��UV$�UU	UU;��I6���UUR*�������s������o������Dx\�e^f]"N���!!���X��l�Yd�I�����jnBw"^���e�����`���vk�:����)FE7�S�����{'s�g`]�x��/��}�g��}>���}��{1��1�m�p�1�c��cLc��t�UUv��6�m�EUU�����%iUa*��a+J��*��I*��o��}�����K���R/~��w���;����U�Gn_�4(:�S���'s��Gfu�}xv�[,���H����#��J����f�FX�Qc��������4�T��F�m�Te���c��5M�{L_|���}>���~�^Og��c���c�1���4�1��O`���J��I*��UU}�Cm���UU$���IUUdJ��;���/��I}����6o��ru���*������d���������F3������F�	z�^6P*�^���,j�j�M7Yf��L^#K6����
�+S����y�V�y���E�7���t�_>�o��������c�c���c�1����1����M��j%UU$���%UUEUU�*���UUbJ��"UUj=��!�H?;��9����}�W|y�������)���g0�D�6���`e!Yac{W�;�%Gla���`Z������e{��p
��S;G�;���}���������e>7�|WC����n�_Y=��b��cc1�c�;c��<c/�&�m�$���Y��XUURJ��
��
��$�UV>���|�=�|������8����T���������w>��:�^�������������_XFd�X���^Si�O���� �3/7�.�-c�B�k��S��@�5,����������i�Io&{�v������%��y�^^^�,tb���L��-���0R���L{s����%�
=M�C�	�x��xsCQ�,�<a=>���-M�)s�f [��Nw���v���[��~�NFi�WE�/{����-�]�^�&�����_;4��,�m��-����Q��0�*��em2m���s���z�c�~��0�i��p�)d����q������S��Y@���Yjp�=��Yv4���=�+�1N�L�]�]iw^��\����p
0[��J�t�� ����Qk�oV���3�_]���ss�6��Z�d����l��9�]�N-Zy�TQr�
c���"���Qr2����X���>���d>~��^�ni�^��>YQ�{T�I���?����q�^N���P�wI�����N��V���Z�����e�����&9�?:�7yj>��qFF�� �>yH`�S�p�jU�H�Q#����;)y ���u:��������u�X������X�w���]p�wq-�cT����|�=��=��������+��[���yO}�p��f{���{�������"x�x_�v����g2����{�c���f\��:sV�3\��@ij�V��GN��=������^��C�&m�>��hL����S��LS�a������������i��TzO1t�l����}+d��
�N����m��R��D/.{
e�z{r>����:�v)�>���6D�y,�V?#���.���3�z�,�C�Y\��<�^�N�G��7����D���^u���
k�u[x9e'�$��`�J�H�"�<����`�}vv���',�H���b/���2o�1���{~U?u�[����:����������Y<z������d�=-l��~j��,���:��q3� �H�H7$$�� �A������B'� �H;k�|}����'��v�������.�y�[^gf?�0����^���l�����#�7�A1&5rJ��x	��(�.t�Vwpu�������[�y�#z/�\�'�9��p�('����s��9�j	~5�V��=���{�<N�1P@�����,���u�R?d�$�>-\��#y�C��V���m mnM�W�>
<3f�7��]yV�|5�v�/35^y�=s��Xo�1��f�U�`��E*�E�5�t��+�f��[�������7��vay�����:���������W��t�$����+'�b<y������CR�N�^a�":LwP�����>s��e.��~�(���5����dp�x�e_n�0K���� �9���j����^���+��-��>�c0Y��G���y�o��J���~������.+��7����l���7�t�K�m���>�-��������n��/��g�Ck��<��7���������$�ja����Z�k-�K��1f���*8��g��Q�G%9�����us�n�����~�������o�8�#�G��M�M�p�
�E���J��7omWn0���y�P=�ZIX"�n��#/��xhQt���m)��o0���,��	�f�*#j���X��<��t�s���>����;�k7��,��m:��y$�x5�������������`�d�V��>|���='1�=l�o^�W&a��������c�a���2�����K��9��N;a
�>�K�9�7��k�=�{3|���/��=��OX�����x�\�Z'�PVGRy�k�������'�{�����]���uy\�2�O��%�W?S�����>��:��W��I|���0}���7Sh60�r���c�<��`8�Y�����>��� ����^��3Gd}
��oc����:��/ys����j�
�'���KHm��)��^��]�4��;�����}/�����x��������E~�����y!���	�Sm:�)���_�~����T�6�eu����&s��P�{���On�iK=9H�\�:vt&����h�W:���wnY'����iG�%����_���}S������)5��y�+�-�����6Xkf����a�Wa����;)�T�t��Gj�[,�V��b�o>��V��}���w��m�Qo2�����/�{O��_}����{���������*������Y���]�M��6��rcR-�-���CZ�@��\��W&k���mrc���uW&1��S���h����
��B����}�����7�(���c�<��b� ��:X������B�S�c]mZ�ty��y��v�l�l�m�t������l�������6�����ckly��KkX����b����c�mcly��!�Vm��O<�T���{��j��\��i���[,c-UU
jER���K���j��
����eP0T-UH@�T�!H�T)�}���1�x��@*����������`2�����1�&��
�!�*��j��b*�1��P6U�HB��������'����x��clc�6�1��1�1�x�:z%UUIUUIUUJ��%UUUUT�UT���*������%��d�O��[���~����?�V����$y{�V����$j�L����R��)KC8����VS��,�l$��u������sN]����Cu�r�q��:�("�
�K2���9naW�m�IO����>���g���1���c��+���1����UUXJ���UUQ*���UURJ��*��IUUdUU���|���/���?���o���?];�5dp;��(�-�U�N��9�:�Wu����7:@�v����F[p�{6��Qs��]+`�fc�i�hK�Q�l�]����F�"~�eZ�;�����5�����?^�'��������1�m�c�cLc��t�%UU�UURUU}�m��X�UV*��������"��i�U_}�7]���~C-L�X�Z���9� ��#�������o�G6]N�*��oF��J]�>n[��u2��Ql7T&�.a������������\��$�?���O���~_��_��^<c��1���b��i�c1�������U[�H�m��IUUb��si��m��*�V��6�m�%UW�$�� �����~���~����P�eb�H�(�d��������Z��P���J��8|�@�����_J�[�����u����e�o$���dn$0<�7-�1����W�N����~>���g���1���c��+���1���%UU%UU�UUIUUJ���&�m�IUURUURUU}$d���^u��~~q�Z���������Z�.��,Ec���R� ��P����3{�^��VS�J��R�FQ�V%��L�����!]�(��o5��[J;,�E�:N��k��?������~>���g���1���c��+���1����UUQUUIUU����mdJ��UUQUUd��������U_}���?�_������5��VV��p��b���z1![2��/��^���`B�&.�;�tEYFn ��F��m0S��xNC& k�yxC���B�a��na����lc���/���~>�{=�<W��6�1�clc�cc��c��J���UT������*������mbUU|��m��Y$���"C�����w��~��&I�Pe^e�G'��U.�&���7�M���������[t����7gCx��2;$����a�{%���*���Y3A���_']_���[m���'����x��clc�6�1��1�1�x�:{UT����UV$����������UU$������$>��y7�\���M���������m����h�
[�FaA$�*Wcm���-���/^+0������:L�����5�O�<��}�B��u����������O;�_o���}���~�>������x��clc�6�1��1�1�x�:{
�����
�����UUJ�����UUT����G� �~O�S�=��R��w������n,k���l�\b�m�o�*�ZF[��p����	�{Z��Z�z�Jr����&�eJ�s@�h�H���p��J{���+��6�����'����x��clc�6�1��1�1�x�:q��U���rF�m��*��*�����5�����J��J���F�?����b���r=jj��y�&;������w-8���S.}���T-S]L�0�����f�x�������e��0Nm����R7:������6Gg�,'�3�����b�-j�W�G$��v���f�L����H-y�9CW����w6#���^�5�d�cyQ���)��siyi����������h���+�������+����-�	������7�T���;��\����f���+�Q�:{CU����\�v����'��k�:vo��Z���s�:z���
��GG.�����&�&xo�7,����=�N�p�s�n��?tt���|���gd�.���UB��Y���qf����1��*G�F�)RGu8����������P���vze�I)��w\�y8�v ��������8o/D�x���km+f��g��c$��
T��B\2���6��t���o��p���/bG��f�V�e�����il3�8{��������hm��
�H�e�n�J��>�������2`��7�fs��)6�~��}{�W�(i�%��������A*��sN��b����a$��IQ/��P����	������fd<�����]��T���k���Y=�.����~�1�Y�U������K�����h��%��3����/f��Rh���T��#x�M��������~����B��5��&L�M���m�v�W���*�r/,������c���������K8yG���� �O5�I��
��]c���Z�����,���8I
��������<��Xs�R�S;b�wop��b�sn	��U���/Y��N����Bd��x��S�k=fC���&=�:�'���7���b��Kt�q�4��l{�:���[�^����o��q;�g=�l��c�U��e�u�({��<��$*�0�K[�>cB����k-�m�5m�u��f�4�~�\���w����]I��!��7��G��R�����b�3;_X������a;�,Y�����T+���p�h���W�f}��33�����Y �H7$d�$���q��I�N"I�NGI����z������mg{�/�������3���p�������f�A����)�������Z�Xh�v�tQ�������
xu��Y{	���
��aw}u��D��U���+/>�����v��s��%�dn�m��1��3.��='�gz(S�����u��7&�����u�1s���>���h�����-��c���~����Q��(���|NL��D����j�6T�c�yw�yL8{���o������������v��'��s�Bq�tYQ�b24������Q[�,���k��*f�R2p����Dfgr���w�7�}���[Io���SD�;��-��vn^{��7hi�V�X�f*��&,��{�w�+��:#�O���k�]d%�3���"d�r�]x
���Q����}��
��{o{�:�K��1�~��S�FKG�e+��ve*��V�7���������(������*w�t�'�O'����������Oq(\�P�*�wV���7����Oc���I����^�y����yQ�V@���+���st�j$�ns��`���u9��P>����
'}������p���k
�AK�������_��[w����L�����9��mZ������e��c>:CwZ8�l�WM�t�w@�dY1�j�kd����^�����.��/���W�sF�e�t�o<�s�o����`H����n�~���~���+jmr�lO
��U�8>��wu���X�3u��G3rJ-��$�jc�5
�n����m��{�Ms��B�6]<��k#�{���:�=<�g�1�x�fu��� ��^^_�����c�!�^��������� �f��9�������+������{����g����6�m�]~OZ�����]>���������������wwy���\-e��S�����*����K�?��c�����L`
��:wM�d�������*��e�0�{��A
[���������)!�W�|���(>�<�������D,�6���G�h����.E���7�,�_>q����'�|�����}�
��k��~f�����B��>�#/}r�bj-3/,l��N�`������{[P��	��eK��n�� F�<��$fh���Ad\������q�d�����}��_g����0����=��$�{=�7��[�M��+��l�m�]��5Z��"��m�^c-���j��%�\����Lj��!��S��6"�
�
��e�Y�/���x�b����c��b� R1���<��j�)4��5�������]y��ck�[,[,[k�,cly�1@�[,c-ckly��l�������b����3l�;f���h���G��b�E���O'��(U�{}���Z��j�:�+�@�j�!��U@B��T�!-������j��
����eP0T-UH@�T�!H�T)�}���1�x��@*����������`2�����1�&��
�!�*��j��b*�1��P6U�HB����;��w������x�^<c��1���b��i�c1��=�m��u�&�m��UUb����������UV������rmd���������H�dny�\���wd�Le�5���Q����)�	^���%�t���a�������J��K���d�j/&\��NfVw�;�m�M��3;M;m��~>��Og���1���c��+���1��g���mR������UUY$���%UUEUU�UU�M��w���/�����_}���a����?�{*^�>��"�^t��[�x��������u+�K[pn.6�]������8r��	�TD&��GV�����FY�[������w��u��ui���~>���g���1���c��+���1���z�m��J���MM���%UU�J��*��UU{6�m��UW��I�A���=�y���:5��������6����	����X��smM�tD����[����x�����/O�O^��?������cx����i�Q�[���x#�|~?z�����{<x�1�m�c���1X�4�1��N\�r�UUr8��8��q�q�q�q���/�C��}�o��|��u����>����~n��k�)�b�i����tv�r�"��r�C���= ��X�������|����iHV��53��;t�$���w�}m���v����O'��������1�m�c�cLc��t���.\�r���+UU��.\�r���.\�r���._b!�H9������y��:5�~���m=��` ��&��hY��aT����H����^�O�P������}t���yoX�,0]QL�)W�,��x��>j�wi�:m���~>��=�<W��6�1�clc�cc��c�.\�r���UUVUUr���.\�|���\�r���/�d�}��������M��J�1�or�;��c���	ejwq�uz
�h��U��x�"$�%�u]��<������f�V�K���D*!c��K�������U�������n��u����_,��������O'��������1�m�c�cLc��t���+UU��.\�r���.\�r���.^*��r��'�� �$������������Z���4mfQ,��:u�!�tm�1��v�.��:����8�Y:�ba��Z�``��fg�b�l	y�B�{A$r�'C���P�����g|��(��������������������<c��1���b��i�c1���r���.UUU��.\�r���.\�r���.\�r���C��y^Un���S�X�����')!������iK�%�:�Zv�d/I���^�) ;�LX��U��c+��K���t�����N��W;wu�yFKG���w�[���k��t����~>���g���1���c��+���1���.Zr���.\�r����UU��.Z���.\�r�U]nAd����M����~����{�W7)��Be\n�LR����-#�fos�q��55pe���6nE.�`�����\��9L�s���*�m�\G�}�D^:�;���q��7��N^����d�x�^<c��1���b��i�c1���r�eUW.\�r������*���\9r�UW.\�jK8���b���v��Vo���sv ]�>u��.u�ptwn��>�������o���z����o_���}rTO����5��~?�����|g�'������BzI����%���'��I?�w��v���By�u#o�o�����#���F�����I?�����G�Gi�����!:w��������)?���BX���#������m����#�������V����������o�8�����?|�O���m�m[m}[j�F����Iy�M'?��������w$��F��������O�6!N_�����.�����4���?�������HD���8pH�#� �G�I$�\$$�G
9p�&9z�t� �!>�{�'	"N_��bI��bI�n�I���'~+��#��aBp��GM9m�����Y$�?��B	����N'-G�rD��I?�#��	'���9�B�w��I����'�~��I���SRI�H��B���������_�������t�'�?#O����"�I���H!?��'�;��aBWQ�������y~��8���,�?���_��?���_��L$�8�!	�M8I�
9#���������,|�I�4�I����U���kkk�_]�Z�j������>$�������AO�c�9ss\D���H��7��?�`���W�?#�S���I'�I'�8c��H�	�	9Y��?|!M?a���$�'���$��N	?�����q$�������!O�q$��m��9�4��+W��o�����|���������y����������.���	��5?��j^'��7����9��]yB����3�\9�jG���8r��aBW ������i���?��?�?�B��$�I�.�t�N���N��]����G�1���=G�I�'�?�$���1�$k����NRU�8~���>?�����:�c�D�N9��B��6�����8?p�_�I'o��!	����&�?�����;m��[��?�6���9[�����Uy�:hr����1�+�D��'o��I���d�Mez���L��s��K�����y����0@$!��}_@�"{�!�R��
HPR����J��Q ��U���*�
�)��
5"kTR����
QB���0P���@d�(�4H� !
�T�AIm�R�(PTA@�/� @
�c���&�f	DI*��SA�I��V�E
	[
$��(*�42��DQE*�P���a	*�@�kZ��A�F�
�H�5�������@W0�N�%���%`u%
�P��E�|*�mw��lX�b��-b;��:t�AT��4�"JTNmY�|��u�
�[�p�,t��UIQ@�(�9�EB��(��1�������`a��a����`n����M��z=�I43cEP��>�����`�������6@	P(P����R�RM
�+C��������#���,Xc���(�P�D���Py62�T�l������v,��`�X`��S6�	Q!IE}L8�+������>����`����ab���BI�JHT�
���QJ%P=����,0�B�Ac�EU
(�N
����RIQ k3���������-0��lIQ@t�"-]�n�R �H��l�>�6����n��n���!�*`��RF��cP`C&��P�x3RU*L �0�@h�&�F&&B)� ��@�"��������������a44����M4hF@I���j��@mLz����4��E#��~�&�"�i��F���H6�e&�i�Si$�����C��~����h8�X=����W�G����~b�y��|����V;��l7Ya��CUAL�S��
��F�����������������`�������_���4���0�08����AA���/���=*�a��� ����4	����@��?������������O��t��}���*"�@TE0������@x�>8��s������
fg�xi��'v�2���y�[���Er���7wt���n��3L���H�23$�B�3 HB"L��3	BdL���1E(�F1E�1cb�2B����w8 "$%�r��a0@d��u��L�`���!12&Fd!$��	�:�$�D�I2$�D�L�$�����@%$�dHI2$��$�H�ID��Q`�#"��@A���aJd�w]���u�:��u�"&`���"dI� $�H�� )1���!��fP&&�LFH�"Jwq����A��EQ�(��qE$I2$	 L@d� �&�� " "H�"L&).��w;����$d��H�L&��������"fdH BD�dD��2��&@�����R�ws3"�������i���2DDD �0A@A�]�I$�$�d�L��H$�@b
LF$��IC1&B�&2�$0	#!Ha4�!��d2�Aa0�L&$�"H��F���QE&B!	@��(�$I`��HD������"f&a���$3 L�0��0�;"@�� L��L�7wL�aD�]��e$�	�(����B`���A�	�"C30��2I�� HI$�$�$���((�
�u���rA��1�	�!32&@�L� �2H"0Pd�����DF�2d���E��#b���W;������10�R��HRBQ@��BI��!!	 ID��"��IILH���L�"II$D�RI$�H�H�$L�D	&H��2!$II����P��F0b1(I) �%��h"
$�DDF"3
aI 	$$	�I$ID�@I�$�H��0��$��Fn��%	��S2P�I$H&���D���@����$��%b�����""0`��$������`�0�D�L�� $�I�$�"2$2`2bD�%&LD%`�$�L��E!&H2d�h�0P�@��]0 �I��1��������� ���"����H$�a")����$��H��H"�A�7w2�L���bB��H`R���S"�AL�"D2%0�@�����H�2�A31!��H��"��2A7:BDI��c�&LIBI���$��D���I��10� $!$�H� ��L� H@IH"d�a��$�w&$"O�Bb���H	�$&c2��$�d ��#$!�HB;� I@@	���2	�3	dL���$Www&���.��:.3d�RRFi�(H'wL$Q�I&�!!�J2$I��!$�$�!0�"H�	L������RA&!4�\�PlF��I�$J	1%!	�$)2F$( ��$RF�(#&�1�L�RB@L�B�J@�AL&P&H@�I���B@Y(i�$h�,4d����@� �_������d	��&a	$�L���$Be D�dD K)�fA�$��	�$�FJMQbQ>v��X61!�Id� "C$r�dL	% f`"H�$�����H	 H�EA5"�%D�4X�TF-)5%�F%�\�f�@�!��
	A&$��#b4�&"�$���Q�L��CDBF"�&0F "�0X�X�,��A���h�b��5�2i��$�M��P�E d10d &a"B�� $ Ja����B�4�D�I&"H��62c,�"
@��4�� ��S�L%D�����"F(�b6#&9�4�$I�[��4V-F��F����b�cF*1Q��Q��`4[2�X��b�T,Q4%%&f�0I��H!"��c$d��t�Y0c(��1F���2��$BD�*��L���L��aL ��H�f2	� �D�I��(
2fN���dH��u2@JC"�#BI4�"a#	�����&&"A�dDL�&d���D�P�`�B$�AN���a�2	$�)(�i,����DEd�Q%�l��EBdL��%Ic0��2���
L�wqL�)�|�Rd�������mV���j��v���L"�1�#& ���(�RF#%&d�$�I�D�4!�$&��(�cADQ%�Mb)1#cR � _���#��YQA��!�b"��bd�h�"��1F�����1���d�&H��B$�3I@`"J�5DX�F��Id�0	�#! A!

B��%$FJ�1�1�b��I�"���da$�HH��i6M�!�(0���b#%��A���I��!	�$@�d�3"���H	%�pJ$ �� �F1���1F��#AF#(�%���A�$�����HH(0F
2B����Pb1I������d`�&L��I$��I!�4Db��4J"#I�1IDE��0Q�RX(�"301��	&H$���B��a"e$Q%	�3 I %$)�"L��I(BD�����"��	I�&�	 "H��!0R�hH)2
JH��� �`�c�	I� �I$�1�J#F1a	�3�Lb ��&& "�$�I	�A&2F"1�I�@Q$A3$d��&H�$��b0	I$�L�d�$�	��""H�F5D!���Rh�X1I�1��H����&RI&&@�L�A!&dDA�PDQ�����AE2&Q�(�b��1)1#A2Q�D�0c&�1���"RAI�#$�!�Jd�$	�$�H�H� $�	2D�"c"""0A@bBI0�c� ��F( H�D�2`�2d����I ��	2i� A;��"#0�232HD��	�BbB����$��I2IL$�B#bd�A�1�h�F&3$��Z�L2&dL��!I! �"�$���	�I!��L��f� �h��F �R�FBBH`H&d�B!2bL$D�f@2I`�H$"`
1�F@�d!"I��"DF)2&��f ��@��!�1�
%A$II	�� ��2h����BI�-d�D�G:E�$@&JL0b17����4�i�`2@I$�!�H�"6A$FH�&LFd�#!L��RI@E%ReLX4Q&����"0DDF#Hb��	D$�$�" �	)"�BI$	 �`������fI�0l�F	�B!  !0�Ln�B	�dYL�3	�`!���T�&�"���$�(��!f!��	$��L"&E)J"$�	fBS d�L�$	&d��.���$��"�b��%E2LA$BREF(�A�$��Y�f0�	BM�D���������DD� "�d$�$L�	"b1�$�$��fFC1��LdHL���&4bZ��H@�Rh 1b)(�5�2$#23B$J �Fa�h�QI�B@2`"$�$&	�QA�FC2`" �(�����0`���b�b�11F1�2
� 0�E�M��mE�X�ch�TF�?��������u0 dL��s��QE�m��b����Q���6����r�����5E�QQ��n��1�Y]���7u�kBNrH$kjDI;�U�`"&�� "B]��h;�wtmHD��wu�I2H�$��&5�����D�&��$#22!U��$�			H$�L����I0���!$HA ��t2`�f�����.��oz���������������G����:}����A>�O����A�}�������@����N��g����'�z��>�|�/��0!����F5�j�j�Z�jKRZ��1�cTcX��-�ks�6�j�5�j�k��1�cU�ks��cF�Tj5��5Dm�5E�EE�clU�\�j5sW5�_���j5�F�Q�5�j��Q�����j5�F�Q��j5�F�Q�����j��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5�F�QX�5sW5�\������j��j5�F�Q��j5F�j��Q�����F�Q��j5�F�Q��j5�j��Q�����j5�F�Q��j5�j��Q����j5�F�Q�*��j5�F�Q�����Q�j5�F�Q��j��j5����F�j��Q��j5�F�cEb���j5sW5�\���6����F�Q���QF��j5�F�Q��j4k�F�j��Q��������F�Q��j5�F���F�Q���������*����F�Q��j5Tj5�F�Q��j5%��j5�F�Q��j5sW5�\��F���EF�Q��j5�E���Q��j��j5��������F�Q��j55�F�Q��j5�F�*�F�W5sQ���\�sW+��Q��j5�F�ch�j5�\��F�W5sF������j5�F�QQh�j5�F�Q��j5�F�W5sQ���\�j5x��F�W5sQ��[sQ��j5�F�Q�-F�Q��j����F�j�6��j��Q��j5��j�F�Q��j5�A�6�F�W5sQ���\�j6��5�F�Q��j5�[�F�Q�����j��j5����F�Q��j5Tj5�F�Q���ZRk��Q��j5�\��F�W5ssW6�j5�F�Q��j#h�[�F�W5sQ���\�j���Q��j5�F��-�F�Q��j5&�Q�[����F�j����%�X�j5�F����5�F�W5sQ��\��b�5sQ��j5�������j5���b���Q���\�j5sW5sW5�\��F����F�Q��j5����Q��j5sW5�\�4j�\��F�Q��j5k�F�Q��j5�F����j����F�j���j-��5�F�QQ�����Q���W5�6�nm�[��F�Q��j5lm�F�Q��j*5�Ij5�F�Q��j5sW5�\�����X��5�F�Q���Q���k�\��F����������F�Q��jb���j5�F����Qh��\�j5p��E�X��5�F�Q��X����F�j��P[�\���j5�F�Qb��Q�Q��j5���j5�F�Q��j5�\��F�W5r�nV,m��Q��j5��X������\�jMW.U5\�j5�F�cE����Z5�F����b�X��\�j5sW76�5�Q��j5�F�F�b�X�j5sW5�F�\��\��F�Q��TQ���6��Q��j5����ff!�_������|��v���{�6�
�������t�?!DS���@��������=v����?�?S?���Kc�g����������?���]b���{Y�M,��������XtO'�j�&�G>gA�0)Tx��m�lW�oU������)v=�1K7��
�������;tfI���%}���c������=w������j��+��!��l���Bq&�D��n=tz�������
�	n�z"��9w�nj})�d}7x`9�N�
��Y�<�`����|J6s��6��mq9��%�?V�j��a��a|,�l����Vk��:��N(_l�����r�����X+�t��}���w��k�fk���q%��0EY�o���
:�d����ULzkd����u�LX��e�>�L�j��{��Vh��F��R����n�N�hy��\���T��y�X%[��oe���L�]lr�M�t��*�5��?�;��)�A$=����E�E������a�)�?�oR|��N�\�����V^2������[q���5���j�o�U��{�-�@]:���������������_��n��V�H��oQ�$�����Nd����l���H�S�����2�Q!���������l��2�2�S��qE]Ji�f�N"f^WJ��"���05i�}q���em�9!�P%��zva����V�Q��z�t�wnC���JU��I�Ue��[:��0c�v��k5>��!d�#��uY��[������\�&���1^e��E��V�oo���--��l��R��<��N��EV[�o������M�)���es�e_dU.P��aunc%X��8�l�����N�;1��nj�:Ot���5��,�s��r��R�v-�������/;kk1�EY ���Y���m�K1���\�Z�Sv����:��*����-�p����0��]���,|z��_�b���t)��N>��y
]K2�>����8r�
��=��:a*�����f��Jr{��SK�q�"n/�Hz���v���p����S�<M9���q�K��������Cmoj{��GDJ���z���Vc���e�)��
j�M>�T�x�^e�$���h�`�P����\�����TI�Nf^f�i5��a<H�+����������+���J�eG��{�|h�
�7�����3$�A�z�jF�]���\����W�U�/�-��;+N��X+K�uU�r��z��j��
�[��+z����[��:�E���9��X��y{3d����������E��3c%��4�����p��eZ�J���f_�����oc&������"�s*�����&��O�����g�����c�M��uV�i6�`�s�Vp��vV��9�%�1w6�*��)>]7�=8�0H����.����`wV-��;8E�_D��1c�u]�����/ne�k�����q?�7�vI���u�V�T,tV��z
�cmg�g��y�XQ���V���UML����aon"���i��L����#C���Sq�sWf�-(�����u:)Y	��f���#*���B�S4���9�N�\���g�s-#�]�VF�j����j��j��'V��B��Rx����<��+.(,_n�<u�xI�����=���uk����H-rs9Q����esV�����{��wu�@��r��	���08k*��N�*<�L�+36��d��mG��K�������R,�m�OR��CB�)+,��w��U�������J_�Z#�3��he����`o�>��=\�t^Y�{��GP\U�&����Y5���6�ab�>��Pq�1����tnY�q>dmn����3m�5���x�Vm�3��W3�@��n��������m.���Z�U�Z�UkG~�f��hn�4�����:�7��j�{v�L���p�n��������h��jl&�ZV�m�U��4t��c����
5%�r�n�S������5
�\�u��MFY8����)����"��|�!��5o$�+:B����ot��dvnd�}<hoU����QcI��h_15��2�aX�v����������}���v��@�8�x�#����X����}�K�������.������!���1p�Z{�%��������������xO��	gF��:.�[n�Y�Z''q��:H��o���$J�����Jij�k����y����Wv�"��5a����,oe��'�B�� �qr9��w���T7��o+"��	���MQgE�]q��9fe�r�I�����T��m��[H���|�b����.l�K�o;i��3������q��������#����z����zgj\�(AS��T��>}9L��GG��S�n���g	��WL�e�;T���mWY��c��d�{-d$�1���}8�]�����a�!���
�l���e�����9���Y�8�um��(�:�,�s�*`b��2���#D%oom��\���#!ofk���K$����
s��xE!FI77�N�Gx
��c�������p=*�JP�-�(��r����w��V��i�uvS�09���z90�v�^P���7D4)�
	�������b T��n8��c�N��i�q��Ku����:����Xi�{����I���y_Y}���n����}��NF9�&��-�i��l�yu�>Z�������B�����ng�m�N:�*	N���;��
��Q2T����o:�MW�S'L2��v������7��5�D���x��U��L<k�CA�C�k-v��C��;=�����Mw.��*A���������@M[t'���kv�\���F�,,����,|�'H�����n�����G��K�7�m���b�16^<��j+WM������Or�j�lmP��qm�v
n�G�"�Q�[nbe������r�u������d���<!af\b�T�E��e5c<fFbB��N�/���v��Y���r����%	��1�Y�����,����kt�n��TQ3*S�w9���6n�M�4�$�w�,'5�ywxX�U��I[��7^>R�]��Jp�NC��kc�:6*�C���<���k�0�n�����7�h���T��eIt(�5J�n���j����j��:�����s�X�vd;z�
��]a�����Nu��������������Ft��w}�m��-�DA_�N1sY�r������"�V]��)s.�|��+�@0�/�N]����9v��vr��v�j���`������������Y�}[��`s���O+��2v_e��9|��EbS����o98��\�G+���5Lo!�,Te���6�������jtj�t�b��FF,������I�����P�4�����f���xR��b�Wv�4dD�"4�sv��Y��s;���M���>���cS�����P���x�u��#��Z��]k��F���C��h����%��K6����Ewl���d��iz�m�1�nA|�wb��P�����/����Z��7��D,��#���
7N�^���e�������������&����y����u������I�E���v\�Be����*1d�o\Y�;�\�I���B]w��B��x�^R�^t%k��, 3�A'}��1j�����/k'|�l����Y��j�fd�h/st�(����a����h���U�S������s6�������v
����
v�N����|0�]�\L�b�e��E�����U��}�on.f��}b��Vw2/nU��e��,}=W��r�X9����G8a�6�5;��bQ]�����w0T�eL	1����nI�7������rR�����a���8���r�/��5�����Q����q�����nn���z��}K{�����v�:��������eM�j_n�,!�6���t���K���Z�����K����juL� ��,0GE'��{]�-��]�v%[�����+�}�:��pL��������c����H$cYi�J7��T�aa��%j�wx�\��[����6L���/jA|wp�����@�������|��S���y��Vz	�	1�X,j�
u��iA�X�������$���(�"�;���SO���q6��/{6AsC6%W�������'�;��v��V_E�.oY�����2*6�3����9J,w�t�?�4��W)��m�2*���<D���w�!�\���y{V�
����*����!�[x��L����Q��Yqj�iE��BS3����!'�,��x�w>��1�%}�N�8YZ�9]��A��V5����,���Cn7�e(���MjV����pC�6+;m���g}�F���j��"�r0�4����6X�b��������1k������S�h�������ms�,���l��`���Cq�N�����3��v��b��������y�>��O=s)��+���\t{.���j��X��LW(�-����F��IS��!����H�wNWy�OT��N;�5��]���st�%�Z����:����������]D�Tq7Kf�cu"&���n��'A7��K�&"V�h��i[���0���:�j�����Y����u%.��y�pr��r
"[F�d�Y��6�v��Jd�x��K�������e���R����-��Z�r����Je�n�%��5��S)5��u8J�<R]���/�rq�f����YW)�7k
W� .��Bj�>�a �������$��������P����-�&�-����*.�(��t�rn�g�)������&j�s�5E�]NN�kHqc��m�[r��=�y����kH���mc�j�.��G����m��p����S���a��1��.��o��1��ge7��%��QQ��L����{�hZt�n�R�c�,���a.bZ��Z}*�#�f`�Nv2%Z9s�w��RtZ������Wo�����1����}�7w)�D��tgls���r�+w�h�{7�K�S���E�:�oY���T��������&u����^�u�����&���u�8:���������(v	LWm�]{�6��rn���t�������X2�L��A��X�X�S���BG�k��<���BZ�J�����Y����3����j���8���;���,R��7��5g
<���`�����][����=��V�N��/�m�=�B$u"	mUW�H����n�m��yV�tw6n�������!y���L��Ft�1=|JU�Z}�0�QN&v�oF��Q�]�&���J�C7q�Jx�����M���3& G<���Gr����(��_����W�@��Vz#�n�98��]X��-U����T\�"����ZnP:��Hz�����o z�y��Noc��(����:&�{'QX._�f)�q�Z���ffv�7�����gs.��gi\F���G�����\mP�z��wN*� ��fU8���B��f�A`�	$"�Z�g����GC��B��3�\�C����Z���v�����jQ���p�a9;�e9��p7
2��c�\oi���6Y�|��;����B�Q��d�"�a����>H���)��i��5�6�_Q$,���nNX\�B�#+���:m�jJ�p�MJ�w�x;�Y���Fh�:�6�]�F�0���t
,�E1TUb�"E|_}�������oa�������q�8�������\�����V�qs��NIGmn
�����Z67o_p���91{����uZ��w���7;-wPr��y\|�Q3�7a���93�oTF�t�9V:���Yi���D�%�*���m�e�;��&}��l��(�X�o�w;9L������u�e�3������`q��1�;h�5}
{��f���q���}��5���5���}Q�cp�Vlz�I��9v��z���yJ��*�\b�MR8b�j��'GR�L�������<��gma���1?1#��=D;��-���W�p�V���S�	h���#�5_������`n���N��lb����Rz�s^��{h�az��.zn��:��R������K5H�\U�+H�E��VU����V2���;y>k�VXG
�����n�.`����-Q���1��*�n[�D1pN�
ZF�(w�:p�VL�K��.���u�������I��']B���v��?��K7���*<��k.^q'>���SVi0�y���8��`�;�����]8�(�^�'�����d��-�$�l����VU�|wk�����0�S�Z��� j�,���y4���JU+�[��,\�������a�U��Wy�4��y��a�@7X�b���Gm�e��N�������k�
���S">V��2����W���yb�}j>��np����r�����R��wy��Qnb��c�d��YKO#���������U���q�F�����\������0gn��n����f
Tx.+�5Kv�:�n��`DP�5
�g+sI]�5-����'V�[������&��dXrn��`!P�+���
�����j������F<�gU�����
}
+K�����fgt����QJ�yG��\�#g7cj&n)�WR��R��<.U�P�_:���Z�������N��N'7������&o�4������\��,3���_-X;��)����D�mgIQ7��;�Z��*�g],�9�xR��\f�p����x1�4_&�����T��Kan����+M�z�`��a$&���W�������������H�P�:�z�DT9����*�k%����Y6��/n���i�5|�{]�_;���������Q���[��epcoe�L��I�m��:h��u�3�
*g��:��9}C��Y��q�6n[��R<A�8b�������e�a�C8�}�u�v��,���Fo��NGK�5|N�6,�����M�g�W�7Uf����}���Z�q��5��3;��������9�������!�\�,�s�r���kN5}�����}ep�#���0;�Kk�(�k�>=��Ch�u
�s�{z��k�4��.�8�,���P��u�*�G�8;��|8���(�2�^�E������v^t����`']�(N�@c�}yD
B��>��:����wvU��J��2�{�Hs�%�>�Bu�4��c����Mf.]o7�a�WU&� Vg����g	��Q�h�t���s������+:���������dYF�lC;�,�l�����}����.�
�O�[��(��Q��6�����.����s���a��g"~u�@X��N�wQ��fP�(sy��A�CRL,���Nn��������
hLP��Of�>��AWY�"��k�<V����Y��;z#�Ky�.�s�s������0���Oa��wo;��D�-m�P�������F�[��!��t��W%Z�<�m$e��z�w����pn69���.�����2���DT\_V)�����I�J���B�C�9[��/7���J[��'�� ���9m��]����vh��M�3]{:cm�-,/Oa�c�"�LM�]��TkH$s
��0K�r�� �p�:b�����'s#&�W\�^������"r�������
\�����:nv�.W��;}k���pF�����1*FO>���F��\�m�i5�6e>������:��[*��\�.`}���;�-[3;#g����7j��5Nb�v�v�V�o+��:�(i�b�M#D�!���h���F�E��-��thK��F���9���S&i]�+p`s=j����)<SEh��h)�:������v��U���B��{��v��uX��G��+nT���"�81}1|����7Ci=���`���NP5�{z�s}��:h.�_>�r�&o�]������Vz/�ot-�W�t6e6�r6��.��b�1OX
gJ�P\i3\��u������%��bys�d�Wi�k'y_,VNFv�'���4�p�g;�cJ�_ud:��������.���\�'@�1�bv����1��`�:����#��b�z5Q[�L�6�=W��x�t[�����=�����]�.Y))j%���(��w��B�:��NE_r���:��a�0Tl���b�O�'��5wR���;Cq������P����bweXY{��-S��aM w&�;�����In�_��v��7�d���+���@c�����ub����0Jw�W0��d������.����KOa�{+MG����b�mV������R�W��i����2Sq����c��1V/�������*p+E�dS�Pa�;�+%���n��{�)5�/����u�>�W
�u�P3�m���7������&��w�73�����,R���eU��5Gv�X�%�H�A�W����]f�5A���;V���U��oQ�B��y.�Jr��3�X�hqf�O@��=���(�H]�J��<�5%4��F�:�zz����f����[p!�����*��L����W����v�8�-�:���]�3��ju���w�6����w��������n|�>::�8f�*@�P�������n���������b���;ZR�R,�O*�k��R�_Um�=�g��,9qA�V�N�t�6�����e��L�����A�^vA�}�\!!���]��6!|��X���=P"�}v%]9����{�P��[N��nv8��c��j���X���vKvh��B�%�*��b����5���F�������v��<�+�X@sk�:��H��
��-k9G���E����V�f����\��V�������M���f\�W���'�[��3�Y��+f���mX�����o�+�fP��9��qHs5��S�>+�VY7[�Y�d�z(�PGU��n9��/��
��v5�V��n�D���]2
�Q��K��.�����k+�����V��+����sF�%��Bn�2�c��U�rfE�6���y��E��jv`������Dh�	���q}�;!l�/��������.	J����vtz1�X�����o:�_%	���F�y�2<��G������l�Q�H�U�R����}l����Pl���K_lU���P��M��d���n�d;m d�c���v���E��Z7{�����L�^��w�u]\����r��3yL���i���A���N��yV���w\4�|��$���������{�gle��Qh��Q��w�8_h���5n /�Z�f���wM���TyVA>���=C�����@��WDSnh�d��.q�}���gu\�xm�>ux�kUs!�I5���v�����:+:�H�A�������BGj������W��u��5���-K�30w�C�������[�H���������V����n����M���<mj����"��d^����v
���/�<C���w^��@M�T3-�2��'�D ��
��+�5�������
nn�#N��@���DID���VS����|��uf��!��n�8e�nG��u8�j���?-#�IQu���6�]66���4���P�D�x���>m��u[�kE��hVa	Cs's���q��ry��s���j����[k�>��oEdr� :�S��R���i�T��{y��-\P�{��\�:��:#>����2WmY������o�Q"dPi��`��aR
�f(��t&4M�8+�5�Y��PS�a����2h�j�0P��3�MH����W���6������V���N�"]����+3 Q�8p�Tt�2}p��7*�a@D��:W'��K�2:�<6� n�bn&�_e���'o6���f�[r��x�)��W�����4��4��^������#D"��Xs�*��j��)M����w�5yM��:�B���������!c� 1>��
a�E\>��DV_z6�ec����wd�"]�[u��Y��ys.m>YO&p��Il�.�5�n�v�W�������5a�5K��[����9M�]�K��Z��iK��q���t*�:�V�`�������L�.��3�J�6�M��e��I;I���s��]���T�;6~����dK�F�20���g�r��D��d�T����k9���s4S�t.����H����[�����s��u����Wc��6�9�Vfr<]�t �:��W_Al�](���s�	������i��y�'8�eU���x��Gl����Nc�g(&�*���XVE������fcX����Q����m�(���n����.j\NZ)({T�"����UKP���hY���2���B�	�!�W
�jn��G�������fm�|QYp��t�q������s�?L������������^������g����� *��U�MV�iSZ��V�*��U�J�,���T��eZMk6meJ�*UiSZ�Sj��V�*��U�J�*[m*U�T���[eJ���m�*�*U�T�l�V�R���[eJ���ZT�l�V�R���[eJ���m�*�*U�T�l�V�R�JU����[eJ���m�*�*U�T�l�V�R���[eJ�*U�T�l�V�R���[eJ���m�*�*U�T�l�U�J���m��e5m,�I���[eJ���m�*�*U�T�l�U�J���m�*�*U�T�l�V�J��U�R���m����[e*�)V�J��U�R���m��l�[e(W�?� ��k���o�O�����ZU�m+����������kdI��2� �bI$��$�{s��x�����#r1���b2\�;�����ww������G�x" ��1�#�x���������#����y����[�[k���r�3�'<�>��@G��0D�DDDDb"(1<��.�k���b1���Q�k�Z����9����B
���&  ����C����u����}��Qx��{���A�"#�$��s��z�`�DGr""" �0���	#�5t[DDDA-m����&�&U_�l�� '��/�H����/�`����������Sp��u���^DF#"#���b��kw�Iz����@ A�zAD������v�<�mz��G�@D�DDA>��(��;��cDA"xF�~��y�:s�^:s�z��������������
����������<��H=��9�n�����'�A�F#�]��Ww\�y�$��I&K�u�s�9������r��9s��F#��"v#��Db���\���9��#x��9s���9�E(�Dh�"H ��F�������.����1�c�$E�ww9�q����'p	�$P���D��w\���������;��^����wu���"""1�^"�H"�"6���qx����9�N�DDDb'���;��;�����I���s��;����wwq��x�����������wgu��s���">�"�
�$@G��\II4I�x� �P��H���$� �@� ��Mh�\�9�s��w�����I C��##q����;����??#��9�F#���@I~B-|6�/���.�tzO{��9�swu��wN���9�s��@I��9wu�\�9r�����9s���r��c�����s�����w��������&I2A$Bo}�9�]�s������;��q�I4��,�$��*����} � �����DF$Hx{�8�wwww;����+>|�;��q�w9����U{ww��HI���9�����wN���.��������s�.s����DQF"w�gs���������W�H/}���s���r�m�Q��1��m'�W�I$���;�����#�����H��Q�(�E��h����Dc�� ���>��s�5�Q�ch����s������'v������b/��b0���c����;�yq�;�`��OG8����w�.�w�  ��qA��t�$zs�9�s����������wu�����<"" ������I&K�u��.����;�����ww�<��/�s�9�\�9���;�������9�|rwr��s��wq�u����;s��C���9wq��������}��@��}�;����s��;������u���9���������7�G�;�=;���s��������;�r������.�A$�O�����9��" �";�����:�,	 A$@@$�$�A;�;���ws��w]�	� ~�������s��9�wtD���]��s��\A��u��9�]�s����I+�������w��
��BCe�$��Ioh=���������z��s��s���#����� BHI!^}��F7������@y����^�{�� "^���p^�6�����_g������m�"#m�y����]�;�s�wz�z �B5W�^�������rw~����5eim$�$���P*nUW���(
�����k^$�������<���y���| �Z�~H#� ��w����j�F""
�w�]�~�]�z��X���������j�jo��kym�a�^x���m� 5���x6�DDDADDA-�z�;�y�����Z����D@Djx}����~�������:{U�@#Dy=u���������<�mzMW�^��F�����o�*�c�+5�����'��s��]���>�ww��]�6����j6���s�"-��g�G�n�i���A��������w����~��������w���D$m��  =�=�C��{��w�hj�z��������k�����1�������X��_���Z�6�������k~_��������{������U|�m]M�
��R"1�c�[��Dgx	!����~�����
��hyiq�M������-��H������k�""�@m�J��$�����}q��u�]���k�������xU5�A�"m��m���^��U������_�?���1Q�b��)O��@TE:?3�`������_����)����`l���a��� 080C�����?C��O��_������.��������b��]�x����3t���Wt%���duf�o��}}�*���MODB2�x}��&vV������`U�+-�HM,���;�e�"��������AwO�c������1�����m��Kn��I�����E��k�Z���by,%&
�����*�WZfd)���i�R�-�v�g�*k�:����0����E��������N��,[���k���V�jX�F��ktM�[�U��"�"��O�q���w+���<�0�v���1���8���WFc���b{h�"�&e0Q�
'�uQ��2j�k�t���.�3��V0����<��v>�\���Y����1���j�wo1��=��(>�O�M{��B�R
�tT�)n^p�cD7��#����U����&�;y�	���Oj��W$����f	�f�7	�%=��j�J����@���N:����l���y[�LH�����+�3f5]6t�7l��Yq����8�����b����LA)��E��$S{KI�N*���o�u�%P���Cb[�2.;h��.�v[�!�������n3}�/�(�:���4�%
	ue1yi�8��'Ju.�%��WK��5�"c�����
��]Q$�W%��o&��'�^�:�A��Z�������d8�[]���a���f����]���$�vV�oZ�+>
����=�����h�\r�� ���3��M�n_wCKa����W����G����7�}��kR�kb����s��4]�d;�w����c��{���%s7�J��l3�`�3c[��8�Y.����y��F���w\vK����;��w�F��P�Y|����q�XM�����K^)�.����f��9�"�t�$��=�C������v�_]	��K��)�6�>��'5�jnVU[��r'�6xJ�v�]�VgD����ITk+kTN�:�Y�*����9�����a�*Wmk�{��+g���";:�����h0��*�6����0�,3
��U���6v��j5;���������]n6P�/��^L��gr�]��Bg��</�Q\�'y�X5�bO$��gM����U�V���9���u�.��;y�._q��5'�8�`+����������Z����i����=�~�V
�i�tVi+����UUn���f|�6�v���w,�f��%d�mm�Z3\��<���z���#�c���g�F��YER�k76:'����d�b���X���^#Z�Ur�9r����`U��Up���~�Y���J
i��3;lf�/.��_M�:&%N�n�=�X#]D�.����������z���n�� �K`a�z,�����:8�
��h�������F��v��:��D������,�7_��\�;���5�7;^���q5�z�^���T�'b�������U�b�"�o7w�Y��".���Ie�-�q��i^��Q�[����%�m�@���s��X���g�
�`n]eb�Z�J7�D7Nl�f�3}*���S�a]���|6H����%����q2y�,�C�F�e%uk@Sd5<W/�5c�M�����$&>�^S��wewL� �xt&E��tW3o(��^��+���Zv�� 4��M�R����_Wfb���b��
��a�w�E��0�\�$��w��D��.:�0��u3}����N%����w�N��u�pq!���';x�n	�Se�����e���4�����������/�:��#Y�gigk�������7���:f��y����E�g']�)�.���U�L����*���k��k�jl������q���[��S��r.;�)�f�:��V�v��M�Q.�R����94oeT�T��]��a�.7��	:8���e0���+����z�y7n�sc���m��Y��{����(����6������i��p5N�4j�L��-�lTo�.��O���W�c���e`y��T�����[���M��r��7��v�I�#�����u;�a5�72����I.���������ob�F�`����S��F��\:�A�m�e)�})��z���|OB�������LE^��)b�f5����&X��a-@(��t9��f��{y(��K/��5\�m�hs��F���Gs6���a�T�=�;
��������g�cot�t��63�c=B�b�I^H������3E�������)\]p���'HU���5��FHI�fb��=�/��=P+��d��|�������t4gNou���I��Q������J�w*���0����V����[���c�,�i��gz���H�������+�q�\��>9<����S�<�-4l��b�,��I�Y��sb`n�.�����otK�W+�����]-0ng`\]vm9�ln��,r<������ykw1=�%����x��c�w� sY��P�t��yP�*�YA���W��v��������Z.���z����2�UJ�4����X��l255��;��1^O����wH�L�TK��d��=NfZ��F�FW;t�_>��1���9v�G<�S�R�>�������h���]M��}�k��������|�\d�e^����S�t���V��h����
*��a�snm3)��@���nS\&���{cJ�}|��
�#-6{*yr�Os6��j��RR�Vw5\"�3;���n6�$y�Zu��B�|U�\�\$�^��b�p��':k�80r��a0jU��)����e���3AMj��)�^^n9:�]
f^�^�C`	(�K&��Y�.N��6k���(�g��\{�D"���w�v��2A���yzuBFc�NS�\:S�Vb6Q���++��������z�7��6�q+e���t�����MPH��2u#wV'G7�%y���&P�VrQ�4VNm�������
��Ftp�y!�w�z���E����;ul�V<U�����r�p��o_�+�c��{����9S9�[��5
6�2P��^����'k;E��C@�Jy]��#��������wfj"�����f�S�w����0=]�x����\ZB:{��s�{b�1����sv����gP���
�����.���(
�U��kc�,����yW���{#X�u��E�}��YIZ���q>��+��1i)$:P�l��a��wa�G�[�F��i��S�Q#q��d�|���&�;*.�kzd��F���k�onp������^�+�v�\L�R�P[M�����%������U=`M����*�lc\.�����8a������x0I�r��R�p�v���Z���f�:gs��������T���f=��4��5�jmN���L�����]p�v|
$&�����;l�Z�P5�'����#��u����sz�a����vuN}�sB��������Z���H��wf$�����`�+QPv�8��*�1:�yY�(wn*����G/c7�!74���h�������J*�P�$�����)�����9����V�u��!��%��W5<�S����U�Ge��JmV�!&��_]���v���&����k�Q�+R>h�������r$��d�'�8-S���#�i�,>�w@3P�S�O�0M���`Q�7)��7/M��D�va�x�^����R��e7�UI�����t{�vy^Lt������9W����&�2��f�`���>��b���
mnD^�gI����g+c?4��oeJ��f�M�h���!�!+4���7��3��.�,�Q|�g&F��[k��*��uS���\r�
M����$t6sf��C�aU�n�Z���
(�7k����^r����l��9��50�/�(^>h�nT���W�M��[S��1��E�A1���[��c�;z��
aw�2�N����x��w�4��u�X��� ��������
��%Q�4e Aw���nk��o���e�����[��^d�����Lo]������C���v,V=�a.��N����1��C�ac���na��GLjR����)����wi%����f��J�dMP��W�2�q��=���\e�
'm�3���T�L�m��|R)��n���t7�,#�C�����Cv�n�;���+&�^��]m�;����^��+��r0hj�]m$2�fek�^�n�;A
�d�a��z�qqMZ�E.Av���D��qZu�����D��n�b]�KX�OPX�r5�C����������y����+3�Gxp���U��v[m,�V�l;���a�M����W��V���8�S�W�����o:%�^&sjr5<�Uz�-2�k"�.�k7�,�k��R���(���Z-�R���^�{����e�f���
<�|_;�����_4^��v5mX[n�p�����S����gL�� � ��EoB���T��h8]]<vP����d��vbW�.d;\�v�H�}]4�X�R�������I7��eH�����m
���e�et6���O	xom:\I{{�k��
�@����F�
��S�b�*mmd��zC�yo'[I�������J��v��A7i�C��[S7�I�:
�6ho
�j���3iw�&�qI2������s�@��b���f\=rWK���X-q!�s9h�i�`)���u@&��(#���@r�[���g>�[Q��2_2^P��oe�>�*
O��7���,�k�����y��'Z{��7X��6VJ����U�J��f��2R�e��\�H�.,1
/
����sr*1���7�����e�����+�c����'��OP�����H��(��E����z�8�V�2]�|md.��f�!ED�93�%��P��vj�T��������Z��SlT5{�y��]�i��:2]!z�	v[��Q�`b}�8`;�[a�����r��R�
�]G���������6H�:�}���;r-V����Z�7�r��V�u����Xm�d��������4w*�!o���f��f���Zt���nU�����\������)��M��<�O�u�Xy����z�>I�:%~7,�Q���6R�����
�YJ]����r�!>�� fp���q#��oy�.��h�[1�e����4w.
kS&�#��P3
�=�8x�4�w2n���s
-n���:��}���y�t����!R����U�6k�H�B��uL��t�^�:�8:���u���*K$������X8V�������7�Q���k����p�qn��&�5p���Hn�U���m��aIW^�r�q�s�������vN�v��5l�������?vL<��Ek�����q�c%�j3���S�]s����*���p^7g����e����^HBq���������5}G3 (��Y�_Z��}J9���J�yWy����Y�B��|��I[�F��W��Ip�9���{K|J��r�����R��qh7���X��y"��rv��3{y�`�5��)��SK��d#8U��C�f�7��4�Cc'�Z��sh�����{��7��Q�{��$d53k�.��N����f�Z}n�w{�5��.�Jxv�$b�7f�N�����wy^�vN�sx�k;(����fm+���a\���pv(;Fw.���d�����\&"�el�b���+�I�;�V�������������E�([����E�]������\��Y1i���I���hN�����b��|���$o���wW�-jo���%�����#����P�uXW
Qh�����HYM9�6��[|��hU�AY�z�(�Un'��R�a�`-���'�=7K/6e�:��y��N����EvE2]��mK6
��k�d���2Nh��v����U��R
�����<�e�l[#��@��y��V�+�Kv\0��WG9����^���L���xe,J��a�*r,j�1�cu7�[�a�Z-j��p�,��`����������	�a
VX(�R�\\y(%�+��9%[V�f�����`*;&F�Z7PK��M�7,V�R�`���i����a��r�T5}b�F�(�/5�m �dm�v������0C�C	{�:��;���oTR�p�(�y��5Q3��T^D���D�d�����j���/dtN��C���4�T����i���V���yI[�7����gH�4v�%�gfsr�g����._-���$4vu����z�A.��gmO#�M��.���N��_]U8��R�Ks7q�3Z�r�f�+�����M�m�s������vZ��]c��N*��aU���W�+aF�;�X���W�K�x:U���e�/��c�O��`��'%YWw��s�S)YX����u����JLff�CW!1������Y�,����V��IZ
��{��nQ����k���#	Xk�������sBf�K����`�Y{v/vj�F�#�k6���Y�{�Q��>|�qW���, ���3U'k���^�dY��j��U�3k��.���6+���y���Zdu���&"^�KW8�������e_OA���7(�0WS����u��f�A�
_Y�S�!fn��(�(����Wz�]��.�0vu�l��3�{�����-�"f�u��3S�8}���j+�qNn<�EF���GN�5%l�1:���s%*������t�V1m�1�sW�Nk+:h�v�@E-�f����+�1��G�.�4{V�T�L���� )	�7s��%�0���ov-A\�V���%��y��e����%�������X��5`���u���jV��NU�6�y�R�f�<eM��X�;m�X���4n�8�m�Ws�ep��2�Uh[J���v�s���[��m9��2�"2�����TE��;��q3�[���T�ZY���<�U�j�N�V�������W����
�!Qmua;p�2f�����j����
���/1�����A��O��Pw��^�Y
�?�y���������`��m oD�������jff�\�n�}��vl���rI���������J��6�X�W����"9bg�|��0��}�n���j����7����q�����C�i6l�f1�[e����s���q�y�x�S�����R\�e�pi���LfB�������N�����e&hY�A"28u���S�pyz�������Ia-R��*!���2�l�0�Q��aFL�� �kb�YF-g_-m��S�����BW-c��u���{���2����]��b,���w���B*P��2Os�+)[1�n;+�J��3�2�#���W�$������>�5��w4�� ��#�lV8�f�@jG'eq�v������5{��/C�rP�7�y�/��t��p\�F��,������mM���3�VI\�&\yd%8��e�d,���
=G�/0^-�.��L
��j���U3Mc�-����iE�g5�U���Y+.� R���\%��Nk���xu%��Y��v����1�A�9�|��7�V��e]��������2"�������NAwS
W��VL�4$0���'��;[�9#�[`����*
�-0����%VG��M��U7�K�
�x��'�7�g{X��it(�����{GP���,�Fe���%SV+0u�u��{p.���x�h��k��{)�S]���iB�����&�5}�5�luJ�����8�l��\���gGYn�.����2��b[���j�������O>��"���+�w]�HB��+p�����%G5^f���7�*������h�0��R�K ����<���>���op
�V8}nfL�h
���rhWV��.���5�/�����s����@C�*�L�Ns��e���1�NN�]J�P����A����:z���
�������lc��,nb�+w]Lq	n�p��"��[����}��y�ZBp�Y{b �n�U����F�n�A�����s�����r�:�\��VNwZ�e�������J��_�����d��o�$ �`���]P�W&D��&��]U�6�]
!����i{�p��aE�5��1Sx��:�rEm��N�_C��n>)�[��.U����`��*+���;�9#�0
��7{qr��@qr"��#m��6w],j�>���v�r��G���9����������� ,��CH�����������\�^P,�;b���w�q�M!Mk{�[���=�ZGh_U��q�\���cF-����tot"k[��
���_�����:�J�
s��w���X���������Q_���K�t��������������+8s�k�oucW8�vowb��t�����\�{u	��=*MIk��F""��f��Sv��&d�h+6^F���7�T6�p����e��.��h�L*u�j��=���x�C�:"�w�����/�V�>y�K3���v������m��4l�.�]���N�-���t��q�5�RS���/%kc@f%�@��F�_jU��yf�6�����7�ht��>]Y^�>�>�C��g�Hvf\�w�������P��L��n[�o�R�:�s�����,XTb����Y�i�h����xr�D�����doecEQVuB-������3��v��]z�Q����N��7F��a(����S�����G��
U�������2s�_%����',�f�Yjk5���:�d|�����6`�0:J�5���#U�����{��m�Qk�6]�7�{��z����nL|���H�T�o�zh�n���,�fv�-Y<��\^D���3���t�82S�ww\�P�o�WWU���p@V`�����������I�"
Et@�+b�V�Cw���+��^��c6�yVtZ��gY������FH�TVIg������v�*��6Z�����2<����:�.#)Q��m^s9��a���	u��7}�;�y��"�Q!@������{P������	�V��^RO-I�RC33��6��bc9�'Vc�e]�j��CWw�Q�)�6+��VJ�Spd��o��m}N�g>o���<
]�K�P+3���X���	��Y��w��Nm!p)b�����������v���U�a��]�6b#�*V,��������&��X��!��C1��C�8"�����Nv<j�zj&�d�O6^$���_2a9�{
��\6����i]�S7�f�-�Y9�:z�8�n���:>�X��)}i��8�<;]�l.�`��/��=�2�	���o�N�7 �\������q0NL^�T�t��s��5�7����h��oN������*e�7-����c�7�Q�������$s�z'�e�� k����q������9�IJ�V���3]h�	l��]:$�t��T�����6�\�P�������U]���@����r�*�����:����b10���}�W��8v��;S����Q=z�.jm��N�d�+m�z��l������e��N�X<{2IEf}����zU&�%}�r)��$�i2�u���p��u��S���u�Y�Iv��t~7������W�
��q""����p��K�R�J�A�EX���]����/v���1Z&c-Te%�rLL��������sDM\�j:��Gh});\o+4���j����2u��	�K��V�j��	��������y.T������7����}w��y��L]R����8��"����v�V=�]�	���*�����{�����T3��j���;���mZS��h�����B)��[j��d������%�n�Ok�q�����Bb��sLK��H�/A5"yV3��u�>���.���Ptyvf��}]`'��(q�Q����s����K1v�a����Gb���l�k6����:I��7��u)���3��p���{�g �&�<�Pu��[!�s�����,������=��tWy@^������X:��sO#a�R�x��7p�5G\F�E{��^���uh.bb����A;h.�������[��d�������Z�!_h��W.��Tt�]x-��nX.j$��4k�oM�a���kTo�./�/2���$`�z[������\��]*�<M�����I�8M=�Yx�{�3��vut�A��Yh��R��]o�����v�jd���]Y��xz����n�]B�S��a;�[�FV���.�9����(lvF��
����������N�{Z2^M��W��N��P�XU�F }���
f��F^#���T��v�3�uoS�w���/yg>��t���vU��T��y��V��.O��i2�*������^-��06j�����^17��Q�58iw�Zc�P��%�k��l�������-���i�xg]������r�V���������2
'
��f�.|r�:��o��~�9Y�iz[*�8��x"�`�������]��c�������&�2���&M�U���bg�pY�;Y�r�x���R���"�C;4��������B���V����4�UM:%�4��N��;1j3r�c�����}�y9Y���SJ�\�B�����o�Y4x���{j�yc��6�1Ld�)��|�2�����?L��!�?�?�?�
���? ���S�|x�44����q��\?,������f����*hO���c���d�C�5"H
���U�s�5���X�5�����m����Vz��y�sc���WbP���A������]���O�
��:x��z��9�d>B�3:�����S�\q���������Q��4�!�Wn�*�M=-%gX��x�=������M�_ZTs{w(I���t��Y����+d�fZ(�}i�L�!�T)��������A��h���<;��5��l�p����5A'[�W�Sw]�w�fv>]1>�.v���e1��d�Z��4��l��"�)�������V�o}{�t�1tu�������RuAQ��u7UK�^�azw�;t����h.�������������b�Iz���5G�t�v^�`MY�A������l�Y�����=iZ�A��vN�%���r�	���Y��vq^=H�h�5t�W�j�6pEme�J�n��VN�����L�;��;�Q��mD���,�6��|�n��V�>�r�@�t�[}�]UL��<�{�\��6kQX9y�j�e�z������;���Wu1����f%��n��i�:mA�*���$z�wE��:}y�������<���3S�U9+�w�
���lx��OyJ(�����zE�������E���S8��&%�qvrWZ�R�&^���N�k��C�l���J����p��q3�p�p���}�L�Z���;U��&0����]�zw`��R�c��7�/�/�=�_��7x��9h�o�5\mi����Jous�tl_'+T8�z-r�a�[�Z.��CNj�e�w���l6�U��E��H�����[�t��f�S#|`���d��>d��.���b	k��e�]���Z%�Gjp����m���:��Mk��=�$y���������;����z��7�Ro%�p%��nNN^`�M�Z�xj�����n�+99w:s b��S^���������M��������uK��&b�\90���(PR�$�@���r>��s��/Od������r;�����������;3?CF#��^k_�k��Z��T 5^�(��oq����"4��&/a����Lq�D������k�<��1��3������^�~��ts3<��u�<��:���j�����{�}��W�Jw��Y\�W�����p����+>��M	���������]�����������ap�Mvu��Q��]f$���Od�9�f�G�{����G���lg���Y��3[���m����y�x�b����-���v����|�6��q���N����R�;�k�1Ls�ZB6x����N�-T��0p-\����5moG*.��NVW�~?������
'&7��'��� ti1d�+{����i�U�RW<���x�[�0ggW������V.�8(cl�Q��;��7y/�e`��j�z���5����m�?�bZ���G�����U?]/f�4������h�t��o<^��V���{�+�
���x���UwJ��b*����tw��,�`ro����8�3Wub��
�e�M�y~��nm?�I�Z���r�mg��8]����%�:s�4.��(��So���j�w��*�%0�gs��3,Kg;���S���k��T�.�G!�|v�������{�vM�\���,�����lq�\��v{�Fm�����`9~����&��.����]�x���+j���s/�U��wP�����Y�������]�{FL�`
�/q��0����"�ej�n��{��7�]��{���G��S�}���,Ka�=����-���>����h�eb�i��G
�i5P��a=�������	{a��~.�;��Q=D������'o�T�G^��e&s�N�����S�C�	�'�u���R_�����~x��l�~s�X�y���\����>nV���|#5Y��;���o�J���'��}�7���U��{M~���}	8�8e����da��	Q�6f@���6�zF1p����R����y�=��^�<���h$q�sd�VG�G;#a���[^��V��Z;7�=������5����F���*�wq���r��7��y��.v�{��=Y�B/=�<��5����
��k�m�>���-���^�]3F��?P�]�7+��h���������q��1�\��w0�6�)��ffu?w��j��� ��X>q�^����g�'X��i���9��'�u�t;��k�o=k�k_�1E=~H��g��p�v��BW����^�/�4#��y�(:
�r	Gr��3Koa�[�</�'`���(�b�+<s�� �n��y	�=C\����5�=l�z���������|97��������a��}:|,��,����hAAAAAAA\���UP��TtTAAA!%.8pFFFFAAAAAAAAqqqpU]��U@w`w`UP��TwvwvAUUUE��2A!%HH]PL�wvww����U$���TwvwvU]��U@w`ws�U@w`UP����TwvU]��]��p���UY�wvU]��]������ � � &BJ(�����(,�,���
4���
��`��c4#l� $.���l$��62	$�&@���������J*BJ���&H � 04�Di4�D!i��
Qfa�
�]��� `�@Hzd���znP@���K� � � $
1irA [�Y�e� AA@I$�(�,�330�-0�[��-(�0�.�(01��@L�
��4@�
�X�PYfta���0��� �J���pp�
pa���i�]IRAA�I &H	��2�	A���.������ � �	�(��!�!����.H $�	�	(���P`!�$AAA0�� �� 
�� $,
���t$`i��Ai��a�A%�4���n���� $�
���	�X�nm� hva��v0,3���0hlU
�h��L*H�ci-�J,�,���M����`�1�0��l�$�6�m�A�Y�a�XYa��-4��M��`a�1�`�1��0�
�c�
�cB7(� $���
��Upua�����A�far@I@�$A�X��c1��
�YA�$A�L�IET�]��A� �l���p������ �$��(�����A
h�@1��=���&BJ��tXYRQEQR`�AT��QRQRY�-��lD -� �
.��B�fe� �@!
`Y��B���4H�.@
���������
���`h n���A!a���<.H � 
�6666P��� �!�AdAdA���I]��U@�����
�����.��.��J����������]��U@w`UTn���H���Dff$��I$���*�����������������}�����}��}���}�����}��}�www�}��}��}�����|��www}��}��}��������}��}�www�}��������*���.����������a��<��������/�����*�j.����.���������U���F��AF���J����$��}�������{����p������������(��$[��$�[�����%��	
��Dn��F�wR�@s TUL�]����U3Pw7�����Gp�}�����|k��}�eE@��M�����S suu&��9������D;�28@8��������z=���������������������=������A;;{v�"P6�8i���M���vl��n��`F��f��vm�H�1��J������9��6%��5�$��3fv��O*a,�Q��Z���������i\.�e�B�Qq��G7��$��,�B���OFK�7mj�Hf�Z�h���:=�+Z���z+]5�kXV��x���k������ti��N����F�;��o��!��I<�\��(���{���EM�5c_����R��[ �p�.��=������u�:\L����dnV^����IU���t0���W��=����`9�.o.����_q���F�M0�
:@��Z���Ek���k
������{;{}���F�>6��F:ti����n�m��N�t����UXy���{���+����b�K�axqS�����6����*���6��ky0A�TT�Y����)%�.]����YL�B�O2lF��WD�c�k�����z=��+Z���z+]5�kXV��x���k����N�t���F�:4��f��4���N�:i��n���S��2*��aO�w%����ZEB��US�����q��H�,��P��Rn�����YT;����cn�DN`�BM�W2ePe����pB�Ggg�����k^��MkZ��k^5�kZ�v��l��F�:4���N�:ti����ti�����DQW�����}��T�/1���+�K(�j�2Y�W����a�I���L#e�m��*���42�L#a�3NK%�������������Ae�Y�� \�kZ�������+Z��kZ�������n�t4����vCp�:4���O�6���O���
��������{ A
���#��Un,�d��2eej�ygX(#Zt�,/7Mw$S7��f����)}�f����Nk��C|���G�������Z���k�Z��kZ���k���k^���t���{6���N�:ti��N�t����^(�����JL<�7=O\8a:���]��[y@E�2�F�A�38��-%����53fM����a����F�{�>�)2p[l����rW�F�z8z=��kZ���z+]5�kXV��x���k����1��N�t���F�:4���L6m��f���}�W�}���� �!$��=w/���XI�������[��"��.�Y�XP���S`,b��t��-V[�K�nCK�6f\Y9lf^L\<[�f0�ae����
��kZ�������+Z��kZ�������N�:y�n�t���F�>l��F�>6�����������{`���4f�,M�
��([�i�#X��F���\C/V�zP��B5��.��LAPI��d��0�,��g�z����z��F0��,�M:GZ���Ek���k
������{;{ti���n�:t���{6���N�N�t���~�*<�g�k����yQ
Y����Wb�u��&����i���/n�r6�<�d�j����F^��v�j�S9$����vx��d����$��P�dO\�Z�����R��������3{������������
�����A���f�2q����b���In�����&�`�#���.G����rj�Sk3�*���ef�5US���#��M����|�T,�2��������![�W��%w��6��[�;�VVY��e����Sih��X�%�����*5y��y�2v��	����`	�Cu�56���9�iB��5���k5bWWZU�q�($N����X2G��}�6X���7�[���T���o7l�T����6��H�J������������,%n��JF�Z�����&U����Y��X��6�WoM�����zD��9v5��a�;1�P�����H������K��2��\T��{-
�^����+=��fdC_<'�Sy���)���� �u�6V�^oi��-Wu���`F7�oHr'A�zU�ad����)J�=��oF��3m��3����T��d��5���<T5�
�[���i��	���j]��(��H���sr$��(�6�;+��n��ws�g'��-��.a38�5�f#���v����=J��=2�*�m_j���A����
���~U<p��n�vE�����������"���:�5�Z���kr�!�H�m�O]�`-���"Y���i(la#VQ�A���<~6!���V���������%�����;�W�n��F���c��{�\���
��������J��������������MkA�iS���x�����iY��v���7�^�B��1`�MC�t�Mj��o�M�gW\�v�Je�LC���IR"�D��7g=�5�%�^�p�y\�s*D����m����V\sA����y��9�������)����������r��11����=T��9Z.����YW��Yi��7^,|"��7�
F���-�e:z/F���3�-����R_jm��{��DN�nF"-������u�����@IH�������n���������V�V�k�A�ii���i^��+��Z�����������WUi^���b0b�1�?���w���x�S�74���	��PK��K�������R7�s��<r���c�1�.-o�D��t�����O&��s��HpJ�K�5h�`:���#�#s�z�;����R��W�`��7�0�i<�z��0��k�������]C�[�uoE��m��	���1i5����,���I��{|������pB�(��-W�/xy�zh��6�������P��r����:J�y�f�t5�2����u����3$G#�^s=�}������Rd7�l`����:�f2������zy�~�hU���(����}����p,�-K�(�w�'��}G�����U�`WLoL��.0z�"nv&)L�PS��@wj`e���[tY:Q��j&gHg�������_��;T6o]��q���| B�#+����u
�h�:�����{��Z�e�������FT�wA�k<����X���Tt����^���j�\��}���������z�mo�����OB��*������
�Vh���y����~���W��;�����N[B�-�-s�������])y����PS:�s���w�q��>���+�"��#���k(��+z�fGs���H�-*������n�����x���V�i?e�� 3��������~e;�.����Zj�y�[hD�'��_�V�^��^��n�fC4gT�vX7�V����{s���8�J�ef�rU%��	c_	[N���]���8u^���K;8��vc���XF*�./�0U���m�v�=���o�[�/}�`>��d���]�k��������(�i�#*z=�o5����J� �����C�6�g+~��W�k3���J+	fo�&a���b�$���}(4��
����o���������-�w��s��w��y�S���n2�l��[���L.�8���x�y���m��6�
tyM��r�����V���s*��%m��J�+��w�%o���z1.���R%��j�i����<�{qEz����MKF�20�Uz�lz{�|�����>k��.x�]G�kr������
�rC�i��W �wL�����P�3�S^�q�x�z�]�J�����9O�����C�s�9��%���Q_2��k�|KRfuYJ*��Ku
a�]���������m��)t
l������{R��0���UR$�#�e�Q;���-��ho��@�`�E<���dbfeU��O������0��N���!B0BB�H�!�$���!B;�������A^�ATATAT��A��AT�ATAWw}����|k��������yC�UT��@C�UU;��*�����
�
�
�
��mPPPPPPPP��C�UUTTT�1�y��Th���}:�ws*�*��2���Tn��F���\��c��
��4wUT8uPQ��U��Q�v�U�����W��o�Q�v�1��Q��U1��Sn��mQ�n��eQ����;j�s����j�v���7j��F��T�u�F�Y[w��[�xR��JR�������z+]5�kXV��x���k�R��'�\F;�#�E\F;���v!��08q��H)��`�G1��"c�D\�;	�c��|~�U��N�\��f�
o^��~���z���tI��/�E��u1Sp�=��0\i�e�vd�j��6��;T��w���Z���B���O)����S���!�b]�JQe_�S����]vI�d���k��oy�_��=���g�����k^������kZ���k���k_���v�Q�F:Q���(�F1��@0#�V*�v+�;�c��"f<x�V �v��LV*�i�v+���������k��N��&u���\�H� ��Cx+�����(����_K�������%OU��R5T2��f0����T�a�����
�>��r�����3i�8��3�3h�}��� L��5O9�i�f�t�
:)��||kZ����t���aZ���Z����p�t+��8F:��G�B�tq��"a�@L#�c�X��p�t+#�c�X��p�t+p���b��p�t+�T~�S���?��������7A4��[f�����7e[�� Z!���E��hS�@�����$T�2�����Q�U�����)��p���T�t�[��Q���f����0���
�����P4{!�G�����>||kZ����t���aZ���Z����p�t�Q�0��:C�����
�8t���b�8����`��p�t+p���b��p�t+p���`�p�t+p���~�Q��:���g��C����B�'�We|�^i��]:��/9v���f|C�Y��J�)��_]�����V7!����1`����/	D���U.��v��
Y{���*�4�|��V'��C��*a����x��Yhn�,8���&��}0��4GL:t�G;��q5�k�Z��kZ���k���k_
�Z�W�&�1����p��:��1���@4q��
���V"�#
�#�c���(��<t!��@�Q������8���W�N����y�����A�*4�N�9���]���&md�E2q��T��Y���I-�&��$;Q6$�n��9��O'r�'�����x<�S!�K�����%u��q�I�{��0J�dx�PV�������E�����)���I+���}:X��Gg�E<?#o��kZ�������+Z��kZ������}�G�B�S��V"�#
�C���*q��
����8q��X�a#
�\#�c�X�a#����T�������&�s��w�{{�&��N5��P�cBKVi��%�gq��m�������=u��86�y��%�{9��f�|��wtY�H������<��e�r���z�;��*��TM�i�e��j&nqc�Ck��I,q<;:)�����Z���Ek���k
������|+�k�
�>�p��c�X��p�t���8#�8���Gtq��+1\0���}@4q��"s�.p��J���p�t+#�c�_�
�M�����5����O^��f���s��\�=2x�(�"�~��fY/��$��lo�'��,��
L>W�q��)� �������`�Gt��E���+�u�U��m%�|k/������F�<����62��f+-�9�=4��:#��������Z���Ek���k
������|+�k�_h�G�H{�N*��<t�>�� a������0���b/���<t+�\#�c��b���x�V�#
�#�c�_B���s�yX{���V�.|�0��'����35�rI:�+T��������%���*�D�����zP;�:n�:�U;MS�\�0��k�k��L���p&c�|7�V���n�b��������}5m
���E�nF��?��4�D`���||kZ����t���aZ���Z����p�t+���V�#
�����+�p�t!���i�1��U�8F:��1���8F:��1����
�O��>Q�~�_���%�������K�(^�ii{���K������������I��xv���sW3�o��/XTs#7!�/m����������1��.�3��'��"jq��e*Z�Z^_U�8zvSE<<<:<<>||kZ����t���aZ���Z����p�t+�W��V(�#
�#�c�X��p�t9�0G��VG�@��@0��:��]p��B���W���������*�:��~���3N�����A����wF�QOh������sk�}��4�2]��<�w�Z$��pF���{�$zW81�.�d��M�b1V����,�D�����W�Gb������`�>jo���c��2�	YR%�2��}��.&���m`,V(�'DxZ��z�@NF79�0m�A�2�53/b�:�9nR��+��'�/�2�ku$�������������$�i0���#Q|V>�0T��1��Q����T,���f������d����x��hq�O�[of��S3�����)o6u��5A"��`��i�
���]�������psu�s������l����!���[����b�_�a%KIe	]D��+����J{k`����'yU����H'�w���,K�L�4�
���#�"r��\��C������I�ve���=iF5��{;f����"�&��7&5[�cesQ]}R�)�w�8�����E���"�X�v�k��WjVu��x�RS���Ju'���6�nWh��3$�2R�l��YGXCQ���'��+��Jj�cY�t���lN�Y1�������R�m��Z���,�s�$&C�S�u��[Co;Z������n���V��������{1���������4�0P*������!�� ��'�.��Q��u+*���'}u����8qd�x"���7I��	�!��L��n����n6�4��)%:/C�:Y���Ztng-(�XR���7.�W2�g3�m����;�PxV�����L���2�nwD���M9C���1��[]�t���buwe�x�eutY;�b�K�A�Qt	�"�Q�����$��\;**����^*Jv-9v�\�}����������)h����]v:�Ne�|�B���p���e��hB��)v*y��Hb�N�:�^�t��P����=���#[�����
2��M�<�5d�����������6r��1�w>����w�������"	�	��TeK���G#��y��&��\L�������}���'��Z,�z\Z�Ftw�������~�W����m���kRe^����xI������'��DDDb" ��!��W�V�U����h�1��"1����j��{�	��h=&(�A{SA�04����������:���y�$\z��jo��,����%k.�5f���/�K@SghZ����gK���Z��6��x��k���,��!C�$���93���U1����������:_�k�JI�����{��C:�{��y�@�[7�����wl��e<��s�SU��������������t�c���yc��]�G^���w��#�2eP��{�����R�qP�<^�o|���4hyl�����x�}vL��t���"g��gs����u��fv�t���,��������{��V}nE}ir����qZ�~����=71����7�E%>�HA��3<�I�b�CU�sYs�D��W�{2zIQR��dN�c�����'��	�O�
��e>��������z��� {�Mur�m�_�k#d����y+=���0"������,�����m^g/:�yK,�Oy��e3O�g<9��
���}�s��'�.�+|�������Q�s�M�SI�{,�oz��7I�(�$��%~������={�z�)��m���������77g.����?��&U��X��}�b�+i*?9.��xm���/4��.;��{�^�c-p$;�5�D��B����=n���/p��)�4�����~�*��U�>�Z�J�c���y�J����������Y����%?5��;��J��5h5Y��v���,��O�n��)d��.�o�H����x�\�?_�b���;��D��I3��B��+o]xu���2���:K���(l6���$���<#���m�64���Xt�����T^J�z^����L/��;	�v\�����g#���8/w1Z�����VV�;��������y+��=�d'�H�e���y�l����f��x���(d���wd�T������r+0K^:|A�GVn�I���z�s��0�"	�4r����i\o�M��c�����6�<M
��z�VT��]�:��1`)���Q���9uZ�# ��6�:�^�@j�"ibc�����5����w��?{���V���������:���P���%o��<.��b�����/���*>���g�YX��ilU]o��.6���#6������<H��#Ro*��T������H�>���C=�&��)��x��K]�8V:��]�mv���Jt�j{�����C��z85�����(�����3��������9�������I
�zZ�Ed�A��.n�������B��eP�~�|2�����w���#�����yv�����:u{ZgR����r]E���:�d����|9���M4��?�zz!B���!B4C	$�D!B���������R��K2"!$��*��*��7h7h*�����+���*��2�p��\���}
��<�����c
��
�GuPQ�����ws*�*�*�*�*�s���������p��Gu}�����|8w�}�PS�y��Q���}�p������7X������2���;j��3v�v�*��@C�UU�eQ�v��mPQ�n����y��v���eSn��eSn�1��Q�v��mQ��U;�*�s���;j�s���k*��v���Tk����$�C4$�CC�tBBJS�����kZ����Z���k^��Z����p�t�b����1���8F:��G�B�G��W�� ������_x�8����`��p�t�Q���VG�B�`��
���L
��O*���}��j�����`�>i��cO,��8
���7VwR���coy��5�ivz_Z��K��z��}���7[Zn����t1K����4��~�/s�G�/Q5��_g#t2���*���7x�UJxp�E�a������<|kZ����t���kZ������k�\+]
�0���b��p�t+#�c�X�a#
���V
�#
�\#�c�X�p�t+p���t���������{�F���h�w,4��Rf~���z�J$��xh�{|�����i�Q�g������.���71M������o���w1���N�St�&�)e�%:��\c�pNt�f���93��-�����= ��,F����<|kZ����kZ���ooeq�kZ���V��(a#
������!��#
�\#�c�X+�p�t!����qW
�q��Xa#��<0��:��G�B����`)=y���{��f6���_����"�a�e���6����voBb\z���Sn�l�i��V.��J0���w��T�of�����U:#t_Ir�>���E+R���9�e�Q��:zw���kZ�������kZ�W���|+�k�_h8G�B�W��W�
p��B�@�8F:�8h��:��G�J��`.p�t+p���`��1����"�S����}yY�����0G���n#�%�T"�������Z>96��}d�n���j�^`48>��V����j�-p	y�(������C�V��ML�/�Mg�@��*t,z�]`����������O����Z���Ek���kZ������k_
�EpW�.����Q�1���F:#���1��8F:#���Dq^�^�
h��tzpV���
�#�_Z�*/�������|����������g_T�fn�i����\rmLU�S��@��������q�[��&�}g}��Q��,RAE�����J�H�w�*����x�chv���4�GON����kZ����Z���k^��Z����k����+���pV(�F:#����G:8��0�tG����:8��0p�"��v��"h�"��8+p�tG`�����_�8^g�a��~;�\��qL4�D6c��l;�� ]�%	/-��W�p���Y.l5r�R��T�TX�2��4���)�l�����8�-Ti���C+��{QW2����tdDE�NIG�Q�������x����k�Z��kZ���eq�kZ����\���h��G���GG:8���.�<tq�X��c�8+#�X�a��
�C�DpVF:#���1���~�9�Np9e���z�����f?�D��Q�wr�`v�/���N�B��`[�DbxbVb����W�+���9����9)1��%Me�LW��������u�Z�]����M,�,����J�CE)�O���<|kZ����t���kZ������k�Z��
�0�tG`!�c�8+#�X a��
�C�DpV"���
�\#��C���&�����W���w���nU�W�7�;�a���mj��Y��8�'��v�LK*��E�Y���m�(hR���� 0���&���
��	�I����&j�8���o.�tfm�o0!*���*�CG����G�����kZ����Z���k^��Z����k��+�T�1���GG:8��0�tGb��c�8+L#�X a��
�C�DpV*���
��!��q�������>w>z����YpUD�/-d3�5�U���$�.:6�5�F�`6Z���*�����v�(����5�j�$�����7��fhe�r��4���b,�{v���#wz6��M}�T�}�p�vvS��x�>5�kZ�V�kZ���k�\kZ����tW}{@4q���
�\#�X�a��
�����pW���<tq�Xa��
��DpV���
�\#�_�^�g~�����8C
�����r�����l��+NFC-,x��M�dTT���V��k�:]Km������y����,p%��tb�����,�NG��.7������]i(0c#0r�(L�vQ����\pv:wZ�����h�R�83�����/b$��

���Ic[�����EciR�������8k*�����9XEK�0��Z;�o&e����	X���3k!�b�Z��`%�����[��wk��UU��gVa����d�IP�	���R����[��,')�+2h/U����U$1A/c�6�}V��+;�{EK��������kqrS�F[��Wj9Yq<"n!�F�������B�
�����p���u;o8k��v�Q���P �K��E���^��e��6r�gs�r������&��F,��O���+um��z8��\��Ne�v�CIb�O^�1j����;wq8�Y���k�]���/�an#�:�Y��,�����*DI�k���z����������%�x�M�Z�e�e��*�8����2���rvs=�������Cw�,�������}Yd����vl����`s����������O���cs�ZCwq�S����6�(M1�D*t�r�2M3y�i�f�����PJ�4�������5��*�lg���YWZ�������}}G`�m���W�=�Ox�'R�\�8{y��R��p�
�n����������'w���#8�
�K�����[[�N����qJV�7;��.�}T�%���i��-+��{L��,�*�(��^��^�fNh���{��$���k����T=E5	hUbuM����L�V�l��3��8��2.5y���O���.f�SHcQM�ay�m�j����7Gt�u��e��}������Y�:x�q-*�������J�9����f���x�@ ��^�	������X�b�R���k%v$����(��N��d��k];h�M�)��p����sN����)��#Iud<��=�)��,����Jv��lS9������SW�q=��W%�-���R�9zTq��[�Y����u�v��1G��hh
�W8`�9^����k�]���%������F#+o�k���U�Me����Uk��q���802��v�]��j��~�^�_�|��.9�T-�����fp��]����>$�q�����"���^>�N��Gd�u���T�'a��~!�]��7�eM���g�~�}S��!"�f;/��������.���;o����5e�;o7���V��b�b[����7ZK��W��;��
��b��Xk�Zi�W�;�Nyk�s,]=����-�fyvf�{����\�xd�/�	U�F�'jU�l�~������)l��\�gQ�6�+N���*
yN�*�{7lQb/k�,��O�Th~������Vi[�S@���;�_a�z-�$���X�Ya��W�^�<@\\=�"�4���5�Vp����3�q�wyx�gn�����9������t���o�����L�wgYF�K�}�[���)���21��J���r4
O��������]OW��������>R�xf$�/$q��� �hR{C{wL*����P5m��������K�.���D�K�|�V������J��oD2r��^f wt�ls��i�N��Lw�b�eG{��j�f8�"7I,T���{~�!�{��m�oo���<���rei�-V^�#�x>B�F2���y17r��U���xJu}�i��U-�n����o���g���$�]U���%gU���i6�|�Z�����d��>�2+u��Zoxh��DY~.y�
��������s����}CN
�
st��������v0�g�<;3�{T��X����wjg%��J���������e�rj��x�+6���nRR��q:x�����/{�������f}����+>�#A]wuuw��?F�fG��s/�����`�l���:�K�|5p	8�����A�Y>bY?]l���`+j�W��p�@�J�{>�=��r[�D7(�G�x��MV{��TG"�5:������.;�D�7��S�#�@=�]��QS���
��Ne�D�������qI��-��� f�^�.��s��@�����x���������m�v��y���c+����%����xf��[���y����R�_87��.��f3}�g1�����oJ��m���{��JI���p����@�u�}�+�v����MEt�����X����*}x��WS�x�b��\��Un����?9����n��#��IM�w�c�T��FX8����/(����l�+.m��b��+qS��gH�OU���M��+1}
��B"��I�.Fe����f./!���g��c�V�9�4�}>�:|�!�qB�!!��K��!�fDDUfDDw�DD%��TATATA�t��
��
��
���:��;}��B���(p�����k�����TTh���8�ws*�*�*�*�*�s���������p��GuPP��@@Lc��xF��}�����w2���c*��7X�����s���c7h7h���TT8uPQ��U�mQ�v�U�����W��o�Q��U1�������}��a���L5�Tk��F���u��4wU�mQ�v��mQ��U1��Q����;j�n���c*�v���?L)JR���<|kZ����t���kZ������k�Z��!�=�i����0�tG`��c�8+p�tG`����b'8���`��c�8+#�Xa��
���9�-I�����cx�7��l��Z��c2<�.�dE����s�����D����
��4/0�N�CkU�;�C1+;Z�Vnm�������+f��q�fJ���8|$aa�>�����Z���Ek���kZ������k_
�EpW�����pV"F:#�l1� �����
��DpV8F:#���:8���`)�c�8+L#�X.�Dc�8��.z�c��6I�g��jr���"/ur�	�Y�c7w-�%O2�^#���Y��e\T���������k&a��
Uad��G�

JC��d�R;��6^���@s�����o>b��W���m�a��n���z`��a����;���Z���Ek���kZ������k_
�Eq�0�M"i����Q�1���F:#��G�DpW���8���b�c�8+L#�X�a��
�C�DpWZ|=*�����j� }���� O)��Y��y��kL[f����6/��(���p�5XU#iE���5�Z������7�h2n�[5H[7'd���
���2R�?1W
��"�[�Ul�,Ta��[�!�������S��x�>5�kZ�V�kZ���k�Z���|+���+��1�Q�������1WDc��4F:8��@0�tG�8�:8���1�������@0�tGs�*?���<��fw�~�����;
D�c�*�
����n:��	���4E�H�tfD�K��>B�^�I�i��iADV�Z�YRE��"��k�x*�Il^|@P�dj
V]��X��)�����ii���������g��;)�O���x����k�Z��kZ���eq�kZ���EpW�)�����E21��.F:#��T21��������Er1���F:#����DpV(��
�<����`w���w>C0�xd�����Z��R�������>'/w"g���<"�
sF�����6�6����"kf84�
m�������7��U���A-�TB�a-w�s6�U����C����}������}�'��kZ�������kZ�W���|�tW}����
�#�\D�&��X��c�8+#�X �c�8�����x������DpV���
�zDG�{���s0������\��M�����2��T�K�j������mQh��;�ZE"c�f�d�O�)��j&�<u�+�O�llWh�)m$q�X�`�,��U�����rEfS��G�p���>����k^��MkZ���{+�kZ��V���@r1��
F1�#���F1�h�"dv�`Q21�������\����)��v@�c�� ��a3�|���|���,]9$�N>����������������UU_Guy���J��F�e�)E�r��+Tp��[�T.<1}2dt"Uj���h�&*�)���#�,��Yf����<|kZ����t���kZ������k�k]��r1��(dc��������r1���dc��!�<x���F1��8(k�;T��(�c�~*#��^��k�7����e������S�~��u��AGf��:��(�BdB����C��O\�AGI���[e;���V`r��g
f;
f6��N��w�X�p'�, �mRr�N1��^;���}J���*�N�S��x�>5�kZ�V�kZ���k�\kZ������b��`U21��"dc���;"!��vA#��F1�r1��!��v��+���u�=��>����K"���:.�.����r����\A���@��e��CR�eK�D@@E�3����s2��Y�R"V�b��3w�le
�%/mZ���c�������c����f(�M�����kZ�������kZ�W���|�k��.F1�r1�����v@\�c�"�c�#���`��; �F1������u�hn�������I?!p�W�h��C7�+��GS�A�n���Z��rT=����W^��yo����n���������s����_(�=�����+r�$��X��&���;���-�(�������z3@/�F�%(������oQ�lw`
5�i����|�������Ik�C�}s�fk���w�;��x���C �e��(e���G�)�E���������u�w#���0F	��1���*�`g(��vD��]������6��w�.���\{	:H;�����#S����4��x��a�d�u��qY}b�u.���(��ne��DL���y*����r=-�Y�M�)��[��=�V����p^��\��E�����yt�LE��S,o|�@�{�6��Q����bZv����`�M�����>6m����MV���%C�G#I�������{w�\��E>2C���������1J��.������7���ff���6K;-Trb����8��:��u�z����q.���/�A�>�S�8KAM���~I+�y�;���(c�s�����D[�;�f -��j���6�J�N�N����#�K�������K���m�]smaCi3v�
�s�����Q������s�s�(s��tWj*'3m\o�j<e�e�^2o�t�}:�2l����r�����9�P����F��&����E!��:k���fiW|���X
d�$��S��9���rl������;��Kd%�&��Q+�T,���+���j��&�(�^vT��x��_��u%��������y��\���vngW���Jt6I������-���c�.�)�s3�6��Z]�f����nf>�2�57������N�����[Y�v7���m�3�d`�%��w���5m��t&p���i=�c�9����������c�dV]��Q��0�����,%�5��r#9k]�B���Z����=t�����
����{(�%r��m%1�tjMB9��ej�x���$�\:	��^���f7jm�.���MEl�}�����8qQ�J�N�M��	��Mh���	���3a~�1��F1Ah	�AJ��z\CC1A�01�``���+{�7� |���3C���q�>���*�=
�FQWt�N������7������QQ���uO/��,'���:��{�^�uR�K1�P��2����ccJ+�{�}o���'�u��7�y2R�e��@�[��n�������*t`yy\�w�_MS�<�K3��\C�,��h��lU���S�Tyd���������l��*5��G���3:z������i���������i�t></Q�uq���u��9����t��^T��<Zw^���f�^����MV���yO�a����;�0�Ll_;��1K�N��Oc0��;������V6�!aK
�]!���g�=����J#�{`��Ojt����g�_�/�������3�vWObG`���z�=������;&�1������S��������N���3"��
�"�D��7�x�K���5��$�]��O��{����X���\j���#o=�v78�	�
����x���gd���t��0����<��+r���������D����3���w�;����Z���^c�'�,����O�}R����������M��	�k'6�
��������C��s�;���Z��^�&��s&������H������sG_����q��M��35�� �����4/U�����=��]��3-��n�y�����'����:9�V�B�B��\'.:�+nY�9=�2P�A;����������h�5��##8����rz�{�<�������P{t�[�E�{�h����g`�Z��z��#+��.j����')��p3+u�(���V�q���,_X�8mt<�����4u�������+c��=b��8�����70�����L.��������g>����N�gF{.[���>W��&F�q���KRJ���s�������<+�� {M��� T��a9��j�}�z����V�Qw�$:���Z�����>f����������Q�K�6!7��`��=���{��^x5���}4S�Cy�v`�dY��@�K��Mw�@4�yx����S���r
�
�x��?f%k���)�BTl�j�on/)�IR��yz��[�9��w������U�z����vX��
��,�u-7{������3����t�-#�|�)V
�k��O$���2]�Jl��E�%.t�-��W��v�#V J�L���$�b�@n�9F�L�j%J�e��Q1�������C���a���������>���QB�!!B�!$�]�!Gs2""�2"#�J"!,����
��
��
���PUPUPUPUUTk�����^x��8uP��L5�TTh���4wUUU�ePPPPQ�v�UUUUUUUTh���:�����<��������8uP��UTn��C�U�eP��F��T�1���Th���:���c*�s���;j�*��w�}�+�
s��(�k*�k���k*�k����j�s���;j��2���Tk��F��Tk��F�YT��F���\��c
��t��5���Yd�,�)O����kZ�����kZ�����k_�����H����c�*����U�cp���B1���<8��!�B1�@�c_�t���C�W)e�>�KM���D�����_M4��(�
���n�72��D$��� ��Ll�vh-�t����j��1�c64l�dX�dM5��I3��e���u��
�0�kC���l�tvvS���<|kZ���k\+Z���i\kZ����k��,4�1�`,#�F1����������1F�b#�W���[���w����B���^����t�
3V ��%KkLP�9.���b1���X��]0�h����en�����[�Ko�KM9F�ZK[����1�^<��tI�VH����`-�V��Zk.������Qe�e�h�N���Z���kZ�Z���kJ�Z����k_h#�XF1���c!�+�1F�b$#��`!�?Q�UZ���:����_���6�:��[?[�����g��x�2p��FX5�
5Z*�Kx���D"�|��UO&9�����5)��|��'�X��a[������B0]�wJ���K�����\��&�ch��X�Z#�n��t� ������1�s���a�<=;���+Z���k�kZ���+�kZ���g�x��|��S����(B1��c#�0�`,#�XF1���c��=����9���D4k���@U�4����-l>��)d�/-d_[$�o�[R����V��"��cf]�����^;v'��)Z�y�u)��BR^�6�yL������PAu�,�������������4U��*�.�f�HY��Z>����D9��������<|kZ���k\+Z���i\kZ����k��b�#�F1���c!�B1��c�Nx���c����[9�k3����s�={5^����D�IK%��
]�8���=+�eu3�z�U��'�e��0�-��#������S�z��[D�W[)*��c�����T`hu`�y�A��,hT����V�w
�6_�e����}������)������<O���kZ�
���kZW���|+Z��c��1�}������0�cGx����ca��_�=}C���*~+S,���k*�@��������d����C�P�%i���e�.��b
X�l������V�]e�5,��Y�����<�N����6�Hl2�J1������9�����uui�O���x����kZ��V��kZ�����k�Z��$#�HF1�qW�<`�#�E�v�
�1��cqC�<b$#9<�<��9����~�Zc��V����}�i�����cQ�K-�,\�
�	�W�7��F��
g%9[���6ZqO2���D������f|��Q��Xc��t���Q�X��[R��L#�}�����kZ�����kZ�����k_
���������<x��x��0�c!��1�A�cc�����W�9�U>Z]��{hg�z������um*xI�^9��Yo���G&&[�I�ME)R��n�`l���n�\mD$x�V:�P��lMl+	0�9V�3^�1\8|,�`�M4G��xu��kZ���p�kZ���q�kZ�����F1�0�ca�"B1��ci�b0�c���<x�F1��/�����1rb����s���n�B�of��n�,���2�����z�;(|���B��/F���h)���a�_L���X����)�S[���a�����8l�)���O������kZ���p�kZ���q�kZ�����a�(B1�@�c�#�F1��c!�+�:#�y<~}�:���E�T��g��1W��K�8�+�����X��B�pw�g�'3&b\\�r���[s�)k+q�Nl�F0��f�9��[����W�6���5:S�0��5w�vU�S��VS">����{k��l�������u�p]�><�;����&VP'5X�K]��s���[Y.��w�
���j��J[o]j�gl�����^����wy��3&��Z��5g����������G:I|%-�;d]k��6�M{���N��	������
�1r��wWZ�.�h��N��x]������)L�@�-d��}�!KEY3�Si�Wr������)�nH�y����_`�������
��s���+z���X�yB�nq���@��Oa�@�v��`;z�t:e����u��e�{n�������+�b��,V��Y���s�
�����b
�q7�	�`��p�=w�|�}���c���{�A%�/�.[u���%��mE�����s�������I���I>����w2������.������F�����v������S6�=��2*t���3YS�P�I�)�i�4��3:���=�vRLll<���������g-�*:�t�x��x�uY����ty,#���]n�|6g�wo�B�����0u��b�������&b.��F���^�'�����}YO[�Ji#0l�����j��u,*e�5��S�v��g6qm��{18���l:Al�@�����2v�s(8�
�7���v�Y�N�����X'NL.�wf@j���&���'J��{J�T�K+��{�;�����;����1���2������$wP���{�z���s;���4�]u�`@j��)���skm�26���	��J� y������� �|��yS�0�t��|s.��������%Kq��ge�=%Ttp�.u���3��g�����,���l���Zm`��X3ee�qf����0��Ds{��TDk[���E	�cs�|Y���nR�{�u����E�#H;/{�J�����1�����%j.���X�y�����8G};����K���������	p�j�LD4DpqG��@q�@���_6�����%��FDb2��*�[��)��+��U����]U����
�Z�N��8Nm,���G�������<������\�:k���x:�(������q��	���]���a	M4��t���Eu]B�������|�d+S��RK��������q1Uq{��X�=��k:�xl�������]s.f��������c���gk7%�:���x,y��E�b��s5xV�sU��K��]i��R��;���x:6����>x��;~�z���l��~��O�c�P����z���Y.���E�&W-�z�n�fkK�/9�-C}�N�4���� �Lu��X�;|���o7������.�����x9�}��-@��z�y��Nw��0e6��������.q��OO�g����z66�w��4*3��I�����g!7�eJ�~����h��52>�f��j�F>��~���K���v�E�K3,�.K�<|=��[��\q���x�1��j�%�Btm���6.:Q.��uSKz�,��<V��*����}��J�nV�s9��>���]S����S��������d,��z���W���"�d}�����aD�JX�`���1s)n�=����LON�k+���o�h-j�q{����]W�[^�u�4���g�Q��i����e+/���t���W��>�\Z��
����U�����9a|�>��g�a���-��k��p�1F-xl�n��D����x���<=��|���>�w���z�+��|l���"��u>^������hq��&=�L����/{;�5��9�.��|��]{
�#}[��:��{JN��h��oil�33��c)[C�vb���\&[=�Kk&�� ��31X�&�,|�:L���j�j�}��o7u9�� ��z����6���P����������*�+��y*u���B����%^��c2��j�7���S=�N5�\�X�.���j;^��>�?"id���o#j����mu����;B3%����%������uS>������;a����W5���U���b���f��+�;s�Sy����~�@wY]]8A�el���Sc���R��w��n��\��^��
$���W.�}��5�Vp����GZ+��������������.�?L�ps�����m�~L���������QZ��iR������7��H:���Z��q��%��������J�~q����*lnm�Y.���0*K�5������$F���!B�!�!B�!��K��!�fDDUf��A^�ATATATwA�
��
��
��
������s��}�+�<���:���j�*��@F���
���*�q�@@@@F��TTTTTTTT8uQ����p��
�
����<
�Gw�����C��T8uQ��U;���2�p��\��c��
��4wUUTT�1�F��Tk��C�U�����W��o�Q��U0�mQ��U0�mS
v��mQ����c*��F��Tk��F��Tk��La�Th��5���0��7M������<)K���)O����kZ�����kZ�����k_
���!��8q��"B1�V�p����F1��c�c�?���������l�0b�?�l�H���2�n�Y7e�T�I�Vd���\���/SL�f�je�3�PJ��Uo��R�2+
�a�����(���6_au������������x�>5�kZ����kZ���5�kZ�V���0R�b�#�F1��c�c��0B�b0�c���L��]k�7��sU?'�7�E,4�����1(!"�a��yt p�����f(.�RFK���l���4��da�BK0�g(F]j�(��Z���m���u�NN���w0����Y0i��#����Z���kZ�
���kZW���|+Z��c	�1�b#�F1��c�c�(p���@�c���~�������s�����p�mc6�n
E��[�a���m�i�HR��U�RY{4���mm����(��x@���-%����vZ���q��fA�t������OR��N��G(�0GGe>������kZ���p�kZ���q�kZ�����a�+�>�C�<`�1�����#�HF1�8���7�<8�����`]���jfw�:��o��4z��gd��
��Y*U�Ygv,
���w%�QUm���7)]Y�l����]��*��
m�n���	Wm�=mUi7�*BU��WB���D�F��_�lPww�P��#S�9�����0B==;����kZ���p�kZ���q�kZ�����HF1���c!���xq��>q^c��>�p�������a��v(��*���S���k��n���6�n��TbB�!H����D[YFh��BK�m��]���9w�e)D�/���13O���,X���C,@��{�hfd1,��F�������,V$�(X�R�s
�y�xQeA�t������MkZ���p�kZ���q�kZ�����F1��c�c)�8EHGlb#�!��*p����c��h�����:��	��&�r�2/'�%C�NCKfJw(!&8�8)�S��?o0��&���k���q[��'Cb"uz[vQ��)����, e�2\wV��mU�Wth���%L��j���V�[��"|4z&����x}�'��kZ���k�kZ���+�kZ���{=�p����c��1�b#�F00�p^c��������~+�
}sYY��E�S�<�T'�PF�!]������-����ux����	�-���,��*�m\�q2����21wR����FJZV[��qv<"`!K�r����U���e�U^<L�V9�'��&
,������<|kZ���k\+Z���i\kZ����k�B�`��c�c�8q��#�0�`�#�F1��c��9��Ny��Z���{Ss��q��CN���dpVd4c7�D+�+��A�4D3�p1Q,\
/fTk�C���:;�r�u����[����6�����J�t3
�ZeE���<�z���F�[=���>�����kZ�����kZ�����k_
���!��1��c��>�p���D�c#�1B�`$#��#���7�:����G����m2k�E��
�NPk��aS�l���	)���-:�f�YM��Vr�R/+(��&[��'E�A=�
�����Uf]���r+�6M���a�lV>e�Hp�Y%AG����>'��kZ���k�kZ���+�kZ���|=�p����c�#�a��1F1��1���4�1R�u�����z�y�de��B����X�b�\�W�C������3��������mJ��V{,��eA��-|�Z�h	����Y�1!�"��y`:�`��� ��N��U����n�/Y�Hi���sc��f���.-��Q����+��H��c���,���}v�n����:�'hur��t8Ud��\0���l[V�u�z���h�[��9�C�k�Sx��������Rw^�������\r��&;���(�)n�4���oV�_,���cSE/��e������%|��[Xf�e�<�e�YY�E����2�h��=��$I��is��#'�k�h
K����w=�]���W`��{��|�s�CY�m�6����;6����[g��=I�s�IH
SoR���'C\��+��D;hr�7Sw��q������!�Mc!���WE�V�wc���s�f�V���Oe@%�d��gt�n������H��e����c(�S�����;�f�����mbYwe��wN��N�����D(��Q�@�o5��'MH��7&�u,���jw_Qm�m9���p>e����5K�D1V��U"{:�-7��/�[�k��,R�R����_�^F]�������
j�YRB�����<5���`j�x�u�|��R��6�X�3�n���@�p��;��F:�>�(
x�<}�����;���n��m��{�-MjF�`���l��i_U����+�0�����Ys9q'v�����QQ=�u:)9����o"�P��h������:�4��7�������Q�N��{pp�+��R�g=A�2�B�}��iq�(���l����l��ep���
�w]���n7V��AVe���F��{%fqJ.���1i������`Mr��@�N�z��,�|��\���gqU�Y$^�����N�>�������Y�
��mf���x�R���\���l^Q#]����-�N�e�)�����A�y��W�;�ys�F�73sR��U�B���6��X~z�b�W��fj��.��gm���N��*�t��nTeg`�
�z&\�3����d= `��	��Lu�]wBd+�Mk��%�*������@L
�%:S�H��h���o���Uk����v��M�����J�^��>?����������'���y�L�Oo���\<�`���������2%�B_�{T�/���}V�����=���\6[�S0�}�/)of���e5]�m�j&�}���{�9��|]�b�d�I�����qr�r�=)���r�u�������^~(��wD�b���G�*���K�������&�4����f��+�X��N�"?tY��� V�uI��65e��C�_�U�*�m^:������S��/��G^F�[�&jd�5�{4�/<���yF������*�=}=4l��-����^py����������<��(Xy�v,3p��
��.�M��
�m{��e9%��t��O%����+&;�����I�7"�
��)�S���\��	���4q�onJ�1����k���F4x'��?j�7���%:���[`�5���;����Ix�0�q��r���X��g������i��b��]������To���	o��BM�u��a��\j������������k��[l��7me��%�[6&"���	�����^���c���>�O��;���'���j�3�R<��R�A�]w������������w�T�J��G��	m�j��H�gWOj��
�T5�i����n�%Z�z�t�b��+�+��R�h�7`�N6�\���x��e_]D3a�:}�\��"���()n��`�������|�[��H�����V���z��W��&�e>�����t�\X����3����-�]R�M��������h�"zY�����d�z2�z�k��>vS�Z���+;y����y� P+2W�-����`�UEN����5��u_6�N1��em���Se�_�V=�
��1�;.;��C������o_E[�e�����;���Q��������c��ti�Fz���v���x-V�z�,���d\��\y:��~2��YjE�����q52�����B�R�)����v����������j��v�)��L/&?Sm�\�����$���,`qfq]�J���g{r���n1K3������=�9����s���h|��[i��|��k��y��9�U��������Q{q�X[/@8�:"��<�F��sh4�T�aM�!�o�	c��(n�����E6a4t��2���aR6d�V/�Q�������xh�Q%�j�b�V�v�o�FI��u[��<�U@�8~?���h�O�����BB��!F�I����`�$��������?�
���
��
��
���PUPUPUPU�P��F�������yC�UT�]�@F���
�GuPP��C���
�
�
�
�\���������:�p��
����*��a��<���4w{���T;��:��c*�s���c*��5���0�����
�GuPP��@LcTk��F��T8uQ�n����y��v���eS
v��eSn�0�mQ�v��mQ��U;�*�s���;j�s���k*��v���Tk��La�Tn��n���l��.�R��<<||kXV��x��V��kZ����Z���O��#�F1��c!�B1���8m���OG�����#�F1��
~��g����%�!SFg���X�Q�c,��+r��X��F�:U`�6)^��b�&���W$k)��]�D%qs�'`�$�]��5���V��b�a��*G6*+�P�wF[�h@�d
��v%f��.c.�e���a�9��i����G������kZ��k�kZ���mk]�k�Z���b0�c�c"$#�1F�b,#�XF1�0�ca��v|��@���f`���w ����+l�p���Y����8�Y5b���b��-Q��c���0Vi����J�8�w�*3[tX�0����6�~�	�}��m

d����P"�{���G�uh�Z)BDy�2����t+�m�);�@K�S3p�m�p>iPY��N����aZ���Z�Z���k�Z�EkZ�V�:��4�0�b0�c�p�<{�a���1HF1�Vc�#�a�>*����
���.d,��h
���ff�� �LF��7	n��Uf�cEI���k(������Dn���w&)k��=8��3^eh,V��0Z6�4�b��1�v��/R�T5����^��
'���b��xA%��L4G����;���+Z��k\+Z���{kZ��k_
��{�����0R�b�#�HF1���c!�� p����-�b����h?�o���,*��k"����Q�e��N�.��`��[�)T1h�-�Ww�^fJ�--�NM�����51X��vAe��7&�nP�M�S#%�cv]�C���78xAAB0B=>��y�..IZ���Z�Z���k�Z�EkZ�V�%����O��!�
B1��p���Cx�4�0�`0�c�c#�>���/����h�;�qQOuT�,�FF��HE�l�[���?
�+*�#yG���Vh���YP�(K�qeb������aL#
Ld �z��g3.�l��b��4�}���	.
0��}�>>5�+Z��k\+Z���{kZ��k_
����c!�B1��c)�1�T���)�1R�`$#�����7��9���������g^�u�^��;����Y��*���b���J
���"MTr��@�N�s&]%2'cN��������F�5M��x/�/L��r����K�WV�j*�l�T�S0u��z6M�����}��k^5��kZ����tV���k�{�c�xq���0HF1����G8q��Pc#�<8<x��Ru��,��2x9�qQ��
�sd�2��V�\�J��k/J���5wp[�����9(Gd<TD+w2��+B����JX��oQ��4j�*M4�W��g]l����g�����G������kZ��k�kZ���mk]�k�Z��Ohz=>�LXF1��0R�u!�1���c��xq��B1�8/<x�|W�z3���f����Y4eC��/K`AC+v����(.(/��h���d=��	F�w
�
���D��f�V+-0��3�fn&e��
�]�vT���l��g����>>>5�+Z��k\+Z���{kZ��k_
���0�c�c�#�a�(B1�F�b��c��8q���?E��������>�G=z��9i	��*nkh�X�h�4�WvZ�`��b�(Ve�
�����
�1�4&nL��`]�i��h������K[��t�(7
������@[���p���)��O�����Z���k�����kZ���������z}�B1�P�c	�1F1��1�1HGlb��c�c>u�:?��������_�e��73�um I��i�"��NM�����j�mt�n�5����x��mm�U���y�W����vr"�����VJzj$^r����]�
����L�����|�������pl��5D;�u*����,6�������qovr�����e��8�}(b��	,����fKe��eS�S�U��M<��0 <'
Y�m�*��`|���a�!]!����Y��kY�G��V��%�+^�e�:l��+;��wv]���.^��n@C��p�n����yW>�A����	��i.�1�y��gql��GoG{}�	�c��]d�����!F�����������r�m����	��oe���M��������'9M3}k7��nV�+������`�Z�%!�4=W����8��z�[�zn�if]���+�^���NW�Fs�6�.�F��k���5���e�y�09$�7r���V���p�vKV��l8���:x#���;��b�g4��l]��9(�@D���}��!�������:'	��W2�;�����V9���1����Hu}��@���Y�n��ZW�;z�^Y)v��y���oj4o�]��)a�gr=��b�fS��H�R�j�.��_y[yU��E�
��;���F]Er�n���'�`4T���56+1�=\B��h��;
p]/����p��gas��U�uN���J��',3o�f���K#�3r�I�#5��������`�������ge���-Q����G|�%,e�M��'[�legT[���%��"�������\�7�C��t�;r�S�c����Mko��
g%��2R�x�V���5:��t�6XCNS�C�{�0����\hi9�9���h�����u]�;�T���������sry��<��7�qM���e:�}��&l�z��a�c�������on���y[
^h��cG�NX�v�=&u`W��.��{e�����1��;��	��^���<��z�'�32�l�Fc�!D��F1hh�t6�X�S�|e�6l�}�fj������T���oH��������tz4�b���i������_NSDp�:;=�Q
z
�&I�In����j�WW��K���1W�l4�L��������Z��)|B��}�l��{�����j
>�u~qS�f�Y���L����i|IT�ab�Ogi���m�>
�����q���^(�QP���2t�����'P�y���h�hqS�.,���8����n����V��l�$%iK�R�L/�IW�-�>t �%�;�a����y�[1���/��
58>�^{n������uV�;�s�b����/oD(���~R
�����}�e��{/s2��_1z��Wl����E\c��d�������h��7��L>����g]��u���B�^U(�e�����~j��-��H����)Z�d��0�-B�J��Q�d����v��3�����z���x;4�pdZ^��J&YGf����w��k����]����q�Cf�[���d�����6<��>z_��M��I�~�F�"���^B���h
K�=�S�&N��7���]�k@���&�]�d��6�:��m��u���#~�=��}Y}����[@Tw93M����mh�gH.Y�����<�N�<���Z����G�J���/c����[[]�~��3����E���uG8S=����[=���_�����*���2��3�����C���k��k��V:����EI�)���2rj�$��O������Rx������2������j=��;����J�:���=��F����w��{�1����]�fT�4�[�G�g��F�=kc��-����b�=���i���z�a��p=���}�_e����"�$A�����{5���7f-w$�
��=y����-+.��`����x2��������H����z)�4")������n��k��9��)}������@�z$�i�����Gm8(�4��vMk��/:���5�%�M��q�wm�Oo���J��#���������{��q�{������YBus�J7�!�n1Haf�k}]���4��+�����fo��f3�#��N�?2�z��������6��xjL���e��;�s�����]��yop�T:�&���H�-2���jT��5����cni�I�b�!����X�UZ��VnT�y'�2d����I(��+~quP�y:�d1�r�H�XU���-�<�I:tGO������H�!�aB�#D$�ItB0E�����C�=�?�
���
��
��
���PUPUPUPU�P��F�������yC�UT�]�@F���
�GuPP��C���
�
�
�
�\���������:�p��
����*��a��<���4w{���T;��:��c*�s���c*��5���0�����
�GuPP��@LcTk��F��T8uQ�n����y��v���eS
v��eSn�0�mQ�v�0�mQ�n�;�*�s���;j�s���k*�k����Tk��La�Tn��F����,�e�Ydxx�����kZ��p�kZ����k���|+^�G��8��!����8��!�B1�@�c�#�F1������y�p��=��2~w�����f[�mY�;�%f�8
�����j�<f�P��@��$�����#\l7KT%�*biAmIw��B2YH�d,2��(<U��E�Nrb�f��r���(��	4PafG�����Z���k�����kZ���������z}��1�`��c�c��0XF1��c!��>|G�
B��������h�g���m�y�6$m������d��yR	��
������-GD���o5���K��y����w
eJ:�R����y�*���;s<���T`�#����;���k^5��kZ����tV���k��b���a��1F1�����O���cO8m�� B1�V�}������>^|en�����j{k��;�������4�i�"����R��+e��Y�TrrVg�����6��7A��+�%8n��Nr��FRl'EQ��]Q9��TAK�<(�`�h�N���+XV��x��V��kZ����Z���O�a�	�1a�	�1F1�B1�F1�pxq��$#�G�S�G�I~Q\�����r���M�#]�R����	)a��������X&'�+t2�P(DYb�[G�hX��L��i�]�bD��+.�R��QlI�7����z=l����O�����Z���k�����kZ���������z}��0�`#�8p���D!� �1�T�c����1R�~*�
����}�Z�/�q���VP��N�!e�w�|�K`e0r;#�xE���1<6k��N�2//SX���Z(�[Q��E��	G���y��T5�SdY�T���nL��p���h�6tS���G������kZ��k�kZ���mk]�k�Z��@�c��0F1��0!�0�c�b�1�F�O�
�^s�<%��p���~��0���6��m��bS���m�����U�6�v�4��$!ScNm���dKt��e�D,��*D���5�� A2�Y3	���j�@W���:G{;;;;)�|<||kXV��x��V��kZ����Z���N���Lc��^x���z�z}>�\���@Hi�b�#�a� B1�A�c�~��>�\�u���oy�rG��F5�����e��r���,nF;�����%�q#��*U56���F��Y&���V ����� u��+(@������t�F�c��;�����	�����>g���k
����
���k^���+Z������xq��B1��c,#�F1�B1�������!�����P�z�9���y!�3�0c9C�5Gi�YXU�oo��n�X������5��5v������m��V`y{��c��Sx�M���H�#�I	���^
7����j�V�'qQWHl�6p�����|<||kXV��x��V��kZ����Z���O�XF1��c���<x�!�$#�a�&`�1�B�{8<x����~���v|��'��-zA��MZ8b�6�zJ���F�y�.�%E<�x-O]��#!i��;;�Z�T��J������T�p%Ud-��U1v�9�����lL�G���p�p��)��x�����kZ��p�kZ����k���|+^�p�cF1��1�V�`�#�HF1�0�c!�+�1y�f�A��0����qD2W�,e��4*��-��� �M��/xq��]2V����G�n��@v�����}X.���������Et,�j���/x}�+Vq�Z��7y�>�c��Z
}��;��� m�H��q7��l����cd9���<A�����J���I�K��Tf��7DpO�Q�!�e��Y3l��_������y��}��A��=�����m���do�3������^-�G���u�&�����t��e�����z������|QU&-x��7���5���(]r�DS��"�����:R���d�6��O��*��Gs��@�E���h\|���w&t����b	g�f����	T&u/^�g-�A���&�����,P.���kU������\;|X��/.�
83�f0�����N;����L�6�l��:�t��T��+��k�Nm��0�oOs�"���k%b�4@Lv�T�+36�e;�w�e�C� ��8�[�����������P�X��|���Q�������:�"cY��u������]���<�#'2AJt���gB��o*omA���'��`����]�@���������k)'|��%�^�Cc����x���5�^,�/P�e�\�C�J�:eb��v�[���������j���#�y���.����vx ���$:,l�����U����;K��]�^���Uh6�YrBM�F�r���
y:��[g._^���T�B����o!��r��;/��D��Wm��M��RZ�Hq�!�]��p'/V�GMn��/&�6�|ON������D��|��6*�u�s|��)�[���G;!c��d����Y�`w,���i�VBB���9l��]����l<�vN�6od������R��2eef��	e��9u>�S���f�� f�����U�TonG.8�Km�!�4�rw_Kn��*�t�9�*�|Wd���=6��`Y3z�v�R�����T�*���[���6]v���q�y�9K�C��_
���"n����(y���g2����}��7�B'�C
�G`&��bb��	=�/0�38!��/�%=1sC���"`p0:t�Z0G�V& �N�y���W����#�����WWM����j�+���jgl:��q�K�9 E��Ovwa���������g��E���R/R�(u��di�}A�NX����n?0Xx�9�u%�����E_�E�_;��n���(���c���;���v>�/%�x;qKc����v�u�{pR�]�'!�gk���:l1�d�<�����c5����#dy*�A�d8+�y@-2g�Y:0�{�<�S����m����N��]d���vt�)���	�C�[���C�o�����jr����4VTK=�m�N�1y���h���V��cn3��noQo��mr���"�$��������
��%��/�,�Zi�8�����z��zc�� �&?r���^�{�����)#��R��e�^0g��n����Z
��o|�����\Wo^vf��Nmy�WW3��������Ja����K�w��~l�y���	OvNnnH�!i����
����
�2���w;(KSy�;�-
2���;C+7Q:�[	��xF������fGlL-t�w2��Ez�������,Z�g!�R��c�>�3/��U%�w���?��a�X���p������������A���{�5�;&��c��;�(���X���q6�h�Warx��}������X�V���u��|�>�ZY��w_n;4�x��������&m�+�����Stj��d�����L'j�����4�[cu�x������.Wk�e3�^=Av�l�j�������T
+dg��B/U�	��^$1C1��ImB�����^��=�V��-�A��5�&���??t����7}{g������
���~���v���r���Od{T9��L
�u;_m��Cb�"�VM�����������&�.������{Re�fq��\��z����g���^r����n�a<gg��s�g&xyz�P�^�}�����N,�R��gv]�q��9�J����.��Ph�Uv,o�Z�gN��7tL�2����,~��|)�O��������q�����TW�v�_5���`��SKy
���`������f����1Y����l�Uk���0MM��[��8pR�{�92������i{y�38r(��:z}<<<:t��D!!BB�H��I.�F����y�����A^�ATATATwA�
��
��
��
���:��;}��B���(p���mS
v�U;��*���8��7j�*�*�*�*��@@@@@@@C�UUUTT8uQ��y��P������U�j��7M��\��c�����s���7wh7h���TT8uPS�U�mQ�v�Tn�����^xk��yF�YT�]�F�YT��L5�Tk��L5�Tn��F��
�\��5���\��7X����4wU�mSn���Q�v�2�+,��r����������k^5�kZ��kX���Z���O�a��0F1��1�R�b�c�x���B1��Q~��{�`���;�nW���s* f\zje�n�x"4
�fAS��\dQ�L�	
��y��.��x�5.���f��e�F�m+��ej�**^���Q�k�}�!=�vtS��x������������xV��kZ��k_
���#�!�B1��c��0R�`��c����0F1�B1�|P��������}y�f��F�i��mZ�Vd��	�����	������5��q��lP���Z!TI�b�E����aFe�N����#,X4���*��<�9��/ 1�����|��np�i��`�N�����<|kZ��kZ��kZ��������z}��0F1�B1�R�b�c�����0�c�bB1����������@�tTw-���r��fA��8�U�x.I�����.l��E��b�'u,J�X��U�ML�]�1oJ���X���(���k2��R\my�8�n�>AZa��zzzw��y�w�u��k���k^�k��+Z������#�a�+�:D��Lc�c�#��<8���c�#�QW���;����[��,��?N<��a�x,f���}j�9b��{:��tk7n�G�+A@��br��`���l����U�;��V���5�l=�@��+tX�Y��&	�\�������������������k^5�kZ��kX���Z���O�!�!�0F1����#�D�CLc�c�c�c���^���]���|�=��`�N�KLm�s\D���dSIwYW�C�4;E�Cr���b	�"�!�,��t�	�."�B��^�V]Le��
�0H�E=���{(*��s�'���}�������������k^5�kZ��kX���Z���O�!�!�>qx������C�<`�c�`B1�<x�_���:��'�o�\��o�}o�H��`�"��2��o7P-X^$��������E�a�b�B��/�h38W�*���-U���k1��EXF��}uypP�B���A'����������<|kZ��kZ��kZ��������z}��1HF1�B1�HF1�������c�bB1�F�~���z��]?Q�j�8G��f��
�i�Cw,����&����X�m�"���,e3�$��=j\���
��(,lh��ff9OX�(�[�m�kco~I��R����M:��S���������<|kZ��kZ��kZ��������z}��0F1������>�'<x�a��0HF1�B1��J*�Y>����:����|��
������~�nU��YX�`���������@��[��t�EX\�lr<nVyF���V*U��iM+�V�[uj��P�9���C�=��������������k^5�kZ��kX���Z���O��}����O�f��b�c�c�1F1�B1��s��?W�������������'S�O$�����,��s�L8^[�OE�����*IF��ZNYM���8R�������-_Tf
�p����K
��\�t'��GE:)��x������������xV��kZ��k_
��3���c��p���B�b��`@!���p���HF1��0!�
}�����|���������������P��2@0�;��I��%��z��D&nS6�V/(�#�6��Qh��E��	j*6�o�1���]���e�;t��E��,���9��#=�Y�U�GTc���w���`����z�#�A��7)Q����qmM-�qKo�<0�.����?.�y$=�u}rGo�*��	��4����M$�����:w5M�%`�t���
���OL�a�
�iVu���v��r�U������Ui�mXo�a����u�e�^���#h�s�s(*���o����'�eu��F7}k]��|N�����m�*�����*�8�3�/�����f�tw
8�v�uo ��%�����z��/�L�qn����E�nj\�#�u.�X���^�u���-.4N	�/��}����c�8��Q�=������}��Y��*}����f�R�.vV�o9���K��\D���-}k�6�Y�6�"r�\����Mu������o�_WQ�`M�g%�]��
X�Xa��e�k�y��\u�_&��b���U�;�������T����y?�U��vK���w��b�Sp�e�Wou_jC5s�&��e��W]���rK.�f��u�Wc��k��>a"VDBLS-�w�
q�-K|��i*������9Z���N�R������#�#�d�]|��"������s�����l��_	|�J�R�����14d\���R�>���-.�3r�����K��6M�'A]�N���a&s3!��{���x;���el]&n�}��\�(1�R�S�s������SKG���&�_L�O>^s�Ux�,S�����c;��>]�!,Q�G���h�`�]�������a��(���n���^<k�TV����������op�$��"�������rxE��Pu�c\����m�'�1T����;S�����o�@������vCGT3o.�����M=a�`�����	��eM ��u����KD���4�bH���Z��an����fE�dm��y��}Y[6�j�D&5������[n��&�;0����!���!�	��S�&�<+^�G����m6V���H���@��*���Uk�o`+yj�-�p��n�5}g�������s������H���;���S�X��5�r*�{*��X*��Fz����m���[>�������GZ�|��I�{(ae�So����y��o����P[�	����l�k�����q���k>w-i��[�FS����������	X�.ia�o��d�^[/�Wc����P�L�p��|n���[ Ea��f��ga�5��F{���w�m���y��+LK+:d��Kd�k�E%�K�c�E�������������#�QOb�����B�lf���yN������v��i�Q�Y�Vk�3��o�{�g%��������'X��D����KRQ�$[DV��Co}zT���#���X��/BN��8G
5lt������������s�Y��+�.S[�=�����U>:���]�3���Oxk.��7��8����;��k�g��2}����.���GX��i��g�f��yY��6�z��s�� /.F����7"��?L���~�^���{O�T�X�mo
��Px�>r�K��G���a�}X<���x��������./������3��\t�S�U��+�m����
�N�[��AE��7��������^����Q{����!�^�K��pe�|��(�^���v������W7�V9����w���W�_.w���]R����)�];�c��:\`*����w�����ZOi��'�v���z�g����c�,|s��n�9;�$4fz�C�Zv�ecG�N3/�S��<�����6�����W0z���Bx��0�W�}���G�z�3�]�	�2KS����+G3\��*h��t�� �j�
�}O/�ij�s��h�\t������x������������*�����g.G��{�_.#G�C0r��To���1��@��s�r�/c������7������n\E������B<R<5|�G^E�#d�����b���ec���H���]�[�e��V ��/+�w!<Vv�g#������9�qgY��E�>��������vR������@���R������v�3���BI��c����������\�\e'�D�)F@��2����c �?$G������I:tBB�!!D�'Jz!Z����Y�����*��*��*��>��ATATATA�T8uQ�v����y��P��C������4wUUTT8pQ�n�UUUU;��*�*�*�*�*�*�*����:��p��]���<
�����G���Tn��F�YT�1�C�U�mSn��n�PPP��@LcTk��F��T8uSn����y��v���eS
v��eSn�0�mQ�v�0�mQ�n�;�*�s���k*�s���c*�k����Tk��La�Tn��F�[�xR���:)Ox����Z���
���k]�k�Z��F1��>��<x�!�	�0a��G�<`#��8����@��]s�g[����a�5�=������n����N���LA������yF��"�0~�K�pS�Z�!�r+Fn]����.�4�Wl��cD�op�eA��N�h����w��_x����Z���
���k]�k�Z��HF1�#���l�}�Nx���1HF1��1��c�E�
�\�o>}M���2� ���Q����nd��f��A�
2�R�2b�
X�-�7p����BT7�Q�
f���+�w����.�n�s${��g�y�9�
(�0�#�������>5�x���k���cZ�EkZ�V�>��c0�c�bB1�F1��;6���n��P�c�U~���_Z�>��5<���s���ECwm���� z/)x���j#�0�E��aj����$��-���x�L�����uLb�w�i��8�����9rP�0G��y�w��y'y������xV��kZ��k_
��f��vm��f��vm��f��vm��f��vm��f��s�"�W;�K���R�����"�/
���=���	�f��`Vcn+`C�"��H���)+/K���Rb���������6��E�zB(DlUSyD�o�..4�8��>>>>>0���k���k^�k��+Z������n�l�n��v��#���oF1��;6���n��k�(�W��=����������9����`��l����^��C�(sC�
.'R����f�����i��$���V;��R��ux���a��2�h�4��Tm_�D�#���w��y�I�u�k���k^�k��+Z������c��c�n��6���n���c�F1��n��v�����Ut�g��~����I����j���qAh+6����r�<�e�V�N����u{j���&�:����6�A�����Y���t��M6K3T���5~!FFlp��������������k^5�kZ��kX���Z���N��v���n��v�f;v���n��v���o�#���o�~��|�����\������}�%I1�d���5jK����-��2��i�1!x�(�X�����&�I�
Rn��z������Lk��*��x�}�*l�AFi�4����y�w���|kZ��kZ��kZ��������zvm��f��c��<vm��f��vm��f��vm��f��f��~��~K�~o���>�*�P/����-�����X���Y��kbD���:�VE�jeJ���M��Xw6��I�QR*����H���x"��������i�>�������<|kZ��kZ��kZ��������zhB1���v���l!�f��vm��f��vm��f��~*��n���u��Ro��z��{�z�y����6n�����(���lM!����J�t,�����g`���)X2����3Y��=YSo-���Sv���J�oG����O���������kZ���Z���k���|+^��v���n��v���n���c�n��6��XF1��n�������^��Q����4�5J�'^�b;�1�6���y������r�+�7"����v�U�-�����n�W���V�ii�����
�
f���?A������C���0���;������_�>�j�?���O`h/�����&����+��q��������`����?�������<t�Q
�~�����4� ��t�Q���� ��7�p�S�~���H~g���w��A��=?�:D������H� �0���@�?��	��q�j!� �
��Q�h?�b��""��(	��(	�"�t�p"������~��C�	�O�������8���m���?�a����;hi��c������{D�T\�1\�}����E���n:Ajl=����Q�A~�}pAQ�������O�0�?��f �����G�~_�DDS������==����L>�?�����)��h�p�ip�
�~�U�����������1��}������������
� ��e��*"�~�G�?C���*�����N��?�����v�}��04����)�����_��`zh
���;��f���4��C��'�p�O�3������7����������*"��
&���4 a������=~g��
DTE?��UDS`�;qR�\=
8�}
�b��?�'B��������P��OB��N�EO�b�t�X�G�}���g����:���I�t4b��m���Q��P��"(��� ~t��g���>����D����DS�����������|E�A�@���{���?���_�k��S���~����Nc�����Ow����}��{�z�����p���ow^��DS����6��C�\�C�����)AAT?����8�?0� :A�O����@TE6��
'�z_�v*����a��>�`z��������&���	����pG��4���1������Y�ffiv?�
�9��DS�^����j����"�_����~��P_������~�����333��$E�*�U��}������c����l1��b'���e5� �`����.��k��������@�������t��@�A���>�J����D�R�%*�Q$U*I!P*�TT�B(��[��@$H�$����HEB��*J�UR��)���Z�T�@�*BJER�)JT�Q\=s��@�
Eo`:;j73��R^��PQTww�h*�:����|
�Q<��*Q��*A�UQAT�D�
�EER�)$JQJH)DR���
�)T��j@��` @Q
PU��l�D���0`�5T)*	
M��z�U��w}g���di�������@��(�P(U{�*T!�G��]���!@(7�	kZ)*P�RP��HEU!����R��T�)xx��J��A^��@(��JI@��A*��`���(��UJP��P�w��H��C��*�^:�A ��JU]��)(J�J	�UJUyU%R!��I��IT��PT���U%)S��=@�$�����
�IUIHV�oJ�J���JpB�@�;�>�O|�S�U*�4&� ��	��@
�����	*�Q���ed���4
O�E)��UF=�F11��i����J�S�#M22m!����4���m!	��B��O�� ��=ODeP �*d�d�@���}�m�������ko�U�z\&C/�G�]H��.Q'��~V||?>����Fk�-)��j��H`�aHOA�qx�3(���!+BX��I�&!&��	w�Q��A<U�D517~z�����5����(���d��c�A �|~n�C�t��m��t��U�.@�Bim�eY 
�B�1}J�bYVUX�$����)�f�Q���m��$��4���@���K�~���~���Y/���]�������C�"P�
%��C��}��=.}�k�}�����t����G[}�m�Z��[^�e#Q�l�~n����X����g��H��G�?���:��n&Q��E�b�1[�o+�R���#(�l�F+�(�~R>�b;#����f�������g����|������t�(������_T}�>��~P�R?������G�#�EE�Q`�Q~�b6G���2:FEz�j;�H��r8�+&U�U�f�������*Z���KhFm��Z1��m���h�J"��d�\��k�������ML�h�j��F�I�f�)�ke�������M��V�W�v�F���v��Jwj��a���6I�2+L���)Y4dt��4Q�c5��%���r�t�3+��"��P��3Rw](	����0���
����!�����%$�o���o�)x���$�2���'M�f��&�1 "d�e�L"��D��JR&��M������e1�w�v�'7C$2�d&d�,�Cs��$f4��Rl���M�I�Z�"�I
��FI&�e!�������$�!�Hi�!0a���4I�awk��N��4d�L)�I��4��0�fRYD���D�I4L���DdDH�I�J�����L��rd�B&I"H��DR��3I�BfRd����6i1I	�J&�����k�&�e����B�3E)�h����fYL�bP(��,�E&PH�`�����&0�D0�Y�@L�)��	FeI#dIDf��HJ2 �c1L%�93&AW:I��LbJ$H�!�L�
�vDM��`D�����,S&54�J�\��(�4�B2�0���#���J������J�M4`�dA#E�+M%����3QJYs���lTd�+���&��FF�d�L�[L��#�$"I��6M�+4��1Y��$\��1�1�L��7.�HX)��i��2��dd�$�D�JF��4�H�L��1�$��L�dD���2K��Ida2&H�&2��M�H�2��0H�c)����1"hR#�$������t��)��dd���BL0�"6D�AI��%�c&S$���$)��*�R��Il�%.���5.n!)�(6"]���wt$(���#2e"Qfd��D�L��st�!!#M13I�Q�Q��I��+�p��LI�N]����$�H��r)�L
4� MAJ)1B�d�Bd�B�(
!H)����s�r�����3A���D��%&�����I#�C"3"�e���I$us�0���)�!M$��\I6%�n��&$��4�����LSLi��@�L(DQ())3DL�IF1�v��`�'ut�R��7L��JY4��1)�\�L&Y!!�"4K���b1Fb"X�a�L1�C")!�HcL����2N��)(%(�H����������&4�2P���J$�IFe��$a�$�&(���%wnh���d;����d�J4U��5"I&�w:��L�f4�X�S&,�2]�u������&mL�u��bn��R���s��2Tn�m�$�d�1i$�wnT�J2�����D�JfR���D�$�2�&H!��L)	�M RS&2\�I��E��D�	H���X�������FI�bDb��IDh����#L��)��81�s}���o������������OOOOOOOOZ�$h�(���"5m21�QL�I"�%L����4Ri6D2RY4j,f[JS*M�T�-4�%�I�h��,T��QQQ�,����6&����y�wwwx��X�vJ�K%�j*-&�*MI���Z(�h�jK&����[%F�Y66R���lY���RT�h�Z4ZL�%F���fTV�I��E�h�X�h�jM�*Yh�%��i+b�Y-�S6��X�T�%e5��T���cTY5b��%I�YJ�i+�Q����kcm�S4V�ZM�[3S*�m&����k&�M���\�%�Q�f��YMF��eL����Z�E&�ci�l�%RjMF�)cZ6�v�L���d��cFe%%F�X�)�&��2,���k�7v��K"`w]&��d(��nD���,�3-!&d�A
�i2iwn��t�1�L���hE��2b��e��P�&��5��i��f���EH�1�u�\�53d�	�b,��*e+��A��L��2b�If�l��L�Z6B��Jl�#DcF,�F�3F1Q21cF�)43i�b�Q�,���bL�1

��H�)&��fY)wn%1$�,jf&m%%3$�Q$�&��&f���d��d�e�Q7uq1�)�I�M�R�Rhf$��!F(����i,���6f$��%(�K��cL��������aRPX����7e3k�rh�RRk��wvK�����IM(���W73�\Lc%J$�3��Wwi�f]�\JJ(���)���2���������jE-���,�����&���]��X�4���Qh�&6K$YLcLe2�i��P���JR���Mc!��)�����7,�$�,Q�RRd��T��S�[z�����_�������X���e%`��Z,��5��lR��e*(���&�$i,�l�%��K����RL�K&��cl�D�ci1l�c2��)d�6M�eJ�Rj((���d����m��DQ���j)(�d�SL�Y*(��)���ES
&�R��6*-�e,�,j�I61�,kI�je�4kE�l��k3L���Ib�ccE�IL�i*iMcQ�cX�l����L�,lY6D��d��c3R�J�i$��Q�d����kSi1E�fm,��$���1T�M�&����"K6�L�&�TQ�l�(�4��l��5IF�dY�$�hLj����&�cM�$�)#�M&�Jf$�$� 2f$L��M!�$	I��A&SF!	���JL���0�Q��!	h�D����$&Q���3 �1A

Q�*�A!��e3))��F*L���JH�

Q��"Be$�f�4��lI3�1����Rdf�A��I4jLP�F4�4&
1�� ��]vf��1D�$�l�9sF2E7up��S"e�"Y(�S1��4�e��Wu����.����1��,��s)���1���39rH�(�����R0���,�%�DlRQ4!(��h�4�����&-(�H�fI-	Q�$Qd���4��4QFL�I&���e���
���6�a#Q���h�b4h�i"��h����%H`�J��lfb��Eb���"�X��b1F�m$cI��U���-&5�M�����-�+&���l%cF��kh�6�b���V��Q�lX���s2����H�FL$��v���I�n��L0��%22Q��;�n�MJ%"Q��%)7���m�F�*6���$V��-E���-�F�h�QV-X���QZ�Z6���E�6-�b�U]��lV�T�Q���Z5������d^�s;�]�I��4�[�����+�d�SSE��L�`Bd�9�u��B#0�eE�t���ew]E3wV�Z�Z�[j6�j����QUZ��������������K��s1/F�i�hr�'�]�e�e�6���J$������2&S��3�����������&���$���H�q
4�+�������m����fn��=6������$J	$F��G:0���c(�H��d23TI�"bJh���T�E,��-�,��G�K�U�<��:F��31
=#�Gd}G���<Nr��U�������T��EE�jF#�A��:G��*<�tyG�G�����iI�|�_��}���]���w��j���:K��/b�6���������$n?j��j�}mm��Z���6*
L�5j�Z�mm�Z"�C
"H��QQj��lc	j���cZ��c�@Q�h����b�j�+QD��(���	����h�@�`4b��c�5kn�&&d�Db�Q��c����D[	F�34X�#���$�TbH������c�l`�RRc��1@d�IA�Z��@�P�1��I(�2km��2���#F����J0kZ��c�L�cF�QP�����*(5Q�3I���F��U�A���*P2h�*5%4cml��HQ`���0�F�c�a[-�t))�F��2!�������4l&1Lcc6e�#�[&)6�#D3���Qc��k4����Y(K��kZ��T�&�4he!cDd-m���%�K@3F4AF1��"�
�,F�EI�-�*�$ZB�1��I��"1��lUa���Q�"2i1��X�
A�F1�kc`��,%�d�6CF,%�5V��$1IX������Q��b���"���K��F#���b����R�F�Tc�[%�!QB���%���QF��(� m�I�"��E�c����6f��`�6$�(�%F5��`��b-H53a6
����[c�K&F6�c�5k`62`��h�4c�Q�F��6��EL��
)4b4�&��F)1�[}]m�����jG�U�_�Y�������1��F��~���B6F��$qK����������������};��;�7��:G�G���~�y�>/����LK�U����BS����~�S�y8��W����
r�|~z���%���>D���0���v5|m�|!g���L�=���Dr1���$2�<"�J/:��^x�d�?^���qT��Jm����)
v��?7�#�4���S�����,c5�������4�3!�=����=��I�=�2���G&���5�H�������f�oS��uY��i�$���C����Z]�rMk�4�pr��>��=���G
�Z�hq�e"���o�����V�D���^��l�s�7=6B1��=+��D��i����������!8sy��x��q�$�
S�,���b�9���vY{�����[�����_�^�eN[�0��FGv;�z��`��=��:b�n��c� ��h�N�Ufj������U�����d�����+8��;��#,����R���F���K���e]m���=���nl�{�m�%��},NM����~��=�]���z�o�lO��}��=��{9�>{���f���s�cQ�y��n{;��hY<rK�z��?;r
l��X�����lY��
O(���m��c>����"���sz�9y(�g��M��B��oL��2�oks�����e�|���������E���G���}2��*��[�xlY��`�fy�w)���It��s���P���k��}�z��hfSin�yE��b)IHn�%��j������/�;VOj��vA'8�Ig���)�f��-I���	�U�MG�r9*g��m���61��I�S�zjC���<��}<\�4�c�P�9�m�1��Yi���)]��C�=��oQ�z�L��^�[�p�t4,mJ�3�&/ta��I�����#���d��y���b��\�l��.^��L8{���]o�����T�Z��1B���o�]��:Eh��3�fVNdF�g`�p&9�zA7�HW
�N������z���������1�/]�K;/[sL������}�[�lo<�K�����=�<Z���% ��
�\+�����DF�����3��Z��-�����X:��t�q���'�U'{6���W�x�z=p�WfDo���u���H:g`<m���	�V9jl��G}:�OCw���!9���Rb�U����KwX�f8d5{�n��uE��\N�8q�
��&
��e>j�z�W��XV�5��\���N�7����;�M���#:��O���&*�wQ2{)�p������zA�R����V7hv-� �W6�o��$���a�	����4e��������@\���B���V�[�D���!�t/gd�E�M*���������9�xb��Z5�xr;�{�(��)���g9�B���](�vI�6��{��m�3��1�k���Fe�>
���t�x����;`��9s&��
MT��/�GO�����:6��y�M��.���[�:�f�
s{�.�!�=�L�q~����Ka�P��t��Y��Y_�������T�<x�5�������=w{��-�zu\6]G��d
T^�8�v��h�h�g2����m��I��hL���!�y�O�(��Y4]������2X������3yi�E��5-�G�m3T$.[��d�M�����}��r�M�}�����1	U�7�%nj3����a~�g�`���;E���z�z�%)�a���Ub���ui4�Dl�%��+�����wf'w�c��(�|2�nC���������fW��L�s5�o���F�d���{>��=&����nzv��r�:���������a��������V{'b������9{!��Xe��2���+2��9�n�r����]+-�7\��� ��i�w����
m��g<=��0��/���M69|�_)�$��zi�N9r=m^�5
�M`��/�R�^-`���7�����4�9��_<�������6:_F���].���;R4W;��\]���"+������H����vwY����3"o��7���~���z7%�yfq��u�l��ME����B30��(YHWk�k��`.�t�Pw�������ps�5{go��kj�����y|�o���5�������(���5{~#.9�!b^c����vy��W�������e�UV��%�Q���\���N��U��t/��7]����I��U��uvQq��u��tJ��u�b'/�>7��zz��
�6�x�s�Y����v������}83����Mw%j|��������o�������n$��+�Z�����OWf7�������
Rv� ����G��h�2��o���l/�s���et�.U�T�*�qT��l,[s���>��TMz7�cm�=�E�l�������u�����R�};oE��ve�r�/�wj(p��z�j��%��8�c^��*z������1�2�����
���2.�����6muJO"zS#E3�u$&K52�JY�������B���u�f�s���Z�I��Lj�B�z����oL�����Ev��u��q(t�����8_c[�p��w�>/5W�����y����\8�d!�xkQ�*���\��t�2���@�����/���tPld�������|)Ej���]]r���6j�������K�z��2L�{q3O9�P��r=�f+��x�:_I�t��zG��fI���R$���)�$g�k:���r���&���-��3�aJ�&|BU�|he�}ui>So�j�"�uf����)vr���S=!�����X����5��+p�����n�Z����G����U��i�K%��&��`Z6(���{�6sN��v�H������y�Y�����x'g�R�>���m�;Z���W{e>j�}+Wb�fS�k\H5���l�u���j(j������*�y���1���v�8;��dM���f^��BnZ�A���y��u���|B���8��}]�1�z���������f������z���46_z���C���UuB
��
rU5��M�D�c���N>oL;=�s�����������DA3d��l5�����&�W�H����{(a����SS�����}��!���l�������(��vu����J���Wt�k�)F���dK��+��7`��%��=�2����G,��U��Xu������3�����f���3��!����f���}��F�#O'q��J�a���I�h�6���������j��$.�	������UYf��K=�
��k�K�}���<����p3�.I�����%�d��t�2O;+�p��&V
��;/����r{�����������_,��=%q!���P���G~%�jIY�WB�a�=�{�C��c�����.��<�����*+�����k�&�f����f��t�.�B��A�m$H��Z����-�A���D��L�g��y�����i}&uTp��o�"���v!��/���w���N�O�o��=���	��N!"��8�����^������N��Q�y�O@�����E���^�3�'C�O5�|�f���v��d��va}jc�}�S��m]D}��L>��i>�������v��Z��M&)�0�����O6�)���ag�7��L���%��w����vi����V�TG}�������Yre�/�{�GA1���l�cv�������=$q''X:��*���YR�<X����i�t�|-7B��5;~ �u��g������)a.d���<���_-����y������y�A;���}�pk%;�i�����{5���qj�����H����K�w�L�=.b�����1����p�����������g�m����z���$����6#�|!�����pm�� ���8'X"��t�����C���;�xq���3Y��}c�!e�`!��nys������������LI��A�^�
�=v���	C�����F���������1_����r��<
���>���H ������N<����t2��)����y�s���Y,����������y8AW�!~7��Op�!��/�����2}�<�H _{~�2#��s���#�����w��|0������_p����`!X��~�B7~�	�p�Y���g{��88 a�<8w���_�����W�	� ����������W��xx[w<^7����
�l{���i��;7y,4�����x=}y���;�xb�^�"yH{����7�������'(EW�����v�A,w�-zzO19��dJ�#�g=����8������*�VH�v�;*���]i�nj@��+A-�9�[�+�>a,��]�2����^�+]R5a+6���T�f���.gY	�;a
�w�2������Q��HM�6�V^�@���e�[�#M+s�[y{�W������-%�9LYr����A������;^���b��Q�{�
�7�Wbg'�ya�Mc�O{�GRrM������	��2��tyB�H�]��c�����]�Q)Al�F�Q;������X:F��heu"/���.�ECL9~NX_v��
�{�5f�k%���-�����w�F�{��2���F������s��s:�C����SOL��H�E��a�}+2���ymt�J�b�aK���]�����X�33�������/��oey�8�A�C1����j���Z��D�d��X;�S=��Q8�J�������������a'�1�$~1$�e��a��2�����}vP�-�r�
i=�aP;��'l����:9*����!.���� ������+��F!qs,����M�-l[���y����EY�YY�Y�<�������Z����k��a~���wN��m�������uF��\O?0|s='}r>�����8���J�c�:l���@��4e��3p����4]�����m�w�uQC�T���aZ1i��i����E9]o��OS�2c�*�8��s�x��n^��S}{,��P�q���� �_Y�;=����u��p���M0�����
��-�u�����*J���,����s���e���}�->�^h�C5������%�
�N�5j�����ye9���s��>e�1����L�r&3�e}���J�u���<���>6#Vy�f�N;��������y�������3�0I�E�y���}�c�������So�<l���iv���\
��x�li���z��X�%�������=;���:5+�����*���uX'��&"3Z�=/*���9����a���s��oU�:��k|�C�&��
[R�4��|R��O��o<P�v.j��91.�bv������o_�"�4�]i����]1�����]�;��0����W���t4������N4�:f�|1-&�v�Q��������&����s�\kGj�K�����E�/m��\�yB�s�{�=�|�����C����=�T�sa6
����j*�
]Q�"��u��lC.dp����Og�X��9��(K��������lT���r�n�D�q�4�4	�}w%������TTd����`Z�������z��bdxj�����tZ{��Q�$�U7�s*�v�oo�9��m;#8� �
���l���u���n�Ok�f�{O#^�[U�8�f;�^J��|�5���k��
���J�N�]������nc�����L]nk:��5b� z��q!5Ex����]��[�C�{*�������;����P�=jw�y��%�[����k
��+n�i��Cd�K�k�����;�'�Wo�/���WR.�����a������s
��4*ev>:����f�pou��vL	Y�MfS�U�����:f�x!5������z��Q����n���+[1�C���W5�l���}�<�|��C5FP���7��\2���������F�������81���+<
xov����8���6���Y��r�����_'���k����7^�!eI^)���rv
�t�������-�c�f�86��J�SL�W��Jhc�W���\�+s�d���i�/��������*������o�]�B�	��{+J������P9���O� �O�F�x��d���M
����n�u�;�WA78��,6a���I��I��x���&R`�j��u�"�|��h�w`�L��H(���3��:7Ir�T���u�wK��k�K�3�*��f���3�oI�w���ata����^�}�~�e+	��JL���_���YLU#\��
oki�lb����udc��u��F�}X�~�?jNo�Wv�K��:��wA�6����c��Cw�{*�����E����77���:J���i9�^�|g��RxN��V�A�Q)��8�q]��b�O*������U`�<������*<�Zb�:U�gC��a�\;����(3��q<~Y7��V������s.{�ZR��z`���;�y��0���i�����{
�a^T{
�a3�(6�-��{3����I��|r�����r�l�D��wx����|���Fs�)~��N�T��|��yT�5pF����UIMh�7�N�/F9�^����e���I�a9�~��p�Js��[��1��[�^dl��Y�J�R��XCXK��]E,yv����8���U��,�P��xr6S�����l����{Or�]gNo	����LD�S����u��wc&�$n�C:���k��h��Qzo�	��3�;���Ods@�Exz'�
c�
��>���pNk�r1�����k���T������2�=5��$+X���v��{��5��A�����1���%W-)T�Wr����G�u�s�S���|6\�#(���#|�5Fg �$:{a�g��dV����R2���s���h�����`����X��!�1C�����W�#�.��Z���+����o����A������%��n�X��U9
�hoJ"`b��r����N+��Zj�����8���cbP��9\1^C�SJ���\�T�`��j�������o�v�����{�<��I;�l���^���5��{^�AX"]���R��=��cG���>������{�>���	U�<N{��'2��Q���i~w�=h�}1"7v�=9�\I����2��X��cF=�������[��^����x���W��'d7��`��LN��.���V�q�R�k�cI�dW�%���m����dC����4nv-3��Y{�S�i�S��Q]K	G����(K�5b�����}����"�p!�p�;k���}@��0'�Q������)����w����Z�a���0�?������u�1���Hz~�C�/���X��r�CG&,���Uo��.���:��������}��<a�Y�>���h�B1K%�;��(o�a��{�y�>�����n=�R�A;��������@(�z�g�����W��`>��"�z�7dv��_�!�k�x���-���@�~�
s����U�~\�0��<��8*en{D��
c�����=��!Z2V��+O���*V<����BHu���<�I����qU�XjQVm��OwR�a�KQ�dI���UpI��	�t/�{4y�� �.�=�G��E��P�6_	��W����z���b&���HC��I���\���X>@q`�s��#e_+7�X��u`���� .�b�[/H���IRX=�&��:B��'}�"��Y|�\@�Vj��<��a�>;����Y�x�`��@���n���F���(P�OD�	Y�N����0q�8g���y)��������qY�	EC�����;9�.-�{��������`�x�y1n�d	����
�U�NU�,��.CuGm�Z�'���y�F���[Gv��L��Q��o�F^�������U�H���+����>gk��]��2��k�W>LC���
���i����=�<��J�Ih�Uu<�R����
����g�H��xf=��Fz���-�J�T�e�#Z����}/^j9T%E�j;��"�B�����V���qS��1��	��9��p�3.�+%���u��Ll�����P\J�1�s{�e����� ��/�\������Y����\n��wrFWx=w�|�e����-o��G�X���l�wj���n��J�7����:�������w��eQ76X�CV��sO��o���x�;�VCK�1	f�g��L�}�+�����LI�.��f���y,u�F���/n��EY(���O%m!�;P�U�#x�m
:��
�>�;N�;��b��^�v�<���3aJ�j�E���u3���[�U�������L��H��HF�Z��&G��%�t���KU�){��]
��(�q7g�n.�l^����a\6�nv.=�{�������z*�J��b�h�W:�R��YO�{�����v�/t��_kS{{1�����N�j��Wt�.��*	��h����R�����!��o��������lb��aTr�9^����y}��	��=O<m����s���mWXR�376b{�,�V��f��N����������vf��@���V�isq�����cu[��s�)�o�A�G�8���16����������_^���#���&���Z{gl�<&����	w3�����3��)\���,k9��r���J����Y	^+��hK�>U?"�d�vQ��frodw�I�*�RN?vzs��������]��YQ���
[�:u�}(6l�u�U�t��wQ{�j������[x����e��V�kxLfd*��`�u��B�L.�R����Y�
^�^S����6��Ii��E�;s�I�>��To�\b��rUen'W@L�6�(��d�rMv�����~LCgm�
:��`����1�'A��zh��v�U`�V�N�tM'V[�����la�u��gD�v���Jev'�n�1[����hrS���J�qHQx�u���9�z�b������P���#g]�f���3z�_�84��e������F���I������>�v�x.nv;y��f!�I8�k��������|;msgF��}VmEE��[�{�i>�*�=5f#���l�$Q
D\�@�S����������m��
���dR�oM8����^�yX����V�+g�v��_�C96L��D%�����s6@���K�=����uHe��z<�7��A�u%�����0F����5�[}� ��������K^��5�:�����g$b�T7+s�����7��UM�!�tY��8lx��B��uG��������������	..�6�+�����������}�N�s�[��C��f��32�iSjCK{<�.m��f{����3�kz�i��hC7���/W��~3�����%`a�4����2\N��&[����p9�����T����a��A%+Q����o.��)���un�g1F������������co7�R�j���h����n+\Aen��i�&�j����|��GI�����;9%��L��w�ku��g')�w��!~���J��I;J�|����9���<o����L������}W�d"��6��V���~��3	[���������NW��4�A��uO�2��D���{^)f����;��J>��p��Y����-e���mY���wO/s����8�%8h��bM�)zp��wsO���c��_EvwpZ{������5*8�����N�wT��m�+�O�����ho�y��R���j�5}��a�}�d���U�v����w��K����x�N�}];���FL���~c ��i�z�)�u?n�%#d� 5����G>N�u�rn����on��e�U�2aR���k����_d��v��nO$��l�c�����������/�{�q7T<yH�q�TK}���J5}�����������6�+����f�C���������x������s�$���w�g�R��������@N!���I�y^|�)[�H��j��L�T�8���9�(�p��yK��y���3o,�����~���e��|�Y	bc��I��������'0�s7�3��.�0���m]���n8�-w��y���#��}��A�#���+����_jR���R=�t#H���t~�O�G�G�����������3+2�@��4�#v�^�Z��K��>�O�&UO�
�/�+��}��=����P�$Hl���I�6�[H,����<����D)��M�wb ����<x}�[���������~���rl{������s�>���������v�o>��P���y�~������n�=������o0w��Ow��t�G�����y�����:�������[���;��z�c]�I;������wu���;�.��32��5�q��%�W�
��1������%L����u������������������
���E4S�����e:��;����*\��z������owt���]��g�7��]zl]����������=����>]�|O�����w|���OY�L��S<sv��w ��*�lp��ms�N�\�����=�wM�>n��;�s{t���v��V\�!����IN�/�~������������,����t{�VwKu�{�:�C>�BV`p����;�c����WEl��{����d��qQTE�kBM
b`I*i	�	���Of*
r��g�#���F}w�c�m�87C�����z�<6������}��M�y�w���w����n�������T�����k
��v<��n�;w�
]�7�L��9��:�?���Z:g��L]{j�D�^=zt��[��8�_�:`����������zA���n��{�.�GMw���0�pd���a����, �Z�����~��{�q�n�o�X�;����d����f�K��}�n��Hn�n&#��
[�M���Z5�V��Kz��I�}!$�wui��
�t��p�1���Jkw��vy�=w�}�=}���!�J�}�C�o���;�9��tl0��MH �wu����B����e�IoZ���8�^#7f4jX;����W��=q����_�N�����v��{���s�\_^7������
�����{���3v���g���[�-1�6���w������k*�z�����U��}��{'��C�����Y$\�^�	hM�����hcM���X���"�-�kA�0y����������oqzc{�u����A�x�������~��x1����[��w�_�_;x�����:��a����u�V=�z��������3����z����5�gcYRM^�{��������������|�����������{�g�{�/������[�R���6{j��!���$��[�i���U��og���w�^�������;��6�>��������m�{���1���:��C���{��6�'M�wG��:D����k+����,�*g��Z�N�k3�Nt��d�xqx���tno?��p�}{�!�Oz����n��=,]{��?��v:�_{����!���&&p�Z��a��!��	���~r`h<�%~c�OJ�	j�-��n��DK�%U�K(����c.���I����-��y�M��x�{���3y��4q�H���gf���;�������9�����~{�Y��H�1���3!����3�d���������	H��![�	������sV���v	!67lH�jh���f�9������� m&��`1�b���m4d�e����r���F�/U����������*���4�DP��p�n`�N�a�#����n������\'������tMs��_��U�`7h�U�;CwUs�*������9����OZ��zc��x�	�=$�]B|��lO3�I;�
�#�������~����p.����/��zZ����w���������}�}�
���w`����X�;����xz�]����;�n��{��u�{�.�|��{���������/�����u�\p��8Z�D?V�z�$�[s2
q$�r�����d��J$9#�4�!E\X`-��M�-{���sn����!.E�13�~rD�b�QE�M����M:���f5�v,����"6�&��~[}S�n��R��}��n��c��Y����y!��4��x�1,���[�1p��mnI�����w��|>����n�/��=�m�������[������==t�i�| ����/��<��n������=�$������FFm\��5���`��N3��#�mh�i7�tc��i�j������q&7|�M���g\��n�Ym��,"s�;�I'�v����iW��;}���=�(��@�m�B���G�:�x����:S����S�Z]��D��[�f�L�	I�iz�=UQ�alH{fkX�.]0v4l���
�w1���a*fa��p[i�)e(��������E7=W�s�
�y���$��������������<���T+�"FI�6.U�5!���
������-�� ���Y�a�!���G���_f�����^��0�[�0��nAi1����m��3&��h�n�����ia�@�B���4U�^
���<C������A��YNfd{��"���5����F�-@���N�X��|w�n->���H���1iY79������	��PGF;�����k}���[�:�hY��4�y�!B���`�n��1-66�#A������8n�g�����r(���=���_(���d�\5���vw9� ��2���1�J����5��<����Oz�=^�w�F+��U�%2n�f��Ke�n���������[�3/k.�}���m)`�P���Hr�^������6G���J�����F�F���Vv���5���.jH���G�{�>����q�9�{��{�N�/���z[������k���Q�������v�����g�w�����/�L����r�I�$�4����0z}\c1���C^��{����3=A}&���lR6c-ew��?f��wG��0��VH)��EA��
�'=C0ex�D,�K������m�����KW���*K��^��f��8�n�H��<oG�����=���N�����v�(h������H�������+�X����G�cq`��VL���v����
h��n���S���c���o��wR�&��-����^��������G�����^���0:�G���k-
$�c���i�������C
x2���=�������]�]�ib��]��c�fZ��j��n��*�>M�/E5�U��������(w�\��vI���������1&��
Z�S���30���.�=�F�	N����b���{�#���N����f ��;W0�������z�������<�f�\s5&{:*�^uk���u)���Mz7.sS�����x�o	DQ�H��$	��!�$���0?e�(�-��������y
�������wE���Dr�w����VXb�ri��r�����I�;�gB��*�Luj��f���m���l�!���t.G;
l��
t�:����I��L]"���<�2��MD��v:���-�K����b��gE�f����������@q�bZN��S�.?s�sZ�w�������U�8���!��	b��mh�������(G��S�m+6���
������N����F'c�VqO�GH�6��+V!�7`P��{n�W���y3�26:�P����d���d�f�����s�m���
��������v8�.X��C3t�3P>������Cu���R����G�u�Nt��Gj���[�b�-�-"��QLWOm�������L�*a�'(fIi!Q���p�-
d�G���#�Q���Pc�2�����yw1a��J��s|��h�w�Ma��l�-��d�����Y��fR��^���<f�:al1�K*��N�(c{�Uj��
�������F
N��ww�z���=du����\���������g0�v�?)�����f=�hC�U�X�_o1�K�������I��BC��'�����w���}����0�����cp��Hz�q�����������4=�>2p�8]
���e�6�_a���B���k�~G��x�������"G��g�>)�y�k������c��&}UW���WK�A�1.8�3�9�;���������oy�n�M����6s�[� �k^�-��������o=���Y/d~T�QzAQqDT_�K�Q���H�4e���#}��"��F �Kt�*��)b?����>�U��d�h���o�����_�w�v�:���[}����������79����o�����wO��?�����{�"�:r�?��.�w�������$�Y�R
k��;����	I%w��d
�]�;�/f�w0��~DO1��Ap�K���Tu�����u�r�I=� ![I�Ml��U&�s���9���;�o��1xxg�K�o�3V��wh�w.XR����wHn����]���l����{}G���tyd<�t�c�[�G8:��^AT�dK���%-���~�Z��6<����;�
����	���hL�u�� �t�`�tJ�=]�j�v�/R��-��s2_x��^��Q
\��m�;���,��[z=���;z5�S7�9��8_��3��}�{�!�/�����F|�a���Q�
'��_u��*<�z�l6����f��{j��=�A~�����en��&�*�����3D�tS��g���c=����r�y���8<|���M��<�G�d�/�P�@��X�0��pgQ��kYAd,[w���k��l]k���@rS<��ej*�R��>XUx��9Z��v���JK@D7r�uiE�tz�J�=�]��#�D�o�����6���[G-S�������R�*C�w����1����<
P3k1
k,^*��G�X)��}B{_ pL��{��n����\Y{���x���/���(�����6L����p��e����o��mb�ZTgd�����J� �e��2f �zT�p�R��>p�}z�n&����6h���w}������>����w b^��3@s���6lf�w��<z�o3�^k:?d�f��0(���If��a���c:�Q�C�qt���CI�n�P �%����'U����{Nd/2{t��� ���IcM^���r�����I%6����X��=c��1��v������(�e�j����S���>���C�!���	}S�<�� v��s������6��sp��Bv���}�yc\{Qs���C��W�%|,�k<]����9�����exH�h����M"R���@����|�B���A�T���?�>��Wz;7~���A��f����z��@���j��4�"�������+@�Hf���$�mt�<���P;/�L�����sWM��������E#/K�������Q���x!8]"��d�G�uzH*�mX�.�g�a�.��{�[�N����uE��T�S}����d������>�.�J��(�D.Q�Ws�&i�U�&i���=���������=���{��#&����TF:�����`�����pn]�S>N������k@a���O�������K�!��Q�����^*-[8��z S� �!>�0���AA��g��"�u������#���aa�*O��O���\=������i�����Hf��
��9F��IZV�����c�����E�v���V��c��4�UM.8�ZaM�	��QwDsn-|;I|���
�j�'�q�<Ps��p�oo����1Kfwr��D��<`bR�s�L���gh��1�����in�x�q�w��w�	�~��5�yqN������z���X����y�
�r��j��<r���=u:tY���#@V]Y�U�y�r�5v{/$u7�n�����9>�`�00$����Op�<�t� =���(��h��v�n�����<����Lu}�Ts��a�8�X�.K���
�	�����a���J�E�P�����������Z�/������)=��	2����h�
aV��'���y�_���~��Rn��L��O�#��)���%�<��������tv~���|;��b��v8��
��iPD �e�3|���{����U�}W/`��"�IF��sDsw�`�+�ozRdncV�z��P����\.{z�o0��|@W�s!t{aI�*����l����N-�N�����(p<��x�O�a�rw���}�+-��1����t�sh�����kle:��>���!�_u�����9��[�Y�������I��K4�v��3�������1���<q
�<b�E�*p�T�(&�\����A}����!��Jb��Y�����"�Yf<����D�%�4+P��f��a�m:��)�}���0Ka�����p��A�s�����i����������>$}�Z���~���k�i�{�b��2����R
�>���y����V�z����Gt��A�Y������KP0M�n�8DcaG���A	R��0�Z�����v��b����N��;{��i!�=wF���������R�u5��,����L����o�e��-r'�����A;�-��'�����*>�
�E����x,����(UU��k=-1Z��<V���4Q{'l�UZ�5 ��A�������d����
�<�{4uy�fe��k�yF�kv��[�������A��w�w��}�'H�e=���by��-{������9[�(Z���0����b���[7+o����H�<���@v0v���;������=�so�d�������2��+uf�Q"�]��N
������q����@�^1���9_���U��N^s-�nl���::`]A�8�pV�H
��U���m#������6N�	f������� �0`TA����`��v��W4��T�}�9�U��3tk���{�:���Bg9��_t,k���|����en,6��5H�Lh���&�:������N"H���|��65B���2)s"_e�j_U�n�z�n�{��W���
/�����J*�4��}E����w�#��/v�D8j���O�;�����[a���HP��Goz��6�����'�E������=X�����*=���U���4%o�-��#	�b��G#J�P�tAU�`�����Us}���:�����i�FR�	G���a��sw65�K^/K���d3_>�/|8���9�'��7��xf"O#��5���7�-�8-'eq6oN�n��l�A�	ub�{�c4c�]J� �An�A��|�;����>c��T�}R�=����j87o���ep��D�������s��kE��������.�~�[x_�� ����V�bA��cDU|Y)^2��q�N1dC�������-�7 �I^���^#�0�����l��l�����;�\��g��v5RTv�Q�09�\�G��@�I�s�J���h3��'+v��ci$�xY��#�A�	����.�"L.�`���n��I����x�(y�}KZE����40����4g)��m�#����L��q~��0o�7�����EX����n��|�e�X��<���E���>0{K,<�6��8:��+�b�����
dR���@�J�/j�FV���Vc�p{�3���3���%������8��,/�<�2�K��#���X0�=���{��==����(��]g,�����������0�w�r]����C�Pj��i�;Q����O?o!��]=�R��~���7�������&���6�G2A�n����c	{��N�~����7�����j��2���z�����:�^�U��>IN
�
�I^�&���I�0A����qg�d'n�;�	C����'��@������4*�:�kn�4�;�
�����m�\<���>�GZH�M�$��U�
q���B�<�h���&�:s1�A�@�
Hc��U�%R��wk�)�j��V��]���$�ysr����B��K}2f�>���e�&������i��������4������5��S���}���R��e�6��::Xo���
��V���<,u!b��6����Ab��j�b�.m��R�w��N��[L<|�p�E��xb>Ba�4-��������	E������-,�K��%�kx3O@���F|��?Ws���F��w�f7�SF�O8�rlmr$��u�xNp�i����0������=����wvh�A��^v�c��.%���6�+�n?}^-����K��4/������6����w@��[hZ���?7d���L���/��:Hn]�r�0���=����pP~p�;���G���L���L%u��
��u�3\n���VrbC���Ri�1i�N|�]J��|n�V����dr}��ps{���g�wG= ��@�?0�z��CY���Ll}y��JI�=mh�4����T;�w�b#/����Zp_@LQ��������VN[��0�b<��=T����4��04_��
��;��h���������{(�{��g��>����g�<F|>���#��E��6����)zs�-�{;mJ��c)���/��`�h��+5[�]�Y�J=�4/5l����'�b�Y��u������wV4���%��1[7�4h���O�D#���2_��l�<'���W�Q������yC���|�U�l�e�@���xv����%!��<8N��b@��y�B���W��O{
��M���V�!i�����7��BK9��O�����NJ����w�J���;���6��!/�Gw���u�yso���e��}����
���^.[�i�&�yu�Q0�'\������g�gU���uy�^8L�����M�=k��0b����po6�9�`h�q=���8-`�B��s?�����O���VP�_����{��oH�
���n�&M�J��%O	e,�����Z1�jL�g�f�Q��O�{�A�~���� +�|�i������T�o2����f����z�DvP9�{<�L�o1kR�Cm�7y�l������ � ��9w��JP�,)E��1�������������\VJ��������m��]�������}�<[���P|�h�S��pv�y�Z�f��f�e�D�����R��� �e���KQ�������]--Y����5c��P�$L�6��yu�i4��v7��@g�s}�������r�<(T_c��D��6��N�m�fJ�J��ud�tTI������
o$����Mh�����c����5f�3XgC/k�U�MD3� I��N���VV�
�c��P�~��a��M,�$*�Y�G�M�n�J�t(g��'s�vd��U��Z�^��:2i�>7��������)6����m[��8�� ����p��5�4��:�"����q���`&h#�G�x�:�-�X�������XE�� �� �8[�0�
��X����#y�Zw}�C�����g���[`xo��,��c;��u	s0��VVK����PVe��x�K�F��B����9!����z�����S�> H6` ��[����j��g&Z%s;���nc�Hc� ��:������?y^�Q��x]>�<���,�Gz����I�
�1�b
(u�.�b����	��@����yVu�_�n�7��=�1����C�
����i�_���$v���������C��$�i�/��N5�i����vV�t��'
P�}�����4��4���e�d>�/���������s6�'�q�=�����
��9����T4��lj"�3UNo^�Y�,�U���:�p���&� wx����}'�������1��8�"���w�1���f�^6G���Dw���)��?y��xm����������3���jM�Y����a���}6�a
D�;}+{��'L%���7�)�E�8��(b�Nw0U'��y�:�n����[4��p�A��Xq�x�\�*t��V+�'B�*��D�9_\�kF���X-;C�L��b]G[k��\�H��y��D��'���!����A����U��=�F%�7������;�����3�<[�?n�D��i�"��z�!Lu����u
��4��Mp�%s�I����%u	T����~��v�h m3Y������������9�e�c��u?�+[�~���_�Z����
8���*=W��g�}jQ �U�Z����t��'�'9T�c�� ��{G����iN�l��y�9�k[�������tm�`4�B��.��������V!���y�*e�Bi����(w��8�6�a���0wV �$����O����9����dX�����8���"�<%��\&wMu{��|�X�	�=C:�+D�](�����8������Qg.��h�^�]��f��8[yz���oD4G=N�'��1#1P��n�v-F6N#��c��F;A�v�9w�s�t����i ���xBB����xe6�1�S��a���x��`�T��-kE�u�#�3���&E~��=^Wi�WM�j����������X��,m[
����W4d������O=���S�k���>����n�&�
�pL�15���p�z��KFj�.p$X��M��sd�5�7�>���
��������{���$��{�����<1e���i�;���-��=���������N-�e���^Q��x�������;�o��f��{��r%��-�m��~�3����:yM�����(���q����*2����>�ZG��p���w�8�v������b�����lwk���8U���%��Tg���'Y�]��H�����:	L0�6�=�UU���B�V.����Gjib����x���/�;�W'8��s;�j�v����Dh��~���j�p��n	�[���7U-�/�a�����
�8	|(�	���F�����������x��3�7��}�|r�����8�����X��o��U���s��;�����BM,ih9��X�������'���m@X���<$h9���������&o��P�`�u}�-�v3jO�#OL�+Oau!�W�>w�����$F��Qno�o���d"c��8O�{��9��&�����(D�r'����Rxs5�F}�/�
8=o�8�N�d�H�AU:�O���E��j�a�I��,p8�����a�\�����]�_$��G&�~$?sC�P��QB���-��Q�5A�����_��'<;�B'�`���2�y��[f��y�ol�����u��7S.�wRbT���c�k4��(�^�����N����0�\����z��D�^����b��yg�_gyh����+6��� ��^�4ec����N��d�N^*�����'~)�=u{������_��c�CI������;�AS�F�b������G�U��U���'Z+}[�,��R���g.b�v c���N/ok%�g,Q@�� �'B��d��������d�<�����d�2�>��e-f�,Z��z��&�J�9q��U��z����
��T=����v��Q��;��������7G�Cw����]R�D��dP������4U��J�cw#�]������=���K�/����z%��w^��,me�{�!L����x\��}���;<V7��.B����zF<c�������<��/�_\e�5��\wFK5kV��!u/�x@�,��WWypi�������v���c��ry��S;�������(�G�gV�:-u0pho�0N%�`2y�����������G�K=y���D�7u�3��,���1T�4k��������)D�����S�u	�^f6k��4�o���3AN����>]��Kf�"F��0N0�d�xB^
�_vV�F]:=���m�!G`X���G�SA��g�����9],��j��=�%B���B���t��{*���C=��+w�twb��������wHJ��Ko��n�n���l�n�@�m��� ��~��P#������,����s�>�x�����2����?��ZY"����o�:�c;���;��l6�[���b�=Z��_N�����������>`?`��SN���"�����K��sQ��g	��������D�����h-w/�.C=�'��^�|R���|���v����\�|����7"��=E�


���e4k�:����Um+N/,B�R�7��l,�jZ�^gJ��]�4l4Q������l���~��6;{
Q�:�4&jb:MCn���I�A�(��-D��:��n�]�\�	��A&��SQ�s�i�w�(-	v�3�.��(R��uU���(�!����E��p�;�d�	���0�
�����c�c;H{� ��
�g�s��xL�=fa$A����R8�{F�XS�X�4�}�F#������=Ji����������q��-�0���*G�`�k�)�N�6V��� ������}>����hJ!x�h�(�V��x�[V������vg`��H�X����������
�7�'��M�*��.���t>#��iOt3-��
�r���������L?{����f{�
��J��g�7�Mls������'L���1�,�������9��{p��=�������o�
�:z�
������1NG���Bf����BE��}RA 3,mf���9������]�����m��Y�������~���	�����w{�n�LId��~���w���=���e�o�w:�`']Q���*���m�$���8�v1�r��1��U�Iki�����[��i]q��,�j-�g33�J�z��6��ghZ#����c�c7s�����OK��71��9��nW�����u�I#%�=v�2[v�
������rh=����Z]`�[����*�l��*��1��>�=4�wg�f3����D^I��S�6�f�Z�.�z�;H)^�����t���94��n;}�{n�1:��a��B�����q,�K�b��;�Y��2�����3c���=��q�7

�J��y2�.�����$ P|'�{{r:����b�������M/���)m��f�����p���f(I����!����F7�;��z����fx��������/��yW�*�g���F��-�����:C����I�q�y��w�x-���#h�-m�sd@���<[���"�����gB+�z��o�V���"��t����G������������-�=�AY
�6�$Uk��N����L���m����N�1�w��1�������u�g�H[�eH9�Q���������
�X$�i�E�Qf��&O"v�|}��B�����4������'�L��Mv�8o�E���ez������p�Q�o��'�E~�.dd����o������V��wP�]��H�D�o��\m���0hQ�P�����:�_z����RU�3c�����p���B�H��x�m�����?^����	�z:�6eY�I��Z�����`1�yw��G�s'k���sz�;9�~��������N,��4<�u�m��1�3�w��17�t8�w��t��2�B����U9���a�'�e��T~��"
X�:P���X�	�����u�/B��1d��c&�����,���,�^F��Ke��ACY���>|��Da^�t��V��B��0`>�����P��|!>�eY��s(���.d�����u��vR��`B
�U��Bm���L?U]j(��A�=������F1��=Bzx�A��^��c�u�d���#\F-UX�6.��%����F�Z����E'�g�?f������������%%���o|z�;�}��k�Gt�6�L/pd�{,C��{t��7��c��/���s�������[�K7������5"1��H��`O����[��CAsyI��n��j�j���;����nq��O{��������{��<��#�h��l�������#m�_m	z�^�����'�	�!.�;�d����y78������<?����?������8u��j����q��1M�Sp-����BKY�uVo���r�H��P�f��[�Z���/���wz�G��A��7�\�J�hK�S�ndj�������������~������L����!f�T��=4vi���X����q9DS��V
b�����.l�o������(#�e=:.F��{�^����<���tc��(����������n���.=���{|_��.��U~��������>�H��wy8,[O����&�=�{��o�d|���s����!���\��#1�����v`���Oi���{z����|:�OJ������~�o��hJ��36_�[-�X������������	�����%�pwq�H�*c�}��n��lC�?�Qi�},Y��<^i���r��s��n.�Oj�;n_��������.0����
�8ewb�lvu������"�����mg�����A�O��q[����cdB�_n�<���p���V�X��QpE����C�����-/<�����/lc=���w�0����p�����\�����������=����o�D�<��,R�����Y�����aj�R�c�x����U��������#N����<�������Y���1�Z�6��:�1���tkC�g\j�$��M�e�!�X��!���I�������o���(;�-Kz`o�|�n����O�T^����w�972�*��,U�)���c`l{�mZ��Y
��$�Y��{(��<��Uc��htM��=YW0�^;E����,���+�`�����3Z��`������x2���F�����2��+���\J!vLEo!=s;j�d7�?�:����0�GQ��1�8���4�{�Hh%�sE=�8����N�����
�g>�^�J�+���1!��E�1�\��U\6��e��Wg*[!��4���'vcQOO{�YG�t��~��G��<����n"s����HD�#�!�l�(j*�*��s3,��-�5���� ���}X�����Q���l����W;y�����o��/�	n��#����H9UR,��;����~y���y�x�+�xd�8��+�W�����i���������{���:4
������D�r��Y/H
�3��1g����^/<��H~��u��������i��<:�^Z��b=}`��U��Oe��>��o���a���f:h�teY�t�,v�IW���wV�A��)���4��IV����Y�&���6���OE`��GM�UL&��y�I�Y����5��Op�o��Q8��F�,����N3����vqV���Bc<�j���~s���=~���I��w�01��b�HHiS�q�&w�G+���<�Qo|������o���?!����w�#�b}~��R�41�����������0�����k���`�T��{�(�S-�*��M0y������wU�f"�j���%bV��>�M uI=*��K3	�,vb�a�U����b�<D���dgv���w��'Y��U��w y����f��"wO���4w���#.�����YE�P�;}�%:6��Z�n��)�!)���jf�&.,+G��p��&��ZC�2���;E�������9�a�!�`�
`���������H!�O[/��y������ze��x�c�z��L]��
m[��N�y�l�Ul��)�d�s6m
�������I���8�FY�$C�P��!�}A�~�g9�^s(��tT=��Q���< kk�Y���oZF�cs���(��)*W�"�!Qd��[i"$�2��4�Dj�*����f,5V������]�E���k�dM4N��:Q$��;�UY���wkU�v�"6�����w������Cq�v��IE��nA�k���4A���z��t���A:2�{f��!D����7g��y�
>���DZ*It>�e*2������7,�,�h�������6���Aw�ko��Uj�����r��n����9v��]3$lDL�3$�3����������%�����H�#�~�Klfe�3n��L�(��������5��K;�My���td#(�[������D1F��������yk�Q)<�r�h����0m��T/����U1��I��w)��y��']��'6L�U��UU]�`�h����%,��;�����=�����p6�0i��s����/�8����q�0U�}�UW����&��*l'0n8�����>������� l�$�1�C1!(D��t�U_>�5UMUMZ�W5�XHp�D\��]:7!"���9���9�����peE3�ceUU�����������|o�}�GG+�j�)"��6����h5�����������\<��.t�I������.�������7�����J�
�hW�X�e���rZ�c\yUUUUUU�����N���C��ZaqD��\��+UUj����|��ppW��eW�s*������>�!+����*�X
�)�x0mUV�UUUUW��|s.20�	����eETU_����}��.,���XSAQUT�Y�UUV��W��|(�� ��"�\y�Z�"
�v��U4�L�������X1���/�����.��3v.�vc"9U^��|
|P�2Y�
@<pH5��"#��k4EUUR�|`��A�vK�wu�]r�wu�s��"���o�:Y�-+�j�����U���-k\�����o�����b�X��:+0IZ��f���r��UMN��o������*� 
gg9DUUUs���}��A�0J
*���`sk�u4�-kUUUZ�mMW���wc����W�9��s��U�|o�kh]`��"$�R�m+b�pZK�-k6�"���������hZ��4N�W
A��^cr��jh�����#�������6�>���*���r"c&Q�s�UL�r*�9_�����[A��L��CS��D��\�6��V��U���C���s� ���1���W9�����A�p5���M��
0:�$�nSRZ���������1��Z�l���R<lq�*, NpkQ6������c�d��1���C��&8��9�UPU_�>_�����k3�KhpFu��9������j��c�f��N��N�]����pm�J�E����Lp�c-����0��\�Ib�������>|d�������%Y��Me��b�MT�5:�����ss���v��9Ws�G<�x�"*��P������i����r���9)���2������h��j���cg�.N������pwvp��]���W����q��	�l�Y�0��`���UZ��UW��}����)v�����C�	��@���b���U_||��8�n(�s��TU29�W*��||��48���mg\���9g\6,r����j������y��aC<C/r��@r*�e�W����k����(a�����I �R��UE!Uk\�U��}s\����V�j�L5T��6K�.Z�mMUU��.U{����ss��n!�n}��3����W��r92����U~��9l@�JU�����,Yu��"*��j����7�c.6r��s���dET�x�������� h�3U+5N��5��i+0��A��+��;��,#T�e�5��IkZ�Q����Z,KS���L.���wgq��w9�s�Ys�UU~��~SY�W&��h��2Q3MX��H�4�UUTIUU��7��N)��'(�N.M�L�
���g���-1:�������:����8(�*����}����i��-R�-0k�Bb �h�jD�UUUUT�����s����[�M��t�\�����.�E�UUU����i�A���E��)�if�U�Y��-%�������s�aQp��l��x�8�/�&UU~���A�fK3$������Aj-��u��,
�������rq��@\�)B:'Uk��I�K��:��UAU��9Tp��a0��x9L�������~���i����R��YJ����3��������jC��r�.r����u���tn�;w;�w}��\�Zj�3���	��4O[P�ZfR����>����6K�����3%��eK6��Z�mUUUU������1��6��m����`��so�wQU����.Pr(�dp���@r*���w}���b�ej�4���j99qn����-U_o���0�U8��L���p�U�
�~�o���Yl�U�
c&]���j��+*��j���-o�>~fB*�fu�68g����m$����k:��5�W����"�����QAEU3��*������t�i��k�+r$���-��$�mS-.s��*���p�W0qLg*�x9T�(eT��}��!��&n��j*,�TX�N���(q��%W�}��X���������i(j���$�����Q2UO6������;p86y�H�j����;���e����3�1���QQEW������HW
0�q�\-�hK�-i3q*Xf�L�j���8�e)��qN	�8��DUU~���,��V��c�TJ�e�B\tL�3j�\����������N�jY�f�����%hJ�d�(��J�UV������9W9C<x�9W�p���<UUQ�*���}����Z*I%��������u�X�4��%�Z�UU��}�L��s��wu�w':]�q�s�2��o���Ur8��Z�����(��X�f��������j��������gr���D�h�)'Y
U�i(@�����79�GdvG(�������������G4sG4sG4p�h��h��(���r�Q�>D��G�#i��h�F�9��+%��~�%BH@�
�R%qHK��Xi���%A���BP����� ��@���xg~+K{
�V�����n��K-�/c�����D �����q�
Q�<W����/5���jlq��
4�z2�.XXK��BX	z�0��L�ATO���X��%=zc�����`��I��^{& ��4~I��-��:M/o���NEBX���JW�q8T�d8D�bI!J�JA*
V��L<���H��]	�%�&	@%b��0��2���>!�/�			��}:8`��u�z������2��F��g�v�%!������\�q�Q#:ei���{-���3E9F��}��z������l���/���pv���8�����H����0�����b���C����{�R6�e��u��������(�=$�
.���N��������)K��������~�'BY�3�i[tA�W�Hf5mVZ
�oJ|iS&��8��o����_Z<L�j��t��Di�uM����-L�,�N�5q��������T��(U	U�rx�^�p�Jo�s���UI���0�^��)f�k��YE�Z��^��v%���G�H�Y�L�.)����n�[�A��\�& rP\/z��������o\��	g���;�V7fk{B�T��������<�zo#\����]e����s
>(�#S��D��V���?����_3���'������������\n��s��v��!z�����}G���1�
������R=*va�����g=L����\�T��{f,�����2�mv�,��Ic*���4��4�{�������Q�7���!�)x��.��1�a�[����7�,��5����ZY���X&�����b��0i����f�����������'<��7I�d�3�
�X:�6�� �q
���F��
�e��U^����������S6?���{=���F:� fo���z�{�d��������n��Ey��_=�H�>a�sr
{�1�������E������CddAj�������`�@���Th2���)���Q��0��bOj� �@�.���u��������;������W�.����U����9��L�v�W]�NU��0����4Uh@��h&�6;��\����S\����Y�_<����,�=}��r�`J�����$����w�����f�Fx�����J�wlq�(��^����7_�x%��-�A��"O_[�f�
��MP#(t�y	j�T&��A�Z���&�v���]2�Xwr'��r���������%[Ws���=;��\����w��������_����<������������T�6����W�MY����'4O�eI��Y��d����I(/cVQU�J���+�0�R�,&L��

"|�
P�30�N"Qc��)�
��������YJ������S�ov����Q17tZ���Z�;�e�PD.*h���	e�XW;3�9��:�2+�MU�]�*��8Y��9Zk�������)��rY���|�(m�~����z�m��R���QV(P�-�T[���+yT��.�e�j,����&�+2�(/4����E���]��u�!#r��R��x����ZuD��u
�NvHe��_����H��{6U-S�������RpQ�`^dD�$������]W����gHI)����-�GGq�e����?������$�8�4ow�����gW�D|�Lfi���-�%����G73��@5��r<�6����PQc���z�n����-A!|����z\�� �U�*Ga(	�B������F�����~#����������w����X��`}����� {X9���JU;��eb�sBf2va5�����%Yv��J�1]���)�Y�^<gTt������PV��+1�9"���M��r��m���'��E`;�dWPM[���3��1v�tE�vJ4��z�B���%1����������i�9�:9�%b�����M�N�d*p�EHJ�Yx"����D�r���]L�Jh��J���$u+xs���J��X�J��JeB���w#y��6���s����P�,R\��������B�v��S.�
4SW�J�$�iB(�&�}g�F&����S��F��mY�Qux��1�*�h �2�0��vN�P[3^��fm(�5�&2{�A={�TK�twl2U%�%��W��pQ����i_b�(U�Jm��J������gF�j���!�Z�L��6�|U��o���y��,���Kcc�ch��F�Z)-��X����_�:G�t�h��H�G�7G�4j�Q�5F���5F�j�Q�5F���Tj�Q�;Q�iF��i#H��t|�<���2��b6��8��Go;#���#|��n�gbG�#�U�����f��JMDkF�����5�lRj+E�1v��G�<Q�<v�\j��&��@%1���	[��&�/�Q��:�WRG�G�o��U�f4[_A�6����U���e+j:GsF�sv��G��J�P%��'��J�'�>�(df��qG�u�:@��xB����L�k�����j�TmG������Tn-����|�������Ez(�������o�P�#�^�����aCH��Q�umG�6���[�k�=�)+�R	y �`��i����$���d�P��n�I���-�|e^(��uF�}.��7q�[�W��	6	z2T�W2	6	H}�	T����W�T��mG�z��Q��j:������uv�q�WY ���2	\�O���[��%.�J^��glr&Q�7��Q���z>7���������en���k���*�mF�Q�o]r�{�x�{���S2��H�G�6��(���eG���Q��j3��p���rG�GAy��2T��H�����X%��I�K���>�$����Z������<���3����!����S+������|M�Y��U��6sL�-��}���Az����\���r������L��[�1tm�Z����uc���%�\+�\J1������vm������K���}�������7�YKx��V�Ex-�9:�����CW9gs��������������H/��4w1&U5m�B�����=�(���vX�������e�L�����0=��;���\�����:���+H��O ������t��*	�n����w���&r�Q�nlm����J��U2;�z/�=x�9��5��T=�����oE������G�+��u��.� ��k���_�����|�	��S�p!z�5����n?]�O-~���4�����<���9V(\)�EB�8�s�&_��]/��8?	��\�LW��[��wo�X7E�v���E�}v�%��7����vK����������
��^,���/4E2��l�`=��j���vW#m?�l=�i�����{��C��>[�z@���T������U����N���,*�IS���t�����G�a@�%}���T)����������Q����M���8�`mS]N;Yn�p��8�����ov��5�C�]2���M����U��kV�'1<�������U:H��X�V��o�,s�����W$K�O
O50��t���N����sw��}��;:x����{��=����9c�}D�l��7���W��v�W�<���y4A�������+���R6�B>+��*���f�e�������?�B��(��/b�$J�%�W�t�;i�n�a�-�����O�-�r����]�_L��7���^��P`����<�Y+��}�r��}�bO+�V����8�K�xwH�^.���{��U������>�[]�K!���F<�2n�/}��	/D<(kw1���+@�n_��lf��%
CD/&^�.���\VF2Uz����q�e����k����
4���Z����s�{���������^��,�9;3{s����'�X�<��3��;>����s�*��K�HR�cm���:U���#%9�x�2�%�!�1�4b=���{��f�Q�QC�XZ�^�,��N��8��$�f����b}P�Ru��'�b��[#�mkz,'M����x��IY�ZyC���_����N���f�����.�����$�4q�=�'11�r���]�R�����a+��b���AM��
���
��22�&SGQEr���qe���}v���8�D�]^-��!���U++1���T�U�I���eLi����mXlqC��:V���*"��Re%Y�Y��XaUL���*�O�����P�7�?E2m�2-<�~�������"�UIX`9�2:����
Y�PQk:$G*.$�"�����,�4�������������}C ��te���X@n�e+�&BJ'.S��Y��5�o[%=�:tFc��:��'J�.��-IV�$���M�ap8@"�:�c�@����5~CLP��7���T��L�NK�(($�'x�a�b6K����U�QM��F�R\����E�
#x��,�XT������mD��;	���h�4Y'w#*5D�"UG\+2l���^�H�
jJo1�ay�Z	�j�R+�����Q�J�Y��acA�9�Z^���j�*���������7��A;�B�(I������m�����*�uW+�x��1gRW��(�Sl���\8�W�+���K,��?V-����4�r��~aS�*�-L��C�)��E�J���������[�}���(���Yar*�t����P���zX�E���Q5V�&B�.��`	��|�A�P =�#7�A��R���s��W��A[��9�Jj�&��4������t�&�R@�&���P���U^(��R�A���F34IZ��>t������EHv.[v}aG\]�9��r�)-�(3�m'B0��RY��������(�1�����I�AVZ�/�
H�H�xH�$��J�}����zGH��h�G��|���Q�5F����5F���Q�5F���Tj�Q�5FQ�iF��i��5F�����;].���_��'R�/{� �g��YK|H��j����=Q���3Y�xK��	x{�I��^��0�)dv��<m��U^�=Q�<��Tj��.����j;Z���e��GF����o|\y�y�_L�2K�G4z�j���e�g�F�Q���5I�����������W+Q�Y�e+j;Q��(��9�kzI���j�)'��0	4�(dfQ��������@���=�N�������okj3(������n������je�����~��%G�G2��Q�fJ]�Q�4���6�6���{j(
�B#��	9��	`%���O4�i�^r�[Q��#�G���m2�}�F���6eF�F���������Tx��Wk�<��y�(�(�eF|�	K+����	m��Jt����I=U���UfF�T�Q��Q�Q���%����2�	{���R~S�� ���~��"o�LD�����C���<�Z�)������N�;A[r*E/�9K*�^��J*��Q�3�x.Zp]��s��Vq���Nd�X,�0���;��iv����e�na��(�@��
��>��]��&���0y^�y��������|Tc�������4�:���&m��>9GQ���	��HWEs�����_;�����{r���C11�����x��N�r�����L|���\w�N�HS4��g�E?���T�l��A�g"e�m]��+'=<�i)+�R��YR'��6dx�����Ys��{�|�<f�z��w��f�p�Zs$�����T�a�:jk
�c����!=�_=�
���]��E8�����:�y;��zw��v{���������P]���]�.<����7�����0��������[�����'�����l�'�~��	����5���w�1���b����9�*g��[���L�5{�#m����.c���@z�K���\�k�3{��[]����`��]0�?�=���uX����d�s������M�3N�	�G�r��f���#+�z��>��"?m�0�]=�p����=,��1��^�t�p�-�������P��6"��O+*�U��K�lP�9�3fq?y�;�h[�-~=���5������yE ���4)ic��#e�9�&�O�b�So(�&x���Z��/b�7��q-���@m��3��6���-3@5�WvDy�E�wc������0�,�������J�f�(w	����PT�)�o�
�Y�����}G�4+����'D8���$��[7At��^��Q����SI�S��f����X�X��H����qyu����r<�(����/
�|,��|sm8]{�����^�L��z�d�����eq2�NOv�;�=i��rc��Z�I\���h����<2����s#��/9f��]KX�������I���MD��l^����W���Ki�y���p���Z��HOvV�pu�F����� F������Ehjh�J���M�oM
q0����w���>~��H�������
�������eK�a'S,�3:��$X�S�Y����vJ�n���A�&&�b�o=F�ax��Mo#BJ'�R��3#����J����2�*eI��]�����('v%2Qr��(x�vQ5�f���Y2�,������m�;��w�ImQ� ��W��P�8.B���O�KT����$��D1^���5(EE���ev�����
��+�b��+UHk�N*%m<ZIv�Q�AJb�z����x��,�i)
b�%k�U�m�A��es$l"J
8�*J����Rw�C	W;�H��%J*�(+��
I�Qx��3!+3�xe�Z*�LDE�&�E)3�P_t����
VPs�B�+qv�vu�Sd���,�i�h�zM�m�m�q����<0�EX��V�i)������
�]#K�$,,�E6��R�
[��^lH�L���v�R�;c
X;��&�#J�;��3f<�gd��,/�hHM(W�j��r��&�)���J�1H�,���pMJ���.��l�T��R[���\b����D%���l��H��u%�+I$�����2���9�������Z�]
��XJ���Y�@l�\� Tv���'AL�P)��)�v�4�B:��V@�P�0�w�����D"H��(�"�{��HB�E��7�SE�*"@��1ESe��dYiOpACu���rm�7I�����b�WrgeU�1��M���,���HL���%e�t2JD%���O	K&����9F�uB��/.qM�6�E�i�	
3
%���X����'����Cw)�B��4�@��5{���
�m�k�!R�b��Y(�E���w��t\��Y���Ht�\��:������rc���M)
�Q%lJa-�VDB���%Y��n�#��������xP�$�{�flII8tlToU��J �8�e���(�a��^���M2�	���>�f�cJ���m���=���'���Q�]���g�4p�:h�s�(J��uQ#�����$���m��:f��6�}uw�
��_���+@!~�;XJ�e=������#�=��(�G�4j�Q�5F���5F�j�Q�5F���Tj�Q�2�#H�4�#H��h��(����eQ����k}�������wy��G�S�	���#�G��vmm����%0	9�J���`��p	s��w����l���[W
����R�R��F��8��5��zKk��F�Q�~/a��i]dFe&e�"]YJx��4�h�9��m��F�Q��j�yF�-�5������UG�=bf*K0���(�=Q������n��$e���v�����v���J:�4�u�35Gz4�h�F���1�q����^���Q���"������G�X�����8�|b6�o����i�y���B>*�r��U*���>(��"^��F�����^�;y��6�Hn�UG�U9����)�V���nvF���<v��;m�5�Tu����G�5G�<����v�F[un�����v�F�������~G��~^�������.H���w��������v��h���������(���P�t�r9Y�,���#N����u��������|��BV��k�>�?a{�%8K�N��^������z���Nxv��ti����)���E����<6��6��.��W������8xf���f�k��
�>��.M�'�r�`q��o=�X5������c����[��4�����{�1w:��
V��|e� �Y��Rz��-��V.kyu���<E��N�5ts
�s�������,�VA��PtsQcK��������W�
�w'����\e�Rk������v4�r��{����"��bk�W6��r��[����3:�G
PtWL�'w�=u	����73�*u���;/�Hn��� �I�	&������G[�}�.F�"\=�����&<�r}���	��>�|A�K��-sv�b���V*>{(�g��]������34nk�y����9��xJ���w�9b�=Z�y��&����UD���Z��wv��N�xkB��d�J����_{�)+�w��	KF������������q�l�m�@__]�P/��q��Cs�yM$=���������1A�����1����,U�E��f��q-��2����l�����~.^��}x��l@�\F{a�������������I��Pmr�s#���{�M���6q���t=�d�������}��yy,�&_�eM��:���	�q������� �eG^Rl�D�,��s2��)eHPC��H��D�I)	Tk�P���]
 �	�4u����}h��V'��V��}���B��]�2=���}�6�B�'�':���qg&��+���c��-5/��tL���e�]��.	�$�i�v��M�.�����{�A���l���m��Gg�t����{B�����#	������{r:p���'m����W{��3�"���J�<}i��K����;�1��wC&e�Q>���A��go-P����tw�F�y����[��!+J���D�32WB���)��b���5�U�-W�{�hD#��\x�le�~^)��SL�Za��%����d!�W�Gflm1���jt��2"����e����j4aI��RQP2r-Zk�sZ��d�q���{,%��y�*
���� t�<�����6�2�-�i��cK�`��=����hwS2�����x��{x�����9�(�)`S��s�
 �jL�c�V�������Ep�v*	*y�5�-kYJT�������CEw��{,h�|�IY�wR���q��[��l(r5l0���
�r���KN�		
-D�M����c���T�$��X�1C3PQy�c;Mu�q��M4��#�HJ����D���Kx���8���
qP��8�0���'C
����h��IC�[��L%^D�D�$,�&2�J�P���Ta$ ��*.�M�tm"���V��Z�6�5li�T���m����u,�`s)�fRf�ll�aq=NlJK"ws��,ZA!N0�������IDi��-��@nef����R;k_o����E1�*,�����S�h�l��P:*��L��[D�k��rJ��-��Jx\*�48���IL9�MSZ��������������f�n�6�K����Fv4�,�5�yM�;b�(*	�4+M�E-�k	"����h�7Mw����t!���N���(lR�������g�eSM2�c+�(pb�v.j�,��t�:kk!Ed�H��PV�(���lT��H����l��pu.�(�C�q�g?
R��h�/S��c
s�<��u{��m�P������-��������or�<4�$8�B���)K���Y�����=,�4��
,�<L�pIY��H������-���R�wH����P�v��b)�����1��M�s���b��R-I���<b�A!��A=����J�7Gz��i)	�YZ[b����!E��EU
N��,��4�3�''XWf�B�5�8��	cD
v�����!���rn�
�u������s� *7������P����	)D���/��n��H�q��.�w�UE�]�vi���%\b�	���.���V��v.�U�P���(���S���I��|�?��g6�F���I~���9G�r���D|����>h��Tj�Q�5F����5F���Tj�Q�j��H�4�#H�:F��G�\# *-��^��o9����f����x�T|�J��%����K��uxP}�G�}9���/�G���$���l�x�T�#�JA.BY�J>�`��#����I	|<�^��������x��x������$�%b�(�������9��Q���n����]�������6��GW����_I$��b_hJ�/�KP�����.�x?�(��wB=Ue+�*�H��zG���������~��*���4����^���KA/�J=����}\�e�n�G���O9Q������z��:F�9����w;w���Tty�Feb��j�yG�x<!�?J	H���an�/����?0��|��(��,+*xM�'���)WMS�]��>W=�.{� l��@$�;"��������u��h{�8;�ov��u���������9���d��	��b����_X'��C�j6�V�5
{�X���qs�l@��{��	�����/���CMnq:�K]���j]���rg��������fK���#=�Z+1����6��K;�{�4�
�6���\��q���	����D�*�7n\�"R��F�{�V��Wh���J[�mX�Wyvn����V�Y��m��/7��x��&���g���z��w<T:���A���t2Va�������E�A��I)����c����������$�M�{��jG�����7�\YdF��n�G��sB�*C���N�[���{*�f���<�����9����
�Z���Y�w�6����<O*���]���e����v��(?p:��9Y�(�?�4��{�{�3�v;>�0O�|��~x&��8I���yEe�5fu/8�#H�]�n����i�V�a�����=��mg�w�oR��jq#�V����p����*'��U���]��h�j�N8L�u>��(We^��M3����2a������x�����kJo�(�]��������6��N�Y9o hn�Iv�����d]���$�id��n�G�p5�<����-^�������!����:��3Q�Is�������fwV���L�����2����Zu��X�z���DY�G
:���md�
z�CMEo��,�uG�������W��12�Q�!����F�x/S���ktA��H�M�0�R+��um^[O
�4��Y��2���j��N[�{������������7���*4n|�;�x�����	(����{{;�����I�~������ �=y����I"���������0QH�^��?G� m3Z~ u4����|6��@�e�-E��%�l������(��uqT�
�O*o1�-���&�G{n;Qd�R����{�-����f{��=��������y���u�->��1��Y�6g��NgNy�~$��#�B�!�v�9�:�:�q2�]����Pkosk[�iTccm��:$�q��`����g��i�,����������
�<�������`����Np����{D��p&h��H�Gn�bj��3��C�dH��;�=P[�t�[��{ ��������1�P��aE�X;e"��`����������I���N�8�L��NwE]�w�tFq����6+v�BQy�#���� p�#�^kUn�c,����f����yt��$��[���6���I
K(���7��j�������sj��
}~a������|p�,�Oj����Uen�X���23������eR������7��>hA39�@n}x]4��owW���p���U���bT4�VH��Dg�M��]�$*7x�7F��w���#tk�����*���b�Z]���ipR�vj�������d���P o��)��|���?� \��}�|^�H���$�Z�.�Xl���#	&�I'_'T�^�Eiz�V���kp���-���u$A�;&�dqj%��R���ak�V��"��8 Pt���	P]j�3L*YW�o.�Y�B���8���2��
DRd��|i�vn����nB�w��j�$�h�8��1�4b����1��
���tQY����0�s	]z�i��nI�)�)gE��#%PM�8��Yw�}X����I�fc��,g��g�^@���
�"0 �d�g5�j�V�"�����.):Z���i������*���u��>���,�EB�F`�@ 7E?@��������D��,
i����>���&V�;�����
;�-��T�Z��A�*h-I��Fc�R�!jM�uS71Q-alt���h����=�g����-��G��6?�V�	B��/N���,�bY��#l���(�=#�{G�<#����Tj�Q�5F���Tj�F���Tj�Q�5F��2�#H�4�#H��Tx����c�E�\�-��B_`	}!9��&����"3<��(�����}��Pn|@$�%�G0I�U�-��3b�'�sG4zG;����|���Uj]�Nl�l��u�fS2fbWH���t�s+�W�V{�{����OuG�W���1Y�2S�9�������|_;��(��	}%�I}�}�b��m���1J�����������S?$��r)$y��l%���������tqGH�������J=����4�@����.��i��e��h�Gj:FWv^eL���Y�{��yC�Q�;eJ�F�sGH���m{����~��x��Q�O�)z�/h���{G����>��Wq��%�b<��{v/a~S��%�sC�^�A!��1{�s}lfVe\�1w3Y}����{����z�*J
S��cc!=Awew{�p�s�����
������aK�?	�(�{���t�lqP�w^P ��;���I����7���S��\fn7�g�r�wB�:�E�Dp��1m�cJ}6D����/�fJg�u��B��,�f����������Nd��y�^CD�:�' ����g���Ta���v�5x�!�������Y<w�����3�f�[3��y��un�l;�-���y�hx5&���4�,,��8V�	����o��	������g��y�k���"����S�B�����K�&��}�5D����������>L�Z7i���)E��{m���6�x.������h�_x������B1.����0���������!�%�#���o��{5��.7��a���������f(|O7������T��zE�R�M���I��>���W{��}�|������y%��%Yi���6�;i�HUR���`���������c(O���1��+�*uMp�xc��!�d��d�����R���8�3�~zy��0�n�f�,���=�
�n
��'JR�����p���}��x�/r�%s��5���u���{1+��v��f�8�����.�!C\}����d�?*��e������C��|�'`�uY�X��tbH��l��N<'�PCq4�w,Hva�hf�T}��!<�k�7��5�a5�,���A����w���eK&��AJ��2
�QgUx����$�[��I���I��xG1-���n���ga={CX���+gx�{���)����� w�G�l��hZ�`��������,V�,�U�P�[
gJu.�+^�����w���p�!�����L�&��UAot����R�kM#�}���U���q��xH����9�?}MV��S�d�6�������P�����/�R���-u8V\N��p����{N��v�7h���������6���d:��6=YEr�������*�Tv�;�:�3.�����{��y���]1��h-k�ek|h�D��1�u4 �m���}���V=�i���3"
�L����TF�����|yb���*��yRI��%I��e����,,1��?x<�n�K�"
�/��Z]4�����	�w�C���GQR2%�@��f!���
�
�:��a����J~40f�3T�����/�2s������*)���;�#���&��'�)Q�C+K*HRQ|d���T��bp��n(d'��O<9��L���1p�p����+��B\���N��"��Y��wjIRIF�P��a�)�$�e�)F){5��n���+����r��ckHWK�t�go5%+[�zN�VVs�%���V�U������Dp�LS-`�������A��o��}���}��2��b�=XR�o����zD���8U��j�d������VT��o�p=td�/���m�=��wl���4�(wNl�����c%L����@��B������#;��o�}�����O��W��
�����������?��H4J�0�r�RN���N,����f�.sMCQGr}�f�j����
3wV��We�$�m*0=�6���������H���(A� �_���u��K>�������*�y-�f�&+�M�Q�x���`�O�#R�@3� H~����h5xI2B�)�������l��B((}�E���4�}��"i����J�&��g��Y�A2���g�Lr?T����6h�F�>M H���."��c��T�)FW=�V��9��]oAw%aE*��Q����=UQ��W|��}��GH��(��H�G�:���Tj�Q�5F���Tv�Tj�F���Tj�Q�5G4j�#H�F��i#Tj�I���laI06x����$��|%Wts�;��#m�V��M{ �O�'���6y�jI!|K�@�{��z5G�e�{j��Z�[qgl��!�~U�6$���%�IU���(��#�W]g�/W�\�����iU���h�F�������������Q�b%�/��)�Q��#=��o���U;�=�����������!�"]�#@����%A� �<^�L��\���l����TyB���X/(��A*BX�"���g�}���[������VN�W(��4vG���Z��]�f����O5G�+V(����Q��gu�8�Q���s�X���7�w�l���Z�.�;��_
L��
s��S����Z/n���@}���>��=6����}�-�zj�4%;�W�e]�ZcdK��m��A+����_3�z�����yG�wLT�bYh�������]*��X�����u����K�w��L��|�I����d�k������1xVV����V���R�r	��Z}������Cz��9��{���=��l9P:Y�p�Q6+
�5��n���{��we�����~!�{�B/LX��m�D5�o?/�yW�{��Oc��{1>&�;=�l��N]��������j�/Ma���������@K�����^2��A>��y�s��x���'���!���m���������6�<ANY�O l��Kn��G|/����������G������k31�
U���b���}Ew+�
0����+�(u�V�����o���
(���1W���Xr��%�<�$��������ww�;��<���s�B����B�2|E�n}%K�&���T�����92r��"wmX�UuA��HdU�;j����`9�/��(�)�[��r�;�����g8�F�3tj<5c�&bmS�M�Ke�V3��'5�B����B�|i9BO*���m^>�|�}��^`���jr\�X���
X���[c5�6�.�C�od�}r��n��o(#Ij���f��:��O�s,�2���(�]��Jk�$��|��g�79%���^g�)ip&�o�z(�Q�)hqB�tV�Y�"��p@��6����[�v`��;��a�E���a:FZ��F���[)s�r��k&���oX}�n_�$�&�}y������#���������`"=�w��:xDP�M<���m.����������u�S��C+XJ���������o������Hi-\S�*�{����������u����Jl���;91:a���,�����\�$]L��e����� �e'�F}�-����N@U���s,��6��N~s}a�}�C:�>A��N=����Vl������4��n7#�����bR�!&�)��Yw�sK2���
\��V���� W��+U� �@n��jk�k�"~�Q��Qf�L�u��bt$ ���vk��K:*�n���M�n"��Jf-I�\wt�����J��E���%R�&�� ��P��V������Dw$E�,��#H�K,�m� ��p��V\���;��OU.5i��hD���14�+�Xc.i�}���'�`��I}��sX��P��(A���fE-(*�\\<��-Ub�����2Ur�R`�����������]�Z�%�����>a�T������N�0d�#w����t`��Hgk�`��Cf|����4�����7��5UIB�+�P����M����et���#K�3k[7Nq;�k��Y�3�~N�*�5i������eb
%o�`��
������~������8�  C�hJ��|G���2['��N����m�=�6 �*)�0�������.W+� �5L ��P~_9~�R���CP�T��S�&��uR�����7�T��~�f�EW�0��g����E�������Qa��R�e����$��>�s�[�����?@����Iq�7I �Cg�c@�Oo��tijbN��pV"2�G+����*V,	�V���p8�d����C�+�"9�	���[�Z(��A�J���t��� ��n��*$��4���v�x"��y��E��I��\�n�x�V)d({t���� ��]��yWv�8��t��1H0����h���}n��'l7�9Q��U�W�)�����������<#�i����tz���Tp�Q�5F������5F���Tj�Q��H�6F��iGH���;����sg{{�n,����uG�W����oI{BQ��>__77������!}%�^,J{GTw��6�2���2���Y�m�I�Q�����j�t��m{��T������oUj�%-b��mGz<#��[^���^=[]�R<�h;��2�4yG��EW������^`��_BJZ�h�5G�m]^6������W�T��aV?��8��I�/�^����_`���}y�G������I��~Fy&U|U�W��������y��������w�����9�=�%.�'�{�z=��������<v���?#�������Y�P���o���E��tGX1���Gy�AM��U"z�b�n��,^x�[��E�D	c�7��?m�����g��DW��:z}��&�������S�{������*�e�hs�����v��R�w����Ge�OQ5�Q]�J������Vml��.������������������[����j���c���4��A�&+��%Y�/������w����������� ���u"M���g�;����0g6��+oe���Os��]��G?j�6l��)I�mpv��V`��_X�R�e�N�{���A*U�v�7h:�]0��7Mf1T�}TH2�"o�����k��������I��I{���{Hsc~98q�>�0�%Q7Vx\� �R��<�mu�4V8�wpB�F��M@�8��D/����(!F�I@�{1>Yv��#����%�2X<�g�94 tu9E:�I]C�����
����dpv{^�\B�jBW@��L������|�0r���|�����5���C�(>�9JE�/F��i�!����Gm�G��v����~�������R7������'�nf�.�R�5D���>������X�4����}f���dzOe2U��,n��m����t:��
��~j���R�d`�'��y��k����v�7���`��n�]*un���k�r��k.���>����^���s;A^:��my_�gu�=����B���H2?	�t����h����N�r�ZA���]/�)*�e����]!�}`�J8�/��"V
��"F�&��{jV'�����P��:i����I���w	�IF8�^�1[��}���9�/�gV�O�����k2,��l�_
V�p��]44�������\h�C�G#������9�;{��*�
^o5O�k��K0�����7��-�i�N�Bw1}�kD�5���^�c�8'z�����C�����gvd8��Yo!��N�[/���n�Ss9����:�����GGdt�!�1��T)c����d3���$���R�M���S2���0+J�*w�&5��k��[��ov^l���a��f&�bw�o���)�j	�y�wwVU�Em�C������*� �ywv�"��uwY�.��Q���=��R�����Cy�Yw�j
����@M> c(��Bw�������4�����J��
��p�G� b�UM����������Q�|s'DF�c
���� ���d���|7�1P���d�	���W�J������-�!A_�M�!E��mN=���z�?F�B���1��
|���W1��� ��
$�����8�����)U�b��s:��Ks���������~@��a��B]9�5Ij��y	�F���{��&iwr��,���tc�p���S���t(�o�h�P��������mf7��*��b	��eR#�"4V�*��A�v����J��^#�����H$�eN��w	�J�t�R���"	��@'��]�%J��>�tU������A������s��<��a��(��8�]���5�QT�RaJ&1<R'��$��������.��>m}�uX;t�?�!���������I�A�5��G��/R���K�\���P,k���2J.�!	�g��y���k���_�Ym;��4��K��	���!�m���6����5����s����`A���`�B#cH&�
����&�����A�#(!�n��jb
�(�mly$�*��RZp���nAjo
��RT�����f����18!F��a�d�	6�b���u?BB����\���?5/���yF��D|#�Dz��4uGTp����Q�5Gj5F���Tj����Tj�(�F��4�#H�:F���WVF��U���o�=e�qf��5G1���"���{F�oG�us���^�������YU�6��#�����/3�����=U�zG�=Q��W7]�:�x�=^*'�G�<�Tw��4�s�{eqz��{l�7�m�k���#�:�^�����������k.�v����GBt�h�����~;q��\w�m����G��=�/@��X��#���2�����G5\��<Q�W���x�o��
��DM!^�	z����K���>zg��>2�;p���|����W�~?�
+��|��[��p|������������}�]cp{o�a�Y.�����m�7�)��*�L��r�,!����D�����_f#����	����������)�����}��"�\��n��5�F��jO�'�=������h.j��U��se�t���C/�m$fMR<��0�n����;����v�dp3�����xo.��2!����oT`��L32�3w��(F���o<y�*U(^A�a�&[�������vV�w^��iV>�W��b��G�^�T����c��33�aC4�3���s�g��a3rs��>Z�wK�������,�C�V���c���Xy������GN��Ce��=BL�\�M����cp�+����i�wf����J����$�
h��/��\���9~VUf���ybp����ne�D�:�p�@����-���a�f���$��'\�{N�!`.�S��[���A�54s<�Vj����6U�}>�o��B��x,��]�s#���t������#r�?p���Y��S�)&")�����Cg��#��gd�X:s�V��iH��;x��9I�����W��I�0}7���'��Uh�m)ms�.(�-������&�`����ww����i�����C,��c(V�;\��LR��]p��C�e:ID����=��s���[�]86z+�@en�-&b<-$C�[����4��,!��Pb���B�Q�������D���Y���<9�$y��E�c��!|�>������^�����!7i��K=2��bm�*��.�dx�yz:��%��z ������a�n��{)���L��������]��'v�c�]n�"���y�I�/�sZ����pa�sj�WX(�������2��inRKUuTB�)����.!�������RdE�*Y*q-z�f�7p��q��-�<bK<��^���AN�\���v�;��,8#�=��"���;fz6j
����#�Z��	#�#s2����V31I��`���_j������a!z� b�@��A���h�����JMA�B5���P�Ca�l]d����3'u�Z�����������U�������1��61d*h  ��4��$�$���A�D�V�V��A/,�%�^�ySR��h �F���YM�����C�d�n���jS�V]��U�2���byu�p3^�������P��\Y�do41��~�����?�,�����g*�dIET���ISuU���$������_�V���j�j���o���B��ph?mP�8?Q>��L��Qd��tQ%�4�d���U*S8�!
���\�}>�+T���`����$����o5�2kM*[lj�R]����L�a��Z���	�e�ad���$�M�uj��TS37U
@p��#.WXA��E�|����c7F�i]���R�Rj�M���N�$���QqPb7Q�n3S�(�r6�s�Ek6�j�Cd�mR^I������B���H��C~��o�0��[���"���$`�q
�h�QA��I����#�A��h7���8��������*��ud��6+'k(�,� p�����H��6������(�Zfh�p��a�_�wF�h��!��m��[�70k�l��@���r�4PF�(����
lR�#�{�g�e�aJ��De���M�������U�b]������QT���_�~-w5���?QE���~�j��2���j����XoGw���ng��p��wAEYTh��j>����G��vG(�G�|#�h������Q��Tj��j�Q�5F����5F��Q�4�#diF��t�Q�<#��m\�w�z�qiQ�9GU���W=��<���F���h�;sus]��
�i����9G{��W��v���e�Tz�zG�=Q��ss�����w�<�:������G�x�����$O��a+��q%I/`��HJ/@��+=*52�!/��F���Ab�#k�e����w�Q�q�����[\��zC�G�(���yG�U������b�����nk�S�#�7��:Gx��{�a��Tm7$�bL��dz&+����������	����?�H�����Q�(���h�7!��v�����gIR�r$[u(����IL��va�v�h����P:��)�m�f6���*��G�EW���K����,/�QW�����i���2��`��Ep�4\+���:8�d�������ew�yA�u"�����;�8R]��E{G�G��������Cy�}4�����2w�����dd��G��G���G����#�6G����T��#�I��������#��/��p��;*o#���>����}�H�9V#�1��>�wT����G���_d�G��?�#�?�G����r?:;#�����D������U_x��#��}�(�UX���VV�Y`��Q33333)��#dYI8���������1����U}��mKH�+��Q�����EE�?<�����R������4��tl�G�/�����5	C�XJ���X�I�YF�)F,IU�b6F��l�H�Q���4EE����2E`�E�>��4r%-��8�����d���#�=#�yG�K���"*,�
��#tvG�~�o#�8*�j��U+JT����>���2���FH�dT��BW�I1�%/�wG�K��>���	_�T|"�E�G�%�K�G�#b���l��QvG�*Qp�H�~�G�G�%��+��H�J��t_���[#��j����E����HQ}��G�"~�9��Q�#�6G�������GH�K�G�B�����nm���6�����O�U�7wT]'�O�����xY�n9A�FQ�#�l��O(�}��%��Ci�#����6GU�.�T����U[������8F*VH���b;���\�_r?J�xR�to#�#t~�v���*Qt����E�)�8��b8�����Jp�������V,�X�b����/H�%���#��j����%�8�n��K����G��b>�!E�t�Q�j.${"l�A��)r��FB��%��_TvGz"��Q����G���E7��G�J��^��#H��\���?�ka��������)/���2�j`�������?�$T��}�X+]e`��k������He���������zVP�0�J���������#��@ ?Y$�Lm�1
��!-����p�
�����eJ�lt��9:X�x��:���)?����C����w�����P���w���a���Vu�C���:�il�[W^lu������X���o����jTl[�|"q>i�J��;�y?OS���h�m�U��5���:1�7���r��/����
/����-���m#a,T�F��Db7FQ_4EE�2A"��6G�#�H�K�Gt}�?
"����������)s	x�������H�G�o#�
���#�K~�~�K�>��4���e#a�#�T�F�\#���G�:G�[m���u��}n�;V�Z����U{Qb����EE�����/�F*���~e}�U�?EE������ �$}�r>mm����u�Z��[z��9������������F	m	a)����t~(�T������F#r_Tp��H���M*��1AY&SYO������x��R�����������:�$be7}�d�af�v+\�{
���TQ����J*�$�
��)[j4�����BcZY�����6�V-�:,6��
�����Z�����
a
���i��5Y��b��E%Z*�Tj!+Z���Vck6���6�5[0�RH%R�+�I��U��D�6f��{{{�m�__t���}t�g�.����l���n�Z�u�7}���n����wX;s������Zm�+D�ZPm����4m�t>������wZ�mk�w�m�l��;�^�����O;�;�[��]�]�wMQ��wZ���.Ps�
���m�E�t���l��]�M>��f�_v��;�vkZ�lT��fkf�$n�k.6v�"������UMj�v��N'n��wX����f�s�e��uN���6Sv�;�������3������]�e��l�
��[[��������m�B6��v&�]�B����mUn��M�6����5�����idMd�����;[2����YJZ�v��+�N��V��Dj6��[R���J��[���;�\d�����rY�wM���sV�2��N������o�@�RT�Zh{��l��6Z�J+�LV��V�V�M�y����A��`����uW�8���mu�����t}�8�
{���3�*��E��V�����!��4^���Q��@@�^�x�����
�8���{^T�hZJ\Wn&�������eM���$��Kk�����<�z2���
of��}��z�i]���:������9�w^���r�I��f�d�����=�]�u�M��SK6��VR�����CAM��#Cji����_c�{��8�<]���os�����r���gj�/A�Uu{�u�<���������{�f��(6�cV�TW��P@M�O{����|���x�����M��
��*34����oom����m�|�.�\�ZP�lb�J���h���dJ�������p����Y�6�'�`t������s������^������OO�s��h��������l
<>}{:}���)�=y�[��[�MXw}�����l����uo}���{�k5-1#3eY4l��F�Cm���3�hO�@}�����\�}��������������/{�������z�{^�w<�Z����6S�)��l��T�m�6�m/��((�����n���������_]�{[{���7>���}��q�y��{�}�[T���F�D�-3m��_C�.`���{P�g����z���z�;g���v����z���={�s:�w%����	MJ���@���B�����5<�%ES�h���TJ��OH&�*%Q�D��&�������G�
=Cji���L�i������A!���hDh�������HT$+]��0m41��bm! ��������O�'�y+����iCk==(� o]jT��GD��v�C-K���q����Y����p��+b���Z`DH���@���!pHZI!1!1!4�bB��:���^,b����71e���y���b7d����F0��Y�j�`��^��$.�i,�Nrf@$`H������f(�M#}�e�����B�	!	pH@������$%!	���@��`	A$�II!I�HHbK�BBhB��i��)$4�H?�`>{����k�c��kq���[a�#��V��pp��[{<��4�>$M��n��G���w�����8'���Y|�%���.�[+3�H�	�m�;�1����)��2J����VE����l��y.���l�f^��Smm���]��1"��4<�m`a�F���ST�4F������`�bhf�Q��u��X����#L����4�������h���������d���G���j oL3�+F]P��00�cz����7�iN���eJ�b�9������<�4����9������X�N�;s.����WH� Qz�F�k�9�������hB"�Whx,��YF]���8����r�\���%t�.�X������D�T�)FC��A���G�]������v�,JK�L�#�JD�Mx��|3������[�Uw��T-i��iL��a��D�q,�;/i��4@��� J��0K
�����rE�!��P�
�����6J�_&]�#�mSF��E�[zi����a��H�Dch
������H�-u)pVYB�B�%�SZh��T�6�n�0����w��b#K���X��h)�a�oV��Im��i�F"�Dh��1	�g7@Sl@��a�j�0��0B�Eb"2�miq��i��3�	(��
-��i
����$6"1L�
4�i"4(�q�q�kM#m-�m-��`-�T��#K-"�#�����c��K��l�������-�B�f$V!��lOPV��e�ifsR0�B[f���M#,�%� ����@�	���A���Km,4�i�g��,��[b��pH[`%��[n��Q�?�~�`���6�~b!���4�!�b�!��`1LCC6!����`�����|��">~1�������B�]��+��-In���n��tZz���Q:�eE%��-aGp|�x<0bLC!��11C��i�ch@��>�~��*A�w�f�����@$�����HI	A!4�?>�
$�I	��~��~��!��*6�t�Ur�����������T�F��T���:���f��7��}[�i�a���si�|���J���"�i�)�D��JP��r�������H���
IH�aJ�����f�[P5Qi�d����e4��.��nU���:�eJnT�0�E��p��	A&�
IJQ����n�1'�i��4D�#M��)(�H�b�F�>�3�F��v�AK`l5W��c�����V�**h�A(�>����9e������qv*Z*�*��IcR%���U�

�[$lX,�E;��1S9=^�.�	�����n�B:��J��ebQ]X a�mSd�'��i���U�be3��j���j��Q;��.��8�v��PL�:�,Zd�K����.��T���j�|��j�2"�%*B[����AQ��u�VE�������B�jb�3%	�j����@UBa���M���*S���:h�0���4X����sM�
D����\��P���>�3+���D%��vdI�V%Y-+$�	�i��(�`�]�IT�P�D�bM�*�uDM��"��!L������q�*����#���qE�i8��dM(��j;����K}�F��|�P�	�2Yd�N#�L6i4�4����m�@�0 `m\~�m��`�)H����:�$�P��B�(>"�
�"L��a!)���q�����MQ%Q����'I�uH���Wh^��Su.f�3t�!�Q	@�AYh������A��-B^�Z���(��e�]���YM�+i�,�L��P��,*��^��8��$Q�.:�15D�q�y#,�"�0�9L���"6���UP���I��1b�yr'(�j%�A�JE�UT��I:��
��H�m�RQ?*E���A��S�][a�����UAH�q�@����f�*d�X8���~I5m���.%��5t���P�ec2������UrdV���/#p1j=��Q&��n����)�����]B��(��������&(�M����"�BJ���l0h8��+1��H����	�-R��j��T�4)�t�l�N
0Ih��~��&j��R�����TF�UDA
\�:���dT*T��� �	��,J����5Q%�L��M��%Q�JQ0�b
r���q�`����T���&"H��MHB%bj�r#I"$�HLm�����U T�c�%	�:06�m
uAO�M�}l�t�h'b�zI9�_�\e]SuW-�)�n�1�	bD�M���Q����	aD�"�-�h,4�I��L�0K��R;m�����Tmt�t�����?A��F-�^N�
 y�D)55���
���/�yU��^��r�0'G��},�����&1
�(l�A������B%p��^-&�
����]B�Q�L��������F����E�
�/��|�*":1�kZc��U���o��
q�-%!l���x�9�n������uM���������.�'LT7*��CT�3L8FP�%b��*h�B�o
��V R��(�&��67�D@�U�Kr$���)i8Ui��2����XV86Lx������L���^����%tT�h�"��Z�0Sh�B)*&�H�$���u&[���}�SDUnF���,*�1G��]�tL!���A)f9I�)�!QP4�H�MP)6`��4]��][��� �����U�-*�-���
��h�N����Pl
N�� ��v�l���*�P!���~MZ��2�mS&"$�!7�<����C-$�)�ST F�F�t�����iD�i�H���KL��Q]UTd��Q.����-8�����H�L���-����0<
�D��W&*��VB$�D�6��W,�E���f�_c��Rs��47I6sz������Z�jq,j��8�bU��(����{�M\J)�}��PXu\v�6:��������Qq��4����&6�%��HQ���������T�0���
6Qg�+j�[�2�n�^er�
m�������5V���[���j�(�L��q���m\�o]E�H���^I��O�~C-+�T��2^F
�"WLAv;*��F���[����V�������qd�J�F ��;��{�������.��V��
N���oz���8�:���������&��*��S�����B�a��U��5J2'�	+d��dk0�8�sgmm:B�(�����Z'SgX�������M���\�� W�o<7.�]I�3#-���e6��!	a�pF�vq]�	2#K-4�`��B����*�����HnU�vbc
>���V-\&���s�t0�u�6��+m`5�U�\�M
��(��]�B\��#+��g�������bK{��w8�169s.��Njm��U	%`7���KD���~��MZ�a�6�$f��.��ir��F��t1���b�E�5T����������H��N\�(�E^��3�����\j{,��B�<�3����h+k%��]�}�:�U�c��D*.������j*����Yn�,ICaz9f����d[s��U��&q��Tz��.��jUj�u�k�"CFTn99���t����Q���1���,ff!��M%Y�jS`��1������V�E�Q�~x��*z�����,��!5X7 S]h�����vd�����N�&&�����Wk�j
ykV�re���;�t��6����-801�>������`�j�n�2���t��f
7G����j)H�����l�YN�Y��1t��"�
{[{�[C�J/V8���z�8nE�|�OD��2����(��{���7�1�q�hD����C������Us^+�T��b�����6q��%��Q�y��]%c3d���\n	Z��xY���lm��)�����Z<r��j��O-*����47jb����3Wl����`��6p�.�(6�����{q�ved���"8_����w	8rH�;�&'p'�}������-�Q()^��7�1s������r�W��4QK'rJ
/x��ry�i���V�[�t���=8�7�H%���[�n��C4�!z�"2/C��J|��,�+Zp[w�/������Q.�����
X�*��29l^I�I��WJ�]_JRQ<h�LT���2��}x���=����g��=�7F�
��f��hb������*���js�;�{amej�/&�b�,�U*��dY,�D!%g�����a�����GJ���MR)�+��E���v����J7����cT3���f�%��D���C�Lc���twE]%�����b�+�
��=!�u����-�O$-c���U�h�Y�(f�YZ$�1��*�rk�S��m��n�[������ub�����i��c�TwP:-��4�_��^��l���"	�mg�D��{���*'5*dw���������J���F���>��t�
��=&r������S947�M��	]lf�>��J��f�b��%�q��c���/�,�,��jYmK��e���k��aCM�
��T�D������.>�����Qq�A�["�13�u�y��\O�Z4�$(5����'�mb��9)�+*K��(t�[�����q���h8;Rkr����������������kj���DK�Q�'�D�U���c�`�GxU�i��A-��ms2-�t��r�D�����zV��mL�iE��Vr��u��Tk�U�Q2M��:���Q��h���9f����"��]�C4�(��m06'��XC�����,�Yp��6��H�J�wA�n���i���O�����,c�c��P�<�c�Y��L�K5�E	{���#m<A��	�f�c���f"������Mu��b�D0/Owf�f���Y	�Y<��3�0r�zywm���J�y|�A��4{����m����k*�o31�:��$xF��y�s9��1Sl\�i]��Cn^���T��f;����z
�B�
�/W�i�<.Y�X�mM�4}mY����n�&��H��B�rg:�	 �����Jm)�(��-�a
$�2��,�� ��*�yrN���iW�s,�]L�a��s�,�UZ%���if
�&�<�H
P1��"y���!F^�P#0�n�F�dn����.�1 _n����&1y���Uv:�90��N�Fn�M6�3��B���*,�gd��)��f�V��rj��>��)6���WZ��9����(4��q	���NB�D�����)�)7h�4ri�j�m7@�T�&������Q.q���R��@FPb�������
Et���B��|��P�E�������n9{|�����������V��8���jo��z �HUl���������|��9z�TPm������%�CZk:��A�v�]��`�R�K���r�����m�o�&*g�i�v�5���tL�#�)H	F8�V����#iLl����'0l8��
�B7�I$M[x����wp�*P���mQVF:�V�2
�u�{����8.�*����o*j3��
�`yt��)5fC*���Y���#���hI��;����ss|����v�m����l�W�H#Em��$�qJ�'��I��*� ������!
Pt�����U����� ]����k����X�{�����C�	�z�}c�Tr��'��H�W8av��|��p>W��x���qL��1T,&94[T�rDw#0���������qM�;Vv�%�\�r�E�*�0"*��.���AYW(�E�5�|���"������2�_^A��M�)6eBi�M����@��A��R ��'�(��P���/fL��E����q5d�-��lab�����X1�2�~�@�TX�2��R>���k��*%����3O���Fl�����DL��;()P;n�e�ia
�v����2�B�	��c�)	x�22u6KG���pN�Tha4D��v��6��Y���u�4�#���<�r72��2����!�@��Y�'�K���n��0�H�|FU�JnB���eM�	��n
�����\�w�����KHy�K�Gx������SBJ����v��e��1�16���]x�Z_��o16RAd8��{�
�;�8��Z���c.:��26��r��r����]���
3J���/�7�0�{���!e�\��s*�w��z���^o���W�U�q�[��!6"l���a%�ZLm���83�r�8i�;R�U^^b����{z��@�ka�e��6�l��/N��0:m�x����!���YU_<{�����	sy!��r�~��s��2�{&c��Xsk&��4T��Z�*�)nf��/�-Xr�JL��h����'yM�����+.t1�T��t����S"�kB�\��a��D�:���#u6����u�Swj�)<2qm���P��������%��Ue���B�`sD+(+��u���}%��rw����jF��$��+����[�w
�OV�H��Osp���F���������.(�ouVh����&��-��m	V���vw��W����rb�P	�$�[i8j�Xn��0�o���d��G����A�M�q��
���A�ayt�����]���Vy.��,��;��B�$T�0�9t�)j�� h:���**7E�s�����kyK�B�c����O'
�X��2�Vh����(6���a We�Z�V�����Yw�r+�I)�O�^�����%^u����=����CaA�!Z�b=��Y�U����$g�n�DE��T�3KI�S�7�Z���Z�	;Ub�G�ZI��v��5����9-;�w�����uL�ig>�N����\�V� �`�{��Ag1�����K��q�i>z��Hm-�Q��"�Y��SB��q�w���6�	����[��We:�1��=x���{�����;U�V����D(�;j�2fAe+" ��<����"*x�2�����r���Y���T�����Zr���F.4d����=W���k����m�-N�.��"��1l�k}��x��I��[�N������V�����R�TN��V�����HK��3�	����m�Ww,�BnFDX����MS}GE��}i����X���X_U�T�F���O1�����Vp���b�*N�}V�Y�B�{�K�3v��0g���h���*j`�;x?c}�Wr.g)k�0,[��%�Yd'��L��P1����c&n*��Cj���{�j�s�.����R���,�e���f����J���9�@���t��������6�
o%-\�rb�Exf�ox�.����M��V��{.��0U'J,��z���c�#�/�����/n��[��j��<�<�$V�]�:���������D�=Q���M
� �8_:��5vV��{iN(H�.�h�Ml�VX�5 ��M����lS+Vu���t]���X"RK�m<�h�JwK��p�4���1&�]9��s{�����M��^�*-+�f�`C���r#,C�����m�9��L2 mr7U�;fG��,e�V����h��*�Y�������i��j�������>�s�*��J�z%#��-�jd���>���k�m��rF%e�kTn�Z]���|�x�����>��xe����L�� 4a��u|YmJ����1{���v�^��XL5�3��v�E�/�hb�u
Y�'�_%����'{NW!�_]Y��t�]uy����!n<���W����[����PiB�B����"f=���T���������k��{w$�Kh��
�v��E��������6��r����W4l5������G�m�Im���9�[���i��
��;$���kiL������1�oNi:��yD�*�����m��2��%I�VU�1�����pU�m����c��Il�������
-u!����oVi��s���%yV�������	�p]2���E�=0NI�d�����BR�k*���1|��N��rP6�����y�2`�5n����|�k�z�V�b�i�6C��1q�Y��_+�n��x��N�iDo31�������O��8�e�b�H��&�J:�OX�2r����Euyub�e�H�C\����:�a�G{d��9Y]�6Y����q��i�sj$�\W�N��u��AjW�bH���}�.2�����K�:Kx���u�8�VoP
<KhBX��g�Q�+\l��Ja�/>K����	�n��tr�u�8,�����`urI����fn2�}��78EY9^t!�Fh������Es�dn5������I�vu�sL�@���!���j�G_f^��C�����}�.�4�{��4�Ua
�f����u����e"��U�1�;a6$�rs�X�#p7)^����`B�3�\Qr��cnm�%�@���c�f��*�3`v�t2T���+�Op���<%�t����&T#������
 ��p�h�-V�`��)��!�At�61�h5"� ���E*�#S�
��F�$L���"�jY����T
��im���v���v�#w�Q����*�-x��;�uK�Y]��u.����z���G75������ky��W������gk��m�^�U�����=i���\�\.>SJ�Q���v���V�pV�0\Ki��of��\5���._Q�����\��;�����7]�sv,t"9rV0��<u2V9�`�wgrg$n%[D*�0�l��j�(���i���66�FC�R���$��cWE�R�Re7R�t}F���(�-Q=������`�%'L�E���Q�8�/L���x�hCT���K�0�-�&�Z��� �h@�b���J�ST�u��7e��F�*2�L#����fU�b�����uT���pB�����}L�QT(�!(CBT>�%���EU5t5gZM������
(�Q��0iTH�4�A�C����Dc$����-;��>��t4E2�6�I��0��1l��T�IPQ�bL8jR�@�$LQts�e�7�����I����U2$��@d�
:�P*��#@��n��yZ7E�A��:�1��(HV��P�����$�����L�08�1|�)�P�28���\����i��2U
�eQ�QR��
�zARo-.�3�A�f�%Sn�@�H)6tP��ai�S�v�t�f�(��*�j�h���Z5����,��YB�-����r���9{v����Pq���b��Y���I�#�=� HX�u������!����5�hlq�!n�Kf��}���Am�1x��7yN��;��������t:����]C��y�cEFp<�Zr#���b�zV9j�v�����V��jr������-x�p����������TE����iUv������H�����!"]G`=�[�Qk�&��u���!=q�m���X��i�����V��yJxa��a�W��z����'����vh���s�sKB�1}�V�U��p����J����[}�mue��V�;R�C�w�d�������]��$V���B����P�Ep�"QSQZ7��Pt���l-q���]��(�UN���F�;�;mbks���)*L�:*���K��/D��P��W,�k}c^�������p����h�1V��U�A����(�Tqc0���7����v.��J��]ov�}~���g,�[%���.6��Q	�UU������������� �������S�\�m�-f�-��N�,py�����V���srj���Q���Q�Yz�^�������z����h��b�"��v��=K{��l��n�Ki'/��<6�W���&�|3����+�4e@J�M4v�H�����v�Q(cm����K�����mMr�q��x�F�3u��P:l��#S����Q,�p�B���SB����<�U�&���#,������(�)"��Q;�nB�:.:�J4Fa�oe<#.�rhl�Ph�T�
�4j�&7(Q���K�m����CU���)
E
�Q
��f���E'�yEz���)\�^�r�������R��!�"/���14D���Q��RnU	d@�6h�Q6�1Q��U�:�f-qH����q���l�T�B�r�Z1d���V-������1**"s`9\3m$)���T�T "��*!��h("�"B�):�S���
Y�J�uT��@(�Bl4�Q+�2��A�/l������c3jf>A�-oUt���;f�����������N�F�������$�J����o{$7R����9u�%
��]9���F%�E[���^��ep����d������ �c��\J�[�<We���$p����-���w�D�������u�B(j��%�9V�9�m�
������]��\��.T��MT��e������.����{k��t���@��}9\���w����f>�4�;�w��tJ����T�
����l�G@[�=������ae�Ff���R��r�6��:�w�:�����Y9���H��]bGX��j���KX����V ������=���)�v����]Y�)�������w�.4�c����u;��f�p�2p�j����A��/(S������Q��/�����zoWR�}eK�����0�x�99S�^���O�0�P�@�D��dk�xiF���r@����J"�q�T�B�1#Z�KA����N5h%�'���E������#,��uUK���*e����x�4!�w��F����������.����eU��!q����U^P�M	"l�%6jTD����q�[� ��aA)����P�z���I$������H��*naJA)���AAJ>TZQ�E�o::y;2���)&�E���%�R��GUT�~Ns�%A(ZjB|E�ec}N�f!��-np\����TU�f4K�!�Uy�DF�2x$���PT��hS�)n��������$��"���P��� �)�)J��6R�h���TE)F<����,6��^����4`��"�����:�Z�v�#G�F�P�E; HAb��
jF[I#^.�U9)�R"""E*?
TTJT��RC��I#U����n��;������gSYVvNu����{��|+k�HPHtn3L7JT-��	��h*����*��D��#P�)��"�jP�Q��#�*J�2EF���H����0��[�jt�3UB��Zhe�R�e*!:���b@c!�n��$j�iIE�i*��q�:�Q1��u]]���5�f��B�5��F�4
"[*��m:��$�E��5""�jE;1�'�rRe�C�5�`���~��Y� ����fW1]9�U���6����l�G0	��J&��
�"�9*�&�/�H.� $�%* ��-�h(�
n�@�A���(�!gp��z�EG/���v�O=�ae����H�������-:�1%
`��g��"�*q4�5-��(�j���� ��E�D��N8c�+���-_�����S��Mu�-�'),��m��S�&�mh���L���B���*�$��4�f��2A�Ba�x�Am7t�����Pd!+6�7���(w�J��j��G0���>hP-!H�E ,���Eh�)��tMG���
���$)R�i��X���hNo�|�K����������N&D�Qr�U4�H�1E���jJbUAf��L*l���L���%�X�A7+2���������bM�Nm�f���cu��TiS(������������1�qGbP%����D�UR��b%$T�TR.����]|�hHcr8�:�b3��m���q�Q�Ej��PH��Pb�MI��j8Yq2�u^���7���i.6�gdY��*�gy4s9�
��mi��%��������R��8T
2�l��-�������B�iJ��VLb��`��\�]�r������*��������^?F�eAR�H�T�)�B���� �9e�']���gH����GT�Y�H��A;������I��)� S���l� R�$U������!s����E+2l���Np�q���Yp�bA%E��Q�b��jT*� ���Ls�L��`���Yj��=p����sZ�����c<�F�r�)�0So���pS�6��a��/�"�(i�������Dp<D�������=BV�\[�!Zb��� ��'P))�PH��2������
;GD#�52-��^Y��5�#��V�f����
Ay�i#!N�&!s|s��&�e�%u�z5���������UkZ�����q�-5��3��o��f�����5j�P�^Y���/6��b}q����<�{"�T���^f>e��F���iNR�
�����Q�u�i�.�)�U��J��]���=�����>E�)\���y��4;��q��wo�=eb�gb�b�������'�I	iX�_����kck�����	�����z\an�1E-TCj�\�Uf���������D��Z�����4���m(�
�u���[��%A�����g�y�V5�g^�Xy��Nf�r�wK�������l����n�4��4�P�V��u�B�ZO��!q0�����F<�sW�����^+��Hc��E!!:M�$Ug<��c~�r����+���"w;u������V�#Yi.�
]����N�}59���QU���]h.����\������6ul�x���wL���$���)����]�����ab�5J&�TG 6* �u3{�N��	s$��0������������{���*�{ �f>�����G6
��Y�Scy&���3�,������1�SI��3���YK��4��?_7�Ud��i��g�u����x�x��*�K�5����u�m����n��`�KO`P��>d[���T(*V"��Z]�=���@��X;�8�r����0���p}v�Ak�bp�n8V�$��k�wNA��}���C��iD� f%Z���`���R�ud���.�!�������R�b���=kM;�q��h[n����$�}n������E�2���Z@�s�=���.A�V>N���LC^p��l����9%��*�6�6"�1C�4p���cg�c��������>���}H }f����{�/�|�[���A*Q���/�2�4�I��\Y�[��)�fC�v�������L���bg�@�4�	e��S����A��)��g�;_��g9���6 ���3(.���
Q����Z�q�'����-�<qm�S�wG�_}��
��;dt���lVYJ�������T����xH��X��>5$�Z����L�+D��X���n��;��H{�D?����9U�-�������*��r��i�>!E�����
��t;x^ew�c���?	{^�:��aR���E�i��jz�rwanC����bq,���(�fL���r�U11����5S��s~�|h~=s9��M�~yqz�-����u;Uo m���]�����-ksF\UM��$�2BoV
J�<t�Jw�7K�i�������M�h}�F4Jq��-�)9��#�*�a���)[>%�c5P�,��u���������!�{k$����}�F=
,'��2�������K�w��6T��X�����-�
Nv��
8�Z}Z����W��u�{�l�R2���]�C�����F7{�h�/����
%x�� ���R����;:A���et�t�fu���:����rq���h��,k�����o':}����o"h��v�s��Y�b�z�+�IIr���g]����K�_k��V��@%���`��CC\�@����C��v���������%����@�H������x;�W�T�}��)A�bQ�B���L��hF���G�w��l{�l�P�e]���3b��$�\�����g���X�t����u���-��t��U����{�B��f�������uS�X��������VY{jWSq5]����Xz���b���`�����W�k�PM:�A|�\������$T��>�Y�}���U�)����2�b�����cR"���U��m^Y���qLQ}�`��e���m��;��w�����r<�I�;��)�Xp���Ga��������[Y�*�m�F`��'��* b!�\7����_�����s{{UE������;���P�N����:.k]����|��Sx�}����5��$_���Z����$��b�e�w��m%�Z�y�U7w��/I��Q�u��2
;���d	�xr=�-Q9�J)�,��3�����1�~q���2+�+����P�w��d�.�<�TOQY(����81�u++ue�9o��'2��G�>��uw�aj��f�����j)tz(yj��BT�W��������V������~�g_V}
|��I������?$~��%���v��.M���]b��uco�D7���|�������C�:Xi$�i	�>��'�I���W�h��u;��0�VI��.������7�mM���E��IJ�A���}�'�>���D�����_��}[��b���+�������g}�%��R������i���pV�k����LO��������h_d,���D��]��j*������.n��|�e������:���;�t�h�3/|������V��]+�lsr�TdYP��r��$~��MU^�}|\���{�u��#���_��B��MJR�'����Bh����m���8�uQf���G�'�v���>��N8A��W�������|��$J���(��������k>�;.*�ts� H��K�����Ys���R��J1!���#
i�����t]txK{Sq|>�\��M�sd���h0[�n�;s�O����_)��E�Z~w�?"��v~_�Ca��a�W*���9�����V���N����������O�O����`�`��E��V�"0E!�U3�Gc�hw�����������h���;
�$i%�%L1i���vRwk����U�ev
+9���Y��9}��O�{�m���6��^R��Eekc���}�fg������i�g�����J���=;z��hC���
�Y��w����F�O,A!u�W�n��l���j�/��Z����6��Hq�O������G5�B�n��]!x���A[��Ll#�De���0JHz�x(�T�r��8UF���]M*�P�,8s�'�Q�������A�B���W�M��������d$:<�t%�sCtz�h�]{1��r�0���J*�CDo����,��}�����J���t
!n�+��$2�g��=�r
�*�yT6���
!B�2�e��!Q��ur������+an�T�m7M��2��HI�B����B��@i����v��3-�R�F*�"����@�=��G�G�E55r��r��y�m�JQ��:X��-�&��AB��P����b��l)�B4h\i�-3��LK�*zi�e���b���)�5�Vb���:�4
0V��e�H0�yh��a�h�]f�#A�6�kMm{iq0��A��o�m
�ZF�ms�E�{�E0�!��B���;��)��k�e��K���-��#b8H�f����`���f���M�1F�t�cob�b	v�vd6M��U�JZ�lS1�:���j�T���v�l��i���������M�uf��B�83y�s}��G�����HGZ,�5��	�$���i�Fm	-1���8�!S�8��V��u�2�Zq�592�B�D�M
��54�BQ�,-�[�1�F�*fs����� �CM
�1F�J��m�h0�F��0\`)���h�����SB6%�ia� m�Z
1u�"�Bl�4-0�F�c�8��K/� �A���Ia���o,r��(��aLK�
�bmq�y���(0����L-���D�=�������Y�[�"��Mb:��y3Qe�v
%K�H�BI��,
�B�I-L���.�:��.>4��KL5N0�[@��f�F��q�I`&��a�,��Mm Q�q������e�e�a��
0����XhLB�I"�Y����#�\�����*if���#M 4#L����I%*b��	@bJ���#Mf{���6���q�1B#���#�F���#n 2�� �H5L)���m4�=�m �	�!u�����l�0FZ-���H�-�^H8�1[@�01a��$��m�m�-��LB��K
SGX��@m�6�����#l�H8�
!0)���@��momk,���H�H�g�I�mF�i"0B�.0��IS]�3P�a��Ii�,��SH��bYhQ�L��@�����l�-�M%X��l)�m-0lA�km.���M�#�Qb�4��.S������V����aQWlbx�(Z#���
a$/�H�>/������'R�GX��d-�Q�l��3�1�I��0���}�/�d=#[������}�
	$���/����S���8�"��p���8�DW�#T�+l���1�y����\+�v@�J BP"i�3�O�kA����o/�;B-}+�U�5��p������9�4���}���;�Z�r|d���S��I����+���Z�m<e�Z|������$�@a�x���?�pB�D,	S�@?� ���B�B�|H_���/�1�>&�M�m��8��0�&�� �6(����Q�#F�#��F��H�	F�#I(���������~�����m��JUC����T(!��Hj�f���G0�y��/	�eU�s}�K�V��yj.{�kn��A�S's�}�Y����H�Z�2)���Y��nk1��J8v�t�9������[	`��+K��������|������s�*��I�����������U��:��kYV������Nt�D���>��u�dns�jh�m4
����h���v#�h��{p��UY��zUo!��n���)�u���'�-^e�5S&dt����:X�e��y�q�j�h1&�s2*�����.��2,��w��z%K�N�ET���c)���(�w��<���"-
����i8�}1+��4��������7��
��EGM\K��)n���t*��^��l2���b�JN����k�� ��[�w����������n�Mm��N�*��O),�N�[���{��{E�y���*�tN�5ewV
�:���w��7w�-��'3N�d���sY��%C��'Rov��q���]��.�3x9�\��7n#T��;������kl�3���6�X�������6������������Y�1���B�R��fN���
��^p��^�u[�fi�:`<jM(��<��Kf����p�����p�"���C���zn��%w:�����^��P5^�a<� +��]�����S��M �����R��m�pU}v�[��ZJw�������1��o�;�m�����	eH���Ol��1Y|���uCL89�fGZT�m�L�L��Cm!���l��-#��9Uof���`-wQ�qr���6�������p����u�
�:s5����3�Z���Md�_c�G�@���T�6jR�fl�94��XwA��
�������SFz��B;%V��b�*��m
Z�n���]���������R�n��U �5�Ug������n�k��g[��j�����K�V����|�Z�;�\n����dX7���F�x��o�0 �$��v�����)�TF	|gW�PC��B5�dW�� ���XzS"�������h����Nhon�Y��[�����b����Z���2����7^���j#��R��wf�������	�'�����Z���UJ���dX�;���Jt�TA��|���J=��UUo.�e���"�Zs���7*�E^s���lS��*�tM��L��-U y�������~B
�-�l�.�[��jB�X�M�"1.�B����$�"�1���41�A��g���>0bA��4�����"0Q����Zb"i'X�
���m%�a���`3�P�$�H�����(@���A����X8p�[��I�$�3���$w1 5��@sq���f����'��)�c�I6�� ��$_1H5��*�H�so� �A#'`�a3��vn����}����Z�A��;���
1�|�0.n��7�HG��}b����HiF�Q�4��@}iSLF!F�����bDh�y@��$�|�q������X#lK��������F��������rD&r+��]��1T�7��F	���]�G�8�k�@*��~��,��-�x�����W
���,k��x���z���� ��h��4�6d�By�r�q�OO�	�&{���Yb;�#X|�`���H��WH/[���A�
�T�c�e�v�B4���P�gT�z��^j�0��9@�Y�����a���$^����W/TJO_1����yz�
�����@����/v�f������z���Mf����,o���*���#��E��f���T��7����"F�y�[H+;��h��z�H��@_X�)��Q��(��i(�i"4�4
1� 7��=�E��������%�bP�4,�,��h���!<��Js5�H���{���q+��'q���A������8��>Z@Un�:�^��,>�RR���<������T�9�`H/�4#z2�j$�����]$V����p��r�K5��� '95�S2�".�k�����.�
Q�g��H�{t���HU�����7���!����!�$�����
�wl���$�
������
�}�<`���1�qX+�OT�T��PT�/p�-o]��(
n$��I�i
�u��NQA��TH���-b���l��a /���$ti-�#L�����z�H�ip��wW�H����t�b3��k�����hx�Ii�r�wH
���n�x:�G��B�Dh1(���Q����A4FLT�aH�$�����w��*O��&_�"��B&�n3X�A7/Nc��fK��F;��g{�E�P7��R ���1i��P���p��oXF!�+��wiX0���l^_��m�/Q.��`[I��X�b�T���%��4�t���p5x�����
�s`�*��(�s�,���[W��0����-�}t3!���K��P�Uu�WM`���n���$������,����=S��DwI�JW�x���S�Uh� r�A}���S;���0�2l�4@����&���k�h�Jl!�d���Pe��9�P�N���!X�Jvx��Y�i{�r�P��,�X��j����F�(�F�h��H�4�5i���T�P
��9�h/�����CP�?��������W�"�^������!��1�c�my�-}�O�D��6��*�#z���M� �r�}V'�t������y]��(��'��b<����R��2-�����@<(�����v�D�g����xc�m�gh�����u�C��@�5�����8�B�{����G��,���x��s
��x�X(�4�b�R@Q���JH�$���K�q�F����"��V0�v�DE�����(z��S�9c�����1{��t� �X��&�J�����(�N/bJ�����D�-�+Bs�#��������M��\=P#���?M�����l�t���@Z6���Kl�Q�����7������s5��Z^�'"�iF�#!$Dai7�3^kj����V[����f�T
�J�m
���[j�96����Du�!�����FU����1����k>����>�/2���������/��@~�� 1f�dU�I�/y][,7��e�n S��x�V�O�
Dj46�Q����G�iF��5+�.�z=R4������j@s���_j������������o�]}����S�iM�c KNB���i�Z���iL����
�
�� �7E{���]�6��i�U��A����ecpW�L4�R$�@*U-����)�!i�z>�����,�WH����&E6`]�h�l ��L���������UH� 8�$##	@Z��
�|�>�&ZQ�+��n��Z��L	j�L�m\��Z��x�<n���W8��A����l�i���LLL@�b�
�Bc4��%Ht*[q���X������MJ
�__���:���P�y�k�-(x�z��q~�?8d ccCmHm1*�(J�.���<.��0��fg.�=d�I~��T���@�?������#�h��i��P�@!�����0\���S�z��90�KH~{���L�z���L��y{3��dq�di��Bm�m��Cp�����o��H�1e����c
���������j5cj0��(��#d�I��&mw�1�5M���n]z���#�r%$h�7!$##I��V�V�\��/��+���5��������$
$$)P�ti~���ZaS��s@��Cbm`�
�����VT	��Dc�Y���2xn%�B�@$�(��i���[5w�*���I��/�����
�lC`�i�o�es,������bY�^^]q�7��@�����1��mhm�
�lCj@~�}����@�|����i�����<k_��_��K�S������@�_Og�=}�#�Z��yQR�t� ��y 7�xY�RA����rW�A�j;������S#���kN���(H "��o���kK��sU.� B p��jW_�����������@� @� H}��\�s�V.�j��vW4�Y�w��D�)� ���9����O�8������ P�B�������K�����P�i%	�j�X�)���l6.4>0;���i	�
4�!6 �$�J4mB?�����y�|����^��^�^5����G.$�cm������V.����@�!`c[��_V�9I���b��'O� ����5W]%���n+�G��"��c��F�F��f���J�$��p�*�Px
��7@Br�����@l�v�1�j]>�"%�D�x�@��K]���$�������(�
���������9���K(a��}�����L1�>��]�%kj���+����Y�����H�20������BM��l}��`�����V5��<��B���"W�����6��*��+l�i�6Z�oADAKi���x��7tDe�w]A]MY���k���YN���V�B�m���$�kf���"���9�,&�@�5`mtw�8�<.�<=���h���+������`;���,��������� �f��`�������lm��N(�>x�m��u�`=���;��}�2��
��7��D{�[;�+�l�����5�����g��<jo�.��n�������E��u���&���<�.wy��=�+��t	������^E.�}��q��������!�r�:.�y�s]uu�G�=`
0M��m��HrI�$&��&����k��z����Tvc���,jlKhE?*�
�V9_�	�[>���������z��x{�|�`��!~3����u'%�����*�@�ua1v��'d�_}V>d��������A��h�s�}{����w�As+�
����A���3b�=:
�)f+�*I��#�k.|���a���{��b��?J���]�+�_Q�_}%f�%!m!��g�hG���M���}Y�V��0��Mv�&�*N}.��v]�����a�D9���kVc0^m�����+v9L����R}��k����y���q.���#��<:�A�������{r9��}Y�}R�+��w��J��45e��������!�~�i���o���V��X1�xx{�O�S�����9�����O�~��Z��?%���]m��>�d?�f��j�b��5������y��w#����w�:�w�w8M��~�}n���>K2�����{���G�u
0.��R1'^h���L��w!��"0�>���+y��g]]�!����\���u��a���Zk�J�������wb�iaZ5�d����Rocw"�h�"3S�){����S�+��F�r�-�>��]
iO��kNQ�1������5U�h�5���G��$��B�l&�I
�&�hI�!f�F�v*e����t�� �7;��
�lc+�������l��uw���c����.+������������;s��I�������|���\�4�X�q�>� o�V~{NO�w�{�(�%���O�����������e��h5)3��m_�~0p�.����JPx����J�I�[87�����c1���e#�ai��9]�{�U������u�|f�;J��'��TWB��� e�V&��-��>�?`����U�L��}�����U��y��c!�N��_?]@�Y���
�H�q�l}�����V���F�vy�9�eu��Wk�W5v����l]C3���V��M�XC:�3����
w�;��;q��\���|}j�:&1C{���^������|7��x���s�]K�PM��?������!�%T�x6�{�������b��1G�8����'u�[����`\5�T���h�t���a#xv>B��_oT!�<������`�p�t�o�q�o������������nO}�����������<q$��pu�������3��	�r���B�7�ik���9�r9%���B��l�#�M��m&�6$�_7G9��t�i�CW���p?�y������v�3Z8*��cV�CC��M7:�� cK���c��G���X���l�D����W#�P��<����<8%V����c�+�k��������pO��xk?i��( 0����2��v�u���	wB��@g��X�hF��`vj�g��]��h��R�T����T��:�nbv�D�I�J�F�Db 8�t�5�d��9tZUP*���%x��t��1��m���c�Y�\�HsZ����	�T>^�
h:��8� -����D���t�kx����j�vj.4���z�6�x�u���7���m����	�l���|��^��T�=b����b"1o8��	"v �L�;�t��7���+���6�����H��-
�}��G��q��@&bF��`i$�D�bH��F�``i�$�L[h�����X#�n��4�����i`m�V��K�T��BCh�i	*�H�b
U����EB��4��%��ib8i�HQci�u� �� J�X	�����[hm!
�������I����K��������HCk�8�p?��mh@��6����h@��6��
�mh#@��6��
�mhA��x���(/������s��@��>�~�����?�������/�_�~������l?�K���$�Y/zL8��3:��U��E�*�T���u����W;z$�7Zn��@�@����� i���R��k�+Kk�8����p���p���p��Is�������6��1��\���I��Xh�n����o�����Q�}��`�s�������o��9�-]��sfIS7j3��n���_K};�����N�D�����)�X�-�[O�s����]�o$��$p���>�C��Al65h��*�3�W9�� ��	3��g������F����h K�`�/���k�!��|���?X~�~������C���p8���p8���p8���p8���p8���p8���p8���p8}�%�/����@�����@ �����@3�	~���Ah�B��H_�	�%F�n~�H���	������hm/�j46�����������?��/�����?�������XB��@��hI&�6�$Y���B����H����������j4�����!LV���JKFE������
����El�Z���c��+�!Ko��&���.n���G`]!d��r�������,��������
�VsvK��R��1)O/��+�.��@��8J���q��!m��=�4�bE�05�����W��z�����;�AV����F}��q�{%���N�����T�t�l����)m��i�����^0w�����[�I������9[p�U�K2V���9'��oK{.A��U�n��Pq�����nL�m��I� �HXW�&�R�R�=��V������is��H���*�q�)��m����S]N�D��Q)� �M��#{��rM�(���On����nN����NJ�����;X����.��(������!� OoN�x5��oqz��$�j��o�m�������R% O��B=xI�M�-��c�kR��0���;2�M�|.�-N���/l���L[v��q���m��������d����Y�)Y�)e���ZQ7��LbP�K�n���	�]�Q���%v��=W���r�M�k��E�����1�Ov�F�.�<�\��i.y��&�-#c����������N�]�2�M��4t:W���g8� i�=7yJr����C6��"�s����KDZ�����Dyo�W�x@��\U�;�����A��"���S�N7k�*�9>���S�[���{eW�D�I����&�|�d!�����je�^�8�Y�*&�6��m�&�A6�� �	��S~�Lz��I��1\A��H�Q�m��Cl�]�'<8��t��UK�u���cE�zd�R�`��*�}(�$���y]��%��n��
�
�Moe�k���T��4����x��M_Az]�X�\]_�E��vN�iP�����j�p��D�
���x
7b�R�����g�X�2L4��lg�1XC��n�C��Yv%�o���EV���Z����C���u�k�����(��f�b��-=��M�d�o8�wfF�ka�9�z?��;�0�H/OQ��w�R������f�EJx�\V��J��P"u��+�B�^��=M�|n��r��{��3|���d����*����2?"����q���?dfe�ay
^��Q"��1\�99i�k[ >,��s^r*��OjN�%���������s�-Wn��r�����$�����s
h����NfD)>����W�����v�a�1z����2��|�Ru��B�e�U&Q'E� ��E��B]C]���9h��c�{b^��uv�:��d�M�n=���n��������������k$���Hx�X/�/��c����Ms�Im��q��oq��uT�>�q���O�kk]{��i��Q��j��H�I�`�|�Nb4��P�|M��*����i�����(�w\,2'*c+���J�5���C],*I�g��T��i1U�wm�^mxT�l�o0Us��pg��f�M@4J��lN#Vz���`����u������R�/84�Y���N����:m��4E�j�+FZ������'\C�#rM1��3J���h�tk���r�
���c����wx����ur,�����c0����j�� 6&�I|���,�V�Voi���0�s>�{�').�\-#��m��U�#�n������p����a���w�~�.���wij���C�f!��:�=���`j�����B'�������A]��T'�q���x�I�7-T�[��~{\�e��j��� ���(�t
�����9:�i.������=m�\���T�E`��J��-��6����;#�,�GxoM�0��\2o�i[jw|�x��(�cv�d���B�b GEj����mF��3Y'd�w����hM;�U���`Qh�o
D���;f4�x���]��J�
��j��.V��'g4����������6c�[�d���x��O�S�]5	\G`P,I�@�V�u�
�d���h�#�Z;7V��������o�<���+q)�j�<{m'��,��S�����=�R;��k�%WtH��{������mu*�Mm��p'��/J�I���z�a�F���]��5�����r��I���$�����'>fjUz!0�f8�U�<���L�^�h��N�Iq����^�u�&��\�5Cs�L�����M�y��.����
�|^��$��|^����i�S�b�n��UET��-��6(jt��;0{����B����@�j��ld(f9��n�%������.�6�Q&Q�=Dgmj� �u��okf�����b;���������N��)��" ��N���DW=�����S�>��Oj��Z��e�y���!�1�w�d�
��)B��,��������_��*j�"�y��4u�
P7�x���u�F�/T��U�aY8�Gp<>y-��)�r��^ :����w]w�v/��oIT!�'{qs&���Ua�#��
�S�R�6	;���
u<�[9�$0��d�MW<��W�]��9v��I������#�y��<�u���V�78�GfK���p�_g�gh��=��/��o��,U�jl=��@r�P�Z��wD<bU
�� ��]
�����v������t$�"r���Q]s�����;����[�����
�A���tN��0�_�Km�r��~�]N�����u�z�-����k�gZ��291j�u��K�i���P+WtN	�y~��-�K7!�^sV�H&���d<�@$E�
�����b#dD�F�o:�z����n��e���*Y�Z4X���%v�}�!���i*��y�[��1�-�+=3���1R��s���\���S��{���X��lGp:���0��]������Z%$|!�8i���!�6Is
}��.�&x��m��J����#��:E�G  j!	�%��\���}�gm�����0sM���T�f�1`;8�4-:��pBtJ���o�j�p�L���c�o��Wd���Av3��:�Y7Zy���gM��X�JT7���}�����n:�:�����o��"T�L��"�*��t�����1��]]��BdVL�����������"#��r�P��h��h�d��
"o�:����f�HNAX�7�<$�/Y4�V!��>�U��c���o�����nF��� �;�����q�sy1���*�:���&�h�����c�sy��b��Dj����g�������d4B@�_[B9����ifK���4��h����Hj
�����z�T�f[��Y��u�Tr�{�������@��y����nX�C$�f���X���fQ��/Z��]�9���r������#�#z7��j�,I�Xv;��V��a����J8�Oj��#oS����ue�V;Z�Y"�Jn����=A���f[^��^oK�%
�[���F>8��F+q�E;E����8}8OmMRhI!!�y�y5Z�N�S�q�u���d�vqe��U���A�!���p%�5�����e�x����r�>�<v��+Q��GH%��IX�'I��{�t>vig����~�j��������b����i�ifQ�AJ����E����.�*:��UG}����j������T�WD'+���M��v��C���.b�Z�v���R�F�V�[�������]E;���r�+�.��qHs��%�@�8|>#����C��Q�����*�Uk�e������*�����,���yW�z��5�_d����"��{<=�
���<97W��!duveM����*`��[�Q����}:��F�Vy�f�&��3�i��	$"^�q��r�e��o��f }W�����C�&������s5��V��!S�x�O7sZ�"�5�>s[��b��
_c������N����-H�l_�����'��z���uo'j�?�J��%�`�R�E�ov*��a
��������Bf��EB]�OUX����Lb������C�%���M�Vq:<�%����S���qn�rdy*z-����fd��D7��KL�K���a�\��2���L`<h ��sv%Uz�v�V��������g+�YDF/=��x1bV--5%���U����&����������U�-BI��j��ojZUB��,3W��,� ��������#��� �	��R�
���P�8]����&��<x�;���x^��q��<_�[��'yYC�UL\	�C�I+c��^W'���}3Vu�!q�mz��|����
�(��~���L����A�q����|]����J�8�5HD�����1������E2�d���v�X���2X�����\�*L��`0�S%u�f��n� ��:@�*���A����p��
�[V����
���J7��-;�NE��������A�����wRHQ�13��a�Mv���,���W3R�<���K����d�T9�\���c���RV�(�of\2����h-O�qo[�j����M;
��^��\�=:��,����=�g@B���kG�L3�n;����v���G(����0�1��:�L�z�U\�ZPS{ :xF���U���(��S:7d����PU�f���%N����(X{s�H��{i5*p�2u��9��"��_9$WQ[Vd��x7R�gLA�����U�v�J�.�+t�J�*����0,WS�[��N�]K���${d.�l�{d#����������R=��s0A#|0���9�6�;]��R��j��+5�d���Y|;/i�
����d�1�u���V����x{�d��+���n�N�fY�^[���������#]��X���`6�"n?S��n�Rj�
���8�:�c����
���O�c���z�;d�V�(��Y����ep�S��������|�
����`p4��`(bf����#���%���BN�#�f5��v�P�s}yYgx�f�s�S0�xy��@����)�Z����U��R��HBB}��Vk�����eY���O�����6�b�v���S)MD �gJK����g&F���i�Z^��7v��z�����(�%Ib���o��
	Y��Pm����7WU�O�GT�C�#�n��^����VcR��@�i���������l���s�G���2��+{Ni�U]���e1��k[3��Sr�q������4�7��n7���L0ciz�yZ��;��#*���
��I�����&���A__qB��u&�����V�:�Yj}��q�MkY���2����	�;�N-Q��P�{���j�uy��.����s�t��y78u�E�����xfN���[U5yy�8���
�m����c����������Nf#5s���������W��Tc�[�a��Q����nP�R w���9�<�+��],���QoK�]>F�5������`C����Vh�����/�<�e��g��i���������57���a���T�^Z]�WN��V+pp���W�Jtr���J
�O�k�{��*�V^�3>�WV��������U0�H�$�W��cD+��Cj�;���&������)����e��4����Hl/��`|d����d9i��z��HnmX������^�Q�!����+����
����4������J�p���|	�%j@�I���>tY�����;��D=^xe���L��;
��~g����������5���Z5R��y�`���8��������q=�W�@=�;5��y�~T���)R�����9��D�613b9U��b�u�x�������=|f�-w)I��^�a����4s���f��n)�����w�-��Z��:�����W���y���xI��[i������E����3��m�U��WC��I�+��$h��%E�{��}�qt6s�IG-���mN�vS�<5�7:n���=����d���[��J�u���h^�f�N������{
{F�������M]��Y���H�P�}SBeG��s�fUT��c�;buSCs�!pSC���I�]�$�����"���H�m�l�t��U�U+�����>�}�&�jY��<0���{9���
���f��X���oj���u]K/����FG0iq+UN�9�e�h:S���<p�U�Q4s�I�V���b�`��s�V��u	��v�u�y5��(C�peY�,��T����$�=�5U�R���8���UqN�V��Z��4����(N{�o�	������>7����m��.��BR�+��|��YR�^uI�bU�I�M����]��z�j��
���1w�B��FR�]���nm��}@�n�	��3"Wz;�{�����=w)��N��+����2E�����w�C�.���	|��en��R{U9�[}$m��&��3o��%J�����1]�����$�nk�����
��Y��������]�o"K��Q�T{R�o������
M�s�9��Y5���
�$W��S/����1�ht�'�x�X+VG���x�h�_��:6vT��~��;��(���2���t8����n�2��C:��lP����%�������c�����k�����3k��5j-���$�li��D���i[
�5BV2��y�3���t�0��
��Zh���a�O}lW\��`���:����E
i�D8��P]�R�����W_v����9���`��N=�#8&%�0U�B�3{7�oKm3�@��i*_m��x����]Wr��v+\�_��v�-s3����7nX35�FU���uQ�����L��������&dy��CB��tN����9����[[Z���m��p�Pd���&a���R�C���:�%3;P��^�;��&v^�*-7gd�`T��d~��0\�M�5�Z�71�)��;�J�l�����;/G^Z�����*��^�t6���J��5�M��e��TK"��������a�����`�����'�����Y�q�8{a�d��wfCu.��Dh|ua��j�t�6������A[�&�&�z�n����4g4�.�����f��z[�-��x0(V�K1#s-�{Y�t5k��R"3�:�T&������8;{��{�n�53�S�nG��������mo�G�X����E�Enc�Bg���t���J����w�M�����#���;�a��:
1���.���W9t�bp
G2��AW�y�&��s��C�����ef����Lfp��}��Ez���=����4Ij�$��b��I-��j�{�WC��gq��V�D�#���$k5v~��2�%�������)������V��w���okZ�.6���: �muK*����J��x�(���z�{/��
�\�TV��;��a�Gm���U��O�;�YQ�v��Ze���R�6����^p[2�x��~�6�&n����7������LP�B7�r�`�_'y95������Qw��;�=�U���c
{�.a�tMv�Q|��c����9��y�[�/D�$����
����k7G�WuN�Nij����}��L����\�u�:���c��*Hw�K�IRL�\T,�.�R��0�`U'����y`����T�*��L��G�0���.�
�b��Q�����+It��}k]�en1�|��R
L
2��F��E��3f�6���j���H�S4^<�5�����;��c��i*��(^��a�����U��8:������=krt��+��FTI#�X�z�CrZhZ�5[��M�q�Y�w��rU����uL`�y+;1��r����L�m�Lp�D�'f$U�V�o��I��F�uq�).��#��
u�����Ch#��T���IY���l:�W��w���R���\���E/}4����yOj,c��-@9Q;��f[����*��s&5�����$3S>q�Q�h��AAqq09�������{r�V,���C4���t�u�PRj��s���\�]�[w1��H������WWK�^���|	Z6��>�X//�c�$�:n��k�%b���Z]�"��P�'h4eN|��qw+6nG���a�(e,����Zu���S�,�mLa�5]���[�O8+���-� �J��z��M�.���5���J���m'��
����0��#�P��y%���f���P�r��ym+J�t��)z�y�\*�d�BM�e�z`ynj��(VorG�.n;I�5�x
�����#D.�=r����]o�WL}�X+��di�����]��T�rG��op��*�9u��v�1os7h�N7���'�=��j�����9&vV�X�^�|���������j���29�����4J���V�����`�������� 
����)���Vd������U�
�w��a��w�� ��v�����e�2�`k&������=��::�.�*[Y�b{xT��[�������#�I�n����YG�6[�RcH�mf�v��i�ZE0�@-6�9k�K�2�)5��a��im����&m�Y����������a�"m��{]�������1��6�q������q].kq���\/�k
�	��)"��J
�MD%O��+A�A�"����7��p�{M��\�w0���d�Y�_M�s���:��R��F�������`AJ��G����������7���9����^��u��\A{-�� ��B���������OX"� ���I�PoP*��d��'&�QH=��>���L����q�OO�S �T�[O/��9�.�3�/�����9����l����v&/�������8u�d��M�H��nJ���v��m��r���lD��y�t-,��+]��W�DH����P�|��ar�\�Z��2���+o���S=���`N�������D����������i�V�J�C�ZbruE�6�e�}���,�@�u=z�pR=n���W/`�lv��mq��X!b���mJb�f���netR��L���
�7v\,wW�{F�d���iS�.L��k�B����u}�o/-j`.�%������2���dZ��{/q���"�r�������b�L�$����Xr��$T���
�`N��`�vMBQ�9Hg$B�����"�s=�ct���PP����VP���R��/����������X�G�����TH���a�_R��2u�����*�*��Mb�RW�mz��>��v���s�y��"c�������U������l����i^�Q\���N���'+���	������wou�j���[Vw�R��
� �cZ^�gtm��2$�:��{Z�G\�J��(F#��d��)��u�=�A}��$\�D���<6�J.%"�����FMy�����!*��6B��%���[6�:�k~l�[CF*��x���`�<|&n�.f��	FM=;�{H��������V��>/D��9+|u�����<����gN��/Z�Fu�y�MyyX����G�e�C-�=��G��-p�y^E]�n�|w*������,�	���@�����
7���\���sca5:�A&���r����n��Dv���%�dN���ww;��7��4��M���d���F�$�O3U)�4��""�=�r,�
^����Z�7�8����Y�CB�K��J�^��$�>�l��/<a�t�kd�X���������a�#L����y���d�����xf�����\�z��v�(��uD���]Z�K������������M��i��7��l���xT�I
*���(\s��������b�1[h �@�2��tjDL���3o^@���;�-
�=j3Ya�|MX|j���<D�	D��97yn]�u�Tk,���-��S�l�UB[����$;a�vx������p�f�����`��T�y����[~�N[�u@���v���f::�{��,��9��$6��b�U�F.��q��*a��;c��{Ni-]J(�>����������;w���
{����< ]���lzvH|6A��d!��e�������/(J�]��V-�}�fR\����O�'6I��������������+7sV�H��x=/w��y��q����p�=�u�����:n�0��O�����Z�(�\T�����Sm�.��s�����}�;��4^�/���^��LFqWq+��5qsW]���:���W�s�F��y�M�{� zU�=���5���OM]�u:����vo�S�&q�i��@�M���r4����*Y��I�'�j����aI5}�+��"l��l�c^�0]^�;�'|ir���.n�,i[���p�M�{f9�\�����*��hhz�;V��Cyrw�IF���[v�0�z��P�f��j����A����@�	 �>�} �����U��B�^�uP�q�1d����x��@Qy��|U�LBq�����7�gV8�������#�<��9n�s�ub���#��I�����s�:��gWX�0����������������������%D��z�Y&<L���")���dN7��e������5�no �}��F�m�OJ�!9V���+����/�#��5G��BUr�q�=[-���}�6��QB��Q���
�"!
���Mm��S}ut7����(�J�jP�0MY1��f���4yrh�W
��y.������[Q���%�k�k�d{�rVc�D��&���U��l�5���������E�oT�Gt�E�v��zu��+����<I2�n�1�W��oz�)0;�%\(1�En��/GV��l>�&�b�����K�b�u�z�vB+�`�������� ��>���M�^	k%Y�>�2��
�����H�:^L��4�����6����N�a�N��\!s����v1Q;������K�+����7;PF��7��{�j���N����NS����W}��$�h�2��tx���x�	�	�X���4�i�L�
+��^���T���Y�L�{��d�z�h�p�A`�]Uit��Qr���C�����b�=���.�v�uij��2uDWB$oEF�
�������b���\����!�^g���rkt�N��O���=|�R��(���V�	+����z���^F&��a����*�l�Tj�7Y�|�A����f����5
L_&l��;�[��i���&�;���`��> �!���KE����/:�a�r�����]��z��is���� �������d�\l>���B���*�����K�[Z�w:�"/=���+����yW���p���o?������!�����9;K������u���fn������2k���O�Q��J!�g.jo+��hAxj��6Wm��)�������b��0��v�SS���Q;���U-�[�Kvv�
&,;������Xbt+�t������Tz��o����� �-����Uf��M����	&�>i`]���T����]69�W|����tZ�=��:a����p=�u��CUT�����&��>�{��a_+��N%P��������P���F�v��(�{p������u��b\Bl���v)�}��0K�z����^�m-{f�G�����N���M5+u\�l
=ju{���qH�����~���8]6	>����\�-�"�	�1,�����CJ�Y�A0k�*-mK�"n������rS�3��u(5���u[vn��}xQ�^uA����\�.�X\s3c��t���'���gA�o�zh�7P&A�w��o��{Y�P��������j��������x��W��Y�d����vz��
�m��)}4�9� �]�%�LY&1��G�H.���k�o4C  i��a��``��dr*f���(i����y$I����9�NU���J�Q!���X��A�
i3����LZ32������Y���6�q������Y���04����1�������f<����6y!���Snz:��[��s9Q�^nkL]n�������AF�a�Z�1Ye`�MrK��<�n8�����1�����q:R����&jZ�V��J����@�/��������D)� #��7�TF������3;2�d�G	W��#'m��*p�3C���,T3j�.�}T����`�0��c��T��G��UY������1��0r�	�a�����T0,����g#�,v��}V{53������FZ�����9���5wb����g7[�E�n\��P1�[�^�����,������-�[�n.��;�eB��S�uw��{�a^�D��$���T��oZ��|��n���c�u%v�3�X���A`�Ye�B���U��Wm
������tc
��w����w������]I"=�T��KFl������V�>��l�R����G�-�����m�6��
DK������ U�>���3m!��;$��t]�g�4��X{�K�����y��6�������F=��m��4���+��#��r���k�Wxr�4�&g"Wck3�����r�ZvH�x��d�$x}�<�#j�G`d+z�%�Gy�m��j�t9j���JuZ:P������fO'�Z�����#��
]�b&�q����P�g��,��j�����������93ZW�t^���,��v>c
G��d���a ������{{.����������Q�)��E2��r�0�hgI�fn����R����R�s4�y�U��
E��zXX|8J�m��lMy��w
�Y���J�*� �HG��A�s���/on������{%Lm���tb�����#��X�3���X��E1�
����������\x�.z�C9��3�u��������F�D]j��k�<�w|!�x�Q*����5��<AT)�����{��S�[u�M�8;�����ST�������fk	���5^*���u�$��5�n[�tX����]G�b��cjdr���mMd�S��q�w����;����LO{x�z�!��D(E��(3�R@	����q���I��d�s6T��^���dbu}.�����J�O4��J�v�U,p�5���c���i�D�b=��p��K�����
���v�}Si1��o�����d�T�rV������q����m5����uf)4=�=W��S
��6��(#�I�d�o��j���6cz�V+�,�/���)EG�f���6�������e�wG�U��*�����w�-J��$<|�v��� -�6E^��I���[j���FlcDo�]�i=�p[������d����	-����Q�&v_Z�FRkS)DG:z�����u�F���i+�v���-��a���������Z~Ig,7��d���,�=�t�	+`�H�R����+�~�}6n��%�#^�u�����R}��m���<q81�����f���}�bQ�r�t��c��������v��Y���V<7tVq
��RK�gmd8����*![]�#�|I�9�|�@"
@]�s
r�ms��W��S��.����n���[x.��F
p���F�4-8����2�.�V�"N��"���L�X�m)I�T��Y,C�%�k<�T�p3���r����^3�7\�v�;����������R]Yz�xI��j��+�-E��\���n�RK���1�2S��MBm�y�8s�"RE��
at�v����Y��m��6�8�S���\��sS�vx�����M���$�Y�"p�,jH����
,*i5K���o��h�%�������<�{$�Gv�i�4�:��p��7`���Y��7q�2�5-�T�y��m=B,���|J�Oko�����-��W.�R4�t�����;K����
��ee��[.�Y<o%�jE��;�'��e�m���=i���s,�����l��c�C.oc�W13��g1�����_f����o�
t`JB���P^$�#���"8QK�AG9d���hc�k������1d]SG,=C�AU��6���K������pK��y@���L5�z��=7_n��\T���3�z���<gJ������z�Y�At�I��"�|�p��B������x�������r�����@n$d�����
���N�
Y�$dt�e���SE�D"%-h�!���7�4	T�N�J�A��7������CZ-��	�a$yS��"=��x5M�W��)����������u�������4&J�����p�}r�&S��H����`~�0-xk7w�-��[�[0���Z�/���9��r����.�����n�zl��n$P
@�����,}S�d���9]�)���VE|U��������S��y��fs��R�;�ZB���C{�V�B����a���'>�L�����fs��1�{X��g�la�V/6�,�@�`J`����o[&�VE�n@ B��8L@�u�.��U�L+.�
����,S�Cn:1��+KK��m���4[���JK�Q�Y�A�w%2�
�d���V����_%�Ki�����u�K�}��\lev�P)���D9d�S.���v�]�{s�H(9����;����s���([0+�.�;w�sO��,z��qm��)TZ�b��Z��Mq�6��Dk�W�]��Z���\~����T�����fBM���m��|���n�����eU��]��t��<���;���J����wS��������������`��.�1��>���`�%����%������_]$����C��g������!Oe��us��P�L��Yk�m����y}�P|Ki���������y�K�z��UF2��x�D��V_9���i�(�!�u������:���X�V��\ZT��������O:>���HC!�G�^��4E+���5nR����k�b��*5ts&�Z��q��K�����ud�)�Z��������r�����a���M�i�QS:hi��3l��uE�������:;z�np����I3qfY�hRd�"�9�����+����]�W��\�NuHbO�P^8����#�u���X���]i�f�G�����+��j�i��YM��N��:(%�;z��{�U�N��;�EAD&��+v��rL���#k#��)���.5���(wk��up����W�y(xD��6�y�Mm
������H]]�a�S<N���td������,��vVf�dH!R��A�x����|��g��F��lj�8�g��$z����	4j^wP����d���B:���o�.�;E-�1�72�A��#^�0��42)^Y��
+��M���B��G����a���~Ldd��YG*v����������B;X1�;B��+��-��2&��m�SF��65����jt�{�E���f-��T�`����=�=�����hX3c����;�����w7L��&�u�A����DL����Z6�7�X.�%��*��0����z�2��F\QaDQ9�6���kq�Wr������g'����$��w���eu:��|��
���a��!M���r*�3%���I�b�]���b���=�����o�)��v��ELau@�u�N����$�
$}���MR������,k�]�$���w	-f��M�cn�R���	�`���!�v��.���Q���i�������5W�;��Pu�{����lX�����F�64t���������p1d���+EN���LH��Mw���AI��/we�}d�[��^!��S#��YFY\��E����������y��m���u�KsL9*��30�W��!"�-�fZ�}��������#��zv�lX�lI@BG3[Oewri��+8i����^���'\�I�g�U�L�XCv,.��������
�b�����zq��T\�ZZ0�rZ&8�]��It�u�UyTV��Ge�2�4��*k�Ar����
qm����_�����i?H8�����A���g�e���E��*����kr=k��$���g���;�O�����7���'iVA<�{Z��$�]���oWaQ�p�������;!x�u���d\��v*�vw@�n�;�TY�:�GL�����]������k���0@$�4"!��7���`V�'��
^V��C.���E����Z��O�l�����6Pf�k*�Nw7��U��Vw�=U�b0�uP��d���%[�,8�������b�q#>����,e���F+;Y�Fp�7�����X���-�A������'��%�S"����LN��Ske��X�����7Wr�v'%n��;I�w��b=��n{���
����QJ�b�g�;n�l(Q�0M�4@���{��{1��T��h�V�SQp9�;��0>P�g�]��uL�z�!����P��u����f�*/+j�8�����5�t��1;fA��E5�`[lp��9�����7|aXr�d�
������}��;�4x=F��.X�X*������$����R��}}���V�W6��Sl-89�I{�S�l.�A��<��~L���Kv��K����#���h%���:�P�3��nlRs�
D i���-Zl�,�Kr�
�%n���2!�n�������LIO���H��F]*�.G���Z��8w`�C�ylr4Y���>�T9WO7�������8l�~�F/eWuA�f+xn�4�S������]g��]����'�I������|x������[�r9p����p&�E��7���Y����/NH�>�{m�G%����l-�r��9n���t������l�l%�| �a����f���P'���`���[2����v�eHg>�� �)�n�����r!�� �n��3*s�N[��@�r���&�ba^��V3SQf> �V���5��5�f[�wJ�r	��c��*��U�T�!�G[c!��K^	|,I�zt��C&�*�����#�Zb��y=���+������[�J�u�f�[��i�.�]�"���N�6��{-�=�K���L��A���d�IRYO����R�
G1�;�]��������f�ziPS���j�]��sZ%�4��6���{�*�c4w�y�ii�[}�Q�����w����]c����nV�69E}-�U�L�*WNpE��7�R9up)���cn)utzK�#]���]	�W
���&��������#��.!��wGY�p<s	���
#�%����X��t�O��|�U��Y���uZO�����u��-������mvy����z�H��{����T�"p!�>�A>}�w�)*\����`�����Vm�Ay��7�7��;BkC��t����=�M����J�u��*-0��J$�Hg�]9%X��_�J��;^w8=yS�W��4Xe�<�Z+!G��5X���"}�G���u���v�pA�r�V��"�gH���c�u�GF�;_n;X+�p���	��r�(�j��<����Pr��v���3I5��
u6@��t�������1�g2�T$	P����%��K�9�|�*:���t
�����������^��R�j.R�����{2��S������,3,B������c���K����d$���|������(B�`E���M�"��wwO�|2RC��sDJB�n8e�4���7k1���OzF���w��������������u{��'�4��t��a�pv�����Ep5Z�|�,��#_�Km�����ri��
�:Q
GE]��z����MV�(9o���������F�L-QS��7A$S����'%,���s
��`�4��7*sn���^��>	�Z=Z�s�����w!�|�|x.�����H�I��On����S��O���M�,��7���4����6����*�����k���]�7:Nn��pEFb����80g3�2O����Q�����A��st+/1�/7�/��6���K��ojH�Uchme���{,�E��F�<c�����+c���c�mQ�ot��k\�B��(E����[����l��Q�>��9-b�L�ubI�Z�6i�]�;S2u�jq���#l�M�Q��|0���O
}����QC�9U�$������M&��pO\B2b����K�]�`��Ol���:C����e���j�O�
�a��u���[���m�x��.�C��iV��*�trY����w8K9[�P+A��H}��3�
����\�k�dtw�o�Y���W�sh�*�������o+s!�CTIk�4��^Sf]l� ����a	��r��d���f�S��O��r���LKB��S�Y��Yj��3�m�����f4���Ufj�]EA`�w�DoK	���w�7D4�7��9F�u���5}4�F=�g`�F���+�n��w��qHp*��v����1e7���[�H�W'��n�	4�'k�����$y;
��y}�
�t�c�p85�L���A����J>�};n���r\��6s����y����-6��,�:B�+Z����q_(��ee���m���,��I���Wtv���\���v�j��fnK8�����R����q����v�CS��zj�S���u$]38F.^��('j����U���b�����v+��sC�Np�%�M[�k;�y)�v��T
�cK�Aiv�����MH��kw��9�V+
�*�H7O�\R�5��6UhF
d�/[��w���A��i��X:P��W=�c�tm]�2j����IW6��RVz<�\������2N:��d����e��8R��lf]�m���Sx[�96E��61k*�w�|��x������Wp �0��sRf���I*�p��6�i�����U4�I#m�$m���7�)$�)?��B��x��=l�!\H_����	`%��$�P%�!tH_�$&�~z��D�������4@�LlF?H��)����E�$$j��B\�Ii���*alYci+hm!6�>86�Y�2�LXh�HV�Bm�[�0����LF����q�.8��[@i��!	
�6��"4bBK-��$��������B������&��sj��^�.��7-f\I����sj�WN�N�U��$���d9�	��c���i����H��&��k�z*��+�7����3���	�q����u�%����
[}��.}�a�T@��Q��Sca��p�]B��*�i����se�`�2�B��-�x�y�$%bS�T�aQ�&�7/���rO`oy�����X-���yr2�,,�6�����6�(`��8��=���p�Rt� �Z�Q<w��X�[��i)yL�*��[�,����v}dEmaUq����6X<��m��:��6jV�]��!|���"LS�
Oe��0^D&i���kg
������`�I���&�J�|�QY�����3y�e[�����r���bjf�1��Yw����g��+�s&>T�Nx�>���n]�r�u�)�2p��
w;y�q�f�9����q��c|�c�evp;�T2�J�!\�U�y|�l�9^���yY��u����8<�AV��iC86��6��u��A�:�k,�VVX��#�����Fr����:�X��h�XNE����D���6��������x����
(XJb����d:%wWn����6Xs.��t7�����5:�d���k� ���������NM���L�N�4�;�������Ux'{��8$���I��e���)����i�n'����+�1/jY��$!��/��P[:7���t�x��RNL�����?>��N9�P^w4
��0�=\����6r4
�;��o�f���,��s��S2��;%������/��uV���d�t�;T�`=�/r��������0�U���*���N��[��K7����y����t��\S���0H> �Dh%�Q�����hnwS��r*�/�#b�i�`���!n�}n?T����`��:�<0Yg+W=�b����n�Z���!�����e�1�xn-����]E�ar=�q#�h��i�����vZIo;�N	�[�3-��r�Ml�j�����L��,�����5<a���S�GE�gOF�xY��>I���x)����1�\X_,W9vX���Ptx�����)�zF��������L\6m�w)L[�"Q9�l��SQ��@��iuX��r%�w����TA����@���rsZ��>�^�y�o���5D���=,�j�V����^ubh���YO��a��
������w�9�$}\
�V�������v����[���.����g�����r���OkS�.m>���.�i]��d�pM���:��z9������rG�E[�l�dU�������Xyx��/^�2_b�*��t�N�G�-p���)f�#�:3��4E���B[�����S�������w�=W��GnF����h[z�Nvu��'
;2�Q�'V�3d1���+5����^
�z�VZ���gNb"��y��yG
.�nVBL�6;�q	���(:
����Q��u��k�Y@�V�w�m�Y��y�wK\���7f4�N�ymi��uy�vT*=���\(�]0�*�7�z�]�x���v�����Z��vjn�{V������f�1,��gR�r�U���q���P}�U��|�;\y%$'fTmt��]�EnN��gl��7������U����]C
�������voj���&���Vm�om�-�D����G��E���S�R�H*�WS�*���{����w��V9�v��u]������6�)g9[����<}S)�)v_S�Y�BH����v�Ec1�5��i���X!c������#WQC��}Ssm����F�dc%I��A�6#�br�7_v���-on�Yt
V�5�mY���v!i����C��"�}n��y���a�U��([�\y��C��5-��\�m������O$N�����=2���v�k�>}���]��E3%A&�X�0�#e�-���\0<��E���OQ�����|kNhUn�}�[[�����h�`���tub��nl:�WE#�z��������D��v��:ltEJ�w�bn8��U�x��Oi�V����^�Jl6�&#�zB'`&��5������d�Z���y����x�����B��hP�a�ub�����<gV��/&�E9�U%��Z��ne�7��V9f�x�
�+���e�m�]:��L�B��6w�n��a��w���Z��j�1���JMz�}���Eev�TC�Y�Vt��Q�7/S;7�+q�4���$�+'0mb3�N.�\�Sa����S}B���{��M�l8f�vZ��^Q
��Cu���6F5�"+��W�,��Zz\!#�"(��gN��y����k��]�������u*���X���x�|F�C�
Z���+5T�m:6��V>2�n���8�bM����C�3�
�,TC%P��e��JC��|h��������Yhf�LR����{T����
������Q-X�c���
��o6���V���3Y�������C�A�`��F�Z����z$	��3������9+��-�^}��f�9���O�r	��``A����FB��/���6�|�� ��b\�� B�)�� g���h�I4�@D m�KIMU"��M��j������6�Xb9�#�T�����k�y�j��8���h��M�����Kg��~E�k����%��|���m��+S`�r�������W�
�E(P����v���=8c0��V.�����<<��Kns�SK�h����[�����e�yV��#Qb���=T���^z hK��|�_ik�(	D����5v-����
�.�-����j
��57��l���ET��E)����"' �E3(}����A��*�D��i;9\���
��WN���x|wx�`���M���fV/92�k�rV.���ac�����gs=)��F�{����u�B�$!�`���233�&��V�{�4O3���LaFgq��n�Mj�S�HX�SSJ�b����5ij��_�P�d��i���	��])��P~�0�7��(D<w��XU��m4Q��.�a ����D'K����~i�v�W�������!5��d� ��{��f}����U�g�-V��$����kL(�Dk]q��-)o7j��z~N�l�v[����<bbZHzd�f��n��)Y��Z����f�
)jEp���L����oR�a���~�G�>�v��|���[������=�b��58��M!�p�d�8�����KL����"��Ec8���bH���6uu�C��
���X��4���^(� k�lw~������/�}��T��N���s�X{�0���*�+���utMS�d]���W�V��E�u �C�=����vL�V���m0�/�������"i�U�������-D�*\����r-��m�� �;v:�hT�W�Cj�&��U|W�M)*.`�����=�1�>�:.����e�R���t0�XuPo�����<��M��`���-ymDvQ"��b�	�����n��x=���p�cp�G �5�h��ni�-���!��)��r>y��p�l����!��D�Y����3[akk�6���:�����zl���\<0nkA.dG������^c'W^���oQ�;8�S��j���wV)�o]��"n����n���f�FG������gE�K'����u�P4�{W%��F	�#����[�k����0�
__�
Hw�Z�Ii��&��u�h�B���U��p��*2���H@���N%B<C8	�
��,��`�F��ES9F���sINS���:J7|�fZ�G�*j��8�=������L�1�����7���>#��EQ�=�<�yvv]���
!
$=������ S�5B$
F�!>���F�*��Gs�t��1]���R����*#��HW����/n�-qhN&	w�<v+�4X.�BY�kPJ��W�|H���{������/�2���7r��B��v��~�-������}��i�1���-���[�����BC"8/�I	��s��a4����J�C�S���I�hg���	��qM���Q�i��u���t6��"+��Hyc0�C��Cp����p��i��T�q���WC=�)�@��=a�u$��H3����4P�Y��^���������s����I�������2	
��@$��L�S�z�jem<�����)�I��p�*h?I�9=4�e�����n����D�L�gSj3^X`�)�J���,�HU������+"b��J*a�z'�`��Zu���i����<���J�O
A��5�����k���1��s��&��:h�@(	�*���e�����<����W���U� ���v�r	j��onG*W�ec���	������u�|��������1��.|z���H��^F���� ���b�E�<7d&����/���\��w���U��GV��87��/*�0���l��+3+DU�w��,
�	���E��!^:��Z�����{�����M��u��i@�<����G�e���G��.�b K�=��n����lo[�q�,j����ZZ�w�
AR�����f*0P���,;�5��H���u��OP��B�x���������Oz�&��@M�8���a�|�*�	z}�v���B���{�����sT�������gT�Q(�;�jv�,��V������S���Z��&[
�W�`\���o���E��b����Q�������O����I#$Nu�����0���0d.A�;�x��~o��+�����V�
p� ���:(��	!���Y$����(�|}�VbuY���q���-����������S�����"��E���%8�]�1B�o�g�}\��r�.�" ��f�����D���,b��c�����m����1UTQUETQUC3��TQP�?������/�������QUTUQD�������~�����~���I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�~���$�I�I$�I$������$/�	
B��`�ABS����u��P��P�E�!^��L��_%�+k��}&t�9�]��#jR����h]h�a�WZ\�b�:�4�uJcMER\#5���2�X����>����\��� B1Y�C�C��c��������ZBNS����Kss
��>�� J�pbT���K��/��Ajt���:2�DH������>��d�JA:M��!��zhrA����������z��"P����h�������6V�^a����Z;P���F�P���w�-��)���([��e�a6��$&��2��,�����
�` Il�����L��3%��~p�o�i�-b�m����O�wBp�����X��/6�x�J�B���#��Vke��8Y� �)��@���r�������6c ])�X��i���0���
�#�0P����n'��1=�J�d56)�o�e�+.���(�K�/@Ih�<��Q�>�=���e9X�6��j���
����[m^5#S-Z��.���jF���G�����Q���@�t��Q&�jEV�e[MH�Tss^\�"��Bd@l���E6
�@B�W�Q����j!tI��6�D�RY�U�L�H�b�$Xce���a9*����x�G�E	`�<$��q�)q���������������[�����K��c
��+���e�����Q�8��k������1��c���1Q�����!1O��u������r8�������Y#�3��	,�UTP��1�DV:f
x��8�SH&�/MRus���CF	v��X�\ ��%B���x���a����.�1�$n�9�{h�B����B��C�:��/k�k�q!BP���1��M0��)5�*��1�6�5eh;w6u�i�z�E����f�9�-����r�8�������S2y,�X��"��1Y�,,�mm���J0���k5L�1f�)�ab���,�b��q���Y�-��[�c(	��K+���@]'(����+�-a	P��4�P��PDl����l�!���"�U>VbB��9KJ&�<$��8��b�i�|�zz�K�U���b\���"�e��9��c�y������
<�s��q�jD�)9h��=y���.��/!i %BZ3�Vp�k��
�h�nY$!���J�e5�F�1b
3�"�SGh%��������P�%!W)��k�0s%1��8E��$P��\�'��9UBn�~S}�[��e(�k�h>(nfFD�gCv^*0���leS�k�*��%��,��7D�VR6�\`6,����.��V��VdW�&4P6<
V �)�*
�����P�M4�cqe�5mV"kG1F�"b��Ek4�0���7�cL#KD3T���:\%���;)�l<�BQ��>T��M������! ;�,r1��~.U"�^3e�d�F���9h|`�oS��Vh�13F���5��#��������SX�	>��^7�0�O�H�.>��R�+p4�Q@��i�HTB�+!�u^d��X)�����JQgH@������H��8P�"N��4Q�,-�z!B��r������
^e1n�B)����Da|I~k3�dn��KlJ���n/M\t�G
�*�GY:)���f�3���
P�1@��6�n]"��D�Bn�Hx�e0�.����`�kQt��� �b�*xxnD��uAm���[���hgy<ba��u-��{a�a�H^e����w"I��oI�CT���sr�hf+9��w���s��d���@�:�S+c7kG���!;{|�v�o������QgS���3���1�C� ��&�z�����4��b��t�\}P�����Gu��}�t���:�D�7��f� ��q����{h��uv�i��__a��[c��K���I� /���������Bc�L]7��7�N�Q[��Wv��<���jS�M�<�]=R^,��An��g_n�HaR��gX�P���t��y�l�N��@���b�����&�R�Z&�Ov\�e�#���aan����]��Q�V�cS����_����%�[�]��/[��$��s; 
����gT�,.I]{:�[���F���V��5�fkB�B��S
��������Uhv-���nb�����2�ET��������&�X���8j�f5��"D��l����4�eV�����t�k�r���j�V�0R���@�wt(;����:��qB�B�r{����<BR��f�s�Q��V�]�J���Z�^�
�3��u��7�h�����rF����At�s��a[�����D���������1U�	�4k����k�����!:��	��U����z�.k.�9��D��`�Yo+��q]�	�jm��wA=������Y��WX���N�a-4��\�a���������;����J�6��c;]�����H�w{�8�U\T�VMu������7���aZ�A�4���;�S������c����et�+��M���qe�0�����z%�T�]���w���nQ�>���eK�mh!/��U]fe����z���}�H�wth��]1��V����#�EP�mn��Wq��n�O���j��s�Wz�6:pl�b_��b����3l�twl�,9%��b�!���k9�z�V��L��c���)�;���Evg/#m	H��f����s$n��v55yY\�X\`jp/W^'����NT{24���x6�s�	��X��|�R�wq����4\=W����|tJ)���S.���8�n��{����k�����t�no7�c�U���('��-ot�V��SqJ��[�u^�M����[�)N����Q�bp�p�vt�A����B\-��P���3���uvW[��v�3��7u�c��r,�m^���[�=�o&T0e��M�ugR��m�M����x��V�vvj5]�V�BXsc�'������%�ICNZ�2��f�4���r:��v������3� n���
���KF����\��-���v-Zz�n')nv���x���f�b�]|���h����#���k�1]�X��q���������,VB	f����U�Tw1G#uj���BG�����`s��R�K�x�V������d6,�l4��"#<%`FIA�C'�v=��c�F�
a_���Q�QV�a��e"�� F���00�9
���7����RH1:����3B��t�c71Kox �xQ���#�d�Vw�c�Aq��@��n��u#+7��l���a�����l`��+����r��27zQ.!qf+��r�`m�)�������0.:����1��5�o)�����m���:9��^���M�����X��� Qy~

�>
]�U�c#��{o��B��Wp����T���.�k�,}Z���^��o?+�� ��|�/��5x!��~�oB���*��������j2m���M7�\-"y_�T
"��.���k��(P_"�	eS��&U�u�������9�:p��#�!9#����|m��C��v��(�7#�7J�m���=�"��wYX%���\uF�J�\p�E8���!��i�&1�](�P�E�{��*�#�r��G*����9�5c��B?B>�&�d^�({T�����41��V�
>��fa�iM��z1CJ�Zui�����S�'>0;��w�Rb4�;9����`Sv�����|�G�JP%J��Ub6��F�!1W���1�]5�'��A�1F�X�b�h�����19�A��j��O�[d6���)���z\���V��=k�**�:��;�y}j��)��h���j8�kJ"��6t�y��z��Oy�m'%���[?D�������O���_�J�����^���Y�Y����<���i*��������bJp���A�["�Y����k����hrk�0��`��u}+2�<��������4HE��>f/,e������WQ2��7z�M�Q����W���@-Z��|2\L���T��f-Z���7���<����9�2Ln��
C��8�^��f�p�������.�+X����Q'�<���R�k��q�2�$�J�`�*9<������b^�Ck���N���"�����k�u�e,���G�o�Z�Tb��D����N��/�w�\�	���A=V�>��\~��k"oDSM��8x"=�!��A�Q\>6}��R���D(���_���h���F���� ��?�e��6��_��FT��1�z����D�����AYN��Zz�Ar�6D�t���k�s�x��W�
��G��W\�<t{��5y����$�`��c����$9�I��v&�������1�.X����4�rV����X:VjWh�����������[��?�������x��G�F�k�V���u�I�V�A;`�8f.(
h���1�^��,���s�X�x�!L������T0h���X,������kq.��������@m�{�����b��D�J"l������ �Pd?��dM�
���}������,a�y:�:�X?>H���vR%G8Wn6�_��������j��a���Vb��Y�1	�G�����E=�c�\��������T�Y����x����=��a�	gH7F��b�+xCt���`��3��&m�{=d��k�C����U4w����]]�#�?�����~@m��i�����{8;��"�/�$i�o���-k
�^���������W589ZQ�x�)���?��U'3��;���nKe[p�@:)��$���CL-�L-�6WK����6^�g���V|��Ez�gt+�q&��"�t��w�HQ�L��Z�\2���9�-7�J��@�5������s���a�f>Z<P(X,"��_N�#�=
Y R���j�(S�����3uW��{�*�z�z�g�g�EH���;I<�R�R�Z���
N�k;�� ���-����*u���l�P�43
[��|���2���w�A��DV2�S�fm�����7�,'���<�6��7��HD(Q��F��P�^�^��h^��	l�
��i����OIp���Z�z�:@UfWU��4Z���O���,JO��R[��g��
b��V3&t'��l�}�0gn��IA!n��%�c�P|�?��Zz�������_|�H��Za�b��\�mgsLX�J�������k �Z�6�O�|�����/��L�h�P+�{�-���3s�K��<�n%g<��Hj.@��
���E�F�]
D[)Q�U�a���@���"Q1��A�y@�>�j���I�pF�LI��bc���B��6�������"b^`�H�j �K������Fi�C�h�����/	�Z�?�H@G��?X@L�3C�LLH`��l���"����|n�����{333333��9�k���i���.�W`�1Sm�2�F�I7l#Ho��n��
���bA%�����Y��D��\!&�0A1�M��Cbm$��M�b�M��4��6��4@b�G�H&d�DhG�B#lh��
�	/*^$m�������c��2.L�R���m��j$a��//�(�/4�� #�/���
�D#J0Y"H
�/
�����mV�t1��r61��@�zPSH@���!����ID�@B� m,0�2��GY���41��A�0l��m��'��j1��Fa���K��#,D`����mX�t��~��	!��*�k�bO�K[q�3�(04�� �\�L�`u��l�1 a�lZ�b������]�(Ybo�����?A�E�3v�|�-��wIFZ}��9�Rn� ��\��{F�����Db�1��y����7��L� �5=�&�L
����^=j-�,���#�7���#����,��u�KM�C=��1n�=�8��c��\�$����v���9��F0�H�J�Z������1��:�P+����D���40DhH�L�0��o�0mg�����_������������
4���Lh)�� �$b�#�|����E*b���6�����Xi���~mu�� ��]>���
���YI�Z�����4
�z�����Fti���l�t���6��li��h�`bA���bb1/<�U��z��Hh��q�F�&�Z��-��m6�j�mo�f�BPM$&�^4N�
��g9AL��]��:0
�F��u����_���b�w�4�PQ�Qm��'��6`I<��n���0�!~�k$Fs��;c��Ec4�HwE��a�D*k�T�����bG7��Xt��>R����D�r�u��Iydi����(���Ch��!�@�N����Z,M�x�Ey���Z�$+���}���7�cK�|�e	n��sq+<��a�3�����&(��L�i+�.n#��R�
����)I^4�h*8��)E��z���y�#Yd�O����&�\�JU�i%��(�$��Kj���	ln��B
%����6$�M�A�Q������.1��hZhA�H	&���Lll`���u66��5)�;�}v�Ki�p��
1�1����1��[a��P�^6����[�K�P�����Lm��c)���'�����e���@x���J1{���84�26�_ m�6��hm%�	"��i�%e]S���2�u�������"�@6�p-������yQ��>E�m�w�H-����H�"
i�����CcA��e�� �B�����&�%� @l=�{GN^]��f"&6��B�kV(����05:�Fj�M��O�����
b�1j�V��7"U����rU����E�a����w���FX��+;�/n��	���A����z��>P���j���v���T�B!���d�an�N�M*�~�A���T�j�y��B��qW���r�����/���M����!A��-@o��Kmz��l����,�E*���Z�0�����V�T��Q��S�~w�0��-��H�jLH�����x5O���?�"�pxi��8`q��*b_!1�
���bV�G�	�(I�F�`�b0T�V�*	�/F�m(��d����i�#M��
h�U���Q�Q�cA��������6s�r&��\`F	6&�\`daH)����z�u�N��mL[i
�H2�5��c�Pm��v�}�Uh�m6�8
���T�i(���g� ���/h�mm�"��7���LBmli-����C�FY"o��A���G���a��6
����D��B��
FF
���$���BBA~~��\�<<��l�
az���L�M_�C���`0!�4���Va�3�*����b�]$��\�N�O��4�qB���V|D������;j�D�d^dVGV��A�|�eL���w���~������9
�5��������j��?����1K}�yJ4jM1J��<�b\!��G���xm["iL���ga���Zam=��H��$��Yf\�l�F�j��lL�Q�=�����	</�;�0P�(J� 0LA����m��E.r�G�x����k���HUcm�[t���-�IU4����7#HM�!|�(�i��a�b+-��"���X���u�SL6��0�
�4i��au�h�K���b���7!��v1�����CH �Z�C}���H�&$|iF6q���
�sQ>�6n
���A�m6-�����&���B��{���@�����Cm]@�"�1J�*��>����2�u����*�^L`��j\)ur1��!�����z�He.��u	�ixs��MT������3X2R�������QT�[��+%|���^��w����r[����{��XYs�D�'-t@
�`�
���|�,�)��A���(F���N8��wL���B���p�
��t&tJ}\���R�E	�!��i�H�	5��DY�T���S+�Y�Gl��M�b��#|j4�`�������6a��Q4i��Q.�	�l2�`�f��]�l6��[#4�F�q��&1�I#)�x���.4�������#����/��K�Q�R@E��"O��
v�
��~4[q���7�y���S	����a`��
<��rkN�u���lDh0������U�A�j��kl���`����B��U��+R%(qo���?le��Y�|��*�YaR/-���[7TZA�@p����*�2��I�a���%��U����@v�a�Q�XLv@!#�����N���u_���|-�zW���S���)R�w�����G�,IH�9��o?V�?��E4P>7u�Q�M#���^�Q����������_���m�1q�]���|������8��I��:B�$@��v{��"�$�!)D@i�j�|�V�3d`����P�
`A~Ur�`"���#��IHhj�+D�"�$�k����;Nd9dhm}h ��<T\i��=P(�R4�:��'�B�B@g��|�����-���b�E��!��;3�f���b��)x,>��!��N�s�+���A�WS�X������P[�?�����Uvd]�i0�T]2k�df�q7�g�X/�2g�E��@��4�@����5k��T�����H������b��~��q"����++�~8M'�/�t@&6~�A�$��
�j4kL#f�|�4:h��;��6�=�^$��o"�i��MKi	j&���	���|]v&�m�D���~H��UC��8����"Q��LX����\Z��cT�o[ X������r�6���I`�KZ��������l��/�����ir����6
3���$�8m��Y��Tn�*[g*�^5�#l[/�Q�uQ��J08�+X��H����2�e���������e���������Cs�w�N.�%e�*
��{ju8`u�!/�.��J�����\���W�f�l,���m�>g�e}%^w�$I���>����V�@b��O��[�K-�w��,7����������R�[���?["F��RH��O��T5��V�[���`���j��Q��A���V�c�BV�Y����O��.x)�TDL�����3`A4<Eor
5�*�d�u�F
��X�3�Za"�q���R�����������b@
?�������H�"m'�(�z���*�������mk�7��&0H�����~�eUR�]y��,����������B��2F������2�s+��8N�������r��!��c��u��o��f8t�yX�����G��xM�T�Q_Z�V��E�����(��(_��~>�i=E&��$����I���/����U8���J,����
9���������0��"�y6P��q�P�NTa�����7(���u�c|�s3�O-�h��������D��G�"��A��NU�c�a��w�����{j��������>�&~�2����o��>]���*+���*G/_@r���GvIJQ3����u=�%��0�4��&�����z�N������:����m) ��J	���K/�V�,*����,����x�>�v1��}����l���6e���������iC!|u��v�]mF��N��^����G3��b�P�b�+�6V�z�RM��>��<���,n�xk)L��}����y*d�`�l�+
��soiL�~���[0����t�^�uZF����+'Wn�����9������9����/�E�I�c8��%����NHcN�m{������p���k1�����s
 f�)6��Bd�G�F�P�F�-�c�}�o{��V\=��Y��:9O������eNy�d�KW\a��(�%>�����F�6�> _��y�mK�l���v��{�4N���il���we�W��T���]��D�������f�j=N���W��r����fz�ry�u
�F�6(@�E���k3.1|����E!�rs���;���Di��������Bm�B\vSL���8gQ��n�������/E���8�.N�u���ms5�]Z��<S���j'����R���VT�q�{�wLKyt���/�$�4H�4���uO�����O"	����("X�]%q��NT��"��o,�T,+O,�sr�5����:v:�
���X7
R���0-V��S��R����{O�""��>j��`���8�]w���Q�#����U�������^�9��)e�[��}*�0Y��8u����gJm���S�����G'���Ze�����J�\��u-�|�������j�i�bwZ(�Q���$2��
h�K�e�]�5dysH�Dp�e4���K�:*Y�����U�j��{y�^Sl���ZD��5�[��]`��	CQ�7�r��p���5�H�T-��Vi����I�>��T��C�Gi�bScw�m�L�����hs�{���4;�8>�h�� ������l=�oeG��N�������bk�������&Dz2G\����)[#P���m�=�EB%����n���-��[�<�[Xi����r������)o�9�:����3#��fM�+o"q��CiR�Z��mc;rku��#E]�p�����l�WoAU� ,/V�1K�g ��6�uj��{�d�5r5x�+���s^��e
nm9�����0p1�4C��M��k������2��LXi&��k��gn��UL�9�s.���Q$�]s]-�V+�6���J����M�(�VU.�s`jY��kK���}|	��@F��#�����N�F_.W;��t��n��w*���5�d��Gc���'nYb����mr����vn��}|v�@�Rk���W�	���%�kCD=�If�EU�D��F�"���(��A�)�Ed��5��6k���S��w[n�*�[d�Mh����
�'b�+g�d�)���AH������C��Z��c,�frkPSm�1�<�j=i�w�{��yY�U�<��G��������[}� ��VW��[�2d*
��b�i�x�y�������y��)b;�����sOB����|i��z�xL�t��Fi�u�zJ}��ag'T9��af������z������qC�M���Q[�����}�.��U����
���T[�����M���y���(��R�w��v�N�n�1�o(�w
F:���t���v�HO����
>��1c(#x������]���"��@�����y�
��f�u��\��(#�c��r^������q��
��XY�T��V_�����x�H�T�����$�
��[�Y���9O8�}y����U&9�I��y��M|,��:U7��]u��66�>:X����%�u�S���V�5v������Q$Y�"�@S������-n�*2���(�!�Z�.dM�-[��I�.U�~N���ZV�X���}%��3J��>�P�+����q��p�R��>;��%��"�)^	d+�50��Y�U�t�����5Is1��5A[�R�t/P����h�U�
R�*�3���wl����g�������p����U�MRPU�8�������.�Qd��j����]��������N���[H�p��M�K���j����u��%��,�U0^������L���ws7D��V�V�L��{��V�jf�W�s|�7^�P��0���4�3�.��`�����vI�
�6�tv�<�]^�h0�������`��z�z.f�|��>�����JM�#���*��V�{}�_��T�i�����e���c�T2u���|�U�K��n���%n�����(M�������4��J����1�
b@]��������JS1�*�T6���ee��W1�� 8��5#e�.D��?^�*[n�~��>�_��������`~e�,_>�e^������"���4���Q���B��9M3T{X`���.Ac8UV����F�]�]����@����T�d�cv�:��bCYWQ�>��%dh����
�����b��$����_��FvV����d���a��c]�|A����E��|�>_<c���������?��yc��{uz���+�]����w"��$��p�U:�����|�b����-��7�sz*c6$�,{�Fqys)	����V�%���:��K]���
��@d�Cx�0�~]t��]��D~p����@K.���DIQ����t�Z0���I���>�_����hz���u%���@�{�(����q��	�n��"�+Id�_���J�1��|~mn�a1�L|��r~��|c�b��$�K�S�ai�V��V�R��/��\v}]�6��]Y�������tG�/�o>x�,=�8�b\��!��(T�d�O��<�Je�U�x��|K����-��L����_["�������	<�b��1�y�h�p.�H����]�a���yr����\�Bq;r(�2��-t�o��<wxOs+�*� �U��j����
���@/]��NclQ�G����%�V�*�mC�6eQ��
�XuP�[��+�w���W�v�a��1w�\uR�G�u�Ev��h%�\6��#F��OS��C�%B
S|,�$�es�&�~4Y������w���2�r�]�^j����	�o[U�!FWWrX��a!r�,x���l0��R�-
���U�m2�K\�I6+.�I�����]	R$��o�Tq�V$��x���g6�y��mT�,h�J�;Q�E�V)Ce{Q������#up�����
����]��
{���l&����l���\#�D��}�cil��m�~�*LT(����_LiG����X��T(*�K�\/�*�7�������/�E�.�����p��\h�d+������]��>.��������a~cb��x��� ���LF���0����:����PA������k�J�cDC��$�M&�c�4�)R�S��B�����?x��2y	_/d���:�*���"=~�_Ge7���9�0�l!w�>���������k<-��~<_������I0�>�8���1d	���"?%=�D	�`!0�������,���)��T�[sP�08����6�%�qvl���4NdV'B_���;�Vc8�t�������R�y+N�F}��0����/��W��R���\w"���W��KLTT���<���������(y�35����T��=Q������
#���V�h�z�v\\���q
Q�vyhgkH��zo�����{��{����%�9��L�i����<�,�fd
�|D�h@��
�r������98����~����L^�����p��t>K����}�-�f)L��]aT)�D|�{���gO���<_��G	R�_*(M�"��v�����$����v
��Sx�}>��m�R5�d)��C!�L\,A�����WO�3�@|���j��bK3	��f�0�+�����_C�$io�K??��>CZ�Rh�����qKc59�B���Ef��)Y�l�y��|��k�S���n���Cy��g��iz�h���(����F��GO������Y�k���Q�FR�;W�����b;��`nTi���S��
��r�v��d�
z4Z�<�,�����T�)�]2��1��w�sy�S�2z��80�����4���0
���1r�4_[����u#L��(4q�2�%�22��������WdKB�c/$��;��|Wp�������q��}�	D(35�{�U���<"��T��q�(>+oV�=��Y's~R�����.��R��X}*���%
�Pe+����X�L�F��w��0��'"������)������t+��!��/�L�qL0�E� ����$ )���T�[��
����~��^!'�ur���"[n@_+2��q� L
f;��aK!��SN-�����8��U��Z���Kr��6|�%E*��i��r)�<}5M�L��5-N=/�XK���1�g��TG�k�����������g<pHn�y(%��N��%����F,���\���?W���333333332���D�Q�	-��4�n�r�k�W�yg��B�vv���Q���u�v�M/���!d�Cma���q�����<��X�E�������2O�� ���%@G�]oCOW�M���T��I�.�F�)���

E�7��~rc�l����u7S��O�)���i�����{���[�O����������!O���~;_&�����*[�SeY��JPZ�����
	���T����J0��>�+�{f��;�!S�\E�*(��5�!i�r,����9ee��}a�bg��35�;��w5��(��f�����I�BAd�>U�Y+N
��|��L=ZevN�	�
��{k��T[�3.��1g+�[x>b�q�����������"cg�8�n�k���/���;
K�L�!�GF���eCB����
����1�.5���e�h���8�Sp�QB��Ys�wv�T����i�+�|�D�O���$t�������I�5��r{������������x��A���5�%ld��������l�R�\V��cq�����b�+
�e��O�x���S�y���KKa��S���tA�;��yn�H[.�w���I]W������!|�X>0,���6E��,���J�^N�Y�-y ���E4��a�{��c���o
��m�q��T�5��rb	���c�G[�L)=��BG�@��|z�*6I5#M�tw��� �����h �/�j�����gd����u���D�yP�
z��3���(cC��������<�{p]��\X�I�m�'-2y9�6����5"�%�eRc7���������B@��������N�-�e3��Qx��c�-�;��}}�}rJ?�������4aRr�eqm~��efQ
#q��*�����2�g�Au��|$��������u��������]����Y�[,{��T
��l��i�_��
����o��g������W��X1�FFI���>�{Q,85���c����,�T�'H��*` 3�`���L���\��$.!���F�����MK)��U-�D�	���B�G`��H��X�dSp�5��5s����<&x��V�k����O���sZ�.S����/r���Y��h�:���H"!t��~��m���o������������ )W7���M����Hqk\C,��\@�����������Y�������Y9����tR��9��BL�9C���4�|4�T����e���@q���>,�\����2��S�C�_4�T[�?�(����m��c�K�����V&�Ef������F�����&��y9����.S6g�<���N��UFa�Z!���z���a-7{�lo>J*a���	`�������'}�����@�{Y,���:��s���!�MB�an��{n����h��k3k�#����������	���~S~~����s��1��z��S<}��"3���
�����GHG������u��������3����������z�kw��YrO���_6�UW���0O�6^�K[�=������4�.��E�8��� m+��������>3�l9'���������i�b������;�)x{���� 6a�,�+�3��O��r>l)��pCa^y�xa�"��������ztS7����(��X�7v���v���� ��8�J����}���
�*��D/~!<�$��>{3aF�o����j��*���)��`6�"M�Z�@���

B�=~���
^���-�[9�k��2����nE-���w���h���a��f��+X��h�.g	[��`�������Z\� ���Y~t�a z�8k�����^�]���
�Y����{6�kga��h��f��oN:k�q�
��q�d#G�w�/��\!Y"���<i/ZR T(��T����KN���yZ�I�#"hH���b�g�,����
\zZ:|}K���G%�#nx)��"��ik�hw��bP I}\���/UG����nH��u3d&�wWv���n�9����#�5�	Q��#K�!���rc� ��Tc�CR;��,�!���`��1�A�J��e�s:��q>Y�`:�����:�9�������Y�����y������~�re�t����@����XZ����b�%��wqe��#l!!5����X���\��5�W.�!Q?�J��jr�r��!1`k� ���d���V�{!kx�m��������<H�R./�5-�������T�}^����b�C]!u��(���1�	�����������mK�e�ge��kQ����hB�/��w�g1!�_���5�����q2t7��R�.�C��s��z��+���N���@��b�|���y��i�
�+����������W���iH��|'�SH���	���4������:���(�W����gF��k���X,c���N?�2y�G���]�W�*hN�*��#�����Q#���0Y�G�s���f[h�a��ML3��Z]�S�)�'��#'�?�|*/���7s��Q�f�;�P|a�,5����s�|8:�!��D�]s�R$�������>&�e2�J�}/�1�x�cq�P_�w������������>�y�v��2vi��pY�=�i��E��_���Fs~����������UU��[�@���U(?����k�Y9]�w�Y�1y|��n�; m�4o����f�H���W`i���K�( ����[��?ts�d��_���@�bN�4&EK�?�U����4�cc\oFQJ��>��(~$5��QM�Z9�~�x>�V|Xa����=�R���k���&I�9�`^ 8j��"��e�Z�8��2H��y3�djt�5p�����JXy-a|���T�
y.�AA
�Mx��)������%H��3;� I>$�l��SIJ�.m�e��m��AW2��:�aUQ�*�yvF��"r���P.���r2�RM�Z���/�7���<��������,_�t�s�����Z�7^%2��]�m�Gs5k}}�k��g��'gE,(������F�3U<Ns�{5)�2����-��y3��.S3y������-	���y�b�9��`t)���N���<qf`A��f������I��#L!r]�}-f��L��V�FG����>�-;[���mt�3)M�gP�w���Z�pI]������o+��M�#�G����������y�Vd��"#����,���6�[�����z�0���xj-�cu����"�%�0���j��r�����l�fg
�F�$x �n�{�6�����j�+�}���U�]>��/97U�`�5�Q�3&e���� bR����	��B��bA
c+�f>�
�}��W�����#���k��U�b�W[��pG�z�e�NGeot��7����f�7�t�6�u�E)o�(���o(�z�x�9���WF<8���t���s���}r*\�bi�����u���
�t7�M����^����������:*v�D��3��/�k�=��r�L����MRn�I��ds��'�$�:cn�Sz��Wj*|58��t�������H�"*�A�s���^������3��L
n��Zv���S�x6c�4�i����4�+8����h���$Q��7v������k�6�����������+2�C��N:d�+y���o���.�)�s)1����4�PTqrv��;�#]N"_s�X���>"�X=���a��i���c���F2�B�f�(�"���R��W�2�op���#���o��r�����r=�����$���Y��W��Ou�/��^\�P7/�e<:9��������s���u�'�����r<�)�f��Pu�0�o#�(�nT�������q�����nc�uI	��^��Om�2PnJ�SN�:�����m
���b�"�kA�4�.��ax�E�Aa����V�i���:�'��%t��a]�j�����r���n'(�:���t�����v�u;��{z�W�jmd�zi�T�^l��}[�Kr�:�=F����}vt�����()�f�j���G��]Y��%������j�u��Ji����m��,)v�����9&�y�FKY���n��o:�.U��N�[�!��rn�u����y�V:nV�7�1t�,��=3��c��9E�����VJ��R���qG��VLJQq47V�v�MVy=�9pA��1(�������W���[��w���9\����q��JW�_�`=<nnk�,���J����X%�w�:,����y��N�Y,��5n�m/_j;��]R��zN��(���u�Z�VEw�����.����1k�v��A��&�n�F�EY�p�{G���7���Z������)���������z�af����J.�x���Y2)Ap�����(mN�����R����gd@�z�B+2������r��uW\�r���h�*��>�����#�|X�������Y5��8���Y�so�ac�z��������r�\oU�o>vXB�������A������=r���^	 �������8�q1��'�����\k����s�|:���-�:�������-a�2VK��eyvM�����W�����v$:�6���N��a�2�Y�y��)V*:},N]�#u����mK�W8>����5����!���O�2F���m�r�)�]@I�������<��N��J����W��,5������oQ�^95�%�����pe���.e���`3
��B�[o�7WY��5�& ����L�^�����2�5�7��Z�N�B��,�R�f!�Z������-��V�M^Wd�!sy��zn�Q�n�����`Y�:O3S)�2�v3�����<u:�*�h�GY��M<������5��k�(�)����wyJ���\r�,7,Sm��usW`�s]i�����[�U>�mp��� ��+c�^���2v�<�f�-WG�%�|��Ee-���!w�.�9BPN�t�����jmp��<�]:��l�L��5�u��t��gU4�Anf�M���;�V����3���������e;���<�vk�/��c�w�F�m��9c�0�4����>��va��o
����UC7��go�Z��-�����/F�xmH��<��|`re�+��cQ��f\�:�8���:��W�jK
���T����v3^f�,��a�Qut�e�,��WER�hV���%�
��0p�um�Lq�[K������9M������^+[��v���� �`�NZ��0�-�j�����!��g$_�MUg�v��j�Z�2�\	������y+���h����F���
�������PV��%�G�L�9���w'%�[��,�F��L�"X��i&
AI�.�+5���dGj�q�?_�)��>|j���N2�����We�l����-8#"���Hw�����$I�����:v�n,�l�7)Z�+B��C0.��G��-,C8���,$���<��e�
�n��F�}��Vh����
gnS�*�||�l��^�\�L�_}oQ��-�44U0�2����y��\��~U�^�yp�n6���������*!~�?�o��xn��R�lctf|r���%�&�s<������[y���U�-�yM�yw���X��p
<��)�\�
{���$���"}�9k=m(!���3,xC�H�n��tT\���;y��&
����]����n�^l�+d���"���}���C{�l������K��a�)W"6�$y� �������S�f���UyT�1�@�i��-����������`�y�.a��F3�c�����=��vJ|��;�[W��q�jmM�E�����<`�dv�#{?C��\�9���:�4�}Z>��b�����
�DF�{���#�$Z"�t��h	��xd��":��G(�@�W4���-r�{3;�+B��SO��(�l�p����TZpnvC�J:a�u7[�\��0k����,)����� e�����e`KV}M�@�H(H������:�\T����������[+=��GI:��j��b�w�3:w<�c����u���������ITx�f~%.��}�����q���8m��Lt0�t�&u�y0���*�G�)��fb��l]������J�3��k���{d.�:�|t�8f:i]X�r�*���^\bQ���s�6
�K���R����H�����{�*0?L�YS�����2Aka�M'�	���n*�����4is�����������dy�;���_<�$O{�[��t���������a�G��P�k�X�k�@�yQ2e�����G'�u��[m����mC��`}��>�W�����4h����8� ����]�������}��<�Gix���`���G������Q���c����p���������u�>p�=���|I���D��^ZXW]b��Ap�����'��/�9y�fu]�~���X���ZQ6��z��!�#��[�}T�V>�����jW�K����������ks��5c��[}y����7d3�4�g��A���nJ�DD���>k�]fd3C�D;��@������X��Vh��-_.��
��s��L��Xr5���&��E�f��3���O���l�3M��T��|��[_�t��o4���k�<S�A�)��%��r%q���z����~��U<��%[&x�N*��p�!O���P8���Z���qm���.8�����s6�)��!����n�g���E��U�^]}r�3�0@��A���
��}�����1
E�4�������Z`nC���#����|�� c���t
8N3o�Gyc��*�y��E�S�ei�p��/�A�����
0Pn@�/���}�	���5��W>+y���p�c�a��h�b�2$�WMXj@@��$���Q]���0_/�A��4�����f��a��4-:�^���4����5��~LVjjt@��|�����X�O@M�?.��?�z���?{I>~��Sr�w��SXx
����c
�������M��^�����I�`�2�����i�����~�1�r��Yhn�fo��K�(�:��c��z�7�P[\��e�WY����,���a��d��j�L�Y��P�N���������X���Q��hE�:@��H�H�<�����(�bOXF��s��N�U�������nyo����Gm�G�5�kkr��"��C[*I�'��/s��!��bE%T~�8�$��A���a1�]~,{�'��|C��U��a����T���-R�Q�j��t��l��:m�Y��g�@��*1T
���[0��H�&Yu<�*�*j :
 <��}}����������������| �A����
u��\]@�9��DYk�h����x�9e5���q�/w�b^���|��Z�Y�m���Ya��/2h�5^�
��.#�-���la2C�H}	���dX��U����1��+�D3y3a�q�-���M#�1��7`��uU���a��j	+�.�A
?�����B�XG��m�Z���W���l�#5Sk��C�""�z���8��pD�}�x��A?���Hs
6���]8���N�����+��S�[��+S.4k~����Co��r3tf�d5�"��0e��`"���g,_��1n1Kd8�R����F��#�4w�����W�3(L�����N�2�������>�9�`����K��&�z	$��>������z��x!n+h��2�����t��#Q��20�E_&.gL�A��<v���2��.�G�}�,G@T�E��_h��+|���K����'?�t|���U�H����S73�n��t������NX����	�3X��)DPG�-�#b�k��o��������SYxg8b�&-LN�g
�@���D��p�k����`�4S�Ck�=p{yj�M.�SX\� �#�
����?��E�P�H����8?9���}��?����*A�������$U�����u����MxY��Tl�,��S����^���`������i�������bS��{<��T
������Q��"��TA����YK�{3m��7���Tj�W0'����s�������ZU?N��d���X5
A����<�W�F��W���$G_��_%���y�c�Y�J�'�3c���]cL�z��0���>�z*O5
��L�{��j�X���af���A�o��Zs����R	����"�c�U�F�*��}�.nhn�������'��t"���o��C�e�~��E@���c����N�<�����7��!����n���~���VGL������h;8q��ESif�E���M��g9�]MX;�3�il\�1� ��P�p�<�a��8'�q[������,��Z�5F�#��6!9��F���Z��2�����K���}��3w�����W�:�Sr�psW��c�>���}�5�����C_��^�V���)�/J�@;�+��Y]����?�!)D�,,�����c�������[�.��F
	����t�0��6t��D�b[����)Q�8������F�!�A�PHU;J6*��8�����|�W2��NC�s=�������tO@R(=�+vU��O�����o[�*����x?O�:+:��fc��:)���X���pUe<Z��fd���Lp)�j�P������T��!c7v��qG3+/��8ia�����6���T��������%�I$���;��������M��E���i���O���\�z/7
�8G���X�����
��R�~�x@.���]�\*����R�0�dT��� c��������8�`�aT��5��	��U�n��&�Xt�SK�������>�Vc���\��������,��*�<F�����x���'��A�� /DR`���e��N��I@y��|���������������hY�/qA���{S� ��
6�6A���i�H���|��.aO������t��mt���m���I���`?��o��������6%�!_��E���(�hc��A���V��b������v��K�������^Y�D���o�>��>�?,�A�k����,�k&e������o���s��U���� ��[��R1H�\-s9�TR��m�E���|�2���[T3B�4�z��������z�s���p!@�����*����g)Q�wA�!�,6��yGr�R�\0$���,V%@��	!c�>����'�q�������w>���PNuB:@����R��[Lj�W9:]#&V�\��}�����&t��LNy"%/����u��(}�tTl����~K��8���l�����F�N0Sm&o*W�_n�`����8^�g�G�Q��V.+W+�M`�Q?T��X����R�k��!2	=����I@� �+��~���i�5!�`MPJ��~!o��6��d�)�{�^��.����a�[1`�X�
�����\>.X��Q����\��'�P�v.\\4y�v���������b�*S��%�O�BH?!��Y12��7�������S41i�/� ��&aT���*����L(��0�@R*(���*����7����D�0����;���S�@� h�F�5���X���o���>�h�
M�GX�~j����b@R"����~'���Y	&�v���PQ�1L US8B�{�I$p���\H������'[�V����j8�����k�'-\S%f�0����>^�"�F��w�8.����%|c�G/��H��H�����!��:P�$X2:jR~���d`���������<��F�g���.�7U.���kv|I'?@��0e����8��n��r��[���na�m1wY�_k�����������]��"_E���!{��Vl��G�5�Er9�Y�����+JX��tP�YkD{�e+���b�=����o(�c�HM{3�+���n6��K�$�����:��:�9�����iAm��$\�!�f|����s���|�n��MW7k�.��Fq��
}��� ��V�#�o&��W�����$+t��T�qP��S4��k*P����/�1qd��B�"�0,��G3wn�[T/Xj��}��K�@��9���.�bW��0q�L����k����R����8N��*�E��s����(wcju��K*�����7m��t�NW�
�r]��mu;k���q���-�zt$���q�����Y��'S�W����t�H�9���Lc�>�G+��#T��tt�+����[N�}�(�5;�tb�-��c�<}��VLk����HR�]��;��p�*SR�i��n�8��+)��~�z���,�]in������N�l��ey0%D�;y�+�s^]+u����46���[b`3y�Kr�v*
����I���C�#@�O�+������r�;Ir�:�T���Cy�&[�w�7�U\	'��x�[q�������T��6��K�'|�r��������|�M��SG��7�B+.����z�[���/[���ZEvG!r�L.P2[���r�R��������Nn��{�7�Z� �g���S�S�D^��m���5$�1�$�)u�2���:�nF��!���:�}��rG8	����v&x����M�����8����St>�����?q-f_-�S35�)%i�l,����k��> �\8��x�g�����G ��������Hi&�R.�]�cD1C���A��/���Yy\��#�����1�/��R�0����VRw��W���G&S������8��/�#H-�S�h��/6��A�&���/!���b�Se@��s=�\����|�����4�s�`��u[���7���Q	`V)%��j��;�o4e������Ny�[Z�B�9�x��[o+6���J�{��
��Va�f��a��Mou��p1�{��PZ2�{6XT3z7�Vh�-�M(����F���{*�iA�������{�������"xppJu��G��;����R���s��3�������K8$�Dg_o5u�
(�W��".u��u'����e�c�qB������/�T��tT�%#{���]���1V/�������_7��=2M�z��_Z�X��B� ������I+�'6�d)���U���������}�$�l�i��o����F9!�nxE�#������EhZ��ed�u�=�<��jg����3���e�F���)�|�����;���S��'�"������R��42�<�� �n'���U�aC	e�q�?$���cK���l���C������2���]v�~��r&��moaV��C�����c8����G��u�}�b���U�������x8�W����s�G���`��#��_ �yU���Y���F�5_�|��2\�ZL;F����#���S�������m���~�s�D�_�F_O��K���3}��Z�����K�����7�9og���E�	l[�_,d�WX�A�5��T���������+���%���������-��k=��p������w��O�+S�hc��������~�w���>[S�\[�!�b+�E�T��m_���M����U
��u���'�d:���b�b�1�\��<=�N���_=�dm����c����ag�2�y�C@���Z��B���Hy{�,[��"��S4��W����W������K:y�����#9eflr��g��L1y����Z�>�i���>��������~?o�l(�����H�vW�Y�4��/|��2
|��r��O�GS3����[�c������
��ML�Q7���f5_�*�Z;+/{~����XI�����&��/��M6��������|�XC%�{�����v�G�7-��"x"��|��g�4�����wH�a�R������YrG"�Jb�^�)����%��eG$^W��C��g/��jF>b�izR��f�����/A&�"�b��:N�!W]��7�~MP\�m*��y�����vY��u�gC�5��*�� ?Bp���f������2��CM��9�[��3Uh:rvo+�&���Y���i>��Y��(j��5���n%�B��XU���%=M7(���Xx���FK{c�<���q����f!������l_9D�M�a����<���+�x ����a!7��l�2�-�*� �9}��1+�*��������qjY�����P+%�5����m�Vv����A����O?G�M�"HeW�C�E}lB���&y^��4�]�|v�R�t-n��E�E�O�V�v��q_KP\������x
�`3ZOc��31�S�p|�������\�ZV����+,J6<^�O-Le�+�/�)�bl���U�8V�� ��� ���-����m����g����b=
��B��r'*r�=�6�����\���e� ���:���?9��x7���D�,W�jT�����M�;�[����3�����Vs��$�����O�0
�l��[�_����q*�kuw�h9����j�q*���}�8dCu���F�Q|���:b_&���dVU�{�,J��(/!+��~-�i��#��������X� ��e��[�wHn����0A�"�P�����}#���h�g5���OE����R��������5Z�g��z�4����W�!���0��a��t���IPr��[Y���27w-[V\�iq'q*�2���Z�����k����%5��*�������@�'ni�4�E�E<szW3���H�WpN78���[�����{�����C`"�O������V�d��	;��'>��R1���e�x��6������|W��EQ�/:���|�K���R����
��7y/�BZ���\�GV��m:�1�H�>&=�Z���J��.������m���:���+x����oF������@�Q�5�����������+����)g[�5�(�� �6��H��Tf����]�E�q���kp�>{.U�+u�`Y�=Y>B�(�W����Auw�<���[�@�cM�9��jX����|>��x�����E��soUy��l@P�Lt�F9t���T��:q����%�$��������m��@_�����dF[ ��`�N.�2�{0mB��-r����F!�*
u�_J�T`����I�����G��+p[j=sE5�1�gtx������Q[���\*"��<'��Z�P�&t]��TP@0g�����]f���2B�-6^�,YO
8C,L���)Go� �R���x�����������������������"�[���")W������_�}0_��C�9�&&)�IS�#L��;
�2�|��C�	��4T�,�o%v�4A�&�4>��7��ym�����s�6�?!�]�44v��l�F
�^�d$5�`�;��G���2���L��BJ��ra_rW�42�M�\
bl0�����4� LJ�_�?s�-Q������(L�*��K����9�&�d%��qO�7�
��+�#���w�x�"��1@�����Y>�K���]�inZ8QOZ���D*��O��^$)���E�%X��4���d�3�~,���X�(V�{�������a������������5��(���'BQ��&�������'"I	/�}^�����N�F>���%�5�l��bZ��6�h�l����i`\�e���j����0�`���
}2����"���s�$�	n�����^��l�D*!5{1d�L�~�+��%�����p�4�+4j��8�
iL�7�������<��am�m��0g m�vPU��1TSh���5�F6x�|j�
�"���_ ����0�[N�/�h���,Z�����.��U�-�3F"����&�Jx���".g�(?�|L��
�+���i\��B8��s�����w�i��������g�����j-1'Q��q
3����jc%�x�mm����o#�q����<�l���H�x+@2���������������>���������<5/w�zmL�h�AE�z��Q�qe@
l�ykp[

���LQh�k����}�N"'^����F=�St����dQ�p��W(��Y�������%?�Z �p^��QyH\��a�/�E#�v��*��b>����g%U}�T=<
��"�B�`��h�U�F�>t%�B(��n����U���Y2p}li"���I���$��?�$/�6���xQlg� ������n/��Vq�l�-�];.�JTB]�N�H��T-��g0Xe��i������f����9pNj�^�@FJ�����������f6�a�D�1�&46�y,#<�5p��kN�r�HZC�X
m�B�q�L��M�Am{�&�NE�����Ki�!������2������q��/������<���?�sH����5�!./��w^
����TX:/
m/$�h�P�7z�h���t/�7�����`��N�k����,!B]L��7��if~���!~C������|j�mF}u�f���g�o�Koul�=�~y:��;��Ca�2z�0�_[Pw��`�\Q��~��#HO;K�����0j�5�VE�V8�$�x�wrm}��u�������8��d#%�L_6`��r�K�X�
���x����.4���|�
v���P5�X/cTG�=���k�ce��?�l�wvb�\��c���:�t�0�WMt���7�����R�a���������P�M�o�.���Vi��!I
I��^n?#~��t�j��w#.���
��9gw�ful�?6_#���+4O=�f���� ����<��0��E�\9�}yt�XKZFJ�����~mP!Z ��,�Q�v��#1�.F+da"����l��>h=O�Y��d��J��-D�>3���Z@��$�2��MxT%BV(c&�6Qne�"L���������"��&��"�p|Eu1����y�HA7����.��|���?
����  �F'������8��
S��]�(e���t,�o��.S�,���&A����WO�KF58p@G�)��Yn�0�-u����m�#.T��g���K�o��}�~\1P~�X<�`�>x`����
����Q�Z+ Qn�1Fg�8��p����@�x�Z=,	�ko����Z�C}�����(>��^w%u�K^���-�����i���_�FfN�;�!��i����L���"���
�xE|G�!5�Y}*&�\j5�@�b1
������C�[|X�2pX~�H����"(,���W��~��b��~/�5�dQ�+��)]&Y�����`��{R�}.!����@�>�c�a�|e3�����N���,�)�M(&�b�F6Uc���J\�Y��9.8�`���	�y�f�R�����H_f9�����4�4%E����m�\�#�d����6���G$yW2"]
C�.��x�&�����:�b���A
"�4A)F�?��q�P����w[U�z����A����J�����)�ha~.\��0|�g��� �?J�s|���R4��D�L��U�[aF��A&�~y�|9���;>kA�_�U %$���Il9�����xaF��z���5?(��O�$�1�����JZ����
-��,��<�������ls���
�J�-�d����A-�L?K��L�l*��	�U:����!��S������H�����D�5b�U�|�rz��#�4&��f(��a��x��-,��]�v����^�\l�����;�5B��p�H/�0��o�d�:!n�
���^�%C,`����G�3+����BQ�!C����*��F&�.��	����x�Y>�-,���c�*U���U���dG�����X�/{�b���'��]�;��EgU'o����h�S�=�vF�_Ny������1�UHU��Q�����k����W1��UJ0X"t-]�����+'�M'���6��$�}�K+�s9�����ue���6WD�iT5o r��6���ug���m\�E�c&v�:����Ow-���n$���X�l��,����gis9�Tu����8m%J�t�L������r�
�7���4���(���P�������Qk����:�1�|{Z��	2�X����v;����".k�i������{���<:���!\�:Q�E*��� ���w*�y��h��+@
�b4�����T�T2I������E������wm�l��P��gN��\��m��Q���m��������	a���k�������n�r�S�S(���y�����r��9��v�k5�c�5���Q�����$�����o-@�M�]�[�NWwol{�=S������g(\�{�72������	j�J&��0�������6��=�u�6_p����e�.{��:��[��7+S���#E�v�|�Y�R�9�s+K���s���3����wfa�9 ����`���#�`��;g@/�^${Nk��R���W�6#� v���3�,�����s��$hhQ�8���F�L��s��QMJ�Q�r
�����:1
�u��4���&�i��#�L]�_m*�om���S�^������V���������6��@:��u��V�����>�$0A���Vg'tW{���-�B^%i������'N��aDVe��{_U��}�#�M�����hTK��.��a�����N�&�����l�]�G�*�T.7o4�o,�m�7zh����H&3���%N#����&�U�]/&�uP���:�n�U��:�������%brV�����*d��t�{�)7\����'`����m�n�-�Z���������P�x��6�=��l��i���L�����SZ��� �O'<{�t�}.Y�������u�Nsv6�E���(��9u/��]�f����tw�Ov����W+�����Y�Glkq������n���2����l��e���}Z�M��;�,�5�NR�3,rz�K���f��f���e��sl2��f���m���

��g�-]b+�\g��(^Ir�����Z$������Xef�Z�)(L�F�����]�3�����T&��t����r�.�+��u�6p��m!�#|��[w��f'�a�V��Uj��h�������#��
83��M�9�u	�1�Y�X�����kK����tU��K���4;/����VR+C�J��H�����B�e%��y�J���Kf�3j�����q����s;yI: ]�e��f����LOr�3wP6���o�����F��[t���M7�Z;�����mbr���Q�+����(���>WC(X�cu`�d�]�����c0���ovAZ��eZ�����]s�B��x�k(mRUf)u��k6���{���T/K��V)��3IEJWf��!��#!����C�t��i���MG2r�1�e���Qg��z���ish�So���g�E���A����J�+-wtl������M��%F9g3�j�����)������]���]���p}�������.������)]p#�3��1f����bi��\�o�{s���K����b�����G��bM��|
����\7v�r�L�&0�wK��$S�|r"�#5�ij�����};��a�o
:���u��*��5��4z�d����v_�)N�r���G�S�oW�������+��c��h�\8mn��f�B�����9�V1�=�\�"��c��N��D��) I��8em��/�����{+����{��4v@���|A�!
�Z���w�:�}%�I�F
0����p��eQu�:�������k,���l�Mk���g���gZ�����������OUC�q��)�9�R�>�2S�����^v
J8(H�S������tIR��������)�YIQ���e��r	�0Z��q'���4h;U~�{Is�M�vR��!��O=g:��:��{���QgAW�[U�l���MG/9���r���+�z�Q���3�@����|����E[m�9�\�|���m]'��wTN�vF$�����y1w�iW�����AEuo9�$��x�#%����
���}��I���3��R&.gV����+x�Vd���M�������i
c:�8A�*���s�'�e	��1��V%�Mv����-�:���'{mEbui�5W��dKvt��V�gR�5����m�����NO�w;:<6u�������^��^���=����d�m,�g&i��g��c&H���[�j�?C|,7���h�C:��a'��,��|����
��{��d�u|u�/��sA���4k�'.Ly�}j2r����Z+*>������;q��bI�� ����4�m�������=�V���Ag�2�Vm�|+�I�:c������'���.%��X{�}h��!��r������Q���oks�Q�l�6�CyW��%^l�L��I]��k���3�Z��f��ez�,C�����+�}!�����_�������Z��Q��b��07E�2��������w*Q�����������g��KS���u����9,�����r�&0����yA�/�Z���u�O8|��2+����p��rM���v��y0��|�Z�,�a�43����k�w��u��;8���]�x���S����m� ��	�1�Q�;�W���B�$ep*GL`w���;5��B��1 ��h�����
��g�b�^��g-���
��
~��G��Q��2�l�W���#xX�>9�&��Hv�i�5fQn���A��������������R_������lr�-�y_+>�kK
��Q���$l��Zy�v����W�pX7]�*�������}������m�zf��xV:�[��Ml)��1y�1P97T��4�R�t��W�U(����L��`��bub6�_b|*k	\�*��z(���h�"3�W:�����h��g.�Y���vK�4IH��Lg�#�����,�.,�v�k�`��-L7��kr�Ys�>-�4�U��6aIxSD�����u��g��]����*S]���B��3��)(��Z�v�������C���xh�	�/p�U��k�Sz-'�>M��K/w4U���_y���/wH���*=����(�|��h#���=T5��L����YG>���TR�f���?��n�����V���9�
���W�}�C[^��zn~��ql�y������r���!t��&���8�_��@��z���H�
C��T��M�f��>�5�<
�,s���7�~��u��a���������0�,������#��@�r�w1�v���/�<4��\*��>}oe�A�9��S"($_D�p^�t^���U�W������"J$���j<�(���yO�m�X�/=�sq�t�SX��3[��9��.W�������� ���i�x�*�$P��ho�BJ��i�.�|�����>L52��"��2�|)f9�k����
~����
�g{��`���F��gw�n���&h����W2~��
]�����_|�r�f�d��-V���5�&IS�7�q�z�QEV�����'����C���:�i|X?��n*�4�,��*��fy�4KyN���A�>�Yv����s��$c:�����XyK���u=Ky��m�[%��D�2��^NH�yl�����,�=.
�X��i����u���5b�U��AW-l���q����VX��j\���T���5��.�>P��Xx���{�yT|o�>'�%��jw��mu5���MY���,��e�`K}���K]����?){�)�(����VP�j�(��B��8��^��TD;�c����v��	��-����[G�6^�.�"*q&ge���w���7Z��pc���������d���|^��9�~5`P���Fr</��I�r_
�����������N�����:�����m�h�w�}��=;��L�7TK�3���iv��o4t� ��;���=7{|	[nL{������gmZ+%f���� �a���V*D��@��>����jk-V�[?=���o'{�!o����]��������a��y����q� �q��R@��j$h�S���RK�����|���4;���k���_��f0�6�d���=I�&Pj��[V�@�v*��g6-/��~g��P|V���b�h���a���������&��+�*����2L-[�s���1P��������������wQ���HK�:[c������$/�9�-�b~�(��?����aB�#,\:���}��j�H@���N����v���v����$��]3����}�Q ���<�S6�%�k�I��~�,[��\81|����1���w`M�@�M�m���l�~_��4��<u��C����k�}�=H X[�"`@�A9�1>C/��1xSZ��(dZ��@�R-~���P��"����+����pQn�.tM�a=U�1
��8��z���
�j��}�c|)]����9����q�r��hb��1�\���7
Q^�;u�Z��U&��V����dt��l�Id0��Uf;���[����I:� ����{D��}���>��*R���x��B^�����B�d�����%��I�v��4��:{�2U�m���n�������<��VZ���N�QM#z��-����G��������M�Wn9q����^��S��t�F����
C�vw�R~`����	�H��F �����+�!Q�h�����SC���S_5�Jp���
�o*�0������1�11������~(5���l� �������&f,z�����r%�6{���������"@�)1}
y����]��3��\�6G�4Dc���k�v�	'��p������57���TY)�^D��F�������Z�2�����S��y���V�����C� ���a���V�)Ra�-����?Y*pvM����9� ��+����<�I�{��Gp�Ez���}�(�C��Um�~j�[�g)�3���A)'�`��D�����w�W��^@lSl`m:a�C�;���.��\\E�nS��������� ����M�nH`H1��W�1�7�����#��z��+>$�#�0���Zp������ih�b�1"��
��
�D�qy�.5��*9�>���1n��� ��}H�B$)X,%_�1���~���[)�-��6�tLQ��a�.��`�g��F���h�b�����W�X�^�����F��4ur (!���`�S��&I�E*����%}�xI�r����D=��m��8O�j���se�)����-�|���r0P������,�������(�*��IX~Z�I����:H�c�~vCk��N�^�����~�?<��g���X)���MF2�T���(�^U<!�d���$6�h?��w���+,����S�����~���
3^���^k�S�Uw�K���Q=`�-�8�4E4n���5�{k/�ll���t *|lUN�e�[I��������0�$W��R��8V��H8�&�~\��EI�A-&�.��Sq�<�����f�sY�,���D�U/�O���rQ�\aX�����~^3���)���2��=2�.c�+6�������cx5v��� �A�>�6����K�R�HX(��[�~Y�g%J���~���� <����*���b(x���(�F�E�rBS�0#)A�������V��z�FJX$;�D�;DJ5� [��q9_��$�"��YQ�L[\���� �.���?RI��d}�?2F"NW��iw]�>�����|��~��"�*����r� R��� z�%�G���u""_�6���L�i�<��f����u�BJ
!������30�c�t:e��$��bB��������}�q�	O��*��?~y�I��d�++'����Hph^9����W���0�
4���P.�6���+�,���*H�`�/���]��F�%j������M_]�>"��:�������*�A��Q�UT��9�����`[��R@�q����A~M���,���9�/��d5G(�5E�������xxm�(���$�t(�C$N/�L�I��(��%=�
�A�M�t�ek#��/6����|T|T{�p����(eYXW����r�'���f��T2��k���!�Z�2T�e�U����\�{����w��Qn�y���w����WU�9��#����isi�R
����+n������3�(�zV�4�D������w8�Rp%�8�6�TR�!��Cw�T��4��8���Ml�,��!|:AO�Q�-2�]9����C����d�-k��A��,e�$�=`��U�kVH+P@�P���y�*����=$}��>U��,��[�VS��_�,��]o�����?`f�( ��+��e���<�<�=�]�2�!�^JHfat�e����\,����_�
�{�4I����Tgsn O*NOV9Qcc���5����������8A7?b��Hh[:�"7Y<*����ZA����U[l�n�:���x6��&;�`�5n
P[B�:B���0~5�7�O�"��������r�x�	_6������1@B�v.�@�����KH`�W#�,}�?}k�o�����E ����SE��[�e�"A<k-k��PT�������sofpf�(\����+�<���L�A�r��u!tlD�m@���.�sVC�x^"�K�jJ��v.�*i����/I����6���*iq��7������gq)Y�2����9E�y��}�Ip:U���z���5�����&s�n�2�h����S-������|��PV�\�����2�mm�'��$�<8V]:�{Cy��ecO;-+,��i�i�Q ����z��%����C!uy�9�3\�����4�8��|��m��E���3�����|v���9�����:�	��\���m�gj��4G���pK�b��3J�T��M���Ev���d�����g
t=y�����8�2����������&cV��*p���U8��Z��E�#�
�V�-M	�pd=��
���2��������F�w
�2;�P����v���f�*����S��<$�eE�(b�SfN��mQ����4e����q���p�d���[����c�s}Y*����]kp^����K�p��vSe���&L�7\�b�����3����3ELf��6j#��T���*�XU$�����3��+��%���������$��M��+��2�
�h@1O
�j����s���}��-��=Q�w�>���RsOPG����e<����|M�T0��P����Z�"V�6�roE��s������[��=h+��/��I}��3=�WG/2�m���#�v�m;N��L���&N���'
�Q���W�X����U'^�00�����nt��*�Mqb���!�N��[U�J���s�L���7�+�
o��[[��H��5��g:��2�8���benpu���j�X[Jc���R������x@�3���������+���!b�eE	�����:+cq.�Tn��
����T7x��}j7$�\�&���E�_=��n^5]��T]�
p��s�����<���EZ������Z��wi�$�4��W����9�
����v��i+K�u�e�_��j�Bo|�=Vy�}Uqr��������&gb���v����u���J[���t�/���t�n�������]�i���a��-���HA��V�	��)���ae���LhqWS�49U����uT����oO'�=�lt����Ck�N��NB����FJw����+w!�����f�Ujm����������7�R�Q����)=�@�u��m��H�Oq��vY.����gz�0^�H�9l������f#�^r���V�vas�G��v���U�|H[�����n:�i��3T�@��Q%IY�$Y�!��`h�YT�?����).����pP�>���S^8;����GS���[����x���&�Y�!Y`_ ��f@�_��i��!}zI[�qq���<*��>�G���0Q��R��>�*��73��"Z�}��S�����`��;��������Vw�� 4�fU�_m���#���G?,*�-�����#��5��������WF2����R����x5�L�$N��`<�
�L������9�����|"�m��U���{�9�}�����������%���i�I�9f`K�lw)�v��w-W���\�@�J�MxH���F���]�;([�"���h:����%&����a�/��8i�>��0�xn�@�}�xo�k���5m�#��z��i����\[�A[Y+I��`	o�KTq�-��d��Px�Dh6K��.��b.��\k`�k�z�d_S�"0����U^D��m���V
��|��f<��J���7���vI���"B����/�CO}����|8�=c���R����H�jV
� ���D�n�U����l���D�~�����s����]]qN� ��f���uph�"�D$��}�D��]QS{k�����T��^�S_\yi��Dw��h�3�����89���9@�?�C�������BE�r"�u��w���5e=*X`������z���"T>��:��h���+�'[�����x9�����v3������_O[u|0SV��rOM}�M$�,��4�	52�Jem>j��u��gZQ���������]��H�U�x�,m��j�l[|���J�-b6�mp{6�;�6r��J�,��h�>%E3:gI����#�p��e���*�r������|=#}Kf$4�1�"'-������Sp����Y�XQF�k�P����]fC:�u��S��b�DT.e������D�x
^��u�z�O�hp>ZuBaK��y���"M��U:}���9�B%]mZ��/�E����Vc�|������p�����Y�8 ��:4>}-
�G�7�$�����u3��3�&Z�����s��T��^�?I��X.�}�-���f��I��b8������*�J���<���+j@��Z��X.����z��5#��)���8\}.{\h�k�7��� ��7��=������N�����x*C������}`n�������"�T���Yo���<����a<�L���"���h���}��D�����h�Q���1G� y�o���*F!�+\�����s�����k��v���I�R��Z��P ���V9���y��FEC���#'�9�J����
��1~�@H|Y���'c��
AsE`�s����+���M���+��n�@�x��1R%u.���a?}�}U3�B+�B�T(V�j��m|k�B(�)&��)eoQ�!��|�XW7.���Y�V�A��$X��������$-��fg�����
��z�vG��F0� O�p���W�B��i���D!/�h�]J�V#���M��v�����X��>��Z�Pt��s`Q
?A�������YZu�$��W��}�����$�i���9���#2�����T�����6>��*U���;����v8��V��u��b-�j.���3y��D�?������
�
��.��iD����>�����"��~/j��=�������E[�=�����h�"f�U���������vYC�_x�?	����v����3��pg�bB������_��w���q^.���u^���wFkZ��{���yc�Iu��],�hO���e
��4�b�@�yr�������5�s<�gMN��$�JQ�����^	Z��#��Y��
dD�������yJ�mx�_���JX��~��h�/'>�b����E���ReL���F��Z�#��I�|�onfffffffff]����s	U���/W3��*DJ��y�8�D{���4�VD6�&�j0H!J|(=`�^Jk�
��������9>%�9m������x��>���W�S����|�%�($g�
	"x��0���?]O�2��]+	��z6����0��,SI�Ce�^f�[C���E�����2������Z�Q��P��h��]s��U��w����I�d��5��5-0 >���=�������UH��o�kW�S*Q��~��_I�oy��0��Wk�*ia�e�ww]��k<�X��%C���L��5�U�uV���0���]�����!N��6gL����k�e����$m�8! �g���/��������3�{�(�����)��q���������jVh���$�:��t�����W��Q"Ts
-��+���Z1� ����a|S������G~�6�k���#��������$y����2�fy��?���?�4�s�����%���0$U$z���;W�Pm���WJ�T.�x�,Z�R�V���H"D��=��"���Z�y��L88���"�_�s!�j�����6����x�&������������T~���m#Yp�����.+K>�������v�������q��u��$U�?!},M/�]�+�d��<�*�����k�;�H�X!�<�=b��J����E{^|��_m�(Q�m�0�����p��-��� �,��GL?V��I���6��4������u�
:��W���YT���� sSM�H�b!qu�
C�U)��4%��0������o���D"4���+Q��i=��
������k]�2�M������" �>?!��e�d��37-Px��|�[�7r�p����G���(O��
����^���5S�0��W��w6�C�ik�������;;|<�������n����6|��Y.�+�7C*"��>���yC�_�!$�����������H��Lt>���s���@�
=����g��H�Av
jV��(��#D�r�!����5��Dr�T����*r��WR����UZj������h�zA���m ��U�b���!d�h@�/����{�K�Y�5[�������-� ?�Q�L(����
�W�vJ���qe
�3n�#u��5��&1����;�K!�aR�*;��,�e���ZvR�����7�p��5"��Q���S�c�j"F�83u���<`���G`�V��M2&X����S&�2T4��ui�}*�oZ��WN��X�R��I��q�K7;QH�.�4�4E!(�*����>�q�u����d��w]������]���1*$Ql�P��@C��w��~�{��7�����(���W( ~��R%���w5l(lC���{��eL�Z�g�d�]�����\��QE%���VB��
ydTe��Yo�W~l.P�"�k��$,(�f�6�H����#���F��P�^�@uB��Z����"��,&��S.�����j�VM����H���������I����1���Le4w+}�r��g��D
K{�1+]p���y��1��o�����
��/������������vI�.��~lg\e�a=8��Zb{A����a��4��F��������s�2>��#��%�����j�v�{};��Of����X�t<����mg��CVn..��h��P�i�=��=a�#�z�5y����C�.�L�E����Gx~�K�R5uz�����=����k�����a"�J�
��j�@%�std����,�����v����2��_�h[� @�;����P��.mJ���p|�,�����z������$�v���A���g~��mW_��iZ�z�dU-*"�R4���+���V�+������i�C�}f���T��#���;6�E��8���p�XV>��g��v�[*=+!�����������@�Y����b(�k;����A���%f���
vy|���A��.jAl���e�q|^�dR���>���^������}�C���u��f��������������{Q�F�W+���qwWyt�,f9���+F.��T? s$y_��}��V��rxe[Q��������������'�Y����4W�Z	K��L=�~7�����������P�#x����Qc�����q	�^|�88�4q�;�P4&��u�Q��$:~��)7�W-�21
E�E��D+,Lb9�;+�/f'D������%T9�&��m�e)%k��IPXQ@g�&�NF���G�m��.�A������������d�'���U'�[y� �S�
���J�w'u����m���c�x6���p��/��U8y����Z��g���U�1[��G��Y'->RK�w�	��^����k{}S%���,K����qi��/��G�(����1i���9�2pi�8��-��;x��}�T]�����9�:�[Q+�y"Z}��bX���X��J�����I����J�-���]Rfs��b�����t��We���9+%�Y�s�R���V7����u��g�u��\����<��y����I����z���a�u��<�l��,�-�������H�p���4������;����	2�5�Pv���Y��Z�T�DV�!�������'q�L�8��=|����^>7,m����N�d�gO�/y�����+���*^��3Y��j���,���@���=	������Ks���GXD�R�e�G]$q�w��wWG3I����/���
�8��hi���c�Y7'^�L]���m���l�K���w��C�$�q>��&rv��X�8
wT��
�[eV��j�CV�(�!��gI;z�'���B�"X����,�,�iA����vZUwd�'-Hecf��z��2��(q�w��2-�j���&'�+
\�[�������;��%D�D2"���r/3i{YO�f����Ot�wk���OeB��ep�:�^���#���><��95�7k����}��I�9���fa�I\07r��*TN����"qzmP> �w�����Z��9�����;g]�[��F��{�f>�b�����/(*�5^�Zg�"��Z����*e����aV���U��	�)b���n�57s�&P���.ki�U��d����O[b���m�EQ��p����wou(6WCp����/sGj3)�.������}���.ma4�;Z��vrb�y�qJ����8;EO[��&%��Q]�r��X��R�z��G�5�:�e�[�nV��rh��o6��98S�T���Q�u'-��j��Oz�$�3��v����zv����������6�S7*���D�e��2*�������#YOAw�]z���{�CJ���e�9Nn����T���.[����HAW�b�{����stcS{q��"&��+�,L�������5
��������i��ui�1�}F`�E��+mY�e�W�[;EuY�����4Hsy�\:��[��e(��]���SN�����'vf�=��*<�o#-,��|&n���;���Y)q�������������g$�;M�%���g�;7�������j�>��V��s(NY���$����&'��N��w'e��z��s�sj���>���U{���]�����x*���:������\���4���l9d��8�e��K��n�krD��nZ�X���{wz1��t4+7����WT8v��
r��\�el[!����^(�sK����'G��4'H@�:��R�V�q3Ni��*d��)Yb�R�v���g"�DrV�����RR��X����N�v�W<��R.�ak��.���t�m��4f�����\���]�;�����������e�1�$�G�4����f�����tZ�X�l��q�O\lS}���J�a�=�)lAjq5z��o��3���W_P7�����Rs�=7[q��PE�������b3�qmT[{��.����\K�:�suS�5Wq����so3FrU���������`�E[Ysr��F�^��wQ���n�H����E��L��G9�me���[�]%�QeLA�������F��]\���.��2ms4L����J����9r�Y����[bP$��w������n����B�d����nYg6^�u�/������!ZH8��zoR�W;
�Tw�8'��.iwV�v<��w;5<��Zk;r���W
W|�����f��������N��:�k����VF��al�N���md�A�����8��� �<�G\6����u�������v�=��z�N�&/_Ny\u�*��st�R������I���3���]G!$�n.�oq���P��������5������U""�m�}��4�����1�R*{������8�;�6x�������$����W�6m������:h8
���J�6H����-J��=�/Uok�uE�u�L�a�&���4����;����B`��]��U|�f��_�[��#��1%��S��+����������^�qt:�x�e�\*�Lyj��JS�%�Vn�[(���7������m>z�P�Q��d�3z��yE��f��y2�LI���L��VS����`2

abB���g'9�R��Q3P'��������h"�_��W���,��n�p��V�
sN�x��a��_������Fx /~��+��2����I#,�q����]��SZ<����3�w�c(Z�\���:;]t��Bh�[�i�����o�g�9[�g�_C����JJ��*����V��t�y]��0FF�^�T+������e�{���"(��s�������"
�3�M��Y����Y�A����6G��"��b����}��t/���;�F��
����y�}s���iwM���yH�k�����Hsa��mJ����S�q�m����K���t�ow��$,�{6�m=��a�D����������qn�-B�������1�Ah�,�=��V���#e�}�A�@��=�w��\��#<�tKc�A�z��X���LI�z��J����c��?<+.�	�T�M#0x�W	�p,+/��pC�����<]�%ZV�����(��RVf�G�2�x����h�h�zh�,"o�d�/������7=;$�,>��/�s�����l���>u��=���&E�&@{�c�Xo��V�����p�Z��Z'@o�����y�+�8�R�F�,|t���u��k�i�&����q���kf���a��0d�|�D� >���/�2
:��]�D��DRA�/�Y�yP��`O=y��M��� y�-�����[����6�D�R<[������c�u���c#������OaO�t�^
��oG9�0��je��������=�{��	��Wb�A �����^��5_NF�B��`9��d.�x��D����/���D?��I�_x�l*wEEV5��R�@6V��f��SN�_s��b>{��Pa�~$1#�'
K����P
f��A��� �z����V{2_��&��`}�������8�X����uw�����3q�����I7�|��7����������G���1}��J5�em��{|YB��+����x�%�E�^�y�s��~Q��~���g��|�a���b�}�~*��/:������z(��@�xj��E�����_������i�����
Q�������i��<9o��m��%h�fak��F�b8���m1M��V�+��Z�V� ���,mV���#�����D�w\��$>?u6I������D=
�7�����L�lP���.v`���!v>�3��8g5H
�i�]D:brs���h|�^������$�E�N�'Q������j�s+L�lc��t�44�}�^LG��F��5�����N���X3����\���X���e�Wa��D(�.������)�.����R�|�
�J�����^���	�1L����k�����Q2-��Zc���WgV4�&r�N��~���	�K�����Z0%-e�7���o��������zX��c���H���>��2Z���h(H���a��wtjS^&�-����`1���,�v^	�0���� ����8a#����Tz���gj~�2��(�������������JG�D�r<�9u>�)�l*��(s�9�\�4�&a$u�]��R�3�j�����"��:+����Dr�������'����tL������y8c�V�2�$�����>r�"m������]���s� ���^�s��������o��0Wi���f~)d]��bG��`��Q�������YH�z$-��mt����u�%����(��wt����������s%1CX��u����Fy{����+3O[��A���m��r���_����y)�i�5��(e�-�t$9��@�9��ya?O���3�)�������\4�:�����9.�T����e{�NQ����[�-�VJ��PyT��������y
�����W261�1�.��������3*��8f"�kV������l��6��`F����*�	�������~�E	K�B(�����M;��j���Y������������������G��_Ug!4�x�_�9��K�frT}�.6`�=��E�B���m�`��7����d��'H8���m��rGs	��V(�s�qYb��6�*rH�`!��c5=�3��|��=�#�U/~]�������5�AW���������k�����d��f�?������������4B�
�8W���������'������m�:Z�Ytc${ly�����x���1���,^]��a�e�>�@�i�@�J�\���@!���������F`�4��58<4.�U�����3dm
����P�����t��3S
��$ e�rU����k|�X��0@?�^1��.YD4���B����N\Lf���
p��6��� �#h(��o��v�V(z�j��-�{c������[��^2�Q�X_]��S�Z�0{5��wQ$fD�*�kq\wn�����)��Z}Lc����� J�==
'����g���@�*�3x��E4��k>�&���]0$-�
6�!��TB���ySd)D�K_�s#l���0:��k�}B@��_��#���w�����-�S�o�Y$F'(����iu��p�.G,����b
�S�l�/�U0��]���>�5%�8a_ ���ga����=��18����	�4K���b�d �y��ofGBg�|=�0��=[��`m�����k���}�[�?\,�X�V���l�����bf"%ff���=�<(�����h�zQ�>�E��Kw�b���G�A��F$:�LI���y���~����M�X?�K�EZgS��\�0q�a�����r��4+�U�����
k�U'��QO�B�����t\���U~{�F����Z!�Gz��g�bE���	>�X
���i��]*��}
�l�N0�� �2�m���\����|��@0�~!	�^A��av��J�-�G����43
Ade�o�Dj�R���{�C��F�`��[�.�@�-�v�T��`�
�q�@���5�7���u�5���>�
W����Nbe��*
��"4�)!'�����F�S�Te��q�M-,I��7��Y���]mM����+�ZTa
�� %'���K����l�S��
>�c\�����M�w���lC�A&H����]M��;6�|�$�	����i��$��&EW�P]�@\Fd�UB\\�M\bm@E�M��Vi��DF�>��>stos/���96���:%A��1z�L=�e�y�.2����]h���H D�����!�+y|�B�gEO�>��6�W����PB�3�3R��9���:�u��
]����x�>z&�Xj�hf1��j.�qtHS� @�?
|hh��,�5�@����Z��j��^^��ra����r�~�_!������5��
��
��fM����S3�R��,���|���������}����~{S�������}�����#���w.��b�D;�����di����������������n
����i_���
�~��n���
�dj��h8�/�H���{�X�JqmQ�quO�t-Z����������^�����v#�X��A*� �
�������G2]?(�z��`H6��q4�C�O{��n*�
.���.�.$ ��
d
?�h��;|a�����!UHU_��\vs�5:
)MY�<��B*�9.��!QrL��=Z�@�2���Hr�N"$���VWVM����K
����F��_A�����_��1�%�bq�"���bkx�.�}9�g���a���
�85�"8%�-8M��D>��c���nT�������Q��MJ�;����Pw�Yq8����em���um���a��H�����D
@��8+|���>g�a�F��M��>��;m����*�?����^��C��Tz�e���E"&]�]I��e��z���E��d([[����>��Bc�da�n����T��}��3U��"S]^�h�~��"������+��X�������i���1�x2Dv���sv�[�q����xx������3w�1C��D���Du�h���E�X <��B�������������B����(�!�cZgH=N�%_19mWI�\�8urU��5�s����+n�>x�U�.����0$E�b\[}����!����/Z�o�fVj���]���X��uG�P�gNO����w,(b��5W;��RLpHE���(�a�O{u\;�	O�
P<d��i����=�������Kv'+|3w��=~e�:/8WK�U�U�2�S��7N�z#RM����#y����S���#rU'(����;�	MhL92����-��/�)^����$���%f��mf���p�M���;�^9��4UK���$��!96l[��2�BpIO^`y.�:J����4M]w�wtCu2�.���V�B��<����d+Sz�����p���� ���|�<��-���\��g�*�s�d� y����0N���������l�!�f�-nr=.��J�+~��������������V���S�������zl��Y\m��������wNj&�O�Pn)��5�X�{����u��sV�5)w`w:9Q�
�t���{_���zs����qt�������;��c��hb_fi����|5L�\��uK7B��&m��d�d�GSXis9qc�h�dK����Ulk�\��IPQ������{Xht��0��f�+��*��M���������E�k�l��li��#I��#<v�� "5!���ndnu�s������+k)Bx[���W+Z���
lZ��@z-�������\�	����tI�eu[�	a��q�*���.�'sr�Bz}���9�f��^^�C��&�z�,�M:f%y^]�q��k���������jF>��i���T���d����oh���^��Rh�V�s9������J��`�f��9m	�uZkv��IF�-�r���_WT���J��A��_���j��2�S�����ov�'�9�U�7�:��D%����&0pm��&��VqE6��F���c�pN�wknr�.Z_[�o2�o��gc��
�������)g�%a�������w2��-�U�1n`;�\}4>��Mm�B�i���}�s���M�]
wK��1e��U��{k��IN�moH��f�Yx�c���%��p���/1D���r���{��,�oyuCi��j{���[����U�m�x�j��Q����iQ����mY\��=r���%R{Y��A�
���[lgLO1:��H�A�O�+OZ�)=�dI�v�-�/3+s{(\o^1�����V1i�]pJg-�$��>��E���f���c����j��Q���v�o����|�����Pt�����G�6�K[-�wOR��c���o5���A��n��v��G���������;����w�L���`��E{~�w$	���CZ�T�-��u���B���77k��$}���y&b���u�*u$��s%�.��(��Z�u��{D�[��u���fduJ�V11$�E�EQ�n��ot��p�}�W��9�]fH�B;ki�g�CME}�kr�C9r����2��m�|�����wB,�Z+�0�W��3������y
&�Acue����u:�lq��M;@%N�%eB�kb\�2z�X���2y��zSv���}�{t��TuH�d����SF�:�������"�K����=������O�,�v�\�������������U��v���i�H<
�.���.��3Q7y�A��,���{�����d���8��������^�Y��k��t�VB(��*f-.L�eJ5n38�gu"�m���A�7r��k�Iu��5%�������\�nX ��n�P4�����*pW	3z�T�=}�<����W!������^bXS=)��b�Y��fd��Kk�3\H#�wu^��)��p��F��3L����B�h�(^���A��s �
�2��5�l�T[,7����#4������[���5��"�v���c� ����~�e7��X.v���X���:��4�R�V�n�f�-b������J
5����t�n�M��;�wZ�	�u�b�}e��������T��B!5D�?Em�us������c�ghJ�jp��������XVp�B
�)��K������cF�-���i�F�I1��Nc�5c�0m�Q�J3rF����y�n����G����������n���bl"����X�\��v>N�b]�S<�����������n��/�K�3��d���(+� ��P(j������q�O7UN�C��m��*o<�8jEj��:�������z���B�t!Xq�N�S�*��6e�[���|Xg����x%��q��F���\J�"�d�=�U�m&3d��uU\��s�U������N���bkj����k]�@� 8@x��b����3W1c������mI�lD���*������U(����j�'�x���lm��.c��rAy�.��VT^������A��56
����=�����|[���D��49`C��E��]C���~T���-�E��AU�i��3����.'a�7��!Wl��1�lQ6��4������Xz����[��4��pY�4C��C@���k�����l7}*�{��F�{Y&���������fvXnw���*��C����ej���u���V���o�x>S��\L��p�D��Y��v�5"/�u o���C�~�1����I�����'Y��r,�(/�/��Z�����������[nev��D��J���������/�l�2����r"o7i���P\�����������Vf.��N���T�\H�8���mp��}_:��#���V���"1�K{�L�8��6�w����B���21�?��}�"��b�|G��G������y���G�fc	X���E7-y�������2z$A�mF�?�|������(<����,o��#%Z�y�"O�,�����2�E�NJ�/�V}��f+���"R�ca�@u�ykX�B+"��Q���.����OtF|�t�]��������C-����/d���[r�����v���/��R����6�w�*������[�!?=����L�R�W[A���2�9��))'��m};���S%a��%���3��+GGuv��<hO�����M$����B�����O����z
m����X�nZnZf�sUc`������������W7\�
�s�;T�����Z��S(�sN�����MF3��9KY���B���L�'5������t(�8�h9�YF����B�����m�������H������������v���/����*����ofp�����Y�z����f��j�uU�[
��g�V�3�a;AGp�����4J��%�jN�\*�u�1�Cq�����Gl[�i��}�7�S���K,���y�g��qK5��!G|��������
%�����O��w=\��g��
�����o���AJ�$F�L*)�[���2���������y9�w�}���������N.���fy3�L��m��'X����������"}�5�C�x`������e�r��]'��kI|��('�?k��\���$�����|���m����;����>�{���0���Djy
�����i����$��8Ob]����L��e
y�v������o���t]�C�d�c_�������k_�,�V4r�8����=�nH�P����/�i��:i��0���my�gV���k������s�q�1�����n��\�c��~����v��}�7��L���,���L��L������;,<c�R�4�X���i���|Sa�z�o��U.|��XB�T��-=?Y�
/�zmn����'�V����;��]�Uhsl��/��{3C����/�����f�E#q�x�`������%��LK�*�B��h[����������N.3{��;�D.u4Cv=+s������8��q�Tf��d����������!��2�wi���7&�����7,g[�����H���X!�fj�=��o�8�W)u�w;i�2�c����|�������3�{�������������w��(�f��~�����~��?o��0�1�X�L3��0���5}|�?��p&��W����J���y<�u�������d�+T�PS^?C�����w�^�.��b��~���9�����[���LM7��|'"p*TCj�x�9�TT�Z'vkM��T	+��s�����5?��������������%|��>�`���6�nh	�p���`��b���������=��c�l�;�bm$�LLg*���zg+���U!�m-4�A�
G��<f_��8���@���>��>6}z��8�qv1�T�1���F��G�%e�6�,��Tt����������"H1����������,u�tAO���#����W��.��"��O�t�tU^������S�@H��.y��T�J�X�'��6G0��������R��
CS�k�-����#���������T`������hL�{�B����1�����+�:@Q|� ����������&F�?0�e8�m2m*1ju`�G.Z����8�s)U�}�pLZa��������!��a!����D|}5\ASi]��]n)���Q>p��[�s�U���Y���jKm�N�"x_e|��~7�"S#���\����%��|tD>5��
oZ�� X�	��]�Z����*8�Qx�fZ��U.)������,1q�#�x�#��H�a=M����m�>!	�'�����E�I���m�������E.�}����u#[q1k���Yq�G"�_��q��K��W����Pq����N�1����?F�uAV���	����.���r��T�T������p-AC�*�K�s����q��g�%@cz����������Y@����5[@���k��D�i���?m���A#���1��D��&���d"	�#U�_7�OP��k������}�������E��X��9���$��J�98��m��$����oq[���iR��Wt����&!���Z]��U�t*�� �)dq���9[��[�����' ����~�Q�h$B?�{�m��40K�d�P%Y�w*(����;R������������Gsr��A/���������Zo0y�B�'^H�B�"�-{������Er�D�yn+X��^z��I$����������2����$����:kL8%��Ui�+Y�e�|�K�o\(9MT1fK�c�,GNL*��`GLF��U;��Q��m�f���
h9����<^Hi��X�~�=���]�g�m:��:z�|�X�FA�q��8X����&��I?/c�4���q��Z�Rg��2�Q���C�������H��i�3�e �����fr���=���;+��S��
�v�����Hv����(�E���g2�W����!]����IH���
B[2����Sb�K�����
�|�V��2�
���&���>�N��|��>���!��������##�b��;[�=w�.��}��a]:c�W��w9����^��������]c�����a��y�]�F����5�$�Y�Q]q<��P���V��{I ����w�}U�=��E��$/@B�W��������6����������������`��l�w)�����������|���r�ThdX�i����K8�2�����X}�9��2����h�
�=��@�:x��}4����w%�W��E��3bQ�Rc���F��d�[��ixY��*��	Z�c]o&2+0��1��w���a�l"|Z_/Qu��Gzp���C�����=�9�Jx���|�����B}��z��JL|�J��#T
)�Nd+��B--f;����
-�^k#�TP!�x�+����Q���n��g��X�i�.�`1X����b
3f^�M�����(�:�A�
�Zj-�:��������n�!�XD�B7F�@H��AY?)��\����Xp.����f+R�"~�b��]*8���5B���8���<	|�'�7v_�e_�Oq�fU�`��p�W��e������
D�|�;N����m���	m���E��q�Tr������_c�H2�b��0���=�R7u��cI�@Y�90�8����g%w{n���E������0m*t��0�>hsB3T$�lVO���O\*Nu�����T�L��XIV�HF�4�)���LO&L�n��/X��u3x!Y�f 6��K�;Dg��J��9+�
�FT��6b��m��g2��q��2���X�N���s0.��$m��
������s��������V��l����w�`G)k��4%h����[�G\��^��f��L�}-�++s���X�4�6;��n�jT�l�{�-����gm������Iu:.Q�AU3���N:N��BK��"��{+��{�7�-�T�C�V���`|	�/jx������KG�%#����,������=��Gu`�����Z�Z�/"��L�2�_r����m�\{fm��������G@dC]���Tu��^��Xyc:�T��t�Lv��! �D
�#U��e�K=R�b��]�x�(:����:Q$v�u��m�����->�E�48����������Q�}nV�r7���r]�o]�J�������:UbEW��]
x9�"�};�*�k�U�������Y�l�U �!)���2�Y���%LL���N�*^�>����+�c&�W���r"	q�&T�%��w7D���0���:Ztz�vz�]����N�2wrUK��F���J�B�c|�F��j<�G�t��Kp�,���T}o7S��m���v����IR������35�@N�x������n�o%����{�9+u�H���*�3���F�����rl�U<��3�{`J`u����yO7�]&���o������0�.�`�4r-�M�-k��E�Y�9dh�M�X�l=]�:]�b����%��$F_]U����]�3�.�L94���{�e�>�:���ae="=aJqj�d���e9�*�xT�~t����Y�(���[�+wu������l�=}����8]f&��H�����)+��c����"t=v�*2u�	R��eEf�.S����oB�����u<{,�����9Y������F����H%�i�o5[tZPk�9����6�.��Y��n�a��l�X�F��Fz��{y�o�E��7F�5q����]4A2-9/�����P��RneM<�]3���d���k�����S�0�gL�����qj��������\"���-vk�z�b��MVc����{%�d�ul��j	��K�Ir�]A�'e��F��>rvu[����KWN����9<�wg
��|�Z��zf�S�Z��w[c($���|#��!`���w���7��Voi�1�X�/��yk��i��Vm	/9�sC4n���77n��� ���F���\�N�v��7[n�;���x�������a��4��7�X�;]���-��\��$���=}��T�h�����%�|/Ys���w1�*�X_��S���3�����}!�^5����j��a:��n)0���e�{hP�pH����v6�4���������~��Z�t?+����
� �u�X�b��4f�E�����jU���Y����U�*��?�,�1����@�*$;���g�_�l���0|va+��C6��+N/�d�|jb�Hb�������"�^~��#!H�f
��s�|;q}!��_x�k"H{�-��6U-4��45Y�\����q2���1 ���w��a��W\,�����0r���D��wu��������e��q�KE"�s���[4j�P�Py����.N�T���\f�91n������!�U�����&�F�������n�mw"&9���UH�;�gG�����N,7�[\�����������0qWaa�A���E��������._:������=��������+6q���q�������`�T����;}|�C�M�ZUjj��R�WL9e[�z�����
�Q���[yj�i�o[&J�%M:����[��������q���*bD1�kk���������6���kT�Q����jv%K��
7��CfL�$<���n'�OI��7Dz������e$f`�Od�d������S���a�y��#p^,~�;�u���|��������_�,�������4cw����M��}����@�KX>f;l���UG��������_0��0H*mWY��}�W������'��8�H�
V�o[��.IW��X\���i�T�2s��[e���A��5n��K���,�#V�jrz���6z���d{m��V'C�}6�5����e�8c&�64�nc����n����f-�C���0��J�����U�Yw���7nz����k�3��wD5-���5��S��6����f�>�����E���nz�8�a�ec]Z2v�Q��R�,g�z�i�E�2��;?j.iq5B�j<
�l�<eaB�wl�$�[�W�bj��m�U��!���s��]�iK
h�������~�TG

�&T������tUZ�+!�*����Q[���|
�������yw�i�7��	���+c�3�%�b����j��������euRj���<N�{M+�����^e\��]^����7�Q�~�wg:T������v��>��gi	�J����-`�?d���yo�z���e]�m9��a��
�z,��.��	Y�U�.!��L�w���#�ju�z��X�#�}��a��3��E-��M�m6�}����5��9�cE���zWj������%x��(��/�����oV���!��s����f57�Y��kF�� ������w��3��c
W�8��*�LV��}3m�t2��-���]l}�mb5=���?E��S�;�HN�>8������;���1i�R����F&H1we���k���|�A���:�r�9�;�U=��]�����C�+DV'r~z�4e�Gip�%Od��wWNo�3�_�����N��(z����t��,Mb��P[�0{
������Eqd��wej�����Z���V�����#�����24X��_M����C�������@���H�@jY�[F�%Dw���7]������G�9������?��{�a�������5�Ly� �(q�c��
?w��b����,EPT��)ue�XV%V�����pA����R�!LMA���G�����4������v?|G\�+���Q� k~Y�Ghq��(%������'���~A|!���[fE�N!�5������������������� �]������E��R&�e2:<qB����p�E���������

��/j`�%j������sL�
>���>D$��2���zC
^4���[7ER����-SS�Sbz|.��Hxr����5{�@�<�A"pA
P�����}K��P����������%�^s��,�sp����^�� q� ZMc�|���	�������r:��Q�g�
�$g�����O���� %B^X�B���%a(���@�V�D���	�cI��}WZB�b���y�Q�Y������6*|=
�3�Z�j�b�3��n�_<�����e��������r4��}
��q���y!��A*�:�Z��it���m�Diu\��&�T>$|��W4�C��J��i���B��hfC�Q
��J���g��l�H��^D���j�`�������!`�!�����vM7�1~i.��^�B��c�(�j[���"�'���<B�@�����������<���a���UeMe/��Y��m�n0w�!��H,��	�	��~�h�CZ(���~��hb&���?X0_��|p�}�TP����|�����~�Q)�	���f���oQ�jh8:%V�=-���$rZ���U��H�ajf��#���P�4s���^_��
�O����'X�+�����H|
��s|��)P�_1nZ�O[
�s������uBun=�[����2R���/}��Y
$W�\}[��Y�_�(E��m#3�|��u�`U��kLg��o���s1
�lo�F�� 0L#�����JH����&���B���I�F

�%{���>YF�eHN�l�8W`�������X��W��|���:����8��W���1�o�j��"d:�[�Wut:@N����{������+3�h������)��^'1�9ra�0�����c��\���C���F8��e�e
U�������{CpH�]H��j�k�l�$����
��9�$E��ORy �xb����1I'��BS�q"��C�"q�#��)$��� q�C���5��Gs�������>�5�����;��6kR�|g�f,���l
��u�1�p����
��;�i�\Lkl9�j,���1/�
�_~a�e�����r�Q?�������� �5(�wT.~�����&�l�TS���Zj�����wJ~<t��-vK��tIh�G-���V,�+/�wf@/{X����$��!�9��cZ��p�����$�K�>w������_!�H+MM�+����'Ux��Gs�V���UUW�X.$UD� ���P�K�K[�y���1��Fq
�����t'_]��T�Q^�^����
�]3��`��q�T�5���V8s�V��r�|,��5=it�&�G��G��9�W���@^�|���v�Ka��N��WY���B`�Q�����T�h:�9����7XhTq�+s~R�?!C�6] ���Q�Q'm2�6��K�Pu�?���w�c>wWc�D%�=��P�;�:;����R�u����g��i�fmG#��>���T5��S]b�������������>O�5%�J��K�|`�|^*��e��w
�w�����Pl�c����v��D�vpB<iM�3T�v6�2�n��o�-�A- 	{�T�.K�[P	�i�������������a%�
�<^��Oc��$�0k����=}l.U�+�a���s
��
N����L��#&���A����Q�G>v�r����}k��S��&�@XK�5{,�L�$���S��3,�}n�bV0��l@i���PX����H4)mk8/7�Yi��gq��I>�	w;K�{��I��"����pQ|i`��~~�����+z�p|]CL���<��c|�!;]f�+����.�\���h�������n	��� 0�����H��B��C�#�� J =��6������������������$���!~�@����+��_� ������ ��B�Q!�%�@���/����0$/�	���`�/����(�B�4���Gx	E����	,������`��	t$�L%���������k�������"V���bB���'���B2�Db[	~�������!m/�B�����B����~�����2� �/����!e��$z����T�G�����
�&$�����F�����PH[����	|@�!c��<���_��� ��,@P������@������/�_�%�bB��=����A!z��!~����#���O�	�B�?�%��!!�	�!��A���	
|B�I��_�H��;H�HL@ ��C�����$*�2��[?hD ~��;E�y2��B�X �����?p�A���(�S\�W�_���H[A��4
�`4��_�h���A<��!!����	  K ����@�&���@�]`g����x?SH��1���@���Y	~����@���p$/�G���?�6�M^?���������BH��%�T�HHA�����!a�� �/�)�1 '���tHY3�H_�	�$	m
#�� K��X�n�@���H_��T��/ �/�[R6�B����$'BM ���@��������1�I
����D�?y ��|�h�G������`@��HZ(����a���c��8��N�o��Z���@%�	R����%�@� `�@%�~�!3��bB���v����� .$��PVI��S�3��f����� %����=��;����   @G��J��_}�������@R"�$R��[2HL��%����wn��kkZV�ZZ��k6������Ha���Q*JAM��[���)V�{�;���Z=wZWS���a�<��8�y���3�n�I���;���3Z�m�jkj���-��l��Z�jkch�M�jm�f�������
�Z[�ecj�b�JCMVZ�e4�J��Mf����:���m�f-U��3R��������jR��i��[����l�P�����l���^��t������[��^��$��r��m+i_���G}���h����uV�14�(�}�i������cI�X������}�'5��6�^���wv��K���=�if�P�Z��fUi�-��t.��j�vm��j���y�Zx�M�QU)�y��{�}�{�=����s��Q���>��-�m�l�M�t=��g���g^��z�u�f7������Y�UZ�C���}��D}��s#�����&���K3l��mLVI>�}�r������;^�w��w[��>��m�M�f��R>��t��;vaW}wZ(W[���������
y������H���������_Y�7prP5=
R���FL���1)J��� 
�A� �
O&AQ)Q���h�@h��
JJ(
= �)J@��4�
��
� Q"�������h�A�i�BH?�������CL	�R@�$�
���� ��P��	 �i�����$��$�_��������#/������v����Y�b&eI"N�Y[{���i����#H��$I�@�@�@�I��ID�ZH/�L�>Z�1�M]�f�\c
��m���U�sF�^�ni��$��!
��m<(�e�����8ah��$�����L����RH����I m$�$��I&�@
�	IBB4�H� I!�$1 � M )&�I$&�H��) b~!��\~���������sT���g�_��|,����MY#.j.DU��/���5����
c��>N0Y��<����=�f0���}hQ����Gx{���;�@���>��fUD��s+[��n{q#mk�q�q7��J�<|�])f�f�������c�E3����6����,����I�������oL.+����<��8�Q�^����Hk�����esu�v�� D��;��LH�3�����Y��V3��.Xv��:�9"��;F��.����v(�2I����z��#���4�[�8�����,{�Mm�$lQ���E���������T�g\�����G��[d`
�������
��V�	��4��[
�
08����4}����Aq�H�]`����AS��b�+iF������,h-�L)�>�q��
�!.j6.�m�d���!q���%�J����7l��G�R�6�'t[���35��.����oZ����@H��	�� �!�0@$/�H#�� ��K������J��Y(v$n:
�A�(��p��]�*�J��Jl��n	E"B��0��'��f_�����J>�0,w�Z)AC��������0OA�CiS:E����zR���e�
�����$qM�t��Z������pI���f��Vn��Y�)�8�m����9�)ci��D�db8`P������#�6
����L�Ee�������S�[�M�
8��DM�U-�x�/�1�,�����t���]Rk�C�����q�Sr�t��3B*�J
P�3v��/6[4�Y6�/��c��t��}
��:��]�] �c��:��&�S��jv;���	�B��D�(�Fdh��$H��
:2��}����P�P��1��J���T�E��8
m?;I�NW<�E�3���2�,���Q���RjM�\>H���B�D�B��'�d�n�6A
��1�c���^j^������M]��h�7l2���F�4�;�R�2�j��}�� ���@D5m:P�Tca���'���/�2`e�X���ok��B%��e�e*S��6��nU�do���mQ2�$�UD�J�)��,���&(�����lH�'�E"�G&o��g�Hl���82�s��&W;wJ����T�s	�-��KC-vX����W"�}�����XsR7���9p_���Q�UJ ���%��4����r�5Tp9a�q�
D��i4���t�J:.�ct-9�(��kxE�B���-+��A�
��g+ge3
a����C0S"U�(�[lZu��@�,�UA���2�8���'uL����Go �:���,o�����H��{��%�v_������O����B��*�3P�-?Q�!erA�Y��#/)*6j#d���6��D��)z�����l �uJ���.��,Be��I�n[�M�re�QB�<�i]��TDt�I�Z��;��r���d�R�W���'�L�Q<��.���:����k�!O1�B�M�Jsm*/1(�1�!����HoR�'��r'�f���
���9��W*����:��"����Bi�2��@���:d��(�d�Lr�b��b�������ee��I)x0eU�pQ�#�r��;�(V�A�#��Z����Z��6���5f�$l�U*z�m�k�UM�f�����,���'yI]�����V�>������bC��b���[��6���+2���������%P��y�N��'l���o%V!�e��	�U���,�/�3������+�'����D������Mq��])u�
���%��r����.	��v�RM��&�S�b
�;s,,�l�v�zE�hWlx���7n�#��2���)b����DucleV(�	v�"J�S5��(�>O3��N����u�T��1x]�o�����r������h��5v�iB���bd����WcY������^��-����9y"�Avl=S7bp�F�A��i�����&����F�702���}��[�b�fw4���w%����,L����w�5WX�t!!{����Z���
�;U�1�;�)��r��jG�*V�r,�����j2�f�2Hn�p�����b���d%�"�m�Z&q�]�i����+��
����.��c����n���A��Y�����+VXM	��L��$�>=�f.9Y;�Y����_@��.��k.�j ���,��-\���v���]L��M��2�}.�%u��=B��)<��!�qJ�4\���,H���RQ+�Q�X�Sh�����s=x��3w��UV�N-����Q��N:8�Z���r�������u��7F��$v�!���f�9*�
2�������Ze��j��0�MW�������r]����
a��t�M��N�D���^���%Y�.�-c#l��q@��1��'X���6	�t�d�qv�
'�,)����
1��Voyy���jSP(��eKH"�)�]�C�f��E$��;%[f��j���ra��uK������ed��#���E�������6��/&��Vv��j��?��	w���:���� �B�$JuF	W�I�A�
����H�7�>x����oV�p;n%��M�v{y6(���d(��;�0�n��k)0� �s$T�4�M���@ j2��U���W��R���7T
 �I����uM�:%�c2����6q�-
�e1�]4��:���9%�5.�ur*�3i��mf�d�]��ot�m��
����uw����E����]i����LtQ�%B�tDn����c]��y����!�}y�-���i=�{��Z6
�s��t���}��I$�d�������n�	�m�ml���>kO1�������F�Q���@�AH���!�TVZ��F��$�-���*���^u�H���	�@$>Cg����O����K*�_�U���Gdf"���t�"����JGIAu����#5�	�)�������m�m;��Z�u}��&�����W�����y��"Z��]��j	p��"�n�2��R����rM�x�c�63T�usn�
iY+//L�(�-����U����cU�Y'�A<�-j+���OR6.^�
���K�����
0��r����
m��C���:��+aU��bL+��f���8Onc�Qf���������:x�h/�
��N%�b��t���m�
�f�wEzr5���{�<��Nu5`�K�'^�E&�6&6i/8����2�jF�_�������H1�K��U
������v�L��C�,M�-v���v���&����|VU9�f��j<���7�3$q��l��������qG�����:����1�������Mr�u��n� ��|��l*q�����ZPnl�����}X�vQ�����h�8���`���-�����F�b��,��XT��{*���+*���W%���+er��r��/X���ku�>���.u��qZ7n����I��4��;V�M�&:'D{:���ZV�]xc���+Gu������|�\(a>C�^^�h��Mu����{��4t90����I*}��1��s�g1���#:������
p�����\�]rO�	Z���7��+��[��V�X����]{gv�@��,^$�2���������u.1I�o�����������es{����1��V�r��������JG�u�3S��oi����
>P3w-�v�fF�w�;�C�8�� T[s�����]5	3���9f�
��&��l�+������x���7�5��O/r�2PN����mKu�:�
H�O%D������C�{����l�)T�-mG���M���mt�Yy�����p���Bedi������T����n�!���NoP�j�6�iZ���+�h��t�`�Y�������&�
�3���w�V�fS'v^��B�b�m�W��2���(�[���E2�qHF�2�F#A���Q�YIB�����������Q"������:�N����t2�����XM���3j����y�:�(�
��]uo
�m��H"��%�Q�8��v!�NB�k�I��
I���v���V�Vb(�-P.Z/�V#$��a���o�e�2^��h�%MS���LQj�
T����X���}���e���F��S���vh)tJ�K�:��OB_F�H[��B��E�����@�"����tB����l+A����r��	�.���bsK�V�L���QDR�R8:9a&xlfd��"k]Z��Ld�aa�e��&�����Y����(��48����<GC�N��<.k�����>�=�_a8d���;�5t���F4��wxFL�'8\+���r���7� ��NR�Rs��-G^gG���.KD3p��� �m���9��6.]ol�[]�co���.9��5	������v�f�2Lm��r=/2����2!�V>�m�X/������uu�J��;�y�}�0�d�M7�Y����h�2�3�{�2�[��X�li4k�eH��m�Ke����,��I	�P8A	6P�7v����A�4���wHA87wM��(��$eU&��G�;������H+��2��Vwa�)D�H��I��JU�4�e�`�����!y ���
3@�0��b���DM���R��[�I-_�5!UnV��H�IQ@���-�\���%"\�
1}���v��wjV��Jg7[���mWfCmV�R��V�v�MV�����4��AgU��E�����6�l�U�Il'�8�4���\����b.���������I��d�|�� ��j�6$;[KE<����'��w���������8�3P����o{��#8�s]��P����4���fa��rp+-*��5�l��r!g^��p�Lj)����Uf��w��u�'�u��uK�j�:)��n:���b���^��R[I���T�}Vn�����S�J�$�3woSda:#4\fD�BAX8Y���C�N��O:��j������/��:����e������������c��#|�qq	RI�4	q�V������UV�r�t�A8���
��4J�2�$kO.)t!�`�n;I7�2�-���K�����rr)���dnM%O����i�{�Eg�J��L��#��4�dU	���T�
�5@���Rf<�#��]������Q���!�$�$��x��$����r�]t�JT�VX�@(^4R5����{�2�8�'�,�Ac0�
��l��
�:	G����n�f��(�T(($$I#�E7F(��G���
))�����M��7�v�P��F=��*"�p��SU	��T��th!�r���6���)R�*�\�A*T��p�mPT��U	��at���&e�5�V�AI#"�P�6B�!A0���U��������N(N8��|�>�y��#(<u�K����7��hUw��>	�A�aH���I�*1�w���[{�4I��D�e&��!�AUG)��U�Q������w;;���a-'�j�E�F�r��������r�A-J��I���0uiRm�1��)S�U����/Y�^./H���+fgz�����5��s����e3�*�I��Xv��\c�P�����F�]2��B���C:�v�>�5�0\ov^,��m��53z��t�^Z�'R06
�2�%"~�h��YPv����5]��]��A7�
���-���������F�g"�W t�KT�pP�]�2F&�{g/g��N���&��W!�B����v8c�����.r�-�����_�5���/��:=]?� _��/�$@�`#��B�BHoL�S�Cj���c�Q�J�j�q����l��`�,-%J.y��� B$B�x493�V����[��a������������>���1��_%��5��"9�JU��+/������"��5��[A�?}}}F���������g";!��O� ����=�Z��_?��I3Y�f��a]p[�@c��=����}�U�ew��?}����H��\�����?J�\G�C7�O����i Z��0;��Q���Ue��4�0|���4����k#�����T>����R��o>{���Pu]�|u�e{9������<����}E|����m5lm�`\�3M�����dv�A��`��%V'>��bpTY��Bqy�,�5S/^%���J����l����2�/��P�e����r����F�D���u�Cs�+!���wQ���.s�)��rM�yd��S��l������_
zZ��j�C"9�N��s���?��)67���d-��.UE�[g.���;��El�������3fJY�5}D=�E����e���|���U����������J�[\��d�C{���i�������$ ���$�(@��|��M�Q]�>^�(�gSx��h��L���5d�����&�(����y��a����*2�=4������rO+o��:K�m��Ju�,�E��t�����d��J�R$������|��g3na������e
�	��He>����d���P��n�����"n�<��������(�9z����X�,det���-��z�9dBXv��>�/QzL,v\a���Q����n���{��$}s7����53����8������=�>\��c;v*���d-�1��F�FZ�����UU'D�# �N}�h�v&����3A����B��Lfl�J���b��X���������E���5���tM}��������e��.���������x2�cHX�RJK�6�.�<���?��h������>�d?U��/&�3UU5R��D�=���r! ��o����
�q�����/���x�������l}��.!���+_N=*c��[��K�^\QvVyA�������l���3�@{��W���/�Q����r�r$rKw��#���W�C�t�n}c���J�q\��x�����k '��\�����}���I��k�xdU��T�a�������e1��w ��|G��T-�d���S�E�������}������C;&���K�!B�U��g�z��c7��>��������G����H���O�^9J����v�n����.4u�|��z��v�R�\f�[��Fk�.���T�1�e"j"��Stj	�m	�9�G��r�L1����-���.���.0K�!S���A�-1q�l�(c$@�_(2�1�Zh�KM�i�h�E����V���]`��a����X��o���-���������wxr�W�^$��Z��Z�V�w�

4{ix�<���GZE0��lB��$�
[����.4
�LG��5�
b�6��"����`6c�D�� �bHq����S@i��iu�5my���cKmNz��8�Q�<x������B�@cB����K:�mm���`F#L1�;v�����B@y������alX�B�4�o��bF4#�aLx�GX`w"S��LK�\bT��
�e�V�e��i�/=�/4��u�?4f@C?D��B�$�-48���MSI*h4�h��S�-���1.���y��$(�g�A� \|h�A�!q����#�Ch6��)�����SB�!G���	�u����q����q���Bl[�u����`�l���n8���
��]-����]��U���7E�lV�Qf#Z�f3�}���X��$���BR3����&�a��2.���y)��m5Q��9V�=�D{�2�{"�o��d����h�i�����(-����]�s^-�n�o=������7/�}�V��@!��	b@$�D�i$�����~}�����h�&���W��d����HS��������1�
�+���K[��b�`=SE%��������s/w����4�*��������t�����\^�|�pn�w`H��at�\����l*+�������s3�}���������������:��t}�~��W�V��o��Q]";���5�U$��N�u�X.o8��F����B�������F������Uv����r�X��oD����������s�Xz_6K[~@�6^�����%.wC��#&���]D��i5&���`��.�3%2�H0���A������_�2�%��D��MW���'fM�d�j��_��x�����WS[K�C������siEtfEB������p��'K[�Q���{J���s62K������G6�6Z�-�qa�ekSq���`�����{:�L�5\�70�bL�/v�=���jV���A�{{�{�)��L�u	e���j�{�v��:����K���E�f��o��$w��Ga�+b#�,h���#������`#LV�L�]�Frt��b@�LH0+PKu=PISv�k�=�B���Q�{ �"	 ���h[�K�H��F��F�����w$fz/04��S� s ,�H��Z�
�������SO�VVv�9�\���u��y^a�����C��E�T �p^h�"��U����@qsQ-1������t�t"r��9��Wp:�MF��m?j���\��
�F�bK}qe�74=D��
�=<�����~�mu���@T�����h���=�gh�LN��v���J4o"�v��;"K�������{�;���Gj�`=�{�]��U���"���<�`-v%����{����@��=A>����������U���R7��b�R���)�9�xo��:��Uo���3Q��c�^��[iu�{���l�@�xQ���Zh���Zc�
���1�� ��kLVH��5;������i��;��
��m�d[�)^�R���k��@�������Pr��[h
�'���4�i��#���n�;eT)��(;�����Ff���n�5:��c��Tb9�Pu��Ci���U�6�rH��y��P�������Aq�w%�m��K����y$��1^B��@�3�U@����FV�g�^���z^�������D��h��-�d�Uf��:�Dkxh���"�b]��c[a�,�s-��{e0�/Z�%2��aB�A{�L������B�mq���%�I�cF�G$�����y7P������u�9���H	P=���P�'^�g"�-�Y{�����9|G���;	CG��t��������b�>�+bnI���!��I���
�%��y��y�Dq���o��W��@�9����So���D~n@���Y�Z^�2�X��ov�$�_('9������!�v|;�
�������M5�18��������������[�:-�N��e�M�HO�Y�nZ�@m��
Wim�^�IYz�Mk����v\k���v�$`d����:a7�9~��f�����@��F���1{����V�m��������_���hJ\P�����������z�%�+�%�z� �8�!]�G���=#���b �5L���j���j����5���_/|f!lF<>8b��4�.�!�$;�K_������"�Z��|��+�V�xq��_���h�Du�=����Pp#��Z�@������>���}����eW��m�O��|H����[�����Y[�8���Y���knj�[�n	-����)`���n����j�}�Cn��*��tZ���aT�`U�U-���^|��l��"��*������4�
}`w���C�g�M2�fm���x[�S���N���THu�j������.�g�}U�������s>����N��k��v�2��AA��t4w!�<�{�����&�-M�S-5=�\�����W�e����o!����4������N_b���\`����Kc���v���ki�|�v*}u����=�hY|q�w,{���.�~"�6�J���_N�{�i�
d�=�>o]wMr�=��3r�i�W�����_{��Q��7��U���qJ���W��������9>[��t��9}��#T����~��������L==�~��l�i��,u}9�+x�r�$��2�K�qR��?�{���������3���!��}�{����Q�b�-�������*+���������6Q�y��g�Hrg�����g��(l�%|�tW���[�i�����+�Y�������mwn�l}��!0>��>���:5]����<�R������v����������a�P����)�_�=�>�����*�gtz8��>��v:���W�p��W���k������\G9���Q���������<��gz��,(���n���NZ�I#�J��i�������@�=b���T�.�b��!F��Ta��p'!�v�������Q�f�a
����F���t�]F��A��l�����>m��H~��������t����!a;�?�����wuF4����<{�_��l�q�� �'�����E�C6��ox@��s�z��:[c�cB�����ym�k6P�lV���"�T�1��c��w����1%1�M�v�$�NWG�LFc��HAM�����"=��{	S���sTs*�Uvk�*�R��U����9E���\`������"&�����]b\i����R+pU�����\@.��S��|�wT��%{�9�G��; `��y�}��K��q�0��dJ5��@��[�]#m]h�
���A���GZ�L
�E�Ii�lV�S"�Am����H��E�TBH�#Ez�(4������5�?AF�����A�����!�
����@��@$I�*��E� V�	i�&�	����@������A��Ab_�$RA��@$(���BQ_���~���}���^hs�������������/���?��������$�����-	$��F	�V?���j�#W�_�1��51?��j��;!����(����S��Z��J�Im�vs�B��$��<��S�r���*���5�+d'f����=YW,'��A_���5��kXV7�@$U��
"��.��:�(���`}>���U|I���6}�Vu��#�q,�V�t��eb��]A�V��&t���Kpg�
��KBT�1pSV��V�.o�|�v��I�!�8\ZU�������m�3v�����K���,���M��v�Z��L����*\"�G�%������r��l|�N�K	��q������Mo� [����;���m
����R
�k*���]g
�FG�+<K���``
i�|��At��8�-J��-,�;7x��Y{[�z�0����y>��Z42�-iL��u�� �3�� B���r�I��d��@%#��l�F
T�k����Ri�c�K���u�gX���+��!�@�]��R��Ih�K�{��l�\"V�n��U�]�����|����gNg���T
��[���gP��V���{-ve�����Rt��P�	0s���m���������	g�p��s���~�b�\[11b����|��G@��X���i:7�en���T���n�DgbC_����yA����y��[�/��%G�%�^���:!���.�9rS�����afd����Y����ze�ir�4."�O����HIs
^�����m�|�Q{"����RWWSm�L�|!�^^��8��.
��6a����huY7��+gX�b����}�a��Leh��}�&�E�z���n\����������%(r�H���\qs�����o�^������6�)�:�G���4��{�H����5�,3w���w�IY���OR����F�+=5����E0��P��� r�R4�Yw���"=���w'�R�]<�� �XM�oBF�u���6�,��=���5:��'w2�ZdG����J�r�z��j��d<�M����ru�u^6Is"L&��0�WXY�|�U����8+4Y!
���r����j,��.Pe>�/�a����'�
J��+����%D��Wsz#~"w5�C7t�����T�����A�0�;4�P���ua�1���m����Y��^��������Kb7��n[����I`������h^8%�:������
����nf0�A�U���I�h����O6s����u*���&�N�0�c\�W
���<z�0������(���\�>Sy���>n�>�7�����E���W�8��Yt	\_Q<:	��#��X/���a�����S�xo��+�&H58�utR��d�'�	E��iavE�,���J<z6eH(�f�A$�=�Cl�b�a�,W^:����L�Z�E��y�����:m��nDCf�M��C�K���xpj�R�w,T����	_F
�z;�^���M>�C9o���}�K����|�OF�{���$�����no�M�K�������T|��y�[�J�K7T�T�A������b�q�ogR���/�aL�Y�����du�b��-�Is����[�H�G-�T�z�]��L���
}�M���3n���MUN���E�����s�t�S0�Wtc��O`�Ot_<�����g��&��:;���o�� �NS}��4�Rf�jM$1�]��k�_Ow����]���	}}{���M������3��Y�od����A�m��P$�9T��Sw�T�^��5�R4�=��G��k����n����s�f�)�Y���[]-ia=�(U��b��bj
��l�s$6��Uk�{1�}��������o���8T��"����6�G�g]nE����)�v���Gn�]7����K^!	l��bc�w_Y<����V�H4�fY*�:���9�Nv���:����/T3z�������@gn����B��k�F�u���uR��"������rP�������E�N�gc��7b.������b��D�m��w������FOo����9V%���J�+S��];���8Z{�u��Y�_=j���#1j��V�����ks�O��#���Ob��n�.^�/�}���wf1iK��(CU���U��{y��x���n�����9 �x���c(M�-��.�uU�k��ze*���7�/��U�k0���-��`�)��8LB�hy�	�E*�Wn���	hP�t�K.�ge�yu��	m���7�!b���*�M�����,�.���b�8��}e����@�$e������1�Z�q>����hDZnX�z%��g;������Z����%�X/���F&o������q<�6������r���Jh#dt���+��>>���������f��1uX��
��:05zC�3��
�<�w�uJ��t��>f�`��+���51dW�)���y��Y��*�U�sc�'p�$9�u�4#6�.\�z�B�!�T��z�KK�s�Jl����&���s�����FM9�������{tJ)�%�h�@��'$�����N�B���s���t��n��@�ciY�T	�q��F�	@�R=�V��ziiP�|���7���G7[e�k\7V�oV#p�&�{�k�a��xF
�^&
��>1�[��\B�v������a$�����av��*H;lN���Q����g�}�*����]�A�-���Ky��J���7N��+�@`���b�{��
SS�C�<s������{l��SXi�\�����o+�z�u���6`�F�����
��T�I����o$�z$wD��U�������v
~����a�tVsq{D�R��LQ�0�76��v�1���E\��M�<�k*�
b�a�=R�;��A��|\�m{��]�V\�T����V�&��u�-C����`�J��+3�DD2f
��w7r�`����y�u����0k��|�t5���D�r<���gT�1`Jb�H�Z�S���������V�bW��������i;���6&�)��������;;&�j8k���l����7��tml��'BM���jS�e�Y��oa�������[�}:U��7F-��X{yf��%*�8��l��V�WXx^��Qu���I�W[\SI$t�hei�y�n+~��1�G��8�4V��lcj��qg:��k��OT��OU��7Q�b�4�d�K�V����E�L������&��3��0��]��>r�v�����"6���
�����|z���7��e��v�+d�l^lVw���u��<��ow�����j���_p��e<��=@�u�Hq�AC�F��������\�*�}�j��o��xwX�������}�t��F��;��(m����T�����Mx�Zj9�z���&������t�N���p�A����x��em�{�]u���M=��:����t�]�\�Y����mn�^2�g#Kegvc�FJ>�1��$��fW#����wF]���ya��B��#,R>8�����W{��:=����-��������hfuH3��,�^\b�� =C	P��%z����Lr�L&y�f�LAn"O$s��t��P����*������J��&��s���q�����oC�����T�gYnj�%���$RU��3��+._[	xf,%�A;^�7���^cDF��J���������:�����i�F�6���[t�d��f4�mk��������fA>�xH���W�%<vr�TV�d������G:�I%�}!C+�fT[W�jDR�;:t�Cen�,���$�z-5c
��7o�3���&��R!��R���`<:9BFvmu�FVw3��b
E�)�,h���G<��WB���c�����K��hsu��h��%>��n���=���
8o�<��;:����X������:���cpsl��}������2wk1-�]}=����!���'���(Vj�MG�������$gqj���g�mN�L�o7���r���-J~�f�0���f59�EG��X9�>��t��;RwS�W�vm3�"P@�m����\��9L�]GqM:�ll�2i��!/%����n��p_P�}��9
MO�H`���c�yTu�wm��5^�q����Ff��I5T�T�wsX5[\35��V_K���5�2����!1�l}Z��������*6^�q�hq1o�2:L��A}�CJ�4���su�KH������EKD]��G0?1�EJ�n���Tyl��fH\1�C!��t
�J�m�y�;8��e��8�x	��[Qy-���\i4Q5-l��,���y�:wZ��nrI�������u�')�K�����rK��[��x������e�7��Hy�t����v^i�g���W;�mX��uxdM�t��z3�o�)tL=�fz��@���4�I�b���kx//@*�9Y�r�����I��J��V�������������8�t�����v�������12m��u���J����n��sU	�J���X���HA�.�i����I��S��.�:��1$sCM�QROc
��{I�t7A}�;�&�*�.�Z�g$���'�.{Y|�����Od3�U!G��!��$���}�VA{%u��b��m-����M2A������E�g6���6�>����"��XH�J�Ev�]��ad{:��r;Y������YSs�e��*�Nwu~����<���������F�e�v�����:��b<H���@�����mcJ��Z/����zr��\��n�I���M������m�L��,{��E�Z��um��l��s����:L�H$cIJgD�rSHX ���D-p�g�];��b�Sz�G~�a�{J]��Y�#��cV�������5��q3�����,p�|�������
&���J��bgOE�[�JJu��;�,��R
�sPofa*"i��_	$Ve�`<p��m���uf�u�N�������"����)1���Mq�����)�,>��w'{�q��#bU%p��@�����\��
�SU�u�����=����F��/bZU���I���dv/#&��71�IR����MiyJ�5�k�W,bI�8s{�`=��R^Ut��z]�����L�	{;�y�w�;������bh�)a���Ux�-9������!	��z6r=�k*��8��������g)���)��Gx5V�3%�W��!�:|i����:�'�0�!nc����Q&~�z#�Cj=������5���KGU��z��W�#���p,����)���u�R@���zw��X���	��y�r�Bqyf��I��H�Q���:����3�j����
������O[l:�$;
��J���7E]r^<���\�����as���� �W���z��S��.�v;{(Y^0�	��)5"����#C
	�	X'Phb��]a7!�r��y�e���T��'�jr�=W���;z��O�Z��G)���ffM3��6��M����]��2������4V8����8�z�;���!����������"����U-�N�`z:�n�SB~�
�P>M,�D�0���m����6�V�K�,%+����eb����rv�����~�d�/0mkr�J�G��u�d��2���V�\a�q�wU��{u����C���+����p��q��@�����u8��9v
0��n2�D!1�3��q4[��W�J��N���>��7t��n�m�s&z�QbdbV8<����`�b+�bu6b�W�s�W����	Tr���_KRC�
��	��Z��6�Y�m[�����.#��;�Oq��n��wJMO�P��lXm��u�ZO, �>)zZ��V����[�;��.{x��u��Y��.���)�ab�h���t��������b�y�X_^���gZ	���q;^g�r�;N��V���*A]���k�!7���U�uz]
�z�J��<3����3)'�q��Fg�RZ�����3�]?I
�h�Jw�[�X/���k{����\!��b��n���&��,EG/�X�����sWc�=��+{�/1��K�x�������cJ����m���Rm��\s���d�:?Qe5�b���/NY�aZ�Zs�;WZ����^IF�{���=������v
7~8��0m������<�s]�;�\�����T��6��I
i�J�:���L�9�x�v��	��(T[�S���j���m�Z���I��v�u��ZEc�)����;���K��d�����K�;OH@�E�X��j����{�sq���d�s�B�^�����E���;0�C.�;�n9����ey�]���S7�%%���|l�
aC%���lh���v;�-���R,�d:|���.e
���2�%rR��:����%V+���
������y()J�����E�p�p=��<w@�v�]���wR�"$D 2B�����.!k]@���%����pqN_80��W{#%�[�&5y���0;��h�I��K�x��opG,�sV4y��5���G�P}��J��f��d}��F��W���He7�Om����a���Po	����0������8v���.�T9�R(�I;��b0��s���[kj�V��r�Q�[�3��F����`]�t�W�=������=YbL��e��S�]�M7b�����-�R��1p�oYr�;9��������R�Q���� [^FY��D�=ZU��75���[<����*���*T�d�����"^����l��WT����D�u��6S!�F�[tm[�w�91�������V:����3j�ok�@�u�\��UR����1�K;
������w�*����[�id6�g����y&_wCkQ��)u�$L��F����M���Ue�Z���CP#��D��|tc�T.g�����Zo�$p���Y���������
�U�rly�cH��E�~�*�l�.����5,���Bz w���u�g�������9j�F���$��!v�����<�8
��b��h��j���[%J;�7f�������H[����rt�k
��5������J��hZ�v�g-�����%s"v�$/��*�o_-��;4��\/t��c*u�AKAI��D�5�;f������Wn�:
�6:y�^�)K-R
drAY� �*�]WP���(jPD�
���sp���+�R�b9q�E���X}���ev<�]�}�lN��<���m�u��/'��*��WD�MbOx�3�u$�x.v�e��B-��3Gt�����F��WES�F�6��Ay��[�����:������ ���������DN�hiq�K*-9����f����l�����q�U����W�/NT���)��`�3kP�v���������&8�T�)A6"�s�����n!+:kyT�H9�oY�����;���^v"�Vy��0
^G���
oEr�a|�`�[�`��V���k��i3�EDI�tR��j����vU���P�r��j��5���0��Z
G�1��9�v��Q���B�4Rf��E�|
���;����Q��3x��f�W� ��\�BDO��[�R������qt,��(��4P�r�u��
mY��.����A.S��i���4�Vr[p���#)�{������w�P��)�w�^��
X}L�u��1�S�)�m�:����3h����?p��!�"%�����i`R
��ww48b�����wt�S��"�-�����������fvB��+��5:�:w���3�x����9���uwM�2�����6���Wt�;5wy�>�`��4����=��.�87ap�B�N���c\�u����1���N���i��~��$O��K^N��"���x�h(;�O�>��{��K�����
J�����(�{#���qq/���p��j����q��U7v3��)��������zOt����tJ��b���gW:���a�MDs��zUa
��s�c,=�LP����"$�$:
k,�"�!l�������-
�[�P���s����C���e5YsH����(1�u����ki��,��z8h�!��7�y�Z��y�nByC)

�f�m���6��,H��7�\h�%!t�W.A��_�B����	YWes#_��}�8�P���\	E5���2������k;���6sv2uHjN��BnaM�U����vOPce��*�S�8S��q ��>�v(�Y&����=r!�K��j�������!�z�<��>�h���d��Eu�x��A�$��2g����l}\�����Q��_=�[�,���+����~�/�1R���,�������^�o���`�����9���9e�K�;���N��e�Ai����y���W�m�*��[|��W��9�w�����r]�7�:�!nGD�gKJIGw�;1z����L++�lI��=��"�2�H��h�LW&���j�<���e�\5y=�q',"K���F-���o,����)�y�V.�Nye������R���MaZz�����<'`"#k@�PD���h�uF��8���������d�P��R������e)��Gzic]r��e+33GN�t�!Eaa�3vNop�^��	�[��{f�&�]�J%k�l]��.�}3E7��;/-����;D@#VF��[�nf����e	uH�j`����r�z��� �q�����DMo�#����#{�z�%�41W��&U������$�EI=�F��H�A��h0IR4���$��	�"@$���H�)�&�	��.$�� ���?���$�f��"����0b���Q��[��#��f���e@?�H�9p�	�����M
5lJ�u�Lhl�!6�[@�F�,|`�0F%��h@F��I��������+��&�9�&����Ckj����Op���(i��w�\���������tu�g@o��z�;�����=P;�:3�Z��w����/n^a�'�nI�p�N�2�v��c�U;�n�t���WDd��u
�RNV���P���Z���Vh���@����s�����}Q������5���bJ
�vY}71���o7Qu��&���\�R99�m�s*��u+ssUEn�j�j�Z��we��zVw�^���E!�����)����6�QN�.�,=9JDauP����^�2����{Hg�W�r�_&f<�b�T/ 1��������d��������#���i>]��dK�B;4�Q\���lV��������['�w���'}�uj5��YWU���n�H6�P���e�t�RP���6-����t*��A38k�oU��%f_q�������������fC������gt�u���Pw'MsQ����ms}��"{�s�Z�3��;k��Y�iIW��6��c+�b3k���;fk��om���v�^����
+�����d<���f�|�d�N*8�T9�T�#���Yb����
Y����������QL_v�g�"�)B���������;`�Oy���[�r�3K��l���x�,�������(�		+����h��]�"�//0�i�O��Zt�&�j[������m	9t�-\3�(p�&a�{Xvr���	���&���> ������>���Z�P�<�U�=����L��������6������E��@]Z}�B���Ty��:a_
�6��"�qe��(�P���O[��)�73[pf���z��B��	:�;��lxk�8[�[r����v���t���!�f�P���%I"�{�����Y�+�+x]\��c7��Q��$2ou�3�����uY;ksV�l�w������������RTf�F^�x���k�,������z��9�����h��#��1�=��"�ge��
��,^�z���N���H$�m��vU�a7/����R��R���vPN�:�����������2e7��G�!`	� BF���|��Z�e&'Rh"m�=���'����"��J�|'�\[�{U�����I���yB����>vy���r�+�Xf���cT���2��d�bySB�����{�%O,�,�i�����l�{�78�pQ�O=5���&���v:���`����nV|���e������-t������W��#�q
��n�[*���O=���}�5�����;U��}����	m������E
1�V@������}u�s��|IJ��-�u=�S�}��y��6��f�r��.���������ptsW��$|
C��E`�#�@��R#$WF�Z���C!���t�QR9=�'�N��]�`�X��q]7�&���$�����5�9�F���5(5�.i�������X�<���oFfH�	�%�eq�*� ��9
	�P7~������'��
���h�d��U���4�Ug��v���������1n^;�
�\���'1,���E�^R��[����($qY�}��G��F��yV����9{JG0\��^Q�T-�����U���=�����
K�4"���=���F�X�e�eH`4H��o���E	�bT%X�V�L��l��zS��I�XJ��P���(��/���J0��PM�3�pq"k#2����{�kZ�^w"��������^a6�T����\Qx[��d�����=&�+�3v=�3�:E���>������^�{a�.:�
��t�uT�1���x5<Q05��l��j�e-0��IGe��	�w��$�l}�w5xX��0�8V����xQ��������m��C�3d���$������j�&0�����;Z�w������
���o=��
����s�K���F��"��\"&F���p���i�a�
���R��H���G�X�����S)b����U)��my�7�,��
!���_����	�fq���o�E�Xx�p����M��B���L��W�O�k5�*���
�q��=���W�q�'�Kgd�A}��$���i6����T�����T�����`* �,.Vh�	[��a��Gyz�gA����:����AX���B.t�.��1\�/!��ZR���%��b<hM��l(,�2��.�o9�< �H�5��O~x��iV/�:�\X�.J���4�m�Q$���BB�@�1!	�*�?�0���3��
cQV���B�b�����#T�I$���t����e���.w4[lIW�X�lg>$�U�+[�^)S2�L��3*T����/�_���_��W���HZ�������!!�I�I �_�o�m�{�q��h-�4�Jk���[A�Tq��������LI�ogZ��;�SD#e�b�O�>$�6�G�������������*Uw,����e;����,��(At@�k
�nOa9o�C��D��SEry�����m�t1o��!1�(0d�YS7K_#I���c1�@�$���y0��l����$�V@�9f�������>�����>�f���7����i1y$�Q�B������k��-.�#�I	e-����$TB�j�f���d!�y�e����A�N�I)�k�Q��w�T^k7�}����A�%����3���-������S�R����i�>��+ �d�%��/�[=r�,l{h=�7k��6j�X^�-��Qc����m�wV7;0��5W�uo��{on��6<�$������]���Gl�����C�+�U�-�[�����Zb���,am�����2����>�7�lI^��>z�3W<�#��V������	��������:����FF�4]����D��"���L�)��U����0�S�wq,o�������+�o��D�*i�6������)"�����9U�.����0meGe�!oh]�]C�iJ��G� 8��0aj��^��Y�>pR��"�t�0���t����G���r|��	�d>�.�nF�h�Pi�����+za��c[��u���!�#�O+�a��=��/�(�����F�<�<��P�����q�s���VBk�,��5^:���,��F��G X��f�)HC�A46�-������e�����B�Ux�U�%^�A����$�+�kd�nQ��">����*�G~�q�E�r�q ��?Cf���.�#�}������'�=
�6��2���
�t�Q��F�+2�COY��{�u$��XB��>$[���`�me�����IW�)��qZ=��,��h8(�E�&CM��-t�������(i��I��	J�)e���N]u����WGe[;J]c!��nvSF��M�o^^��U`���T�o� G��pU6�QX�dh�u=�o��&�Ws��i�T�v��@�	'��{�T����o���j7Ne_������7�J�Y��uzRR	u��-�2�8y����|���=5���6B�hb0m�Vc��#�������'H������mrM��m��r���2"+j/^��uS���t^9�5^�Os�����1�=�N&R�X�:�A�"��,�9d�u��[���YR�O��n���g�������8�e�&�^��(�����Q���$z�M����:S:km���q��.4+����d%Kn`��
P�4��s#�a
�4k��{B?p��5^�N��]��o@�D��PY�AfZU�3��`��vY�����o�������v�s�YPAO�x1�os}&76f�N��u�J,�]���K�LY!��������pS��w�f9���s�!sr��������"��t���J[�{]!u��M��q9
s�D�Sx>��T����j�l�"��f��
�(ngr���"���K7D"�u��V�
���]�V���������K�����5F��bqz��Fu�@�RY�u��!S�����O5�^7�c]WP���Z�, 7C����;4��6����~��J�����oR���+Z��6llS�����R�Y\<��8Qr��{������1i������c��sY#�@�\q�4�[��TH��a0+$�_�������F�~��5��:��#������M*342��e
w�5Q6��Nq���'+�7=����(��������J�s�)�}qOZ�kP�T&��[L��`�g
&�W2����"�r�����+�]
�r��EelG
�=��g����^������xb>���W0�b|y��[z�'=m��[�|o�d�	�)[�i��gx�T_����/�,�r���N���"������v+D����Ag����9�o����cB��a��c����t��lj+�m�)-��j����}�o������]�����n��X�"���jm+��UW�b�Q�	�8��AU^;�B�&����u���HI�,#"7�b������X.9=��3����cy����w�w��=}����q?������.�	&H�sE~�f�N@����Z�������6*LqovB����q���/Gh`��)����t�!�i�a���z��
��5hl �g�3����Y}i����&-�]^8�����J�;�>���|'����i������,��$Z��Z��X�J! K�{y�/��z4�WE'B=��6U`W0M]����_:s�E�����2�c*�9g�qe��l�)%h�V��20�gJHt,�{AM�^�������G��uk~�o<��v��!%�Z����W�j��S!��L�&_���tkD���h5a�����������,��Y�=�r'�0��a���^���7N���;-0��G�'�W~��q3G�A��q�W�x���s�w��KA���$/��Lv�k��O S�~�� �&3�����P)�`����T�������I�*mu�����+�7$g�n�"�4y��W��=Z��T
4���\ �u��"���6�uCd�_���?��������H�l�Q���`/���-�#��#|�[ed�\ ?����y������"0#���Z&���i����4��B��!�e��h�9G��cbm��i*ib�(�#K������#Q��� �|������.(16�@
���5�,���$�������6u�?9G$�r�2���0o���"�
�4�&�>��u��CW��d���I��W;H�6�W�[@��UP�3����(��*���@����X��@K�n&��(g�EU� �k�|��G������"�������6j}�6�
��	���@F������~������o&�c��om/��V0wB����v�SM1�X�[b��"�
�J� ��i#.�����\?PU��i�lq���&���F���4�U:hl�E��HK�s����?l#��T�%���[[h�DrE��s��+>��Kn��K�'I��@���������wv����a�,ig�H	"~k�\����G��?M
{3K#l�Lua���������
4�0�6&�9:�k�3��?����m���}���(O�SJ�����cm
���
�l����������)��n
&&��
F%(�lhm
�?m.H��H�Ci6���$���9�H�ci�cm � $������1�����Di�1�m��4�@�A�>B���`���M��J�%�5+q6��_�������s?(%�����SR�P���c�^���eN���_[U��H�|�\!d\�c=����Q���UQ^����*����
�>���nccc6��SBF�C�c��1|�LI�6�
�[����HQ���I���dc�(���I6pch���L��!�/��m���5��M��6�]�#G������hF�F����1���l���6���T��V�k�������oM����x�XNn�a7���!�6���EV�.������c�Z��7�����o�� ���`Ku��/����Z�7v�Kmr#�A���CgI}g��r3Cm �a�������E�D/�!)v+&D�8#��.��m�~��0����P�h�*���>5A�Jc5�GF�1S*O�%1>H��!~����!`W�O�T�(�����l*��@O"i�?~NW���]~���U����s�U�m">�����qh�"+��F[����������� hm�
��;�(�p@�C���<
Z9k���hV���|j�F���En&�$VU���M�dK��LIa3�o���-��<31�?����o|���Y+�=(���"/2e��~�	Kk�(��RTz�~@+S*qX��o:so�����]�.�l���
�X�M!"�8BVEE6w�l�
�;"lo�UL��M'�T�i!��O}���O�c��m.�E�8�7MF1��D���:�w?DBI~�K0*��*���Z�2|�-�c�����}��e���5+��Rl���\`���*"thn.��P"~�2���	-��I�����WQm:cd+�+��T��P�Ku�1��
���b2W�K����m.
|Bg�;�TM$a��2c�i�Nb�-��I_�d�����_�ZX�P����'��A�������
'}3>!J�=�Cu�������;�cCu*n��~�^b�U?jbB
Cu���J���0M1A�+h7 BG����0R���
�����O�*N������?!7��$�������m���|J��_����P��$2A)�(�e���z���tk2f���V�<'��s
�7�� g�=�M��ET��6���l�L�h����v���3$
&�r/�q7~����SLl��B$AKC�0B\\S��Z�����+�$��@������=2DsF;��6�d�[�������T������[&���&pst#�\���rd�4�N����v��
����j�NSH��su�����t��1������u�8��{���,t\+E6;gD%wG{p��u����t�\�����CoM�����������>���*�&�j�[j^]*���������y��C������*���T���P���J�:��egFC����fE52���������$������[U|�+-:��j��sjC���u=Zd��&6�0���3�@�����w�R��5�V�dM-�6�
#5��L����i����	f[U�X�ln���	��������t*�b���
P:M�|��cx�7�}pmVuU���Ca���{��z��EC��5�1���t����<������%���N��n�_M��s���\�������FI�@����Uo���5�t�r%�,\��)��{�I���+qj���.��)�rH���"��u;u��Ex1r�u�[�'Y�C�������mgjhB�Mv�����4�U`����M�c��8������U�\S��fs���9�I�����FG��B���
��!�T�e�d����vGy���T�/��NY�J����������,�m����nV>+�1o�E�O�F��\4�JsQ�|���O'K���77�rALu.a�Si�z�v	N����:i���wc�%�
N���J�_�u�Z�^������s78��7���3�<s	NfS���������;�����Q��z�1�U��-��4���7D;@���][p���;�{�;����&���A�3x)��T�5����9�u��^����6���L���M��J�z�Oi������p��|2
��A��2�c��3��t���j\�Kcg�0'�(��S��{��"�2G/^5�"�z�j����c[�-Cj����'*�]��FglQ����n����"�������l��&��B`���Q��S�p�\u^�]��|��lw��R��[���w�X���I�	���T�2��G%�:m��z��6TL�+]���b��k����J�������lUiv�MQ�;Ec�yQ�/Z�V����mk�s�-m�A�
�D�������
����a��)`)����r��5����V?�D�?f^��}�}o{��I$�h�����[#������/����c����!�2��)�=M���Ku�(;B�����^��O`��������;���o�� <�
��x�O��3{{���\Qi&�B����Z��U�<���B�N:e}�FIZ���C�l�}z��[	�dnb �{������e���������~�j����c�L��*��k>�s&K?]piU���������&��H�A��-�<Yd�N�5m���a��-R���j1�m*��Y�;�{r���4�������!X&���[Z�Dj{W]<������1a�=���b "�f�6�iK{�����]�������%E���w�#�������AW2�%������%)��N�A���4�^�h%nc+<Q���XMh|�������LRd�M�������m��t�z;9�z��� mId���i7`��M�A-���
G�v������}a$���kF�jH�$���G����3��!�lO!v(���m�rR((�u������%(���>�F�G�����h����^�W�>7�RbWR#T�"D��e�
�&p�T8��L�Z�H�xB�0]���_8Y�O��[-�w�S](��(���R�����B�OR�zT�sd%��o+b���QF�-�'�,�������!�v��������x���r���^����i	M�1�X�C��K
H|���k	;l�!���>$
[��9��duj�Z�i�j����2+��b�~B`BRKC��j�Y��}��F{����O��J��%^	"�%;LD�;Q�=�S�`T�T��z����S��N'�c�_�Qe���@�l���uf�
>�a9��-���$����!�����+���y�K��q�����Ws���T�&��3Y���9������H��A?�������3^�h,{8�_�Yq%�\8UC���'�j]��������IG��~��w	I@�	��"b8i$_����D�h��R��D�8���Dsh)�Gj��I��L��WcS�v'��ak��7�#��I�5��z��?U�
S��}�?Y&v����B�s�\+��p�6"�
w���$�����O��Z��	������J�Wr�'�Io����Tg�r�B=<`/��vG�q�A�e��f�G�$k�(�m�>&��J���G������a��������z���}e^A��zJ�
a ~��6���U��9h�����g�iR|����T��DCV��;��J��b�h�8���p�!�~|*4�b�j���"�Pw����.N83�"44��	|��L "��DpL�&��
�����)����������x0tPl�CdFC�}7�t+��)��j�B��%�m�6�����.��)��D�M�����(E�=�<���r����8������@���Z�^$CfO��Zj�=�E3MW��/��i7���*F��G7���YB����5�mG���~-�p��Nr���d:����������&;�b�t��f�.�i-0R1|��T���b�yT��%.�uGK��W_i[;���\��o��N�m_�p��_�b��(T���L��}b�[��5�lT�]������(�t��r�N�w�@��%�{�^�A����9��w�8����,�����$Q?���U�D�)�"��/�����L������b�Y�'��!��X_��=����,�
�P��dh�@��������N��j�U��G��3L�h����"3����e��1Jz��Y���!���@������N�Yu,������w�[�[�Yt����/������$�K����}%�B�U����H^T��lC���q��W+.Z
E���
��>��d0ca��B�PP�S��]
s��D?�g���N��B���
[�@.�,�� ]V0��p1��������Q���G���_���|�K~b�0@�E���KVGi���zU��[�?�Hy6TM9�m�@�����]nU�e�0�j�M�yu(���+�w<:V�h�D�M1D��S��9���z�H�������kc�������v]��Pe6�Q�}j�0�'�����������}Z@��Z�K���8[�-�I�_��`U`T��+���EWQ�cY�C�\�R��Ut�19(�A=�o����`��}t��_�O�������,�	o��
SF&���������wr�o!l��uwoP��$~��������_Ow��S�DB"BCx����A+#���!���r����kyh"�g���|m���)���R��)[�!�\G1m����k���d/��������z��J��4tK��s�)"E����<����Eg�6N�I(/�u����X�\����z����L������<�U�_;�7�+p�2����-i��kZ�g>3J�f"�t�W���@�'z�){�9���f4`�t�m����n3���x�k��z�����AuYS��R�j"���le�����N.�6���u:��k.��q5��Q/�xlk2��U$(..d[��w'_NjhY��`@�x��Z��7��S��(���z�MZ�Io=�p�u,����I�7}�;����]��0n�������XwoAwo���G�����+���K���t��l L����p���TVWn<����X�������m{vN.�p����ne��s�{�Z\�VV	qo_<��^��<v��4`�-��X�������}�d���*���^�G))�m��+]��it�Q�R�MJwlU,��J�{���<���!�����k����34���q��7��6�d��-���Vq��S2�:EW�t=�M��y��s�>�DD����o���e�K��>�Oc��������P�S*��:�3�������l
#k-�e]��L�/�:��'����&��e���uvo
��Z����6���$���3w6��gb[CV�2z���5�C������{cB������j�������	�MHL��V]�3^_3�	�5��0k�~p���!x�!�u�O��9�����5�l������z\(az�_Y;����^�Q��J���]����dvS���k����I�VYO���v�����`�*>�����W�N*�
��INV���J>E��qb�����7�/).n��b[�Mk
�.5m�e_��o����r�
��}��"�f�$����f^�C�5�����TV�9-4���`\����:A��s|���7N�A]���s�����d'6u��zIP�N0""�l�wj��M�;2e	�,�s�+�0v<����9gnq�+������}'!��,iSc�;�I�Z�$�T��t��P��F���C���y�\���&�;�]\ujd0mU�}R�S�=����#�G��#���}�u����14m��O:�yq�cF�\zn�q���[������+�N�*h���������^����A�4��~���B�q���M^$����3�{e	�t_]7FfJ��hB��e�]���A��q�(o�����+;�d��m\���o��'�0������-j}�x�T��i��Z��b�����'���-SI�~vn�����qdG��W0��
�8gwPc�e���D*k�����%][d��wFD�b6��������i�������O9�?�����E�MPMT��Y�m�=O��l�j�U��%a[ko�j���+e���0t��][
��2Et���2����u������qTp�0*��+_?����:���k��)~��|�&^U���u����qY�����C�h�wh��u�o4������R��"01�����w��Q>v��x��� ��Q���P�="��r��C�����#�/��8][�p%]0�3.-O��v�Iwy���v)��,���{���/��������}h��J���
0�&4F�;K)�4S[UL����I�Lm�~m��j����u�����i�z�2�L�X�r�!2�N��2SX��$�2���!���u`���LT�(�W��^���nXI���+IqeD��B�3�Mm	�3l����j��$C����S<G��KdZ�.��{�E�\4�c���M������%{���A���Y�*���+s����m�b/7?��~]
X�F�!'i���0�'7Z����C8��D2d3'�����hc�_��g2��D�����+]��a�����������W��NJw�42���t?�qHf�����f���'KN(G�qEkEAm��,a�R���}l0���v�����`35��X����+7����m�q�����A������)�����  �(A������GU_t�3�1�R'�J��~4!�d��(��C4� jxQ�Hr� i�4���\J�GQ%�9A*�1�����������L1������PSa��b���F��o$sN�\{�d��0�$b��;}j
q�~�	���"7_����"�U\'�����d�#?M������SD~�j�8k.�s��?�
�����5�����Xl��S�&�D!6�Rw��2���������g������]���$�1,0�����*S�'�����q$��Q)STE[����HB_>�����Q�$���jX=V�=x�������=-��$v�]��zV���i�+P�t�?��� ��v���q/oA�#b("�m���j�h��k�o�,�~=�
���^$0������h���:=;�����$���j�<mT��o,(f&��sY�E���.��}i�fN8�t;B�'�%�������<�
���;��q}x����W��u3��9��'���|��t�2�$�'�\q	/��\�����Q��N����P���RMj��ou�G��'}6��ja�IA����>G'-��X�`�Kn��=�V����/HI07�{� ��%�n����.�u|��L�%�)n������}���mD�N�XT]��:����<���4����v�B��h���QK���i@���}�}��
��B�e�s�.��K,�F�����d�I��u���"I��`�@��1b��P�v�Y9�������6@[��S�+�\�x�|��~�z�:O���}.02Q�K,V��'�
;����FBx�zQE��X�T�r���P�����F
����$���G������4i0�D6*6��JG��@��"���+�����KUW���i��7�"����B��
�o�W�������4HE�����e6Bzq8�V�)M������GYe�n�Lw�����k�U�.�~/C��c~�}��4�/~����C~�jh_cu���t-j77#m�u���]�j�YS���:�u�g�H���	Q����$P�DC��V����>�1�@H��8�y�_�WDgF���t+U��I
���z�i���������� ��#K�5�L������lR*#�+���p��(������-\�
��io_�6+����*�N��5�G^��m�f���$���*A���>G�|)��4��_	b�?���&���#3E�4j)F�_�����B�����E��5�r}m��!	r6e�����;�i���CT��-��5gd��6l�=m���<\�ot����6�^�����[�;7�[N�����2�]�v�.�/�Zil(��)�A�f'qZ
�m�Q:�[��x�2���1���>���K'���u�q��^�
9�]��OAm�$�or��-�wJ�WW����f',b�~�
�X�t8K�uL�A����Q���;ov�{��7'2:f������JN������;&��r��^wL���{\�mF*�:DQ��TQzGD�SWN�;�Q:����)dj���z{����z��a6��������u
�a�\���UCMZs\��>��;��C�&�?%�����G��G[� �&vJ��^�P�1����!����-� ��[�.�Q����Y��(9��NV�F
�+��4��9�gQ�^�:\r��%����[��d0S�7W�	s5*��7E��r
����1�vC������T9
�������z�b|3��]		�%qcT\v���PR����M0�;��V�*�t�����Y]i�������P�[�����A�����(��<�@���H�������FT���������c�H������B����Z�V�T���F03�)��J�|�l��|Da@�M���"s��w�3v��xD��o���'�����>�F�D|�l���J�����g����R�@X���a�|�����

�>{��rZ��>���[$$��>��(��I����<qbn$� aI��"�&O��!� y���p�����j}!�o��S����jq}�=����X�W�B��-�NG�E��}�3���5DS�������~-r��
��S��1��=;�?u����->�LIu�����MW��i������_�Q�w�T$���?�b�i4o�����DB��/"2��;nY!�#=�e�r�B,Wz�mT�QP�\F����X6�DY��#��j��e~V�
�o/k�6�*n
��]���^�
Jhb4V�M����<��������s���)�\���a�@���p+���$eb���~�+����kng c������'�V�|�����}��E��L��![�2���Y�`Q;�wp��6�!~n��N�:d>m,�r�2="����j�>��v��'GE`z~#� ���eZK,�,���;l��%�(������yK���_��W�����u?MD���,tT!_��U�]�ku_�������^�/���j~{���d�����85���&2]VX���&Li���fU�^s�<�c�1Y�K&� ���l��QT��=;�]W/o�����}e:�w����?�dpF}E`�hC\�#+���}�>3=�I+��x�y��l���s���M��W�T��.Q���^�P��Q��+z�4����c�J�z�J�I�\��
��&�-��5��r�R�|c�z(YXR��W�_�%�tQ��ET��d��67������J�(TU������nZ`b��;��]
�8>f�5���BXL��5�����HG>�.�����[��|�����]#�����*,gI��H���l�	/��s��=�s�H��!L���� -|���n@_$�7V|"�kL�(���U�Z�����V,�����+��Lk	�-����	zO�G�4�x���x�"�1Z��,���;f�+�������#��dH�/b������2:H���BT�����k��H����9����p�z)V(?����|��#�����d����P�$�����G��e��p��^�T�I�Nt�;xB�~.�~?
�W��@nJ0_�Pze$��N���mE��}��?!�j������"!����H]t��4������8& ,��*��V]<x�/�W���������r?��+j��e���q���?	pU���L��j���KZ����U�Qbc�JR*.���V���8�wQ�eeF���!�H��"�4�P >y������w=]s����HI4�~ IZH=��6{���hr?F��j�nm�����w�2dK��j�E/�Y�@�'a\������vX�]�I���9���G�VQI�o���Jl��t��)#R@�8�?��
����}��Er����X4��e~�!/����o{h4??���0��	���[.��(Lv��C��e5�!��� %��A�g���� ��*GDg6h��2-5��W���%]GF�B�6��jO����Y
��l����$]�`��z�.e0@�A����(E�����+/sE���M5?9��%�;��i�^65 ���,�
0p�-'Q��W!����)�p���
�6 �e�cY}����x����,��^!P���V����<$�.��*}��I��B_Tt�Y�+�F�2��M��(�G��t�7R�N�Q������3���S1���))������TEZt�Z��T'��g^�z%�V��������,x�W������	�]�l�Um]S>]J�@���
�F�J���= �ig�K�1*C�z����JAYB���~�-���~���1��T��t���h�xX����^62���XM[�F7���y�����L�9�9n��
���g���hu��]��eUH�m}���P�s���K��>K�?mn��H�2���9���G�'�R����	����l��e�m�H��UW��JZ^���3$S�U�t�^�X|�MS�
5�A�h�SY��;��x�����c7��,�O�(T��&��H8��&����L$�3����]-m>�K�*/P��5m��N'v����"
�mq�������EJMH��R�����oU�}�+�����������/b$X��S�[��%�gF��GN��7/�9��������f��N��c����O������t14�~����YOj9�c������
���S�G%�t��p^�7�[c�BY9�����Wk.S�c����}J	Q��w\l��d�X�3/�YB
����M,UC��m��U.ILn�����i����������n�)����-](r��s�J�d	�X���3D�r����C���������kI���-��]9������X�;)���7��~����_��9��qkP�����k��^[������p�������W(�+[nnm�7Cm���*���������v��elU6���6J�b/WUur���]6����%�*������������Y6g+.�8���hN��Tr-��:p�����v�]nr'�t��e�(�0��b��W�iLs��F����hq��i
a��.�k�94����_,,�z�m������gU�|n�Bk��FP�M�|&��Lby������+���v���	���j�Vk�E�q!J'�2.�\0u<��u��8<��80rl��2vq���q2+���4s
�_�'���0X��f��:��~����f����47S�r��|�m��C��+oG�Z�IT
�/5wXW��X�6�6osuIs�����;w��L}&M�h^>��P��j��RG��Vr��Y~�.�����M���n�s|�Pe�!���[�������#Yx��mk�+��@��rOf)U�������P����:�TZ��-u.�
Zo3]��z:��I�A��B��J�w�-��������qb'�5/�lsi��\���t�m^�3�0;�� �c;�;��V�J��Wju��/f��V������]���ee����.s6��#��+2]0��B�b���-Y��!9X\��
��9���U���%K�\�n�;�A�����X�U��l${t��U�����`�lc���q�)�����x��5���\6W�>�_v��M�7R��Mz?��~�_V�sG'�=����Fu{��8���5�%a7l�������M�y����a���O%l;(�|���)����&�fb�� �B�X(Y	�"��S�v=D���K�F����C(.q�\���9%D�,���H��{���)���8�Au��D����T����t�XK�������WV�������0������Ua���g����
�����n�������$Mm�1f*V�vE��+�~Pt/2����B*��j��7Z��u�C���f�Mzp����&�����t>$emz]�(2cyl� -`�A
^0��yN�w����������
�c"���,�4|�.��
Cp2$D�����k%��]X7;D#�rY�;2Y���4����z�y))�������O�Q����[N}+�����l"�A��>=�Y7	,i�v�\IU�yP�%0?-y��xN_������\B��
�i����J�� 	g���R7TI�����_���Y5�w�;�W���������X���Y+�������f����U����qM�I�kd���t����VB�>����2>��F�a�3����
��7��z�/�{�Z���g���,����i�SL����<R�	�)H���}�4�|V�7��(��eG�r%��Ze�l�gN'=>lG�0	�����7!�����hg��j������A�������>����������(��-������Zo����e���euf�"��	*�T��Zn`Y+^�����/S�E��Y�d�x3�n�D�'�����l�������b"������zb.z��l����
Y����H(B@}��>W������������[�#>���hS��������]��Q�$��<�A6��#�s�(���E@���o��j�}a�F2��O�d���m�.�(p?n���
UE�-���$(��e��A������s��7�6!|�����ePe�������F�7r;T5xRk���6�3���[L����
����?e�T�g�/�����'�b��*��������o�:��u�d�<X�p�`��w$�MP}���7�YG���\z�@��{M������_1����\���?�����f]CX�_������`!��S����+d���9��B~���"��N��p��$p~���&�8��DK~7)��JN$~[V-8k�������M=�9Ny��Dk����.V�2�1���].�����w?���V�?Q�O��H,�RUj��gW��fy�l�����I	}[�1�n������
�~�a�E�m�=��j�C\c��+���F�������� I}���-�)��o�jm�~�+c�K����_�7����vR�5������&��o��_c�Z~>�v�e��$H�m�����M����
�������oJT����)�HA��f(�m4�c�a�~x��D=]�wx����{����~�T"M*�a����d�_�
��1
g�SU./0X�����!" �N�W��g�-��a�����>:�L��C"���S����Y>�S����
d����h��H:$i��{fb�������g@o��<�#����w��W���J4�k���?#�*���������w���[��W� ���
�R�����<�$���r�^��J��uX�xZO�i��<mI��Wyb��.U�'3��^����^���v����k����K��J������g^����(*��#��ZE��.�{�5��~78����^��K����{k%�0��T�%�{7K�")�m���������_~��
�S�4��3f��a��a �e�u��3�-V�A{�?���#M	$���c���?���}UC�����S0��)��{���$�~��������~Jjx/x�)!���5A�h��b��mS��Q6*@T�Q�kk�%���+i���a�0�,*<>�(���>��y�6-C[
W��+h~+��fB Z��HO
Qd;��P����O��]}��������vMV��)���]_k�]0�lb2AF�=k���CUo{������6S���Db�C(����\]�.S+s3%���!���L�K�}
����|����}�����Tz���I�N �5e	��s��{x����=��j�U�]w\]��K]�]�z�38+h���u�b#����-����'Z�����
�����m�S�������<����e�T�7.������On�#����s��w���c��Uk������:i]�LoT�������T���u�����U���`��egwRl�[&��N&�$L�I�tt+��=�y���u
�����Z�����r�[��e�Gu#�X��x#b��,�����%���zV�l��U���C�6X5��W���`�1��K��^2��������Tx�5�l��MB�
�+&��n�A
��c��N���N�R%.C����v��8��8��4}�Ws�'�-��!�o6�g\w0V�T�v��so.(�R����/j�F��Xx��>m)�������M;����\m ��@��;\����
���Y��ee��0AK�&l<7�����=KdJd�s)��M	�lR������bt72�ol�m��H2�2���n�a�^� �Wz������n����z�T����W^�_�[��!��K�5��q��{��Z�iY�������I2k���U
��+K)o����]di����Zd������dx�f
�[�#<1�tp���j�M=�cKO@�6�M��'^�U�#�l��YP��|Z�~�1~$;�as8��(�m��>�km�;�k��Z���KO%���l�����N%��|��k�����|����b�y�|5\Jd���5��<F��;��v�3<�����E�����=�y@������:�_�F������Z=���VeY���U�U^N��6��j�Qa������-c/&����KM�����R�8fd_q�l��H��\�����.�)5�M6���Y�_z&�w����j����M_���c��k������_��y(�+�^D���S�7��vHme����>g���_g�m^6���
��
�v��&.�������������N^xnj��~}���
"��O�����3��~��C��i��^>����#u�M������� +��0�����^��_#}����W�8���Z\%P����B��=��&�=]_��
�������������G�J���S����2�pv���G��0y�� fY�F/V��Z�������`����j����#��U����
;��9��.:�{����f9����x�1�@�:6��;`vvp�X�����Z�u��-8:l��7�d��f�i3�;���y�P���+7�����e��,
���5��������9���������K�h�d~[~�U�����<7;���)��^Ze����������/'�\;����.���Vn6��h,���R�k�P��-�Z�xG\+2�����((Po�-o��W�	h���2��C/�5�o��u�7�����'p��A�BTo��C����,��]���~�����"U/��g�Y���>v]
|-e	L�e�oR����m�r�n�{������N �A���<�@�ipH�
Y&!Ae�l���
q�_�u�s���F3f�����0�(�O�L�d����O��q
>�=���N��lTrHo1���1]=y��<��E���
�(AF@e<���zu����0���s��u;���g�b!*���=S�W<M�$��1�hwT�� J��C���6�g�p���6�����I��sOD�Q�Y-+i?�]yc�FKV��N�A�W�`��|�\���[�J]�������H�l���R�tQ]��AN���!�������;c^/u�6Ye�H�����Z������4q�����.{�k$�i���jQ��S��Mo_j~�O�����?:o�B����U�v�&L����?�@UU��e�����!,5��{��-����Gj��f����@�BR�R����/�����iL�lQ'���E!^��[��(��#�f%���}���E� }�	�)������l��lI��pc�oCz��pXZ�!U[%�a	x�oB������#�n����
�Be�o��y�|�G�6|A*� ����GH�E�J���`�wj���A���<�H����w���?@QG��r�Zp�
p�(�����-����/���:@X���>E]����_Q!�[A�:�u�K��	����~����v�B�vZm�Zs^��|F�Y�z���������}��n��wfM��#���T:���38�?AZ�O���ECn�v��.2rG��n�������|�|C�W�!}Q��}��F�2>��!�-}D�$���p(k�����m�w��#���t`m����T|����X!��}�d�K��T=����|_��e��
� #�'L��uI�@����je.������c��D���+b������v���P� ��|��
��F5��.j�KH���S!P�,v^�Ud��ao��fj~k�y>�|`�/�I4D�gVi��|E(z`��Uupm �#���y�����L���"������=a�nk���vy�>8��e7����M�p��7G/N���P���o�1���X&�|�]���SH������r�$,������2az�UT�W����E����_N22��������
�2f��uv�Mg�w�#LT���	���"��]g�����Q�jX�D$r���$&a�5����������Zf34[n�=�����{{�ujbTu�h3%���	��F@d���k�R��g�Y�F]5�7���SWX�u���K�TD��/�B�!��
5s��
�+#n�{����8����-��)`Q`��v8�!��I�}�����!G0u5���W2eU�Im=8�5�T7:�wam����N5cV���Q���qc�y:�n&����*�h�"+{o"����&aNB�
w��VJ��W}��Vj7�Dl�V��������fKI�����X5t��u��"�m�M�XY�S��J�MK�����J%��.�!�:=��&������xih6���>Le���$,�:�3mQn�*��)��imMc���qN�.�������Z�li0�9��.E��b8��nQ�B7��j����AR��:;�����y�r��Z�3�E�����������!����X��<�mc��D��ap;�����k���E�e���!�<:��+��Wc�:��:/))6v�T&��u���������]�[���Nw�9oM��nu��*�/.�5*�!kvV���#������;9(��/:���g$��2�q��w���&����fYK�YP�����iA�*tTi�,����vv8��^xT�r-A�:]���u�����`����2��v37����K�]B��R�w��2���l��Y��E�Z_?IX)������e������#���;�� W�����k�4-�7Vw�pK�P�4���;�o���C_@��F�\����!z�	wO;�������_]9L���������j��,���]����#�g#yy��n�n��^'}k�s=�*�����������Syc�\�2�6x�ox�����/p�/���vqgX����=O���3%���_*�q8�Yb�=�L2q���������`����;�,��z^���v���Q�)BiM�
�����h�61};�s�6,b�7��N��oqS��I#�����m1CR]�$=�e����j�S�g���t�����W�H�&DF�R�pPEHg%c)b������8](Ek�Lr����$#{������\�"+����|N������@l��3dl������T�bc3�=��`{��+�gc�"����F`�u�D^�(z�\��f-1YR�=�v+������~i=��@O�%T\m�P��������1�[�[g�v����@]���^��q��	�r��8r����' n�g{�m���Y���&�R�\x(�c]87G�Z�Rr����������w��^y ,I�Px�M��k,�`?i�����;���$+	������Y�Q�*���7a%�C%l"�~�y������?;�����|��
��]���o�
U�j���x�j��E�����p�L�����y�����9=�s �`����Dh>�Z���]��<4X��+}x��[�6UZ�����	���>����G�S�����������pP?���VdX3�O
���i�zCFGU����[� ��2q�>��r�c�c�������(�q���V<w"s��3�A-����@��pC�}"�����m��������E��J�xV5v1���t�,o���V>{
?K�kf��Do)�y�$=���TQ+<��k��Z�wAf������m�����M��h�������5��o�q�2���FgkP��R�	2���]�|��C�f��L�T��y�{���gP�i�>�+��y����MI�>�@���)�\���G�L4O���[.no��AE�2���A�����D��6�C��?*�������z[(L�Y���,`��r�c������l�m�)��
l�n���e^����*�*�H���C��B����lP��eG�(h�`��� �r��v�?��	��\��}����a����N�$.�h���R��m�p2'����(d"�������=
Oc:���7J���_�_��X���	b.������8�2����b2�O���uo�y��hUM��8�����6�8r��eRZ
��Q��=(9l��v�����>�q
n���	�F��(N�j��Bk�.y}���_8:���"1qls�t�SS+����3�����M*@�����>�<���k�q0�����-��SS�fa�!�"�&�
�>�;i�������&�'�K��C_��T�1�����W���@����U'Z5�0��k�]Yw��Q��Vv|�.�(���P�&�I�}�Z�C�T����9�M��{z�9#b�'x�fL_g����er4D)(�^�Z�+���	{�gL���I k���A<����+��y��l��N�B�}������2P!������H���E����P�L���y`�W������|a��iL�����t3��A����!$n�V�/�#���S�&z�����'�����y���T�W�3�Kf<��dimk�e��&�3��5�M0�y�'(�`)k��&j��W������C]�������V�����%���QM��u�N�5\��"ah�������Eb�����~�=�?}���g� �J/��jj����=������rR=U�v��������1u�U��9��;.$�_��)7T��z:�V�) �zp�U�����K���p_����a�e���JH�`��x�x�9dKS������6�L
�`�������	�U;�!����BE����sW�{���XG����7�������Ld2���������uGkN��qp~�Ql�������7�U:k��u���S�k
��tQkEt�zq���R��)�`��<���3��!,[��_2���e�r��&�fx�1_*���r��6���@������+�G ���F�~Hk"^gy��m ��{����{�n�L�,h>>TV�i%����ip����a��G�����KF�&��[w�1o��f���=��Z�����"|������:����U�eX���(�������6�D*����D���@�HY�s�)���lX|F^�j�}-^jR�:���u�X����+�0H5zj�{�Rs��v#�0���&����XA�z~����#>|�����lx��d�K�9)��V���qG�tE�[���&�Ps�;���V�s�^
�bwby:�Dlt{u�:�U�K'�����u��)��]c���n/e�������]Ip�|��0�-�v�1	H�wb����J�8�H����n��r^rk��[Ar|Vr��\n��/+.�������=�a�w��}�pf��IVtS
��I�.��>��vn	�W!��'kR����Z��jN�6q��P�y�e�n����O4!F����[�C�-��']���� f��]��8H�R�����p���'[R*���$u��en�f^p��O�Gd@�i��3v0a�]B�{��������G�S�-m���l�.��IS2�t7���[��n����ixa����|\�&�	|nv������Ic$����P��/�7c�����.�\Z��������s�������,���5���3��A��yu�iGH�W%�Y3Y�n�uW�m���H���`�)�2�	��W
�������.����m�f���&mLj&�Vq��HL�� �-@�(��G��HyYI��;r�'����_����-�t��+u��t����P���Fu������P��2S��nwk����Sn^�e3�FX�~����8�K;���sjX���v0�*F)e#Ns��ge�O.M�6.|�k�F`����|u����;��	M��7��������=]��*���}���D�[�L��wm�3�%���m'9�E�����;��WZ['�[VmQ����]��Mu8����,���}��s�n2y0���.�:�z|���a�����Vu<N�C1Q����5���)�+sF�B
G4a�0�v]i���n�E�m�f�����&>y�����\��n��r��f
]��R�$�;�r���A��Tt�6fD�����|s�q�����:���;L���7U����V��2���������r"MTX���������P���>�Z���d����+�`���U��;�-W�M\>�a\���YG7j���vuCj<�\���hu3��D�7�h�h��Bf��+�+�X�����:6x�<r�����LeI���X���k��p9������f)��T�Ryo��Ep����+��>4sU��>��H��HFB��n	D�C�/3������c��R��{�[D(6����D����~��Q�-�����-�>�y����:����o)M���8���f;I9�Z�u[h8V��L����UE&�o:�U1�"Vc�����Kl�
��j��g"9�&���FY�H�4�a���F3U��\�%LX��(��4K�y~���PM9w�l�{1(@�(���x#�Og�mA[N������g�~q��sZ��*O����u�n������������n����BT���������	��r�����
��[�
���YTb_X��'.}�U�����F�?3�c#�+=�I7Q#L��N��������7�[���@����f*��JghP]�X�H�F�+�b�L�e���e;��u��
)�+��n����/����*�gF&�6����i���Z���,�A/R-8<0�����6�����+�A�(;����i����/2��yv���d�5���(�E"�hE�f_�z�^\��5O���IK"����v7'����VWlj��%�K����,�y*e,�-> ���saM	����������/���hd��a�h�3�v��f����I�A!*�-�L���V�X4�0����(Q�Rd2Y0&���c��iy��y>�����:��'��G�7QNb(c;LJ4N48�����3I4%v�5�,+
*�(���9�������[��NN���Q��$K�nS���C�LIZ���UZv0|+��@�H���x+��+��bS�-�>�s���u
��730��{��Sn�N�=*4��[/�+���N���
�c�4QL�
�����cx"v��~g��H}�ax��U~@N-(�'�T� �ULj5������E�g�x\�K��m��3� #���\@�C�
b��
�����@�� A+�0�}����YP	�����������q*�S:F�������V,�Z}��]���6���/��.����2���<%�������'��.���!++��!6��Mx����n�m���e;q�j��h��������m��v�����:�-%�DEKd�*1��M|�KK�Y�������9�[*m0/���������8�#^Q�k5��u�{z���f�W_
E���1��^���
��1-��-*�\,0P����}��	��z��#E����'>�YrB������m��}�-�	�,e�
�+���.�W�ce7O��c����P�tD��� ���
����}p�^@����uGE��67��:o�}����qz����I���W{�t��j�Ih��"�B9]#^/?Tl�3������)W�5bf�/��+u�U-�"b����[9;��	���W�F��D�,���P��5��O�<oI��/��R��*��Fn�<@����z��������]����||��Cr�Z��:��:��bF�������	�Q<af���waX��z���_���_�!*9�����kM,��F�I,L_�R�-������)�q��B�fT��0]i_��	������>1LVv�N�z���������BXjF�ne�����Fu�l�p�r���fy'�		u��-,��1:m�-�X�vT,�3�&s��<��+>W1������n����V���Y8�G_�=����~�����lKb��)h��Ba|�+Uw;����g�!)�����������/�����q�M5������T���w����KB�0��?���5Z&��J��R!� ��j�Q�6��E��CQt[�_hz�h�{��_<sg��t)��U������quE�1+)��q�!�K��e@�ef#���d]��f������
6�e[�r���!�1��H�eWB}8jV��N]K�3t;�t�x9ws�w�'�lv��Z]N��J�3h�m
��3�eS0���v@���A�����2�;�E�T��tv����)|{P�m��f�+a�ZyO6�����7��C!9�N	S�{�d'I^�\��u��H@�J���+Oj����}:�*�j9�/�c��::q�z&Ej���.Y8T�������G���yF��z����sU����B�lu�A]f����N����U�����e�c'[s^�3��O0�{kW7W��w�U�����f6v�9�f�L8���-�Y�'W)pEk��$&��ox�+�;�OM{,Z�h�������{�����;���Z���J[��iie���YY��9p��)ANs��Y|��
�
���HN���s��F<V-r���2��A���n�h���hO��I�a����W_h�;(��<�CL[-��#j����|��+[Yv�9Ik�fN����t�����P�Vsjc������J���QY%������0�6��3W�������>flY�����g@�whly~���U�n��O�w)u���l��f�gw�Aw�����+���~,���M����W0��4^5�_��9��\���vh�>�8I��I��Uz����5��_�t�Y	�]��s*��^�������q� �S�A?�rX�@��(��x�pk�qW�������n��N���O�:0�a�|]����T�����
����`���N�+F�&���
�6>��j�,�����BW_D�S����������y��nEXG������Z	���"�6��K��P�I`�Ri.�<G4�Z���hN��n���&����0��Z��M4!�5�p�kCxu4���Gy��!S��U���,���&��
u�SB�h��X'�7J����������n���.�\9��XFGF%Ff-�r��C���(��w�����&	�{�u�U��Dm�10e d�H���^}�"���=&�(����)��%�,�;U:���;kn������D��'w���%��7Rx�*�o.������,������CJ�X|��������������V������CH�����t	,DOi�r��������dp���{��m"D�����&�mFb��"���8�j����e�)}Rq���YD���W�(j��c��iZrQ�������6���T��Z.��\H�Ad)q�q2�!F�ys���[�4�e1��O���$F�z�dyw�����qPv��3*&2�<��H�����;����l�,���D>����i-��;!�������X�t\xv��vu|���������~(�J/P%�P���2�l�=&%r{n�*��+�Q������|}���������R#r��q*�����O�Yg��P�_?p(�Pj�B����=M�k��p��DD?�H���wz&������Zi
5?d�u��_N-�@��8<���O����'��+�������\_�Fsz�&y�#]�)p�3��J�[^���A.�B����N��@�F�T6K���������O�^9��`QB��D������>/�<2v���T�;����g��iB�lzin���-�8�b����$��Y��<=�zo:J�7M�T(��S$lA��\dc'/�i"b6Q5L3�+��V�����~���|��!	�>��~���~�3d�X��p�����	�.�Z��6�l����'t��9};H(��W!�����������Ek��_��������w��}��7���H
�N�>vq���E�c!"���S�KZ��!�e�YPl\x��D��5���-SW<F�y+�����pP)g88�[���x�1�W��rj�u�)�������������������h�� ����N��
�r��	$JJ��O���������~�D]+�(K�1�~�K�6�z�fsm���JE�v�i��V��((�gC�[ �}H��R��h^�*��-[^��Fer�6c/;2����RW3�������c�R�)<EK���
/�eA���3bVl�fJ��}��?����-�7$����		/�pivl�4y�����qS��o��B
�g�kw�����U��d�7Ye2�qP��6�].�<��q��}o��o
p[��2A�.1��<����������e�Yf23l��$���xT
�|!����IEccM�M��&�B�-����neZ��W�T-#4�E����(P�4�U,���s��7R�tA��,�#�KE���)�mR�
�-����}�P�CO�
~�7��� �gj���\��E5�Nr>� o=H���3t�\�^xN�XF�u��T+2�a���H���@��	�	4/���H�@��HH�I g�) �y ��@$��A��H?�I�I�$�	�@$�$�� ���|A�d�H�	 �I � H4	 �) ��I _��@�@$	�@�I �� ���ZH:�	��I��@�H?�$�I�I�i�/�!	��
I�A�����	��b�� �@� _�����H6��$��������A��i �A�� �hI��H��@$�$�HBM$�$�BH?�I�A�$�����114��L_�I�P!A�d�H�A��@$�@$� �$I� _��@��	�� ��$$�!@�A��$��	��H?��i$I�A��	�� �@�	�A��
$
!(����`$�Q��$��	��`�hII�� ��$��	���$������q��m��`0?��'n�m���	�$@��@$�� _��	��@$
�!@� ��H?�$�
��,��.��p�!]y
vacuum_bench_output_v11.tar.bz2application/x-bzip2; name=vacuum_bench_output_v11.tar.bz2Download
BZh91AY&SY\�O�����0��R���?��@����b�a�~o��O0����l@�pC��P@

	��
�����P��<�-�3�@���x���
A@�e`�.9�(�UR������������j��6X�DB#�@��	
P
�^�^o�<50L	�h��aV#k��f�Y�����T@��"DZ'�w�zj6 E����ab��=�t>s�*��UA�o�����3mB����;��f�Y�0������P�(EJ�/N���A-`�"���E�@�}��A*�PP��-�-�c0�h���h>���(QT�@H����e�M�D�1h��hH���@P((��_HA""
� ���JP�Po����lm�blX�f�������w�w��l�ca��mX��b������	@7��p���M�I�$�OI�C@zM�
P4��d��JPL	�#d�&2�������z���T'�R!�R���i�`��#����0�M1L��&$����44d�����=S@�D�G�	JRz��
?J����?�4`�b?�
����w!�H�$W��c������%�����������
n�,n�)#c�������������P>�i�4��3�W�����z�������%@����;���
����������|M�4r�4���:I��y��x�����Z�Z[X�-����eJ4��5bJCd���Jz�!d2,��2����fY&(H��ne
�t��L��+Z��Y�a���;����������}�����TG��fo�F��o;4��?��+��/.N�L4>F���������`�?����g�G��%4�^�?���T��&Lf0���f�t����Pf	@�22�^~~��������]��_����t���v�7v(�!�����3`��������������CE/���A�� �����������V�N7��w����+����4�F��UOh>�Y)��0Ju%=�,YF*��*��7(��x�Uw�M�D�*�����|������O�!���)?�?�WT���D-LbZ�Z���4f�5Fg&�����L�������H�Z�Y���M�i���\[����;W6��wv���vI&]���v&������W[]�d�����cN�]][����^W�e��J7V����u����S-]�]uv������Ve��JwkuYI����TYK�v�]�k�t]U�v��vl��������Wn�]u��N��]s���gj�)����[�TYeLX�&�Sa���JQ%3M�v���fd�]�,���v�����\�U�\�����y��]���������SW������cH���w\wpI���	$�s�:Is�	b#�����[b�����@2`��&D�A@DG� E����g;�wn���"Nr8�.��\���^/�k��k���j��sj�����r��t���L�$�� �K���D\�D]�� �7wGv�-�-r�(�r�l""" ��"%��`�t��d��������%����AwnGwc����TknZ��-�r9�r�'w""':d��s�L�s��$�u�w\�c��;���+r�����,�\]�d�w�������&��$��b.p�E�b	�r#�DM��wt���IwSO�r ������2b$�����}������L���wDG8A ���I�����k�n��d�vfd0�8A��@Dwv1$A@wL.��!��vN\.����� ��I�"DHDIs�"&��II�F$@;� �2H $��I$�I$�A��.��� $�\�H~���~��G���*5J�fe��'2���� ���]�K��SMu�A.����M�+��g]�M+:�;v�eF�v����K3+Y�fn��JY)�u����R4����jje4��Rf�dZT�f�����VjY����)�$��L�Y�;� ��Km��'33333330i> �$d���&LD���t�wd�I$�BAI��#\��e�s��u�I)2RH���2bH�"ww]��L�'.��2R`�A1��F9��!���`�bBL�HI�I A0d�H����I$��DF�!�IDL.d�H�1F0@�!$��BI.��wp�DDDjd�$d�$DDD�b�r0@@@@�d����H��`B@�I���b1$�I$�d�H$�H�_�m�	 %D@D$DH�B�!�LD	���I2d�$�$��Dcd�LI$I""" ��6�BHL�1L��R�����u������i�������K&S)�e5��']w]���u5�]��)J���E��4W]]�M*��e�]KJSf%)�I�f�d�ffcS]uv�;&��e4�n�v����M�l�L��;�����Jn�u�f%,��W]����M3S)�]��i������X�E�H��H"#9���� 'u��t��wAnr" ��N�BN]bI2�$�d�	$�I$�	$���$�H��n���II$@I���%3�"�D�!$�	2��I&��	$�!D���DD��%&
L	 �� :��n��� �$�����`$�`�L�D�D��d��&Q��K� �I%&fI$�H �2BIH��$�"�F3i@RE!���M%&�	�&Id��v���`F3�":p�)3��)$"	���!:t!"LBd�I����GK�D]w.�����"��HJf$�$�1"L��"(����.��c�(��w\����"" �2`���I�bH$��AAfJf�RS4���Rf��n��L���fi�v�wW]u���wV�u�e�S4�iK���n��%]uuu���fS���U�)M��n�]��.�vR��4�KI��2�Zi�R�uu(�JR�,�e��)��JR�J*R�$����L���m2�K2f���������zF4K��}��_6�m[o��0�LH��$�I�j#DF�DbH!2I�5�>�<�;����(�c2:�s��H�D�  $d�Dc8wGGu�����&L�$%!.�wwwy�"I �H�`�D"�2D2A(�	��I�y�t��!$Bd$��HID�2Rd���������Bd�&e&H�Awu�����oN���;�A �DIA"d��LBHH�Dc��&]�@Qd�"Bd��H �2��$�d	�� �H��I������	!�IDmH����$��I���;�ADD)(�w]��e��$�D�!&�  ����H&H �H"HHD��s��.���].���s��"""1���� �`��b1#�2l��WSJi�SJS2�JX��$��,�$��6&1��Y�3f������2���S4��4���L��I�SIe!��JS4�
4����3Mw[�$�Zi�3,�4���IL�4���L�Y�E�Ix�%�]1ID`� �1�J"���d&I$�@I0II3�C2HH��&A&2F(�(�Db I"#�%!���(������ADD�I)�$d $ ���AB0��LQ���H�"1H�c$DDDA$L�1��@AH����*I�	B@��@�&��f�����&@@�$�DI	�L��c1""""� L�&BIF"(�I&�D�)4�&����$����B��&Hi� �2d�"H!	&I�s�s�@��b�Q�$����3$�&	1E�Fw\��1�.m�Rb0A����H��S,�%�e))]v�d�]���i$���Rf��KK���]u�]�ut�5��4����R�4���u���mw]E�v�j)<���+:��6e��IjK4������]N�n��Q�ji�[.�h���e)�����&I�L&d!��)I$H�a$�$���@��~u�")$��A�@�!#1z\�
	$�0�2��RfP�H�I$�B	$�H�2F����DDA&w]0wuAP���D$	���2�Hd����#0�Jb0����A0�  2A&��"�b���D���Q	d>}��q#���H�L�BF@H$	��@d��F1�&6(��cI	��B"@$�&	2!!DDL��AHD[��& ���A���D�� �LC&"��d	+$�L�"Ha���X���
H�����2���J,%#D�4Bi4& K!6Ra�Y6�2��wm&�����wU����2������i���fo.�I�TY��e'v�%EsnT�4k�v��k�������fU5%�w^y��)�7�W-&�wV-��j�RkK�m��VWv���[��L��mt�����i)D�0FHc$�a@��@����%$�
%�A�((� �E,j5����&H�b���QA���RI���(��lEF)4h��5Q�DV#I�@��1��$K$h�(�&A���1�"��Y$a2I�MPI@��Q&LIDD�(��2i$��	�0�32! d"$A0�	
��I��X,��,TcX��D$�I��L`(�E�I0����! ��$bHh"4FA2��b3"��B��L���H�R$(������1DF�����4�D)�%"��%�H$�$#F��0EA�b���"�0I`#$�b`������||I>����fffffeUVfff�O��Ad��+�v�vH����^uvMwv�M��k�j��w5x����h�*��I�����������$�s3*�������A%l��2�02�2���&�Dh���0FB�c"��X���"�BX�)5$�I�h�������5%E%��$�bE*,m&��I�F�lj
�h��F����M�lHX�*5fj-�D���&��_~u��7�Q���Tn����a5l�Z$�sZ���U�1X�A�$�$d� �^�y������Z�+��2�f	����~�����M���
�������������am�]gV*�YUKK����/�U]����`7�V��3]S��Sz����=�]��A������>`eq�2�0> ��_���p�v�t��"}�I�W01�J�(�����?<�]�x��*�d7���L�=k��{��_/��:���m~]�����W��X����K�w�/$��rb��?��_�U�U�(�V)FUb�eV)FUb�eV)FUb�eV)FUeH|�Y
`�"���F���cQh���j5����F��wj5�F�Q��x��F�W5sQ�5�F�Q��j5�F�Q��j��j5����F�Q��j5�F�Q�����j��j5�F�Q��j5�F�Q��j5�����6���\�j5sW5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�F�Q���W5�\��F�Q��j5�F�Q���W5�\��F�Q��j5�F�Q��j5�F�F�b�Z�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�F����F����\�j5sW5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�F�Q���\�����X�j����F�j��Q��j5�F�Q��j����F�j��Q��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5����F�j��Q��j5�F�Q��j5�F�Q���X�j5sW5�\��F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�Q��j5sW5�\��F�Q��j5�F�Q���\�j5sW5�F�Q��j5�F�Q��j5�\�����\��\�j5sW5�F�Q��j5�F�W5sQ���\�j5�F�Q��j5�F�Q���W5�\��F�Q��j5�F�Q���W5�\��F�Q��j5�F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�F�Q�5�Q�����j��j5�F�Q��j5�F�j��Q�����j5�F�Q��j5�F�Q�����j5�F�Q�����j5�F�3#}W�_X���`zyiV��q���eM�#2���U��A�|�X
���W�U4
�UnOZQ$�����������n�������q�\���(?�`������z._�F9��ey��?�g���a�|Y	(hTQo���5^mu��#s������g���!�:�v"$��4���7^���U�p��>v9W=&����wl��6�^�D��n���u������b���h�;�&�z���y{���;{�T�M�h�:T`8������^=�7����Tw������[e*�A�;T.���Cr�d���������=c^=�'��n-vl��l��y��`��R���%��J��c�^�6��y!@��X�h5c
������p����
��������{��;a��hi:�Ti��3kfT����^_�`�$��VT2�m��6
�5��H���!�U��#��w��8����|���������L���-%��H���[�<c�d�y��;XX��X%o���`��Yor95�Xk!e�L7��{��,�}Xj���w0��
����1�2�*\��.�cky�]���2�*����V-���u<���CZ�}�����%�mhM
�X*\6Q�\��45;���������OQ=(G��
O�'��$�����F��QvD��Z�q[��uK����#���e���Z�.]w:�*�u6���7�����|m�9W�����I�:�^n���������z$���������:��w�_e���������2aUL������[��t�i�bU(G����������'�z���]��z�dU*�����&t�����+��p����V�L���/IH"��j������E������6,�yS��KG^J�;�W����h�!�[�r�n9��r���vhh;����5�dv���������y���UH]^���
a^��:��2����A`��X��	��=��o1'��2�<���_=�Y��$������{x���B�������%�e�������1]q`���\�c*�d����;{@U	��]f�R�ug1����C+�����A�(��������:B�0����#��3j��R�u'�o+���Z���t���v��4�����u�3d���
v���H��6����s[/����72`����DNv��Z���]����]6���W��^L6:��f�rG��yW������J����b���x�F��������E�*j�h���tsV��J���c
����;kN����jB�s}�7�����v���R��W>Gr�{����E2l�;{g��|8�A�[�TN��Sk���/}(��an�]�����������r�w��V�����:��(m�HU%��C5�[=[���g)g�}A�)e���������R����(3�K��Yz��b @(
�b���[�R�$���[��KMF�l�����4n��pv]r�2��z�/��qJu��2�n����t=����k6;W��'_��K��/Z�����&���M���w��]����>�C�7��5�p�6j���n���l�o6��:�+o8*Q'O����U�������vV���q��/��)���;rD-[�v�hsh��88Ea���;0���X��������k��{�6�t�H�s������nC�}��v����U�(;i^+�- �����k�r���VN����/�br�s������R:�C��n�����������t�Soe�:���
����Xopo�>�p�9�#}���w�_\��Y�q/����{�9q�E�
|06!*�j��{{wr��'b�U��ue��y)a��S��*�w�U��y���5�vK�d-�����g/��������V# Ay���8��uKx���A�����7d~�W����j��'�������jS�Q7����kN�u����8_!���]������p�[������D���G0��n�gM����3`dO2���l?H������
��m��Q�6�t;g�UD��%s,�|��t9L��`�\7��egM���b����s�k�)�BT����� �Y�b�
wt���9�y����9~�GFnp���uC}Y[��U��KOq:&�8Oq�C-�7�l�uUo)�*�uQ���Y�N8l�����������AV�BM��^r�N�������M��l.�����_;<����Fxd�c@��v;��j|k(����okj�n���������ou�]�����`�lR]���s��,���u�����Cz����5�"N;����^���m�S��P���wkZ3|�y�����!���v�����N����3{>/z�D';-�)�Y��3S�����[��'���Ts�Z�j\{g5��l�(��6�V����[r�U��u��y��:AUe�__t�Y3E�L��
b!�{��"���~�o��d
�on�m����"�[�]SdS^�������E���T�{�vL�1�M�T�y�JC��_T��9f��//3��-T����f��Z4wG#cn����>�*���V�{j����^�T��
�M����Xz8U6)wnl�c�����Btb��Z���������/�0��'n5-��S0G�[�0�����s�n���\;��M����^U�[�����)uw
�,���f>�(u����W�MO8]h�,�w����mc���n��U�j.�w7��{��qee);����z[���@��D:���A��wj9t�{�eok���^���n���)[v6�v+I������{_Ud���Q�����'C"e��&,a�h5��H��Q&�X4���(���RWP�f���.Sc���nh.��GX1;����r��b�z*�u��wr��������]X���2�lhoy@NK��]kk;o`
���9��^7�X�E�^S�tr9j[���o`��^<Z�] �r��N

i����f�����@��N�A�l���.q���B��W]c'j���<M��"J�u���}H_ia��y��iQ��ER��w�$���b�t<]*^V��K(hW�����|+�=�y*�.���\��(.\�m d�]f��E���s�uQ��������+���usUj�-����+,�^>�c����e��)h�[n��80����IE�+�;	�w-kl^��7��}�[n��#|�Vw=o���7�8V�����	����5���|>X���c�����d�X�'g�wlQ5��Pa}�x8;���*���V�#V����s*��N]���������M��)�1����}:� ���NL��]��m�x�����n_5�8]u���R�Wgs������;a���Y��.yI�1������#.�'��N$�o_v�m��n��k��l����{2���I>�.t\�r�k��w.�Qr�������z�S���n��euW���[n������&l32����fe���f_v�7e�[|���s\�s�\��].������'�|�b�B��N����zh��v1�Y4iYU��iv��Yz0g�`h]�
Q�����h�6y���M����Y%[�L�!�t$�/h���z�z_���<�
�5z((2��e�����s]�p�n��U�47�v}����L2��q�23&�aE4�������p\���ta9G�c]�-�"Nc��Z��U8���l��x0K;}�f��`z���v�w<�'i����&�c�P����t+6T:�\5[u���2����"+���Oh����\v�X�enh�}������v������F�U��H���.�Wd�d��+�+l�K�_fY��A���	l7������m��{�:�.I��E��xf��b���.��/##%��^zg�^h:1V����N���U����8����A�������v�����'��|��j�����&����h�{�x�G����������{����v�6�il�6��9����
��������a0L^3C^h���l.��cf������W*����>��Z������V�Gdx,#jaN���Y��W�w�y��`�Y^3T��r�vM)\�{��5�':�����S
%I7d�7l��5IJX��b<��'B�t$��]�nTUv����;��r������[�����a�Jy)R��Ipp�����l�v{��9���+�vwe
�`�[\i�\�b"��9xX����k;j���DS��m���W��c��M�����N������Q��o0u\�v�]���z�-S��v��i9����
V?K��d������V�k�1\#y�����f��A�t��*�����C���U��^���W�9�q��t�ju�au��U�n���2��w]I�n�����������������]�UJWK��C��)F���K����!J~���K+����2�dm]��&^U���%�vtN�=�JK�UJ��N���U��os-��{�7�u�Y�A�jluc�w<7��yo��o%�"^�]�P���QI�����^�5E�7k�'D�Z��V�	J��9[\gp�*���V�2�B����H������/#$m.��T�#�C^n�������w������Yn=�32�A�\o2��
cW����-Gy������3����w(�)��Y�m��cm����5�m�ht�B��8pj�~��	�6�P����E|��j�}���d��G+|4wh�[]y�e����4p~E��t:e( �Cj�,Vk`���c����7:T�)����n�Ve���{�R0H��G��i,��@��|���5����FH�y�������m`h��8�*��N��s%���{B��iw�������X�������f��w�G������gj��������3#������s8�����hr�b���ga;-����7_�co�S��`;T������D\�A������	!�s�a�&p����`
�{�X�+�B+���X����@A��N�3�~����h)����+o2�2���00(Aa�m�b	��R�"���0�v��^�T1R��m�Qk� �D�	���Q>*	�W��j��,K�au]K�����,��L86�;��uI���iK�ZI���Zs��X��/D"4HoU�w,�z]��G�9����d���h��:���*��r7��D����9.ZYT�,���u�v������
X���Ut3"��
������4�L{�I,$��h��n�5m'x��/(cX�{{���*������B���U��seS\u�P��kh�D��J���vO$Y@�BF+�n���<�;����]�|�&��U��R�Ef����Y�%	Z^YL�"��!�����O���Y�5,�[]W�n����(:�:0��Gv@��Y����Y��'y���a������Xy��5�N��^N�����������t$�%��P(X�6��vf�@�T6��7;(��Wu�h��Y�5�
���"F���(
n&�m�L�����C:��t���]c�r����RF��I�53�g����n���Cbs3#�W��-.��R������g����wL��4�Y����e�/t����MB���������/�6�Z_"�"8�ngnGmN��,�w��+#o�#K���]u�U*��U���QN�.k��k�1�5IU�;�����H��)=F��Hoj���U���d�������4S���2�J��CV�k�������_\f�;�,v�-Ne?W��C�hc������,qF��s����1���>� k��\#)�3Ar�6�.z1Qy��E�7��[���5Ov�'/��
����L�5|70,��l���\�\2�l�`�]U�MJ�^�`OI�+Z�A�E��m�����F�P|������������Y����������\���_3[�V���MoX����m��-�)�xl���3��v�q��p�&�f��.������H��5E�r�r�B�3�^,{H�<O��$l�":�U��uu-���TW�8�#���{��Y���,Lyo2�6�a9�=e��UY�&����
��i����!vz��Y���v.vu�[{��4����}h��F-����x�+I���^�O"yC�.0_kB��D�`�C��W�"�J��^�z��!33Ww
���X��eR=�z�e��������\�B.���
�����iv]��g�9�`T�Tt&���l�����ShV�5l�V�b=��^Q2u>�}���fmr�
�t^V���o@���8���,U����-�8� ����j������R�1O�Mo���N��]=:���z�b�M{g�-���&P�����k����cC�U����E����kQww�a���3��Nv��0��y��j��g0s!]lQRf��|Ou�s�2�TW�s�����':^[����i<����b���;$�*\��@��+/����S���{O�v�e��q�i%Z��MY�8t�����oz�m�b����SVq�='6�=�kY��b�'��M�j��zH������n�(�Q���a$����j�_@�f��fV���uZ��������������"�l �vZ������n��C��`��}��*�r��W������g++�h"A8X,<��D|-�B��,\��dR�
�{5���1���Z��������]O�ga��6U�whJ��R(W"�Sk`;KHw��&
�����FL}��&�#�����v<Q<j��46]�7}�+7.���U���M�j����Ub]h��V�x�u�������1��
��Y�i��LJ��F3�����-%�������$W}(l]�v�:�H�.�����km���"P��Az�d5����w�]*��+W|&�+,Q��sv�����v�V,t���+�J��0b�p���&_u`]���0������1�p:���v�X�:� U�0i������:�<"fQ�Pg��Q�$W�����C������t'"+��.�1(A��j4 MZf)&.�LM1���L>��������om Bu�������CHuZU�r�C	�)�D`>`�V�W�RX`}8��,��� �<N���wX5��M*�
���r$�N���zf���El9��&VR[���-x^�[�]n��g�]��/^-�ef;��v�i10��������*��y��MlF�]g.��("wqVB��;���)[�x��
���J�� �_m�Y�M]K:R����7�%L�4�T;����h�#�����
���LUl��Y�|EM�������i�!�;UY�P2w��h���z/k*���J��|0��nfX��E��o<����.��^)���gx����WW��q�Gj��g:37+v�v�j�&�N��n]}��V[�6_`�M��^��.�!
c=B��]�|���\c��J�6��w��Fz�[�crh����/qe��2��f�,���#,�5B����K0������r�\�H��L{��Q�cv���OW"�{+���o�b�5:�Aee`�`vP���XNo�;H^��b������$XX�d^
���<��s�����wy���p�C��v����;�@��
@��u������;��c�a�:�9���>�B:����������]�A����B��@��'������b�3�RG�#��9
	��{PVqp3��@�d1]1�����P��'q��wHj���`�WU,�Ui�wd�T�ev%Xw��:���������wG��u�n�<Z4�U��<��-L��]I�����K;��NZ�5a����Y�v5�6s
�u+�,
��<�{�UY�wC-������������21]�hU�T'P�������h��n��v��W5�,��v��wR�����21�F
�s���m�'��[��qp$`�T���������#�0p��GT�"��u.�i*����JN������+F�N�+#�}�'���s/��vX����A��~^&ab��)Q���)a�5�:�s�:W^"����o��)����7J��
hSW^��reL�8��v�n'u�E�
�5���U��U����YEP���V��`���r�-V������y���R�j@�#�����f��#������P����n��@���v^���p���t���h�r�DN�\m��X7P{��Np�Y8�����p�T�q�� �����5���P�BV�7��U�%��]=H ��}oKI��s�9P���������e^�$��"�'^�
K�D2��
p@^����1�K�, ��S�u=@9��)^�����RQ��>�`��`c�MK;��&7wse�]Hb�j^y�6�+������{k����;��������B�Up_\�x�����84U���a��k�J�����%�;��U�k�.{;ZZq�%OJ��[��]���x!X������ov�:XP<<�|��#4n��[��]��^��*�H�����a�KFa�#�n�To9n`��7��W�$�P:��.�������UF�2���,j2f�B�u7o
�7��gH
���fc�j6�kf��}����Z��^y��Bj:�UM��h�Zh3}���Q�)"X�:�y����-
qcysZx�e�WR�X���R��<�L[�F��*�Nr(�Q
fKU0�wW�G1����w�w���w3E�V�H����kt��b�k������yW�2��������8�t����QbN�sFe�s3w�TW1Vc�\��S�l{�,��F�Ms��k�e��g7W�>����gM�Qvm����k�f]U�]�eJ�V{�`��84�{W����i:n0��C��f�|} �!�����x�k�O.�
^K)3r�	o��R��hh����=$���v�{��higp��)+o;��[I@��KI:I��@�yHx����-�hCA*BIj��D�c��B���j�����f�����k�if��(�;KD�M�,�C�L�D��U����$-�������ggfI&e���^f�v-��r	�CM\�.�HA'���ViH�k�����e���
{f
�����w�#����l�S��p��2�c��$���"�����������������]�z�����w���snn]��2P9��W�o;$]p�yT�������,]���e�T�����:��}�^
�\��
D�Vui�-�
��-����6<.�����[C����3-l
j������;[S-�L�[,u���W�Rp����qh�qi��k*���U����J��7�7$��6���\�s��HP��aO/�m�p��s[��s9P�\wr��{�{Wj�����M���<�������M=�n$�w���/��	l�z�+�AV��m+3�s��=���H8{2�uU��#����v�,�IE������uwv���J��.����N6�����L���b�i#Si]-���s:q�������s)A��9R��{�5x����K�ae������B���v[0�*_s�k�:N�$5���+5��������C�����]��yq��TL�m��FtR]Oi�����8��P�p��6��9����z��f���1u��
�M[�����[������Vc��{���k{�H�5��!�pY���;��QK��mL�����hi� #i0���O;3�R7:�.v����\:����yR�%���������3]������J��0+��4K�U�_s��n�K��%t��X�*R5�t���F�"���	�	g]���Q{�z���&^`���W��S���5)��Xu>�I�6�,���cC#*n`��R��Dhk���g,�'���f�+2�&�Ka��&o">�nA�f�mnh������_��0s���,��Y��4V�gN��x��@!^���c�V�U����6`�.�wS7s��_/��3����.����xf�a��3o����+T�Q4z�39�����sZ��/xQ������u^V���=~�w�,wuv���V^R�w�m�����X��V�>����z����_2��U�2�eVeV��	�X*�&U`L���U�2�eV��	�X%b���1V	�b�(��	�X*�&U`L���U�2�eV��&F	�`���XU`L���U�2�b�	��&A�0�	�`L�@����1V	�&*�VU`L���U�2V��	�`L�XaX���1����eV��	��&�2�``LKeL	����d�1L$b2�%`LKe,	��&)`LX*�&A�2�d*�(��L�1V�`LC`0&U0&Cd�	�`L��2�d*�&U`L���U�2�eV��	�X*�&U`L������*�L��<�����>��	S����|��?$�_��MT�bE"Y�-+�36(�|��2����km���y�l��m������R\��en��J������7���F����k:
���:��i����:���Z�]��=Z�-������y�|j��j��h��o_v���k�gi�����%�y����U���p�u��0�A�|	 �@>�8-{y�X��+qW���yZ]�m>�n�fY;Q�g���U�Z�FV��D�N��}�R�����b0mOh0�����%�{-��]Y,�u.��Z��9p�}i�T.k�������v����iH�vy���.�Lj�����������c�"�!$�<(�%����WQ�!�T��vg4�K�����L�Y�T'�4z�U9c����S8�vg��f����Z�f��I*;o+T����A ����D`�j����W-W7y��[.>�����G+;�T���Sy���rSk�v�Mm���\�F�����J����=�[��_A ��z6vD����[n�]�����v�4��&��s�uz;ow�m�����������+v�}���������������F"���n���^�==}u�|��>�����>��hDF0g��^�����rE��R"1�����A��$�x�������o�r�����V1N���jph�!L�@��	���.&d��1�f�>�k�|V����Hp		 �,��W��r"��F)T"" �8o�A���]AD�� ��C���� ��n"""""=[9|�rDDc���U�����F�@�_i<��B|���z���|DDG�F��  �����T��n�����w�7���:������]���U��<��PCP��������=���q��USc���Z\CH��q�Z�������v��������	~/<�_j��|P������D�""""1:�Gjr
��B]! �@AP  q{�8 ��"#'��� 
�|DO@B�W��H	 �: '�m����� �A����������  �������^�������[^���-�0z���'�!�v�����
1��+Hi�UIJK�����\�ER��&���@����\�AI���`��4@�����/i$��1"vU]*O���9���{A$�J�P�I�����^�z���;����DE�"�m���C4�����Db ��""y��8m��DDb1AF""� ��Z������O��{���1k�����o������5o^�����1���>>��^ �����{����cV�����(�a9@XJ����W.������5$�A/G��j���d� �}�z�iw�D�q+��7��C6�%Q�w��.�������]EXn��@��j�����UI$(e,�[�ij��x�e%vH����?
�>"<��F"1�Dnb"m�JDb1��0@8-����Db#m���p�"'��F ��DI�i=D`�6�DF"<�E��*��!��"���A��@A	���^���������o_b@Db0���Fz���D�@�H �=�6�������� "!�|HZ�G��o
�7�������b��-U�aYU|�^m�B�"�
y�R��{CV!p!J������L��%��a�j�e�|�����W���
6L�����_b � /@W�=�Z�D<�����!$�$�������"1����m�#p�F���Utb'�DDF5o���"z�M��
a����	�{;��_�(�{�b"���� ���D�/�+{�1����@>"#� ��$I��u.�H[���;��.����7�L�S���+�K[��`�]W�3
�Y�U��aE-�8���c�����3s���	�" zI$�I$}��
�w�C�*  �z�6z;n���DIy� �����@@O��B���m}��DA��j�k�nl=p����H�"#hG�/u�D@F��7U�o@DDDG�����!^�{�� �-�W[^��>r� �O���ck
�.�c:Q!��WI*��g#����<�)��v����t��B����Wb�����%���n�_~F"""�~p� m{�����DDD^�U�����`�G\0�XDD�v�\/9I���j���m�qB""*�� ��O��N6�P�@��$���A���$F#���n�7��x����:�7\�ko��:��v�.��G)�`k	���2s4^�{��=d�x�t������BA]��V��"����/��y�^kn��M�DDD}��@������}�v�<��_Y5�Q$��I'JQ$���I�^������b�l�_b��*��I0�W���)h7���f,�S�0��`zr�n�M@���_/�����������>���}}���������?�G��sG��7�?������N��1�|�������Y���	�r"�eQi�����@}D:��:Q�'��76#J�a���m���8��G3��
�`�����vX�cEk��gE�#ks�zgN9�q��2���JW.z�m������O��/^�����a#}K��0�9=��6Z0?aQ�mz�<�G9�������������R�'vW]j�}����v��Z/9�i�g4���v����o�)`��}��6����u.����d��T��;�����=��\Kn��c�Z������h��waz8�w���Z
����i[d<��o�d��Fn	~P���i���Z�p��Wy[��$}�W�9Bp+���*z^j�8}'+����xFX]I��!�
`��0R���I#�6����q=�v�p��U���V
��	���]����S.�����v��Z�z}�`�M�����Z�m
�(�w�L�t��]g��2����Q5�9������mwm��n�o����a�u����W�m�M��� �|�[��/��f�5�]���\H��w��:�Y�����B����(�~� �W�]��]:�D}�`��*�����o�N�<�`�2-B�b^b�j��l%�
�_�x[Qvm��f��7���`p�����ru��U
Wt�&���!���U%��0"��� i���x^��'ep�m=�06�rv.�U�������
���3;/�v�3y�).�]�>�����4k��%En����[�9�F��Y���D}{�g.Rw����,{Sb�Zdin.�����]Z�R��K�V�n��U0OK���g&��X���r��f�G���h#��������!-�B��e��r]T�
����=�m^��a�;q��s��CV-�\1J����uS<����],IZ�7(�lg
��1��f�k��VsM��)f�z�0��n����2�['��I����x�!��/;w�����y�F���G���7J�Z�3�
�tV3Z�z'-�����U]��8����) Q�1X��8��tW�� ��U����K�iY���=�4{�"���t�/s�uP��\�[�)������>��
��WoK�
N�Twu]�
>�n���j���@�����E�V
���n�A�|�CT#�K�+#���V�;pj�7]*�%��F �J�g��v�,w1%
e������^u�d�����}�"E��|�����Z��A��"�6�g�����{���@m���R���^�d��#�r�NY���yv/5}�,f����B�;�^q"e�	�������k����T���*��G4
�g��d�{F���v3�g���\(�sU��x-�����$B1��f��]oY7�uZ���)=q�R.U��h��eLD#��M�B��x��O7��8)�i�����I.�>�7b��v�y}8=�������"5`Q.8��e�2�\&����������<����d���zQ�V79�8�}��Ss����Jn����7���;/s]gt����;��i����K�UUH�c�(��yb��+����������~��ur&'U��roz�^[���	zO�Dy\M�����X
��F,s�m	J�5mn��Z{}{�WOA��6��n�+��)�B2Oe�U�k��i��/l�#�;\3.�����t��t2��G�����H�r�Qq����7j����>�3���U$��8H��H��b|��t�=���d�yfH��N��v�V���s�MX�K�������R-���������4m�y��Q����-����_X�G�/;�v)u�a�!����^.Q����}D�����V�bb�F��l��������WB�v�[����t�r��
����O(��C�����`k�%�s0������	�tWr;'��YU�{M�[��dw���PG�����y�������/+������������n[��p��[�vc���8���xb�}g�������h��B�=����$�����@.Vl�.���j��uuC������om�:�<��C���Y��7E��pmm��^K��	�;CZ������4���������v�e���W[�'g��W��OT����v^�:�V���9}�7�ox�]u�_b�o,������3w3]v�V
�o_S��U���\����ySct�Kp��L�pS�������[w{��Aa��ps]����6�<Z����`\W���!Ggz���[�����{�U[,_��c���mC�t���l�h�V������Hs��"���a]�L$q�atyb����D�.����y�7s
p�F�� 
J�|4���f�e��!�z
��k6����Ki�{�37U��>��5BX�cx��Z�+u����������g��40ms1����s����iv>�}'�H��!��PA}�C�.i8��)�t���x`�[����[�u�WO8Oe&�]���h���,!��TS���:1���P��0(�i��u�X�P��5��wm5@f0j���q�o_��b*K�^�"q��=}+�����zw�Z� �����Bv������+��R��	�R��t;�^R��U^1��t��bv��:w
���t������������:L�[w��X<fD�nP��5�ulZ]�F��/���c-�>�er�5!A���	�Am�s�Hp���1�#�WMD��vC}@s�2���s�oL&_�T�k`�8V�������zso��H�����<���] v�j���.�L+��{�[��OW�^���p=�L�"*�O]-)����j+2�Y��o��j�4���-��Z���]��3d�9����R5����w;��u�\g������/��E�1�5��79-!Z1gxo����x���9D�:v	�6�aP�����,N`&:`�!��C���X���+���A��B�%rN���h�L���f�O�i���h����fB���f*2�2c�W�f��e[�U�������j����:�������8���b�5�s�.�v�$���7�kzX��{;���s��<�����,��_�`�/U������F��jI��;!�3�~dM����7�
mK����E��Q�����x�vn�n��3)z�q��iuz�m�x�M���w�U�^�A�Y�(�M"Xi�V�����B��R�$������n�\�J�U�|	�VL-��f�N����S(Qx���]����},��&��V����'9v��S�[X6���f;���-����X����@�z�Inv���j��4qY��������W|<}���o����s����[P_5u��U����i��5�k�=2���cx�46��>�4����������,v�3��3SCy��P���YG0��N������{|�up 3I�|��l���
-����/s\w/���Y|#�O/;V�z�����o(�]J����j:�O�e�E���[���H]�[;Un��G�9���Vw�Ec����Sq��5�Nw���Yh_`����(����BB��bj)S�����$4Q7��2!gJA���]���U�����b���yJ~�/�3��x�v��@��19���e.��n�#���1r��J�E�����iX��hw]�5�H&��Xj���,��8],��k*�)�R��Nb�s!���]�4����dJ$c��IYnY��/��p�����6)�0�x1n4����^��w����]�!�j���]u������9�8�n^��=��3
[rrprx���3xw�2��M����k'��3y���w�Mr�T��XF9[����t�A{����X��t�k�x�Do:�S#��<�P� J�@'�Jk��96�������Zpv�c;b��j��=���jK�C��k]&��Ct�� �����3��t��R�����V�P���	�R�m�Q?��3X��%Uz�yK�`�aK|�Vb����;9��vv�V�"���	���9�{L]LaV�"���s(<R�+�L;�{	��Fu;We�6Q���ydC��
��:��]������\���,�5�r-WJ��L�u���YR��i�����i��w����X��$�]�s�6�����S����F�����AUw�w|)(���������.��a��9U��,�7[���r�;:��c�6�W<3�y�L��\����'�V�q����@��+qz!r��oi�2]eY�:����������\�a�TB�����Q��]Q�n�0�U���e����7�3`�������mOR%����:��W���S����p#2t�@z�$+`��F�x���T�����W^�h���������Vq��wz!�]�[�L���oQ�������;t_%b���Q�������r�f��RR�
�L��	��i�����5:��(s^P3����VD�k��=J���sc��sB��������>�`�[E���u��Fs;�[��h`e��|���I�2�]0�r����	�U���G��]�3�i{wy��\�Y�|eep�Mvk�����gs"efu�����l/���3�����x��Ege����R�z�/o�M�����^�H��/�:���V	�+��/hH|,�Lw�g�x�����-��n�P��0���vsA�c*������ef���7��@����*�/@um���\����~�(�o
;D�u7#����n�:���8���7�W����6����Eko0>�k�
��^SN�x0�S���}TOf�NV�yfCZ�f���rPe���.H���_X�����ZXQ��'��A�02y[��O:�����4kU�;�
���VP�+phbtw�3S�i,�����o�ssr����`��-�m�����*�#��Y�N�t�%k�^��F�
��^P��3z�����]��������m�Y�q#�#
�����l[��Nxmx{A	���������*��8�w��&����ucs���bB���������H�)����#4u,��gR�SIuDp���4[W�,��n��]������e:��7+��{���r�Bm�G]�ev���.����U����� �&hOi��z��Y,�'���hnv&f�b��Nf�B����&P��3]Q�W���;�L�j�K���~o8k�{3�h{Ki�J��q �G{H�*�=�/nIK����v�r�>���"��f[\��g���
�e!���u�y�,{Z����{�P�9��0���Ct����O!�
at��,�67i��B�\�8����g��YH�f���5�)�������	X��~�B��>����5�i����G����&PWcGm�s�oWL��@���veoS�2X��,��[�n���
#
5Hm�g84C�zm�����4���H����*�`�s�3|�2���Tj�����
GY�fl8xcP�:���Z5���=B�����OS�2v�=�6�E����R�mK�0���zv���S�N���Vm�W����e_Ov�9S�v�e�~�>D)]-�n��s�b��#�K����:�%�p-�[�e�`NN.�+4l��N�k{9\qx����
v�=��e�����F1$�ud� �{;��eP>FAe�B�[i�z�;�a��Vf��f�bV����L�����D������a���b�(�^������}2���TM�5�������P�f������^��7U�.���3kNu������c����q /f"D�+�n�4�5�]4�_|��H]*>m��N��w�S&�3���U�7.zn������7(+�Pb����9�<jb��sj��L�N��������*n�u�*&#������������-P������P*�X�N�S�u�oue�����{�gd����v%����T����U0��vfQ�;���N��\�U"�-�r������z�Bm����!������QR�,��'�Y�|�P��"��ml�Gfo;��H��z9
��{r�,��V+�l�������������_]!gs���������T.`����@��jwmY��(��3/V[,�U!���z�'�8c��J�O����������ox^��J���ypz\����p��\��Ew�^.��wV{�C^U5�U��r���Q�9�.�^��U�H��PXw=k����.���pJ]���s�Un���s/��%4��AF�{.*����i�w:W�,�*�a�S�\!9��a��������.���34�B���q����,S�2h�}��.����^`�=�h���H.t�v�Y��Q�[P`7k*�����yfh�NH�$�Ae$��O��srm>C`1J��3/nZZo�f&|�y�����C}����E.j���$��������u�����zQ���S��FJ��5����#���n�3����0!t�ouQ'�c��D�{,L!v��R���3v��� P8����/))C9�v��U����]�R�j��u���y�ZT�`vL\�9~�����0�Mo^i���v%Xi�j^o3rh�Y�t���|
y�����9T����9+�����:�gk�Oz����X}yz(�r�vn����uC)\�W��e�P@��GEa;p�P���u���L���k�&g^R��#2��,q(��|r��A��e�Ua�:Mw�<����la`�k[�p�+)�����o<Gp�u>���<����n�^���%���gY4���yUs$�r�&��^eK;[�|@3�4�0Y���,1�m���7�Rn�,��rT���n!�3U�P��G��_�����o�A��P�n�je�=+�B`�qUr�[��q���P<�*�R�.��-V���3������z&�M"������Bmc��\)��k�R
��v��-�������X�s��X8eW���eL�z�v����pv`��)V/��`�����H_�c\4����V���Y[���/
[c������;kM���=[����-x�9��'<w������j�V����"<��.����VrT�
^��9����QW�o��Q�Z��60�E�K�/��{/DZ�o
t�k�������gh37n��������~��j���2����������+i�c|�^��$-���y������nr�Y��Z���>�Jy��P����Pcfn�����d��i)xV�jJ$��T%W�75��U����U�r��G�"�������.]�x�:jPn�u����'���7�7��K���Pk��!<�Vf�<��c�U�����z��YH�Ql�Y�su�R���k������p���A�N�}G���7}���d*o���3�Z����S0
�h�Z�nm���=�Y�!N��|o;�sx,�a� ��j�l,����d��0R�^}�z�����:�M�2e�eS#G�g2�ko2���B�\>5�� ��Cv�t�}����/w�I{y����^�y��V�fa#��������<���^���-2F �M`�r5��T
3>Y��!{VL��|�.��I���f�*�&	��]M��8=����j��yR���pW-��u��7WKfJ^�a�2io�����
s
5$��b���]���k�xE���s+�����H���A��:Gq�+�pL7Q�������Ge	�a����
�d������*LL�z'. h���f;.<wL��m0	m@Cck���m`3NU���)]#��Ud�TFxW���9���
�A^�7���RFWZ���Vgt�#�l�Y�p`���=~������������{��B�k�:��R��o3
����m*6�h-�����J�S���.���^��8D{���Z����nU]fIR��h�$)E�9+w��9vOB6����c16���o��������N�����0J��of;�*��>�eLPX�J��J(4�$���
��-76t�T2g]���}�Q���7���b����]�7�e������"V�f�1^���n_q��t��w1V9p���6�����/a����:=�;	�Emy^B4�+�T��6�h�xt�-0��Pr��ft��.*�������&��e��Y"}/r�S�G�! �����;�{�0y+��.����c!����+]]���s3 U����K�^;������k9�, <����z��]�[�W_	nb�`�h����wT�Q'w��|�q��Z���v�p4lny���0��������z6,�z}	R��,����.5� �
Z������D�b�E��r0��b��m���Wm�,gq=�W��v�*��_fA��������Q��Ya�N�	�����A6��U�c�6�C�"��q��4���������a�Z��c�[��N����o]m���T�����,�@�FC�����b��B����n���9�+;d+����2��8�zv�F��5m�q��W���g����rr��c�H�n��j8��C���[����+��eEnR�����>������p�����dHU������2B��k���M��� �<|I*�"Fi��;���=�r�X��a\�N�
��F�^���v���o���.�u���`�v���/���&4�"�v_�����d�{6��]WS��6Kr��
VM��f��B��'��x�'um�rb����D;fG�)��-���s� 4������d�H>�@w�w���r���y�n�N�Z�t�]���y� ���z�7y0l�x4�8u�WF��&����4���c}�"C�k����v�#S��6L�p�\2��F���Y��50�`yiJ��M�F.JL�����k��U�C7o1n���60_ny�+&p;������g%�>M�����^�/sr�h=�t���
��[xd���ye�o��wz���7C
�oO�!�[y��}�WR�[�����Y�4go������}�f�*J����o�`��1�ku�g`�1�:�����r�+��
�r��P~� �|xR��
���������~U.��_��kk����X� �;,��@�<���L��o�����Y9c>��g��:�kY�������d�O���kZ�������J�R�M���;}[�L�;�N��Og[��,ld�m������wL���m3b��
9SB�F��l
��U�����=(�H��(���o9q Ai�y@�U�e�w#XK�4g�NhB���������B��n�	�vN9c�s�r���>�s����m��.�y�j����=O+V��,C��z���������+*�P{U�\V�&b��U9�y�-�]�S5�oeu��v��I7A-���Cqea/5�:�>�eg�+Q]�����q�
��\�+��y�oA��"B�����f%��Bf����t��9]�-D�������~n�2�����
f��8����*�Wx��Xw(�_R����O���t ���1����wr1ge�6.y��A�P��W
�P��Q�ZM�\��>�Y��.=��WB����w�ne)y�������x��Sb��C)pL�6�s������Q�gn��j��>�E������#�,��w������7��w�1�7���lL�%�Ed��������p�l���(�`�s�
��%�Eo=�r�
x���O%��r�:}Ng���6 v�@oP�n8M�8a*����Q>�T]�.�S������;Ld1�*k�n��=C�������?��~xh�����3u�U�������������������������������y�?�`�
A���=�f�!��w���mtn�k5�%)=����#���$�_��^X��>��3eU�Nzq��k���m��>�����ko,����yz������}���t'���������*����83w,Y��s
3�(q�;}O�"�,���`P��.iT7���EhL�����S`f
W�y�x,{U:�jv�����j���t����]p[�a���k�N-��4Jb�ej�����������N~�9d7b�>�B����2�u�B��H<���yeb����p]��P�k��i8�o��Lte���WQ
�Tn����{�Oot(4��[,�z���p������2`.���{_YF�����L����9������U*���T(WNW����TrR���	9�d����]r�y�@��x�����+����(��;����vdiw��
V^
Y]s^�be%��c�N��*�#��+,��T�;y�����fP�:���K�C�g)���GvU<#v�9�:�j���kr�wuv�Bu�������z�K�u�(��~��������
�.���<�(eLTKXz&]FyV"}�l����{�{�j�f�w���tA�i�+,%���7����:���1�9��.��i���6n=���n'�6��G�j�wv8l���z�\TV-L�J����;jm�`��J�}�N�o�����]���������1�tf���1|0P��}���w&3�:�'�'\�������k�����ckQ�!������6gZ�_h�z�v�
�R���xx3*�o,��[�U{EV��;�2���U<f���t�B����UK\�[�vJw.��e.��,���C�����:z�=��v��K{�:�;ll�!�N�v�KHq�UIIb��)�2ec�UL��N]���!Y ��,0q#���<��	��m��	�}K��v�wT����p�[F%�����cp�^e�Z�v���
gz�kit���[���{��������E�iG[�S	4��w$�o
e��J�/�����U��R3Y�R���RO�1r�;��s�|�6��kqq���E��2�����e51<�3�p�PvG.�*��^�L��&e�&d��6���wgfn|�����7���nk���:���v��������j�kk���
X�V��E�6���~�R���F�+Y��	����0��LLU���Va��v���<W�*�0����*z�f����fgb���_����Z��>��=j�0�����a���O3�g���
ph���4�^yL1��]?����<����],9�O�y
��~����������������|b���� ��Y��=��j��s���gE4���S��������Q�x�z�����Et�z���	�3�_rX�>��Kd�s>�����J���/�}��11�{������w��g���{����)-��
P1�������1��������0s�������{{E�v���U��u�V�L��>��=�*�XT��d�}�p��m�~�����Tf�
�H3�H�s�:�$�?9�/�E�����
�k�X��`�3�M`�W��}9������?n��]���V7/vm�<�����t���ea�(q]�n�G�b`kjX��m�g>���/����z�by">����6����QAm�����~��T�������>]J���������L!����>��{�;�a|	g�La@���=�Q�l��Q�����Q�2�������EW��?f8}�wh���������d�@*���}�+�u�z��.������x;���c7���<�����������WT���r^2.c:X1�!�=$�s�5�Kt����\]�����4����03����;ht���?�X�pZ{\M�	�V���uq�>��P�uW~�k��d���=�}����������
ZI��y�s�O�=�%��`!.��y�S��$is\~yXEY�4.*������]���������r��M���\7�u��N���
o�
�����Y1������Dx���^`���7s�G}p�C�s$����}����[
�4^�����W�)����;�s�K��������_^��:��,�
4�����������C�hV�_/��~R���4|i���3�BS��E���a�:�G8,�A4�_�S�%����_U����+_����,Wc!�����(�����h"+������-��c��I$���~:�a~��~�^�����{.�f4���j�M�����k�_�j�1���I������L���E_+87%m7Hi��Y��u��6�<j��hP�;��l5O0�le�Sj��W��,�S[d�l4�����
����3��H���$��GfI&d�6����t��jt�*��y�yUxUxUzUyUz�v���*������*�������\UqU��*������*���U�W\UmU�W\UqU�V�\UqU�W[�qU�W\UmU�W\UqU�WJ�*����U\UqU�W\UqU����*����*������*���U����*������*��z{����� ��QDd1EQE��QEFC�*\��s33$�T�u%��!��*T�f��I$����<��I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�H�m�$�I$�I$�I$�I$�I$�I$�I$�H$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$A!2*T�d�M�n]��I$�J��$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I'�$�I:I$�I$�I$�N�I$�$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�v7$�2#�J��Iq���R\�7s.I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�lrL�s-I$�7c�I�.#$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�A$�I$���I%��&��$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�$�N�I$�I$�I$���I:I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�9%Iw.M�s&I${$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$� �$�)$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$���I:I$�I$�I$�N�I$�$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I66�{�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$����$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�{�����*������*�UqU��8p��������Rd������"JI*���)$���J��I��%$�URD��UUI%UT�%$�URD��UUI%US0��I]�UU$II%UT�UUIRIUU$II%UT�UUU�JH��J��"JI*�����H��J��"JI*�����H�I$����H��J��$���$����H��J��$�����JH������$����I*���)$���$����I*��1"JI*���)$���J��"JI*���)$���J������i+�*���)$���J��"JI*���)$���J������"JI*���)$���J��$�I$�I8��C���6A�Bc�1��><x���������p��w8p���[8m*��U����D�8��Mi?���8���P�������Z�R)$�)���JR��]:t�9����,�|vN�|i:������,��i.��VZ�/+;n�%��h:���5^Y����x��m�l�����M^;X]�F�������
�W�����x�m[a'�4�h�!B<!!�)�c�1�c<x���)M��m����6����)G�]��n���<j'����hF�/�8����Lv�H����H�=���;����w�U'{���Q��u���s\&%��NLKc��em6�ZL��[�C���l���H�2��hqKS��]1�c�;cc�)�c�1�c<x��I���j�:t��JS�����Jx��Z�,�K4�I$�IL�K�������{��������,��j���*��(���ri���;�(e�d�ne�fV�������5�^n�W�zn��a���M��IO9
��4�$B�!	���1Lc���c���$�I	$�N��($�H �M ��T��4��k�S�KR����Dx{������C\�n��������� ��b�J����-J�����2��at#���p�,5V�7X9�1���Y�M0�D!B�DF1�c�-�c�<[�)OK��n��N�:t��v��U)MR�)���n�<\�������\�#���D~���>{�L�t��
6��\��f��K��GF�c��#%`w�sl(�"��2���r��f�C2�e]f���F�=iF�i��!B�D�1�c�-�c�<z�JR�N�76��X���%)NU)N*��A�I$��wK���n�:�}����b�r��e�1�M���C���L;G`�YFfV�
����L�L�(m:(c�n��v������DP�B�4�D!B�DB��!!B�i9$�I$�I$�KI$�A@A��I$Q$�1$�H��d������6�S��ce���Sa�{�FEeeU�^�5��[��;Ty�7��kdCC���a]�5���#sY��yT�"�����Pb��q&�B�#��"�!E�B���t�I2I$��I~(���G%��(�d�Ffh �\�H'�{����8i���v����?��-F�e(��V��dm��k%�3[�p��k���Z/������'n�G���0�K��tx�4�D!B�DB��!!BO��t�I"I$WET��H�IA��II������f'69��1[M�B��D�Ajl�r��S H�Cp\9�/L���F�#V����$�!J����0�C/n��x�p*�0�\o��%���,��!B�xB B�P�!�B�MI$��EFI$A$�HA�Ao�f���b�%;���(��m����+����G������H,$M�uR���%^e�5wwU0�����V�LY?��^�&`�/S{��8����s��eT(VV���s�j��yX��;�Nl�����Q=�y�.��x�o��%��D��m�r^�r(�	�[YO�����|wf�����eeZ7��-�t�UX����.$�q���?D����(V�2el��:�z5��$���e�<\����7~�^�P7a�{U�w*�����m���x�Ffn�X�k.iw�e������xA�G��Q���*����d��U&���`:����h!��w��COm3
y�2��8���C*�9�P��]��`5Z���M��)�CdT&�u�{�N&�Y���$�j���37�p�q;����S��N��Z2���.����V�8�� �A�\3���9m��X�~���*W���=��q*�
�����3n��X��J���W[�,��Y���i�Pb���K(�����3WO/�c]C^�i�0��6���b�]����4����@s:�����e\��bb�!��z�p��	e�E�
;��s�7w2
�bq4���s�)������V����%�L���DCO;n����V�zt�2��^T<�|�J�WQ�%����\�9��V]���e,�7�5�r�r^G5�n\�x�l����������t���f85��\�nP��B3BaH���1�;��331������7�M��n^���	3 �����6�3��WUG�z�y������qvUnN:����]�y��]�m����[�y�vl�m:���������b[�$4�=��)�w�T�
��b1Z���Jj�YM�p<������uT�r����ih�+���}�o�H��|=�����m;�e�����		hV-,�k��lU�[���Bb�����8�{R�9U�w�����C�N���pIt��(
�=�6�U0x�c��m�Y���*�3]��=����\�j�T�{�j�%�W{\�2_��w��q�gf[�1oo-sp��������4��7�5v��z}^��33&fja�$w�r�fx�q�����+��!���}UW���-�~k��b�E�*h��i)2�t���kF"���E�Z���'7?<��V�\0+�V�m�����7y���3)C������M���������i{����nrF���>�S��S�"�e����w�]�����w]����_�����;&u����������.��6:��
����ea'G}����X�]�n�7Qw������x������q�o-�rg�7��?>F�����9�8p���j��%w���)����n��;��Gi��D5�Vz��6/5�>3���5
��_�]���=��d���yed9+���wp����&�������g�IJ����}.��UW��`u;���zW�[�PL�y)g���5a�,?����w���r#�L����5rXV�L�����u�V�����7������]������w0���m�r�0]����P�`�zYu�����Su��*5�'����lU���m�/�����(����U}5��{�U51��#�CS�m�[��U$�C�9o�
�w�B�=���fV���������mV���_�
�����s�uV��\��[��6��Z�f�����G�k1_����� ?����;*���C���E=���~�&�����2��z��c4_����������+�}1��G���8�@ffQ6n���&SH��6��uB�~B�VX=w�P.Z��e�AP|��3]���_,�}���c,C�A���'89�,�XG;��u��Zg�������9���o��c�i:�{����T��6�����7K!�������+���7�T��
�'^�r}��[��9A<�8Y3��62�����3��!�E�uQ>������/VLL������U������r�|�rxe���vk>����DO+�{���Z��|�yYS��E�Vv���	�o�'�h	On��W��u����A�;y��XZ�����}��_�����e"�����xr���Uo��j���K��f;V�U8��Wg�f��v�����|;�y�f���=w��7��C�,���fb�q�0SX�{L~��������<���"I�$�w���_����?�r�8�%g
�\��y.�_k$)������w���d2��Tr���������V��C~3/����V�w�w"�O,����C������������_,n�\}.����P�*"a���M���y��c�,��,,aexcO5���U�U������eW�W�W�32�!G���33�������fR�"��*��*��5�{���*��*��*��*����xy���gY���8�PUPUPUPU���PUPUPUPUPU��PUPUPUPUPs��
�f`UPUPUPUPkV�z�PUPUPUPUPffs��PUPUPUPUP
��PUPT�fRJfe	$�I$�I.`0�x���p�!G�"!EB1�c�g�>@���I"�m�WT�)���ZF���#��kZ�$�I��6��:4\Z��5�z%�Z�����A��n��Ni'����8��.&����V����u�}}�I�I"|���������t��?�dmq�q��h��M};��>�W���#Z�	o7Qg��N<8��v����]�bs=�gg��&�Z�]r��c�~�V����w�`������y�~l�{��(�sH��6��������~��?X�>q�_���c����m�c�1�b��1���Dt�F�����A��n����kR�h*&�R��F����l�N8�G�%�CKZ�RM)JH1L�QE
N�"���f~=��0��30�o�?>za�?.d�������k��U�q�2����vi]�?O��(���������(��3'P��+�k�K5���0�I".��2� b���@-\@;����eU�|:h�U����O��r��I����#	�8(�1q��B�5WH�
!-��PnkV�!��X�0�|?I8�!B��BB�"�!KN1���8�[����"�5$[k[dT�6�6���B�R�t�J���t�kl�%6�6+D�d�JShV�F�[���*B�R�
��j���I"q|u�[�����|��+�$J?�H�6��!���P��%�1*�X�Rt�=>�I�D8����5�U���r��Hx���W%�x����~E,H!@�> Q��_���(me{9��HYR�!��L��E�H���^���X�{&V�O�
xrv���XDY��|?�O��Bc�lclc�1�c�1�������y�d�G��v�����p��l�-��I�Jt�J�M	M�M���&������u�Jt�M�t%���~i��m&�]!��q�|i/F������������z�j�s� ��D�����n6�gs��H�y��]�a�" �J'������c������!��2�^���^&o�$7B^W�hu 2���	��ui�8��mQ������5b���sOr�$m����M����Y8��s��EH�xFi���|c�1���1Lc���c3��cd{�%�Z��n%�Z�"���)�U��� ��>�[����4�6�6�H\�����A�$��m��Z�i)�Jt�6���H�m��8I/i�H��e�h�&fa�K��?b	��v?���
����tC e���DZ�S.�xe$�W��m�W����)�R&�B����3+�n��un[�9�B�]��F����.�
��v��[�ik���NdA/dL����<��Yd�1��<Y�<q�I��B�DB�1�c�1������B�R�cO���~��;v���zjH�����I����:Z�Ei�A�]����z�o��N8��>4Q�y`,�K hq�%�r$������lw�\Kmkm5���Lk�������o��6k�?}�-�*f&d��D��u�j�Of�id��e�*�b��/6�/�l}s'�P����/p�8�/h5�A�2�����
!�3�����f���LT8��������7�Q�����8�!B��BB�"�!KN�>L8�������Im�4^����u$m�l���5�kH�N������g���N����N6}�y��JqM�tx�N)N64y�t����kF���p[k[d��|H��l��;A����<��:�������m�2-@��&�����L��X�n1�g��
f�'�"�,�=D������[Yb�*K�&i
���RZ��t�������
�����e_}����O�-jx��������1�����1�c�-�c�=c=�|�Z�[I54y�'8�n4u���m���
����;S�6�������<�#�Kv��N�qN8��y���4�h�N6����SMi�5�y\I�:q���g8����
�m�m�W���a�Y���������������s"���y^��o_��+�/���,�M���}��Lt��2���?�>A���������P��^=}�*���c����+��dm,���C�g����������?�[��c�����1�c����c�1�[�3<z�6?�'�"�Z�"��R�B��JmJl���-%�������n����)�)�=��t������$q��6E$SjSdy�x��}�����H�������o���N����S���)��������+��=�f�[_�:�^�>It.����������v����V��s^�5���G���:��~���W{�C�-Kq���O��c�;cc�)�c�1�fx��l��SjSdT�6�6E�����6�6��$�-���*J��6�6E!M�M��Hi�)�.���km��Y��4�M�����?}��������:�&X���������5�j	
�(��TN$D�J����+<�J%����fpl��|@��{������zQ!�]Kq�G0<�j�u���[�y�#!���$�������,����S3k..6;wC||��4���N�/��N����g��Y
��������f�M��W�x�-_S�����_)N�pY:�p��(��Y�wD�fpdg�U<�b������5�9�����N���wek&�f��tN�����D�pGxD��e�I8k�J�y�Z[����]�I�������K�o�7xeThT\�����![��&��o�C}��Uu�nP��_
�wT����u��//��A����tfpU ���z��3vu:fw
7e�3p�
r�.,�����7������� �x���4�f�Q+ Ly<��������,�R���@k�8�����P�����n1hi�������
u��[��"��YU�����iEo�5Wc2��b���dc8c��7x{	Zs�T;�..���n�����eOz�r��.b������<�[��6���Q��A����Qo$���6L��HN���!t(�v,�'��z�}��|��v8���>��poYQ���Z�v����)���mS��koz���n�����1�gCyt*Y��;r�=��w6�&
����7���'25,Yd>�*������"�����^������$���0�=nUU>���:�����mB�tgV���Y��U�i��	 �4)�[ ��
�����z�������{�;�c��\����3|7�9��j1h����Q�����aS�n<��:��2�sW�`�duG�V�F�$��C&"���.�������u��E*���XBKP:\�m:�����8����0�N�%���/[�U�h���kN�����U	�����J���ov�oS�T�"��{��#���1�������������o��vwj���N��-�������^����f�a����`�Os���&fgff^���RJ�;��I�{�RhU$��O��wp�����\�#2,�vP����a��)NL�*.2�\b`N5� ���`pGp@��gc��)������4T�R�N�r�����������O��A�%�g����i��L��U����f�
x����[����N������J2�9x����TGU�k����I�{���x]��hO�I����}��|���`c�������3�����*�?n��1}�E��8E�]��4tK�mWP�W+u�g��.��wu�����e�Q���>���if��7� �U������Z.|��n�~�a��Y98�OO;��oG���u�*�?���3 ��oN������U��5����Y�-�Y�v�;�wBN{/��\'&����*�G�������vgV����p�EH�9���D�A�[���z�T��`/d��u�p}��i9���>��c�8�����Pu�n��cX�4�^|w�u<���W ����s�3�
���7��}��z���MHZ.���o�g�`�^����������u�Q�1~��L\����$���9�"O��tE�tY��������W����b�MDO=�\���^�I_q�4�����_������P�
K��o|���h�i����^Y��(m-��P_X�}��nf�o�^�*=�
��)����b���Ts�������������'�w�����i����|oj����>I��]?>G�z�����I����^��Y�����v�^���wa����4a�OU��^���z+o�}Y��,���~�	|�I8\��n���=�������|29����y�:g�3���D���ayAS������/��Te^>c�"V(:dq�G�����=y�'��
H���e��	��Y��x��GU#��J.��h�:wq�z���z_M����&,O<{��D�
����B��O��Y����{l�#�]�3���]���+��x=w�w����Rs2��g���e���8�Y>�"��,������siT��'����'���fd��1U!��L��OYA�+�#5��y��uB��T������QggO.��Y����eq��/>b��tW�4���S8E���|�}����Z��n����4o���bxw������������w��^5�[&+�US)��G1�6>�Y�-}P���TS��R��7���z��@�Gy��o�D�u/�#��|G�������������m�xUz�oU�W5^5\�xUxUx�p���.\�zv��m���}�^y���ATATA�[���ATATATATAT�u��W8�PUPUPUPU���PUPUPUPUPU��PUPUy���<�<���*����n�33�*��*��*��*�Z���*��*��*��*��*�30+�r��*��*��*��*�of���*��*���������0�88�B�D1�c�1�c�g�X��Ri�h;�E�Z�i��."�Z�"������%6�6��5��$W����rB�-m�}�)�F�EAM�M�D�����O������������������!��s{w�_�*�i������B2��/�*e,���m���?J����#�����P���zw��Q9=6����'q���c�;x��a���c�lclcB�h��!-8B �$��9�Jm;i'��8��"�E�Z�6�{��'"8��l��x�8�m'��[n4U�Sn�[kh�M���h\%��m��4�u��"�t��z&��t��G���~gp��y�{�{��������k���6U�����w'�
J�l��.�5�A��5����S��%
��E�v|.����A���WG�\6���
���������O���x�~��!B�B�!<x��1�c3��cd>�t���4��74�i���Wkv���N-���h�����EDSjSc4N���N8�!M�M���n��������Ot��]�	?�'���?��?�}���Ed�hk����v������6���U��� ��Q���CD�;+D���y.	a�=���{�2���f�2M%kS�r���41�����1�c����c�1�c�g�X���	M�M��i��%�R�#��4�km�(�m��#�k���6����n����#�N��n��l�������<i9q�����z��B{���|���w
������Q'f��^"'�*�n��`�]��������"��&5��t������^��zww�n���<q������1�c�DB�!�!BZi�c����)���whZ������Ji'�>;�N���DQ)N��J�m%�Kh-�W$��mur4m�����r%���#�5�x���=.��������Wq����roH�\7"�nn�^-�r��{�����}���+8+��x��@��-�Z���K�Ze[�����9^�����������1�c�1�1�c�<cLc����4G�JS�4�����8��"�R�)����6�e������>ip��[D�hj���-�;��AkR�"���Jh�ZE�Kh��_g^"$��D���)������X�Os`9��6����3�	�l��M�/
m�W��a����C��M����F��k.#.I5�c�c��<q�������1�����1�c��1�c3��X���Kh��IkR�"�R�)�:��S�4E�KZ��rIkR�I��m��N8��E���Jh�4����	kt�������=��o�fa���/S�����x�a>��O�}�Ol��7]�m��4��E�)LK%cy*K����.��]]����sf���;��y���0XK(�O���|�!��@�!B���%��cI��'�-n��OK[��E!Jt��jD�-n��T�i'�:8�"�R�)�(��Jh�%)��#�&��M�}��[�|�N��3
���5��tx����g��<{��vj��a��I�f���b5�fG�Ll�����=�����k�/�2�Qooe��3$��`{��Pb���~���!��!B�F1��=cD|��:SDZ%�Kh�H�:SDT�Jh���:SDR�Ji
4�)N����-�����8��izG�UY�����$�$�=������|���n��i������+sz
&����c0>�n�U�k����YFL�����T:���$
�u ��WoU�9=�?�Z�������1�c����c�1�c�g�����z�qN4EN�E�Kh���kR�#��kR�"�Jt��������M�RJt�M�DiN�����f�G�����1�����:�2U�+������,�^6�v���Wc{`�dvnzT�#v����=�q=�RY2��`j�T�ug����*��w:�U72���k��A�N��������I��3pp5��o2_��~��E�y�w5�D�v�������>�Z���
�1���y`�]��#H�Tt�/]�zdv��5UK0)��.�P������v-�/4�i�@AW��������u�����Y�o(��Yy:\�m��on����+mI��[��R���{7�!ro���v����`�!�����������i�LU���G0e����'f����^+�o`|Q�UT���A>�����ee�_ru�
�����93s{z�coz�#��X9��^��h��.��fB�K�l��O/fzw
t��4V����������H�|(_i�r�s������x� ��h��z�+9�����waSV���
P����]k{���������|�l����P�U�����B������P���Y@��z�Z�UN�V�
�
�����X�Ni���_*[�����Cc�d��na���47&�M�Q�G�����
�Y�"�NU��z��fWup����9Pvn�Kf��,}B�<�vC��G�����A��Q"�1fw�bc�Q�����N����0.G)VJi��m������w;^�7UZ���];UPv���,:$>{��`]�h�wR�z3:e��M����8l����7y�����v�J
�V<�x�7��:q�N���8c�V���,.�1~#j�U'���!������N�����Y��P5��y��^T"�����C7H.
&-�g��@ �����Kev�we����n�p,�4�[s���RUh������Uv������/v�pU��V��GK������6�a����E���)��:�I9�w
�V.�E��j
��������<���I+Y-��G���Kc��Z����U���Bv<�V��B*���}�yv����F�u���wU���z��y������|���V��O9$���[��I�]�
��W��~f�MY��*��AiC�*�A�W8,	�6��f�f
#��W����z��
�[���d�v����q����6a��f�Q,�U��eO����E?m��/�H���P9���o��p@��*�)Lj���SbV���YG���_j��|��j�����r���}�����Un}R{�/��.��"���wA����.;#�
������uq����,����Wy��@V����>&�/�&n�$��;���>�2��vU�j��3��vS��@|�������^�w"��/3o�.x���U������B�H�����F��uU�w!�{oi�M�{��Z�����<|����\+{��$��Y���r�s`F���������R��J������F��������ev��F�p�4��V�h���>K�0�<�W����i}B\�{�����>������V��w��x&<��{�2m�^���f����� ��W�~E�sP{�}3��N7����q��U�����>(C��	���I���fw�*�3��~����we��_Y��%_��b���f������[�z��r���x8�>�+@6���~	�^U|/=�����?�w����E��/�<��'�F"��{���ua�O]��v��p��/{t��F���[���~K{s�}���C�~���J4#���V22w���?jS��r��1�so���z�L��{��>�������i��v�>E=L�r^������=���|��C^��/��d��g���}�/]f���3���P���j���R9��Cb��}���z�n��^V�a7����~��Rz/%U�n�O}�}���<�y��r�<��N�c,�!�����{tg�m_|L�Ob|�,;6�:��\x����������5��Y��N�����^�Q�t��Io�;f����^��������@J��7|��1�u�����6���������&r=M/�2���9&25��z��"�h���g�@���S�c�U���Z���}�y,`��r�oO����]KG�/;����4__t��4�����g��}�]-WzM�2G�S��E7��S'rrW^t
�T����*�����nNL�s���L�w�.�5y����^uK��u�+?���
	5�����M�%y�p������������
.b�2�
���oq��%��:����O���S�>r������^�v����W^��j������ffL���37�!B�{�����L���@�����
��
��
kV��Z��
��
��
��
���:����r��*��*��*��*������*��*��*��*��*��*��*��*��*��9�o���30*��*��*��*��5�q�j��*��*��*��*��33���(*����~y����ATAT@7�UATATAuUUUUW���]u�a�pq��!��!1�c�4�1��=cI�O4O�t�Kh��-j[Ds������%4^�����B�����M�D��)��M#M
4��cM
46E�Kh���I������[D�
I�Jh�����-<�7�30�K�����S��LG��$����"�6E{��He������1��7&�{�3(l�fU�����(��������pVm����7�2�����:[�?���1�c��m�c�1���3<x��:�F�>!��)�ti+M$mN��Li.H��[GSA���6����p8��#[{V��-m#��RS�4��h�B��m"���������;�Gl���;��%yU/�z6�?������T��f��G�[�p�}:��k����C�*\[-n��(��N�;��j����E��Z��4����KLz����@��[��>>1�c��@�!B���%��!���cG�8��#!bZ����+SJt��������q���MI-jSDT�)��I���"8��im!�"8��i'���C�)���W��q�}�o"�H�>_��u������������el�nr[���G����#�!�^LL��^����+�Hk$��N<�j������-�"x�+�9Y�W���dg�37��aF��� ���!G�"!B�h�!K�oX�R�)�4�h\���m"�m.x�&��#�:t���D��)�������)���"��M!����C�kv�	Jt���C���c&�	�$���~�]}u������N������{���2>u�P��g��J�;�,|�L�6�ok[Wk3s��I�
���z.�L>�����=3�$]v���E!�n��������1�c���!B�B����81�
S�4G���Kh��Jt���R�)�{�r'S���kR�"��:SD�
�M-��sH|��;v�m���sw�`��c0�C1���6����S�B�������*��O����o���,����KN���}+O��	_�!�~w�D�s{��T�r��o���c��������39�s�L��zd����=0���c�lb!B�h��!-4�0F�$)��41[%���m�������"�Jt����-j[G��8��:q�(��Jhv�,��Kh�E)���������ff�ff~o�����?����������]����?��v�r����Y'6[���w��Nl����6+2�U���9��T����*�����}���&��o�������O�1��|a���c�lcl!B�h��!-4���`���P�����)G��-�\#N8��I�N!��Z�\%�jH��Z����%�k%i��6�hq�F�'9C�q�Z:19x���6��������T�\x��xs���y,R���f������ 2�����ru��Y���v�3+1�7r��}V=��3o'�EHv6�o\s��t:��x_sW���q���������1��"!B�h��!-4���A��R��R�)+CZ"����L��V�#�n�:i%$|k��iJR��K���I|���q����oI��)B��i�;wo���kZ����'�y~��?��a���*9�q�v=�-�!����gEY���9[^2��k�p8\w�Y�_�������U��-)a�X
[�z�zz��1�c�1�1�c!!�!KM4�>;
� �a�	~r'q����Y��G��-kQ)"��'�K"��hr����x�.IkZ�HR��y��0�������0��33������~�����/j��6j�4[&VW���_=����7����lD����{�A������w�+���w�����?�������B<!!B�#D8�!	k��d��q���J�Z��*+Ri"��G�jkR	�����Y)
R�4�:��R��4���%�.E�j%AJR��������:C���������C�����I��p������m<���b�=��1Pj�%<
�j��6�76����&�]���a��Qj���=w�*�*���;3���&]krG�R[�4��v���/a������d�c�5e�Ui����c�{��wTj��4�o)�@��<zd��7Mg=�ht����{�^7��6e�l3��d����E���6���`����!k:�R�����r>
���(C-	�.������(e��72�X��f�_lxjv��������3��P�ch��L}���x�{*���xzV��z��H�,f�r�l�t��,AmH��=�o)��[���fv���]M����F������6����nX;��6��r��&<���Q����>���z���5��{��\3K�I���>������A�e�����T�����uu7��X��[hWK8($7/2�g*���U�(^j���.��Gj����-�cmb�)][[���=�M�YX��q�[�GV�z0���_T�P
������������T��i5�bT��"����F_t���[��8F�n���GX�f�oj��X�8!.������_[�p��`-����f��V.�������>n��x��yuI{��:����9���9������)�N7���	�R�r��5�VC���eggE�����NU��B�����U�U�;Kj`����������Sl��)�����y�������p�������U
�
p���b��S���K��]F���V���r���m���|nr�i<D��jW:��s_^ {�c�\�Wz0a�9�^����$����jn�pC)�����r�]=�z�T^J��)D��Bj�y�X���7
��R�
�b�rX�]�W8�W5�����DWfB��l}����uCv��@�s���0`����`��CbK.�2]�Z�j�Z�^b��`������V����]:qX�D������oWb��i�t�3���J��.����Z,���
�1&���c(U�9���z�*���1���f��5��kz�x�8��� ��m�EV�-�W}
	����MQs���s�`���"�V�m�M��m����&�~���s��k�cO����3������3�H�y�W*�����,2h
��7��������u)�^����w>�����1����9����xG�+W��@������6m������V����e>�o^9����5�y���*O|��L�g��19�~�{�����B�[�n����	�h��a���Z�������"G�����}���
E������f��q+��/���)��M���~�)�h��u�D�]��z���i�F��.�������v5�I��z&l�e����W�P��������~���W��}�������+5������AX�U
���]AC��(������+�g�*��;/��\�
��<�{���Y�^�;f�.�������of9�x�DKTS��w)�r��z{������[�-��{2������,X�Q>�;�Feq*��w�}=p���z!��
*����9'�:����U�z��so��'����)�l�z��c�nX���d��5�e;��!w��{U��{�l.���V���C�������:��eL)^1� ��M�1�^V-����+J������yU@���`F/��{3o\z J�������S��hO���.f�
���oV/������@��r���;k}�}!G����S�k[���>��IPn�\J��G�7��X<]uy�lY������MRn��w�e�+�*���7��r��������4��nJ�6��O���t�d^g_v<��/��Mf��yEg �z��7��f��Wg}��%.�'��O��������S��J<Gta����[/��Om��	����v������Uu;�.Z������kg$����QX�*{.z����E�r�`V�$���2p�v�'�y�^�)E3�k�|%���P[��B����a��]�W����f��>��@�o��!V���&���=|J��dq�_v0������I���(�����b���Kt�\vV6���;�r�ya.5
������>�0��:�t�
�R�F��Qmf�����������Y���~�D���_=����b��c�7��$�Bmsk2�d�G�q�pV�b���g��s/��fm�	�;�;tu��s��(|
Uu��U�U���fd��������33`�#�O��zfg������+�+�*��*��*�Z��z��*��*��*��*��*�:��5�����
��
��
��
�47���
��
��
��
��
��
��
��
��
��s������
��
��
��
��
j�oZ��
��
��
��
�����p9�
��
��
��
�����
��
�������Isa�a�p�!B�8�!B�8�!	p�#���D����N�q�D��)�8��qDR�����kq��v���	JR�%)Ji��-j[������ ���'~|w����g���/]W|������3� �%f+�w/,kR�T]B�t�]'[9�j=�Y]�
�+���U�������o�||v�|>���c�1�1�c�1�1�c3�1�O����Z��AJR�uam�o]�8��?�Z��R�)�rD��8��-k[|wU��I"u���������m�f����t/E����v��+$����I�;n���������k�_4����x����z||cB�!!B�!!B^��>�Z����N$��8�%)Jwq-k[��I8��;�Z���Z�����j"��;}Jc��f���o���z�������*���������f��J�o)�W��r�y"ZstV�����d���m�v����v�??=>>1�c�1�1�c�1�1�c3�1�������Z��.���\IkZ�bZ������m8�-j[EI)N����)���Z�a#���������;����IA^a:������7�ji�o+���8SD:A��E�j�F�xo�f�����������x���a���c�1�i�c�1�i�c���>�-kZ�JR�W����E�k�{�N8����������x����8����n�-%�k|g���HO�$O�������=�N�j�+�H��x����Z��[���A&\�]�Z���TT#{rS�uw��L�M�������>}��J[������1�c�1�B�!qB�F��f�Z�JR�.H��l|vw��n�Y��i��q�p�+�N��v��-k[����r�������~�������w�����_���'32�
rG5�a�����^�%�^��������qF�4�ld�WU��t�������~��m�d��Y��x��#��p|>B�!C�B�!C�B��8~���N�v�����q��#�8����C�n��}��8��,�;cH�����A�q��\��KPR����oUu�^�H��I�������`�IyKp7.���2b��/t�������\o1n��D���19ws/n�<�(e���QR�Th{����[_�||c�1�cc�1�cc�g�c����n8������n���������n%�k}�-k\�H����E�Z�R��s�q�|��z�[�s;hB~�������U�7tnHF
�
[����H��#�.��� \7�.�&�j�<UY3oq��.�y�,��������}����-������1�c!qB�!qB�M��$��q��Z���\���$R�)�H�����p�8��B��8�-kZ��)Kk�������I������������j����QNL����kX�s�jP�r�}�X3bIa�e����U���������U4A��@��n�1���O��c�1�cLc�1�cLc���c�����o��q�RE)Jl�[V�m�n���q��\���6|��KZ�IkZ����7 ���!���~�=c��W��l�C�/5�>v���%v;N|����r����r������g
����K���&_hng"������Hv���y��
'9�����/�7�}��u}���iN��3�_	�\�j�����F��~�B�U�T�:��;��*o9���;vr�lIZ���F����xo*����J67���VEgD�<�!:r��5m#�A������eYG{�����:�3p�5����P�y��a�W�gn^d;]�^��D�Z�5��Oxs�h���fE���B�^���k��b��T�����^����n���V����^][�)��7(�nNu����J�������/������U�a�����nk�U�����kw�l�'
��3���������40�]�k;
(3��z���p-�:6�f�=����U�z�����&uf������5���u���<�����s�soT��\9WC�t���y6^����0�+�
����*�� ��YW���.�b����+mG��9}2��=V��c�nt�Dm�|���;�{x�J�z�a��O�YT�ls�WI���y��	�7�f^u�U7rN�d�byW�j1Uu�%L��3;�>4�E��mv��i\�Z���Zv
��{����N��s6Q�*a'Vk���5��q��}�k��^v����A
��c��%<7.�7Y��.ec]S��Q�vT��G��E�c���)�����
����B/j
x�"�W�=x�Q���6��}�������.��m'�m-�����"9m_jVT�-
�:2D�y��
0���&�&!R�+n��^JmH���BI�
XRU���une���%��J���o*@��nvu���w�p���6���d��V��r�e��Y�K��+�[���C2<2gp�y���
�-F�����J��v�N���k���:f�����fd�����[���k<c,��6����x�y�I~�3[m�o�����������^�K�7.���V�1��������\Uw���J���2`��c�59������$�LZ�h�&�\cY��djm�Z�������7�����2���Plk{���f�cl���u`o7��IR���!+k�����a��}i�����12���{<o�Q��E���@���=u�]*�2�+9��������G�{CC~��Y]�\MOu�V����W\��^mS���:pU^
��mg�O7�~�q&�Tf��+W�8C���}�����kg�$3,F���ONW�j���zj7�q�����"�����o5%��O�3�O�1�o^g�J���#��|lZ�z���rW#=��{^��Z��4���'cu�]O�W�W���W�����P���������b�����P����(����g�u��������3�}��C�[{�}����`gy�zW��;������{:�9����'�<�I"7�*Q�c�b��J����������(�.	L[V����8����3'�J�����*�+�e;k���F�~��<�	��)�z�_�?o��wz6�����?_�}���
��pT&L`sa��>��������>���"��X��3~���a���� rg�Eo�^������#��GK�J�<<��']�����S����
ggUc�>������9��b����7���[��]���{�;n�����/~���%���j��)���W���V���@K;?�H���:����_3�3;��OVn#���e.�:��7>=(����>�}u������������6��T��(� �����o������>��?��<3Q��}�zv
��E5��b�p���M`���Uu�!�����z66j
����~�,����:��/V�D����g1�z^�i��f����W!�+>G��WOH�O��������]h�N5��5��
��'�����1u>�q
I;v}f���n}���_��.�z���:�0��EX�����FH��XC9��}'��
VG[��qy�%�*���������lvgNy���\�M�:`5ii��~8��<�|�����q�2�g���9�f}/Y����%.]
n]����%���<���=����~�������������9G��2��g�Cz6�f�^��]���4*�Wn*��^��)I��s/7e���O�,�/Y����������������xUxUw���������^\�m���m�;���=�����*��*��5�[��j��*��*��*��*��3��3Z�p9�
��
��
��
��C{�
��
��
��
��
��
��
��
��
��
��9�����
��
��
��
������
��
��
��
��
���
����
��
��
��
�����
��
������I%��a�pq��!B��!B��%���v���n��r-kZ�JR���;��Z����8��(��Z��)JT����o�~}i�����D�i�~��o�Ygt�h�����Nl�q�[:V������y!�Z���~V��[�����������!w�i����q��?>�1�c�1�1�`�!C�B�B ��5IDEBx�KZ�)JTR�)RE)Jc��v�v�N������Z��������o�����6�$��I�������E�n�^�����C���-U[��;z����������z����b
��������4��an�#���,`lx������c�1�i�c�1�i�c���|%)J�E)JT�JR���-���)JS�����8��q�T�����ZKmks��_5����/�m�;���������[ssfj�N�
�fH�*+:���F��zv�:�[���j��
a�r���Y�%���Q�u������x������1�c��1��8�!	p�#����a�w��qn;:-�Z��JR��,KZ���q#�q�m�"��l\����\KZ��Z������>]�L}_�?��`���U�������LTKe�b*�/5,�+3m�&,���-�kpn�d��q4��*\��"1%]���'�-�����O_�1�`�!�!B�!�!K�!~���o�%�k|Y����Dq�}��[k[\��q��-k[-Z��H�:S�Z{�U��'�$��������
����l��mBnG.�.�c��wM��Ef�Y���
���X�����ln�v���f���oq
��������}�3~0�Y��O���B�!qB�!qBz�1������n�S���q��6���Jc�D�q�TE)�����'n��m��"8�e�kZ��uu ��:�}���������M�w"Td��T�����>X�� �%���,��f�]�^k��L���%�S+H5q�Uh����C���h?�<S�c�����1�c�1�1�c�1�1�fz�1��JmJ<p1��n��-k[����m���S�*B��/��-���9$��8����q����k��1��H�k����W�������c���
O�'p�j
���N�D�J�6�1fm^�Gj����BM����wNn)dK��W�]�[�Wh;���;q��������!B�8�!B�8�#���|
R���Z���U��6��;S�	8��7r�-�����m�:�������<\�)���0�O�f�30�����[������������pml�Y�6�F��\��V�7�+7�pV�I�����-:�32����F����c�/ca���0h�>�==|c�1�cc�1�cc�g�cIkZ�."����R��Hb�-k"��(�R��)JS����lq#�0��������nUx����G�y���r���!&��%e�����R������]4��V�EO-m��� ��������Nb�X{IEx�nK�B����8�_���1�c�1�1�c�1�1�c3�1��q��kT���7��[���V������q��M�K�Z���R��r
e�X�%��[���g�|��33�V���v�umeejY0$P����;F�0x�Y9�o�����C��Z�S���S� �����`�u��Aa������=d:7��u�9U��f0�E�|v�I�Z�t��xi����q
��*o;�D����v-�
�
<��*�R��r�l�f���oz����"h�I�V��97������;&���l�	�N^�f���!���1�r�����9���v�8�35��������3��;-c�q���0V�}�� ����`wU�|
�
Q��3��l�2���=���HhXt�#|��(�-�%"�f��bV����V����j
���i��v^�=`���j�S�[�U-�z-�
O(���F_�8��\ ��J����5�*_{k��Cc��U�]��w]���5V��e��]���VB���K�n��y����e����a��(��]��n�n���+8/�r�%)��r\��m?g^hs������W}����0�`x�1�K�/:e^�;8X����k��&��u�7,mh����u�..A\��&J���)
�����^��+���fRl�R�K*�V��
l��C��I^��Q���A���v�49�$���8v�S.h��V)]b��Ch�x�T�&b�5��xS�u4-��h����2�v[{��<P������P2��P����
y�)%�2��{ugA.�d���&����=*�H��&�h��Z�H��Z��:��P���nXc���7�jt�v_C���T�s"�[=���u{Y�Wv�d��[��f��v*�������1����o��p`%���Z�����o+�,�58tN_���n�]��]��4z`���Z�iVsb�{}T�Oc���|=��^L,�����L�������0W�q��1f�+*� �z����d���K3u���bO6=���v��T���2C$s77�S��q���2_�A$�]����J��n7�9����f���Tn��w^�a��w�U=J�b�}}��
���0�l����>���]Q��zd���{��:����%r!sw�#=F)��3[/;�����{��%��/i$�^����:.t���t��������T��\�q�9�Qs�T�J�Zm�b����*�*�Lk.2�3-��l&w�����U�P�+3��V
9�Qy��}��y����7�T�Mk���~���r,����~����q��������3&��L�Zw����+��g����V�?e�	y�7q^yk4!�z���Tt�C������#��V:�������[���c��*�wJ�|���yW��7W�dy�{����}��XTG�k�L&7`!�Y�B��*��,�o��P���Y���&L�;����O�jy������TQ�f�ooL����%��;�_�{��d�j[K��xo�*�EK��~c=��1���
��3�����%p�V{>�2���,���^������>��x=�a����w
�.	�]
��%��[�Iw�K��D�G^G�[��y}�_������5�r�h��@�^������B���Ov�i�����
������~���&�c�==vLLe�I�u��B\�*ro�nc)�����>Y����<.��?U|��dVC�c��������.����pq�>YO�7��X�2]�wmY&���7~w�t�W�1�\�1���>T��o�����~��5����=��x~6@d���nGNe���������u����
�s�������,|4��zz� �_SD�"��
�3�]<�E�f@�1��]i���T
�����8���
�{\
M�MW�������V���}�o��{���������o��h��_>k*������">��z�|[���������m��[}��b
0-��:@��;b��~w0.{k����K�A�"Y+����f��+���������^������C�5Z���'g��Oq��L�u�[�������N�B�PIN���1	��w�>��a_����_m����s9�x�+�yz](/2�fX|�}��B��4��~�W��/����|��{�c3&Ok�����Q���o.dW������
��]��)���S�_\b:�
����>����O��_|�+���p_���8�5���w���o��
��k�����
�=��l��=��;�NO�A���3}ff>�^�����	�ugS��wb���;!��X51YK
�����s��1���������E����������S��9���������sU�W^u\UsU����w.\��]]=~f}��y��WpWpUPUPU��z���*��*��*��*��*�:��5�����
��
��
��
�47���
��
��
��
��
��
��
��
��
��s������
��
��
��
��
j�Z��
��
��
��
�����p9�
��
��
��
�����
��
����I$�I$�0a�q�#�1�[��1�c�1����X�m��!n������v�n���s�qN8���q��)��8t�����Z�,�Z��)J(F����>?H�0����d�nO|��:�?����L��e��y��-����kj�eP��r
�P�t�X�m����r�-��Cr�9���;�����{��<q��>>>1�c�-�hB�!�DB\!�8��7�|S����8��}W!��q�8�8���)�)�H��8��	8��,��Kmkk�w�k}DA��3
�-R�y�Y9��+/����
�m�?���vF���0Fj�s]��R����-]f����s�h����UtY�����N=e��^�+_lf�����Dq����1�c�4�1�c��clc3�1��
R���#�8���)O�r8�����;�p8��7�$�4�;i�|��N-AJR���g��{��I$O�H����\���?�C+��2.�m�tor�Q�� 0n�.����d:�2
�2M�C*�r�E��9[t�b��~��A��o�_�1�c�4�1�c��clc3�1�oZ� ���I)JS�������o����V����-k\���-���o;C�n���]���n��"x����/������L�6���}����0���1��6k����{�r^*Ti�����8����(k��Is�z�����&�&����X���^�1�c�-�i�c�1����g�c����8��I���b�-k[�����n<��q��-k[��~�'�<9i-kZ�R���*�S�I"u����t��p����N�������Z���������KG��CR5���T{t�v�4��'1�Af�S���~��V��x��<v��_��1�c�-�i�c�1����g�c���)����Gn��z���8������q��Bq�Q%)Jv�KZ�����n.$��ks���%�$�$�����v>��E1��v�&��"�����\�
�r�;��b�����a�q��eAb��2
��H���R��Z�4d�Q]w�;�u����^}�������z��)�c�1�1�c��cc�������I��n���'q��Z�����oZ��n���q��)N���v�t����v���li^��M}�~*i!'�$M�����meo����_JJ����f@�h6���w$K���������
�p7~>�6Tf)x&�0�oVAT�������,��_Zu$~�����������1�b��!F�B B�	�q�^|��v�n���t��?qq�]s�q��7���V��qKx���5�t���'q�l���q��KZ����y	��%�������[�w�u��-�4��KSY{��e
V`��u������[${���r��'T�����F���P������;��)��P��c�x������1�b�!�!B��@�%�����Z���:����R%)��x��q�����8���HqN8����j"��;rr8�����u�������3
�����~|��zf&���/wC�y�7Q��UG��x��T�n�sJFPm���[�.j�4=�#�)v������Wu�\#����������O~~z���S�1lcLc�1��6�3=c�z�$q�P�)K\��-kR�rC�8���\�kt�k''q�w�KZ����q��)J|i������u����oO:�:�w��OJxe�l�uwwX�I�����-����/;�����j������i[��n�I���4s/�.�]��xw�&6v��l���[��-�������O*Q�Kp�m{|Q���r����l����]��Z��V�u���F��]��<n��a�O	�i7��Q�!����EI9�|�Y����X%�C�u��*�����;n��Ib���LA�!�-�9����#�
��G'h^�*���.�Gs�U�*>�yl�vm����H��*@=��5�S�`o�.�aN�Xt�L�����%���������C��s7@��v��h���9W��cE�a�pT5w��gq��;�Oe��j��&�\���|�r�#v����tK�������
o���
_�a� ��D��b��~��H�g�mCB��w��h���-D9���:W`,EP|�%$����9���1���'M&[������OX�p����������,c��,����^O^0����$
#r-�����E����������b^����0Wt��.�7��TFJ�\{J�H�h�������Xw�����]S�%u�#b����:��C/o��Y���=�0��$F�u�Iu^������'��\��������e5��k3�wW,-�}M
��c>�����K�i���
7��14gv���*p�J�I|36�����{��ge��y[��kS^�s������5����N��p�����;	{��[��Wq���Y6��N3k]�"��5�z�{����>���$�j��fSV�5���k��K����Ux���bve�L�u�����k�-�'Omnk�*s�@�w����g�e������{���;�������t{J��^V�-�0����mV����|��1U�3T<`�%8�T�h�d�M�&��M�H8�����<���'����R�kk-��+�z�S���WA���������f��v����oZ�y�&����]���A��}�wf�2��������������&�N]\�l>�3[34z���$��������e�������:%��T�����.j�5\`L���)��S�jl2�%���n���-e�	{���������x3����dq�c��a�����h���*w������T�[�C���5��_����F��S���m���}j����>�t�y�4��S3@��_����}>j���oED|n���/*xm����U���}���m>����C)-�,�|�Hw-��f�G��|>f�M�Z��}���,l��y3�T�v.i�����S,xn��T<�fvf
k��>�2�T�$sv�������l���Xs�Q��p}��g����~s}�e����~�R��l!��y�������5�yw�n{{������w�U�>N8m��o_+[zS=w�K�o%k����w]�^�2*
�]L�ns�����z�K�]�]��$�@����t����}&?������i��J��_"V+���\�k�Y����P<=�H��}���B�5��9���v��^��M���Jme�Y�~�)���g��K�����/�<����C������'�(���Yx��������o�~��K��G�C�N�A}U�ze�O�����������;�k�;�TT^���\�b��;����������������@�D�e`4d���������=W�����5nf�|�	Q�_z�o��p����?�=
?Z������fi�����2^�������,qB����^�"����P�'+�?g�^���X�	�:��t�MH��V�aV��l��V8r��l��c��q,���;KV��.����T��G�G���G���b���JW��=f����7��
���u;�m:*���@��?���O�U�Y���z%�>�ho#&=�|��7����V�����r��DU��Y�y����G�VW?���{��{��s�9�?"a��s�w����w�����J����>������'�mf����
��`WW�7�s�~�'�����B�}U�/<H��\���(��o��n����R�+?N��R�<4@��J�C����~���oZ~��V�F3���)��}���^�����A�[{����=d=r�u�W��`��K��a��xK@���>>{��{������/��~�����[�
Z�tt���p�N�	*,V�;n������z�+��
E�gLi��yE��[�nfg\��M���t����WZ�*�)�33}ff�F!����fs3�3+w�J�
�
��
��
���oWZ�PUPUPUPUPgY�f�\�s�ATATATATcuATATATATATn6TATATATAT�7�uA��ATATATAT��ATATATATAT��\�s�ATATATAT{5TATATUUUUUzz�u�]�a�q�!!B,BB��1����g�c�s���N�|���-�4���kt�$R����rI��n���<����I)JS"������}���H��H��9��?5i� ����r��[��FX������������������E�'5@�f����=����������q�lc�����1Lc���1�c�<c����v���Qm�\���j�)JR�E)J|�����n��DR��m�R�)�P�����R�����������~�x{���.�fm�����]����uV�������H���i��x�^�/���&��;�������u�?@��q������b��1�cc�1�x�1�1����>I�����Du���)W[I-��������;m���"SjSd*oDS�)�Ai���!kZ�$�)O>|��m��~�D�������X�Y����u���)���Wq�7	�x�aa~2e�c6��BPz&��o/M^�]�sc.���x<hc������S�1lcLc�1��6�3=c����Z�����������9hZ��l���m�5dZ��������p�q�'�8��}j������Or��)"'�$M�������Y����P�V?�_b����a�B��
HRS�m�knP��c���qRz5_��WF<x%�Uz[X3-��b
��������~|c��1Lc���1�c�<c����v��c�8�-%�kjI4�����|�kZ�x�q�z'�A�q��kS����j���>�Y���f��<�����=�?J��������?�3�0��#���U�t�����1��R��m�zq��%��Df��y�q�1�%n��%���*��*�V1��� ����_�1�c�4�1�c��clc3�1�o�����}��q�%)Jz�����9$��8�����:�$�����Q��t��W$Z���w��$�$����������;�z��{z�����E����
����������/o]]���Za�K&���3(j�Ym�����u�f@f8p?�������1�c�-�i�c�1����g�c���������K[X����D����"�R�v��\���8�%�kx��x9���w��x�w>�3
���j�^_n5Sc/Ti����t0�S%��e��03�6�����e�lj��5pVn
�X�31��wQnd���U9�2y����t�������)�c�1�1�c��cc�������kc�N8�����/��m�o���	�qI�)V���v��D�)K���t���o�����i�_��������,iP��r��r���z)cu!������#
���4���������<�$�b�p���
<��o��5~9������|��-����>1�c�-�i�c�1����g�c�����;������Z�����I����)JS~.B�-k�7���PR�����3~~>S��Y���������7|������q�����������g-�9��Wm���ZRSnr�du��0��7PX��K��<x������C!c���������1�c�-�i�c�1����g�c��$�)J$�)JD��)J~�Z��)JR���)Q)JT��R��Wc��>�~m�P����K�%B���z��#�V�\�����|P�J�$��3|f�#�Tn��)m�3��]}}YG��n(�.%�a��u����u�������vw%���*�^��RZ�h|�V[�t�q�Kyr����]��������7\�����X���3�^iS����s��M,t����+�U����[�s��KHP�O��3��r��������s&l���\R�����
kB���\sz�K^�R��o4"�E��*�v����a�K�Q��L�,f���P94�a-=�����9{[�9�2�V�������]y��2�j�����I�^��V^U��'��B�����N�����sv���oe�tA�wkldmb��:������Tw(P'vT���6�g�n��V��]����]��'ud�U��^�3���e���t���x�Y�k	����,��n�b�X�h���j���������a4�Tk/���9��V��A�q�J�G�����������i�{��5� sWi���uW
{r�R%Y����y����K�
$�T7�v�����]r<W|����sn���j�m�v)�����N������|C%l-�����VH��V���+Ve8���M��Q-9%C{P�����P��Gg���������Z��w)�2eZ����r_]X�S����7���R�O���d�w76��u
�s�.����l��9q���w��Q��kl���p=v��cv�����O��G�����SX����xnq���8bWt�����s��ni��%^)�w%sn��X�e��5�^zoj��+2��& ��(aK���e�y�Zml�����4�5&�j��J,��g
�dN������n�t����o���A�A>�	��1f%�m��/]Ous�9	�gz��XC��R��m���J���_+��[�%x����J�W��^m��.^��7zK�
�������gg��V�Wqwl~��}m�~~9��|\�����s�v�w9;�$�K{�[k���m��U.���q�Lq�3���m/F�������Y�4��cf[��Y[	�s�m���]����/z��]PDYY]Y+O���2��"���V��n�>������������U5;���k)���R��t�uS(����q,��V���'\�=�X�	��K���;c%�����r<5�u��e���������'_=v��c���S|��jw���1i���Q��������e�����C� ��P�^5���Zn������t�]x�wc�����u�8S�w�������Sp������:RXn��fq��
�U���z�����oh��i���R�7*�-�g���f�9�uW�|S��]Y�PM�}_\����(��)�}�����^:��w�5���;�m����x�.J]�J�}����EyY��m��;+��~v�o������_��ht�r�K5����6p|��U����������f�Ve���vO��A�}�f/����}�t��~�?��~�u���p��wr�����J�[��������j�g�/�r2�]�� ���|�^+Gk��Vv������x�~��*���.�9{��1��:������HE�����>T���i?J�]�-r��p���|F
���V��S5P��}��������Cl|9������}������>��@p���E��%���e���f���J����w�5+#=���#�k/]T��������?*�k����s�}��>?r�O������6���+�s;+�����29�:���J���A��[B����]������3.����\2����|���mGf^�U�w��}�J�|t��f�p�H�p�k3�K�{��IL�����]*��c?[8�V���:��5�����I������y�}����+���6����t�s���@�����>��r�n9��4��������g���;��'����_&��40��+1f��T�$O]��v�U.Cp;"	��Nmz����A�&h������J����Uks���������{����W]���zUxUy�i��.��s���`w�x�zwwPUPUPkZ���j��*��*��*��*��3��3Z�p9�
��
��
��
������
��
��
��
��
��
��
��
��
��s������
��
��
��
��
j�Z��
��
��
��
�����p9�
��
��
��
�����
��
��
��I$�I%���<x�G�8��8���c�1�b��1Lcc����Aq��Z���)JMjE)JmQ)�)���q�R)JR�KZ���H��8�������������^��=��i��?�y7z.���L����WU��wuh����cv��Ynm^a:C������YX��-U6�%n��V��$���)����_�S��c�1�b��1Lcc����;��8��z�-k_��kZ��kZ�R�����T��*�)J��EW����o���jE�{L���������L�fl��F�����������cJ��y�
Z�e��j��{�TRn�zJ����I�>�>?{��4S������^���1�c�1la�DB\!���������;���K��KZ����k�zZ��[IkZ���������wrN���p��������"I�I���>{~�[�[Kq�����A:u��e�T)��N�S��TP[W�tY��J�c���D����q�����z'"��2f���}�i1��S���z�����c�1�c�1�c����wZ����H��r�JR����:q�m��"��������<yR)JS�}��v���I��'��������s}^���V�k��Z��/kMf���(��1��1���t�(��7[�[1L��8����e�-{�������`���c�������z��b��1�[�)�clc3�1��)JW��*�)J��Z���Z��E)J�JR�IM�[��9#�q����	�I��w��!�C0�� ��s&�3.����5�u���� �
�������n����!��q��Jr�5%�������<�.�������$��v�??>=|z�O^��[�1�c�1�m�fz�;��������v�v�v�D�)U"��T�R��r-k^\�Z�H�)^<|gX����$�~�c�����[�kk���xD���T��PR��-U��^T�%�����Uq1T� ��F�q�7�������>�m��37�ie�|���(��1�c�1lc�1����X�"��J���~���t�)UJR�R��9���9R�+J�R�)>8�3}ff��Fz
���g�w_b-u�0��O]Z��B���mM.�Y�������b�n����*�M*����N�1��f[JU�6�������B�����||z�O^��[�1�c�1�m�fz�;�	JR��QkZ�ZZ��\Z��^�Z�IJR��t��K�kZ�R��}�����}30�~�3
����������|a>�=ZM�X��P"��cr�7"Y���0���[z#���9�'{)������r�o7:�������y'�$�o�>���=z��X�-�c���b��6�3=c��-k_N�:�)J�t�Z�.�JR�.KZ�QJR�ikZ��Wy��������h?7|M{���&d���.��m�h���F��V�X���g�%��*��e=�^��2�f����bCv�,@�Y��$v���N��@��{��R�����_�S��c�1�b��1Lcc�������U����JR��!�s��kZ�n�ZK�.�,�$�j�a��nb����7��.�6k�7q�u����Ev{Oj��;;1j2�UP�;4%�P�5��kwt!��v�,�Z�&�v���>1u��+r��t�6S!���P������] ��3�'XP�{��:`�g-�B�;2B�N�5l�j�gp������8_7�C{������������*^����c;:�����o6�M3�d`;[s���:�e��:�����:v����e#�o���>4{2�b�[�<��&f�QBa�	�YK��}����i.�uc��8/:��S3�������xMP��E��fu_^��6�PF�l;���P���F���I�4P9������^m�����4v�������C��Hd�v���*���+o$��5s�����6��J����������7;����`V���Ok�<@1����WS���l�]�t��3n6�P�����-��8t��>c�h�w2���}���.�T���x��/��������Z�@�n�3Wt������&_J��v�����B��vI��Nso6�{R��t��!�,��a�w{vV��-�3���A(W.�`�^(��\��#�U������#����ggu������0�r��Y�O1RR������,���uv-EW�ty���Ns���cS�������n�K%7��z����Xj������n���\1�m�:�e�@������SPX�Z�M�wwd�V;"�}SjN[f=���ul�����/�U�\YZ���M��^\y�_U��l\K�w�v
&�6�����:�]w&������M�2��J�M�zhc/�]�����!&�Z��c�u\�Bw-z�Q���(P�n��c��X�M���L�U���pm�Y�J�\A><5��m�/K��*��{'���`����T0?U!60E�j��n�KB�]�,�f�B�;����5�8�_fSxM �h��.�vH����C��``�p��|C+�|&_����:�z�����������Vq�	;����t�B'��k��4SR^[�4���	���s����g3�����c-*��r���5Cn�G8�w�������(cX�uwB3��_Y�����<�8d4;�f"x�x����J
���mt�_{R��s)q��q��E5��h�����	��vk36
����ZN�(G��~|����j��?T2����S;'X��6����>��o����aCD9���������rE�+�|�~�AyC']���������T��������g>�#��(�3�d�'�X��#>,C�]��n*��w�n��/�����w�>R�������B�af��J�1��]�e�w����=
�<G>�����u__���Tsu��nnSW���l�r��M}}�"��Me������;�������~��p�8���&;_�nw_Nb���e��\������f��d���sU��L�����[�o�n�V���gu/��d�G����Ve���|M�?;����},����-wo}��W���+^p���'���^�fXPN�IC��=�H�I|��.K�}��{��a���n}����s+�m��Q��b|b1S�������}>����s����H���?]s�g�N�����������~��OG���6����t�Bu*�N�>�n���Z��+
�2��������)��w�
�1�����q��p�`��=��c��D�J�}���Q��$w��n���G�����7��@���:�����^1��s�����)k���S*}�1���������h����|���\��=��;�&y=�t���S�U��G��������/����}��l��J��I�V ����U���G�,]��i�'�~���{G�:���}����`�3;������V�+}g�+��+����Mt��S��g������U�<�����N�~����.��>���| �����{���i��/R	>�\s^
�_u�B�`}_K�_�����m��n�-�����8��}ff;8���3����o>2����Y��EL`�k������3F��e���U{N�j��}��uTi�����!��T�5]�����y{�������Wj�*���j���.��r���0;���=�����*��*��5�[���ATATATATAT�u��W8�PUPUPUPU��PUPUPUPUPU[��UPUPUPUPU9���PffPUPUPUPU�A�PUPUPUPUPUf`W8�PUPUPUPU��PUPUPUU$�I$�33a�Q�q�qG&1lc�-�c�1�1������s�Gq�9r-j_���k�������-k_o��8��+�-k_���Z��I�I�+�����G���_��mh�R�yM�m�n��b��;���w���b��x������d��,F�������t����`�S�[���w���I��o�������T�����c�1�S���g�c����r�R�qe�k��)UJR�R���:urR��Y�KZ���7�@`o���p��=K����\��r�{uvw^PZ���n^J�	�`��b����zM�uW�,��Tfk��c�����$���j~~||z�����c�1�c�1�c����w�(���(���v��*I$�$�d�I�N�e)J�JR�m�?I	?I"~��;������9x����X6���
I�{�hh67i"�N�g?��=�On����w��z������^�y����X�����l��Q����$��8�i���(���-�c���b��6�3=c�$�)\R���E)J����q����kZ�E)J�R���*���f=�W��?A��'�w��_�����p��*��7+I�����M�����nAKvu[�nM��1�=���T���Z��7rQ���0���\�����|��$��n)������^���1�c�1lc�1���\!�q�6a�ET(���I'��Z���*�JW��k���^����@x{��{�f��"����~T����	���)�E$�7
"�%����d�6��e=�J9�8s5�2���(�����y�u�O�fg$��}>��|8��^��[�1�c�1�m�fp�y��I��e�Z��*I$�$�|��+�N�t���R��[:��$���\���?g���"���r�T7&f#x,�p���r����kkEe�Kr����Q��9pB������7��{���>><c���z��b��1�[�)�clc3�1�E)J�)J���8���|��9��Z���6����k�v���N�}�$��H>���]�WW��f-�����YoN�����lQ������9z�����yO��"s2��^���w�&}~r�Oz'�����0����#����=z�1lc�-�c�1�1���������\���Q����I&�(����*I$�2�,���������o�?�9?�4l�7C]�6�^�U^�[X�������l:��n�:�3Z�cV�O)������ ���������ff��<Q�~Dq���8��b��1�[�)�clc3�1�E)J���T������R�QT��,���I��(�$�o�vd?�-"'� ��k\�?ow]M�W���5wZ���x�;j���^�[N�m����Z��8R�[�Gq`9u���KN�O/Q1oi3tNn�����B
8G�A���T�����c�1�S�!.�Y��0���u��0�	%��2����)\�q��i��������ik�bj4�h��J[��n�F�F���w�������Y������^9��
?t��0h�A��u���j�����;sE��R�r�IT��JD[�n����b�������\y7%'r]�n�-
�^wE�����v�^v�h�@�)��[!IiED��vek���*m���w�������w���*��i��^fb��z�x��y�*���j�����z%����� ��?AG�Q^����%'����~�S�U���q�(��am�	 Sm�emk�[o���m���>5~`oWh��Wb�bS��!���Cz����
�W�:��*t �������qW��j�A���V�N�zU���?���U��EC�!�?�D=��B�I��?��lD�RW��� ��N��UuUN�$��J�Il���7!��~�~pYT2�rhO�A��=�2�
���x:���j������*P/�Cj��P���>����U���e*&b�!fFb���m��cZ�Uh����@��m�cX���U�kRQE�[I$IZ�b��j�\��kTV�[h�5Qj�U�V6�[klm�h�Y��k��� �	�*�Vd���&eT��m��[md��h��z���L�M�}�j���`pT>z�*����&R�'p`L��C��)D�`|c��2f�%�����6�t�D����
@�%�O��CUA����f$��eTG�1E4���h��Fd���)SS%FL!F9��l�W0m�4d>�Q$�Q^u�pb��T���}�\(��7�c�T����(���LHx��<�|�-�D�*��D�����W`x6��d�������$��M���)����������IY����WP{�����}�b����)O���^�0}5Z�d�(�t��*I7���W��<���O���H���JyU?�W���`�A����U2t0'�J�u~8��I���q���?�Cj����a>�~%P���K����R�'�4Q{��
�� �|�t������n����CD�J�O�
�UI6�6H[��0 eX���R��������$�P���U|���)RI�@�z�HWWt���t*���j�x�������+L�:����B�
@�x0(1�5)h��([A����z��&���D�=�&*��>5Sre+Pb����bp���~���UOt'���J$��d�F�����|+p-U|��HO{���<�*���?v�l�c���cZ��f��6��DDL�=4����n�&[����P�y�K��Y�����Y���^I�vb��,�8��������`�B�b��	�*�g�?�Uo���R������t}�(�����9y���]u~��w�Q*��(�O�"Md~n���,��/2�1�B*A�vl�q<S��<�U�V�.��wp�Z��H����[r���3E�6���7Km�T�Uwr_'O���b�t0��nl���b�>��<�P�m��>.eR��^d9y����01'�S�?VSM����UZ�&D���6�=��I�VAQM�X��[�PzH|u��P{�|)D�`b��
�����N���]�]�_� �`���d�(�����x��(�������W �U�XA�-��A�)�t�wJuJX��U�U�������U�?����V��6�����X[�Oh?6�x������=K�*�A��O0|���UN�+����!�W�j����������p���8������,`K�T6C�)�j��=A��6��
��UV���W����d�Md�x�<�!�g��K�����y����8 !��o���
�}B@P*�@���P��R	"�
�%R*I$P�
���$�)EQ���@�(D�((R)$�Q!A	T*�PQ@*�UDT��3y�UJ���)"J%E"%@UUPPPEQUI
�	
QD��U�JP(
���P�J�
P�H$U*�PP��P�QE�T*���f�"�AshP�E(l
�a�cib��c��"61���T��%)-P�@
[��������,F��!IQ)
����)@$�
��5���A�&���UUUJ�J�44$(�����,`�����`�`B L��T�QJ��*p8A;60X�����e`���4)��
*���*���0A �`����e�fa��%E
I�5"�*�M������c�A��fA�0�	*P�IH����@"����v6,X,`BAk�"T�"Y�
n��`��B&�B�@���{��
P�B���0af
�Cc
�!
�"�)Z�i����������e�S��HQP�hM
@J@��C�MC�3MA��F��S��R�I(��IB�DP��� daF����7����RM)h�����f�@6�4���yM9����3���ZC���HZ6�xi�Y��L�T\������y�kz��:�r��q"$T����K��5�t�����#���o"��?��=K5��W�U���V�_����������$�gq���D�[���#�p���*��2I�D�����HO�O����I=zyN`!	��'�N���3���{���w���/������fo��6f��4�`�1I$�7��12d���L�������&��]�d�fAH2d��� �"I	����$��kW�N��	�Mc$0��	I&$d�"�2���� $�$���3)�fa2BFBH�S(�!2� 	"" ��$B`!2H������c��	���BD��$C)��2�$��$Ir�$�R	����Ba!"HH��I@Q&�I)�H�� &L���Hr�333BR�fa2D�&ffd&d$$���$332$#&"1�1��b��bbL@RH�`$�A�Dc��	HD@D&����	�i�$�4�Jd�e!�� 	"I	 @2��L��B@HB@@HHH@�!�a1�D�Je1���c�(�$$DI"AI��D� �II��B1���P���F
$��&��������!!�BfBD)��$D2D3fY�f��@L��H��	2L�$��A���&B2AIHS)�$�B�" $ d��
CIHd)	L��2B	$$$2&1���1�`�D�L�`$$���$�&L�DI�1E1F!"H��& �0D�$�����E$I��$ $�$ $��&L�	���L�`3!  $��!�I�� �`� �A!&H$��w!1�2@N�BA1�c��\�Da�wt�) $�")RD&�BS0D��dL3���ffI!L�AI@(�Q�2a�� 	 �H�`�0���$�&BBBe)0����QF(��b1�"2I!I��h�L�d 2a34�I�HL�I!(
e`0��)
f���%�0�$ 2�� e3!�)�d0L�4�$��!2Bd� �$Rb �2��JS �P����B ����H�$d0��	�!&&S33	�C&�"L" ��3L�M3$��)"2D�D�)0F" �d��&L�$&B!D�d�BBb�DI�@II!"fI�$�I	(LACL� Jbd�0&3H@I���@�HHbc�I32?�����>�$�	&I1F1�(�ERRD����fa��4���H�"	�2Da1&fC!32$	Jd	2D��4DH�a�2&I $�&S!��BL����Ba2�A 2H��I$���d !�	��0&BbBD�&RE�t����3HR���$�����	��f$�JJDH��0�����&4� �2b2Fi����i����$d�H�ffe3	RFfBH�L��HH��Hd�@LHL��u	��)�C$��t&�L��BdDd�$I��S"BLI$B$�
@����d0��$%&s�d�ALQD�$�"f�$DBd�JL!$�&	H�"L�	a	�L�	���Hd�P�$A�2d�#%2&RF#�E
��0Y#E���*e�d(����o���~�O���[[_Z�2@�(�HfA�J$���1����B`HH$1��B$�H��	 ��&H�a))�`�!C1���1!�� JC	B��cRDII�Q��� 3"L�D��("M!��c$P��$�I2$"$2"S`L��a�BII�	��I���Bff$��#A&L�0��Ji���L�@	"fQF4h��!$���I���$�`((��M&1��� 0c(��e0I@!0I$�dR&�dRM#	��"DDc�hI��2I@Rc!HDA� 3)I	�����I"���$��BH�D�FLh��B!L�`��"(�1!$�I$�(�"C0�D��I��HH��	���!4Jh2%��C�0e(D���	$����$��$@D�0DIL�Q(�F4h�d!%	�����������$� &R	 ���"$�&"�B�H�)�L�fBe)��	&$��!!�f��P��q"d&�e !��2`��FQF�Tl��H�r���1��(�DGu���",A  J  ��2c&�����0I�!�1D	����D��A����M$�	h��1BDd�$$�a$�1���LH��0�$��$�!0`��L���I��#���	B��@bH$��&b2RfbL! ��&"M$�� ����"J1�1�Q�#F1DQ�)�����!"@b ��2DH�(L%!@�3! L�@0�!0!�( ��
"$"@����dR�@�H$�	�L�A$F"DI%$��&�ad�2a"&LC��"$��$��!)(��L�#���2#X�22��M$ba���	I�!D��`�I$�%hI� �be3!	 �II�d)$�&#%DE$A�2&0"%4�"$�I�4���1`�I2H�$�B@@M!�$��2DHB`$�@I$RH`fi�.����kwJ)�� ��F��H�1L����h��"�$��$ 	0�D	�Ai4���� �`���2X���FJ�PBBI�2��F2�&�a	2&�$cIF4cDc�����6
@H@$I��BDBP �HA��PI�!2I�L�d�($"`$�H&"MB��c�L�IC)�"`�N�r1���� �aD��4�� @��!
c1&d�F4QF�E1�A$0�H$	!"3H��I0$I&�$Q$�H#2 �L&a"���@%BhA>���u��IL���Q�LA�0	II$�Id��R��$�!f!	@�e"	2IDa%3)$(��QbL�Ba2D�@$$HR ���H�!���4��I
 `0F"��0bML�b1&�����Jh
E ��&h�$�RT��X`��!J�!*�#
�������"@L��HH2�@�(0dDI3A���F��BQ%	��H")" $�	F�������#I��%�4X����f_L��F	!�F��,	D� �# ��P�I�IJL�@$�FBC4��������`�Ad�b$�b�L��! �H1�$RRQ��DQ�JA���$$��PDL�h�&���QDY))(6JJ,lh�,FI�`
@A$�I�d`�$���D),L�h�4�)2T&�%��)(�Z
F�X�Qclh�(�lF�����m�QcQF�F��j
��d D��2d�(���	%��L@F2Q%!X��	(�#&�DRYL2
I#�
(BJL$%1���I#�$ADQ��
�
�J
�4b�4X���&�A 4�0" �$�	$")4cDE%���4Pd����DD$�4SM3&�F6M�F�X4�0kQ��j5�F�Qlh�lZ6,�6KRQI�D$Dd�RfQd�D�Rj2�0�B$1��%�Ah�+$RD`1������"d�����HL�bD�B&L��%&D�`�RJ#"�a
����Y@�BJLH��c2hJ3$��1��"!1$�IX��,�H�@�Fa�$`�Q�6h6#1TZ0j�5�������������B1�I(�����m5�F�I�lj��h�}�UX���b#m�d�2RZ������H��`����F"!1�m��	��V�H��5m�1��"��H����v��H	$�H~}�w�o��������_�_�����_�����������f����%����-5)x_�~���b�J���~���k��cl���V-��*-��h�-�h��5r��9�t�Z���������TF6�6�VMc[���Z�r���j5����5�5�h�b���lQ��-�F�En[���h������X�X�i5�E�X�j,X�Q��6�6�5r�cQ�cQ��m���F-�6�*6��F��j5&�Qr�-�����j��\�,[5����5��l���E�b��5*6��h���F������jH��c��Q�*�����Tj5F�5���Dm�Q��j1lF�5Tj5�Q���ncE��W5�k�\�j"�-�-��cF�Q�Y*���d�-�F�,Z-F�5��EW*6������J���Q����5ITh�V5�]�jM�k��Q�������X�h�-�F�QcE�F�6��EW5sQ�4V������Q��QX����KQ��j4m��MW6��ck����Tj1X�k%��m�F���F�����5���F�����6�j��sT���\�F�Q������������j5s���r�h����j5�h�[6��cQ��T�E����X�j��m�\�������Q��j*"��Pm�*�F�Q�n[��\���Q�����j
��lcTj5�5-�F�b�b���j��lZ�Tj�����r���F�j��Q���QlTQF�X��F�5�j+��EnV����j5%ch�lQTj5�Ilj-���Q����nj6-�F��m��QF����TZ#lV5����5���F�j��Q�6�Qj5�F�Q�(�
������jMPm���j-*�����lb������E����-IX�Z��F�Wwm�lj6���5�I�jJ�cj,��Z�T�b�����W4[��,[�cX�j61�`�m����Qh�-\����������ci(����V,[(�4m����Q�Z53jM[�\��sWw[r�Z�����j5%�1j-*5��V�I�WMW(���*�6�X�k�V-kDb���lX���^*+��\����%���5&�h-���b-F+%���u�b�����b���[��-�m�m�j���lj
RU�F�h������sQX�F5b��F�m�*6�Qb���b��m������-E`��*�Q�5IQh�TQj(��m�n[��DQV,X�(�F���*-�F���r���6�5�V,jKRZ�lm���F���b-RQ��F�X�+5���QD[+��E�j��5sQ���ccQlj5+��*5�56+���h��F�cEE�h�h�#lV56�����V5��cZ,ZM���4mF�Q�F�����,kb���������_�������9p����?�����i����P!	���r�f ���
a��'��.Zq��9[}�Z�*�I�Q�3w�V�����u
�aW/�,�)��I��wn��[�Y��m�'�9�)����mc�Pw#���^�����:��jc"�	����A�����{��SZjx�S:t�vnst4k3��t���Cx2�I�+��i���������}n�F�B��4^4�$;����fr����v���W���-��LN=�:,��o+Y��{}HW���^����5�^���6���VjV���tZ��R�+iZ��Z�)�������wz���xh.�Li2����:��@��~�o/P/6wTV�B9\�]p
���L8��Mw���T���Z�����e���;�����b�7�dK��G.��p^�����l����������vuj���.�xy���D�B����
�S��5����^N��Zq�h��5t�<foe���g(d),�������n�B�]J�����4�H���u��BN
2�� �G9�3{�DyRE�
��.�9W��Jk�JS$��W�uC%��B`� �
��V�A�%"I2�u;
����s�6�)2�X��>l������3k�����#e��t�S9CZ�cB�����+2.}���}4��I�N���j��<4]����y��{y�d�K������U*�:�k���=
������-���W%\]a��d��E�(�/{�����8��\��Wn"�m�,�at�wc�YG���������HS���,���t��x��C72\.�T������P����+�G��V������:�v��Vx����|���R�T�����d��]=jo�[�����q�����u�fe_WZ����5��wp��O&%�J����W`��{y�Yz)=]�G^��*t�����������
�����fC�����;���vH���s2�/F�&�u�������&��8L�s4bGi�2�j�t}�<7�������6���o5�b���A�8)�E���vL�V����W�������j\!�A������}��,������vZL���y��PN��4!����;Pe��E*���`xw�?v��A�O��{�xk���6��R��vVK�+U[v&Z	�Yk .��@:B#O]F���A��/]R������h�t0p�1nb��1M}�J�������\V�j����/��L�4��-�o�����>3��R��QW���*Mq)V�;�r`��-����j��|��wi��j�cE^d��8o�-�zn=����s���%O�������w�M���������n�e��b����
�m���B��d���Gf�����`�]���da���-Vq{GC���1��%�Rij�t����:}`utGfR���sJ�G����zRt�j����r������hj�X�����j�����}��7�9a��GJ<��k�M�����u���n���f�m���Y+3o��g��y�K��7�i1]5*J�����*�t���/��r�9��z��W��9�����z�|�������/�����"	1VZ�+������M���m�)M����&�8vm��)}�.���������\S^v�{;�.��;�*��s�7�u��b\AWp7B��u���em9��;�f��w]G3��m����Y�
r�s�.�5�+�V���B��U�������5D�D����8`h;9��4c�(������g3��H�Y�
�&�o*e���d�m��K%�6���&
_�X�����/?W��J_�i�����(}+���?���"bV�Z���`G�2�P��v�z��s4:v�'7ki�
�o0��KQZ�yi���67`��j�`br�-���<zR���I<�$:H;��������K}k�z�Q�%)x������;w��&�KY���8�WR������
]Z�.�X�	�.nd����*�e��VC3wh���{���=����������������^������{6~���~*P���g{�,�}^���;��g�c�,t��%���xd	*.�_f%�n�3�-R�
����F�e(�Dya�v�J�m�sp ���L����yX�2�u�9����H����u�uE��.��~��v��Q��W�/y�!�V����^��J�u��9�<���Ou����������69���n�O
��s�������`����+���T���U!�zy��ev{�-���=Q����<?L�:O=H����9}W%x��8������{�R�Z���W�Rg��d^��<����X�Y�=��K9���8�Lw\�>�%pFr�:q��T��jQ	q����8K&����=k|'����k�v]�f���4�vz{�
�w�m��et'�gvSO6��K�l�n*��6�:��qe�pn���v��%<���yOE������]� �zs�Dc�4��N��m^������-����u��~Y�C�&Y�aZ�%��1,����z�1R����v��O��V�#����<������3H�!��oM������
h���W(^�gn���6S*u^�^��������n�*����� ����s#G��sL�Y���U������
l2��`%jV[�n��;J"5+
�T(Noji�'IT8��K�E�]h�+����I��@43�����Y4�X��)C��y�0ky�7�n1A���6)A�(y��X�
���������Wz���!�u8���}���~,=�ga2R��T��H8�V��{Z:�y6�u����6n���H��'���W�l��w{�
�L���v	b�����!N�^[k�T
w��o�=���~�����+�KbS�v������\1���������f��j��B��y���������v��f
�C+hkag�����r�=2�o�����~9�?)��������L{�����k*X<RZ��+RU{P�<�S;j=����}�;��U�{���]���X��}��Tv����Vnv�i���5qF����O�gX�x���wz;�G��������5Y�T*�]���U����t��)���������I��*�8��r�
������
��
�Kz�]%��\�(���Z��:�����:;��A����s��R�'�O+"v�'���{;E��x��BV��oPX�KU�b%����(�!#~��GR��`�-���w�n�d����y9�����W��7��I���d������F�d�.���J��,Y���EIt�����}'x�V*�/
�yn�c����#/,VUoz/y������3�G�g	yV��������$x;������Ty���c�b=�������Y%�������I����_w�9r]��j����_s��b~���F�S{��_���p��s���V"���.�>m��Y��]������m:�����y��s
���o.���Eq/�����-���O���#��G{�7yJ���`�����T���)�����U����y��/�)V^�������Aa�&��kg�]����:���p���Ze��Nex�>�U������e��*VQ�^���E���qF�@��6�V���S���Q����#��8�Z0HS�����nQ����P/���>��{����s����8l��;0�� ��#�����c�)n��v�V�j�=���H}w��M�@����Z�:��EG�������b�V�D���u����nU�l�n��kQ�j��5�"�)9[���w�]�P�AI^7��y�T�����3o�uYu��WR�e����t�k�9v�9��,��f]���2������-�}x2Ltt�����/
��#Zoq�[O6R�nL��a'�����fC�e���u���}2�]��E�:��]Ku�A��Q�j��z�bk������L�mmb�t����
t��w}}srWV:�A�33���39{��F�^�]I�>���*ZW�w�(L����a�u��^<6�gY^�T����8�
������8w^F�����^�X!���1��y	<��*����Y/uyw�t�+M�V���d�e����y����R�Q����m���)�Nw}�vv��e�gM��n<��2*x�)k�H���������k>��������*�	3���MW���d���uM������5>������O�sp��{����*d����#��l��Sn����|�z�|�#�3g7��W��.��y����I�N���$����}{��
�� {>���(�pv��{&�x*y�p�W�9IQ�J�:T�z�7D�����I%?I&��[�&�<|��5�[V���,y�f.y�p4q�	RI(O�%IRT�%I���y��n���o��}M��B����Y�Y�(^XX���e_X��.`Xxb�<M���MJ.���w�4�u��Cp*���#)��U�m4�W��t����z���
{u�+S��IL�W-��-�7���&1
�X�"�I�gi!�'�:V���`�"����.��Y�{�����C��Y[�#Cn�*��){Ze��
vU��Ih�S7��e��2��Q��C���R�6Y�����#�����j������(�#�������#�J���B�15+oNom��U��C���3������1�*d��"p�5������v�i��=Sr�)�a��}�^�qc�+����?k�|Z�k6��j>�6��a"	��	D����`�McW6�/v��W�������e�r.������^����^�^�Q%-��������;��mDvi������Z��JU���u��.�&>��T����Y�Ln���y�v;1��cZ�yG9��n��1�bU��\3�B�#
�w�WYs�IB�YG9��o��7f��.3�eA,�YN��}��>�����.Z����6���Oji���Pm���#���c��S�����k]�m����(��������8Ly�5��P�D���4��J�����un�\���6Rb�K[����e*���K�)[�x�����wmp�B�9y�FP�c���pP���#����H~��n��@����
�XE>�������A�IQ��S3(�\�Mp:�-���o��wx����t��:�b:��sb�p����D�.�{}3
�]��5o)��d��^��&R��r�t
7��2��D~,pOwSA�sn�y����5�hJ2�Y��.8��h��aIV����MP��6����<���"�-O"=�.����j.��=5=�o�����$�����y����5�S�x��2�7������56_3���Iolw���8�v�Xi�E��1&)Q�����+_e+ZQ�w���$��S�����6cH�T�[��g�����v^H%��n�Fs����ND�����{��M"��������m�r�Gp�K.�V�P���(0`�����-F��{��B������q��W�(��u0���%F�$�&!��^�gC�s,gr�O��;��^��+Y�:���Z���Q�w
{l��e_c���v��m�a��S�*����������:������Y�^�$��VB�p�Q0�*��a�����@����9�4s^�/Zf5}�]�u������N)��6{0
�q�/\��I`=0n����*�ww��D�Y�p��f��op�+v���{���@vS�1���YUg�v4o2���b�U�l�[�7��"�4���Q����V��lUgQ����������R�

W3}c.�U���l�=KE��LV4��A�a\6���\z��v�3���%�c��#J�N���f"f>����db���Xu������Igf�3�������D�^H�������r�I���@	���M��8�Ft���1���A�h�dQ/���h.�U��S�{�hl��R���f��H��N�v��&*N�E*��f�����y*����L���]�����e<YQ�R1����o ���n�,am�7.G���Y0��-guM�D��y�33��]��-�.�y�S�t�+����)����Z�v�����������9���E(^�:t�����e�JR���k ��a� @]������_p
������4�rPbU���U�M��N�!�
���kUY����wu`���n`��!�S�s&��Z�.fC�|.;��[��&��0k)��;��K���e
Cgf)�6����
G
8��Sf����%m@���rn�T��)owd��� �h�p]�����L����o:��<{���D��Mfc��S�����3d�~�ge�*v�u��#�W����7�5��sZ=]v�c#��138��4�n��.����=��1�U�Z��:;���M�;^U�`z��NIx�\w �M����[M�6^��^4yo�b8y<'5�t���6�����5��ck�$�)B�j�Y�C�[V�<y&�`��)�,��i�V
����82�5����-�f���Vb(VZ.���O/��r3A��C�]��,��f���E�����4hj�`��e�f�
����'"��M��/�a���f�;��k2�e;tD�@4���7X��8Qw3-^��u�6����������1���G��u�|��[�%�m�]�,�5s5)
������?m���KOQ���9(��������*Via����W]dvMl�t�-vHN32�r������1V�$u3p�!.��[l��k#��k�����$3���Zy��wj��Kh�kW0U�"F��P���S�J��V]�A��s�F{*u����6�Nj��R��E��S�[R{�td��d?CY|���Ea���^���M�Z)ca�+r�+9����r�M}����L�[�S��j�1PE�<�-�
IL����v��{lj�1��f1��9z�~��Z�Sl_&�L�3�U�{,!yQ'������_�V����F�;�C�l��#��.���������������"k�=�I[WL��n������wXt�^�����r{���6A��Ehf=|�����'f��3�:���O�1��w|��+L(�\�2{���4)S��R��`n�����]�X"�����]�tZV�n*w������@��<�G���k��t������/�����i,U��T���N��4h�ue������`�u���n�=���X3��_*�R�����������9C�*fO�;�T�j�+��u�<���������������������31�q���On���y��:�~jfSu�ma���I����W ��&�����	
:��b�w{��r1Z&]�oy�9�]}���7�P��������:���������dB��5E"-�q�X���]V��nq.�e
���P+������mU��������T���]�+����e�t�� P4j��`Y��Sa�(0��-�X
t��OV�P���r���z��������-�'L��[�:�:�x��%Pf���1�z������S�@��S,���^Zx������2��}r��;����U#xX�3U^{1��:�oV�S�Y��9K�4p�Q�8N:%��K��`����PU�L`��@��\�������}�U��Kl��Y�Lbla�o:�N�:$tu��@t�:����]���<�f*�_�9������#��Q6�oM	�twu�go�X+$@
u�IGg+,�"��X�����=iU�-����t��/�T0��Y�h�zd��&����A�T�0�H=��]���/7m�|o��[&J�a�����������31-{6�^�wbp��Pr�������Z�f��n��6���k�|���~��;�El����}N��5�GA��������e[����#���a�c.���e�}|n����(�����}�|%,^�k��S=V���XId�K�h>���r�������ZI�|�]�v]ea�����h�A9��a�=�4�mW0�g���o�����>s���R�����������+�����y��/�i�]��/�vwU��F����D�)�A�A���J�_�<��>)�t�f|����l�Z]���E����]X����#u^L�U��"R�-C��FP��@����(Z]Z7:��t�6/cza��"u�f������O8��|��b�%6�<>�R���^����MSM����l�U����R��2������m;�
o��t]:]���fbS����:\��0�q��W4>�E�]���{�!��x��i�Z�YW�0fh�)���eI�27�w�W���6�������p���~5z?y\������)�m�C�d��^Wf����q{����������%@.
�u-���<��{�h�AR�����gu�{�[���3#n��{.�Eo^��2�W3�s�;C���o�!�4u��G77���];(�W8�;�I��dmp��:�Ok��������0�l������?N��N���+;7�]7W}���~�Y��'��I2��S����_�����B�^�^}�:L~q������D�x��'���������~m/=����l5��!�����9>��H����^U��,
[,������j�G���B9|N5G7/.;�S��P�������N��vs���[a%�I/1Tz���w����p����������/������j�d�8��CL���09j����:,G��+e��^xy���������\�8��wf������t�;�bq�#S�Lm�|F��{�����w�nZU����e��V��=���z��������M��������������Boy��5�����X����k�������e�w{�V�|:�z)����������;B�*d�-y3t���ab��U�*���+�%�S�����:��Z�\�fq�@�����?���`���YK��X���XtG�.�pd(f:���Wj�'t�V���*�"���D��ul9�N9��fR�tAh��R�,�����s�/hY�sOV;Tk6����0��P��7�s����i��)�u����7fR{��ng���+��������������<�T����'�X�^<V]�O:�����WQf�=��<�x�v�/�$&T
b$B��m�����x�b�V��=/�<�c/0+�w���k����['e<�;��*�K�I���g]���s�\�ZcCw$u;+Y�wh;	����F�7������^��{�0��*m[
3d��i�(eu�B��1�v��o����{��� �m����<i-�3�],��^�;��t�oN
\�L_6+��n�qj1y��
n���t�����v�Q�VT_Nf*�E�����/RPU�"�������v�{�_f�
���������0���j���������Z��0��v��*e���F
��h����r`w�Flr�'T��m��Y�K���������������{k�VJ�����KmU���l�IZ��_@�K3}f�_d�w^��d}wk�� 4��Df�e��t��J����n{�&>g����.��fe:4�2�����n������:��,IR�%f	d��|a�-�,��P
W��qk�f9ha���n��&��j�]H������\�Q�W�zn��E�X�,
8��9�(����^�~���T�)K�Ov,�t��]���w�/
��B�����~����[f������ry�!c��'7.�`�[����JJ���s����.���
���?k�+%�n{N�y���iv�p�u������F�r��;���������������37pi'��Z�����g�d����Ef�JU�2�����B6�������r������vz�f�}�j�����s�5�<nu�yD��kU�K2��l���KQ����Z6�cNY�;�v�S�����+�E�(�y-��]�a��,���{\�MV�wr-����f�1�+"�W�����\�8J���|�i��)�=o�/�9��py�eM������Wi�zM��������8F���8v�y�MP���0,l�u�tXg-Y�[����5�.���X����|kj�p�����9�7z�������/ /����T�5��7!���gKW+�V;bM�e��ZK�(v����u �T�u��[M���<������Od�)���)^@���s:%����k^z���������<�%��v����JQ%��S�[z��z������e���p�Ge�?*�7��a��ro����.u-^�<^3�T��k�u�*a��L�������Q�������a�+K�Z��WZn���V��@e����2���l�d��5[�j���uz�-E�K�5�Es%<w)�.����w"Q^M����=�]��:�^�J�,l���Y}2�E9�;�nl�2L�����WZU��$�����+����f�����^�������o��=2Gtt�����#��p�H���o������O��=-%Q�\c!�h�20�VpH1�����	Z�U�" ������$j�nk���[$�!m]o[~�H  !j�<u��Db��k�y�t�AEm�����q  �j�h� ����5]r" ��z����A��W���A/��;�b��$�ID -���O5T`��+W�[��Ko�U���J�^�"��""1D2���zJ��AZ�Mmz�[b@$b"1��Gj�U�-@k�KW��1��#bh�Ec@@kv�^����1�"mk���}�����������Z�"��Q[^��F#.��m�$�G�wc��g���x�� ��0b��m��������Z��$�I$�H�cQ"6�M��@NJ#F#DbG�pb1�Q���\�Db 1b�g��u���`"""0b`ymw�b#F#����;���D�E�iq�1��c{��wwwwws��DDD,H,DQ����x �"{�����wwwwF""1$0AH-]�^����1�c�D�F1������A{������A`��D��"-_5���"""""}{��"""$�D1�����H5����w]�;���b"1l��Q��$$��D	@DD��g�PF1���c��b�#{o+w$��2
����"����W����p�����nQk,������1��"-�"">�DD;�DD	$��	
[��|��"
�;�"#$�b1��QA���v��j�m�DDO-wH$DDDb�#�1W����DDDDA���W�DA@��:����	��������N�����9ww.u[�M�HV���9��9�w1��c�����M��b""��b18��1�{�b1U�F"�[�DM�^�$c��������b��0A�-����	$$D	�[�*�X#� �$IUuf�z�����k�WZ������E�uR�bH1�"��$�[�����$�@����V��klU^�"��
���v�{�DA
V��r��@	$�H���[z����_D��z�� ���	�]z�Q��������y�@@HAU^�"������m�
��B�g��[�mZ��x+��$���F c���V���1�DH��H%�j�!m��m��I���cb��U5����[�*�@@5dF%��V�P�[�o5�Z���[P�k����@HE�H$��z��x lI Z�������@U}@I"�	5v���]l�k�H��Dv��
Z���>m��+P 
m�M[�""#
� $�>��w�z�4Q�cbD"�o� :��B�A[U��j���  -U��l[]$���/���?6�b[m�����J�O�'��������&�?��?��Bq#�w�%r�g)���
����{8��b����S4"����v�3NVf����mmb&^�9��{�2�
M��0Sa��[������Y�X.�sj?y�[0��{+�iwWZt�&2��o0@ok����X���mk� ���{_n����i��v]�Kb��S�Ov%�=u������t��s���V������I�����Z�`6��V�K����q/��{��v��a���=��2�7sL��hP��X�v����;��4�1��4�n�����d�����C��{K�N[��-.�\w��yV<���*9���0���$�ZI�G�����<��������h�b[D���Tu�w�(Q��:��km�U=XWC�e{.e�u���z��;c�
�&����w�-
��h�e57�+�M�~���/]�)�b����#-���\��������r��2�5V�S��t�[)��G:w��Hv��y1RV�V=4o��'>ed��	�8��P��q5��Fw.��E��}O�x�vt���C��e�
O����I��zU���l��������unF���� ���v/�;WbE�l���{s���������:qge���o}5k%�7�j��>�����n/R�����m�^"%��:6bLa�N��c�5���%]��A�4N����U�����[��,%��Ycu7�q�:)KS	s�-YBh��%�w��gr����dX��.�u�4��Y�;y�5Pn���j�C=tf�Ym��9�o�w,�f't����YX���;q����8%��1�R��I�a�O��c�z�t���e��h����,O{{G�����LN���a�{�]��h��>~�,��J�����;�t�Z�4����h���uW����q����������M���FJ���K���Od��2�H(�
���v�������n��<�+��:�A�����Rou���y;�GU��xXq��/p	�u}dU�
�ea��f��Dw-�\L2VYY�j{R�j������1�e�I�%�hY�.�=9��~���N�H�����0#2����k_I�WC�8�k��%��p+55������&��<��������H�l�|x����s��i<��}���~hF����>Q�T��KWa������JQM����.�9��7�z�v����������T~�Jo�0w[~��w��+��K{v�%Y|���
�R��K����C�Z�m=���8���+e[(���Y��N����l;k�������Y�n/�#PY)f.��_U���fm������l��j��,��}b��*-���+������C{J�X������EwW��>�yR��]�2y�v<Yf����]]�K��w_�}���HX-�������;������v>u�%�����'R[���3��3�,�/'�2^,*�XF�K|�vT=�����P��r�p$��kSfZ���4"4Jk/��=�3\{�H����Ii�9���w0S-���A2�i�%�R�:�k��C���xlw��s�V�^M��TJv�^s�)[<�O��=C�A`Y\Yv��7�Ys6sB.�tu����)��x�1c����?k�
�����Z2�������o��JFt����pS�YF^�������(�y/%�js�5/%�0�H)/,��b{2�b�+>|�_i�e������i����E)���>�rp�\A������+V\(�c�i��;Q��:/S����.�u�� V���;]�����V���-b��	���e>����r�VVK����B����+�U�%�z�v�T�moI���gN���Y�N��,�7�o����1a�23h����{�^Y87f	�G&�O:�!�Ruj���U���o���t���ySsu��d��������>�
������iY���tW|�������kw�u���������k��~����j��y�:��mp����m�T��s H�9��)������Q/Os�������0^�;}�gZ�&
����s)^�%>Q��/��o���S0L,m���(Cw�i�����v�fSh^TP�'q9�����hl�HM�������#��c�p�ySi��1H��K�}
�,:B�n�k���������t�M�DS�N�����y���8�^���Q�I�[�d7�����=�9��{�qt�4v�xfm��W��N2��4��Wx�����s��\��{6q�����C��=�J��q���{[r��ka�=��-N�Qx��~�2���o?]�6dT�'QwK���g]��1g��w���I��[���r���VW�;��FmCr]l��v��7���*(��2K�p���m�X���V<n�b�w`��/7��vM\e���c"c33r�����if��Vw���`<�K�
�'vL
8�j��1���N�Y*�2��������n��_ZR�-r�A�������������U�������j�F�{qL��^E+:!s��rG>����fd����u	z����m���BkT�j%{4���\�w���:�fW����TU:v�\O
���V^�4*����Mn���^a9��������Q�k���.�$:�X�}0=���4=���QEerI�]����s��������u�*�d�� m-�e�2������ww"��S��a�I����7+s��]s��ziu�E�k���
`%�B(��y1v��<[c	�H�	���Ksx������]�5I�U�yzQK������������	�i��������:�Z�����]}*��bP�����I�o|wu������]#��/o��E�����1�E�3-,Yj���q�T����p����Ng\�1{+=����
�o�>_�$f=�������h�E^��Y�T��s\�h��wc�z@���J�
:��"�m���V����]i!^�n�%�Y��z��VI���Ih�9�AGwbc��c��b&K�N�/�`�X*���w�����T�\l�mf��WwB���o}�nV�Y0Ni�M�nb�s����e��v������x\\��R����d�/)��G^Q%��=wI�fD	��w���T�����d}���B�w��W>E�{�x��X)���[�t����t�����xt�7*]�.��TUX��=���j^�K��k�<����F]���x^g
gQO���+a4p�o:�9���Y����@
.�M�r�n�UV��}������TE���'��3i��VYK}������?U����_[{��]��n�����IV"��Z�R�m�d����q�Y�89�)����hf8��Q0
�:^��E]�T��f��������)c�L��K8itAuckm�<��U�^���G]���H^R�]��T;CG76C��&Z�-���Ab���������V]���kRa�)M9��<�U��N�b�2Q�
��gwl�w�'
���b�vw��[W@�����-z�rw�=��:����
���o������,3%���p���9,k��2��oobSw7'f�q�����O�Yxt'f��yugrT��f+��o'�f�����3�j�h(����xn�����)y)� ?J����Od���1��V���u�����l��n����j��R����.(i�����Q�6���N���sd����G�ql�7��L�]�@T�����is������`O2=j<U&j��~���bx�I��\����/Eimt��X�f���k�^cZ�W��y�n�����.n��Tf����yE'8��		�[��;�����P������^^���Uy`���A�����W�V�f��*�C� (-i�C�y3z�WV��v#�Y�;{��h92/m����S=��u��K��I��N��
Ts� ��t5g:u5�e������R����:�=��K��
#������6�`�:�J���t���2���B�XdQ����ZNd��g��96��d%9��xWVr��a���eK~;n��i�w�.�+Fq�h���ie�d@�8�����������P�������h�}�������:�������k��@u��\3.��m�g��9y��c��j�C��0^R�
�v` s�V��y�����GE�au����v�r�l��
����T�*���PR�lF���}�u��-�u�B��;w��v����q�vwnf���� �"�	&���h�Q�zq��\\E�WN���[��*����������1W��Z�fL�����@
�nV��n���hS'n�P�����}Ek�R��wEn�(
b�Cn������E�,q#-S���%��n����i�*TO��k��:��1�;�[�Vw^�
�V,��u2o6�j��{�H_I'��yWJ��-���
�����S��R��h8�l�g7��x'���}���/l���Gp������Vq����um�8��!I���*���(�sLB����w&5�����[a+]����FM8�v���P	:%��}t���le�����$��]#]{t�]�Y��t�u�+�z�P�QWs7S}�Dy*��/8�FjA9��xe�Zf���fJ������<����������rF**Z7���u7�|�em���"q���X��
v��|s�e�w��J�
+����+e������)�u�����.�)������q�.d�l���c��j�X�V���7�U�:����W��]f�����3d�pnn-����e���!f)�S]n�:a:>��W�w7c�.p�z�3Tl
��Vl����(�k�/�_J(e����N������w�=����-�P.{Ff����'��3W^T��KY�p�j<U���%���P����!m���b�q�*��q�������D��jd�y�n���d��e&��\6���)����j-�R�q��bt���[��xybZ�S8��$[����_��������4H�b|]v�5���=V���6>',���!��������gJX����a���*9n�mb��g'3.����l��+���L�k<{���E��'� ��D���Y�j5GW���P��8QZ����kaih���8��3�
�g'Q]*P�F��3m��JI����%��>�3y���������#]��;zN�%�4t��|���4C��b���Y����=4��������<�
wv�g��d�-s��)����N�M�B�����]0�3u�ory��m�+��4���w���_c�J��lb�*��_.�kf�T�[iee�v�W��-�70Y!����8��9@&_@*��i]+�{Q����Y������S\3����b\Th��
�i������1<�A���c�I����[b��=��{��sw^�z����q�J�6U��b�bJ�J�
����f9�F���!�x������s+-�(��]��~0wS�W`Ys��'h����<o��F������`��x2�V�V:��������o�'�+��t����
PVWE�
�3i6Wkt�]�bn��G:J�Ef>���������	�G��`��m��z������^7��U�����6�,K�����Oa��oZ��d$.L^[�r����o�������t�y���3�b���A�2�J=�����eK��	{����d����
V��������S��pxz�^�����+��m���8
J�Jh�@�Efvdo:��6����lf�r��U4	�U�
�uj��u,:2�V��ne
{x�y6M;��.��VaQY����8�*���>U����;��kc��R3�0hz���Ou��d{i:+�l=Y��u��4�|��9�Gb���7�6h5��2���������{�+��q�����%��D4�ir�+�b�A�[�v��S�"p1o�O��pt���������%%��\��3iQ�[� �X0k��C���c�2���w.s�l��&oQ�i����(,o+�Y�)
����1�$�jU�����,��M�.g:H������MV��T�>����5X8��v\&��)u��L��������m������`]G�����(��s��n��(5�nR��]������}$]���-�{��b�@���)�:��1�r��C%:��7(8v7i���|����-�oZ��C�Z5��V�5{���edEX.����*v]<�����zqm>�vW]3�6tFWs��=��g�j���F��+��s
�Y���NZc�H��K]��v���L^>V�crQ\����y����;���'e���^`dK�J���m)�,pt=/q�!%nj���]`��Au+��z�:v��e�e�u
�\�	�![VQ�!�#�����v���l_f�n������R���i�R<���������-�~���5^�;M�/�,��9;�-��������� �-[(�[�V��9U��s+#7���u�4�5{�n	P�.�2��;���aq n�k�b�,.�,AtK�����]h��Ls�����okf��W�+��������3Kr��X�^u�����7#�E+��XV0A2����w������}4��Y�z��j�����j{d��9S�2��^Y2�5z�����4���������R����]bf�b����:-P����p6���f�������)!���p�D����7:]����/J�e�����G�<0�(�qu���������x��N��t�u"��!eM��|%.���1n:������!��N�����=z	���{�Q}�\1��0a�4C��3���~:����l���,=j�6�%N�����Z�M��)�L���i�9����D���{�f��/;`��;B��1���)�dJ ���'��{C�9]�2���'��Ij�S����Q����&d��W��Z+=������g�X����{va/�o=��v�s�&6�:C-����m�m�&�qmWj��Vm�
���H9%���t�*�G.���EV�oWfC���
��Y
e�=f�o�t�GNb�������u��04i���
�#������7��i������)�c������b�f���������o��:�a`��7D�7\��S'm�md}y�P�=O=V?Z[�5�w��Won�>D���md����-�s;���D:�]�Y�[����\W�X��s3^�vN�9b���T����Xv~i_N�:��-��*���O�G�su��Y�%K��R��_k��C��]Y�����T����r����
�*��i��s2�K�����usxJd\�
�q��R~���TUk���w��]��/0>��R����]l_6R�{:��jur���Pu���{�����.^��I<����s7��)��)����jY��I�������b���g����M������@u��0�c�Hy������Z_gq���<p����We���d����Q�/�8����Y���9�so�wu�����laWi�AdR�V���C\m���A���dH'NUu�����Ib�K���T�����FT���Y���-��W6	��'�p��3��������\�2�\����]q���)p��e��������r����\G�r���T]��N� ������I�T����- b���,�N�������^���u��;z��O��l��X���1��=i��,T��tL��:�Y�H���Ma=�)���;�����P;�cNT��Z�v7�����R�H��M9%�����)�:��]�����i����������6�Os�_�Y9y�xM�����[S��%-��w�EK���n/�;c��"1�H
����G�s�������LIrP�����i��"T�RpU����3@0W�w������W�[���cx��n�U��%]4:�������*a�Y�6��RCm���XS9��w��y_c�oN��-k���Ob���}��c�-�3	ww3|B���*��u�]W������<�w��B:�����s���O=�C�74=*����]H���P'�o���m������Nr��;��zYH8��.�8����U">���JLK��L"���
.} �E�"�5�����"�
$Osh��7.A�
�%`r���T�-|����)��n�
����>�7W.�oR�u�_�Q����s+9B�svvU��Kl����d�[Y��f:�sZ����?��0�������������8��.�\^�L�;���K���5��y�a1����Yq���<�(^�iul�U����O578��+����s�M�x��9���Y��a��9j��YR�5
�zh(D���h�m������Z�������H�Ee��5���������]7� ���VV���Z�����h{j���Y-O����}yI"���-��F�
6����v���MP7tB�yo'5�i�tM�����G8j<�+Ng@��v�.ES��U��M���O����:��nI�F�"~����57���,��SL])�+��oed�o'X��Qo(��\��U�k(J���������hQ��	�#�������)�7o!���Z*�1���]����b��l�Z��g�z��*�{���Y����J*�j��(K���;��n>z��y���"nS����>�`�3+C����������l�p9���yc�2C���Q���n�^��&�?w)�'����
���v��k��rgg9wR��(1����BT���6��xw���<�'�S\���O��)�����w�����l�������������K�6��<� �/qe������w#�@0Z��������,������
!����S��T3)b�g
_t�_NV��ER�_*���q�����*��u��f!�U��_
�{p��]�1S+���q�9����4k3IWj����\/������u6'#�+t�{++���g/�<���}[�\�So\5\x��f,�v�&��M�?T�{��9��FI9���z�v�.�}�f��6���1x�������J�w����H��HfmL��U.��-�����A�-�B��93�csAf�5jp��<�ZYS)�TM2;�kN
]_[�4I�Uh��v���]��������$�g>Y�c������e��������12�Y��m�v[&�^#/ZV�u��Y��_���x>�ImjLB]�
>{[�����'x:���^���
V�����nw��\{ �9(���+�Vz�n�g&��f��D��[#��i�Y���C����:�^�����������K�G ��/x[��{s�(�iJ����Qk��wD��y�V��=�������cT�g"�J��1�c	��{q����������G����z�:S�JZYtp����2��f�c�mN��\�����\=L"�����;�����E���n���w2���Ne�d�9j��.�z���3��O+;�U������3!���Rx�:0����%�A.�Zq��]-���K���o%�z�t,U����8;�ZI�;[��m��V�#+�70��(������S�-�����O��k�yR�71�$�U�\��nw#����3om M.p�*�FdWPh������&�&�d/��T����j��C��p(��D�����=����)��p�/V����y[��O���������q����CNO$)�z��6��Y�:�tz��������+8V?h�l���{��K����te�Bl'��2Jjw���f���������f��.���'����P���������d���Y��hd1U��j��epS9t'WP�
�v������?iD��q;Z:\\j�z'^;����+��FW�^�5������AL�lPI�y����/s��������)�h�WR�z�s[Y�1����z.r�`4w������]H����b���e�7�t��h	t�����#���H���|c%�o@MD
W��}u���ykh������$eb%Z2�x������P��=��f�[Vp<����|�0��C(;�����M�?�2��g�=u�W�<�����[r�2��J��`[\��6�+�K�%��Y�oEL�E����y%��U�@��.��u��)nw(��%�B���{�!��k8z��ATZ:��dw|]kww�$
�7]��+�U�����~��z�7�N��vy�'o�t���Wd�:��5R��0������9�T���B��M)����e
s.'��k8�@�un�"�P�X0;����|�X��]��9�J������5�W,�%�5���]f�
�%������o+W^r����o8��<�?&n�'A����'	��u����Y���6f�P���rW+3��t��o:o R[�.�gqOn�JA�s7�i�����������;��Dl[I�=��h\��"u�m��J^��I{g0�e%���W��:�V�����O*�_�R�������g���9k9�kN=:�S�-����k�4��f��@��eF���c	�AL��6�/����*�0N*6`�n�E�u��O��*�y������_U�D�W�=�X&T�u<��n^'��5"�����j:VE�c�}�zg @����nX�r�*Sh��A����wv��/U�9���������x���Ty9��z����b���}���4.�u�~E����5y�:��L��!����$��B/n��&��=�Kv�.�.R�0M���z-��(a\�eg-]�������:7��>C4����h���^��?�{����]�0�j*��,0��h�)��yj��{CPhT���O��,
�4j��<��N����~�{/���������j�;x��N����D)_X�h��GLQt���q��wjx�T����^�;����*��c%m=Q[���,�[��s��{���%Nn��r�R����B�������\�nguJ�O�Vt���������wX���+�v9�S�q�(�b�v�����|P�;r��X)�zS;{HDw:u8�G(��D���O��_oR���������L9����+�k�������������y/[������s����o�Z�t��e����N/�n������7o(=�+w������M����#X�e��{����yS�y��m��FN9�7�+(c���<�&���.��j�'�����'���Q�2������������
l��,>�<!��5D�*K+3���^[��q%���V`�+�V���N�COG,����L��b��}-�����e�A8H�c8^[��v�vF���,�{�"��i�J��I!hFE�D[��Np��11�I�]��@${�XV��A��]'�!�	p�����������T��`�5)���R\����
��fh�]��J��1wm�$�X����4���>��2�&j~~�s�����^���@�jw!���N��^�v�0��������p�t]���"b�����J�vm�Ig��8���6�qvR�&�lD�]�t�n��kg��;��w��+��[gq�T����Fz����m�EK�����6e��Z�]���\y�����c�}�!��pG� �d��=�d�� �H>C���*����W���^�b���}��������������K������e
9?,+��A�C��%�K�+���J�^u��5���.�}�hb�'HtW���V����:ezy�������o�����i�h���@_{���y\+��-�=Y��:��h]�����B�v���jK������=e�R����u�_�c�y��.k��R����2<�m�*���;{�cc/%fi��;�Y��kf$G�����J_�z���f����<�s�'ru#}����{��
�9H�|�	�>i����^��u���>�,v���	�ho83��y�h���N��r��N��-���|��w*Y���L�TWt:��'�N��f��8��;������F�yj]'��z�s�vG����]��8�Jt����V���y�b��wR�)=�n���uK�"�����TM�.�c\5.���4E�6Fu
�1��nPz�	Tj����Au�}vf.���������N�����kh�w	#2q�Du���_N]��E
]������#y��N{u�u�����U��5�]^��S��w�tFK����������h�y����n��Z6Z����� ���-��9o����c���#0��
�C�:������I���y�����{h�$N\\�^{������X$��q�m����5i�k��9�����n����=�ic�������"�W�c��{�
�c��$HiBx�����tGJsk~�v�j������Z�����3�lF�	.�w3^����K�����*��2���T�S��d�?X� ����=[=�{��$��Ssk.;�y�
��Z5��`���\D�Wt��v�mb�S���<�Eo�3��7`8u�AxU�cY�4Zu��8*�v�s2o�&�������{^�pVG%�<}%;U���y5���*
^�_
�lc������Wb�������X�q]�w���g;�a���f���'���-�5����)�v����b���6���~��w8�C�r%z�������z���5�XR'�,�C���o�X�����v�{��6�����^������}�O����;�A����x��q�;SP>WcG���6gK{����o'�sj�7��������'��<��'�3����^�]�k^q������o�t��^�D8��U}6[�����Jm���TE���i_7)�,-�l��Mt��w'�Ro;!��b�����Q��e����]��<��tK�UU�}����}U���7�������~�����~���O�T�B�P��P�T(�B�P���P�
���EB�P�Q��K���EQ\R(�P�A �%�
�`B1t�(������Au��k����(���N;��pk�� dh
(�++((.�,�7p������������(��(��)+Ir@�
(�
0��j;��ZC�.�L��(��(.����.��(�.�����8���CM8�� 0@8�@{��m�`;p������e�P�2\a�����#e����-RV`KWw.��@Y�"������0��CC��-4	@��cB�n��������Pb-���JU��� �N�h!�.S-��.����(��(��;�������C��D0$A�!��1���A`@��,,��0�XE����(,��w h!hB!k��!��[�!��QEPt��|`Q!&���q�cd��g2!@�!��F�=����>(�4�,\XQFq�@�t�8��04��8��C�@Fp0���0�(�!�umQEQAfa�e��ePY���m���;M2����(���2�(���6��� Og�{���W��W��4�8�(,��|��i�YEQEP�Ip]�	
���(�
H�����QE����cF�Xhp���]��!�@@���P�*WQE���G-8����,��8�4��I@�.�����X�tPXnv�i�q��QEQAva�a�QE`i�hp21��FEQEQAfa�;%��!!@� @@��F{�`HwwqEQ@@4��8����N;M0�2@#�6�lm���,tPXq�!3H\	��#l��2��-44��d�0�����#K�8A �A��f�q�n�@�Na��
�!��@�(�� ���b�a�0p�8�l8�0��QE��0���Tm]�izX2�p0k4�����(��(��(��(�,�04�4QEHDu�!�QE�e�QEQEQEP��B#\Q@��q�h��Cd F���(�	$�@����!�F
��(I$�
�	���\������F�0�0�,,�p;
��(��0�8�c]���h a!� �$`�a�a�a�q�i������
���Ieh `gq�hni�nvP���Y)�
!Q��eqEqH�1���-G#Q����v��u�PXhp��E�m���N�l���ADe�h�ht�� B���]��
f`����B�M8��;M
7C����(�� C�	AFu�h!����x`���a�x���!���
��I$�H��2H��(@`	$�Y�d��YAA2����eQEP6HA���e���q�hne�QEPwZm�0{c�[��l�(�Ik�QAf��YEQET�`2�^��||A�ib,#0�(��`i�q�hnafXY��2B�l���a��q�%�h#0��h�+:���N����,48���X 	�Vu��QAf����(.�(���(��(���04���0�
�@4����@���$D����
a
�l��p�S!�X�����C6h��F�Q�8�8��;M0��]�����!�p�@#���
��`��BB�(���|����X��YE)QEQEP�wen��Q@Ei�B�7
�4|�.6�����������!�hB;M2�(���M8��#�����(>��(.�(��+N�U�VU�r�>G!p�w,����F>��(��(��(�+t�2����� QEQEQVe�E�^ph@�w 0���*:�3
�4�3K������4�/K����������(���QEQE2CCX�m�PX$�8C F3��"Bt�"�&I��Ca��a
�M&�^���
;8��5��g3�d6h��z�@J6>6��N�����`i�d�P,:��,�2���(��(��
�G���E	�
!���c��,.b[���BB�(���C�tt���+
�>>>>>>>>>>(�.�����N8���0��8��8�2cJcK�C�L��(���(�, �a�i�YE]�E�fe�af��6��(���
��@��f`n`]�i��B>6�(d�H���M"&&>'��q�{���,�(,48��(,��A
v|P�0�����Z_��$���07�;M04��8�����(;�N�Z�.���@���G����.>��=�W�:L��,KWi�����30�0�2�I�BL
��x�,�Pb��CM8��;p4-6��0�0���,���Z�()Vaa�)7#��\p�8�44��4�Af�D$��v��$ |W;����B��[�v����u�zW�ui�@I$�(��(��(��(��(��0��t� 
��
8�6�(,�8�d!�!�a��!� ��&�.�L���2���8G.��(�!cB!p�q�����v�
;��-��0���1�c��I@`a���2 F���"���(�!G@@@4�4��N#$�I�`�l���@�	0 �
(�08B��!��@�� �@ 0������ef6Ha������$p�&6�W��Z-��V�$ i�E2"�\%��am@�!���.��m#�������u�������32����WR�3
����>>>(����>����(�,�����>����������+3�����(��.����(����/+(,�sv�,�77r}��4��lCc�R�q&���	������2���7ss���0�R=�y$�+���wq$��;�A�8�Gp���p���Wp����(��:�=��R=�wR=�}�I$��(�����.��ssr����wB��������3(�3r�����J�,��3/)��uo.����3��>(�.�.����������>(�3(����������(��(���������>>>>(����.����>(����(�B���4+t
�PU��4)���W||||QwG��fa�YEt|QF�vWG�QEQ[�[�{wEQAvQEa�eVU�E�n�E]�<y<��8�x��������>1�>><x�����8x�������������x�x���$�Ba��i��q'�Z�\�r��r��M4�����.Zi��k��>�������`���4���Wk��~��3���p]{2r�n-�{������������FD�u:n*�����Y�+��X�~�+-����r����yss�`�!B�6w2;oRk����?����/�c�1�����1��1�m�d��<x�M=����r������\�i��*�������M4��I$�����{�V�����m��3;UA�Z0R�A�|���#y��V=���e�m��7��������u��snl)�n'����k8���"����:t��,��Ie�F���X{1M�/�����t���X�1�c��1�c�c���&<x��r��M4�Nw��-4�M4�M4�M4��s�B9�MK����[o���6�(���M�$�u�:�^��py���u�u14n�v��Z�
s������8���v�?v�u������(}�6�����]Y�|gj���f�
X�Ck�5)��k�����s��;m^:t���1�c�1�1�b��cc2d��4�M4�M4�M=��r�M4�M4�M4�,�����}���@�D�8���g�;t��s�l���	;��W6���Y6���y��n*�YU6���j�w�2�S�������*�T��%������j�����'z�/%�Z�����t��eS�~�����\�c�1�����1��1�m�d��<x��.Zi��i��i��i��i��i���#7���������;�����E��n-��s�8�}+M�8��\�R��2���������t�L������q���I�����������������!��n����
��+���Rr�U��\�c�1�����1��1�m�d��<x�M1��-4�M4�N{��-4�i��i���UW�I��),��9L�/��V^�����N���8�cz����tL���k���/��WIN�M��^��^g"�c���[��u3�T�J���[�C(/Z�3$}�/���__����|���~��1�v�4�1�V1�clc&L�����i�.\��M&�s��-4�M4�M4�OVw�\s��7����]!�M]��������,��*v�{edkO�eC
��fb���}�$����	�������e���u����*n����}��=�\�n�<z��c�1���1X�1����2c��i��i��i���\�i��i��i��?z�������W;c����+F����H���n�0�v�����
"�"�m��^�Kwu�)��R.Y�d���;2�\�/;�vk��Y�{���?������/�1�c�1�1�b��cc2d��4�M4�M4�M4�M4�M4��.Zi�9����>�A}1(9����wk{,����	����6$�����_*�/2j�J-�w7�LQXV���[�;7���v�J�\�b��
��U��2�H�u�����]u���'�+�n�=r�1�c��i�c�c���L���4�M4�Ri��i��i���4�M4�O}����UxU?����C��fY��s4C�(+u���my����-\��GC���]i�Gf�a��>�.���"�e(�cR�����%������?d3��7&G<�d����z�O�^�yv��yG�#3L��|����Y����-t�~�N���>�����#��;�nu9�W���U�d���:$2��z����0�yn}*g�F��U�L��{���x��c�:���*�\�Vf��wZF��[����]�R�R�${���]���+e��}JL��v�L�{������3������u
�����	�ERP)3��2������k����������JojblY`�k.XGLf�`;��P�+3�r�3Of��{�G����w��(V~�{�r�����N�����(�a
�/
-Vt��N{�c��H&c{O7:]�>�t7�Q�w���%�V�7�7���N�Cl�Z�W�������ua�*8P0S�����"�r�i'��}tj�������� �,��j����Wme��p�v&�5k1{���k-���qM�2�L�r�R�;��n��R�l�����E90W,�Q�-e!W��&K�<�x���n����Ow��~w^����ks8J���*���U�{:��:�w��;�����Ev�
V_'K.��������e����0�d�s���w�_i�Vbw�+h�s��_��P� �=��l�]36��B6>�S8��m3^N6h���l�����o!]��5��1e�����C����D�9Y���97n��7�j���O=���*H���5�}c��+j`��`wi�l��"���-��&�����Z:��*jg�z��L�^����KO����v���[5���f�CsI�b���I��q�'k�;�9����{�L�Iq��5�Oi�+����Jy��\���W��t'W���R��6�I:�y	�]��>�Gx����/v�U+����[�#���m
�FjW�:8N�yG�v=��
J��N�*��qoz�`4�tS���������d���]k8��T�����y���FV����� M��u�D�����qY �H5��p�� �O$��N���d�q$��L�����mtJ�$k��:K��!��jM���kV5���TKW���������]EwZ}����E��e����w��K���s~������sW�M=�We����,���g�.���������K\�����Ige��:6H��WXs]�6��xgE)�v;��`�y�z��z���6eY��	������e����Pn7�{*:���j��{g��G6�h�?_{��W5�W����h#���]���v�t}�^������H��5������
L�$����FCD��N�v>��~K{L��}��/g�P>^���,�X��+�2d�i�&����uQ	�!I�Gz�9����m�r��[��w��Sd�n�nl���������������{<��1���b,h���x�������)��Qo5���Z�d{04=i����.�J��$������}���o���T/k�Tm�8:kP �vuot���:���K��k�����*n����4�]t����.Z8�fz9���2�F��v���e��P�������<<������u����S���9�����/��~'=�����"|]�����J{S����:��<G����m���������!��f���gr��;*�[��.�X�{tRy��K�^]�mj��������nEm�����+�;B�K���@�	 ;��P������+��l,���]/�>���@�2��XK�Vkw������\m*�#�qus��ev;
e9eJ�j��^������x����m:���N$y��
��8��Wj��lR�}�����$��J���q�wo�-��2��
|������� ����YWui��������F_b�]�2��^[����M���uo�T��������gkoE�'��J'����E������lq��� ��e,��^Pz�����>�zJ��"�{���U���x_<N8z����0t}�dS9s$lio��}^5������x^
F��'��k^����$����_�KZ���_u���!&Tt=9w�)���U�	�4��zy����z���gK���O��xhWr��<�i%{��t(�����;������
v�%r�{�A��c�+=������}U�UW�U}��������G�A����S*U�b����)z����zl��|�e����md��������{��wg
��i]��-�q���d#j�k�V[L����Kvg��We
���f�]�����'���=���s8�;��5;�q7;����>����KK,��#\�<��`1�+H���V1��
�"��X�Q�c6�[,�1�i�imcm�[-�y���$�����]R��D�x�mv��j1j�v���SPQ��Z�[��F�]���m��4
�.�mT[���v�j�[��F�]���u�5��TkM�Qu�j���W�y���m�c�j���b��]E3m�kM�PS]��v��6�PV�,{����qb�v���C�{H�M4�F��c�A�lh
A����D#�c�1����f�1���<��<��`1�(��J<�2�cJ�1�[	�����c�'���
#�1�H�#�(��,c��1��K��1�f��#�1A�b��h��|��+�S]�2�<��1#�W};��N�s��z���1�c��1�c�c�����c�?!�����p��`�p��`��*��**��,�
��Gs��r6�n`�p��`��*��J�%g��?d������5����|~O5�=���pk��7��V��V�d�Voe�w��J~~���i^��Oi&LB4�������`�;�������������CP��-_�k�0��z��L����������o=z�z��1�;x���1��1�m�d��z�1��	�V���Us�Us��U\�a8UW28�������m������m��#�Us"�p8UW0~C����s������V?��������M�������	a��}:�n"�k���k�����Iw\4F���oPb��[k[�z��#}E�3I=�����=|S.���t�M��gs���y������:x���/_�1�v�4�1�V1�clc&Lc��cP|��*�
��PP�*����h���J��I>I�&��M��
��PT+J�AR+J�A�"� ��_x�����j�k�J�W�3 ����3jV��g[�r�p��r�$+�T�	V���G�j�7a�VQZ��;������
��R���R�xQF|��eo�M��
�9�.��	\����#'��!�����z�~�~?�1�v�4�1�V1�clc&Lc��cP~�I$���j?�q#|H��s$��v��)�V���V��%iU�,IZUj�$m�m�"������P~��$A�r���������6Vi%��9�:���fe�vK����zn�������|~�]���uL.S�Q��;[��f�nO=O�W����gb���G��CV�1�������n�sV�J"�&Bv�gr���s����s��������������c�;cc�+�1�1�&1��1�����V�Z��ZUj
EiU�?�����j
I+J�AH�*�;�
�i����p�r�mA`�*����8I���@_I~�j��.I]���~1���R�t��S��)�Em�9U�o��w.�
�7�:�����xD���������Q��y�N�V6�={\����w%�?K�^����{���d�A��#`7k�v�(_9����N|��6���}r���c�lcLc�c�6�2d�<z�5�
��PP�*�"�����'��iU��	,�nCM6�PY���$�*�s���I9r�mAd������w �� �s��2��_8������}��/�������o}8����_.��Y{���ci��'��z��hW�{�s}�AO�������fu4��]�g��oj}�,zBR)��������u�V��qOm4T����[��S�����q���s����������1�c��1�c�c�������#�>M4��H�*��+J�AI+J�A��$���j$����H��V�^#��$�i��������~v�?d��z������q��5u����_�����B����:����_��YX���u�wI����<c�o�|���.V�S�I[:w���l���<+$�j{���3��(���;Nf������]_'wy��5x�Z�������z���_�1�v�4�1�V1�clc&Lc��cP|"����
�m��O�$o�$~N$t��j8�7�&�6�m�H�n[m�7ZUjF�I�	6���m�?&�6�����ZUj�;��� ��.q���������ylbS�G�uX����u��V+mI���.[E_������������Z����>�n^z�y�����oL����h�/2�����4��G�8���}y���9�M����V���^?\�>1�c��i�c�c����&1��1�>D��V��EiU�)�V��Ix�NUj
I+J�Ad+J�AR+J�AQ+J�ARJ��P~�I'���������}yu����O�&��l��t;V�5P��l����e,��Q�O'=r��=b��}ooA�zw��B��u�P����(���d�wR����]C3.,Ci�fL�B�J����}>���c\�>1�c��i�c�c����&1��1�>iU���$TIZUj
�J��PX���PR+J�AD�*��+J�AR+J�Ad���P�w���r�E���_��Y�xs�����D��h����v���Q#u���"�)����d=V^������� ��V�]E��vHG������'x��U-k,w(u��c���4�����|j���r��a��I<��'
'a��t��]g���I~K|R���O&Y}�KD�n��� 5�jit�[*���������#u6���x�v(�+�/c���-�L���m�}�_VN���LM�3���9�t�������1���3���i/s�mD��t�]u.�6���2a��w��zs��X{�Z�7=��m�{����gX���S��6^�����}�*b%MP���=v�Sc[�8�]���S�*�������x}}�j�����YJ�q���o��m��K�]��+evu���}{;g;jgsfVl=����0���nl�����f���R�� k(����}����Ox�=k
�wN:���$��)��l������	Z�r�P�^=h��;:��
�f��gu�!���1:�3����e�����v��Q�V�2����;",��4�p��
��e��/�v*l�G,^���,1�(J�c�:t*EW�M�7��a�P�o>�F�0�m��l�����sT-�m�^���!�+�g�z�������G�q�����������V���vhU��d��V���[����:�Y;��o&��t	<�7��=\P�fz�y�{Y�����	���������2�m_|0���^T5����p
9�D�UvS��3�m;7s_3�;{{e���y����S]�-��)�d'7${j��G��^�\�u��h�8����E0��|�TM])w����o�YdS_:M�Y�1��g�d�a������/a�
�Y�������v��o�j*�����������!7�k�������
9���;�vN�����.�{0��z�����t��5�M.�X�BG�#�B�����;�|��p�����������zU�sfk��+�8��Z]/�A6M_u���s�}�f�$��������uv��]�
(D=�.%�xX�^���D����s�g$���'��N!$��Y �H:��d�$�7��9������I�u[|�I�[��3+w��Z����2�T��~S��~���#+,���^,W/���}��a+#&�Y�~���7@�����7������L��3<~�+ ���g�������w�U��-f�Z��{��B[�]g�#��H��E�A,�O
������{	��}y��}�s���,s���$������oh��z�-��t5������7h�{
��Ho-U��ep*��'!��e���f[Hj��h�C��BkLt�Wp����5���*s-�u&a�e�Uq5;i�F'�zs�1��=n�fp�uc��/s���k���vc�$��r��������������w�qkj���<����*	�������I����%��C^O��~=b���z�����sY��V�h�wwr�p�-�vT�'[�~}���^|Y�Y������F��r�a'v���q�z���gou���'P�Z�����Y>j�*���v]�������I���VS�l/�r��v�m����7�XY������D#[��_��[����3g���|�K���{����a�X���fW���+�R���i��}}=Cn`�GC�2���,os���%��b�.����U �`@���C��e�������[�{+:�TW��]�d���f76�g���^�9�8������	20����e�H�+��:w�f�[�C!�s�b���kf�f�����e'NV>�Y�*�R�U2�@u�r�MXX��'�Qc3�*�����-�O�Y�r����8=]���]���yS9�����]o�����YZ"b�Wk�-H���M��{�6�����we)��+�1�<r��%��aR��������Y�|=���{B&�]�H/D���{�4���dm9����7N� �i����u�/�������(k�����s:���������B��s��Y};/����,f�����y9�;�C5����7��1c��T��W�{��Df�N����'6F������SE�%�����u�=�-������{���^��~p����)�P�W`j�[8v��4����;���|��gz���w�������q�H���b�����&���w�U�����G�G������+.��+MW��������k��s��v�������.�����{+7n�R�W4�n�z����������g��-��i��W��~�?���w���F�Z�U���PU�_�U�B�>w����l#�<�2��
k�c8��B)���0e�3m�K+���imcm�Z�l
5�`PSm�g��_i�/�Zy�]u�V����-�5��U����]��F�]��n�Uk��]�h�ku���cQZ���F�]��n�U��Tk�����l����AMv�<��m��l�1��A���k���4f�(|������k�����(��AHF!<�O/�(�li��{/����MK,y�#a�imRe��#@cly�1���y���f0y���b��y�0eiQ����cV���O}=���1��O �<�4�<��%M,c��1��K��1�f��k�1�4c��Z(1�Ec�a�G�y�d�8�8����N�:z�=z�1�c�1�1�c�<c�2d��x��i����I$���PX+J�$��&��M��B���H�*�7��&�m�����V��%iU�,EiU�8�D?d��+�_�7�2����k��3�5�#�w�,Yx�^��ez�^�_������0��������{6�<��	����wV%(F��t�U2*�d��U��s��R��cq�7J��_UU~�{�m���G��c�;cc�1�c�8c&L���X���J��PY$��V�}�$�i����V�Z��V�Z�{#n[m�,�ZUj
�V�Z����V��^'`��A��?=���|��7��_w��++2�WrDQ��{f]glQ�t�OVfV����2�pr_���Mfe�j��tf2�S��;��-���b��K�D]&L
����G��&�s�����?�v���=|c�1��1�c<x�d������*��D�U������$�*����r�mARJ��PY
��PX+J�AP�*��>����s9���3���[����>o�ru7�����Os��������M�Z�U����;�2�}���#)��]�c�	�(>y(��9���P�����f����;��������)���s��	�����������}�_��������1�v�4�1�c��p�L�1���A�B������PQ+J�A�ir�mAD�*���*�B���"���
��Q'<H�I�������<�M�~<��(>��}�����%l���g�P�M���+�n���v;]k��������(h��M;�Z;,_@eN��1w$�k���������,V.�9j����
�J�KL_f����{������?v��������c�;cc�1�c�8c&L�������\Ad��U�K�'%W*�	U����Ur� �IU����U��D�$��Ur� �^$�\��5�d�����~~���t?E<5�V�n����4�������K2-��&��em���Y�C_ �yH�$�k���W�����������Q�2��y1l����AB��j�>R;��u�N��+;���8��������~q�u9��w8��7����>�c�=z�{�1�v�4�1�c��p�L�1�=c�>I$��\Ad�Ur�$�d�,W*�W*�
�U����U����v�j��6�U����Ur� ������������������$�P�����"�������WJ������-C>��������h��Xe:B��[I�����hv�o�{�;J��,�c�wO(�A�^��X��I'��Y�*�q��gy*O{q�em��>W�(u.����������;z��>>1�c��i�c�1����2c<z�|�IU����U����Ur� �Ur� ��\��(�\��*IU����%W*�'n7"m�-������|��>{���=�����;��^���B��"��f���|�5�6����=���CN��B��!�i6L��Vn��yf������?G��Hk����.���*L]��Cz��7p�1P��9���w�������&���X��]�k�:�R�����o���#��1�c��1�c�1�1�&Lc��X��\��*EW*�U����Ur� ��\��>�������W*�!U����W*�d�}��������?w������p���i�.l���z�V��������&I�w�P��5GnMS�D�;�����t�2dn��_�}0�
���B/ ��OM,��J�C���h���N���E<�E��/~q������w���7�:�s������������1�����1�c����&1���q���U�$�\��,EW*�$Ur� �%W*�
�U����U����W*�
�W*�$�������������??��Q�5�1���� �`6�?�0J����ky�	'GW�����P�~��Ym����z�c?f�V��)�l�xz��y�v���Ml�}���^�nf��9{$�S������s|����k5�G��v��o�����c�lcLc�1�x�d�����8��EW*�
\��(Ur� ��\��7�#m�n �\��,�U����\��*EW*��>~~:�������{�[�����V��\Q���������_��l�����e^i��mq�����d<��/D�z��Ys����K���4���FT����]�b��������K���������
�A[���Lq��f�����1��������5����%�����u,[z���I�H���zyp����Hz������[��/�u��UsM����V�|z=�A���\�w���2���{7���3o5�k���g���U�c�}��f(/4|Q3Q�a&��x�E����i"@9���]���u���.VB��=��J�J��=>��ix,��,�ui��3�[�y=��+m�C�jT�:=t�h��gC����D�"e���>�y�����V��G�s������l��7|�z����=����������O���wc��S������<rmu:t�-�u�z��{�?}�(T�)5L�wp���&�7�7��4to��h�e��Cf�OJ�o|�Oe5�k��u����^M��J]������[�.�\��%u2��W�D��e9=���a����j �����7.���&u��5}���x��"�:7�K�����i��YO��"�%N}[]���<�{�����I��,�lU�/���]�n�5�/3��.g��w�l�x�~��\�3��%�yxA]������s7�o<W`�&s��r��^������F"��n]�Su��]�m�
:U+rU����Z.�U�W�'&P�y���vd�~7#'=i��k�7�N���w����W���.�������^wm3�B��37��OsE����[{�6rp��w��|�n������7����\�S�vW[�i�<�s4��B�K'����)��p=�����Py��ry��k�������3��%9g���]nCf�d���p�cW��;\z���&����7��3d
T���GI�=7��������"�*������+�t������������+��:�h�0h��x�F�����}��_4�Y{���1�����g�^���B�B�,�������W�F�����*�8!;��d�$�� �I��J��������f��C��$fW������������b`([���T�6g)��%�����}�R��k8v�~g+�W~!���W2oJ'Z�3,<��� �2�vV�p�U��=SX{mb�.��{sM1z)t�������{���\7�=�x��+��f����P�m+��W~��m�����r0m�|Uh���"�G���)�l:��S�y������W~���e������X�O���=I$p�����jW�Z���#������������_�G�s��:�f�;���k6^	x����rG�����z�8J|7�Z�� z���#$�7:�G+���v8��]�����y����J���T��U�07��u���ec[�zu{}�^��=+���}��>yn���X�����Y���U��N�����������l�G������t�M]�Kt
��g�����a��]-]9[]�e������|d�]�$��4i/=��\�Mm���p��:���9��/1
U1���hS�k�u�b�X�Z��+(�gx=VJ�
��d��-���|������o��3����.��^�eW��]5��[��+���I���3{8�������k�n�Ot,ee�'��E����un>�/h�7o=wP��F�hlC
/!�V����x���b����N<V+AS���>4����<��gNOU��7��\�� �����J�=��Y����2��(h��;�pCEy��u�S�'�Jm,zhp����f�v�b������|��C����n�;�6V�������l��f�EY��l�`z���������/r�f{����ozQ�-E������+���;��q�[X7���+B���C�t��bFY�1��%	';K�)<X��0����5�����c/���L���[��^>�S��rWy>C;2K]J*���������kx��3i�������JW���i4�gkl���������%���/�]��������[��_�7�/�g��3�q����da��]k�p��{����_�������t�<����8j���i]e�Ee�F�������V����H���wN�n��x�f{����hbS�"�s������<��/�����$���{����~����+zv�u�V���S:��Wu�O���s,���j�3��	P<e\��RS���/������{+)������I�p���U��o�QL[W��t��30Qg6h�bY������Q������������R��h�5��]n�_���Q��e�;�ck�b6��c�ZE5���Ph�!�j�2�c��F�(�
h
5��1����M6��()��������|/�Zy�]u�V����-�5�+eu�Q��Z�[��F�]���m��4
�5��T[���v�j�[��F�]���u�5��TkM�Qu�j���W�y���]�c�j�5�X�u�QF��e�m�kv�Q���F��
B1	��y|��F�cO}�}�V�M,Q������R5��H1�� ��G�cl8��!��b��cQ�G�y�0���PG�b1�i������}���<	��
#�1�H����>�����>R<�5������c�lMf��c�F1�
5����P1M���yc��q�q1��N�:t��z��c�lcLc�1�x�d�����8��%W*�H�q��n[q���\Aa*�WR*�WFN#qm�n �Ur� �%W*��m�n �d��$h�����u���,S?onW��5�W@�_C1r|���������5VW*�q��30��n�V������f�)���R��M'2����������e��~�^�Ad����v�l��tT�T�������c��#��1�c��1�c�1�1�&Lc��X��Ur�"Nc�#J�\AP��\A���m�m�I%W*��I��WX*�W	/�D�9����q��q�#�w��A���C������t/+�T�I��o6���(�6#kL��5]��K$:8�]x��	Z����������������,��ssV��p`����Y���������6�dV��������������o����{�1�c��i�c�1����2c<z����M�����Ur� ��\��)%W*�
�U����\��,�W*�	*�WT�Ur� ����A���k����=k[��:���/>o9��j��rLL�Iq�/�G���]@�|7�K}���fXR��]��G�"�p�sc�P�[3��:tnq�]���
�`��vmFV���-����������}�������c�lcLc�1�x�2d��x��A�"��q"��q
�URI�'.\����$l����T��U�$�\��*\��(�\��5�����UW�}�ta������IZ�|������j�<���)��'���r�UA2v��L��O7R�M[����2�-I���Sl��m����H�$5w����#
�z������:��q�������c���>>1�c��i�c�1����2c<z�|���\AH��\AR*�W'����m�-���Ur� ��UUq"��qH��\Ab*�W~�C�H6��?~���"�?�I����+
�#�6��#+9���XU�"EB���yI�\�Q��"�uGWh�}�O*D�cM�QN���>��:�Tt�V��<�ns�f�5�^M]�����<�u��c�?_����c�;cc�1�c�8c&L�����*�W"��q"X��U��b*�W%���\H�B��q"Y"��q"T��U��qnCm�m���$���_}�~���>�0����\��ur/H��%��]r��]�s�3:d2_W\�N*�t�k����������RU.Z,�ZT����Vq���P�u�Fek�NH�X�n��{nW�}��}������������1�����1�c����&1���D�UTJEUQ,�US���n
���D��%"���"���"��>�"l�����] ��A��c��~��S�}Y�������q7�V��c�#3.���Gv�s&��dN�Zy}��F;������{8fVM}:5K
��Y�.egj���E"3�wVw5��w&�F��^�M�;�l��-����}oB|m�n��}|�_�1�v�4�1�c��p�L�1�<z|�I8H��'{H�m�%I%UQ,I*���qCm��X�UU$���z�:t��<7"m���UU�A�H;���~js����w��y�y�]f<�V�{����a�����,MZ�[MiT������je����V�$����Y�a�>�/��5�L�����#x�Fon=Z�N����������z�q�����'�j��O������1�����1�c����&1���R|�p�UU$��#m��I*EUT�P���J�UT�T*����UUI%���I(UUI'���H?7����ij��,��dr�Fd���K(6�1�e�gIP�U�o��5�`�r�

s��y8�B��	Ib�rkBY�KU�������vW"�G�wJ��y��T��c�,�{���������^6��������1�c�1�1�c�<c�2d��x����|B��I)$���J�J��$�$���K"J��F�Id%r��J�UU$����I**���"u�����s��y�^u�������'�:Zw���2��C�R���o[�<���b��n�E~��v�����l��j=y�Hv��������:|��k��n*/6��.�.Q�����fe�h��K���'�ff���}�G�V�:elWt�F��5�O�8��}�%��=i'���8��9����b-3)����q�l�%f^�L���M�����~�T�&n�4�\��>���n����1�&=;	��5�y1����t��m<s����T>O�_\�Xkq�RM����'��=����;���L�jM���0xv�Rz�#���K�����]����m�7Z��
�U�hdZ�����d�.e%L���~rZ�������(��lk��[���u*Ui���q/��=$�D�G�%��cS��;N��Mw�p�+-_u����$��~��z,�96OC�������>����i��}}L�C���e�"�`�7q��/�I�� ��$js��J�z�����{}%�-*j{*�J:��G��9�F�0�]O��$�9�z�b�gp�����*,^�T��BI]���zjL�
��9&�lt�w>DM=*�c��}'h��,��vK	�
����J����D�k���o.�M����J�D�������f����C=sm�>����e`xk9I�M��yv�^�z�F���{i`��8�1�	����y��fz���6J7���+���:5k�]y�����=������bE3�t�e��w=�2�E
�Mi^�.[��!��R,��.�Q������IoM�s!�+�dE�]v�����[�p\����M�B-�7�*Oc���\�{��]���e����:��r�Y��s\s�F6������S�T~Y��^Z����S���U���H@r5�tT�:�|����j3��n�1]��!������b+2���efY��)h�-f�nX�W���O���^5�������-����WL��:�>�n�e������������{���eX�[��f��m���P�}d��� j����y��v��{*{�ME`"��z�m��=��Vwh�~%�����oz�����2A��~Id'�DI� �H2H=�$�$�?����>�h���������bG?%���e���J�o}�2Y�3Kk�\���=���EC��������1��������.���,��c��.����O}��w�k*�/��Q���IfP�E=V���vveL������4��4�a�z;^�����o]xvp�oF9���9@k��^f����f���[��f�s��p���:��u�m��%w����zG�j��0�����fi�3b�=���.��Lta����D��9���^[��qRo}���<Y�����3��.�v��rI�������63A����!T`	kwJ�z2���}����j���z����
KM�YG1[��{�A�W`V��I��CT.��R��2���.Ri���O7u��Sg
{V� �}~���P���Y�VW*��/�ot5a�pJ��z��<(���:�s�Ku��]GL�}������������E��V�5oQ��Fm�����h�Xtv������;r�t����g!U��W��.]�P|�Ug\]>���n%P�����^%���Z�5�����������g�x�R���?*���|�sKi���yI;�6rdY�:���������S[��9����.��{�vee����;~�xZ���NZ�l�����������z�<���z��/
���A��M�Q_']�u�.oQ��
)��em��/�][v/��iu�����Cp^F�[��Je��#�N>���3YwG����x���b���H����~����
wy���YG��*7f��s��\mfm��s+��L
��Voa"-82ud%�	�U}�����P�Z
�R��}����JW��1�3d��s��O7�q��k�N�Wdc�������_Wl��,�]�\���1��	���W�s8fgf���y�oW%��o����8
�
���[�����*W�(���cN����8<�3e��W�����o7��cO,7������*K�^��(9��b��=��[�7��2������w1\�������o�3������+��$�c���w�����f5��r�x����/�B��k�z����2V�4�U���nWm"\����~����������U��Oo�+�^'+Q��
�����u�|v���k�����%�-WIJ�
��w7cVW
V������?|,i��E��M���1nu��^ub�g�1>R�����W�S�r�3�	���,y����������������f>�I���O'���}��%n�(�Y��F6�!�y�0���PS]���A��S]��cJ1�f�)�5�(��l�.��4�k������g��B1��mi��u�Q[[���P���lh����F�]j�n�U�v��m����7+k����cQZ���F�]��n�U��Tku��F�l����F�]��<�����1�k�c�,V����Fm��n�
5�l(�lh�;�B1	��y|��F�cOg��_i��KK,y�#a�m�Re��#@c�����9��F3m��y����y��y�0���c�� ��iZF0ka=���n��<y<��#�A��<�X�F0ic�AH��E1�c6&�XF1�Q���A���(��2q�\c�2ggLz���N�={�c�1�c1�c�1���&1�����Bp���$����������$���UUbJ���UUR*��{��?d����;���w�L�R��������u��}��������^Q�q������W��Vl\:U.�:�K:�,��uc���R��c�rm _-�*mt�d����d}����r
��v�����q�s������r�����=|c�1�c1�c�1���&1���*��EUUH���UTJ��UW��m��{�M��k$UUt$>�w�{�������V{��7[�E�+�a���n��[-�8���eu��gI���f"�rI�v�	��b�O�d��R���X�q�u����Z��9V5���x���N��y��}q�G��6��������c�1�p�1�c�8c&L���c	%UU�IUU�H��U���UUY$�UU"���UUQ*���H>��~q;��9���}h��W[���=[�1U�9Lj�u�-s&Tft��T�>��]3��5�R:J���*j����D������8��j����1��Q�(LCo�UI���������c�1�c�1�c�1�2d�=c�$����UUT����UUB��Y"���UU����UUi�}��� ����q�������i������^��:i�hR���m]����v��t��W���d�l�72�,Y������?���b�[����nb��ue[����)"o����W�}����{�c���=|c�1�c1�c�1���&1���$�UU
��UUdJ���UU�i&�m�"���UUI%UW��H>_���~_�{�w����y�y�'<���$�����w���\.��Z��������6����W%����<{���G[�x�J�]��o@9��.������(�����u����^�����-�U�ff��\���dO�Lm����#���1�c��c�1�p�L�1�X�2|��m��H����UU"���UU
��UU����Ud�����u�\O���3�����Y�]�y�Z�=���t��N)�N��K�P���O7�wM6���N����)daD��s��'&�����f�)���1�R3v��������[���M����<�;t�������c�1�p�1�c�8c&L���c"J��IUUb*�����m��
���UUX�����$�m��EUW�	$�$o�;�c�"���s�w4��E H��qP����WoU�3^���
�+��	��������YNn_t#�U����}Y��f��R��j�k�v����cU�J�<�������u<������V��x��?^���1�c�1��1�c���2c��|����nI&�m��IUUd�UUB���UUqd�Ur�!UUH���~���}���������S�/
i����x�^����v��K�:��(���xY�����U�|�[��U��`�eeN��$��z�����cZ��m������h�����Ly�U�{��'M��*��������<~>�G��1�c�1��1�c���2c��|"���UUm7"m��TJ���UUY
��UU"���UU}��� �=g��W�y��uy��}�sU�{*f~���X�j�Ol�e�f�9`�l�
�O3O�o�.��j���5���g9�"��J��W`�i��m����L}��q�f�<u��L���t���lP����S��}_W����~������_�1�c�c�1�c�2d��z�1~m��XJ��$����UU����UZ�$����UU`������r�p�?���w��F�����r���E]W��wW
��$��n���v���n���ke����d�s���W*�n�&$x�F���vd����\V�oVRoj��\���KM]F���"���^�����*nWY5j��,�����D��]WR,6��O#Ku�W9�U.N��<�Y���`�
��e�s�<V�U��{[�
���dry�v�@�@
��,��S����Y~���yu�(�~��;5��+�B��o�y����7���
e@�xN��X�b���1>T@J��=1%�u�t��!��hM/>7��K�/q��m�����-�0s;S�f��,Q�4=�:�G'v�.J�3�P�����Y�!I��j�7���iT�:X2���+9
4�M��D���3�������p��Q����Y�f�r���-V�wX����^������A<���� ��'gwv��&,.j�����9�f
����%X>�U��-m��L�6f�J��\���q�����>cn����������`	aei�Y����v��+3swo�Q������]H
��.
�����4�����y�^�3(�������m�J��D%���mZ�;����R�v�}�����:e8R��R{hP�:X��p����y�+7tt��SJ�m�}'aj��tM�~�i�����qx$��L�����=O�V�
wc2�0P�x�I�Q���P9KS��E����-l�r�*��pz�	�2����w(u
0��4%iM��ZOs9���Z�7���j���Y�����L�h��+����Y=��8yyE7-���6�+�C��L��kR�;�6w�F��5]"��������v7A#�;HvFE������{0�N\���w(;m\r��s]{\�U��
*+z5�S�Ki�����S@�f�Y��+��.����# �a���b��Y�	Y`��2��i&��_�W���;����k|R���xu��)���v���c��*yM��?T�(�h��-+),yo�j���
��(��d����s��jV�Ar)��$6/���U_}�����j�}���8I"p�6�q8:��$��$:�z�}�o|�z�|�;�j��]�\{���{�_\�
l���k�^;�+���+J�w���a�.�C&�>�^���u���y.��Nk�U����c��A
��N����iL����[H�������5E��y�S���^vRl�~�Z�W3zf����5yP�b��QK�;k��	J�s4�2�*�n�j��;ft��&�z�Me.��9m��1>�����V��m=*]�{^���o���z�rf�K\��hf��������\$���KG��gJ{���f����(������c���w`�Oj�z����9��}��e��Y3��z����nK��U�����){liz��y��7Z���}�~D�N�������d�Q���zxw���Y�{O}���=���us�SU� �M�WR�^��3��\��i5�J�����}J���$']�����0�9�Vv ��:����6�r��:��5:��vv�6~�{���FX�������50+NT8�A�����u,z`�fdW.���Uo\���_�2���s3��u�=}�9������	\i��K�e��0�F�����H}|���7�`=B���}��T\��+�w[7�vg���������"�����C��d�
��>r���l�����Ifo�zm+�c�wC��g�;5h��S�pqo����Wm��M{���t�;
U���"�eu�i[�T1i����1�����Kw���9��`D5��#o^m��^(i���4��;l4�������^W����2�)y�mf�M��c,i(�g��x�[t��8���R��v��R�������b�{ U����Q/7�����j����ov�������*8l�p.�)t��ae5�l����ux���5\��Pc�.�R��g�{��{�C�]����z{��/_��P9^�-d\p�Y���g,g�Wt\���>��_�f�q����u��@K�f�f����������f������������s&0�#��C���M��:�F3lS�ky�Q��7���������_J�9P}Cl>�����x��^d�$:Yy�������nn�ZW#V���H����t.CN'��-�k�}��R�&�����_Y_W�_}�U_}�G�g�~3��p��l�V��������9
�:��2��M�u�|����jsy�&J�����]��Wj-���t���6��d��w6h�\��l[�t��2U�[Y��I�$������|����UU�|~�������C�����u�4z������>w����#<�2��
k�c8��B�k�biF1��e#A�c��m���`V�b�F��

m���{m�#���x�]u��j)j�v���]mk������Q��j�v�k�Mr��]�����m��5��T]v��.�Z�[��F��e]��Q��^y���mv��S]��ib��]E3m�kv�b��aF�cE�j)�'��
y�k�4�{e��[5�y��E#[m�mb���y�1���y���g�y����y��y�0���c�����iZF0ka=���n��<y<��#�A��<�X�F0y�k�#ca�1����a�1F�ckE3��b�l1�d��1�����t���O^��X�1�c�c�1�c�2d��z�1�"���UUT����UUd���%UUU^����mRIUU������������9��V����3Y��Wm��V��l'��z
/6�+n����������0��v�mM�����s9k�'���ZI;�����l�V��ln`���N�-�S)�	c&������)����8������}~�=|c�1�c1�c�1���&1��_	6�m��UV"���UUY"���$���UU�n#m���Uf�����sf��g<{���x�U�Wm�,Yz���������s++1�1'���aJti^��|�8�W�Wdh�RX�.�9�;k+�8;���<��t��r�����0�wV����[�wY5-���9����C���v����=|c�1�c1�c�1���&1���$��(�UeD��,I*��I*��$J���$��8��$��e���?z���~��x������Nf�~?�L�����Z]pW[��(����{��4�i�R��	yy�O�V&���N�R35���������X�T�w������l���b�-���\w'��L��5�y9�w�3^u|��>�n�c����1�c�1��1�c�d����d���ZU�B���UU�H��,�UVT����UU��"��,�UV}�!�H~U����~�f��=���?�6�w����s��;v��{��NwJo��]r����T���������9�����+�.������mP���Y�P���4���8��q������r�P�i�����dz��1�c�8c�1�c1�&Lc�1����m�����*�IUVY������YdJ���Ug���m�,EUY�G����?~a�6�����_��@���S7����=��\�WL�i������sb�].�i}O{�i�W��gk�Q�t�#��J�}��9!�������t��\qk-�G��G��8��t��poT����;���k}y9�$���;v���dz��1�c�8c�1�c1�&Lc�1��Ue"���UU�"���I*����$�m�,UfD��M��r�UV~|��~�_�
K+��:�=���T�����������O�:u��1^U�I���7�R(��a�-z"�d&�l����s����;�0�Ux��Y���*���7��e:�;�0[xb&-��x�UW������__#��1�c�1��1�c���2c����&�m�D��,$��)UeH��,EUYH��,�UVT�����#��{�����x���_���z��}o�-�h��W^�%��8���|T����I����n��"�Vn2T��|����N��mW1k>��]��n�1���-t@��w���K�����U_R��o���~+�n���{�1�c�1��1�c�d����d�$UU��UU�UU�pm���"���B��,�UU�&�6�m�"UU��$�A�������������;z���n%����*�����&.�����UoVVR�5�����iX��QY�Y!��������gn��yf1R�1�eu�B�]fkG^�����mfY����<m������c�1�c�1�c�1�2d�=c'�*��UYb*��EUYB���UU�D�Ue
���UU�RA�H>Ox�8��{����������Y���T��'K��-l�z�;h����6�Z��C��h�hm��S��)7�]9���>�����DWd����p����|M���m]!�nW�W���v����||c�1�c1�c�1���&1���H��*IUVRJ���UU�J���UVY$�Ue
���U?�8���[_�Ey��yG����r����z����{�lJ�s���sR�XT�/+��{�B������}�|���Sc��_7�������H��3��I�V���%f[^]��=���gs�/�	k'}��`��xP��f6���T-E2<`(�JL�����I�,����<]�:^��VT�aN���8����L-*d�%��I���_+�xL��QJ�h�hPi<-����+T�em�A���:WVY���|�m:���T��J,�[�})O{�zr���w%Q���-�cOS�n�+b�9�7�����B������'����_2�
��Sg�oWKt�V���v�}�����3��]�2���jO4-�S���uI��U���ONJu�f�H�>���}%^�^�\k}�����$^���+1���#��;Yel��tr��=����v�y��*u�8�i�s��m�Ho��9��nVu]u>���x��jar�)��_�<����eF�~��%��/��G�m��_z����������=��xEZQ��O�m��������5�h��]S���<��u�[�h'y|5���d��t"�V����������A�n�	�3���_{�x3}m��������T��s��4�X�s����?r�{��w�z�H����S����k�m�r�n�V����{%�����X!��=3s^5��E	�p�z��g[�.U���XnM1��W1�Fv]��e5�fD�Z���O�J�T:c��^n��z]�
��(����Y5uw�P��J�q��-��sH+Zs�'`��6�����5Q:�^�H��T�S�n��<��[��G�Q��e�u'gR��������5]W*)�����t%pH-������W4�f��B�������;cMwJG�n��N��f��o��&V�sYV����MWu5
�<������J����y2�����:N�s*�P����M�%������BSwh������s0�f/E�y%j9��C�=�^�}#�*�_�\���$S�3�9��:M^������&��o�e��[$�
I����h�D����q	��{$I�U_}����C��^��x3Fd�wK���n�T
o5l�l���3��p��@u{��V��T�>���y�������W�{�����]�y6����hF������|�����3J��x�*3������e�C��,f������\t)�%ezj~��z��{�U�����k��<h�yz�<jm�)�����-�m[�/����F�.i����t+�]i+J���E�s^M�gd;�/'�jz�g���,���M^}��u{�~�*'pq�����f�e_c��*P������������Sfly��9��]�_v���zu�#�>���<)K6�/|��=����i���[n)][>�mgY9q���~�������t,{/����2`���!;��j]p>��z��]��<�*=!�iLu�ve){[����t�����$jT��XL~����YV|w��Ew����w�P����Y]�q���pnVu�p[����tO<���w�z�N��l8�g�^��P�j���bk������,9������z�o��6����du�����d�����*���V�;{r[\������y��(�N�g;�S\���h������C�w����zo����=[��*)71ne�����0���L��h�3���.��w����u^�]cK�I{}���0Zb!�.�>���-�Owyy�~�<�]�5�&�;-���/s����>��_����01��0�n�QhW�L�G�ww��=�U+����XN�U���?Y�(���nor�7�nW����w��-L�Jt�d��v}rvc����
l�'�f�r\������{vj��&�y|��=,nn���d%���{������}��q�����!}�=���AK)<Z����Y#}N���t]1�u���O������H�S������ef<�{������q��������b������N��1����+�y�������t.�S����9)����|�6�[\y���{���h�hVha�e�An�kK)9mu��t�h��.\�F�:�Bb��SS!;�-�/��wr�J������#
]a�~��]����g�����n�����O3:~E��|���)pa��Dz��d�����W�W��������n��6��71��U�R�KrI���x]�so��u�����U2�����xFj�E�t�����b�-�L�c�����[���!����R��G��W��f�IQ�]L����JR��g]�v�Ms�$�x�^w<x�s��'z��q+�OK,�����X���>w����P0b0ei�j�4qB`�!�j���c��F�(�
h
4f�1��������t��c�����F>��<����+kv�P�j�v���]m]������Q��aZ���v��mv�U]65��mTku�����PS]��n�U�m�]v��F��y���]��f1Mv�c]�+]u�Pc6�F�m�(��k�4Qn����By<���F�cOg��_i��PQ,�����R5��H1�� ��G��Wk9��F3m�y��c���y���c�F0ib0���b.�Y����u!�O;��!��y��Q,t#<����H��E1�c6&�XF1�Q���A���(��`�<��<��}]���};��:z���1X�1����1�c1��d��z�;��$���)$��5bIZU�I%UYB����m���*��EUYP��>���{�������w���?������:�D����Z�������
���cVIl]�h�6��{���N���eYykw�����.����
An���}k���k�G��L}4�\��E��]w�����\u�s���������L~>����c���c�1��M2d�=c��Ue"���$��*I*��UYb*��%UYdJ����Ug�����~�>������M���h�~SC���zm�Y�X>�q��(��K{�V�*yu����W;^N����'_N�.TM���S;[q����*j�'Y�c�U��W\������a���S����}�{�|�O��{�_�c�6�8c�1�x�2i�&1��|�*���Cm���UU�$�UeI%UYdIUVRIUVP��,�UY������W�^~��T.�W�~`;h��[���������dQ���w�m��v���k/s`�:�5b��[V0��|�V��B���5g�^��h]�q��ru�~n[u�{�t�������#���o�����1X�1����1�c1��d��z�;���'��m���*�����m�,EUYd�����$t���bIUVX�UU�D����U_}������R��f���u�����4�_7�7�*�WT��[�+rf��E��,�9<�#��+N��kJ������;�n�u�B�t�NdW��f����x���u�����W�g'��x����>1��1�m�p�1�c��d�&Lc�1���UVY"���Ug���I��nQ%UYd�UVY$�Ue���*EUY�����I�$}�75�>~����9����������T����Y��T�b(���L��u;m��
����m:���-����.�5��}��7s*I���fR�R��nu�u���:�����H�m�m�������c���c�1��M2d�=c��Ue���*%UYRJ�����������UU�
���UV}}�?���]K�t����n����IiC�)��d��z�]��^�Q��v���;C�,]�U�[����t�q���J����|��a�����^���q�I>:v��������b��cc1�c�<c4����w>	*��"J���$��)$��;�m�����,IUVX�����$m�����C��w������o��m��)h�����p�V�:��o*G�����^���y)����`���u�^k�����b�Q�v�i�$��]N���k�n���z�u��'��t����>>1��1�m�p�1�c��d�&Lc�1��"J��sp�m���$��77%�
��r�UVj������:�6�m�!UVTIUV{>����s���{��K����{�W�:��*�K��Q�����u�}�����(�$��6�5KsU���<}�7e	]qww�%cJ^����d�s��o�f��|y�]����I��t�����c�6�8c�1�x�2i�&1��|���<�zC�N�N�Ur��J��P��*I*���*��"J���UVm }�����t���+�5f����j/2����jj��'���miWZ�)�p�,������N���g���U�Z�
�2����������]MQ7-T{Y��J�$sn6:e��6�]��U��||��y�����b��cc1�c�<c4����w>!*���*���*���J���UYRIUVT*��UVY
��U���D@ySV���B�]����c}u�����u����S��p�yJ�\\���@�� !��v��3�UC�
�E�PPtZ�����Jq��M�v%d��y��^
Em���w�������&�����������k��.�m�-���M=�7p����s�=57�/5����0�,�qg#��Q��7���O*�k���/e������3��u@���:������3,w
w��|yo�!����+��.��{L�q���������4�wf���DWk!����4Xx� �i�+�H{�#�|�d��?_^OG���s���L�p�)���U��H�Y=$�M�ud����ed���$$V�������`���%�d�Dm�&$v�t���v���[������.IO����o�$���)g�������%����#����_�D������:>���
�M����+�<�S=���9�b=�h\X��������6�6GK(���]���[�o���T�^>�U����2r��:(��_]5�+-dm��|��2�����Y�����U7�Y�<����mW
=����^��73���v L�+���'+&�+�kg�,�����Kj���v��4E�o�(*'�&}sH��j<���GAe���L��=<�p��L���)��e������l��2���[���HiT=��)���n�|��9�
U��o^,h	z��u���J9�"��a�R/5�Z�I�S5����^t=��x������5[dK�m�j�����������f��{-F��z�N�1�2������G���
�n����-�ror��o�m6�eY��6^=�y���
���U��x^����#5���Y����.C-m�����mf]��!��Zn�k$��{��eL2��5�f���Luv��%[S9jQd���W\�����V����>��1��:�U���_
v;f��y�w��4���f]��Sbb�/�a�X:j��X�����7.�Y���$����:�6���R�9������������E[��V�g���~s����7��3rA��jH,�w"~J�JT�m{V��Y��*�}�����U_}���z?l������
���r���������}�K��3�&�[c�.�x����*]��O�9����YTCCdbt�k����p�skx�N�>�&��(]g�g���k��b!�5��P��_���6V�����v*6�H�n�^����	��>�������>�-�<��|����=��"����HX�?;�J^���~���{����[Oj��}��c[���Q3��'�nqy�?�Y�6���A���������{B~�hR�8�M�����v�f�g��h�/�4�������x�b��l'�n�.�s�NL�Q��ZWR����:,f�+W8��t��E�:n0��5p����k@��_�v�Q*�vd�%�R��������;e�3J�Atv��9,�����J��w�f�Ti���DN���zd�����8�X��@���q`o�s�&�V1�q��H.�+V�w2L�{�.��w���������_���h*j3F���y�+P���d��*��s�����R��go�fw]�\:�,����w����r���5���K�$��uu�j�g�m���:���)��A�����S��?:��t<������YX�:r>��8�m��`���n���9-�r��T����r��<w3M�^F������H�����K���m�ri��VO2;�5_N��z��wu���}�]���vY��k�T����b�hq�=+|=�$x���+�[Y�p�����~[���3I�+����2���|b�������J����U�K���[���/���2i��y$�E*]g1\�h�_$��x���]n�vY�����3������F�u��,Lo��nK�G�K�O�����]�p����-<���P��G������/�r��9���Q}��*�Y&h���X�u���M��]��/�vS��j=���}�=XT�����U����T���1]�����9����Z�m�)��|����IY��y�Gi�W�K�:xi��5D�i��X�`��x�)�dU�F$m4+tm#��?bXk�]8�}�;���<{�y�^w�z��!�$9��y���w��}�x��9��E��)���2=�^�T����+fmb��A��E��T(���Z|�������s�:�7�"W�o�"����E�9����v��J�����������|�4V�����B�_�t�OK,��Dh�j�1�`1�+H���V1��!��V ��c��R4iF0k@b�6��]�lv-GMAAM�=��m��c�|��������mECZ�]���W[Em��5��Tkv�V�m�����[]��WM�Emv�U�v�.�mT�j�[��F��e]��Q�]y���mv��S]��j
�]u��Q��a�7m�(��[���#�O'���k�4�{e��[5�y��E#[m�mb0�b�ev���x�c���<��`�<��<�`��1�H��A��
l#t��}=���1y�O)�6���1�X�F0y�k������c�lMf��c��1�
5����P1M������1�8�8�c�N�:t����X�c�6�8c�1�x�2i�&1��|DUU����(J���J���J������UU���������}O����UW�}�����/s���Z��)~A��f�,���ak7a�:���%���_n�iW�*�%f������0���uj]2�f��^u��	��q��-����w&9��zLm9���}U_�������?X���V1�clc�1�c��c&�2c���s�&�m�H��(�����������m���*��$��(�����#���_}����������K���c'�����=�=���qd�z���onG��k�O�tnSKVV�Ioh����yP��w�:�8�^���������<��l�]��k9e`Y�����H�������S��H��co��z��+�1�1��1�c�1�L�1�X�s�J���J�����m��DUU�UViDV�gM�I��nTUeUVt��G�~W��?��C�U
�s����j�mR��uo�[e����*U���v�1Z�gZUc�5���m�,�W�E�y�r�R����q\[e��d������1u�A�s8_P�E���p��xj������?^�>1��1�m�p�1�c��d�&Lc�1��|"m����IZU��V�e
���UYa%UYBUU�$�I8�m�.��m���`d�������3\��Vn+�4U
.��J�w@���YKk����������sU�����!J;ov�37�-���,��Y�J��g=�-*��Ief#L
m�����4����U�X�z�|o���W���Z�$�r��?X���+�1�1��1�c�1�L�1�X�s�$��*Ug[
��r�UVQUeDUUY$UU����nT�UV|�R!�����������K�-{G
�CA�X���*U�j1��W6q7VwKKBT�������5-�7�}p�2���'��<�wf�\^���y�� )0�,�o�~j��9��8���k�:��2$�x�������b��cc1�c�<c4����w>!*����I��nf�F�m�IUe$UU�UVX�UVY	UVT�UVq�"d�����x���������:��}o�����fN���d�n��R.�{����=
���u��+���	��1�KDV���Ik��������q6LH���[V��S��V��R�s�VK�v'uuO�+�?X���+�1�1��1�c�1�L�1�X�s�B����I��nX���VH�*�I*��	UVj�V�d��Ue�*���$C��o��=���6��>�����+�^��m�^����6n��]��X��Z���e��J��v�Za��(�2������EF-����w0�M�t���C{6}�v�����}�x��}c��1X�1����1�c1��d��z�;�O�m���
���Ue$��,�UVR*��%UYd����UVk���H5�H:�:��3��\�u���<�o��^�mL���qt3�0��YJ���*��xXI�����xv��'��oy�:��d3bQ	�������v!j���W}^���<���w�V����P��v����>>1��1�m�p�1�c��d�&Lc�1���UU�%UYdUU�$��**��*��
������%UY�d����Q��+�mmR�WU��6�k�Ok�!�I�]wErq�����:1ep������]G��hK}��k���F��=��3�7;��q�fD�����@}�V���������o���������_�c�6�8c�1�x�2i�&1��|D��)%UYdUU�EUYIUVRUU�%UYQU~u�uUW��]?���`{���P��,��W�=R�J���S%
�3|���]^�s������lC/�~��������J1��a���*�XY��8�U{;g��{���/@Mn�b7�6�1�>k5��K]0Vl���cR�����8���vxN�\Z�r<8�=�gwR�^5j��W�9l��z�N��:�af�@�T�J�������n,�S}Q�[Pr���v��#����l��N
��`�gif���<�����Tgf8�������N�h����'x/M�g,���Y�8�zp��5�l(�.�=����
�[F�4��1���#}��~;�iP�w��8'�}��,'+*x��UNXE��5R������E��g��E*M����9�GG��]�]�a8� �6�^�5����Cx�L�z{�n�s��6��S�����V��T��U�������,a@���osy����+�]^5�:v\������w)�`%S��Y�-�N�:��k����[z�#8<�G�]:1�/��C{V%]�D�&��Y����}���<��w�n*��1^F����s�tZqr�����`��w��M��iX�]9����Dgk��vNm
�H��u;�<��k9I��[��/z���C�`P'w;����u�o�����U�p�,Hb��y����*7���l���������f:b��K7Y��A�338�m����jZ���G\^�����.�V��xTg�������eui�=���`���D�ef�J1�CS3�-�L\_J �8�8,5�����2�*�P�=O.�����z��v�'k�*���oH�\�n�y;o��x�za�V��o3���,�z���W+O���0_w/u-�a�b�q?Y������jNa�K�w���K�77���n�1��Qg=����L[�X����]L/d�s3n���2s���)zW9��m�M#�7����|�s��LX�����v���s�������z���$��q��a��������@��]�9+x���2�Uq��Xq��J4�l� ��73kv�4�����J+~&�w��U���nwY�j���<&�����"~�{R�.�����C��������n��`���wU_}�UW�|�A��u$��I8�$�"v��p	�'�H�������{}��9�����K�hiM������IW���Rng�`=�L�*i:h���m;������N��On`�#^Z��Lj��L.1�n������e07�r�����N��/r������w�I�^=9M������;�@f1[�o���:�~��������l��'{�����xV��&�qE�~&����V/(q���{)]m��������r��~�{V�fr������������3`��*�CL\=������9fL;���n�������^��=�C9����f����[��/����>mT���������!��7h�����2�J���.���F��/mE��[��
�V��\]\�"�(���q�h�y������0���Q$@����&}���s��%���'������m��s�J�Cvwon����������u��i�;�^��Q���>�:>M;h��l$Gh��p���
ZR�9�c��6�6�8�����Q�������C|{���3�.��W��,h��g.5M2i���Nkv��k�Uc�n{=��vQ>X����v����������]Zt�Y+�TEN=�������]��V��]��1�;���]u�Q�\}W[�J�Q\�GYT')����B�N}}w3��.�V+4C��{�������-�S��������.��]��Q���/c�G���~�j�����B�ck�����2X#����,�T����:r�vK�+y�����w&f�am�������v@���p��Z���f��2r��LKKf�����R��u60z]Z��;�r�\
`]4�:�&{L������/t=]��g�|6v���
��� K��-�
���r����b��3y0d���LEI���u[�&��>�X^.
���2�]�@��M������Vy��w�w:����x�K��"F����{�C�n��e*�4*"�+M`�a�eLu0���J��o47�#�G,&*��+�K�����!������;�����\��
�O(����}�mF����p�p+�����7V��v��U��}_*�����������~��CK�;>T�����XQ!�igve��1�O#���jcW�t�w�"���T��e[n��t�:��}%v..e�q���vD�����z�u��Z��\���w"x����3�����{a<�w��,�_`��,S��=��2��B<�`��1F��c8��B�k�biF1��e#A�c�(3m���`V�b�Dt�]u��{i�F>��<����(�m��(kTk�4R5��E�mj�n�U����mwi�nV�k�U�mmV�m�Q��j����F�]��n�U�m�]v��F�ty���]��f1Mv�c]�+]u�Pc6�F�m�(�����Qn����By<���F�����{OB+c���Yc�1�km��c-�A�)�5���<�����<��`<��<���`��
#�`���
l#t��g����1<��w���B1�H��1�X�F0y�k�����Pc�3b��c�+mQ���"�1�m����<��A&�m���=z���������1�m�c�d�&Lc�1��%UYbJ��&�pm��RUU�%UYRUU���(��(���}��A���?/�w���������|�|����n�����;yTu|)R���[�{if����{����;��P���f�
��[W�.�'i=�����+Ns�^��7����o�~>����������1�m�c�d�&Lc�1��*��J��UUQ*���$�m��IUUd����������_I�H/��;���q��m.�����:S^~�U�pz�}J�u����3�JJb��y��m�������7W�DK�uy+� �Sd������n*T�)c���;Vv�+�����>�����?X����z��clc�6�1��2i�&1���%UW���GN�:]�$����k$���������J������U_Q�������������f~Wk{\�����y{%�so�����&^���en��*��i��f�M��\��|�Wf`��3�����t��������e��p�nYo7^x��*���������������1�m�c�d�&Lc�1��UUY*��UU������IUUdUURUUX�U_���$���|���s��5z��?{�������+����ZV�]nE��m���dI��j�SY����w����A.�u��^S����j�yY:k�C���K),���������w<�p��%�r����4�U���������z��clc�6�1��2i�&1���%UUIUUbUUT�UU%UUIUU���m������J����$���^kw�f���9���q���������3k+�N��wJ���wy+���:�1�8������T����]���u�Q/�����NY�T�����s���^y8����u:�q�9N�]><~>�����z��clc�6�1��2i�&1���IUUIUURUUY*��*��J���������UU}�d����y�����Y�XWFWj�����e�j�K�\(L��kp}K�)u��d�mn��"���|I���|�1fV����+z=����&K���������nnaqR������$�U������=z�^��m�c���1X�M2d�=c�IUUb���������J��UUY*�����
���������������^����khjZ-�b�q����\������ru)�����f���V���M��t���WE9i�.A��Iro5����W�+��>���ba����.��NO�|e�rg\���w�������_�W�X�6�1�clc�c&�2c���	UUbUUT�UU*��u:'N�:RUUX�UVEUU�UU�eU}_���3�4�l��������k�:�&��}��+\��E(����g2�G�
��+{iw%�5����e������)��L�I�K�sb�J��Meet�W�5��z�R������'N���?^�|z�^�c��1���b���d��z�;|IUUIUUaUUIUURUUX�UVIUUJ��UU}���$O�l��O���_���|�fY����2eL�O-�2� ������t{6��I�����^I�`��,����&�8���w�ZW8��b��=g<��^t�����-�i�U>��>;~>�>>=z�^��m�c���1X�M2d�=c�%UU���UVUVI*�����XUUX����UU|���������Sw:�:�;����P��:��.�P��t� �qU�C3��G8�S��o���X:�V%c����jH��+���r���������g��Be�Y�������-�������U��RP�����!VK���L���vp��$�����-��\���+�z��5{������r�����M����+s�����+f�]���D���5KW��M��/��V7w�Y.��iB��0r[�����Yx�[�]�2���Q��A�����nC&��_�"`���3{��dB���
u:�.�}�#�(t�U���0�T���-gM�C��A�m`���oS�=5mJ}W=�����z�>5���LtrF�\�7�a�k���l�����)];����=Y%�v>U�V���
���[	��*�f�����m5D��s���CS�S,93��w.���U��J�J�,@���O]f
q�U�z`�
[W�5�}\����*V�����}2^��������f"v�n7[��bL,L�'lc/9n������k:�Mp���t�������6ck,��s��Ng���Wn����6���f��`�����<�V�	������:"������lo�$'l�;������p_K�*;���`#u:�U�G��v�l����c�����6����#�Ws$]M}7D���Z	e�;���GA�q��(	��<E������O>Ezn�%\���������U�p���a`��2U��o�TS�5�:>�.Vcx��U�b�ul��+M�|n�:e��8�q}k\iM�N���m{p�E���=�M���+�L��K�{tHT44��uSB���C��z�x�!�e�^�,��[\�gm��vOt�\PK������]$Z������z,.��+�(���e8L��=mj�}/�N�M�n�L�������^Wf�F��F�g[�y�$�;�D��n��=��e��F�r�����mcU�S���uT�T�i9j�a)�M��iG�sr�����>��n2�49I�%)�0	������r+o�gZ�+yi�0�|_�++{r�D�����)[�u,����;��5�Z��A� ��d�w$7����k�m�Z�U��R��C��z��������M�J��#<��3�&�i��(���k2m�N���������=0��\}������l][�ds��_�y�X�`��U���1�l��Z:���������x��4B�gv���m{����V;A��v_nv�N �3,�b�L����
������]n�Q���0��(�:'�������R���=S[
�Q�^���k�����$��k�z�����Y�(��b�
T���T�B�I���Z[j��S2mx�l�N�-,��_��x6����4������I���e+�����������	�o
q������Co"�����:V+g|��5_�n��5S�G�f���\)^>[J�4�����������{e���=��g\z����O���H���� ����"�[��#z����"������Ou]&&�MW;�}�=������0���,q;���i��}�9��5��y�mS�R�������-v�6(��g��2����������fX�D�)�k_�<�c��W���t���y�;�Py����7�x��N�I�������G�;���P����]�*��q�9��&�l'[B����r�����`��v���#s��6���jY�l8�y��ks��Rf��E�@������]o[a����QfX�8��02z��,|�����m�����+�~p���h�)hk�U��E����\��Uw�s�����y���,V���b�A��Qo+���D��e��2���n���[�(5���1���T%�/��#���v������eZ�g�v�����������G���w�oqVV��&Wx�����uI���`_�$�k��U�������ktU�7������FgI������El���s���������,�n�r�g]l�����n��e[��>=�X�+��q�[��k�k^OmxG5����X"�1�����s�A]�{�X�4[H�3���A��H�{B���v�J�;WJ�\��T�TM�r��{�%�]=�9���]:'nHu_�������J��������/~��������}~I"e�q�y�z�vb���o���u��>�AW7o4�*���N���)������<��|��{���#R�n;�7Fvc]�'�N����z�jwQ�u�W�p.{g��>_w��������'�{a<�����������Ol'��#F[T�G��[X���b��j�4qB`� ��j�qF1��e#F�c�(3m���`V�b�Dv-]u��{i�F>��<����(�m��m��v��F����m�Q��j�[����m��0M���v��m����v�5��T]v��F��Q��j�Zm����V(��y���mv��S]��j
�]u��Q��a�7m�(��[�h�#�O<)��Q��i��������(�X��F�)�h��kA�"��cmBs�������<��<��1�(�
�`�<�
`��],����=�1<��w���B1�H��1�X�F0y�k�����c�1���5�c�+mQ��1HEb��a�G�y��gggM��o]:z����U��1���c��+��L���c�|I6�m���������������������U_d�d�-�����\k��:�����5[�����w,���.�_+�+��\��:���S��j��YrPv������v���*J_d�R�����J��7�U�>	��]w�������c���}�w�����������U��1���c��+��L���c���UVJ��\�r�UUb��V���UUX���"UU}$��$L�k������5f�3����fRH��s+��;a+�p�yK�l�a�1�8�7�$%�kU��]��v���:�2����f,���t����7��j����W���|��5�;��C����������^���cc�1�1�V1�L�1�X�o����*���UUY$������������*��n6�m��!�H��w�������0;O��n�KX�v����P/(��:;��w'��k�kFs���:$�Kvd��V�MW���&�e������&�f��mR
�k��l�k��<b�gs���|�x����F�;x�v�}c���U��1���c��+��L���c��%UUIUUdUUr���.\�r���.\�}�����*��UW������=������z�W2��6el�����sR�-=QL���e�]���
�$�����V�:����N���������!�zY��Y��(ix��B.����z���]k���]��7�9�\�����������z�1�1�cc�c4����v���.\�r���.\�r���.\�r���.\�r�UU��d��������B��D�u���{�+��(R�O�uw4���_oZ�:��/J�J�qZ]��9�]�J������������C��.�Y�/mV�����5���y�]w�w��m���������������1�m�c�d�&Lc�1��.\�r���UW.\�r���.\���.\�r���.\����c�`��_������������V�j��tXH��oGf�js�)�K=��ko;7��7"����|������osB�G
���38y��F}fr�����>O7�Z��s�]���Z���/�;~>�>=z�^�c��1���b���d��z�;r���.\�r���.\�r���.\�d��m�����m��._Q'�*����~�*R?m�>%4]
��0�*:�u�)�^���C`�����
�J��2��IK���J���J��d����_P���\VWvpE��mW=vv���|��y�w���|c����^�W�X�6�1�clc�c&�2c����r���.UUU��.\�r���.\�r���.\�r�� }�9��=q������������������ea���:�t�9)od���C�,���g�L��}O���S't����39�>M��2a�l��f�S�J-gTf��m�������^���cc�1�1�V1�L�1�X�n�UW.\�r���.\�r���.\�r����UW.\�}�H=�����o:�~O����]�|���p�W���IN[�p��`�������j�����n�p��I$���^���:��V���sff�E�s��/}�8��o������U��������U��1���c��+��L���c�.\�r���9r���.\�UUr����i�U]�����/}��M��[�[��u����w�n��Y���M1@����qm��O�+�Iu�HU
������^I�,���k�F�u$����d�|G�[�$�?�$��d}G��{��v��$���"g�D�!P��q
��`�R&@��r?�B�������=$����������$�?�x�T/���8t��o�t��:P�
����$L�F�u�FRd�Bq	'�g28����8����$��5F��[EUmo���e��������������F��������]H�!9�8��Iu6�#NX�N�>�������$�"G�$�I8�I$��!$�I��p��
#�5��O��+�$�$A	������NUcO�;�?����O�|}�?��B������o��c�Q��I�$��N_�F�NZ�#��A	��?����$��?�������_���'�D�{��#����@�&��$�����k��?������d��?O����"�I���BG���O�<��  R*C+ n���d���Is?[9��55���|Gq�!?�N{NQ>8F�j?5���$��*56�H!?��BH!9����,W�����Q���8�$�Bt�?���-�p�H!=u|����������D������;��?I?������$�����_������ ��=x�<���M8G��;����$��$��6� B��D�����dNbM?��>�?��!%�hf�Y�4B��7/��U��U"U��u������7���B)?'��9p�Q��O���O�@�%q��+O���#���O�����'.�I?���gn'�'q'i����?H��>��=��I�?��X���u��q#_�w$�r�����z��WO����q�s�zw'�qO���I��	����R?����~?�$�?��O��<���������27��&�N8'�9sC��?��S�+�	��xz������)���v��`��~@@)w��?�� ���0���"H	�T�P��Uz����j�(�-�CJ���1�����3-�BZ��-j�Ke�����)4��V��UZ�� �tV[f�6j������T���R"*�*��P����
(4i =�PI��QISIV������H��
�ZkjPl��$�R!J��%&��AT�,��QR�&��bB���j���h2����%�Z��CK6�:�]5J�������l�*)�V�ER)^f�(%v4%Z��a�������`
@���z
�8B;+D-1�lb�T/0hi����[��tkJ�
P�)O�a�����.�����
�p���8E���*(-�s�}�z�J����(
j���`{�p!�s�w���d��:�DXBR�o��E+�U�P*��+
�<={����X�p-����`f���w<���K@
�Zd�����
+J��@n����:�z�����wF	��-0�*��5Z
+Y��]g��4hh�5��OX&�Z�60C`����W`���2��`��pz$��2*)�;��0mX6X0�lX,��l��9��K,�h=��A@����dC�����a�lA�f
��G�(I�0�P���tH
ikMi��BC�a�`�a��B!�9RKc4���s�W�R�JER���z�l`�fa����C��T�FMJ�&��4zh0�F&A��h��3T�MIH�0O����Th�*�����������"�2C&F&�d�2��$�J)�H@�6��h��i��SO���&�I���4#P����
0�z�<���?���n����9�p��H������/���z�O�������3��o��4��y�4H����[�i����f��������������_���������O_�"�}U��m��U��=!"~���T��O��q�b5��?�?g
����*�&�BO_��B|�����M$�������O�?�7o�o�~��r���7�����m��/3L�
���6CfY
A!�D��@"��3
B�$$�HL%	OP����2dd���	��� �!�/���0I��2`���BRA�$��"'����s�JL� �`����&A��%&K&���4""��"1��	�#$AI�2F �&H�����$�$�wt��� DD�2PA�DA�")���fRFf��I��%�$$����0AF �	 	$�%L����J#II���Ri)4(2FL�`�2d�`�H��	$�I !��e3I4��JK&L�$��L�d�H�'8A12l�K%333��"( � �K3L����	$�A��$$��"JH2RRf��2F"H�A$HHdHH�&fS(Je	�0������	���&d���&L��2����$H�$& ���#!�1�b0�@I�
J#�,���c2d���`��$2�%	�	#�A0��D�2HL$$$���		3BFB1�4�fd ��Je$d"d$32$�g7fL�2A)��@�!�d��$!!"f�����$��$$��!2fBd�	2i&I2c�cb	�!"Ea30���"H��J$��2D�I�"�&I��������I��			���$��L�HL�&f$&ffL���#�$�!0�L�	@d�fd$ �HBfBC	����9�2d��X�Q��a$$��B�""	�B	"C3`&LcH��f	�$��1�d��1���fC3@A3"f%$J��IL��&��A��IH��L�2d �� I��`��"�d��2I�"H�31$��F�D�$�Q2&P���JI) !	�C2�A#!!����&S32���	���d�d���f�I	�����A&d,�!dwk������ �I	�����L��B$����d��$d��2�@R���12e33	��d�������Hd`BH�	H��D`�!3(BBS
H�����������)�3&S&I ���f�)�L�2D��!�fB�)!4H�"L&`H3)��#4���@@A! L&H	L$&H	$$��&S2d3�I	Ha!32�1%2�� ����	 �I"H������Id��4Q�1F0L�!
Q$!�Li�f��1��!A$&d���$B�!	3f���$��2��d$�3�L�4h�h��(�FJ2Ba �L���#3�d$���C!&@��"H0��4�	" �$)�@�)�P�"fBfa BA$A$���`2"C)���)2@�)2d��L� JLAPd"��J�!��@P�I��$I	"iJD���fL�P�� w]�d�2!D����	�2d�XL�`����@ID�����c&��  ���'�����.����}�D��!0��Y4��L"�hL�Ad �I		I�La		$�1	�@�$DIAb�P�32������i����fC2��L�IId���H$a�!���$�c&��
P�i2@A��2Q%Q D��3"fC"Rd���$��H��PH�	$���`	fL�I	I&L�$�d�f#2d$�Db����2`$�			#$�4��C4�A4�2D��@	H$!�$� $L1�)	���!�!1333d��P��$P�La2d��@ff@���`�&L���DDd�����0&I��i���e2H���RF$�d��N��!�`��!��D�)����$�$3)"$�2@L� H	&�����)�$���d��$�a�L�` LD�A2&a!��Bf�@	��2I����I� i����4�$�I	����Kb���1����H���& 0A�
LAD�Y�H��!�"�R"1�C!�fa	�Ba)0DRCS"	�I��a�I"�$Dd �!!		�CL�BP�$@�e	L�H�"	 ��&�D��f�	����L��D� $�H3�	$BS!�	( ��&$�L3)(H�A�Fd B`�RPD	��#(�L���1$��%$L������Jf"�CL�fd��$����Hd#&	 L�fD�L���BC�"&Q�	�)		�����$1&K$��&%4����$330I@�	BBI�D�A��%2a�H�
L��`�cZ1%a�
"
(�1&�M%d�L$
d�LAI�"!!H@�Q�1F4h�Q�(��$&d;����� $���@ $#II2���0��df!�I0@D�2Q$b��	�D@A%&L�%"H�&H�(" ����A"H�bI1%"@adHH���L�)��2F@#��$�2bB�{w	HBQ&0����	�ffLfc2$ I$�!"B)`#$BM�]��"����
A$�!�	�Ld��$!2��F�#"�$�0FL�d�J�Db)2�@FH��Id`0��$�`���R�cF�11��DRRL��II&3A��4�f�A"�e)"�&L
$�$���)60a32c$I��b"	#A�c�$�b`	FL�(L�
I�30&&`���hL�1�(f�H �#�� ����h"(L1��}n��W ����4Q���b��bY�FH��"B�L�B"F0I�2���I"�C$�� E$��&�eB@�40��hI4�i%&4%$I�����3DQ$Ra*��2fX�1FJ,�H�fh4��("""f��I�e	1��	1S"4��"���1Y �&DH��&d��2�0��!)�P���34&LEPAc%
1�fBb�S��	(L�20c�2P� �3)
"F	���I$M&�H�JC Q0 ���L���`�� a�22E%��(�����4��BPDD�ID�&0��� �1&d$"����5��cQ��X���b��Rj(�
@�h��QAF!cd��QF��Q��AP�cF�IX���I�Rb"�F���&���Q�DI	�	�f��P�Q	((�I�P$3%(��$�0 $H�6H�6
F(�X�lX���X"BJ��B�L��d�0b HDD�$�b"�"��F(J@D�H�
$���$���HC$F"1E�1�-�"Q(���P��&I�PbI	��"Id�  �E1A4E������6,h)(���F�AE%�c�`
4�H�F3��HH�����$mF
0Dl�1	$�)BC 3!�H��$��Q@b��C((�,h���"�b"4Dh�E�4E��0b�`H��I 1a!���)���!��	������4P�D$32H �")$����y��?oI"d�H�a$��(�&���#hTI#c@ZI�PD�4�H�����2lV �6�5&6! ��(��E�[�(�Y
�T[6�h��FfCIQ���h�&�����HcbJ4&	b��QX(��F�%�Q��J$�+F��[Q�����2FdD�[F����D��j�336��&D�Fd��$6��d�	5Qj�@@��B�����V�0�����a32d�@$$! �L����b�o�_�m����?���g��6�����'o����x��!	�dp������>9|w#��_�?O����_�{��s�;�m�[[�F������F��5�X�j����UsQ����F���j��\�5[��Q��F��\����\�j5sW5�Q�������j5�F�Pm�-�*�\��F�W(��X�66�F�Q��j5�X�-�F�j�E��\�*���5�F�Q��TZ5%��j5�F�Rm����5��\��s[����[����nm����6-��Q��j5�F�Q��j5����F�u�5r��5�F�Q�-IjKQ��j5�F�EF���j�����\�r��m��Q��j5���h�5�^5sQ�6��"��6��Q��Ql�EQh�j5�EF6�EF�cl`�-�X�5�F�j��Q���W.V5���5�F��4m��,k�\��Dk����\��F�Q��j65�%��j5�F��6�F�lj��j5����t��5�F�Q�*��%��j5sW5&�5��\��F�Q��F��h����F�Rk�+cQ������mF�[���F�W5snW-��F���j5�V5j�F�Q�����j�r����\�j5�F�Q�F�X�j5�F�Q���F����\�j5sW5��lZ5�F�Q��j*"��j5�\��F�nm�\�*�F�Q��j54U�F�Q��j5�Ij5�\���U��������W5�\��Er�5��Q��j5�EDU�F�Q���j5����W5r�j5�DTj5�Q��j5�F�Q��j5�\��F�W5sQ��U�F�Q��j5�F�Q��j5�\��F�W5sF�[����j5�F�Qb���j5�F�Q��X�j5��#TV�cTZ��j5����F�j��Q��j5�F�Q��j5�F�j��Q�����j��j5�F�Q���Q��j5�F�Q��X�V5����F�j��nj����Q��j5�F�Q��j5�\��F�W5sQ���\�j5�F�Q�-F�Q��j5�F�Qb���j5�����s[��\�sW5�\�\�5��j5�F�Q��j*-�F�Q�����j��j5����F�Q��j5�F�Q��j5�F�Q��j5�j��Q�����j��j5�F�Q��j5�F�Q��j����F�m�j�\��F�Q��j5�F�Q��j5�F�Q��j5�F�Q�+�lZ5F�j�����F�W5sQ��j5��F�Q��j��clj��j5�F�Q��j5�F�Q��j��j5����F�Q��j5�F�Q����j5sW5TE���Tj5�I�#T��5F�Q��j556������j�[r���X-\��F�Q�b5�F��j5�F�F�.m���*�F�j���"�����j5�F��+�m�F�Q���]�U���b�����jb�����F�QPj�nZ��,m�F�j�����cQ��j1X��X�X��F�S�����G���??�1���|r��������j��O�,��!	���/�sQ������?���O^;��Z_���������������ea�;x�J	��zg�v(�DS	3Wwe�/J��$�D0Fy�$b/{�>[��I^�o&_�:{�-�z��L�2�7���,�&,�^\����c����.\�u���*�b��Z��O=3%e��,c�gy��w���i���-���U��l�GV+���u
���<��DL�<3�}��Vd����-j�+2�^�}Z�qO���6��Q�]�w�z�,�E�h!��q���R������m}�V�%�����9�n��C�.�{^��[L�)�Q��t*1�<K~��-d�9X:���;����o3ud�h����85h�������c���h��,��j��9�C.��Z���h�w��|Pb����r���{�2����W�-W7Lv��me��'�:6Z�����/i����X�_`�[��g����l��%^��_��X��`gK����fD�}����nI�����{�qatE]���\��l��{��Zq�����L�{�u�SS=�����|�7`�jXsyv��������)�N�����w�����q�m�T�����+'��"���n��kj���Z�u��������m��+�����9M�l��,�?�G���m�j;;,#2���>���m��f���;m���:�@��
��>�lo-�s�5�+�1��vb�r��j*�4�x���!��<U�P������%�\:�������y}k���JJ��#�����bTK+7�n��`E���8����r�2vnp������#�`������w���Z�7���{������H��s���|g�AF�Q�w��5���vU����������N��z��
�X�5�]C�[{��$�5�`-�.)?
�V�����m5�V'�4������_�����Hm8�Fxy��::�]'���X��d�wU��5������u]��Y�!~�^Y������+eyU���y�&���r!���q���8Q�����3@!M����f�����_,���w-�]��Y�N��I�c��WK
���m�r�l#t4/�t.�B:e���d]Q����YX��0�J�75�W�U1�,%L�:W	��Y�����q��\��~h���~{yN�;y�L�('�%a�}M��=����\������������n������������!�I�{<k��m+�(2��x�J�`���X�4��4=��a:���J*Enn<����r�(��%��(�w�n ��-��w��h��DI���D�������w-�����7�tT.��X�Z���7JpWQ��+%b��R':����q�v5���Pm	YH[���R�D�T��R� ���y�'V]�hb��[���Z���!+-�cN�J���d=�/����H��j��^R�74�Y��;�-Zf�J�g�����qr=��X6�
�9���Gt�mi������W`��3����N>z\��'�$Tr�w��y�;�d7���	;C��9'%�d�=��^��?�������������E�^oU��o��V�fM�L���]������	��:l_b��e��K���RW4��{��{�9M=WN��ZT������)��o��=r6b)�[2�C��){z��X���g-���]/j�����]�t~���Y�\ZUn�2�yX��~#�^�8�sm���[�g���y��>c1�p�
�[����q!�B����!	��L#J��s>v��uu��&=����%��n���N�&�LY��N���Z[�Hq�X���[']d�Vn��=;�����9���Z~��-
�{gi�9���x�����
��������vh���Y �pk��4����!��#�Ur[�A���5�v�mr�.U�jNB#�6�i��T��m]�Imn[6^���U�Au+V�������L�I�\q<"j�'Tu����rK���h�d�����m�.�xVoBk��+���6x���[�A�c3�����H���r��@�����7V�ibn'�mY�iR�����S��Z���H_�z�{��n�.�/�/�:���5�x�i&6`��s/6
�����.k�+C�k������
U���>P��
���\������HOl���V�b��:����;�`��V�	��Z��/*n�����fmm79Q#�wC������'��,��m�29q>"��c����>�j��]V��\���K����^�VEP�E
�h�������b8Mv�]��Y�V8��=gr���[`�o���t�������%�,*+�]0
���U��nm�2�u�:�|��k��1o.���(P�����A�z��	���[�k9+��#�]i���W��6o��S9����D4H
����gD�\�����
�"k�������J4YG�pV0�<��Voe�_),����Y����3n��(-�w��w�u�[�U��Z��V��^<K��������z�/��Yz������)-�}s�x�t����1;��.�n�s:6�`r�o������8qGY�\r�]#R�4���U������J�-4B���p��h�m�o:I�Tt�t������]^/gn�����oW��,,v��72�Y�K�r�b�wlah��n�
.��{����yJ�^V��)6��U���{�U,���]����/���*�u�<*���.���!k%�qw���wv�/{xR�:Hp�����X1����k�ux����_Q��-W�KVh�N��,�"����c��%M�{q��|Y
���X����5p��79��h��a3}$A��ICb5��w+OIL������]\���7�x�EW<[�`����s�������uFf���Z;���y�E�X1����YQ�x�Bf,��S��Vt��)K��{{��f���~���e�46�)ubO�N]�?-��k�r����Lcy����
����DX���x�E��Y��`2���+r�CP������{�;H�����f���2�l�X�+\�,#GA"�f�s�g������b�[�NmX��=���k}��p�<{�w��������:vm�b�Bg�����{����9�q}.S��v���w��g�4�!��LU��_V�D�cH6��Ok3d���f)�:Fl�f���m�f�L�7������{A�p�!�kq��f4T�Dd)=���������z9��R*q���r��Z���7�y��B=!�o�i��*�M����9L�{'`�D�'*�������P�K��N���Zf.�aW�i^�=�xb1"��Jj�f2�b�"zH�0�K�m]e��x�;ZiE�oT��-���)����ej�����Y�qR�^,��iYY�:���e�(�)�!�*������|�V-to��gr�
I=����?k�IH�yfVM�r7W-U�$��.�x�c��5��l����u����k2(�����KWs/�����3siQ|bN���������w6'�fsx�-dV`���]������`������yzuZ~|r��{9�M����1Fo8@��L�7��pB2�f�b�j��3j��E���xX�S�=V���*��g�?l1,�vH*�	��_Nr<�.��*ew`S/�q�)0iD���9��7�����n���XVk{�������r<Y�^1y��N���Is�rJ�������[@���ycB�9�a��H�[8M������@�:�}���%#��GJ����ql��h6'�,���l���t��Zc���Y�&��)��
�o�
��-<U�WqD�GccK���'�������x�!��@):�9��wE�2�b�����K��2��u5scw�S������9��kp�
���h�eB�q�j���)EC��c;fU�N�c��2��zH�$p���/����M�Wy�)S���nL��h�x��{�L���R�xw	J��;7)�K��\�&���/s#��h��t>��Y������^;2�������s���_)[fV&1���v�����WV�e�]]�������X3����p�����2����t�{MHs15�M�G��A�)��S�E"
���p���z3���
~��q�w�|$r���J�Oy�E�u^ah�6a���������,	���n_E���mw�].��L����%�Q�X���)�qc�c}�vN�!���B�o��q�w�ea���4�v7�����2n��v�����'���[v���c��A��{���\6H>}[�8ZGs7��B7�'a����L��:���-mf���T��V72�+L���%QWmS�w�r/�W�Y�s���=R����n��+5"�yj%^�{^nf�`�9��CPj[��WU����N��wE�K�NV�	9�:{��[	��O���J����z��\�����}��R{^r��W�HY\��X u�77K���
:��w�{�>�wOu�d/Q��t�����c��4Kn��>��A�dK��X�I�tk�tj��Cj������fU�!�}�B8-���N��*T9��Le�b�'M��*,JU�k�c�%�����k����ch��v����+��^~�:���e�]���?[�?5V��������<��n�w��Xmc��o��z�^����{	w+�Q��t��n�B�?y��v�v���8f�Xj���@�j�$=6���������Q����c�$H�]]GiF���2���
��#;��)��E�^qF-I��z��Yb�_mZB�.,�;�v(�&�rV|�
�Y��E{QT��w��',���t�����w��8k�+��p�����]a�`���.��K����/m�
��h����uMcH����������O��.�L������a�������N�9p�����>(����������Y��P��C��R<��������3V�I��-=�wp�����|���H�m;�9X�B�)�����k7v�:�����b��+^Y���uM�4���6�d�[42s`�z��w&�;�i��Zq��3CQ��{C�+929����0-��R����;�z��n���+�bO��$@�'}5U�z�U�K�!�U�i�O���#T�/)����H���`�
��V�����on���"\�(st�Q��[��s9U��t��Z��wh�[�+z���4G
��a�����"��d��e������T��[��$�%A�onU�a"���8���2��7��\�E�������g�c���`��ze����P2��4��w��k�,�����M��tmh9zw:��o>�$��j��5hs
�*�C�m9�j'gD�~\(l�
�����H��Pc]��[���4u���I�6����xo4sJ���oT��hA{����T�p�+�x� -_Z�����8�R�Yb����V'��m^���z�S�'z���V�wL��n\Eb�N�	��p;nfTI�e���s���a6�$�������y���n��:B�����M�Z�q]��3�Wd�;B 5��&0wh�,��E�[�&�,��q{�2��e.�\�������T�_Uq/#�������t�[c|���v<��^�o]�,��.'�vd��!���
'������������wz,�r���{�w�,of��/{���~�.����7]�����[������f�vl\]��m�����A��f�E���
�%`���3������#��s����������(s3���fj����Z����]�2�rZ�����Y�n\��N�������J�/:��]va�w�o���d3sS~.���]Iyi�����5E]]��T~��D�/�vq&�.}tk�x�����:}JL��b:�s�7�����z�N����a��9����������&����J�b��,*b��m�b��(�]��,WS}y��Gg=1%������[�Y�F$�i3�]J���KX��2N9�d�b�8�ll��su[���Y%�^�M������X��V;��
D/*]���u{�dD6�c������W����h��v��r�%Yu�O�<x�vc�9���gVN�q�P������/p����_Ox�������q��fR�]�X6������9���%��� ��|�&�@��Y�kY7y�J��f�i���6��/A��5��i��tm�v.�i�r�K.�e�]hl�}���4�;q}�,=������,���.���2���,a�od��U���4��������K�[�����u}��0
A�����B���`a)Vs���mNEM����5�
;��g���7D�*���K4�=6�L�w,�F<oi[x�:Z�6�\{	VV�	�q�l��l�gd����`���W�p@%����)��*M������os3��
Z�X@|����i����[��
t��6�/V9r�8�����5`��)�A�q����������Y�j��7�7�����3
����]:�`��X:z�r����>����[��g�z&���r��A]v�������{����j��g�4;s�(��F��{��Q�r(���8�X��y&�n��Yo.�MW�:����[F���b�_+�w�z�,����\�����rcV5������N��B�����v�d��
�yn:�0���i+�����f��U���K���5���M��6 �M�S
�{���wQ����nf��K%����F	��k�2����y��X�����b
����4�82������b��f����x��i ��P�q,��4���,��uk��������b��.n������{BJa����n:�\*�nj`�o��w�o����;{s���o�����{��}��+�V)S�Jy=^��m���)c���!�p=�����K���X�
h��=�&��E��o!�=��B��kzNv:���Vy"�[F��]^��6�����C�2�g��+2����X��j/L�1�t��O�,Vi����xu���@��X�x.��Y�W�5�q]iU(WT�Q]�O����h
x�j�e2-�\��ZB����Aq����>i�n�v�L��(=���(l����y��s�E�T�W�����+��Y��I�:�4�\Fg�f�Wc��Vb�f���u/����a]������{��6N�l_,6�4$m���`�*��Z���w��2i��hSS49�:�O8$��/:2j����iT7p�KIE`��-����l��YicL��n�\�G�%��Wiux������P�X
Y�n���Q�^vs��n��|���Fp����~��o����J�,KE���0@����o���uf^�1��Q�j,�kL��;.�]������92���S��'b=���n����b���0�Ht��� �
���R`�����3N�����jn�U[:qe��t:;���@���M������������k����������e���%�hk/�[�*k�/�ixpX�Mi��@���V]�v�pC&d���.rx}���M��8���X���u��
�����eubK�����i������ww����U��������5
+5vbhrU����1����v����n����R������q�Wvu���t.������P���t�M�*�U��r3��i�:F����w�K�_v)gJ��hZ���*yG^|���z��V'^�4}x����;r�.���K.;{c������O_���6�|������+��V�����M�V�[�C,�OV\\�W4�I���/��{�e�3���d��I9����K��������u`|���h�up�v��Pb�x����f	�~W���S{C�/P�]�r�����%9O��83I��Y�����^j�e�N��m�%0���z�^��6�'�cEm.�����$�"'�S���n{)����i�w+J�Ye�����4+:���A��u/�pJ�U�r���`�����%�M�����g\%���%����R�Ui�2�������N�9�+�����U��{��$�:P�3T��F*}u�C�#����s�x$���G����w���h=j�)�w��c��7y�ZB�Y`����w��7��2:���9��1���^e��F�n��o�KP�\�
L���x����<�n-V�S�0�����^�{J���&>����yD�����.��v6����h��5mB�Av��-u'���M���j���-��k��}�|���y������s�{?{������op�5���fqG}���w��Y�Isy=���o|��:�Q��d����vu���5��{��s �����#m���\�>������[���/JAGs������Qh�.�xa�L�;=�+�R�mv���/��=���n�;%fra����V.��inF���������3Y��������cCE���Y��YWk����g;i��`���)��<�5���wZ�C~�m���a����n�^R����<�Osq�;W9��:l�#R��kR����',���X�;���>{��[1�2�IVu������T�7��u7n�^��)
�7{0��r��&��q'�
+;����-]Z��[�Ko���g���e�zVi�(F�[n��2�>LW�qSd��^��n���\��dH[�w����E��d�wSZE=�~�j���-����';W-N��KM��j����/=����]��&#K
J���RK��W�����{�;��&��6E�b�^�o�mN�����<�"��R`��,��q`��1[oLd��u|���C>���|��cz�� d]�U���Q�@��,��`����:�V��n��L��1����G%�Uj�����c�X?Z�m��b6N���Gum��V5X[�`�}�wjj����u�O3a�W����}'o]n���Mbj��s�N�}d��y�>.�*�<s=������M��D���2��C9w�-��b�e����i��ko
@���Lb�\�����U���oo,��:\�+������]�%�[�)G&������e�q|X����+]�'����Mt,b�=1#�1��j&�q��"Z7*P�	��a,�T���+���aN5�v����*���;�@n����Wt{g>���_�m�J�������T����l|N]�H�Zf�s:��X�e�������j���X�7@�����q|��-9�,�z�DD�lP`D�o;A_4A�4����p�gak
ab�n��\7l���������9������]�F�Yp��?B����T�-���<{�����[]���l+=���r���%m�["����!�:����>�������73�Jy���7���m�>[&�������x�Y����;�7E�2��Q�{��V�]F�k�<&^c C���J��\��������'�;4�������������&WL������N���Y��0��
x�������_^�+	u/vo�y���;�{-TZ�od4^����oo�-�3���N#�>aS��r&��3wUX��
������
���.�����g5!�+M�f�#b�4c]����XT�=��%���w��_zI�#�Pr�7���Ed�,U��C��G�Hn�q�����2p�d�24)�Vg����eh
��{`;����*Z��.R�V�q�����6:�t���X��������I��Zi�:Yw}V���7+��x������r��)h�~������"�i�%5��[�A���s8h�W!�1����~��T���/u�������<�u�2�A5mn��(�$�
Y�zV��5�y�zfz���^���Df���V�;�q��eE�(����)�<�os��o��=*����r����Ip�L��+Q���5&1G�.4wn6/��������oc�h���]�������$��o/S��cyfa���q
�-�r<�4n�8e��j,|��-n�{��������l���!r�ui�s�������k��+�o��*�6��Qs[:6����*����C�F��1����a������]���M	;��o�7iVH���:9�.�Z�7f5Y�_��q
S{�W��UN��j,�p�����?��IV��i,�������Gk��*����"�x/z����y%gY�r����W=�A�Q+�H{��W��/6:K����woJ���;��2�(Zd���k4Pn����WxC�LpWr���_2�U�����	Z;���9 ��@�������D�����K5�<��jO+w�L)�3�u�YkQ�;�
��y�.��=��M���6h��-^V,-����{7�]����86����k5�^*�Xon\��K�m��c��*��X�������wSX�-T�����;��!1YZ�������76�iEfB�]�|^;|�����3G�N��D���LB�qD��U}W��+��u��r�R��hk�>�~pW��H���������(���G��$��	�����y�����c��6��j��7��f�QF1F�4c�1��_�F�$[��_�q���DbtF�1�F,h�F"��e;�w;��wq������DE�����$�W��0A�cg�n��1��W������	�����:���s�s��1�	~�]wwws�w;���I�=�pF(�1��$��������6�x�Db"/���t��" �=��$�@���@w9wt����wN�s����2Rd���/5|q'�s��
]��m�]O""'�r<G9��9;��1#�qAd��1���;���;���HD�DF���|@��wwwww���������������U������w�;�������Gwwwr�@A�F>@^�;�s�����s����������B0b
��b0DE���;���������
�t����������wwD���k��bDcF1�����u�s������������y�Dy_6�UDA�"<�DA�0DA�"�"#d��b#���[���DDydD����.��w.�����r�����"j�s��.s�c�1���"�5 ���
`�<�w1���A��F1�wt;�ws���ws����]�����#�����C���������������DDE$^�I +��`�DDD#���V��}=�A���"� ���t����w9���wtD��1��1������ Bb���w�c���d��'���wgu��9���s��9����w]$DD�~����DF	�}]�F�1��1�ov������w;�������������������;���q�b1}"5��o}�]�������������w;����wwwy�w;����"" ������wwwp*��������������w]���b ym���;�����������@ Ek�%���hC���9���u��w\�����w�www;���;�����;��K�����""'���$�o� �B&##���"(�xDDF"'���s��� ���w]����������wwwwww{o<���;��]�wu���AAO;���������www/�����H\��ws��� q��#�H��@gx���9�s���.���I$�@I	<�]�w;��������w������@oLDcsV���k���m�} �,@���y�s��wt������#��9s��ww9|s��|rw]�;����w8�w���;�����wwwwww;���DO9�����|@���ts�������]����������wF1Dj.������NO��O���p$�{�������;��Hb����9��wrV�%j�R��I%I$�$��V������s����������w{���,���������������wwwwwwwwowow;���s����9�����s���s����w���D��ww;������DA����;����w]������c��������9�s�w]�wu���@!����C}g��O:s�:s����;�������nL�yj�[�>���j�J���%i$���I$�J�������@��s��^��uj�*IZT�I$�I$�I$�I$����o���@O(��[}���q������w��;������v�x�9������wN�C�s����9��wAxpA@-6�w����$��F#�Qy�[��;�wN��������wwt�6��;y����c�/���wp��/����1�\wr����u��������{���������q����������������vo��������wwwws��������www;��o�DD��N�����""�9�s���Ui$�J��i$�V��IZJ��N�{��>�=���;��.����ww;������]��V�����I$�I*������I+I+I$�I$�����I$�IZI.ww9���;������������B@�_=��s������������;����ws�����8wG��r��s����ww�{�;�w^9�E6���"#��{��(�y��9��;���9����r������SY^���D�s�w]��@VDb �������� �	�<������V�����C�ky�6���DZpR#_5�5/#���c�Db��An�������������[�d�j��" �����@B@������+[������I��I 	$�X	H"�S��[n#������`������I0����m���� ��.�	j��\ �BH��ky����$�Z�[��R":]�s�w__@�{��A�EsD@H�w9�s�9�]�;��
3�_d^=F0b#��Db����V�P���I��I$�|;�����������b1E4QE�����b1�b�DDE��yQDAA���wwwr" ��""#r"F'��1����s�m�wj��������	|������O��!	�p!*!?�?��N��������M:7����G�~�W-�����*(�?_����>�������?!�����[����2�n��p�2��Z�;b����3�����;D��]��b��.U�|fQ��o�Kr��=[����7��yS����;2�=��J��X�nt��tB{�R���*�C�����P��k�V��_gd������{q�(;���z��1;�Qa2�v�A�Jf
�2���������v^T�'Y���Y��KZ��t��tO]<��b�gV��r^d�U-�����w��Om��7�m��Qj���a�z���!��_R�G\��j�6.�j��J��]]U�o��:<�{��T��+ec/$�GB�W�R������9n��.���G.��,byq�j>w�������r���y����9��GZ������g7�f:o��zr��f�LW�G�.X)^*�|[;t���x^6oBs����n�w��3��R�v�\���u`�)�m��q��+]#i�{���gL�O��iz��s,1�Bvh��n���F.��W����c�>�r.��k���lE��h�Q������<���K�W(��t��=���t+�N���=4L�m��z�SU����SZ�����5�HZ	�3����P5�NhFT��Hp|��a������^j��u�����L��$N����~8����<
a���7��,@�z����z������A������{~�K�X����.�5���.�p~�������R��<v�Dh�q��1������]��=t]�����X��,��"�{�����M�'���3�4KC)|�q����w_��j�Lr��a���gE�v��'�
���0�vU�RX\��*��(Z�/�f�4��xi�������y�!{�������r��bd=��n�sP���r���2�>�D�����@�1���:6r����7�4oU!�.be�X�!^V����4�U�v)VZW�v+�����6&��![�3�z���K;\�{1���f�:d���r�t�h3���}����U�^�K����|)[�W��V��+�a��M�}&5�8������y�3p���c���\��z�>�F�g%S���_s�}(8� �N\;,��(u�\�9w�0^me�����-Z�
�Um�P�t�4���B�,sN8�u=������F��[07���}�/�"t3��G�����!EoWo�����Zj�E+�F
�����v�j����BU��BZx�':m��7u���~��y�r�I����^^r��d���u�}C{�'����.��u�Fr�N�-�Nn�,�r�b]���F�x��)9]g������Q"���5&s8�Y������i�HA�zw���~y������}���+�s��<��s+�Mcy�)��Z�[����^�6�+��qg�b��Y&M#��q:�(=�M�1���d��3�;����p�_l}g����U��������.��`�-bg�f�h���c�ZvLBr���`:������m
��m����0�����Kh����,	b��;��n^�����K1	��������_]�
vK7�.,L6�v�"����������������!�}���7��}$J�p�O^��o_v���T���y)?����E�M���qk�u��Nw_o����;_M��r��r��.�+gqE���ng����5o�YG���}y�Bj����=���|��M�K1�K�)q���/8���r�y>���G���/�s�Z�������7��G56U�g�ovQm���cZ����<�����!�QM�X�����sd�U�U�n��&�e
|CJ�&��@�"t�T \Gf*wJK���X�{L��|T��iS]<�����k}�|���]H���E��6����;�S�So/��iV�A����b�����������O�����v�d/�������|�g�=�����js��<l�r�X�o>si�����:9z���J�����9�Y��u�+q�W���=��wF��#�u=�J#�//�����]
�� �kt�4�
O��ih��.���i���D��.�����u�Z����wS����^on,J�h���m�x|���"�l��=���i^c�lM
�������X��]}�R@]���@g,�5N�J�_c����y,,�������O;M_�S������uV������|��n��t���{���;&!D�
�X��]�����#��r�U��>����#��.����E�����D�s{����������C6U���|�WJ��8�N�s�d�������������Y�8���_A�P���������b�����2��P����B�zD�H��N+��z'p45s�Bt�����s�/rs�5���Gc�C*��B�T<���[�@��a��[kkz���[�xV��0p9�eu!�VLfv������[��IN�-��u���u�[}R;{�+��]��pU��f��-�7z;q�e����lM)�u��T��=&�0���(
���!`=�d��76sY�3w���z���l9����7Vv]��\Ky�Su�F�)�z1m_
v3P�{&����t��:_��YGn��,���u���F����*�vlB���d\QvY�����������5��`��sGwhSz;���Y6�v-1=�v������v�o���v�����WC�B�������$��q�c�y������J�Q�y�A��L�Rw{/�F8UG�G.�5���K�)��)�X����v��lTe�{��%��76������k�P���d�}�L�H;j'�gGWm�R��u3�������fT/��v��OM�$���h�ZOLL3SF)@�:;;qv�C��y�s�1����K�6c���u�#3��Z
��+�r���PX�2����u��8�~wo}����|�_�t������f��:�\@��5W,{�jj�Q��Av�Z��d���h_�4��B�W+�p���:we*�q�;L��z�M��sV���Q9�)Y�.z�
3:P���X��^U�/\�{��3[!�{�Olzr�3�v+�8zy+O�������=f^-S���fV�����y�N��������;zOX��/r�jb+7�}&����Gz�BT�^����7[�����w�+���Q�����'m�v����������N���������������q��n��d�VT����0M��::��V0�Awr�������.��ZNV';n�C78�_�{M�p�d�.%},Sg�I]����s�����W+h����KW�<�����$�=�{����@s�o',!�j���{<�N�/z�-�5sym�N��<��\��{��oo@�k(�==tz���
Fgf���w����eI5�N��A�����.�wf�wXr�F�J��(�-���wQ04���Dr=����!'��^}\��}�{���O���&P���=����_s�_]����P�CbaS�V�5���V��eI.����|�i��e���3������������0�w]���]�G%��x!����\���(�F���29��: �N����G&��t���������
��e{|��)�0�����Q-m������YR�]B#��W��u�������c��2�����ddW[wX�'_�j\�tn�Z�C�w��V���2��������[�o�]�@���
��<xXj���fr^����z�'����N�����zf�+�{s�Q�*�-�V����{�6�����_�6N�L5�p�Lbh�;��S�W�����E4V��m���r`�l.,#���4y��������8�(�mm�����st���V�������u��){�-�o��Mw��g���s2P��{�z�����ajA��9[kgX����MS��Au�*���M�7WA�Z�M2����7���.z���AK�W}Z����>�s����m�
��Q�bO�WV�����{�`����X���1^h
�6h�� �p;��RwU{N	8M����������[9qQf[���V>Y��&�z��)f���wP�o�0rq��8Gm���WNY��|�q�u!��Oqi���"d�Ym��������qk�u�]����u���@"rgY�3y�H������{�S������kR������xk��K].�s�bv��%��v��5f[�xF���p��F�*�y3C�a:B"Y�j�_���I��a��������<�B](��������������"=�(���u�G�T������A�)�}���l[�k2�V�v�L���J�BA������]Y_m�D�\�b����w���B�Bx��S%���gv��8���f�����u.%��dl��������������I0svV������-�i��3o.�����\v�s���u��N���K}�oX�	���	������"�4���Q���� z���X�LnU���\�����Wf���|)�����
�l�e�-ksI-�v�����/L�2�K?��u�,�8R;��T����fc�s�.~�%�[>w3�<Yvs�������=�����s�.q.���V��6����Pc�]�}����7%��0>������k�^����I=02����Mo)��s�sDX&=��X����t��p�9�a[r�Dz�A�����%k�q
r��J�,<������f��/n9Di�W9+�f�G'a����"�M�����sf�I���E@S�GW������nh�,L��i��T��@s�3P����EI+����{.nK��9O5���i��}g���AN�M����Tn����$�o(k��nM����S�M�����<t���7��p�}�a�j�XM���������a�"^�f_�u��]Y$+��v���F�l2���t9|�X7]�������!*�ArooT.Z�Y[��,�f��Jn�����B�',���WI��������|c�Y�2��5Bv�sZlS�u}�$���Sgp�v����u��=N�k�M�}�{k+[��-V����8l�/^V��@:;��1:��]�5g]��d��xi�N�V�����:�;�%�z�����o�<�]n��c�d�f��X7�Cg[�����
����1�Q�R<��A.�wqT�;��i����x������Y[�J���y��=]�hN�c��cy�����Qu��x�f�[�������_j�g�d����w��Xe��f��������G�
�y��wJ�rY{H=������s��\��}��
2n��������>q�Oa�G��:;s��w�^��[�eL0���RM13��
����5����D��9���Xwe�{0�����E���uD����=������Jd����R�WV������4.�������x�{�����b����t�bZ�L�����u�-�8�z=;�=TH�VFk����2��@u�[��2�Qd�N���>B�e����#'�\)�����mb�.��	�M���6��u
��UY���,+��{�y0=�F��^�-���fj%6�6����"n�������i���������{=�}��^�{��5��y�]�����[:�=�D^�"����������N���W{���V$rN����12b�3�)�������u���=���m
�Z�U�c��,k��o5�GW����X�~aj����V���]�<����/J��_�W�9��U��R���fzr���nJ���v�������b�uwu���T4`is�����Z���6y�������z�n�3��d���_S����g�9	�����K������k���K�(�n��{����%�^��nA�����h����Fd�c���EYe]�R��*�k����${#EJ���]S�m�nvVOj���k
[��):C���vSJnv�x.�/���?A0����'M���K�c�4V,&�n�/m������T����V�Q_;5��t�.�^�����Wu�?Q1�*T����o��L7p�<U�o����Baoql�\r��Q7�)\]�8x����ygw.�n��\�z�o��R^���o�M�rc��5���u�WM)c���v0`x�u����r�C�Y5�:���3��*sr��������N;��������s�4�����7o8I�Zv��{�Hz�<zU>����$�cE+��L��j�y��c��/Jz����{������@�Z�v�t�"�q�������|������T_�>��yom�+4���Jb�/v�j�	W�H�%����TJ�-������ W��t���e�b������R�]�J����}|(��z��eeX��N��Z�4���E�y\����C���w�Y��=(��(t�-���$�\A��\�#�^B���L������o@��n_M��^w�;��y�y}-*y���qw{����=>&����L�����q���s��I���N~�][�������k��1��|eu�k�w'�����]`���,�<��u�A�9��0�zpyX@Al��Wt4���[��-Kg���4����wu�'��%f���x%gU�ov��2��X#5�`���n� �����
w������{1��[�p�4������C��7&w�u{jh9��{�D�8f�yx���~�.�D�Zg������>����x��������f,��\Xlumv��B�N�k�4>�e��G��5��GW]��[���G���^���ui��>��J�gJ��1�*�ROz�<t�Z���5�����w&M�b#O9S}-�^%������e�O@I�=��7���+&�����]W��	�/o�9B�[�%��v�}�o�1���C�7;�b�{eeyQQm��������.�=�L���yrV�L�z�U����1�`�&^��T���D���Dq5�9{A���rv_�u��o.N�3�6	�>|�[�����������v��
�1�e����.�WE��Q1v^{�O��j�up ��=�:e���GZ}��`[1xj���N_N��7]�!�[|F�W�V��Pt����*�c&���6�se]<p�y��4Wdp�Y��U�2����%h��o�8g'|�s��E{������6�:�w�5�	��#H��J�I�r�b����#���~����@	���o(%�*m��i��#�������%2�;����	W�����4GS���+���P�n�S��K��%�������_r����*Q�p�m���s[��c8�t��R�����q��{�<����g�l~���?|�}���gV��`���-�h�F�&��V����������t�R%)�<L3zU�eGo��
G�������3J�[���9@�%G\�M2���v�^s����|�l��M�����3�s�����D���dqT+��V�S�'� %�N�V�\����=X�^����]��8�*-�^��%g��V|�.ie)�>\Y��n9�)l�h�
����xuX���	��������U���;��'��n�sxS%C��r����nJ��*��Y������}��9��'����9WHc��bV����:����0�V��G��)�u��
l2����K�K��"M`��PU;*�i�id�9	[�Y�[JV�W]�	�
�,�Y4�y3W�J�f��v�9jd��-sM��\*�vt��(N��GRY������)�����ol���)j�{��;z����z�"�����&������`��Nt�r"���T
��$�1p���3`%�s����Z]�9O,���,��U]�krA9gW@8XJ�}����������={��������]���}�v|����6mN�Y�JQ�T�S�"����])U�S��!�5�}&S�����6�6e�3���Y�G[=���<��K|r��e����*��m���{�������o5���|�n�,];*��O�������a2�Y8���M�z��[.�\���]!z��H��]���Bf"]����m���yq���\B#VWo5�V�Bs��z�wLR�
�3�����������d���o����	��*�����3EW��K3f�~uyA�/���b��o:���v�Ab���N�����2��=q�����Ec���/�$��U��v�t$(`Vc�^m�+�l���
������F�Ss}��";o�y��V������h{�u�+p��]c����@�U�6�$�r(�b��J���[��wz(7yo��%y�c$����lY���8�o���[}s���r^��7��������:���sr�>���%N�S��V�7��[
5_p�:�:k��!���uugS��I��vr���:��m��>��E�P�t�E��#S�T~�������n���Y����-�L	w�p����za��^��s�{���	5Q����f�*pE�m>j�4N�����"G(�s#��r�;��������,a��kKQ;r����=c����\=���d����`n]���s�YP�
�)n�#�:o��g�MS�.���	��}���0Y+v����"���qv8�;(��I&�fAyV����W�)"��y���c������g�����������t�3�*f�,VMN/�C�4�v1W�������
N%S{8��9vu�+����Q���J�-�U�pv������/�����.���)�X�q�����v��h�Y��[���y�vz�NMk�r�uJ����N{$��R��c�[O
k(Jg����L!��,
��Iw1�
���d����B�VO1^G�{��u���w9�-�&������5�-q�[���ju�#�]���m"�
��~�!wN�a�
��jh8Y*�+���k�X�3
s yf�]��c�6���Q�I����^��z������<H�TA]�Y����PW>�v������B	q{"=��L��[c���4���SL&6za�����},J�L��C�����N+
o�>u�����Mc�/0+uVD.�wX�'��{Z����M��[}�T���F���{t�s��Jro������O}Z����.wH"g��q������Y^��z�y��l�Q�x����<~�{m]��P�4���
uV��������d�x�q�0rI��T�R�����U�u��O��G�R���3���d���4N
o^jWg#�*x��'��a-��:���a��]��Z��$$����R��+^[��<s\J����6�b��{�r�[G�
U����m]Fe={{�
N�4����M�}m��q��:�8������<��=j���RZ��s_;U#MMnS��2j���������UOf]�����'�*��s���Z������`�f��l�q��2��r���F�z���fo9�62���
���;=�B�mY����,��������^.�e'�I��~�}������G�]Z)���/S{R<�S/��Z����?.�n�"��0N'$�������h���h�V�W���	��c-E�r�k��s�[Fz��z[�����+��(���*Y���f�k�t�i��bP���k7m��0��a���Q:��8���k)y�/�t��;���3�vh���o����``u�r-)IM�h�f��������~�s�q�����Nq	�E�]���6��z�!GM�1��0�m?;h��L�)�7[��F>����gF���8jm����U^r���������]��{��$[�"�^�m�X,�BN����K7E<�a�q�Y������Ae����bt�o7�����	���tT��7�
�e��n�g���S1��`*n]�%%���c��
vx�6�#l��a��e�U}�,6�bV��}/����	]
�v�����Zjr�B�1�'L���v�(�D���X>����C0e��CT}#���-�����n4��X�%����f^wHr�v�NT;���$���Soh����Ec6+����M9;F�&�pf���ybV�qM��	5��p��-�i1,�ub�ej2��E���e5��������KBe_T1�dQ�����=�{�r���[�[5Z�����d��=������J�u������yF+�ls�o�r��W�B����J��w���u�����D��b������W�t�*��Ex�X�4���%[��?Vk��@Vb�^�����i�%���W���������o���W7!;��^�o��wr������[��-������V^���:Mle�1���6�!=:�-��y�*\��W:�/D��E�,r��#z�Q-[���-�J��|���f��3(H.�D��^�b���M�KV�����j�OrM��YEs�j�e�@����N�G8LD��(���#�[X�]�^i����X�g,/�����l������oI����-����g6�D�7l����������������3���s���?����.����4�q$�'��d�?�jji�����q���~��$���b����������f��\���D�+�T���k���x�\��s&]N�;�@7��������;]A���mJ�N]�X3;�]�e����q�V���c
�]����q�Y�c�b�W�W���WZE�,vm�w�\;�a�����S���^�K�=]~����vu@��'�v�v����:�"�+�����������Q����� q:{5��e,Ow������4N^���
�u�b�y���.;��\$d��{�f[�3&.��#u�������%�L	��6���
������������L7�\}7c�,A��,p�^��H�+B���V02�
-[��^��_:U����v/AT�9/���R����<��_�&U��O-��x���{1��d>��Rp���v�um0���;M��/�������3HT����j�H,A��AH�3���Cy��';��K)����XS��k9����b}��E�MQ��=��8�c��Z{GZ���R��4�9s�iv��We������������z��e��S�;�����K��'�d)�����8���&v�0ng=���s��wN��#>Y,+��j}���A��*�m���lrp�
�������8���"���-�����
������T������*a\��/��E��{��L�=@�Y�u����R���P�������E�����7j��+��o7�4[��L��@�[�4]�����7Qm�g4�e�����$�Liy��S}s��]�Z���q�\�����JoP�%�t��s��F�X���P�o%�$|)�/A��R`U�Q���g<QC�����6��Y�]���n�j���`��zo��#c�p���rwO�n�g+�����R7�U�����;3�Bb��vVND�12��A�~�@�����I^����d�������:k�gc��#p����p/L��w���X��Xb�I�� �������@��.^2�@%�Pvyf��_8*ffN��u��!o�j����bV��
<S���������tR�.�2����'+�7�z�Ov��V�!�}�>��'�=��|�/�p�$�R��$�� ���G�$�8D�'����W��;p���r�wD��2�~��}�~5���S���������_@���m:��oT&��o)��������|����+�\XO�R����[���W/S�.�7�^[��K������]���=�?)�(��L�x	.��n��9�:r� ��_��X]t�X}��R����������~�L������fQ>�|�<u�.�n]:�n7W����2t���������<�u`:Y�hi�G��d�����!�����Pt��������
u��z�������������l�����W�{< �j�Oz4��%��kl{�k+�"|���������lX�����Vz���=��]�w[!9���e��=��+l#�}�a�!����x��t=��������o�b�e{j�@(���1f��
E����)nd�����%�fHr��1B/`�M%���^��]I��8��Q��g>�������������t��7�8u�n���}�p
�T���n����qz�y����9s�������t���c�x����|�%^��lyV�������������P��<�;�������/X�-x��K�����H��V����iu�����
�������6�FU�C�.Q���;&v��V���;r�;��=��+}�[u�.�@����`�$����B�3�	��)�v4��S�6�s��
�^���Mo)�2�r������������c�{�^s���M��Y�"�+2���$:�b�TC;j�����
5�5��r�L4�^���8�]l�f�r���]�W��J~�����S=�0����o���+����e<����[�Y�Uuz���t�n�gNMj���w��''����]��<#�V/������Z�e��/8���E��������,��^���u��=��b����5�����Wd+��sy{������z�}����
����;u����Dz��a��h��K ��|���������zn��\���z������/Z��N�T^��:'j��zH���YeeFH�v��f�2���"���-ii:����z�leq�u�9�W���j���U��-ym*}wn��GUk�H-��w��uvo��������7��y� ��^3�)m�� ��0�'�I$�&�?=���������9��x,�r+��R���x
}S(�VaO�=�*�j3���]ium������tZ�
����������WK[s����3�-�w���;��u�D�'����f��w�G��~��H���1�����9�C������l�(�6��(���
4X����l�:�*T���E`_�J��
��F�����U������Yj��.���3mI#��
;�|�
9���0��30(�����'+(�����@��`�f`���n �,@B�(��(��(��(���c����a�`a��i���n���n���Q@ �agi�Q@6�l.�
�M:�
@$|d��QEff QAa�4�@�A�i��p�>���hq�p� �O;M�D&���A����(��(���I4$`X�`q�#�H�(�t��QEPQEQEQEQEQEP���� c������@$�$�����8��A����vPw
��q�n�eQE��<`EPX�,A����������p���b�QE��!�d'pq�c���(,B��H���Y@ �����P�2��PX`2�(��hq�v�a������(��4����!
���M(��(��(��(�30A�@x���QEQEQEQAv!B��!B��B����B�`
�@P4@�b��(��(Fq� �HB3���>2�
C��
`i�����4���h1��B1�rP���������A�(�@�M4�@h2���A���(,04�YEQAvh2p���+ a��h]�!B�0@�M4�M�b�eP�PX����n�+(������!VQ@QEQEP�.�����lg1�@��������# �����3�N8!�#`X�!B�
���(�8$�I�xFi���<�7wt�������dv�����7C:�Y((�v�#��(
���(��(��(��;���
;�}�6�l#e�Av 73�>�������/6����LP� �f`���N6��	#|QAa���Pwp�#avQA`h]���������x;���!B��0���8�
�(��(��B�.�(��(��(����B�+��3
4�M7 #
4�M�4�M�i�dc;
�ot
;�8�@p��PX�N��n!XEQAb��B��m�E��A�������
(�������C�A�}�P�
����4�M7X���������$`p�Bp@�1�����1��88��1��
�l��c>�4��}��i��i�p�>8���������������K����,�	$�q�����\���{;;=��@=�����}������X�����J�������T�w�v�x�X	ZV�x�(J�eef]�eeeeO�J�*7R��t2����T��e�����y@*J�2�b�*T�x�XVe���\���������5����ov������3	$�f,�@*T�3�}�����s���������};�}�����}`��}��}�����}��H33303333���_]�	ww}�����������8w��������������ww{���{���n�n{�����������www�����������������ov����{���y���g�������������3333Iff�(������{�����ww��{��{��I"�(����(����)$QE��QE$�(��3
(��3=_���?*����|c||x�����p�������y<�<x����� B#}O��v�
����.\�r�eUV�i��.Zi�<�r���RD�������>q���-^c;,�y6�c��{���t|����r���:|i��NR�m��	�+�:�:���t[+s�W����������t����z�Ln��u�o�����^1�c�lcLc�c�72d�1�<i�����M4��W<�r��W���.~8�U��orq�U}��^�s��L�i�Mju��'8en�o.�MXwR�������F�;V� ��6Tz����Z���7���i�C:�
e����0Vhv��z�s�,-IM��8�P��M\����t_��}���z��c�1���1X�1���1�c��9r���i��i��\�i��i��i��|qBk���T�KO���pV2���h�J�su���o���R�����)]�[�N�s�7�����r�7���&Mn����)1���Xe�U�O{Z2�r�;hs�'y5���-��.�����^1�c�lcLc�c�72d�1�<i��i��i��M4�Ri�Ni��i�="o�k�������������O^VP�:j�V;r�	�������Z�Xr��^���^����v�Y��3���j7�
V�;�y6|��^�y�������<�:����*��z���1�v�4�1�V1�cs&Lc���N\�i��i�N\�y<�U��i��i�4�N��wf��q�s���n�e!���+nG�cH�/��'�kTj�ehd�A�g���c�lU���IE�Vn��LUcu�0���o�+�c�pe�������M}�O�����x�1�c��1�c�c����<x���i�����M4�Ni��i��i��wd!��s����}��Sn����m�J�76[�I<��sOl���X��{r=�����LY����%���;"���Lc��NB��n&��
�w���~_O���|}��X�1�c��1�c�c����<x���9r�M4�M4��\�s��-4��\�i���B�|�:�x�sN�������w�f<���Ij�[�������E]���#h{��9�Lus���gu<��6/�b]���f�"�n,��i1��oiJ��B�;�_g��v���1�c�lcLc�c�72d�1�<i��i��i�����i��i��i��i��9�8�����j�A\�<t���tW1��n�u:���ro������(9�	S�>�Z���u�7*�n������4n�����Fs�<�;���$D.vW^��s��p��v���1�c�lcLc�c�72d�1�<i��i��i��{��-4�M4�M4�Ox��UW�}{��U���Bn��p��.R�t��W^<��_^��G�o��f��W��gw:�7�������7��������P�2*����9t�[�������=����m���^1�c�lcLc�c�72d�1�<i��i���M4�M4�M5i��-4�Oe���Ux}.�����:�D<����c������R������I�����{����%O�od�$X��K��(fU�@�"�et��n����O&��������^c��l��mT������ka/��|vG������e���9�����
��is�y���M/�A-u�pi�VI�	��]X�K������Y��3�r.+(�e��$K��0Et+[3���m��U����v���.\t����4�]�������z7fG�w;�����v!Q�.l��M�sU��t(�0;P��3�^�3�D���[G��������(�y�:�RI���w7t��������Q;J�}�-y���3V�m��N]m�����M�EV�5,-7E"�9�u�����:wW,�n�%�h�7���4n�EZ@b����]X����]3'r.�+.������N{��'�WH
v��Z��!���7M-6��
[�i��H���z4	}"���
�9y4V��>��~�����Hf�55��]-��P�7C�^I��y���su*��9��.M�;{/��@%�v������N����!�f��������c�]6j�`(��l���Lp*�������+k"[�=�)�i'�q��!�����s}Y�s"��Y�2{,>�+x(������ZL�
���k��J�\����QN�u2!{����{���H������������Fvgh-
E\Y&�v��o��<�m�-N�(vhJ�o����M��&L�rY����l���>�k���68���2�.rmm���b�WF���8/���S3w{�1M�rM���a}�Ku
|}��!��w���u���~}��c���]��{z��f�^��X�,����;W�(V����^���f�������^��;�o�������6��]7����}����poZ�����:���3v�i-���E����q��#�'��$Z��LTl��O�g�T��4���";};�#u�Y���<w}��}���9���}��=�������Vv��Q[$�R;���E~���.e�Y�GP���f���k��-(��]$�����������tC�=�3�:e�Xv5�u�k�����M�I�Ab2H8��H8�=�!�H�C$�GK�{��<WQC%�
���B�n�X����5_�S�	��k��������������'�v��2���$C�7��tWVX��1emg���k����jm�
e��7'�c�����y�w�v�������u6�/����J�[�����R����o����Ya=m����a�L����c�9�WN��pe*�I�M����S�4{hQ�x�U���D`�}�v��>��g<6�?u�t�T�FiU�3�G��0���������2�����b��/c�|�`w������}���]�H�}Y����Y���u��%O�f��d����W�[D�=�Y��KUc��a�T��^���;rV��U�SR�u�o�S���{.��)�y�:�SS����B�0�k3�����c��r��'\p>8��S�����=�xz��|��h�>\N2�	����	g��3��?.��'��OH���{����������'��ib�����)�j���{s���p��Oo7b���V��K)��KiL+�y�����$2���`z�(��\�
�Y�W�>������m���VL4u���������Y��%]��A��x-s���puwt��6~�6#�����`�����X�Z
^_����&�S����W�w�K[�cn
8j�:����S�R�?D'N�����#fh������R��]���v�s�����z�-�����#K{Y���[�>�v����\/}���ZS�a�����J���b����;�oW/((�{���r*cw[9����V=U��D������=�k�c}F���D��P���k��G���`v������������/	��rX�,1���4-<������������w����^$�W�ZW�����e��w?����-/}�Z]�X���/^�2���,������T:�>;w������v�(�V�������2��@���b��z����6"��l�[u��no���'��+I����yv;.��{��f���������F�3[E=�5�n�1W��z���b���zS��	���������/#'�y����������������~�O���9�4~���5;,��x�%��y[,��;�#��=1���(E�K"���hVu=�9�u�������w��]e���3�����pv��x������gz~}�_}�����??����=��?���y�y��������<�?�_f1��<5���1��:��c*�w2��;w7.��sv�s���ws*��v��;j��v��e]������a�����1�~y�g����>�o���1�L�Tk��F�YTn��F��T�1�F��T�]���2���T�]�C�UT8uP��C�U0�eP��C�V��vn��C�U�eSwUUUUUU|���;�n�P�y�PP��@C��TTTT���L�����������:���<�ws+�w|�(*��*��*��,���,�,����l
�����,
�����,,�����,����,��y���N����/^��c��i�c�c��L��1��0~$��Us��Us��Us^$q
��
�������*����7	�m��	�����p��a+���� �I]�7���tPG��������9U�F��?<��a�U�
4�a)[��P�WHv
�������v����S�+����G-��X����zxv��V����
U�7��{�}u��������^��>�Um�������<x��c�+�1��&1�z�1��iU�9D�U\�D�U\���Nm�0Xp��G�q��7m�-�F��m�0TNU��Us$^#���D~�A{��g�?\�w��������|_����f�'z�+�����<=���5�����X�����W��b�N�����1��}��*�7C����f1��'m�
C(�/3?���^�{T���}]�mF���p'�\�m�z�9z��1�c�1�1�b��c�2c��X���EiU�?[�n[m�,�V���V��V�Z��V�Z��V�Z��V�Z��V�Z�p��$�����{�?;�u�|.����J��wa�t�}�`��6M��B���oh��MO�������#T��R`��g�����M@zw
������B�V�������CzrCC2]f=��+�)��y�3c�!��u�3,���O����oX�9~?�1�v�4�1�V1�cs&Lc������M9m����$���N��t����V����-���V��%iU�,IZUj"V�Z��ZUj
���������o�?�<�D
�����QT[lo_-�^vCQ��8���[��U��I`����X�BsB��T�;r���WV ���/�5�W���r�Nnc�[�����W3-����XA���o4,8ofl�,�x������	�R�|������>����1��^�1�c��i�c�c��L��1��1�>I�V����V��IZUj��m�m�D�*���*����$�*��+J�"��p��?i ��y��o���~�n8��������([���7&�n��X}����Y�J��!/�K����j���d����Y[i���������e-��s,�>E���1�J��c:�5�a�� ����T�����d�b��V���Y�����\g�g[�]q!�V������^�1�c��i�c�c��L��1��1�>ZUj
EiU�>�H���j�I�-��Ng�M*��p�����#p���mAa+J�x�8IF�Uj
�V�Z��'_�?RA�����~����?8�~�3�7�]u��L0��3�WJ����>x���'mv�)����
��������b����.���7ZA����f���]��[���q�0��D��������~�~o,�������O������>�||c�1���1X�1���1�c��cQ�G��4��$�*��+J��
��i����V�Z��ZUjH�GIZUho�g�M:t�+J�A���������+�8WF���(������1�33���u�B�u��*�VQ���L�����3�6���-�hF���Q��66��5���.��=)fwl��gU%T/4L���\!��'d�!���N�|q���{�s-�p���.��z�����1�c��1�c�c����<z�5�J��PR+J�D���u$t��MAI+J�AQ6���hjp7	Zr�
�p�q&�m����V���V��D~��=��w��d�}��}��79��)��3�[�x���P��O�����LF������>���cR�r��
��kd6J����<m��������WZ+9���c����C?�]����������/�=�S�{|���]�t�������c�lcLc�c�72c�<z�5�+J�Ab+J�Ad���PX�V�Z��V�Z��V�Z��ZUj
�ZUj
EiU�8��$C�$}����������������B��af{eP����?A�(|!6n�u��5�lYh[[��u"�wC5]�n������vr��W��O�=����8��Ltk7H��d�����(Q��I�,��g<u���<�S�<��<m����_�1�v�4�1�V1�cs&1�c��cP|��*����D�*��+J�ARJ��PX����"���&�Z����V��>u�������������f�=$����&��g�����H!����VP�M���T��_��-G��3Z=z����W\���w�V��u`U��������>7�^�1�[V�lS�S��[�e�gf�W%h�E�.1S�=:��x�^IZ���k�{���	�E7wy�����T�2����2�:C��> y]��m`�/3e^b���q�������S]���2����d���3�%�=3�m
�s�A>�8��9�������d3czA*��]E���0�gO\_M���6��f��t_vT#Z�/:�f����J�$�=OB��g�����q��s�����7Q<WU�c���-���2�^94,��w����Mn}�b������wg�����p���$[��0��+�&"�.�Ysf,�����i]��9��I`Y/�NB7��������'I������gPZ��|4,�/!�cG0��n'f�r� v��Qa<��Z����L ���������I�MW�zJN����[$��v�y����(�$}x�C�M�O��M��)�7+kI�,�O���NyX��{�zQo����Kza�^�!����tK��Bcj����2[��[��b�Zz����{��~��C�i��q�GU�c���v&���FN;���)��4&�c6�����;��M��J�-wxOCC5W]��v��D{�����7�=1�d�	���<�zn�X������.�*xotS���� ������hu�%�c1B2�w<WO\2`�:��.���YB"F�`9�5L���s1.#k`��}���l�rjC1H���u�F�X�mnE��s9kv�J��$�`���7J��+��<��^�}���Cs�I8��[��Z�TV�BLN��D[�P����|~������y����������g{����,��^�* wT���u5[�4�
���������o�H������7~�<x'+��G{�E���T�X���}�P	�]���>�2���9RP`vf�i;lt�rv�,���^%�q������T���V��<�v�tR��
m�7cn#���La���g���a���W�m&�{���0�����YSm������i��>U���y$$��H�$#����W65
��:�-;��o_��>���z��7G2�c�D�w��F����T�DX�%��S�h���u|������7�`kj��P����k�!�0����|�� ���;�Gm`�ne=>�_�p��P��o���s.����Pl'�$�YBRm`���&��w�9uo�.\��P�}G������+)��k:�L�������U�T_2
�]7nE2gZb���]'X�%z:����\KV�i��=l���Yz�<�B���;��OUp��7���l�1K��wf����R#}�msc�#�{�7q�45��u�����D�N�����/�ZB�_�����f��"���zwM6�3Av�����2�U�aK��r���+����gr���_�����])�d*�)����:�o7$�"e���2��C~�X�j+?w�oIy�G����n/;������5���{�q����nOS]��1��=��m
k4��kX�e�/�g{�d�,�*�*�T�"2'R������,k����m/<(�/�m������Om��:/N�cI���v������=y�c�6��-�;�b]fzD�oj���L��e��Z7]�6���HA�3���\ivb�'<����~L~����]Kc��&��/Z�;�]x�-�`QI�cwh7P\��G�����`�����<���s �������!t1a\�U�����o@���������T5�z(�����&����D5�����i>��\~�+�|t�NH��a������8h�r�!�^��!�t��=s+�c�����]bTJ:�����p�(����[
��u2��3V>����.�;�&�M���t�A���y�[�������&F�@�;����������|;=�J����VYf���y�Q�]a���Z
�GS���;��'"�u~���#��dVWl���'�t"��nv���f���)^��fq�������o����
�.o�������T���h�f�k����e��D�[�n�'4����U��	U�{G(��7���u������az����y(%��Ff���������������C�O������izw�j��V*�J���#�R��������5{��=�~��� ���5y��AD�>W���(kL6(g��"!!|��C�a������G��7���U��T2�
��V�3�{^V��,�?�<����~������Cl���<�3�����_f1����v�1�eP��F�T;��5���������\������\��5���s��F�YT�1�L�T�1�~y�g�������|�LcT���F�YTk��F��Tk��LcTk��L5�k�s*��L5�T8uP��C�UT8uS
�UT8un]�f�T8uP��UUW����������@@3�o����T��xTT8uPP��UUUUn���77i����*�*�*�*�*�*�����<�������
��
��
��,����,���,�,���l�,���l�,���,�*]��@I0A�������|�����X�1�v�4�1�c��q2c�<z�5����PX+J�Ad�V�ZD�p�dm��j!ZUh|�m#m6�PY���H�*�B����������U����?�>����������4s����D:M��;&���2����P0r`����#�����}"�p9�d�VN&�w'
�mWf�������f��	�8��Z���C�?���~����������c�;cc�1�c�8�1�c=c���V��I+J�ARIZUj
%iU�,EiU�,EiU�,�V�Og6���m�,EiU�9���}�
N���:�{���g|��[�ff���-x�������u�C��n�k�P��:y�<���u���[�T3�/1��L��un�:np����.��P���j��������2�c]���u�����f�\�W5���;v�>�G��c�;c�1�c���d�1�x��j���V���W*�H��V���V����V����V����Y�,�V�f����Y�>�C��d������NN�w���V��6�npZ��V��*���]���Q�����'r��E�wU�vs�Tt\��/x����+ogv8M�q;����7�7�\�clJ��aN+�W��������J7G�?�o������c�lcLc�1�x�&1�c��d�$+J�PTIZU���J���$��Y�,�iVj
�ZU�D���z#�.�MAb+J�PX����Hd����|�q���o��t���e�Q���������W���u����1 G>�����FC�����7im�=A�i��*�0r�5���]Ewkv���^��S�Y�:`���K^��������~:v���_^���c�;cc�1�c�8�1�c<z��"*�Y�"���Ad��Vq���AH��gY"���AD��g}���V�T��Vp�xI��">�����~~|�/������D���OSKwBt3���������;��*���8�=������!d�����H�ka6��|�wW#��w�B��u.�{��c�������)���#���lz��dz��1�c�1�1�c�<c���1����A����D��"Ur��)%W+8��%W+8��Ur��?[��j�����<m�nq�IU�� �$��g|�~������$��yV=��&��n�����CNi�+u�,)p��d�\sgF�B��]�{pop�D���v�v=����!��M��~0�f���*A���*~$�D��z�����c���1�����1�c��&Lc���q�
�Vq���Ad����AdJ�Vp:�
�&�r��������J�VqB���F�q8D�m�s�>��A��|����~J��������5nwX�yy���Y���\�J`�QP�Mc+A�.p�{�\5�#&���F��*Z���������U�S�9�A����-��h<���7�O;�y��t?�m�_#���1�����1�c�����1����A�
�Vq�I#m�nq����Ad��Vq�*�Y�H��gTJ�VqD��gY$��g}Bd�����]�vF/�C/�0������E�'Q�{R�w��k����ykJ�8(�*M��Z(p�}V
���BW
�$�v���c��[�����nl��L�*��{���m��W�'����/j�����������}����1�����1�c�����1����A�H��gX��VqI%W+8��U�� �Ur��,�W+8�����AI%W+8��J�Vqo�������������������?�z?�`����w<���)��^T�N��J���f�58"��E\�	��7���w��LN�e�iC"%��H'
0��^�;6V����=V���VT�,r]�<��^]���>�v�����#���1�����1�c�����1����A���Vq�*�Y���Vq���gY"���AR*�Y�B���Ad*�Y�����A�5���S��}��=q�~�������`�r^�YM��,j�keY�+]���7�~yu��{�}7��y�����>�a������=Hf�T�u�� ����X\�7Y��v�V��{uS�����c����%wl^����3B��v
P M���R�<Bn�:�w���������k~Gz�z���YL������ul��A������U�Z6����e������m��Y��n�So2��'&�	�yw�\�uX���6�:og���#�t�m���,��J&
��|e�����2��l�E�6%&\b�t�t_:��V�D�����V��+62s? �����E��*��Evr��4Sl�:�����^<����{�^SAj���3Zqv�Wu9�+����mB�7^]���ii����������^Zx���H���wJg�.9��\�������`��t � 0c�-�
=����4��B6���lV��M�N.E�}1������C=�P�hm��k3rC6�����k%{�a��t�����z�(�f�):%_����X���2�x:^�8�����6�7�;w�{A�xG��[��-�f�Pa2�=�F������ED��f�;��O�a��H�
�:xl�8=��^�	��%gp����T-����#y!Y�x�_1f�����db�NA����U��oM�Kz����C�L9���o��'����:�=�������Y}�IY|�=��g�u����7���<�%�6�������p!{=��r��y�};��������li\�/����u�62��bi�����������@e�8�K5��s+>�w.@��`���U�
b��g�u���/�{/;6��P�
����\9
��I�����Z2�)��B�w/�g��WNf��7��]|�*l6������]z��q�	�3��{b-O1��_�uq"�k��^�0��ZA�
v7)X�:WR�Q��<�zj\�^�\��J����.�Es�]}�������+Y	<a�Ch�nz��v����z��c
��]��r���c�\:=7�k7�L���\�^m����������l����m��������I�K$��$�$�=�W�}nc2�����w�*}�/�������~"���b��
�6��`��	S������C���%����������"�Fz�n���g:-���u�zQ�>�Y����mM�?3�#6I��D��Z.\��O_�-�����NX�@d���C����.Q���/������==G��8��fp
fnim�X�%�c��;�������u���9����[t��S<��9�d�W��O����G`��,��X�Z+W|!��fR�!������r�+��f<��11`��=����KW��r�����\��S����Gz-��^������SY2��V��P��++��e�������)r8Z3���3��<M~���T�7I���^l&����*�4����1��@Ff�f���%���[�d�{�f	���*�.���Nh���"��d�5�QUm��e�|�l����n�����A��u��Y� n�]Vc�~��=�{7o�_�� F���1��c��35.�$E%���)��_f(�������n���$[G\J^��1+����������u���{�=�<��w9=^}�q������fe��**S���lc41����e������:=+i�"�.��}����UV��.��Xd�n>�f������U]J����t���"G�Rk2q��Xz�WZ��������$Ko<��332u��q�]~'\��s�����a��q��y/B#%��n��]���H2+n�
���+�m5$������n�G��fc�O����V{����a	�g/Wi^h����[��+���<(S��xR�r�GcB���+��/��&n��w��f4;o "R��i�E����
����	��H1[$��8h�����vc��\"������vG���_@��f�w�o���r:�hCwC�a�	\�8�+���fWR����kV��A=����jYKB�;�c/	�y�{��+xy�5A�Lj������	�#�Gx��*S�Ed�<�w����it�<K��O&�C7�������6�����w���U���N��t��Ezu�^���z{<��:[@
v39��z�Y^��p7����c���}���>�����	�O�W����_��/m�-�Ji�}�1���|A���_�������h6�J��Z��N�Zy��������4��[���i���{�,�����[yE/b�.������gc+v�}�'J�{��}������w��6�&��0I'������W��;j��2�p��u�����n����~n��v�U�eQ�n��m]9�����c����c�?<�3������k>|�1��`���]��5���\��5���1��5����5�9�F�����:�p������:���*��:�.��p�:�ws*�*�*�*�*�*�*�>g�����v��<���p��
���������{&nn�wUUUUUUUUUy����e|�����P^���������TAe�XYe�8pYe���`V���V�Ye��Y`Ye�]�`Ye���y��&Ny��]:t����c��c�;cc�1�c�N&Lc���q�"���AR*�Y�v������p6����8"��J�VqD��gR*�Y�
�Vq��rm[�I�#�v�������������%���o76]i�����Y&+�h���	���R��l���\^=n���w��� �����[�z��2����|J#�*P�fW+���ucs%�G�s]���w���:��~?yX�����1�v�4�1�c���L��1�=d������D��,���� �\��
�U�� �%W+8���Vq���Aa*�Y���Vq�����$8��o�����y��y����I��P<b��->������	zt�]���a�����os��.@5�2�I�S�k:��(ZG���w����#���h/ej��'�u����7�=o/=u<��O��[x��|�_�1�v�4�1�c���L��1�=d���\��
\���$����H�
�Vq"T*�Y��`��g%���g%���g%/�+��H��O��UW�}����?���������
�=���4hP���4��m���P7���g�jmG�!+�/C�^py��l��z�����wm�yn\���T��^�M@�U����>K��;s�wUE�d�7IH����t��{�1�v�4�1�c���1�c;z����"���H�"���H�JEU�H���$�$�qm�s��U��$J�W+8�,�W+8�,\��D����� ���|��x������w�n��-t0���o����|���C#$�#48Y�+�8d=���:��^���y���o/uEu|�&�n�6�a���|��%���B�+�����i��7�2q�s�(��U�=}|���c�;cc�1�c�N&Lc���q"|���N8�,%W+8�,%W+8�,�U��$O6&�V�'��6��8�,EW+8�*IU��$K$Ur���$>��|��~X%��0Z��N�����?;�o:�j!����m^��X��$��Hfv�%~^��#��!�vn���A��}�IE^h��,+iih�iM������v-��Y����8�\s�N��"�'��N�1��#��1�c��1�c�1�'&1�c��Y8�>$����BR*�Y�"���Ab*�Y�B���Ad*�Y��m[�AP��gR*�Y�I� ���W������vP������N\��;����
���-�7th�Z��Y����=KowE�b��u��<���=;�q��
��;���O�fu)����f�.���Z�}�}�����o�o{���v�������1�����1�c�����1�����|�������VT�XJ�*I,%U�$��q	���I%B���\I��eD�H�"���K	UeI&���O���������rw���=J������KnD�[�j|�;�zf�6z��l��r��{��8;���J�e�]�2�l
�c*�e#���e��@-X�3r�����2������R�9�|�r�+wy"~=r���>�G��c�;cc�1�c�N&Lc��ORI�D�����UeI%�%U�$�D�VT�YUYRI��&�nm$�"���M�#m�6�K	UeI'�I$�$��|������}^����u��K����T�����YK%Mq�m4��t��%�6������j�Y�n����z�����r��1�����H)�7���.�{K���;����C��n�����m
Uw���P�k���������}�>����c�lcLc�1�x����c����I:�����I&�"m���IQ*��$�UYRIH������Im���Y$�VT�R*��$�$������D}���,xW��@���<�1�mh�����7���#��\J���}��!:������M�	����*�k)���JD==������M��(Q8B
O�����e��������w�����Oq��=���w�>�x�\w��^1�=}{�1�v�4�1�c���L��1�<����VT�X��,��'UYRIB���J�J�*I,I*��$�$�����Ue�/	8�������~$����g�-�\s{�}��7�l��:Q���J����Xk5�n�y������!�-�����D�����|���M�U2�;!^Y����������OE��x�������F�3��0�c��;g���[�VK���u]�����S�����Z�U�]��lm����d�k�	]���w_��t��;79uJ�����ia<A"�/A6��k�m��Y��v��w ��8�����0��rgI��%�.��`�W�Z��N��C��L�N�h���M+�����������ks=�T�\�����xG)�����U	��V����2D�w`��N�s�+1�/}o{�6\�6N��n���YB�"1��Zo%�L�}Y:v�hr����uf���]�d�-H��"�{/,^���u��*�����v%�k�m�r+wt�n��E<4[���x��7|8�����{zW�}���]{��J����qy���OU�4I���N����"���nG��v�l&����������J�N��P�}��:z�,i�I��n��n�T�8
�WtRR�(l9]����������n����p�n^l�,
p����m$�����kAB�F��� ��t�b��������Z����j��a����aI�Y)@����,�W<6��l����9�F���--�5[�i�4�pqj��y�vTC�r��m���m�&��dL��3���M�ek��;�
�x$�1e��l�]G���-��*�6��������mR�w�S�~&����Z�vq7o3�r���d)��v�9�}��:����H�~���v���sF��S�i�
���Kz������R_�{��M�(b��������G2����H�����k�V��{O\7�u��k�6/4��i�w��*]
?gu��;hJ�X�*!h��P�3ds��-0����G��~�pdy[��V��w�T�����2��)��z��C���}}��q_-�!�R�oB7uM�{;S�\[��a��rwDeC��X�\-T&�f��&OJ�����������/���mL�jc��������z���ku?�5J��*�yV���������Z�D�H=���$��$Od��3����_������y&�Iq�����)m��m������r-���t?I.�*f�Q��-����1fvs���poB)G��-|�$��h�.�����n�{Q�\�����[��e����������>�Cm�u�Z��l����������A�)/���j���E�d���c5�W[�Z������.�N��Y��PO��w���o�S���(���=u��D7��~�_.�������`���]t�`TV�Il�M�	������p���wZz>������z�	����:� �9zZ�G:���_|�����al���GoL4������8��=w�R���
��,���6�bf�n�>�
y��t��J�^���?��P�ut�R�����v����Z�H����eBR22��Z�V���[������;\(��ov&�`����������Zb�l����g��������;���`X�������Q��X���S����/s�}^��8�g�[ �m%��k��������Zi��o][���V��J�/i�+��X�a��Q\O$�M���XJ#������u;7���]I�3���@��=����y�X��y��t�����nJ&���^��C��E�y���]X�x�{�^V�8��q1mjC��B���ol�%�T
����#���c����*���2�zg���C7��h`&�����T2�
�����8y��Wxw,�z����Z^`����#So���l6{Vr�V���(�-OZS��}|N+��t�J/H��y�[�x!�b���S��<�O
+����| �v��z��n_n^���5=���E&;F^�U��Or���3�E��U���<[8�����Z��������U�;����-�e{/p��]��x��gw��,���=}o�u����|w^��f�����2�Dw�TG��������M�����]��^�DU)��5'Xb��}V^��w��{��G������;s�~�����3"�[��x-��k���.�N�S�/q;w���i��n�qV�/�2�2Eog�����f{�-��s��rK��������y5��:���A��;���}]������!H�&�4n�2�+rf��%�z�.��i����W-�o0F�@�+)��{�/K��(�d��*��{:��e1gLop���
I���V�2��m��(q������/���C�#�r�����S����y��<�3��������W��;j��2�p��u�����n����~n��v�U�eQ�v��m]9���\��c����c�?<�3������k>|�1��`���u��7M��\��5���0��5����5���4wU0�mP��C�UT8uP��F�YT8uP���v]��8uP��C��TTTTTTT�>f�����@y��@C�UU�ePPPP���vnn�������������<��e|�����PUPUPU�Y`Ye���e�XV��[�XY[�e��Ye�e�XUA$�LA$����|�_/�{�c�1�c1�c�1����1���+�D�*��Ue����UU�&�&�m�R*���UYR*��	UV~�� ��������}�����ww�{��t���e�/E�hnZ}+�{z��I�<�o�$����_..an�[�g�M�^O��u��y�vw���������w�>K����R���I��Y�l��{�}����|6�������c�1�p�1�c�N&Lc��c���UU�"���UU��UU�
���UYd�UU�H��<���>��_'����\{���z�����Z�z�E?<=td�-�v���K���M=-����vs�9V0�����*����s���{����\*��P=c�vZ��{��<��y�]��$��^=m�Y�1�c�1��1�c����c��d�$��������r�UU�H��,%UY��6�m�EUYB���UU�d�}�{�����iedO��E+����:����X}�2���V���+8is1%��S����\_m�[�A�6�s|������o=���Z�B5L�_UW��\�t�������c�1�p�1�c�N&Lc��c'���,Ue���)Ue�*��IUVRJ����Ue�*��<������A�������}�k��������b�c�0��5�"�]�A�d��(�?Z��t�,���T�r��d�qr7:1WL��Y��zQ)����8����}�yBs�p��6����|��o���~��}�W���1�c�c�1�d�d�1�z�2|�*��$�Ue���UU��UU�BUU�H�UeI%UYb*������}�_W������O���W��qJc��v[��f��c��%Xe��j�sm,�V�Q�c����]Qs�U�q[���}����u�l�tI�v���s�'����d���7}un�M�9��ws�>����I���O�X���1�c�c�1�d�d�1�z�2|�IUVX*��$������m���Ue���*EUYd����UU�q>�����U}���}����)���~���
c��aR��I�z����Jq+;rZ�sl�z�v������p�'�tg4�l]2�1N4�CXI�.#>�������j�����7$pv�8�$%+��������n�Y�1�c�c�1�d�d�1�z�2|���,�UY�rI6�m����m�R*���UYP��(UU������A�H9���\y5�����<�r�y��8�r�����[g,�9���-D�QV�t�b]�A��Z����S��0�^+���2�8*�	F������Y���������	��4O�B�s/+�9.�����������	��]�c������1�c��c�1��L��1�X�N���m�������UU�J���UVY"���%UYdJ���Ug�BG� ����?5��^+_��^����3���}"����4r:��d��x(�yd[K7k�$v�����������N��z�g�y�w[)*��y%=��sE�tI2����_�__V��c������1�c��c�1��L��1�X�O�$��*I*��Ue
���UVX����UU�"���Ug�}���������[����{���w�|y�*���*�0��^�"f�t�sR�-\���&rT�8rf��k��wE�cjgHE�_Nr�no���]�������N���RS�kr���n��.����x��N�_���c�1�c�1�c�2q2c�=c>UU����%UYdJ���UU�
��Q����
����|�_*�����~ePU2�
�W]u`9zr�*�b�.dY�>NV�G��fE�e_>����.|�O���{�>�W��JW$Y�2G�Pg��;1#��g3���+�Ko,^����a�
C���
z�oJ�PTU����2�W�]5^B����[�kp���+��R�V�~�fv�]]��~���_W}e��kE.��t�X��v8�M'8�9
���n��3C����������;��Z(����d*������]��\1���I���J���;KD��3��N��E~+�_RWH�'�U����^�:��V,����gC����8@i�o%oQ������b����YV���S��s�l���}�)E	�"y�8Z}�%�w��wQ��� 7

�V��/�����o�����cj����]�gmM&
�o�]�R�����Dm�����+[�W,Y/6�[��/�dh��69���^<�r��0c�%�}Is�FJ��I]��J=�s�����������T3�\�-�r��w�OV��������s�#i�����yb���"�8��!�{�/�5�����\��2�'��v>{r��������S������3^�~�1�W%cbN��S�;�V!�I$������^
��V�:N��Uh�}��:�����9M��R���t�O�5�wokv��_�����7x�[��GfR���O���������Q�X����I�
]Sl�-�%���f�B���k�M��z����wjw%o�NBV���t���Y��[�cv�r�����n�Q0�f�M��N�i�`�3PF�/,{��D7�ye�}=w�������0������}������
����S���d���A�P���9���
��3��2��;�kR��w��Q�)�����"����e�X�������{�Y����"��#K:�S:g�������m)���:�(��E.��F1����{|����Yf7c��i��A
���@5�I0Iy�G�
�\J��3n�A(��{p�7m����L�����u$�N�8G�C�D�#�I��u$I�H��yy�\��]H��~��5Wv6���~U�������i�����K�r��Z��s�4U����������3���^��PS�-���{=�]{�t>D�79YzT�gb�m�{v�OL�u���d���O��
5i<�W�mo��i�@X���fpu�e����}K��w�o{�<v�b���r,}�������`i�U�F���eh�9�z����k�����*r���u��-�`��'D�;������R�z{�f���u��g������Y��eN�Y���g@!�M Wmo,�	���z�q%7sr��=��^�_%#y\�O�To�\����1J<Yl)wR<���
�	`��~#(���f���H���]w*���F�Ua��l]:���%����������>T_��[�7�j/�����v��&�-����}��y��os�����������s���/c�;���J�/AbV<m�����~T�e?7�I������qa��[�l�`hkN�^���&h�C������W5J�M��:�������Pz�G������!����nI�H��]�\�=qw�k����_w����f_������h�,aLGz���:J�(���<.'��T��?|�J��vM�jSt����V�fnr3�-���.�s9l��%_?Rs<7��Ug�p���]AV���84z�e:2w������e���L��3kf�Xx
�$���J�wh�����:�qC �����`,�����.�{�f_�7�N��o��~�D�O�b{�dd��0��os���??t���������8X�\���G#�����W	�����0�����E��g��W.��!d{�VS+t����K.����d8�����p�y�������4k:��R��V{�1s�x���-);�nW?�~l�����~b�\�Y�u��)#o:�����Df�=G5Z�G��%�`����-���dVPe=7�;\+���A[+���u�T�������p������1�F�����Z<E�����{����~<�R��vvA��u35.�t8Q\��R�
�6���VW�yUp��}���z����u���&����w�^s�&W������<�Yd������[���w{���t��5�v��)gJ��p*�m��)���n^gK�4s>����{�1��U�Y��oAG|J������kQ$����5�/���u}�{�����}������~.y����y�g��������W��;j��2�p��u�����n����~n��v�U�eS
v�;���v��mS�U0wuS�y��y�wvW���Y��1�eSwU��Q�n��mQ�v�1��Q��U0�i�
eQ��������:�p������5���������r��������
�
�
�
�
�
���7�o�����<��:��ws*�*�*�*�7w.��sv��@@@@@@@@@y�x�k+�w|�(*��*��*��,���,�,����l
������,����, ��d��I� $� �I��N�:t��z��c�1�p�1�c�N&Lc��c'�%UYP��,%UYb*��UYQ%UY�pm���I%UYH��?���C�����:��.�g\O���2����N�jm���{	t�����:��|9��P�:yc�8�Y��r������k86��x�9[C��M�����r�#��������)b&#7o������?v��}~�#��1�c�1��1�c8�1�c�����*EUYI%UYbIUVT�UU�RIU���UYb*��U_RA�H9�:��N8�w��������&���m%�B
�]��c��M��;�������s���^����:e�=:�������yS�+02u-���und�K�x�f�u}�����h~4�����||c�1�c1�c�1����1���*��UVB���UUTJ���UUdJ��$UUP������H5=��y�:���O�Z��+����t�����XF�S!h�O�;�{��j#F["�3)S����EC�Aj0{3I�����C��U]�����:,+[���������t���>��=|c�1�c1�c�1����1�����:t���UUd���$UUT���UU
��J���J��y�"I>��~�{�7�s�}�Z��o~sa}��	75�u)[�4{]��^l�`C>b���7+��O�#N��\�|:.�������js��VokGm`�ey�j��s9�=q��>9m�?Y�1�c�c�1�d�d�1�z�1�*��UZ�H�*�IUU��M��k"UU|�m��B���UU�� �$�s�/fyg�������|#T�iE��qP�}F;���J[OqN��XR�$����+���%�>��R@������\V������7����,��CS�����}os��~1]���~�����1�c�8c�1�c'&1�c�1�O�I+J�UT�UUjP�*�I*��UUR*������M��UUq���������{��������ow9�{��z�j��y=��xf�p��Pj�Gt)]�Cn���sr90W�9qf��u%jum�!74���%v�f���]��6i9K;u��:�y��]^���O��6����#���1�c��c�1��L��1�X�>BUUY$���%UUD���nm��X�UU��%W*�UUY$�Ud�D��O��k���_���|^*m���t�����.)*���L:>w^Z�#2gK�'�I����9�.vi�An=�3�e�[�fn�$�gt�gi{����!�Gx,��zx��]�������>_O���?^���c�1�c�1�c�2q2c�=c�"UUY"���UUdM��m���EiUQ%UV��iURIUUd*����}������|�r�������8^;�]8�o���g^W�9[b��^i��_��8�Y�-;���j|���wm�u�V�[�+,tw3�[�*�>j�[{�&��/����Z@���}�����O�}~�#��1�c�1��1�c8�1�c��|����UTJ���UUH���$���UUQ*��U_�O�����������������9�I��X��d�*�v]��7V���;o�S���;�'
�d�����odW�@�\oq]i�����c����dT�T/��������%J�_r2j�������������~>�G��c�1�c�1�c�2q2c�=c�UUB�������*��U[�bm��Y"����UU
��x(~~~�._��Q�l�O�F�a�yGC��F��8-���5�����dY��a7�<.���v�Z��G�n^+����	��m������w`�J����I]�4f�J.��sVBy
�q����
:�&�=��K��L�x��]�<�����k��J�2jg���NL�M��
�v��^����a�K��IN���|N���G��;�������9{����e��B�2�.�-�/e��v(�
^*L�K����-�s{���D�ygf=�����R��N��j�(f<l�Ad��6�2.��/O�|`I����X�r]*a��a���w�"����t�r��|�[*�<����r��fe_
w����o�knrX���$��_�D��|���x���t���N��d=u�SUG%S���-�i�D��]*P	���'��\�J��Y��}[)+<������:�k���w��W��gt�nHq�w���i���I3[�G�{k���!p�e����/k�	�a����}F�[��t{F���vN�F����;h�������0e�)�v����}���u!�y��fp�n;�w�pp�u��sJ��gu��A��������<�{o�3����0�M��.�Ee��o�y|L����^
�|�� ��S�]����d���"���U	m�]��������&�u��fz9}|������n�m�`o���.�7>q&��Pn6q��� ��J�������<L��m���7�m���T�����t�*vV���Ai�����n�	&����0B����OU�Ge{��K���~'`����v�E~yCN��Ps������8#��p�|�o(�,dY���ek}�k�D��7���N�j��B���������.�V��������AK�mu������$�����e�n�NN���	�;Fc:��R.��l��Ib��1k��*���=
=$r����������+o@����v�vse�Ge��ne��=����{_)w[y[�m[�#lgK��cR�$��������-�����n��G:8p&n_2��Z��o\qd�rA� �H?[����MJ�KZl�5W��{$�"d�gW���_{���o�������oz���}��'���f����38�q�vo�y����"���!�O	���8�+G8�`���e_����N0�o���":]��&\Q�=��0�kjyw�����L�N�.����rY�}�,X���N���^=���R|EM;���uX�����H{�.A[W;%�B�j"��	{]�yS��ua���:<	SgWg���7,1���uj�9�|q,����s:�ZDa�W��9�qY��A���'.>m�y����{+�3�v��d�b�i�^v-��Sz���-J���Jm�������W
�7V�f��)gz������B��}����~�e��)���X���
O�_b�|�[�	=���h����=�<�Y�G�E<@�i�n�o@��lM(�"�t��=�v��k�n��d����:j�)���
>���~)i��#� [|���C��A�6��rc^?�T��p�q���b�Be�����VR���������binN����K����s�����R;�����sz�eN/��Z{m��yy��m���5<��)1e�g��=VvF�@��pKl�38�����=��m���vS7-r��=����C��j��0k����3/���K^h`�����g=O�����?r�'���=4�!�&��.^v��Gw���w*����=4w���/V{����Y=��)P��T���4�'G+�a$JK��cI;�+�n{�L��d�=�ao����dA�wCX�6a��������u-PN�@��r7�JO�"��Y�xC���E^g�]���3s8�\�W��f�}���E���ui����oJk\��Rx��z��wt5��n][�wV������W��:��_��O��RL���L�s0{�!:��=�s��{9�k�����3��E�W������O��]��t��?�#���.�0+��=���T���� S;t�us��zs���T�3M�� �j��x�����������7h�����
�������������~WE�����>��])�f�CW"���lC�n�R1,���*{�����,����U}�}�������sK�������Q[*��uz��j'=���k���V�����'3j���^����N����� ��x���r�������:-C��{0r�<	��:�{�Q�a:�;'��������������RD�fd�3�������c���mS�UTn��C���\�����/��5���
�u��a���GuQ�v��mS�U0wuS�y��y�wvW���Y��1�eSwU�eQ�n�0�mQ�v�1��Q��U0�i�
eQ�����T8uP��C�UT8uQ�n�T8un]���T8uP��UUUUU�j�*�>g����3v��<�����wTTTT��u����h������������;�;Y_;��|�ATATATAe�XYe�8pYe���`V���V�Yen��Y`Ye�n�$�LA$����|�_/��������1�m�p�1�c�d��1�c�1��EUV��U���UU|��6�m���m���UUu6I��mQ*��������U��������z����o���:�p�L�t���e��.��uc|s�������PX���v��$m�F�mY��7;txG������:
fL���;���}�;���7����w�;$���x����_�c�6�8c�1�y2d���1��g�M��k	UUd�UUYUURIUU��m���UUb*���UW��?RU}���U}���_��/�?�����w���z�'_Q����-��&�R-��V�)���45�X2��wc��&��m0,Mu�#�wR9�7��[��u\}�Z�Sz�H�i��n�_��_�c�6�8c�1�y2d���1���I*��UVD�U^�$�m��"���UUQ*���*��$���	�A�z��5��ZJ�R�y�Y#V��f�j�,as��{�Jn����	���Ef��fj%���J�����o��^���������|�n$��cr���}Ee��_UW����]<~>����c���c�1�&L���=c�DUUX���$UU{��m��$��U$�UU
��!UU`���I�A��]y����8���]N�q�\w<���L�]�P%kI���;n�=YS�w1<���:K���!�q�=��r�>N"������������r���[�[�[����%���;��������vs��>:m��������1X�1����1�cL�1�1�z�;|�*���I��mQ*��x��M��o����m�-�M��m����m��TJ��!UU���� �}�q������g��rd�����h�dI���{�}��[U�&���YKn�+Y��D��v�J{7����WRR������.�����m\�)ck�-�������j�%������-R*���������������||c�c���c�1���c��c������UUB����m��Y
��$����UUb*��U_��?�!�UW�|�G���F��������p�7\��@vJ�j�/n�k�\c;Bv�$������;�)�����R�U�`�F".}/"�]�n�Qyv�{EW�������kJ���Q,�g$�kk������Nx�uf������oD}m��1�}|z��+�1�1��1�c��&4�1�X�o�I*����I��mP���J���*�������������V�T�UUg�_U}������~~��f����������nbX�Br��r�d.���$��V]m��r�i6������+�.}&*��Zi��m�M>��s(�&t>An#��9��SuQ�������6�������'3������:����x��������c���c�1�&L���=c�H����J����M��k*����&���sp�[m�-�$�m���UUjX�ZU|�>���UW�}���Q�k����x[.�P2�e7������c�Fu����S��M}�vb}1f*���'���
�o�8��{������r�3��������i��6v^^�=���^gv'��)L�7.��}BO�x�O_^�>1��1�m�p�1�c�d��1�c�1���J�����+�H��VI%UU
��$���$���UT*���"#��{x���u����U�J���{��I���Q�\f��a����cK'9�.���/�Uo���d��R���m�t���v�����n"�������Y��L��
��+x��[mU�]�Q�i �goR;�����>������~������V1�clc�1�c��&Li�c������&�m���������*��UUY
��UUd�UUR*���Z�?��)�qo2l��wDh�s����M8W^�����+:���j}j�z�bap�m�{��<���������^y�k�������~�����������z
���m��	���	v��U+���Hf��Hb^�58���s�:7V����kjI��Ks�Vw�	�C9�ysg[���#�ZS�Vn��@��P�����*��:��%]����w�"�X�B���j�Bw�7��7
���n�������m�,
�M�]}��jg3K����f+�o�v��<C��q����,�?W�-���:p�g�r��U'^����K�Z�b������{
�sw��H
��}���
4���nr��kJJ�������,�0���N����	�Z[�|���}���i��Y�Y~r���������-�~P�7p�����*R{������Z��3�X�t���jm�*��/����J��B	��r������O�dpC������7Z
 ��{x�l���q��t-��S��)DpJ��oWu���(oBgz���\�|�������mL|��y��kJ)�7�@��n�F��w{�*�B��4[�
V�3A��wp��.�}�k^:/edv=�1���x����Z1����Y�VnJ���6z2/5��qi�z���fl�\���b����s���oK\�]
ue	7�s+�����.Z����l(�%dQ�V���������Wp��v���c��Eo��}�l�^j^���-\b�������P9���Fq���}4�����V���i�Mo���{�9��N��Qluw��^��}�$�@wP��%�Z��,�����s����L�U1�����x�k�;����k\T�6V:1������u���������[��^^<������������Z�u�KJK�-��Nb����R�{�tK�������5mt^�A���fVm������J����E����-9m��njr��n����n8���S��Q�Z_��(��h���}��(�$�A:��6�f��{,^AD_LY����Y�]�-�p%�H8�I���� 7�\�;�Mg��q$$��C��ko����,����[�����8��ObD�H;�s��k����x��d��v�\tIcl�����������
e�^�\i:�4r�kt��2���r#��N��������;�leB�^-�<�p�Z���4���	z�'!�Q~}�
x��<OD�������G��wF������Qx�9��-�����=�2������I��<�������L�t�fv��u�H��
��F�fU�<�C�dS]on��-7J�[-A���n
��q5�x�n]�r��
�7.k�k�����e������*z�7�\���?^=����(?�`fT��ET�
�
�Ti�R�����GV��}�-v�v��Q��`*���Q�q�|8��w{�����x��$uMpj�V�h�&�������TWbi�����s���������G�+��H<�a�/����K���X��)�&��[��������=�
�ev�om;���������V���g�A+fe��U��V>EX�yf��5g��Y��:�����n�����vg)����������O�V
������������r4H�=�w���ZirnV�U�
+�=H��q�[��`�b]�n5�w��t��xU�k9Z�o��0�x�-�_/W-�5 �X����g��#��{��=�%4�t���u������+s�G^M�y?P���^�����v��'Xck+��������b0�����������L�dvV|�7��R���dT���)�
y�92�������t��x	�����Stk���Ob��U�S5��bjM!��8P�.�f�Ib�����X�Yj���u��5�������r�"-�v��9%�����,����|����3��&�O\9�A7X�C��8�<�����M�{����c������g�_oh#��V���5\Z�J�=��E,��j���e��I��r������%;�����},���?3fqOH"�]����������U��v{��-�-O|���]�����w��e��{���-����>�[V����	�u/�}�����o�gT����h�����nfa�jLS���w7��p�\j�K��*�t�y��~~�������U���p?B#�H2�k����|���{��o��M��6V�	{��_u�����:o����!�+N�g�KI�������nl�/�k^(-o���6-}��N������:I�r����[3����}�g���>�{�~?�<���3��<��>��*��2����T�1�C���t�����n����~n��v�U�eQ�v�;��s���7j��2���i!C����7I�tF��AHTn��F��T�]�F��T��F�YTk���5�F���GuP��C�������:��7j��:�.����:�ws*�*�*�*�*�q�@@3�o����T��xTTT8uP�6����wr��{7h��TTTTTTTTT��w�v��~|�(*��*��*��,���,�,����l
������,����,,����,,����,s�>�t���O^�z�+�1�1��1�c��&4�1�X�o�UVI%UU
��UU���m��"�������J��U_��!�����������;������xEe��1��=!�4u�{���,j��1/���K�b���������j.�6���JIy�V������0pa^�X�-i��4s�-���}U��x��>�O���b��cc1�c�<�2cLc��v�!*���$�\�����$�UV!UUI%UUIUVUU`����D�}���w������7�|��*�-�����\{*�����Rz����[MV`eF�L����[�f+�njmw]�]0�q��\U����GgK\����y"�Ra�����V��QS���S�:������N��}|z��+�1�1��1�c��&4�1�X�n��6�m�I*��UVD���UUiD�*��rr�kUUR*�����A�_���{����8�����Y�iRc9��W3k0]�U�q����j;��\B�����q��dWXk�����z��B��v_	[/(y �UM]wo/g]6�:�����j�&b�{�[|U�UU_����O�����>>1��1�m�p�1�c�d��1�c�1��UUYUUT�UUY"���UUQ*��D���&��m�����m��'��d��������_���������w{��mb|���w[�S��]r����f%�m����j����/�|�u�g)�(�\YP���2��K��'��5�����s�����t�������~���N�__�c�6�8c�1�y2d���1���
��EUVnCm���UY�M��k	UUI%UV��6�m�U_d�}�?7��j{/�j������|��+T���y[k:�k�"�c����vs
x����!�.�`����>7��o).Y.�vkr������'>4����.���[u�N�q�q�|Sz��d�6������c�6�8c�1�y2d���1���$����UVI*��IUU���#m6��UUd�m��TJ��UVN�d���?;�����^�v��Y�S��a/s"0�7���^�]lL�e��]j�s��q����2�]���}���Aw/%L��^�}���R��j����sv�y(I>����P����cNR&�6�U�����}^<~>�||c�c���c�1���c��c�������m��UVBUUj�J��7!6�m�d�ZUX�UUI%UW��$�� �~N���?/|��}�^_+&�����Q��+7��+5S��u�Y�W������+�/T��5e��ZuI��rN���:����%�m���j���[2���:*}��}__g���}����z��+�1�1��1�c��&4�1�X�o�%UU�J��UUY���UUB���UUXJ��UT�a'��U}�����"]��_���Vj�� 2������i��|Cm��|�v�w��j>s]�,���Ro������N%��qx�n��.��3	������ww��o���N[c������1X�1����1�cL�1�1�z�;|�%UU�IUU��m��$���%UU����U_v�m��X���p#��wx����?'��4���7���-T���m����f�{��2����+Wl������;�oueGy�[��b�Vn��)/w��C�V�#��{4y���l,���\�����Ss�k�u�}�}����������^�1��1�m�p�1�c�d��1�c�1���UT����UUD���%UU�UU�UUD����U]u���9��+*e���u��`���.�!g�^��wh���KF�]�������5��>
�g%p���Sk(�mnX+�w��M��[q��7j+���������i��7j'E���f����w�6u�l����,�t�� ��gNP��V\�h���CnK���w]�[��W�o����_��}�������=��~�o=��+�S��Z���4_�s�m�C�W!`�����:�}�Us}M
���-���[�t��5�u�-����"2z��Y�AQ�]pU����L���G.*�=�����i\
�j�w������\���w9\��/V��r�����-�z�
��-YT�I���s�9���]�6�)�)L�R
��s^��8P�������8��q�rX���W{��������~<�5�l��0���(�fy��|B��5�n����K!���������f�����G� ��5�������j�n��AO.���w������Ly�W�|���|�[_����wQ���;72���ue��Wo��A��[�S�w�Q����K�	���;���Z���'��7|�1�R�P����=x����#���63mk���8k��Zl1i\�3����N<����2b��`��%�n�,/58�Wr��7+�w�t��&V����4"{Ho(��z^���Y�����w&��:&/u�B}��_<���q��I^��^�����)�yS'F��c|�Z�Z��5z�rT��W�����,����%����+��������n��X]�����_)�����������^�o�sP��z�A���/��J�%jPFn��"h+F	[m���<y�[\����.=������e�ge���������:9*T�����Bm�_f�'2����XW���k�7���o^����:Wsrh"���of��*���=�W�ooyu�Xz,A�Y������m[��g`��;��������_�9Q����w(�V���u�t�F�z�{���oc�O1�DLN�U��)�X�uV�y������}����>�}��}��~�*�����T����)MeZVU�����5��+���z����������C�fu��V��\&���2��$O���z����+��`����U����X�J/s9�o��k%�^1<N��}:�������$&p>Q8��R"Vf\6����g��Am�w����"sw+�z����{�fv�8�.����Gm��M����S.�]�s�\����������N������q~K�yf��-$IU�����A3G3#��*@�<���Koc��O�9�������pU����^���-�=i/m<j�c����k4���x�Y.��w<#)'�����;ko�7���i`�����F�E�/y5��,�ku����e��GZN���b��)����u��c���k*��2NR�==��q��wcM�&/+�.�
���6?g;�kVn��<z�h��2�5����L���U�W�'�%C@����6��lS��o0��i�	��c���Y�O�;9u��K/���2�jHc����Dr�e���$Q����I����3���|)G�� ���MX�#��+v�d��:j5{{�)�j�2b=5��eyN�J�.:�bs9�����C�X��sF��*�k������w���yo�3��vp>��G�K�c�s�V�Pe��/��>�E�^'>�+�}���^g��xI�6xe�C[L��@\�_U��u��w�y��^��6����y���s�{(�;�=���Y���v�_�PG2��8}v+���"��a���u���9;�q�[,���
�8���(�e���6���}�PSUo"&������}��m���Y��il�q��k���<l���{'g���9��Kz��KD�9�'��3����cr}��S�i$�=�W�$�S>_f��{f;����b]�VVV�g+D~�-��*�b[&{{1�������E'e*�������C�Cm��OY�Qk����N�u�vI;��r�YW����������H*r������_t�`d;�>��m�3�=���o��O
mZ���i�F��o���CP����][�Z��=�+���/m��\�^yV��|$�����k�6�S����Z�z�gd�/6:��YX-��_������~��������������g�
��Y��K{6�Vh��E��s�*��d��%oR>��V�q}*���a�G�n���n������/�����5��k�'i���'qk,�>[��
���U}_�������>>����$]��y�g�����T�1��5���0������P�6��;w76���v�s����c*�s����Tk��F�T�1�L5�T�1�~y�g�������|�LcTTn��F��T�]�F��T��F�YTk���5�C��Th��:�wT8uP��C�U��P��C�V���~��C�U�ePPPPP��@@3�o����T��xTT8uP��F��TTTT��u����h������������;�i�[�>��ATATAU�e�XYe�8pYe���`V���V�Yen��Y`Ye��U�@I0A��o������=z���������1�m�cd��1�c�1��%UV�I��mEUU�*���UUQUUQUUdUUY%UY>������������E~����j�F��[{i�)*i
s6!��������3�����9{�_}�l�tW]��/�G������{������{��U�LK�c�����!3.���^�pne�k��}���������||z�^�c��1���b��1�1�z�;|J������UUY���UUQUUaUUEUW��m������$O���>g��]�����y�����d��9�K��zp��M�6g\�6�f�Qvl�I����Zrk��������o�����^:��&��/\�8��u
���
%��|,�N��;��u�x�_?_�W�X�6�1�clc�&Li�c���#�$�m��*��������m�UUU^M�m��XJ��"UU}�d�;����yy�q��\{�|��9�|�{�m>`Un����\�5����9[��8��f�u����:M*��>:d��qkn�r�x�K�(�[�;{1���\�3����hjc����������������U��1���c��,��c��c��"���UUa*���UV$������UUT�����M��g��}�}����������r� ��n����uE�B��;�uf�c�f�q5���<�����M�R���f�1��;��']�:}�i�.���s�>!5������\��Z$I��<������o���?X����z��clc�6�1�2d���1����U[�6�m��UUX����%UU�*��*���6�m��UU~t�U}�����;_�����H�_��+�^m�ecr7#��>�[t�mb�#���������������Y]����6
�wz.��U��/S��Vu#���w�y;7��77|�Z����z��:���~:}}|||z�^�c��1���b��1�1�z�;}�$�m��IUUaUUdUUor6�m�J��"������*���$������N�_�v�[��ko�9���f5����mk��m�a��������w�umG�J�:���9�J����]����wtq\�B�����hRts���{���]#b������F�iS(���|��|x�}|z����z�1�1�cc��2cLc��v�*��*��IUUQ*���UU����������m��}I��}�����9/��O��n��v����{l�c��u��m$���<
�(0���X���f����z���&��]��z�
YL�/(��i���������Q���X�VL�`�:P��yD�&wo���%�>q��N�]�<~>�=|z�^�c��1���b��1�1�z�;|IUUEUU�*�����"������6�m�J��%UV��D#��_����3�����w��v���[�����Y�8�V�^I�����t����MwY�ee"�8�����6�t;Z�h�7)�]�l������S��7�g]���Q��J�Iu��Y�~t���m��������������1�m�cd��1�c�1��%UUI*��J�����*��J���UURJ��$�U_dH}�;��{�?5���w��'�;S�^`Iq�h/nn����q��\q����s�x��ss���z�:�Fd��iv�������������%%u�����������^�<��v�+�iE�*����v����������������^���cc�1�1�Y�&4�1�X�o�����������������W*�7$�m��*��q6�m���y9��8�??(�{�?2�e2�}!�w���pl��z/h��
E�y��aq�r�m�����&�����05p���f�����YX���
����������I���*�M���j+�];{�#B��g�^����t^��T����~V	{p������G6Vl������!r����t(���L.#�r�R�Z����E��}�J{��vy�xi���=0^���3~��.����]�6Ni{�U%�SJI���e[���.����t�$��8��	{}���}�}�������p	Wf��9G����O'Z�z��U����3(.S/^��q��A;�A�qT���Vo�y&KtM)a*���;IKi6c���y��������n(��C�wUU�lD�-u��
�}xr2mj�-Z|#����ON�r��TsrcNk����M\v��/+����C�{�E+8fA����m��%���2;��6U������u�9ky��}=���)�;���>��n^"o��*���;��qE(�T�7:�������\��#Mn�__gi���H�'�uw�X	+d�#]j���������8��qq�y�+��`��z��He��(���&<6.)�����:������k���3�B�>Lc\�_8����l����aRN�GK3:�oLu�!�V�-=��	�n�qC&wt����\�2�����7d��J'��eu��PECV>��*J� {'�,�=A�
�c�5Boq������O���|ui�k0���z�����Y{���Q�Y�[��Zg�>��Dc{Jy��{��Yn���hI]��d���e���Y�q�_tr�Z:o��6<�
w���a��_�R��J���IFu�7���7�����wv(��o
���^]���.�ke����Zq�I��A���>�n�l���c�p��[�t�����]���gu�eX��!QwZylt�]�����5{���M��T{~��1�������Ait��W��7�#���y)^�=���J�jM�{�������$��RA�'�Di4��6�mo�[R��i_|+��UW�|s;������,�o���R��7RyB:�Wm]N�[w#��������4 N����ke_-n��UI�T���d=S��Sm�c�<��xy�P����{|f*xA����q'�Pu�������=)�����5�;�,?gLE�%�T�������+(sNv���S!Q��:��|������n�[(���%C�g�`E�u7��"��i���n�\���m�q����{��U�^��+�����l*4���n�U?*}�u�{���V��mfE�Vz�6-��3�3k�=z�U��a�m--�V�����ZEkb'[��k�=N�����im��n8����tA��r�&+���^��1z�mq��!��~�]s�w�[��j�wyW>�gw	��u1�/�y�#@\�gR;Y��>���)���'���nb=��������$�//�K�����i������^}���3��J	��.�c�����$d����%5'1�]K�������p���k�\�y�_8�"*C|�� �DX�o������xN��}}=��w���J���u���w��wO�+'2��}}]|i�=���3];e����AS��g�~p����,`�xe��������d9�����4;�G�A3�����Gh�a�v��rCm0�	-f5*�l.����4���j{�=G(�����������g��9m�
�����Au!m�c���T���4q�l����n����������k�?�;�cR�@��,%����;��nD���{4��G��J���{��{u�dW��~�\Ejee���EW�	��t>X4	;�	9/+����������������&�������I~�o��g�Y�y������e�{�'�^������d����;f�
���5k^����yW.�?8��t]��]�������q�oi��B�{5�g���4������I��p�lk�,����
%b��_H�
g�)�xW���R��W��wzT�L9GxcC���e�����������.M�.^ov3�Q*���U,nj���c����_C�����D����Vt�u����E���g:����3:��;��q[��}�}��������[��+u)["����]S��:L��T���'5�2�-D�15[�kg
��>��^��0{����sd�����eu����V��j�}W/+�7��zj�t��{(���������������?��w�w���s�������7k�k��La�T;��7M���mQ�v�n������mPQ��U0�mQ����;j��2��c*�k���c<�3��2�|5���)�c*�*��2��7j�k���;j��v��k*�s����ws*��C�U�j��:�p��t��:�p���7/�:�p���������:���|���;7*�<��*�*��:��7j�*�*�*�7w.���v������������;�i�[�>��ATATAU�e�XYe�8pYe���`V���V�Yen��Y`B $�*���`�	& ��w�m���=z���������1�m�cd��1�c�1���6�m�%UU�*���������������*��J��'�������U_}���?
��������v����%Viw�����wQ7��Uk�.m����=A�	��i����r�v��[W�I�������Wr���Ag\�c
y.���V���[Vau��}�_O��}|||z�^�c��1���b��1�1�z�;|��������UU"����UU$��������
��� �$�����$�b����[��KK������h���Xv�7;^�eG������xmN%������;k%������f��� 
��W��Y�<��yj��=~N/]�:�s���4��>1������������1�m�cd��1�c�1��*��*��dUUXUUQUUdUUXUU}�&�m�����m���A�8����>�����Y���k��y�+��vU��B�I����gn�����{��,:@�����y������^;}���jZ�E�D�{a[]���v�;i�Xw{���}��/�Cn��|c������U��1���c��,��c��c���UV%UU����UVJ���6�m�UUR���UU�d������5����u����������*��P.���-�[Wtz��U�U][�������E�4�<��ot�H���U�*��EtY�����R��Ai���t�v.[�2�N�=e��{
��Jb�h��7���w�x��o����_�W�X�6�1�clc�&Li�c���$���UUUUVUUZ����m��YUU��.\�r��D*����??F�u7�~�[�]�e�`<
���o]m1�t�_Q�[�����P�S���;�(�d����������>��>���w��a���mm�3[��d��eu�]wu����u<�:U|x�}|||z�^�c��1���b��1�1�z�;r����UU��.\�r���.Y%UW.\�r���.\�u'RH}�����=_��K�� ��6��V��k�����v�i�&��c�'��[��2m�29bK���e����]���J��^�z��b�mc���K��#�[Jo�7���m�����=z�^�c��1���b��1�1�z�;r����UW.\�r���.\�r���.\�dz�m����-��A�H9�����?u�����~��vJ�N|����$I�����+�LgUm,cqF�hj���m��6���N\�w����3~����!n��}J$�\������[��<�����W��}}|||z�^�c��1���b��1�1�z�;r���.\�UUW.\�r���.\�r���.\�r�������A���9����{��>��e	��B��K�3U�K��;E�g<����Jed9�+���[ma����&V]]vH'�\�����os���E�E���f���ZS�gqU6������v�x������U��1���c��,��c��c�UU\�r���.\�r��UW.\���.\��Ur���srH>�~|�_~]_�Ny���|����Q^�I�1��3�o,��WH��}�x/T���oN�fl���\ym�/r�A���([������2]����Gnq�<��������W�N]?�}c���������1�m�cd��1�c�1�uU\�r���.YUU��.]IUU��.[UUnUUj5���|�.�����k7�W�����;�3��n��7�o�m������
O��~��������������|����G����F�N��������d��?�>�9�,���'��?H�{'���9x���O������z7?�#�#��S��5�8~������O������s���Bv�	�'o�J��m9��qK�?���<|�p��������:��PDp���[�?�����o�8H���)����������j�o���Qm�Z�Z���nZj8����8S�/:K�~�58@�'�$�8[��F�!	��#����So�i�i������cd~�DD���I	8����I
q$�8i����_���@�'�|����q ����y	'*����w4����8p��_bO�����'���r����c�a���$�Bi��I4�r�q�$��I$��N�	'�N���W�?��I�G�~���$������?i~����$�BW�S���K��?�c�����?$���$~B�'�� �����"��t��J�8x������~��we�[�mW��?��W���7�[�f��'������(��Ki5&�������K
M�$��Nd$�������p8�'p��u��p�I$�9������N$�A	����������R;��D�������p�_�v��������rM^oky��_���Bi�� ������X�$i�?���s�uI?�$�2O���B'�p��"si������1�D���o�����F���~�;y~ ��
�6����~���������f���|@�'����.9p�j4���I�8r�I��!	\D ���J��i�������G�@�'.�$��3��	�I�I�����~8���}G.gq�I�?���'o����8���Gi&������z��4������8�9��=;N9#�B����I�����<4B~���"M��/��(������������u��MD�"pO���q�������24�\#��$����
�2����������������.����`C��� �O8�QRJ�)A)=5kB�f���-I��@���	
%M��ZJPPV�mb��UH

m���TR����jQZ2�I�PJ�R��
�m����J�x�t@��>-"�R����UET�Y!I
I4����*�T�(QAU�TD��l�3i�lEACZ�����`���T�m�C��FjB�H��*�Ze-1��IIJ�l��!Tm�6�:�"��[���c\�f�UBUE P�9���tX�9�g�3����wqq�c�n8�������m���ie��� �(P"�v;� oVY���C�w8@�0;��M`fJ�"���+l��`j�A@�BR���|x��u�����
���`L`gXUB�f�Kf��+s�(��	u�$��c��{�kk��f���p���E4UU6����*J�TTUQ��x3���`����5`�a�������t��J�j%M\���D�%JP7p���ac��a�flA�����%�+SmT�*��Y���D����+�����/v�����:�;�1�1�c��AL��UR$KsqA$��C����[����-,60�X,����J�
l�w���AT�*�E))���o�����B=��a���.AUR�*�.�������Q��UmK�|;z�����'���;]�B}(�F��#C��0A��M2O&��Q��144`�O���=D�
EO��UU?���UT������4$�J)�(�=F��
h
 h7����RMIF�6��&�Sj��hzi��G�����_�����I��I"l�������?�z��L�����������8��������_��(��e�����~������������|��?��I�8G
�?�$q�"D�����~>�����b5�����?g
���[jI�D�����Ds�I���G�MI����:�I'2I ���������\I��>�7�����_�����2���e��&��+	 '��!!�	 �L��0D����DcF#B�@I#!��� 2�w	I	I�"LDd�$	fBfL��!3&�0��H�L�q����$��!&H!�rD�I�0��Ld�f3	�������HH����HB0� ���v&�$��H��d�HJ��9vfff		��	1���� ��$2D��2A�2d����c�1L����1�b �&H�HLd��M3D�$�$�#P�I�0�L&!�$$�$&fffHL�	 @A�� HC$!33&L�2d���2&����D��fd&A	fL��d��L�	�6L�I�B�!� �D�I��&H!4DbBBI �� �"1BD`�"0b �& �Rd�A !�$�"$	 �" ���L$����I$�$f�BbLI�1)2Pd��b�b((�,���%��d,����0DDDD�!&L� �f$�H	2I$��L�2R
#9)),�������2`$�d�L�Ic�D��� ����L�

&�I��)1`����0d�"�0A���2`�&02d��&Lc&LDd��$@I	�� �I�I�I$�Dd�b"$�)�I@@I��122�S$�����d�I����D��&fC!!w]fd3"C3$wr	A!	��I	��I�2$)I�D �&#��"1��#��b#�`��$� $� d)A� $�����H���	H`��L���� 	�HD"JLffBBIIHbH2HL$IA	�����L�(#$d2I��$H&�(f0d#3@�(#�)�	!20�d��L��������a1&e33"d���I�4��&DI����!I!�!	@���$��))"��L�"L��#�L�a4��0b!"P�)�	2bB�2&��3!�fhH�$3(L�L�@�I$2~_��>}_l�1�I �H L��!	���DE&�����"�#���$�2�)1$���H�P�FH��HRf		��(�LA��%(���02$�m�D�3@��$�����D��&C�����fD�HD�%0��HBB���Z
BB�fS30�L�H�IF���d�F��"�bG��$9�`���Ha("1)�	#30HD$�"$�d�2$�$�II I���2DBd2��$�)���d���P���\�I�03�D��ch� $��� $�&$bDd��Bs�b0�%%J`3!$�ae	$�L�!$" 	2������"0b"1FL���c0F!	�D����H��f  �C�	��"�E`�1"H�4�	�(��� � �BI��L�L�QY#@Q&$��Q$��}������z��[_k�a ����CJ@�32fA"e2��$$@&3BbIH����"J��F�#cBI"H� 2S1���L&e!�bF@&BBA3	!3	L�dA I!�(�"!(LbC(bbA�����Rh0�10e�����BJC$I%	�����HC0&f$$(�0L�����Hb-H�3333��HIA2"@2I�aH$�""Je&JRI3�$�L��0$IfR3�C 4�$ �&���# ��A��D�`L��2b2A3%"$�A�	����d��d�$ $��$	$�$�#22`!!��BD Rd�%�A @��&	$���	�d$ L��H"L�I��1��3`�4�B	#1�1!fbJ$)��D	3$�� C"ff�� ( �i"���I%$�3LL�dd�0�1�$���0�	BRII$Hb�2D!�HHHB@	0�H� �	���&���4H�L�0��$�@�$�d��&�0Fwt����2�fHC		$�$���)@����Hcb$�B0Dh
	)2A$	#�L		�%0&B��2��	$J@�H��)$�PF$�L�!3$@IC"@e	�L��R`��d�A)�(�2��Rd"2I �a�LBS�BI� ��33 �e$Ba3 	Hd���$�d$��L�$ ���0A@���Hfa(
HJBfB�%�!3)�&d�Ad�I�$"	4���1�0R�H�H0�fBID$��H�e$�1�����a
��)"���I&B$�`��� �1!D3&"2P�0%$A%���"�%��HH��` ��Ha��H�A�$��Q&$�c�L2	0� @��)�IdH����$�I2R$�D�$fC"L��&������c"L���aR�"C$HR0��""��&))$��4�RDb4b,("$��?�n�f^.���! �"���)�2Jb�)�B��S L��&�HI# &��� ��2"$��!!F@Ld����"4%��	��0���$�	4A0��$bH"2DH��D@`�B��2fP�%d���	��3(�H�d�I�&�Rh�$R$�A�H��#$h�I$�!,���$����I$�a���fI$IH	
;�&Q��0��D!2F#�0PQ��EEC2,FSa&&�2"H��E �� ��I�")�H�R�JhC
Q������CLD2�W�����)�f�Ff	#
"B!0I!@A�(,�A��� ��dP�(�H�%#H�i�# �d�LR$��
��I�/We	1�4bL&��L���H� ��a! IM0�d�b4DlE1�F���d&c�lQcF����h���"cL�Jd��&id	��I"A3)(�i0I��d(&#	$�L��F��I��6
B0h�b�(�6)���3w1��1�!2�
"21��0B`(�JL��1&��$UBH�B2`
L1����4c��4QDF"�X���QDQ���U(�������1@Q$��4�$�I���I$M#I��`�d�d
d����$D&�I��1�(��(�4Y1F#b#E���1��Ii(6��6�����5&���"�j�$F[Th2dMd��F2J�&Q"$�f��"BL��Eb����
4D����cD�RcRQ��A�A�D�lY0I�lX��hL)(�Bh�	������I2c3H�Q%�"(#I����J��cTX��F�1��b��HR�F�1�4J��`��A$$I�D�1d��L(QD2H�2H�	��0����)� 4Q&� ���2e0&H(IP�H�d���
�h0��d$0�Ld2cFA�A$���C$�%)�,�B �QI����DfP�0�D�$�!��"����%�T��4jH�bH� "@I� H$�
'����~>��,DDF$����RRRh�$��BS2����$(�&�$�` �����`A��6e���b�LQ��Q1!&c�(��&Ti�V2Q��� �#A��d3!1DHi"$�D[EQQ��Z,m��TlZ6�j+�m&��1Y�!d�lV6�*�m��&3T[b�+b�S&L�	����j���$&e�����X����Q�mF���2$!Tkb��UH2$�b��kb�I����mRH�-P�BbLIHS�����H~�	�!)�&C)����o�m���������_��7��O��_����$�O|���=~����;���8�K��������~{�������������sk3k3Um�����Z�����\�6��Q�-�F���\�Q��j5[&��lQW��V�-F6��j���b�lF��EQ��j5&��TE�E��j��j5��h�76���5������Z5�F�Q�[���sQh���j5��1�#QX�Tj5�EEE�E�b�h�lX���[�d�r�m�j��Q\��sW5�cQ��j5�A�k&��Z5����E�\�[�F�Q��h��1T�Q��h�Tj
�Q�W�\�j5r�������k�F��ccF������j����h�6�c[�U�F�Q����b��Q��j5�X�&�lj)+��RV5����j5������,m�F�Q��QlDm�cQ�����QW+r��6���j5�F��m���Q��j5�(��\��F�W5sQ\���cQ��j5�Dk��j5�\��F�W5t�����F�Q��j5�F�Q��j1��j6�6��Q�����QX��lU��j��Q�W5�\��F�Q��j
Q��lj6�F�Q�����j��Qlj��j5�Ij5�F�Q��j5�TZ5�F�Q�����k���j5sW5�F�b��j�F�Q��j5���F�\�5����F�Q��j5�F�Q��j*(�j+�F�Q��j����A�5&��m�j��uW1�5����F�+5�F5F�Q��j5�r��V��5�\��F�b�cF��j5�F�Q�������j5�\���r��lm����F�Q��cF��j5�F�E����j��Q�����X�lcTj5�F�Q��b�b�Q��j5���-m�6��Q���\�W"�Tk��Q��j5�Alk�F�Q��j��E�-sQ���\�TEb��Q�5�F�Q�5�����E����\�\�r-���j��Q�����1TEb��j5�k��k�j�F�j�����*�F�Q��lh�Z5�cQ��j5(��cr��-�Z��j�5sh�X�V��j5�5�-�[����Q����ccnksh�j��j4V,Qlm�5�F�QE���j����F����Q��j5&��j5�^5r�������j5&��j5�F��cQ��TF�6*-RZ�EcW5sQ��U�F�Q��j5�F6����Q���\�j5sW,V5sW5�F�Q��Dm��Q��j5�F��5�F�j��Q�����k��cQ��j5�k*�F�W5sQQ\�ksF��j5�5�������j5�E�������X�Q�1�(�[�\��F�W(���"��Q��j5�"��Q��j5sW5�h�t�r5F�Q��b��Z��j5�Ilj66���j��Q��kr5�d�j�F�Q��cX�cX�5���n�Qr���5�F�Q�����h�5�F�Q�*�F�Q���[�>�������~�����\?�8s�����-4����I$���������k���_�����������w��j���y���3s�P�$�th�{Ff�U '�������^�J�W
��S"F{��x8�/$��.�Z���e��5035b^p�8����lZ�vp8��h����^����Y�`(�m-��d�^���G���Ue��v�c!�cd���?>�����]M�2L�Y��
��-B��[C�=;l�H��X����lA|�tz�9��n�fr�&�
X2.Y�e��t�b���-�U�sg 0�;����|�-}�����&s��s�sw;|qJ[����"����E�������l�N�QK@�P�����_;���W���*�'�9���(�VKU���q��bI���AkL��us����Vu�+����j���e���Vs#�+�G���;dC���@U��y���h9Qvk�\����(k����p�Y&i���������[�������Z�K�����L[J�3��v��L���:��>kx�����2��F�/�,:��e��>��r�5t����&v�|k�;G�S�-�J�S�x�]4�	�5���L��KO2�E}1��t������|8���i���uz����':�Ws6�H1:�$c�����*av����],5������;>z���wF�'%m��6��N��X��v�p������P����mN��DR
F6���l�Yh��F'q(uh��s���5��t�4_����,�T/v��&��V"����z^I2���;�����k&�f]<vE�%���
�]���e�]a�����l����` IYCz��h�^�;[���8d1���7�Mk�n�3_w;&�U�oo�r����pn�Q��u9����tM��g�[`��xA�q�N�[]����E���&iq�Mj�wl�m�H����`X��P��
�����FV��%��J��d��h��)��l�N���wn�s{fvM-�����m)�n��`�C'IR�R�4�	������y�����1�h�s%-����g��^]�G��:��@6�3*�-L4uC��RZ�����X_d�5��$�]�v�Q�(�������n��o!�����m����$_P���x8]�Cx��O���v���D��A�i���3����>v����Xe���-F^�������N���M=��5S��y��v�\Hu�WL�����#6��e��|4���*�If��GS>C�:���*R�5��x������/���q?���L^L�����3���A��f����Lo
�'��`�N]t�1��x2�u����d=���$���A���-S��Z�u���]fM���GF�z���{�(�kc5��ML�������I����
�5�3����w�s�G�6�c.Jg+�^dv�6_[����s6P����k:��������vp�%�����8�n
�pX���(�b%���1X��;F���������%p�����p��h�Z6�S�l����F�����v���kU�1;��m�����:OD��������E������V��O@�E{73��o���l3<�s.?l_m����V�VUFA�u��Z�u�M��x�Ov�l��O������SRR��0�s,t7s;z$�M��n�e�#:�d���wN:�3���1���Gy��1{�e�:����6���|���5��[+*
�Q��<�<����,�>����s��+Q5������z���#b����-��
�cl�-�����^�e�e��u���	z�7�����^6S���+��_j�{N��A�V�t9i-������!:�:��-+�yl����w�S��[��������f���f���������A�;�r����.Yw�4��R���b��]�v��[Bp��n�w��/�I�������z���t6��S�30���YI��#^����}W9>�����Gt�'y��������9O�g���-�E��d�&��a�n���A���|���m��"�a��z�:�8I�=p��Z{n����/�S����Vs�y�0V;�P��W��z+����f�f��2�������5�/�e�fJ_e����a7��@�:����r�t��T���3�o�����W��#����3IQjRY����@1���/�(��nN�R$��3��u�N��v�S{E%�^k�q�����o�vo*��a�m����6��}C�\�&��Ew�Gl�r����0),�;�����B
r�R��7����LB����l+���1F���S{C��y%��Ys�0r����L�����5w�mp�`�HmU������a/Y���b�hb��
���!f
�@.�t�/��X&PO���M�G�g�����j9�HH���AA�s|c��v|��{��U�����o��8�'Icy$��L%�<�K����4Awwp�m��Qn��ffWR��<x��
�S������k:��*��}�S��u�r���.:E4H��'�������t��"@t	7fYD�E�
*V����8.��/e��������9�s��s��X85�l*8��E�F	{�8VC���w
W�4)q�R����4.��44�B�����8p��g�(�3y���AO�������Swh�+H���*���$�wV1���V3n\��wsm\$sF��j�<y�En%������t���~zr2�5�����q}k�6����jU���m�������|���
����p���55S�1���������o���.���������g�������u����Z�M�����7���������-iM��^�07}�5�K������Q�K��������R�-&������Rp;[���G�2�{�O��-w�����#������6����:=[XU���N#VA;�$"��v���L������]uc�F� ��a`�Z�Z*L�k�R�8��V��B�bd@$ME;�-�TQX�����KV�8��{R�b8���N�����]�Wk�p����������O����am�'�f�^������[�a������t�6�&����m�<vB���(.���U�u�O>�8���<m��6�.��_7�h�PD�yIK{2uhp��ZU Rn��h4]�n�&�����U����������8�+k)���v�t��T�OC:i�%��Z���c73�l���^���&����'|5Nh|*>��^���Z��e�z����JuK�9��6����C�6�)�a�;��L���/o(T��y� 1O:z[�*fo��j��G}�v\�:�&��1�F"%��l*:�Q9Hj�� ��������l��L��Xp�]���0����5��z*#0k�4Q�l�w�-KJ�����5�ZH�x�t�d�w5�;1����?/;<�mM�)�\�2������$K$��C�a�'Snt����u��S@�R��A��U�%��x�7f�#��N�)�D�.ZHec����+&��gW}����D��k����������1+���W����w���Dm�r��+�5�n�lV�$��Mg��z;��[LT�������|��j��q4��E�z�)+z��;m`�M+������|T1��;�����!M�A��"5���b�cz�s�\�J�TIFc����]�i�M�p���l������n:�\�n��X�\�>��0;��a��utk-ji�I��^���y#�/�i���JT\�l��r�@R����V�u������c�h���VuS7�tRJ���C���+�.0��,����G����`��H�C\��	(�&���+2�����p�dN��t9�\�h[�MI���S��4��T�zu��-�K~�SoL�F��n�5��[���MGY�f����������+e��j�1��>��A����}��t7i_-E��w�zl�)+���"�����mru�z�)�N��nS�&Rt�q������tI����Q��R@��-n	|x����/�|��BYh]�a��
ah�t����5)����������^GG!t���FS5��^�f�6M���t�"^f��]P�5���%G���j_ ���D���B�%�u���`�-+&�X!J\�kv�tF��2��3SU�[n������/�qW)��jo4�H����Gl�&�>2;n]�����	���V5,�j�$�4z����U"�$��VM�{���\�>�|I��z���m4)��5-[Q�j5�JKGD��J2�MQt]<�w�����DBi�	�;�E
�����nFU��7�$�U�e�����2�xv�&�����h::S�P �v���J*�������U����f=���-g.��s%;WV����I.3�Z�6��������N��w�U�[�
�f��:��59���78����z���N5h��+�u��+�=���P��\Me+X���C������q��qTJ�0~'9n�U�����9���C������� @#|56�����X+&��$I��4,��+����6d��V�v�Iz2tD����v�"v�A�����P9��:C�P��������{I�vX����{��k������=]�?�R^^���Z\�s32���������J������j����Fo,KV��CNw�L����>���1��p�t����Q���-2QG��u�{����p�)�]0M�wP�3��I����v�s��xH��VG�m�����m�2���)�L��d.����������d�KK���I���+\�6���7;�O#����]k�v���V^
��e2������M�mdHR7���J�^�iQ��8�sNU����P@H����\�vf�W�t���e��j
BU���.�r�	d���WP��s �5l�V�>5�	O����R���t���&���1���g�g���M�l���?nde�N'_�o���]�q0�����]S����P�js�r�>p��\��z'��
�8U�l�"�J���s��T��`\��v���K�OnJu��b�K���l�G)���F����$����������Z����N����Iiq���A�ES�Z0F�Yx�����!����A�)o.��e1{z"Iw:N}r��E�I��yam�Yl�������9�}�0o M�4�T�g#N�lo^���+�f�H���1
C���BB	�WB�����5Y8.1_|�f�Z�����p��&��\����P_;���,���vU���u#�����t�;��}
X�"��B��6#r
u�������`$���\�8���m�+|�Z:^���t��J��f*;]�[��|Qn
f0hWc'�F��Z+:���<y�N���
/4�k,�1�Y&�4�������Ml�2�����}}��V�,������u�����������B=��N�����(�`��6q���5.�r��[�7I�un�g[D�xu%�IJgZ�+���%��M�Q��P9[fL��f�zC�q�ua�w�zv��5��72���K�\4C�`���U���Xi��/��S'�U�Z�������u�E*���VV�@���VU��3e]��x�E�']s*];��>����^�P�+���~��
�U�������g�w����D��6EL�����`�����"���G6Q�+M�t�J�
.�V��#���k�-�G�n�)�fb)�� �F��v�5��p}]�d�%]X��S7���:��l��23w~���@��T%@X�U�X<x��+��$��x�C�#h�ISm��z�6u"��@u�,�5��)S�3q���%��S��,�R���C�pN����zE�|g�����g^�/�_���~�y3t�{agqU��U�����l��U��A�`��[�,�����#L����2W+U�� B�EEd�s����G�r�nh��H�
�r���G���)xb�HQ�vY�o3!���R
YD�V��g8�����C��J���������EH��I��KS,�"�w8�m��G/����i��D�b��*��������N����T�w9Q��u.:3m�X�������U���Bt5n���lFd�%���=���u���U�w��j����
3a
Zv^+�m������b�Z�}�]���)��+"���]����w!��f�)c
�Du%����s�#te<U��g�G5�q�;�b����i�C�������K�W��__r��m�+�q�3'`p����h%�ko����s��X�S�c��Vum�m���p����z�oI$5���N�6i%B�"�v`��b�����f��<w��]Pw�@�j��d�k�z�/Vs��Q�6���f,�y����"{WaB����o{di�9��7;x:n*��1|�
i��@l�$�CG-}FH�u�P���8O�i�2es���=[�Ki&5��0��r�F�����������Vj���I�N����"�=�E[��z7���b
�Z�*5���G�r��Q��=Y�=Dw}��[;z�m�cdK�d+6�_Je�pgq�z���r�*�C�ilP���F���R�/hh2M�����kn��B%�GO#���[����������f��3���U��Z���6.�tVP��3��gc�Jsym�����z���i�M�[1��zq�a�X�i�TB� m%����a{�7/���g���<����a����]���\��fm����rl�%�p�O��%�8[��ea������)r���!���������ys��O`'�Gv��
�ge���j����x�Ye�5	������6���c���O3'5e���B��v�bw2������ml��~����&N���u��rv���{ak���0�v�����<��U�����c�����zol8:a�$���bJi��&�r���8��;�!u��|��5�okh�#;�f��Q����w����o���]�Q�t�S�.��n�����+��O�=�s�������g���������7���m��4A�5l��{�$mv�/}�<{\H�k�m�a��j�d�u��L�������w�UyZ�q-�J����p�2i����v��bu�x�
@���1������<���g
�����Q2e$��-��+�uxM.x��[�OR�5�4����Y+(c��EtF���|
��<��-��5Y�)t��D��DS�����*.��)B7!��[rD�n31]iJ��M�9���_��8�
��w�����7H}����)c��Ba�?X���d�Tts��E+5��b�
�(������z\+�n����d"����5p����[jlAr��#���h)�9ymiV�P�pG����T� U���#o,,8aE��Qfs�W����oa��vrn�{�8%��{FivV�����Z_4(m��.�fK7IF2�����.��o�;w��5������P���U,�yO�F������z����U��r[e*K���J
q�y&Kp������J����[���8��#���T��j��t^u��]zdf�������T��v�����'|�=
|O����L���w@�t�.G@p=Y�q;y����v��P�j��=���6y���]U��;�����W;�}��*m��q3��q���f�K�F��V���A��EP��d�U�f����#!��|�}��4o�����*��p�2������N�M=Y�.��D'b�1�G��N�d����]���Wtb=��Qu����Q?�n���1�l��&�
T�����N�*S��\��&��9B�F�)@��p��\�.��0=)�//\�:)�^�)�bi��P���x7
D�Z1�%�\��P���R�|������v<��.��nHi.*:6KW��a����x�X�]���J��t�r���vj4�i9&���6n���b����t�\&*J�bA�2������f���n<x9j�Y7:+�nQ���[3���	056�0tu����������Y`�L��$0::�{k)O�i������$�Z�������������t��nVF-F�}�x��Y����r��'X,�=blJ����{K��9	��>%�T����d�$�p���fS��������c�1=[��3��������O6U����S�x�������jBd-_CL���cCY����[�u+�������-~5_VG��t��e)D�J�@�,�����]>(�
�m����A��r}�f�k5�����"�k|2�P���t!����,��������]?�z.S���#�WM�Z-����m��4M��jq���6��Z��I|��g�jY�l#��	Y�Y�U������uuIlEe�����(�Z���H��f��b��hoV>Tz��uY�g�Vu���h�1�6�����6:�&���|����f�*>�m�����=�w,�-�*�l=oeM�qPC�Z����\8���hT'Y�8���w����p���l�����>�7���+6�5�is��(��,*�t�6��$v��QY�2�@�s��������L����F��)�y�������+qls
�8�P�U�*��������n�%�0�5�&V�h��y�e��>t�5��TvF���v�u�^�x"��q�������b�A�j� K'#3G��J�OR��r�Z\(������4�x��%��J���d�Z�����1��X���(w���l��zQ��/��l�B�I��*;#y��f�\��l�[H��8���v:���f�1����}��X��J��������a�:��l����U�R�m2��w&.9�9����Z"�;1��5���!�����P�#��c5�<�C*Fiu��j	�e��Zy&d�1��L�fVf����B�pW7yk���e����5�f�$�x�Np��ZD��[r���t��t�X{�"J���5]$0���bJ�;{4N;
��"�I�:�1��V��X*��-���b����[�����o���N���P�X��G�{�Y/ �rEW�)��U�fG��k����h�S���6���=O\�V�`9u�JYww��9!�f�`�+m]���C_[0�!Z��N����|��w�B���9l\P���S3�q��dz9Q��2�
�Hd�u�{d
5c�0Qk�A:�5��B�v���qBX���u�a��nva5t�|��$����&4��q
r�
�V�u`�e'&5j���Vi��G0<�od���X�"���n*r�����=�YwS��}���gl Qf��8������������QoWY�Wx5���5���4M\Rj�����t����`�����U�t��e-�|��l�iZ���xwU0v�d�{'����#�>����p���Q��QR�R��3&In�����
,�
Mw6�^��k�2s����,?h�]��c)��*��"F�P�n�S�v�Xr>&���k{�R�����L������(����H�`L������5r�&I��U��)�:��u�e]�e�����������$w|��r�B�h��3&�]H��,y����|K�=gi���G��]����5��������o��,��:���pl$�������!f�`��{�a���
���M���������t��DGzr�9���:��7�il��n��GmfMIu���
����6	�����!z��y�����aY���������;�'-GB�K��ky����C%�F��Y��@�g3��63s�
`�+<1�\�5��w�Co��o~����������.�%E� ���P���J=�`�78a�5�v��Ef`�4"������;XU#.`=ow2���I�Y�WM��|�p"������P5��vZZ��suq;D���b9�C����Q�QU����/u�1��{*��?�_
!�����>�p�dN�n��Z���v��pY�9igEo��U����*[y�E=�,��\;��|�9���J��j�T������Bs���FeF%;d�1�0�����xa��a��}�&T[��p��3��q�:�{5C�Ue��S�T��R���q��H
�I4`�sw0PF�0+D���(8�������I�$�G�������;W��w����������E���$@M�����������Z��Zy\M��T��s��b�Zz�X�ZE*��)�4����t���6�`�z�f�,��P�i������s�j�dF�$�O<��RS'	����Ec�ne�'�sO �.�
�4���x�A�l��;'.;D�d���<�4���Ek��u����F��m��wyi�,�����;��t1�;7G��������U�F������Wb#�7��x�����	#R?��]~��G�I$��#�?�$����C����w����<�?����������Z�D���s����8q�XDF"#��Dc���1�u^<�b!0D �1A�J�D~���D�$�������QF1��������wwwws��^j�\�DDF"e��Mm���4Q��1������s���s$DO+u���1�1��~��w:tp �����##�8��������b���x1�b1""".�s����"�6��7xD$������9�s�j�& 1��Z���"1p���wwwwwww�@HCR��1�c�"���DPb��e��q��w����ws��s�" �b�"2c>"����<;��������s���"2DE�y��m�m 'w��1�c�"�b1�C�m��@�1�����,ws�1�n�m�j�E4h�k����P��#v�(��c_�0b��@:���9�����������K|�r�����{��www�wq��QF4oX �1cs��s��9�\�#m�����"""�"���������#�uv�R$A|DD[���������������������������"""""�/�"D���wws��WI$@I>�9��������ww  ����Q�1�F;����������������������wt�ws����o���www���wq����������������������������R�� �A��;����c$1�����������-�t��|s���� ����������9wu����;�r�����s���ww;����"��H��""""#5w"@A1�F�����;���ym��{��wwws���;�������;������b""�DO;���wws����[8��4cw��ww.�p��;�w;��������w�ww8��D�H8��#"�s������wwrM�N��9�s���_y�ww9�@
���k�b"���c�y���A����oQ;�k���H�]n � ���9wu��ws��9�r���Pg����/[�6��DQ� �F������7�F5��"M���!=�� �HI/:���ws�����������������t��r���@�����D��h����T[4I � �"�4s��s�����wwwr ����DDz������������E\�l$�%�$�|�����������n�`�DDDDA�������w9��@-���D>u��������������y����wwww1������c�����������A�{$u^�(��Ov�D@����y�zs�w]�wW1�(F1�b�c���wwQ��D�Z���DA+{�/�0�Dc�S�@I��]�����s��.���Dcw��\4E��D��1@>�	5���}}�y��DD�*4h��Q���9;�s�wK��F#��0����F#�';�b�F1�F#j#�DD!���6���r�#|���s��ws���c�����""#��D�*�U�����wwI�F�����y��8s�9wu�D�@p� �"""""��Wp� �F(�QF1�j�o�%����F1���	�{�v�����
���"0+>��~��4�|"# k�5���@��HIk� ������ID@A��wu���\�#�"���r""'��E=�������ww#��ww�&���!{U����""";����q�H��;����;��������S&� �"�4I�H$�I �I'����������"$�"���""!������_P@O}���@@w����.���(���s��wp����A'�$�>#�1F1��7���k��y� :����w]��Q�1F1F#���q����O�{���U��FH���9����D��S�D`�D� ��� \��-}���w����(��DQE9�rw]s��$I�DQ���E��1 ��������m�EW��Hq�q��:�(����y#���""" �"w9���
��[���EE�,Qc`�r,b��"(������0` #�r��s�s�2cD���^x��@[�16������{�"c5���@ �"yoPyx���	p��\���"�"��PHu�-���\[g1��Q�
h� �����[������Um����������'�S��$�Bw���#�N$M:K�	$��#�}I+����r��q_~g�����>����������}�/����kr����z����E
�lgIE`]����+�]
�3U���,�����������3;� �����'�TbH��Nl�k�%R*FW.����
Pf���Q��_}]����3���������pN0�����%��`R�<� ������@]4Y]�S���a[��k4�d)A��7
�e$����WU��|�wr�����\�`�a�9�\:�R�;�F�����.T�����]f�]I���i��7��~O��o)���.��D�o<���V��g���S�5*���z���N���fSgk_�{17��[����^z3r��~����>��A�d��1\�����{}Z�[1���3l�#��f.:��)n�6D��	�Wa�&w����{G6�Lp�=�`�f�j�I;v�K	����u��c���R�.�vS9�Z�mF�4T���hSb�_M������D��o���Y����{����_t�X�*V
�.���e��\��OF�y���D���Z��0��s�wN�%�NS��t1j�����P��y��:�63������K�vta��O;���y�����amry����mtXX��5ub��F���58)�[���W�r��wA���X*�3y���0�V;tY��Et"�l�F��_T�wY�����J�QS��I��H_v��-������C�&�g��������e��;��d&��u���X}}(�u��1�1�n#��|����|�]1��|hp����2K�\v���eeZ����[z�V&�x�{��$�]��:�j���a{	w�Ng���G��l���7�~�w����q�|x�6�-��,!{�r7��0�soz�_Vn�P�5����U���0�2v6r��/rn|�,(� �9��p��X;M3E��+���N6�g%�z�:M�s����nI#�Z]���@���F�����f�&o �����	��;%�(`F,
vCV��C��r�	=���aT�����{n<��m_,k���o�����+o��;\Nky,dx(��2s��iG-�����^������R�RZ)]�s]3�W��3�SJ��~�;�|���c�*�3�B 6�4	���h���Qr�}��a���t�q��%r�eWy@�����w�3�� ��k�N���&�}�����Zi2�i�|���a�K�m�����^6R�8�jH��@�����e����uj�V�8�����Y�x�������r�������������+�8;i�&��x!�bR�f-;O"6f����^�������������h������9)��k!nW���F���Yxg�NK�s���V���S���'Gl���q�����LS�9��D�+��������a�'A�d�!dVfm��x���F3w�$���|8�N�k1������2�g ��(eh`�}�):C*:& 9Wc{kj��d��U�Z���@�fq�[ph4�k���eM���Q�7���.;]|�5`����q�r:�-j�����6������.�7+����:&��c71��<n�����H�5��u�f�:Vd���
���7g]����kn�������������d���!9f�<c��wY��gt�5]�`E��5Qy�e����M������Q������:���e]���U�!�����A���H�Nl��rW**�&]��L��������F�P�N��R�1���J3 �Q��V�����:�����a]��O����1��i�e����k��2�6{��2�K����u��wU���	\�z@�"��;�N�uP
N{3Q�@�I.8��42y� ��>���C�8V
A#�{&V^�9e	���v�I�!�j�=��Oo�#1�H�u|��"�;t'����2T�BA}�*��F	����~��
7�_V��=���������J���q"���6��0�.�0�9Y��y��
����[�#i���������4���u
��5�)���o�4��-��0�d��������9���2��N��$c���5Q��
�Hp��p��o/ ��#1<������h�h�u�\���I8��9��p�B���]��>�L|��u��h���!�e}r�9
��%����S�<�u��G�X��o1���o�m):�=���Q7����(����o��=@����+8k�r�MJ;�~���l��T�o�m7����T����`������A��n�v��rzX���t�����H�����<����
�����5|�Wl�j�6��n���m�8�c�������1���C�����J`��em�"#�����\�K\H��WIt�x��1P�c].=0k���7�"��n�U]�7��w�`�c��������7yu)W1������G\��\j���Z��R`A�5{[}�4�E����|b��a���]�]qk�����jA�l���9c����=M������9F��D�7��`�{9s]| �\��s�P��%6���iX��$�]�\#.��"���p�����W�w���n!��6(���I��i��$�5�P��{�dn�5���/KU�j��x��-k7�-}�	���{l��k��#������Q����0�.>�V��R�/����JU�6�w-�"c�8�WO�D�d���-9�5,��9��cj3�q��sy�~������bq������b�����j�Fx�5"��v
fH���Pd=l����z��w^���GL���fw�M/��u������K��P�����z+9S��Z��:7��I����O��^����{]��O]�qq��y�I���tv��H����d��*2�j�����5p���A��N�pn�pBM�����������C�������4r����;{��L�]���
V���5v��#�*���	T���
�c��Y���6��U�����0�^���a�c��s�f�$�)��Q��a��n��K��rt��K�h�rskw�
������l~��_^�gV��V�\�����qJ
0�^��3�u��j�*�����q=�a�B��������v���AmR�c
��,����#�B��;�F��x��Yf��m"6����a������A��&I	���p#;B�{i
W����;R��U|�WU�,G'�u�l��ukA�����%m`;�����&V�!D��d�]B��B�t�o���]�1Ld�e�llN�����u]a�,!t��o.�9�A��3�h�[�!�����O�`����l��r\o����j�p^�i������]�f�l�(��
�5o^7���]y{HG����N.���}n�j���6��BhNf�i��.�V]!)	�trW�%7����%[�d[�iPyw�-2�Z����N,c�v����:��@(j���%��-�-\N�7�d�C�M��V8o�-<h-����JZ�������k{ZO�|�I����j�s����
_�����oB�$�\�SDX�T�l��ri=�8��{@�=4M�B�-��X������a�ooj���a��R��Ge��a��.���.S�5�wD��M����]�<��p�rTb��������f��f����D�W
(*k�h�`l����������+���7��.�<_(��l����.�b��N��0�������FL�s�1��i�@���#�}�R�M9�]��xt��M#P�"�b��t�����L���1+�}��9�y��X5�L���+
n��I�����S.���<��IevJ;����+�n�TB������u���6+�)�ru�N������)&��X�]Kr��f�:�_1-1���.�1\��0nLD)����C`jv��=�{���(�X�2���e��J
�� i�}X���s�}�:6�d���:U��#�������\#P�������Vmol�P�OM���E��v�v��K�����R�m��>OG��2����������w����u���U�g/p�c���p�g7�l����9���iV�.��@�l�|*:�6�#(�p����\���r_JN��{O+�����\f����qA���[�h\d������I7��q��������
�X��3enbzE�V������cm��!9Rc%�xtS)Z3��3��������$��&�|��xA�
z��f�q7�/
��*r��lY��f�� ��7*�7��7)5PN\�>�g�UC���E� 	J�/�M�u�5� ���e�����C�rd,���:����p��2�N
8{6�N�����f�����e������'��d��,h6��1G)�0!��WY� f����w+bC���W"V��9r���r�����$N�78i���J����b�4sLI�l�h���{!q,�D��#X��1_ ��7oA_CK�w��e�4v�n`��TZ�oFb��3+-��A�R}�����I����3����N��=�M����ka�������3����=s`��%N������p���aB>3����#6`��%JZ���(kk�����[N���d�Ms����)���	���g��l���4�u�#�yB�9R<����s�p|�PU�7�����gr���SP�\��J����/��}��6��W�l��c��;��?C&;���������t�3������-�*{_������]uf��=���:�7i������e*��]�b��2�Y6�+�er������r�	&��d��fuN37=��+��/.���������k��;]�-�-�]���Y�^�<#��G��*<S��*�Qc�O1b�$��P�/h����Aov���u
ukp�En��p��)D4:g�
\�!����\�s���EW�{��}��(�TH&=��!�������@�d����/�T�C<�\��'~������wz.z���t����n��R7������5����*^�����rP��@�tm��7!;�q�������6X�;�*���p������2'CweT���55�u��m����Z��c����5$Y"
��oOe+�;��������O���Y��6��s�Us�*��_�k�p�;��q��
F5${��:��I��C��!D������g��
��:��N�<����l�
�.S��x2�fj���;t�_��L�&�x��-G9�Mw
�:����xp3�� ��]��+X���3����I�;y����%+�\�\��n��f��'@������XLm1t�jI;�G��,e�7G���oCtv�e=�'�'{�wwX%��� "�9� �yL����n���C�hQ�������)��Q�c���Q�(�/�`�k�)B��^Q�B�:�����n����������J4C���P�:�
e��2�	�3,���$�%]�|*^����.Z;Re�jT�W&�M��IXg 7����9��0���0i�x���H���)���q�,K�B�q,m��v�Y�i(�|e�a���V3]�_~��n��������l�N�l���w4{���tF��A�N�"�,�KF���I��E|�'��k�2��������un��O0��MV+7�	��I�E�iC�,�����9��������L���Gw�.�5sK����Y\�i��u$C������YPG
s�7D����|���LW�eG|��(���
����.���[:w
����gm��B/�T8�=��UE�����Y��&�V������h���1�=��;�Q
�,��G&���b����Vla���Ub��,J%�_Y��3_b
�-G���R���zGX�l���u8�3/�� �a���wW-�[o��k�Y����r������6�����y�1u�4�Z�W�(�IX9.����;5V^o
�����S�\OZ�'8�d���l��da�{m���Ka8�(����Vd�3u&p��+{��W�
���E'��r`eM��5����&o)�7���C��T���&X���r��mN�ts�x�j�4)*��SN��s�<�k6^MMj5t������;1r��p�gu����4p����B)��Y�F�$z�1k�Q5���;h��t�Zf��[�+q�~��vB��3?Q_��{��VTf���B:����f�r����?c��a�zl��V�����gM,�����������.�C9l�b@<�����w.u���dtj���3RO]N"�l�Gm�]h���'���Kv���n��WJ�j����|��&_�'�q���emWjy�F�Eu�7�7��Js--��������2%F�8��c��gt��\(��W4h�b`e�8�R%0J����������XZ��Bt�XCV��r��$��?w�����L����:�?L���L������zwb��b��4F�|i�=�s������=�0���n���#{�G��@��5s%^�o��Ff��=��tt��UGj.��v��f��Yn\ =;���F�C��W���(�<�A*��7*���gvuq��_�l��b�<X[�;7����)��r{���t3���%'L�z��E�a���G,\r�
-�������1U��Zd�H�G7���������������7�����:l
�5vGD�DBGgYhm����m���ip�(v��y&]42,��e�5���5�q#�R�G]KJ����o���mQ9�'e��.���@��c�R�����df�Z��_6��*�[�>��1^������+hJ�zt�ip�8Av�Au���k������X����ee�81Y;fc�
DSz+�{%�SO��26����'��#+�wt5%;��J�"�����:;��S�z����s����|���43��7\�sw)W�6��i�A��'z�����&��{�]Y{�]����P<�|jQ��]
�Z�q�����Q�Gc�8����u�ZRX�hD�e���!�I�\���P���mrj�O-�*c��h��X|n�0��~�[�^o��������_��g���Z��v`�j^o��+i��4���?D���|2��wZ��o�v�r��T����R��t�E�����YF���,��A�f�x�������m��*Z�r��D-��yL.�^,��	�jU��.j�1I��e����Y5�.�Q��%���h��a�F|�2Qw���<of]%�N��
����I��6Lw�<���}p�W������n ���7���Q3��M)���Z��5����a���e��s3�Xns�Gak�A�@���{���N@��������B�j4�8�;�j.c���#���ae�GB�=���s�7�.s��`��f��	� ��z$oh]c*����Z��D�lr��vw����z1;s��}�������dl����e��z=~�;�o����(�L]�[i�G��z�I��a��)h*�t1�1��\6&Mtx���Tb�vZ���c/�v[��.��gv:-mq�w+�:QuL�X�]
���}�Tywhw���Y!�w�����zW�P��+��kl��
C��+�%.���J�	�in7k�Y&�&Bm,�����ov����f��������_��q3?[�������+;������4"E����f7�`��T��DI��g�:>jZ�`S����q�X�t���������IGL�f��.������V����8*:�+���1v��A���o7��t����
#����q���72�d��hn�@�)s-�����s����s����H�`����}�svl��'_]2�,��0.�h:�����{���� �����L1U�:2��7f��� ����\�t�\�	������h��1����:��g��]0�i��Y����^L��Z>��Jv������;�gV����y>��
}�*Dm�����\��w�W<'-��nU�����B�[�"Kl��������}Rj� ���*3�q����$��1a��������������4E��p�R�����:8�����z����N=Oe�7�Q��e�U,R'b��Q�������Oc8�M��;a$��$�F�v��r�V���U���E�=�ed�q|��x�@���\�����SN��7
����rVy�n�����8�X��}!��vk�#)��w�2���B���g#7A�Z]^.���Z���z��n+��L��+P���}C�C������b�S�������$����F��/��Pm��1:#+f�(�d�����}|)�V5�,gt�l��E�7.����Z�1����2[��/��8s�2��yf��OJ>��M�%�6���#c7F`3���<����mw\�"��%�km����u)K�������0<��A3�x��]��b���:�A�PMqv�;[��3-�5��-on����u;Y��*�
��i��KA����������PlP�6;�}Hr�������s��*���.������G�u�x{�6i��M��`=Dm�Tpzz�#���WkMp�gL������l�t�d/����w/_�w}9Y��V�*u��y�m
]7��v��\��u1���	�[�)�jh���R�Mf�`�1��P�FM�5"�}��C�����l�YisVaZ��}2v-���>�|r��+,�]�(baiS�=�j}�i�{Z�j!p�s���`���j�4Cw�9dXc6n�WA�9j���:�,��C��Yo���]��������k��7�N[{�^M�;/k�H�����\�����z���P��H�1�����J�j�]��|y���>�i�����
������l���
��m�w�&�9I;���onm.�C�O�m���S�zvU�mU}�t��F�t;.2��QUq��k�~���Z�n�-%���[#�h����+U��:��e�5����y���<M����{ �)����wz�iH�V8%
7�"����uc��[��c7�<��$%�/�$s6�������n���Vd��*v�e�����=���O�	�u&!��;,#^I��BoX��:�V.�����r4m&�����f;U�Y�%����$FwK��78�6�b���C�7;���v��������n��%C7�1����-X���O����N\��(�@��]��	�vx��+	4�Y�f#j&[���F����Q�Uv��c�?�z�P��L@�s��v�����;�M��l���C\����
��rK�@�*���j�gg�]�FL��;o��	%���e�Pp�&U�Y��%�g�m��N�tz��3pVN��[A������`C]��p����������M�T��.���I9�2�X���2�\�1���Kw#T_1���5Y�'3f������t�>�jd�H5�h�}4��wZ�dTX��re���<pl�����Sf�Y{+��-�����5��b��D���Z=�\;m����2@%��Mv�L*%
���������]��w;�����s�()vq�����^����JB�����^�>��4*�}��'�'n�����;�W��^���b����&*a`�On�;r�Y��zm���b��{ve�E�k4�����0	C#��v�LU����Z��X�p������^d���z��dc�.��e~��eN�^jQ��;����L���c���u���f��[�gq3J����5U���O�i@(����Yr�����1��=�w��a�-��j��`R�kkr��,�*���3	��w �e��qv����e��+�h�-�3oB��|����w�S�`(�2T�#�i;�L�Nuh�f�.u�J�r9���Ne����Q0��@�P��]i\3����&���Cg[+Vz$�p���C;��_u�Y��f
�X��u:��O�r����H�`�s� �A"|w;�cb���uL|H�i������i��f���N��Cy�(b<Q����+����p�Wn�����B�*�L3%g"x��V�=d��:�V>6w�Gr���,�����w����y�{����7������6g=D�i�C��/&��0t]��+{�dtf����U�-,{P�Z������kZ�|��gVv*�PN[��T<Wp�������h]����K]W�9�f+�X��,A��
��kz�Y#n[���/��pQ�������*m�M�;�W�nZ�$��'�pXz��h8�0�]�IL�5a����`�=����az����w�����W����l^�N��sG�����fbY���EC���������^e`7�<�I�p%��v7�`8�]�+Js���
������gs<��\�LP�]�������\��h�����g��J�����)5*�c!���g#���6o9mDL�oj|.�+�����W:� ��b���@J�w�U�������������sBD��k��G�M5���_����Z?���f�u����[����z6s�u�4��y�)�s0�u�i�v��]��\�=��PaZ����q �����#����Too!Wb��|V�p���a��{�:Wp����W��&]�����6n�n�F��x8S���O�����}�R���`��9�&G���{H� �ZP`q���e�N��2%���k	kvS+��.&".����W`2c��+����
�]^g�J�L`&�[N>�Z��F��Ga�w�M(�}m��[�c�����}���8����]�AZ5MH����KL'n.y��"�4�W[��F�L�y�!j�k3��j������z2��YZN��l�Y[
���8����n��5�N�X75��E���sWY��l���R��WQU������_t��!�#;������B�xz	�Oa+�wWS�x�]h�r��?m�n�L���6.�m���f�f�G�k0���X��/�qF0;X��+9<�:hx���P����N�]E�3��S��>�
��/�����N��t�����
����\1�{��n9{/#��S_�w�L{nf&�S=������[���$'=C��*4���c8I����m���}3��2�%�|���l��%"5La
i�6B��A�y�K7�������$���YfP�Mgi��(�g�"���C����E\{�f�`���j�����]�j������-�%[!P���e������)L��fr��*�b-��7lQ�}%�����;�C����H�k�#\��f�8�j���������Z����gi
�����D���K���_n���b�����>�tH����zl8NW9��������&9�.�L�������� ���6�v&(���t�����S���f:��w
�oQ��<���0���Ku�4������7�C���z�3�����+q���G�aCb���0��z@U6������O
|Z+�U�9�dMy�Oec�U��mwi���������[b���Y\������-b��G����$��!O�'�$����|^���?����;�"7$$�� �H> ���q'I8I�8	�}_
U�/VI������S�����_���=S�a��J��1[7hpW��u��O�6�v�����Ur/������#�������5����;��R��a������7K������2�xnn#��^7�����"���*.+�^tk_��$
TZ��}t�fJiw�|�'�d��:�I�2+�:���c����6�W�F�+����|�|��.�����%O��1X.[�u�'6�zw��:�G�N���
�U�������E��
W�,�g�
5�w���=4����3��������Vl9LJ����0)����-7���o��Yb�jB�q�fX���(����.�r��at*X���C�/u^�9���,�����|8A���N�]�^���W���r�E�w�~<�c��=e�1v8�P����������M2f�.�_#mcT7������H#e���~�~q�wu���5{��~P������<��v�u���C�6U_c�S�DP��ZZ�n�����+�X9�o�'
kF�M7������^�e�����<�����_��g�����Y��`��t���7�i/��mW��Bz�^�%��,v�1���Z���[=��L���h'n�	M���`4���Ru��}t�t���)��<����O?O�G����{@|lc-��)z��:�TpE�O9S�{
wv���nz*�2S�f?v�4���J4,��;t�
�A��u�9�I���mY��5������@;�i����;�M�t>�]������'�}���<N�
Y���Y���'��{2������@om���'��=BfwQ�:��$d�}}���E-;�OpU�p�o38'�F1v��+��Q��M�tK�������q�����i�u������/-��&/MP�|k�(������0�7����hL�n�����;DWL��o!�{em��g3'//�<�9V���}w������Sw0�k�o3[=��[+M����.�A��*v|�r\xv���)ni�e�������#���hm��P�Gy�����NO��
�ck�YQm��M���T�@�`���,�f��w�����8���������������U��_���){������3�&��
���|�Tg��z�=ts�5����&]^&�=Q��w�8��N�1C��1�Bl�b��f��,�N�|q��������������!:I�/?���������?�������<x����<x|������&���>�����SI�<�J���RT��k�����k��g���bn=K��\.�v�Ox�4wv�!$�l4;<����S��Z����l����Ty�lb���x������*��!A*T��{�T��<`v=(A"����J�-��;mjR�(B)��k_�<��<��.�p8�8v�yl9��8;p��]��w�<Y�x�\�G���l��n��6�(���i�w6��BJ� cti�����U���B� �I2�����H�{�����$($�lk��p��2��CdV�s���](:jz
K`�t:tld\����/��{�wvA"�hv.PH��3�{��� ���o*PI���7�<z�R�S�0�<���@!��=$�P�!S�Z����1�nY���;����,ss2�;��R�T8�<�)R���?B;���9�v��Z�����y��k_��-�kp;tS�Y��/�yk1�~�����a��[��x�Z�Z���5�kQ�'���c�Hl�q�N���!��%"������ �p
yJ�!@T�)JT��(B4���Z����kb��<� L��x�Zp��)��k_�=O)JR�<c\�s�s���L�����I"�;�s�G�Z�@U@1���7�JL��h���5�c1�Z��,i�X�kq�k[�`�ny��F1�����R� *T�(B���Bvh�Yt� !B�B	R��l�k|������[��
x�1�~��&C��[�wc����-�3���u�yNN�a��td2C!�����o���;����J<��<�����27w]�*PI���g�� ��z� ��4p�����ykZ����7/������v��p������������[�������1�n1�Y��/�[v�Xwwa�{�����Z����OJ����n�5��] ��-~�	R���T��(B	R��q���$�<�%RJ�p
������ ��@��vRH��hv
p�zP�T����������!�a�
��ykZ��-��fc]��������J�O<�����������%JR��@�w��H$�����n2����,�cZ�e�����������.��s��q���{�U�@���y�V�Z�������<�����q�k[�a�cZ�������c��<��k����u@O`���x�����~�2�cw!��������Jcu���;t����H�!%Rwww� �*@5��n�� J��I2�������!B�� ������)JR� O/��y~x��Z��P�ws�����?�JR��'�?~��������!$Y��H@���-��xcNkm����������R�(�R	<����7r���s����;q�1�8��]��k�1�kp���mv���w�=O�����R����5�p��<�e��B�!B�!�RJ��{��Z��=$�JR��B����6�T�B�(B	�Tz�T���c�n���B�!B�!B�,�k@9�q�s�;l�����]�(B<���B�wwwpS��Oh�BkA���0���B	'����=�$�JR��%J� UPc]����5��Y�����H�JR�����>|�vvj*=�[�U{�������{����=���UUU �k�}�w���}������}c
����s=���w�}��c=�����}��1���{�9�***��T�EE@z=��Hz=�G}�w����������>�U3P����z}^�UUA���UB���=����������{�����@xUMT�{��{���{�����$�p{����������zp{����������{������ww����h{����*��%J�{�BUD�S�{��A$�J�)$�F�I��i��A'kS(���e���UUT�!��L����g����#���&%S�UR����eT�I�����UB��
����[�u#���
$d���H������������������n�{����}�����}��1���}5��\����vv{����g���������1����c***���z	�D�{���H{��<�Y���x����1����<x���<x�^<y<����<m<x�rI �����:u?z�Y��.g1��3�.\��s/.\�yr�s9r�s�{��>�������������ON���m1�\�eL�ooobv���gAg�`d���w�{����HU�������{�d�-�|����W=�&j+N���\�y�\����<z��c�1���1X�L�6�1�c��'^�Y���i��r��9r�i���\����L�>�������������w��_�W����g���EB�sr�}��T�v��u�4�2�����'L���I�X��n��$nM�'}��{{I�g��'��GOR������g]wOOUE�����w���������������c�1�1�b���2m�c��O��.f�jq���f�ji���ji��<�s4�S��C���~�u����<�����J��_ii���P��t���M�}�-�L<�,�j��t����sE,��B��[Q�U�S�l�&�+K;w1r���_v��|�;�*����/�1�c�1�1�b���2m�c��M4��MM4��MM4��MM4��MM4����G�}1����Y�U��V�EWr�����l"���T{��Z�UQY����:�����;�����v�2������������JJ����
��kRc����(c�/
��(����0U����>�_���_o��1�c�1�1�b���2m�c��M4��r���MM4��MM44~??�y|�U�*���������(�9d9������w6����n��
����*(1��N\����.������]�wz�w�x�_=�y��o���w��XR[G[�J�������}_;����^<m��/�1�c�1�1�b���2m�c��M4��MM4��'-9�i�������3M}��g�Y^����������x��D����f��\�e��f�cW�T�<�M����4�e	��m�%7/�2e5��
{&X�(�F�����U�.�{������=��������UL�V��>�������,c�1�����1��2d��1�c<y4�j{��3M54�SM54�SM54�SM5=�������{zT���[q���R�T.3[{��e��kt�l`�%�������`���"����5�d���-��0m������q7���}��x)� �����Z�W��}�[v�m�����c�1���1X�L�6�1�c��&�ji���ji���ji���ji���j���������QOz�����I_&��1���n��3u���J��X0�3���ww�O��i�{6���{#�m�o���$�����r�����wy���:�n�=�t��v���������������~���1�����1��2d��1�c<y4�SM54�SM54�SM54�SM54�S'��o���=��u��l�������������k;����K��T�e��P{0��[��n�H����^/'�)yJ�����t\+�r;=��Vm��}�����w�^����>��w��x�1�c��1�c�d��lc�<x�i��i��4��MM4���]n�v��n�|���_��{����>��k������N��hQ1=�'/$��m���U��t��,@�����"b\�u_g00�E�������N���;��#A�]h��Gq[�Cj�&������];P��@b<=
�i���������g~Z�������m8��E��+mq���h���T���w���:ms��jARE�Yz���������f��V�^w���I��u��y�������Irm�W��s�������SLZ���}�
�����<b��j��NZj���Kx���@"��.�^��E�����Jq���$�z��o���tE=��E2�w���>�i���Gar�(e@pN��3�����DM��Y^�p����E7]����������W&f��?b������������)��V�Rf��f�w�Y�v�I.ju���998q����Y������NN�����Y��!S�����Y���U��G��8V&\�FT���/nv��/;��X��bi���P���\�],|UV���-m\Kf�\*WU�=�3/4c�$F�0`v��������q���j�i[������,9d�O[w����������L�u����:��C����d�Xn�r�R"n���h�8���@|�zV[f���%�c��Nn��q48��Rl������h)�pVt��d;6s�22qz���u�z��������{'�����s����Uu���}��W���&q����c-��;7�#|��E� �r�x�:J���[��;w
"8{���U����,;���A�[J���@E+��EI�z�����q�c����.f�z;����M����+c]ubm��z�ZF"^b;1v��Y�P^��W�[-��C]G�k*�����]�P�L���Om��������r����G�Gs��I�p����:*�3�za��[�(=��:�=�/=w�����s�����v�����~�����c�)k�nS���]I��:|&f�Q���:�����Jp�7M�i�3Z���dvqr��;�uD<�#����q7$���A�I&I�$$�$#� ���������z�e��<j�]�=Vi�����7t^������x�r8�������Z�{����l�<��{]��	#��3���8�K�=��	�������D�n���l����+�N~��� N���1.W�L��>�,p99�N�}y
Z�w��g4C�AP$��5��)�x�����y�E�(�y��:�Y�g+uq���.�v&�,�o�Q�s�,��2'W�����:���;��]�D;�i!����1b�+t��3W3B�;�����}5��{D���9d;.�] ���8�f����z[��������V������o��!��%Q^��k��l����7��y_���X�o ������t������:�"�q�_))R�2��Do�k�]���n�ZZ�����Oio�uY���x���e�_��S
�����-O+S��n7��`z.�^>���4�������6n���zZ�`*��a*��Oo��G�`PGt&�S�p�����U��&[�
W~^';���q���k�u�$Z�m�wZ&������(>����"]�k�x�6���x�>G016���eu��2���][(��iZ�Iz���_>�9!�U���K	z
�n����!u�
���mOJ�g.�JT�6�fg�[���aj�T��:]��5�u��P/z���Q�u�-��t ��;�LJ����"i���]�/X�7(2)��$	��!���@����!�f�L	3b~�i�`s������*������Q��c����=��+����+w�U����~��}�XrR���yI&��T��c�pD\/*)�P*'����9lU�c��n*�I���}�3�(���w�7�o�Yr�R����^���7.�X����2YL�����_j4y��e<W��x�i��a7�3x�7��-�3����M
�t���ku�?�=���b���A�����j
�{4��P�=]��
�������y����0f����Ydbr/a
�/�����S=
������pb�3�<9gvP�w�6��mgI{Q#*�-�<g���W�}Y�SG�&^?�*U��������">����3����������.��^����*m���������R/;�8\�%�����I���##;FC2lH��^5��d�B�/m�'��mr���>��Yc����/:�9�<��3��\�����_��x�������x�3��?;��~��v�
�����o�\������wmm�8�����c
������v��v��c*��2��7j��n�1�eQ��U�������]����c��>y����~����eQ�v��j�s��p����������3v���p��8*�����pUTWG���n���e�XwM
���������+n�B���+n�B���>����p+n��y����WG��`V��]Ye�[�XY[�e�X��t����`Ye�N��hYf���*����
�:���<�<q���~��6���;j�*��2�wT�1�LcTk����:��c*��2��c*��2��c*��2��c+k��U�mQ�������������>v����c�;cc�+��&��1�z�2s���6�s�*G
�9�����`��m��0X��U���7$�m��-N�+���C�U��RI���a+��nN���H;�?>~q���Z���u���x`h@�Ph[!��G�WpJ�J���v-���%)��]+�	�;��@mC��&���
���"|!F�j��;�XK�r�H��~������b�$�u�Ynk�57���z�#�����^�?O_�c����i�c�c&L�c�1�����D�����NVs��Ug0R8UY�NVs�L�7�[�[7���W��mo����nsC�U��b8UY�I*���������o��k�.�m�~��-*�	tI�U���F�9-����N��n������C���v��+P@����\�����W���������D���;�I���p���J��vx3������|�q�8�z��9��>�c�;v��9z��1�c�1�1�b���2m�c��X�������DV�f���Y�*%iVjZU���ZU����6�����V�f��V�f���Y�8~��'�}������R���������yb������Vf�^{9��	2o�\6���` �^c���sx�.����=�o|����Wd��h��T�s,���M��W161��f �N�F�����v��C�-��9���e�s�{�u��#�N^<t������1�c��1�c�d��lc�<z�MA�D�*�G�I�t���N��/	8��*�AP�*�Ab+J�PX��������H�*�/q	ZU����t��A����>��������������>k��x��}%��v��p�qb3h�XE�������A]�����=yE�86M���\PT����nL~*����{�n�R�Z�����pZq�2��rOd��\{���>��F������>��}>���_�|c�1���1X�L�6�1�c��d��*�AQ+J�Q��H�����SP~��m�m�AdJ���"��5�+J�PT���5B��4���8I��<��O�H=����S��������>]u�����r��:�7��u8��s:�
���P����$P2�V
���H���F�
wn[��Su3W�BT��hL.wS;����3Y������z/v���t~�v�/�����Nu~�D}�����������������1�����1��2d��1�c=c&���+J�PXIZU������5��*�"s8Id4������$Y��\�ni'3�K��f�<$i�Y�*�Y�?�;� �38�u>s����a���
#9ffT��K/�
�r.[�%�������evb0����x9������)��-�{�U�T��c���N ��I`��V&�[)6�}k���Y���]��}i]1�������c�;cc�+��&��1�x����xq�'�M4�5��*�AP�*�AH�*�Ab+J�PTJ���D�*�"|�&�6�m�AI+J�Q%�G�}_}�������?V�����rD?�+��}O*�\!{jr�����t	i9��d��.���+$�{-Z�F%[�����d�������D���z�t9��<z�r���v�-�.������[
z����y�Q��<x�����c�lcLc�c2d��1���P|"��5
���I�����m����H�F�m��M��r&�r�sPnI+J�R7�I�u	��N��pF��M�5"��5dG��D}�����=�O��G��)$�m�K�\.wj�__Q5�}.l���5�x��z�e��o|�'U�R���ml����|�
�[�t�q�<��b���z�S4���]�Qt�M��\f����Qj��gI^6��O?N^�1�c��i�c�c&L�c�1��2j���Y�*%iVj
�ZU�����Y�*+J�PY$�*�AD�*�AdJ����Y�?BC�$�����\�9����g�����7�n:��:��1QV�[���������cRhE�����Q��'g^d�-�=Z������}o�l }�P��%�$S����:���J�3���3��d�]+1�_�/��c�;cc�+��&��1�x�����%iVj
�V�f��m$�����{�������ZU��8�E"��5��*�A��6�����ZU������������i���{?�a�V|p����iHM���TX�q��ge����������)E)�:�������zM(	�q�F����oUow@{�e��<�����n�m��
�#�^�#n����L5��T�3K������42�+�����*sx��"��E���#sN��y�a�����gA������~���F����Lwlut7�I�K
:h�����St��S��:���������$�7.���B�
k��q}eX��h�������<Q��)a8	|\���U���'�c{V	������o�+(� ������P�d���$b����tiuhO�;=�%E�����1pF�Y�����#r	��x.�����]j�I�M�4C���,���
�gf#oIZ��;j����Y[&���h�,r������6�"{�3H�qp�:�H:�����:5�$�aP�AVW
���Z�����G����\���n��gn$7zt����(�*�Oy�.���4
��g7B2������}SQ�#wp���`�Yyt+�,W|����4p���e��s���`��+���,��!d���Dj�����{��_(2K�����lSM����f�)����y��^o�}=�����P�eW���-��;�D��)d��'(���s��l7�t�6�YsCu��	�a'$����F�(TJ���vA@���X6��#��{:���^��[��1*f��y.MG�I�.�.�,/��;{�z�y^�S��g�U���~������u�0����k$b��1�[��fj*�@��k�6;y��)�H���7\0N.�X����,��t�+��VK�F��
��T�'mh�.�*`�uo*�������Z0���^� ��{fwg	��}��D�:[�,�x�'P�d��U����D�$�x��������� ��!���=�]���inj�Z���<V�L��������XH��T����f���^F{��Yo��b�����(;V��\�(�]y-[�����KQ���2�����n���|aw7���pN$���s$�$IRA��{$$7���.��U�7�'m�	����������wk-1Us���l���A��[n�]�h���\�9L������w���E�OM��<���5K��<)�k����9�\�:	�{|H�����Y�@_49�[l����(�m�kz4B�K�n�/�{��y�����u�z�%P�Ck�[�5`�6T���b7��l���
>�z��f�$v]g�}�>-���K\�%�`;��'c��r�\�O����������,�v����cvWei���X3 �yp��1�PW8�9oR:~��,�s��>��8��1J(���vhe��q��
��c���M���rQU��K:0�'��W(�v�y����E![��|���<P�wO|w$ve)z��	y����Q�@����U_;�+�+#����h���������o��x��;���Fu��X��i�����a���'>������d��]�q���\����Ty�������:�Yq�+fE�c)��{B2mXV��,���{�9��D��B�	s��t-�B^�bX=���>R�T�iN|����x��yW�����h@��-��38]����<
�S��`\��q�gb�K*�J��A<��X�p�`���XrJ���*�OM�t��Ux5~���4���4p��P�59;z�	����f�^�&f9�qyh��[B��$bE�_�"{�������(�����>��/�[3| Vo�0�5{���@yM���������|b��������X�mV���y�8�T�q	�2���L�/�K~�����+GT�q���^9n�OM����Oz
t�ss�����5�R�dc��w�6��;.O|���������N�6A�
����I�F�P�zI�()��#%p��������
s��r������Oy�:)��
�_�QA`������0Q)���gAtxgvYG�4P}�=�;~��M<�fx����&�����p\���������6��(��;-R�/0<%���*w���)=�2J���f��QO��9��~��kY�W�=w���}�>o��g�3���~���uq_��o��S�
���\l6z3{&��N[�,�Zp����-�����7��,������L�m�3�oUK�	m9��
��s�������/+����G���}�o����{����T���H�����:�K����o��s���:������\����2��7w7w/���7M��1��7X��0���i�T�1�F�YT�1�L5�T�1�|���<�_~����eQ�v���Q�v�T���@@wu����n�UUWG]@��
����*�����m�8,�����+n�B��
��;��w���=�}������[u�s�}���\�����tpYen�n�`U��e�X�e�e��Ye���gMn����Y4������wuPU]TAWGy�g�8����hwTTk��@LcT;��c��1��5��\�T�1�LcT�1�LcT�1�LcTn����c*�s�����:t���O^��X�1�v�4�1�c2x���1���P|H�*�Ad^$p���O�"mm6�����5��5#|D�$�M�5��8iVjV�f��IZU��_bH~��3�~e�_>�z�k�w�;J��Y�� �����8d�X+M^T*E��5A[���C�*7C
Cmco��u���N�y 62�@]]Ju�J���a������UU���1��������c�lcLc�1�'��1�c��4�����M�5��*�AD�*�AD�*�AdJ���I��F�M��sPY��5$�*�AEiVj
>�H�$s���q�|����������e�e�k?~�~&c2�f6��~O����E��kVAy���:g�i��T5]D���J'�����V��Yb�;�!Ng8��p��f��h}_~�~�O=}|���c�;c�1�c�����1�c=c&���&����T��gr�-*�AI%iVj
�ZU����Y�7���m���V�Z��V�Z�d��H>|��~k�~|����;���y�]�y�<�2��������G�w��b�Qe�J��o&����N���l��E��\cq::zd�KkH�Y�v{�%d��8�������&�/6:j#��>��������������|c�1���1�d��'c�<z�5�J��PXJ��PXJ��P}���-��O�"l�m6�PY�������V�Z��V�Z���A�D}����O����U3c��U{���o���VD��5��\��H$�CH�^n�.����3x��a<-�
�n�V�ZJC@�k$�f�u�����c�s(��*y�nk\���5�o:�^�����v��������1�����1�c&O8c�1���q����p�pF�����
IU����\��*\��)$��\A�d�m�n �$��\ARIU���i	��}�_����?��'�'���B����f~����V�f�\�;�� ��f�oBI0�������s�e�L���a��:�/-$�=���<�t�����5�����T�W��g���w�Liq�}�����}�����_�1�v�4�1�c2x���1�=c�>I\��,\��,�W*�%����U�B��q"��qH����n"��p�xI��\��9�BG� ��N����s�����s�s��F�'E�����.S=��r�NZ�{Cr"��t�7����g�0�5���J��P���Y���u�Vs4>�N�y`:�;&��a����7[�����<v������c�lcLc�1�'��1�c���8��EW*�$Ur� �%W*��}�I���X���q�*�WRJ�U�H��\$��&�I����
t�>���]��78�������tTn��dS�s�<w�e�t����r�b���r������k���CSv���]��s���<+���[��T�)�2-���mL�z�t=k�w2&�9�;o~k�:�Z�I����c��G��1�c��1�c�L�1��1�=c�>DUr� ��\��*$��\ARIU����$��\Ad*�WT��U���U���D�H�n[q��pC�������W��n�~�w x��l�,�#1�K���j����Ie��.��I����v��^y������S{p.�sJ����9>�n�^v�^G��#�.��w����V�T����~����g��~��j�_�Q�}���]�c���>>1�c��i�c�2d���1�x��A�J�U�"��qH��\Aa*�WT�\��,��U�$��\Ab*�WP��\D��G���DG�$�y�\sy��=��qx����u8��HR7ot�d)�+������Zn�D���q��V� ��yk��)6h��}S�^�[���6l[���
����'+S�
n�^f,?�T;V�we�_<�/:���;����Z����'�m�m�_�����1�����1�c&O��c����%W*�
I*�W��H������
�U���)$��\H�Ur�$KW*�D�Ur�$JEW*�D�k���0|�U��/����
4�c�x�KV)�Y��wn:��{n����\�/��Q.��@n��@u�U�Qoa�8&e������q���K�0%.��%-���6���#�r��������[+��!���`��b�@�Z��
�_c)QS�M���B�(mvoIX�k��P�J�}dH������9:z�;��P�c�Y3;�>��:�Ln���"�h��a���9�D��.�����"��J���j�J�}��MC�v�������
����`Co]P�`8�����Ejf���%�{�2JD��r�5���{s��KP��x����:�QU�i���u5�\�_�����������:?^l�+�����U��/����������Y�@|�nXtNH�_uN���;�Wn�\n��Vi�Q��w��'�����Y:�25��7�I3�u���>�$�v�m������q�E��yDn�@;�����Q�+�),[�6h��k�IV�8������}h�[ok�\�]�0euQ�_�����{��TG��cu��*��^�
��20;>����o�W9�<�,������8yL���{�k���� r��9����Joe�u����I��&���U����4]����&l3Uv�����������wk���
�B���������W^~�����n{U�5}[�����;\Ou5Z��/7g���I��Z���'�"�^-G�a.�]�:��{�1��s�����{Q���mh�"�m� Ue��@]����FT���#�;;�b� �<�}������n[_mZ�;Qm��JG����2����[S?���t�����_Nk�w�CW��i�5
d�}��V�.����`����$���Z\�����Ed��4�V��,����zj�\U��i<ct�N��[��g��Y�d���12���R��@i]��(��y�%���C�F�M"r�����'rt��d�{F���jM�f�+�NN���h�%F`�������Ws��M�b��F����H���w5���a��,�\���������S�����>����}�D�D�D�	�d�u$I�A�$d�{$�s��s��=���Sw��y��B���u�f���+�{�[���P��{�����JSR�-J���^���;�u�w��t\�d��6s���Ia#�G�u��&��>WLg�����VP+��o2�/����7i*M� =�����_v��A��{5e�\��_q��3Id��0i2��HuWt���"Jf�lG����151��-n���$<�
tiP�7��c���D��4���2�2}(����2%�9S��n��X�E������s��)��l��<f�X��v���9=��F5�fK��:��9�CB�WQ�W(oNmvx�Go���t(�^.-;�x���s���E���H�m���L�1.m[��l�y@�{�D(�t�Ll����&�Xc,Vf�����o�J�ouC�VEy�]�����]��]�9d��-;`��=��q{���������xr!��b������O ������;Z��S�9���|������G��8'�6���:[R�t�E��NF+q\�]�z��=�qA�y9�j�h�j2i�����W�}<m7�(#��P��_5������u�r��D�}�z����]^�^5�c�3��3Y9�bTX�����|p@�_}7��dT�7��)��+�udlo��"�N��������~��X��Q�K��i��v��y�x]�"����F���\��"�^�'�����ot_k�`w^��|��6���q���T����{�"��=�_����;w��]����t��S�vF������p ��zn��o��N<�o�Q�q�����Gg�K8��c�����.T��AO2J�Z����~��0Q�2���U��~�5����>�^�*\?��"�����S��������D����r���w��;����^n�i����Qg�+3Vn��!@�t�v����i��4D�B������{{g:Y��ymBG~�,���u^9<(cU�6�]��{�zvx���"��[OPa���I�}+�~f�������=#o��=xs�T
w�Ti��V��(�2X�`���K6����������p�S���������I$������'����]}��oVuy����Dl��;[�j�{kW�5��!�U��b�*[Ie�[H�5��V=n��Y�Kg>�s(�Uh�����{yf�4�����csd�k��e������k����������}�>��������{�_����?O��]�[���m��W@u��;�kn��U�w1�L5����|�n��n�1�eQ��U1��]9���1��5���1��a���1��<��>y���;��5���\��7M��\��:�����*�*���������:��
�8*�+i�F���
�8,�m�w,�����
���������+n�B���+n�B���>����p+i��y�w�
�8,��B�,�*��Ye�[�XY[�e�X��t��nY`Ye�N��hYn�wUPU��AWGU��g���;z������^�������8w��1�eP�6��c*��2��;Ms�uS�U1�eS�U1�eS�U1�eQ��V�(P�$��$����~?���}���z�1�c�1�1�c���8c�1���q"|���\H�"��q"T��U��dJ�U��R*�W%H��\H�D��\H�D��\H�D��\Ix�M�I!�I��>�s������H��7KkM�o����*�b#WB��4k*��Wc�H�)�
���B���wn��n�#J�d������]w�C����eZi>9�h+�\5��j������<�W$�����^���1�c��1�c�L�1��1�=c��$��\H�8�TI�r�$N��Ht��N$O���j���U���,�U���,�U���,�U���,�W*�E�I�w��o"H}�
��;��:�������E���d��������%��;L�����V8�7zi��FJ��C��f������:��#������Y�����I�v���W�k@L.F����*�XN�����}{������_�1�v�4�1�c2x�c�<x��$O�U���*EW*�KU����U�����\��*%W*�G�D����-���Ur� �$��\A��|�~�� ���q���|�js3�����F���������\I��g�/?�)^�5��+S9w���"�7�U�N*iU�a�@�����G6�%}W�E�^� ���9L��_'n��l���62�PBwe��t�D���t��_�����1�����1�c&O�1�c�oX��$��\Ad*�Wp�EUI'0��r� �Ur� �\��,�U����U����$��\A����$w���q8������E^���
p<V��R�-�1��r�wW"��NlU��Tr-N��Bi+��k�z����,��NVwmrM��'���Y�0��}�����2���8�����;�w�t�?�:}~��1�c��i�c�2d���1�x��A�"��qB��q$k��W.U�D��\AP��\Ab*�WR*�WR*�WY
�U�����S����/����%�Ff�=���_�~���m}y��{����e�=hMD�����
��Z��U3�*�V����=��
��b����T�f����M�=�n��������U��Ry1����������v�<�q�=��:WN������c�;cc�1��<c�1�c<z�|B��q"��q���\AbJ�U�\��2l�m�n �IU�����\��,�U����#��{�|k�3���������*��GM�V�Bwy.�9/-m��K����y�42�U�X3-��
�!�*�*�Cq��6A�����Q�����D����vW������j�����������P�������������m�?^���1�c��1�c�L�1��1�<z�O�%UT�RJ��$�$���K!*����*����J��$�D���J�J��$�$���O?�UUUW�����3���{���j�2i��F��$fnwX���e=�u��zY��{��1��=d�U���Wf�\g�k{gs|����G\��vV{�v�^|��y��)���J�a]T��v�-?�t�w�s�[������O���_�1�v�4�1�c2x�c�<x��O�I!UU$�"��I,%UT�w�m��I*EUT�Y"��I,�UU$�6���m$�$�Ud^>�>����e�����e���2�3���)�
��-�$Q4����,&���	[��Io��j;bWRi[v##$�FCH�1�mL��Z�F��_���Wo\�d{�e�{�;s<�q��O����O��G��1�c��1�c�L�1��1�<z�N��Nm��or$�m��K*����J��s��im�I%��I,EUT�X���$�UUI'�I$�$>ny��.���
�����dV����'�V��u���./����*���Tx�S��������������0wf���[^�/��wg��2������l�4������M���{�y�����J���O�c��1�c��1�c��'�p�1�c������*����J��$�UU$�J��$��URIbIUU$�UUI%��URu���I��X��7��Fs��|I�'�N��}����\�1X�c���9Yvf�h`���������>�����LT�e��������[r&3��1(�����7BoK���_;Fn��"��9a�AC}�v���6��)@)��Y����5D+n�P:�����P�����Y�=����D��vrv�xw���[k73�,��8��R����D������LR*�]\&�8���e<����&I��� ~��Fv�n_T����m���1��w-����������*��+���B�y7�J��U���[��q�����M������&Z�E����L���]�Q�=��wuiWJ��.��4p��\r�S��oD��VZ���AN�.��7�f�h�	���]�|q9���.Pu{����K���kD���T��.�Hw��#I�O����������;�F�Q��p�'���<���N�W���'���	)�b��H����]u�5�aBA������o[\[=����.`m�'��9����w���k�h���E�2�S4.�����HU����������{���^�g�����;������%c}n��M���p�t�KK�����D<�J��\a���R�P�.\���[� ����Y#�a���V���s�v�(��7��-�Y�'a1t�YS`����u<O^ru�4cH^}��
b���ej��Ysk$�"�	���r�I�Z���N����5`�n�d����8qL���a�6���(��Q	�$�w.�&���h���������G�J�����Z�$qp1�v+lV�kB������`A������'�b��M��k2�bu��}|��^��Z�'�WM���Z�	���>V^����,�����0m�`��d��6vP�������N����2���;���-U^������w��H��e�vv��WJ,Ur:}��nbu2h�������
G
bf������g�B�$,�!�6��.�bc�5���.�P@�)�3;�QB�,���l^�����]Y�E���:��Z�;8��
7$�c�.�����oA��m�U��6�������Y'�{$��A�H�$$}���o���[���[�GOO�E�����g\��4�%��W��'����s����H*���>B������*Ni��rx�1�7�'���%*����3�<$6$���q)/P���H_��W���(�����S��&�J\��5#���1�|S�����Md�/����]@�+h9�+�J��g��'�^��nZ��h�!��-�z�R��e���>R��*��X�Y��:}���{��������&��J�H%=����>ax�gzm�!9X��$��G������6��	�N�����%=�a���n���uw��D�[(����������=w�B����`f���P�}~q�/J0���w3b��@�[�w��r���0�.����_)]�i������8(��,�����K��d�v�w��p�=�
�.��ns���Uw$�w���L�#`�5z(;yV���d-T���
�ak�3���x������xj{.N��FT���4{5I�g�6��L����y4fx:�.o��j��l�iD����{��1.��s�p��t}�OA���YZ!��(T��Ow������U�H�9�����p$������	�������Tw����U�w���������y}D��}�}'��}�h\��]9��s����}�H[���5r�e�/��=�)�+�����"���M���,�=0�nE�im"W�����2��u�<�=R�;:����������,Yc��\Y�]X<��V�M�e��
�3���z��YTu��Cn�q.���5}e�.�L��G8s�v����F8��m�N�JU�7J������W'�]W	�?r���qi=����������/
�~��*�;�������p���!���[�z�t������������Z+�2��������:�����o�S��x��:��_�N���^���vq�����e.�p���O_u
4��G$���{�D����2�q2�#a�sc��C��p����^�b:���%�����y�gv�[������8�����V�����EAa���mz����J��s��2�I�R���%F�4�)�#�>�����UW�|_��X5w=r�����rS*k���z�z�9[�=7�������=��u7���������v���<K/�����������V��{�/bj]w��&�+�sU��wy{5�����f��}�R>�����>��~������w�c<���;���6��+v���m�8�������[u�:��7j�k�swr�|��t��c��u��c
��s��LcTk��LcT�]�Lc��>y�������~���U�mQ�n��mP��F���
�
���||c7j�*�*������
�
�wQ�����-�v�����+t+n�B���*�����
������
��������>��
�pw�y��B��,����#�Wt���,
������,�������sr��,�u]�B�v���*����
�:���<�<w;�������U�mP��F�T;��c��1��5��\�T�1�LcT�1�LcT�1�LcTn����c*�s�����|���������O^��X�1�c�c�L�1��1�z�1�+�A	���I*��EUU����I*��UT*��UVD���@���y�Z��5������k��<j�{��Y���9�-���������{.���+�e{6��u�
����{r���gX^�`c^���v����yu��fd�Bi�N���:������W�m�o���_�1�c�c�L�1��1�z�1��Ur��UUH���UUbIUUH���UUY
��!UU�}��O�A���_>��W_~�������}3=����[=q������z\Mdf�Q��4����G����e�%dL�u_�r+��d��]
���_&��]]N7�������9��}O*'��Lx����=|c�1�c1�c2d�8c�1������R�V�U"��{�m���UUB���UVKUUd���}���'�}��?�����~��]�?�T\�/���Eosc�����:��-�W,7�
��X!��X�fSzDUj�bj�vb����Y�t�r/=[Qq�
&�����z�]=t'���t�����1�c�1��1��2c1�c��c����I��m���M��l�m��J��EUU�*��IUUdUUX���L��d�����{I�K�J�~�������D~��=�E��+f����(wz��o��������v�
�����+���L��W�p����Hy���tL��l�����Cb�i+��s��N8��;�u��?t��_�G��1�c�1��1�&Lc�1�c��|�IUUH���UUY
��UT�UUY$�UT*��UUy�$��H=��_���C���U�����s6_�N+���|Lo�V�,��	��1����B��n]3v�&.�����w�7~��b�p��������K7N"����+��������^u��c�K}UG�����t����>>1�c�1��1��2c1�c��c��J��UW{�6�m�EUU�IUUD�UUUUX*���UW�!�H=��<�Nx���Y����]��M�S���*=~������W���{����cW=�{�Z������g:�fN�F�w�Y�uO����"�q����t�W�Z~�7���?%���%�5�M,��������i���>�����������Q���1�c��c��&1��1�X�>BUUY������UUnO�	��N�����m��6�m��UUa*��^HU}������S�?z��7��������_/m>�m������L"h*��
������n����u�� s-�y����M��z�:�������zW�Sq��K��-<*yV�h{����c5�`#�5�{�=my����D��n]�c������1�c��c��&1��1�X�>I$���UU
���UUQ*�����6�m��T*��U[�$���k�:��~����M����veIa�eZ��B���o�%F��y2�8����-����:N����
��lj�����X���T6�oa��{�Gz[x���WuD����t�
u�������l�����'�J��?_#���1�c��c��&1��1�X�>$��������UUd�UUR*��EUU"���UUT*��}�G� �����,�����q���		���C9�N�U��h�lV�0/v��cy���/��Wu����}�6������{�>Wl^'��~�����&������qq1�]Y;����G��N�{��������~��;WS�������1��u�x�m���2>>1�c�1��1��2c1�c��c��UVH���rF�m��J��!UUP���T+J��UU�%�����W�VW���F��W����sVH���8��s��*���}���S8_�\��f�&PM��ko�v��'w��	Q��<j�,���6=j�)<����T(�d�E--k�
os��us��Vu�l]LH�(AZ-�wb%�m��Tg�\��a\7��0�p�hn8�9f�z�����\����Y�����s��/�q	:N�2J+[�w���2R��.�V��S��;��-���Y "��/3����m�gv��/3o��F��Z��{%�*���bozv
5�*�>��v_�}��������/'��6}<n{����!�
�������r���	���Zw�r�}��%�9�D���.�wmKc@�
f����6��N�3|'Kw�f��K5D�O;�n�p���:��gWd$r=DQ��&���k���������X#�7�,^
j��v��S�`*���E����B�gq���w�r�`T9����F�+����tQ�����J����Lu�Jeo���2q��R��NB��n�c=9��j4�G�����>=���<K	��@N�-��8����*3��������v�v�j�[�l���m#�_oSo:3/zlle����h]�z
"w�B�=6[$V>#��h�]����O_�������?n�c�������N��Is�|�M���x���R�������J���E9h������U���'	���]+��joo(�(���8��c��s!���&��������*U�o
4T�,�sj�c!��[{2�t��������
�<8���;GCk��*�q�������f�U�N��uI �0U�:n�>X�h��l�������	Y/�V�R�5mG���%Cx]����� �fW��`���sTK��'z���H�L���1�s9��D����0i��s�{K��Wk���M
U�������+��e�(��]{��l���F���u�]���5c����pCx�� k[VlY�vfC����[:�e�����M�M��������� ��~���N!���N!���$��q��w$���bO����w�E�5]8�4���xf���x
�����Y��2V'$���[��w���z�������]����o����S9w)�_���Z������K�}s��.���B�y��v8;��-����>�������ew�[�}��b�z���t�|������F�E����Z�����E�!+�����{}6b�]�G����K��E���;��+h�te�[�C\9s����:P�M�wpe�/6�P���F�hn�8�+�,���*^��`�j����tQ�I{�md�N
a���1����v�U��ou��1]�/F��u��<��k�Fe�n��w��;�~K��2���x���lg�[��l�Xj�55�p�R6�/":���y?k�m�v%�f��������>�X���V)�Jyl������F�����=�<��\��*�V�Q�f����
`�d}M���*�t���5@���b�:VU�����Y��B�a���{z���0��v�#g�W�4/D�X5���M	�}��Y�����g�C��lf�gCL��cO�,���{������_^�)D{_p�K>��!���
�yx��
75ZK�#���M�����|fp�#i���y��B����:��^�N�RvJ��:e�z�����wVfJ�������+�=B������������R���:��H�����N���~G+�#e�|jm����^�mT��sR���<o���������zD)�*�������M.&QkF-����m�apv�	�V�h)����:���Z]��
�j��u��������V�&���;�N�^�f���[�x������F����{��h������[R��+��6��K7�@%]����k��Rg���k���M���J���nz���y���be�E�i�
��S�+�+�u��"r���d�7D��d�=�:3�+�s+wkT�D�+��������vRu���^�a�}�������.��oyS$V'e��+�����G�n\�Nh��s����g���.��B�������\�[���/�����!!�e���S7e#�u������e��~��R��}�^�D������d���$�����7������s�F���,���1I��P'M�f��D����������B�f��q�P�������[b�h<f��%0V�S[I'����*4����z5�f����T�5�S{5]~���U��G���}g��}��~~��;��c<���;�����hYeho��pm]�vt����V���S
v�n�_/�����LcT�u�La�WNs���c*�v���c*�k���c<���>y���;��7X��\��5���\��:���TT[�X�f�����p��8*�����pU;��*�����-�8,��B���+n�B��
������*����pV�v����s�m;��<���WGn��Ye����hYe�n�`Yen��Y`n���[��e�e�M:���e�]�TAWGU]WGy�g�;��_A���j�*�s��p��u����1�eS�U�i�s��c��1��c��1��c��1��7X���1�F��Th��>~|�����N���^��c�1��1��2c1�c��c�UUT*���UUH����UTJ���UUR*��U_����}���">����������=���B}�uV{z3oW�,�r��9Q���9{�j������
�X�Q�[p���#�mG��Xh��;�1|D�j��
nf$��$[8*��YC~��x��in#�-��uq����{95�W��w����W����~����}�G��1�c�1��1�&Lc�1�c��|���UUX�UUX���!UUa*��UUy7"M��j�UW��!�}�����_�}���s����MTTnv_d��[��R� �_H�m��^�m���B
yR�Ruj���;�9#:vc�kr�����)��^c%���st�Y�����QcP�_�]^�$%����o*��wGz�s�w�S~�]k�}�>������__�����1�c�8c�2d��p�1�c�1���UV's�m��RJ��UUY���UUd���EUU�����UU}����������C�����3i�X/nw*������s���������u���)���i��Zs6�5,�����J7�J����{���zU���e��Wx�_�5U;����\��w=�nc:-��y�|w�W���z�q$��t��������1�c��c��&1��1�X�>$UU|�m��q`��U
��UV��6�m��UUB���UU�"d���#�>��9�Q�{��z�����ft�}>�H�Fzv|��2���m|��;�El��������t�r���f���Y9Z
n0��eZ���%�YW �7P�s����|�]y�R�5��C��;t���G��c�1�c�1�c&L��c�=c�UU����UU��I��mR*��I*��)$�*�UU"���$>����Wo�j�E+u���$A����(\j�y�������u�8�R9�w���D����>����L=�_�"z
�������{z���P���bY$��*�{�F����^��~���>�}������������z��1�c�8c�2d��p�1�c�1��UUY
����6�m��UU�	ZUjY"���lM��obnm���UUy���~���=�������f�����m���x�F�����'K�������[W�1�N�5"6�����%�V�]��w�.A+2��	�mT� �*�!wi�3H�x2Z@Y��l���gg��������������6����m�����1�c�1��1��2c1�c��c��#m���UU�`�*�EUU"���UUw6���mQ*��I�6�m����O�������U�^W��_�V�sv�]�c�������33{����������u�W��4Z�����x��w�������Y_����#5H��Y�� ��/]N��u!���<~������1�c��c��&1��1�X�>UUR*��EUVD�I6�m�`�*�UU"���UUbJ�����s�����u?e����w�;i�n���L�����#���������+�vt=��W�=�����Tz}1����������{�|��]Z=����[���E�c����N�FD��2�u����yw����O�m�N�_�����c�1�p�1�d����c��c����UVH���UUP���U\X��UdIUUQ%UW�H� ���������E9t�~���Wu+.}���/��T����"���@}z��'V���b}���k��eO}0�����W�M����������g�e�v�����-���w���I���:v�}|���c�1�c�1�c&L��c�=c�I*��I*��$���UUY"���UY����k"UUY$���q��{��8�����]�.����_��X�j������>���t��Z�S������R�]`���
����������&�-����+���N������:������%O��I2!�oQd���X@{jf\%VQOo^51 ������TW���u&%r�N��NH)����c xfh�����Y��W!y�����V���4�������z�*�2e��I_
M��-����z�:�v��Ax\��H�J"�oT���8��v�DD�Jm��+��t�T��W��n�Y��-���bV0KN�m5�{��\���g�����m���C��'c�7&d:�����e�q�J�����v�3�J��<@���%30n�Uo\
n[��cY��oV�r�L�����km� M����u����oY�=\L�J����7�Ke��v�k�t�U��g�e~��y���,7�x)le;�C5)�g��f��l�^��;��'`Ks*��h�KX�=�����
���HW���*DZ=5.���KW���h���l-�KE��\~����[��m�I�"����X��b�x����2.�Guf���gz���w�ME-a�=7��e-�DW*���;{��j�&nL�I�3�mm�
�Kq�kyE\��j�6!�}[���Ht��T8`��`�����u�u�]�lD<�X.���<&(b����p��]b��/6Tz\D���X[�t����W���]Z��x��������-`V�li������t��9��
6�d���]�W2VZ �[�-`�]t����-��N=b6C����������%�]�'[���!%`v��-=���9��t��uo=�o"�5d�N�V{�y�����f��6Vl�X���y-�$p�����
�D19$&���:L{s-t����V%�MG��X�ST��:�]�gj����l����!{�9�qFZ7g�um�Y����EdZvw\KL���qo3w�`[�&��x2�h��� s�:;�����e;��n�����)��SN���-��%�X4*�3���e�B�����g���<�����nH5$$�+����T�5J��U-6�N�I� ���'��9���g���:������u����0f�u��7�z�.Ne-��[w�L��&�	?��p��[}K���������CAR�n��y�p�U����E3���W�}��P��{'e�����
]�q�����6��t������RU��[OM�������
�m�s6J���]������K��[�����lg�v?\O�<d���ww�gv_���^ZXi<�����������
:�v�^���f�;�{�SOZ�9~:Y6���y�z=N��|�Nv����;U
�M9Mt��������N�p2X�R=
��[g=�1�R�w��T������������hi���K���f������:�p��]�>]!�������e��Rf:��s�-�F�g�b��u��j�v�.w��3(<�n�P��FwH�o2-�M�.��j���	t�c���i	|������z)���tAc���\3��Xw��Lge���d�4$W���z����S�����L��*����������#c��Dk�)eP�W�VQ^]��*��E��#�ih�d\��r�{S�'\���^�zQ�>����S=D
����at�qI����6�I=��cPp����iG���zWsN��z�vb������=��I�9�Z��g1N���%�k��uy����ix�]Kd��%�����d��$��	�c*&�i�����
8(�9����3%��^tL5��O>���m���@�(��f����#N������Wa�9a�=�|��/��B��#��^�d�N������i}S��Nn���|��t���	n^����}�=R�����E����������SF����������XklRpBu��[[�>*�{�7M�T��|y����G&4I�q9]�Q����ge0�������6����PP�z�S����A�m����O-�uf��jy���6���
������9Y�oH���Ol5��~*�E�S��eW{�{�[o�{�6�>��E����P���,���%�]���1u��<Xx�X�J���N.`P���������������EH`�K�w']��W�/�Y7�����E����}��c�D?$�������~k����W?����Q��Z�X�1�<��y����2���
�^�^����j3so7���FZ%]];�:��L����W��wF�f�z��������z�N�g�����>��}>������N�T��RD��$����
������r���ki���i�T�]�������0wuS�U1�eSn��mS�U�eS�U0�mS�y���|��}�;�����2��;j�s���;j��4wUUV��������:��
�8*�+i�F���
�8,�r�w,�����
���������+n�B���+i��]��>����[N���;�hU��[��Ydsj��Ye�e�XY[�e����t��nY`Ye�N��hYn�wUPU��AWGU��g����wW�}�F��TTk��C�U�eQ�v�1�eS�U�i�s��c��1��c��1��c��1��c���1�F��Th��:t����^�c�c���c��'�cc��c��J��XJ��VBV�U"UUd��6�m�I*���*��UUY$�U_'��d�s�Z����^&���y#����Q�[bj�����-�G����V����5��p������j���>�L��}���Z-�����/'n����MW����{�g�wT���>�����}����m���z��+�1�1��1�&O�4�1�X�o�J��!*��UV"����
��kUU`���UUP����=~������������u�7_��������6'?�oU����^���{##�k�nl�p'�S��`*�hun�chR�Y�^�3ow���-wcUiA9���rn��=g�w�U�����}��}�>��O�z��+�1�1��1�&O�4�1�X�o�UV���UTJ���$�m��%UU"����UV����+����U}������B����~��������))������(Ppj47��S1�Fk��[�;s�����G�����*���OWwEmM=W�����<v3��+��3j��cn�[=~�R�}���nr���U���_�c�6�8c�2d�����1���"����&�m��%UU��UVBUUYUUqB��Y$�UVH�������$�����?��z���C��v�/n+y�������.�s1R���D"���5z��[���Z�1������zf�����m�j��&������Wo#'���_B���oZgb�&��w��^9�����TO������=|c�c���c��'�cc��c���������U_�$�N�:t�qm���UUTIUUd�UUY
��{�����>�Q��g�����K��o�����c�u~�����_U�������y�����D�3�'�����������f*�������rX���	�����"�5��Y��������fme�W����% ��DG����v���>=|c�c���c��'�cc��c�����f�I��ma%UU����UUD�UU"���UUQ*���� �$��|����k[�;���u�r:�����3��:+o��^�����Y����nb�w�������FW�Q����G���,1�Y{���y��
5�Ocn�GV�����3
+��T-4�.���5}����	�^;x�������V1�clc�1�c&L�1�i�c������7��mH���U_6�M��n��6�m��*��M��m���UU�$�}�����3��+g$
�Z��P����8�ko �c��
d�k*����m�������K��b���AI0�WVbz�*b-��h����u�v��}5�����f3!�v����]�u�����Wlt�}c��1X�1����1��2x�1�1�z�;|I%UW�hm��T��������mB����m���<M�m�m��U[��6�m���I�������G����~��~5eQ&\�����owkp�RU�S/��c8+&�Loo�b�.���'�����S�}��?TMg�f_^��.��Sq=U}�~Mu�<k�/����D���o�}z���+�1�1��1�&O�4�1�X�o�UT���J�UQ*��EUW��$�m����I��mb%UUI%UWI$>�_}�/�F�;O��Y&�bj��E����+���^l�o6�hd[�l6�3����
�"6)$���wC�O0��
��W{{[����C�!h�}�0�s(v,��d�mw���������DG��|�~}�������c�6�8c�2d�����1��� �m��UV"���UUd�UUT�s\*�IUUa*���UU���n�U*��4�~V��k�*�9�|\\&�m�r��]4Jw�;V�s[�&��Mm���{2��4�'>:�.�����k�,;Af+D�2�i���;������"$���u	AmY�i}��s����J_)���N�n���fj���4�]#��n��������x����t�j��9n�Y��#D��]H�t�t JdX���Jk��������2+\����}X�2���B�-�v�q�.��=�2��=�9��f�ub�+D�8��X��Kb���l09�
�X�^��uA����D%��\Q(���*�W-�y��k�����(}%�Tm$��M�NMd�<G|�N��,D�Q�f8�%�!���i��'���"��v�����~��oT?;7�g��m�+Y+���"tL7:���Y}�GC�wb�"�M��� �������C	�M��:�\Q���&R�2���<�1�Q�S>.^�t�R�>Z�tx�����������������_�O�%��5+����%���r���X@�2���-���N�������R��i�kB�
����l���DM���e�.���@��`�%��{Y���������qk��y���6�#�lK2��	;I �@��F�yD�k@��u��t	���w�����d��e]�E�}p�XH����z�e�Vw��r���K�!o�/qQ�r��u�z�RGZ���d?g<y�&��W#9���j|��d������������������*�t�6��f[�6
��c��X;�h,i{B�q��p�c��R1;��b���R�W���0����(�u�];a���QYu|x3!S��]�f��$u*��h�:���Wy��3w(�kJ��/4���y$��}}��b���`]Q�FP���^,��
��-�"�����Vj7��6���H9�����V�9J�\���c�7K�v�J1���W(!�5:�}y� �JOD'H<e����^���P#�����l��������v���������U��eC�h/�L]Lx^���%!�x��-�����Ei�W��T����"�VG���?;b�����n]6">������b#��I�A���I�'	�N$��$�I� � ��9����fu�������.kS	�����5�D�X�m���S����!;���j�(eiz��;�s[�Z�A�}+�-�����~�U�#*gm�[\i��P+�.V*��j���A�����'���O,�����_j�Z����]�pRxv����a����Vvu++���dn��a�Jc���LQ��V]_r5y���ER����7$Q���.e��zy�Y+��@�q���4���df��bh��J�'{�������fh��������M�	���F���,�������������,��u��*�t��J�������4.Z#������;*/�������	AXHV�{��R�{�/���"]Q�5&��{vod���5�y�����c�����J�F��	\���7�xR��-���U�+����a������{�@��k��Q����e��|zR�*6��D��FP�
=e�Mi��/�%-ml����T������k^X�����������(�6k�!����8��T��u��\������l*�&��	D��*������:������5�Y�~�
�7�}�V��������<���b�����piNV,�0��=t��r���,���`�[�cV�2��9�|@���9�t��/������=������Z��_c�lp�(�o�n��uR�E&����#���i>�{�@.��u����6���EZnY���I��0
;��hhG��t���G���4{�^������6}��K^'�5����=�W�r�`.�Hfg]��
���/pj��z�����s�P��PxX|�$<�]�u������Z�i��z�V.���[�=�:T���a�;oA��6n��NT���;6�d��hM�4o"��R(�]Jki&7\^�1l7���by��V�$�l��:h�$���&�<5V��t��o\�;}q�A�m�]��Yc���w�}'Q����_
�����3���|��W:qc�����R�]o3���ZiLw�:�
�&��z����V��X��k=��*8������o�:G"�����Q��u�Z��+�����UW�|����_����\�]�M(Q�7f
�������c0S���f�b�
\P�!X����C�
���������]^�F���rv�:u�������������n6b>��}�>�����~_��p�J�^"�%{�p	%�g���������r���ki���i�T�]��~_/�����LcT�1�La�Tk��LcTn��LcT�]�Lc��>y������7��7X��\��5���\��:���TT[���f�����p��8*�����pU;��*���w,�pp����
������
�8+n�B���,������[u�s�}����<����]�B�kt,�����4,���,�,��B�+t7wl���������[u�YtuPU]Ttu]�y�x�w��k��@F��T8uQ��U�mS�U1�eQ�v��8��1��c��1��c��1��c��1���a�Tk��F����:t����^���1�m�p�1�d���1�1�c�1��%UWS���I:t�T����UUX����UUR*���UVH����$�����q����Z�^��<�j�����"�P��WiL����d�@�WkI#&;1���*�<p������x����0>��)Y�
����9��p�Qn$�IfZ1�|����������?X���+�1�1��1�&O�4�1�X�o�UUR*���m��T�UUbIUU�rF�m��J���UUI*��$�d��z��z��$����������vm\h_����c�.	����M��:(R���r=W�Y�4�Yhng�����M{rv9�{6�L��.��������[�]�z�^n���O��;m������b��cc1�c2d��cLc��v�UUYUV%UUEUU�IUU����V�Bm��T�UU�UU�H}$��~��d#�~�)��i��j
a�qJ1u�X�5\l&Z���1�*�{�&�/:�k�'>�����3����������������2C������$\���P���z��ww\��s��������c���_�c�6�8c�2d�����1���$UUk����-��"���*��"���*�����&�6�m�=�	��N��}�D�y�_������|�����������������v�eo]��{v��u7���!�]�u���oR��>������w�w��������]G{�������U]b���c����%{H�s
t�������#��J�������b��cc1�c2d��cLc��v�$����UU`���D���J���I6�m�P��U�UUY$����D>�"|���>N�����Xd�<��������mIZ�{��k�����Tlw�{~���R�l�8�\"I��+�Y'	��������)�������]�{H�ov�Ej�u1�vN���:b��35�}q}�����o�?X���V1�clc�1�c&L�1�i�c���$�*��
��&�F�m�IUU$�UVUU����UU$�U_b!�I%w��9��=s���������)�����%���=�,h�|
`��l������{�������f��\4�{�
����X��W)��7I���/�����t/&y^�]'�p�����}������}z���V1�clc�1�c&L�1�i�c���$�����m��n"m��k���r�n�!��m���m���U]M���mB��S��}�D�~fq��|�'|�:����7������Rp��Z�y��L=�kj��{{s
������nN�^���v��vE�����{Sf�'=[�~��#����+'b��W�K��5q�����������w���||c�c���c��'�cc��c��ZUX����UU�����UTJ��	UUD����UR}I���DD}��]������^�<�������O�GujK���=�*l�+�7E�%n��i�������w�v���i][��J�V�R�/a-^	hM�����J���_��js*8GuG��NwFG�������n�������b��cc1�c2d��cLc��v�UURJ���UU��J�Ud�UUT�UUT���&�6�m�EUW��I]����\��|�~y���MkQ�����f����".u�������de�M�����H���	�&Rj���h���������)O5���x7�����{�|��o�n���?���}�k��||c�c���c��'�cc��c��J��J���8�UUUVI*��EUU�*��%UU�*��k���^P}����Bg���fk�v9�V���V����S��{z
��@\������{���,RD�f��CEm^�L�5g�5�'e��.p��������Mu�g���B��\i�������0�z�]�����gu�����o5�������mB�X��Y�o/'
�jm�<�\��/D�CqMw���R�Yd����,R��
s�P�-����L�P��R�qy��v�oE6�$�c��2�-��llR�����z���`����V�S��gj����4���U�veYm�j�p�Ai�T������8.���N�P�Yr)�W����5��
Cv�;��������fw;"4^wM��c=F��-3fl�������v-��)������V)-��+:�I��B�74m�������^�����p���gq�wti���Tn��mk��
+�7Mh�r��v�f��������T$���0������rL����#��f��"]�r%�y%&s,���T�/��4����4�3g%q�n�cu�,�p
KdA�a���f����,�2
}��p��0%cu.�VEK6n<��dsOR�35������>�E���di�N�%W#i��b26��Ucq]��yJPB�J��
������!����8��N��e�v5=�)b%h.S��a���-����ay�{B%��/�!�v��2VO�r�\�y,���!���������_F~�|M:L�����{�~��Y�q�Z�.�)2�
=���H^����R�����������Xa��U���.�oj��C&��
!�rkSwa#�h�"���h���j�/.HN��X�7�J1��e_-.��M�<��j���r!)p� ]}9��rp�]t�8�Y���k,����#)���6y��"d+��E�5� �b}wB����X����������\sR����@n��O���j���w�x�9G!�z����_p,����]��T�oT���u��pu.��bu�h��_GAf�f����1]
��t�����Ha4Z�Q)W�.6e����.��� �H<���� �I#�J�Z����j����KU�U_}�`�oo�V�;WW�x+X�D�F$�����e�%c!f��v�X2�����Z6�<%nf��R�|��3b�3`�7J}|9S��������`c�7����6]9���#?d�7��g���vt�t�9�&�'-$4�4]��H�N�j�������G�K�nn��a�{�����-l	��a���|��o���rv�hVp���&�:a�V������t��e�J��>�D���M�A"�D������x�#!�h���X�����:P��a9���;�i�8G%�fZON����&�!��\4��U���Q�w�#�?k��1���CkI����=���TC-a7���K���h���il��JL������C�y���<�L�����z��t���.L��v�������,������Zhz�;���}1���s��c�.b�����E~���� �t&�I~�����9s#��|��p����@d���4(���#zS���p:xm[Jd�������$�����,���]2��eMx���ov�*�!�"�,`��t�Z{^�mm��8/K�s�}C�Y��)`������O}N����	���
��w��S��*����l�Jm���2� �o2.�;����}�#�����T���p���)[�G����^~�d��;�^z���!eT��w�Y����>�G.�e�Cz�x��^����Dxoev+��m���0\YX!smk8+pa�4yYp�tSGQ�^�w`���d�G�5x�WE�Zk;��S�TJ<K8f6����M�n��t+8�;
Y*F�d���F>�����T���9<GR���<�]s�Z��Hq�7G����3���Cz&��Q�-vm���@���m�Q�j�����>w�k��=!��Yzc���Y=�zm/�/Ztn��7Q�/rPxf��������{8�N����]���M�����Mt(+����[�t����#%t��:�7�on�{��/F��z�t+�����_��Z:�rf�7I�
~v��a)��f\��)n�{��s�{3w�W��i����?~�%��;s�h�o�k�H���(o�V�k��bu�g\��]q�}�{���� �A8�y�������}S$jH�5
;����2�]=�x��+=z������]����/���y���6� ��l]=�o�Pl���������'��N���������$FN�{�\">�__��|��>��������z3��^�����n��Yg���������r���ki���i�T�]��~_/�����LcT�1�La�Tk��LcTn��LcTk��Lc��>y������7��7X��\��5���\��:���TT[���f����p��
�8*�����pU;��*���w,�pp����
�����pU��[u��]�e]���
�����s�}���py���4*���[�e�G6���e�XYe�e��Y[���gMn����V�������������������3�7������mPQ�v�Tn��F��T�1�LcTk����:��c*��2��c*��2��c*��2��c*�Xn��:�33�x��u���o]:z����U��1���c�2d�cc��c�����UUY���UUd�UUT�UUTJ��	UUD��'�$� ����~���=s�����G/���������|����Fz/#���!������g�����q{�S#6s/����>�z��i�gLssk:��%������&'l�U{(_vF�dm�����5�$�o|x�}|z����z�1�1�cc&L��cLc��v��UUX�������UURJ��$UUY����UV$�����H��A���o��f�>l�z��'"�UyU,�O{��U]_Gz<��)���J��kec�l��($��O���@��1��^
!���I6�;��nV�:Sib�t�e#Su�����M��}z����z��clc�6�L�+���1���$����D�m��|I&�m����I��N�$������*������M��m�>�������Y���z��:��S�����uM���b<��z�v����^��_�^{D�{|���Wa��n'���q��[�5���l�N��{S�����i}H�s�~������g���::m��o������U��1���c�2d�cc��c��*��J��UUUU"���UU���UU�����$� ����~q�<k��x�s���'���W�6����IQ"p,��V���{R��6���M�TZBi.�f1Sm�$�s.;�F��������xA"�Bv<���-K-�@����UQ��j�v��1���������1�m��2V1�1�c�1��IUUEUUUR���*�����i6�m��������H���U��w���?]�a�%�v�wd����r�/Y��'OX��R�[�)Q]e��[�c^V��Jt]
�S�p��\
����k�M�	b;mVU�\;\�5�6��o����_�W�X�6�1�cld����i�c���"UURUUTUURUUY$������n&�m�����%UW�!�H?>y���%��u��s���7�%QTO��/����>����gOt�_imt��q�Xh����qDqb�a5lftN���U�l������{���W�9�7��tw�f��'����}������>��W�X�6�1�cld����i�c���UUUUUVUVUUUUUV%UU*���p���A�����|��]��,�Kc��jW���s���=�^�7"��f��}�
�L�����]$�}��
���+*&fj&��/0A��%�����e9������w�������NWO�?^�|z�^�c��1���&J�1�1�z�;u>I��mR���UUUTJ��EUUD���%UUEUW��}�~q�{�u<�����������a�����9Ek�p���yS�w���CH�U�����o�q3�+P���t^n�:�$u����cj�3�����u|v�S������������u��q�3�^u�m�a�J����^�=z�^��m�c����%c��=c�D���UU�UUbUUoh�m���UVI*��*��*�����A������������{�u^������\�����)��GrI��l���;l���,6t�����a�b�-Qvt�n^��XN|le��SV^��qa�T�Hb_dT�]q���~o�#�������>>=z�^��m�c����%c��=c�I%UUIUUb���UUJ��*Ur�$���IUUg�?����������6�.��"
�woih��Qquf�V���_;ls����������<S���
��9Xv�8T ��[ �7��f���'�����8I8b�]�9I����P�b*.�glh5*w�l#�eM9�`�[+��]���.5�76�[X�+b���{��m�T�����#CX.�Q|�&�c�h���n��S@�T�h=r���r��z��@5���e$�W��
�1����3FC.���[����VJ���Zf�n��3�~�#;�Pm�u��R=������E�B&����.�����.�����R��@�Z��F���
����)s<\.�����/.�&mxP�U�=�=��wP�:VuB���_cQc�
�L�3AK�E�)�����������4	q�w4]�\�i��2��GGf���v���[��9Dhf8	���KQ����	-tS��i�Y�����2���������jQd�#����P�.���d�RW$�Jf;��n�}m%��
�HLc�f��s���",��x�!��h��5��NV�+�}�m�Z�d����b}h���Q��f��+�����h'-	E�����������7w�:�s�(�'��oj��dn��#��9�QP���j�5�.������u+8���_D�;9"2��;�K��������gl����,t7�t���+��8�u��+���bT9_f�d�xo�k���.\�ty����o���&S��Jg������6�Y���Zsf����s
l������qu
��t;�h��yK�goK���B���[�	��e$t�M�#N�q�F���Z|�t($�k�Im���:��o�iy����"�(�sp��y�|���p�Q����5���/sLm".�b��}U����tt��2{��zw����m��� i���:��j�t�vc�4�Z�����ban�t��+�Q$�*2��f�Y@c���GN����ut�1p�#^(I.XgJ�vj��o[���^0���<��Omc�����d��s��^��$�rA�A��d��m��N������k-5j_W������>z�L
����������Km��5�]������ IX$K�[�m���m]��������������x,�W4�������b�3�zv��X3;�V����Kl;���n��(�������1�ic�������&��m�������,u�����*�n%k)����H�Def����H$���
�2��]G2�����se���m����B�I������R��>��~���y�g����
��5���^O��Z>��o�6d���	�Va�TX �����6���2H�q�[�p�Cy���.����e���0vm���!�����y8(��;6��
����:���b��:���)Do�i�Z+�:�����{�,��tt���c1_E�X��[�iV��U����}i^)�Q�'�M�&WP���K�i�U���^�P=b��Igf��.Z�H�h]dC�3~�Kv��e�y�f
���=����.|G[���\*�M���������w��t�o/�/���K����[�x���M������|"/�r�������W�'H��T����O���CN�M�=6��V��-Vf���n���n��Tv���=liP���Vy+�:����|3�����Ql�H�K������m^��n��^V4f��^�������Y�O�����t��f����4>�����@_3\j��if����}�\���u��u�yYf����>�}��l�7D[\�o:��h��v�G���^W�~�_���?V�_nJ�Z�v����F�&VO������r��0�p���u�!��by�
���W�uv�#�����h�������.�kwP��!�<:MR�GU��M�lY��]�e���v�\�m�"�Ka�������,U�5d���#���c�c����^��]yy������=�����[��V�J)���yS�������a�/?O�V���j��v^C$�hj���	r�PP�b�g+���B��������1vbM��v����g�
����l����]�i��k�Wv�����:�~���>�����DG�}Y�����2��M"��Au�*)��(���$�D���*����^��_�qF�oT<�������7�ti������7*�f�Tl`[�4��0n��I=
���m�Tam�z�.����>���}�����������z3��;��������}�[u��tV������[F��L5��7����L�T�1�LcT��F��T�1�F�T�1�F��T�1�|���<�_~��~��u��5���\��5�������@@�[���k;j�*�������
�
�8*��@wu�e��[�8pYen�m�hV��*�����
������
�wm�h}���>�V��<���wM
�����#�Wt���,,�����,�������sr��+\um�`Y]Ttu]TtuPy�y��(�h�;j�*�s��wTn��F��T�1�LcTk����:��c*��2��c*��2��c*��2��c*�Xn�g<��������<��m��z����^�z�^��m�c����%c��=c�H���J��	UUdJ����6�m�%UU$����UTUUgH���j|��]I����[�w��~�t�U�$l�--�ZB�7E��F�5
���x�����7��RGOu�%��p\�5�f�s�/C5�e��[G��E�n;�n��~�G�1��L�.v�&z������������}����^���cc�1�2d�X�4�1�X�o�*��J�����"�������UVI*��*��*���>�;��N��I��M����.��k�T.{�z�n��N ��-�����1)]��[,�-�[����0�f"{�&�"���'6����EZ��i�5��W�F��q��]u��{�z�NU~1���_�W�X�6�1�cld����i�c���UUq*J�UbUUT�UU%UU����UUR�����m�����A�>�����3z���V�e����L����*���T��2ctkf���I� �T�� 5���cPM��H�#iU�x��,4�����e�����������O��}�~������z����z�1�1�cc&L��cLc��v��M��k��{6�m�r���.\�r���.\�r���\�9kr�$���9�_8������q��z[���\��XE�aZk�";�4I����#WbU�,��BIY�p�%���N���[WZ�����uqX'z�<u�^*�|x�}z�����z�1�1�cc&L��cLc����r�r�����YVUY\�s9r���d���r�r�����$>�O��������y[��D�C��o 4�=ne�O.�=-f���%v*�MwEU�
�(�K2�F���8d��{?�B�)t���gp+\�)��Lvr�c�����ov��������������1�m��2V1�1�c�2v������|||c�������������.g.\����$�O�A��}}��u���GO�$�&dm����$'���0��YY�3%�*�K��YJ���asw�F���{���z��C�{����w���k\o����(�\@�DgO+���1]���^���o�������}���������U��1���c�2d�cc��d���3�.\�\�s9r����U���3�.\�Y=q&�nm��3��������U}���������cg�43���ok�]{V����������T�+��=���;��l��������M�W�0�"8����mb��i���������wUs���\uu��..���|�~}���}}z����z��clc�6�L�+���1�;r�����3�UY\�s9r�����3�.\�\�s9r�����H��A��o��Z���v��qu��y�o�]��U�y���G���M��\c[����mtw�\��v��Gw��g�����`��b�r{fv"����^��On�q�]��n�z�����]������NgF�������������U��1���c�2d�cc��d���3�>�Y\�s9r�����3�.\�V��������+rD>������:�����;�u8�]�g���E�O"c:i�E�[�����_T+e��n;�r��WW�pV�[W�"���KW3l[���eX���M�����3AL��4���"~���Md79W�?^>=z�^�c��1���&J�1�1�z�N��s9r�����3�.\�d�Uer�����3�*��\����>?�����G�$p�w��jq!u�}�)����o��������������EN�q'�$���o$�<����>4���I?�nG�u�I����)%����~=������;r��RI������F���q����������6��1���!?��[�I ����$���W������H!,��8�����p�������G����G�T��+o�#���������BI�����#����GC��#� �$��DDN8$H=���BX���?��/:C�~��I$����:��$�Br���?�K������4���O�����2DH���	"N8�$��#\	c���i�����)$�B}G��\I'�!9~���	$�V1$��zG���p����>�����N`��-��s����RL�$���2�f�N%j8��$A	�?����$����?�W�������|������O���~�4��$�n�I%~5�_��/�$�#�� ��O��4����'��N������g���#���$�BWq���������]���������~�~���_��|����V��3N[NQ??�������GT�O��F��$�����Bs�qX�����<?����A	���._����O]D��&�x�'�,Go�D��?#�s��N�*O��O�p�N���$�����_���$�Bi����������>�i�?�;�+��I������I$��8�?���m��9�4��`���v?�I�w�/���-o�u��_��NgS;��u?�s?�\s��ns�}8��I$�������o:���n����U��Um�W ���J��4�Q�;�����$���$�����n'�'q'i����~8���}G.{����'�D��s�m�����$���g��G��/���8�9���;��b8I$��6������'����x���A	�3���&��'���������8�,~�	5p��>#��hr�/���)�+���<��1AY&SY @�,i����0��R���e�@���� a��|D�}�R������2��f���[i���T���4�@2iV6��T2��L�kjj�6��ie�5��F�@�Q*�5Z�!J��R�ECBTl���l��*l%UKm���j�2��m
k2U��>�@PQM{����l�6m��#,b������2�	����bJ�d�(j�SkmjTm0m�,��+Sf�j�Q�cYh
����Q����
��`���jU*�V�T�VV�VE�l�R�$�h�e0�5i9��UlV�e6��f���CCA�Fk��@TPa�v0�mX�b���a���%v��X�����zaA�
h
[=��u`7���`],������BV� 4��A�iD�x�����{r�#�-Xs��79����ml�ikmX����`P���������������wg3;�e�wg�e5"Q���sw`h���d
m�����l�;�;���789���pF�2�V[T���������4h
P�5��|n=��pv0M`��f�X�gf���j�����t�N����S���s�=� ��c!��L�:I%.3[f�N@
.�Th�c�w60F�c ���0BA��*MV����4��������5T���xC�� ���C{��0uS�Tmll��p(z6S�|�Bz��ala�8[�������������J~���FLFL�a���R���	�F0&���%D�SOS@hT�D�U*h��� dz�"��)�#&��z����@14h���z�i���$��!M��51=L�F
CG���������������O����&���,�?�9���*�������}7�������}^�7���Z����c����j���]�����o���������{������V��}~������U��[Z�}���qa�?��G	�5�/���?N��r�_�i�$����HO�'���F��z�g����O�?�����_���W��}>o�~6���#�����XM����B	@&HH& ����A$���$&fwp$�����BD&A!$�$ �1����2e32	�&H�&BH��$�$A	1$I�!�q$�	2c��b9p����;0��$�0A����d���"@�	 		 ��!!� ��`0�&$��$@I	$HB�H$H�B@�BBH��0�%wtB�;�A!&B!!30
H��Qc�1�$�L���� (�F"��0"�L&2Hffd1L�(�d���		$��0��fBBH�33	 	2b�d��) ���0��d"	IffBII&fSwn�f$�&d $$�@L�	 �2A�#���c1�b1��mD�	D�"dHBDIc2P�&`�$3��DE �L�I��0�I�L�DD�����$��H12��J&S@L,�HB�	���������IHD����HHBf"�(���c �0E`�"L���2FCL�F��Q&�D���#1�)1%(��(
��$a!0�&� 	2I&��  ��RRRRF$�HS)
CL�S)�dI�0�	$ �&dd��H�2d�D�Ja�1$��I���	2A�Dj�&B��		 �@��X�E%1d���3a4�&de"a0�c�L��	��1F#	�	"L`�1�0�E%DFI4�1 ����#&H2H@	A%&M&JJL���4��$L�$����d��ADI�L�"`�&�9t����HN��E�%�tb�Ic��c$��F##J
%$Hd�Q&"JC$D0bL�"H �I&B$����I DDAD"2@I�D`��Db
JLD�����h1A��A�1�
H�$��!I�F$����2Rc�p������H�L@BL��F����IDDA�D� ��B )4���DQ�r�%L���$AD*�L	7������w�"��J`a �%�4��LA��hMe$S1!����A$I	�2B`�L�,�2�HDDd�LI`"%%&�%&��d�1���)�	@IC!�l���
 �&)2$ID�R���H�)HL�II@A��&J@�����2d����`�Af3(�$3!0�	�I�HBc&
B(JA��"fB� �$����		����1F)��$�B��@� $�`�Lb�!$ �"O��A��R������fd�CP���J����"2$L��3$�I��$2$i4�&
LE]��332f��4��4h����$$LH��#JP�
@����2�$�I�D�H03!$!�"n��1�%!$F0b�&H$&fR��DEcLFD��b1I����v�$�lY1)����O����������IB�	 �1��L�I����@���$L���"�������$2�2Y��F#HaM �2S I$��QI�F(�T`��� �22$�C$��	�&I��$Id$��Rb!(I�2A��d��4������Ad�L��HII&�d��f��R��L�!��I�S"C0�"L���A[ @$���1�/��QB�$`�%!�2L�B
B�"$�&Q���d&fD�H�3LB�Nnd��$�0Ad��%�b�1��DQjI�$$���2f�	9q ��&I�I�i0�d22Q��b��B�$L B@�H&�cF1b��2	�3"H�FL"&@HD�e20��2$�LFf$&d$�wI�� ��"IH�E�DDF1��$���I�����i2R&a"%$�v��#P��)"I2A �!(�$)��&S���$0A$	�0c�����S2A�"���&$0LI�1�J2d��!30&HJH A�$(")D	�	2dI2Qd��$�L�!�$�$� � H$�2d���I�0RRl��F1Ha0$I� 	&"d�L�		$B�A�"&d�bfH "1��H2��"J$�D�A2 �HI�$���$H�@A��"�PDB��&@��da$B$43L�a���Pd��Db�EL$2J,QcF0�&�@�B��	 L�@!"��A2%I��L��� ���1��$�D�$��$�DD��E�1h����10�D!��)C&��3�# �I��2&"R4�@B$�0��H2��&b$����2B$	2� ��")�!�BS$	�H�	� �#&""J0�$�L����S D�2d�$&)#$3 L�& ��cDF�C1�2I �DH2d����$�&H A!�
C����I��D�AJD�3� I#"�#1
 ID�FLf3D� @�f��S)����I
��"�4b�4Q��Q[@PP		��$$��32d	R�e6R1&"L^u�2D�%	%$R$@a2#FD��$�%$�]�I"A$�wd"��"�(�h���!6��D�@�&L�,�" )"(2DE0H$�&��0Q!�! ����a�$�I%�	�L�&LQ1Z1�"�� ��H�F(��K&4%I�$�%&L�4��&��Q�h�Q��i,�JF ���
�����^\�(�
��,b�c�Bf#A�F#��H�$fI		��L!L�AA�SfL��#L&fD`�AI�D��d�#F�D�%%&��64�I$ED�F�&"c3!$IA�DPD�0F�Q�0bHd)2$dH#I�2h!���d�HIL���HP�"0�&dc)� ��Eh4�6L���h�E$d�����XfA)� 2�""b��H"JM(F�A���He"1!�1�$����&B�(��$�Dd1���)��R@�)M ����"I��H�D�30	�AI)$� ���B`�a#	�`�h�DJF4lX)�1�M%Q�A"I$�@@��2H��	`4�,%	�J#%D`�
!�cF4bH��(�c`��5&e!��Lb����c%��4��j,j1E�����KA�14j"��E����b�#c%h���(��4Q��D!�IPX��Eb�4���F"��@PD�H��i
����$!3	,��#!h4�X*1�X(�
66����Dh�X���(�IH���� ��$���2���60F�4Q���E��
%b�-��bF���d6M���L�iD�f(�LLD���	���� ��Jd�LH�"!$�DP
PSIAI�I!"B���	dA��b,��X�"BLP� @$!33i�-�F�Q����,�H���!*"PH�A�����TQ�DTd����0�@I 	�E����������#TIj-F�j�������h��j�A�&mm�bm������BL��V�Hd)-��H� �Z�D�36�@a)��L�����	2���}W H��Hd�"��A��VF@����&fe�&f&H$�0I�����F������\?���
���o�n��w�����#��G�������������Y+�?���7���}7�~~�m��o����Qm�h�5�&�2Z�Z��5��5\-����F���n�Q���Z���-A�����k����j5%�1�-5�F�X���66,m�-���1lW55IQ�[F�b��F�[Dk���4V����wZ�j,h��PZ�5�F������cQ�6���Q�1���lV�EQ��j�����������QcF��E�b5��Q�5����r����kF��F���b��m�F�Qb��F�6�(�^*9jM����%X������*�F�E�h�b������c��QQcDU��Q��F����UF��F���b*-�j�6����2kE���lj6�Q��X�Z-�F��n�����F������F���m���h��X1��F�F���nm����b��X��Ah�m5EcQ��E�+���r�-sW5�cQ��h�5lb��j5%����U�F�Q����EF�+E�j-���������wj�X�j
Q�Eb�ch�j6,TV�r����j���j5��Q�"�X�lj,mV4cTZ5*��������5����F�Rj��X��[Ij5j+s\��-����5�k&��U���Q��cF�l��WF�b�����X��^5r��5�cQ�����j5Tm�F�d��F�W�\��n[��Z��`�m�F6��Q���lk&�lQh�j5����F�j����-�F�Q�-�����j5�msW*-s[��F�j��Q�F�cQ�"��j5�A��X���5�����X�%Q��\�W-sclj5sW5�F�PU�V-��F�W5s��j�6��j��5�5��h����j5�Dm�F�X�j5�����m�sW+�F�Q��Tj5�F�W5sQ���\�j5�F�Q��j5�F�Q��lE���
Encm����F�j��Q��j5�F�Q��j��j5����F��Q��5�F�+�-���Q��j5x��F�W5sQ���\�j5�F�ch�j5�F�Q���W4k����F�j��Q��j5�F�Q��j5�Qh�5�F�Q��Q��cb�mF�-\��F�W5sQ���\�j5�F�Q��j5�F�Q���\�j5sW5�\��F�Q��j5�F�Q��j5�F�Q��j5�\��F�\���Q�����j5�E��Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j5�F�Q��j64b�Q�KcQ�����j5����F�j��Q��j5�F�Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j5�F�Q��j��j5����F�j��Q��j5�F�Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j5�F�Q��j[�g�>>q���c�7�����9��?�j����Y�@B�{������u�_��g�o�}�[����������?���yGFce���p�w�N�����
�W�z_�����W����S���[�3��*�Ak���1�����1\|��0
I\�L]�������zg]!r��n�������\�-:U����F�m~'��L'�z�K_���n���������o�cB���;��aLw�����}7tF)�o�9��4����^��=:�u��
�
T���WUuA�������p��ZT��"�4�bv��������}�nj(���������k�~��F����&�l����L�����i�z/�c����&B]�G��Vlk7�� ���[�B�s�d6�bFA�T����8`���]�pwIv����@b���t"��h�^-�td�x�J�v��r���"��29t�Z���8�N%�C2N��.]�iv`6���h�8�L�����.Y�.�]bqB
.J��������n�bt\������8��m/Xy
�k��u������S��1n�����6�+�)�uBA�G����zZt����=���+������Nfrl��7������n�'�7��C���L��nu=���}O����=6�J����)T��\�G�`h7���������9����3(��D�-Z�����{���T@p�:?iM��{	���^��$
���+X�wh�@f�}���tr��;�����^�/�^.��j��E���������yg���&K|���A�9���i�t�,��w��+l,rU�3�@@(�u`f&�������ho}�����='�"Et#�0����&�43����Ty��Q��NjT��nr+rsY]�	
�gb�r�6pv�Lz�
��v/����2�=�^v�<�g��.:��W�p��
X������OOs�=3aWs;�8���e��{0����_Z��J'u�#::-	Nw|�CW��*���k�E��$�@s�l-�e]�miF�X��x���e���T]��`��}�z;+�sB�f�����U,���G��������^�}t��Fy��6S^��9��8�����Q�}I�S���r�]����O�x��o#�������f��������[#�	�-��7��(�]vHu�Cl����\k���y�f������4%�x��Q����u�D�5kw�p�:����e�mN����sv�Y4o[�[����tGS�j^��RkK����7}�w����e'w4����$(I�sI��O��N���#��ugUr�����(�gtOF�w4��;��stqL@��K:u��cr����^������t���e��lU�v������m
=�����z�1%�=�gFe�i����o7��T��|N���;�JL��H�(����O��ne4Z��8�#F���U
�:5V�:\8�]j�]gy���-)�7�5��m�$��|$y;��z�Z�n,���S��������O���"����_{`Y4�����>��].	�����jXU�F�D9�	js�j#��Z�?{��Ac^�$f.qG�F�oz�1���5q9����D���[���{�]a]O{2j=���W{�����	������Fy��������0���K`v=�����u�����CS0�q��N��Zx��1�ax���R*��<���_u�N�!�������
���x�����@��j��K�V6E���/y�jLn�)X8�|�����kY�{q���3'.��v�n8d��.�����9�Kz��t�y�����7��n��������sLZ�����������F)��Sr�>��=
GZ��q�#q7�}����z+���"����oTD��s�.��c�F��Vx�Ry��������Z��s�L���/���$�me�i+�}6�@5���v���a�5�|������6�+�6�������Kk���e!��w�����.���[(E�������;�����v��s�)��3���L9������7�;����1����'�i���b;f����)���d��#s�%���J�)����;�0}�b�A��������0��{|x���
}}1�1���h�T���CA�cQG)�8��������5L�J�����%��n��O`��I� fR�}�ov5��������H�X;�xt��81�q����g��whr���s6��m���s�!�H�,�l�|!�;���BB�O�����)�n_1��eg��m���Z��K�W�����G����Us��u%��L�e������Z��#������w�=�Fi��q�Q����i�E>�{m�]5_�����(�
4����w�����u�7\
��y�M�'��&@`�$�]����F��u����_|�s`;�s�qT��2����s��*��*�b�Y��g�/����3����l�
��������N����Y��d���D;t-���e��b���)���^-��C�!�x�lf�E�g���I�$���,Gx, ��0hm�S�h^�r�����V��d��BC��)���]��y�t�K}�
����/�/P�o,v`MZ���K��E�z�O%�G�,��h�+l!r*���	�6N�Dv��� ��T4�]����J���Vv<�K<PU�>�����oZ��Y'w=����S�mk�O��g�����H ��;z�u/��1��S��}s�h�p^j�v����=�gt��Uw��]��m��#��Z
�j=0�eoV\���p_/��D%z�u�����,���{Np��r�]���gew'r�;��,u+���]������1'�5��nN�J���o����I -��Tr����9uo������*��%g�����Y�f9�3J#4��l{�Rif3f��-���)�:���K��V�zlm���hw�Vz��:����=���Zz��ow����:S(��NT�\Z�D�'+n���L��v���Xc'*-�\���D����@R�������;7�3�����!��L�}Z�vww>G|���/4�W�}�i|�!��U.����k���=]����'�+
��������ym��un���h��i������=\Vs�W+�_��N����s����=ms��&&�����������"�������
��R���.���E���=)�Wy1J7��EZ]�Kkb����@w8�`��/v3�0.�tZ�����������|�z����P��_5������]��F}�d�W
KD�&[���v�E;����O��2'��D���u/9d������
�U��;%��*v����CU����x^��r�++��gaR�u��+�H�s�p��;iu$��c����N�S}�:���#���w�u����wLg����a�f?��0�����/���A<��MX�u����w�������G0�gM����"�&��P�O�S�����"5��IL�����c[��t���h6k�r�����������l	��{�D�;%?.V>�O�������KAV����I*���B;z�ST�n��e�<Azo�B�l�m]`��4V*�����(��S8Y:��i���U
�*������K���\�uw4/m��J�b��: �F�3:��Gsa����M�zub�B1����t���E���M6����`��|V3��Q�y�������]�����X���������=&�p,i���������^T�Br9<�L��,���RL��M�7�N�j��|����z?l���)=u�5��gs�|�o�U��G���2F���<��C�,���OK�w5a��&<���_/��
���/=cA8o����h�6>��|�#`��J�"U�}�RB�?_��vE��x�Z_����<������'+���:�D��b���H�o[����R^�7�\'[Sr���=Xt_}�����=��n��n������^����w��5&��r2��t���f����n�@]D���Hp�'��7_�r���9"Y����W���
���;����{��
�63�����6�W��-K��lE�}��mgkC�Q�����F�:�����`�D��� �:U��L�r
�;F���'0<����g��t�����p|u�N���xk��6�L���j�+��E�/	w���zla���t��7�2�g���%7��q�8��
d�y:J�]�GK�%��&���,}�c��.1k���i5�;��w�F�Fx=[�����0=~"��R�%��/z)�^����}�^z���5g����'�^}��������}���rj"�{�}���Hgj�����D����Ta�<l��#+C���%,�q�\�R��X�Vr+�=�ci���^�5���N�����_u���u���;����j���{���Z�.�/��R����t��|4;T��O���2�������'*������Pvl\��.�7o���vT��G��N�5��F�������k�;�4?`v���0�2V�Pi�����E�u�U�m����V��z�&���q<}O��ufk�
���C�S�=�YC���ZM�0$���p����+��g-�oIQ�����
������Wuv��`�-r<-<���A�}��Xm��^N
�7*���b|���'c�4���]��V����n��^rK��T�����S�r�[$Jv����z9U�OM���Js��w^���)�����A�Z�)����8�kjT�x����=����|*�����(����/Fp�;����aY�Z�\F�ng!{z�rs�ZftJa���I�t\�����E>������B��Z��;H���+E�z�����^$�wG��x�=-�n�o��y��<�Z��z`�U�O+��Z��Tp�����g��(��S�
d>0J�]98�x��!O�tF
�K�2��tWLh%[Qe9Es��]�����W7�������j����F��Ws5��%���u��,+��d�MejyNS����wo�nW4p��^����X��=������s���s��'�9*�J���rk�/+��
�7�,��O�N�e����:��H��V�=wJ�KT�cap{V&���W`�K�Wb|2o-��������	�(=\~K���h�"�B�Y�;7g<���.��r�������������>~��T��
yE�a����	�;�o�so3�ec��g~k7��7+{�KQ,��8�����3�^�L����9t�����]���bJ��V6�����7d.���KU���~c�<�C��"A����g-�����R��E����H�O!�|e��t�Mhg�g��L��vCp[��wBN�.����K;,��@��C��=Kl5�+=�U�{cN�	�(��v*�<U� �j�����P�I]L�>f���u��i�C1><:�|()]Z9�+�����`WI4�[w�&V;$������{A���C�������rX���`�����X��u7�+J��!s���\�����>�J�� �N�>w���)���u�o<d���*W�0�z*�Kb��^�8�Z����Nn�|�"�po��+�����H���:Y<�vu��w���X�r�s%��{�X��e����w�������}�5u��"~7���8^(�-��:����2����S�1����0!w���n���Y��b�b]Wll]w������t���	��
��w\��G��;�����4u�e�m.����c�� Hwa���5;��w��Z��Y�0�9��X���0oFQe�d���T������e������T]�sD���7)��
����0�5��t���
��3�nN=:�
w�<�7���w�p�sB	*C�t�Mw�m��w�%�)�"�p��4�x�7F������/���5��Y��]uj���hE/9"$��V0�V���n�h�\M`��r����y��uY���
Ot+�F���c��3���/�������3"h��*��/6�
j��
���������FyG�+�=��<�G�p�M�+cvoRE�0��o]>T�w�D�B����K����A�{)xk���C{U'.L;�OR�������������x�G�C���������R�<�^��u�fFp^5�����e��<A����r��/9�9|a��F��;:��7;��<�pS�e�XXC�V�|����Ovx����85}��3�	��Y{����,oq��m�-�����Kj��S%�����r
��fc�}��j���v�ycw��{a��{:w���=�w��u+���7�R����!����.�����h���{�;&fk��%�F��VP@�6�YF�#P�/����L����"����Q�*og
e��6���^W.�62��V�	��V?��c���]�������6����4+L/��E
�;N��.�p�X6���������@��,�o���H�q�U�S��]�Q�����Q;�p�����n������*���'��#)����	����n�^b��e��Y��3���74��%�4�Y����d|��=��i��0fn��Z����5j5z����X�]C>#��>����<V�Mw�'u�EK���}oNi��A>�)�B��J��L�,pzf�M��2�yf ����20c�Z!���M*}�����+�z���On�r#�W�����c=���m����9TOfc;��W��U
���64��66��Y:��������8�����}wB�$��-��t���@���[�H�������!m+�c�w(�9�KdD�&�Z
���m���6C]���H�������V��YB+�l�2Y�-��&�]m��|�M]|e+a�$I��r��Z\|7����G���w=�Z�
�E���l��}F����v����2��~��w
m�x�����X�^�^32<�"Dz�����Wi_G�Q���Z�.H��V��9��e�D����z=��IcB�T���:�"(�����d1x��9�%V�T�lP��4�_�9��9r�h���k�LL\G�v�4��M��#���J���Q���7��i����s��J��G�#
X4��'�y��rcn=?u�cP_J�6�:b5 ��99�������6@��Y�H�4����~�F�U��Y�%(���Ys��?J��l�Nm��KK]�������Xb���������h��Z���S��7_��t�o/ar�=�hu��	���pI�ns����6k����l��AQJt��y��;�9"���r}h[��^�3��}��[e�*9�Y��o`:����s��
�)^we4����B7&����s`�'���|N�6It�^X)M]�	�p7i����u�'d�P%aL��u�z�4���Q��y3���S��(�Y�W�vP0����v�j�Sz�����|n%qw2v^���KK�Sv���M�u��l���j���x����5H�I��t������M������wNs��}j�5���?����]��9�&�84�����[{���B�^�{mN=ta��`Y��F���*nm��:�j\��fWf�}�Cu������z�]�K�q4�����{,q�!�r�/R��z�mD�U	=^���u��8K��=�y�+��d�.��Ox�J�'�|Fl��'�[�M�\f�U�	�����w�j��Q�����(����S��*�����8�-���j�VdO��b������
�nU�J����k������
�+����/J�!�Z��y��x��Cmp���w;G��W��~��k4��������a<��j�-C���Y��o8�.��o�:B�Z�������o��D��f���v������n��u��s�Y��v����qT�s����:p������]��4�^�'{JU��8����Z�*�-9��e�akmd��6�U�wq�DiI/���<#�9K�X�S|�D���e�;�<�yq�
���K*MN�E\�-$������j�M����)�j����A���\{x���-%w�������o�,�8����t)�����b�oi��.#���pTp����x�M�����Ud���n�_Fm_��jwA'y���������w��82^��u��F9�S�q�g��'�ez��^'^.l�n����)ezj�
:GU�_b{#�u\��qq�M-q��L�*���ew,��JT1���2��������e\�TC�_�y�Va<���s��^�.��}nb�Kyj����B�e��r��J���Z�C��M��p���o���R%�k�@f<�D4�Ok���f����9�q��7J������Dg�v����E��rb��J��Y������
���+���[�N��
�t;Wj�)�P[�1��u�v��c
�y���N;.������jy:}YX�G�(�j���;g�Gc�';�O�T��h�W<=�Y�������k�)?S�e�9��n�
#�����'�]@���{�.Q�V��b���L�3��N����U���5`�7D@�fS�R�rPy������0��FK3Z�#���Ww\i�{��;���aKc@�4����$��`W������__pA8W�"�W�e��.nA�Lu��x��<
�����;z�����JY������#����{s�U�x����"���#��9m�I/��)��\����Y=;:p�P/+4������g�����/�>�6����e��\z����vo�Yc;K��I[���7���u�����i���F��c���@][�4y���b��[Q@~S
�v�
��r=��2�4��[~��o���y�V��me5Q�h�����RWk:���Y]���Z�S�z�)�n���yf��{V%$o0.m�[��P����P����V
<l��9��1��.I2�SP��c�ng��$���>+����]����h�t|�.b��JeM��7�)�	�Z��Z�����}�Z�R���f��}���������L#�V{�9
2���t��V�Dd��g�{�Pcr���h��%���o]�Vh\!��5��f���kv�o�t�� W�:���E��zj!@��WY�X;3'rV��V(9����V��<�V<�}��w��{=Ks%���g���p�&z�]����J�*r��an�����|`|�:v��1��[�����_	uL��I��O(������n��aJ���2���;SB}0�����@k����u��
�4;s\+n��z�Ej��%GR��������=�z�H]�9�]>����b��{uM����qQ��Pc0a������m,SF��i���n���l����(��1�wmZ��&�65�����>$�<�����I���l,fy��������-Zhr����r���(��X	�7���O�g�$��c��<�O&����F<����]��9<�����R�����)���,�o��F`B����.��4S��r4$k������9��:��.�6,�{���<gVQ��������U+<�����b����x]��0@��K�����k2.����H8��v00�������\(���:o���>�hSKm�Z����f��E�������[.a�na���7
��sXc����p�c��9��F����7�Nk2�=�d�~&���Qm��94����wM�kQ���_�+�&0t���N���fo��N��Vc������R����@]s���4�Cs�,@�v�y�J�<����$������#���7x6����sT=>�����*>z������ T���8Y~Yt����e����<��
~�g
�;o��d8N)�Q�6�Z��)�-U�K+�vT�g��^����0�'uv��K��I��=��q#�;�nRkU��Wo<WZ�+�%�s+�v2E���������H�+���G6����/��:�3���w���r����i��'Q���i,K�����6�G"��K�������)��_{�%������������^����i�?L|k�3f����]�O3����U��&�X4s���5���"P��Z���wN�w]���wCm���t,v>"�����q������	��s6����o��5�%=�N���f���gM���u6���g>���T���a��|E
����g���y��,Ai��U2����s+��h�q��L��:N�r���}�v��
�H�v]�(����
������!7�a����-_L�b���2�.��Q��;=��������Z�"��f,��_*1K�v���h�K���,�57^����qs;���>�o��b�B�[]`��b��i9��M4/r��C�fE}��`T�;�����������������@�'��=c�'o������n_�-���c��m���o�_����[V���"�Kf����V6��1����lm�u�~KdF!��j�#�����H�k���E����kk���j����k_������ 
��B@B��.��f�'���S�A�Wm#,R	5j�@bH�I$�J�[|�5d
��]U_DDB1F���[�"(�Q���D`"
�uf����F$F���-|����]���_����cF5m�^�My�� -|����h�Q�!1	���0�OV�����"���0U�b�"#V�k|@b ��E���F ���k�F������K�W]$IU| @ <��)�� �[���;����-a m�"������
��"��"7m^�$D
���@����n���""hD���DDDB��V�z���o5�	2�H��F(�"(�Q��"�� ���YB@�SPm_F �����I$	DDlF!���(�b�1F#DA����F�b�1�c�1F��"" �@[+��h��(�(�cl�Q��M��_:1��k�@��#�������^�-�DcF�,h�������y��|�"�����Iy��m^�z���WQ�b������wwwt�n� @�\G\�����w�i��c1�
�B��|�V�j���	'���s��9�u��wvwN��9�q��#v���!DA�|�����)�c���H�&�k�%W�  � ���4E>wws�������������^[+o��r"1����D��cDc�k�1A@�|Ak��b�Z��WpDb�Q�c�g�Fw.��s������[�����	j�k��� " #����9����ws�����;�����������q HHz�������$����x$� ��#�w0�'U�F��AN!���"1��m��Gmt���b5�[\DD@���D�����_ �r�;�{����k��DA8����Q1�(����F1�S�F"= ��[�"/�����������|7w�Np���$�8NI$�I���{s������w;������������;��������]��j����=pI�.wu��ws��ws������������;���(����9s�����s�wwu�������������s������wk��m��m��[��-�m��m�8��@[|��n����r""(�s��w�d�;�;�����8yk�����w:x��wws�+�|���s�;�����u�mu��n��m��m��m�������u�����wq����<��\9���q����C�������9�u�6��/"��N��wt;�;��9��wwN��������������w �������w]�wv��k���DBI
�J���<�����b��^��QO�wp�9����w\�-��m��m��k����]e�\��'�z����������{�����@R!�H��{��=;�����������wG;����z�$ �9����w:����~v���W���s��;�������-v�y�DFD^�oAc��;���[v����]v�]��]��Y;���wwwww{��ws��/���o8Db1������wu�����.;�s��9����������9wu��9�s������;����xz���wwwm��m���m��m���u�]����������s������9q�Z�rI�����w�s��]���w;�n���9�������������1�m��o�l��;� ����ww9�����wu�����������&�8I$��>?|{�����{��9�C�9�X�q���wu�s�����wwwv�[��m��]��m��km���=�m�m{>���Db" �yoI��ko^��A{j{�u{�^��M��mz�m���y���,�����+Umo�U$���'�3��By?������t�n��@B�#��I\�8��/�QG�?���x�?����k��=�\?�������e�S�����%laE��Z��f��^`�������}f�,�jCo���Q�C�v��n�+�������E�GbV{��V�>���'�{�d~������n�P�>n���d�oiQ��c�0�^�-��]�_-�+c�d�R���b�YJ�K/w;�w�F��e�mCmr���rV�k���6�6:�a�:F���9��N���05����`���_w:]���%|([���e`qm�����9�o��m��6;ZA�Rb������:�2:b�T_��g�\�gS~��G�{�F���������fY1��/����=�����YH�,'�T�jf���"S�����O#�s�C8;$4�~�����6��g�u�.2�S���5�:��j2��0ofGB�c�f��l�[�{3�k��#st��<����I�ID{.e�_��=��o�G��,����^�]y�U�}���GX�����N������������	��������omIn�w�_=�����
����]X���B�<�3���;5�����)@C���]���������h�j��g9�������93h;�\�hYf�E�V���3���8��s���Q����SR}�D�l���p��N��w�>��N�{V=�~�����rc��Hv�wJ���/M����u3CJ��8"r�������p8��B��fBL
b�H�;v����m�-7�~��2�1�
H�������]b�x�7�1p�{k��U���Z +8�k�#��>Nd��h`V�|oD�s���V+J.JOpv��]g�f�o���w[r���^�%�W�������������%�l�4�:�
���BWxu�[�O�����bz�.���DF� G�Dy����:�u��ws�>:��i�V�����{�phBv�.������F�R�w-��o''$���n{���v"��(��\s���;y{��|�-r�r����sTWd[�x��Z���r��ft1�Z:}��U0
tF��Z�u�������B��Ad�����&� |�/�����{�G\�w&��z��i\��Z��a���������p���%����u���M����b�j�����Oj2-<���'�z~��=�{�/n`di{�95]�Iw�y����e���3ro�}�d��'&
~`����!{pP�C�;�H�Etf�
�n����3��]
b�r�s4��G����{��nv:����|���s������C��L�u�7&M���B�	|����:����=��r>����R�q��P�G�7��)O�}�{���l��2�#\G���x��<xsel~��y.�o����s����Sev�-�<�������'
ugs&�����KF��k�yE���u��69>��kU��p����}-s
��
��p���q!Z���/uH@�g-�0d���������S���J�;�������O�=���C�����5�K��&s�G�t�oejz�kK��o��p��v����J-�����L������B���a��Y��$hV�+r��	���k����d��/E;YH��Eum�`��)V�
� ��n��9B�s���Y���[�����������*^���N���u��kn���7���rgc��8"����:,pl���ev��8�a���
�>�s����d~Z��;���n{��V�'mwv�����/;&,���ks��lz}i����hh]D�M�%C��qn������������Wg]��q�����l��[�$��c{�#��Z���������T�z>��d�Om�8M�HW��u�r��_+��G{f<��
��p����~p�J�u����d�������Z6������t��������cd���(����dg��HeY�(��s������/ajnJ���O�v�E�n�����C����N�'ge���x���G�����{��Y/�����Et���[5���������<�L�	/V���[t��cP.��N�������l��:���l-{��n���S�p:)/
������n���nJ����E]���������Z�)�u\$�u�u��Y-�
��;y���s�^1T�}U�q�X������-b�n�{W�����r�<Wq���������:�������
,t���	&1�O�tk������V�����x��i��}���1�tB�o�P���f:n|di����iT6���
LW"���|��}��[Z�d��zM^�z��8�m�im������`=Y��5!�4�������h}T�`���]��ya�q����vC.�OT��|�v��
�Z���.*�=u'1Y0��*�2���	�3V��&��Vh��-�Dm(��q��9������)����z��
�Au`\�6�P^�d����w�}�d\��6�	bz����)��kxf���@Y�8x�Je��H�������@��V���^�)�M���Pv���T�:��y�cw-�e���c'������rr��L<�������aY�k��'b��&��0�P32�
��r�=�k��pa_:\�����N�Y�������*+\Ied�\rLV��.�K����(8!���8;�s���
SM��g(�R��}w���lR����i���`]qw��ywE/M�@�y@��D�9�����>uC�}�����w�k�MZ������>v�tz��%��w�3��S��
oh��op��-r Jo���;��<;�a@���
fe�"���>�0_g�;���5�@Se��t�����f;e��:�������w+�O�c�s����.���{5f�n�T���m��r&D����/>�Y�.������4�#X�]�Z�]l��b�Z{�{_L���h�js�6N�S�����d�p��8JW9u��.LW�i���S�!#*>�����i�����Wc�K-�����5�&��wv7�|���mb6.G��fb<NO�Ev����Z]��1��������p����H"��
��s0�:��FF���|�	Q��Y����:(�q���������Bw��5��;�-��kp��8<7{m��n8l X\ �E�m7���;�(C1�����BXdp�4�U�v�k���V�6��J&O�P������X��O����_\��k:���1.�bT��C����=tx&/L��5�}�:��=�J'�e�e���:;���[�F@�Ei����#��k��H�.c>��vv���A�o��N������
�RY������>#{��K��S4��W��;��w�R�:����.L�WP�<�t�X�������S���\��/g+���{j~G���)���m^?k�W}��lm�����E���n.e�/��^������U���6���M��^��el���^���s��@k���F<�te3|�t�vO)9s��e�r��bWf�ug��%��tQ����Y�]�%H���c��[��@�������VF��eK�jV�S�i���m<�*YACP�v������jR�� �.�:���Q������v��mB�.ih&��$&�y8�	�A8���3�(�Y�Lc�o����=P^����e��[-�;	|zZf�3Vsq�K����K�O��_�l��qyK�_��<��\�����$y�pb���_e�:��
���'Y����r��3�S�p�������/gn^�z�������wR�\��--���s~�L6xU�������~6_;�o+Im�xV��K��S��CwwH8��k�fC��p���p���Q&��P����n���.e�������x��s7�m�i�SR�����!��99��4��^��-��e��(�w;�n�:9}g,t�6ws��D7�ZM�Ir�Z��M��N^���{W:������X�������]{��������q
Z�!�K@3�zEs�=���y?V	G��?y�u�u2��v�z�����g�?z�_Qko^k�`����l�V#+�
��_�EZZ�I��T���Y�}b�Y{7 �d

N"kB�K��v�M�@�{����|��1t��]V��JN�5�����
�w���f&�*vj�w3��T�w�:jk����;e�a�����6b�%�9f�u_L��3K���Q��
2=��EXG	��C��+W3�������0�S6�v��'Y��9L���+!x����;I�
�/�����}/�N��s���t;C���D���#�1����'�O	�v_\�|�&6������Y��<�4���n�6Rc����As��9�6��:X�K2�|����}D(��+����,�����`b)����Y���,��9'qX�3��O��oV+�>�wfTE�C;q���W���q@�ma|���y�������+e�h�^sB�6�4�b'~VU����{�b(g�9���4E��3^2�+��8r�`i��u	&��t��V-�v�Y����+��U�� ��m�,����c�L�}�]���h�}��P\f)���\g�j_.�u�\�P:h���} 2J�vccRSBY���-w�#��(��@���.�v�G����%�P����(�R�U%�����x:����Ok��xb+-.����7�V)\s>k�����[e��)|��_�k�f'WMn����{�{�3T����1�nGs���<���,���B^���9�
;:�
�L����d�Hl�;w�YP2?r�m��+w�u��"���S�:P�.d��.�v�S�
������w�V��C���Kk.�M[�S�|����/�{F�*�����������[���[������
��HD�����f�ND�k���l�$}�J\M<���c�*w�M����Eei��{�W_Y�v����L�Z����tmncy]���G�I�N���}�K(�e���.�ds�p�L����43����y���MZ���I��n�P��c]��-[����c���h���]���K��"����X���U�o
%+p�W�1�)'���;Z����vw���V�un����������>M�=3
�n�V5��[�����,JN�}����>T��s���Hiu'Zgs�N�T�����O*:%�;�	`�1��������;FwANJ����V���se����'�����wV��-l�A��E������B��ct��>4��I��e��Y�������J�8la��bM�e�|��t7t����5	��.���V�D����hy�=��M��n�����u�v���|
G����.\�'�����lC���-�,�u�_R�en%^V���8���*�@&��{{t���:�<�8��SWfZ.+{�*�,��)�P�_C	���aV���P(3��%����'d��1y��"����wN��
�id�uw�� ��������}��W�wf���YV�n����W��J~�Lz�
�;=M��������T���<L:l���9
P��,���h�,�2��d^Lr�&����"��+������q��H�kS�dX�6��OmiS7xZ�;���=�	=��B��-9��e�*��%�����H�M�Z&�w}�!��1t�u�s�@bi���:IZN�h�8����&5�y\�t��g:���u!�f�	���E(v���^:xUj�x��&F�p���cdr��OD>bzn�������'��Z��,=GRB�h��Sw��Ks��]s�����n�[�3�$�]C��Wz�Qa;��ru�v���^��u�k$�����B�tRr>�cu���S
�Y�h�.��C��X9�����,������{�����s�:p���1��
	�PE��j�J��������;�t�}7
�w���uo�l0h��X1k��Wu��Y
(|;�%���Zf.Tz��FnI��K�Ow�>��Dz���6����W�3�d��[�V
�1�e'�:��=�<��;��B�b:Gr�s�;0��J��dS����V���;�}=.<�U��_�ol��
�%I����s� ����;���#^��~�G����z�������6�b�$�����9�E��7=}��G�u�����y��]�������yp����#Y�R�u�,���Yy��
#q�U
�V"5�X�(��Db�{*T�7���d-f�����xKtb+MC����5<c�O��
)�����"W�r��B�TOWon6�����5��,��Z��s����!m^v%�d��~E:�w�
���.��_-���p��r�����c�k(��zr���6������;A���e�}��ua+�(���P(eu�
�m�r
�L	�,�W]������P��U�jVs�^jy5u6�2�}Y�S�F�a�������&��'�9�=}��y-��_�<P�V;���L����j����T�
�1��c��/�.�R�(�:�����kz����5����r�-�b�]t���z��dUp�]a&��gW��M��vs^
��{��X���5�3oO<.|�����3�O��:!���i�*��i��gQ�1�1�q���4K�v0ud�8�#ofz>r9�u9n������k��p�8���:���������3K���WQ�1�*2�n�����6A��K��$u���B��s��U�T,���m�J�;S������vjR�����W7�h�%.���F=�)&�V�x������1����=�_=��|�q���9���]���������F$D,?�<�`�8�C�3����*��Y�S�?���Eh
9}�]
Ja2���I�Y#��^����*J��W���F���-\���	b�-M��a|FzM���E3���BE(�m���Gs|�X����K<V�,�82���LJ���XO6��|2�oe��E/��
Y��="���i����YJ��d��V�=1k�S���f�dp<vd����
���&%���������0m����H��`��9�a��O�v�f�%��w�����U�)R�{h2������:.�p�Z��s%=<����W�����{����������[S�����L�k;s%��������<��wG3���_��9��N�c��nvr� (���R�M����Yc��>�z;��=���L�,(N���\p���6�]v�p���[b�8T]�Q>�����u�&�k&QjYo��"���<��x�~:����U��=�-0�K�����#�e�>A�,�bh�U}|���7��~�&7 �0�r�j�=��S���	j�a�@�qN��Y��H�2e���V�S]\�nOi;���
�b=x���wY�t����e<�G���
��'t�Z���?���g,��;��5ytWt�{�.���m>C�������q�w���;;x�)�����w�v����;`�s[�*[JkC��
��p��1��&gp|6�r������tB�(�w61����Ud�;.��@t�G�&c�3��0�9+}����=��]�����Sc��������������^�K^�3����$�Yb�bY;(\�"qR�f#x]�����&�B�U���������XdV�>���4>�*NYw�5�@
m�����*.V��[�j�7�����V��b�5�u.�WA�,W����!R��vy��iW?c��9�VV�7�����'������ey���i���3/2�(�\�kj�2�e��\�T�U91���km�:��7��g��`�n����1U��G��~�ac���iK�n����A]���	����(b�y��n�65��z��~.��}/���y��#�e��h8�	=��x�N�]���0�}6��D����8N��*�u��Z=���/�����l�����V�l����h���-�8<$����f�Fjpz�+�q�����VoN��|rRW�S����C5w@�O ��w��u��(}��2wY��W�8�5K����u&8.��Y�O�V"9A��0Y�y[|��b����W;Lkl�^]%_o�t��g{'�����#d�������
m�4c�wH�������%���v�'L15�Vhb�3S������Y Z����5
}��S�,�����	��4'�v�J��Y�[;��jU�r�O��5�X����k��]VK
�C�yo�g��a���*e�'w ^�J��5F������q�}=�����2p)��g8����yQ��]}��+�U����?^E�*���|��Rq������^����Q��z��N�$H�=E�([��}G��7�+�4kWH���;�tN�}��G�rD�~~'��
���A����,�uyz�������^W8&1}�KNK�����{uv�=|�\:�10���Rm���4���S^i�����u��R�[g�����4;�;=|�5Q��	~�G�YT��%��r�=��������<����5Wy}W��{4���vHp���F<)#�gl��>��}Y{,�{��i�n���At����7����-�pvd�T
b4Mv��^��WK��RG;U����3����>�������k�]
����S'h�`��Iw<�cc�t��t�Q���������[����v�b��u��r�13�x*���h0�����Rj�w�������d�%����i�+��S}�L6�#����/���3r�F$Uu���J��W,@���<0�5D%<�Q}Z��_{N[�_c�F`�|���=N�<IK��>�a��b�����o����C@���n���w��8�����+�A:��n�������}�<���z�(���\���F+U#�3zVA7��|
�������2i���(��~������Q;���N��bW�^Z�C��2#1.���[\�v��+�{�G�ww�n�c�=v�`ArJ�����db)VYq���������ymYwfd~MMV�W+����l���_NlV��Ug\~+5��]��v������gR������`��l�t�.��n=��,�g{��ws�]��aB_F(��8m_R����M�PN>tr��B3��4wN��l&Z���f���9�/��NcrL5=*���F��^��0�Y���w���=)��s=�{6��������/V����wO�[��A�'�X��i����/r5�v3n�>���{k{�wvTR��;A�k�z8�e���IR�m
��J	3Ar��wVjA�1V�5�TK3_�(�|q%m�u�2]�r�<��f�0p�yzw��-cR����8�r_�}~�zSe���z�T�~�Y~���~my�{�X+zl����;PnU�Y�+n<�� V�v��8oWwVx��!�)�v���P������������r)EB�P�������]�}Y�-tw�#��P��F��xGU�y����\�+���0n�J	a7O3���	W*�p�^��R����x���s�p�}$����dj�1%zq;�G:�G����	���pK.�i��
u&u��+����������Iw>X��'\n]�\����l�(�)��?F	�qhe����;��]"����<8C�n��[%�T��	��yv���n}��k���O,�4�����H8
._#$�����36���J����w���7��Z�������y[��6k*�i�2%�l�p�k�C�����9��vt�G54�����4���G�Gog����2u ����r��/)h�HKL�gL������sS���N�b��J�M�7nk�g"��@�^
�f_'8����t�:����5C�M]������]�C	�l��;V7��A�cw
��=�K������q6vV����\q�R�h���d����B�0e����/N~H�O=-�����qnm�"��������/O�5J�p���l�����X���r�g����8����MW=���e��3�/B�V���N�{���:��l�
:������;f
-������������U���2^�������E�*O:X+��;�t{����m�1���cO��K�T@l���0r]�`w����^�ZI���cum�7y����M
�i���d*vm�&9��s����=���cW��<�N���6�|���o����M�Q���o�L7E>G��a��gLug�u�)�<GnwmOM�^�|T���B�����w�^���r3S��'�w7�
��\��3��2�.�U�����-�������f=$�,�b�Y:>b�7�r������_cJ���j�q�������2���}�F��p��H�-n!{EM*Jd
�1M���*K�C0��7����$�N�1�Nz7C#��v�g��x��L��&n�����C��T�����$UI��w��w�<�.��<���N�2~�����v��x����~}s$�&��#��sMM8U�|������� U�k�eN�],E�L��
���<�>�^]��J���=�k��;+D/���u��������u��y8{a���#�rX�:�{�wSz�Gl��v&=�\�Q}9g��i����ld�y&��:��;��WGY"��A�q�����:H�7��������NX�X�]@�Gq��c�Z�t6t�����.w�IH����\+OmW[��Ot��n����U�5r��gq��H������&-�U�C�#wj�r��x�����(��:��T��2h;k�A��<��z�J!���A����=��W^�]q�I�zO��*ab��
m��:�5v�gbB�*�Mc�G�fR�@
��C�+�w����4�`7�h&D�.�z�V�o5JB���@
�/��P6r����wHo���V�N|C�{��*�c�)��i����6�B��;A�f�d��'�F����������������w��xo?t�XL�{�fd�5K���M��������G�F���73���e�0i�����������
yK]nu�?`�[ig����{(��QB1��M,���"���/1�����&�����r�t9�1���&�#����f�\��Go�U�b'�L�y�}f�"�9�+������s1Z
�_Fk*ZQ�o
����<
/[G�^�y���\9+��Q��(���W�l]1Cw�����sy��s�"^���k�X�'z�f!��%r���W������j�"��L^��g�<�qrgN�c�����v2��!na=�&.K�����X�A����OI��WM�=S(3s����%���0�=����<9l���]W	R����f�z/����������AOD��owY�����������)v��G[�K��+^���V[�x��X"^,�&����������?0������,�6 ��e����m�1�m��������tzj}1����i���$xf�
���?/qG�7$�X�3��ut��n�����vd�J-��I��3�����L�3�NTJ������Mp�b�75���q�:��_Yo�DCT�4{��|��~�~}������`�� �B�� �H2I�!�
���Z�*��mR����������g�}5�zM�b^�����_}W��uu�W���6�bk^��m5����{Up��
�'�vw��7,��X���{������,�%9��}����g��K���`B��J�T�`l�N�,��"�7�>��N����m�(���{?�.��Y�ut�x���xg�g���p�WnIv�;OV�W����;��_��"���S��A[A��J���������]�����z��3�$j��&z�#��w�����6&�Y�{����$��{��J�gk��_>��W@�	������Y��xeal�4T��a�T���=z��F2������/	�;<jV��(*�y�w;�>��N�ZMvM�%*���a��X�+3�%r�A��m7R8���oj��Bf)�����w��j����Z��Vffm�zP�:�[��������[ �v���q\���k����/wwnd�q���v��X���.�����j��	}��{�c{�	��������x��a-�^�P����,��Fe����h�9�;����K}��kT����D�|�S��i�"'�.��E�
�����.�(�=z�����_���{o�z�'��y��W5��W����m����V��.���R����G�Y{f{�����w�/Y��yB���M5������Q������\��������������{=��������X�)Q�Ttg�G}��L�h;�����x���rK��q�n;��qH2�Q�@������������+�`z���P^v��Z��`WH�*H����%�e�OvU��	nn��Ya��o�ow�yj�6o�.oSZ�*��9���n��H���~�x�]�W���xTY^G��j�����!�\e����Ajh��
m�����{�~]c���o��������o���|9e�����;�5+�m�Ok18���E�;�D���p
�b�mw_{]^1as������+���s���C/��I�<�&�4
����3��fT9C���<���R�����Z�i�^�3Wfh�z����p��{�N�`���#���`{����J<�/�Z���<��y6�u{���S<��4E%��{k�j�&��3��6iH������eyw��=�{�-������s����^���2s}N8�������������u�q���H�������������wV)!V�?u�������������-�7�9n���u��]%]�RLw�m�D�n�;3���HZ��Ds,�*�Q�6w�����r9|v���]On�FM��5��2�@}�5u����y�$�!8I�?������ed�f���>����6���2��
�l�6��o0�7D�Q(�H�a���P�D����!	�h�&�1$��!�a�$���;����
���/��(B�\F�$�(��}���C���,(�X��:����ch�N����5� �B�r�D�\_q�gE�ga�v�)���Pa������p���+)��WR��h�+��+J(�+�E1�v��EQEQAte]Xhp�!v���Kwt@p���M88���>dPk�h��
�@��#C@�b8I	���xQ��L�8�>�CM�L0� ]�&�!L�B��,�6�4�@����EY��%�m�xVY�������������E�]�vQEP������#�N�v�����������$b#FDA�0��:�e�6�l�N8���CM������2��0�5�f�c��1���j�8�4�7���{}���q�����eP�e��%c������va�`a�k����(��(v�$b2�
�����()�������+J�K*S���(���8�4$60`�h##��2!h
;���!a!� ��(��(�����
qh4�@EQEQEP�RI$�A3 �a$��B!�h��0�M;p0���My�a�Xm���"�a �4!n��(�� ��2fA�(?]�(4��_�����QEQEI$��$�I�#N8�����-P��JT��7�;��Q�8�:�(��*P
8�(���������t��e�QEp�I�l�0�!p�8�l��%��PPQ(!04�6�l
(��0�/�6��(�2����2�/
7M���6�l(��@�2� �wt!�Dm�QEn��QAfa�88 \m��EE��a�@�t�048B����sImq�@��"��L2����(�0�6��N8��`��8���� E��Y���of�gaAkc�1�41�v�]�
�I4�048B�a�q�i���������v�l7w@
��!�A��N8���L2�(���.��
0�F�Aa������H�����$8�
��6��.����K��t:%"���#@a�PY��0 ��(�0���t�) Zfe�QE���5��q�QAa��6H|]��!k�����Hdk�3008@�Im����Du�PXh����!;�����\_a�i� ��@�I�m���1�@��6�(�
(��(���$�!�H�q��(,48]��\u�!��1�@Bc�0�M8�@�@0�(����S+
�.������(��(���0�p8����e��I�e�2i� ���Cci	CC�N�@�����(.������ \n��F�e�Q@���QEQEQE�m�0�
7C���(��.�7N�e	�hea�m�QEm��!�aAa���|m�P���m�I�~�z�^������	x(�	$�@�L0�,4�#!k��
��$�Hq�����n@�,��s(N��EQEQEQEQE`i���i�r����L�� �P!�#�p$p��0�0�,,�C�-���C�t�;���(4�e�]�Hm�E�����vQE�a��m�P a�m�PY�!��Af��I ���I �i�#������!�q����`���^#M!
v��lm��ve���b��(�0,(�#C h(@�m�p6$�i�PY�pQD��vVi�!p���aE��v���<��$
���(���,�dB�m��c��,,�0��5��o�v����Q�����E�:wt��N�������]����Em�����Y����E�]��}���83����&d��&`���e�����|Qv]�E�fVP]X�A8`9�D#���A�N���BL�p�d8'�A�pI��rL�3JL���$�H���"sC7��y�QWawvQWg�a�{[Ae� D��I�2"2Br,D�"%�>�O��p�&C(�!9�A��%@�RBI&HbE$����&d$������p���I��|�(���' �LE#$$��PI�I�DRBL�$��$�}�@$$�"II	>��$�I��RBI&II$���L�$�II	�I��x�t�I��$�JHI$�"I$��$�II	$�$I$��I2H�I%$�$�H,��_I	$�$I$��I2H�I%$�$�RBI&II$���L�$�II"I$�����G����}���_������x�����8x������O+��<x�x���!	����N�O���m�r���9r������UV�i���r�M9�79���������w_;�9��{�~#Yw,�������5�������$�[�����G����j���C��j��X�c��*�������,�[���y���$^_������'��+v����?�m�o�x�1�c��1�c%d��clc�<x�����$����i�2r��.\���r�9r���J��K��J������
��y��U�X�?��P`�]�������o3%��|]j�h�OP��Ifd��x�%�",w.M���]d��5��Z�� +�\��������s��|���������];x���1�c�1�1�d��1�m�c��>r��M4�M4�O>UV�i��i��i���m$������Y��[:��"���3n�d�\����p���sgn�U7TU�	��y��I.����;3J���6�),��=Z��t�o^�`�a���Nt��������������c�1���2VL��6�1�c��i���r�M4�M4�M4�M4�M4�s�<�I$�u�<w7���s�'.�	������B��X�
���;P�:�7�F�^�Wu97�����)In�*�Gf��P�J��
�G��s�(�'�r�;�[R)���|�w����,c�1�����1��d�1�1�c<x�M4�M4�M4�M4�M4�M4��.^��B7����53�{��H������B�2T&6��(+bL��E����'-W�����T�J�lO�PPf���X��!�Yl�s>5�m�0�T��g�����o����c�1���2VL��6�1�c�����M4�M=�����i��i��i��i��$:�;���{�N�B���8�Cm�r���!Q����i2���^a���m�r&+�w1X�p��f��.�&}�z�{%S����Vy�<k4��#��2N^A��?w��o�x�1�c��1�c%d��clc�<x���i��i��i��i��i��i��u��|L����r���:|VwYy��E�Zf+m��uw1�8H��f6��^i
�v�^�}���=���Y#�Z�[�.CKz�)%k6<p�jv�f+�i\V��]��������������t���1�c�1�1�d��1�m�c��4�M4�M4�M4�i��nr��M|~?��	������bv~uEy��M��,Z��/���*���mm�'�j�SRy���'n�qmY)������������F�S�'����q����t�����;����J�+��O/�������x��8��s�����t���1�c��i�c+&Lcc�1���4�M4�M4�M4�M4�M4�M4��!�y�8���������3�'9t���������t�f���k^�7]a����Z�_MIj�nu�/8U��9���L\X���BJ���:�4��eN���{v'�b�d�����2:\�Ot����^1�c�lcLc�Y2c��1�<{��-4�Ri��i��i���4�M4�OS���W��Mg�z����_���Q�qOT7��&8�}k���k����J���0V�['���7�����9!�Q�B�^��Jn'c��`]i�U�Kt�f�������!����
�^�<�i��z?y�$y���JV���'{w�%uZ�fc.�6�	��;�Sx�)�ye�h�cM[�[l����|/��������#��Gd�<�W��<�N���vq��"d�������J�������!a{r8=v���w5����6=����Y{�nZ
�hj�*�gE���5�����k���n�\;4Jc���3��#�Z����aqm��J�����U�]��ZZ�:��n���oB*�����e�O>��}����Ok�'�������%�n����\��}�o��)�2��t#|��F�[��w�Cc������������3b���[��w�nI{.�B�������,#v_B��{B�:���=4��e�{�#��w>����L�m�����@��!3���N�0+�{���j]���&���
����������x:�#I�[6�
%���V�
����no1W*����3��o��y�����0��p���2d�C�	�����������m�e]�@�F>l�=M�/fR�5W>��3����]���-��N��,so��}�e>�����$ym"��f��^�i.�c��#�/�j�����?S#�q�����������$���OA���#s�	�^�6Hx��������>�����np�l�Cs�of�otFM��a�F}�2k;Ot����&������}��9i�Fs�dr����	���>���U�-����F���y�M(��L�M�j�6�:��V�j(��t���Gb�:���6���bH)P(�le�<��g���}�o�`*S9��U�J}q"{%������4!r�yA��n6b���������f�����;�GX].^�J��[��������2��uns����[Q��v��f������c�V�
o��s8��W�$���*E���U����K$H9�H8#$����m���ZU}��+_*�*�����I��,W���`#�Z���}u��$��V^w�Ksm���X�Wm�{�W{������������/�o�7��'IIZ�<W�}A��������oe��4a�s�[���J�u(��u;��)F2���Y[�����Oo�h5q&�j�����2��aoL��������"��K��r�[�s�����N��R:��N�^�/�w�Y��k�������Y�T���AV�Po8	�\�U�U~B[3�f�S�z�'��{$�_oy�����}cx|������VL�xBD��	���tW#|pEf�:�������������^�f�J��4jm{u��YR�����=�����}����F�k�~ jGza@��k;�Ol�l�ge!����b�k�<��Tv���t�D���+�T��T��@��YY���N6�����j��~|^i'�v�_���=�����J���Np(�ro�%G��A^���U��sD�.��������W����y�t�M;vf^V_.���c����R��>�5�f�h]=�C<)�Z�w�p�W���%�.��,M���}�����>�7	��`_u{X�7��>4�6�k`Z�B�U�%;��q40-��
c\����V[�v<p4�����[
��pX��`�<������~�/]�|'v�`��z�������t��-vO+i����=@{_��{�2���[�Y��f����Jm/=�/���]g{|+�{���������^w-@o������!�r�4/��tn^�h�52��V��7�R�v{/m�{���-o��7�=C[KP�Z��y[%�
�z9�Y�zu���Y��u"s�o��57��{0���gOSw��u?X�v�}p:u��F�xU���_vjO( ��;�g�����n*o���������'�$�F�xn�������qT��u��~2b�$]���=�?F�y7�������Gs������h��k�>���5n\S@�'t��B�0��Ag����
]���o��w{]F�w*o�Ny����P~$y~���~�z�x�++O<;��~�7��M�s�J�Vg�{�mSr�K@�?JB���!�V����m[�c 4��"�-���u����eI�L����8��UU}���U��.��~���~��8T\���������W�^�/5���YG��Y��"�*�����k�[w	'������m�Bz������bwou����)�jm1}�cqCF,��t�o���t�c��������}<~2~q��;����{��;������������1(g�y���)X��ckly���^y�mc��[+kl[mZ�4y�v��\�I[�"!��&B!�����m�x]|�Ek�`�eu�1���-vCj���]��*���eSkHJMNWd�e�m�c�[U����	����%+�&��R�*��k�1�1��!��B���[@�0T(+��\����
�P���O'�h�C{����Tc�2�f1�h�UUU�y��PPP}Pc�PPPPvJ������|��TTTTTTTT����@@@@@@@@@@>��|��������;�����c��1�c%d��clc�=c��8UW-N^"O���j��,*��?6��m�0X�U�#�Us��U\���8m���d��Us	\$���!��=���8�o�x�}�w�����������yy�G)�S�C/�s
��w0s���%��f�'Q�n���})�X��-�1
��M�yX`2��~��?2���
�oz93�r�
a^b������Ws������"~�z�������c<v��1�c%d��clc�=c�_4��������p��`�G
��
G
���8q?i��G
����#d�6�nd��8����N�:s��Us^$n~�A���s8�}�z�����~�����w���P�6��X�pbd���<�����������k�N�/N�[V�����W�?�{z�
���|x��Z�����Kk��AO�uX�Fk>��}}�]��t'�*�����/��c�;cc�J�����1�x��j�V�Z���V��V�Z��V�Z��V�Z��ZUj
EiU�,�V��V�Z��I��~w�g�>|���8����_�4�qP�������=�����+t,���Yn�>��T��V�{��9.1�=_p���
���
'��c�,l�.����`��o�tYF�|.�U��y��^g�u���|�Zr���c�����c�lcLc�Y2c��1���A�J��Q�GG������MAR+J�Ab+J�'pm��j
�J��PT���B�8D�*���*���"���j����s7�O�wl@����5f�����GR����m-��f[�l��k�n�Z�+NO��:�u����c���)��
vs��4f�$n��@s���c���(�e2�	�~_~dX��W��������x�����1�����1��d�1�1�c=c��%iU�*IZUj
%iU�?f����j$V�Z��V�Z������$��V��$�*�����'��~�#�����q?o�����5?~g��[D_������q7���s����|�*�\r�wlZ�G��i���e�l��:/5N�jjVX�)u��W�u7b+��O����������i�%UUg���t������c�;cc�J�����1�x��j�V�Z��V�Z��V�Z��V�Z��V�Z��ZUi��$�p��iU�3�qp���iU�,�ZUj����"?RA������?�/g�h��@�����*#7)�����P�N��y+'$�b
�:��M���MH��m]�,��Y���&w��;�Eu_l=�|��VI-#�TO��T��RI�t����1����1�c��1�c%d��clc�<z�5�$|CM*���m�m�H�*�~q#bm��h^�V��6F���PT���Q'\H�F�m�����V��� �������y���g\�o'���,g�<�����P	���|41�)b��Ic���w���[tkPQ/�OS�}�~F��Z����uZ����!��*aX�4jR����v��l~��|c�1���2VL��6�1�c��cP|I+J�Ad����I�p��'D�4��Pu�r�mAQ�n[m�6%iU��$��Mm�m�$s'�I��Z��$�*�=@���}�}���~�(�E��U��<���|zn\��`2aI6s���y+�����R�Yu����X
�"�5P���pV���Cz~�����D;�x����[��;���?����z�����1�����1��d�1�1�c=c��IZUj
�ZUjZUi�n
��mAI%iU�,�J��PX�V�Z��J��PRIZUj���$?>L�fs�p��%�����'����b�����b�w�����|����}K���Z���y��;��d��������}��OD*,��}�>��7�9_-�.��������o���u�I?6����_\�>1�c��i�c+&Lcc�1��1�>BV�Z���V�N8�a+J�Ad���PR+J�A�s|p�����V�Z����V����V��p�L�����W~����V/����y�O��?�'��Wa��
�K+Q��SV3
J����X��^7��iLV��J�]�q�T��sWP���R�F{�zfE���[3�"��{~u�����Ja���oF����U�����,��U(
V^���\�; L7����E:�5p;����9��<u�����,������Z�9�3=C��Z�=����y�1����������*R#v� �%�����-��Y�<��U�9���'0dRlUm>��U=��rC��`����2W:D��%�V4��;����B���6�*��5W�����ZS6�b<������L	�������$�=�\
�%
�U��F8�|��X��s��I>VtI���5�>k��Q���#�I���r�\g�P
+ek��]�Qc3��������00z���gd�v��p/j������eD�ias��.
P��������kL�K:uC%��#9<���J�
�����a�8������F�T:����M]�^��B�W�]�� ��������]���2��m�S�6r��X����0��i�Q|��\=3v6�n�	��&e|��&�xy���y,^P�8{E�����"�il+��qN<�Q�$�n�5����=�t��A�"d���������v��{5�.{���U�.��D����	��&m��S���iwi^�fdO7���J���XyS�v��m��sf�����_w���9Y��z�;�/���\�+�;�
F�nX��������oA�\v	�[��'�|�yN�"�r��z�u�z��:��)(N30�GV���^��>�88�������R��-��yu�C|��K��z-a���<�r�*�#P��+�:��G�;�`�Y�$V���0�|oJ�N�o:��p��/q��'l�>�����EL6��Y��U�������� ����J:q���aOhJ���_i��+e!�w��]��&>w���Gsh��fd�����uhu��v�*P�"�����(7���u�&`rn=�'>���7��&HG�G'���"=�
��A��{$��A��y���������Of�kd����+�OM����c���2��5����cu�p1��v�`��yW
��C�w����b��[]U�d�*�7���g�X+�~u�C���fp�+��]��1]�2�=9�!C�k�}wY;���D���g�=�O9�m�%������S�����Y��^o3��}�����A��W��r��J�>}�e��ozn-����V�u���|v��`��_no>�:r��n��,_�(�l�+�����I�������+oZ�����-����X9e�3v��dV\��M��+�����������K���]�QA������~l�
q~��"�{^=
Ec$���hK4���q����2��{���q�7��*�.*>���\=�j�����?>��gK���9o?Y�1AC�b/����^���g����~��}�(��d�{=�0�T~O�
�C�zR1yv�����7�r�J�<Nm���4BRQ�����DA(�.��3x>�+J�@�Lh�������85����� g<B=���%u��t�t�OS���$��i�E��e]:����kd����3�!�����7(e{(�"� �B���nV�Q'�'Q��]���%�
��wh�c�36��Wc*��W�JVf=���n���+^�a{����_s�wq��K����=�`����M�g��u�L�'A�<��PW���L$����8{^�v���3��X�x�d��jg����8]��OAgn������k�I6�h������K|x���}D�g�������T�-�6e>���xo������v���5;��������{���w��w��WG]=����+u�j�5c�j`���%0�D��.4+�QG�U�9��R"�m�����/-��_O����bf��Kz��"��p��%��������#�o�����D���Y�P�F�m��m��#�f��~
��Oo�j���W���T�Z]`{|�z�WU��rJ��G�k�yZ0S�����E<��a�
��K��=�Q��5��)���^�<kex���;:�y�7�
�m�uL��������b�$g����������=�v{����ye�G����)��Y'_��5��v��7=�7�E����|����}�<�\�����O�������0������e�Eu:�[h���KvWW�����O�.����$���^n���t�?w��v���8��s�8���wo���w�9���d����3�<�����m�<�����^��������y����ltu�kt��1�6�6��E��%�c�f�c������{�m�x]|�EmbP�eu�1���-vCj��(e��5��`3T���S����m��vKj�5!�!4W!��!�c��]�UR-y��
cP�C*�1���1�`�����@�Rd0�I[�nbI[�M(����O6�\���w�1���-0ev�c�R���z��Z�
�
����-�
�
�
�
�\�������|��TTTTTTTT����@@@@@@@@@@>��|����O^��X�1�v�4�1��2c1��1���A�D��V��$�*���*��+J�ARJ��R>ql�m6�PRIZUj$����I%iU�>�C�$~o���5�~�����������}�������oU�J���J������Y��*N���O_��W�o2G����b��RrQ�G������(u�����c��2�cO�.�������%>�{�o�/]��s���������O������c�lcLc��&1�1�c���u8�>$m��j	ZUj$V�Z���V��EiU�*�V��V�Z���������Pi>��G�<�����muD3�YX�WvU���^�S`���Jz�����D�5b�=t���Ff�Z}o7+�mq���N��}�4�k~�y��]]:*�����a2��o,��dyC�N��.��R�0�������m�z���1�c��c�L�<x���1�x��j���V����#j��9�I�M�PT+J�Aa+J�Aa+J�AD�*�$�*��ZUj>�C��|���y=������9�]{�����y��jQ/��T"V5�=����SqN�O�Z�?�J���Nd$��7�s�fO����D��]������7+�L��I��X��&������6N|��s<��R?��OX��>>1�c��i�c2d�<c�1�c=c��J��PRJ��PY"���V�Z��J��PTIZUj
I+J�Ad���PT����`�� �����������w��\]ok�������w�.�����*�5�b<r��n��'�^/����o=��hM��U��������9~
��yJ����9-�n`k��vU����y��M���T�
��������=}|���c�;cc�L�1���c����*�WRIU�������p��$�m�n �EW*�
%W*�	U����U����Ur�$��Fk�D>�~g_}�������'<y��ew�W��5
��9��2�l�����Uo����U���,Y/���[#5j��J��
�}"����b��f�!���I��w8������������=hI��:t����||c�1���2d��x�c�<x�� ��U����Ur� �Ur� ��\��,EW*����&�r��*'m����p�\��*%W*�>��I�H5����f[��Z���l�m������@�W����7����6�Hr^N*��?h�i&������C&x;VW���sr�N�,�7�g��'`���|9�����Q�c�2�
��<�����?��;x�����1�c�1�1�d�����1�x��D�����H�m�n �%W*�$�H�Ur� �*�WY%W*�D�J�U����m�m�/��W*�M�8�Cr$�n[q"u��d��������@���������b�6��������qa��^eZ�k{�����tL��3������xh�Z��"+��3����O%*�-E�&�g�oy�����qnS��)[=���_�O�>_O����G��c�;cc�L�1���c������$�\���\���\���Ur�$J�U���,%W*�D�'s�m�n$K"Ur�$KUr�$O����������+7���|��\���Uo~^�w�-�-��&���,KU�Zy�7�h������d�n�'/��[�w8f���y�]�.����|���������n.8\(��`2�+����uZ����Y��fo�s7�'�i$�m�����G��1�c��1�c&L���p�1�c��X�D�"��q"TUr�$J��U��IU���)%W*�D�\���\���\����\���I���G�H?����_���FK��+:�b}8nv�kk�CFYX9mji��-�3���Hw��wRJ�q��z���.�;"�~ryt�$��L-�_k���o��-�m^^�\\#����~A�����_J��js�������L���c�;cc�L�1���c������
�U��Q*�W%$��\H�$��\Aa*�WP��\Ad�Ur� �EW*�
�U������7V{�y��������>o]��/'���g�������e7����=����"�������80��\}���]4����_+�X� y�����R��8Q�c]�<��M/�#w�q��Nzy�y��_A6��8��l�������}�i5t��fpJ��F��cD��=���nv���.`�h%�������{c���q�uw�_L��U{.T�6��9����^=���u8VW����e~������(C
���y���w�����^���R�����iV���d��KJ�����-��nk_Z�������2���H��)l�o������;�nt.�css)1�����G���y���`����/C=���z��O��s���Q��BZhu��)t�!>�gZq�
�2M\i\��F��yw�<����'��e�l
��n�K�����^�_bJ��d�������Z�@��{��k��0jD�h=,ow�+�W=��L��Cq-��6)���������u�
�Vx��m�h�GS�����f�~'Q��vR��Q���c��+����Rb�.���l����wg���:/�9Z���:��&��X�!-eXI��[Lu���&N�s��W*e��)����	.��u�[�li/��}���\����7M\1�����&v���%�g�l�����<�����#u6��7]a���WR=�p��2����bTW�s���}f�f��{�z����OQ�-�g��(������TYG�X�S�e��[�~[~��xF{�����:Yt&&�q}�h�~��3bxYL���v�\����K[���[���SB;��S���	tgu�tC=	4����#�TU;|%��S���LX\�a�I�,����0�����-=���|��m�sKx�V�`�����j5����Q��9+������mo
���^����Sf��~���;����zFi�9�S����E����������Mw��[�K��9�v*w�C�]�������e��>����m����������e<h;�6�����n�f��������A��z����8BN�N�u$I�A���UW�}�����i�����+s]#C��X�=N���U����_�	�O79�p��P���u�R�QW�.M>�K)U��{}��OwO)���W�����dM�>�Ku�
L�����x����q��;��z�@�y��w���_%N����8^�Nu=�f����2�=J�4n��mh��l��>����i67v�Z���3f�{�
����\��]Q��o-�W���N��u^5���Xv0/����}���dn��=�y������>�:.���[:�
c/��r�~Q]~9l�9�-�X�����m�r���z'����>��i���3�k����^j��}����,wHsYe�t\r���h��w���w:�/�|OXWJW|:��]?+#�`�<d��*��d���|���W<3�A�x���?s�-��;'����������������d����Z{��Wxe�v�=�S��)��X���v��z��I~�>�r�)<9~�F���v-��;�0���0&��M��"���)����%v9w>>>�}�B��m��4M���*��X�����;73��h����p=1Y�c��z���~�����i��+��@�.MF�z�J���>����:�LoS}�����2�+�3}lI!<�`�wB}+[��yU���km�J��o���c6����,�@7�{�bC�=�C.��En���ey^�"��7����k����z��,����*�����Y�*�%�2���A���J�D>�����p�\�x��zY��T{w��t��������`�T��#]���������:�J�Ci���,���:?zoo-�^���3h�q�4�o&��-R���������rQ����&X��ZR�6%��kJsl�kqe]���)]���������{F�����������c��\����uf���e.W���c��|�������{�����3F7��~����q�����^���H�=�����&f�<qm��cO?{s3Co���<�;��[�;�|���9ve*���m=w��es�[�R��\z?z���n�}'�j@z�*Ow#?;���Xx���u�3u�������O����$������������L���u���
�2,���9L���g^{�1i�zs���Oa�������R���w;V��yL9���h�^"�=����oo���1�W������`�ezWltJU�����_W�����_J*����Om���=������9����[~��C��ymfJV6��ckly���^y�mbP�m�<�����::���h����b���$��u��ltt�����y��O����B-�J����2�:���mX������Tc*�ZBRjr�!�1������mW&�"��&��0�5�c��+�Jl�B�<��Lj��ceP�5c�1�U
������j�������y<�Er�}��
�@�f1i�+�`��*�PPP���mPPP}Pc�PPPP�l������|��T�}���$I$��T�I+mI$����I
�
�q��
�
�
�
�
�
�
�
�
�<���N�:t��z��c�lcLc��&1�1�c���8���$�j��,�U�����\��,%W*�
*�WY\��,*�WY"��qH��\A��� �'������;�~[��r���������7��o���^�n�Y������2��x-st���i�/A��e/��m�-�����1�v2���s���rE���8L�Y�����]��v��O��V��}{�1�v�4�1��2c1��1�=c�>HUr�"Nc���F�����Ur� ��\��,�Ur� �*�WY%W*�
J�U���U�K�'��t�	�����'������A�V�[X���4Y=�v��=�� q�2c_.�x=��o-�QU���k�I��N��$G��P���
���.zR���}�y�"��z"���&��z�e����b�e�]+Qt����~����=}d||c�1���2d��x�c�<x�� �$��\AbIU����U����\��(�\��,�U����Ur� ����qB��q�O�B?RA������foz���r��||�������l�7Z,S��h:}�fOu�w-��N���-e\�*U��{�����E��Mc������F�r}+�o��������<����5�)Z�8R�����W������}�~}��=|c�1���2d��x�1�c;z�|���\AbJ�U�*IURI��r�����Ur� ��\��,EW*�
I*�W�$y8t�N�9t��*���U_}��W���f�%$��{�?gn����b��fo�?j�cH5���g�k	�w���M���[�|�Q)��K���Y�Z�%��J�q�6���JS\V$�q%!���:.�t���s���|ws�5���|�/^H~1X��������1�c�1�1�d�����1�x��A�
�U���&�V�Ad*�WQ*�W	9�"T�+�p�lM���Y"��q���\A�rm[q��� ����Z���S���}q�u��;u�o������^w�/w�O�H5y���H�r�v�[�r��,�&���]v�S���+�\~���
�7Wj������4\�}��E����uM������rf�%�R�[�K�f�\m����������c��G��c�;cc�L�1���c�����H�j��)\��,EW*�
EW*�"J�U�v��V�Ad��U��&�V�Aa*�Wn}������:����:�>��?<���>G���T\L�3-�s2�����������D��fJ�������r�����~�-���L�8,��1]�^Wj�v�pm��p|�������k8�[�5���4R��k�����`������7�����c�;cc�L�1���c��=I'����I,URI�dm��I%����K$UUI%B��I,EUX��8H�����u��M������U_}��~\��F�U��B1�v�s����8v94����V0��z�Wm�d�
~a-V8�;�o��)�{�a|x�]`,�j��
��P]M�������p����W]B��N�tMLZ��U����z�Y���KS����B~9W��}dz��1�c�1�1�d�����1�x����}�m��I)URI���m��J�UT�Y$�C�UI%����JEUT�l�m��IB��I:$d���������e
G��6��A]5��s]�S���Gf�7Q����F�q��}���z�����v�>�|�0��B�oh�U�������ffb��KS��V�Dj�r��d����s8��8�]s{��k��v��S������^���c�;cc�L�1���c��=I'_�m��M�#m��I*EUT�Y����	(UUI%$�URII%UT�P���N%"��I'�$����������^�F�u�W����fP�6��>�G��#�e^����K�j�u<���x�i(n�B{��^>��14���s'w&Yz�\�M��f������"dG5.��Jh�K�"��i�
�p�����k�qu$���lt����||c�1���2d��x�c�<x��I���URID���K"UUI%����K	UT����&�mRId*���p���m��	URI��'\y�&��w�����a��T1>m����q]�i�=����L��u/G��t5�n�{k�
=G���]�����4���}�q��,�%(��y�a��LK�-;D�nJ���Q<�9%z}��5yg,����U[���ss���z�>�s�S�TDO��]�����{�|| ��;������q����������a|���<���c��5�`��`�\�<�>R�R8���)�M<��FBK��7�c�6�'�^-)�X����RX��j���e��^vV�d;S[�B�un&n�=e��v)������uqwa�b����	��E<2x�xm\2\�4n�D.����>Py�p�6)���y�5���ehi)��Y��;x��	�a���]�T�3��[|�.�O���4W^J��7F3���3_�)�.�2�{u�X��v��k����{�f�B��l�V#��9���veQ<m�R�O�}�tq��;��G.�dZ���5U��5���owl��������l�6h�(�U}����WrrE���gK��X;�I�7]/�3�d.`�M��97���@��u�����d�]Ie�tt�����P��t�m����l����R�K{����k�dI������`:���8u�2_g3��\�da��,���{w:��f-��J��E�=��TF����&A�R�&�������=�d�M�Sr�[w���������������������H��`#�_c�t(@�P����i�g&�H��u�2PW��6��6��l���+�q�(��������~kt7������;���
q�Ko`�=�J}�:8�O�����DAb�������)�u;��>��L�����O)���Lg9��u��s7mK �t/�qc�#�bx�Oj�����_\-��)���-R�[����^5�f�.�lvN]��h�nr�(3����0�+<���x�Gs</��K����l� �6�K�(p�"�<��%��]��K4�N�b����s=�8�}G0��q�����_�,�}�����i�}��dt^h�m�t`C�����&V��v��H�N$� � �H2H<�d��2���x��z���~]A!|���a��'>&�4����{�37��v��a�n(T�-���I����X�$nx_~��|�\[R��{f��P���L���y���F��T�G�f������=\�������,�7.���J��9�Jk�N����;�.�t������d�s�����_�������f�*(�U��8��tuf{7�M��>>���7(T���DV;��^���V��k�^�v,���<ec�+x�����Q/�;��\��v9�W���ip�o,/�
v�X�o�wV����*�r�:���y�+�����Ny��V������Eo����7�����^�4{[���]�[�������No�����l��'$,b]����x{���{9=�H��U����a��z���o
�n�-q����z�u���=[���	��n��j�8F���0�������8���AT'��`��k�St��9���]'���GP���t��7�qr��Vk�=��.U��O}��YFSy����OfI�~x������`��:*��,��'4S���\���������y)���Vp������[dvv8{���\�&������^��q��u�b�����'������cX4�_/W�h�O�N��)R��}s�/��6��������2�g����W��{&�1�� �rm��k���[��;F�	�nz@����s��'6�*vM?vn�]�7�)V+���l/S,�z���R�]� ����i�+��K�Z���r\����Th7
w��F>}����lV��V"a��O�1��;���R�OX5e�:��l���y��}������.���:���ZB{3!k�]4�.�+���b���Wmgf�dW�Z��b�}I^}!�SN��)�S�=�a�[��`J���������~`f��������[���YP��U��V���L�{��"9��z�V�s1��@������M�X�Q��Yy��~{�����Yj��<y�2c�����F,o�� �725�4D���O:��3�.����fk8�$��$����_���~j�QtF��S���4�9s��h<Z��Do�T��XJL��&5������g'0uO,���c�w]���Z�qb�VX�_w��h�p>��<JOnz�����#������>���}�e~P���+��VV������}��
���1^y���d�cly�6��b�������%����es��c�v�[��1v��1�"����1�:�����{����2�<.�O"���(f2�������!�b��2�g�P0�Rmi	Ma����W:��;%�\���Z��+��c����Bh��)�����1��!��B���[@�0T(+�`�:�1�h��_;���m�`}�z`6U���]���T�*�*�*�^��[j�*�*�{����*�*�*�*�-S`g��=%���x�
�
�
�
�
�
�
�
�q��
�
�
�
�
�
�
�
�
�]��w���;�}w������{�1�p�1�&1�c�1�c��~J�$�	���EUUH���UUH���I*��UT�UUYUU~�H~�����z�O/��/?Z��V5J5�l�+�����pB�]6�&<�����V��uK��U����/���}�Y]+be�X5v�Z�}��}�]��qP�{g[�~K{����s����N;��|v���������1�c�8c���1��1�X�>UUbIUUP����UVD����UU���%UU�*���G�+��������/k�y�����u�6���e��S�i.�n����[���A|d8�CV�0v�N��{��}���S��s�yj����t;7k�2��
���o����L�wh�����-��Cc��w��/x���>>1�c�1��2d�1�p�1�c�1��������������$���UUQ%UU�%UU"���UUw��H9�l���~y/{�W_���y���:�w�:�w`��^T}S��p����*�(�S|e*�������Dh~
m"�s����|��?"3����s�D[�a`x�B-���O��x����:�N3��,��]���<t���#���1�c��c&Lc�c�=c�~Bm��XJ��UUd�UUD�UV$�U\T*�U�����UZdtD�_�U}��w��_U���.����B�����Y��}��M��'U���K�,�����_4th����!��M�]ZmZhK��ov�
�)�=n��2��yK[���c����H��E�R������wr�������:�>����n������1�c��c&Lc�c�=c�IUURJ��$�p����UUXIUUdIUU`���nI&�m�"���$�� ���CGG�~�q~�7�Ahoq�QA,R�?{)]ISj�s����#�6���rgs���O-�~;�K�|�E��+OEfnnQ�[k=�)_�����)�������J��k�$J&o�����J�x�S�����;m�_^���1�c�1��L��1��1�z�2O�UUY"���UUXJ���UU�����:t��UVI*���UUu$��$�^=����k�{������T�����]O�pH������;�^^S�Q��r�`��8ld���Ow���������xk����0��7%��{U�=��kZ�]��c
�K9�}�'g_}U���>�?��>����c�1�c�1��1�c1�c��c��*��$���UURIUUH����UTUUu�m��Y���>�����U}���3�}��d��u����D�_�c���
�����.��!����
G3�e:=Zj���	����y|-h���+3�������/��;:S���i��*����;����L�S_��uW�;�����9�g������p~4���O_Y�1�c�c2c�8c�1������%UU���UUB���J���J��U^����m����������}��.�x��O�=�"wjm`��V��J������"2��}�,�:����a9��=��,?4����<"6��.���<�����H�����H�t��#���=x��������u��tO2���F�,�e7.���E75p���������������1�c��c&Lc�c�=c�
���UUY$������%UU�IUUa%UU
��UU��}�!�H:��_gk\��|]�/��d��F�$'���,�7���S���(�k�yJ��v��wf����Q�d��fy�'�Wc��x_�I���/
�O�1�k�o�9����������}hL���<����^�)�J���v����s�R�9�V:c������c�1�p�2d��c��c�>��|�IUUbIUUa%UU�%UU�%UU����Y����Ur�%UV��q?%��g��M~(7���z�
�&�wN��I��q�j���;�\U�!���L���2KW�a-�Um��Q�=��p���IO��'����a�&���Sl8yOD��[�=�J��1h.�J�*u��@&������Qf|��f�<w��)d���X���oau�gJ�1A�O23�T�	�d*�ar��MT!"�r�g%u3wK�W6K<y���k�c��"��4es����l�kE�5����vk�y��x��G��?$����'R������&�#26�W:y����Y��]P�Z��������Z�%��t����@���W:�Vj6{\�$�� 3���b��y��F8�&�
�����{:���}su%���S��Y��7+�kI2�<��R����KQ7��dY���7E�G�4���m�<�>;3k�
-L%��Z)�w�s1�r7�K��hZ3�����g��-[��<��T�~�����WYp�{����ml���	�c��g�h�y�,�*l��O6k���w�9�r�{�c�������2�����/;W
gH���P���:_Y�A�*�����kvY'���6>Z�����p����F��E0���}����x<u4�&g�
eg6�=}�2V��r<�NF[�!��{v��z
�2���oC��]dk������G��l��u$a���]-Wg�[�}��}����������m��o;��R������K���9�4h���k���e'�^k������t`J[gU�+�e�n�4�!C�8z���5����������YB��W�S�Pz�|��TWR�r����+]���n��${�0�f�Vsi
(�Qm��[����	��������rUiSf����������/��=Ez�q�I�p��Gd�d��Z���%�\��p�\}�F�9G�G�=WS����3�/T����-�%�9�����9��`���\�j�_���w-<���c��G-�\)�M%�2�����S�a�a�I�)-rX����!%[t�u�P������{�'�1�k�G�w�>��}����~6���*km4��_J���III�7���|y��q�N<�b��h�������hM<����u�3i�Zt�ldN�D�7����?��k��-_�36���������6���oH�~X���g7������)�W��J�L-��9�n�U�`@�J�lW>��h�<d�\�M(U�������]��cG+��R�uJ�;�1v{<9�����w�����w��^�_vzc������Yn� ����Er��,���Y=�vu	4{�M��T��[�o0���~�D:,Nz���)(�5f���D��l��'S�Y�&�\;�i[��P���"P�����_�M�+���[��=���d9]�k�{�zZ�.��=����W`����"���3d��I}�:�=��
�d���91���h�\,��>�e��*X;������_��T.�D���]\�3q����{���n���x�y+����s*��;n���.t�p4��gxq�����c�f�+�����Y�����������b��XvCJr��������k��\W��y���{P���[��JAP�~R����O|���%������)��Uk��k;n�7�3U#.�F��z�)|�����W,�Nj��s7�25u�3�]�Ey��j��IM�����:}�m�M���`>t����Y�S:��J��2�0/[�m�Pi	z'����zU���^�}�a�&��V0�;A�8�:��m���
F�$���),�q����!|��0%fe9w���}F��a����A���As��1;]p������o���x�]�//��7����
��|�u"h��q���k)�tP\�vM��O%�,{i�����l��
�c���y3(�����w]W���
������x������K��[9-] ��*&9~�|2q2�.�����z��5[�^�|�b�s�v���6���8�����z�aaZ�F7W����w��z�Rf���F��L#���;�P��O�t����e^6aqR����T��kc~~F����tIo?��}w��Y^����byo���@}s�����/��..�������!M��8�;��=����2��w������IA:oV���6���vO��y��]��8kv���x�D�C����zi���'+=�$xwp��D���&�Di���"�%w�s��������U���������'c��w�������8����������c�y��[Y�������y�n`k��z�X�3c�1���-�u�-n�<����b������u��ltt�����y��O����B-uJ�t��2�:���mX������TcT�ZBSXr�!�1������mW&�"��&��0�5�c��+�Jl�B�<��@�k�`��Lj�-�c�
��0k�@��mS�w����+������l�1�h���1k��UUU�y���UU��-uUUUUZ������K�<�@@@@@�`PPP�8�PPPPPPPPPP���;�|������w�}s��1�c��d���1��1�X�?$����UU���m��UV
���UU����6�m��U_��w?i ���������7:��������hlL���d�_��>#:b�wV�7������/����&�P�"t�/uPf���>�|���o7����1���M����>�y!�/�<��������Lhh���{��zx�D��]:v��dz��1�c�8c2d�1�p�1�c�1��%UU����EUU����UT���&��m��$�����?I �I~~~~_|��8�����,��;�.����-������1�����o���Z=[.C�%�qs�����umr��=U���{K:�L����frn�\�Gn�.���{�Y3��]n�Zj�����N��<q���D��x��������1�c�8c2d�1�p�1�c�1��UUTJ��IUUd������m�H���UUT�UUX�UUl!�UW�}�����v�~����Y��Q���z����l��jn���.�����������G�c�C$�u���c�Ao�z-��X*Ww�L���]C����u���������E�oRUf;��K��u:��d~<m��=}|�_�1�c�c&L��1��1�z�1��!��md���$UUT�UUYUUT�UUP���H�������>�����~}�c����~*��I�V�k����]��V�/X���JI]mL����lM*�jfs��Ru������3d�-c�T���vP#r�����{�t�y����<��]��n������^�z���>>1�c�1��L�1�c1�c��c��UUb*��EUU����UUT*���UUD���I*�����A���:��j�i�u�,s_�W)N�=���r]D�M��1\��9p���O�;���]���b��Hr}[q;�+����I�$�*,�=n�fI��<v����,Y[���s���vq:#��lm�����1�c�c&L��1��1�z�1�"����#m���UUY$���%UUH���%UVD�m��R*�W�8�I!��?.~[vpo[G@�2]��������x�yv��X�X�%N�R��vSg)=�f]�����x����r-������Pd���w�g5��w�orq6%(�^V6�����D�v�����>G��c�1�c�1�&Lc�c�=c��	+J��*��I*���J��EUU���R�ZUXJ��"UU~�A��
s��u��]~q��[kZ]o������u���K����mNqm��K�9K�${:_����_s2����k���ms���K�e[{��s���w��8�]������?��n�_�����1�c��d���1��1�X�5>V�V$���%UWy���:t�����I*��dIZUXIUUb%UY?�����������?W����O,
RefA��2��A�D����)3�.���]��$�d�y����(��������5��������&�/���@�(h����]u�W�%��>�x�������c�1�p�2d��c��c��c	%UU"���UUQ*���UUR*��IUUQ*����:t������$����k�Q2��"��2O�L��DT���&���������z���[	�����]�#����:�'������������sm�y�5����_�?���������O��c�1�c�1�&Lc�c�=c�UU�IUURIUUd*��I*���*��UUY
���UU���'_'��(���i��F���U	KsndY;gR��������I��w�E������+��u��m������x�Z2�_9)�E�����4c�f�q�iS�X��F7���:�N�55������Z7�B8
���eG}��ccE����&\-������z�s��K[�u�Ko�O����wa��\��<�W�k0�.5��s��4$(wR����sF�N[������,b.6v��s� ��A���#��M
�D�ODr�������|{#A/��qR�Zk�o�[w�r�r���LZ�+Z�A�e��wk0�S�h��'{c{���2������[����D�����<L&'�������z���V[���f����,�.#��(�w�������tg��S��/v;�u��	�J�vi��
�G'3#��q>��QU�:�
my����u��va��VJ�K�����^��g�)9���c���I�[��ol��un9�-��e���9��\������c����R��>���~����E2�\�Z���
P�o����xp����K���8w]����sf�I��������z�����&A�#C}��
����e��z��K20��j��L"�)����r�0���9\�U�Y�e�6�aX�����J���c���Gu�tw���,6��r���G ��t�L��7������1f�-������e��7}/��ql��o~����{G^Mcg�$NN��K,���t
o`�0)�u3�����?*����d��O���Q[�����hSP��9��G������;����_�|%����z�}����s�)��,<"o���}w	z�9�2��i[n�6����K��Hqu�o*+�������2u�$�����B���
��}2�{�3D)�o;�N1�����}[���)T9��]+ [��������(;$��|o�5�h�Q�bJIl��:_b/�������S���+����c-V���[n����C�`P/)"m������o�D�\��u����w:��$�� ��d�~I�8�DNI�Bd�{%}������F�Mt�T!6~��;��R���3�s�����Q��{���G��b�U������M�o8�������f;W�8�x3Z6l���v���S�g��6:�u��o.��[�\�9AZ�^�<��*�o:l����ZzO��;%gV�on�CZNU�����N^B��m\�9���Z�gu������[�a-�����}m����'���_>Z7:�2�s�5S�!HWK��u)����(��r�'��O�Q8z�wz���_*�K���t���7v������/��t�����.���b^Gw3��z��Q�a
s�q�Kx����.')��y�)iz�wQ)�s�2������N����s7h����������h(r����3��W[�8u��;>���I��������^n��^j���t<��6�9pZ(�v�����f��p������e��K=
x>'������
��h�[����f�gx���3A?+�~��q�^(Zu�f_��/�j�)>���q������u��y�.���{%�o�R�Q������"��-�����k�xB�OD��S�f����xj���bo���&���T��;���}y�"������;���=%x*���\��i���/Ve�W<���3��W���=���(iyd-��G��}��k�<'�aY�-0����C��V�����W�h��,����hg=b��[�}���\�^�t'7�3
5g�v�MC'T�]y(U���(��J=�z���>��p�����8��X�+��w�k�~��������/��73�����o4
�-"�������}YU���sN���jVqMuv�b&������j�{���Q�_��lOl]�P���QQt����b��,w%-�o{����������������HW�;�h�r�q��T�����zd�q���6j��I����`��q#� �ZU��+�o�,������(��HM����r!����Uf�	��mZ'������3�9��/C�Ly��;�S�w��B����<>�����eoR��9��u�����I�A���s���k?p�-���(i��&M"��������T��;�_^���r�lfE7pM���2����%���A�V��1�4�V8b���wcGW���}���,�;n����h#�Q����nU�����]�v���w�����fqm{��1^y���d�cly�6��Wm������%����es��c�v�[��1�1�1P�"���F1�:�����{����2�<��O"�Z��(f6��c+3�Z����jP�]�M@�+�����Z��3Z�k���rjB-jBh�C1�CZ�9	��d��� Z��<
����
����b@�ev�Z�P1m[T�����_5��0���0*���b����Z��@@@@/^c-�@@@=�@�]@@@@@����v�����<PPPPPrTTT��9TTTTTTTTTT��w���;�|�����������1����L�1�x�1�1�z�;|�*���p�r�o&�6�m��m���UUXMUi\R*�U�%UU$�U[���'�}��%���/�T9��?R��0��(g�u������duA�����w�*��t��K���#�xA��UL;�t�cA�M1J�v����� Tw�����Yq��r����&\����>�����o�z��+�1�1���&1��4�1�X�o����J���*��UVB����m������UTJ�������G�H>����|��u���}u����y�Z�R����;�&�[�xz��=/5!�A��ax1�v�}S��w����m#�x�jD�;~�����z���{�oVl���o�c�����������\D��W/.�iA��W���}>�O�>�������V1�clc�1�&Lc1�i�c���	*���U_vI��mH���IUU�EW*�%UU�*��EUY7"�W�}���?e���H���z>��4n�#�����u��v9����w�-�jL�a�������]t0���������-+���m�f0x^m���������SR�^z�����X�|i��������c���c&L��<c��=c�"J��UU�*�����m��UUj�ZUY
��!UUb*��>����D��}?M2%Ib�4������ve��8>JP�C�hO��s��h�Fwt�f2Q��N(��s���d���{a��>�r�w;�n�����j:{"���d�<��X��O���_�c�6�8c2d�1����1������UUd*��x�$�m��m$�m��Y$�UVH���UUP����I �I����g����Q2���� ���kR1����n9���^)����G�p
��>t�K�u'�S��eu��ojmfY:��gs���J���a3U_U_g�[t�~����V1�clc�1�&Lc1�i�c����$�VW�dm���B����VU$���UYVI*��EU�RJ�+����#������~k^�����}gZ����Vp��o�����H��n��B��Vp�,&+�)dt��������nZ[2Q�g^�r�vf�����po����;�k����1by��_�O������������V1�clc�1�&Lc1�i�c����J�*�UYTJ�*�UYV"���������UYU
�*�Ueq�!>�UU}G��W_��n�����6�����lHi5��W=���nJ���N��/w)�z�
����d.�W*�����GL�6]M�od�-��������F����I>1��N���z��+�1�1���&1��4�1�X���EU�a*��VU�����pUYVC��em������7���T�Ue{�Bd�;�{��s���;��^���Q�R����ZK���p	�������j]X����R��1���H�V���S:k������{PY�d���,��u��r������������1��1�m�p�2d��c�1�1�c�2v��$�m��6G;m���Us*�UYT��,����VUI%U�I%U�O�>�"k���u���<{�>o}����]jo����L��ctZH������F�k���K�Tr��k��j������ZTO����H�i0���[E�S��nIk(`�����������^�|c�c���d����cc��d��$�VUB�������UYVH���$���D������M�6��������b����~k����9��vo���L�Z���R���sc�G;ygu3T����yl�*�Imm��X��H���{�P�<�5�Ix�����N��/V��<��8���������r���K:�LS��/r��v���������x)2G"���A�t�������T�bp^���������g�;����G.a~O�s�`���0��G{l�g:[1�KA�
���LvGoN�3�#V�W(�{�(b�HoR��uy��%��=��Y�}��1�'o��Q��=�0�X��W�g�����.&<*���oS�����j�kv;/�+�%F���j���lS�����f����g�������R���\���������s��\x�)Oh��e��{I��Iz�H�[�O�'�924+���Ix���h���k(4Y�v`�������L�����-[}"z�6�V��q�~�]Dy��� 3���p:TM���k��(� vd���3,q�E��V�CI����<�o����]���=�{0�rn����:f��k7�'�0_<�/�r��JVw���M��y����M�6|�	-b�`��.��Y����n�F��|�{�4c���=_�{
��O�]�9�b����f`��;����S�wM��y���<����Gp�k��Ot��Z3l��_�Wv��%��t�~�xow2����O��
��gh�d�������������:�q��d����A���lu��sGv��K�|��/3��<��Ov��H��\B\.-!��F,��il�^M�4�����c��tnF��=�dbp���������(��H�Po�UK`�{�f�G����l?L���y�V���]m�;,P�n��b��{�>}�9�M�!�+��{������k��������@������/8g.�}K�����a�#�5u���Z��k]�}����YP�:	���]������<��;����[��A�A&\�_c�.�WSv�x��oH�
N5d���nl�t�gfP������g`�7���=0����[��8
��^����n8�q��U_}��A�A��u'��p	�'�O$�� � �s�����W���������i��u�d�u��e��1���|\�]����mM����)pm���ju���a
��W�v��-�]dJ�������l��j��:�{�)������[�@�B�5��R��>s�v�t��Qfd���%R�*9iZ�1��������-mf�]Ox����&�{o}Z�l�_6����
k�T	�s�y����nX�����<A�u�������b���ev �j�#L��h
��pp`��|6D���������UBy��@���a�IA}I����[�S�{�C����vjUE��U�Z�'������8zu��������2;��������w���s�}R���%\�n!�g���������)��IK*�3"};��~w[�JT���v7�z4k0����o���Mvg�]M���0f�.!����T����;�r�X�+{.e�XM�G�U�+��&��zC����6o����A��o�U���S)c�������^���o�Yx^���b������:aVA�r����S�;��fn����Y�&`B����S�d1����lz�ga?4x%��"k����j������q��skj�7v��A��#�o���x#c�efc�|�_����d.���V���Y:�rdS�������b�rct���0�t��s{y2!�����j~�\�:���x�;����k<J���Pm��wi��u��*���	x���,�~����z�QX{X�d3����5��r��]r���yn�k�,�+9�(���2�7����t�	�>��w;����l_5"��u�ZA�y��
�.������tgICj���������w�=��!�����������)����W���	"!+��B�kwzU�;zr����Q�����1"v
K<s�S;'�k����B��`��hN�F^%[��l��{��J���J�%��{�R�z3��?^N��*�m]oV�W�����@���so"��n=����d"�n;�|g
g�����Ip!5��������b�^<�����)�o.\���h��A����8��}�����W�}�����~x����Mgf�����c���?1��f���
�z����s]�=���V��L�)����.f��FoW�tX�^��id��!��G^K�����<�>^{�s���'��v�o'��9�]�v�����_���lylu���c�y��[Y�������y]�`k��z�X�3c�1���-�u�-�<�c�1P�"����2�3U����{����2�<��O"�Z��(f6��c+3�Z����jP�]�M@�+�����Z��3Z�ki�b�5!�4�+��c���rBh��&�T�^y�����8��B���1�@"����\��-�j�5���K��\���w�eP0�[@�0�\`��TTT��2�TTT�T��TTTTj�{��k�,_<��UUUUW!�@@@8��@@@@@@@@@@>��|����O^�z�+�1�1���&1��4�1�X����*���m���UYT�UY[�$�m��$����*��f�I���X|�_*UR�����UU�axgw��"x"���c�.}O���au2"�Vr��)�z���w�*o���[���;%�\�]n��+S��.[�<s�������u�&b�����;��w�W�������>����c�6�8c2d�1����1�;|$���%U�d*��$����VU���VU�%U�R%U��~�����������5��_��i��0�{sD�6��K+���/Yn�N�{n��;�z����!�5��Z.X�,���	�'&N��"�;��-6��3W}k���I���6���|z��+�1�1���&1��4�1�X���UY[��&�nmR%U�d%U��dM���K!+K+]6I6����d6�sj�IUe��!����vc���_���j�]�8�gm���L�M�;8��������/yV-�X]�.����e��sm�r[�!�D�i����zv��"��e�M�0�h��k]k�������v�������b��cc1��2c��cLc����DJ�*�*������i#m�6�B���������+rM��m��7�m���x�������������2�T]a�m���[���s�v�J>����9��Y��3������/�a��983�:��j�c�;7g�cFvo-�7+�����4+u_���;��yo�:�#��m�x�}|z��+�1�1���&1��4�1�X���"���
�+��m���VUDUY^����Y"J�*��UY]n$m�������U}����w�����g������*}WW��+#�2(�>�l�{���#���������Se)�����kuT�m�������	��U�y��S]�vR/j����<������m��WM�����1��1�m�p�2d��c�1�1�c�2v�$��*�$�VUI$���"�������UYV$�VW��M����J�+h�������??J�F��+A<����V�6��4�Z����[�j�����������wf��evl���e�]���[2��:[[\_�MUc��T��Z�k}���k������5��I'��+?_�1��1�m�p�2d��c�1�1�c�2v�|��m����t���b*����p��%U�R*��!UeX�����VV���C�����KG��;3@�#�?��i�
���.���W}9�=��=}�i��U�x(iwI���x+CJ��,b0��R]��j��-�������-��g3�l���w:S�;{E����������:c����_�c�6�8c2d�1����1�;|�*��	Uew6����XJ�*�UYVVU�J�+���&�nmbUY]N#���$o�������k�^�;�\�g����>v���|��i��h��kF�3o4����%������c ^C����+�c;X�����f�tsn�d�ZwH7Z�Xm�B��4�*Us5z�q'�W�t�}c���c���c&L��<c��=c'o�UYV"���EU�d��������UeTUYUVU�U���H>�6�����8��||����.�3��������+��6$��9-����q�v�gvwe!��
vel,M�wd��[�X��[�V���l&q�������c�f���a�������s�|�[������l�]�;G�O1������1X�1����L�1�x�1�1�z�N�$��*��VUVU�U�dUYT�VU�UeUU�R������y��sgz���'o���C�v8�V���7U�a�N���[��z��u_a����:��B�Vg�a��v�?�s���f�7X:Z�b�����\~�'���
�wo
�p������rj"_v�8Q��`������c~����x=)�#�Az#�o����`�/�4lk��t����yyt��,������Aq���/�;GE���7�&��&K�'N��<i��@*�9fn��G�[�t E�l��#'��$�S�{�� G����b���7m�����-.�M��=(��
�V�;����p���h�;}���@���u�1�5�����w."|M�>o�jG�t��W������g������K�=P�����a���g�cE�f��5�'�y��=���Z�=�����[��)q�f��<Ey'��T�(�r��wc���W}S'LD�ME�{�{�wx Po��-{�K�g�WF��O�o��#=�}���<C��z�y`Ek����o|�������u��q����������<�p���5�D#�N�s��#VY���r.N��[����Dg6#R|y)�3}��`��gW!��/�W-T����l����������bR�x�	���{'�8[~)��~���������'s���q��}�����(��_2������9z�=����e�H���`�m��u��*�����b��o��x�s�L�-7.�s�R�>�[��C<KC�;N%X���Zw���LL5�W#ZMS����?%.��y����[����e�S�.����Er7��y� �2��T����j��
3�1Kc8�uH.������e�N���e�[��������cP�2AI����1�+KY������;]n=�w��s]�y�:��������q�|���^P6�����1��
�@��['.�]�l�}�pij_R���If���-@n:}�Kv���mn����[�Uu�5�v����4�b������5�mTI��5���
�-��rn���"���l�	8w�a	�k/s�n:w����pT�[,[�H9�J�3�}N���RA�A��w$�y$J�SM���U���6�jbp�H�I�A�������{����<�s��R������g �'���[�����fC�fr���F��������{2y�g��[L�D���9Z1X��Y�z����w}�{%0���[u���M� l���N�����#-W/P[�w1�,}���Q�49�_v�>g�z��Y��1m���������q�+�6���������K���y}����aKh��3�G����Y��
.
I������=��&�x��y��t[O-a��l�RJV�w�js��(.��V}on������[Y��Mn }Z�K#��{�:�����w�%^������5��U�T�u�^�O2D4��n�uZ��Wc��|5 �^����h�}���	:���]���z��x����_��U��ilT���se�������VH�:��lk��=1��t��ix]�/S�:�����u����O�)�7C�(����ko���v����-���ct�7������u��=
�Y����5����$kS$�\�>��T��}6������~��V�EF��I��9]��-���dK#�{H,�gN�z#��x!`OM{
�tv?}ws_,x7aqF��i�)���p4J�U��>���I�x���*�%�N����<���d��k�'��o�!�XwH�5y`)"=��vJq��{F��VQ{o
��=�):�+:�A\
)H6��E�������>$5�_v���(���g���wH�f��������a����y������������#N��L��l0������^�n.}���m������T�������g��y��*m��������������VT1�������������X����B��|M���Q'hr��=��dc�����W)�o�U���������/���=+f+�F�J�8Z1��]�o�,�A�-9b���|�����j��J����'��o7����e��o��B�^y���>71f
t����������vu��w�����X���b�}!\j�r���^���\�x�m�����x)M��Z�c���*^�����]x�����hV$�`-��
SR��Gl{C�:�\��(��`�*�xYo�uA{�%<��9�w����?��W�}��U}��~������U�Y��V%��JJ`z���:p/	�Mry�OsOM���G4g�.~�O�@�y1����Jb<�f��������B���<�21��/32��N*���+�������ug�]B�{����Og��M?���V�[^�F1W�y���)X��cly�v���^y�mbP�m�<�W:X�9�l�X��mmm�T!��f��Vfj�::��{����y����-PV�������efu�]���mJk����cT�ZBZq�]R�cj��c]+lW&�"���Er�r�.HM�d�*��k�<�P6Z�2�\�V+�c�EP0]����[@�66���K��\���w�er����0�\`��TTT��2�TTT��b�PPPPP�l������|��TTTT\�UUU8��UUUUUUUUUU��y��y�m�����^�z�^�c��2d�&1��1�1�z�N����*��J�+���m������EU�Q*��"UYU��'BG�H<�/�z�����3:�\�jS}��r�b
a��m���*34���w�#:�Ky��M�N�z����jMWD�6������2����YWC�]C�JwNt[D���k��{��9_U&�_�X�����z�1�1�d��Lc�cLc����B���*��$��������X���*�����*���$�m���W�UU�����W���N��+��)E�'n�}�R��u�=�(���o2����]��=���>��e�p�������wL|�0�Y�i������-�*�����y��\�|v�}z�����z�1�1�d��Lc�cLc����G�6�skUY]��m�6��m����*������I��S��UeY%U��"d�?7�?5��uu���Pf�*���Vf�R�J��H��V�5��j4 ,�WM�J���H��j����Ye��d�[U��U�H�]m�����������t�������^���cc�L�d�1X�4�1�X����UeRJ�*��VUVUIUeX�VV������VU����C��gy�~O8�w�u���������W��
���&m}��\�ewt��i�
����N�)�!^T�����3^f����r�u���}�|�>����||z�^�c��2d�&1��1�1�z�N�!UeY$���*��"��������%����VU�J�+����U��z�=?�I�
����m�����v�R
��c���fj�{o4�j�������noIV�>�i�k7�5VB������l��J�\��JOt2�K��Ms���n�>1�������z��clc��l��+���1�;|EU�QUeR�����m��UYVJ�*�U�d���rm���H��$|�����3�����o���oV��}s����mo�neq��sEt��t�������3�i�e ��s�#t�]�������*�p��TOZV��bN8��iV������)g^��}��m�|x�}c���U��1���c&M�c�cc��d��VUVU�U�I*��"UYU����VU�*��"����������U��~�O�<7��8�,a�8??��,-���EA���%��R>�NV�L����m7��oW7u/o
c���B��\�SguN�<��j��L��>���e��D\��N�Wu�������|�|t�}|z����z�1�1�d��Lc�cLc����
�*���������*��*����*��J�*����	�U��_�?[V�����
a�&M�j�Kv���Rv�,�������f<�i�]���F[���8�5u]�S&��@���3k��D����V�j����"��8M��-�B��|+��o��=|z�^�c��2d�&1��1�1�z�N�|m��[F�nm��m���UeX���*������VU�*����>�����U_}������z�2��or���=.�x����WJ�HGb���vN�J���|��
In�-���b���}yW>i��l�e�.u���Y�Z���w��Y�v�������
�UUo�����c���_�W�X�6�1��6��b��i�c����VU%U�bUY]M�6�sj�������V$���%U�RJ�+z��`w�H��R����][������|r�*7��O7Lk�.O4��48N���]Rh;G8\��]�:�v�������0q
�t&[�|n���SEE�o9��N��Mr�y�v6���n���;E52f��oIQ�i�p{����n�)��yF�,����wC�*l|���g
�v�+�L���2�Gc�X�;L���A|hJmqf����-�`�=�����i��Qn
{�����
����I���x�����f{������v/g6�S���r�����,�5�E�G��pPJ
+��6:0�p�lt�W�{)�_v��(����W�����D��-UB�����p�6��c��
jo���f�^���S����2M��c;#�
�6��������F�h�%f��l=���&e�^���H��=	��1.��q���w��aR+E��4����!J�*t�����|����b0����3�q�kAft��A�M����YO9ORqv�Xgu;���z4�&�gexa��.�ge����,�������V�1]������^��$v��������D�
�gF����k�/]e84�M�m�]X�u�O����v�_h}����/GCw"���8�j�M����t�'�#�6�����p��[W��)p|�@����9���%Y&2��b&b��v`�x���j7��%��Y���a��r������4]�1��3k�2�����NA[�m��/�n�����.%��������=5�[����wp�]u:���V>o�&f��^�k��uarM��9WP|��OT��k"41���E}fZ�����"������;k�X�<ko��6�r��O�,M�}��HC�	��m�Q+ky��ZXTCq$����/3��%{��a���z��R��;�H:3fmA��2�^v�_g���o�ae���T=��=��9�3<�[���9����Wz1��ilv��W^�w���iK��5�������}1s�r
���&���qE~�o�Z��:Y�f�}0h�<�������|�xyR&�/�%
�������$�?$�$���i���R��Z���V�U_W�����9�L��q�}���o�kx�I�=A\Z/
�i�{m&���o^f�v�_�-d������&�GZ:��n����8v��k������k��i���2d��v�����D�{�1���/����m����w��}��U��7�{V>	�����vyV������W�H��x����i�Io�����[��B�9��l�Q��l�R�"5u�bP�{OnQ�nA���������}���@}��L��<���g/F���Nw3A��2=�GE\[g|k8iE�+��3]����o9P������P�������N��z&^Zo�1��%�=J>Y����wH��i�7����Q�G-���Pl������� y�\�������kY�����Dhc_YA�\{}���:��D�[����!�wO3��=�������b]O��$�&z�E����l��l��n�"+=��z�X����5���E��tCW�^]�v"�D�L��M��L���<`�M��!�������=�O{�e�x���n=7���E�������Z�
�6}��x��Y���X���4����?`k����%xD�XS}��^����=9%����Mp[��7jV���*�'�>��;7Ba@_%LZ�^%���\"
j��������*�]��uub�i������_��\����p1���W��2:L�w���Sx��yW���'���<T'�n�p�~:���������'���rg$�V^7��:e�����^���M����JW���MJ�{��=��;�^�<\v��F�U�I�*����v�"�V��o��I����^^��{'h�+��]#5@.g�/.�mXJwM�����p�J#�y���������o�^{����8T��%�Y!=�Y����5T��e��C[T��:,vg�!���vDl�h��8U�t�)��k����~�%.G,_-b���q����m�5�M'�������c�(O\�����V����Q�sr��9w������v�h�k�,�s��K�A��1)��
�+}�/]
�����F�k8�3��
���{{%���j�el���0���OS�D
�mx{���f���7���t@��}��}���������?�y��Wd��MyI<�+U����Rq��.����S�������p���y�F!��@7x�����0�bf�6����u�s�i�S�fS�f�[*vR�+W_������_>�����=�{���m��}w��e�k��}��G�y���6�e�<������R����X�����X��K�:���y�����Bkt������ltu�����y��_!��Z��uC������K�!�b��2�gEP6
��6�������cj��c]+lW4�"���EvJ�9
k$&�]�mH@���x(-Sev�.�W`�1��`2�f-s���-Po;���k�`}�z`6W ���mc������z�m�����1k������6�����X�x�������C*�*�*�q�*�*�*�*�*�*�*�*�*�.g<��<����m�t����^�W�X�6�1��6��b��i�c����UYVJ�*�U�UVY9r�r�U�RJ�*��VU�J�+���}��~u��8��~w9�u��oR��7���7Mw����(�jU���j�������I��u��AL:���Fy�E�e�������X���.�e��F�2���{-<G���sV+���}y��H��������_�W�X�6�1��6��b��i�c�������%U�dJ�*��*��������������UY_`G� ��>~|��������_����\s������6����y���k)'����,(�o����o���>�����r�Z�m�����*O�o.(��R���:S;c}�0U��'1c�,��U�?�������}z����z��clc��l��+���1�;|��������*�U�R����ieQUeTUY_7$�m������k�~��Q��}{��b`��e��`>�7��:���egv�b9����Gb��E����*�8/l�����.��k���!P���w�v��2��I�6���<q�V[���9m�����>>=z�^��m�c2m��c��=c'o�*��UYVJ�*�������N�KVUEU�bJ�*������A�}k|�����]w�����������8��X��zU������28���V���|D����y
�.�To�l�v[E�p������
��R*QjT]�����A��[I����������~������������1�&�1�V1�1�c�1��.\�UU*��UUY*��UUnM���mR���UU�}���O5������;���g>��6������$���>��8��3(W���;�qV�.�JU�TN�A�f�g*7z��.1��i���/u��������u�F�2+����{�I�M���������������1�&�1�V1�1�c�1���UVJ��*��r���.\�r���.\�.\�}���{}��&~t�u��FO�``TYJ�]���/��XU�v����.��q�]V��c���3J�������o���l-�������}�N>��6��@��x8�)W���������|t�}c���������1�&�1�V1�1�c�1��*��J��\�r���-���\�r���/��m���UU��$�$}��u�}����Y:���0�y}*N��<�U�Fb�U�.�ftd�Z�[�/�E�t�]� ��;M��|��'F��QA(N�B��N3�ws�Y�z�Nz��k�y�����t����_^���������1�&�1�V1�1�c�1��.\�r��UUW.\�r8��8��8��8��8����N���������y�����"�L��8(e�Ie�y&�S�5vZ(�:��R]IP�Y$����L,�X��tS"�! 
)X
7�
ZW�Q��*��h��� �u�����p�^><~>����������1�&�1�V1�1�c�1��.\�r�����\�r���.\�r���.\�s&�UWr}Hd��3������|��)��K���E\5$T{��s�j�?pv73w;(�������W8����E�8>���;����n�v:�]��r�����-�R���-����x������W�X�6�1��6��b��i�c����r���.\�r���.VJ��\�r�UUb��S�\�%��/����������Y�g��gw����M���m�V��~�����~�����Mo+�I��U�k�o��L����9�4���I'��:���d��?�>�9�,��$�����?�y?���.�&������m��7?�#����S�I5�?�?��?�i���G�G������@B���D���+��i��D��������>O8t��o�t?��������X������������~�D��r����4��#��`I&��V�V�Z*������Y	c�p�.�p���!�������p����R7N_�G�%��sNX�N�>��O�6G��I8�H�8��8@�\D c���i�����!>��t�$��D�����!$�V0���������8i����'��TBp���m9m���1���?�2I$�}�q9j8���D��$�8N�	'��?��_��O��>'��7�5�F��!6�$�BW�S�O�k��?�s���S��?$���$~B�'�|"A	�_����'���!+���O����g/��v_�~{j�f�w�_���j����[�e����SNsNQ??�i5g�������I�����$�B��$�������p8�'p��u��rI ���'/�758I$���?�6O$�%#��"WH���t�t���h���?��N���'����_�'�@�&����DH!8=x��,}�4��Gs�uI?�$��'�m�!?��I�n�o�'1&���>�?���I���q�?���kZ���QW������H�B�*yq��v~9���L��!	����S�\9��$�p�~���d!+�Br�%i������������!	��pI?���?�<�;�;?�x���\��r�w��#�?�$������5?h�$���\8~�U�:O�q�w��=;N9#�B����?�$����T?�!?O�~?��h������������8�,	5p��>C���_��8p�O�_����x�T���
�2��=�P����������.����`�C��� D'{���U5F��hkMV���U�4k@ID���-e�$Q���k��P�T�� R��UIUk+[�
�4(���P��6��Y�j�])Y4)J�Q��1�R[j!�y��@�|�kRi��*���U��"��
6��4S@eF���A
�J���)Z����
�*B��H�4��AR�(QT)U�&��*�
2*�!J���D��) �nT$�	���'-d��Rh�Y�`Ck�����nq�b7r��Gck��K�sP�cZ����-�T��R������s��n7p6�n
��������T)!B ����UH���6j�a�x7��kn����Wp7U�����I-5M��t^��L��KU�Zd�u��]{p,���7��l�pw.���[��AZ[A-�_{�,�kf��6���|���
�
����s6;�w^�`i� Z2����Z�"�J�j�P���;u�����]�p��w�	�����T&�R�PS_{�%^�f�Z�SY�"���ws��Wqau�
�A��wl4+l������;���l[m� ����_���
��]�l;�;�mR�N����M���T����T4����
���\;����X�	���n��*�DH#�v�kl6����Q�5������p����;,1���
�
4��(R�COQ�����3T�U?JF��dd4#C ��i�i�S�d�U*S@
j���z�����R~��$�JDOT��SMOSM�
�U4�Jg�����@�B`I���40�z!�����?�C����L���I�������c�o�dm�u��O�����c�3��C���5�[����������������]�����W�[��-�����p���H$����������BD���q'h�O������8W�}���o�$�dI=T~�	��������O����NRI'�?�p��O�x�O�����_b�/�/2��������h�Lb	FD�H	2FL�C��Bd�&H!!0�)�	�a�S	�4�!2BA&H�������F��Dd��A���A� �A�$�f$HS)������ff�BL��$�&fBBd�HI���� �0�e2�L��ff`$�$C�����A.�fd$��I��d��&H'8�H	)) � ��H`��I�$�L$�H�	D��	��!!3)"��1$D&Cd2D�"H@��HH����	�� 1$���&L�2d&c&B"JC%�$��&L�DH@H$ $��	H��c$`�`�`�h�@���3BQ&�0c&$�1&#@HBD�!��L�2d�1�132D�H���B@�HBA$$�$��!��2d��F1�d��!#b ��d������)J@�HfI$2d����1�cV #�H	$"��B	2bf����������"#DDd2Q$d��bH��D�d��Rda"HL�!&Lc�0d�I			�HFDccb�
!Bi(�0�$"1"�2F"1&)0AH s�I�2A$$$I2@�I$
f�fi	H�`���)))0�2d�d�b!3,��	IDBS,��2�)���"
f2bB�BP��e)�"%Q�HFB	2$��$I�d#0! ffS0����D���!bL��)1�	30�B@Bd!2@Dd�� �#��ci"Bs�&L�BL�@��3$D� "dH$@@�2I)0��3$$$&�Dc�&d�2a)2d�#����	��@��u�@H �*N�����&I$A$�dL����@�� !�@�	�2��B@$	C&@�!���ID���FI)
2��)!��A�HARRR`H  �$�@`����`��B$� �PR�R���31�A�Q���X�D�F`BBB��!	)�&��0D��R1&H���LD�#�F`B2d��I�&C�� !$�3332�	��`2�D��$�I�"H�A$��0�$�$���W�?/�?/�^d$���`�I�$��I"I$$�I$�D�$@D�����!� @I	�HII) �I�b0bL�$#!!&LPC�"	�&J �K!�hL� �@d2d �H1%3B`�d��d��"@	$@BD�H��`���1�E��F*�0]���
%����$����H�&�4RDQ������L��f$�BI�0I��d��3&LD�$"I&���K�$�d��&6
&L&�19��0e&��&L$D@��;��$DB@�3�	RfP���l�l��DF� �(�@�)D��$�LS#�F$�L@�&H$����"H�1�2c&J�,�L`�2i0`�$��(��b�0d��o�����V��_Y2@���0�!�a�@�	2&L�A	�I�!�&"d�d�D�� @H��b���$@DH�0�H�BH��&@�	�����D��" �$�	���@H&L�a0@Dd&d�J
�	"HHBC2�  �P`�"(1$�2fA�H$�DI�2`�HB���L�0�@H�1�0DF1�	H��%)4b2h�����L�$
���0�FfHD�&BLE�d)H1$@RIA�#&I�L����� 0A�$�	D�2Bd$�3 d���"fd$�&��cBD���� �$�d�$I�0��!)�D� ���a�e$��I$A$d�a�J@!����&���`@���2��R&L�Ad���(Ld� ��$2A��`�	 �30&aF2`��$����"H��0d�IS2D�$Q��)D���0f`&R$dB�(BA$Rb`�L�@2H�`���HHL�H`H)"@"	�I�c1��1Ds�AE&"�Q&�$�D��$��2�Pd�$R��c$RA��J�!�L �$0��$�AH�@�H�!!!H����2H�FD�d�"d�@���L`1b&
"1����d��I�Q �H��0Ha#33$&B���`DH��1&ed� )�L$H�� &
 ��E�$�$�2 ��L��`L����3��B@fD�H#�DRh$�$���1`��ff�$�0�d��$�d�PD`���#F(�������"L	DHHA��#d��F""��dHI�D3 @$�1�! �! ��#D@��Q)3�!�d� �FJJH"��4�(#!�L�I(�d$3E���(�D@Ab0h,F�"I�����#)1	���_�n�����6���!�LdA2���F�$I ��2�$L� DA32�����E1��
1c���L�2�Fb��S�"L���I�1�F��������h��$0`��0I D�fd�0A$h����1����cffi"��"BS$ $$� �Hd2������"4Q(�EQ�gur�����D2	,LJ)�"f 
)��S�%$�b�	IfQd$�b$�2"f2�H�D&L$a0��d���$L�D@������D�A&��$h�cJ3	�ed��I3B	����$���H�FbQ&L�L��R@���fe12����D�R2f3M�H&�H�d	����6&c%&L$A��FfS(K3LcDH�A`1������F"64cF$��BR��4��`I�RM2�$ffD"R�3HiK(��� 31BL�H"	("$�E�4%!&4DF1
�F4����b#���1�#32dD���!�1��RFL����"L%��1�Z1F(IIBi"$J)�!$�e ���i	�D6f����I�RAd&��S&���AD1�����@��H���"4@�2`��������H�4�0�$)��(L%	�BY3B$� ��&M(11Db��Dl�M4�$�3"���i%!1Db��f��$A�&A ��B�#3Bd1 �H� 1@������Db$FJ(��`h��	I"H#F)��E�4lh�"�m���
1h��PDX�E�
6"
���Kh��&�c@EE2��0�	!b)�PF��P�bB,b�(�4F-�K4F�`	2BT�i�4�Db�6BJ2����Rb�0&������4��
&�$�E%`�
��F�c`(���LY(���%E&L@b�IF�EF
-�h�mQ$d�����4@E&" �`4�1�$�bJM$	E�Q�D�1�)��
 !P��S!�$�2H�`4`�����$�IR�b5$L�j

��F!2Q&#����h�6!"A'��d�	,&�I�!BJ��	"�`� fPAD�~?~_���ZlA	EA�6��lF�I��5&-�1h��h���m&��UL&f�����6���X����P�J&���V��F�-0�����[F�F����d3*6��-b�*���"Hm�I�U�f��$HUl$$���d��c
��H	!���d����"j�A	��"LI�0��$�BH�	���FB������g���c��������������_�����H!<�8~�����z�����������?������_��.���G���8q$��k3k2�Z�����ms�����l�F��jJ��b�T[F��V����u���6�h�Tk��5�Q�5�F���Q�#Tj��j��RZ�F�j��Q��j1X�m%�h�Tj5��mW.m�\��F�Q��j5�ch�5�F��`�%clj5b�-]-r�j��Q��������W7+cQ��F�QTj*"��j5�\���F-�\�����F�Q�Q�j5�F�Q��j5�E���5�^5sQ���������j6�F�Q��cQ��m�F�Q���j5�W1h���j5�F�Pk�h��F�Q��j55�F��-��Dm��������j�[��lk�F�Q��j565�Q���\�F�W5slZ��j5�F�Q�5DU�F�Q��j1h�j5��j��Q�����j��j5�F�Q��c��F��j5sW5�+��9���Q��j5*-�F�Q��j5�E�jKQ���*,Z6�F��lZ��j5�����1�MQh�j5����V-�F�W5sQ�F�W5r��\�j5�F�F���Q��j5�F��m��F�j��Q��������Q��j5�F��E���j5sW5�\��(���j5�F�Q�����Z+�F�QQb������
\�6�Z-�-�cW�\�j5sWwZ�Z�lV5�F���Q�F��j5�j��Qb�+�cnV��Q��j5Q���Tj5�F�5F��EQ�����j��u�-I�+�F�Q��jKcX�j5����F+s\�5\�j5�F�Rm������j5�,j5��(�&���cTj��j5����F�Q��j5�F�Q�����j��j5�F�Q��j5�F�Q��j��j5����F�Q��j5�F��X�j5�j��RZ������j5�EF����b�h�j5�F���X5F����������UsW5sW5�\��\��������j5�V66��cQ���\�j5ssQ����5�F�QE�k��cQ��j5�6��E���W5�\��s\�KQ��j5�F�F����h�j5x��E��nlk��Q��j5�5F��X�j5�F��5Ij5���Dm�5��5sQ���\�5r�b�X�j5�F��5Ilj5�F�j����nh��cQ��j5�F��+�F�Q��X���h�5����F�X���EQ��j5�F�Pj��j5�\��F�Wwj����Z5�F�5�F-�Z�F�Q��j5�lm�F��#X���-V��j5��������Q��j5�[Tm�U�F�j����5�����j5�F�Q�ERj�F�Q��j5�lQTj5sW5�\��\���-cQ��j5�����Q��j��j5�����j��Q��j5�V,m�F�Q��j5�EF��o������������������N��_�k��4�����H!?�����Z��-�g�fe���������y�W����^��������8V�"k_�k��/�<��SS������o���N���xo~Y��3������z���n�~���s�!n�������{{w3hw�p������q�d~^zp�;<a��>�nb��������t�T&����$`nt�++�Z5��c���_]���6��wXOn���K+(7�����r1d�4�7�<�yn�����g����4:�j6��7�D���6v�Y�E�S���7�/v�_j��3��J1�4#4����+{WT=�#��������d�C��X���x63�U�h�;�rrw���9������l���Q�h/eN���V�w��:�$o*U�h���:����}}��I�7��*,�q�T�w������U~UcD���H������}@���B'#9?q�;�	ne��������7��q.q���E�X�=��Y%�����@YJ������A�>���%���}J��K�}nh~~��u��6�4�U�N89���m�m&���A���f�/qO�I�{}nL�o�3Z��Gg���W-�N�,2��A,���������Kx��j�vj��[����=��f�c�$u�s�!z!g@����|@�U�eJ	��Bv����-��b��1������E,�����J�����f�t���o�U�'
{\<��!u�����m����,s�\��a�����,�����yq��
{��:��]���.����j�8��j�o�<	�f��]�M>���7)=��
�V,m�!�b��&�����AO8o�	��Z�exi}����r)��x�]���\5�f���=�O����I@�-��{�p����.�_��z�j�U�,
����b<s����a��]����|�k���	��}#�[���~���+�����e�4|$I�}��L;n[<���`��9����R��"��e�SgF.u�+��&��f��lM�k~�7�\���S�8��=l������>�f=�����]������3+3�I�S�>wsJ5�7C<��3OHQ���M}x���_��I�Z�;��`�O$��o��x�!2����qq�N���{������'U�����s2����J���6��2��N>������2S�81+*��#Of����y;r�Vn)��V-C�DP���XkU�G�����u(s�Q�����h2�xr������}xct�����K_me�p��s=�<_n�=a(��L��0��G���C6���|�=�@L�h� ���Qey��H��"�/�T{����u�U��%<���M'�n��aW�V�3�J����B������P�����<����M��hb�N�d��9���i�����|�8�]����r��(���^4N)c5�BB���R�<�q�gSx�\K�nv��J����w�4z��n�v�6S��k�V>x�}�[�O�!�>qLK^Q"��H%�'z"����3pyg.'.����>����tm�rb�J�A�2qwD��ode��0{7��k�|� 8l���������$7{g>��d.��uY�/�~��^�N]����������G0}df������z����q#-u{y4�sd���wu�)���_x�|l�:�N�"�>�
��C��<�8���sq7�b�\���Ofx��c){�x�OTQ�����w)��^��i�$r����r����������!�)�xp�Z�����������)n��h�b�y+��������������6^m��s���
'��e]Q!p�kN�%��CV����}�z��S��7�NMNa����-MPn��4����n������l��~����^=�U��d��Z���
�W�u��/F�'i�*j����8+�n.�b<��������J{N2�Tb���Eo�����`�RN���:�7��UwN�c^�����c������{C}��6d��x�b`�f�^��h�Vv����e���@o�����7<��y��Ks��=���S�{k����:��Qa����4R/C�Js<�wg{=�'����f���������;�eLmM}&Z|7�Kf��,O�r��G�Q�M�����V�Q�����wr��c��(�����6Y1�3�f��
;g�s������2T��1�+DVo\O�����/����g��h�\j�	x���0o#����Sj��|M���1�U�9%���e��XP}�%���`
��_�C��D�_��#=��{&	�W�������\�
��s�Uk<OyG��0�����}�����u�����n}��9�T�j"��(z�n<������w����\f�������7�����|J~&e~8�(a9�|0�������cT��������YNdu���X�b����*�H����];}�k�D��������Y��{�p��R�>��z}��Y�p��Q��:�~�#����?��8������g��tw��{G��H��	7��o�w�����>K�`s�\�^���
^[O2G��rk>�����;xy��
a��=��/������s��;����'�g������a����J��9fOV���/�'��p�������/U����:>|z;��;u��������T�[Bv���J�#|�����a��3Mw�w��f/<N�� m���V���]��]���9~0mu����*�.^�~��F���SW���������Z�������x�r�|,��VH�:�Td���:.�z]��==�[�;�t��}9��u8Hxa���j>�s�+2f����Oz���n
��������Zvr���7��F�G����n?7-��sn�
C~�P�m���������p����z/b	gk�Nn�dCom���7�����V��+����|���S�,[��s�ol �[���d��n!�D����.y�Cx=q�Ao��k4<���g>�S���?0}v��l+(�d	W��vv�r���4vN���������;����0������#����������}����
�*B���S��4����2�l�U�/g����o�Nl��s���Fi�xnG����{n��w�z���+������Y�w���%�U��^f��K�������s�U��rwRu����-6���������l^	��nTL���77���8
�Px��tt������*�?u����A����k��$Y���Q7��3'���|�-����u������cCG{� >�k���oh`����{�>�D��y�N�/��2O�\��6�:;�Oa�����s�nz��k��7A^>��U2���z�.�`����>4%���v��1m��my���y'/�y5z�8)���d������8u�g����G�U�f�E`B��*U;�YwZ���_��{m�$n2/U�_�b��h����=����{�/���+�5��]}��Z��:�/���~�7E�_��
�w���{�n�Y[��/g��d�(�G�b���VOj�y�K��9���=����g�I�s�=`������V��gz��]���k��Lov�����\�J��O^�as�\�}�]\��yO]W�~�;��[��h0?m��@cvK�j[�3=[�e�DQ
=�z:k���S�N�-=�����^���[�PX�`���
o������r���J��F|{�$\y�kC=����x�%�.^���s�Z2���-�{�5�O]��������C�s�C��lm��o��o���������>	�Aq��\y�5n��c�{�e������k�O��{�'{Y�v�)~B���H<ZH��/J�V�B�]^�Nw��:7{�A�H�]���5���Dyz'Oc���^������3������9T���<M��~,�Nk���v��qlPeC��n��.���]��>�5����A6�	��y�R������F�~���s����{NumN�d��������az�9���,:�y���43.�<I�'d��5f]Q\��P+�����=��v�1���?�1s�u��2���j�,Jj��E�Q4�������)q=��w~�=�r:�'tn9]�m�OS���y��EO���w�w���^J�m	��Ww�O)�V��+y�xw�G���������>����U�a��1�$���^��6�7������Lks�%�+2��w�qG�B�;��<������K�~��<�+s����I�{oob���,���~���}�p����{Q�������H���Wls�s����~�s=&����Iv���*YXR���|��T�:=-����z�g�����7��������3\���`o�M11�d�z�1��G��w2��v��2���z��>U��x��L�c���3s�.�\����w���]����J��KY'KN��f1���y��u/Nga.����^D��]�M���o/p�@����9���$��P(ng�6g=\����{�_$���s���W��0Q��m�J�mn`��Vo����}EzH��8��[�����:=���^�,�y����������{��J�H�L�����_lo���J�.�j��d�1�"0�RD~�z���!������.i��D��t�WPH��	.��e[z��3J�I,sj+6��9Z�;�q�{2���8��� w�y�����h��Q�RX�{rb����2�F#�e�c��/n=tP-o�xKA�;&gT���������$2����w�><��/MD�!�o`�� �����L��=0�}�����&���w1c��>�5gjy/f�}�s�S��^\2u�=�C��9E�^7���>xI}q��#�<r��s�{����g��@^>��<L�3�>����
�'\�D��F���g���s��4��,�#�]�ew��"�����Be"���yFv���9�'��vV���fI��.����U�zqO)
���F��#��'��.��Z=��N��y\��g<���",1]<I����Q+o�������4u��x�c����]��S�*0��s���^�~�+�Y��;�����������M������e�+�M�a������<�1�y��3U3��?w8fX�w��g/�����c�����YFA��-���kv�E�[8����qp=�sq�Um���=��`{[#8�f�
Z[�n�����'�a��f� ������B9�Ip7��Q�|���v�=�.��R�i
G���D'O�f�
��Q��{F0id}s��<0h�,��Tw3���RN���O})�<p�1��A��f��|x�,���>�:�2w�=X�������oP~�z. ����}*�����p�Nm�/J��s6���i���A�1��k��/��}u~����H�t�}_�|���x���*I��)�{Z���a��T%�/2G��7���;�rr��������9�m����+�����`������]=1�I�s��`���nap����k+!U���e��bO�}�5�2�Q�n��;�}����]+_�u���U����K��F��9�:
e���N�������:YNy��^�,���-���|Y.�/2j340P�S��^�<Fq�
�|
�le��G�x���A�zB��:}[0Xd}���u��8�n���!��j�����s��x�{Ho�C���M�9?n+=�2���+�_�������f_g��z'����b(�C�$l�B��z�������L���.[�����;|��yT$��\���q�M
��K8���H�su��k5�v���k��2��vaX��;)xC`����V�g�Y��NXp��ovz,���e�����T��7�$�v@z�i
�������+t����O�\�q�����O=6���z���o}�NQ�i��"k�=�1��%!<=W7�j��r;sz�{���kd�V�x�*[�V�E�s�[Nm���+�����=4���qI��^c�a��3Q'�f����5yW�oHK7f5�$l&�`�������J��b=���[�����U��1g��).�R��k�������*{
{���v}o��D��O�aj�rCN+����X[������7�"���K�zV���Q�A�M;R�7���|���K�,��������x�_�_{���6-.�3�EX�4��Ds8���<�
m���y=;����w����i�\�{ZxaY�~�\�%t�����������Wu����,��A��o��aTn�d����7���Ki��J��\�H\����I���\Y�|��q
[�i����^��X��+���2d��{��"����*����d-����?2��{�zp���k��p��|��r����L�
��;ge�I��|WK�K������5��|Q�����`���L���:�`b,�s�A	j���e����Nq�������@�A�^�G\�Lv0�P�����|�,��������q��>����.�(x�^��q�7��m���f9���������.%>Mbt"��V��0�c}��OA�������#�nW��y
v)��y��`p��=���T���NH������{���G�����1����)n�7o��F{�E�BWZ*���)�%+W9��WN����Uo�*i���Fi���V1Fs��6��Y��Nz�NR��2l�kwY�z^j��Z�� ^���H�]��a%m.C|�<��090-S|6�����bD��������q�L�������|R��m�B�����P&������+��+����p�-���)���U2�WI�����Ct��V��KA�����<�������Z����d,x<�nc��3Q��Oz,>� #T����a*�J��k�=�0d���������w��E������ki��%)��X�JCN/V1U�]�������/g�.�����9�u� Onc�U��>���!^w��z�9�J`�:��J~K����88�j9eb���(v+{�������s.�K9I)��cM��I'�\�
d�����g�sG�i�}�r|G����K���(�rg��N����3��<	g�T��r�z������]��������^���H�����������G�����=	ugemY�����T�"{��`�g������nW����K��rh�{<�����_��>����sf����)dhi����y$����[9��]|�u�&%�(��3H���j8Qnc2���d�a���D�X^��\������Y���Tyy��l�����u[�$:��1�����c��G)i����&n'�yq�1S��������rP�f�a��F��Ik
�]2�%�����P��I�KZ��6�rS���1k�Z5���<{�,����xn���q���H�y�H	��[�{�pU��<(%����t�������s�����m�Jx
�-Zn��c�q:W�O�-�S}�oI�3��z�����6W��e���8z�c�L�A\��X�.g}�:.�R�V����������l������+�V����Y&'�F����-��
�Eyk�R���W_�:O��;���������4u��.<l3���FFX�B�(��CFk%����s8��Xc��A��d��0�?����/��C�I���Sw��x����^�{��Efu��TG��l����2��R���Z��3F�mr�U�]q�������B�	�}�������=_���i�~��.rJhR����x�wwo��kZ�������z�q6�$��/w����W��C���n�:�����N0�>wM���%��7�8(uD*�F"U���x{8�WT��r+�~��������[�4���y�yX�>��[����b���+DX��f��������<���y�6[�.�$e��x���2';�.d#�����;�k�.���+5zg�5<Q�g�[{A�tq�4�A�����|}$[�����b0������;��n�O���Ed�S�H{���-:]���!�a���{:�^�u�u����6��JTi��������;��o��h�����"���G��3.��6�]�M��t��=���P������V?
������L�F�q�j��\�#���R�������pN{e.�Y�s���{ng�Xy���7q���M��g!�������x�"�)^��
�ve����03������5;��E�������{i+��)��d6�.V�i(������{}]�,��v�=X���-�o��Jg+�)���{J�����><�.`�
h&�F��1���qr��_/R���v\�������bA�~8�q��.{e���/ae
����TG���_��>z�|�n�yg��a.If�H�zy�-z�[6�����m��wDTe%����q������jn�fX���W����6��+&��v�

�l�����*�(a���YH;z{n�����7;W`n���~��/1U?h�8%��:Iq���N���s��lzi���k<%^5&+�m��}{��������Z����R���2��oj���<��&�=}�Sg���)pc�|:Wj�,��	7�B����<����1{k)��v�j��y�����T)]�\���U�9'����Zugb5�8o��
7Zjx��]�;��E�1]�k���,�6�_�R�zMyeb	}%�m
��%�)�5f�g p�|����7Y�����/Em���n%Zu�gR�]t�����h�&].�����D��]����(��X����'���-���T%p��f�T�;=�My*���{V<�/���Jo|,���T�{�f�.K�sCe�������r������|���s��y��1W��u�0��S>A��!�V|�)���Rbxs�w���TuO�?<O�T����|�v����4���z>����+5�k8�[2?)��-k~D�����dI��`�1 {�%�*�H�/.*�����k��N~����|��TF�Xc�yMG���1���-�h��xk�f`�o��g<w��^i��R��.I�:��oj7�����=K���j]|G�/0��C}�U�=�
���gOn����!���o���������o��r;���*+�Io�1-�Z.�}���������������r[.y�vW/��yq��5����57C�(���N�E�����H�������eh�)������M�R�]i�sI2�z��m�������c�[ec:�k�Q������:���k�76��>"c�/,��l>}��X/�
���X�R=v�5�������G_��-~��n���V�wg,��cJ!�����c�T:�$9q��w��bh�V,g��}��s� �I�j��G�����4b�Lg#��.�=4�."CD*�g*��h�a;��Wn$�'yO[�����'>�]�9�j�N��?YJ�9\���|��+���x��������<|�g��<�"���Z����$?[;&�,3���}�2�t�^��������86��Jw]��-pr�k�Xh�0�Ov�RI����2N� �[=�j*n��������������k��������)O���y��s��)����*P����;�	���'��o�Pz��:^�p���3���WK9vo����5��\A)o�_��6�vr�'|���A
L�fd��+.mWe-�6�� �pw���+�F	��(v��%�A�}�L��<�i��=bH��FQ\�c���cF^>A��j��5�_�q�Y�[���|D��������}�3�F�1{�o<�����������b>�8����!�w��S�$����\3���MO�|$�m�U������L�� �QTC�<�bY}�2h��y���)/{���s^p<��������5�.(L���������wua�@��m���6W��F��7�n����t�o�7�������/�}�]oe#��o2�^S��R�M[;n���f��!��:�QM����������L�j�7�EIx���V3��6q��������o�a/f�����2�zm�fwG���-LG�)���l���;����������:�;�|�>��������G�g��5�QjK�k�����n^f���)j�|�}z6�x�{:W���(2"9Zj7�����w��������G�T�=�ey Om��Nl�����O���/w���!��JO�T�)�=n�����)�;�^> u;�2pH���{�=QNc��=��8������9�W�KF���|�Zy��nfO��-�q ��:<�P���u��1�o����&GZ0y���kD�A��4f��mbL��Z���F�-��'h���^��;y��+�	�'�[8����|P6n����[�B����m�RCozW-r�Ly��,�����uPs����v����4��#�jG�������?�I$��H�����?�?�������[�:q������x���-��I
VKk��DkJ�_�1��IBM���1�/-:LDH1j�` ���wN�I��$�H�I"$;���wu����1�Db0DG���-[��-^m-_���;��wq�����;����ww���1�1k�������u����" ���)�H�������wn��;�Y��1�k�^���������w��������QF1�0�N�s��<���3�ww;�������LDD
��,QM��:wq����ww�;�;�8� � >7�N�;��|�N������#�QV\�c��v����1�cH
���""1<���m��#��b1��"(�z���t;�� ��"�!��Q�c�@
��������1�����i�l��H��'��w�����!:���"1���c�c�1#� =���w]�r����s�ww:����u��Q�"*�k/5�]^��`���9�s��;�ws�q������s������<���#�k/;��s��s������ y�r1�`�0Dj�@[��DE��F'�u� �_<""'�����#i�=\�Q�5����p�����9������"���1�Q��F#�j��[�g^I$5�@!�����;�:s��wq�����w]�;����Db ����7���DDD�G]�k�b0D�y^xD_D���q ��z��lE�1���������s����	� =@��u�(�1���������.���#�$���:"	���` [�+\ ���DD|�$:s����w������ ��#Z�"�=D�b������";V���"y�r$�$A�!������{�W
�� �����`�<����]��������@W�DDD
Bj�D���I$�����H$�2|�$������s����j��� $��DDDAp�z�s�9�wu���;����DD@J@D����w]����u����w8^V���a�1`��MM���`��"H�H���s��w]��rws� ��$���]�1`�"b���B@|��r`��F#czp�;�����w;��w;������$H���K�b"#=��"?s�ws�w]������o���"+�CWE�m���D{�@�����A���G�����S]���y�����5�����@��b":��e�[�jzB�z��W(� =��kLDO�����0@@<�t�� 1x���9�Dp��rw;��0E�DA������z6���C�  �E�D���������E�{��F""1��C�D���1F����1E4QE};������/�;�r#��bo<���""e��M���v�m��m��m��=� [���y�H�>��w�wp���  ��1{�A$��c��}����wws��m������	 �����n �xs�����������1���{�|�#�^wt��w�cE��G������."|/�F1���(���Mo�!��k��m��k���m�������"""(�D=w;���.���1|�DAE����������������wz���;���.>rF"��1��^I �I�I$I$�I$��|�|�DA�����$�^���y9���#�b(�#b1��5_Z�z��M��I"���1|�9�b��������F�
1��s�:�A�[��<ko0	<I$�I �H$I$�O;������D�m�;��s���s�ws�ws���wwwww8�D@A�"!j|@R�*�;�""1DQ�n�:/�""<�b@��.��m�j � #�s���<�.����'t����H�R#�1A��5�<��]�\�;���F"���c������www�n���������w;��������F�I$<�g��I$�I$�I$���a�I'�������wwwcDA	�n�����a��my�"1:1|F"#E�4{;��.s����^^���������F1������<�9�wwww�ws��wws�����v���Db""{������
���z����������3���_����D�A	���A	d�A	�T��$�Bu���#�$M>?��?���A	���$��s����~��8���_���?����q���JU���h����WV�]n���6�u���-���o����}lj���O�^���R�y4��T�iw����)�����eTyg����rT���n����#�s����M��v^��������C�}�S[��*{9�2�2����<~S�
sH{xM��;-�f��.\"NC3sb�7n������/������H�N�>�v�p4/.U_�4R/Y�����x���zw��{K��Y���,��-e/J�Tmv�f���8W�cs��o��j��`��f�n�w7k�H��Yq���y�8�f�W�%���m���kkf\T<�v<���t3Z�a1.-�m�=w��x�ZWq6Ib���n6T����/ !~`�b�CC���m�	����WTa$���rA=���3��_f_s�'s�@{u��V�;=��\����
����x��_���x1.���=��������=C��z��D����� �l~P�oI���i�kc�|-���!���y�>���>��Y�h����1�|���j�P��8�Ov����Cu���M�q{,�y,�����d~����D`����p��zi���Kv�|��}���3{��8�cG��}��������r�9���K4
�w�h�gwy,�����wr�$����i�Z�bW���/WmEv����s�<�:�Lb-�X�7�z/�;�������{vdj��h��T�=r�\Yi���
��NOv���"sJ�����%����:{��o�g\<����3��<CoO����3y��1���E��_:�*��n��<��kv����f�V-.
�s���H_SY"p�����@P7����s��^ouXx��?c�5�w���VM��=Y� �����y����4�S������~�,��V/om�x�[������BF>��K�rmX)��g�2�������-j�K�;������Gj�-�y�������]�M6��a��g��e:u<T-U{	Q��my,�K������`��o���<6��{��ndK�������ynl�xP\��z�Q�<�hD�������II��|���>|��s���7�����[�����v#�6��#Gwn�k���=�pll�g�T'��*Z��-EY�\����XbsiO�uy��=���g�uk����]��{qz]q_�	�B�N����;f��bv��=�����x��g\��R�v�i�2e���|_{��*y`���3�����<�W����Q��RD�g4��e�����n�����J+����]y4��������=C��?�rV��Q��9&{����2�<I��������d�ln,��=6������p�C�}�	��U��7M,��:�=�<9g�k���lY�k�r�h��P7\����v�f��}	����x��>]���f���T�:k��;o�X}�v��J��^���<�zV|�w�o���*[&ff��Y��u��r�A�)XVQ�@���`�7�;5�S�Q��i��7��->o�;��^����]�A����W�[��L�f�=^<	���Y��T��7|�qQ������-�A��.{���������j���I'�.6�����M����;q'�7�������\��`<����-������;��h����<�������|X>�r���������=Q�����n���c����q��������=����z�_d���c�T���I�i7�
E���������B]��y=�����m�m����GWi�H��|u����
����y����{�Tb5�V�����Zw�yz>��$��]���������y�O\^I���$i��Z�:+�8<���z��z`&��r����C�����a�_������]~�/+�;��n�&�4���O(I�'�����b�wrb��K���b`k`]�X�w;�4��3#�]��m�R��`v��g���E����sM�Y��u�V�`��!�$aZWsw�/���d��Z{t�__l��� ��|�|��7���U�u6H���b��,�7�]��u=G�9{`�3o,���>x�V�f��n�<WY�������
%q��By����H]�R�"^��p��qg���wc���o-�z��T�=��������A��o�j�7t���<Hsk���8V����S:����������Ku
S#��
j���u
�}��"�-���wOW�zmd����P|5_+�u��9K�������1`���
��jg���V��rZF1Z�&�:���8LP�6���Hr%`��g�t*H|����*��;����������z�K&���@tE����]nX��Nt%
���}k��'W���+i��%�.�:��3[:U��)��3��IH^����"/�G��7}���V�s~����
,s�^�1����3Mm���)������<���qE�������o�;�|u����I���$x��i�&>sH��q�������E6n��=�&���#�������Z5�����dNPy�n����z��R��)�G2U8��{^n�����^RN��t8����N������ �����z�>�!���St��xu�F�!s������#�v��u3��_	���[rF��J�xM�Ctb�����Ob���Y��{�>�����:����3�u��exP�So����1�!�}�|'a�|���]����V��@i���2�-�@�C�`�*�����D.��E�L�]}��"�{��L���L�L �mc|��QO�B������}�a�������nq�Sk�wom)��M��)��WE�w��n���4�>�Y���]z}~Fgz����6�6�6�W�ve#��|�^�����R��N����V8�S��nb��Q���=���\Q��y��z)����{��|��������;�2��||����j����_)�6�^�?v�|����>�T�j�e��"��F��^�L$��-�{��(����^|g�dZ�0w�����l�������J�t������y��)��=>'(_-�<�:|�C��Wj�/s���~hv[����T[��ty�w��/�s���Re*�v���� ���N'<�����x_y�
{�/��S;������a��O�.����]��
�=q�x���5��#$��_y{��w��k^,���^ef����3����^�&���4�7�*u�gI���A�]|%�������sdfy�3���v��O8D*^]b�fZ��>f��O6�M����qvN��#:��v��
i�W���H;fz-pIW��U���)����o����=�&����&@�%?Z${���k�v=���	�{�����\&���g������kB�#3�K������������HH��	�\}�A���<���2����v���D�)]�}�S
i�7v5�:�0={���>�f�(�FR���B����{tH���E�+��T�Aw�{r��1PB3������z���oE���6��C��k����3���
;�����J>�H���^�B{���FS{%��/3����Qvv�{`�]s��t�z���k3�����r�r���v�G�e�PK��+Y���G�����r�>-8���P������8y���p�|�sO���~S�Z*U"�R�n�X�wc��p
M-����� w�oL��w*p�V`�wO��|�ey��o57��H�cw;�<Q7�x�l��������(��Z����!�p{��i�:+s�*��}$���L���m/�y�;��U�v��w�H�������@�v�����9���RM[��4���d�^xC�wg�c�,0)�����=�K��{H��8��pVO]����{g���������OK��e>&^����?O��z��m��c���.x���g��nn�<^�}��^]��� d����=gAy�b;��o[�[�����f������&�*�
��,�r0����[�����s�|K��
�c��y��5aw�C��eU�������Xn��^���� �v�������o��u�\?-���Uzz�{H��+n#������)��u������8� 6\�G�T_t8;�h[��6��1#=���%m��_i�^��[���e�LZY����Y1sOh����6�����o�����w�)�<���F�w���W���Z:�cQ���:G0��q���g*���V����o�<m���_��F���
d�O*�^���Ux�������@�s���^��k��<<����#��.�����G��_������1��z���`�VS�^G��W����8Y��m���LzO��Y�y!�a���n����9� _6
��;������L������;��t%�8<���*Kx�������;1������v677���M�C��N,���o<������'��Q����o�]��< ��\����pHmr@�^�a�e�������V�4c}�.�Bl%3����y:����}���i}�N�����h��m�#��[.B��V[>�����%7VG�Y�kot�����k^��n�g����(��<��X�=��eS�����6���<C$����'}��l����@/ULLU+3����+���~������r�����������.�d������x��L���3u��+Rd�e��K�A���YL�9�Q��|�0�����WkR76��ef�y]EF��d��E�6,���z� )��ilW�����#�`U�j{�
�]}�0�~�6�ry{������������y����F>l3�A�.���
oA�g3�^N8��r�8�^��=�j��l�{)x�N���������N6��O��L�o_G��	�{|�Z��c���"�E"��I���!�'����S�B9�I��=��=����y�X|<�8�p^:��%���j��	�8`����up��H���dp<���9>�y�`���K�p��>cW�����"#��/A|���f5�=����e��y��,���������eL�%�o�`=�9������z��e�f�(������g�*f�hd�AW�g�/��U����{��Bh�v=�;�{.�H1y��lY����f:�o���fm�3�	8�u����H�������m&}���w����Y����a��k�M�nK���t������:�'te���#V�z�����F.H�4��e���V�X�aU����|�<=b ���R�e�:q��nS�`��
��S�t���P������������1TZ���.���V��
������`����~^'�Vm�j=\��	��o�k~��<�y��1����������)r�yq����
��u��V�c�*�o���,z�vC��x_��-u�v�������_�gL]:��V���~w7�_`�vv��f��[ ����q�����5��s�v������r���WM�:Mx*�����3�(,dk���mo�^��M�'�g�}�.dm��Yt�N�4=���[�o����f��Q����D�>U���Z#�<�B������������;���[��=�!xoy���|p���������{X&�=�#�X���Gd�}X��=ZsXM���6��3I>����'�Q��}�;�Y=��c'"c�x�����l)�&����:��
Ot�^�����,�����:yA��Q�rJz��H��l�K����o�|\~F���}$�	��U��|S�UOK^��|y<�_^��<��=}���o�+vl<���T�����O���g,(�+��s�/��q��h�����G��*�bmY���h�������=�G���HO�_���6s^_u�n�l�daj�p~qk���c���9._n��u�M���I6M����W���k[���ic�zG@�~v��+����{�~�k|���X�@�M�c9�W�d���6�C�T�]0=��Uvi;����y�z{}��~����d�zV*��yk���)�v^nm��%�T������RX>��\�U��r�K{��k����"��E�����-%6��oi^��^��=`��A\�gg�K7S�/��}w��u�ur����Wcs��i6�r5t����/����[04h�R���}�I��T��}��F��/j���yc��'��3"�-,�=�\����E��������!.������q��o��]��M��7��w�W/�<����]�H��������z��r��Yv��,�����%���������g([����rZ���+�MM3�]���,A����f�6��������+�����p�]��K;���;��gxdm.�r.�x������\[��D=z�.�/^�@����{n�sZ��z}����6��v��7sWdI�bSW����Y���"����
�������>�j����������4�533v;t�������}�_�5��{0_��
������k���L/,��k���fI�n�;��<*�u�\�6��(�����L��};��U_��H,����=�.�L�y�1EiA���6��N��z\��i������}�I����v���DM;�1�)����-��$U������{Y��^������c��n�����3m�]��Z����8�`��N���b��<��Lm�_5���^{|S�x��T�n�(�s=���/'�6����n���[���|�XLqBq��c���y��0�l�����^�oa-��e���X�~���J�U(�y�:�����k�����Rk#�2_����3�/z����^z����9:ED��=���c(l{����\�g���p!���������~[�}�-�n�8K�3=����5�8����a�;��9�����L�B��������=/E�u�S�?���s,_���D~y�����z��;�D�hZ��[b���A����6��.��@�n\'�O�y���]�->O��X���H������Y�����O>^��\�.Qt��������s.�������oj����-���h�t%���ig��W�0��f^�"�}��:/�76'uu[�����j�q���f;��O����Z)���l��]P��}�����������N�WS��iH'�Z����kZ���~�;��G��az���8��{dg���,%^C�n(�z���uYjdE��P�8��1#^+�sr�5rv�*/rqM��w�����t���k��W��=�^�K3���<��y��5,�W=Fqc�kg��:�'�X����5��&#^gJY#�.���M�'�����1O�b=����� ��u������30����U������9�1���.;���������z=_s�o�m���;;�p�>!F�����YI�#���qL�q�}N����-r�S�3Gf�<3��{}�7Ua��|�/<�������Gb�+�x�����cg^��������;�
%Ic�.��'�y����>~��,9c�������9�+���`�iVgU����z����������'��{�l�lh
Q��C��#Ox�T/\��%�{���I�1,�d�-+��7&}�������<CW�*�^�1�w�Lt<�%�"3�����]�/{�|��JWE
z������������O��
9����=��=��|5��y*&��Jy�����f�n����4��2��`��cOT���?���/��+��ib�>i�s�w����>�����|��	�;j2��n��>��7�����w�fV����r*��q~�is��>���xn�\4���=z������s��6���`�;H���ma���*i�e���G��^��F����O�9�k���>��8:�e�Yj������Z�n�c\���{[+���>�Y4>�tO.���S�u��b��t�]����\�h{�vk�w=���QX|ch��6��L������k��\�M��g�3_���Tp�[���y���t�h�7+T��*�:mE��B�S$�a��/Q���<�Z��u3�����Q�{cT��^r��nsd�R�1KF�����I������������<��*�����O�k����6I�p��t�w?]'�0������V���s~���z��
�V����T��7����d|4y�Zi^~���E0<��j���������Um�=k��7<���;�[d���W�4Uc���]��.��n�,}��'���T���7����<���d��"9��^~�����C��v�(��t�A���*���WT�)����z;�]��G9�v_���[[����f��|�����PtrZa}���G��je�u�V<��_[GAS��R����Rlv{r��F�������������~,o]>���x������,�-	����Q���b������8����B7s!��l�R�z��oA����\J�gr~'�U"������:0`�Zk�6]�_Ox�_���S�����pN�
���1��\y���_k�nwV�~(�����WI��l�:l�jw���S���V��|�>km����/=�u����+E*v%��!i��=&S��v���������f�o�k��C�"U0bzi��������9��=����'���h��c�}�_� �=����2���C���?c��oR80�0�Z�����j���=��/p��+�ej���=���f�k�")&���Z��Y<G	8 ��Z�����&������k��T��� �.�R��j���-Y��5=��&=�#��:�r���g�6q� ���6�N>��^�Fb~{�[���*	{��<�+�n�	GY�g�ad��7H��%�&G|�]qKe��Wp��=��'���%�k�������:x���-���qm����]���e'����}�n�������$c{�[��r���if����n4����.@x��O��j�y7WRzv�����T�j�cs-���[��R����K��������F���}=.5G�&og�r��'���Mzm��R��_d&��n��y5��b���]�fy}'>���:�IK��]�TT?0��Xt����=S�:n�m���5��L��MOA�V&]�y�5]�����yk�H�K���<�t��:�jv��\T��Y�?J�YS��������8��/���{���������J���f�X�;@*��|�*3���;�A��Y���8�PT�L��47
�Oy��%.��V��y�A�����M�-�4=��>��f�����s~���v���q�B\�wy��C_��aeCl7�����������u�:�F�W_${(�����J~f��J���p��a�Ko����>����l��bG|���z�����KC�t�=���]�M��D�U��,-���B9n����kxs�]�H��y\�m���8w���L�z'��� ����gJ-<��(��:�\L�7���?
��)�`�}�D��������5���]��s,a�\��/yN�<$�^A�"gjr��'?\�����'�;G�w��~��fa�]*7�c�4�M]���^��z���=�of�\�^Qy�ag7^�C�u��[�5�����F�����M����=s������<��D���gs����}��+t��[�\�a�c��]��y���k�����K�����j�/�8��Oc����p�l\�g������x���G����q@<H���������tX����c��7���aS3��nW��s=���D�#)���H���k2�N�u������D����]M��y�����-���4`�Z�B��x�8��]���]�����xM����wL��b�>�*�MkHO���w��\Ec�t��zE��x�����+���3�<�����o�`0������a�4.��!������c�oe�S������gu�����^h�@�g%�P�����Z��z��f�<����.���������w�%&�a[�����=
���So�����\��~p]�'1xT-�f8��i1�uz��Fq�[��"'�A��nm�W)������F�h���xk@���H$k��R���]0K:^�2!d�[ik�=�L[�
��>���<�(
����2�J�s���fi����~=|]N5l����T���*u���������<s������j�=���y�
��n���v�ygN��S17�O[�|�M��O'����o�zD�"��uz��f��+�W.^V��i�n���C���zI|�>�r%��nr�
����F���8Y����-����
��q���^K���R�r��?tR��fOI��B�
���z�^<rn��y��v1h)Os!{&�r7|��M~�<Ngalu�ZOZ�g��m�c����������O������fG���������y���O��&���3��������/��8���������c��~��"O���DxLH�1Qrk��Li2��ji��%�y�A��^D������*��/��7�>�e'��o��L���5U��S}5s��f�u�=�;s�����y<�R��t���zM����d//r��|�����Ob����[1[�([~�zg�:vM�o7=�`���������lG�7.m�'����q�����n����A����;����]oM���8��0{{7j��U�~*�&�x���
��t���x���i���%���h�uo��%�}��xd*�z���v�3'�2�h���B�m��q�=W>y}0y��7J�(nz=�:�#�w7�=S�<V�
@�&�����X�	��ygkT�"Xx���N��'"��p����?(��(����QP���1�oV�>��wR�]�������Qvk���U���l����m����r�����n��g�v%�%����T�UrD#����W�%F�d�r,�@�z��Y����S���q���]�����J�������Cb����v����NS.���I�"�qwU>��Y���*��������<����v��&��o_Io��<0��}�d�hc�i��8�^�7/J�Ys�*�n�Gk���3��4��K;=���9�h�UP 9�A��{�{x
���;���|���N�;�����������>�����y�mo������>�o�w2&I$����&)����f���e<[��TC���G)x<�(���]���oPe%{d7������K�=y���7�t)�x�����u��n]����9d��K���N�]���L�g==����s���,�%�e:�[�����4��j�V�S�N	���}���j[�_8�����<|2����l'n������������'�����Q�N�
/p(����;i�Io=R�7����2����r�w^QiI�����2�V��}��h�;��3��H5��a�M����.,�����s9l�����w����x]��g?Wm1H�~��f��]:��Z�7�1��jE_x �Hww���Tv�f��7�n��x���3s� �r�|�w<z$��>I�rA��'�A��{	<���8���p |1/a~�������m=����t`�3������*��?'�_z}���u|��}�U�Y���zv��{VS��o��3�������u��=���A�d>����o�������������P��)s'����6mV��+���w����g��2��T����:2�g�^4tVw�1����v��&���wcE�sTKxy��F�Q�[��hO��ks5�
��X��W<��]�E�	Z�Y��M?!{\��|su3������Ye����+�����Bn�U�s
{���3�=���>�F�����>��.�N����;������:��ch��X�g�^�:����B�+��f���{��l��7���o>]�/+��a���d��'F���w���Lp����������s��[�
J����Y��:M-�H�=�9���6��@������8jC	o����o�E�GO��/w������VF���x.�������Dm������r�O}��W�����;������.�B/iW=�^�S�s�)nS�$������h�x���P�����q��z��{��RA�����k/&��n�3���&�T�L�n����lVF�Q&�
������M�~W�u�K���nM*�O����mD��[*���{���z}��4��n��Z��{�n*�������\?J��]hxy1��l��x-Y��
~Xs{��6�
s��
���p�������!J������d���I{�Z����;^a�-�.q�o_��{��\.x�=�=
=��K<���Ji��+�������h|�3t8y���m���;�}7������7����V�~7���N�o�V=���yn���vc�Ok���B�p�r���.s/3���gg�g���~��$�&���fRs'��5Nbf\����5�0+�ntNyxfK���-�W����"#���U ��,�[%*9��Y���^��w��/_��<
_��N3���Ok���[�,�i�*:�������x�H����R�Z�Y%���Ut�r��T�\�����������^�S�^F}K*�{k{�{���������"���}��U���E}��&g?Z~��RY}��l�U��&��Q�����U��k���_3:���X���""�~�������@��"!���i�5��?�}������F���vsl��TvJ��#�h����U����_WRn�_���{�WTn��V]���a����x�LN�K�*�.^1;Nj��s��u� "�=������������<z���;v���n��v�����������>>>>>>*�H������������(�.����������������,�2�/4�@��X%��X��(��Vi�
B��
Afh��3I$�f����(��0�#M4�P�0��ap�k���F���c8cp�s�j�]�eQAfL�0F�i��h@�4��|q��Z(�Z)������yiAd\>���0A���@��N4��|i���a�YEe�Q@QEQEQAva�X4��|q��QA`hp�@#���M4��
���0����,,��h�	.��0�M��XPen�2��a�eQE���f
����YEQEQ[�w��R2��,�����(��(�
4�#,�� �p�1���;������`a�F�F���Xl�E���=�2�0�#m���fQEQ@�@<@{��C�z+(����E���|m��I$7wt�(�.�(,�+�(�QN���
,n�Da,-��&#�zM.��h0'���A��#|`"	$�@��YEP���(,�0��p�@��@0F�i��2�F����B���F�>�i�l|+(���0�w@8d F#wM0�,��(��(��(��(��kN����d#8���(@���,�E���q�e�QEPY�a�X�4�M4��X �a	��EM|vPX!Nl�,
�a�a�YEPD�e``i�|q��1����j�30$��(���2�(��8J(.�Hn��H�B=4�a��j��2�$hp0�����PX(��p�PY�p(�0c�(�(��(��(��(��(��(��������38l�'`,�`� #���(����zP]�QEP`]��2��0���(�x��(��(���W����z�^�{���c��Q@#N��i��a�a�a�XPXi����� ,Xf������2�(Vm��e�f`��0�m��$`QEQEQAfa�a�YEP$�H:�
�8d0�#c8.�(����8dzp�d"���ffY@�����a�a�a�a�X#N��2#@`0	$��m���|m��A�@��c!!@� }��4HF�(�4�#�a�a�X$��p��VQ@`��'QAf0
8 �B!� �vQEQEQEQE2� �a(�Fl��Y��A���8�����`���� �```�EQEQEP$��� ������z+7wt�x
d�#��0YA`�N@�����www��QEP]��eQEQEQE�a�a���j�(,�(,�c�������@fe�P8�(�.�(
8a�qC�Bp.P��(�i9�v��(��(�����(����QA`��FYE���o�I n�(���A�N6��I$�VQE�a�e��M4�  @h0�a�XQEQEQAfa�QEQEQEQEQ@��1��wq��I$��9
�(���������yW[���I(Y����K�B�	%�ff`$�+����$�+X���������X�Xe�XK3$�%�fff%v����`	]�T�I%%�������{������v��Y`	Z��ff`�J��w�������|�T�����J��++(R�J�Y�XYY@	$�@f]�$�1P�I]�U�ff^e�*J�P�y@	]�T�R�@f^e�$�I�w���J�$�������m��3H$������3.��*T�+Yj��������J�,�3.��*J�+X�����J�,�2�����,+X��J��,�w+2�t��,����I IZ�+2�%�,2�,R���I$�*�_/����T�+�2�����,%�,++(+X�����IbK�T�����k�����v��i��n��v������s�v���v���n�N��rI ���~�>>>?z�W2r���UU����������r�M79r�����@�s���}����'�5����+�z��T.�1*����W]n�8���.�h���#n�N�U�����X�����"�-j���K�{5������}�w�������1�t�4�L�1X�1���c����*��.\��M4��\�i�����m}q:�m��M��A�����������7t/���f�
D3>���x����s��d���%3��
�y�Z�n���ie�L����(����!�1]������vQ���
..66=
;c�1������&+�1�1�c�v�{UZi��i��4�M4�M4�M4�M=��$��<�w�����Jf���TL��������'j�r�6Y�VK��K�	�e^O^Z3u�.�W%��q9,���n�^f������"�%8qz|�����7���|����.��1�c�1�2d���1�m�c�n���M4�M4�M2r��M4�M4�M4���
u�s��_���`��J�������:0�B�o�r�J��S�s~���}����y�$TN�VDR����Nw0�Kv�������Z�r>�,����dH�'�x||V�;x���1�t�4�L�1X�1���c����i��i��i��i��i��i��i��@��z�}�}�K��S�CH�!��������P���oVj�k����J�el�k�7�����=x�����r�����l�HV��>�9���m��U�,���:�A������+������v���1�c�LcLd���c��1���y��-4�M4�Ny'.\��M4�{��4�r�#�ka^�{�u�����7�6�
�S�Re�O,�������.�m�|�Z�6:\��iQ@��I,�(�t���9��
����8�T�mUeM,[d�w��S����o8����O�������}~�_���t�4�L�1X�1���c����i��w9r���i��i�N\���~?����~����}[I�\;����2��{��=JX����/*��I�t���e���n��$��]:EM�m����Qy�Hb��7����%���X/�������qWv�)���md�����:m_�r��c�:cc&L��c���1�v��M4�M4�M4�M4�M4�M4�M4��s>vei��y>��3�=��`R�X|���%[R�{Or�;��'m	��o��p�V�c��r�5%�Ll�U2l��t����6&��������2����o��t��n�<r��c�:cc&L��c���1�v��M4�M4�M4�M5&�i��d�����r���#������Nn���5��.��������<��7Ft�l�����[uz�5&.�Q���XEhn�!�R����1����������x�e�[�j�{��}q���m�����_����]��c�LcLd���c��1���i��i���M4�M4��.Z�4�M8�p����I'���{�s�x�w3�Oy��[�1�"j}�,%�t�cC��6����{��`N�/a������6�����G�1���6�\��nT�����������:��f������q�E�u��	!<3\��%����S�t��~)L�o������5�z�*���f)�v�����^c���~:=(s����=�z�8�k��q�~.��p��[{�'�	/�9'w����y�N��k���o��l��6_�l����G���M��-Yxv�z�����)���:�9n.Q�4��Fj�=����z�w��^��ws��H�Du�����\���h�3��~��/g����|�ff���}�+�����oy�3a�cNzp��w�[�����2HG#������o.�Ro���#����T����q���=Y>������*�[^3��|I_����N[{����F��B�������)���,Q^��_w����4���7s��W����_[wOWVud�����#��������r���X��sa�^��b�}�Dq�[�3�f�J~���t)�����)�������`�j�{�q��{w���/Q��bO��n��l�=@[�����uDZ�-����~5;T��s�y����EokF�o���G���=���]UrPl;^�ZL����OXDG'Y�L��eHzw���\<�������t���O�R�]?,|�n�L\�p��7��
��c9R�����rA�"��"<Mx�7'����^f���qr��1b�sC�L�-v�-�sS�_b�<�.�{���}����>Y���5RG�^0�n1P���$����sW����o�9ss�;�cZ�v�]u�������z�u�'yb�l	x����TWv��=B$�bu�n�M�Op�%����b��27~���������i>�O_�Z����+~���x�n�
)��0f���GG��V{���2���hd��o6z]�CLo����
�v����v�Y��.���9zrj�y6����=[�����z�q'X����\{������S0-�������3�������@`�`jq$�H5I$��'�A��H8FIL2f�����o�^��$���+��_�s��{'���G�\�����
���7}��W]�t�D{���o&�Y��>����F�h?p��G=���f���t�&�����]&�o
�3}����j��g�c�9���5���.f��N}��G���6���v�i�B��Y)�q��;2�.����j���=�W��r�C�������x���������o�����i�w�wu����+�������,�_?���[�����;:���wuO�����YJ7��<,��Nl�;/g"�6��v���KW�������Q�����oat��\���9������q��\��~��,��W�Q���w!���1��?�o���wL�0������� �"�������\�!�ZD��|�R�gd
W�<���5N�;(��>�^R����.q��e'>|��|�h�
��7f�����w��oO{�<=��~�CX�B��!�k���O�zF����3��*��io*�H�/�V1�W���P�3r��/>���������Z��]���v]�U�m����Z�v3]����`�`�{>��y������l��u���Mg�w��.c��S�>~���\������*�Jt-�{�zv�vm���.�\w��Q���&Y�����f��p��5[ix-V�H�)m�sU���~��'�pu�����.��������M�8������Ry:��{�*����o�wo�>����=s����F��5L�7:�m��|,L;��Z��si9���N�-T^bu�{��������������(N�{��r��vj��*�^u{��T6XCF�3�����nS�%���<�H����{x�h-�f���MG������/�K}���1+�{x���
�o���f~�����������27��.��0���-���;�����������j�����;�(��Q~]xQ����n��7��s�g���}��&8�fy�[���[cn��j��R�3�T���T�������#�S�h�O��8��U����o�7����+v��;�v��S�A�og�vz��e�c�ey��G�DM����njg�~��{��^S'�*�iJ3F�FK~y4�^����4�7)�;]��B��#�{wv�1���S=�d�d}�Kr:����7��[\$?��	�������_%�_�g>�C��N������~��:��S����L���LBe�Y�=o�@5Z��
�]���TU
c[�����&1��0UUlEP6
�@6��hZ����J�R��I).�e���r���8�`2��*�1��S��*��"�Z��eP��<<!-U
jER-U!�R�U
cUR�UU`��m��B���e�Lj�B��Lj����!�@���
�Lj��UH'-���*�w��������T-!HBT)�,����T-!B��T
�H@�T)�UB���S���"�S��1�ggf�h��Z�����!�*�)�������`2�B*���*��UR-U!�P�5U�B�T)�U@�eP�\���39��9�����/1�c��i��2b��cc�1��0~Bp��`��*��=�&�m�0XNU�8UW0X8UW0T�p��`�*��,������oi�I'�HC��w�����}b������9�	W���s��$^�sw���7�^�&u�+�c}���7G��wJM=��(�^�zt��[��'���B����s���T���?q��u�s';�?Lv��1�z��c�t��1�&LV1�clc�<c�S�M*��I���W0X�U�D�U\�a8UW(�NO�Q�#��m����66�n`�p��`�p��d��~3����#�����g��s>�{x����z[�n<%�T��O{�}�==D��?-���o��������o�G^p��p��"w}CeV�>-��E�)��e��������U�S@�?��G��������X�1�t�4�L�1X�1���c����ZUj
%iU�*%iU�*EiU�"�M���PP�*���*���*�H�*��'q��G�H?=��5��d����y�����5S�l�FO^�Jn� M<��v�[���{k��#�#N�����L
�fn]�2��yM��aY2��It5[��j��-����jc:_~�G�k������9������v���>��|t�����X�1�t�4�L�1X�1���c�������ZUj?h�H�����������V����V����V����V��%iU���N"+J�Ab+J�A��"#��"#���N��;�;��o��5���n����t�R�����jo�$��O �����ro��g1�}�\6�;N^cW�
�y�����WxN�s���f�.�������8D�`�������k[�|q���!�����;v���z�1�c�1�2d���1�m�c�o���I%iU�,�V��V�Z��n$�r�mAP�*���*�"���"������H�����?�������������>����n��Q+kr���
�����������z%������]�(����T�n��:�����\�4�{��'=���fN�@	����h��a�
����W>:�:�L�pDNJ���f�Zm����(e���p����G��^�c�1��2d�c�6�1�c��cPz%iU�,%iU�,�ZUj	ZUj	ZUj$V�Z�#M*�#����4��PTJ��B"������l,��_�|�6�6���YJng`�����
W���
�<n1;�s�t���7nR�>��rQ��y/:D��ZJu+�E�-����J�E�Z�1��[[���������'������^�c�1��2d�c�6�1�c��cNg'G�I��Z�6�m��j
%iU�*I+J�AdIZUj	+J�A`�*�o�
��mxqiU�7>��������������9����x���;[Y��c��������T��'�b���c�}�v���R��J�%I���y�u����wQ�����E������jJQ{�'.��9%��d\DG������O�����1�c1�1�&LV1�clc�;x�5��V��V�Z�?N$nCm6�I?8D�i����m�-��>m�m�#�8�8�I�-�����J��P|$� ��~�:��������HC�mfz��vy�A�g���f)P������^2%��[��R�d%���aW8�u��/;�v�{��:��r�������=�z�.��~w�}�P���O�����z��c�LcLd���c��1��1�A��J��PY$��V��V�Z��V�Z��V�Z����V��IZUjV�Z��%iU�>�>�o�������9��p�����-�ufL��b�h���7FF���d�������k�<<��R�N�Z�6������1=�(W���1�.���9V����[}Y6d{�9�w����Y�4O�<|x���/^��c��i��2b��cc�1��1�=������������PTIZUj����-��'$�$�*��K�I�J�AbIZUj#�?f����Y�D}�G�R�������W��wx 	�|r�;�s����Ms�G�?/41gJ�T�C�������M�����vL�>����'����(tz��,m����4k~�Ot�8�x^^g�1������hk�gT��=����:����=�����[i�F����\�����H�S�.��o��<���R�m���\_z��X�0��.��E�������������m�����-�b�rl�n��6s!��y�������?xs��L�[k�7r�8�Kt!%�L��Gzo���@$���o^Nwm�(x-�i����gH�f�ww��m$�������\#mC��(���A�;�y�Y��x�v��.�(�{�	�L�U�g��5�/V��n���vz��`��=�����F�����r�
�Y[�9n�Vk���7wW/67��V�/L�n�������e:����T/)�wco�����D�zsK����>�{0s����-[�o�aJ.���<+�����^;yx�@��Tl����6����*��{oc5���T��(����r�k��%{-�����{1VE�ylz-����mt����������|���$�����e:���6��7Q1��#=�x� =���u��d�����������o�~�������P��#1�S���p�������[�P�i�n���t�����8g�x��ql�$?��L~����n���<<�_#DO�M���P��R���0�`�ww>fpY��x��9�V%���M����W���l~�KN�.�m�}����{*�{���p;�e�������O��#��S�S�k;��g��I���cp�3T���j����L��)��{OE�+�����g��a�����9��C�����.���7v�}��xM%og�����^au��d-������^.;	��������u��5]�fl�J�"��i�:���J,�K���ht����:�?�)*U���s�������z=9t��Z|����x��';�:B���w����/�>��gZ���f�uK��y����	?�o�Vj[MZ��i���6��N���rA��&I�A�����&_��	s�!^��9K�ho{T��w��D��Fj���0�VL���w��O�}�K0�t���� �j�u��8��Kb���6���/����B�)`��UKg����^�����a[�Y���s�����.�n��0�;��0/p�/�6��t�9j{�G���?����]l{�-�7���I�#o�� �?>������5[�;�c�&~�*�l��b�M�a�-����;hxv������zF�+F'{�)��3���8$M1�I��/J�]���#����X	�z���}�t��#D�Qu��L��~��9��v�)��f{w}Xs�_��>���*�?i����p{��1���XVB���*dY�;��^������	w��z,��n����UW��Sg�U.�^��re�f�%��3��={ho']���yK&��O9;�a
�v���B�g�����~�����E�V�we�>�X����+���k2���WJ�wf}#���g�u��Ih���kf^_�3l��-��2eQ�����O�5����C�RAl��|Q�k*���g����9T���O�G�OI�U"'H�}~��N�z����]/%r
�;��;�������Y{��- �����;��~����+��{:��x�$��_�>sw<��l��x��=��<���������S%��u��h���^��\���9�[�����{MR�.'&�T����`��&�+�8S�n���i���$j�x��+���h�����	����������q~��;��G�9��g����}���������b��
]3�(�=N����F���O��Xm��k-#�a_�VS����A�u^?H�qJ��'��&���s��[|b�w�_��>�lT��+������}(�*
����f��b����g�����n������u,k��U�������������v����3O���U{6�6���b�������Uv���o�yfnLt	��������l�2���#4p�A���X�U�j�S�=������v�{p�Xn�����.u�:T����z������|�}�������L�^a����WU�������������9���=����ge��-��Z��p�X��G�m���V�"�c���`�����k2L�����o&u�9��"��w�r�toJy�m<�Unv
�c������Nz�30��h��nek�_��#�����c#���rFI&�f)%����(!���3�z� �S`rc���������Lk|���Z��5Z���
�m���UH�T-U@�eP�-U�m��w����P6�U eP�5U
cUPR�UB�P�l�����%��MH�@��� Z�B��Lj�B��
�lT
�H@�����)�UH@�T)�UB�T�!�4��}���}
cUP�5U����s�P��UUUUU�*��"�B*�5%���kj��"�S���"���1��P6U
cUR�U
cUP�5����6���o8�Lj�B��`2�����j��*��"�	i���U!�R-U
cUP0T-!B��TU�B������>���������1�c1�1�&Lc�lp�1�c��cP{$V�Z��V�Z��&�M��mAa+J�Ab+J�H�&�6�m�I+J�Ad����$�*�#���@�DE�> G����Z:����M��:��3k��a	���d�����\���G��{�����XN���e�����{+Fd��p�~�3���y�oRg�x�	�\��~vKD~���<l�����hL��������y=c�1��2d�1�v�c�;x�5�EiU��8�7M��mAQ%iU�,$�*�I%iU�)�V����V����V����V��K�""?""{����UM|��������k1=����������s�(Iu�Es�uw�neb����^_fN*-�=�0��r�J����`��[9s\������4�8�^�u]U�C��[���[�t���#��c�:c��&1���c�1�c�c���'m�m��"�Ws!�J�AD�*��+J�AQ+J�Ad+J�A`�*�
��P}$�� ���8��<�|��<jnq��������z�]�����$�;Wc��|���'�{����v�a�����3�C$L��4�r������g���u�|�n��b��<��<p?[�����q�Y������P�r��lt��<z�1�c�1�2d��c���1�v��j`�*�����v�M�m����������$�*���*�#�6���m��V�Z�,%iU�q�$~��N)���Rp�k��m���5�;�N�b��dC���@m.z=�
��jYW�����Qu�7������st*9�'�<�����n�����cw�4�'	����s�Z������i���2z?GG�X�1�t�4�L�1�c���1���c��
�U��b*�W%H��\H���q|�M��m�n$JIU���2nCm�n$J%�p�U��b*�W'3��"#�">!����~��>y�\�wl`xLwg�i=[��8�l�W_$-���J��+���T��'�QHwfQ�1�o���D��[�8�U��q6�-���~���� ������T��-��m�G�m�m�Y�c�1��2d�1�v�c�;v��$Oa%W*�D�Ur�$J%W*�D�Ur�$KU���>�m�m��dI�m�n$M�Ur�$J�U���>>��������?�}q��/���oo7�~�~��M��/=�=����Q���z��ngk�N�u?:�LU��]j�s��6���i����PS�P�nMY���i���v��3����}���m���o�#��c�:cc&L��1����c�n�1����U���*EW*�D�Ur�$KJ�U�^!�Q$�j��77M�����Ur� ��\����D�I����H�G�H}����s���=�k���W��^�-q���l���`[��+�6&�������{ZzJ�r���Q����#�znu����}{<����p��K�#�t�/WkS/f�r9��r�&��;�05��^�������n�<}{�c�1��2d�1�v�c�;v�� �H��\AI*�WY"��qD��\Aa*�WT*�WP��\Ad*�WT��U�D�� ��>f��Z����u??m���;�7�r��X���Kd���q@�`��������q����i���e�Ix�0�B_w	�yx��c��������y���+����������;��Q��q���?5w�\�}c���y�c�1��2d�1�v�c�;v�� �
�U����m�n ����q���\Ad*�WY"��q"��q�*�WTJ�U�I������w�?�����1��=)��i�.��t;��������x(t�fnVkv������Z�Bo���K���[�;Z�r�@]3���1�]��(����z���!�a���#a���md$��}��^�������||x��<z�1�c�1�2d��c���1�v��A���$�\��(Ur� �$��\Ab*�Wu��m�n �IU�����\��,�U�����*T����?}^�T�~��V���[�40nq���hr,���z��K+h��B��g[�W�
pw�V����5��I�"�c�&�������s�/u������<����q������~Z{�;��7�RV����3���A��u���+��}egQ�����]gt���W�?f��@���XS|s�������_��'��D�f.���+��ox�x�2���<]�ycy������Lm���j{l�{n�������S+�����<6����1���s��F/m��)��Y�O?��\�'���k���!�]���t�>t�������6r�MJJZ��'���R@3�n��>����k���h���q��*����{�������W�k��K��vx=8_��/���>O�������{{h���d�������^�/m�y�S��
5`��������K������x��9��n��i�������^����}�q��|����qk��G%��w��v�_5����B�u�=������y
���`���m���W����/`��K����d��0�K�)��M��d^�4�(��He�{�G[S������)��M�����������c�����5�" g��L#r^WtU*�;��,��b^k����8��Y>�Wo��w��#��G�3JXn6;�t��v

�o	>�E-���7��;k���Z�\� ��^���F�z�m�gV�}�f��y���s����w�%���!Y��M�6����6�6R����zY/�
��<��������y
�pg�a��C�5�p,���~��$����r�������M�S���0�u3v'���>���'O�=YZ�E��w,�e���#�����Q�����SA���`����y�w[VU��wg�^:�T����\b�PsN�����^)����IOyV�����^�};
j��7��_�W)e�sE�K��YR^c�$��s;l���V�9�ziqD�I���'��v������:9i�%�"~?}}~<�}���+���Jj��Z�	�8�D2H2H;�D� �"#�tz��jBne��Nf=�0��T������N+8��C��5��N���������������{�<$Igz�x�/��;���sf�����2��Z�8?Wq��
qXb[V�x.s�������sr�����m�C���������d��f[��/����vmY��e��O����7��F���O�`���m�b�Xfw5����Y���kT���������+����e����;�)[^���~5^"I<�nhI�M�b������w<����FR���8���:��q��F|���`����
�,e�|f�?��^c�>O��<~�����7�Xm���d�^��N���c��/mn]������Q}�^�En��=��]�^�B���^5=���������f�[�w�h���*;��������^��Y`i���Z��
j���������`~��J�^���j+�b�_�V^�Y����7.�Du����P��d����w��_'r����!{��{z0s0�:�8���"�^�w?{�H���NK��9i�~�&E�3F��4;����|�K�rUZ�]�w{��Ck�:y?l�Q8�{=g��{{�����?�R��/�4�	�3�z�o,�Rw����w��c;��X^6�~x_~8����{�4�.V�kO���WS�ho��*��~/��.
4e^S{��xwe���3kl����T�I]��w����d�����_�p���sh�9���p��s����^�E�)���s��&��-�] ��)^�����������-��3��w��4c�y]�t��n�������~R����d#cvn��>O>�����z���7���#��y{������^���������z�{���[�v�����?5���5?nk��3��Nj{O��)=<m�4��V��ypu�}�u�h��(f������3�����F��|���]��ybC�m�z����>�}T�f��|��u�e�����tmf�[y�������c���,�������5l�{���r��=�~������?c���F���J������s.�bf�.��egn�L�� rz�����U��+��+�������f����?�?h�CH�������}�~��?Z�]s�|�k��l���"3�����@���9P��,��*fe��pkR�t
���k��2������yJ9��.�Y��Ly-x��"��l��������'�X!/�/Gm�X��X���G�p�c�c�c�0���o9;�`��+��e�Y�=k�
U�`rc���������Lk|���Z��5U�@@�T
���
��Z����� Z���o|���)�8�m����UB��TT�!B��T(*��!��	j�SR*�)���*��"�S���"��UlER-clc-
jER-U
cUP��UHER�U�B��T)�U@99l���T��@@@@@@6��i�B��MIe�n���i����m��B��Lj�
�B��T�UB��T(vvw^�E����P�5U!G�v�_}���m���l��U@�eR�U!l<<U`�� Z�B��Lj�*��"�S��))��IJJ{��%=8p����=1�c��i��2c�;c�1�c�x�{!U����U�������q���q
�U�D�\��)$��\Ab�"p�U�Ix��\��>g�~DE�����|.T�S%_���1_W\��iL�G]��y� �w'����x���cY�������T�a�gqP"�_�]���_���mb��V��t3f��/����)�������q�k���G�������{=c�1��2d�1�v�c�;v�� �"��qs''	,F�����\��*%W*�
�#m�n �\��*%W*�	U����\��K�N#�g��"?i ��?�����K��3�<�|���4�^���p�8���s�W�}�*y!��h���W��x�C�|�z������E��
s���2�[���2z*����|k������-7�T��j�5�g@�&*8���y=c�1��2d�1�v�c�;v�� ���q[I6���
�Ur� �IU�����U�\��*EW*�
�U�����6����<�D��DG�Ryw��w��?���oI\��w;�#�n����~|3,��v��}^>�`���2�W{��&k���Z<5mUyq�0$\�!����'�[}���>NOe_nS|�����w���k,-]�V������n�?O#��c�:cc&L��1���1�c�O�Q*�WXUr� �RJ��Ndr������\��,EW*�!U�����������\�,��3o�}�~Q�?l�.���y�{���<��w�>Ta��3�OJ|:�Z�1���e{���N�'=���h$k�����[�{�g@3U�MJS��V-��o5:��eM��7E����#�v���>����c��i��2c�;c�1�c�x�}�I&�V�AR*�WR*�W�����6���A`��\A`��\AD��\AdJ�U����q]$�A����]s���{�>��o�\�,/T��O��������+��lw�m(V���q�6�`\�������L��5�t6�25�n����c��+q��c��fm�)O��ah�bc�Q��>�=z�1�c�1�2d��c���1�v��A��W*�	U��N�M���Y\��,��U�\��(��\AdUr�#�$���n[q�DG�D}�O��f��e}W���B��j��zg���;����~�Oc��HE���H��9�#�*��mu	e�J\�Lf��m��N�#
��BL{��[��"�}:��m'Uu�`�y��\��}_j�v����^��c��i��2c�;c�1�c�v�$��UUI%��*���YU$�B��5�II%s*��xCm��I,eT�R*��$�eT�| �/��\��V��C�o,>P����J��	�xj��R�0�'���c?>�~�_���K������r��e���O7�+r5\�<b�#Y���sA�.�w8������9rW�W��};t��{�c�1��2d�1�v�c�;w;x�OR*��$�rF��m$�E�G*���	*��$��*����eT�T*��$��M�6�I,EYV�O�"""?������������)L���m���/e����q���R�������V�D>FK}�.�Qj������������wv���l/����7r�l�:*�:+gq�t�)��j�>E�Lt��}y�c�1��2d�1�v�c�;w;x�O��nm��oqnm��Y"��S��6���������KJ��I,�J��I(����
���� ��W��z��_��7#33��I7����7Z�a+Yb]�����Q�����.	��s}��o<'�=����}���g�tWv����y��,����w,��M����fT�`���o�g=u��;����I=t���?^G�X�1�t�4�L�1�c���1����$��%YU$�"U�RId�VUI%�%YU$�U�RId*��$�$�*���U�`�8"���O�^���8�<��=������H�+����������8F	Y�x��P�������� ]�L��o�s�����Zb�����(4�|.�������w�=M�oJ;��Z��s���/���iQ\%��UU�8g�`~��/va��7��������9��x,~{@��������[����,�s�����{�n�Rc����v�p�3)K�c9���bg]��0~�����8�oJ�~Cf�q!��g�~<w�cJ�vv�"n�pN����YV����;���/M���Z��jt����'f��������TAi���������N�����$>�`�r�8�p_�k��>+m�z��+���5)s��[Erx��vxW��up����$�ZjQ��.VS��q�n�mo�������}��`��\2����m)2�#�r%c^H�7|�0��^�XN��\{�c��>�;��k�n�C���\�^dy����
�/���|p��Vw�5�����|������]5�on��6_S��_��S��)��k��������[=;|�F<+6$������=P���;G�.>�/4���i���>����Jg��f��r�V �azB|
�������nL�M���a�f������jI�}Pc�3�u���i��d�������;��
�y�^L��|�z���(��?z<��n[�V����!���i�3;�=�-��OYu|�%�����l^���$�����*GK�%��U9[x�4lP��U��e(E�Y��l%��#���U��zk������hx��7io9�P)=�|����`*iR�8�~Xo ����o�4�I��Lq=����11V����6_wL��F+�mj��n��P����<_[���e��{��8{�"�UI��:�����xvc
�����\��wq���c�X�����|�GgW���s{�^������H��}�2��������/+���	����s7�����6�n����� �/^��o�����@m{7��.�:��w�4`����Ji���0�i���f�s��a����{�}��m�:��V��iY���������H�$$I�/�����������>S�}�8�����T��%����v��L9{����?z��m�eY�##����T�N�����V=��~��r/�y#��p������r�G�<�G=~'F��kG��d�������g�~�_���m���4����q�l��w�)6��w~��H\!�����YNu:NP��M���s���<G�k&����������?(�k�5�Ox�zxd������Xw��x�hy}��z=����~i�V���5������t�yj��W������>8d��-m���sl�>�p����d�~�S�W~�����������x�{gk��:2�q.������d�|2s������p�zs���L�(1���m��2}�Mn�?�����O��NG����F~>�B��.�ao�G����3�b?�D<��J�������^8�+��3�a����aGY�����K�������Lm��W^Bj��)y?g������"�C��~��o��vf�n�����"��\��6���b���X��|mi4�~���Q��9�^L�k�!��o�U��� �LitS����g���(�����$OuM5��V�]�7Yxrn�R-v"^j���YY�U����l{�����wi�G�Z7�5���xtC��~W����������o[��k�?8�22�����H�T�eI����R�V�}����+�{&<{�l���`���r��;�w�1,�M	(e_L�>���h��Dg��6v9��W����7�8�q_�p�[����<;qt��gt���h���%���@��U�{]-���To������B�$')-����J����9��������w)��kq����NDs����}������Y��W��o����
y
�����\���g�Y��}�9n-�������������%��J��[�����o��L�.;)�u~�G�U�f��������]�S�^���R����N������d��4�k���Lb�-{4u�MV����u�R����
w�I�a����:����z�B
SN��3��������m@�C8Q:^R�#U��6��6��x���.U��*O�xZ�)
cJ��@#�#����i�i,���$	��^��D�AlWZ�,���z���vwg,3!���NY�%�#3%�����Fp�]��n�x�� �8�����^K���I
3u��9�d�ZwslBE��fVv��#���.8q����a�$���T�q����#}�w�Z�U�l�LcUv�3UP0T(_,eu��0*����
�m���UH�T�m�@�eR-U����w����P6�UU`��Lj��B��hZ�
�B�����T)�H�T�m�HBT)�UHBTT
����"��>1��1����1��ZB*��"�SR*����Lj������rrZ����
�
�
�
�
�eP��U!EP�����mmP��U
cUP�-U!�P�5U
��Lj�B��Lj�
�;;���y��5�)�UHBTU
��
j��U@�eR�U!l<<U`�� Z�B��Lj�*��j�S�����c�u���<q��x��������x��c�1�p��&1�c��c��d���A	�����M��������I*��EU�Q*��'�>H|||�H���EU�O������������~%m��SQ"�2��7,�9]����n=���J������e�tY���l��F+JufCB�7h��w�^
rs�"�Vn�/�I��%k6�`}�O'��C�����p�5�!��M|����=c�n������c�1�2d�1�c1�c����D���%U�������Y���%U�I*���UeX��*�����$�I�H<����_��v'��VYIm�;V��wr-������l�������9�������S��n�U������5:b�	Y�}�����gn�t��`�i�k���������L���OWM�������\n�_1�m�O��G�X�1�c��2c�1��1�x�L{$UYVD�VU��VU����VU�*���UeX����%X�Q����!\������)��m1�#��V����	�3�>%�f�4��K�t�;�,.����-�U6=�{;����2����*[7��r7�U�dj�KZ�*�U�9��[��s�=���Mw�����9C�|m���c��c�1�c�L�1�c�c�<c&="���UYT����VU"���im���UYV"���UYZn>���$D{�o���_.|�nf���9t����U7{Syo������/wt��_e�{W��l�*���(��f��re.�^+�7{������Ku@������������/.��V.�Q�t��e��D����5��n��w�[���_���^��c�1�2d�1�c1�c�����D�m����m�6��VUD���EU�d�UYVD�VU�%U���Us+����~s��s�/����G��3�a1��
+Q�{����st�c�z=5aZ������������d�\��O����W����:<���MhgvD^lwNL��G.����q�|k_.��[�'����O��G�X�1�c��2c�1��1�x�L{UeT��*��VUD����VU
�*�UeQ%U�Q%U���}�DG�c�w�So&n����u(6+����p��v������<.�l���x�vG�7��B����HO�dr�/l�'�5��V��%��a������9$7�\K<P+�����Px�D�
��$�v�v����=z�1�c�8d���1�p�1�c�2c���*�UeY
�*�UeXJ�*��VUH���EU�D�����D�O�A���������]�o���#�����t���0����q����k9N��{Z��`P}]�F�U�9Q���H����L�RDJU��+�F���Q�Jc^�sZl�O$^	5�f�#S��oz�^�?:m���#��c�1�c�L�1�c�c�<c&=�*����D���>*EU�d�UYU$�VU�IUeP���VU�%U��R�$��3���������U�Z������BEx�
b����Jo�JUM�R�U������b�X[��Z����8�$���
�����*o'c������4����d��f��vE�T�������*��"���Z�s�{�'����o��G�X�1�c��2c�1��1�x�Lz�UeX��*�UeTJ�*�UeT��*����m�6��VU����>�����h�'��O�a�sd7�BNl�u[� ����9s#�y��+���(>�^��)R���P���D�l���*�Z^Q���5����Y�"6��i�'�C�[������{�KVtI'����o�����1�c�1�&L��1�c�1�c1��UYVB���UYU���UYV"���Y
���UYV���D�����(o����+�#���s�R�;�Ve��^%;��^,r�Fs��	
��ep�g#��?w��
^__R����9�����
�����&>�O_1������g��6�~?I��L7E)�'�~S�j�O!-��=����L;7�.��&��::�o��G�e*��c�F}w��]���}�]���^�O_��_�.c��N^�sn>c]�o���d��\7
�*�'}��7���o���������!r�����C�wz=��]|}��z�����%���f�����}O�^o����y���>�!�>�������f43;�{�u�MM�Z�����9����:�[O�-?&n�I�:�W���_'�����K��2��$���Y���'R�=�n��6�<Y��y�|�����f���i���/�'7@:�$:;�ssw>^�6X'��e�f'WE���1AK�g���:�����������l�v�W�K�\[���F�yyzMU)]zRs���'��a��G��<�F0�&���&��bR)�n�l �C�(�{d�!����<��
������O��//���We�E���C�y���q��c^-!I4�6{�5��1��Q������D���AW��=th���L��9�o������ixet��WnL����	�|�m�c$�����<�%���,���az���`e�9��o���<��#���o"�-G1Q�e+���z�����wW���(���
S����H�gn{2N������\m����g����4b���b���y�Y��3����%p���I�o��]�A�G���Z�n������S��<E�6��i�R��T/=N���ibN�||��MSz��:mC\�m��O0�<���iBK��uw�H�]�������G��ty}'������j���������U�k7�����{� \�[r`�w3��{u�]���/_u���q��=�o,���=/���B�����	]'���{K�
q���{N�Hh�w7<w�-zI��s�����Sb�v��=����[��m��*��2����a�����[e[o�m�M�����Z �I8���"w$�"d�y��"#}��n��Q�W���ut��v�	���~)r����gMf<O�5��:{m��W�k���h��^|��rm��T�N.�pG���C���������?w�w��_���u
s�{}	�F���W��~�o�~D6s~�O���O8@��?X�}�.���������7cL������|��{}>�<�����Cy�������$='�����Yw~]�d��������l�Oc����e����5�oN�u]I��X.r��X=�B�3����S��"�GG(Q[8G;w{7����K]����;�]�~�gP�1��o��(������Xw���<������7st,��w��|�)����*C���r�+iysT���!WP�G���)����|+���5]������v��x�N��yi��{����n�kV����'�}�-������b���O�&����6���;�&�Ww�����
���*���R=�����1[��YW����U�ge*F��o�u2�|�������k����5f���,��{��d�c�S}�--k�'
�],^)@�&��V~�pwg��io����C�p���� �����9��e�LN�7�����p��a�����Vn����T��BE���n�V�[��=2���6��w�*4�{�.\�����Z���-�z{j���yh���mw=�����l����	r�V�g�h���v�&�#v2������4`��,�t�SI����9����;p�x��J����S:Sj� ���t��S�U4�yq{rK�H;6�M�M;���}��%'����Q���d?�����2�6�s*V�k���f����w�2�]?�^g���[�J����Q^L�����eMv���TOL�:y%��Yw�����eo�Z���i����
��21��k���ufNd���V�W$�;���Vsw�S��
Ow���>A�_�%��#�g0��R2��t������Z{vk�u�����h�r���x�Bz�����!��+X��kU��i��o������g$�j����.���S���4,a}���y�#^fj�����WR*���xf���u���TQc~3z�;��������-�v�\�@�����	C����6����������qR<���_"��f�o(|�T����w�)T��`iE����Ift��>��(��{�sl����xI�fn%��n��
��uoKWmh����
��#aEC�����H�$���`���LB1���|��@5W!���j��fj�*�k,����&eP0TT
�@�*��*�
���B���������������
�lT)�U@HBT-UB���ZB���5"����
��B*�1��B*����Lj���� Z���Z��� Z����hZ�B��H�*�1��S��s�y�[j�{��*�*�*�*�*�m�HBT�!B���j���B�T)�UB��T�UB��T(*�1����1��P6����������P�5U!�P0T(*�
��U�H�T����T
����j���1������Lj�*����w$Jz8p���G�z=�1�p���1�c�1�c1��UYV$����J�*�UYVH���%U�Q*��IUeX����������^3���/���C0�K���'{"��b<��g�>1^m�kjt������Q���{y�V;������7�v�q�������n�y6R)�z�F��Gt����i�w���9��$������>����c�1�2c�1�p�1�c�2c�J�*�UYV"UYV"UYUUYU$�VU
�*�U�H���_��~�����~}�x+���-^����:(Kt�,,�2���p���������4�{�;j����*zz4u>`�����O&�h�/�7����n8mL���>�>���>��n�>�L�^��c�1�2c�1�p�1�c�2c�*��	Uenmm�6�UYR�UYTJ�*�UYVB���VT~D�����~�����
��Zc�SA���U-jf�U����y��SN\��vP��{�LjZ�*���*���&Psma&��mK�xkO:j�����M�}~����1�c�1�&Lc�1��1�x�Ly�I6�sk"J�*�J�*�UeX��*�UeXJ�*�VU������|���>����x�Z�gY8��7�>��w��r0�c����\�R�A!n��fLYS)���gl�w���n��k��]m]\���\�}����[&��,Z2v��E�byB">�FC�t�?L���c�1�2c�1�p�1�c�2c�$�C�����UYV���UYU���$���I*��%U�b*������D{������$��V�|w;HY�����2,������*���%�&�N�6�=��c}���W�A����)�l���)�u�$��L�K6����|HN���rQ��V����>��?J���~�=c�1�c2d�1�c��c��d��VU���IUeR*��	UeT����%U��M��m���%TP�;� D��7����#�`����J��6����J�3��:�'��t����y[�v�sSeZ�������U��w�V��Q��wgRn�,V�|����FJK�D8�fW*}�r����/o�~k\��2G�X������<z�1�c�8d��c�1��1���P���%U�dJ�*�UYZ�+K*�UeX*��UeRJ�+�B>����yz���~liL�����������jNt3�0�r��M}(�����M���ec��N��N��JIk�c
[r���pU�ewS5y�J������������N�c�zznk��oH�f�[J�H�������~y=c�1�c2d�1�c��c��d�����IUeT�������M�nm�$�n[�l���*��	UeX����}I$G�DH������T ��7�]r��`b+s�Lk�;2�d�e���Y�s�U�y���]�+��;�O�JDA�UH�x������la�C2�A���c1^���B��a���[�@��N�_^G�X�1�c��1�c�8c�1�1�%U�JEU�B���D���$�������UYVB���U���"?g�����Bd�U�9L7a��>4�42��,���s3h3qwr��b�;q'����J�R���&aHDu4�8�����A��k��G�={��ip��:m�*
���L����<��z��5z�'���||~>�<z�1�c�8d��c�1��1���dJ�*��VW�im�������VU�*����6�sj%U�I*��}�'��>s�\��8��������u�WJ`�bc�}������f��s���8���i������}m�Nk�5�g��5��b����j
��*�v���qO��\I���y���������.	��c6L�-�����b��j,M��W~'�M;1�Q���Y6�KhSS���<U��q;����1(��#�,�*z�D0�@�EsM���^;�G�7x���R�lc�e��^�y�S������v]���soR���Y�aA=��~P�y;t��Cd�+��$*Rfx�������<��G<w/l�����������z���������{t�E��+<���A������yO5����rW)�z�����.��S0��6��U��]a%8Z����xe~�F�z���w�z�H�������Q��o{��=��A�]�#���O��eRWs����oL{l=�y�v���[��[$�2����	R��Z�e���]�I�w��<�ej��{��o��!�3��E`=p���{����h?rCT�j�J����lk$�<�/5������q
Y��%������������<����x��?C9/4�^��������6��bw�����"������^���f����1�a��
��'n97}��d�4��g*���z���������@����%������gX��t�Cy�j=��u�/v��%`���YFwW�����k�m@����L�-�p��i��������������������1���Y�ZRUn��myO'���
u!� ,�/�?>�97s�^�S���aU�r��QAM~��k\G��TC���~os\�N��5�}i���6��7'b�O�^�*���a{�������|��a��g���H��w�G�
�Ig��H�{��P5	�������G|���I�*���1r|�@7��,�o�Ok�/�����^� ��
��"C���4�+�k�'���wF�;�������]PoT�<��z+8�zz��RP�Hc������vg�s�>���>D��9/��/�7���h�������a�E g��O���75�+�C�9�c��V�����ul��{������������m����l�YR�R��H��8��:�$�� �����fg�w����2�Z|j����Y$���y���|�q!>z��\���*:f��2����A[o)���������E�������l���Wl=�����G.~~�t���-���3}H�h/GV�������:��v����fJy���W+�<���n�;o���VZ�y�,z9�	�e��z��kZ�������~Dq`��w�{ �k�OBo��;���O�)��WK�i�S5R������{w^�P������<�eDa��Vfz���c� cH�r�{�L]�w���N����:�'}�g7�5���w�:���|����SFY� �{��~|?~�1~�r3��t�=g>��k<����~�]�.4����W�,����E���|�����FY
<�����@o,����%��Q�����I�I����i]�E�Y���n~�����W��;�9��������H�2.���������i�Qt����B�{�}26n�������}xkr�#�s�59��ST8���.����~����4��pEc���=5�P�YI�vO��S�x/l�����c&z�3�'e���Y��;��C������B�����������I%��1��#��]��o�
f��2�����5��%�~�s\$�)�`E���Y>�i^	z��Z��Q7�5�{�]�O��2��j�Dg/K��q��j���l��)r�����t���wq�^m�����j\��[y�sP�f,���ZT��v�<O�'�6���r=��r��OW�g#IW��T��������=[�����x	�������R�1���.e�o���������6=w���{�������7��3N_��*�b��-���~�ul�^^�\�������$���.�E��Y�y'��E^�,+d�V9\�����4��o���8�����,{��u)r����}�\g�_�[@v���|�k*��~��^�&!��3�KGy2Xzu�����M-�^�����)X����]gM�����{����9�����e�{_���q�3Vq��<Sz�L���i�sC���I`��i����3]��o.T�{��lE~@��>��O'�&�fjk-�F)��<�U�2�#EZ�m�I�[R�0�^��y!��e7Z���6�����Z���.'VN(4����Y/)���Z��uWc+�U;Q~�������C���2I�9{�l���&!�;��r���LcUv�3UP6�U
�Yke�L��`2�� b*��UR�U SUP0T�U@������� S^q@�TT
���1���B*��j�P6UHC���P��U SUR5U!EP�5U!EP0T
����"���1���1����1��ZB*��"��*����Lj������rrZ����
�
�
�
�
�eP��U!EP�5��6�Z�i����hZ�B��Lj�
�B��T�UB��T(vvw]�b��Lk�(SR*��j��
�H�TU�H�T����T
����j���1������Lj�{��R�����H�C�8q��z=�c����1�c��cLc���5=�iejY"���%U�B���UYVH����UeRJ�*�VWb�$M~��7�/���K�p�,z��8���@|V9qI�����)|�3r���;�
j�����i�uj#�����}29�o1�ER�6�u��7's{�*�-r�\4���X�,��.kE\#c#b�c�~�^=c�c���&1�c��i�c1����VUI*��%U�H���`�,�!UeX��*�UYU
�+��������$l}j�*5��{����}�q�Z�ZoD�,��GbP�3�:��y�b����|���oL��]�bj��;����M������E�'�;e��q,ui�">F�FF����>G��c�c�8d��c�lcc��d�g�m������VUH���I*��U�`���EU�d*�����?RI��~�??*Yl_��6�9T��
E";'����w��*qOJ���n���q]l�%8�\��I�|���O9T��%9lYy����*�D���)m[��	�u7����/|�;��=���;|c�����b��cc'�1�c��cLc���=�����F�nmH���VU����UYTJ�*�UeRJ�+�$>�"{x����*����XiRz���v/*���S���I.��K�����
Uh���\������If<�H=S8�=���,����f���L���+�\�N�����h�������G����_������}�k��=c�c�8d��c�lcc��d��I*��$����$��Y?�7!���y6I���Y$������UYVI%U����I��������~����5�~M�e�18*����,��%�8����T2�+����ok-sw�����6K����Gmu�u��)���o\Q��IJw�d���Fn������o0�Nf�B���v�j���-����22?G����b��cc'�1�c��cLc��t�"���UUR*��Ud�UUP����UV"���UUq>�~����Js����_wd�j��s5;Cu1��(��3|�A���.<�	
4{d�f�N�f�Z�c�$��h"j����#5uzW./sV`h��S4���U��ewo`v�y%5�/Z}��y_�9�ux����|_�>#�;t��������1�m��2d�1�c�1�1�c�1���m����UVH���$���J������$����m��TIUU��@���{>����~�����6�nj���t����wk�Su�/J��dO�I�K��lj�n7�3*��Z.����{��A�)������jaJ�+lh/#�����6���/6X�+�2�I���1�����X�c�6�N2c�1����1���UU
��UW[��m��UZ�I+J���!����Q*���U_'�!d�}L�}�������K���_<.�K(���_-�U��-mq���
t�n�-�u��(��i��vs��c�7V���Vb+m6���{�o��T+P��yyO��}�����k���}���9����t'�N��c�����b��cc'�1�c��cLc��t�J���UU�sqm[Y
����m��T�UUdEUUDUUQ'<J���I$�d��}��+
!��>���m�(=�X��)jb��x��������
d%v&�v���*{������)9���L8�p<[��K��$
�\�z+�g"�o���u�u�����H����o���^���1�m��2d�1�c�1�1�c�1���UUP�UTIUU��&�m�D�UVUUP����J�Ua%UV�����y�FW�]�EiW�R��U��m����OV$��Kur��y��>�����6.al�s�/a]���t�wVISgkV����c���o4V;��=<���N.���gn���������y����~f�l�_�i��1�����u��H��f}��%5��ds ��0!�%�5=B*�X��;�O`��w�X�;s�m�w��]�pi���U��X_��g��k��S1�����-��.z#���������Q>G��y�����9����K�c�ff�<�����Z�	]����]�;�X��\t?B�}��������$�=�5�w�����g�y��{g��R;���2�$�N7BL����������Sa��I7C^�6.������+Z]{[n�c��gk,��{m9���l�z)��X�F��yE������x^�t�$�=���[�����U\y����M�%'~���wo�z���~��l����9eK��Po4yJ�����Xe�"!����]���*��y����{r�����oe���p��AUy�hw�����i���X������,b��yyU��F�D�5����2��"����XVSG��qT�6X�y�v��W�2��F�_�������d<�=yHt���WD��/���o;XT�X�
��\�P�j.~�����.��jo9����sZ�1��;Q%�����st/\w�����S���j_i<�{l;��R�5�{w���lx�����2�|>-�_f�2��Y^�$��Yz��������/��W��|6���=���C9�0����:��j�tS�.�_��{��!7��/z������������������k�^����7�u��o+v�����E���<��mm32f5�u��~���|�,�%B0w��'��R�n���T^��vI~��r�2��q�-�q���F^�/�m�9=���*�m��qq���� �{�(����NV5�w�9�Y���S����d���{�:-r���3��(���v�o*��9t��y2L�oq[Q:}�)M�w'-�C�d����_���g+��k��t�K����9��|��x����IA��Y ��m��W���f��f�l�o�� Dh"<���X��������������GO3�f=v��:��</���U����������������r�Y�Vv?J|�f�����\q�p����k�ve�imf'4P�]:-;��0o��qw�5�l?������M�h��&������ShQo)�\[[`}���aR���*��&�%�6�j�bC�z�ei��7]��u�g)������B��Ii�Y��5r��V4/��A�fEv��Y�j�������%d�i�rM��f��Oi�>0=������������;���5��l��U�o6���4v+���e�;sy�#m��:�����r�y�����~#��l���4ws��)XQ�|;��<'��.�A���F�R�^�U:��\�l�����`����@����u��#�����j�W�E^��87R�3nf_s������c��,%���GJ��NjtVhY���������_<����������{����������7�6��g�#�w8��w6���_�yX}�=J�~�~pM<�������K���fE��i��Y��� ��?�s�[BD�pDue�Pw�z���w����t[��m��H���3]g�k��]+�C'f�������|p�9L�{~)��,��'~����wdz������i��7���z+�
%������}����7����8q��q�c�:]�k]��^x��o?��~�D�=�W��������;��3�w�
�L��kgj�&�/'OgL�%[+�!��7!�dk��;9��z+.�������;j}��w��8�4��i
J%'���%�'�3������X�n��t�tW�{�+�h����eU)���X��=:��n�����f��cj�u�����(#7=�r��}����8�Uu~�$*-�pg��M�6�9+^��oEw!~a;g������%���*W�FG�;�7y�h����-�F��{S(hN���>'�������^����S�����s���#)��{"��h��)�)Cm!W��d{�����46�5&�/��\��������oP���%X���z��9���z���w���:��VT�>�������M#���z�N^+/P���u|�u#���@�|Z�����PO���.������zI�z����
r7�d��Y��W��S�J$���+�������F,�k�j��QV����M���J�]^g-\NU��m��eD@����8��C���K~r�������gF6�{-��@�W!���j��fj����@��-cl����TUWdEP6
�@6��l��UH@�T
�;;-���y�5�
�@@�*�S��*��j�Z��eP�-<!
�UHER5U SUR�UB�R-U�B��T-!H���u�)�B��T-UB��T�UB��TU
cUP�5U������P��UUUUU�*��"�B*�1������HEP�5UB�R5U
cUP�l���� Z����@������� S^qB��T�U@�eP�l�@6��`2��@���`1�����U SUR-U
cUP0T-UB��T���������"R'����z=�F1X�1����L��1�v�1�1�x�:{"J���J��!UUbIUUH�UU"UUY"UURIUU�l6�m�������}��u���G\�����;��om*�AQ�E�X���;���et����27x�K����K���9d�z'|�q����;Sm������u(�����[�w������n������^���1�m��2d�1�c�1�1�c�1��*���M��k$UUY"UUT�UUd�UUa%UU�%UU�������� �����O������f_�x���z�l���%�7M��p]�"=�����Zi��������0����L�J��q��HM�ttDz��rWWB��X�q^w�8�o}s��	$��U������X�c�6�N2c�1����1���UUQ*��I*��UVD�UZYV�[m	��m`�UVUUu�"d������+���S=uT^��k���w,��=eI������#+�U�m�eN�"�j���0�Xc1m���4�����o%�I�7p��CM�����f���|��=��������.����=c�c�8d��c�lcc��c��$��UUQ%UV���������*��mm��RIUU�&�F�m���$�k���"?""��u����;�{n������V�#!����3#�]fe�J�jx?��(wfR:�r������>:j2�n��(F� 1�}�c�P��qM���&@�\���G��qP�����^���1�m��2d�1�c�1�1�c�1��$UUY	UUREUU�UT%UU"UURIUU��m�HUU}@���u���`��2�sn�J���67vd����V:��[fk���Jx9��(�xa}���u<���#�3���������9�������D����1�4������/���X���c����&Lc�;c��<c=����UV
������*���#m���$�U_v�m������s���w�����w���f�)N�F�4r���#s�H�se�v�[9��f(����.=u���}�����Y�6I:�K�p�r���wo�rn
~sZX�8�;����>_�����������1�m��2d�1�c�1�1�c�1���UWm�6�m���T+J�"UUT����M��mY"���%UV���������}���s�&e\��s �Y7V�Xb�l�I����f>r]]�)	��E$���f.����C��F������K�Wx�������^����z��}���;V��X���c����&Lc�;c��<c=H���UU�d�m���UUH����UU$���IUUaUU'�!�� ����W�##�����f�fb{����T���X��G;3.����G��0&�f�*K���r���)]�d�yGqE���h�Hz>Wc��rz|�I?����9t������X�c�6�N2c�1����1����UUa*��UVH����UV$���%UU����U_P�� ���{}��{�9�|��u��w��{�N{N��[#�|t�D=��A:���k+,�Q.t����������nv�.���l}@�e�����>�AtD�k]s���z����Z�]���n��?^�z�+�1�2p���1���4�1��Od�����UV$������IUU���m��}�M��k$�UW�$UU_=�Y�{��?�^�����r��|����N�W���8n���o���o����G�t���d\,U�Q�������B^Vp���o�n>4�:�+O���G�K{�fl�a�,T�'���3�d�.�����o��N�������:j��y�!��������ez�q�l�L\��2�f����{�����u���7���]x�N?1�
��j�iy���|I;��)�s���y�E�/��Qs~���<b���������x�H��`��l�)��I��������M��l�jf��
Z�1�r�RS'��)�XnL��������#�����>����a�{T�4����i�4�60���6����Eu��zGS���v��P?o�\k�r����%�M|d�?o��a�u
�7-�H�.��L��]z���8�
��
����r]�&-J+e[����1<O����py
"l���Z����\'����Q>�>��|���|;'pri�{�v�wS<zv���<�e
�![x�����b>9X��K�������{���8�qm;dO��Vn)������Dq���^�{��y4������z��L<_/`�L��5$��*yf�'��g{2xO��u��8�W���S;��:���~^�.��:��
~�������;#�{�J�4���D�nt�s/1I<^�Fe��6���5�f��V9R�������"}rt}*+�$Yit�#��V�������]��^��������W�m����Ss"5��i)'�&&yM���tr{�������y��g�,�u�x�H�R�%en�kE/��e����z>u=[j�f:�&R�7W_
��v�n=���(�����8x�ge���Axe��6�#���~y�9g��x�m�1[�x�!�e���V��[v�V�D�x�w'��0wd�~��L�L:-^%f�s�E�ILkKR��r��f}J7J����/!�����x���������Ggg��YL�K��[�����W3
��EF
rv�{�P1�U����i+�*�{32y2��j�u� ��Dp�u$$$I$pI��@���"#��������g��M	�FF�[+r���
Ux����W\���y���j69\*\�JWmYG���R������6���y�M���=#/$\�{����E�WS�jE���*oooG���y9.���pXL+���y�x���\80�B}�']��y�����;�����f[}<=���o�]w�k<��l���+��dU\���v/^�R�[w;��X{�wy�;<�,��~�Voz�q�����9X�^�Z8�U�l�
�w=7����V��~��������xP�-o��{�ue���,�=��DWv�
x=y��������G����J�or&!f���=I��Y�r��z�}�t�r]e��rm�6���o��LU�����������{*�*+�e�����^;y�[�}�d`�4�N.����ozoa n5�����5�����+��/xO\�Ri ]���xs���y�DU��P��I���6}�g��X*�m�a��urZ���s��$�
�/~�f���M�7�=��s<y�~G��v�����{���J�{rN�jz���K�r�_�Uk�s�'��������5���#>�}L�����_���{���m��f[vT�5��r�����]������e��R]k���f����]<�����,����kEv�^���P����$;�����s�}�����?�t����G�����o(��X&�!M
��8%,�t�\���`^��c��c�������3
�t�{k+�D�����fdM�WQ!��y��<������}9������>y�����J��~=��Kj��y&�4{W��x`LN���^���Y���ww��]���s��S������
e�>���nyw(���/���u�v��i��t�w~�C:]��b}+�QiG��������8x�}u�YU�yZ������J�&JU����w���t�����d�`��� �j�-��a?E��l�3�a���47�=/R����j������
���s��b���tR�zOBr��f����������ul�Xr/r�g;�?g��V}t�7N'��:&��(�=���p�����}A0�V����)[�C�C���?�">�" �wc�)/����
��kw��^Z��0��s3��	�&�������������.`��si��x�V����;d���aQ�3K���d�{j�3tM��N������w�GG��H8	�'0��??��zP�����V��\�W&1��X�eP6�U
�Yj�e�L��`2�� b*��"��*�
��U!�P6�����w����P6�U�B��T)�U@H@�T�UB���Z���*��"����)��B*��j������Lj����
j��:����hZ����hZ�B��MH��UB��T)�U@9�<���T��@@@@@@6��!�B��Lke�m��B�T)�UB��T�MUB��T(*�1����1��P6���������P��U!�P0T(*�
���*�)��xxxx�
�H�T�UB��TUB�P�5U�@�eP�-�����||x������1���&Lclc�cc��c��*�����UUIUUd�������UT*���$�m���������������uN��g)��w�L]5,�-���	��^�������V�2�u��(�����b���
:��H;��������;��y+c�R���um-�#�#��~���^<W��6�L�1���b��i�c1���UUTUUTUUXJ��"UUf�M��kUUY$���IUU�a!�H��hl�;�4>���/2��;VC�.�*����W�o]I�j���t$��f���5�n<���,����y��>iOG��:#O�'b��{Q*�S[�O�.V<�7�����Sz��������������������+��cc&L����1X�4�1��OdUUY;�m��]�m������m���m��UUQ*���UUa*���#����������|�\��s�E��X6*�a�>.��]���e�C:�����/��7.n9�{�4���^,M�yyCz�������.��P��������K�������"�����:u�,�����[t�������+��cc&L����1X�4�1��O��6�m����IUUIUUIUUbUURUUYU[�M��mqQ��"�������(O�jZ��p�h�v�:�R���T�Z�\s�:a�4+8����}4P�8EH����J�v�f�ZG�s%d�>F!�L�5��]���/3��7���������/���}~�=z���x�1�2d��m�c�cLc��t�EUU%UUI*���U]��m������*����m����U[}�w���s����u�8�s�]q��nYy0����- ���(w�������K�%�o�{��6�^��y�;w\���:�w}��7B�����1�����mf)��/9t����r�d,Y6�W�.������^<W��6�L�1���b��i�c1��$m��YUV%UU%UU�J��$�UUUV%UUEUV�d�����Y����|������9���7����Z�;�����dw�9������r��7.ou�����u��;]Y��������_^:]3������A6��X�N�n[�7/��0��f�N���t�v���^�x�1�m��2cc�c��<c=�UU�UUbUUT�UV$����UV$���*������""?"#�|������P�R�M��0f%����������>��L���.p�e,Yn�-[6�{��V�)E����y�B}��Ge2�v��Q���x9��/�MNg�{�������
�ri�>4��������+��cc&L����1X�4�1��O'��m�����*��J��$���m$�m��%UV�
��j*�����$�|��~s��}����3�:�����������}��=^������PM�'��,�������zy���VJU$��nl�����ti�-2H���|s$��k]�Z���<p���6��^����^�x�1�m��2cc�c��<c=EUUEUUEUUEUUIUUd���IUU�|����������A��mL?�Rg����u��n����t�Y�%���I!Z�
�+���uv�B����o'oo0����n�C���+R4�/0������q�9h�`���n�����F)
**>�O��z���x��cld����+���1���UUY*��*��*����m����UI*��%UU������N&f��{F V��f��C��r�sV,��S����Xrn����R��>s�X�|�����#�r��:�d���ZK>~��Wx����}���F�I]K��+F������v\��E�����k�_)��J*m����=�=.��i�O��vL������~d�zj��Y�^\�{�s����`��U��x�q����~r���_%C��6k�y��J,���*������lo�<�y�VT]��s����to�$���#����bce3�w/-D�0���7���xun(��#��D;+�yl0�J�h��w�}"dk�:��q����R���yL]��+DYV����<�{�MZ��}9�u���ad���Z���W����������V���
��_`���6-�8[�M�_f�J���p���fz�v��F��v����'�(*b�G�����9�Q����e��^������&�y,1�����3�����d�G����_��w����f�2���~<���Zu�����������k���=�m��W�JQ�{���s ioe���q�^���6s�}������0Zsat�������,�{���}�]��e��w�b.��:[y���m���{���\��ok����
n-��=2r�k�O
�Jf{�-Lm���=�P��b����X�y`�>��A�����z�sQ3��mn�����9��W�G���������Gt�g��Wlw���
{V�y=��J������|�iz5�=�x���\��(�;�0�����g��P5����t����C���`6�7�^;m��uO�6�����3����=�T��2��5�a��,5$B>�5R�r������<�X��2�����zL-��o"�b���B�[\�[���H�X']<S�4�W�j�*���%n���g�f�v�^K9����reD�&��Z ����;�^Jo�+�-Z|H�~���&N;������
�S�9��sip�3�)�Nis�v�K����S���
NP�=�%AR���S��x�
�gkM��#8�m�jGv�Zd�a�����d�\���T���DG6�-Z��m��_�JkT���W���)T�iMU�U����^~=�����F������1�]-�X������E��������q�Wyh��S��N�4���9],�R�'���y��^u�9��/��������zlVww}�_�6��=�z��[��_�w2D=�$s�vg�,}5{t����69x?�E�/���o����d~���I���\"$P�����1en�$y��������|�!7�v~z��=���A������Rj�@��P�?��5.s��������;�{�w��"�q5���n�j�J�����5"��{���o�0��S{���������fe��A���!�A��N[�L��w��ow��ZZ�����[KK1�����}|h>7��J����� �����(=����k�����F�����9��w�cC�~.@|Z�����������k!_����w�����q������l���+����������-h�:�M����\���-��X�j����M�6��U������?Y������<v�����3Z�^��o�y:E�|����H}�)��)3���Y�����|<�������N�v�P{0OgZ�^��2���zu�Y{�8���9���Q�yw��n�a�l���e=5\&q�R�p�r�?7��R�bq�dY+�c�����A���n��pI��X�7� �zE�ar/j��xd�O��>��wV\������W+���`k�<�Z4~�O��g���2�Om[�a�����U���o`��;n<b��kn�=�R��w��ffp���/����26|�1�~��=s����1���{�W�]�:��E������\|��8���!�z�1���I�����z������1j������������p�#sKo����=�qJYC+���>�O=���eN�����	��L�#v���5��%j�`~��G��I���e�����m���u�{n�����
������� ����{2�����l��Z�n,���l�L���S�Z��o�M��8`���D��m��VubL������V���:�����U}�����-��z�v��m��a�ZZ\�%��f�m��yt�p���(" DG�D*��$����)����
��V���Mc���\���s1��/�QLT�k��#z�)F;��7U�Y�����n]��|�&y�H+��sWr�3��b�(-��d��Ur�Jz����R��*���E�C�66�#$���T����z�F6��e�\�j�C+��m�a��b*�k,�l��&eP0T]�1@�T�iH�T
����j�bvv��;���m�(b*����Lj����
� Z�@���@�T-OCmB�T�iH�T�!B��T�U@�eP�5UHER5|c�HEP�-U
cUR-U!�P��U`��Lj������rrZ����
�
�
�
�
�eR�U!EP�5��:��P��U
cUP�-U SUP�5U
��Lj�B��Lj�
�;;���y�5�)�H@�T
�B����*����m��@���`1�����S��)����1������Lj�*�����s�m��x������+��cc&L����1X�4�1��OaUUaUUaUUQUUQUU��&�m�%UUI*�����$�"�A|�����9��??5��������f:z�dN,k���
�����]��[gL�Kur!K7�.S�J����A���R�&EX�T�a��2���������V��m�7��]nWY��+�����<z���x�1�2d��m�c�cLc��t�UVEUV���%UU�U\�r���.\�r�j��"�@�}?'+J��n�E��������_$�fK$
 _�xR.h����owus��������F����]6��8s�@Z��k����<~#5zI�SGR��J�;��b�qqQ�2>����x�1�m��2cc�c��<c=�*���UUEUUIUUIUURUUY%UUJ��v�m��O���$�������������Xe��0o�o�q(\�\�����7W���)������]z\�k���������15�i��".�S:a�0��."�:���������ci������pA�#c�~���x�1�m��2cc�c��<c=������m�����������j�UU*��r���.\��>����|�����\^t��,��9�!N�/+5��4�S��h�������q�_K�iKK��CV���-��Y.[�]1N��{[��Fg!���!��O6ejY�:���~mZ|z�����<W��6�L�1���b��i�c1���r���.\�r���.\�r�eUV���r���.\��$�A��<��^8��p��9���c/�p~L|��$���������=�U���+��+w�R����i��������=������t�z�2k����%`��c����Z��������w��p�m�c���<x�1�m��2cc�c��<c9r���.\�J��\�r���.\�r���.\�r���-y���}�>qb��_�W�6�2���9�9gF
����n��m����Wb+z�����6\�Sr�Qe��8���>��m�����v N<����uwdN.���!VRP�
��g^�N�����@\ll}����6=�+��cc&L����1X�4�1��N\�r���.�UW.\�r���.\�k�\�y6�m��UY���������{���I�W�������\������iy�����w��&��p`U���W���q���.Z�����)�e]gS��u\S�:�+8+m�K���QY��]�������>I9y-��O�z������+��cc&L����1X�4�1��N\�r���*�����.\�r���.\�r���.J(�������[{?~�tA�s�G�XEZZ�v�v����{
���/
������V�uK�jj���T�M2=�S���3���+Y���Q�]%]YOQE�	��qV���9\W����*�������x�^<c�2d�6�1��1�1�x�:r���.\�r���.\�r���.\�r���.\���.\��RA�H/|���^9�~o���x��;_���\i-1^�����+��.ZAXV��QY��]��v�c�OSe_����D�����^��������');9:���]����\�x�||�u����|Wo����o<x�1�m��2cc�c��<c>UUnJ��\�r���+*��r���.\�UU��.Z�_%��������o��o������ :������]�������'�������l��I�9�I?��������n{iq�I?�7#�|�$���o����l�~<���w�.v���I'��R6������Q����������i��G#���O����$�Bt��'O��������	%��������|>8v������?��?�8j��[�?�O�?�Sm��$�����?����>�I$H��IN8I8�B9i��?��������v���S��A	����~�$m$�Br���?�K���4��4���O�����2I$��$�q$�����I�	p��
#�j:�$�B}G��\I'�!9~��]�I��bI�����_�8p��^������NX��-��s����L�$��r�5q9j8��H�����N�I'�����~��p{��Od�����������H��$�M��$����3���I�����(��O���4����'�d�?��$���?�'����$�������7���7���v_��wU~��������?�������$�B~��$����z���I����)$�����$���DH!9����,W��������g��u"H!>9��r�����$�>D��&�v�'�,GO�D���������J�����\?������N8I����	��I&�����H!8O��$��N����v�����I'�?{o�$��8�?���m�bsi��A���X�I'�{�����-�_���?� ����:�����&��.����$��I�?���uI��:r�����Y$�BW ���J��4�������c�I'.�I?���N�N�N�N��n���q#����\��'�����?s�6���~���i�J���������>8�����#��8�#��A	��o����~�����o�I$���?�$�?�����;�����q�w?{���8D�����hr�O���)�+����;�*���
�2��*�<X|���������.����`�C����H���T�
I@�QA"��!@����)D��"
�(*J��P�P�

P�(�P)IUQ"E

P
) ��Sf�(��R��=

P�DI	*��R([P�%AJ��A (�@�QT�����
	D�$PT���UQT��HJ�AJ�D�!"���
����J(J�) �P*B@�
��(f�
���Q@&�g�yP%RFZ&
}�����q���,�e�LYgs��!9��(�B�!�u�:$
bxt� oq�������Wc����`���*T����C�n�P
$�6�������00��gn��a�,X,�p`uAEB"$���:((������06���p!�.��L����������� �*�PV���B@��_�\XX��a�`�`�`����Y����!JA���(�AEM���������wF	���������$��Wsu ��PU����<{ ����.��n8w9�����7 UE��w�t�R�
�7���U����
�pl��s�g;���TPR�D��t�@l�|4�����t����������w7��J�E��J�{��E��_�p�z�����������[���wW9�|�h�P	�)%�="`�	��`0f�*'�@F��)� ���C@�4d��
S��UUS��T���UUP�F��0daL��0��I&jB�ji�2��MLG��j
��~��Q5)�i�E?Jy"oS�I�i
�j=#�?����[��?����W��r��D�����������]��52�e���fj�Y aHk�W�#��:�vj�������7���������;���o�k�Ef����m�����~����	���p���O�����p������_�I��$��Q��'�����s��Oo�z��'P��|���_������_��M���
�[�B�+�S,��t,�!`4%�� ���)Je2�3L��L�2d��	` ����$��t@$�n��2d��`��$�I��30�@$����I$�� "L�d2D �H ��BI7wRb$�����$&B&ffd�!32��� $��Dd�&c��E1�#������2GwA@C2"dDI�"It2� ���L �����2FH�H�d&d$$"D�$A��BH`&330$�I�&@L�3"H�P����$	�D�d��A#$I I��L�R3 &fL�aD�&d��$��Ha3�d$�)����THF
B(�`&f&L���"f�L�2DDIHA	�L��fe33$$HI�@I�HG.�fL�2` �&I4��HD��$�II$#$������d�&FB�d$�	�H"D���0�R�(D�$�$d�`0�&C2���$$��L�e%$��K�6�E��1��1��$BD!$D@A&
@IH�&$��LBI���%	�� ����2GwD&B$���"L�&L$�1Dh����L`!0��2c$B�BS(
BR"$��$ �!b`���$�����I1	�f��I�R$�!�!	$� JBH$L��JD���H�JL����a��ffbH`���f �&1��#��(�QEc33$	���0$0���I"I"BHC	$L��DI�$d�K!�(#$P�BF@�d�"3@B`��fd330$�L���2RR ��$A���"1� �&2XH����!�LIL����	�#2A	� ���dA%w]��H$��� $�$�3#2!��HBB��`9q"HI����E
&$�DD�2D��2"L&L&�HHJH��A��d��`�S!3��&d�`�P
	HRBb@�3  $�&H!���P��.rK$@&j��Q�2DH�d�`��4�$`�B�"�� $���DPF����Hbf�6R��fhMi#L�
CH`�@Bdd2I`)'����zAD@@	$�}�$�e$�HiJ&`�2��C&#DQF1��cA�"���$HHRc&"!32H�D��0Db�����D3B��BAA�2	��d�L�I03 ��%$a"B �	&��d��BH��I$D$�A�b4F2I
���d��M4�i1�F
 �J2Q&H�3�SHL��a�	!IL���e2@Ba#!�)���E"D$IAD�42Rb�`��) L�0�&&fHHd)7�qI�	@�BL�2��@S10��LJA"1!	HR@@dd�wrCA�#
%��DcE�c0F��$��$I�"�&I�2L$&���"I�����i$� `D��0��0E0��r�F�D&�Ri(H��1�@h�dL�Je	�
��������kkk�]���d�`�1�d$���2II�0�D�D2���&fD`�F0Pc$�2dL�$�0X �Q�DI�!(���S4��$��	�Q2`2A2�$L�IH`��JL�H�2D���H��$��!$L����2IBD	&I$�$�$����I�0`�����B@dH!DD`�)� $����a����D�PA���Q�I$AI������3&&I1(�"�	D�Db1ADF-�!2$
R$��0�L2I$����C2(0d���D�u���PD�&&@���L�a(	"�@dL�3)�1�1�0�s��a0$$�`��&HH�Hd�A��ILB$��$�����Dd����(�c�#b1wv� ����Dd�L�D&�@D)���!�S0!&�f@�L�FPb��! L�"�$��HI�I!$�"d�I�`�h�b1I)��$�e���$I�%�F1F(�LII�� �2II�0d�b�	d��%$$������DDFLAch�b"��1dA FdD��!$BC$DA�	��MQ�B��$�H	$�`���$H���C!��I$D  �
`Lc#�(��I	(���V��$#)BS&a��I�)$���b!$�"LI�%$D�$��e$�d�!�"�"�&L�Q1D`�Q4b1Db4" 0�"@��a��0&0���H�B%0�!�R��!A3 ��Je2�D�0�@HL�!@d!���L�&"�,X����������I�	�"�	)���
P��$D	I�!$L��$�"1Q�#s��F����)3�@�0��H�  ?]���!D��L��a��I&��@��Be�Bf@fQ2H$f"JI0&L^9���M��"i) �Q�)SRH!!���2@�D�A&H2$A�c���A��d&"D!�&d������fe$BB@B�D�d� e���(�1P
(�,d eI$�d����IBH�2!H�@��M!�!LB �!# `�H�����I"lP�L�	 �SFLfBRD� $�BH����	&M`�IA�#lcF,Q�ID�HL@�� �Ji3$Hz��u��)�$��dL��e�`� �BD�&HJ	�Q&�H���d��D���#,�FL�LF	 �I��0�Bd�`L fdb�$@�I�D��S��i��#"��Ac"$��
3!	!"21b" �E�D��!!��$fda���H%�����&"2E&#$2��)4F(4Ih��`�D"D�$H&&I"D�$���L�d�a�3
�))(),M!E�6)2B ����A��� ���,��
J ��$!`��$@B����A�	� (&��&$�$`�R	���BHc(ddc!,�)1	2�$R�i
K�1j-���HI�E�,I�F�Z�j*5jD��cb��h�F�FH�d����I%�(��&
%%�
M!$����fQId��$�I��$��Q�4�lZ�5�F��Q�6�564I��1��I�"D�,H���$�f��@0�H"CBa,A��d� ���DX5&��lh�("�d$C%)4�LL& �aLJdL�R�ffQ`�)�� $2Fd�4��%&$ �F1�#I�IBRd3 ���0I��$�H$�LD��c		)A	��$BH�$)(�����PAL���1�&#@DH		��L�E�DF�(i@2I&�!�"beF�1��Dc�F��"fC�	��# �"��
	1$�1EDl%��#i6��P�Ic$I�H(��X��(��j�W��}=%2�L2!"C@g���x�dZ5)5�X�Z(���	��6��1Q��lk���D	�-�Tb���5�mQ&e"bCm��L���$%0M��&L�	�jBFL����@���kZ�����������&H�m�L�fL
�DH/�E�D���0JB���L�@A&L�JHG�o�������_���~�����o���~<�>>:~��?P��=G����o��'�O�2?'��8���q�_�����oL?g�RM�"�h6+Icm�Ei,j�����-�
5sh�-sQQ���h���sh������j5QQccW���kt���\�E�F�c��cQ��Dj�lX�6�F�cW5d�j5\��F�QQ���5��j5��F�m���h������TF��h��V5�F+5�F��Q��V+"�r�[�5����u��Pj5r����Q���cQ�����5�F���cW*6�F�mr���Q�����Z,k�F�R[�Th��^5sn[�cQ��5F�Q����F�X��Q��TE�����\���-������,Tm��Q�5F5���h�5�I��l[%EQ��l[r-�F���5\��F�Q�5���E���j4k��Up��\��IjKRj-F�Q��j5&�X�Q�#Tj5������h�k*���j6,Tj5c��cQ��TW5sk��5F�W5sQ�b*���+F�Q�*��&��Q��j5�X����Q�Q��[r�b���sW5�DV6+6�F���j5�-]*��j5����Dm��cQF�Q���b���Qlj5�\��j65�Q�����j*4X�j5F�����j5��,V��Z�\��F��65����j5�1�lm6��Q���]��(�#E����x�������m����F���F�b��F�Q��j����F�j����b���Q��j5�F�Q�����nm���j5�F�Q��j5����F�j��Q��j5�F�Q��j5�d��F���X�lV6��W5sQ���\�j75sQ���F�Q���QF��j5����F�W5�����Q��j5�Qj5�F�Q��j5�-�F�W5sQ���\�j��Q��j5�F�Q��TZ5�F�W5sQ����b��5sQ��j5�F�Q��j5�F�Q��jME��j6,Z,Z5scE��
�5sQ���\�j76��j5�F�Q��j5�F�Q���\�j5ssh�U�\�j5�F�QcQY-F�Q��j5�Ij5�^5sQ���\�+���h�j5�F�Q��j5�F�Q���j5����F�j��Q��j5�F�Q��j5�F�Q��j5�F�Q�QX-���b�j��j5����F�j��Q��j5�F�Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j5�F�Q��j��j5����F�j��Q��j5�F�Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j5�F�Q��jb��Q�lX��\��F�W5sQ���\�j5�F�Q��j#Q��5�\��F�S�[���j��Q��j5�F����j5�F�Q��j5�F�j��Q�����j��j5�F�Q��j5�F�Q��j��j5���[����F�Q��j
����j5�F�Q��clj5�g~m���o�o��O�y������8u>?��������K?r /�uA������������d�U	����2��������P~kn�^�KP7�a�Z��&��}+:�_Fw�a`�nR0�N�����Iq�6pA�c��.���H�X����K���8������������#�����*Q��E��y��X7���'s��
�m��B�v������f����4��|���tl
�J�j�7��i�-L�^�*�\�]{]y������]�����EF��XI�B]��;��9�Y^d-�d(��^G@3��Q;���h�!����Y���E^tYnbMB��7+yD�A�\���W�>�r���-[6F#Y���e8�0w^�.d��=���j:'-a)��t���[!�s��u�%������)+�E����FX���������]Z��'����H��
�R�
$ox�\�i�g,i���(c����m�2���YC���*�(���qA�:����,1���]|M���b������s$K�:��Am^t���nv��kJ�T��Ld������q�&���jIf���#|[��:��n
e���4�3]���s97|L�{������M��3�~X�N���1�B����'
�v�D�a����R�3�����N�[t�1bTV�S>vZ�l0t\�-��2����	�yR�u�X��1�v(�����2�n�qS8C��]*�S$��@K+{^Y������]>�w�����4@��go����60[(fd�����q�54�u}�5����)q��Z(���L�w�w�3��*�.YeI������Q#q����4�L�0�J���u�Z�7��B[��SFQ�N���8�����W1����3o��sV�=2��*�_n��n=�tnM��es�V[J���`�uxY�&���x�����x�M�������anuOh�����J����3Lwwa���a��y5�,���N#R���s���um���Q�)k�|'L�����T��9��L��hq���6B��[����r�=0��� �o�NZa�i����
V��u����r���xp��r��{�6�yW:���Bff�;�Y
r��AX��OG[��g,�b�cq�}+l����V�r��=�lk�g{(+{�f����K�f|�c�2,P�����b���G9+n[��a�
L���}c��F�ed}���k��*N�WU��+a2��~���bC7r�|�U.}�����8��>����N��tw�q��"[��S7����X��l���-������������!|b�61^�'yIz���&*j��Z\�':�����|s��_o�y�7�p�V���.V�I����j�j�K��O�ZJ�%�f2��������%r���[�')��s��u{���+3U���f�=Z�n���eF6KK8u��e���O��9�����g�D�����H����<�
�<����%��7���G/z����b������_ZV�����t
�����'U�@����#_������#����C\�Fq9�v2)��6%����d'��jyc8��B������m�>���	e��m����=��{6
R�����p1s��I��FcS�c�'M���XS��w�iewQ�d���)K=B�%�Z���S+E)�\��q������"�e�Aw��pR�9�r�Fv���,R;��v^C�u#�{�8��F�q+1��0��T^�ZgY�����U���N����������n���v��9��9�����"Z��t��7j���M��C��W'y=N������B�������o�mk��w5���B]�\���+�5
gL�����=nu�vSV��<��q�}q����{G[`-������N�{#�__e����n���RM_�f7�u[����)��K5�h�n�P���fK������S\���U�W��[������������c��M�P�B���=�����7.��������bNMw)<�\-�-a����e�e��6Io�V�����o�'����q��;Pb�h��,�k����,0sr���Vvy�X���+���������/k����`F�d.����	��y�3�U���c+_"{9�JRK9(�\�Q�0^�n�pd�K���5O�Z5dmtR,Ww���k�����	90�{}�����F��,T��Q�[/#��;:q�9'FwT����\��o��"6V1�o0���e=��^i�q���m��]����vja�G*h���)=��E��/"�$��x��-y+B�^�+v������j\q��J}���4�����kke�c��3����1����vGD������E��k�63n���z��e�=������f��>��J�`9����o r�?�b�tM&�����wwA^��5����XdZ�-+��[����k-����7�y+����h��Y�� ���G�j�v(��p��:L��	c�g����i�q�e2����.r����o����H�ec��4��}��i0����VPc'�X����G��{*��i�'��i+2*-6(F*��4t�J�Op^d���63�Yb���q�s|w
^�pl�
�B��X�L����M��S��^m�:�m��
Dov�"��Uo����G����;�>�-��w���Pci��)�����i�s��yd��X�&�}��r����l�G��$:i�����ogc�7���l,�Z����m���<m�K\T<kc��y����y:�K��~�|�� G��Ooe�\��u��]K������w��M_3���isE����c+3_L������a�}�rm�x����8��b*
)c��n�%}{���{��=�������2���s���=���{�:}b���xdisN�7�
.�{v^�r�}m���QQQ��Y}����T,�a�8�z9������U�I5v[V���(W��m��������"���T9u�������&��T��z���Y��l������_k�K�K�++i>��2%{�$IH�v����]l�����v��mJ[�|D�����\f�i�Z:I�y[*PA���[[�(�Y����9v$����R9����;��j����]�576�'��@i5���k���������ie�X\�($&9u��Q����n��O2���l-�z��kc��7Zv�?���b`�\e��wT�����]�����y��M>��s�f���ic����9EZ���Y��B�t�����,:�`�r|��;5$\]A��l��O�(xwK��uF�U�.{�����Yf)�1����|"�7r����v������P��Y��K����b��2{����r�WN.������#kI�7zxA�+[�@n'�������9��\�$����X^�;��\�]N��jR�����n��������Yk%2��������5�� ������j'U�8�:�\e��o'z�*n�s3��D�����p�-�yfi����^i��u�=b����G6�U�/�j��'Q*��x����N�[��3x�!�\��������(b[][oP����'���z��
C��
%S�����������e5���s/���&{	�z/�wpS�4����s���q|\e9�s��;|��b��w��������W�;j������M\�fwm�:=�zuL���Wei�km���=�|����{�������z����5�W�x����oG�����$5���;���:{4�����%����=��~��8�qma6p�2��giy��Y�ab1-s��q�l�y�������B�y���#H�iJ�����q�\d"/}���T:����M�����p������������dS��@�Tr����K:7+g.�5g%�]�@����o����	T��	K6f����9�G�����*90v��O�Der�����.������c�W��x8�I��:��S�=���_[R$��4����u{O��,B�7M���f<��-pjs��+�{$�z���h�����6��h�J����V�V�q69
��el�Oi����#sL�B��|�M��U�� ��	��7�+]`����T�R���;�k���Xqn<��><�~�V��EU����g�]��x��{�����Eqd���w�}Q;9Z����Y��d��\�����J����.�	S$�q^p66���b�;�����,tA`N}RV]pn����D����W%D�o,<�9�Y+e��r��'U��Y�0>������+��K�����>qU��wNrL����u��B�7o����6���:a��jq��{���y�ne��N���sQ���>e����z������C

(�cy�}���m$��Y}��������"
�2\:,����%]��l�|f����L�4�T��E�n=����r�5c&t�L�v7�c��1z���Z�|�ub
��P�� ����J�����VM���j������I��i�qu��=��rV���c�z�r;�i\���]�
x�R���R�1gSz���Xcb0�#���u���0��v��RxV��y8����05��T/o��^Q���=�H�7;*2�Q�����Nq.il�*���a��y�.L9��������t�����x%	m1UVU)wu<����M��N����W�)<k����������7���w9]8�Z����J:�R=�����0����_WOT�Hg"��e�ni��vxR5��kUn��Qmv.�Q�]m#R;�v�u�����;5�!(�����:q�5\��Dm��-���I=�3��gf��kl�u+Mq����
�����Z',�|;h5�����7��F1Z=�-��v��DC��YN��2�uw�MG���b���n�����C��.�����G����A�gA+�8m��BQ�+&C,�qs-b&�b�J����+����me��kG`�AeGB�h�����v�1A�#���������K%�B��._�yr@�ug����d�5��;w������Y2t��N������f���K��c��������K:���5
���sc�����r��D��$���������9�Y��Fi��Z��U����� %9Yu�G:�m|V9���0��2;���;�Z�1�����b�%%z����v�����0��S���b����X�vv��W�����d��B����iCW��=�oH;���q�4�yA�6'S��u�E��������!����M�yx�D7-F[��lDkn�s`���P��}�W���+�H�K���QK'��+E�Y:x�k�O�E��n
���.�|Lj<(oV��6���5���AG$�����#Lm�qhh!L�n�7%���a��o:p�n��7���e�Y���5J�J��L��l����/e���x.���kc�2fiY�X��Wtr���*a�+��q'p��+�-����*��]t��7�#q����j���.ohuP$�=u���4hWB��v���[Q�c���]��H��p`�f���d��u��R
�s���k;9�g@��=��7������S�;���6	���d�Ne��j����=��#DZ�0����!�*��=n
*$���i�5�UXp�_
n�Y��4���!��c�h���[!Z�7���)��S��SU#{�z�h���{.Z�%"7���}j��U���VMmj�6M�HuuF����Nv��i�.�Q[+0�,�w��b��9�qr����d9w"�=�pW^��	�V�e;�y�ia#L��W>����2~v�]c|��)�K�����+:�or���L��B�o;��sf�`�lm��E-��2�au���\&^_v�K��;93VRNT�Y��5+�Ofj����8�+��������;9L�#p ��CM���N
P/��}��M��ui��(����N����Z}($k�A��,�z5�1n�����hgq9njTk��]������N�
3�GE`V�S�o�����D�eB���e�q/��S���;�/���������Nn6�o�\(�-4�t�Eo���N�5��y�e�\��`�����a��z*�S�����
3�.+������FaqI������5�V-��W���y���fo]$�M������Yw0��&�D�TD%�k4�7r��Q��$���P�h�Y�
��V4����u���umrs���`���Je0���l������4�L�2G
|��s�����2�K�y
�'��\
�}r�1md�vG$��v������t{���b��\4�v��;9���a�w0������V���h��0���-�w��u�j�X��
�j���G�
�f3���qe���	b�����am�m]�)C����,9�H�1�����|>��=�h�������S]&fWNbT�8e���Q[��k4�U�;�w��MR�8mRU6r����@���c�����w��V8������-��+(L9�V()q�V�V���6�� _�a���LP���a��g��z���y\MgV��;���Fu6�N��p�.>=�"��4����s����J�2���^�6l�.}/0���������7�%����}
[�������C ��x��m���J+�Tls���2�Gi��o4N����N����\�;l��/o3r
���k�BVX.s�<� �4�4�7����l+��x�kQ
���D�Dv���8vq�i���e��!���D���d�q;S��X����O�w.|��ND�k!CN,�y.�C�ZS����p��'�\C����0�����*B�0����]�Y���y;va�WTqx�7����a����*��n��14Nu�5b�n��{{�lm�9t��]Eb��A��s��>�b�IwhR�85p���������n��ZA�k����V%]�u��>�v������]�#�)�����-|�f�������^
<a��Q�P5�sm�7*[Hn��#d:�����
[�C�����s����B�U2�V[&�U�����aX`�slU�]�6V�r���cE�#F�)n6U��wf�,J����Ln�_q�]�Q��f�RM9�}����|���jiwWn�-���]E9Z�����);mv"F�A�M�<�s\�[���R�u���g�-�6���d�u�Tf���C�y����iPB����:i8�)U��Es�#;z�b�p��v�b�T7s�����v����5�����kr��n�9�m�
z$j�I�>�X�q���T�OF�A�[{�J�19�?+Yr�]�=�0��Y�c��p��/n��L�kV�8sd*(��������J���n���N�u8vc���y9:����[��&+6�f������|r��x�.$]�\�Z+#*��s���������Y5�c��B<i�0�Lcoq:��/o�-^��n�[x����dz�h]���\<6#Vuw"
A%�1�)Ik�pd]-V��2m^�N&��nN
p�*���T����nj\����5t9��|E��4�����1���������wP3H�]�(��h}*[k+���E:�s�WH-H��������f�9S�Y��W+^C���4���U.C79�[���#�p�B*��:��
����h��PIC�dlp�K`�|Z�BEX�4N�!��r9�)��{���<�a��E9��C��.��[����J��g/5�7{q����9 P��.�s��q���];������v��Q��09����=�bI!��'�r[�h����F�c$Y9���L��:��a�w�k{B,�h;�`'DV�������DV���7'P�v��39t���;�k������C�Q��4l=2�]7�b��wd�[����ui������t�u
LR�-v�2�a���W`*z����P��Y'^���j-��_��������D�|�[�������g)����wn��������z_Z�k/X�S=o���1�Mh�������N���r���U������voY�H��e�c�9�Y�Z
�*��*2ks[��H������&�7�cxu��t��u�+h�*��L^n���6��������+�;�nI�;��V��r| �U���@Q(��V[�������cZ��R�x��������f�����Nz!�����1��2���d�;-X�
�2��$C/.��>�����\j��7,q�*��	�
b�/�r����n��bvmAy=��p��	�uM��n��m�l��r���q'f��1�r���2�,��q��+�2�,�]������h��.�^����-���a��P���R��Rw��+w6�Y�������U:���c����/����9&�-%4f��[����
����(K��J�b��Yk'=�Kn&n����k�m�P�e>�Rc�i_h�WadB��x����;GD�^2���])���WZ�R������m���1�Ew[)��b��]��9e�B�����J���s��sR��u���zoeG0Tz3�������X��L7�q
o	�R��p�WK���;i�3lr�w�	��t���L�b���7+��QI���8��v��8��p���Y�f�['��U�VW]�#��3��aoYF3��Q��WXG|T������IYv~9���������9���	I7�o{M�X��o�����t��������*3���q��-�XC�H�-6��#
��e��y��!�+n;l�4�&�^�2��s@*
�;�����]wujn��	3�h.b���2�?��i��^�ZPtY����D]�]�"��o�o�
6E����Q��������)i��9��#s8��e����q�=���&�Y��h��(�-��B�[��OO��+�l=�'�|��:��y����	���Kn����5��a��n�S��m[�m�Az7	���A�����P}����+�����Z�F�fyJ�F��h�(���C�[<��p��v��K��9|w����1�TmLV��k��4���
�f������;�@����S�\�
��X(|����1��c�4����Y8�!\l>��&��x[��u�����dj��o������������x#<�)�=��(�f���]�b�K����:�����E�+:������##z��=���*�1q=��n�l*{��-�5x�������Vmwk�oV��Kt���Ar�Y��y��v�h�����eJ�����.[|��V�Q}3K��t���!�8fk|c��eSD;N�d�f$f����U��/a�@��{��|q���Qu4��E+FV ^�:�i�J�����������i!g&��f@s�nQ����w�Z����
8E�/���:��f��L��`c�nKN����>����[^���9Nf/6�
�[��RO)�n�����Q�vs7����
��;d����^z�*w���d�+�
�vT���R�%���!�+K�wn�U29'O���#KE����~����3��b��/]q*n��+;�\���,��]|���z��+z�H�Y����!Z���28L�	r:����]������[��D�|����5�_Vj�t&t���)�	��5�ioZ����7���3��lL_s��y��n�����5�'cK��N�SRX����Bu;�tsnrA;�X���C��R.�c.3��6�i��QVD����3�
S|��s�M[��~*�8�M�RN���{L������f��qqM�Z��n
a2���"Q
a�\sb�$]�+C��+�w�RbEa�g:�K+V�b�Y0��qM(�O�T����J��
�����Z�]z�Cx����v�w ��k8��!��&l�J�}&�����<��3��Q�LX���7}��3KK*��':�ls�[	=����X�f7����R`�OR�t�6&{d%�B�[|cSXb����)�u����x��\�n��i�X 8���������[�
�u�<n>'z��WV<�U�8e����:�`1��<�9*(Ed�����4.mGvm����s����`_
��`��DG�`�-�Zu�J�[
����\�<w��V���6Tv��m&�j�������v�B�����)/��1��t������mA0h�^��K�� l�	�,}��as-<������0��w1���*���n��y�MkU���.G���0-���m��+"�D��e�3e�]����p�����B
�}������h����9
�mt�C��F�t���7%�B���ot�9*����:����;u\��2����-�Lj��Mm�[a��JZ+\"=�%X8%--[��Nu�J��K8������N�!Q6-�����Z.�������qgP=���fe��
��[q����$�5p���e]�:%�e��Lg1B6��*��[�b��Y��Q�mOr�<�q�)�Ha���������L!?s�{g���_������:��?��1�}m��ko�����DQH@m�l���""��k~p�cu^GZ��$��"����m����m��8�	��������F� ��5��1��#@z��@@�1�(��<b"#�����/-wF2F`����`�DDD@�������F6�h�dh�DF ���U�� +�Q�Q�J*���{l'���1F1�1�1�b"1�(1����p�y��El0���p`��DQ�k������wq���,QE�%�c��*�F/r<�y��c�� 	1�b��w9��##y��Db ��v���H�b�lF(��F�^�#�`�6�Wcl���g���(���DE��G�DDkEoa[�-:""y�����F1{������D� #���o=Q�o$�I"K�DD@�V���D�"z����wp��w9����� EI5�#{D��F#�D`�A5���;��F&(�c��#������;��F-�nE�1�����#������q�b(���Z�$o-�U^��4Q�4QE"��DF""#�wr#s�Z�A�1A��" �@V��m��mz�$I�b1���;�d����&�x�$���!��� �5J�j�B@����������9�E���Db""/�Pm��^zDF#�wwwww ��@
�#Z����;�����HHT��n]�ww9q�rw\�9��c��@�&0N��{��������B"o-8"1F1���wN����FF"DF"����l���.�(�b�`�1���y���h�\0b#"�������f�_��Dz��Oh ��m5��u�������DDF"������Uw���H�Z�#����Db/b�IP�{��F" ������=��y�"#���W���;�����^kQ/����9�p��w]��I$����������u��9wu���www;��$%[��H��z��`�Db1Q��wt��#c�1�(�D�MA&� � �7��(}M�H#���������-tDF"���9�X�����9�s���s����"#�[�p9�����wN����W_6�Mh�D� �A �wwwwtDDG�ww�����N��z9��;�����j��s�wN���s��wws�����<��y��s��ws��w�$�
	�I �I$�@�I$�����w{����q����%[�O���9��wt���;�$�4H$�I�I�	$�HI�ws�j��<�H �]��9��9�s��w\�9���1�^V�0@�wp;���w'���$�D�$�H$�@4Owww ��| �^#������q$�I$�I$�H$�I�H$�I���z����Dbz����;�����������������\DDM_����b{����� H�#�@���b���g���w\�9�s���s���s���������������m���_H@����w]�E��=U.������F1��wwws���������ww����[�[�n8�A�@
��� �3�Z�99�w���w�;������=s�w]�ww9��w����@
�E����p ��II �II$�I$�I$�$D�I$�H���	$�H H$"�$�I$�I$�I$�I����DD�pws�����s��`�^E���` �#;���s�;�����9�s��9�s��"|F�c�w9�1>/�b^^1��E��!=����]�wu�s�w]�;�w\�ws�����9��:�.����wwvH>-Ku�j��(
�H$���$�MA�$���s��9�9;��s���������$O9�T���A�	$H$I$�$	 I$A$�A$�	��@�^�k�'p��q���s��;���o`+����G9�`�F<�4	�X$	$�I$�I$�A �I$I$�I � �I$�RD�I?Es�������@D������s�ws�������w;��y���y������wws��������Dd�"y��1;�w��ID�$��&�$�&� p �I$�I �I$�I$�I$�I$�H$�4jUq�I�L{������;��������s�@�m�z���"#;�N�}��.���s������;�������s�����������
W�����DE�9�������ww=[w��N������wwwww;����������A�9wv��9�N�s���ws��$�F�}�+��!$�	�I$�I�y�����;���s�� ������$H�$�A���ws��9wu��ws��$-|H�^b9r�w��������z�����=m9DDR`�^����v��@-W�(��~��������gI ��$I'�x��O�@B�����G�\Br�������G�����������Qc�p$���_���������w�S���W�l���O�x�\�|{�;��!���'fx����n��C8���4a�:�
��$q�r�yl��J��5}�
)��;������]�^D�NL�j:[���a��������TcuQ���E� ��.��W��iV�[EgX�)���6f�M�� qr�Rc�5�"����48��h����v����gK�e�*�4�Z�j���A��;��gK/T���q�X�f���x���y������2��:����>�]C���v	�4yK��9��$m����}mv1{�]gN):��qU�H���/�j����]hH�S��b;7\�8m�}mi�������V
����s8�&�����+����t�6���#v�v���"��nne���]��K�N��_���4cxP��|z�S����-`�Z6_��{@�vW#,�v�[���Y���[9Y���*a����mvV�wR���W`]�*��DR!�ag-���m�����S$���}���o��N�6��}��WurH��-jV��[t��%I�s:Q@��Wu "�Hj+^wt��B�>��k��^_�3a�Y�����odW�1���,f��%��=�O�e�f�kn��c�>�O9����ff��u����/�#�������O�GFF�
�;Cs';����m5����i��.0{
��%+P*��8Z��f�s���am�SR�\���7}�DC[\������9�|����
�7f�we�����r���4�N�_mp71��)���i�N�r���Q���y�R����������n���,����������H����sO1���v��7e�����r����m���V9>�c�����1a�2�����z6�|�!/+��7�.�����@�a���gm�L'�.���������
p��P��������o����d:��#o����M��=s�y+������@�[�[[��_c
�X{��_1X�������#R#\��by�}�d��;C�w���j��vF��5���2���m��t���4����n�s�V��]I)bv�Lfq4���n5�����z�f������S#���i�+�w\I]�����.���hN#����'F�Zgw����c����9A�7x��z��C�U���_��/.��5�+Z�nG%<������t��h��2��nZ��5T�@�d�2�|]�����%�s�k�k.�Ih[�������R�����J����L:\l#���)�/
 �	U`t��:Vp<[���]�7�������k��e,��_�u��+D�.���'g�"+�Ua�w��$�������Nu��a���j;��������MV��WU�+�G^��:+t�Z�h�fa�,[�-�8)������������so��d��4vV�69q����#gIF��t�gvM���;��Dc�H��Whn�n��Le}�!���z;�'�[���yB��\	pWu	ki�6�t�VM��:����������d�>���#�
�+�e��O]v������#r�"�������������Ml�ep}��3X/cz��(O$�1<�����Jj�'%��Xr��t��2��`�Vs$���s������$�Os�NE����#�Mt\)��o��
3Fj��;����v��m�1�);�GY3���o�C\���5{\�K���r����vY@��N����������N�5;r�m����'�j�� �x(�Pdl�c��T���Q��(69G���������M�QD����t�a^�E��O�r���������e�_z�r���D
��K�hk�u��K(w"��P'�:��O=����3����|�:�so�Sw�OR���z:��=Z�����a�v(	�aE�C+�����8V�]����I������S$5�L��&,�c�0��{�� �Y��*Ph;���.7Z�`���k'�w+�� ��S�f��gB<G;,��-)�qq��g���q�����1<�,�sz�D��q����qU�';^�<9%�dOr�}���+Sg,��}Y�E��! �5�em>�
n�*�rror�GsI�P����g�I�{X�s��G#�-�[��Y����3�����r�v��KuBsq���.�t��E���3.��r��C�[mv�j����\
��4���<{z���Z��vc;c��.�7����\��3�����\Y���lu,�>����b����Q�ygo2�0����H��@�Yr��a1l���1�x���3,��6WY�����]�u0+�*]V���F�en����Bv[X�Iz	�=���:������L�EP�����2�D""����b����J:���SKc����j��b1J��0��6�����Z@�:q��e���M���Mw9�`dvov�^����kHEq��QhjYJ�LE%���7������2Q#��&�y�7�����W��W]�"=Q!2HWoWP�BX� ��y��i���d���2)�'������2����YGL�� _b9����WV���b�1A�xN=�5�G��;&dg9�su� )�c.��;FL/�#A�I���Vu>K��U�
�����[;�w]>�bPB��3!��LZ��4���Z��Lt��ii�4�4e���9E����^
b�1�����������p���t~����na�r�Na��P�
�JW<!���X�����������M��u�(����������^��|i���
7/�XL�`��,(����36��Q��� 5���e�f��Yh��Uu�7��Pq�q�R���5��[W"�;sp��M�kEr�'kz3��M���r'u�mu�NI����h���M.����K���VJ2ITT�q=�����.�W2-A7#���>�v���$)u4�n��t.q�ga��J��lg}1
B��t��q�1�sAkiI�^cJ�r�KJ�U�r��\��������;2�8Nb�o���N$�su������Z7F�9h��5�h�F���c3r�
c�]��r���������6��-'u;lM4(��f��y��w�!�+[��$���;��i4���Hp���O^�[x-������Cx��)�T9+�\�N.�0{�w{w�jwBW�-��,�{����d��SNC.������e����]�M������ln����s��+\��x��s��z���\rUjty�	m�Dq�����������9�����V��)wjZ4���O�H�;�	fUqB����L��U�b��yx��VZ�9���Wd�
A��v�o^nI��wq�[�"�`},��GE��X~��=�B�vz
�\vG]t^(�z;q����5�11��w;z
L���Eu������>�����
9���V�pk�.�0(0��X�ii/X���TN��+�>{aKryo[�����5L��]AWm.��:zDk%\Y��bS;c�q;q��X����eq���^ql�q��a����D�-Un\`V�&s*�s��:�'a~��v��C{&S#���te����`6�`V��ES����5���F���]}��JT���9�������eep�o��:�������������/WIW�g>�&�4UK��u��:����\�7��d]H�{%
�"#8���K���Y}��6��YF�s(�af�p�St��+��X�}���;D@�M-�E����B�����[8R��g57���R�� ��i��������|�;(
u�$����0����-�Y���S��Cf�f����&��-��B����]*1��.i����%�I���w;p0{m:{w8:�H\����s������\��ls��O`�0�����'dR�7���{6��n����������h`0�������!	b�0�r��nj7�q����a���q���������yL|.��1���f3L.�;�KcS*�M��|]��}9v�����y���nme��u�
8��5Z�v��Y��&���s�]��
���wS��'zg8Ru�#����Z�z���L��mH�T������5F3{�5a��,5#�����z�B��������t������b�6Bo�KUnG<�qMRq{�9�J.���Z�d ���7U�B!�U����(��M�w��8�Y�!M�[N&`�����p�9�9�X�[�m]K@�����RUt�Km�:��t.�=�P�8x�.	�)�#��<�")��U;V�f&M�p�����k�����yDs���Qt_+�L�)�W{Y+�eX���������-�������R��������n�bVM�f�{�{��3�!�s9�7(v���dF:#��f�s���
���#�']��%�z�b��Sq*�-����e�D�����Rm��5��-��Kc���g8AN��&������6�Y�`�����]�_[�Ko��2V-�*r��������^�:p�)�V]�,��M�UK�������v�9!����8����m��E���V�>�f]]8Se���������p�e�gv�*��.k 7Z�r��{�%l����LlYJ�5��{�����2Q�W�Wf�LV����Sh8�:,
��*3�x������X��P�vb�z���=�N�t������VR�}�4i�!
��zw�|K�;F�4���*)f%�m:P��d���f�#\;�E���`�1�����������6:w��M7��-n����P��E�x��*���&^�=h�C%��).U��j ���:v*��36���%�fj]��iV��X!&��e ������k�;�=���DQ����f:QV�������o<�����u>J��H���������E�����!���de�cE�j���������U�{���i�vu����0������xqh�f`�2����[�����5�j�6^�j��&�
s�r[�A3W��������e��nl-|��tE9�H�.,_����#){��-���y-8������g�C�(PQf��*�ufh��c����-3���}{�;�I���K��v�ZS�	�E��ss�y5��!�������3�[3$�(b�S�8�o���*��z9h���R7H�.�o������Tmu��dY]K����O#�3k:u��n�<��H����n7�+3mCot��D�v���s�]����6T*N�]��97)V*�HF��>�V!d����X3�6wk8�u��oZ�p��j�V��%����n�6�n:�L�+������2�zd"���t�G�:T�|c�h�1u���S���c��W�9��s����������jq�*���]������/z���]ty�i��m���	WAe�yZ_;�Ns���s���y�U����lW�4QH;(�Jo6����xK��������{��������� �hrK�gu�2����30j�� c�c����,[V�uj8��;���EC�ZP<���w���B��#d�=����������9�����Q��<
v6
p���M+�-+�1��-Z]�q��N���F�){t ����q�Z���d6k�2�kE�Av(��}�
b������+s;D��8��/��M�������{�/��%d�����=<��_V�Y
*A���S��|�/���c	����/l�f���
n��8���$9��9Q����up������4�;C�f�P���E�]PEt��\��k������[
�ha��I�%���%*6���������3�=3

����^�TG'v���b�+q�CW��}��o)W��%��S=��.V����vM�3pxF��[&���5�
N�c:��f�K:�L�'Z,�VQ
��������0a+F��G���e�K�757��X�sTB�B�+:���d�%k�EM�x
���"�Q�g���{��_w"^uTD�G���t���t�������������ebm:=��_k�/�w�y�C,o�����ncl9(���g����<������kE���qL�}�[���D@���5��q���ug�uy"I3�b[+qtZ��X���������w��h�\���N,��h��h�[��hu�����Z��9�j�����]��(U�qi*�G_wm�D�l���-������6��Z�5����[�PJ��-�h�z7*&�;����
����t^�CViE���	{�aVi�o�����A�����p��|�7{%���]N�T5�����a�<�o8�9S�q�����'�VM�hP2Ij�g�-:}��9�5���
H���T�2���_r��G7&q@��������3�uzz���d��k���fR����&�w�_u���/1��u�V�L�M���j���k��N��|�b��fc�:�����%T�6Ui�K%���f�PM�8P���;���-m����V
#&���@3]G�-�2���L�]��$��,�&>�s��oM�j��y��Wj����Vb�;�N�6��
{���y��������C;&�����!�}�MF�U����7z8����\I
�=y�Le�G�:r����`W�:R�Iv�,.�7�z��*�m]�d�m�X6�U���l���m�o�T�\.�L�RF�]U��L���j����9Zx��d�Q�I"NJ��[����&����)����:��=T;�!@	��Wq�����W���N�j,�
��e���F!��a8�Z�t�>���[m�!q��
;d]C-N�dj����M�=Y{����[���#m���e
�g���A����i��i)[|�Jf'�e��j��6)6���v�!ms�Mj�jg8����o3�]NA��}�p-����P.����J���-9Q�����>�
�EX�{Fv�����f�)��0������n=������;�U���������v9��l��z�����h�jn�`�>�O�C�<�L�$�������M���`���Wy����cy,&�r�kt����e�U��:3n�q��S|�(�r��(h��������z�+_P4���������'�{4��y��Bs�Y+��{�����*��l� �j;n���;s���.i��.G<���������}�S*q����"X�9�<(�7���n2�'/�y2*2�u�&�,��J�-�Xmq���F�H�tF��:��x����u��:yN[���u}�dy�	��M���3�����r_r6���^�W^�e�t����:�'y�����/VG9pVC�6����q������+*��KS�uc'.9�[J�k��4iWZm����/���r+t��J�u.�X���Gu�y�Mf����\
�d�C�\�q�K��:�������%^L7����gM=�y52�	$���C�����M��g�,��@�f�F
t7�c������&�}�j��2��B=������W�]��lui�N��d�h�(����.����Y	tp=�B��]�nFem;��Z�3)�i;,�����ol��eW+��;������g	�5'�VP�v\�h���9���n����3�K�=	��]����{������dyw�h�Nl0���X��4�q���5������LS:�g*��C��u�]r��eB
�-KtWn�
;���D����Q����i&��������(W�%]e���1�����5�$d�j����ba�����"�Jm����A���s5���Jm��w�*c9�3{&�I��D����&u����#���gh�*������S��`�������@l��r�7��S��w����u����\�^��n��g��[��BM�KTYyc�w�G\����\P�������)e���3��.�O�%������J�1��Jri���`��� ���+�jJ���vW!;�j;�z.[�$D�K����^���`�M����^9�k��	o����9�
�.��%ZpNQ\"�r�U��i]*�2����)������H97���\���\=DB��3{��
��qb���e�oA{*�G�K��j=iV�����we*��<,��x^�0���Q4�rk"��j��mf�����r��o1=�Q`�C7_%�Y�kde����U��P�
���q�R9����B�
@1*����W�8�L��D���8��n�������MZYr2�K�������lLu��1��F���e�mD��J�jx��*$'Sw�������j{���q�{u�7=�O#�W�������]D���t���S����Wxo4�t��J��{�4b3_�S-��HK�n�^S�f�n�I���Z����PQiMN];&
���w�n|w2�%����|�����;"�0G�f����y3xct5��P>��j)Plx�V���7C���*��&���V�mb�C9��[���bkf�L�����Oo-�Y�he���`���C(��tb���E>����
��qr������m��z�-:��[3�W��f�Nw-��m���DZU&N�����m���x�.h]��Y��,�FLp�]���x�k3e���6a��d��_y���x�$��z5C�����wB��������yn�
��#(Z�-�(���M^OVbT��aZ�m��#&c�qu������0e�:�n_9�q���Q��,�xpl�UU����[�wf4��mH���a�/���sE�8jz��W,�n���
����G�������z��o�e��6�*@�	 X{*�=�&k3�0������
���t:�i�x��[��0_'/Gp�v����s�v����nr43��3sV��A}W�l��i���	��O.er�,w8f�G�R���ewl������B������tk	N��Y[�"e�$��{*��e��g��bXe*��az-�����8Lk:��lW"���\����������T������'��q��r_D������{vD/^=Pu�����P���H�c��2��,����5:�O�je���Bq��T��o.��Vm�	�m3�M\�|o��g��_6��Q6gq� ��w��5��e��Y��l�S�����/R�GB�0m���Pd��*#�a�<t�}ox����I�7��26n@]�F�Rtld�[$�"�����$3^�=���i��.�������k�`��2��FI�� ����`Y;X�����%,:+�U�&����k�+���a�x��j7O����Et92�P��t�uT������SC#WgL�Wc�iU��.u�wnk�nY'��.3�cVAMb�����g�������k���J��JCx�����W������9'9�sT8��0���������-t>��j�
���WfU�rz�����+Vb���S�%��u�V�B"������EyR�5�->��/�@�5��8�W]d���w�d����O;y�KB���yyy#�	�d��q����9n�w�+N.{�$ D���F��E]>x�5�z��	��[��k)V�Q�/������@f�G�c�
�I�vm��'�n�������s�
�����RfEp��Q�ww)F��t!�w�o�of���}x_��
n�$���K3v��t��:�Z�K�5�������4�0m�
\$�L�t<s*D!����s���DF.��fv��N���e-�*!}fYme�5w�#��,�E�
)��-B��r��r^8�!�9S��9�����[�J���K��&�M������wt<���U��B�f�T��\V�S[�dSS82e�"�rH����h�=qw��>��8�a�	Y�����4�Uz2���h<�z�s
��{��5Z��U������������s�w���c���V��DVw;J�� ��
k�Y��j�;E��6����wu}5Y���X�&ua�8�n���gM��k#�uM]���n^U�RPl���U���nw����|�md�ye��]�����In�'������F.DZq��������y1}�������>�,D����6��W�S��u]���yE/�-��;�T��l`hG^�
�wm�����-.P�-#�(f�y�9��7fi����:_b�%"�s����v�4��/���a����.��H��#o����E\����Wh������w2u�@��x���/:�K�����f#a���)J�7c�mh����z�:&���:.����40�6��!���m�����p���YY1���E��H���������-�e��{
������/�Z�K����x��%�,ci�&��jB����_3�z����X�VIM�w�)����_i��v�EL�WE��q�pu-w�h��������j�rG�
�3a��-��������������i�s���}l���V�c\��l�����kM�{t�Q���MY�]]t�k*qc��`��':��9������ED�s�����}.�&�WU���v=s�Wu����q�6���}u�e���[�]z2����;�&�-�9���fLx���?�?�9�?c�'H@ M� �2?�L
(�he�>���Q9q�3������S������][�-��ymf�.���H��BC�;���ly���4��6�J�+������0��SG.{�of�B��;]�����f�3���=����5y�����u�#PC���z����o�U���,�������D��}I�><Xwr�e%��f�s������8+h���Q���+x�B�k��}Lf=XV�c�;d��2��.����;�[��>�t��QZ����,=�o������9d�����8[��sJa��8�j�<���Wm��C�0���:	\�W����tv;�W{��vYQsT���v2l[z*����N;���U�*�"x��R@wT��F����n����f��6N�^>�/V���kq�6{��Y�<�#7��1h}����0����*.��j�[�������g��F���o4U�/�1��$�����V�D�b������S2�u��&VJ�oH�Mr�4�{�1�4'k7xN���53UY28��'������n��ru�,#��E���3.7�/d#�7:��R�[�Z�~��o(o�S�J*����ct��
{��>��R��)3n����3t�HM(��PQ�����0wq��8u�o1
���\z0w|:�6'e���G������xbE���m�fe�%<��'R���h��zv2�\������v����;��o+�5��n�6���\&�	��k����89w*��+�T�oDP�����0n{1i0B6x����{�}����;����j��������
m�G
���**m��O;M
��P�.�3�����k�L;��;@�lU�:����R�p��5�7�j<���w6B��d�_Z�ddUeA�.�Hn��,���V��q#�p	�x�_
��b��E������!T��b��������:�,I�9H7��hfhTh�����q�W;����?�l7�D��j�	�n'���m�<������'��sWt������/�1x��Q�����^��jBHq� �#��p�$$�I�����+ef�i�M�ikW��0(�w9�|�d���ot�$
��9
���g�QyYf�S�(�wiSx�����n^,�|����3���V�n���,��V�l�7���Pwi����neM{q��[ui�C�_{~W<�Y�<|�5}���%z?5~�G=/�Zw�m������5��w���5�0T��g;&9���P�)Px=�g����@; �8�6^K�+W@�	��+nvU9��]N�Q;E3f�O�u�*��u7�;���4�U�u;���}�����^^�;�������j��^�����������*H��>����M_uJ��6�m�O+E�r��������e�k���[SQy���!�5��Y���]�;����6S/>��deG;�Jb�V75r���{����m-MgWE���E����{�1M�i��2|�F=����M�N(5�$xo<<�W,0����CA����X�,Q�WO����N��y��g��U��eq���s�#����[��W
�������]�U��z���/�O7�-:��uUeS����{�f
��!�{L����;�S~�j<n����i�Rk^�-�]nnn<�����!���oQ����.�<����@|U�c'S��t,]�������o��8��|���_�>�
�M�Yn�2�:�l-Ar�����E�P����y�^vd�}��T5�9b�M(x��,��J*3#����^���%"p].�f��1�u���~6�k�$����4���]��j�Q���x��qb������D�b��3���S
�������iq�����3=j������^��D�n�2�^�{��6�Cx��3��t1����&{����S�YR`J�+2���}��]:q�C`���c9}��0"�4W�{}Lr�x������'9����On#:��c�{.�����F�{�
R���g�����Q3�=B8}�|c�w�f�����3��skW)���o6cSl�*P��f������4a���
}�b������9g������1�.���+;�:�L�f���v��7��^�m������s
������^����A��9V���me5��|����m�����Vh>��ll�r������`���%M�{OT���TV2����e*���	� ��6#�4v�-]^������?����l���S�s{��JZ�2�{T�7
:�Xa��f)9�x;��5�m"D����;f�M�{S��Uw����h�j����I
�G��_����R~-X�Q���7����)��,d�A��a�dd�F�adYYFl��ne�����AY�l�p�g,� �� � � $���lHoF,�+"�*BB���a�@`0c�jC0cx;(���di)�4����wotX
�!a��!@1�`�#!���#t�p����L���K'	4(	yG�$�(��622.&@�A�`1�1�1�zi�]d�L�A6��c �QEQRAAAAC	��0Y�0��
.��@`m��m����m��$���@HX`!�HY�mne�A@IEI!e�a�XYf�
7M4h0�[����[�]�m�T�2
������,�D!i����lh���4y��b����L�F�!�m�Y�i�tT�AA$��`P` `#p����� $,07t[Da�l@�c@4�U@]����3.�b�0�!�e@IA`n�H$A@IE����6 l� ���� $�	*@ $,�@�w0$,34�71�f�$����6��.������ m��AAA�QAt��a�YR��A�!%HXn�
471�`0Z`���7M-�d�@���
+K���4�L�RKt�,���33��0���(��(��$���0�,��,�.���0�2�  $,01�(�m$6l
���J���(��&H � � � � � � �$,0��W@IAe�a�tAP]PPYa���0�����A�ih!�`C@o@����0�0�BK@`nPA$A%H���e�!%QE 
��i/oE����0�2n@	(��(��$��(��� � �J(��(�B�
�M1����NE!7E�d��l�$Q��X�n��E�a�e��a�e�Y�e��Y�]Y���!!M�4�C
-	���&H � � �� �J(�L�TA%Pw`A�������
4B1��1Zh<��
�$�@�m�6 v�B��	,������(�.H &@$���	���.H �0�Zi�!	h�	����PQ4XYfaFa�`i�i���!`6��il2A@����a���B��L04�E��a�a��vafYrA%h���(�.���ci-�IA�����B��n�AQEY�4 2��B�
�wwt��4C!nXh0�.H $,0�� �ws.������
��
��`AA@wv@HY` @�0��m@��!�
n����a�b�<F����a�e�^	������f!r�*�7tHx\�@H]Pn���%HHX`
-� � � �IA��=,�Cb� $,0���	$2
$C�4nV���ppp�I"�J�
=�,�4�Y%�n�hm����� ne�@��A`a�kt �IY�a�@<x���P�TLf(QqWr%LQ8�sr�K��	*j������
�� ���	�����=SUDUuL�"����.�.����d�� ���� �*`&H"���"�����&H��������� �*��"���n�����	����"�� �"�� �.���.�nf �� ��� �*�&Bf���"��&H��	����*jBd�.�� �.��&I������ ���*������
������I-���DH!0���I7wj��S5swu@www`UUU]�>���������~������3��$����I%���kwu$IU���)"UUP����UU@www`wi%�(V}�kd�K{�$�[�I$����In���In�$����I%���N���~���9�����www��~����j���������
���>�}��������G����>~���|������������������q=OOOOJ�����OOOOON�����$�Bh�~�������U��I���J��N�:!APA���XX�9�������/���:����x�hG(6�n�zq�L�9���'3]��
jm����������=a��e+TYd���.�~�Y�%�8���Os�z��o��==�ffffyf��33+33;fffzzzx����N�9r��t����:r����U{q*�q�) A�����+)yt���\�'�d�WStF"4��j2��$'SQVA����n�)i�6�S�����b�{����1
���u4Cz@�d?OW����QE�i��i��a��ZffVffv���������N\�r���N�:�:t���.\�r���.����@��I�����mr�zl������ �7u�T�[+1�tL��;��p�Hn�2��d���)X��2�
y>��O&W.�9��������UJ�u�a�a�i��i�l�i��Y���333����.\�r���.\�r��N�=����.]t��R�%H���S�S�Zf������*K��T��"��������0RX������xm�j�|���D���	��2�!��7`,V����M,��V�Rg�i���u9Y7�aEa��i��k3�4�i��Y���333������N\�r���.^%�U��.\�v q�:�U$���WQ6��D�^�Q���7�8�T`�0����V�.�R�
�W&3(�`��������Y��vq�n�vP�m�yE��������)�d�4M�]Nc��A��t������9�ffVffv��M4����9� � �q��8��8��8��u��H�����M1)�R�^Prf��}w��d�j��b��uA�]��,�G�e:�/ �VX����Y��*���4eJ���
16���r��$��H4�M4�3�4�i��Y���333����.]��:i��N\�r���.\�r�8��@�veu����L�N^3>`N]��q$PW.ZNO)�,fQ���L�R�	K�-�)�r�ko�pT�6�t��#tXB0�1-��yv�������������s4��������������.\�^��t�8��t���q����!u�UUU������ =Cv�]���9.G2Z����,���T�vM�S(4��c7R��o)�"f����Z�^)$y�U���v�X*/�!�,c����t�^^�=3333�4�i��Y���333����������3�.g.\�\���s9r�r�����!���p��!?�=F�N!M��TZ��3p�P���������jjM�{��q,�x������V3
2���TKJ�e:U5�� 6q\�� ����n�
�]5o�����o/n�������s4�����������zr�r������t����!@�t���q���/����2fW��y6%����<����+b�{z��g9����5����N��w%pgdB���o��Co��U���{�E�p+{C(�-;��Y������\��
a^M��	5v��/N-��b���2�f,�f`��;R�v�Mud�����2��$�^�����'n��1+����kzIx^iT�N�,[P���
"�n<��;���������/��"��4`�u���jr�����
��Z�������}�I>�j�fL*�7�y��:2�8��IT��$�������R���F������Q�i�
�e=7K�D���ZWQ���X�d����M����2N�X�kq�S2w>���p��]uZ��!�L�bw�
�k���+;��K���������T��������'`�����0%��a�e��Mr�P���'S��o��9N�L������18��,�%�����%#��e�l����������Q����gpN���%�}�2�T���%�}�N�6]�2�^9���h���;U�|&K��nTX�K��0B+!�
��7m��kW$�x��n���R�)t�;����s��p%��U����������c{-������r�x�
��9T��c��t��r���8�v��XGn_s�����KwU����UqA�J!j��YegM�
Ki2�u$�:����N�[�)t�o.���O!�E[���������z�������������-���u^e[��4����9X�vf��%��p��f2��h���Qc�j3���S���54�,�q����Sl(�/5�\���/�3,�������z��X�o]�Oe��U��B���]I3'w�\���5u������A�����v+����{���0f���|Nr����v1�t[�k�<kT
�-.+���)-�u;W�S�$G]>����5iJ��H��"�
5���S��F������o�����s��p�� V��
�� $����7���jRpn�=YueV"�'W�����A}���9*S�F�O���\��u-V�sr��sIq����_]�/��:�X�%��la*�`��}�U�Do�%�%����$�d#�(q"y�"M$
$D����j@..��������Cvj��N��N��j.��m]���-b��V�����OLN���������yd9z3�H���8n�8���fOGVS�]A@�{�|����8;�������h�o�2)�u�����{�<W�c��x�
�d��e�R��=+���o.��K�JS�4wL����o�}�M
����
/�glWq��s}�������c�T�c����4/v����bn�������s'
�G:��{wN������Xm2E�;A��uU�T�~��R�:���z�
�����^���w'��x{+�����u��bM��wuu���;f�d�N83��5L������XS:����x�<�V�W3�u<��~]���X���f�����W;�����);:������}�eX=�bZ)��Ke�����,�B��:��y���~A	,Eu���}����jE}����v&��D[�����B����)w�o������WI������^�z�y�8O<d�%h���l����U������o�)d3��M�"beB6�b�`��@���1�.������@pE������7�n��g�O����k�=Q�?pOPHL�:
�r��p�Tu���B�Vf1MJ	@0����s����u��3�����h��l5sq�p��:�Jb3�8j���o�i>>��/J*
����6%=Gj+�;���y�7��}~��,��B����Z�Z�6C�]����kj��`���
I�8�O(�P��1R�v��d�����tw)�XG�xm���2�1�R����sn�J�n��&���,��K�l�Z�Y������^x��X����nmui�4,��Y��(����m�J1vf��B��q��u������	n=��O;Sr����H�8�����?l5�����J����Ck����d�ke`��������Oe�M�����ss5��\�){�;�o��{-�p,Mim��]����9�=�ye:����
G�+d[-_�����|}zFy9��S�|"�X_��%�T��f�\�yTT�;���9���NeL�9[x7N��P��2	�)j�9��C��w�n��~H>I�����=}���{����w6daF�j�K�(8����	m�h��s�-[���k�u�>�K�����Qk;Y�����r%9P^pD��&�w)��U_+v��k4D����6L�h#����a��7�bl|t��(O�|��[�����Z����4�+n���w;����Ye��V�����,����i�YN�un�`U��;���;�n��V�n��m��s�}�������I,��k�T���+���,,�����[�XYZ��n��,���,q�����,,����,
�����,+v����
������,�����r�n��e�XAem�TATATA��y�wy�����}a��������:��p��
��n������@@C����mP��F���
�
�
�}�����+�<��*�*�*�*�*�*�*�*��9��@@C�UUUUUUU��,�L0�N�i��i����ffVffv�����3��8D���n�n��G
����rG.���Aa8U���Y]ARI���������^"N �VWPX�eu	\$���BC�$/�Q�����_�g�f����]�n��������L���4^Ze]�_�7�qys�u*����:�����R�*��gj{:�����r�~��o�j����C���^���^����fg������33+33;fff{f��>I��`�C�Y]AH�VWD{������AH�VWRG��q�w"p�����d���8v�WPT8U��#�Y]D����D?t�~��������h�����Oy?�)����]s3k���2�Lll%��@��3V�1�����'�����V����	�����Q����eQ�]���,�3�5��K�	j����C�
�0;���������|����O��ffg�i��32�33�ffg����!+���"�Y\�`�VW0Y
�es��VW0Y
�esD�VW0T��Y\�I+�����H
��^n�^WH�=�����f�k<rO(���W���a]z�W*v2��X�L���Kb��]h�mto+i8���Q��� ��.����;t�*������
���5��\�zt��	����9*���;I%�gNi���O
ffg�i��32�33�ffg����$��Y\���$���D�<O`��������J�es��VW0TJ�es�Y\��v�;t�v���I8t�v���$��g?o�7]?�~����*���CgbS��:yv2��nU����-��PU�G��rv������sB��hA
��f���,��}���S��<f,�ESY�4��rpMf��)M�!Z�*z�G�P����iN��� %324�{��/g������t�������9�ffVffv������9�����"J�es��Y\��;#�N�n`�W++�*I+���B�Y\�R+����Y\��$���/��@����������M+��.Ey���7�v�k6f�Y��=����x�c��I����r��Vj���=�u�����Q��l���32���F���������X������J���.[���9����jM����,�"{���;xxf}t�������9�ffVffv������9���\��`����
���
�r����J�es�I\��`����u�p�%�����
�\��`�~�H~��O�����{��:���jO���W���o�Zw��%L�12���w��s���Vv���i�qZ�a9���\����m��E<�k�/8)�8���&o���ROB��!�-L4���E���Q�-���������O.�����Oo����,���feffgl���Om3����N#��O�r�es�Y\�b+���I���v����"�Y\��|$�#�.�n`�Er��8��.�n`���������O�A��������Y����U��v���a�i^P�����8E��V\)�y�S�Iy���������V���Q�T��]�u������wV��"�����������B1�i��S�T]�����p��y�{U�����]>>333<�Nf�������33==��`�r����$�VW1'��x�'�/��(W++�)�t�v���VW#�#�x�!�����	\��`�%r�����I�A�~W>�����/�K�G��w1��q�?X���i�GSbV���o���{nJy����9��B��}8*���R)��l����n�0�����To!%t��������1nJ�r�Z1snZ��KdB�r�,��O��333<�Nf�������33==��`��\��`����
���
���\��`�����$W++�(����
%r����$C�$|����������w[R����m������j��q����1��m��9�Bq�����M����������/i�8�/]Mw��U�cgf:F�����r�nt��IY*6R���j�����q	�����3�����ffg�i��32�33�ffg�����VW0T��es�����J�esB�Y\�R/�++�,Er���8�>�Gn����D��#�&9�"���/U�~�iW�]��?Z��L[1]U����F�U�����v�Ri���.I�Wu��3��[�]u��%�7v������v*s��Q�a��AxY�z��XQ�}���eN�r�X��w��Z���Gj'��
�e�eo(���}sU��_F�Z��������Lwd$&�����o72����[j��6r��+��^gc#�r���B����q��F�,n5G}8gqm��yn%�c�����zuQW����<PZ������:�J-]H���o��t�nV����x�/a�e�/B�;���&��<]'�������S���r�����u,�o��v��r}\��)�QY&�wU����]\�2/0�c]��I����YS1�v�H%x�e�`�Wp�����������j�|�|����ZQ��=�����W5�v��ip_rZ������J�@(q�����^�U�&M]qGsu�]Q�y"c-�i��&^��KBTTx���r*Ub�xk^���fe�� �[�4����Su�ed��b��L���1�w�..�r�Rd���4
��3
���8K�����f(���k�#ft�
�����Wt�X�TUURt��H��#1d���q��q�"�S{*�b���H����[�ZD��W��$i���;0�NgM
�����:�X���rg�����pGU
��j�{d��,���'�{
v;;X���^���(�k�j�9�s1W�b�v�������)����owc�$���<�����K9������ExWzT�z��J�%�R�9�z��5cH��%��w]:�H�����N�W"��P�*ys�\����5%�V5G1^q���y��w���R9��Z�<�����7r�,� �:w
����9q��IZ�����[��
�	������z������}Hs�r��Vj.��:�c��={|�Z���V�MU�p�H����)m+����3z#���f��n��vr����=������#��� ��b�$�7r�O�4���i*���<���pVU�n!��$!�5_7��[���M�kk�Z��Zk��
$��4�{�rA����]f�6���/
�"�q�P��������c�l�&�F�W6v�d_Rs<�m\�����1t����P4�3���KX���c��-]�
���fG�����E�����}a�m+�fr������0���j�5�	d�kOU��xL�Mo�Xu�N�����coeK7W�-��Q���K�6�K����`��Fm�����u��}wIM����D�q���J�3!x�d�& ����^�j�(�J�^��s��)��Hc7��lm�Z�t�r��;���|�OyM�������%��q��q%�������I�����Y|��d���W3d��]������G1h�4��y~oq
�<���{���zr�:�'$<}��u�;�Y��y�v���Z��N��h��[4�Vyu)O[�yR���������v�v�X]"�R*V�� ��!j�{�92fk}��fv�b�\�����U���������/bx:�5���y��h����{}q��,��������PF���Kg]���>��������������6�s���b�������8
7}�N�8�d�:�o�s���G�iS=u�o
������9�g�������;\����m9Vq��j���!V\��������{3������:�z�ou��;��j�����)^|n��+��4u\�y�]{�+��B���9Z��|����������;7��R��~�cut�g�����"��RwP:.��5*��y��6
���Q�1$c��^�nIk�i���=�k���"v�J�p���6
��>�I���|m�A�������t�QDl��������t:�3�<<}O^��uu1��
'���^`��:����=�t�\��3nt���F����n��fY'��i��g����J����R�PIu���;��Y��)�-�eo���#
��������^����,Wj��B[�����HtU.��\�$��^T
�e���ng?�Sv�j�+�����1���>|6Z��%���u��^W�1��Z�Z��`sv���\�-���3+�^��%
h����o���F�����l��oq-p��u��\v^ql���]e)1�<��Q������y��B�@6�Z���������z����[�����q�����
[����)���N��Fut�rs���d�yn��6�������&����'�����V�7YD�s�a�<���j���=c.?*�����$��
Z��&���+)����OQ%uuuA�dr	�V��e��:���u�Y`Yek���������w;����������zwe]8wV��N���,��v�e��Y`{�����n�g�����hYe��V�Yek���,,�q��m�e�u�Ye�����Ye��Y`Ye�n��Ye��V�YWw�Y`V�n��Y`V���|7X��� �+n�������������TL����w����}�������
�
�
�
����*�q�������UU�j�q�C�U;��*�*�*�=�ss��w+�<��*�*�*�*�*�*�*�*��9��@@C�UUUUV�DDDF��CDC���DDDGK,��,��=��33<�Nf�������333��L�����%r��������
+�������N�n`�\��G�rGn]���a+���%$�VW2%B�Y\��`�I~$������������77�fU�Nl0�x��K9j�9�����u�t���8�W�w.o]��}2Q���6f5��3z#r�F���6e������40����x��c�[�sl�h�S\�kF=2�R�&QgO�������,���fffg�p������9�>!\��dJEr���,���D����D�W++���p������\��dJEr���,�\��dNf�b!�H=��������Y��O�T�i���'V�#`�^�������o�zaoGVyEqc7$��w���
�t��imcB��3h���(c�Q��y��V����O`E�z;Q�:���'����Ao.�#�`�sw=u|u������������{|fffyf�fffzzzg���Om3���J�es"s,I+�q"t9Y\��B�Y\��J�es"XW++������D����D�W++�����A�q����?���}W��L�M����i�P%��Fn,�j��H����K��L�&]C���wwHI��A�Oz�m�W9�xcqx����-g7���3�w.&�]E+%U���{z�����N�uGt��SSs�������^�_#��333�4�i������333==��dO�W++����Y\��
�es"R+����d��es"R+�����I\��c�Ga��s�0T+���H�� �~}��z�z����u����%�l��Z�uJ"��k;u��Dc:��iQ�����dlD
��,p�gu��+�(��4��"��h��j&
�5(��M,Xuk�,U���=ro��ad�2���A�F�p�����������s4������������q���\AbJ��q�J��qI*������\AQ*������\AH�:WR*���dH}���+�����������|��h�]\C���n��i����m��1�t
B�2��t��������v��(��������*6K�����c������W���WO7�.U�T7���J8i����������,���fffg�p�����=��>$U�+�(U�+�,�*������I'n�N�AI%Y����U�+�*]����;H�:WX���q��� 2{����?X���O|�f������e�������=�8J���O�h�Q��
�9�Wz���
v
�t��_:�T������9r[������s��G*������Y�1q)*�=^��yu���^��������h�������9�ffffzg���OS�8��U�+�,�Vt� ��gJ�=���]������\A`�:WX*���B��\G|8�"v�����~���H<�����}�N�c�S���e��u�Z����r�igs�8
x�E10�Q�k�:c4������<�.�]�uxwaU�q�������6�3w����wF"���Ln�"�)�>5���%�q��M4������Y�3L����L������{g|D�:WE�8�*���J��p�xI��Vt� ��gJ�
�J��q��:WY
��q$^#�*����>I�[]�����,����2�����)����=��u�!��z������m����}V�g�"��.���k��wVs�
A���C�V��;��,���2VkZ�j�����������=>����ffg�i��3333�8fffzz����:WY$�gJ�
�J��qI%Y����Y����Vt� �I*���H�:WXJ��	S$g��$�|����o�>c��
MAvH�a����)�1��]YN����q���U�x��|�m�����Pp"����jk�f����Y��`nf�vp���Y[Y���6�"�H�W8�J��S1[kU��J,���t������s4������������q���\AH�:WP�:WT*���B��\AH�:WXJ��q�*���I*����;O���\�??����3�u%�TD[�{9�:fX�XbG��w��]��C����5����|��a���������2����7�|�V^gV^[v\���Id4��.*!������i�P�bC�s��+4�x+_'`e��u�X!N$�]*��{���)R��"�����xa�LP9YU������q��(X�����Oa�U�r*���;�/o"�s��;OU�	���Q:��{']v���cf`8*o��&�����O1r�ow�ta����.��8)y��_gM�>z�(�����z&��u��F��6�_C,T���we.��6��c�;d�]��j
�:�H�tv��v���������}�7�Zr��/��CI���W��WcQ�M-���;�����B����ue����es,K�SA��=�L�*���[�����XI�{�;t�zd��+#wk��%��J��%f]�l)'���9��pF��wJ�'q�h�-EN*ej.�nv�4���^��9>P�sK������C7�/H��t�t�I��D�H��h�����<d���n����&�g��&������u��������q��z����=�@V�P�X��z�n��Y��#�u�i�Y}r��;v�
*�L���0�A2�n�[8�A��v���UI2�H���������k�*�X{
����<+��=�N	��q*�#����7�	�������w��uG5=Q�H[0�/��Vu�R�e����������Vj�(V_d������������
qrB����8eK�;z�7S
,4Zu�s���+Pv�3����L��__�wtS-��:���:��/�eoO-���CHE�'��:6v�eg���'m�I)�x����!�7�Z������b�F��4���Wp���-�k���y�Z[{W5�9�uVocV55����	�\������d���d�e
���fD���r���Um�l;j��.��:�_]s$%\�KX.F���I��o������a�u�]�U�A��#T���n����i�G�u�-&��f������y�o��������5MmMiR�^V�[YKo�[ouZ�V����@u$�3���|������Jx��\k�����z`�5O����o���o�h���Gx� ��>Yb]��5;E�+��3����^O"��f�Z�+�y�Gqm��������V��v�0/��:.����w��n��]�m���2+�qd��S���i��U�!AKr���]j�"|+[�����k���a��h���xxX����<!V�w[��
�8��L�Rkr�U���=�����G�>(�N�����!J��z!�{�#��|�T8����Z�}���g]�f�#��}�S����{�=����V�����t�N���N�������p��+�}���~���*KG�����w��J�����n���c��h]-�N~�+�Np1R9�;8���z&�-��un�����E��6��������>���`�,;��t+�^�
w"q=�n�w���=o��O��8'��L��o��vW����� �2�L@�~�@5c���]e����Z��.�nL����&
�y-8qmet�:�Q��[OG�:�^�
�f��^�P�m�����s��t+�A�d�Q����z�k����nQ�w��H5ug��G���Cd�J
����
���a�{=�>����E�U�����X!vC|j���+��������-y\���Y�]X��u]���2�����e�m��:�����r��v��T+���=&���$>��;�~�@V��;�D����mM�8����!j�3�^Js�b�����W����W^:v���^���}��fK��Y�mmN��R=u9���]B�M#�����gZ��R�J�5�p�v@:5����]�=�g%�7/G!�G�Y��x���H{|��
o(9���9w����ws���}n�1��
���[����
�P�
q����6�_��[��<��P�j���{������j/f|�d$�������T{P�<�@���C��*`��<���P{��m�)�r����[W�6�nK�����Q�~u�:��C2m.���9��Z�S^�B�
�����2V�����xg�x��@K=GTq�1U�`P�5�0uR�K�Eoc�����Y��$��p�9����{�5���n�FlZ�j�����6"��w/{���G���	�$�W��e���o������vw���L�����em���*����Y���Gc�W���ZMJ���v���c��$q���j��gM����^jW]��K�8��|�9C����{n���f*@�����k�����n<��.e�G��K4��������5V,P��^k��w}Z�>���l�u��`Yek���l,��������e�����wYe;���e�WwtvU��um�4�������wm�Y`Ye���������y�`y�Ww�Y`Yen��V��,�����[v�YgXu�Y`��n��Y`Ye��Y`V�n��Y`Yen��wpYe�n��Ye�������,�
�����
��
��
�������v�P���wU�ePPPPP��@C�������v�*�*�q�C�������@@@@����{����y@@�����~����������v�;j�*�q�C�UUUUUU;��?����������=��33<�Nf�������333���� �$U�+�,�Y����J��qD�gJ�
�*���{��r�q�*����%Y������F@R#��^��x����S}�2sb4��K�>�Ds���f-�����\��b��Sv�2�9t���>�y'��M[O��jN��A�Mty%3v-vB�������*���	n5g�W^8�|o���~9Vv��������Y�3L����L������{g|�Vt�"N�$�%�I�����Vt� ����\ARIVt� �$�:WR*�����\AD�:WE�8����!�H��~����^���7��������F���2�FeeV��9����;'&�*Y7Pus��S��WK��W��\�7/��j�m�S�6�qJ����8��4_������EF���Z��M����W�!|a�
:t�<GO
4�Mg�i��3333�8fffzz������$�U�+�,I*���I%Y����Vt� �%Y�����gJ�U�+�*IVt� ��gJ������� �����?(��_-h\\�CEL>��(�|�Z��q��\�YQ:�	��A���U;�pD��5�,����[I�n��w��3,0i����TEY������**T �yn�$��,oh�*)R��au;�y�����$�^��yxy~�=�333<�Nf�����������{g|"��\AR*���,I*��N�I������Vt� �U�+�,�^����
��q��\A��H>���x���������WH�EZ���^g�
h��
�����9�0�������$<y���m^8.�J�/NY�S+���N��S�12���)]��U��f��.�+x\SMU�9�|�|���gzYFi����������9�ffffzg���OS�8��EY������'n�N�G�����v�t��U�+�,*���gJ�
�Y����U�+�(�gJ���$�y�����Z���E���78��y��3u)d:p���7��^����WN�4��
3#1�y����2j/������Z�$��y�2�(j0��x�r���;t2�h�����,}�WF-Jz����%�O�������h�������9�ffffzg���OS�8���'n�v�"J��q�%Y����U�+�)'n�v����\Ad*���*���*����H~�������=Bdq�c����������>��3�Q��rE�a��k�v���V���;b�6�s]b�hs�X���\�H���bn��0s�$�����p���	�M���M�mx��
���=��t���������s4��������������|H�*���UU$����$�URIb*����UUI%H���K	UU$���I>|�I� �������Sq���J=�:����Zt���M��tv�a�!^{+�T����P����zt��/�-��iMJ���-7yp�x�2��8�fS�Ntnc�-�ll=�t�&���o'���oU
-F���$��N��=��||fffyf��3333=3�ffg�����|$��$s�J%t���$p�UT�Y
��$�UUI%B��I<��;v��I;;$��v�$�$RI$�P�#��@E���=_2�d����z���M�.��"��UuE��o7�]Y[
��*���c!�4�_J!��w0�V(e��U]9��yO�n<u~�We�2����������U��Ge!]s	�gf����?��^�^���333�4�i������333====����;v��I;���v�J�UU$����I*IUU$�$���K!UU$�D�URI`���O�� �$���}?yp����]�%}sm{=�n�(���wI�H�uN��9��-���H���.Z�B�����g���Z�a��;�8�Y�f�r�5�I����O2V�;��J����O8]��9��xyg���o����,���fffg�p��������O��URII*�������I,�J��$����I,�J��/�p9C�n�$�H���J
I$�%����+7�*���?����)M��LD�!����*�ok�gVy��]��y
<����c���Cn����YX���	��b������H������,��T�
��?������3��^�Qm��i1��&s@�����M�x�t	���deYS����ne,F�3���)f���(�Jx%���j��wE�������n�<����X�����x����#�0rX�;7�s�CF�����vuV.{������V���]Ju�!�u{�
M��sh�w>�m�YC2��J�Fr�)v�f�jFe�l!��o�l��hTM0��_<��%��Wv=��^5��j���S�2�U��l;C%�L������v�2�]]1{��w���r����L�,YtB5ciN�Yv�sm�r��K�b�p>)�Rnf���*7sm��Et\y���vR6���%�;�cx7p5�r���E\9/5�������SZ��UE].��������P�����sWl�q���&���x0��':F��@M)�d����y�;�����,�������E�]�0����*����Y�=CF����9��m���-��(����W��"X��2��,4��Y���S�U��t�c�I���
B	w�ue�1���p�U��U��z7��������
���b]��dh�c�4	�-C&�9�-:��]����':��5w+�e�B��Js���,(w��D7o��!������������x��������'M����a�3��qS�m���[k�VDe�o��6������8���m���w�/r�mP�'�c���3n[n	�vOmi������1b�|�zwZ&��
��9?�����/��T]���J���N��8��m��6�Cj�w]N7`�)�4X���+K;hZ�*�kO
'�@�Z����0dzv��i�dwX�ibu�/-fr]�W��o�>�KG8���p�5����oen\��K6�t��p�f���K]XF���l���y�n�tWN�-*R�Qw�.���r�������[���UMm��"y/-�R��@z�m�U+J��}��|Uk�[ot���I�57��G���_<�|Y����y���E������-$r�[{��4:����I��Kw6���(=���ye�����UZ�\��L.�U������g&�T/��l�^����M�x���a�EZ���j�Sg{��B�qv�>>�~�a��<_m�"~�-�����g�`b�����-��)��s��}����o����Wl5�����Z���ytxV[�L�o2�u/S�t�K<2�cH���|����|7�V����U*Gn�f���W�R���t%
�����Ia�����A>=�v�q�gkM�k~�k�o.;�#JWM`M�D��N�U�S���T���{��k>WO�c[��o��.f/�'s��%�����������s����F2.�g�b��^�((�,���C[��R����^���%g7����n����Ne����:M�a�����G�x�#EwvP�FvP:���J����ce1}�}���RJ�n���Y�����^a����/C�n���e�w�j5k���j��!���M,.����{�zs�w��'"�RL����
��W����g;���L�
O?Y��[(]���I��J���
�x0nu;���|^���pd����D��+��A���r���FU�Ob*�
5b\b�4�sg��<��<��x��K�n��6���wAcPQ�9/��������,�T����%{$O�-���e��fL���3���s�����+fGo�^2��<�#��L:*���X;�Q,]w���Wk?'���mi��p���:��M����A{����{�7�0{rn���y���/(k<F��2�>H��u�u�9o����(�����,7q,�Y.�WT�^n��m���v^����W��N�Q�ZJ��^d�����I��l��h�%/Q�E��H����/byeg�2�N�_���������}YVaY�e�u�����75n���0�Iv���4�C�I����yc�Z�zY��9&��Q�R��W�'�;�W����6��-��/6|����.��	��M����O-j6�����,��.�z�5u�f{c
�a�x�Z[Z:�m�G[1���w>l*:;k/�VaKj;#��.���o�$�I����{�[d*����*&^�����X=43F�,�k�=�5���QJ|��3������}���~����uX��3���gB�[��K�\����%Yx"=z"t��71jmP����,��&����6;bf��s�p�<�L�lwYe����n�4�������en�Ye�e��;swr�7w7)����w;�v�������:���u�wpYf����,�,����w��sv�<�0<�-�B�,�,��B�+t,������n��,���,q���e�XYe�e�X�[�e�X�[�e]�Y[�[��Ye�e�n�����,��,��j��*��*����������������}`����������:��w���|�n�PQ���wT8uP��@@@@����{����y@@@@@@@@@c���TT;��:�����DDF��CDC���DDDGK,��,��t�����4��ffffg���l����BNUI*��]�v���H�������v�I*���UURJ���UU|�?@g�\G��U)����������g*V7�Wn�Kv��-���Y-��=��Rwp*�m�7�ky�L����X���M����xB���d���UQ3j���W�xI�p���������4��ffffg���l��
��T�����UVB���rI;v���UUP����UVH���$H}��d��eU�Y54������,���^����EE��F�ELJN����T�bj�����1����I�.�31�N��U�	��VM�E��%��yyj�T����������DM�KH����(����o�����M8fffffp�������UU)$���UURIUURIUUH���EUU���UUw�$�K����^�'���[�~���;����0�2��!T�F��n\@Z�*�N��+�]^Ax-����	y[������&\Y�!x1����a=z���������^�Q�z|j:xi��k3M4�������333�3>H�UVD���UUXJ��UUb*���!��n�H���%UW��<��A��>'��C8��?F
��'d�p�q��5�2����%�V�b�0r���u���Q:�-�,(d�F-���+/#*/a�7�S��gp1eN&Ho������xy~>�{|ffff�i�33333�ffg�f|�IUUB���UU�����v������v�B���UUX������}��z���3�>��~=N���H�5n�sFY�]]��>�-�j����VA����w$V����"����]��\yb�kL�5���E$2<���m��d,�j
A�Y�����"����\���D��oN�����=�3333M4�������333�34��v���EUW��N��v�����*��$���$���$���UU}!d���;����{��0fa��e�p�>z-��t�f�B��K��j6_�����+^��9V�jc���u���j&#U��6�]@e���b��cn+z��������k�=y�A���<������3334�N�����333=�3�EUU"�������UUH���UUXJ��*��*���I'� ���9���\w���z��wm����
df��&BXCv-���n7�������	��+o>jV,���!�b��`*�����e���X�{)L3F�n56�[����J�P�����x$�����~>�G��fffi��333338fff{fg�*���UUd*��EUUH���UUXJ��%UU$���� }�
���}����<qo~?3����jKt�2���a���G�����&e4����da�)�r�X���b)z�S�*v���^
��)mj�v&w�v�#�q����7V��4����q������i������������UVUT�����UV$���IUUQUUa*��EUW���$I���7������4c��jrSq��!��|���f��U$J�+t�����������
�IN�����9	�����$�WX0�f�j��Q���z�y�}s���|�����;go/���������4��ffffg���l��$����UUH���$���UUT���b������#�n��%UW)��q>cZ<����:3��v��S1���*��a��Vb��r����L�9Y�����:#G�U���6���f]�;c;��w���R�9,�RO%�L.�-�`��#]���[={��r�u��Z=A��T$����.v�Q!��I���=����6@�!��kU������x9Al�f+V�g�<����#n�Q��T�C{������!t� �1GKI�4L�M�5�Yz���]Z�jq�vl�w
	*���\�yY:�{����iV;���l|wi����U�FO��Q��)c�01��j��%.�[�}�:e�r��)lw[p�u��[Uh�m[�"�6��m��Wq��_�������h��8��K�����\l����n��7�����{yK4�i���8#���6��2��5��]t�03s0'��X.!$K���{U������T�e,6����j�p�oq����Sqk
.NVL6�?KO@;n���Oe�=��TS";��Y����-eg�c�3t������]����Z�ux��B���Q�=��Qcl�����R������T���i��]��l��C|�
�Y{%�5,��s��WSN:��8dm+���
��w5y�����,��0�w��sV
���
���:v��W�6O`�WY�M�9���i�w	%a�t��|���F��H4������upFk;yC�1��E��j��Y��t�������-\p+J��F�����ol:��zF�$f�����Nk�v�F�������+z7���j_=�*��5sy����%�a]wv��7s��*U�J/�Cm�Vb����!����}w���\�m��(���w�����ZsK[�nb�c���,��_>�eJ��8���P��$�����+�(�y;�t�S����UN�S�{y�uO%4�B���S�9�IleB������M���K)�	t����R�8.�e���O;;u���M�a���b*Z��s��u����X����� ����z�;���KJ����[i�S����R*wy`�[Y"�9�NHYb�p8}.-k�*���W���'_15\f��e$���V�����T���T�6����d���H
I� /��f�[N��?,�p�AP�y�����u�;���&�*��x{u�8f���lJ����,+��t�<�����o����r�f����6��+�V2P��s�%�)�7g��e�N����L������v]��(=��k�����k��
����z��n����<uR^Q������ffp�[������]���Y�K�����)!���{��m���=�8:�	��^q��2-���w�#�MD�b�|��p�����r�����\<����Y�����s���)\jY�F�N��:�^Z�YD���U��!�i��:����4���^<����x�e7]�������=����WB����Nk=��%�$� y��+J��<�D����
r�Wr����5���T]V��nq��P�M�{)���[Y�wr#a����1��Q��"��G��
����k�'���N�����o�{:���=�����=������6�MU��b:�Y���Z��,�+���F�YQK������z�a4���UD����N<�U�����p���S��5��U�Hn��&9\��l����������3�m��I���o�3n	|�z�{��a���{�23aM�G�%��q�k0��wUT�����})4�A{�s�1��r�{:mG�n���J���wp��9��%����.������ 7�5$�o�����z��ag�
��S��xh���'�w8n���f��^�dC|j����V���_��q'�%�+�m^�sT�Tr1���~T���#LS�lq���3�d��cH&��� �*��<-�[SE����/t�}c�l���2��������o���l/K������g1�h��}�r:x)�pC9�+�qs-Q�O�jm�_�B��`c�iw����Pj�x���w������������OZ�-��^9X�@��N�+f�{:�{��&����L��7���5V}}t���[|NnX��f'z���IRu�I���_��/�f{+y�t��z#��+�.�x������#FK��(�w"�6VBIiv"q^�p����P�
xn���7o����P��;8�a��PD�{������[.`�0S�t^�������������T2f��$x�k����^��.����;��m���-,�Ck��,���,&.�vR����J�V��>�&��1��h�v� X���e[u��nb�sFl���e�oN�'9��|���Q�NZ�]��c�&i���9����e�c��,�Z����N���,�q�V��e�XYZ��7w,�wsr��Yek���,
�������������,�:��,����,s��w}��,�<��<��,�����,����,*���l,��:�,�
�f���Y`Ye��Y`YWw�Y`V�n��wpYen�n��Ye�������,�
�����
��
��
�Gw�o��7���w3�}������2�����p��
��n������@@F����mP��C�UUUU{�����n��y�UUUUUUUU0��gmPP�6�p��
�
�
�
�"7wb"�wb""":Ye�YgN��Mfffi��333338fff{fg�%UU�*����;v���UUQUU����n�$���UUT*�����_�~�$|����I���?�+�^Q�dX�������%R����-�VW��A�EP����r�,2��o+jI��I�w1V��D���:��X�a�ZEivFJ��|��N'��j�M�3�|aFp��|�������M8fffffp��������UTJ��"UUTIUUd�UUX���UUd*��EUW���HO�-��}�>x�x�����k��<��2e�!��S
����P�,������F
!Fm�C�0%`���3pje9X��_�p��bL+��
[����vsl�`^32�elt�E�/�����?]�<���G��fffi��333338fff{fg������UU"����UT�����UV���UUY
���>�>�"w��u=s���{���,s�.)����~��&+�{�M�l*Y;�hE�*#�Jn���%j;�A�l�x�u��5{��/HE��
���6�r/w���-s�d(���ct���d�S5�DF�����>(��,�?q������4��ffffg���l���UUI*��]���v�bUUqI*�UB���UURJ���UUv�?RU}]^�~�?���tQ&��+)�,QGd[O
uPEcI�ei�JT�)���lb/r-��5�2�E�QTo&y3n8�I�2������f�
���-��v�t�f��f���n]�(����}qo�����������������i�������������;v���UUQ*��U]�'n��Y"���UUTJ��%UW���$O�������u�����z���#j��n��f��k�F<�8��`�b��W9�Z�*n%������Of�M��������
�����f��a�UXH�1DT�K@�r�\nF�,��l�i����S�3�g"|yyxzg���������4��ffffg���l��"UUY����UT����UUH�������N�'n��}�v���q">�"y�~x��^��YS��L���Q���v��������e�X�Q�#Qc�
,9�����u{iI�J��z��)��26������������cJ�j�)��������[.CX�����!�b�5����qI!zK�yg���>>3333M4�������333�3>J��!UUd���	UURJ��IUUI*��%UUI*�O�?H][I���}���/-���ut1��(��a��5)�F�3%���x�[if�M�sf3Je���� 2��Kn��eJ�F+��y���M��cw�yy��m`��pVK�C���������������������p���������������UV
���	��n��I\��I*��YW*�J��UW�A�I���{�������2�o��c����1��<�-K2�XAy-HH�`�X��S#9$O$�X�R�%C]�t����,a�!�
�:����qU�3�R�S�����97R�������f>M�:9��~?Z=�3333M4�������333�3>IUU"���UURJ��$�UVI*��I*��UUT*���	%�����V��������E����$x����*b�p[��Y�+!�y������V�2'ye�����	���a���m�d	4��Wk�g�)�D�����5+v���a	xYD��__��������4��ffffg���l���*��$���$���UUT���UUD���$��������>����������#�F������3��V�oj��2���R;Z���1��]kW(�&t��}N��_I������}Wu0]��]��^V�]juo=����X�<�8j#@C�;��|p]��q�,1J������Y(���:��� ����)t�Df�������f���jH���oL���C��p���� eh����T)L�������2S$��zs�U]H�)��]�����������&�]��
��`5o5��cs�+����_-���.z)�[F�h
��39���(�4���2�k����v��JF:���s�R�\�mi�R��#w�FU����u�$q�����6V���2X�\��m�3��\�����%I��������N��/X��b����W_vv�p�+m�������:��G���7��o5�a�!�G���y���^�p
���G��X�2�^���^�������5�s(�N2�z�tM�$c2��(�l&��W������X��g,�v�F����9h�
����oN<�:&�Go�7��^c��T��E&����xy��g�[����;os���cU`�������w,���m�B�����
N��!���85���z��h����������P��A�L�]P�S���P����yq������d�=A�c����u��	@��N����r��[��w�2Do#���R��1�_v�;xcG���g,��.nj��T�%B8�L\�ej��}�k��DK��K0�0��wi���[�{gb��_
�(�Mm���j����]w[�!�.���7��Aw8�O�v���ow����]k�'�w�|�w�ywU��;�]����V_"g
=�8wu���;]�l���H�a;�}	������Z1QxiHZjr�s��R���{RC�����cT��9�[w�hf������p�R��Qq�����9�����i_�)Q��Vi�x3c�-��PE�X+KY����.�d��vd%��7(�,�����/lO]z���
�,���������'WRuY���i��2s.cn'vbs���V����l���w����H<��"yG8�'�#���"x�2A��I|y��o�;��}�k2{��l��?�/M'kg�9uo�����:����x����A��\���w�y�2�hX��%CPb��s�2w�K�����__��>7��!��q��Y���w�#T���w{�mou*�P_,�X���G�|�����`��������k,�Y��v\�^�i
������vk���3��V�Fw���G��h�+�v��v.��$&��{j������A��vu�v�c�}�0����66x��������zM�V��W��bWmI��j��:�7^}�H6�H[�������\$gT�:�O[]���������el;��n6��:�f�<�P�`��>L�	�xx&�/�Of�q��m]��o�"�c�a��]����� �/��="�%�&b��NX�xe�{,���t�����p]�V
��+5�g�8T�NSw8�Qn�WlJ��dM-�|Z�r���yS�k�P��-:���_�����ad�j�_7�����1�N��S����!��y���+�����n�����553K:����6I=���v`��Og���3=���Y�����h:�
����W[ �����NF��������^����c��d�������z8��&H�tn���f�����RN��_���^���*���A��B:g	s�PEK
/Y�F�|��g���Z;$������70^�;zG�;
.��I�<��v��Y��{:�#=�se.}��
���.��*�&w�J�"&�@�a�nm`�,!��N�8.H�Q^�T�+'���8�fOa:�������M�~Y<V5:f�&�X��_[�]���a9u����_9&���!������~��k�,�����":K�+���N��6CO��a�p=~p��g�K��c�2L��:��*�����2t�h\bV��u�>gw%��.����gxtD��=��
���v53anmvP�%Q���@�R$U�Oz������*�'�	��	,n�#����e����tv�,����oS���Q�� �VS�7�V�*��
#
%zf�>b��������������LS,J5��f����y G� .�T>�r�[4O�q�;�+�vkt0\�C�\�����j�WO����Zz��5�')�.�8�-J��KU�Y�������-C���$Q��S51{���T���+%�8�D~��~
Zb�hV&�lL�M�<<u|��T;���y��m��WwXYZ�����,�,��Cswl�{w7+\u�V�������:;*���l+n����l���,,���������e�g�g���e�XY[�e��Y[�e]���e�e�u�Ye����|��,,����,*����,
������,����,,���Yn���c�,��,�����*��*����������������}4wU�ePPPPP��@C�������v�*�*��C��������������s���<����������a�����
��mP��@@@@@F���DGK,��,���M4�M4�JZ�1�������Y����_���������#�n����UXJ��e�+�U���UUz��C��w:����l�~xWc���i����(���>�L��3]m�-�����d�`���{*�T�mn�N�T�Z�����)2k2���i�����VY4BQ�&�ht���x{�;��C�����?_�����4���������3=�<�UU`���I*��I*���*��EUU�*��%UUD���=>�C��}����^=�����/KX����:�u��VUMY+p,��-�RS�,v��L�y1A,�����A9������W��������\=��`��\^,
���T�&e(�D����v�����������i�3333=33�fg�g�r|#�n��N����k!UUB���UUY$�UV
���UUdJ�������H>z���?�'<~�\y������V��`��`��`hn��9�e`��F�i;�P/r�y���6��k2�"��S�����a�T����=qX=��d+*2�\�w��EM�C��'�o�S��]��'�O/O��=��3+33;�g����L��������J���J��J����$���k"J��h����UUT*��EUW�C��{�'����W_��-�����n�3���3s�����e]�ej��3�[z1����2�0�3y�^����7cL�Z�xL^��Y�����'q��T]Rc����8�o�K��U����xAFa�����2�33��p�������Y����_	*������n�D�����;v�����v���i$�����������UJ_�$��$�^�W�����x�U�.04�]�Gg-�7F^�������<:�l��E����Z����c/E4B0�����eY%���{�[����c�'w���LC.s.���~r2�`L4�?����effgsL���������3=�<��I$���nl�+�U�%UU"UUP�UU$UUXu��\��D����I$��>I��*���^�-�Z�e?��U�7��{� �E���51�R��
��]ZH#�<��H��j�*�H��.�C5il�R��V�-L�05�Xv����Zr��&��x4��,�n�'�L�����||fVffw4��������33�3���;v���UUb*���UU�*���UUP���EUU�I$�~��� >��~x�����W�E:n�!M��-�TUUE�n�����E�X�*��lJ��35�B�[S�����U��-	�1c���KD����A��A�wR�
%����w�c���������������������i�3333=33�fg�g���I'n��T�UUT�����N��v��$�UT�����;v���UUX�UUxHd�����8���3����5��{��/PL����qu�3P�cjD�F��L���1�^��e�D��<�"�9q:�O#4�%8��S�V�\�[������{��$� ��,�����effgsL���������3=�<�IUU��U��I*�Ws�$��v�Q%UUI%UWs��v���s����v�UT� B>I:������U���.#"���4��%��&�lg��6����������)���2�j��2'l��%�*����1�m���a	R�fi��V�;��c4]!%��Q����<4�M5���3�fffg�fr������!*��D���D���D���J��	*��UUYUUY$�U^g��\�9�s���Qn������M�Z(���@��[x�gi�::&Yw��bb���.��P�5�(I�
�82�3<�OU����Tn�g6�������wm�E� 9j�oR6D�s��&���9�i����Wbl�Yv4e�Y�Q��>�6�Q����-a!u2�Gksc�p���]r��j�Z�����s�����$+���c����t��:��������Je��
��S��.N�����P��'n�-��eib��vV$��;$\6n[������9���9��4VC����h������Op��V�����u���E9�Oz����|������p�#�x��b�b'g�l����Zr���'=��l�G�K��^������n�M^��EwuY�hm*������e����������u�:�[�8�[y�U�8u/J��.��(�mV
�����C%�m��q4�t�/�b��p��{��@:��S��mQW4�wJ_D��le�,�gH��OW5
*�L)�ojc1�p��,j�0�_\�.��!�
��V��IP�sJ;6��x����{�v����[��#�������LL��>��nf�&��.],r����*L�v��[P���@21[�u�l�5Y���q�����\l���
�A���^����:�<���}�����'z���(z��q���z�{E�Vxz1�f��m"d���\��gD�k!���Wv������yN�O /���.���Y��x*��n�Yk���u�j�g�d���S;t�v�|�1]k���uJ;%t����%��H�:��;������C@�����p�x7@�P�sw�1��o�����C���,����.���Y�]��K�������E]�P�
S�'��P���z�/S.e���B��������*������*7�P�7
-��}i�@��zh��^z��'��<.��5���F��_�_^�1D��0���������VE�oo��T>�%����<{��p�ey%��5��n�v`l,&���m^���[S��2q��]!2����.�������k�	�P4^A��m�����
��F��<�E�lCr�@:HII =Uk��o��j�����Y�\I� 5$��6�sa����s��Q�f����jl���{jvK��wA���-[=��
+��V��#��Y��v��hU+hs�Y�}�����������tq{ Kraw
�CJ�`�m�sb����;��L��I�����G�V�=`)�n>����w���3,�����$1����-��;����K������f��W���@�����i�+|f]����gv�Uv�����*I��#����i��K�({9����+i�V�GM�>����.*���.T�]+9�yL�rou(7*�o�^�n,y��f��#4��5r�'�����`2+��T���wA-�#�X���g�o�����Yv���xD���h�S6t�t�k�5C"y����p2����gm<�S��U�u<Y�-^���t� ���w������S�Y�4�������j����J���Y�|Ow�Q�+G&/�{��k�u��*�-�'l������j�i[}yV�����y�I���c����U�Y
�'av��j�S
�:�U�Ff��Ed�B��Z%.�k�~����3�\#2b�v�4s�G��8�_v�w%��g���pT*����G����3@�$���f�6�N���yv���Xw������d����taC�?`.��/��I`j����bl��t�2��]��n���������o����f��s���)	x�e;�YBYp,��sQC#�E��)���.�w������BW���� M���M�������h������O:�]�,��7�O��<���um~'i�X��@���t�z�-�Ku~np��	^��V+�����������1L_Z_m�H!v����9����]NV4�������������s�_�f����k�Q\��R��r�T��WNwb*��%9����p(�2�[���R��0&�>�+��1d#6��Z�1O����R����WQ����������D����w�Q���Op�����+�K�
^&��{O4e$}���so�D`�Y�8����:+<u��'���QB����h��Sl��oSTw+&��2JZ�f���7%��r����A�H��q������d��P}�F`�Lf*�.���N�O[Yh�]��V��/s��CB����A�Yp�6Z���������	�t��[�h3J*�f��wV0�M
��\�:B_�0��4z�6;e���E��W������7���U���V��+v���,,�����.�����e��:�l�+v�����n����,���;l���,�=��{��nYg�����hYe��V�Yen��V�YWpun�`Ye�a�Ye�n;7,���,�,�����,���kt,����+t,���,�,�m��1�`Ye�Um;���*��*����������������}4wU�ePPPPP��@C����/�����4wU��P��C�UUUU{�����n��y�UUUUUUUU0��gmPP�6�p��
�
�
�
����������}�������Ye�Y����effgsL���������3=�<�H����UU����$���<�O
EUW��Gn��Y���UU}��|��{w6�{-���?/��qr���Em�4��%�������P�-��u�q��v�^�$��m�S�r�\�f���,I�]��J�^2^��Ha�`�)V�M���������|^><<��?_�����3�fffg�fr������$;v�������UU��I��n�I%UUH�Ud�"���"J��R%UW�� ���y��<���3����	�����%���+U�t���j���./*HMaP��)�������@����/5z�3��B:��3)��uP�����.&���33q�`��n���oA��U� �N`��Z���=���~<==<�>�O���������p�������Y����_$*��'D������J���*��Yr���d;t�������;v���y�bH}������?���1m%�&�q7���r���T�B��q/Z!I����e�-���`��$��q�Y3P���R/M�����dV`+��b��`�fm����	��b�3Z�J;y6@T����p;S��P}xzgoO�����effi��8ffffzfg,��l�/�*��B������H�������*���J�����;v��������m�}�^>vm��J0���2>�������O�����/+3q���[���R@&�
���a�F����$���i�X���w�T�����X�n�{v�!z��i���p��61�I�����{���������>=�3+33N���3333�39ff{fy|��UT�UUdIUU�����n��UU���n��UV$�UT�I$��$���y�Y�/�U1Y�2�t��X�����F���%k\���N��\�U��25yR��Ie������R'/suF6"�@��e\az��'�'
0q�L�uE�N��^�H���3�������sL���������3=�<�H����J��UU����UV$����UVD���%$�I�$���$�{�{��&�i���N�%�Su�����K�
�	����+h;�{��V[v�����Y�1���I�f�%��e'.�Z��qU(�X+����Pl�-����jls���>{���p��<�z~>�=�3+33N���3333�39ff{fyz|����l�C�n���UTUUsQ\��$�����UYUUYUU}�s�>�=z?~���}c���b�V[�Wn�t*���6�����ssZrM��a�����]8u����77F��9k.c%^M��ZVPx�	�N���Z�%n�\��?2������0�����O
4�ff��3�fffg�fr�������H���j���*��%UU$�������n�D���%UUB��N�}�>���G������G]��x�K�Z[5���#^�����^��Z�-k�����5�Kkj��8�S;N&��[�S�R����W:�YZ��_�%QWw��5uQYl�����7&�� ^Y�
=>4������;�g����L������������UVH���UV"���UUT���,IU��*���>�_���c������2Z����"���\���a�}w�j�)�{�eX^���4�{�k0�J�U��n��El���k,�XIIL�$^*��g�����oBy�S2���L5��f��<�c�_I�><:t�����;�g����L��������J��$������*���UU,EUU�*��N�;v���UUT�������}O<~S0�J���K?�y���A������1c�������t������o�[���)�U������.��F�9%tg:
iR�u��U�1�7����$x���u,���p)���
���oj����$h�UNL�C�$(;�������J��kh x_wvh]\��y%���Z�-XWK��99�A���S����G;�mg���[�I����'�)��O����D�	}mv����x�eG�>��N��^��Y1N�dh�
7.�f���W������"����y�a�w���E_d��!m�z'+�q�����U�=C$��+���0�D!��Wr��T�I��$�S�q��}gr�ZN�[��k[x��X���]j$�m�J�������kL����^`
����p�u�+���kOCR��{�{Qq=�]������i������-O5Y`����}���h� XxfuI+A�A(qt��6K�2�r�5;3t�S��<��.���*B [I+�Mv�{��/&�
#6�wanE���5bl��+��u�����7���b����xt��3��\l�Z��|����D&�}��C��/��x��'�4=n�������>�y��:�m���n*X��6us �j��.s�Z�w�����f��������89���m$�
�R���m��s"R��2-"L[X�(+��\�M�FuIW$���9i]7�nae��n�]������0��XjW3�.�����m^���0R��7t��N��PL������iQ�6-���6��otRmXj(5�����p�^���:"���[����q�O^9�x�%��Nf;bm�O�f�

Xl=�����a����q�7�oU���{�:�}�/PL�&c��O3�+qfLW_p��svG]Y�ao9d��"�zn��&2�b�������6u��.Mm�-�o`�D�h�,��3�L�U�-�n�_LNXo�:7��6A
�Y\jt����r�\'���Y;U)�����YS��c��
�������o!]y����'.T���Z*J��[]��������F���(5Wu��=x]os��6��6�C��O����V��@JHU��Uk��[����W��Z�`��$�R@u$���^y�r^��|a���	rv+O]�����z��m�u��oX�C�������V���FEkP4�uc"������q����L�OQ+��P%e��]=YR�o'U����]��9m]=`�o��|���b���J��>����+�Lx�U�����3g���h���#�s���P��B��X�����]��B��1��(���������aJ�4�h�xK�wk64��B���g5v���=j{}:t������9��;���D����a�=~}+��X�drM����\3AS}�+�u��u�=��wh�>���+]c�[���9bWX�R�u^%��A�"������mg������R�	~��PK#��B��]�����1W.e�ZUE�^�w��8��j�,�X�Y�7��Y���&Z�\��<������ �f�����J��R���$���N5[��/��S�
���f�,�%^�C;i+���:��W=��ps+!����X�7=]���r*��b��a?m���^�ht���X������.\Y_}y�����f'|�_i��q��{:zE��1���T���BB��L����:
����+q��\�3�������\��p���1�j��`\��h���Zn�D�5��+I�)�M���Id(�F��e���X^�;�_ZY������B��3[*0�<�"�n����k��^GH��o 5w�vy�6�z�x�v
��=N���9e���-N��y��gG�~w��9�W���.���n�%u���s�����u�$p6u�E�Y��kK�M*��g��q�WX��28DH�oF���l�f����.����'9u�iC6!�6���V8+[���q>�d_M8��]�����"���r�!�YE�d�X�r�S|h�t�Q9��*HvDu]�E��n��%��9~����Z7g�ml��Hj�
9R��7��s���=���nw���B�i/Cf���s�r�,,X�C�x��m���������pP����U���������������{x����v2@�C��a;�j�s��4��B�lU���{��{���_��4/v�����Z������p��3[�Pd8a��,�/^�0�fe?�7c6�f2u��EY���*f`S�j�[��E�F�a���^(�1t��)��U�<d��J���S�8a��5jf��42��c)R(�W��#�����$oZ�����+\u��`Ye���`nn��on��k����e�A��gGe]��e�em�Wwm��Ye�e�Xb����j�J""�kk�DF�Z�DDj������,�����������:�������>Ye��Y`Yen���hYe�n��YWw�V�Ye��Y`Yf��|c��� �
�wUPUPUQ���7����C�����h��7X��
�
�
�
����*�q��~_/��TTh��7M�������������s���<�������:�����s;j�*�q�@@@@@@F���>y���|�/����������{{fi��33;ffVfr������
��
��IUUdJ��IUUbJ��$�UV$�����'�����w��-q-~�y*���X�"�%������gsl�G]��0�/9Q�,AyL.���y(42��j�n^k���F�MUU7c����������Y��*�T^�q�������������^���w4���������3=�<��I;v���UUUU%UUD���UUY$���*��*I%*@�|�������^�2����yan�J�]���tq�Y�#��V�,��Z�;�����1�������*����J�����#Qm�r���X�)��)��,��<4�����^�����sL�����Y��33�3��=q$���j�UURJ��$�U]��v�������n�I*��*��*��}���uZ��F�����Y�b��P�2���`�j�����X�H{
�[�T��$�F�hu	�L���n�Z���t0<�B�(+6��K��r��5-�������w��qFe���I�����<:t���f��333�fefg,��l�/�UUIUUIUUaUU�w��v�������������>�#��_<u��^���N�[���V�� 
�l�^��.���Y���u�z�������p�Y���X�Lw&�Z��^4e5*X��K�4A����2���xi�!��Uxt����}g����{{fi��33;ffVfr������$���UUd���*������������IUUdJ���$�~w��Q���*bS���"����v�
4��2]�`+�6��'f��K��i�����x�:H�E���P�0j7!9�26�#3)�EEMR�xW�^|w�������x|g����������4�i����3+39ff{fy|�*�����������������UUt���H ��$�������*�L��.���U�SMZGx�6��j����Cn��[�m�Z=Z��d�����1��'7*�Z2l]�Q@�����~�q�����OJ���}|||{{W��f��333�fefg,��l�/3���n��*��I����n�"���UV%UU�UU�UUEUW�d��|���}OSx��?9�v*/^��<�-M��Td�-�VF9E������\S����iUeK�0���o^hd�7���){[me�B��'H��n#�i ���T�%��M��f�������������������4�i����3+39ff{fyy�!��n�J���UUQUUd����%UUUVEUU*�'>K���qB���������s|��@at�VR������2T����f��"��xX� 7�6��"I�#\ ��1��-��<����;�����Vc��#`!���Z�QV}�������}{||{{W��f��333�fefg,��l�/�*�����UU�v��v�RUUQUUEUU�*���UU�">���k�y��fvz���f��z�yK�\�R�!K�"�.���,p;i=���z�*�����r��Y�u��Z���+!����Yi�]f�����jCp�>��-�P�j�3����0��8xi���o�oj������ffv�����������$���������*��J��,���I*���������s�uz��w�|ZR�ya���I���:�5�L�1��nn�H��4���9���UeM������)M����y��b�r�b��U.�|����U�omQk��BI}f.�sS���]vI�n�`��
ir*���/���;d�NS�>B�V���7oy�����j4���+8��S�����N=���3T���O�Y��u:�Z�`��/�32��R#~����>����v�nsz&��Nq9���g�%��S�v��f�K
`2�������POz�G8:�q�y��,�:)���39�#G]�t�X�h��[�U�=S<����|1v���h���&��H>]��#*�����sz�w�w����/8��*Y�G����0�U]��Q��� ��&�����"��:>�;!T�KuAK����Q����Gl���9i,��X��v�5V��+�������z��tlv���
P�W�\�����s��J�V��U�w���F
���,����vqc/���8Z���7������+q�z7��4���|�_V�������4�����j&6ywi`5���U�����:g3�H��v����<��[��zq���%���(���w��t���6�/��o�#��Z%����mK���&�M�%��e�X��#�;��/]c���+M��v�-��LN��;o&���%���<��
���������/r�������
���-���3���&r��9�Z�\D��!;��bcu�)DNq/S�W�������G�v���!���K3�
���Qv�u�vy�����)�Gt��Nuv��)W��������/�ov��Y�-��9�%�:�dd����-#�����h�cu��#]��������b5���jm4�.����q�s�	��`4r������T�7Ww���	BTY�^��(18����b9�FhJ2����q�-NY|��2��b�sY�f��ib9i�-V,3OX�p.n+59P5�����S��5���p4��/��z��=n��K�������&|��,�tF{/�*U�Z��'9;�T��cS�����tul���������i �$!
$�?q������6�}���T�P�&@0��3��U��bq5NV,r��n<3G���K�P{���a��������'��rk�q/8�S�N��Tv�������� q]���4����dc�[�}��uz���s���{Q����A�Y��`C�K�v�lmZ�Y�BA�RNt������Q!;�����)O,���P1�[��^dy�/K���,���q���{�s������u�d�o}��4��+ kUVm��<~��"
��g���{tX{|�<y����G�Y.��<hj��6]�v���ghmBt�.��9q���/�)��]�^��`t�r���nv�������g@����t(�-<����X��v�v��������P����u*�(�[��M���KN����/�v�1���|�^����`�x,<�Y�5�r-���}<��g�	K����=��$��}H�boN
9�
�N�C���|�=��0Z�F�0�-��w<�J$8��w%����+9Z8J��������Ikx�#����������7���N����we�d|��m�
��
����1ho����Gw����������������]���/o��|-�-��u+(�=�oue�u�����%g�������2�I����v��y]i�?c���D���	;����/T�C0��������)e��4��1e?W\�z'^J�xI��������]�Z	a��@��vTI�7����V�������k����Q�p�]��v.L>L����o` �f����j.�7�#� O��Z���j���Q�s:h���w4r�t��%�"�y�c���NcW���L�t�����D������_��{oo��Qu��f)��^��E�hh�*�����4EX;goC}�X��GM9�����n4%[��)�\���}A�G�*�mw�!�J�5���]�7|�s9^b���f�t���]���h�=��Z�'�u����C�5��Plcu%��Quj�)�j]�48=�vU�t]v=����}�l�����:f��P��i��k��d���$#�����j�AZ�*�=�����(�]�c�%��S�e���u���h���������+[��H�$M��������vh����x��j�@Z�e��c�4�[���M\fg����j����>X�her�R�Q�+��D�ui���wWwXYZ��n��,�,��swl�;w7+\u�wYe�en��W@un��Y[v����om�Y`Ye��=�s}��,�<��<��,�����+n����*���,,�i�Ye�nkw,���,�,��B���,���kt,����+t,���,�,�m��1�`Ye�Um;���*��*����������������}4wU�ePPPPP��@C����/�����4wU��PP��@@@@����{����y@@@@@@@@@7���TT;�������v"""#wv"""#wv""""�(���u�����^���w4���������3=�<��;v������Ut���N�:t�������UUY
���#��~w~s���=�w|���+�2t�d����2��95���S��W0&	�c�W��"�V�8�Q�"����\TA�
Yk���A��2Nh�FPMU�T�����Z���1^y�u��u��%H�]=>3���������sL�����Y��33�3��%UU$���*��J�����UW����v��p���k$UUvH��A�z���>x�����YX��L��zk@0���&<��T
)8�:a,2��w)e��I�!��9u�U��:����]�cK��������+r��%�m��k�u!JI��7s{��R�����3�������^���w4���������3=�<�EUU����UUUU��N�%UU%UUIUU����n�D�|�U����}�<{U>E�S���d�sngrR�q���UR�K�Z�5<u.�#A�u�*��
��B�cy��(��8�����p���N�A^��e,z�,p�^u*���s�d�]S��pER���g����jI]�=>3��=�=����3N�����32�3�fg�g��UUYUV%UUJ���UVJ���UU*��RI$��|��|�r�x�u^�d���[��.�5L����w�.X�!YrR��UKU����6nF����z�i�&�A����O,������V��g747
���!��Z��ud[������]]6��]4D,�Yd�zi�����N�t����i����3+39ff{f0� � �$�H � � � � � �����$j��hz�X\@���lh-e�([���+�����T�������[�q�`��������*^�	P��<WYI�6���[�K/S�������x[p�Bi*�L,|��:�,����/��������>=�����3N�����32�3�fg�g����v���N�AAAAAAA�`�$����|��;_;�'��y�y�	�����#��)�e�Vc���k�[(=�]�U�w��6�N[�
��]9qE���k�5���������)�Bzm��M��#���[p��"����/�^z�s���������|{{W��f��333�fefg,��l�.� � ��� �$L��H �:t������UU}�d�����~�����5)q�{	2
n�����T"�����8PT�{ 's�R�kX���f��h�Gna�2��5��I�*���h�d�M',���O\x��>��*����������^���w4���������3=�<�� �MTQEAAA�:t��UU}����C��|z?���o�d���X���]������T�yuc.����y�!�\����A�++"S�H�4���[��J�)���8�����!��,j�ON�v��
���M��W.�����<,����N�$��3N�����32�3�fc��aAAAAA�:Y*��t���N�>�C��z�~�+�u~c-�lUS�IB�j����	Q1ws&����nH	��������������K�
�g+%@�ze�
o��N9��6}4�*��d���*������\q�~<�Wo���������ol�;�ffgl����Y����^T�I$AA	AWUQDC�iUU�UU��8t�L�������������Y���N��C�wys�\�����o���_�����������_�[�����������#��$."�V�\��i���������Q%����}|��G�oS�N�<�Nd�����������(�?��y9����?�"�;r��GC�G�O�O�> B��'�O/���l�:��H�BX�1��h�����z������x�G����G���Wo�����?�'n��D��]'�#��_��<������$�8�$$N8D�=����!,s��������=C�Q����I8p����Gp������Ig3��r���yp�����;#�0�>pI!'H$H��@�p���(�����������\I'"N����I:U�I��g(������/�|}�?�KNh������.��a���$����I�����?�$��I$��N�	'���?�W�?�q$���������R|I���s�#���N�d�A	_�g���S�D��?�?�_S����r���?!?���|"A	�_��"��<>@B��N_���^o��������U�J�W�����^o����f��BC�	?��H����'1�s�#����9Xs;I$���BH!:�.�D�+��q8���G�?���H!<:�����3��A	��$�I�=,I�*G���W�O��?�z�a*O�$�����$��'<N'	:Y?�O�N_�p��$����%��G.���y���8����d����!?��I�.���'Q'/�������I���������������Z~��Ub�,����/9	���y���W�p�������NNc����p���� B��A	�����r���'�x��Bt�O�u<G�OQ'�������?H��>��S�~p��lI��<L�����RN]$����=�?�<?��x��<�Q�g��q�@B��o����'�?�� ���B~���N�����g��\�����z���NbN8'������[�p������GN�RK�f(+$�k:F��e�_�_�
]������?���� >[���H/�$"�		U*�R�T�$��I*�(�*��%T�B�!
%@E@�R� @P��R�*$�	PJT�P��IPP�QEP8��hh=(U�JJ
PIE%@P(�(H�%�UQT(*�! H��JPP
*�RU
�"�*�T$)@�"%%UB������UPU	U�Y��@
(k>(
i�:���q��\B,�f��"j��@R�*���
RT�U^>E(P|�X�kSd��`l�!d�RB�T	P2i@PP�pz!
�X`l� ���j`l�@�UJ�@E3d
�E(Bhox��"<=�1������`��,`L`��*��T�A>��(D�(���RB����&�Z`��2�j�b�&�&R�J�R����T
*�x}�������6��6�L����T�T���o����U�Ux}�A���
�U���Ae`�`�0�*��!TIBm@Q)B�H���<�(x8{�B��LA5����Q��UV�@�*��A*K��)B���VL�66�VL�@4UT�@�����HBI����J��BVu�k����a5�0�(�=���������U6���21� ��0  D����IP�@���TIH��j
M�UT��UO���UQ&��2d�'�RHz��M	��b3"b`#&F �&�i�
����S=E5$!�E<���CA�G����=5��O�?������������w$�����������{�����3����;�7�{I�C���5���cW���f���?��?�o����_��]�w���_�5����V��U�m}�mZ~��������^��1��/�����������m��&�O_�?�������9�4���N��A	��H!8�I��
?�����$������o���O����*f�vl�!a6fC3!	��
"�1�ffB���&$	#3��0JH�����D�BA���1��3�$%$cDI		�	2��	�%	Bc$I��	��H$2d�	<]1�s�"�QEcZwrHP�A��D@D��4�	�R� �S33)�	1�$&e���!	#�L�fBRwq!�$���2FLd�0�I��Q�!w]2@2 ��$C9�	 "L�d ����`�" ��DI$$@�2@��c12"L�@Bf�$�!����d�&L��1�	3	��� �LBBB"H�afQ%	@a)0d0a0$$$d!$DDD�	`�2d�1$cI��A!D32��P0�� ��d�d2BD�d$�����������"L��"CD������A&H �L�2#�BbL&&DBa!2$�A0D�	��2S(�"I0����2A$�3&hKfY
��"�A1F(���1�)(�Hd$1&2b�@P$d�#"LIa&H"�d d�&L��2d�	0�@A��2&L� ���b1��	"H��	!!	��$��			D��BH�""0 �!2fd�CId$�@�0 ���H�H��P��&��S4�!�2a)��fL�A32$2fe%2DJ�$��L�@�H$��L��`1�)�!�d $�!$$��$�&a34%H�	 �f��9����I���d��E�1�c3(L���4%	�i
e	�A	�� ��`�Rd�&�dL��!	2d��H�&L�I�L�	��	!��fbH� ���Ic&$���d"	 � �0F"
�� ��d���$2D	���b�(����bL���R&�L��B �	��H$��H����0�IDI�a�fB	23 @fIBD��$	�$	�$hJCD���$��@I	� $H`)4�%��L�A$&Lb!���0C$bwnAI"$�`�I	 IF!�	��RD�$���H2H�|��@��"?�����F$��(��d�� �B`�$	�J`0�f	�$������a"H�$$I����@���fBC���S�&JB4c�"0	$	�12c&dL��&I$%R���� 	�BIL�F@� $��APA&HH!�D`"IC2HB0�RHBf$I�0I�HH"L�1	�$@d !$��I�����I#&&e$i
C�RPI���@hJdD�c&H�$��H$�Bfd		��Hd$&((�N��EmI�� ��!2d�H�fRE2d����#$IC"��D�)�`d&$�D�@I����JS"Bf%0������$&��A�%&�c(��(��#$�$����� �d��f �10�@!HA!�0�Eh
 I��L�-��|�}Um������d���b���,b(���(�A	1�	d���L�$��K&2Rh,�C�2D��3BdBS�dL���DC@a00�J  0`�"$�J1����
$��H�����2H�%$���&"�1`"	3!! I"I	DDA����&0`��&H���2a�!!�}tD�cD�� �I����L�H�I�&@��B�����I1 HH���$@`��J(�$	��2��QQED@D		�L�$$�#(��(���Dd���A�"C3I��H@��� �1I�R�2c&2`(0c%��@��!Ha!"I E%&LFJ!�1�`�b!0�� �fcP`,�&	�d���I&	$����IC	H]�������H$�Y,�0��& $LdFH�&LA��  ���"��ffh������d��d�$���B���D��ML��PX"B���HI�	�A%a#	$��$B�$HA$��0C0B 0H "H	#&���	)L�I���`���bI��$I1E2�DDI��$I��&i1�
����H�0I�HD��L�d"& ��R�dD!� !"	"fIA$	A����$�&��� �L�&����Id�!$�$��d�c"S �H$�d
�b!�2	�FL��&$����4���I4 � �D�!��,��!$bI�FhI
d�R�L&"�""#�&�3$��R)$% I�aH@@L��2	@��"$a1@@P��3$"2��� BHL��JL�"BBBd�i2QEi 0`Q0� ��B@a""eI��	�!�@L��.����I�L���H$�S)e3!"HD�d�d!Ba0��JiRC(L�����	IA$��\L����$�	��L�	 ����RI�F �fa$�S!i)�ffa��B#1#"�"��b�Q��$�#L�&H�)�34J��&�$�#1$`	��I	� ��2�b 	2`
K$�kA�� �3BBh1�b�FJ(�$� d!
$H�b4�I�@���$��d��b$D�`4I%%1k#$&fIH	$�L��A1JI��3��L�0�)1$JDL�!JA��M��I��162Qc$Tb�4i4!��a�d!L$��	��I�e�����c	��F*4QEh(��4�D�L��$F$�B##4HHC34	!	�H�0�2)����f@L���� $�%�A��4Qd�a$�JH"�(�l�	QF1�1d����Y��D �1i!
!���h2$�i��2`���2$����$)aLD$�d2R@�02J$�	�QJFM�33*��F0F"1l����i����L��11b"�i
"�XC
d,�hL%�1�1�h�b
�(�����"11
`�`R% �e2�D� �,�fI���Hd ��)B&I��d�2MH"Z$�A�T�Li1�Ih1�IJ2Q%��S�J#1� `�2�*f �$�%L$�%������L�P�2Q�#QDb(�E����b,cF-(����&2L��F��I2I$I� �C�FRFR��4�4cQb4����)(���1�,b�d���Q�b��Q�&���I&HH�BI��H���
���c%���&*h"�S
MF#%M�"��K I�I�c$�$$b"4D�� ��
L�fQE%A`��Eb1��K1)
 ����`���,h�5h�f$mDL4$�!�PDfL��`�X�JHH�cD�JBJM!�"��2)4� s�$��	
�R��i&Y��	3��4FQ��3}~��& ���	��M���|�6LT�TX��P�6@-�2��"2�B�L�Q$E&�h�b��@��Q�cb�-�TmE���U&M��	"I
Aj�[���L%m�X����)&�mQ�F�Z	��
��C3m�$�Cm�@!3��)����Z�QD�Vc2mPFH�F��� �"B� ��n�&2R)��%32d��#���q�4�m���x���+��~���]�?�_��A�I$�����G����w�^�����z��������������m���[�&*���cZ�I`�RZ�Z?}��t�+ch����j�3\�5E�Q�����I�����������5sQ���F"��m�F��b�QEQ�Kc[��p��Q����j5�I�1QX�j-�F�W6���Z�����Q��llZ6-�����jJ5E�cclj5��i5n���sZ��j��QW(��EcQ��j5�F�P[Dj��j5r��Tk;��[���lj5�F�QF�Q��5�F�Q���EcX�W�\�W
���������j5�F�����EQ���W5�(�r6��m�F���b�F�Q�5�F�Q������cl��P�RU�j��Q�����nm���j5�F�QE�m�-��Q�����j5���sW-�F�Q�cE�X�Q��j5�I�"�-F�j����*���EQE�Q��j5j6�Tm�\��DV5sX�6�cQ��j5�Dk���Q��j5�"����j1X���E���F��\�j5t�t��k�F�QE�������j5sW5��������F�Q��j5�F�Q��j5�F��Eb�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�\�W6��r���h�����F�j��Q��+�F�Q����c[������j��j5�lQTj5�F�Q��j4Z5E�Q��j��j5��5�����F�Q��j5�F�Q��j5����j�nV5����F�Q��j5�F�Q��j4V1Tj5�F�Q����6��6��k\��F���j5����F�Q��QQ�5�F�Q��j���W*�cW5sQ��j5�F���F�Q��X�j+�F�Q������������\�j5�F���F�Q��j5���h�sW4k����F�5��cQ��j5�F��Q���5�F�Q�#m�kF�j�����j5wv�lj5sW5�F���k��Q��j5�[��k���Enj��Q���Q�
Q��j5�X�j6��Q��j5x���I�5*����F��&����Q��j5lQ��\�Q���\�X�j5�j+�F�Q�cF��X��5�F����lF��6�X�-�Tk��h�j54[�j5�cQ��jMc[�����Q������h��65�F�Q��j5����[�F�jwUkr�6�j5�A�5�m�cQ��lW5sW-���h��\�j6(��,j4j5F�b�-�F�E���j5$U����h�b�5sW9TZ5���5�F�QQ��EQ��j5��F�h�����W6���jM�ch�X�j*�F�Q��b�h��l[����r�J�������j5�ITm��m�U�\��AU�r�m�\�j5�1��[&��j5�Kb�b�h�j�[����V���g����}�����������{_������I ���?���3Q�o����������y�������{���]��'�\���Z����EXj)
����ry6��1k��f����bTIv�3,�D)��C$��5�3�WAt��n�oV���3����$~���w��t��ugm�$Po�p������s5�2���U�{����,c�S��/�bor�8K��1�YZs*��wl;[�Y}-Q�]��:�-]�p�zYq�����\
*t�BF���	�I�;��&�v��1��)�b�hP�l�&�5���������
82oyc��v��f|��R��nk�]���{����J�\�hg9��{�y8��"tS��+
�.�am���������9���������O��}6�\�*d�[-��b�����e+�o��d8���Y�<�)���^�,u��mZ�}9+���KKo�Y�r�E�>���p+����W5n�WzIZ��n�6�g=�����O8�����{���fuGj�����q��{B�C�����2|�yS�k�������|+t]<E�I.
�-�gu������8���Q�Qx�#����.er�Nm,T�4�����j.K��������6������z�j&��n��T���.\^�f]���kz9t��V�W�M&�������v_�����;:��][<	����F=�j�n��-�yS���Z�9��M�����&/������u=�,��i�Wl]i	lM#j7T�y%��������)�~x�-2*�a�&\�nu�p`�7z$u�� ��U���g5��J���Z-�Q���P�7I�������t��V��o���*�Te��W3qq]������I�#T��������Z\r��X����NrRqU�&]n��OU����"W��J��j���I�����Ny���4\���>�V����n���^���,�j<�[;�Wik0.�]��UkTQkYk:����.��v��T��|E���su��F��Fs���S�3]����`�������r�0"��e��r��*����&��
06�[��#'k�Y�
;y���U8�5si���cR
&�r�Q����kv���`��9��a���}��E��Em8���� �-�d���N�5���q�y.�����22���4�}f��gvgu�H��h�Lc�K��<��7�E��n�����@]>
�EX����3B���{Oc�t}���mnrur$��j����2-��Z.L`=�v���h�9���w����Q�qY��Y"wC���Y}7��4VN��]�x�S����s��,=�����F���h�9�+X���c0
J9]��m�Nc�4���b�<��9��3!���d��0f;��/K^L���Ye�a�;(��q������%����=|���u�\�NP�MY���G��*���{���-��nC��P�j��5�R�"�*�����P�Q���o�D���^fo]����8���{gST��B���Y��h�[���E�������b������;k���g9<��O\d+���t�<���\���i,��*��hv�'u�[Oy��-��s�,Q�]7xve�W5:�=Usr�����G����[�%������>Wa���V�U�)�]�f�Y���|&�t��Z�
e�wgM��	��qo�V���/$[�W� ���������r�*.�]��o_Ef���kx�K�%��E;9o�7�%�:�Oq���9�����DFk�}I[�k��z�P�q�B��������"���Z��x���W85���*����q�c
O����A�+�Le<�����;9F��J�;.`�N��q��/��m#=|�'RZ/���8����2a`�I��p��3q�l�3���tQq��N���4�j��f���r��*����oMs�����UrSv,"�.��z���
�6s{�(�jz�
fc��\�J��y�]K`=w;R�S)��a�-���Sj�����w������-&;�ou;6���g��M6��o�WyYm��0X�������Q���e�����tt;f�i�������������h�@��hjg,��n����!��X��1�����������H����9^;oeF��z�����i����u�2q�1���0B0t��:M������v�T�im^i2�*3�f������cNLl:�g.*����k6��\r�-������y�@.0��K�G�<�q����q����c[�l5�����+�q���|Q�9���N�����vUe0��6��V�]d�O;��{��q���wy��\>v��j[�A]%e���Ef�"�P�N���Q�0kx&K����1
Ti���bB����.���e=!���d%Y��3Z"�"����H1F\���zs��\*�Fuu��Jwa��=*��
n�7�p��if���,S��3'bp>�w����`I-����Zti��'z��0*��
�V���W+�UT���������D��d�s6�����$Zd������K�V�e��a��v���\������Kf6�V�v�9g&2[����y'c�e�}��8�##T�����������2kA�a��|����CNm �Y��wx��w�LW�[�U��������NU]��N�
�Co]q7:`Y�Q[�kD�pu������6��kF���7�Y�I�$s�[�<��EOI�]h�wi��Ej��3E{���UU��Jegt�b�V��g.Q���>5�e9W��t9
���!�����p��6��k�t������{��/�qz�a�h��wX_wu�u)��G���*�=�p���;���q�7-L�������� ����PJ�e�D�w4��o)�p}��(��X\�hYvi��:��>�3�i>���~��jT��a(;E���g:��EW���:�q����
ej����%u]�������c�}��t��c�v)���]�^fGm��.�|��c���V��]���6��q�k�������\�9uv-��a�@�z�2���f��QwG�������&�r����P[+����\��%LJ�J�1rn%c��yv.�X�sS��q]M\��N����x�Z��vEm�vY����^���$����V�i*�
�X$�/���S�Vk�IT���F���33Uv�-��������{��� �q����_fn;�f�+��j9C!����u���-����\RgF�������n�n^a�e�T�����$����u����V�&>����\zY�%�^NY5(��M�`j��x8��/�+�U��o:K�<Rj����%��fnm�vU�������:�=����%�p������K������(�\��a�B6�n�����A/1G9;o���/\b�wr�����76_��ldR����\�Z�7�	<�X��	w0f���m>0��co�yJX�ic���5u��f��1<rv3;�&�k;���Md[��:�l��B�jk���=5
���7���Y��+��Vm�3�ve%}��������u�S�����P�3�5�fcf�8���{��r����LR�j^�����R;Y+{��;���gL������_Z��yVjb��	ku��5����W]\��ueZ�� �j�t�}���[)�%��&������������"���]]�s�������%�����}V�l��m�I$�s.�|�!�j����������aL�I��n����2&e�����v�[��N�fAq;RD��I7f9Q�C�3�;�����=�ZY{2GN���w$*�����rSh,
��mkPu��7KB�NH�E�:Ah1,�M�Zp� (�O''NR�����/:��Vj��5�u���43��x2����Ng^�����o^fA8��[{�1N�}���&�XlN����I�����Z��:���%uZ�\�������
	��2
���s/�V4�N��wFU=/��m	����]b08�|�����WyW������R�Q�c�r];+���Z����v3C�����b����no<�3V�^�����M�8������j9BS�$��_C�U�f5o..�^c�n�j�j��h�mf[\��-U�n9���������l������l��.)�Uvv����>�*"��8N��t�~U:��[*�.r���Y��av�]�/���rZ�5�o+{A��kv`���/��>���G0�;��|�'+9�f������,���o����q��Wj�V�p�\�'���/1��.����)�����J���V����)���T=NKz��p�-R��;������qN(��v�,�����NT��R�J����n�mRtKJ�}RF��iE1�������D+�4RJ�%�^3������Z���|�o�<l���x9����&����m��	�N��0�aL�9����r�'94��SqRCa������9��a������4��;���U�;��]�vZ�I���rOoc	+��hn�Ul���3k��T�����krrv�G!-s��h�23&�z�Q�Ye	^l��!a������L����J���r��9�^�X�oM��(V�X�nR[��V��v3���y�cj�<y�����s������k�q�6���{�n��c*���:��������v�������yY�-R+fS6;�vs�e/��d@��	x��.�h-��� w��_���2niv�r���J��{�&���#�s�����3~t�E����n.�*b���8��;��V��7V��Za�r�����#������f<���&��)Ju�]v�)d�D\7��0�Z�:�qN�2�.�5�V�f�tr�����`.����Zi����[�� ^���\���(.0m�MFh�x��6�K:Je!��u��O�|3�a������_^)X����mFuG:��m�p�*��W|���s\u�[����Z�(�Kv�s�]'H�o\��C���r���.76N��������+�]pF6h���rO7���k��Eg"��jKz���%�����O#����������V����^��J�m�2|J|^As,������������S0�z����p$��pE�:�qz�k�(Wo�mtBN�7������yEL���y���@�=)�u�d.���%<�3��`y����m�C��i���z�����-���:4�v���%���t>4�����6���w��ngq����9�o�����wk��*�n�m�O,9L������-z�������>�t;/K��Pt�|�t����W�I�e}���O�]���j<X�72���@������-@MV�����}D����j���o2�'��m!����_+�%���+r�Y�[�&Tz{��T�D��d������B��t�:�,��&�v���]���5�+Ss,��S�N�eD�B�!VoOt��k�r�����-��[���FL>������3f)��6o��:�����X�4Gj.7�8�;�G]���m�Y}�ub�����4�*u���)���������D�m]@)w��Nn�._�HssqC:�q�1��{�"��t�^��p%�l�N6tWP��8x^
��Mk�2�g�6���4��4�wA��p�������kl���a�i<t�;Z-��au����(������U3�8���2mDQ587�]f�YsS�����'��w�h�\�oV�$��K��I��v6">-B��zt�DS4�n��� l�����S�x�74�`�v�9���@�������I"�t�ad��8��p�3v�������
Y�-�["X�����,��Q��!���i�eN=YN�i�8s�`=��k�?f���Z�{��5��9�{-��u�&��5C{�T
6����uh���&��IV�1���Vu����Z�%:�]0�5�{d �Bl���w�m���@X���s�K��VS�D�*�pCyrqVv��@0*�ur����'	�������[�rZvA8*>����L���m��������u�Y�GP�c}�Fk9��|�y�a�WW�5N�X���+wY<]����L�x�*fA��a�E��z��g)m�=�t��g��3�!�>���W7�u��k.�7���(�����r�x�v�Q���)Q
�[{���8Epb���w
�;��	AN��������k�����yiB��B�L���YKvX�`{�U����z�������V���%����u�G���%��+o7D�
p�ja=�p	I�����v���;�\�s�W�_dk)���n^Z�>�Nt�G����d=���x�f9��
`m��g
[{�]Z&nCpB6���-��z(*�@�V��%���	��a�N��q]�2��[�'O�W\���E�����vk6��{l
4c�%0����S����K7:���n��D�����oi+\0����kV�������E
y����G!���	�8���m����,M�am:�ss��}M�Q.�\�t��*�ZX\����:�D�3S����'4y��L�L�b���j�������"M!%�t�8W!%v;{l+I^�?�i�������R�s���7l:��j�[n�R��)�V�ifw �Wf��|��dW��Q�Y����s�BA���0��F`p�4���0��O{����"�)���c����\t��o�z���Xe\$��gt�����r*VU�/���$��:������_�i/������5�|.��J�Hf:��zr����E6�%��t��b��y&�5$��-��N�WwW<K�II��rY��2W��d��kv��1���R�V��Q� �������x�p�[�n��dx{����u�3j�U��U;�����C��}X����YwN����$�;��j�e\�����V��t��e�i��s����������L�z�]�K_(�m*�L�y�Y��
�y]���8k(a%j���&f�u� 8���m`Z�+BT
�X��F�B�m����#h�ke�����5�0r����t.i���G��q�����j�m:g0C�������Y��a�\^�]&��4miY�l����\����W�QR������g;#�m�F�wo(���2�P8�>`CQS��7������G8K/��w�����"��A��������y���/�K����������KFm&"Wk��C]��5��[Z�{X�[�fus����B�.�]�{r����i��)�HL�ZwMT[�w�7��q���l��OmMtKx��0.QC�(j���t���z�fv�Qu%P�C��U�	�e*�9aTeLigK`�z�
����
��Y�2���lYKWe��1b��z�����b�eTgN�����]1��+2�NTwWR�,�deW�[r;<
q���H���"�.qu�
�I��m;�]NmrU��l�dl�������8
�o;j]�������Eqo��H�~�u����r�xF
u/9�}B�:{ hR2PN�U��O��q.8Q�j��e����/2)RX.(��hi'T�j%N��l,�/tJ��u���Yc�EA�%*�����C�W�c�����YM����&B�b��h�5B`�������ZA��9��I4�4Hv�Pj�Q�O{9t���7���qH�-���>�1���u[*z�9���������Z�GV��z�s��J�4p���������rK��=q*�9>b-V*�)Q����Uv����}��`��\8Y"��d��4�����C}x��f�����\-���(�I��������i���Pc�y���,�����oB#{�VxcL�f3����[����r�����"�0^��w���J����(k�r�r�7	DP���sO^4��-|����������CN�,�ma�$t����s����Pc���y���g-�����Z��R�*����L�V�V�W�1uo)c����*R�����o�k�i�Q�5/s�3������on��n��C,N��N\�����r�tL�n�����;N��eCB���#��M��A����;)���;:q�n=�/��^����W
��{���eBR�|��V�g]��lVk�N�\�/���t�{\bWPK�;��x*�87N�M��k0\i��S/����&�L�������K�l��[	��2el�y�����0N�N��o/4�ki��\�������j-=f�YJ9�lL-W�a�r'\[����;�An"�Y�Xv�g)�P�:��P\3�K������3����(�P+�C,�	�:�X���f���/,����Dth'����5�p�G1�����H��o:�u����S�:�W�vup6�|��|�
�$��@5\������c=�_7����,�"F��v�G!��u��.�6mv���n��-���!�D�Vt�;q�]�7�������s�K�����5���oe�<��me���6����8)
���	�GT����*�I
q�=]�2rj�����[�����mNI}2�[]����h���
�6;9��P7�7�u
��`e��*W�����:�fc ��s{qu�J}2W��p�t���Cs&�H���x�[��o!�gV��E���F����
���nyVFSI��:6��o^H�(��������V�3]��q��Id�����+kS�P����w��d�eH��Gwt���F��U�����u��V�NY�j�dX(�L;�)�&����%49���y�j�+���)�{|Qv�C�%���>�����p�@K��	%Ind�������ci��\��/�����v�tp0�e��Y_K�y0������u�.7�������Kws#����{x�g8P����N]E��#e��K��kw��3e��"����z�;�,Tq��3^���������b�GYd
��[���Ci�����"@%]�,��8-<��p�t�CQ����}�2�����oZ�K���^����N�����e��zYM��H���b�w��+A�I�Y��{�&;��{.2`��[khY��U��&�R�X[��>�N�%[S�����tK�5����}�q��R�q��]5�����5c���Oz�&�J���!��������W1u����j��o-Vk�v����V�d��nH��l���H�#"ow��A|�3����=
-������.��^��������Y�oz�S��p*��:�f���-���.t�j�j����N5x������*%x6�
�S"�:j�<�us�Hf\v0+���[i�s^���W���5*�v`d]�v�W��b�&i'��������{�Q��v�
��U8U� ���,��W����Z��r�����x��n�d����<�����{��T��n�����f���N��;�Z��:���$���i�gb�t
`�U�����|���4qKUy����;lO�I!��(o]�L����������!��	��� hb�m��v�]IJ;�����n�����E�MP=/�t;-�wQ�F��u^p��	�B��y1��cRL��R���^�g�i��j �+`�T;���j�����:�v��
5bT�jjKq��h>������"�,������f��/%��y�����Wf�+�	�m��X/xtvX�J,����7�e��d3���9�(g_A)�[.����V�
:���U��Tm�[���2A}�E�������3�����l��4F�e.UDmGM
D����
�5x�dt���fTU)�eu�����,]u�)��Pf��K��4��]���j���]M���L�.M����pC�#+qi.���4��A����9�[�����aFO��n9U�
���=4v�v�������_L���m����G�T�����&����kcF�����su:�����	�P��$��O�k%��Yw�
����v�r���j!f��#�����D|��j���T���74���e���y,�^�e+�:,2�Ob3�1]�O!��N�P����R9}�I7����������V��r�a����j�twc�H����Zr|����8q����|��e�v�����mF\V��n%���wv��#U3'g.�������C/����A>�K#9Fp?V����R��]��g-�|����T�\6z��M�_]vO��v�5���`���].d�WPa��d����������!�x���M/2��zx�y|h����r�����:�50tRS_sZ*!0�2ei�[&>�yR��}�ew^�;��6g0����Anj�@h�W�D�)��c�s5VB�V2��hq���C�t��^d�w]9�%�n���T���^�/c�LKt�e>}�ng[TweJ��_u��F�$CR�*/��TK�&���#4	�>���G^����V�{
�wEo3je��Q���*!�Z+{�����_��
�z[�fX�;���F��k&V��#U����e�5�35��C�`H�����@��,�������Y�k��z�_8������G�H����|���G�I$��i1�'O�O�?��N_�q��y����m�mm���=Y��A	�hBI$��8� D� I$M����yj�m�B�����6��V�|"���@1�$�$���@
"<�r" �#Z&"������Wp�@�"��
�$>����
1�c[��k�5k�&HHA& �-��$ �}wts��@���������DZk�����wu��w:�b1A����������I6�WmbwA ��$����I�rtD�DF��(����w8��������]�� 
��H"" 1%�����<����s��;��ZA	2=��wz���H��""""� ��$A{����� H�#����y��F,��@@ �A{@w@����y� �s���@�����cwu����_��Dak�� $ �" �zA���������ky��z�8���� ��cDK;��Qb�1m� "/c����������������""""� �j�#�c=��;�$�H#�
Wx" ���������wwws�����������A�Oq�wwrA�I$�mN"$��=�A "�y��<���b(�DAc�w �$�AID�o�yx����A�iU���u��� �m��Dwu���$�I$@A�]��t��C&��0c�E1E_�^|+o�^zI��D�����"��X����/;�u�s�wgu���wv""#wwwt����h�cb��n����c@=�Z"	��@/HM��l�  ����Z��Am�v��|�b����V��I$����b<������:��Z�zDC�opc� 6���;�DDFz�\�����1z9����t���wG9���t@��]�k����A�.s�����r�w\�9E�,0c]��I.�]v�
.�m6�]�����s��wws�����G'�$���9�Us��#��	9��� �� ��v���D����;kv�6�6�mn����m��in����6�������w;��J�"@ADb������wq�	$�@$�	$�$�I%�S���	6��&I>��ws����9��wwu���D�'�DbAN8�1FX�n�m6�m��mu�m��[�������������������r/nw;��Y�!�[�" �"�����1�#������������ws���������s������;���"On�;���wNt�N�������NF##s���w;�]v����m��m��mv�m��wwwwwwwwwwwwv�U�r/&/;��������www�s�� �HKa���������q����w\���0��QF,b{�ww�����\�����{ � ����w�91�(�b"};������wq�wwwwwwwwwwwws��. ����#��Nwb"1�m�$�9$Z���#���1i�]���QF�1�=�wwr�F#T�A���������08@$b�����*���b�z�DF3�s�F""�����""DDD^kn��������"�I@DDDD���,�[���������A���wu��\��H�"(�F�AQ�����"������DDD`����f��E����D4X�F1���@By"�<�ch�dQ�1��Dc�Z�����$D@��n���	
x��A&L� ��{���9s���c�u�"1"(I"" ��M�q'��V����"�Ck"�=��F"�G�rD`�����D��{�[xA$I�����w��������.����r" � �E�����+f1s���;�����wh�2Itb�n�1�[{@ YW�2-����#�EAU{$D��$�b1�1��b/h" �$��l��Wy�9�s����EQ�DF"H�$��E^ZV�h� $�H�D� �W�O�L2h�D�$�$��A$(�E"��5^����"P��F1���t6��#�DDDD�jV���*�AIF�}��������������I%�I'����$�Bu�����q"r��.�\$�N$p���$�[�?�k������?��/��������������:�|]L�p��������+S�7/������&Q�k4�60��}|+$�e;�1����<T)	�.vj2�.B�<w��'cS��m��8����l�db��n����I�/;��+���i�X\�>��Z}�$�.�l��;'�����=j��T�����P����m,��v����T��u���m�d���������Xp����u.�d�������eNRY+4���)�+�y_GY�~.�\����W�!��h������p����G��^�b����`�+�l�W�������=��]EL��3q�u4V.������r���
���(UY�6��3�]c4v�B����s����fB��b�C��������-�\��B������#��x�	��3y�@���',)��n���J�V���I���� c��/�5�}��g5�kf�zn�'��L���]��$g
�����o���������>��RW��:���t�5.%TM�����n������-��5�ea�q�����V��TI
��}x7�nGL
6kk���������+zj�m����2��tAO������������_S����B�����:��r�J3	b
�`�#�*��d�}�����_b������r�������!��Z2f�=�:��T��ot�����(Y���]�
�0��q�_�y���uk���{�
o���zz��j����l��*j�jDU[m�y3��
'.�N&u]��Q�U��������kHU8���������u�(�����M4�:��<���w�A��Gq*���S.\kk1s���D:����8D;��cw������:��,H9K��X*>�;���1HdZ��	���SN9��L���t*��v��
q@���2ov���i� IWn����a)��f�J-5f�n���wV����M-�����]��!<�r�H��1�-���<;��7���Pr++^�D�os�$�;�<�)@����R\����V%���XB�Z0��9��t7`.���t�`����Y=�{k��y�H�gj]������
9��]xi�I*���1���"����8�'.�J�+f�|�S(G�;.f��3us�sw��BZ�w��$P;���E��w�u�,��v�9������|��rt[��^�kU������K���e���P5js��Vr�8��fn�<#��������=e�4�0���!InV�:�9����e�����NL|/5�����(J��QY���4iS���:����[��GKY{o)G�W���:�9J��(%�[������o^���f(:���B�&]�\���%F����OxY�Zi������b�5Y�U]��MK�����V'}Q��wj�\nL��Sv���gS����`m�n��������34�nl�������x�w>]`�V�'y�����
��W9S�7�sl�.Q�1�2�TN�S;{9��5t��{7S.�S������������4�����q��&0V`�V��9�-��v����5
�,�cI62�t-����t�=�r����t�ouf����Z��#�����R���������x4�5��j��p���g�e�����o�/o�Ujn�������;v��m	��ih3m���*f��n�r��*����}��������4J����6���3d��We�o^�N�f��#r�f��9U��]BfIj_���w�.�[��j\�6��qgvwJ�$�Y��,gK[�W�)��R����$������}i97:]���i�#m�3l��u���X�'1�W[�r��PDv����uwpgz9��V�@\��|*�`��#�]����l��o~���h��C�o4����t��/k�U�*+��������Y��w3+���@NyV�\����������Z���9;�;��>�(wXZ��syk�)9�dW�%�q���o�s����J�c/X1�tQR��rW "���8@���V��7lS�����[[��k����S�L��])I:�E���4i/3�b��`�����fr�����jvs��S��:cEV<:��m��ut�������,	�Jl)�����:�R��L�7z9��-�b��..���z���zs;�vp�������e�d�,��m\��k�IH��u�#�c�#6D��V����������od�9i��6�	���32�AY�J�j>���=�4���qus�a��P��;���Y��%Il!����*�^����\�ng�R�ZJ_�]�z����1]�P��k����s����u�8-�0��^;��l���+yU���QV%�,7C�9�R���X��#
�W���i�NSrU��X�U���p��8��5��\�H���zRg�,�]����*�z�."��]�:P#:4��::Zkx�\��#r�&(*��j�.,.k��
����;�q6����}�PL�\�C��!/2Lt���t)���]o��*7�]"�]n�O_.B��1E���.�3l���[��w8^��+�����Nv`����t8�{�o@�����]w�g��qG]u�+j<��}��s$^hv�P��c�o[X�VMM��P�����Qs!��}�z����!DU:�
��d�_j�o���t�;dT���o�o���K7!oRv�e^*(�b�Bv��� ��tW��0�nDM�*�n���9�;�VlO8&l�8e����t�Q���Ks�t�D}Gr�0���p���v�D�q�m�e^������6�d6����N���XU�K��wv��m���/s���'����Re�j������k��@�4S4Rl�<^��P����W��4Gjf����E&�4_1�[T�����<��'36���%�n��q]�A��1?��\)b�`���I��mM��]�4^�����jQ��(�m��$6<v9�[s�����]�4�����n�2<���+��]7���m�;�n]$o2��R��\�2�hNu�]�i���gqJ��k F;���CV3��q��]Kg5��E��������+Rk_<)f��j��gHF�61���hY��agYMmw:(+�rTrj�{ P�����K$����j5y�L^n����n���^����9pPx�82;i���Y����q��hekt�y�xm����*��M���v�h�h����7$}�&]q�o�_ut8���d��8.-L�)-.�0df�R�i��N���������M��m�&�M$+`������l+���]�Pe����y�`{�^.��WL6�s��3��>�#��e�
�_j�!0��]�nr��s����,�^6&��n��;�s������dYZ,{s�:�T�q�Z���`�9��/+e�u�[�v�5�c�n^1�2���7
�Yy`���@���-��Z�������$���ru��hY
��]��\���
�l��n�S2�����
Z���b�.?p�E�:XU�s���I�K���?��y+��rvnb|Gdn��Z�������gj�Q�6�\#u��x�8R:����n����L����(c��y��(��K�9�&�*�{�Q��;P�Lk�-������f��ua�5y,��pDL�d�,X7f��z�p	k7��w�`�������
�(���k�9<|Z�|;2���z�M��UgF-��|�s���U�1Et`��"�)�������c�.(o��e���Ib/	�a�2�A=��=�S7���i��U�:�����UQK8{��(�y���V"�E�p>a��rI���������^�{o���C;2�n���tep�D����<�T,k�v7RR�=�%��f.&q���Z�����	����������y��w��9U�M������@��IU�Z��w$-&���%���%BQ#J'���v:��"�3��fuJwg�&.�v�G��������6�P�h>��`���S��
�F��%���i7|=�G���kxn$8��=Q8���}�:z�;%f��X��Y��g7wz+o�*�L��R��V3o��aZ9}76W9���R���c1�����0��5}��n��N�r�v��W��r�.x^���/+�.d�m�k��������#4/����������l]�;qlR�����**7���6���t����V�5��������J�����q9��6���s*�/��2���Y��������A��YGTZ�f��i&F��p��f�G�u�����Q��}�
��]���������0�9�V*����U��NQm�	Wmc=����(��u����,-f�NJ��H����F���������V5J�;w����-&��	�������9�6���,��,2����#3NU�xV�O!�u���GN�7We9N��N�V,�F��mm^�(���f��r$F�-���'�����F�#Y����g]+�
�)-��}���Yn����D,W��Un�9t�����,u�e���\���rq>�v�2���{kl���
xd2R�uj����UB�w��D�����53�2���&��V�a���.�w<�iV�������f�b�Nk��a�b�B�>/�\�]�Oe_%g2U����s����h�q�6It�!�TZSp�cn�Y�A�����8����2QK��wY��F�	).���kG����f�bq<�3mtqov���2��N�����v���\6��j���ElM,�'��`81��h]d
����UiYf�R/��N�����u�P�p�a�7�O1j9�d�9����J��R�aU�Jn��h�;w^>OC'�,���4_by�k{v[�� m�r��a_v��j��>�{��v������ve<#����:4i������`�71���Y�n�.�Vy�<S�|�[|����V��5n}t��\9`���\l��NVj:�����F��98@�g:�nggr��pN��������Z]�aN������/g/��>N���&��f���;��tb�Cud*k��v5;P6��
�3���9�T;9]==[MaE�)I��+-7���T��������Ut����;�s�V�p����"e�D������)�|]`���S�������cg\��R���wR�m!��e���F��w1�^�n�'���������:�`��eZ��^��M���'YM��L���gn��H_}C����h�J-���!�A���I��)J�9�����I�����W+���O��F�+�s����R�:
u���f���\�\���i�Xs&����d������qw�r����I�T��q{�t���V�J��Q4���tl�e��*�s��u��ln�I����j�\���k��6�h�
�
�>Ies]��gZ�GN�=����k;�j������\��8+�o���t_B~��UY�]2���n,fTY�]���T����/�PoGC��/)Ua�oN��^:���a=q�u��s-�>6t�f����-����P�V����k3�Y�VS����P7�mw��#��r4�hf�}��M�/9jQ[w0a��oX��T���[�����u�B�}��"9�9���o/3�Jf��72����/�{,)��2��Q3������bn�Ua���M���"�W]	�+�G����u�y[�	��`q>�z�_s����7��+�\c��M�\������p]����w�bC�����Z;<������/&d�G����=z*��9���F)��o�=���X��|�NKfwg]5����k�"W��ob���-]�|����&�� ��OdtY��f9�q���������'\��I�I���
!�Yy8�f����7�]�������2��m}X��@l����<�|e�LL,+M+�9k���������K��]����X�Z�&K�%�t���[rke'bgf�:Gw���;yX�c��7�2�'WU�'��
�>���D�����[Jo�W���#�u����<��]����/B�7�	�r�����M��� =izr��.yns%m���eB��Z9��������*��rj��j�I��r�.��\WgEe+��N����t���f�_DB���]�B�)8a�!�6��5(��e�+f�>xK�z&j�S��}C���@T��U��ujd�N�������8��q�������-3���N�8�=}���:�9��t2��(�p��u�]y]���!;{��&��W'�U%��uU���>��Y|������U�
����k��9��ma�Vk�����iVL���W����y���wX�K�B����l������a�h��qJ0�3�x@�j�~���i*������r�GO��Y$�mR����1���M����R���2y��^�T���-��Z�����F�,��wE��47ynsY�cp���I�MkS��e;|Oa�V��y��}���<���z�x2����7g�y�^i0����R�����@�����n��J�y��U
�B�*
�����BeN�GITi����I���U8��G$4��\A��{�A�1���������B��>�4��=������!�{Vv�����1U	�+���(��u��v�5>$������-39���k���"�2�n��}�;�����\��\���;������W:����s=8�>�U���G.s����4'�x�Zg�]r�18n����[��S�@A�G��R2�������yQ
,��6�{vp�>��T�N���l�t��s�������*y���
���q�����j���wcKn����R-����w(<�x
Z��)M$�f(�;�[�:-���!�����\��ic4�������7(�t�7�x��gv�)��]��'^��%��pN�T-;�V8�F��;H
�@����f���@����Ds�=�������k8��U���szYpp��X^
:
�Z���p����J�*��UL$����Eb��E�cp������������-\>�r��.����[y���t�|F�7�3eF4G3l�&��k���\���:�7��7��gc�\��lC����l�[8��]�/:��F��u�.8�$����%����c�*�8��Os����P�����}���^����P���h�PbI<�:�6b���z�z��J���'��Jc���+�=������u�Y�k%Y�_)�=7x[�������ygm���rZ��we��v��g��a��v��J��L=3��J���	iP�w���<@8���V��M����S�����;y0�.��[�9�32Ba�au���A��dq��������5tZ�[�n����g_E�F
�@+}Wl*z���C!��n�1t5���4_r��o����@�L<;P����0�s���W-N�GZ�z�O����`"}�������,SIY�v�����b�b:�����m3`�y����	my�,;t�N�.}*t���\��Qq})��n|����HG�mr'�M�im�e=&�q>�h4L�Y��3�y��B�)	Y\��kQ��������$�����Z=v���]��7�r,�����0O8>��X,�s3�b��)��{���ld}+��R[yu���6;:l��z�\��S�hg�g	Z�.V����u��'s��(�����9xX\C����#��*��pKo_1�q[2�y��0��fe1w���`QVAckN��.��\�������w��[R�����Q�WvbF��h����U��vQ�5.���<���
w�t�j�$���r�K�k*s2��\<�����)�z�l����F^��}%�WX��������5o]'����U����'�)�����]�f�kMr��K��@�lwh4bNT��+/c�x�h�Lf@�8�w��,����kA�V_��o�;p��������z�Y��%V�U�Ylv���Km�R�����Y���++����{2��s	���P��Iwnrz�1{��/!���{,	gve�EgWF��DOGmE����ms�&QN#Tt^�Y:)T�]pp)����;yA�{���9�s�N;y��.{�
rQ\��8��;��Vj�oU���s�$���Mm���g{%����;�dHE}-��5!��nbc
��	|��^9��������v���:'�B��]5����-Is�����<|�����W+	�}���e	Wx4���*)��Dd�S2\��������������t��F$c[��mm����G.��0������p:�C�b��T���j�;[�'e�]�[gq}X@�fg<0�@,�����0j�cV�M$�ER��� I���
��
X�}6���]��(+�(���5[����d�wr�n��m��W����k)�]��$C	��=J�m�`���5�a�n�C�>��s�o�:9�c,,����%�F�]�x��- �R�Oy��)9�",!�(���p���!M�<��:�S�����nbC_b��U�f���\�����eT4�Y�R.VF5�>�Kg=<P�;���VFN�N�o�6��
�`efR=��+�T����T�S�,C�F����8mwR0mM�-l��H�[���2��Y	�+e�C}� 1Hum�i#��-^!QD&nv���������Jfi�3b��>P������U�@{��:���:�c+��g���w�p�(��C������;��d����Wy~�������1���W��3�EWhY)����C#�r-m��!�6u�+�2�l,���\��W�s�M�pE�`��J��j���G]���*;�$��k�`ua&���.��4;�fq^�G��	��i����V������,���1e���Coq��&��E�!*��S�o�@�&��7����{8�.���zo�w��&��;��Q�����m��je9X��� U��J�nL�������5+�
uIW\��}���_�}�w����sV�(8n��|SJU�v���2n��=�����m�����ZoO_��e=��Fqg#�y�nc�l�e��3q	u���u"�qb;'c����76������r���}���-:����g2�����1��n�>r�T��&fM2�����*j�s���b���|�/a�����X�[]d�FX�kh���-���k{�9�����*�|���l����J|�X7v5	�}r���c�O�� K������vu������2���@�Vs�d����p��k�w�J��X�N��`
s�|L��n^]aor��'�Ee�����7��g*f&��rM�=�	�[�E���\�T�n��X}{��e*0�e�k*;6�8����#�[8�������w%���cx��,U#�INX�����;�:���:K�S���a��[���5��Y���L���{e��]b���NX�\�1�����-4'r�+����
�]�5�L��/��hP�wM��0	o���qL���K��B2���p�il�������h�[�U+���~�J���sOu�;��Jw�n�6�iU�2�DY�9�����y����P�7%�}��s�r����\hv��Ax�w�,eT=��#i��CH������0�y&-��J6^�*����%�+I�$uoOP�MX�WQfQ�i�e�j0�]�����)��o��%67e�-�Y�.t�f��0����Y�U�]�N�I��nM�c�{5�wp������]*�3*���a(w|<�|t[������mE%}u����������QU����E�a[P���������n�*�N:ac�����tR�s6��L:���@l,"�e���W�j�I=���39[GL]�5p���GfR�8�{\�Wq�0�p�/�#��,�*<���X��.�z!�����u�m�#�B� �����o���Y������k?N��1��)��{F�j"�$�ue��i1���o�}��X3�1	����\��h�[UwS��W�z2�G}���_%OF��]��"�h�Y�,F���E;���;b���nmotd�2�b����L���BM�m���6��S��&��u�Vhq�F�� ����,�+b������d��w���jr�x(��m��+������$�������8z�`|Y�To�� ��+����"����8��nSR���L��k�3t1y����.���V� �M�U��M������z���]C7K*��w����jd�!�B6;Nhj�a��9����1���/��b����&t�����zS��H�!�5],�>��J/jXG�O��
u}2�,b& �E����`��K��xdF�����
���8���o^:��u\�y�����6@+2����&�D��q�Ss;�K0�p�>��q�S��)�q���=Q���6t���G"�M��=QOJ�����pVg.�Vf�����1v���[�;R��X�W��$������.�~�����D�����W��G�G�����������#�$0�w������������w{u�}x;!c
�8{H+.�+M����k������H���oI��z��t���([����`|V�N^����N�F�h�2+�os��6�������[�Z)��t-AkT���wf8�k��WI��5����w�,���c4���TW�����������c�����J@�c6O:l�9c�=8k����������T���J�\V*kfK���D��w6����70�=U����v�a���"�*X���`�E��X]�9Iu+*����wu�&����4�|X���g|��w��2�������$�����v�,�5L�)l����-r���P
��� �/n�u������.��ffh�t���"�#�pi��c��������s�71�-b�������I�r:]J�H���Dz�����e�g_c=��n���l����FK�ps���5k�;��i���}����Y���X�m�32�Q�9�����w$���>��dT�){����d�����HbR����3��RS3&��x������\u)-6���q�����au�4�����]m�.����C��M��8��R�[�n\�>�2q���bq�}��Z���t��jWG������Fi�V�I}=�tV�%�js)����{�x8��Z�u���$�����a�1�
$U
���ki��[�r�}�2�����q'�h�k����Sc1Y�m\������[��v�[a���G������R\���.#/��UsIz�T6wKy�}'F���[��\	�W�;j�:>���2Dr����,2_�1�0u�L�x
u��\�wr}������&e�������v���9�h�%���3��^�v_pN��j6Fc[e�����p���sZ:j����>K�,Ys�{0��e�M�F��v����Ab�� *|�h� tJ��^��6q�Z�598�����5,��`�W��K��'v)b���6���C�VYbm���51��[����Y�iJ�6������-M�-�����F��m)s/^t^:���]�����������H8�$��>I�"{$��A���'I���#�$N ���x{�6�����x�����������Unu{7����Lf.�������u���s���X���6_��������j	s�����_�.��a�X	�����>��}��Z{��tih~_u+��{e�8�qk%�2��lz=�F�=Q��V�yx�|0�Q��`��%�0��1�^&���a)N�
{Yh%)V��ofv��$eu7�q�V�+u����V�O��)�Y��c�F��h�X�P������`�0[h=�j�h
��ZO{�qhoR^����A�<��7�y��k���>�C)�����!�-�2�T��I�5�	~���j�jU�w�t{�6��)$�O6��j�u��l�c��9���������.�Z�=KzoIJ�C���}L��pA���'�"�;���b�Xr�z�h
8nX��=�Xr�i|_Dy#XA����v�j,r��S�Os����P���Q��{L����=�,�Sq�C_j�/o���GL�
1=7^6��+"�*]]yD���j��0Y���WK���w[;�<{�h��T�1�B�<�����tLM��`Hu�[�mM	y^$n��x�f���i�V��c����w`%����oo��)`br��b������P�R���D�xvE�����~o��N����f�����l�78J{����Y�u�aN��SKeoxy��5f����ngI�2����y�l�T`���QU�L�S+��*[�$`����r������w���~��>�/��;���mm]vt=<��~���'^���\b����Z�%+P$��K!<�a���S�J�:�F+���CS�g�@,�	�#����0����i��{�ncv�	��D����s,���Y�I�"����������7�rl���W��sm:�~���USOc?.+��
�g�;�U�i�;��cdu�b�����:���������T�n����`����uI�V���y��kk���w:���3E_y
�V��n�����]��W!�2>j�����h<�r�AS���c�������y�$#���y�Q�Hx??�aYw@���������;os3NW��f�\o������g��0?��������	��I<w?8����7���>Y��{�W������T^Vig2��U�JwOp�7����G��u�U^�}�^�n��n��V�O}1�����"�*s$-����'^��EV���o���{��'��c�]�����W�'5���M~M~��S\w;�w(�"��(�"��d�"��(�"�� �&`�$�&H�*d�4�D�$�T�$�3$AC�	� � ��<A%CM4BIR�F�A����C��2�D����]�$�� H�F�v;(�`�� ����p�&�B�����$�d���3(���,��� � ��0�2�(,�,� ��AsEI2L�%�
�a`6� $������A(���K�k�aJ
��"�	44��@E�$AA`�U@h����,��T�0
b,��.���,���@`�5��$0�� �d$��,,��M��Y��H�K{YdP[�hc�!���*�(-Za�r�&
��	�d���AAA����v\�E��UTT2A!a���IRAAAffn����
�$����F���7����w`���I  Qf�$AAi#$��f$�K���d�� � � ��c.H	���pa�����e�QEI@HX`��a��e�T��`+�7ww@��p� �(0�C@��40F�!r� ��6t�#,��	�f<A3� � � &H	,��Iva�YR@��d�A%QEQAe�a�e���m��0�i��`@��M4�.�J*H �	(��*BJ(��(�3
�e���l� �*�� 
�����(��*BJ(����h QE$AAXh�6c�!M�4�D ���J�B��%�eT��QEQRQET�]��@Um�vZ-��*��"�����,�C
h�,���AAAA��`���(��A-�
4F�b�M� � � � � � ��1����t`�!��!i����a�XYf��'���� 
{`��`h��k@	4$E�0�d� E�a�e��h5��n���T���m�8�
�0����� �
�TE�������������$�0(D�� � s E�a�t]��n�������,�.��f UP�m����%HA��1�hXX����*�J��,���a�a��!�[�
��``h� � �.K���.h�"H�(�"��(���K� ���wwt�0B��.�m�� $
�[�E�A%��K��@@�*� � ����0��0�Zi�]n���m��Ah ��e�P]PIRAAA%QE�a�e�QE�e�Y�a�XYfe�T��@IR]���	!�n]�$Qa�@,�D!n�h�-4��M�����*�� rdNA����d����C�$1�!j�N7$A�T�0,�0�,��C1������0���(�����I!a�1���e�A%�|1�4�\�����w`�L�A!e�44i�YEH�h�-� �J(��,�0�
!e�� (�.H�in�A�X�TA!t\�����0,���`�v*��.h@afa�YRQEI@n�T�	$�C,� �lC5��C0`(kM*H	4��@@AEEIEDT�ARYf��`Xm��{tA��=2@$� �  �D�6���0hf=4��!nXI$�0�7(�Pa�i����	(-��
@IAe�a��!�5�fe@ta�hX\�A��������� �����������QE�e��d.�� �
�n�m�%�`l����6����0�0����px��5�AA%HL�AA�$A�$����������eEM�%75sa0TLOB{rn��7sr���������������.�,�g6M�s,���w3m�wti7wHBwl�������
���������������2��~���wm��wt�!7wHBwl������7v�,����)p30�n��Y��R���e������.��ww@=�m������e��m����e�wn�����m�wtwm������H���>�n�$�wd�	%���swtwtwm����wm����wm�2fd�7m�����7s6�������w0w3e�f��6l�m����
�6l�=���22*�# ����d�� ����0w6�swm�`]���sw6�(��U"B��7t�I������6\���.wt�!7v�m���ZM��2��������g??��sy��k�1��]�v���t���n��Wn��Wn��v������I ���?|�So���������\�����3���nK*���������v�|HG�w���7�9c�vAb��K/+uH���H�v��M�y��JG,�VV-�����mm,9L��dvd������U�ACh��,��UgV�8�����&j�}�|V��r��c���Li�c�c���1�v�v��3���i��<����������\�\��om�����O�����W�T���#J�]������m��a	f(��zK���H7.�r���Tkx��]�U�����Oe��������ODf��$��a���
�F��M:V�=r��c���Li�c�c���1�v�v�{VW�k���nx��M����M����M�$Q���Y?��>��_/8�.*�32���V����n�nJui��(l4-Ev.���t!��L����R9e�th�y2��1f[E�TS��X9W����������������m�|x��c�L�2cLc�c�6�1�c�����n���g���M����M��������}_}����yU����r�AI��a\�(n`�����JT0��p��[.�*n��'NF�I`9u�cs�q<���8�0QD�<�����z��"�V���2�?����~����1�'L���1X�1���c������ji���ji�.g-54�SM54�SL�M�
N��<�>o��.c�UK�%��]���BAv���*�7�4�F��[�+n�!t�s)ki�����X��Uf
���:���r��	�d���d6����eSW�.�ys0k�����r��o��c���Li�c�c���1�v�v�SM54�SM54�N&�ji���r�r�SN�+���P��u
��&j��E�
�9�
+n�&pX<SFXe��y4�T�Z$D4������������-��kf�*n�R[Je���� �f�FL�1A��-mM���u������{�_���c���Li�c�c���1�v�v�SM54�SM54�SL��3���i����s<s���-�\������w�����j�$��K5b�q�e��,����PT��:v�����-+���b:��D\��7t��6�&��{w�&��V�|�}�R��e�nJ�H��E)}��9r���o�c�2d��c�+�1�1�c�����M4�M3�.^r��M4�M4�M4���>�����������V�-
��3@�&S�*�����
`Z!�X3dA�V��-G��.���&%hj#z��VZ�uY�����D��)L���f����F����d�{��n�����������1��:d���1��1�m�c�n���M4�M4�MI��i��N\�i��i�OI,����9������t9�D2���X�����\#5��JCb��
����Y6��5�Wi`Z�f�Ulr�b��X�Z�w�j*w�*n\��3O/g2�=�������;���J����.��1��:d���1��1�m�c�n���M4�Ri��i��.Zi��M4�M4�����W��MU�W����n����7�'el[������x\u��q�:�K��y�V*}U�d�'�Ff)�7��$�+.�,�W9��r�����]L����b����KY7PW�]��r{6:�U�����*�z ��su�����$8��Y���5�)��h�I��
��q�;�p2���a�f�B��7���]Kc7c ���c�R�6R��U�8������je�i%9�YOn]M*WCy��v�y�N�	��uj�������:.D�7b�vo�L�)���!.�Wb���8���Qp7��`�l����(�>�*U�p��N�Xc4�y�����;m���)Q��G�����I�YW��Wl��nv������"%[\�{�f��l;� ��j��`PI������.���x);l8��]�� j��9Y��3�T\�U���l���L������^K��
8�F
`B�m+���1O�t�JPY�V],��W����w���7���$q�L�Z��j�50��h�7���Uk�
���
ov5V�qu��KKv)Q��C��s���w�0=�������$���,�RZ=]�-�co8M�wS�K{s,���`���!7Qr��"3O]na�\�U��z��;W���M�B�lcvzt�R�fXr�;���������Q����nh���Hr����6{5E)=���+����<�7!���&�������d��k��	������u8��S�R(e�L�&��<�z_!��Wo��5�F��c:�������B��qXt�����$��t�3ZW\��Q����[Z;*���Y��.
1�VNC��-�F��9��m�4��s�T�E`�����s�/U��yT�w1 �M;)f�����C�ur��93�(���L�{^>���f��Z%�|>��[M�<T�L������n�����@���u+25��v���w�b;+�H���Qr�:�}�
��������9Q���z����]0���9�<���Do7^��9����u�g8�__l+H��V����s�����{3����,vw
��.�'�D:���H���9�
p� �$%���l����U�����[e����������cW=^6�����	\�m9��m��t�l����nZ��+���$���Y���Fq�4��\n�����/v��V#^���eB���+j1"�R�^���Q��e�]w�+n�Xw���g/a��]fn�z{+���w
�U��K�<������u��rq������NA�L����;/�O���i*�ZO�������G�G^n�6w$�����|uVO4�E��w�n���g����U���c�Y�����D~2��W(/�J������)o��nlt�}�_�V;��+�V�KN�{.�jb+�t�����e�k_]�u8�N�5����w��~���c���]�������Z�m�v
6�^J��]j����0Z�L�>��+4���W��l��(����l�5K�t����-A�v&���Y���-`*ft�4���	{�r�lW�'�[���|�L�^|�������\s.�f����74�B0��Xf�_nI��G���=��qg�����J����]��F�4�S[*�T����w��R�zrojS�|�������?�]��:�1�5��=^���g���C����dK��uo����x����#�6v~y����z��&S�l�q�����hXmr�i��yW���d����y����ieb�+��t|�[����WA��ujw
������������+�#�w���G�W��&������u�������������o��'�$�\�n.����[qJ�����!J��X��'|S8����}i`�D���]=�9{�<;��hf���=��������gd���fG�p������w\���K%>�	�SJ��Ky���*l�WF1�����/��8��f�=ZL�y\kg��4W��3�����IRfn������������Q~�B��0v,������������}Y�"b����Q��[�	�)H���)�$��x{�=>>O�B�Pc1(km>�q�9
�}y*	#s=~��]�p�����l��c������<��pp�v�3_���G�t.�~�T;�9Z���J���^I|�3�������=���LYk�{���"=�o�������I~m���wi������8O*��f��[�yXs(,��j��C;e^��jR��)�w�������� <����QN��L��9�r?��Y��
�vV^�y��%[�o�E��Wf�+<�>���{����������_��	'�S������p�H���ZO��&�-�n���@�\���!������2�T�iB�]���m��B����*���Y��B����B{����k��w��"�fb�B*��j�5!B��T�!@B��-���R�U
cUR�UU
R��*�j�
�
�c�Uc�rTTTTTZ��rd�;�P{���P0TUW!��`Pr]�,����\�Z�P��C+�`��1m`�1�`��1�`��{�����x�J�c�0]��1k�*�d����Z�2��5�a���T�\�
��fW&5"�B+���b*�1���B����y�=��N�9x��c2t��1�c�c��1��9��$�U\�a8UW0R8UW0XI�������Us��Us��U\�D�U\�I8UW0��Oy��BG�H=������}��w��������&�n�����1�b�i���u6h���������WH���5�e����wvp���m�����r�g��)}���6�FlY���X��K�'R����~������}F�<3m�j�"�Y�����t�������1�w;�;���1X�1���c��c�9{	�V��#�UsH�U\�d�p��Gs���p�m��?n#r6�n[��MI���8m�s��U\�I8UW+�����H??>����������y5n��W���s�����m6��Y�\9�|�gJQ!zF�S6������NU�w��p��*� �����K��{kx�a�x�����)��X��]�]�N����Em��X2(��y'�Lt���?g/��c&N�1�1�b��cc�1��1�=EiU�*+J�$�"qZUj"J��PY"V�Z������$��V��EiU�,�ZUj$�"��g�~g�~y�~�8�6N��Y����$��[m"oQ���o�	������Gz���;�
�j�s����5XurY=,�L��$���"�{��$�V:R��}VE���f���M�-���[��s}|��.N��>�x���~��z�1��:d���1��1�m�c�o�����F���Q���2p��|��|j$�H�"���$��V������$��V��ZUj$�H������j
%iU�?_���������??\���ks�9��;����/�7�u��2Q�*���LY���M�wA{����y�v.�����yG��8��hz��R��������H-��
-��IY�s��o�
����0���U����o\�z�1��:d���1��1�m�c�o��|����>5H�*��IZUj��6���D�p����Z��ZUjFN"M�m��j;�H�I��m�*%iU�O���N&$#�DG�����������7���t��[k��'q"������/�]���6�������waU8\+�Y�Mu��
��3�D�B��K�s�W|{�k&�v�_O�wF�����*1w�:�^�
g�k�����1�n�<~�^=c�L�2cLc�c�6�1�c��cPzEiU�����m��j
�
�m����V����V����V����V�Nx�d�4���������LI�H;�����w�\u�lU%��=�������]p���l��+-=��.�SGL[�q"cmS��O%A�j�[b!;r2��/U��Z*
fr�1ee�:��m���+�5�����!<a,��S>�{��x�{|x���{��X�1�'L���1X�1���c����#����M*����$�iU�������m6�P}�r�mAQ+J�AD�*�"���I������m�,EiU�>$��$�~���~k��}�d��<��'��������d`9�/5*9��s	��K]1jS�16�:������R��!V���0h�$uh��_Z��w,p��:����c��������	������<}r���2d��c�+�1�1�c�c��+J�H�D�BV�Z�>���M��mG�F�6�m�m�����������#�#hm��jZUjH�EiU�}I�$�������?W�f�z�����Je���t����fU�c��X�f�������W]Z���hK�t3�F�X.^�����yM��gU��-1u�Q5�mk\]s�8�����|�C����t�����X�1�'L���1X�1���c�����EiU��V�Z�,�V�J�ZUjD�V�Z�,�ZUjD���V�J%iU���V�N��H}������F~��0�wH�v+���vA�Vz���q$l�t�HS�9��{�)w�27bNs�f��c'�
�R�zR]r,��$~}71f�Y}�oEB����3���g����g2��|m��\�z�1��:d���1��1�m�c�o��Od�����Z�(��V�JIZUjD�6r�mH�$��V��q#��I�-���N$�dm��jD��V�K	ZUjI8�U_?������_��*��,K��/������MA��M�&�*�������UU1!-
���#��rsJ�W���[���W>x�v��"27u��1��m����4��jIM���N==4�%li�*FN�]��*����M#�hQ�m�<^������ct�[�����YM��+���v�k�����"G�����
��c�Z���q��v
8�����:����v�I}�j�V�f{,lB%�@S8(q�C����P���y�M�Y����W\,]��Fu�t����|�8	��ko.r�$1���Ou����]���RR��bp$:��37On�j�Evq�����w0��Z�����[�6��f��]�8kr.v�L�k8%l�.������*Q��GR���zTT�2���
�F�2�PQl=��w��Xd����2�/��v���U�F#w�ls"�w�����1���Ru}��_,����+�T��h�9vS��ff�g
1Y���6�t��S7I����6��Mr��87����,
��m\����v��C�vst��������u��}�m.������p��.������'jb2��.��V	�<o���;,^�amwwZ���-��euSkk;��mT�n�j�[��t-��4{�9��J�t�*
y%P���p�����&���IF������������q�fdWh�tXP��3%F����
{R�m������G-�d��*k��e��F�1�����X;�vf7nv�����
�]d���'
(��v��t����������T��H_u�b�����J�[��.E�s1
��
Cl��o���7��3�:���|��q�.����o9@�����t����3\�-�w:]l�v=}������������_NE*��v�U�M;��Q����{u�O�D�-\�j�r2l��3q��s����0�jP��/�1���NO3V_,��\eu��"�ovd���E���� � +,,Jlc��{��(��a���6��m�j��f�`}w��u�����;l��zpt}%��BiE<'&h<������������2�\�7�]�D��Y�MDI�N �"Gdpp�s$�� �$II�A�g��z;�������F�7`�6���"�����%:���������������mt��MJ��C�Kh����������I��SS����//���8�K*:5
��2��5o��#
A4����XY���)���{9�|�f'��:+CD��{+`>8��N�{����Vt�����9�q��=��o��>��ab*��C>v��\3��>��(;6��2=���ox��n���&
aq�����y/%����c�����>��������Y���f����`���5��z����&����%���!&m�&���,��A���'7�)��+{W#���A���q�����L�mq�
�L��F��7��y�<�X;Y�����������z1{Wt�M���Q����[}cH��t����V9�A�Xqc�����n���U+5wP\U�UmX0f\���y��h��k���y��.�/��;�/����p�h<#��}��<��\w�*���������D$U��3�.��a&;3!-�.&����kx`�+�"���*��@�Q~1���z��y�sn3W�������Y7/;�����W�p�L��&���0,�d=��U��
�����G*_lU��e]�y�Y���05���9�L�9;���z����FC:$4�N��u�������NBc������% �����yr�i�Z�[�>th)�C\R��d��+�g�q]������H�joF��$5gfh��y��;K+Z�Fa�#>�.������P����(������[9���H������(��t��������TW�2t��}��Y�����P�YKTIO'b���|�_�V>���v<����*^m�����:�n��M�����X������	�T<zTv����tf���)����U��
��',����?ZQq��{�V;y��s+[�E���%��tn�����9�������'F�t�jR�@��\�p���`&���
�^f�`xM����p�+su��J�����?,��0�����8h���G�n�LE�OF�]�R�rgD�`^���g�q�o�������A�����|�]L���dYxQ��}��2�k9L����X�x]��TR�V����Oq���(/�)�x�Yv��wt�E8��%��YW/.%�(�6�q��[���!-���3�����Xwl�G�������>�~}�J�������<��T�~��tHkW��B�|6)4�lRmj��U� Z�B�b�M/^c-�H�T-!��H����!��	��SR*��"�B*��'�������z��B*�`f*��"���BT)�UHBTT)�B�kU!EP�5U!EPP�2������1
`��c�B�*�.�m�����
�
�({�'y�*�{���*�@��
�
�0���C+�`���Yk��\���(ev�c�-�c�1�b��1��=�s�c;:`^��&c�1�Wd�\�
��1��\��\�Z���,�4�j�+���������U!Er`6W lEP�5Wl�2�
��=������{�{�����c&N�1�1�c�;c�1�c�c�I�I��ZUjD���V���$�I��m��V�Z�,�J��Q7�M�M��mH�D��V�,�J��PXJ��Po��$~��{��f������8�s���w�����������a�S�����q��/�m�'�}�9���/�Y��R'������<����WP��I���Y]�M�OJ���n{I�m�g����x��lv�=�^��c&N�1�1�c�;c�1�c�c��J��PY"������{'F�6�m�D�*���*��+J�Aa+J�AH�*�����H>}��}�O��w�>M��������m��O�Vm�vEwT�&8K]l^�%�Wa��&�����}��u���Ws_�����yr���8{�Y���YWp��|w�k��z��������I�r��t������2d���1�c�n���c�o������PiH�U����8iU�,�ZUj
%iU�)�V���V�8#bm��j!ZUj�H?RG����*j�'�����n�m�������#zB���s���o3��m0����]RK]L�3�<�5]soU��1����:V��'�[z]�+y������t����V�p;��������{|���{���c���Li�c�1����c�o���I%iU�*�V��V�Z��ZUj$�q#qi����V�Z�{H���j
�ZUj"V�Z�>��G���z�~��k�u�I�"��9';�7�+������y����.J��������1D�'�����WFF�[�;9������Q���������c��e+�|�j���u�T�M��u�\�T_^n�dO�>+����#��c���Li�c�1����c�n�1��Ur� ��\��(Ur� �U����U����U����U������m[q�IU���p��$���5���y������p��F�@��
�
�7&
7���m �*��������(����mm��`����a�=D'�����k��u5�)%�^�q�u�^���S�Mk��� ���:�6����)G����g�//|��<z�1��:d���1�c���1�v��A�\����l6���AP��\A`��\AI*�WY$��\AH����l�Ur� �U�����������{���=�r~����.�-�}l.}X]�P��<��3�mXU�c������m�dl��:j�Z�1B�D:��%`����;�������zx�7\43z����p�V�L��A�H#�����v���n�^G�X�1�'L���1�c���1���c�="��q��qB��q���\AQ*�WTJ�U���q���\$��&��n[q��}�
�>q���<�w����+�
L��)tb���o^�z��fS�aZ���x�m����g3r�X�^B��X�(��R\7��{�jF@����Yq�Z��|;��'�n�o2K2so���]��R��9�����?:x���x��c2t��1�c�1�1�c���8���q	Zr� �EW*�W*�!U����U���x�8���\Ad��U��GUr�#��������}I>�����~�W�^�����8������qS���M��v,����nVj��zQ���q�}����`�������0�v��P���bK��#2�!�9���p������rU%�i��o,�*G�N���^G�X�1�'L���1�c���1���c�#�#���U���qD��\A�p�m[q�J�U�J�U��Ur� �U����Ur�"O�H����`���w��{�����W�2���n���e<(6���zFj�v���
��2�~���P<u�E*�PO]fK(���lpT�����(��\�����CjLE�����<���?r����y=c�L�2cLc�1�v�c�;v�� �B��qB��qB��qI%W*�!U����U����\��,�U����?�������h�����p��K?/�����.5������r���:�,�"�nQ�����]��������������]]f8Z`���8L��`�{+�:>�L��e��c\���AT��eI#EZ�U�y���O// L6�]���A�0�������P�3�3w7zy�UE�I{�/$���n��S���&���s+�w�qK���b��4SUv�������(%�J{�UU��>V��*Z�R�we�:������y��7v�^e���,����p�k�'y���}}m��b�	d<�4u;�+���$��:���h	�����.�
P�wU�����E78��9��t>�d��yx<��v�Q
]�7e���������[e��!�:e�KK�9sm���q�uj�}+��J��0�]m��V�������<1���B�sk=,=���ms�{iS&E�������n������w��M7����PF��-���������L���s����`J������	������\&Z6��!�
`)h��mt�p�|^�������2���]������31�0�a�����M����<W��k��)q�nE������v	4�vID��h3���vvf)u��������;��h�'�!�\�����^lI89�P�cFe�������n�n������Vv�W�
&�ls�eneh_#����������w%A9Re��������w��]o6am]p�k�2�WQ&�r�+���+���n!7%���O���u^m���u7��ZY��w� ��
f5Q��e���iL����I
�!y��>�+;�vqO+p�GU�����y�/������`��W��|2�#�"9�N��6�.��YC.���<e@��Q]�{n�N���]�]���B�����Z����������gm���]�I)���S�����8U��-X���o�@
P����^��foV]�&B"����� ���CK�M��W������[w�8&�|�a[���e-��\Ut����=�M�\�t�����j;���R���P�oM���m2��7Yk6-Jy|p��0&N&i+0����Q����� y[{�W]os��7�o��s�H?$��$�C���8�q	'RA��A��|��������������4dD�����n/(�2����iw���gD�zr�F)�f7��f6j����[��5v����? X��p����s����y���zN�+�;2��z�����g\�3HX�,�"���b���Z6'�O"��Q���
�o�������wQ�J�'�V�����}k�yk�#���/�l��i\����j��?$��D�b�f���r��.V�od��u�['s�	]���F����zY*e
�&>]���;��u����C>>L)���/U�
Y�����E�����0n:c��'���n����b�u,�xM����f5|7������h�X��-|��96}c�I��U�X��'�
��qS�B7����7(��
4CD��U�~�s,��_�7��S.���f���s�4V5�E�LM�Ir�����x�;������Q	�92�����������x.b3���o�9�Bx��m��-O��d��d��������.�wo
;x������]or��\w}�>������;�������	(�}��
�`��y����/��&a��.�������eFu�?����
s�Y�n;���XE�������N�	^���p�����RE�a�j��r$'h5�P(��P\���&m���t��M�/G������4���s�[*kPh�wS���%j��MH
^Mn����pxl�����$��[�(����+�u�!t�(�t�U�f��,����O,.�L��$�x{�}����yZB3�>���������[g|$����acr��]_>�I�=��^�����������aT�Q�]S��2�����7�����(�N�����e���5V�[��[������j��������kg�?:��:��\\�Q�����-�j�[�A[i���|��n!S�����U�/F�3�J�}���Z���Et~�B��%ov9��p�RiV�o%�+�:��z�6�' ����Vu+Z���P���j��L�Y���PTX;�ofI9����7���WZ}*��V�fl�a*1�?g�$�Z�\���7���<�50��|oe���r:��]���+�Gk��7/�Q��=n�tgvv�f��r��7�����S���I�$>���.�����7���.��������jb��h���t�4��� \k���7x�rl�Vn��(�
���J��E�(��3e2���a�%�KR���TlX6���ntEa�O�����������{|��{����.����Q2���~~uG����!	�E%�.E-����j��UHBlRi���e���*��"�8)@�T�!�!4U
jER�U!EP�!=�s���{��C0�UB�R�U!�sHB*�5"�B*�*�1�[Ma��!����!��R��*�j�
�
�c�}.c�rTTTTTZ��rd�;�P{���P(TT\�W!�@�`v����K-rk�@�%���b��1�c�1�V��1����{�gg`gb����`6l����`�mh.5
Z���
��E�B�B�SK���0-��J�MB�R�W&erjB*�1��d���^y��<�1�c&N�1�1�c�;c�1�c�x�{$Ur� �\��,�J�U���U���U���q$��\AR*�W�hm�-����D�?~�����������o���a��Ii��SL����'���U|���

*�&����G���Zq:V�R�o0�C]+� ��3)�������f���37����/��"C�}$��]:x���x��c2t��1�c�1�1�c���8���$�j��Nc��
+�q2XN����U����Ur� �\��,EW*�U����Ur�"K��'���?RA���?k����/��N�������9�wV1�%��P��[��U|���];Y�d��Ju�Kn|.E���u����3*�;R�d��Kq�������W
�|w�\��c�K��V�)���G���w����{�y�c�L�2cLc�1�v�c�;v����DUr� ��\��*%W*�U����J�U�K�+�q"��qH��\A�im[q��.�A���_����]��u��~�o��������7(7���C�h�N��>�7���t:;���3i�.�������@�;&��������� �Y�)ID�s&EL�5��@Vkn��	��J��|��q����D~���<}dz��c2t��1�c�1��1�v��A�EW*�
�U�����*�I9�9r�\AbIU����W*�
IU�����\��,EW*�~�#��o�~s���~���_�55�^\8��]8ks
�C�j���O]�u�����U�3|�X��b��-����e��7PL��b����-n:7sa�*.7wW�����M�i����ce�m�8�����������G�X�1�'L���1�c���1���c�=�*�WQ*�WY
�U�B��q�IU��D��%I%r�\AH��\Ad��U���"M��m�m���H}���������8u��~w�����mo����+-�h�t��e����6c��:�3��ok�������a��d�Y������FT�r����u������y.�M:��cI����n�yc�v�[�qs$�k���=����Y�c�L�2cLc�1�v�c�;v�� �I%W*�
�U����Ur� �Ur� ��m�m�"��q���\AQ*�WTJ�U�bI$�$�M����Z��9��~w�]��7[R;�!���5g)�rvX9Cr����3�B������2�X��1����u0�	�Jj����#r�3K�P����2(�i�v�������>*�]�L����������'{u�����O������������c2t��1�c�1�1�c����$����$�UUI%H���K!UU$�"��I(UUI%D�URIbIUU$�"��I5�D� ������kv����P�>s�������O�d��i�����v>N�d�������K
��������R��l���������3v^�N�����o��+�Zh�p�U;��p�iw}{���~��Q#�n�9�C����;c�����2d��c�1�c�8c�1��oI��UT�Y"��I,�UU���I*������I*^U$�UUI'RM���nH�$�*�����}�3=�������{��	���������D�UO6av�`�F�tRB��3u	���e��^�iLMsT��I�������������D^��E��;I��ma��3�����:����|�j��;��q$�W�c���#��c���Li�c�1����c�n��I'�RI��m$��D�m��JI*�������I,�J��$�$��y���M�����J��$�UUI'�d���u�~~�)�
N�V�F
�r�t\	<{E��2�Ydq��nU��h}�a�w5���z���=MB��aNp�v��wM����Z�Q�'�%��(�B�IIV�v�������^�{�������}�������1��:d���1�c���1�v����{J��$�$���K	*������$�URIRIUU$�	UU$��UUI%
��E�'�w�:���<�{��|0@b�;�ks��+�������^�u�H�mq���.�����oW%I����
�i��U�t�����i�J89�f�O#�apsF��W2j<${��	sn���
\6���h3�M�;�������1�b����=������7p�b�]�w���[��xt�kf�����xe:�����k�%Kp��WV�5�#e�j��:�Y�y��A�Mf��Y���kf�Bq�����:\%Jb�{v;G����z���Yt�i,�\-������g��$�AW1;QP���������&�gf`����S�rE��v�#*��j{'qTD�n�b����[�I�B#mVi3v�e]�V*etl�����
�\�c���� ����E��Uz���D�&�����OU�����
�5�1�YN{nqL��r���P��7.�����{ko3&�\�w��^��b�������yj�&�}C�W�}�F�	��� ��S�����!�1��Wbr7�K����VT�����LX/M���f
t$t��r��h&>)nb���+:�������J�3�r��CT�w�7
�U[�����9i���kk
fg3�4�,����c�I#����nH���,x��NS��U�b��5��o$+N:�����gan.����YOY���P2vn{D����P�
�{k�;���)�B(VR`5�f$���6jY��2�2�kM�lIj�����S�����pM�(��d��gSq
�������p/��T�m[��i\1�\�-���y��u� �s��I
Zs��t�G!.����+!4�]=��m��L�Y�
P�������b��A^��u��%�Rn�c���4�>�4��2�"q��uVh�u��U8�P��.�IZ�f)�	�w������j>�����gn�)a��:��&v]�`�:��N�[�$�b8o2�o>Kql��
"����J�+��2m�*��.�L��>�o;R��G1����4f8)t����`����"��J\�l+�W�;�����PPvk����[�RS��Q�y�[o�W�f���m�����e{���$�� � �>^w��}�w��������jv���:�$5z��x�����o��\+'$�[Q�Y�]���2��
^����������o�YX�a�A�cw�$f�o:n�
U�\]�SXx��r�a���[nq�N�����9�_PQ��7
����}�'R��g�J<���Z"V��vA��Va���a��]��5o���7������fvhAf������
��A����5*�w:���tW�[eY>�&c�\��\	��
����9.�j���K������E`��~�� �DN�z/�Wo��o�qe<Qx����.��[�
�8i�����k�uk��[��8�gE��L����M�{�)$T�8��V��[��)S�3(����?E����
���_����K�N�Kz���9
9��v����hX�B������N2��������}%E������������&���R��T���n'���z�#��E�������i�x�Z�dV���N��~��#��gNw��|n�wfv��b�t�D����3Xk�s����cu*z��rm�A�@�l�ug�Q��x�Qt�C�� F�����bt��m���^��SP�co��n����.�6V�K�G�*�l�����nZ\]���Qtg:���e[�X����(�,�S�r;��cre
R����r��9m�I��y.����Q��/������D��Zw�����X�^���Wt�.����[��2�;6�<�S��X��6�������wE@`�^����o��d��C8��^7�or������V��S����^��!�����X��{��x�kC�e����W����yp��
��3�.� ;@Q�9�B��wwHG�8�D}�|o{���>���@sW)���uu_L��9��z����P�Y�xnz�={�z?~a�8z�C�_�h��p�;z4�e���T���-�����^���0�Nt�L`[�X;/,W���<NF��5�;{`
��������XY�`�Fp]�u5���>]�6�����^��,p.#��=�/F�����*��`7����������#��
���x9���E���v����Z��a�a���6�{��J#N�Vt�{���l���?��������{�l�:�T�

z��*kul/)Q���2=Q6�$�0���!kJZ]#&-����Yl��*���`��Gx���q�7I��j��d�J�6�*Z�K�����6=����w���E��N]US���e�2���-�[j��Bk�Ie��Kv�� Z�i�R�[�iz�m����!��
EP6�U!EsHB*��"����j�ZBz�]�z�/�<(ZB*��j�B*��j��!B��T�!@B��,���R�U
cUR�UU(���*�*�*�1�C���c�`PPPm�UV�@;����@=�[�@�UPPr\�W!��`v���GK-rk�@�%���Wl�1�c�1�Wl�1����{�gg`gb�B��`�+�P�L�s�mbP�\��Z�.�,1��j�+��������-U!Er\����Lj��(e�-��{�y�=�����;�{��y�3&1��1�c�c�<c���!8UU�*��UUQ*��I+J�%UU�%UU
��UU��R$?RC�W�����I]r�#Y���7�)Yx�m���FN1�3y9�D���u����p�y?i�u��C[	K�D���J�m�ee���)����Gi0���w�w|����������m�^��X�1�&Lc1�c�1��1�x�1��*��$���������m������UUd*���UVH����@}�3�w���-�Ex�+��b���[m)h��WV��4��3S�9v�Lu��8
dY5B2v(7v5�z�r��e�
���M�4?�u�>������}�!3��]�||c������2d��c�1�c�1��1��=�*���UTJ���UUQ*��EUU����%UU�J����~����~����7��{��>O����2�m$��W�L�J�o��5����.�J�y����I����d��j`�q4������L�z/B9��6���SO6�hX�����vSI+��������t�������c&L��8c�1�c1�c��c�J��IUUd���!UUd���%UU����UU|�&�m�r�� �$G������9�������N��9�n0]���t��b��n�\�un�a[n��!��y�R��+��q�5���I�B�������	��V\{�x��m79t�%E�k���U�5.��V��<��"#���v�������1�d���c�1�c�1�c1�{"����UU���UUdJ���UUQ��VUVU^�UW�}�����_��m�9'IR����r�p��@��4��Tyx��8���T��I�S��1�w��Y��]�V�6���������8!n�+�P��F�*�%���)��h�-^j��=]��5��u$�V�1���#��c��&1��1�c�c�<c�U_w$�m��*��J���UUY��X���"UUT���>�H��8���\]�P�������H
U����6�"�~��!B��9WP���R)�'E�x��$�v���4	����%�����S`X������g;�����@���}k��|�]�8�|D�V�:|}~�G�X�1�&Lc1�c�1��1�x�1�%UU�J���UUds8�ZURJ��"UUT*��UV$���"��'��x���^�[��~�#���U-��kl�V7&���&�����=-4�6��L�4���f���pT�[��6ow4hU�,����r��q�	rV�\��e���ye5����V��"?=^=�<��������c&L��8c�1�c1�c��c�UUj��*�IUUQ*��EUU����UUX����UU��>�U�~I]�������Jp+����������A��{��e���(c6d����E��9-��.�ia�tPr�Y��K�Yu/�B�}J����<"����A����w�7�[�'�������x��c2d�1��1�c��c��c�UUY���UUK	UUQ*���UUbJ���UUD���D#�$�r{����o��5"��Y��V�u�,f^�����@��&�J��S�s�s(�����NT6���Y[D��jY�Kw3)Qxi���q��[8��4ud�Sv�8�,uL^�[n��Y��������=�{����c&L��8c�1�c1�c��c����UUB���UUR*��%UV�7$�r�o�h�m���������,�n��\<��v���������3q$HW��[K����*IN4��SY����y�	8U@0��tik�sn���u�u'�kM��n��]�e�4�������$�J-
f�T����&�����'U����ka�u�Yd<@R������4�P�r;9Hd������P.��S�q�|��Ni/4���/(&8�%*���0�MYN��
J��]�*^t�v'��,�U0$�T���n���i;.�F��u��Q�
G;�)�o�{�o`�e�\��mf<��k{��v\�����S��y�d�WNn�p���HOvu��*���++���WYX�#���d���k�]����Yh��CF��4��N**��:�Oj�L�����y�5�;��b���8<���B��5%(."�f�����u�G[F��=�7rL�CWw��En�5�\�0�oh$|���U�,���7���D�>��(X��eYZ�k�Yv�a%��Z�d,:b�����vKv��JQD0P4��ea�l@���-�e��w^�t;����5KZk9n�Rz��O`W�vQ<�����\�
=�'��UM�qp��)�:#�����+dde�����5G={1��r�[�-]�e���[��r��o>/���:$�����g���x��uc�-����H�\Ne���"���"��mo[(�S��[v�#D�e���R�q1[5����""�w�,���Y�������[��/���7����l
�]������#���qb
���>!K�1�6���t�pI(�|��_fgP %|�-��G�m��3��R��F-����b��������O8�#�d�S7�dI��gN�f).Y���5@9��W%�]�~s$y��������:�n��NR���m�����qp��X�����d5����tP�yc��f�Ok�nY�e�.�.;���N�>�9n%<�`�����U]�>I��<�t�;&�����#���p�u7�-�F^��0������i���7K�������m��TNv�[���}����������3&n�yo2Ad�RA�����Z�5R�f��Um�URA��bA��5������������x��k9�F���
����~+=d��5��������C�h�W-O-W��8+.�r{YW`*�J ;����|�#�{���%1��i�E�n�-u3��A��pPK&>��W	�b�������@^�`��M��C�kvo�
��Q^3lmO>��\�Q��>d8}����m��^N&�Zx�&�V��8r��S��O��t�'[xo��5�+2:|'�n������������!�w���QF���*sh�.�e�.���yyb{��FI=�n��*�u_;��}�cW�:ft'*��-;hw@�;+��<GF��Y�uu�2��Jo�O.����T�~A�T��|����+.+Q
,�m.�Z�"p �)>=�i�3�{c��p��;f��Q\��k���T��rLL:������W�VM^��LK�N����������U�7�����7^[���?�>�/tkw
��[���r��ecU��A��]Zn��gsmb�>��hU|2��m������=D�6]z���4����}M��e ����������G�OV�`n����S[S���KM�kp���ij[�;8�i����9�q#����8�9h^,���fVO�8�L�m��j���{C��1����nK!��w-�d{�������-�@l���kk���+��f��3���z[�UnB_�S������;����;�=�5!��Z����k[�s������_��h�>{�t������yy���5����{n�hm��H�����Ud�G�R���7�s�%q��%+�%]��:����[\^��M��P���fr��{���]�$�'}������i��� 7��,Tr���m�5���q��*{��wi��.m-T���6��C�f�R�l8��f���>*�{h��������>��j�9p�)������n����-]��mz�������Y����p���7F�s;i��-B�U������ �om��
���=r�����y%���f�xG��y��v�;��c}�kd��|�js{O�q���%u�z3����+)-��[�5"i��]���[�|���9��'�\q�������"�x�q!t�����T��������R9�]2�����������9�W��]���#��A����	��*���{IVCPG4�If��]��i����MlnU���;���7W��H�!R�!VA#������a�EF��*������N���t�W����_O�����iR#��#��`CO#�l���B��B��6�*�)��$5��!��	���e��b*��"�8)B��T�!�!���� f*�����'��{�������"�Z���"����"�SR*��"����e-�*��"�S���"��aEPtTTT�b���c�C*�*�*�+m`��
�w��x��g��*�@��
�
�0��C+��
��e���Z�0�:�-�Jmc���c�0�c���c=�s���������c�1�Z�P�L�s�mbP�\��WD.��1��j�+��l��%*�5UH�\�W&�"�P6Wl�2���<s�x��������x��c2d�1��1�c��c��c�UUY
��UTJ��UUu�M��j�UUQ*����m��~�D#�$'��'~g�s8�����E��K��N��BDmF�1�������2�^�Y����f[���j��Wa�G#���5a�����7��6���z��
�5��uq*�URk7�n���z����?���>�O#��c��&1��1�c�c�<c�B���UUXJ��
��9�mr��I�M��k"UUT����UU��!��g�]q�d������U��bB�e�:L$��;����
�����OJ�7Z��7Ao5EqTe57��-;mP�H�)�YYgc�5�d n$�0G��HT`�>q������6������=z�1��2c��c�1�p�1�c�1�R*���UU�mm���UUQ*��IUUdJ���UUQ*����H<���������x��u���Jgh��"J���TsMb���?�'SqLEt
M���b!�^��7JG3Iz$�J�A#F��TVjX�:�3Gk������\�w�	��{L[�H�D{����������}����1��2c��c�1�p�1�c�1�d����UUQ*��%UUH�����m������J��*���H��I��Y���_�%��SV�if���,�yH��Q�n�����E���rhd��y�Fk@Vmdj�����{M��60�����Z���*�fi2���_]k���{�MN��$�x��������1�d���c�1�c�1�c1�z�UU$����U^����j�*��I*��EUU"���UVO�D?RA���|�
'�����+?�v��W�LT���O*��I�s/j�Z2�2����Qa:.�7Xsqi 'F�K�L�b���a�2kY&�[���1{j����g���1���x��c2d�1��1�c��c��c��UVD���UUR*��EUU�����U]�����mI*����A��x���������~o�������;������%f
:�s�����������2dU�"3)��#3U��8��q�\d&���2���jg�K6cRfIhU���]:v����G�X�1�&Lc1�c�1��1�x�1�EUUH���UUY"���J��"J��"J��$����J����R!�H,���N��_9�-8����?�c�w�5��j����x��]�W.�6�e�SL-`���4fTK�p��Nj�K���N-F�����(��B�[�n]K���[�(�D~�}���_����1�d���c�1�c�1�c1�{$����UUd�UUdM�m��Y$����J���������UU�~�H~��|�������?|��������#i��R���Vk�*a,��C�)1L@^�0���h��;R�)a���
lf� �=�4��n�;�2�e�e�YJ��l����HN���K�I��������x��c2d�1��1�c��c��c�����J���UU$�UUUUX�UUQ%UUUUX*�����$2y=����/:�2C��*����������-���/'PE�0<����f�-l����rXR�H\N�Q��nQ�vV�J�m��{6�fU��J���S���e���`U��z�lv�������2d��c�1�c�1��1��=�����$�UV"���UUdJ��EUUD�UVBU�{=��?��u���8����v�19 ��nb����gq���z:]��9�bF����Fs'�q7�_4�����v�����T�������wF��b-u�u"J�k4�ZV�Xr�3a�8�=�A	`���U���m�u����7���h����juE��nL�r�m	TfQJ�I�FY�(�����!7w��XO^%��T�|;�\c�e��XH���$m��db��x�f_}������Rj��&�d��t�s��uR��,c���C�I;�Gy9��wc��St��+���J��#H�*��X�*��+z�	��fb���hT����`�)+����oi�
�M0����1��}F���s�#��f�wE�}Ux�U��V�K�zTk�*��!SXK�[1��{\9/����(:2n�b4�tf@��(e3�)F����k����]�ue��/w)_D�r�*���2�W>��Uk��4[�����*
lM�s�+������p�N�9��n���p�(������B��,��r�>����k;6��f���,����[Z\u<��:e��#rrTw�i;=�m��@�.�� fC��Y=�c�:1�tff�fR��(]�����]�K�0`�o�����p�VfC�F����%�taGOR��qA�V���m���#���m��m�t��S8���sL�{kn���������]�)�N8���J���hM�:��V76c�t
���O1�y�Ky!�4.���v�7#ikuh�<��]�1.��zl,�x��&uu��w���Y��`�T��#���}��tN�W�C���p�����a]y������#Wdk�mwd�Q��5VJ�k���&H�������Sr����S������C#:��"���R^���[�
����iF�wtwu����I}x�	�������eV���o+����i��1�z�i��f���1�.TGv����
Y,gX�#�n���
��`������EI\c+�v����d�����X����9��7H�����v�!@�}*���\��j1���y�]����Qr�Q����c�[*�����E���y�E���y$�����'�!��*[5Y�*�Z����U�����"=�}/���)�=j���Q��h�7?Y������UKVvV.�cnF��f��TZu��*�z�g`Y������ ����nO�?���D������E�8�"����/2����]��;��d�?]�D��,vM�2Q
���\���xd\������GS�-LI�w�)dV�u��y�Au�C�/��8D Vr#9P��������T�-�o�����K8��f�f����	:�&2������T���_P��4�x��Q���U���n;�2:a:Z�V��!ZY������]�����^��;��Y6��V�= ��;Fy�*j������D�7�F���9�4dR��\������A���Gr��_n�FLU�������t�����f�/���r���W=���/=-���G9�������y���5���-�391J�4S��[8����f����,��l�,�j�l0��y�;�U8M1��LGm�������������Qm�������[SNF&�R��f��a
����\u�j
��k��$�c���Kk��,���N��NI���2=��]
��q��n�����G����e�C6Tauym_���~�:�u�zZ�Pw4T�o���=��R�b��c\�4)Oo>8���Wt��J�"g���o���}kN<��5�p�^�k��A�r�s��K�	�;�&#ss
���s;mk�)\�& ��X2i��-+��\�#H�RnZZXN��Lh���C0}�d:N��
�[]M�B���C)�,J3�������`��;�i�%K��3����z�W���WJCL7��*�:�r(��?|��������IJO���W%��o�7�V�T�
w���k�	{�a�H���w���$�/�Z�W���^��
D���
��=u����=����j��$�zk}���fR�dV����I��hQ��P�p&:����1����3�e�0��]��q���I���:�p���\����8B�}T�\�)�:��.�Z�M�HL�7���M���z�`;DNb[�#Yo/����6����t�T`;��I/=�e����f`�3�>F��Hk�b=B��"�_+����������_������8bv1]��$U��Q�y�iF��5wj��7�*6CFsc�BURD�
&�\��o.Z�i$R���.��*�r�V�`x����^���(��3�&B�������g�������"�P�^�q�H�{��T�V����-�m�U SUtB�UHBkRK���mP6�U!EvpR*��j�B*��"�ZB*��"����'���s�^��P�!C03HBT�UHBT)�HBTU
cP���U!EP�5U!EPP�@�PPP1�|��c�PPPPv�UZ���y�w���{��
�P2����C+��
�0�fYk�������c�[X�+�c�1�c�-n1�`��{�������P�b��-�\������q�-�Jk�������6�-S`vq���d�W&�j��+��
���U
����W&�o���{�y�=��������c&L�c1�c�;c��<c5�I+J�UV�B���UUb*���J��UU
��!UU��$�${�����8���Kbq)���������!���RL����UCB�e�6\	!�[���`N��C.bF���yc��Z�"�z3u���x��R�(��4���`R�W�L�����9��b�V���D��U������X�c2d���c�1����1���$�����U�*�����%UU�*��,IZUY����&�m����D>��q�]��.����a���/6?m�������S����I��&��:S���en���$!nk�(k��ba�t)K������#Q]b��Z� �e��8�����y�2�m�%B�]���N���8�:�O�o��|~>�x��V1�&M���1�c��i�c1���UUT�����U_v�m��XJ��J%iUd�UUP�U[���m���$I'�I�{��k������i��f����j7���MM�����o%�w���Q/2V
��rKp��8��yk��������`���c/cy�vjz��I�&y�=Ku���+jj1TVU�q��~��yy{������b���2m�p�1�c��cLc��t�B���UU����U]nCm���UVB���UUR*�����{�����Dn��YvU�UF(Qj������m���%�@3KZM�����3���[�Y��5<�{b���F�$*5V��n�Y���	U��20��<����nXT�}`M
�#i�
�����v��{~u�����n���N�:~>�z��V1�&M���1�c��i�c1���UUT*��$���1����md�UU��m�������$���UU�H��H<��������� �� n�2m�������<��64.�+�����$��X����6):B���D�Gfk�z�MT�6��M��i)������.�n�������Z����aQ�@U�>����o���_�����2d��1��1�c�1�1�c�1��*���rF�m�����UUXJ��UT����J��U_P��H<�������y���������FB��m���B�{�6�(��]��m_�����C�/[��?��%�j�^(a�i��Y{6��U�4��^�*}����)���m�{>�Mib���9��������U���>��z��V1�&M���1�c��i�c1���$���$���UUT*��UVH�UVD�UVD�UV$�U_Pd�����\o��k�4>�.��j����W����ur�9�{Wc���P��T2��{c����])�f5�d7UQ�h�Moe�vL�M��[/kj4���	�J��UP%Vn��e���1�n*\�G���c��������X�c2d���c�1����1���EUU����im��"�������mX������m��UUd*��$���^|�-���������{���v�������a�	����x�7�������lr��e�qLL�e����^T4�Y�w�h7S/'h������F;��3B�,����{	G7�dB�����&���]w8��P����������1X�L�6�8c�1�v�1�1�x�:{UU"UUp����T�UUYUUnnH�m��7�m��*��M���m�"�����W���:9�]���j�JX��
�R��[�%;����Cd�VJJe*�BX�4���������;b����#b���de����JU8�#
234,�.rTU��{.����Y-����z��������X�c2d���c�1����1��g�m������J��$��������J���UUD�}��n�{����}?���'��M��S�,�U����of�X�r>mO]�ig,�g%~���B��U��;����:��M�p����	6�Z�)�=��=��j�1>���i�{k0����r�k%v�hr�N�SZ������7xH��;���,�B�8.XY�V9R�;U��H/nb�N�
������;'���Il"���eGs$��\����e�������F�oT��i��������� �]��]��!)+�������b�T�������x�^1L�
o/2���ms�������&ogBxq#t\�v�����Fu2N��M�t����	�{���:�.�$������c���c�,w�8U�|pf�[VA't���)�[�d�������'���rv����),�Ce����b�����c���j�����5����j�j�����2T�|u��eH8�{��������u��V��D[��uY�n.��G��u�z���j^�b�;�`��������)�������5��`W��i:�I���]�u�t������y"��[�.�������O�R��Y��2�r��7�����*�vgR����1��K��Y�f�'�k�Z�\�����v�-����Jq����QA����\�gtd���Yy���:y+���7�z��vFZ��O>�N��Z�����M7��2�s�cQY�s{p�
*z'�9p��8K/�A}~�O"�_]��{����%V�*����W�f�M7vR�M����4t,���A������+���v��6��:��2`W�k�x�C��/*i�F��f��9(����8�a5� }�Os/.���������;�{����
���F^f�\�>,�W*eOwCY�.R��t0\�j3r
���/�&��9�P��y���O8�Y�'5���}J�;��TL�6�sr�{B�����Z���H����8��`*V^R[�q�Z�\���p����=����<�u�������KM��p��
���NN����W.t�9��%�X�	��r�T�j�����v�S�NKg���[��e��KYN����!�g��5�����i�}�����UAd��$M���'���q��C�q��y$I�M��]����=���C������\�	��+;���m5�,#���
�������U�K�M��l`��u�%��[~��,�5a�>.x=�D���2�U��W�{�����+(g�x���4��x������,^��"�V����7AG�,���a��������*���N�u��X'fBM�w.���.�\oC������}n
��%�c
\x����X��o2�tbG���������g�W_n���R���'���^�uK����T�������a�g���Ud���8��g3���]������o�=�`����F���vJJj��qU2�n���+:����cs��w=o��kU�H����A��{��w�i���;M�N������I5,1���j,r���,Y]Mp�6A��"�0�	[��+N����#!T��b��Iu��|�1m_\��l��$�Q=c7�I���{|v+��>_��������������j�d�>'����j����>Rx�[t�z��oj��>8J�=���|�l�3����8v�8��
�}���jYt�����N����fiK)&����@<�]r��k;���.T��v�Af���|y9���5r���_kv��*0���^c�v���z��
p�
�aj���R���.��� u�A(��@*��R>/��S2r�}h�]�vM���6���rw,����REo�ij]���X8x&���k�V�������R����4�[z���+x���72vYz�{f.w�
�a�#��,�z ��H��blu�_zw��U�������m:����AJ�9��si)�mU��+�{@6f%t��I��o@�\�n@�%�W9�EM��_N(V(�����wY�<���9�8�QS���n�Q�X>D����S��oL��v�W0a�[$�6�U�Kv����b����FfV����Uyo��%�T
�B�G�:Q	E����D�R����W�8�����3C=@?fh��[\��/j�i�M�����+Jc{�����c��2�f�9����^�z�-.�Y����8�.2�cM���:���h�����i0�����������A����������m����^��IR�6j�T]�Faz����
��-�Uw6P����`S���[wsX9xs1Bq]CtE���2�FUE2f���f�e@�_���T�JD������}�?����iPU��a�����K����3l���Bi��!n�Z��*�)��!v��!��	���e��Z���"�&!B��T�!HBT-!HBT�UB��z�]����-!B��T�!H@�T�!B��T�!@�*�S��r���1����
��@�PPP1�|��c�`v�UUWl�P�l�����U���-UUWl�rT\�W!��0�],��`�uc�2��1]��1�`�1m`�{����1������
�1�b����\�-Z�2���������]�
ck��6Wg�mfJUrj���"�6W&�"�P6Wm���x��g:��x���������<c�d��lc�1�c�lcc��c��UU"���UUY
��$����UUY$�UU$�UVUUu�Ad�[�g\�����[W���v�Op��f��f��gH�+(;km��-9�&2�K��%R�n�s4��,J7���Q���/]��{�I[�M��y3v�7u�(p��HY��Z!T]7����w����?X���c&L�c1�c�;c��<c=��UUUURIUUds�EiUb%UU��UVBUUy��m��R*�����$�{�O;����g��������0F+�i����-V�5��t��F��^Y��J�#�u�����PLVQ�7�JD�2��r���6�'h��-%3�+j�����]����5��s9�|��q���_t��������2d���c�1���4�1��ObIUUH����UU
��!UU�H�*��m��nmm��T�UUw�$d��]u�O�����`�/������5�{��#�v(ZZQ�c��SE�R���f�R�f�9���U��:��b"3m�����,2���L��
�&��%����[a����V�gE}Rz������=c�d�����1�c��i�c1���J��REiUbI*��J��*������*��I��m��nn
p�m�{�d����|�k��F\t,A,�a��0\�m��vl�+VMt(
�����r���@����w��M����'r����b'�Q�u����SB�Z�wXeS8�h3W�a'��j��|�������r�?�>>1������2d���c�1���4�1��O��
��k!*������J��I*���UU$�UVH����������"#����o�Q?��Tw�P���7u��Nc)�U*W�L�/!b�^D:i���HXI��`Ke�a�|Y��������:13��9lV����jF��/�#0��sP���kOS*����G�����;}}c��b���1�1��1�c�1�1�c�1��a&�m��%UUUUqP��T����UU��m�����m��"UUm�H-��O�y�.����Z�o�����Z�xX�Qp��E,������A�QdY`�2���)C���������6���!Q1mN�Z�WR� ����:�z�����N���I�o��;~>���1X�L����c�1����1���J���$�m��UUj��*�
��*���J��Y"V�T�UU�*����~�~�J|�������hT�������j��s����m
��e���Z�N�
d�qJZwf�������f��B����km��!��J��g������*������^���2d���c�1���4�1��N=
�UAUUQ$���*��B���UUB���UUQUV'��}�����y�����������h��G9p9��m�78�b���M��e\$�UF��Uk��ZU�I8*�T� I�R���;;PVN�����IIf/*T-���{������{��^�z�+��c1�c�;c��<c=�*���H��V$�UVD�eUD�eUD�eV��5�6���eU"���>��?>~N'Z��~d�]|���m�m2L��N](�y
E�4�H�h2�+E,�z�akUi�����"���iz(Gx2�7���i������6���+.����kjkZv� ������//~��=c�d�����1�c��i�c2c��U�VD�*��VUY����eUI*��
�������eU�q5}����������i�1��maw�����G7�Ek�B��J��BUV������-����t�����{[��T�-��w�u�g�i��!�%o=R�B�R�@P�WM���
f�[�kzWj���L�w����LH���T�v0�]m��\v�i�u��pI��N�u�u�L�+Q�����{GK�ZQ���]���/Z����p�5W6�4A8}lm	� Uu�;*k
�2�b9m���aU���po^�%���qi\Kp��[J�`AT�V��2�#]C-oa�r�IP���N���FNR���>��O�h���Gr����'��Rv���sh����h�����%���g �E�������<�3��(��i�������O0��6�����&dTF0e]L&�UB�yWc�43i��E����&�����LM����i[/���q/����q�Xn&�����5�}oz��<�_r�=����}�q�n�q�r�0pK�_Z�<�;{��h
h�|l��[�E��xoi��(���k�M`������e96�����L�b
r��{���9�et���s�t�\���om�]v������Q��/Vv��P�������w��.B��\��G�����W�����|�v�
�X�����R�^p�:�t�Gs|k#(���^��Ewe��;i���.e���@6d����N���d����[3%
��
Y�2��J=`��M����3+�"��|f,3^,��KS6W�EY��x
����_�rJ�"��;�>�������i�<�Q�&����n�BL�q����W]cdC'g���Y76wt7VD��}���db����\Mr��!�<��I���jb���-�Z���_pt��ur���I�Y��.�D���u
�����v4��x��*�������7O_re�,
:^v����q��\��%gJ��W>������V� {���f��+X��gT�J����uu�=Z�.<�����ij9����
�����H�6�8��y`�����X]L�����.G��+�<�N�P3"�.{R�I�wT�Un+V��nq��&h4��4�W��VZR�����rA��'rA�G�8*�Z����ime����m��W�}���yJ&�����
R����0�~�`n��@�7sz(�d�G]����;&[�<D�V�;��6^��v���uo-����G�������r����j�.�t��e��8�����K��W
]��i�����%�����%�Ig�9��MP�:)O'��q��+m������r7��������$���Qn�$�wt9��
tb�t.Kn8��d}v�o�Z���#��/�*_�`42K������.� ����xH��fm=�>�v�t#���}������0jb��.�V[���v��n$@��4�R��+2�W}�R52>
x�YOC-Gq�Wu�J����Nt<���dA�7��������������
:�rT���-������~�P�z�!	^5�N���W�N��L� ��=r}����v�MEu����w�=��u�7Y
\����}W[�+z;����
r���Vzw>1���<��J��v�:6��[�#��TMT*�>�|U��-��EL��%����:n��v[�-�S*M�6��/#�<��r}��Ug6�j��$����|��E���\����Wc�.$��{c��A�\8���h�o��FJ�4��w,�8;-��w5���gr*���f��7�6T�'FS�/�r��=B�T'L�.�l�r�����P��W�h�J��,Wk���&���%�{]}��C1+Q�i�Ud]��7�L��^�1��h�y=��9���.����K��nhi���Tls����u-��%c�N���:,����fX�Av�������Qj�
b��;���������C����[��We��]�9���
�`C}W\p���&+��t87��h���[�.��^�����o8��V��m�� ���w ���}���1��f�����*7D���U��������jx���Z�)���[�b�	��z�={��g���}�h�Pr]!�n�9�������yi�LV��������Qm����������`'��\<�V�v��oJ����+�y�]E�;�!R�c6��V�G��e�����u�}D����>������{�mq����c�r�a���mV�7���+�B9WS�����^�%�3V��C	���
�	f�Sn���h�R.*H���xy
����"��iw����o5�ug��)��q��G������G��T?�8E9� �����=D�}g�K5lC2����R�tU!E�HM/^c-�B��T�!�1����!�B��i�B�� \U���=�q{��C0�UB�R�U!�R�U
jER�U`��MHB�q�� Z����hZ��QT]UUUc�����[@�`v�UUWl�Pj��;��T��x�TT]��`Pr\�Wl�-tt��!����Z`�k�v�c�1�c��`�{����1���'�����0�[@��k��j�[V�2�81��!LmtZ��
��1��J�MB�R�Z�PrjB*�ev�b��P��x�����<x���x��c�1�1�V1�1�c�Lt�I%YU�d�nm����6���*�%YUQ*��$�eWJ��RJ��T�����������{��*�he+��2XM�Jj�u&B'Epg����*X�[�7��S/�r����8��s�����4&@e�Z���(�����T�
�5����`�2;��j�����z7��������^�x�2d���1�m�c�cLc��=�VUXU�V%YUdU�_&�M�6��U�TU�UeU�VUu8��D{�����������e�W������d;��R���j�����TL��B3��F����'`z�	fM[�y&�$�a�}O�h�k.�JB*���-9+*3*���6Q�8�-X��s�p�������+������^�x�2d���1�m�c�cLc��=�VUT���sm�o����V��M�6��U�V$�*�*��"���VU}d��o�������/��Z�[����"r��7�`�4X��B�i�XZ����A{�,���"�(��L*��=��)B�ls��("�����F�l�D��.Q9;V�����mEQ{u���Y�M��^�������~������=��x��&6�1�clc�cc�����U�T�*��eU�*��EYUd����U�VI*�������~�G�H=�>r�����$�yy(b��f"��2���^h��V��ya`����U�P�:�<Z2��Kxn,a���'XF[��-m�n��{B��Yb�p����6���(�u��=�7S0����k"=�^^�~�_��^�x�L�1�1�cc�c��<d�OJ���eW����m��m���VURU�V���EYUa*�����$>����EX���~�c����K�$b�_�v�U�l.���R��TTu��B��<��������S��!V�F�:�YJ�n�X�&65��������)A�*b�c*��V�XX��dJI��ZD��|z������+��&Lm�c���1X�4�1�1��VUYeWsp�sm��*�*������VUT�*�U�_������UW�}��������~�LOn+cC��L���zqN7]����l8x<����)g`�j�t�T�d�B�0���������E�tR�6��N������E7�R�"����[Uv�����=k���'m�6������^<W�&L���1���b��i�c2c���*�����mRJ������6��J���U�VD�*��U�Y66��o'Q �$������n*��k���2�%q,!"�B%\���zKo
�4p��E=����c���������.�^�f�`��W�k2.��[����h����L��d.�Nj��s��g������������o�]>��x���x�d����c��+���1�&:z*�������*�J����*�����*��$�*��*���$�����4���[v���#A�bF�P��C��5�����y��L�Oj�+���+.�����r���zL������ka�5�\�OELb�5�+���V�?=��~O�\qz�����y�RN��z�����^<W�&L���1���b��i�c2c��IVUw7	���YeUJ�����m������*�������eW�$�� �g���_����^,�)��e���5y��y�R��Y/Q��X�"cJ7Kw�S���b{N,�kY�U&A"F�L��qm@�Y�[t�Q��xW�����L��^�����u7�����'N�;z�����^<W�&L���1���b��i�c2c���������3�*J�������U����eU��*������������u��Pz��V~Y����s�*n����U2-q�Vf��4��B�WP�k6qW��� ��7���j�Z�oj���8���t2�K�5������]���kU�r��7�)� �s��/(��N������Z�D`��U�V5�����g`0*9.V�Qd�O����oU�vT�����c��SX�=��8�y;�GlX�S�=J�(���1�K>�/� ������f���n���pNZ92T1��N��s�wk7�3�h�j����B���ni�����6��ll9�P(���d�����`�"���pDW}���.�"�b�J���t2xT6��<��gr��{��ik���2�JZ�\�'o2�<�W+(vU�
��U3��q��4��w�������rJ��y��]]���Y]Y�|t�����b�/*h�c�CiW��x�k����&���P����x5Ut[�UH�U-������Wf����	rW}������3���!�Z�5|���.�O��[}T;���]��Y�i���U���vf�����t,�����������c�K�'��
�V��^�GJ������3�S�O�#�O8a����-��6�����M1�H��E����Z�s����<���s^�N���aeM,>����-��Bh��9��#�
�;:�c�^��RL]�)���]�M��t��
M�}7��k��-3�T������\F��*2���F�[�-�{��vT+XM����3��gB�8��s������2
�5���T���GC5��!��]�ZGc(9������7\���w��z�h����p���H����m^��L���#b-�� �;�MQ���9��P"���3��X���j��w)d�\������������GE��ZcKl�w��s;SS5�FnL^�30T��=-���xA�R��{�x���+���d�yU����[x)\=G����f>�sj^P���f)�8�� t�F�2fO���3w��jRe��<O�v���Qz���d�B��z�V�dD{�" jH;�D�A��b~I�D�j�������6����������gUl.����T�����Rw����|��_�����%h�r*�������9��MQGR��UL�Q|�����B��k_����,e�#7����+'�����{%wK5�F�_�D���]WJy�M�>}�
��J��{j�4</U�������S�N��s���x��o�]+M2<9���(�����n?Z������G�el��>��2I�F�S��V����at�M��a]w�B���=�\������_r�QBX�'h^���ly+^�w�<=�y��~���R���U�3����*lj����6RO*F��}�\�����g5&��7��^��c�e�q������pk����T�-*�a��,�@�{�%�~w)�l�hjv�
���
�hE�J~|�PoB���+s���tg���:��q(�q��"H@	�N�g�_�h{W���%C_���{C�i������������m��(T&��D�)7B}�z��a��Bo�����(+�����(R�O,����ye���{\,�e�����9�,��9syyu%g9���\9��p�&�'�����9�tO���^�]C.-GH��1�w%���C��B�_k�����{&K�=^�	�'��Oc�$J	���]��oM}�r�X,�*��HR]�^:+}��e�����[��;���0��������{W��l�(2�����l�M�b�^k�B�=��^���_�/%���b��r>�B���vP�gVc�����������Ij�e1���3zC:�LX�f����e<�!��f.���W���1^ZF�Y�8�e�_R7[�J�wW��������=\qn�������yO���n�
B���V���
�lc��Kd����g��R��Ij�u3�����������P�\�(��m3xg_Qb�I{Y������Py�>����m����z���r����7�����$F�Q�,��4�
���h����������
�%��[��k�R��Z����w��w���mh)���%�f�[��M�0�w���^RF��7������������}������������m��,�OA�������!t-��:������c��U�i�>M,kksHNn�CD����s��)Y����Cm��M�D���j�.g���*�=����������C�G�0
�>�q��{��*&�����]�������B�Z��^���Z�hZ�B�\��UB�R�U!�P��U!ER-U!Os��=��@;�!EP�!HBT�UHBT)�HBT
���5!a�*��j�S���j��R��
���������b��C+�`�����
�
�(y�w������h���f+��
�
�0����Z��e�C1k�����0����0�c�0���1��=�s�c;;;<E��c��k�@�0Z��0e�mZ�"�!v�)����
��1��J�MHER�Z�PrjB+���8
U�m��w�����|x�������&6�1�clc�cc������nm�%YUR|�sm����IVUX����IVUYeU�VU}"eW�|w���M������4��^k����.�{�����������&7ok#5+hR�/.53%F�Lj���2���!�Yc*��	lJ���Y�+]u9���V�����������&6�1�clc�cc�����*��U�VEYUd�eU�VU}�m���*���������>A$�d��;������g��[��y����P<�R�e�e�b�^JES�r��V)9k.���`��a��A%W`Z��(J������xr;���E�����|�������8Ut���}c��+��&Lm�c���1X�4�1�1��"���IVUQVUXU�VI*���������U�^�M�6����d��s��9��~^~���pHq������te������BS������q0��Y�:�e�����/*�����n�be�CyRWp�t�9�����u.�����WS�jI��6������^<W�&L���1���b��i�c2c��*��eUU�\���nU�[U�V%YURU�\���j}��+��~����O�f������ �W�*�Y����w&
�a�.�(�W�k�y�H�v�iD�QQ7�;R��5aN&>���q���S�F�E�My2�8^V�&bQ��U�������/?o��<{���z���y2d���1�m�c�cLc��<�eW����3�.D8��q���!�C�8��x�G� ��u����:��g]|�����kW��|�z���=-��d�*�;�������{�FR�k1cu��b��34���'{l���T��/N��Sv�6�@�A����ZWb��x�T�n��N������z���y2d���1�m�c�cLc��9s9r��8��q��8�q�8��q��.\�\���C��{���{��'�{��{�n���L';����@
��4Z����ym��n�
F����;uY����7����f������7UZW�������o"wem��^������.�����e����.��7��n��~>�z���x�d����c��+���3������:��8�q8�9s9r�����YU��eU�8���D{����	�����_���/t��&���L�)S�#�eTw�r�k�^��sS�9f�
Q��IiM�(e���U��Z�����of�X��M���s-������F�
7��'����7�����o��=z���y2d���1�m�c�cLc��9s9r�������O��!�C�8�q8�v�YU�I� �2u�����w��~[�_7��r����.�JW���`�y!�J��r�H��Ec����.V��]��)����x�Dn���JE$�;n�w2��1�L�2���{�N��}�e����o[~>�������&6�1�clc�cc�����!�C�8�q8�q�8�����3�.����">��&��>�l����-W�L-� &b��5��P����l�L&�f�0����nn�	�����98
��FU`MF�v���������&�9X;�E��M�][��/.���{�������+���~>�x���x�d����c��+���1�&:|�*��*����*���YU����9s9r��W��3�.��k=�o�������������� :����v�}�����~��O���G�����[��tg�����r�G������$����z��$����[�$�?��O��>��'��n]=��y�u#o�h���TG��#���&���7�$�dm���9�;��O��RI'O���t��_��s���BX�1��c��=����;���>G�1�?�R?���������������O����?����>�H���	�q��H�� y�M8����8]�|C�~��I$����>H��H!9(�?��So���4�����;���[�ov��o�j�Qj�#�	�D��.F9z�t��I$�Q�|WI�"N_��d�r��k�#����8i��_bO��d�A	�O�4��O�.c�Q��I��O�9~��8��G� ��t�	��	$�?�?������G�~�����'�?���#����I$�u"H!+�����~�'����GO�������H��?�$���P�B��hO�w�$�mz�;7�v�{�V������/�����g���I�������;�I'�i�O���O��m&������I$��Tjl�A	��dD�������p8�8�8|��vC�GD�O�c��{s\H!<|�?��������?��"~G���O��*O��O�����D�q�NVG/�O�$�M?a��! ��<v��%���p�����j�I?��1��|I$���$�g����si��A����~�I>����}Y�>����[��'|�%��	�|loS�;�����<�x���}�$�O�'����.�4���I�8r�I��$���'."V����G��w�����$���$�����N'q'Q'I��o�~8���}G.z����s��N���p�F�h�I4�%Y����Q�?��q�G1�/����$�A	��o��?��~�����$�O��?��m�~��c���t������r7��MD�"pO�r���/�~���W����`��b��L������f���a������������ @��~}D�=*�J��E�JU���RD�U �*��R�T$*�(@*�UP�"UT�R�B�P�	TQE)J
�
�$)A@��H���gE**�ET�UJ�(QB�UU%BT���U!@�P�	
�QI@U)B���(*R��*AJP�R��@T*�%U@T�E)$�[�Q!TIQH�[����R�P6��2K�ez���8�w.��w�r�3�n��A����H��S���($
������spw.��.7pX�.�p]�4��PRR� )���)"��-�7�x<6x�8��a�uw����q�XrJ�
�T ��N��4����	�x7�7w����a�a�a�g7uw��EQ RPW @�@r6�/������n�w.�����%R�QIu�	T�*����/��
�����
�p�7
��
���T�H*R�W;��) �����.����,����,Xv��k�\���U�$�����HSE|�w������v����l.�����T�%���UHC������p�a�XX�n��
�sp�;��IU@P	�EP������g�;��v�������'t�0��`P��������"`�JT*e4�J���������������~�����$�J)�E=P4��P����4�P�R��$A0�d�=F�h�P0�'���{������^���z�����o�+��;�v�8xO�:��\����;�x�� �������o�l�������_��������������>��8�q#�rO���p���H��'��a�?�y�#����s�G��_�O���1'/P���G����O�����R{~��!:��'�O��n��������~���o����������������6B���2D������2Bd���C!��! ���������%&L�a4IL�� �d/���32�&!$  ����2d��Db(�������"L'7����B&D�#PI&L�DJe	��)				�f$�HA&fL�2I�HH�@�L%!��RAA�L�@IA�N�I�EQ��h;����I0""�bd#2�1	�F$�H��FH2 FdBfa30���	HL$!32	����c�cc��Q�b(�fPE&4�&$�dH���E$d�%PH�D�Ld�$� �w] L�&�b 0�$A��HHLI1H`��a�� ��L�� �S)�&$���R�C!!$�BC2��p�! L$	0�����$�F0�fffd�!! �B��&A�%�(��(� �"L��3&D�@�d�&H�L$$� �C!$��Y�CD)$2A��JI!"�2d&H�0���(
e	!2`�b�@IH	M$�2`�HHI�#!��� $��Y��%2�L�R���$��(�1�!@�1�&fBC$&fd�` �D���"H�$����  A�"�0D  I!BBd�IL&	���!L�S&d�L��&L�2d�$�&L��C�!3$���&HH�P��H&$����30�I��L��HBbHI���
BBd�$��!`!$$&L�4�!���	�����F#2$��3 B��3�bLf`L� ��0�CIBFC	L�2I��L�@�!��F��JP	�d�$�Lb��`�HI�J" �
1��&(�$ �fa�2$!!b`�Nv"&d�FH���wL��	Bfa"fd$��HL����d�0$�D��&JL!Hd1!�0$d����	$&BH$�"d��4����!&  I� �	A!��!	 �`��L	�Iw\!"$��I�2�0���"IHf`�	$�� �JH�$�D�BBdIb(�b1�fD��_�����!#2L�&�����L$	"$�0bLL�c&$4�B�I��2BfP�	L��fA	3!!!��@RH$"2A	��D�3�L�fD���$�&I2a0a!)2R`�"2b�A����!�		�!���E��BBD�d! L��3$$`�� $!3!�&f`$�F"1���Q����4Q�F0c�#��! 2C"fD�$�!"&@3���I�"M&BJH��v12cB�����E��"�(��F4Ef��L���$���2�L�F4E�E$$ �P�d�B�$BL$!I���Q�	mQwn�ffI�lb78DA&H��	�H�I�f	�a�H%$�H�L���
e$0
�i"��bH�����o�����Km����Pd�4h�F1�b�#�b�&��Jf���������$��!	���C"H�0�	�	I3 ��	�1!�L	B�2��@I�� �)$��H����RC!�0��$	��$D�/�\d�!R30F#&")Q�I%%�1�)�����2��� �I)�$��$�C&I)�A!$��`��!0L"dI$�I$�1�h�i"B&A�`H�&L�IB�`��$$��)@�IAD���)�HI&@&HI�"d�$$�.��!@BL�D�BAII3���&"1���	2A;��h�E�He$D���������1FM1�$��f� �d�3$@d�f�!"�A&I*�IC)��)0`M$��2DD���$�JL��� ���B$��M����IHJdIE	P��L$�(!����L&C!$��d	�i#HR	2D���I! HL���RDD�J�2Lf$��0F1`�1������A��D`��H�`I �a��H%"!iLDD�#I�`��4�a"HH1����A�H�$d�2&�(�C"�2i1PL��2D�HA�D��"B�$�2F�Ra0FL&P�	&d�#E$L�$	"bB&FLcI34&L
e�$�)L�!32�L��fI ���1$���c���d���" ����2H��M&����M2$�I��%b�`��dE%��ABd����H��JMd"H�D����b"@FL��HI2`�")#�I�#d�$��DFL2���"dI�FPH@0�0BD11�I2d$� �Is�I�"!C`" �3�h�)"@��$0	9�H�H!� !")����"D��"hR$"L��&0�2� �DbB� ����t�BcI�����.s�A�JB$�d$F��DI��I!�h"��RD��H��$�	&I$�BL�2$�$��	 �1L��I�����$�"HH�1 �0H��!1�2dI4�@���
H����BRD�H�D�2�f!0d���&�DF#Jd��2BD&L&#$�!!	H��a$"&b&A�!0�$�FHH2` �0�L&����&D�2$i0���JJ$1h$�H�d�I��h ��2F50�4I H����A ��?��t���!$$FdF@�$�$�(d�2D��CC1!"PH�$����2�h�d�&���d�d�d���EQ��h�$�����0A��c	,&d����"@�$Dh�#11a33 )0�
3B!�����$$�S1BD���d!�JbH�	��1�� ��B%0!fi4���b6"�Id�L�DY,`��Id�2cdD"�&�&Fa�H�$�� "�B� �1�)��	J1�D�&��dD���H�!1��M��%���4�
%�"�T�L�K j

M��,l`�E�h�4��cF1K�0 �!3I&	IH0��$���DA��IFM�A��AL�A
A#P�d�EHc&"�c��I,cDlb��lld1
�m��0Rb1b�F�#lA%M0�����(���6R�(0�!A&a�D�e4�1���E��f���,1�h�
��h�a"��QF�����cb���S*#F�%
�Rh���X�1��I�I���Pf 	�Jb��31��	b�B�����A(��`"�1�B!�`�@D�d� �
4��(��H^��L�4�$�a ����%����DEQb��c$�A�SC0H�M���fB0���JP��Ib3#2L�H���b�6A2`��	`)	HLb@��&$�L�#$�!��JI����,	B��@d�%�@��@��D����I�0
��@�(JF�l$RTPD&���L���@0�HRI�I,�	��	Qb�����b�O����z �"����"LQj�<���-#Ed��i,0H�`�`1�Eh�X�)��H��
a-��J�HUXJB �-mIBFB6�aHKV�H�335k3$����3&L�[T(��c�FB�0����L$A��d $�� B2&La! ���	q��'������?��?���
���O�����O������������?�����G��S�,�����g���������~������8����*��RmF*-���,j���+�UF��.j5�F���6��QPUx��.U���\�j
ch������j5����TlZ5�F�5sQ�kt�*��Qlm�F�Q�b����F�b���j��j�F�j���E�Q��kb��j5���55�F�S*�(�sRV�Qlj��j9U�����X�5�+F����Dj5sW*������6��j5�QlVKcX�j5�I�6�F�Q��j����m��lm����Q��j5&��j4k�F�Q���������X��\�j5�h�4V6�F�Q��j
Q���h�5�j
clh�5Kh��\�j+���m����j5�F�Q��j66�F�Q���\�Qm�\��j��j5��F�Q�X�j5�F�cQ��j
Q�����j��j5;�\�j5�F�Q��j5�F�Q���\�j1���\�j5�F�Q��j5�F�Q��X*6����F�h����j5����F�Q��j5�F�Q�����j��j5�F�Q��j5�F�Q��m�\��F�W*5r+��5�F�Q���Q��Q��j��j5�\�j��[�F�Q��j*#Tj5�F�Q��j,h��F�j��F�,X�+E�W�\�j5sW5�\��F�Q��j5�E��Q��j����F�j��Q�����j5�A�k��Q��j5�E�F�F�����j��m��cclj5�F�Q��j66�F�Q���\�j5-�����j5�F�Q��j5�F�Q��j5�F�Q��j5���+%�h���j5����F�j��Q��j5�F�QQh�j5�\��F�W5r�cW5sQ��j5�F�Q��j5�F�Q��F��j5sW5�\��F�W5sQ��j5�F�Q��X�j5�\��F���nX���j5�F�Q�F�h�5�F�Q��j5�F�Q��ch��ch���j�������F�j��Q�����j5�F�Q��TZ5�F�W5sQ���\����\�j5�F�Q��EQ��j5�F�Q���j5�j��Q������k��Q��j5�F���F�Q���j5����5r�5�F�Q��j5�F�Q��j5�F���F�d�h�*,j�cQ�����j��j5����F�Q��j5�EE�Q��j5sW5�\��F�W5sQ��j5�F�Q��j5�F�Q��j4mF�W5sQ���\�j6��5�F�Q��j5���Q��j5sW5�\��-�\��F�Q��j5�F�Q��j5�F�Q���j5��X���Ij5A���j5�������U�F�Q��j5�-�F�Q���\�j5sW1�5sW5�F�Q��E���5�F�Q��j5�F�Q�����j��j5����F�Q��j5�F�Q��j5��6���\�j5sW5�F�Q��j5�F�Q���+����F�������[�;�~��y��?�8~��S��'�����r�S��p�H��?��g����s?��/�?��}�7�c�v����?��b&<�y�6vu��
�8��m�a����C'wP�=ml�goVM�O���c����;~s]R��MZC�Q�b��P+#:��G�Q�
V��t��v�e-�'����z�b�O*mm��]D���cb"��v�5����7����C���q���W��W��ekj*f�L��W�2fN���Yy�FH1C�J��y��Go������A�������Z����1�Fa��*�e<��Q6��I��WA[�v�������F�Q�������q�z�(��RW� ����F�K4r{�S�/1�������pT��dK�e����B�.w��B����B�r ���Mls�����������1c<�_kW(p�����
I��z��:�����r������kU!B:�����;bm���]�T��Y����:,�gy0�kYV+307�*�=��:���GiT�����H9��ujj���ks9���1<:�DUp�
���F�����
y���}��p���b>k������-���>s�N�9\����:f�iVS��69�:���f),�J������%�hC�j4D��"s�:��
���1,�I�����9s ��F/�NT�=���C|��/���}S��"�Zm]8�s."2����fb�,�w�S�k�GO�����Oi����j��1���f��-T�]r�i����'{y���Rs;�t��y��_,k;��������X%qfk�����������-=�>����yi[�]��u�u�V�R�`C*EEu�t�AEu�u�*	609a��iI��<�
��w$��$��v9�������v�����r��e�W��-m��4������.+Od����]��U<�$IV��Gu��A�8��*4��xp����w�Lm�T�yf71�wDV�Z�z$���3B���Q��p��L"����Al�7N�L��la�payDNli;���;�x��]a�������vc��q���{&�����+��aB},��\F&��������D� ��r�Fw:�������8���h[�	5�����S�R�
u8-���g;qC�C�cf�C���Oy(vXuUg]sq�:�U�
.n;d��w�[[=��-����h��V\��sis���l��Uw^���j��4g6��L�-��S�'ao%s�ZU������X���[u6�SA9�6��S��F3
3)8*�����!�we���:��n��#�2���J�
E���,��3�R���b���2R�}�F����[(
a�C��Z���R�,�S������C}�*<�.�j��cx]N�[�-)��oJ��.� �]K:�n�}���������d���W�G;;��c�����fVM����b���������3���>v�n+�L�r�gY$�;n3���B'�g�a�����M�3�j�`U��)�B��C�]���=��������CaN��0F��n�������������Z������6G��MN`=�����0��+�[F�Iw�M�+g����
Tkp���L'�Mt�=O��z�Im�dl���y2�{iQ���@��bI�h7�; �T�^��3.\�x�t�n�TZNiu���z��T�g_S���y;��c�r�-@��p��z��7M'/����.Qw]��]77���7W6>�f;�j`��Ui��\��A��Ztl���V,7R�{�d�X����)Z:�9	�9�����s��u�1�	�vF���}�K�qV�s����{�T�r���E-tm���7+��:4�T���0Q���M�]��I=J�%�����:���7-�E�eM�����\���W<������v�hd�v��{(�0���Uz2�� ��(D�7�FsU=�6�������g�����LW������s��J���R��v���-�3��z�)�)#{�!�[��m�{��.d�>��2�-]�>3��7E�>e��2������/(�c�h�s���U��)�t��}E�D����Y�V(;u0Q�e�W�a���b���
��ut�v�.�n�&�Z{��������z������Bq���������GX@���)�n��[�}h�\�Sk{5���r�m%q(�l����T,����k���1���3���-��n��0�5�;C�uus6��ENd����0��wff�/�Y��v4�;�N�[������{��k@�$�jb�Y`��w0��<����C�v���XI��e�&ell9h|T[jv�r�e71�#�sQ�;��X�khw{����1���QN�\��
E]�'�tae$�U���;Z��bI�\�%'f��x�l�j[.���n���O-k{����b��s^�Uf��G]V���8j��'���Q5e(;�}
�-���U��E=�a���(�m�4�"����}��5��cqNS��rs;,��'ZZ��#,�v����[Z�:�qI2�U�Y�����Q:���(,�E^�������|�U�9j���4�R�l^Z�hA��s�S����������K"��|��!�;o�0����6�sBY<}RI��n�4�����"#phm������f��g�v���J�d���Y���Y���=E�H�K�N�9����)��/��vN�EJi��n
� ��-'����7;��y�w#7nG��max�Y6.��Vt�
S��M�.���G��la�n�M��;��^Mt��5� n���!�)Q��M�Pj[t�n�i�-���+j�m�����N���$�t���u���_j��f��O�2<�x,�*hZ-���A��{w�������^�i=�
�XV�2������Wq��,W1V����R=�\���.���yw*��E|c����E�Mr�������Z�m8����Xzj���u��*�S6����mM�B��}���\��!��a7x�c����xs��+]'(=�.�������������3g"jS����.�������dS��2���;�(q���;����5OM�Yy�A���T�
+^���
"�5���]uu������7�����_Y��
��`5j�|��|�F��n��
��&S���������ZI����u)b����gLC�o FI5*�*�R9D,&��>�R��������(Qx#�U0�W>��M�=.w<����U�q���p�n�	���\��.OeR���7a�{�����KX3� ��W��������E�j�����c;Z��w�vG,�z�E�����\������X�h�.V��}t��	�VU�x��Z`U���:��������Bv����#��B-f��2'���=U��g4���fM����#w�!��s���^�b��u�y���Z�k�o��U����);��\��?f�z�^��������\�7��]�s��^��f�r'[�};|�w{���/��l��[��5^�]E@�m����Ky�����������:���t��{��W4�+�`��������n��VeJ��o��+�
m��M����,^	a��z�V�{���<����l<����;��Y��T���j�\��}�E.����z]�9��8�k}�gZ���Y��za��ww�Z9&L���!Od�����7V�[�M���I^1�n�����1�c~�/F,�hZ��w>���y[�{'r��i���E 5��k��N%\��)Q������")*���..O���r��������9�7���`_]S��kn]���K�����k���W�T���^�Mz�*�����Jy��5m��v��w'�J]�_t��m��������X�gV�:���yM�{%��]E�f5��Ci��:Y������qwz���[�I������n��p�-��\U�W����X���y{�<���.��q%a;+%)q4A��+�j�Q{�]r�c�2�nu�j��N�u���VuK���gS�H+�������5`3��������ZYo�P����d����X���=�4��f
�|�Um�-�S��o'\���}�����k1^��7r�ndO�]#D�me�<���n����a�u����u�1�M�s��Y�%�W��Tn��9�sv�+����Q6��h�&���sZ�tVu���Y{�'$-��[�qU�?v������>Uo&���=3{���t�t4��V�jsR�B��h���e�u�������D�N����Xr����_.p�/�v�.unQr�;y�j]�e�E+����7��x42���M�h�����������������8���nm�]�[��9��m�j�����W�n�
2w4$�<g)������QS�m�}}$�{^��c���uc�s*���^��yXk��
����p��[������[�u������qNU��z
������ X:������}�\����w�6�������3�������N!��qgi/�+����+�6u�G@���b|�9%�������b�y.v�����%��P��E�+��
����L������(o>U|���
����-VZ��b�/�e��B�[}�����ek���E3������t+�l���F.�X7���.oVG�����uSz�<2;0�
�4�<��$��RG���NH����)�<:��N^���%.���F;b���)D��r	����Yi��P��Mh�G(��[��(+a�=������z:�&E�r�U:�.�YV�CUa��w��ziV�Ty%�[��@�w�u�~W��eB��nH�Pj.��{���V�pe��~�
���l^vEr��3RogkZ��F�-M��y����<B�������lo�WS*��6�95�������L�kJ������:��9/Z�2��j�����:�DL���b���{ZF2
}IM]t�D�y}Wnms�f �sK�\)[&J];��7����K�}�������P���zu���H^��������]�.M�P�S��x�Y��c��L�]��[���TQv�`�����ER�K{�,}����Z�0\�[|���;�gzn����8���\����Ev�n�[k���r����4�B�CJ��ax��j�c�.��^����R�[�R���^����N����5gNv������bG���FF��(T�p�;y4��@*��Vp��	����c5h����^�}v����Wu>Du�Kc�}-3u�}���'J��w��>�5|c��:"kkigaF����������E�7�X
����F�h��B���u/��MU�D=Yv��NF�L������'S���*
��gk����V�X��L����o`���5�^��
���Y����p����Z
��{�n[J�o@�H�/VU�T�����d�!O��.�I���W�����aA	F>�&������V��5��"+W`��+���y}3e���_rYvo�:��e0�K!3H�&����#&-���z0����{����hE�Z���u�h��
�1�U��yhw]q-b�:fd�}�U�$���.��l�����Fu
�1��H[���e����[�{Ml����n���{��p��,�\gKJ�6�J�������'k�Z�b�|B�2�3�����������P�Z�-Tyh
�<��G��y���7VXE�����R����%hQ�����.�+��b����`{����}����ky[t��$@�oWv������i�,�/*mo����8�XY���1����8O��m
�V"�A�|	����h��0Ku�Y9���r��w�H�;�1X������f���p9��np�F�w3�F����f������>�k����n<�����\n��n�3�V�U�n�tV�SRZ�-
�W��3yW=$e��#U�``�D+��r�����<,��`�����iRP�d�nwL���N����m�0Sl�������Gz(���v�v�(Rt�d�Q��C`���5������m�'�o�M"����(V^+N
��}��6���^vQ����'���	����7F��I%)\�PSW��,�iYZYRr�$�{����nB��
pKd�y�z��p����m�E/,�2�
���cj����z������T@�3���O(N�,��;+���)�-���wQ��x�osS
�,+p��t�d ]��"�����7%k���a`k0 ������]wM��
�T�,���1f��J>LSlf��V�}�s����u���L)N�"t�w-�f������p���G���#u��o�R��y��XrZ���t�T(q��8`���2ENm�p�V ����5������>���=�ZQ�?vzw=K+'f��-���������]�5u
�g�R��������=�P{B�J}c4Y'4�f��r��_&v�������A�Gs�
�Pg�P��V��WV��:�+�\z���zM��x�C,���v5}���d�����;�Y%�����p�U����}��;�rq)���Z�v��IpJ�0d8)R�ut�x.��`0��a���}q]�[��\����)����y��{A���&���f�8�T�. ���Y�����U��x@q*�Y��j�<��X�]b��9�r��N���t��Ux�r&Y�y'&3��6A�{gf�K��(+�|�[���u��kf�t�r��z&t���`+J0���X�������c�������7�����spG9���@%�%[Y]K�m����xT�(3�R���^��&2�T��2X�����R��KKT��Y�������NSU�9�*�-e`�r�.&���k��fk�uQNo�t���o�%����)����	b�n�fB�E9_�u�I
��\e�[6
T��}N
���FP9�������.������F�F�3[�����{�wZ7����{��voh.��]n��E(Pb�R�<���&q������+8@�f0���F&8/q�q�if�����gT�}xS	���j��b�6�;7Tk���r�M�]��_+}Q��
h`�0`A�}%�L��G�d�S�v����������T��<,�%E
��J��^�f����R�dP��$9��������:+�����1u�jp� N�]��n,�nWU�����)�y:��m�;�NnM���N�����������hw�v��=�uO�QO6������-����\�Cz�u�}tf
�.��{�Vf+������n�wV���z����F��@�JMd���Q�&�t��:��+����w���4����u�2lCm�!��u%%[F�^DS�`�'M����J���Uf��F���Z���H��Y���m�Z�yd�<[�uvR�r�Z\r]ZD�v��dn��9�Ulv:�bCo:+t
�Y�Me[����N�"n�S��k9����eo:��/���-}��K�������w����"*�%�MR��xsc��Jpn�Z�&����{[N�����8O	�wQ��u5Nd��=s8Md�l�Vk�����5ivT�����TS�`���z�4�a�s�;��j��9���%=�N��=9X�/7���D��6�t��9(���t�t�ma��+�J�Z�j��^�l�Z]<|(�-�b�	�V�fi���E����oS6���;�`��C���Z-P����B��q_
����%��\Isv��K:$��r��u������-n���H��rD�d��7`]�����t�1������e`0���:�D�b�*�>���{��X2�X:�\��v�_(
�Y5��,����H�����{k�����"���a�+����>�!/D��6��|��6vXqW-4/�.�[s2�P7��W��6:h�������������#j'��0��r��T5U�������q\=��{�!��c�3L����O��V,��e�q��ju.���6���4tR]�EsIN�=���U�T����5D�u��(M��2�� ��n�1�1$Im�����7+J��Rv�7����8�`_>���������:v�EA@�G�S��jA���i��i��TS�@wq���r����c�sr����u����%�;�nP7R�V�i�fCr8��yf�@>r��W���/�If��2Cyf�����&C
+GN�y�^���f-2\���f�X[�.���;��]��0�}�@�v�:���#LqV� ����	S��_e���B|/��=���k�=����N�5���b�t�nt�e�u���K�v�:��U�����t+�.��-q��n5\R�
������L����'b�oe�����];�%�SW]���R	��Z�E��dv�������Vy�o/��/a3���l��������UUk*�f=6_\�s�����-L:V�������
\��U�Y2������uy7uf�!H��rc��>�wGrs�^���2��]�����@Q��*Q{j]u����Q��5���I\g,�U�l��"N<����.��
�<�X�����WLf���Y��j�3[����Ugs��y��0��U��[���N��9Y����Y��/�<{�wS�{@���C�M�('ob�we�!���K/S�~�t�Q�����������k�l��� #:����7�q�����oD_G��U6����Yq@��ue�5u��
��$p]��4^��
���u�7SJ�=��#������uRO������R#��k��s}���g")�r�D�tqMI����sGI-�k���������"@���KG!�zQ,�����xyb�@N����n����uZw*�4���Y��@���,sD6�B3���&'[����4Zu
F��\o�>O]8%���������:���R1p��a�����/tN%CkN+���B�^�������^G-I�;������)q.�����.�$V����sWT<)����5%5��szmJv�3#t���Y�w.��uij�����r���J;7��=C��_e����)j����:]���*�I�8�R���$�
czx>V��r�MNo�w���� ����sN�z�w����)���n��`������8>���M��*���WFF]5�S�����r��c��u�������VY�gP���l�������w^�\��J;f6W���]����V��F�2s8vo/��������ut��1���l�s{�*K�YT���pKee4��yaR�9S��]���]�lr���k�/+�8�!>qi ���w���-�
�����E�b�����/V,�s�$��e��];��1�Q'�����[�����=�GR�������Z�9QnUb"k��;OojQ�����������r�(Z����@�0��|XW��<�Er��D����	����T�����5m%��Y���.C��7
U�g\M�.��}�jv[��v���Z����,/!��7*���o8�XY�#��fw-\59}����*i��\��Rrhm����;�����j�n|������S�*x��pm]��V��{����P�9{�hR5��])���'![�����p�E�O�!��`#.���Wn��/yk �qr O��{��EU����%'%�
.s��Z�����8�T�m�&� �L�����1^T������m�83�M�WS�,���Au��JK����4��}R���[VoV>p��U���`��}���4)��.^�Ao_V�x�u{Z��XX�w�VL��dMC�����7Eb$�}��`�{%��W�O�b����/s���x5#�|;$:2���v&����X��{���EEe����S���I�'['s9e�
ih�m�V��Gg��!f�K9�k3[93$�y`��@K�!c�h����\�Vu
]�
+�6���FNq�+��k!�Ujcj0�������qX�� @�L��={B�2�N�u;�-�����*��\����`c�Vh��7V�kuu���������*�����5E[����o
��J����6��m����������:3�hu�ygn��������b�'��w-tfG�f��Vvv�����"	���z���0�h�xkvKm))�V�PR���R���-_;�=��}[��KY��=��*�	��f�I���|�d������f�ID&4�wQ�����9J�Z��f��s���G:V)����:�;]�2[W#�0^�+B������K�o��W���XN F��e�:����n�b�T�
3��"&Uc|*������+Y�i
�/���K;*e��Zc����v�6`����+Z��%�z7b^)S��T��pB�\t:�i��I��	Z
)����V���
p+/�<o\����L��#�s#�O�}~��'���'�(����<��?��W�t���+�8������������Db"""!V���l(�c�DBUJ�=QD$�H�Q� ��-�(4E������-�����cQE""$�=�wNq�h��"������"�~��wwwwwN;����'�w" �G�8 LPQ�1�D�'�n��[|@������b($�c�~��ws����t�m�c���O}��^J��(F"#A�;[y\^';����14c��1�o��1p���Q"1�(�E�����|""0DC���C��>www;��y���A"1���F1�����-�����9�s��\��Db ��;�������w9�������s�'���Zm��w9s�������$+���k����|���u��;��'w9������;�������DPAym}�x�"��B""��^�D�y�b"_N�(�EAD�4I�IH4I$�@ �I��s�������q/v����_DF"�����Oj������F��;�����wN�ww8��;��wws���s��\F*�H �I$I$�H$I�An�D�>D@@�c�s��s��9�s��wns�8�wN�)(�|�;��;��w;���$�I �I$�H�I$�H �wwwws���!��@j�����#���""0o9�^���"1��������"��#r1����������^�q�b"|�DF�~�A]^��#Db|����0�5_V�����@@�m���;��"#�����x�-@A������w��U�"1^
��!k�p	I$�$�$�HE�  ��z<#���9�s��:s���NHU�=�W�������s��r8rw]!$�@��s���ws�������������wq��<� �,��������xI9�Nw;���s��!"I @$�H��	 �&� � �	$�$�I �D��
��$���P������s�����������1/�� �s�9���s���"}b"1�����^yAF��PQ�c�}s���wwws����v�[����A�@b"�E����s����x�����cc�B�=�.��� ���1w��9�����4AI�I$�	$�MI$N��l��]�cb(�n�����A$�II$�I4I$�$�H>$�{��ZD������������ws��w9����A�����{��9������wwN�s�����\���wws�����wq$�l�A$�I$�A3��$I �I �G�\�w]���p��n�;����s�������}ky�]�w:���Dl��;�w{o�N�����;�����F""" ��{����w\��s��tGxy�;��s�����w���`����s��1�#DF#n����DD@>@�wt����s��9���s��9����g�"'Db1;������$o@���1�����O���_Q;�s���9r" �W": �~A��F���������D�	�����DG��1�+��$A��"#���@ �&� �$�&�4I�Ml$��;���w ��k�ey�� >�<"/�w�ws����w9�w�����w��mw<r����wk�E�������$���;�����I �I$	$�HI$rF��I��>�]��.�?~��IH �I$�I$s��y������a�9�}�������s�������H�Zxx����Dh��ws�wG9�N����������;��������]����wwws������!o0A�����@�1�1{�<��tr��q�wp
����Z���F'��3�w�;�s�wN���s�������s���]����4I���s�������9� #���"'x������9�����$���n">�� �F"y�  ������s���bj��� ������wF�/�DDD��� �{����������F"W>�|���9wt��3�����ws�w]���w\�.���������<��
[���� ��� �����W�O{��s���;��w;�0�9�������]�w;��s��I6��J��Z�^�� ��N����9ws���|���]�%�1�\$�/{������$T��^DDDD�;�<��Lo<^""������q��ww;�����b$�I$�I �A �I$�H�@�I$�@R$I$�I �I�(�#]���������
��DDA�PAA9����ww9�p�wI�I�	�$�I$�A �D���$�l����9�����������s��9����ww"#���www;����V�Y�@b1�����#�#A����E@�$�h��I$�I�D]��y���ww|Hy���W��^c"����o��d�MH�H&�<h�@�$�AH �@�	D�I$�I$�H��b""	����Ju�(�)���wu�s���w\�9s��$�I �I�I&�$��%��J$�������������wM��}��cI��^� �\�#�1����6��"1����^r#cj�c#~w�����������I$��B������?D��G��Br����@B�#��$�������*(�?�����_������?�������ZS��b�j���R�t�o�uwc3�����MnWI��Y� �b��n�RU��bzu���t�?TY[r[Mg�:5#�|�o_:��j��������B��Y�t����4���n������W��vN�Z����gWaz���-g^S��������J8��K�m��GJm�C��"��R������c�����Y����;o�x�l�_Os�DK�Q�����o�e�w1N�+�=�C�5�������%&�%�7H�N�]�5��N��"`9�o���++��sXh�^���q�=�����d�L���U��y�s�rV"nv���z���{�L��Gf��U��l�|jq3�u<�MqN�5\T�u��bn:.'.���7J�*(81q��- �r���h��p<6�'zT���g$OT�u����n�9���f�l����iM�Z��UyC���YY�����j�����AB���I��5:��@��v��%]j�llP�oi>����]H����	=p�z3�vP�E(�u;�����lU�����F��Z������x�Ty}	���w���I����T��kmf;�:���5t2��� ��*�4&Q��N4�%�yS�n��`va|��P����s���w9e���]�e+k\��D�R�fq�#p{����E��Q���i�N�+�<���o<���������7*)���P]4$����rsyt��b��
f���#�C��j�Q��5�x�[,p)���t��f�������:�\�e������W�]������3������\�m�1��A�|�$b���{�f_U���<NnT�Pf������gF&����lW@�84n���=]�R�gV��qG:K)&��;��5��t��[� ��9�����J'���:�	�����9�uR�%��0���r�K�v��������������4�(�j[j6}�f��]�������g$�%E��������k���j��������Z�5
����e{�G*��&���T����*�E���7���V2cj�Q�m��1^t����������� ����f�r�E������q���s������
p���z���B�S����I�"����H8� gv�r�uO�<����b�fH��8��-��92-]lW�yo 5��}�3Y��b�����(^���{����`k���yR��YwV��q��H��I�n����F��]�Y���%�b�y]������<]�hVu���������,�1��Nu}�;f����7��C,VQ�6�L���'Y�T���YI`�x��y:�����q��kGm�](:�4y��:�s8�rTL��`�{c
�T��RR��W��S�����0�W%R�F�,�&�6�H=C�E������C��%n�=�Y��b��U>�uO9�S�T��)�S���z����K7������	M�R�Va,LY�3`�e�r.9`/f�=��z*���kgJ9j
�8��	�����({F���y�b���L�S�*�r���k�����I�@�+��7�\h'�����+��*_wi
��H4���
\���Q�B���Q[H��]��8�����������nN`!�
N����������h�����ji�n��$���zM��\�n�R�V�8�� F����8�+0��m����j�m�@t�9Pl����2�W\ ���WX��eY����T�`��n�Z1!����f��1�o�N�o�����������2�{'�m����^7��<\E�x�����������/f[�V�v2�9���Hlg����������J:�����r�������oa/��'1��b�W�% �����%�&ov�������t.�hvq8�T5����.�Z�����w�,�Ckm�2�r��������O��y5���#k�wjV#�k������q:k�sV>y�>�������zL�d��fBw���mV=���x�q+'p����H9���]b���g���^7Qt�{��������/cq�qt1[�Z�F��^��&�_%�����b����;Fm
�-|�@3)�i�����EW��}7A�`�������0�g�7._N�OMN��������'H���S�S��w���c��f�������Y�]L]d��LSt��|n��`+}�*�������	g�����.gN���R���M��P!+��>�s&��uj��$f���
���X��n�t��������jV:�+:�r���DFq�V���N��R�^h��9���\��4���n��Tr�l�b[���9,i57{x����F����VGt��������k,�Z�&�=�t1S��*���M�ULRs/�M��)f����'G8��li��kr�Z����A).��p���XS��gz�C;2_��"��t����U����`�-T=�;�3�dY�	�Z<�s{���/��|����k4����|�����s���
���`�d��z1��-��v���p��9F�y�oDYm�k�w���q��V��Q�YF��uGb&:��;��Ym�G��fT�9g���
�if*k/z�j�t���4��6m��W8�����d>��7�M��
y�[V;�X��.l
5��77�����{���:���!(��&��(�wT�nnN��=x\���q�i���\��3o�2���*�k��Y3������{�91��nF��fR]8��������k"U���Uj�H`;���>��x��[+��H[�'��0`�e�m�����Q++�4��\(F�Dk��R�^.�l��s���H��m�/�:R���oi������	�9��3	t��t�^w����P�d"�1Y�/6����*����G���n�WM��hY��OmKGE_�t%�R���oH��N��I�l�*���7	n��'����J������{)�&�{.Wp�%�7w��#kf1��z9E3�qSW���|U�>Srn+eL5kv��T���X��#3e_Z��F�����bu��u�s�l�u����>����i�G���W|{���.[GR��etn��
�e����skU,�,&������:�f�{n�[�����\r�������{�����C�`��z�p,c�si���J�nfN1+ja>��W$T��������O8\i��{R��r���7��)��h�;L��(GYP�`�yX{���P�
6T�Js�+���+���#TwME-�U\]��fE*EGE��e�"�J��J���$$���{s���oS��E�2��5C��.�n�����4�:��|�#C2�#�;i[tm�-;]�b�x��������6��6��\�@;��-�n
�Rs$�����z�����nX{�tS��G9e(b_�g��l�Wc\�z�&�����l���%&������A��[q5��f���`�mTJ��"�e����Gm��W�fF�3`���R��RM7	Cs�����S��@����&N�)P���%�6.�x����9�'���k��A2���Go�e�;�P�{m�G��y@���v�����*����7�������*��H'R����FU�%k�&�Y�eCZ�)�v�b�X��c�s9k�������2U�|7�;g2�dan�
���p ��0�}�\|��Z0����r��e���fKxN�*v�k��,�c�k�-"�u��$V��`�B���KN[���C��K���w���f7���R�S��s�+*/]($��Ff�k5�����}Z%uD��Z���A!;[��r����<�N��0�_1�Y���������jr��Z��(1My�^��Y��*	%�m;�/��7���KQ�L�H�v��\Y��Q�CAJ3{���fS��z�,B�#L��}{�^W�(�^��%eK��������[�m&��s���;4z$Q3D���e���<cUK���:J�D2�|�*wf������%!��^H���no{]K�IwB��
�F�b��5��M���Q�\N�)�Y]=9�W�*}�����M�����o\ (�m=�"�g�p3�TvM!}�9%��5m���v��^"f�A
Z���*���
�Wk�&�����;HmJ;8�Y��6���{/ik"vt�����d��A����;�-�����K���82������7���#�PY]����%d��WP����qFsIWr��U��O1�m����F��Nw N^;G3wq=���U<�=3��y�t����:z�l��B�3$���Y���4���o)k���-����t�����W������s]�!��{�i�-�Qn�3���y,ut����N(|e�}��1Y�
���#�P1zv����e�.!`�gF��5N�c�\wA��t�#�3+�0������)�1%j���d%u5I-������6V�z���)�]y�\����1�.�{IW*���
���Y�W�
�=
�|u=x�����#��m��WJ��t�.����'�������-�h�x�Ea����o��l6�F�1��o9�l��l(�����"�����w��l�mO�M\;MK��s>3�tc���lH�9����v������V�=5qf�Gd�!j}R��Y�'f0g�T�DLo%:��e�|����ET�V��������|^B�4�
$1���e��nV�j�^oS���uq[�8h���z������������w(�����R���=�.�qW����J�:�nI6����������Y1rj���bog�C���ef����)d�,`O7�VK���uf��X$����!�\�o�]}���aY�����}Sv�{��=n:g)NjW(:�]gX�=�D����h�4k33T���n����x��Z��"��,�V�RB�:��;91e�
)�W�7I�u�>]�t��J;!���v,^��d���)����Q�z�M�KZ���Yg���Q�����>��e��^n��f�����W������3�tc�d����iBur"���t�3����C��B������,����� \�sv��9S�w+���wQW �R"c��^�.���%�'��l�w};�R���t��P�"�%n��=���/0�n�![JrdG�v�,�.���d��\�x��&���������+q��"T�(>��+������b��V3=�H��ze #��-�S����J��,^�����S�Rv�i�gH��4F�EE�E�c���z������U�i����S�����^�����br���i�m9���5N�f����lL\���f0~�3�w
��Zl�P'X�$�	"�k4,vH�q�����c�U��3��1��G�v��7y�h��]�fQ��g!t���9S8M���%Z9�*�e�������OGj�������q*<]�����TT58:Q�U�m\��CX����7�,j�w,ih��[%�tv�j����e���U����Z��2�.�m�;������v�}����`v�-��9�����ujMF�}Rn���6$��H��lt���ZCjn���q�C��R����Zz���-��.�������<�m�U��ut6�#�[��L%�At�5��O; ���.[4��E�s���!ao^�����v��T��^L:��v��������b�wGX����)���G����.��Q���]�mS����:��3;���UP8���|����9��>��<]`����%�%�kp�_fl����S�+K�6�(k�NH���;�nA�����i����(�X��M���P���#X�"��Af��X�����I������������i2���F� �pw������+#\	���K�-�6�����y��,�$��.��;c4|b��Nf��S�U�kV7���,��\/Dw���l��4d�w*�a=,��\���=��]���� ���n�d�s�b�qc��O'!nw������MDcZh�{k{��������67s&>J�R|�9>K���z�S�Q��V�lf�s�m�>;2T����cj��j��k{)��6Y��S:����V6�c&��ek�TMa��R�]m�<x��54�a���pQ�Q����U
���*/%c]����A��t����������AeY6ib�wh�i�f�
���Ks��W]-U�Y-��{s�Qg6r������u�^A�qX��X����5���l�p�9�K-������[VnH�Ve�r�t����v������@V���2�I�>b�W+RY{r�� ��K�s��U���Y�\��[/���-�Z������}�����Y"�w{]��^T��z�5����
Zj����1Cz�gv�V�>�(R����r�!Se�
�V"���h��2��j�o�����0C2]��gk�,��-gC1�V5����lu�+:���R��m|4������������	K�j�n���k��Xk�gj7cS�-�q���S���=�w���2v�N�:��
g>�K���u�3�/������oj�t��� w��au�F����z�N���u��Qt�D�j������.�:�u���%�tX� �3�^b�������CG���
�
��d�5+�zUg>�P���|7�9$��������9�Z�0sT8os������Z>�����5�)[��3�����e����������:���V�y����'�n5E��z��/42�W:�2�\iwZ����!�L��3W�3�9���.�ci���eN�n^����]��������+J���mr��x�VS;��9:���n�
5�f�u�:xv��l�/����xh���A�AP���b�t�u0E`L���������{ox�D>Ur���gS-oR��wb�s�/��NW����o=�[Z��d�7S����db���W�+���g,sx��V�3�D�e���e���A�:B���v*���'�*t��(����kE�`;�������.B%2gJ�[aI�'r���ds�&K9�]��iYV�|Tyu�d�Y�����o�t�]Xn��Yw/�y��u)�Y�q�{8S����P>��c��������V����+���u����{�S���t��J�����\�+N�i�K��x
��[����e��3zj���$�U�����5k�F��������I������)��������z2_j������0g����J0,�oU`�p#��

�Uu�}s��+]���{f�t�����������N��Y�d[���5��~��r��Q�wE���:;{����=���9cJ�~��s���33y$E�������d�c�;�����xc�s74��OqR�����]���u+�����Qe_�Vn����%�7���8��t�1�U�M�l���;9E�./�Z����	���]`+.�{&�M�Z����M�	�W��e	Ql�Y�m��o+�UV���9�;�\8q;�u(�p��7��w]���o�9e�!I������{�a�p�a)k���w
�i�G�_b"���+����k����f����1�O�z�������n���}����%V��:��`>���n:�-uo`��b�]5G�k
�z�y�f��(x��X��%1�7��
U'��>�l<p�H]�e
q�&���u��9�m^�u���0�N[2����X<F���y�]D�tcU�u�jS�9oX��jq�K��
$��V��+F�f���b�n�a]����*�[��>���n,�c7�P�m�J���rRX����*0&�+3#L1�m������)N����F.�B��p|\��9�v��xoX���-Wd���(p�Uu}"���5�|�7L=��N�oI)��&���������k����g'�DS����E}vww}������{G��*��j���%�o8������]��s��+�9�*S�|T���z����l����,����
����L}�����N��Y��b�����85�	�D�_8����.v���|	t�Mq��Y���A--���Z�v��%Er��]�LT���(�H���W����-h�}Q�������/�Yj���Vl,9v��PR�F�m�>��D��V:c{��(�.�&���7�)��#��R�^�a��)�<�����{Z�N�1���8�gb�R�.X#-�s��j*)�K�/�e�&����[���"G{
7yx��e9.eNI�a�;%���U>�T_c�N�[�x��Or��5�u�a�*��S���W�����Y7��������K���fD#kyP�'}f�a�B�=������/�f�f��f�5��I8�I��]���uh������j��"��4*Ak��nY
1	���c��R��u�@�s�:�l�Vg��6�([}������B�����.���bC��	;�Z��u_1P�uA�[
��I=)veb�WDT�l���������!����r�s	�4���i�8��-e���d]������w�sX��d�����`����,��<r��
��EY������m��}b�B������2,�A�6q�����@���n�F��Wp���BH&�OB��(hWH\����z-�9��t�9�u�]��Z3��������uuI;-�8�1�r����;�qo<A�kN]���o���]l�G+o�r�U�:kFb�����.��<wn��r������x0�������+'o*U�gNu���J���*s�9*��D�(�������e�Y�!o7&EvR�tr���O)^�[�g�6Mi���p���l:���6������q���!��_M2���ya<����h�����c�����j�a�{��8{�
�	��Q�����t��P����@3w�*-;'q�[�VyB����v�s�X��6�3V��hRK�����u�dr�k���WR�,�w2��u��}��sW\W������:�x[�
�}���E����N���5d�+���Ys��=]d(�v9������7n����II�n��j�0��&���V����5�)��z9���G^��X�����1���M[!�a�����?6�������d��;��*���$�Tv�[��.��Jr���W4�Z�b��n��di!Zu���S�YCx��hvdy����	��w������
�u}��T������������Q}K���-�����"�ZR�R���g]����T�s�����F)�R2����R�c�Ux���73Q��<�l�����c����S7�1�J]�������F����,��x4�D�2�,�8�����r���nM��0�O����8;�u6�W'=��f:�|�:^*�^�B�4�1�e��#���W��DF������A�3b$�aU��f���|q���r�
�SmZ�FE[&%����NF4�����`��6y����O._,�N�Te�����/nYN�����G
�X��Y$V`�m�>�6��N�����YNT1U���
<�
�7��I�9)R��2��<��Gy��5������Y�n���[���P}�m>���A�6���f�������n^d5����6
����+�J����k8\j�nf�Rk�����n��c���RN�S�u�Ssy��NP��V�[y����z�������B��d
�L��Xs-Ix���x��Q�v�ic8iU��2^6/���+j\�a��:x=�tU�M.�)�Wk*��L�N+-�&eMqX@!�w2p�sm��l����3��n5o(.�y�����t���QI�e�b��T���u�������X��;x���(
�5�N���9lO-'�U�f�(�M�#g��I��;��w(�k�2�R���sz�����.������w<�
��wi�#�;_.Jq8p�i�nx|$Wi3Nz1f�����A
����k��de��O�zw�n���a#o�����Xt4�piH�
��K����]��"��a�ob�
��#��nY��)��w$�W
j�V�O����=��]xYN�[��V�Eq�`_&Uj��\vr����!����Y)��o3C����2Nj��<.�z�Z<z��k7������Cn�%�����������n!l��I'��i��-Z���.Z,���\Um��U��
''z0������Z����_u�Zt��3���.T"
�n����ug%��"����������p�����ua�ypr�����9�SG,�C`	�voed����M����r�T�CU[��]��	d�����}�XN����.��b�)�e�q������(E�����r���:��M)�nkU[]��r��[/i�L(�
�i���y4����~2*C�v�P�}�r���������z���
v��
�2r�j�GR���F��������M�[h���<�c�D5��\o%��F�}v��}����%L����V>�T���U��A/l'��e��Q�izQ�7�=s���^�T���3vZ�������gs��'����aT2����&�h~�������wNOO����$�!>���#�g.g&0[�~�j������jOj����=:�aO�D��2��]R�q<���R�����%����'w�,���d��������i9�c������Fs��S+s1���}�	)��[D�����F����q���X��f�Fu$�w�j��V�cWuw[]������T�����k+��o71dL����Z��K=�
�s��.���������O�
&�
�dX�IW�������������V`�f����E�����^J�����De��Ji�p�����i?����n��ua�Qju���{9%:�j������d��>��� �������p�;s�;�Zu����n��z+�p�Ws&������h$�:���o�va�2<�bX%'n������v2���+��f=v��Sr��
����],H��UG-\7����M������tZ.�}[R���A���\E
B�u��u�m���2t$U���m�T�k{w!{1�������:_b=[���K�MC�������r��������w=��$}�y���nVm\��]�;PQ�c�����rqq�0�Z���h���Mom��*S���_j���p]�39u���#Op]��.����d�rI����te���\1���5������"�M��J���J�����d��Xz���;6����-�+������tQ�{U��������������\L�����f��j�/s+
�NX�������E%�5��c������{�Pv��NS��v���S&J�6[]V&-
�K�U&����v��y<��Z`E��7n�����6������Z[ML��;��b����7k)����^s{�B�����V�������������R2��\
���
�l=����e���I|����)�_P��{nd�NLw$vn������[�.-���b�8�h��Y1W����D<I.f���:q�\�wOM�0��']���$��3f��\
*�p��m_>��O/i����,N�y:ns�[��En>�**&��:�!�t���8~�B�a"+�JmfV��7���f�3
��{����,B������(O$��>II��{�
$7�V��~V�R�m�T�5�h�!���]+�:
s&����$w�o���S��V���s����������T6�:�s;�����$oe��5;�XKv.��C�3����MJ��*�~5�*X\���
�Pf���w�^�r�i�dr2�^����@��90�|���u��Yzxn�+����`�w��������Z�
+�����	���-#N�Zl����5M��h�����F��ERz��9T�wv�����[]��S�K��5M��e����JT��7K&�����/c����7)����E/L�0��;��TW��{0$�k�5�K u���k��c|<V���|���+��ri��,�G�s�F��X�I<���CW�:C�g=u�0i]G���;]C��9k=��3��Vxz�s>2^����F/x�7����������[��p��SH�O��e�M��;��y��Ofo�i�N�P	�sz@7�d9v��"|����"#�f���|{}�����[��3�=������~�������nk�r�'R�j\����VN9��R��J%z��({�/~���=���l�M0�g-�~�}MY�	{��j�����x�I���3A&��M"��8]��`�{�g\=Ag�U�]���,��S�U�(y�|T9Ke\��������y��.���kpN�!t��G�-���r�M+��C����O�����
��A�S,�E�$����p�����w7�4�pT�5yr.7���il�*���(i�[��7�:�{v�O�b%�~�v!��wck2�QK��kk�j�+c��D��-q�~�+t���x_��������<6�<��\n�co�7���Y]����w�c��d,�x��.w���V%�x���o��k��hgC�76Q���ZD�x�V�t�%R"�)��w��V�O��}�4mp����V�mfl^o����'��k*
�0,���VGr�7��wA�Q�R�L������g*R�'�-����z���
~C���F�YywF_����{�<���/}nK�En����������*�6���3zK�Wni�P'G>��}�!8�L�����)V*�x�s��x,���V��O?y��:bu=��s������:r��E���m<��N��[F����1��������fR~W����$�G� OL7Y������WBGjF��'G�*�58����[�
�-�6���@ez�,�������/j���"�v��V3L�2=m��M.��l�O6��yU����L��Z�l��3�;�$�!;I�?�}������=�����~�<x��	�<A2L��30A2D�DQEDT�TTD�DQE\�$T�A���7D����4F��B�d�6���lT���4lOL(�%h�K�i�J��2��������$01�z,F�4�B�i�N��t���EHL�va�DBHlFAq0x&���	t
�($���<��	(��(�� �d$��1��`���!a����
�!arA!e�e�-������0���`farA%QRAA@IR�0�,��$6�m�0B!nXL�@�.Bd$AA���� 	*
��H,�.��(���0�(Q�l��K�P�`$��UTIE$!%QET�U@��`�����
����$���fI�t\�@�@&@$�D�h��1ar@IEh ��d�h c�	!��$E��h�Z�
,�0�
4���	$� ����0�.� �d&@�wD+.@I~��
��0|��@p@H`!�4i���Y@L�HYvYE 	1���
���&H��!{{�-,� ����L�0AAe����Z0,�0�,��]��2AU]�m�h6������(06��AAUP%�A�iz�[��������'�5��-3w2�2��.�����m�� ��
4�� �(06��Qfa�]�QE$wv6�3d$�	� � 
�
���	(�lX<c�b6����sL�Li:N�^���V�a�@`!��i�]����,�	��.��$� $@���twuwgop���*��8��0
���B��E�a�e�T�#&4w;APQ4M�E�dY�]�I .��B���4� �`$,01��PXme�E���X2A!a���l�(00��r@�QR$
�`Y����	�PIRA��,	DB���$���	��� $,0���.������`1B��l��c � ��8��88�4I%�!��
K@	�wwt$� � '�1m�RD�YE``���gb�

��$�H
���	(�6
�
�����l� $,��	$� ��06��.��J��{�I������L��
��wU��]�&J��u4EHJ����
��������"�� .�.������� *��BJ�"��
�������������
)%�4�F��E$N��H��V�e��I-���In�$��7Q)%����]�UU@www`UL�������~�U@w`UP����TH��Q�H�wRE$wwRE$v�
�$�N��H����I;��������*���.���������~��������=�����m�_��UUP��������UU@wi%���wu �'wu$�HP��}�N�~�������o��~������om������~��{����?~��	,���[$�[�I$���I'wu������m���~����������?~���q���~��m��~����������~�������o��~���n�~������~����?��s������>==OS�����������^�����������zzzu$�M
?p(���(�QE"�(��/�U]t����:z��W^^#��u��<��x[���n�P�7V�����H;���U�M��+VZ��D��<���/����R��Z�n�!R���������j��s��iM����N+^`���2l���N�4i����33+33;fffzzzr��������.\����}:t�;����d�����0 ��.4���m(��]���F^����2)j�"[w(�|Q�Y@=�I�*����GV��r��4�[��8J�-�l�PEX���^�:��nf� ����fHf���J�/����^��=34�L�,�Y��Y���333����N�9r���.\�r���.^gN�9r���/i�H�����_�y�ba�6��J�J��3{��0\��+j�U�*����u�����;)7Qw:��+m��*w2E�An�;en2����Tn����1��5fH��3��0`��g�:t���N�:u�33+33;fffzzzr���.^�t��N�9r���.\�r���.O .��39��Oy3A����%�s4��#wq��[s��T����+d�@���E��w0J��r�#E1m�7d��*�E��+2��qB~�Mm��]��v���&�n6]8d[�E^S�1��4p���N�4i�gY�33+33;fffzzzs'.\�r���.\�r���/}:t���]G����Y��giX�4<+��+
�{*m*�>��{-Qu�������n�8�c1N��r��8��EFYD8ng&�����)������j
WH.��d�����0�!�E��s���l�WL���(�g
p���F�:l��,�������������t�9r�����.\����.\�r���.N\��@$�*\S���x�R�lR�������N������v���%m���'�
:��:QSV���&�8�&jq�����tJ���QPhN���i7FS4sB),�LzwN��w������oOn���i�g�g,��������������/]:t���.\�r���2r���N�9r����"#��"���L�y;s��Im�o�Q/s ���
���3���5C�����������w���v���4*�������kK6�LZz�����cw6�q�q���/
0l��g�:t���Y���33+33;fffzzzr���.Zt���.\�r���.\�r\�r��	 �Y9���������*�Wte�E��L���h���tI��J3)'�EMeqp���� �,��a�[��a;PY�����(eY�yzxt������3M4�����������33===9r���.\�r���.Zt���.\�r���^��_mc-w���2DYY�u���t��j
]�kq`uj���0��t�R���&VEj�VN[��5e��sl�#T��4��t[�l,Hu�O����>���zfi���Y��32�33�ffg�����:r���9r���.\�r��r���.\�x�zD��s��x�!u4�>���rM��n���uP���O6���}�rTa@#gz��"�K��y��da\������NL��O;[]�nVX�;��t���
=B��o���"�$��/�%�w�v�S���)9�/r��Y�;�h�aD���v�qw�v��x$�w�h������+�����l�����U���S8�O7��]�~������v��0+����"Q���&�\���<�_8X�j�� \&.X{:����}�"�����AYwa`+=5-L���
�3��>�o�j��=��B3��3�M��3�Xj���6;�u�z������e1���uc��9o#�����M���>2�=�j��<FK�W��v;�����DR|���su���1�(3��vuE��e;�p���KV����Ru���	�����:9n�qWd��,O����9����Wm������]�N�����������Q�����Vb�,�������lWH�.�2u����kjT�#+���#��.�������g�a9v]A��{5S�����n��W`����3fGY�7Kv�S���A*9����6�s���������F�w�y�n#y\���2j��&�ku���E��'��m�3A����m�t���F�u����O0O���[���7��Y�:s4�-��B�bR�\��W��bX��G��y`�`���9�v��PZ��Y{���1�f�v�E�V=���h���n�|e-T��Y=J;5�uq	�����p��f�� m���������w3�;nL�;�rW�L�s�+2��%��]��k5�{���]����O�D��R�]\kKt�:[�4n�SJ�[q���$���x9^�LW.���o9n���"Qd�����[��|/e9W2
F�U7:e��%�p<��������[��������f�{��)6p�6�U�Me�����uf�N�
��TKo��V�yt��|�-������d�r�H*�=Y{u0�-'���h�l.�w	���}9�7����J�]D�&��>���������#d���&U�����I��n	��m_P�y��R����[d�;3k>�����%	��$�����#��q��pLX4I����������<w�T�����Do/���5�T��YS�@�d���]�ux��]+�|iV�nJ87;�=|r��������w;��Y�$�6a�d���i(e����� S�9���I�+����/tY���b;������zuLA[9%�O���S�ZQ��r������W����5P��*�yr��tJ�Y�������m�N�7�K�g��g4������`��Ep�Q>�;�6C+F+WW
/���>��v�����+J��Y�TGJ�Y�K� fZf����>��������N�~��=e����<���nv�n����:�Vn�%��-�����3����|�#.v����>"q%��N��o��,�S���Wqx��R��u�G=Y�#6U�������nZ����^4�p�����Q����	\�_�`6�5��5�?���|z�OE}�����S�X5}����I�|��gk��Wx��7�u���/=�t�(��l��i�$��c�Z�9���kn&C���������d����3/9���~Y7��aq08��!9�������x���v�s����B�y�ksl��4�6��]�E�
�����Y�fJn7������u�{�wuv3>D�o�<$�gYNZ�}�>R���m���(�57��|�������#����kI�|�Z���K���&���6�����~~�U�I���[����w��{;Y�z8x��9}1��r�W��=1K����y��������)��A3tv+_�>��f����*�2�Ey�y
�����@/Pu���?N�H��fs���5m�C1��zF5���U�X��7�"	�0�.�1\^+�Sq����N�o�gx���2��7EnR{�����Wu�6�+nkK�X�nx+�:��l�T�]������i?Y�j����:�)*�}�/�+�]��y�����c�7CFt�������5�
��{��l��s�.zt4O�[w��{�zJ>�xIc�:�������������Y�l�v�F\OT���"-h�6���n�i0t�{2r�Vl,6�	�y��k��s���r�f]���v����'a�#����W�#�		9�n.��(;��De]E���2�/���&HP�c�M��R{�&M��;C4T���ur7gs� sS�t��d��<Wvmn\�j�2gI����.�f>�n�m9�$�}�������/C�c~�v�����~����������,5�L�UV�;���k��I��������c=V�:���u��z�=V���������:����Y�uZ��������*�m�~��0��������}�������
��UWS`�T0�@GqT@�?���TATAT�y����n�g���a�]�u���j�
���Cl�Q�j�
���@@>w����z����@*�*�*������Q�j��]����TTTTTw�@Gq�TT��}�w�������TTTTTTTT�����Cc��*�*�UUUU�Pu�������_����3������i���Y��32�33�ffg�fu~\H�D���n��p����*��)*����"8UWPT�U�C�Uu��UuH�U]BD A�O��������\4����#Z�G{VnwvWfa]���{�1�S=��/������W�W^��{u2��K�E<�W�:�\a����P�n>�[����<v�'�w�{���/OE�-�o��8���g
�����F����^��33+33;fff{fgPt�����U�;����n��'
��
�p�����q��n��w����8D�;v�������n���U�^$�:O��H?�%�7��g����*U��cl��������<����k��Z�����������R�f����}�8�}��C�{�����&����n�|������M�z�����Z*�n������
|���VsI'������<?���:4i����33+33;fffz{fs��W*�`���Us�����(W*�`����,�\����W*�`�W*�`����:�?A����~�KO�~I�_�����TU�����Y��I�M6��y�<����0�3p���S�P���T~��,��*��V8��2�
M�F��k�o0C�����mK��P�y��/"I'���6p���=>>3M4�����������33==�9��W*�c��$��x�I������q$Q+�W0Y�Us"�#�#��Us$�U\�bJ�U��8��.������.	?�A?�I_]g���/��������tC�������K^��yE�)-
�|D�m0h�RR�W��s*�]N6����<��&���y]��C����wy��8����-j+�d���W�g��:||f�i����33+33;fffz{fs�I\����+�W0X�\����w"N�;v�
�+�W0T+�W0X��U���U�B�Us�G��"��w��=~>O������������(f���=�!+yh���[��C.�F�b�sN�UE����28�n�Uy����Sq���"�,�
�QjA5�I���2�t#��S�����#���������G��N�fyfr���������������"J�U��bJ�U��RJ�U��d��Us"T��Us"T��Us"Q\�����$�#�*�dJ�+�W2'��O���$��}����������*�r#e��FSy�nW��fn��L�
�5�x�N����6����WE5������<�`t�Wd�3��������uH�����e���l����q����I���8xx�t���4�3�3�ffVffv�������N��O�I9r��I��E\����q8�H����8�w$v���2%�Us%�I8�+�W0�8���v���1<q���O���+�W2'�	 ��?8����;3���]����)�,=�Zz��3WsL��X�a8M�5��W�2BOhp��n���q(%�'u�A�CuQ���g��E��[�A�q,/����wV�����1���~2l��gO����fyfr��������������� �U\���Us#���\I��<:xxs"XJ�U���i$���dN��Us�$���#�.���*���y��$��%�&��	?	1{�����:�4�X����0��n�wB�7NtLy[��9��TD�V��be�A�e��fTN���s����9N�+�;bc^�������(g\��V�u{����]��m�?����t���4�3�3�ffVffv��������Er��	\��������(�U\�d��U�"�Us��Us
�U�H�U\���H~$�{��^����Q�����v�����v>��`���TL.�k������.����9vB�eV8U�S��Q���^Fk��b�D,�W���m�0�+M�+��[�y��}�am�5���HR��\���������������i���Y��32�33�ffg��g0|�+�W0T����*�`��Gn��s��U\���\����\�������)���*D0`�$���5��_xp�4�q���X��\<����^kp����Q���)lL��0!\��{��������y�6��������:�k�Q��������f���]�����9�X�()�h�K�x1a�����}�]��h�o���G���/�j�6)muL���Md�sUIg(&��{���9H�1�������)r�Yv'O�"����k�s�j�q�5#V�������J6K�����u#�2n��[����Sm��f�����/�Uf�*����������y������@���!�����;�:����69����WK������Q*3f7'{���q����n����ke������_wb�T=2n�m;�u����LoD�n��u���H�I�*��t(w9���VU��Sn.���4����4+s-[�:1�-yt����\m�6RN����lM�(Wu���_(�6��DT'7�)[p��gH����
Gw.R�h�s�����Ah���,_gj���6�wq��C�s,8�":�q�=�d�E�"]��8n/.k���.���SkM�+d�X��&!��P��������=��:�3�w@�*S�y�S���Y���7����
���
M�d\X����|WJ��r>#�������y���g�g|u��L�]o�hSp����rd����<N>���5+�����q4��������fRI����8�}���Zs����#+B4�f�
�5�j��
�;b�F���6��r�U��N��\u��F�h��/����3�#��u1]�f��,�\R�Z�����ZZFQ������m3WgElY�w���8�NI��{��]��%�f,�O��gx��e���t�o����5E1��3+tlwj���fwi����d��J��9��Ha��h��C�xuVs��\�&o�V�Z]#;����#������A�.��fn���]����R���}�����b������Dn����+���{:K��m���&m�y�Fr%�0�gn�f��O�*m�u��)'|1��h:��bL�Z���:������w|=y����=���Oh'�$�DN�'!$�'	<I�$M$H4�i!'�N�'��j�.vH������&��#��X
�\��bm�����[{5����UZ���(I��u#��:��%X���]9z�M4,����q}j��<���r}w������
�����g���c����^�����n��
�����c����Z�_j������:�����R�������T��^�*j����s����b�p�l�j�<��+�����U�:'wZYw���<B
��=��9B/3����<�V2m92���q|l��
����v����6����H�2��e?��o����p�[�eZUu�Q@r��MnW�J\s����u3Z7�=	Z_o��������#�����sH�Z��i<}���]e����(�����K�[�j^Isx"�����]���4���<�3��:�5������s��W��~������E�2�S��sS8��D1������f��b\9��c�&mC�I�������H�tI�c�.��r��v�SY'.�Qw;�����q;E���uU�f]u�P���+����>z��)%��YE���������"�����*9i\����X�z��x*�(���z	W�+�H���x����l����z�p3Wng�j�7��Wdq2w+�d�fA~�C1����x9���Xa�������Z;�w�q������<�U��|V�G_�|�q�*�Y�������3���r��/:��f"S����yi��c4e�+���:���o�_y��9����I�P��f�z��W��u�0h�11�|��_pi���H�e��ZG���F�����=��
��+���y_���v�#�iT�{�zG}I�K�kWm����d�p!��U������G=C���'q�-����W��J��=�\
��	$�j�+�v����\/��z{�
b�����y.m�!c��e7J��k4r�,Z�9��7p�8ozz�'�
�����9�P�p���	}{��O~����!�n}������W�z�J��fK\��!�s����������v����iQ����v\��r���M���{�=����R�}o���v���kt��*��b.��������������WY���C���?��A?	-9������%��2�Z�����'�3{���^��oA���kr����|�7z�KNZ���kr=w�]l�.�o<������)��X�|��l��d�o8
���PtJ�!���ye������F<�gWW�a{���4h���O���-3�UZd��w����2��������3�m��W[���<�Z0w�����wZ��v���g�O�V�h
V�h
V�mT0�}���w�wW��
��UWS`�T0�@GqT@�?���TATAT�y����n�g���a�]�u���j�
���Cl�~�����~������@@>w����z����@*�*�*������Q�j��Z6���*�*�*�*�*�f��
�������������������������y�������@@G
��*�*�*������K��4h���<<:th��M�:\��������333��3��>HW*�`�W*�`����(W*�`�I+�W#�����v�
�\����%r��$W*�`����H>}z�������{���\S�15�X��r�����o\gz\��g���o��i���,p��CN���r}�L�����X�����F��q����B�Wq.�}�.�Y�Q���S�Mcl��gu��m����O��2|==��>>3M4�����������333��3�>DW*�`�W*�`�W*�`�I+�W0Y$����8�I%t��
�\����W*�`�I\���s�$~}�v�o�g�S�D)l��`\F-�7����s�4:�;	�R���&�tK����8A����P���{��n�M����8�4���{�a�}6l�1t2�^k�2�c��\�o8��7\�*�\�(�x0H8Q�G����zzt��L�,������������������U��Et� �����=N$v�N��v�!\����W*�`����(����,Er���D}��\~�<h/Tf����s�^���?EeC��/r��2���Lv�����t��&f��[�RP��@M�w�bw3�T8YU��]j$4��4�\�����8j���u�J*���u��L�fB,�w��M���J����o�����M3<�9ffffg�p��������W*�`�W*�`�W*�`����(������*%r�\�Q+�W0Y�Us��U\��I$�rA��x�q��������qg��6v��e�����X�c���[��
c#'&��KwE#�#Q�6�]�vY��nFM��Bdd^��N/"��Mt�&�m�
�&���G*s�z�
1�n�51o!����2Ax�F��<?o����i�g�g,�������������"IU����Ut� �Ut� �I*�WTJ���J�������;v���,EWJ���Gn���;��O+��+��<�������t�b��"D�sR��S����:C	�b�wS���7���AW���zN���(o��}�.W�E��1���@Ok�sNd-[��M�g�����,����zw��H�t������h���4�3�3�ffffzg���OOl�S�'n���,�U����U��������v�$�8$���q���\Aa;v�]���J���D��\A����� �/��p����~���si�V^��������!Q�2���ps�Ls�O�_:������1v,���Y+��Q]�(�n��7iNK�oD��"]�f��K)\���N��v��$�d��g����<=:th��<�9ffffg�p������� ��J���B��q���\AP��\AH��\Ad*�WT����"��qxq8D����v����I����?�8Jk��F5�P��>�s�.���^���
B�/"�N�W�X������JOs���9���J�^�gBb�74#je�kB�m_�oz��7�M�2�\���Jv����`��g��xzt���3�3�ffffzg���OOl���]+��N$��;v��������N��v�
*�Wy�#�j��
���D��\AbJ���I%WJ�?q��{��5������$Vi�zd3k*$y�9,f]q�������u��u���vQ]u�h�:d�y3sV�t�"�$���|�*�y���Q�!�M6���+2CUop=�n�H��M��������4l��t�:4h��,�Y������333===��>WJ���"I�����"�WJ�
]+�K�N"*�WX������q��v�]���U���=q��D��$����5}j�U����n���
�Svn����Fet����(���6\����f�avw��@��c���\��d9H
������z�!�u[E[�,�9V�w���&���f���R������'<?�������F�6u��3333�8fffzz{g|D��\Aa*�WQ*�WT�Ut� �$��\AR*�WR*�WXJ���`��%�H����4g_%��e�N��6��G,AW�v�����]f!�����(��"���S�U.���q^�]��d�4�����;����\@�Hj���hs��!�lt�EX�7gG���T+���������]}n�@=w\��.����o����`l����r�Y[HlU��� |�A��'�K=]�F��u�,m�	\P��k!�2������S���Y5D�����:0l��j���j\d��IC�UNP�C�OP��q[�����[N��n�p�u[q�kWs�9�K�\�uO����	k�.�`u��[��ej�#I���.��+�v�O1e�]k-s�����C{��3�}l��C�Q�n��dY3f�A�����klv�)�_7���K5*�z�SU���*(N:g3��l�N;
9)�g�����#���^������>=����['m���NV:U���N�{J�;HJ���9���V�>9�UK���)m��,UE���.����Na-#�[������X�z��Tws�I�:�����|#�]���]��
��������S�����C&��C�����.�3�`[��4�] ��v���js�$gU�����8���Ms=�{]d��7�������1aM�f����]���E�|Rw�a<�p�o]�WD(�9(p����v�%�������6��j����$L�Wr�V�������F>�����2�.�g:���d�-�t��'n�V���2�%�wV0U@T��[�����Xz�ea����q��P��WK��+#��s�W�YY]�0���r��Rm���V��K�w�W��2
����J�������cuc��������:������.rrb�m�s,���r^S�K"�����W�|�����	.����K�4�@R-��{tR���c��4���3
���f3��S����{��lN4�f$��{�z��MU����u���2�fN������q��������8<�f���5������/��T� ��Q!!�;&������d��[��K��q
<�R�}�+N�R�j`�rS����t��9]�+jS8����m�Cd>ME���Dc8N��	�H,�'� �$$���O)	��m����{������r+w2�u��7x�j�~mq��"��s}Y���wN�	����wm�jn����r�1�T_���r?k��u��f
���OB��F��4O���y���W)��@�w�tMbRiY�Q��mn�k!/v�:=���4A/T)�"��El���H�!:��1�S�����=���^�������~��b�Jy2?mz;�,��Z��e�qq��w�����������0S���2���^��[~�&��*�vjw�����T�����'�������^s�r���sk��[�'D����wv�>��1��@�at��f^fN�0<��������{,�����q�)e1t�{~��D.��Z{47V���������NG�cV�JSs'KT���g,��2�
��\���'�~���Ed���W�����K��/��t�-j	f��P���I+�'������7�{�%�C4\��i�E��I��[�:L���M�\)�&�w��y����������o)���u���i�3�2�]��v�?)���z�u��{s����|��B������{a����p~��v���$q�EB��~E��u�[����%X��R��W*'"Wa���W�o�.�$W�c�\�yl�����+&�s��U)rdj9����������������n�1f������]����x^�^��xj�W]�c6�:���D�:���v�p�V�� �_E���2�f�M����
�H���~�W0�`�?3�z����3	��Y.��(s2���i>K��Wx�j�>���*�z��U�|��{)�����ee�2,�\������|f���H+�����,G��M^��8����-����W\snhW�����<���e�Z�w+0��`W�w������-�;�
�<��F�o��L���*�������o��VZ��f��Ci�����%����>���g5��O����v���ixb�w*�����V�3������]��f8!-<�6�Xs�2�n��u{=�>T��g`�8�����'�L����{O_��|]9�sDN�
��
�������{(�[��BH��s4|����	?�'�O���gC�2�������"����+_��Xy�2�X�f��^wM�=O���Zgv�
�:����C �2��B�wP�2�:���{s��k�DK!_����`���va���b���|��!��A$|l��g�l?��X��*��'t��mv���F�}�����3�m��W[���<�Z0w�����wZ��v������x���`�@j�`�@j��j��������}�_>7��T]M��luP�UU�PU��?��PUPUPz��������m��j���w]�w��a��*�U
��C
TTp���������U}���PPP�UUU6�8mT��F�wPPPP�UU��@Gq�TT��}�w�������T~���~������
�
�
�
��q��P���
�
���@@@h�T]kpk��?�����������4�3�3�ffffzg���OOl��]+�,EWJ�"Ut� �$��\AI%WJ�4�H�;v���K�N$*�WQ*�WP�Q����~{w�9�P�3{.�5"�;�v��[	*�r�����W�|�ws�[F�$\�d]�`�6��;���aW}�.�������<n������Z�O@������V]�^�������
�M=���g.�,���D��G�y}�G��i���Y��3333�8fffzz{g|"��p��p��r���"��p����N��v�
�U����Ut� �Ut� ��]+�,�WJ�^~}�?A���9�����s�X�W��V��%��o]8j�F_\�_��k�w�y����MIcH���PD��P���l!�_U��\UB�u�v�^� %�j�g����A�]l��D��X���{�/b�e����o��U0�v��)�J�	����\��GO����:4�3�3�ffffzg���OOl��pGUt�"N�*I9WJ�!U����U����Ut� �Ut� �Ut� �Ut� �Ut� ���~H��$�[�������?���u�[�N���fML������n�oqp��m�g���S:�yz~P�2��$)0T����#�RI=�v�S��U�S)�#v��]:�f���Y892�zF��w��D������w������z{}�{|f�i����3333=3333���8���U����WJ�
��N����q���\AQ*�WQ*�WQ*�WY"`�$��O�OS}�7��L�W�M7�x�R�@ca��T��������}]��tT�: �t�p[�^�M�Vi�<��s�]P�V���6��vI��v�������)��&�h8L����1�/R3���sFL�:�{�o��M3<�9ffffg�p������� �EWJ�U�����]+�N�I����v�
�Ut� ��]+�)]+�*/�t� �$��\O�I�I����^f�m�p�������N	�����05�/sb����v�wB�������]]n���sq�F�����F\�v�u�Y�)"�Q�E�K�GZ�
�`�&��O��Vv��}+�oOo�����4�3�3�ffffzg���OOl��]+�=vI��v�
�u+�J�"Ut� ��]+�*%WJ���;v��AbJ���$�,	2@$��E��6���&�<s��
���mq|P��u'Y���#�����	a�e�����o��a((4���I��W
���N�
���-�����:����y�p/�J��t������=���i���Y��3333�8fffzzz{I'�*����UU$�"��I,EUT�Q*����'i�v�$��UQ/8�*��������$����z7���v�Lb�&n������3����C�J�N^!k��y&���"e��
�I=�\��Z��<\�B�7�6���,��m�t����8�wZ~��9y�)�����=}3�������||f�i����3333=3�ffg�����|D���K$UUI%��I,�UVG|$��|$t���$�
��$�UUI'gpv����@0`�� >.��l��5/����Yhfb���mf�	��;V���[{����$�q���eE��;Z���5���wj��fIQD����v����g��k�&�(�����'�����"j�e���>(��f��������L�,�Y������333====�����n�����;v��I,EUT�R*����UU$�$�URIb%UT�XJ��$�URI�$�$N����������7W�����f+�j�L_��/w����l'-�J�/-�vt�<��pG6�!�e
f+r ���U�c�$*!K����MW)YX����9��S�1>)�!0[T6��s�P�� �'�8x~�=�3M4�����������333����z��#�n�$�}���n�IP���JEUT�X���$�URID��;�D����jE�8H���O�~�����<��5z����F��f�����4U�������M����zIV��z��1U��V�m5t�NV��8��)��.)�b�:�1b��R�oY�V�����G;M�8.��$��]�����Q��������Zvp��.�$��$"�f�Wv	�u}�>F�����z��XLt���������[��m���'	�)��Z���Q���Wk���-�����4l�*����g��Z�H����SA����op}�:������<BY=j|]�F���.W����sT���
q�����S�t%k	1�n�mL��u��U�xr���vK�%����+�zytu�G,CFv:�b���j����_-����P}����,�vw�v
a�;�8�mVX���:�&�������3U���g7-\w/2��9�D�bOjD��u��UU�e�N��"�s��s.GqJ�?hPBEm\w&J�+��f����Y[���]}�u��'G�j�c���Ch_`k9�e\y5c��V
8�Y\ok�T�����Y\��B�^����_gc�30z;@��U��u���3Mp�S.VL8�
"��Oq��3����Ev�;��j�3R��T����q}E��`2t �o"3�	���9�si"����it�����+,
I��w|xP{$JqEg[xTD�������[��ZX��:����QNb����k-���6'�7W+����K8[2OVy
�9DL#W`�\�&�N�fj3W&�v�����9�$�x(g,��vp�1JW��[6:�I���a2{ ��Ngl�����{���wN��S��vYn��2��([��Yg2�G�{v���["�n�IA&�f��x�'xw0V����z{�/����!���6�f�z�J��7u��.na1s�����39���'S�=�S���4mb l`u��U�*Mh+9��p��;�be��^Wuuw�k�PZ��Y�V:Y��}���B�r��u����M������K*x��!d��D����up���c]�sj�v_�`f�>�2$fS���A�H>�&��#�I�8�'#��G� �$����i �����~!�����C�&��\���g,��_�<T����<Ry�������Wb�����z�
uM���-�sz0��{�3&7s����b�=�{Ad��EP>�I�@L���q]�o^Q8����e��9�j�r����w���-���m4��i�=
�i��������4�5h��������%�����/j�����7x��s�]��c�g\(gh���������<^������	y}�W�*�#�p���3�>������2q����z��`���#]K��x9Y�&A)��gExVV>��=�![�H��Z2U��<�G��n����%,�=����:{�c��E��x����6������������9~�$~9/"���b���������U��h��Y��]��=�[��0�����u��b�"ii}�����1z����M�_���;\�w+F�\w���U����#2�%( �m\����mW�Y����Wz*pv�L���	�ol��%X�[���J]E���o����)���IA��=u���z��u23�z-l���2�/u:��8+=�T|��_\���\��o	�(����:�4z�����������2g+�e��T�on����=�\�]���j��+D�����l�U�6���FY=�va[����;����}�	ld����z��N��w*z�oR�J�}a�51�f|}h������P���$	aWT�dCf�M3���;�w�{��N���I2i�]g�^������r���y��`�4���Y��p��=�}g��vn���[������(������������/������9b�"5�NP���z/^�W?z�!L�D2�����3��]
�>�yg*���t�D��Yz�m�����������no�gb�c/�v^�J]R�Djt��X�v6F-�����\����A�r^����������U���]�"��z\(��{���P�X����z$pW;�Q�~k�f����K�2�[loJ��Cg����a-b�$���{j�j�]��zU�k"�Q����d�J��([����S8��.��j2�[�!�	����O��<�{�0u��
ON5��ufM�B���~��N�c{��EZ7�+4�n�5���i�M�n�Nc���i����!v�-+`WY�t��m-LV�E���N�N���R-]���:xxtp3p�
b����L�����:�y���������<�[@�������z�=V������������v����;��9��*��*��0��a��������������V�*��U5PS��*�����*��*��;��x��9��������k�u�wx*�����P�=T6:����PP�����7��@~��TTT0�@@G
��Uw�����TTT6:���n��;���
����w�����>|�
�
�
�
�
�
�
�
��q��P���
�
���@@@h�TI$��k��Ip��F�<<��N�3338fffffp�������\I!8UUD����UU���%UU�*���N��v�UVEUW�H�O����|�Ds�Q������=���ySqmm1z6ea7��{�m����QvJ�l�V�&�����	�]��ZE�y%�����.2U���x�c ����]H�(h#�	�+�{I6�������J
b����B�_#"rC	�gMq.����F��}4||f�i����33333�ffg�f|D���UUQ*���UUD���UUX*��EUU����I!'��y��5�J�Y*��f�z�	c9�����fm�tb��b�4�y),�v�&���T��B|S�cl�2L�)�C, B ��e�I�T��t��n��2�����	��0@��F��X�*�����UE�\���$�(������~>3M4����������333�3>BUUTJ��$UUY"���UUY
���UU����i�v��H>��_���9�?W �G����r,o14fS��w0��9�rd��V[�ES��r��A�x��]^R���%J�������	�����:`����v��P�,�4�K�i��.h�x`������h���4�333�ffffg���l���UUR*��UV$�UVD�UVD�Ud�EUUH����U^b8�	�K�I��j&*�;�J*���r��O���DCK
�m"���	�/(��
�����9u�,]�����Y���g+(�/�]l�f@y`�u�4D�=
�hR	8d������{|f�i����33333�ffg�f|I%UU�%UU�*��%UUI*��*��IUUd*��U_i$>���tk���e��[K�f���M���J)74�2)�7������������Xa6�j�1L��CZ�
�f'3�j�S�3]7��^++r2
M��S^2����r�:|~<��N�5���333338fff{fg�IUUI%UU�%UW���v�b*��UV"���UUR*����}�>~q����*��T��si^�EfZ@�kR=�V2a���.5���yP3;����	?5x���,�Zd$fU�z�X�y��Zt��oC��Z���m+�-�~�y�$O�������{����M3338fffffp������'���Y���h��v������jI*���J��"UUT�����U_^��@�� �����_����8V��No���C���.3NB����b�����y4���,b�nb�]�r���������vf'u����5�����82f���"Z2(�x������{�o��M3338fffffp��������UU�������������"O$J��"J��UU���@���7��y��O��]��Yr�}3��"B(��eD����n�������C%eXT�R~�@,.Y��jIzRX��q���Jwk,c&��3!���1	���mI�f���`jv�|N���������oq���i�ffg�����������I*���UUB���UUH���UUR*��UU"���3�}����������7�����~�j�buBt�Z��5Q�
��ij��Gik�Wd;�7$��S�0V5{�fV��[M���W���:^�&a#��-�fa8U�*�S�S
����S*)�pZ���I���?�����f�fffp���������������I*��UUR*���J���U�\��+�UH�*�%YU��z���Y>��^��}Z5iXIgT�I��0X6�G,r��\Y�1��|�<�����|m���&$����/�<�d�%K�[2����
}���L'��L��n����w��-����lfQ	�'���U��;�U'c��BV��3f2m%�-�u�������S'�^1m���'a]V�(�V
�M�p�j���V3@�M��u���^1�����%7�J4�K]K��r�C������.��&���:.���3e�l����A��#'vZ�j����P1�ex�W��U�"�������g;�2������8O��+{77!���Rf�����	���������*q��8%�'I��_gm�����&UEoo]E%�a�<U�<���b'-���1��8���������-� �����u�fe�v�EO7��fQ�������wt\R�;�no��6�RH�D��y��B�s�ggj�[�.��C
v
�47��A1&=����&%��m��@�'a
���x�����]Y�o�n�^�/-\(�O\��P���'���Z������1�DIdj�Q����{��hf��8.��0�T�b��S�E�/y�$�	N,h����s38R�������v�0n*��L�TS���t:�d�m��@�e���x����1b��v��3����s�R;/���gk�a)_��B')�Mo�xb%�������������%�vY|U��{��$#g���[r��w+��Y������U�I+1q\�U��t[oel^�x��V���N�A{�]sb��jc	��#��=�P�[\>3��y�G[��*uM(�}�����QFbj�����^u����i��!��$�QIlU���{3[��Q:E�U�����]�lnw�ha9&���[��R�Ol�T�o�'���� �)�����vD
B��f7�����w����B��j%������eD��Mq����k"Q����DQ�i�#��I�{b�dV�w_l#���c�:� T��D�v�WHwO<�bSM�=�[�8i����`���J���:j�R�L�\n��a���R��O�L	6$���$��q�<I�
 $���'_��������a
��W��v�����R��U��-	��z�B����h�;��,�]W]m�L�[�\��u{B�"�����$������I�\�,�s�J���:7�M�2�{R����C
��Xd�h�v#f�o��0v?�����y��g_-���yQ��{v��O}��| ��"��t9�%a��'F��M[�+i]�!�=�W���^5o�I��h�+5���z�h��Do���6�
��C'�gu�w��Y�a>��ewp����>�e:�������qI�{���,�n�#ae��H�.��^26I�'<���%oV�N+.�����;���78�u�������1�E���}3�����0F����W��O%��j����KyE�}���}��K�X����V�����:�tq���Sk��nE4=�W���;&�8�tQ��y�]�Ln�����(I�\?�+�-��{����F�����].��7�����'���6
�9�����[�2eQ���Ul�ljy��z��p�Q����M@�|�J{vXB�����9Jy���<W�V��{<��Wvn�0;%^%�����L"�t^�Z�G[5�k`�iu�<b�o�ej�����=�n��i��	�z
������G(+�:������o�W���+��Mh�N9�Mb�9Cib������^ �����+�
7����u3s��vv]7�.�~����j��{�
�}B��)��{"\����kFa����,j����W��\+Ug2�i�����z�>@w�=
3rP�2� mn�zOY�kg�v�e�Y��r���v�&�S�U�{��WO�]Z�v:��O����^fr[B��a��REsz�|�RJ���fB�����|JS��},P�����@��9X��w�s_L�>��\���o�&j)\���Y���Du�n������=4�g�g>ME�[���������n������n�~�i%� .-5a�����te����+�����8�-\����V`�nv���)��x��7�>�NV�Q�
����}=PVP�:�"E�a%%TW���.��������%��<����)�DW�tQ�|$�������P���i'6L95
x%�,[��7S�J-��3[����f�\�j��0����<�\�%�UV���&���AS�V.�{�m�7!nlx�\��<EG��:h�p3p�,5�N���������u��e����m]�i�z��uQ�j�u��z���F�w��_��L����9�O<wU<suZ0U�5Z0U�5Za�P�}��w��{�_>7��V���[`�T0�@O
�������
��
���y����n�;�z�a����w]�
����8mTw<�P���
���@@>w�o|��U}���PPP�UUU6�j��Z6���*�*�*��UU��@Gq�TT��{���������TTTTTTTTsn=��j�
�
���@@@h�[��$�Z7[]�K��4h���<<:�M3338fffffp�����3�����U�T�U�U$�eUI%YUd�����eU%YUD�*�~S���H'�C�s���j�g���gk��`�c��B����l��+mH��L4��C{�iJu�rf�[�`m*�B�8t��%��ss�
,��e��X����+�T[���a����2O>(��&���<��4�L��������333=���IVUR*���YUP�*�eU���;H�����VUT*��}�� ����~�]�i�N�8�4����'u������A�i�-z��B���~U�I(��#.�8��4SQ���cV��������D��+:G�7�,)MQR8Jc���>�YY��~���4�L��������333=����YUR*���U�TJ���VU|���D��<<,IVUR*��VU|��D� �����q�����qr�7��YR��={���T� ��X�+I1MY�Ax��]�n����2����dK`�D����;��F��b�r�<��������t��G
����||f�i����33333�ffg���s�$����T*��VUX*��IVUT�����eU��*�%YU��<�&��o�S+jlM�MyS�YO2-��n��f�L�wB�x���j�*��[f[��J
�%�7�z�EnO�u���L�\B���}l���q�k)�.n��|\��gO����:4h��Y��33333�ffg����������U�T����VUY"����eUD�*�IVU~!$��$���������|���N�v��$�
^�]�"j�&�3��^���&5������ ��������Qw�wT������l�E�O1���D�3FeU�|R�)�W��A4l���z{�o��M3338fffffp�����3�IVUT����wv�v�Q*���VUT*��eV��I;w;v�U�^! ��$���R�k�j��������U�������!��^��-S�D��'�0��.;�����
�xTj�e���jk/,V��Y/r
�m�%{eC6�J���&��@��'�>?����F�3338fffffp�����3��VUR*��VUXJ����eU�*��=�������*�EYVO�$rA|{��q�j�p��,,�8�h���.���&y����(�Ie�cn���mV(�Y�%���Wl�w���D�[�%�g~�tPV��b���N��vMT0�W��_q$|yW��}>����4�L��������333=���"U�U"���EYU�vI����6B��\�
�UX*���J���U�_h��H<M{�����������TW�*�efN:O�na��6�C�[����TF����M�
�[�{�$��i��]\��.��eM�w�3
�6����`mfR�t�f	i��7k����RG��n��>�o����i�ffg���������f|�*��*���VURJ���U�TU�VI*���VUTJ���!rA�����>�����|���������l�������m^��ysp�6�������V���i��}��!X��uSJ�3wn+&&�a��p�����A*��dncu����x��h|zW��}>�=�3M4����������333�L��eU��*����s�kJ����������J���*��� ����7i�3)���Q�	�G�����S�n	������J��^N�v�;kv�=���0� �$TOJ������Pt��2��%^x��N�d9y�&uNH
��QN�j��-��7�/�'�����hWo<B�Jk{c���DS��5s�s���h�O*�]�o�u��L�^��c��|��
�����'w:�>�Z^���t	��P�q�[6��8����V�]���%�}��	�Q8r�������r��[&���x�]�W�������|���}���uf+T�u����x��*U�-e�[�zn���r�7	Ub���������^K��YJl����q]��E����;Y�3�����7�+P��A�(�j����R�.]R�2�;����w\cc�����{�wv�]��n��9�U��� 9;'v;��W
�=��Z�l�|8+I$SZqg;,��u�Iu�����S�������.�{}�q�JNB���(� R��z;%i��G'��]�]�f�J��m�����������n�*b�\���w����]�w�n���5�|$��>����;vIX)�1��MV1�u�km'`j�5,�d?�@V_x����������e�Fi��&�����{�>��qR�lfr�Y��eug'��
6>����%9�T;��/'&+���&>u��g�9�7�SWK���,�t)k��*�[Z�Z���������M�*[�r���h�����D�.+.
+$�P�]3��o�K���gq*�1o.%M�8�V\W5'On�0�3W:�{��M;��Q��]��k1kY2w]Pg�u�f��4]�r��d-I��$������rm�����L��dm�6����7����o�C%YR�j�+�E5r�:�5�������{�
�����:>�tP�uqf1z�[������#�@t8��8&vk��S��/C|���e�U�����j���O
�U���`�z��]�a��d����Lm�����������ij��N4F�x���
�/���)�X����RA��y$��� �H�$�I8N�C�G M$I���|��@������7_n��{U��9��RTk���[�ZE��o)�����wf�q���vf��lB7I�=km��.V^l8�{"�+d�{m�S1b��1@7�)u�����=���A��������w#�� �����>�!H�@Ss��-J�����;���uC�=���T�������c8V��U��w|��Qr����}[[x$�-�Ge:"�i	�uf>��*{��Ez�����h��o��Y\0	o��cP����X�a�QS���:��As0�.����/rvg�?vX��
Bk�����~A�s�HAU��S�a77����01��Bgnp���XU�iS:.T�7�#/�������8���(��h>�[��~����[������@�����������;�l
(o2�06���=���sEq�vl���	��� �V�R[p�������u����w�y�wF��O;;���F��IR��w�^�����F��0�J������tm
�Y�������Y`��OM5[V�A�:���C1�{=YR������/��|JS�1�)%}���w�2f���1�%�2�Vk�u�ze��d�<[�YX���0v*;:n��G(��e�������5�����l��ev]�aO��-���������>�.{���ug�V��d�Q}�y�ep�4��D�S>3��b�Et���:��n�����x�V�I����v���z�q��n]�
 ���r��]:�|��"���5����;]�_o����t\���1b�I�n[��qZ��d��}~�z�wG���VF��z�:~���=�p�:����V��ju�aU�������y�
�����I�}�)����m\|���VR���M�h�����8\�[�K-\��������gS���
Jzj2P��;�D=���RVw������}R<�a�cTMq5��<-Q�;���:o#yL���N��xw��74���_<��N��aN=���e����9�������H�(�[[�����3&��[Y��Y=�9�s-���i��w!���6�4���?��A�I�D�h����A�PT��&���>�1���U��`��VU�l�.�"��s^m����n��S,*x^'�KT��-&rlU�������T�Q��J_*���5U5�I�����.Q�F��?
b����L��o��������~��WZg��hTp���x/Ty������������3uu�NuS��O�V�h
V�h
V�mT0�}���}������|�@m8/U�
���C
TT��
�����
��
�����;��f������*���w]�
����8mTw<�P���
��������{��z����@*�*�*������P�Uw�����TTT6:���n��9���*�>��}���j������������9��U5PPP�UUUU�P��q�^������i�fv����������3=��/�U�\���U{������I%YURIVUY$�eU
����N����0 �� O�M�k�i�����SV�y7IW�BK��L�����M�f�t�tV!��$�^ln����MN��A�ky�T;�2�o7��&=TIn
��Nj�
��g�
�������f+22����@'�6p���������fgl��������33�L��$U�U���U�\�%s*�eUI%YUd�����eU��*�~^��$?Aq�j>�O�\RW��1�l��P�kL��0N=e��
m���R�/JPZ���-�qWSH�"�R��j��������yk�'r�:�I��he��R��3�5��S^���B)��l\��9�<>;��o,�O������+M33�g����L������y|I%YUd*��e��eUH�*��D�eU�*��$�eU
���$�*���� ����}x����_����V$�]e^�����t��F�&-Q��QN�4U��F��(���GEl�^�d��/j����3gl��q����
��V�E��e���������>DC�8��mB��z\���������4�4����3333=33�fg����*���*��	*���J���YU��I\��$����U�VB����$C�'�����4r�dC�<Z����`�S�������P�����l�d\���n8"V���q|Z�3�2n�S6!�D�� �����k���c�s*EQ�������.�1�V=[������������V�fgl��������33�L��!VUTJ���VU~q����T*��YU������eUH�*���$����ayG>a	JX)�FH�����������v�5 �����[�,h����L9��v�!���R
�kj�gU���6��R�T*Z*h���y�[��q5�L�!T���y�>���������z}�oo����3;fp�������Y���g��*��$�W��H�*�I*��eU�U�U$�eUI%YUQ%YU�~��H>�x���x��c��?�V^$+`�Z�T���wi�zK�gr��C.�]�k�����q1�M��;�v	�B�X��]����7���A������s[&R�s�VX�������lI>�D~|����o����4�4����3333=33�fg����D�eW������RIVUY
���VUX����B��TJ�����"L���	�I[�������3��!?*�n��3[ZQ���q��ow6�m�W�&��a���r�L�C�kf=�}Y��8f,0�4���z��
�������1����[N�T	�Vd����'��W�}�3��4�4����3333=33�fg����*��$����U�T����Es*���U�]�D����T%YUd�VU|��I��}}y����g�9z��U5X�� �d��V4N�jb�y1�m�skt����KiLN)�oh��������M�����*RFZ���f���6=]@�WH#�]�v���=�3J�L����3333�39ff{i�_"IVUT9�9W�J��X*��$J���YUdIVUT�U�U`A�#��I�I�d��!��[3����l5N���V�j�q�W�1���[��xM���������C2�X��;�D���W�D^�7�I2�����
c-��Z���S��Y�d��������i�fv����������3=��/�����v�;w;v�w$N����v$�����J���*��VUYU�VU��������B�E�w���k ����52+�U�M�;�	\A^���^�8�)�u�[Q_=Vx�+#Rz.���5)�"S�����e�����K;Y;����+�i�ob�F����������[y�;Z����A�+��W �2a�v���|�+U�U���0Jo�r�u������h��d��9�n:�wt��6����9���mg��w�j$�}�D���c4��d���J7�����,,��H��wF�&Wf�'r��yj������&'qYr�F�m7�
:;�wr����C[P�F��MX0c�xW��`�'��ts�8��Sw���:�����S��,b"/���H���q*j�r��0u�?��W=�b����M���_:�yN)7"[[v�B���$=��{�k���nk�����r\�b�;���2v���z[����V�����K��b�0d�����	������V���\��[�F8����+,�Ws�B�5�VxL��d�����M�W�a[:���K�Ql��������rm�+I���.jZ�-R8o(��F�f �K�����@+u/�s���\�z��VzK&H[�,���U����9�x	k7.\�Z���-\A���Jn�%%s-C��^S����:a�]��\����c2o�l��:������p��F��R�oeq���p������ud��>����m ���m�)�{k�^!���;�^�v
n�w�@��S;}\o��xa�J&������n�9�,����8�(���ZF������Y���\Wgg&�'l���*		,���s�������]���-Gy����F�����w=�Z���c�<�������Q|�Q*�������nf&�JW���:��T4Ky(���Y��`x�����\]u�{�gE{1@�j�G�\������K��������NS�(�f��1��T�7�g �����b��eeb�U*�3t-�tge���7�j��x������u)lV��Ykk:�J�z���($�-KY�}�
]^�)�����5�����A�gv�'<�;����%�;�t�*�0e����V�\K+��W�6���� �w$H�N$������eiYi����h	�'@�	5j=�;��4G#L�}"���"�TL����N�L�A:n�����,d�y�����\#C����KWA:9Y����'�{�{��H.f�%W�0��-���I��c���n�3bNp�p����3U�����R���x���L����[��{��p���yt��FV����!UFx���	v�4{��b�� XB�:��e\��}|���,����4l��d����\+�����z�m��G/��9����
o-Y@��=��L�%K�9\{c�q����wOwX���Q�8�U�k1�������;���X�w|�u�W��H��r^w�'D��Vl�>r�����[�C���Ws��&s��;B�a5j���a�G,���kP�[O(l��Z���A�:4��z�X&2_����c�>����������]�@��oE.�s���YurwX	��x�[�mY��V��e���[�u���=$7vyN�����r�0��g;o���VZG���6Q�6����GW=��7�����l���K���@�/�i���,�=�.���������P���zA���s�u�C)��W��Q
N�J�|�X:u@<����9�P����=�q��Tp�<���Nm�f�`*4���T����3p��Y�T��r��4f\��d�������+Y5g
{���UK����FbYM�h�r;�{JM�vK�a~�mB/3�6NY�^�AX�,�`)��Fe�A�`|7A�5�
�3�&o���S{�J���h���Gt���9=:��|7��q�7����{w^m�:��`��)�5w�S��r��������/@Y�i�G|��
��2VZ�C���l��G3pj��Or�u�����0���e��R`7���c4����.
����@�<+��7���"�����{-����R����5X:�K��mho�q�`����}�����3�1X�jb���8���nz���y��y-�.�v�oM�l�%����s7!�������Y�</]A��y��rj`9��y�����@�>r�s�d�5S�&�^[��fl��nY`�C1�f'C2��,�����3���c�*��
��{o%���F�u]d�1�FS��������c�-��5wx�$������]]CxOp���z��7U6��^�y��`��/^�����]n��T���O�V�h
V�h
V�mT0�}���}������|�@m8/U�
���@@O
����y����
��
���y����n�;���
���wz����j�
���;�z�luPP�UU|�����{�T����@@C
TTT0�C
T��F�wPPPP�UU��@G3uPP�}����m_>|�@@@@@@@@@��z�a��*�*�����}I�Kwu$�KF�k�Ip��F�<{{{f�����3�fffg�fr����<�*��$J���J���J���J���
���J���*��	*��'�'��k��<u���<ov�d���nZ��$4s	�r��Y���$E�V=	���iRyoaT����-����tC��5��r������e�����|���OO��=�3J�L����3333�39ff{i�_�eWX�Vt�"J�������J���J���*���*����*��$��H>{[��Dg����L�Z��$L�R����$�����jlD/&������r^�%z���q<(
�B�{�S��X�IK���
�=
6G�=���yv�������V�fgl��������33�L���YUd�U�V"U�TIVUX�U�\N_}���]�;C�s�ni��^L�2^������}��������.����;{Q�u��j9p���#oF�f�5az��5��6t��A�����m�[(�-���]A���Bu6�D���S���J�)��#�����zx}�����i�fv����������3=��/�D�*��������J������H�*��*���*�������w;N�����rA�z�<�������+
j�c�6����O�����x6,q�9y"R���u{Vn��ZVXx'��vY�1��3c'I����^+WB�����N�)��(X���W��^�]���oo�����3;fp�������Y���g��eUIeY*D�*����xx�B���U�^�C�s�jeW��C�s�o^-��}���^t��������e����kVUI�4����9j�j�71���3� �m����IY5�TQv�r;�\^���X�,w��Kj���zH�������eVfT��!���9�@6d�����||f�����3�fffg�fr����<�J���VUY
����eUeU�*���Gn�n�*���YU�$>����^p����&��n��2"K��&]����zh�:���b���Z0��C$Ne�v�f\
�h%���;z�&�|`nZz�����J'G*�;
��U�,�4W�PA�:�����>:��q��G�t��>�o�o����3;fp�������Y���g��*��N������$�*��*��H���V	VUsD����VUY"���rA����Uo��^�I�a���@��A�y�/�K��{FJ������Umd`&n���r�v=��=������:�V���30��E��A6��n��W�T,aV������4|~<<=:tCM33�g����L������y|�*��"U�T����U�V���U�VI*��*��IVUI�$C�� ����}��W�����3���^f��&6�����dN��BC[
�����M��ZM�wu��Ue�����L�XR��X+�T�z[u)1p��46)����N�n.�nf���'�pA��&N�>}�>>3J�L����3333�39ff{i�_	*��$�eUeU�UW2�\����;v���UUb*���U]���I����v}[k��1�p�3/"rm�nS�,z]al�;Z�b��(��Em#\*(��m���Mr*T,Exx��q����(����U�V-�	���5���Z��,?��7N���|6�K�<|UWoO�����4�4����3333=33�fg�g��$���������*��*�������j�UUQ*��0`�G����m��<�seX�J33�b��	W�[�-���o!�5��d\K�]����!a8C���� �0���j�M������,�n�`��*�`�rm���z��/E�}��t��L ��ps!���V"%��V�g	����
�@/vk��F;���j�k8;F�u���������������]{+j'U��!GL�M�g���)��V]D�W5nmS�+Xr�z����m�3Rwt��j��Z>��$����h�������M]���]��#���M\,���/�L
���*��oTl��zwM�t�;�1B��2�O^���bW��wt����t��M�����,�7���%0Q���vm���V0��s,\�3��9��W:��N����D��^�j��G�vK%MclZXe]����|��r:��(ME"2v����]�/p{�YA���$�t�d8���r�S���hBt���������wT�7�#���/D�/����_%b��Vs)D"��,a9m���<��5W�*C�[��2�]�Qf'*^_�5���B���liag,����+{�X�6��$=7�9�=B��`/j\I�Tj�:����#8�������)��-��:�e�oc��W\M������MM�i��9E����J��zgS��]�������(t����x�jc�5����\�9�3iV���w�s����lj�s{��U�������B����������K����`���vu��'�7�)e+�D���Y����7�C����e�u�}����r��Z�iI}�h]��mQ�c2��*4o���koq���v�����(����5��Nm��7��`s�OG ��+��	��u�S\s�f���]x/l���O�1�P�gq����!�����O
8J�"���D��{�������$����B��-���])[�yu�|0M Q���A�d�-�yw[�e�e�r�%\�	=F3��=L��lUn,�x����Y {w�T����|����F����G���	0�g�v]���g��4e�p��"�U$�1�V]�� N��I'��$p�G��$�d���#��"p�	8$�$H:���>n�u�7s��~[����u�B��
�����]��#U�5"���h��������������c�,<�s�u����X:��w���zs�m�t�-��dL���%r�`
G5��a,��Q�B�X�u|^�2�����h������|���9k]���vT��|����|�P���uBj�"�~�V�m�syn���pS�i����� ������.�>�
��{{��{�S>��Q�c�>���Z�8���Go����l������J}�F?&6�fF��9E����^L�R��j�{�>�s��5c���/"R��]{{�����LK�6���C����"�]������q��3�(�@�W����ieM�&�z�������l����MP���M�����:s�V����+s7@z��;���[��Ti��w�WY,�)B���,������eb�-_+�2%S��7Bvv
�x����^��V��o��`�}5M�8]�<\�h���:���+��8���s�0��nL�y4���;&��+g���:#.�M�������6���e�Z����fmx���RYE��������#����C}V\�,����o�+��6���&����sn�};�1Q��_C���I-���F�|�TbW7�{�Bs��u�N��U/����>u�fR�����"���>�w�K��|�Jww����9f��������ya;�O3n��y(W�������;���[9.����S����d���r��=���t�%�Gl��,4)������m�}���	�z��i�!�\�V'j�]@vm�bk�F�b���o%5mxX�-�-^[��*]�����i�yM�?.~�xBZ]D����IG�VM���u���z�/�����=���{L�g%��zomi�&S�j��"oWz$C���:w
��]e6��t��w\���|���>s+�`���p'a�Z��qeDs�d.���*�/YD�7��7^���
��S�O���w���X����;h��7�n�����{�����)�2+B����I�qj��p����I����u�;�	�<PV��5N���)��%�d����4&+B���k�}�y��&�JO6��s����eR������ F�7h5zZ�e��P�� �Zz��
P��@|�M��P�� ��6p�����`��v��*��'t�������h�������3�U���������z��uZ0w����wwZfn������9��������0��*��*��������z�|o�(�/U�
���@@O
����y����
��
���y����n�;���
���w]�w��a��*���y�����j�
��;�7�ow��>���������a���������
�
�
����9���*�f��
����w}���|���*�*�*��UUUUU<v������@@C
TTT]M���u�>;v����������W��fgl���������3=�<�IUT�����UV$������*��J��UV*���!��%�-�O�&Zf]�z�WMT����/e����}�QXHxIW7l��JD�=��NN�KFb,��1YV�n�Uu5�����m��,k�1�Nd�w�������
�=8|~:xzxx �{���333�fefg,��l�/�*��*���UUT����������%UU$���%UW�� }�����]}u��?V��(����K��Q�K%�
��+�q��y�i%n�[�JQ`�6	�w����j��^��\���u9�N���()�q��C��
CWqq��<N�]<�<��l����+��33�ffgl����Y����_��n��R���UUUU^����n�EUUI*�����Y��?H'�%E�uZA��I��S+Q�����Aw5�n�P���3c�
�����'E��;�
��X�F�"V @�{�yF1(`�yo��,���P�L�*�
UJB(M�/--��f��|x}>�����W��fgl���������3=�<�"UURJ��$�UVUTUUXUUTUUXUUXUU}���^���=���PS�L�=	h�w�j��z�P��4�to,e��p�+K
n(��D(!��[�
���Y�2Q���,�j;2��9����hf��8���;zv���O������^��fv������Y��33�3��J��%UWN�:t���%UUEUW�=�n�;T��N��v��T�� ��L����j����%���Yb�U��0����������pF75�y�a��nu����a��#g%,����e;�;���N��L�!6�+V=1�3!`�x:�r;�b�Z���.R���1���^����O�||{{��{fgl���������3=�<�"UUY���������%UUEUU%UU�UUd�L7��$~W����_zZ)��J���-fC[�\*��j,8rA���������L�����lCz��9F�D�ib�9���ka�B�(�����8�	+ot��t6F wbyiX���[���o�{|{{��{fgl���������3=�<�I%UU�*��IUUEUUUVUU%UU����U_p��I��w1�/��p.����Hg����c��j���sV2��jGV��:�a�";��d��B�V��O�	��j���X���wf�t*e�Q�����
��qS��		:
�8z��}��>=���=�3�ffgl����Y����W���n�EUU�*���UUbJ��IUUbJ��
��*���q~cb�������r�3o{M���'�6J��,w��]���Z����C����@�d9��w�Z�&k1D�0���6a�En��X����):UT,cK4���HS�B$�s&�M��_��{����333�fefg,��l�/����*��UUY*������n�%UU*��J��UUw!� ��>i��+6��EKV�~�u�V<����
��j�<�=�s���P���t-2	���(�����X7X��'*Q�t���D���Vm�X�QZ�#	���.��z5p�0��g����������gl���������3=�<���N��v��N��v����c�n��*���J��b���"��0`�����f��3v���(T���#��((a��c��tg<%=1�K0�A�ojU�K�1v�i2��,*7&�b2�r��c����1o���+��xL�����oZM�N�]KrC0��1K �����M����A�����i��
W��mObJ�w6���5�Gd��H�4h���t��S�W���F�1/N�8g�����IR����2�k)b�p�j�_H�&o��X>�ZF\��u�3.N�v�;�#:��E�RP�*���W�����Q���;������7�9m�x�3h�YqEh�&��v�e����%���{z���O_Hg;q�����31��vI8Va�j�Puu�������3�������
y���D{[S1�������W���E��e�5���G�m�iV����Z�f+�Rel��@�U)����J��a�x�*�
���w�$(EXs�����50^d��L��������.��y����L�$����
�e���r���Kj�j+�Svv����w@�O��-�K&
��_�kk4*H�a�|{^�������@��s�*T4r#V>�7,�g�:��]�����fc�wo;+������q�*
����������<�*h���
�L
�`m�v��I"�u
����wLJ�Kq,�;3��eS7fz\���C�L��*�J��[O����u]M=��Q�:��X�vn%�;�k��,��Q����Y�eJ��H���#s�������n��}V�>4���BR���u�n�6^^;32[���[.��{r�m��<N�5��$=��M]���
����W6��0q��1{z5��h��Jr���g�����{�|�)�z�on��������Zep��-@4�0���c�=�WFe��g	o4�.t�+��mnX��F!�0�&����mM�������]�F�S���n��������j��q�yqK�m���P��a:���*���e����I`"n��L��T�#``����S���N�������N����M^��uX���wFv+��w���Y"���17]Sn��V�K�������������	0$�O���j�����������ji��_-6�l��e-����]Ji���]�8��_*�n�����c��5S��<��wH������+}�+*e�����%o�>U��������u��ed������^V<=~�]Y���9x��^����b�t���].l��D�`�Ok-����=
>�����~�b�(/�[/[0�T��%���tZ���~��qd����y�(��'CO���������W��Y2����*4&���m�����=����eU��f������\��'.c�T�Ow4l�K�U"��z�d��uR�\��B��r�2�����U�}�����:3�#���[��{�y}�K7��}7"�����
h�b��o�67x��t�v��B:���%j�ha#-&4^�"a��{-o���}����T���Z.��e�F�EZ��jg���2�9��wX$v�I7CkL!f�u�<>"����~ow�M����xK�Lh����2[+F�g����e?K��U������n8_.����Y�m����uw	�r����|�V�g�oW������*�/$��y6Y*��flV]���eLVf�k�<k��+�v�F�������W��K����)�5WUn}E<���*-�W�PV�"76�q0����_��������hOmkk���>���\���e��n�
�e����{Wq,���8���y,����\�l�A�f����$l�Q��!��������6}W]��|/{v��
���<������B��H������;��]��������{�2�sY�r-�I7�t��������OrS��uN��U)�;�4o(v���yX����G���H����K�^������Z�M5��9t��Y�f���n^�Q����7]r�N��;������e��|�������.gc+XX4uNj���p�z�u�g8�W_��{Hn�
�W���~��k��}�`������=�%+���k����/n����E���uos�vX6�6���\�P�K!>��V;9hI��zh�V�k:����	R�����'�v��h��]��jr�\������Y���G��i/]fg.���M��
g>}C���n���L��<$�������{���j�df�5��[��d�oj9���x[�����l4��thC��[���`�������r�j
��^cV�%���q�hi�D72����Ph�h����0t�������Zw~��9������;r���������=V�����x/Tx��@n�w�����L���{^5S�7U<su[N
��j�`�@j�`�o����������a�|�
�`�V�*��U5PS��*��wz�*��*��;��9����Q�wU5P�^���wP�UU5Q���C
TT0�@@>w�o|��U}���PPPPPP�U5P{�m�@@@C
TTs7UU��@@}������|���UUU
������x����G
��*�*�������In���In���$��2d���������^��fv������Y��33�3�|�UU��'n��XUURJ��IUUdJ��
��"��������I'��}'{����������-�fYDCS�[��wj<.R:2�Oj����/4��2W�X\Y�cJ����,�F��U��Mt����:�����@���m�2R�2Q��g�����������Nv������Y��33�3���n��x���n�����N�-UUIUUj��N��n��%U0�I�I���,��w{��U���q���;����RQ-�$�fY�J9��B�fZ[����w�3�(���V�WI)�_��:�[J�9��by{n�%j0d����3v���)�\Rn�z��^]�<��ooo�or��l������32�3�fg�g��UUTJ��"UUY$���*������UWrz�$������vd����$~o�>��
hB6��"_������In���Zre��#�����e���l�R&���enS������3Pi�hS{Kb,��Vb��k�e�f�La�3[���s"n�,^DJ�O]'n�__o�||{{��{fgl���������3=�<�
��%UU��������o=���n�UUR��v��v�d���! ����n,��z�qL�U�e��s�k����M���H��T`-����^�hZXd��
eY���7~zt��4[���X�Mb��Q��Q�q�������A,zE�m�1b����r����:z|z}>����^��fv������Y��33�3���:t���(��(��(��(��(��0D0`��(�	 �����~��f�i�=��:�3c"�N�4�2�/ �bFG!�*�L���^�����-dqlW%���Y�P�q����isTP[&����w2e����D��,\�%����S4���G�O��������gl���������3=�(��(��(��(��(��(��(��(��(��5_	�'n��sP�f����K�+�2����E���B�eG�P�4�*����0����W�D�fc��-�)\���]�v��Si�����v��H�h���7y5���D<U��x�6���(K#&L��>?oOo�s��s�3;fffv�����������UU��N�:t���N�:t���N�:t��UU�UU0'�&5������a}��eT���!7u���w���w��(��U��]���^l���h�uQm�z�Qy��3%EV$�g1�
3vB������k��V��\�K��*���*Uc4l���}�3���+���������3+39ff{fyt���N�:UUA��(��(��(��(��(��3�~T�����
��91�3��E���M��}�zy�h�
�nk5��!,��U�sf��k`;�����2ue�^B������XY�*h*��*�{8 kLM9���R�;4�=������O�g���W�����33;ffVfr��������N�QEQEQEQEQEP��(��?|$�W��o<W"�.*��E5M�a$)����*\T����j.�����d���o2����U*m^��V��u�q(B�ER�)�[9�v��R���7or�xR�~�W]���J���������+���������3+39ff{fyt������������J�U]:t���N��U]:t�����<O����G�\���p�[�o���;�9�����&�.�����_�����{o��;�o�[���e�U�������7��\�%������>22Y��O�����~�S�O/��$�?9�Go�Q��9�8��?����Q����H������#����'�O�> B��'�O/����u�"A	c�G��G�?�>O\<8zv�o����A�c��X��������/��{�~��"O��'�#�N_��x�D�$y��!��"q�D���1�%��9p��=8x#�?5� !	������<H��?|q�,�v��]3�/.i?k�d~L�I>p$��"�� 9�$���p������hB}��xWI�H�����N�c��?���/�|}���%��'	?�yr����.��a�?�d�A	���r�t�8��O�$�~�N����O�?���;�'��C��?bO�?s�a�H���B��$�BW���g�#��?�~�X��O�������#��8~��$���?P��� !	^c��/�|u:~��.'��I����<I���?��~��8@�'�r�'�r����v������G�	'�����I ���$�����Ib�G�8p� �~��)$����GO�w9�$�Oo'�N��bO�R<���"}G������	R}9$����O.bs��p�����$������'���D��I�	��~���=+�q$����I?C��B~�'�p���Y:�9~op}�?[?a'�����7���?��������?t0i�>�?�_W)��W;���I$��}O�q��S��'�)�8t�I��!	\��+����c��������B���+��?�z�<��O�z���G���GN���$����'���3�$s?(��r�%W���������8��1�S��8�� !	�#��?���O�'�����B��/��$��~o�Fz��yw�8��Qc�8I�I�'���9?c�p������#����$���d�Meo~�\`��S��K�����y����0�!��|��/|��PAMZ�ie�[-lh�3I����Zl++XA����f��U(P"��&�����P�ZSf!�j��
3ckD�m��Z�a�RK01!%V���T�j�[E����QZV�h�4����U�{a�Mi���"���������J����������SY+m�m������R&��)kldSMf���R�5�m�h���kh�5*���J�6�kmMM�i	H6���J�e���m�j%i���i���]�����6��e���vREv����PR����@�l1�v;�,cc�lcu*�j*�-Q����uH�][e�"(����08vl{n��ck�Wp6s�c�U�U���PZ�����UEf���N�����p;]��`]���`[�d���;v�[Y�h
a�*��gZ�R��F�G`x,Sz0'X����2��`q����j�����f[�u)".�M����aq`��o8v�p����l0����D�H�+b�91$J(��A�9��\�����npvF�!
�F��]���A�b������Y$l���R##�����s�k�0���#�wt��a9D�M�i�f���d��V�aa��3������A6���c ���5N�m�-�4�����th��-5�Ql6�x���0��^�la�������l��R��m���U�����`���Ue_����7pwu���!����!��i�����������������h��@E=���H�0�L���b)���%)�24	���z< �(RU14h��4C@I�����&�I���444�@���@4�7����L���
��M�m�CF4�z#�?��{���8����d~GrH���?��q���Lc�_F�GZt������k���I�H!}����6�M�����������/�����]�����p���H$��$ O������!"��q'h�O����$~�+���eV��I4��z�����������I<Jw$�Nd�A	��O��4�S���8����c�����+�Y�$���2��	fQ1!&#<q0�$$&��	��$��	�I0��&�" ���$&3!��V��	��&3d� "$`��@"H�$ ��Db1�b��������)�(���r$@D@` ��!���HH	Ha)�&	Ha)����������L�I$I.t��&L�I�v� ��$�$��� �!&H����3	��&IfLFD�$�Lb	($����f��fi
f$�S(L�$&$�fd$!		!�I2$����HHfd��	�����2D!	� �c1�Y	�����(�BY�f��0D�J2a(�	L����I�d! $$A�%w]$!�I$Lb	1Bi�C$d�$������L��fB�Bd�	@DDF1hJCBD$e3)
���3)��"Bd		�����L�LI0b! ��$&2Bb&L��(���2fd�"fBI0��(�Bh�A!!$�	L�#����a#!�)������1�1�1���RD�$$	��L �I 	s��(�D@`"A	�&2b"(� I����$$�Ld��  #L��"$Bd�@B@���$���3!�@$32�@	 Jd� � I��#�D$�	2HA	�	2d�1�&@�$Bd�II�"�$���� � $�	��fH��d���	0�$Bd!0��	�� @�%��f@����S2H!����$$�L� �"!2�d�I`�I0�  �D�H!���fbC	�� 	���	��$�A&H�`�a �&!$I&$��B@��L�0�$$BBHL���13L��IBfRA$I$d��"e3D�a$���A�1�c��&J-��+nU�2L@`R�JD��R���u�@L�� ����F(#��E	�4�(�L`���2c�$��Hd�0�D�"H�9�"@�&L�iBBa	!BED"�
����L�A$$A	A�$�d�������HBI�e�{�����A0FLDAA��0&H �dH!DBPFL�(0FC�%&�#1�Q�2 D`��1���2I$��JfL�@I���%$4�4�"&�JF`H��L���$�H��D��aL2!�1#�Q�"#sj�!(�Bi
0(���H��D��f��JRE)BJP0��&i	(B2FI
d@�2�A&L&&d	3("@D�	�tD�bJ(# � L�a0L�� ��$�"�'v�F���d����bBLId����&3���1b�1c�b#I$@�$�!1$�P�(B�FD$�h�i
M����H�!�R3e�E(b�dP�0�&D(H#0��I�
$�%	��R!L�o��������[_^�B�h�,��`		�0�2d�2��I4!&e2��j"
e!�I���F�� �`�e)��2�&bI L����A	���!2H�S(���P���L&0R%I�c�1F�F!�$�"��$�	�63B&�Q��	fl$c%Pi��B��JLD�E30&�L$,�2I��2A��������I�)(""��1�%"D�$$&`2P��$�&I��1I���,h�E��3#Jh���$��b	"IJD�I��3!	&SH�d��I���D�����I"	�&��%&HJH��Hd��LP&��3M4DA&2d!�a!�H�H$a0)�2�L�3 D��0$���d���$��I2d�� �0D�1�2RIIIJ(��	@H�2w\�4b1��0&I �	@0���"P���H�"ffa32fA$D$�	���$D�"Ld�&C	Hd����QEb�1��a"H��0I�BHD&0���4G;��bH2d��e	��1	&L�D!�"0�!��BP�$��!HI������L"C)&`$!$$���B�L�$�D�����@DA(h��D2�� �F$�C"B$D�I4�$�������b(��2F#) �I �L�%$`��&$�I"I0�&�d�BL����L�h	�@##(�� �!&0	�DbfQ@B$��J)$fP�1$I��a"�M$I"!""A�$��� d�Dd"K&$��&Ha$�L�Fc$@$ 	$S4b���$`��1m1�
4��#B$ID$�P�RFC	 $���"$�2L��"PPd��D�aM
BSb1	��D32S2C)2DE�2�DF#D�FC$	0�M3D�c&$���]I�!D�H��"@B)�BL�@� �$`�!"@�	H�H��a"	#$���3�`�beBD`��
"���1�&�M1�R3�1�A�d��E�F@`�e����E)�$��(JBdP)�BJ���(�"#��!1	f ��&J H 2Dd��H��!,IL&cL��2@hh��$� a�!	��`�BLb10b"J@���Y)4��H(�ID�+����� !d�2CE0D�A�LFI""P@� (� h�fA��$H�2���X�HA	��B#A��L�4��IB�b�fd�B`BLI$`4i$�I�A$i1����a�H�IM2E4��D��"2@�&���2H����2A4�I�)��$��&��!I�0X�1
dL�R6@�RF���,f	�%h���F �EAD@HDA��$$�$���4�H��$I����$�	(� � �) HD�$)�I$0�P�L����#H,�J$�(�fQ$$II�H�B	!	�&`$��� "L�$��2E�F"L�HH��@B
a �HE(@��$�4�F	&M&
1H�&�+b1��F�&B��3&�KH
4BI��%$���D��@L�d�D&���hH�� 6LDjB�1A�I��%��@�LE�X�h�QHE��L�F�d������DF(H
%$d���4�#���02�I�F@����&Y�&�C	�1�)�$I!AS(L�$�X
"���c@��4����L�d�#F�64�m��*M3h�����L�&���b*�h���E�b�6�"��D&H
�1�I�4�C&b6Lb1�J(1�%�"2Z6,X�����a�Q��$%QBb)���!AA�I32 D�IBD��i �������� �
$dHd �1�(��"Ab�Dl
��� ����"E&J�@I0��"4h�"�d�D�IE,`�#I�"#F�C&�l���@I�&b�3!BBAQ�������L��FfH�TG��u�#A�@cETTh�E�����1���-l��Z��E�	 $���Fj���mS2Fff���d�$�����D@�R�&M��L���$� ��` ��$��d��L&6��L$���L����I���2A`L�2b1�?��f�������w����3�����t�������I'�����?C�\�u#��x�K���g���'�o��x?{����sk3k!��k��cZM�k�
\�-\���cch��~r�b��j(��b�b�b��W�TU�Ucb�d�Q�j6�E��j4lZ*65j+�\���(�,\�sX�Z5�6��,[F�b�E�Q�cW+����"6�-�X�KY-F�1Z$�m%�j1X�
�,�W5cQ��sX�9lj�MX�Q�-IjKQ����j
Wwcm%r����i6��k���5DV4Th�6(�5E���\��k��4mDV�E�%�c��lZ5��n[A�Z���j5��ch�(���Q�1���F���E&�M��+����\�m��sT��Q��Ql�F������\��5�X5�����j5Z6+5��j�5�X����jKcQh�V6���
�+��s\��F�Q�-IjMQ�F+Ql�����j4j+���X-����\����b�\��c�Q��F��m��Q���\���5�UsF��j*"�*�b�cQ��X���V*5�E�W5sQ�U�EcQsk�b���j(�l��h��F��j����lX���W6��Q��j5%�6�F�lj5�F�X�lF�����W5\��F��h���nN�nm�E�F��j4j,Q�b�h�[lY5�m��1���5�"�j4j*�F���lTQl�-�b����+�sh�J�i5F����F�b�X�j-�F��k���nZ1[��Z*#h�ch�lj5��l��b6�����"�,Z5E+�j�sk�+5�W(�6�F���EE����lZ-�\��jK\���*�I��j�Dm���F�cQ�b�cF�k�E�[�4V��VMb��l�cF6�b��j1�����h��\���j5����k�*�F6-�X��j5����-������k���sW5��X�-�\�V5�X�QQ�5�F�W5r4m����.j�F�RkE`�[U�F�Q��h��Z66�����m��W+r�F�lj5�E���cQ��j5�nm����(���5�F�Q�5F��Q��j5��4V,m�Ib�����lh��\�j5sW+���Z5�F�Q���E��F��j5sW5�����5sW5�F�Q����*�F�Q��EQQb�ch��\�j5r�W4V-�F�Q��j5�F�Q��j5�nQ�1�������j5�F�Q�5Dm�F���j5�k�Dj�A�
-DU���nj��Q���W.j��j5�F�Q����Q��j5����A��\�����F�Q��X�h��F�Q��j5�F�Q��j��j5���4k�5F�Q��j*4m+��Q���\�j5wv���+sQ��j5�m���Q�5�F�Q��E�h���������~o��m�_G~�y��N���k���ZY�I$��������6��>��_���pb�������'��������~��M�h��$����8��^�lb
��_YE�9c�����������|�P]r��:P��l���������� �����"�=i���,��1���t��v����k���La�i����CX���
<�	�^�b�'!�Z\H�����*��L�#���������3^C
���������;Ql9�n
�mc[�~��=�\Y�O
Y/��k��]�t*73�3=fNEKc)xs���ofR�t��v�<t�������!;[pGq���om�,
��i��F7U)\�.��	�+�m�d��i�ui23X���y@���u�y�.V,�N��T7���G:b���`5>���J��
�z*�d�fq��hn��n����, ��8f��>�0q�5��OKM��(�/%=U�f��\�y�e�t��Y�-��vm,�����t�f���wdU:��0i�F��'7���\P�D���,����?<��#����Yg����p�Qr���4�z�%�I�v�zD��;���2���]��!��,�{7+�����j�	Ig.n���J[n�����i'(����_�����G��no���j�+�B�d7���f!@��{1]�l���"9y�+fQ�e��kY�����_��}���rjSw�%*�[��:��f2i�\I�EQ�[�1��p��#�����D�*���f�u9���9���c3Q�	�%��t�ty�E0'fU���K&!�"C��������}s���h�&U�+�7����y���M�������������_
$�K�� ��nK��@�[&����k/��m���L�)��m�}s��Y\���Y�sM)4�|vw(
���Z�p�E�����R��O^��[ru��]ZMzk%b�{��
+���0n��J�osr�r����@vHNft�S���zJ��8��EL�
Ze
��&@�f�nw,�3�����4�=�Y�i�WeECN�G|$�+�n����F��]��YcxK���w�(u
T���"����f���`�m6��;�����>8����O��I'�I��z��r2P��-��{/��
q��L����
��(�������b;�Mb
�z�#��(��eA&����/��}�S��]]9�
�����k]�5�W:.��������R����W]��979[��j���wZ:�NqA�����i��
��v> Z�.��Un�E�2�����`<n���^u��r7.�f��0u�IJ"�D���,
i�����Biy���Jn�����+��{�7�b��yH�]��f0���7g^�i=��f�_�Zyl�@0�wT�aGT�bng:�"�E\���lVdB����]p�M."���]�k*��d��d�f�,r�.����k=A���������6��z=��������E!m!j���u��:������u.~3���[������8�9^s��W%�;�
4��� 1�S���� j��{����Jd�0����!��7Oay��gg,�X�vya^85��vq�X�,�E�����@�r����x�AH�(��������C�
X�0i	�� ����]+��c��V�@���6t���c^f����X���M�����M�0M����	��Khd �DL����^�c���U�������m�CSu�)��O��fQ M��r����:�)M���P#���4B���O-t c��MN�ftv���������������3��MN��G7�pqe�T{������V��q���MnwV�P���-��c�+7��*y��X����-����9�X��*�����������B��`3���~u�2���n�z�_u����F�J}6d�/9��%Z�k����KV�������Q�&����V��m�����fjP<BZ�`Rh7I�u%������f<�{;���M�a���3f���������x[�TU�(�����X3B����w����}�/i� �H��k(��NCg)�[x��������Y�zgRpq��0�f>
�owt���D�{Yq��<����������E1A��vJ�f�W[��-\���w���D��N
�S�S�e����G)���WB����������F]&��v�_K���'$��G���c]i���Y)��:9�p��z�L��5�4��I�V�fh���QOa���b�+�
��6��}�&m�%����t��F)�|�N��,d���&d��
��q�h>'R2u��l�A�{2��\�Y����aY!stR�@���n���|2�4�y��L���}.��^gY�[�$��^�!�����Y���G^L-,��7�	����,{x����)�]������zO�m�
��9�X
����.�7u��i�b�8+Fu�����a=WPFn)�!�!�vV�������3x�p�Wt����*G�7rM���������36i���(�vh�wp������gH�t��fP�k)�DF��x�g@Vj����I%�I	!p�������N���y�����!�b3��MW�e������������'����P>*���'��o��i�8j��c������Y73���(�V4��C��
�t������.TA��Z���j[�X.�F��Wpt�`�5�Gt-��J=���FvCQ���D/�Yi:��,�Z�r���� �����\Pb�^��x��G%b8mTX5�b��JL������������}�)�����c����\p��cd��d�~dI��F��[�yP�6�Gt]A��t��G�������on=�K�6�:�3)����TTu�Lw6��^�;����43�{3�;�lk&8�fef���1h;	#x�K��+��7�NQ��gC��R4rS{����U�MD��#�t��T������Ka���i��)���l��l�uM���HY������pY�hJ�Z��Y��z7� Q7��5��W-Q>��'�gn����=��-�f��Q���0�9��C���!�F��k�D����R��<��yqD�-XXQ���g�T ������V�sc���Z�%�E��z����	��i,)Y��|����-o_@s#��H;���(��V	[PL�����z�V��5XU�:>��w9�\�*�j�Qz:v.�u��� !GP���fQ ������0*��acyvN	�+ebx�������i�3�'���SN�tY����<�u$��`&�Q��3�9��.�)i�{�J�p������mx����:M{�����1�������XA������kE��
�]n������N�_e�s&�q���DA|�	j|r���6ka���� *Hpsrl�D�S�\�K�z2?FQ*��l�BSN���;'L1��`�2@�������gZ�����@nV`�ZrV����M�����w�^G5�kF�����;�J9��J�Fw~J������;B�����7��K�v"�[8uk���Ek��6��F.���G����P%��r�X���7��T����3�p$<��~�nN�F�jn�"Q���f��]49�AxyE�y�\;�`�m���v��_�K���N��n_xp�����j��WS}��T�9
�����z����)auu���U��M���w��KD����O�u����lO0!|pR\w������MK��W���FrR������}5��t��n����:�n����#�[@�v��row=��Me�oz�7|�rB���QR�Y��n,������}��C�}0�`�
�}�D��J�[i=I��1(�6��v������l6:e��, ���[����������n��5-�����WM��q�6��&)�_����R��T�t���f�xw(:
��9%�U^�b X����VAc��[�lWpj���t�1������+6��yT5��l��X������r������!T�)�Ms^:��=y�ti��`� �ZS�����fJ�����������.���S+�L
���������)}�Z��,&F>4���u��&�w��H�[rU��Jb�U����w��N>�nk��������=�S���5wNZ���a�j��5F�dm�Z�:����%'Wt�9NS��=�%Lw������$�v��84��{g���u���&vf<3:F�Z�*�f�J���7�qk��r�����F��������`Y<%�8D}��#syT�C�ZXk.q�[���x1�6�et�k�]oD�����M\�iG�����z����
��g�P�e��wJk38�>b����qa���]�)�Q���jD����Kw��������lJ������f!�D�z)�V@���nr��Rf����&��C/��"���3�vV�CI��@JE�r���c�N��^�������v��
����=-|C��A��1�Na���pL�^E�{�.�>
n�:�8�Y��77����*�b���#M���;�GP)?Ze���dj��9h�B��A����]*��%��0dSR�i<Vf!V^p��i3M�v���������B�	�i*A����\��7�e6c������nz��u�r��9[3�g�y	����b�V+Z��Ko��]�n�[�A$��v����a����<�����
M������f�i����]�N��u{����K,�\�Im�,1GL[�����R:�%+�43���|����wp�8��>��r�a4(���\F�E��,���T��Y�&�2YH����Z)�����#��l�v�.e`�8�*mv��O�������)�wtJ���&RwZ�%�#�S�u��"uk�\�����4q�����3�C�aI�X�G9��F�Y�su@�N���8���4���k�F/��\vQw��{&�Sx3@�FP�2�����;��v���@�R���N���v����qk��:�^h���SJ��9��{���n��S4�)��V�NSkP�k�������Wky��������k�q
���A������gu5��]t��b���{QfesE5�fe�L����KV;���1��Z��9]�Zk6e�*���)*g:�T-�9��o2T�o'�r�jZ���\�g���]\?���f�s��r�\�z���;�a4Q;�����R.����e�7�h����qP�����@�Y��������%,��X��}�u�jBzU��w������M�s�,5B��H����]0t��R�wB#���2������J�������va�j� �p*�JP����cM���iu�u����eh�f3Mqt��II�l���=h�"�+��Y���I�r�����y�LD�F��`�������9�7l������m�w]QR�v���N�p��Jp�C6��YN�Y��D�hP�F��7����Mik�&$_uk[�Y��\j����p����I,�%����{}I��$��>X��z��J����r,�����V���'��;�WN��c4�	V*|������TVf�oE&�Fptf�4������u��4�|���eub�
g)(BY���&��)����u9/2����2�<�tE��R�|�Z�W
���G�F�}����Z�[A��,���]B�d�@��5�r4�V=|���53�]�#�XU�[;b��+���5.�vA���(,`���'�r���1�M�*��EL=gi(����u�`Px�R�q������*J9����,Z��y�����;5���Vj���S�hS'�����,�iO�"�!�@���p���zoA�e�P��"��w(��������vP�PT��_�s/�	bV�+�pb��=��\�U�:�j�G�q��{�W��4G��yyyk<����;s�+���o�As�Y�t�W.�m
�`���_E�AW<���.�
�P�+}Z�B���+
�(;�m�zYy@!��,��.����q��FwP6cQ���C�����b�	�+E���Z��Xw1����)�Z���Ia�G�QDZ��d����nc3��3�;����q�*Xd��Q�����&M�m�5�I=C�/�y�rJ�L���7uB�������NY4��Vh��S����,�n��"��P����Vm���X-..��'����E��gm�M��MB�2M��������m�c���f�}V
\�1����KX�}������ZYo.�)��]�0�����*�51��V�U��-�u������T:u��1���2�]�Y��>$�2����fsV|����e`[�VC1�.Z�����^�t��*�^b�n���o�����={�gj3����De���E)����� ��\j��];�27���z���M\{Y���L�*ff���r��QL2�T��-5��~|jB�aX�I��7��"�����Mi���f�%�yfD�\
1Z�$+<i<5k�@��T.j�Q��`��vh��U'���(�7	o�m����Y������V�/���]b[���;Y���:���r����vr	��9]2�E�N�`��������j�lPv�[���;���3��F��@����������:���@�[�/��q�����ZM��W�����n�s��8���TW��Z�4x*�9v<a�%8�|wi]���
wj;��������	{X�i�,�t�+��V��.�Tm�����B����+Z!�6�D�������Ct(y�;
��<�����E.v���7t�{{����B�N��(�#�;����'�+j��3�z���}���J��iXs:n��X�u����%��4����Ii��������v�`�p�p���)\�������ve�+z�w�b\����q���0��yS.�#�	R�	�����}�M�*��[�����wn���������"�{�4�J�P*�/�x�5�\^��X����� 53m4R	D�n�^l�����Y�Em��S1������L��nTto�Ym� ��r�����[l,+��NX��CC�����w��,1���A�A���1Z@�V���&�������j�3&8���r�K5 ;�������N�'Q��%�A����r#��)���on���b��&R��l�h��f���~2"0t0��Ko�g^ZYrn<�T�k�����>���������
n�8����RB��b�
$QOr���]X�$��(�$����ft���]f�������\�b���D�
d���wjxK���G B�dvCn�������`;�t0W���\��p�<{g_ ��������
��]�z^'X���������P���i�`^0�P��VY�e^l����v�h�+��e�N�~
��L�:V��)�]�(��+�Y�K1Cu�E}w�a��G��8�@�k�s�>R�O0M[vo����wK��GP�U���V�<�n)L��@c����9������� c=�a}r�VN�lrX�����go�-��b>��%z0��]�R
���VK�'�Q9��v�������n�}���;{*��
���qf����H��2�K<^�Y�rm
n��[w{�����iT��q7Aa������`�^�xb1e W==x��^���us������3&\���3�3W��������*d������I�{\9&�dd�b��������]�Qn2��������.���N���T!��]X�8���u`��(�N�`��3kx<CD�������8��N�Y���i�����f�v�����
�C@4�G��k@%�:��w:���U�$��lh�.K<v����k��0^JDv��u)t����W]�0���W��V����71B��m����q��+L\OZ�ZY����-X��n�K.;��2�gm_K��X����k]�@>��W%8�����k�l�m�y��*C[����&�����:��e���'{�5����gx���Js����u��^!cwk��LM��
PT8:&-�����~�&��Ffg�^�OK�{f5�{���A|��Z�"`�-1�t�D6����J]�����H8n�*c0�ZQ>[����n��%Y�vy���
���V�&Q��3�6���XlL*3L��W��A�5�iU����t��]�]Z�P�����0������H�\���
�x0�-���W���%����N�x�����-��������"�c��=#r�5FjJ_S�������,5�i�t�\����t������Y�����[�2�2�C��4�������dv�7��on���/]n���!��b�L��&kl���0���u&�Q���:��[��n���%6zu-�;�:�����cw�u�:��q��v��U���)�����W����r^z�-Er�J���
�E��s�2���V�40�iHx���o���w�q=uv[����H[�b�w�b�z�)ka,�8���ST�ojX����(�)4f����F��
-e� ������6>�����[����W����5$���Rt��������Sl�;�����m;l9t�j����	�7�z/sC+������
JYK�k�+/�B8>-�r�����EY����
8��*���@N����Z�� *��gimm;Gm<��
<y�_)Z��]�k�4�<���c�����7�r�!ii����kq�v��=r�F�sz���R��c�V.]���nj��KzP]E��Q�����*T�3�FVG��y��k�`DnK�	�(f��;��V�K=���yV��w:8����gJL#k��������u"3��Tu)Wg�9Hn������O��O$C�n3����\�Z3E��I���3�+6��V��U�L��8����yc���$��U:�!�1fz���8��w���V���#��T����sG�^�v5`Dv-1w;�:�1�+���v.�S����z+�dt�Ck�eq�������E�S6���Dq��e�1u�=�v��m�r�I������u�k���Gr�kD��"�D�}�)���j).�X�k=������EWw{s��lTjY���L������]��y�(����M�eN.	�l�+�5���ru,8-����W<�	Sr��fy��^}�\ub���)X��GkL�}}i���j#&_c�*���,
�}\��� ��R��:r��T�st�o^2N^Q9c���-*�j�h6c�\(�ge��
�,�W{����P3mOb����0<�V�0�]�S�k���zfIY���,c�`p�B��a����(R�]��h��.�$�\����wY��P��AIs�t�3���$"$�u�_p�i�+h�"��6�' ��Q�X����g����j���&�U����XO-��oNnS�#�KH���6����dr,��/V,@X��'���:ifP:��u��GxF:�K��J���Q\������f;���`��znwWoe��]�#f�Kl�i���c�`(�!�=��5e+Z�
[���-��57������H��]b�_	
�Z�QX�k��wn���$���RzF�����okVd�n��S��D-���<�
����N)"����,�����w�r���m,�v3i���g���\I&�>4�2����}�]��J�������	w�`��M�F�$�l)����Y{�,����J��H�0�'��&����������W�3�qSQgZ�5t�a�j�]i<�n��N.��*8�n��3/!j��w�T���Q0@+��U%�J��!K��N�|���	),7r2fyWl�YK��IQ��+;��_`"���������x����������G	]��;��4�[��`y��q��,�J�=�h{]�goX\�*0�(N]b�+��n^s����
1fGn'zj�`{p<��q�c8S��gD.W\,��<���	�{��i�a��qW=���%������b�c7�a�G�2�����C��{�����*�tArv]L��C�SiW1�n���27�#�Y��I�
0n�=�[��qq��m�4,�w���(���r�i$t��dNFWI���[��(4ju�%9e�.�s��|�v��C�*f�hP:)���.������I��Sc��R���wz	�ALIrW��b�����r���9�nV%(+�����;����Yo	X��������c
�Y������o����^���8h�����]�DA��(�^����c��[��Ur�4)`��q���_P�NN��K��GW�^�zX)���g��7X����?�h��]�:�F�^��[�l�4�w�}Vo���c�b{I
�Q�m�Z���w�;�����$,����f�{�����$���x��D�?�?�������?���8�G{m������l��b�$I[[�m@[SiZ�@	�Ck]���`�kP 	Uv�_��0*A$-U��.�bA�n�Z��V���j�@"�k����� -��D�W�����|(��H�[�Iwv1�4g[e�"/�I �%Z��ST���P�&�Q����1���e��PF1�WsUz�""""D#o6�j�6�bD;S�$���y_Ty�mW�(����H>|EuZ�P����Cm^�	--�kw�����"[k�
������me����WjoQ�dI��l��"1��em���� "�^�A$������#����z"��1F#_>j����	j����$�y�  �[$�����]�b(�ch�"1:�|�@_/������U��1��'���A	$�������� �����CPz����"DH�@k�A%c$b�b�]�E�{ �5���(���wq9��;������h
"�������b@��b����z����1�Ek�5U��}P$����AZ��DDD�v������{B""1h�v�� �
Uy�c������DLbF"*���" � �������{������kzA�@�""E�z��y����h�PCm�6�_ub�my���j���^� ��ip����5U��<��j���;�s���,Q|�|���,X�@���������[`�"1��cQ�Q�/6��kWH� ���F���������#bh�$�I����(���+u�����1AM��Dv��&"���&�����m��H"��1F1F1����A�]r ���� �������qW�DDN�DW�X��4h�K������}+^y��;�r�b"#DbDO{�����wwws����]" ���H6�DDU�q����w;���w;���t���f� �-xG;�����w�8N�s����i��DA�""/X�w���wwww;���t��@L4�Lz��(����ww;������wwwww1���+wtE/���9��w;���!5��"""�	yx �G]�1b������^�����mu�1��������]���t�����""!��gx�DA�����x�HQ����s�����s������������A���""/F ������U�����q�����4 ��Th�1�C�
�"""#k�E���~p;����wq�wt��8 }+�DF �D5s��������wt����wN������F"0b�b!!�@@���y�"�b1�,b�.���ws�������wwws���b7�wwwwwwwwwq��w]�w;�����#�8Z�0��c;�wwwN�s���t��������(�-���b"=��mp;���w9�|�y��s����b�Q�!����w]�w$ |���I		�#��o@D����'�Z��DQ��V����r"6����"1EcDDEG��w�ws��wtu�s�������F(�#�����b"0DG�������.�0
^5>#��^ma��5�j��Z���y����$�I$�xI$�$�M����������?Mo�ek��~�k~�����G��J������~��8����������������~����*���6�/e,|-�k�^���[�|�"Vz�q��y;��4q�������,�p���5����M
��F������������rth����m�l�����s��
Rx8YQM�v~���hBh�#:�>�}'V3}P�E��Z�����tt��]7"1W���N7y:R�3i.��P��L�<��ech(���}
g"���+��#T�Y����;���c�Y��ul���K:4[���~[x�����R{�%%�;Umm���hA������c��;���=������Y]�*&L����6��n����KvR������V�&��4�S��<�$+_��Sa���e���:�F�n��R�_)����Y�SG
��l�����F��`�v��S����v`���,���M<��P�����~��n��Et��+��z�T�Z(9��i��c�yy�����"�S�������}E+���jj&
o8���s�#��4�,������ke�z�5������~�k����P�GU�Vi7�)�p���+B{[�B�l������y�Nh&����)Yy�^&���S�m�=�^"��~[���CHF�#)�v�	��rp�a��5�9}wgtP�yd�j���{Sh�x��{h���+.Nb�no]K�B���2L�e���&�	�s�OF�����L��.����.�8��";M�KVMIMmN#�������J�L�wY�������/
��Pc�.�!`��pw4�
H!�u�C�q����[���]g�E����z�	��)�a�+y[��H��{q��t�����[�sw�B.NnK���W�N�ue�������GK���}@_"�����������M���Z�
�8Q���o-���|d)
�y6��Y�����JD�c��������8�3�K�sV�F�;�Z�[��\+�U��9����4��BmV�0���{������MG\�z�N���l";@���0�r�W��o��f6CS�x[���w���,\����*�Mz�����M����SC�t�Pu:�[�����b������&�y[4������������P�����r��eVt�l����i��<]g��+5�������-,]r�L��'8�]Z�9�c��^�$/���,����z���JB����DYL:\��J�����0/�����kr������>O
NL�]y�B��9gsC��8Aw����O&vXX�oj����4�6/z��'����Cbr�������3������
(���L@PB"v
�]���ha��9;u����{N��f�[��i��r�.
�L�h�����N�sn��u�L	s�����n+)���.rXw���%�A=����{d-�#/�@O���GR�,om��<��od�^�d� �u��=������ne��k���)=�n�&�U��OB��&����Qg\|8l�;wM��*�Eq����J���e1�b�V��
���6Ng��x�Y�����Y�N������i��6Yt�����ff�y�U��d�B]v�3t2���N��3������6A2�:�\K9�[Z��T:�J���Z	��V����{���B��J�:C��,����To(:���8-)ra�e�	KkNse�������*�O!5:>�� ���3n����� �f�X�y�v��s��`'��������;���XT7$���������|���{E�f��cf��y�ft�:j�vZ�.q{�s���ro�6���7��N��M���+�j�����=\V��1�N�4"��4�W���DqKM'��c�}��r$[�+�x��_^P���]��5{
��R&Y��H�}�	��mP=�!5i.�����NWn���o������;x���#�����6�oi1�pA��2�wQ��:�]�LZ������xI<,dg
�������>A��1��eQ9DtKF����p(q:���u#�W:��j�_T�Er[�#�sq2^{I/is�����r���+�������V�������2����md	^s������t�@\��X{x�J�b�)6�W���g+��G�78�E��z�1����y�N.:w��bC��]-�b��J�F�����j��e_%t�b�����}���o����C�!&a��,��c����z�<��=P�2�VV�����DjC+�c6�r�������-��c�R@�@�U�����:��*��m������XyB��n����d${t���W$�<�b��.e�V��t��A��w[��fH����I��WT�D�9;����w��Hxig%Rm��Bp�c��7����1%�QzD9=��N�<����=�l^gsI]��C4,>��!Ql=�:�%jU�g>E���j�t����.��|l;W�;�m��ZU\le�W���a��+)kfu�]����}�����������Zm��L�Jd9�b��}�ie�Wbq�g	�Z�j
������N/_f[c�z�����<1�b�Sv��h#�(=����'R��D���9�|/b|�Y���>al�����V��L`��).t}��x�,������v�o{n��+V���G��-�e��^�;?4���V�%�'�K"^��Qg�2�����%;���m��,�hm]kg$��:�tr�I}+	��M�16(*{OM�d�Pp�	!��yZ�w(����V�E���:����-/1
�ne��k2����_9���M|{��+��G����Qlw���#KXg3���L� ��!��������G��T��[]2�eG���K!z����9V�(��.8jU����j�;o
����x�;�c���_r����)��Ug�[:�c�j7�O\|������T��N�gi��sx1�{)l:��n��i���]������%,S�dr#.�{[�.���:FwT�������i�Ce��u3��e��h�o1x������FgM<�D�I���m�Z�[�*�v�}�o��f����<�O6���������sxe!���g.�\%���S��v�;�i3��%�?A���:'�R���c���H�����%�{a���31���%i��cu�x�V�K�-���%��*�72kf�[%����W2�s����o�9P�4��_:N�cq�4u�H��B��^�����SM�������e�o�n]����[lJ�5�T��d�5-{��pD���kZOE�y�f�->:�K����g�����)]"-���w���Gu��(��V��=��
��]x��9���:�l�yZ���b�����}Y1c�o���_^4#
N�`<�����/%\u�8+��wh,�L�kH�[y��t���CG.[a
��8���hQ<z�t��]���j�R]�$���!Q
����������5�/�L"������+�
M����K9Q:$K��v���;�	�;��{&�C	����U��w�
�������{weLK��a6�4�$zF��h�3X��J0U�xa�������a�
�&2��]�a��<�B��_��;z��IET�{�^E�k��A
�P�{����1[WK��_^��pF�T2���{i�GP]��[�/X��U������\��;�r�)���cg�����#mw�.k�2�nR�
�aUn�y������G>��X�___#@�;H����4�F.@�;8��9��)C{�(��7a�����WEE\�}I+]-���$��a�:fa�'����ON�������}��%��q�`�E�7�k-�s�������}w��[7F�[�5�h��;8G���{w��9���n�~7=�L���x/�Xl$j����9G����������}�gu�L7���Z!��f�T���H�q�]Zyg��k���aJ[9s���Q(�J�4���m���]� ���%v�J�#�2�H�x���+=��R�Pv�<����_`�PV+���b ]���o����-�3��?��G�Z:��*�����x�m�.�J�g�;�-d��T ��8�OY"�7�'���X��s[�W�g������X�\L��:������zoa�q����Z��V�!:1�s�kc�q���I$7^q��[}��w_7����f�e^���+dF��9�5��_��rc����
�SD��7�dw�.�*�K�&�^�U���n���n��$�i���c�nY�5���+h]�b����L�{�2*��7�)�t����h���V�Y�qUCI��<,si����c�K�7x�V��0:�d�&�t��z��e�2gm�c��E�����{-�2����������W���9�x*��cqb����au�i��;%#�!��>�n�������#"�;L���B�IH�]H[u%^�������S^�k��Bky�\����-[�����[,�k:��;Ou.����������2�T��pU�5�v�x��f�}��)�#5����vm
��t���������,Z�\ �����m�]�o/�=S�i�7.����M]�{�i7O(hw��=���E��S���m�+*�%3*5n�df�L���I8#�������g�� j
e^Wj�xG/9zc6&8c���h����Z�l�jc�=�d������Dot��Re��}:A{��<�������<���,���.���'R�h���� ����cP��5wb;���vU�
K����Wk-v�_:G]���}O)�B��nj���J�&/�����5Wn���;�%o1�4�]YZ5�1^\��;^V"U�����f������"����������w�tX��`1X�"2��b���1���
ZL=w�n����^j59j�'7Gi������y]���<p����"���~���n��
��](�d��2�Gq,��GL����_%�_5���w���<@��`���@��&|�6�����9��r���\�h��o.��d���N;����uG��.����*-��L�7�������7
K���D�����B���|�5f��G;xsj)J�X;�`����l*B�Mp9���N�c���[�+��a6���/
.c�4������)�������j�S�D���+��B=}o. ��e�8U���]F^Z����7��+4�B��
�;6)���S=�,�@����o�F�Pm�j���n�J��%qA�+��*�K��vb��X���+����\����)Fzx�WO5'�'��W���wU��\��Y�bc�o�-���Z���X���*��x���]@[}�����}����)�5����X�����]��|����g,�}��`��U[�I;��MY{�:�k)�er�.�������)���s�p�}$��iT�����,���ru��>Z%>�r�a�0k&���g^�']J���&�k����rg��V)zv'|���7��e�m�
�`e!�-`$���Mj%���e��u�E����&������#�
�3O6)��hQ��+tP��$����(7Xf]�O���j:�7l��>rj�`�]�8{���_t[4=����sp���
�nv[�P��{cR#nD���^�v+�������F�)A�E����b�XEH���lVV��������hl��]i���
��3L�J�x�k_"�Eu������v�����M��
�s.\��VV�eoR�������-P��d�Gk*�cS�j���N�oO
��\F�oON�y^v�����3s2��`!W]E�i�\j��#X��oM�DF���D�b���2S�)���:�[=����m������`�J�P.8�8�k�2B��Af$
����CY��#��Bw�i�=K(���vSw��k�^-���nP*<w�����\�������DxI��L�5�^�K3o�ko�H3�G#��s�R�P��Mf���f-��M�M�����'��C�����[��*ZG/�%�!X7��+��l_=��GN������������c��<���u'0�8g\�����������9�:�E��&���(���
	��]�f�8aw�n�(��i����:�
��)��v�k���
���0�,+#�{C`�0$�\WV�4�b�iK�=���Q�d���o��"�U��1Y9[S�nI]�8P���q7)���s�v#�oq6dU����f�>��/��:��:]��k)%b����V�]�����-5o-������,���L����yB)�p�<�B/$����d����U���S�����D�����A��n���N���-��E�x�����YzI��-��,�#8�jP��]I��k9(�l������h�1_eY�;���8�3�_o(�@�4r�4)�Z$|��]npcz+�J�LN����0��2��<�]^��tW�tN
�&;BeI[-�Y�����!��
be�������v_��|n��9uy�p4��#���%�h1��boLAg����l��Q����TSZ(a\�o-�[\����vB��$6�!]0�9o;r�o\�44w��z�]in�X{~ [Xm��3�qn��d�w��I�v��r��\�G��k�}������N�V%T���l����}�}oq�D���j�3@.��H�X��kQmjkibu����paw������>{.�R[t�%pT	l��M#v���{�������
�C��������}Am_4������������V��Ui<O��q���O_������[	�W>���b�1��[|�b��we��e>�ys�P7r���|=�{7{��Gq��a������v�����*�R��s��i"�o+Q��G0��U�[q7a�����r��n�=�d���U&�Z����[N���P������w
Yv"w��e�h�@+�x�Z�d:���/������$�Gn)yR��V�<8���.D�AUiF�]���f�1If����%�5A�
��Y�m
*������&�^wR-��-�	V���S����VI�
(��+u��}J����kh�Mm�
j+;(�����g�b��@?�v!;��6��Pq79h��Wv+���>�T.�/N�*���������V\��/������q������6]X�=���H|����R�9���?bWc�v{��$���2��P�C��-����[*f��%d�����'=��u������6�aR� ����B���
���^�����/b�s�[��7���PR��x��%�3r�]9�5:���oZX���zoV����%�F��4Pn���;gNn�[������%.�Q+���&\�X���2���O<8��-_b��jo���\���oKT��W4���u>�a���-,��]����W���v�^�����x��WJ4�]�c�H��83���M�]+&��i`H�.� ��&�M�����Q�&��Y��d����6��h9�����m����'���%�hY���W+(�M�I���&:�lEZ�Z�A
	����A����[#���p*���]�&us���a�uvp��[V��(����d���PS�� ������xT���x\��1e/n{i��^�xV�"��V��n����x������g�n�5���PI���N��
l���:m���������l���%4�Uj���9��L��2����fn�f�u�,ui^���V
���M����1�-���P���.��s������k�����0��:�����R�x�����&��o����\�HK�2��+���)�Ig6Xz��s��:���e(�R�Hd���������8�Y���0�
o���Nw���r��}6.�OO][��3bM���^��.5�N#]���vC�t�Z����x�%Ij����R��������U�e!B��Afu	�m\�*�)��EN���{��7/��<F���e9�����"�m�����t]���������1���,Wt�q�O~[A\bA���R8�la��2��T�vw�U���ms0J��	(��#���;u;�l�t��e���<��Go�h�a��1],+M���fi
1{o���7M��l����N�*+<��p5�l�F����'�5y�
rS�v�����h���b��0��.�Jz��f���u,������pS[d>��
�{9Y��v��
�D��������;
�a��=\N�����;]"������e1�H����`���9y�3z�#cz��;j�;kq#��j!���:��a]�Q��m=$���]�\�M+�4��Mn�B�p�������w!�2��l���a5����� �1��&�0���\O4�hgi)]����a[Y�JFi���	����i��k����ZM��Yi���36-@b,$��<,��r���x��^F���P$�9�*�����v9�LK
�k���j����TQ�����s<�f����3��G����7@�C�#��-S,K��J�R��}�^iKs�������������M^��Gx,��.�R�T�����4��4�"��w���vY9�W���u%c.�b�@��r����Wr�=4�,�����e�I]#tA�����"G�a��cn����g��Eu�a�+;V��S�{J�{~����K:�q�.0����T����n�:�Hmv���`,!8�0�:�q�$�p�g���W=U~Z�����r�>=gg.��O������6.�L�tD����i�aZ���af�i�Y2�c��3��
a-�|�E���� s8�o�1f:I�[��jZA��b�7O#}�:F$�Vm�=���Rx��v�dNia�*�aXT,���xj���.�d�A�*�N�4*��r.F�c5�g�V]�
6�V��,�����i$�l'0�T�f������9��5����r�u���`�����7&�\�r�k[�#�s�Y����JR�u0_u)5����ct]����.#���/��j!��������H��� ��Uh�yv�1v-f���J''b�}b�����^H�2�l���}Z��`����:�wii������`&n��u���u��KN�7��
��w��u>Sm+����.�Tk����n<�<���������=%I�NF<���I����K�����f���.]���Q=[}Y�j ���l/E��Z�3����8�
+���5$���D���oK:�Jm�fqu��������������l5=�Z����� [w�%�G�;�X��)4�����nF
���8��J�%���v��<�j�:MqD�{]��MA�TY���k�w��eiv�^�v��,L���l�X�������o��Y.oN��{�eJ���j�&f�d�&����n�\X]"�v��:�3j����W"kM�tt�)J�;uU���a��E0I%�[�1�X*/��`�U��{��'������w7�V�G�GRZ�.�05i8e�C9���^���jm�����J�Z����'������nX��iN*������G|+�E�����3'.�-��6��|P�G������]2��.���UL7��
��6t\,Gz��j�m2���{�qN����f�U�f�/a�t��,�G�f�����NIm=���[�z������AvZ���{n,^��e��[}��i���)f2�L�8������n���c�����I������Zz�����A3P�p�tV��t&������A���#CWA�T�8q����p�����:*��[�L�j����~)R[��37�s�'v>����������m'��pYvL�R��j-�)�k	�t��2k�oQ�	�t������C`J��zxQVwM
f�P�$��tmjHM���
�@��a�������i����3��*�N����H;��q��������{T��kE9J����]��[x�u�e�9�h���v�As���S:�"���]d�"kXK/H����`5�[��O-�b�
q��������uT���[P����Cd����9:���yr:�Nx�S�@67q�.ky�ZT�����������eq�2�qjJ�8�*���-`��A ��fQ+��l�b_c}-�H�;���n��
����5n�����;Vocm!Y���#�z�V�u����1$�;Qx���*tun����k������)+������2�x*��rs&CnP*��>����,��EJ�ms��������n4��p�(x��p�"�t��kp���@|Wkq=�+1�ni���L����������'m7G�,�#��-:7OIY��bs����t��a�7��2������j���(R�-�-�n�[�c�8�(������V�N������G�[|�7�;U�>g����H�����Iz�,4Mdzwf���n��T*��;������ptoj�E��K��������r�+�%m,5�+5<`*p�zOs���k&�����l����#�o���������BD����}��������?g����Y�c��L)��Z��ewTax�a�+���^�������|=��l��[�t��1�����KM���*E8�}�GK:r�,�����c4{�`�;f���-8���B�OmU��(7������n���jA[�4U��z�N[G#���������7�V;T���W�i�'�V��Jz���/3"nn>"�QU��l`��q�;w`��Jq��a���]��,�q��f�[c;P�
��q���a)�v�y�wz
�,<�:ZU[W�)��bhG^5�Y���2� ^�[�
�!5�1��������u��U���
K�^y�,��=��51����V�%t��M�6����'��A5rZk���2�$y-2��c"R+�\_��
�3M�x���-����O9�<�����5���.�@�]zd��zP��{�s�[���f����<����\"��9N���Q�����:�
9\"1CzG7t��#�$��V�����T�Y�6��qZ��V5]}�'pOb��w�]��+����mvs�$����(�Q����3�sY�v�sq��.��BVI�������oT��������:�V�gZ����b�y�W ��)j���.Clu���3���G!]��[�3_}a��y���QY]���QZ�Ou�7g+n�.<�q�jC ��i6�9���$g<p��3w�V'q���=p�=|�:o9�R�^F2s)�p��z���S���M�N~�N�g���������^�������7{����.�#��lX�>��:�=���^$ �+Z&�or�O3:��'�,���I��s3l���f���]�>������.�k�f��N��z���� Y1��������AZh�.kB��p������_<T��U�[�d�TE��B3�j�&�����c��J��C��!�\X�.�C�m+�yye��v�a;y�����
G�
{�.��L�������[��L+^��yHe������
�I��q�w
/h�]�*�������I����d�q�D����� �H<�$�����N���+�)}���L��+�����k�Y�}Y��}V����}H�G��Pv�9�zn��_�~c�!��?�@Q?���=X���T��	��>��U���B�!�A�p�*�,�}���Weo�N������g�{�r`���{s8!}����O��;Y������A���!����'��7��Wa5.S	<�z��I��M�������,c�^���Q<����F�g(��
�ee��]��qq����t�x�,����l)!��	5.�Sq}\=ozusT�,��ge	D�OJ��[�M�O������+�mF�y�<��^���R���k�B���R:����=����G�='{��;]w
�S��=XuP:��L^���<�6��a�B�p�3��4��Kl���x�;��wA����3����]Y��@��D���r����b)����B�j^\��Y�Z��t�d��/M�\��(8H��,ryCK��91�{��VG�c���~��h���t~�����6��pL���m��hv1�rm�e ��m_���������	�4�����jz'C{E��s�k��W�>Y~�{�uY�_i���o3���G�zlu�7�f����R��o%(��7N+�V.>�����p�ee�go�s�*w��m����vf2�Sd�7+h��v.]S�7�D�(�T����k�LV�����sRVnS|�\�������Qw&h�Rp�����2��h�t�X\k8�h�K���S�eoa�u����=�������~_���
�����l�{��BzM�-�}�Y�I��U�eX������`����}����;c?�����4�we��qd�K�vW<f�����=v�l�{{��{������z�:9����8(�eGH��[�q����h�M�p�&�L�wE������u���T�I��S�����1d8�e��g'7-��uL�>�76���
~���}X����H��G22f��/`�wC^�uD��@���3�P.���9�2��4���<GhT�3��Gdk#kVm�0]�*�B��1�
�=A"j�o����yc�V��z���i�%hW,�GT�k�u �~��k��f&���[,��i�����4���K��K9�9��/���f��E��-���az��9(��Y�Y��u'�+���R�MLn�.!x9Vw���u������DA	��I$����g����w���?Z�K��h�������{�����:2��t����x.:%F~W��_`7�m��kuoo&Z%S���frm�vf�k���0���q��k����u�D�$�9��?����v�?Lx����v���n��v���n��v����;��|||||U]�tQvQEaZW�|p�7E�uXbFZ�v�������P���F�����
G��(Y,|q���QC7VQAbj�3
�P4�d	�E���0@#o�G�p���$�H���;���,�d3��!P�[.5�E��wg�4#a@0�M4�Dp���4��| �@����dc�q��0�d���1#,4��0c�$#
4��4�M8���Q��-7QGpl�((
@!0AEC�/�(�_f����vQQ�X�e@B0�`>;�q���YE�@���
�l�0�h��'�6���q�p3rR
��Bk�����-���t|f ��`���P�Ute!
��!^��>2�C�F�s3�� �0A�*P�u��F��meA�e^�����,`�B}��A�4�A\p��bB
�!��`�]��Bb2��(��(��(��(��4�����QAbX�!B���]]�E�VR�e�@��@��eWwwqAb�4�2���`�R�\``����)T^	�`
��M48A��|3x�5��y�����H�����q��ti�����Eab0�M7�wsNc"�(��.�*T;��*��/�Z��1!
�,�!a�!n!
�,1�i�`���e�g����E*R��K8��]�(�R>�I ��a��1��5����}��n �
4�0V]��
����+J�8���F0����(,A��	�i�um�eaxb3�e�QE����S)���#��i�� �0���
�(��(���3��(�������0��YE08��a�i�� F�
8dF0g1��88����]�P4�(�8���,
(���
�$8 G�wwqEQE3b0A�i����p���VQ���PEQEQEQEP]�QEQE��7��zI����p��Ee����$p������p� A�(����� �www�0 8�8��}��VQEQ@��v�3w0,E�n"�]��4�p�X]�08Bq�PX�4�

2>��,B������4�M8��}�i�2��hn�2Fpp�H�2Bh`3��(�N�Z_�-3V �fe���5f �h6����p�$' ��(����(��(��d�0�3�Q@�EY������4�M4�q�B�+N���(����$�tQvX��4BK�2�vQEQEB�!
�wt�t�2�((:�P�����7@�A����a4�M4�M����w�+MH��8�8���! t��`�����b��(,A�w�80f3;
�2��.�(D8Z^Q�*]QEQE]�!B����
�����b���F3,�EpH��q�XXh20��0�q40A�Ep�{��W�\����(%<W�x}�d
;w�(�����c����:8���L�Ip�	��
�@8�(�� wwwn�� �Bq��(�h1������5
2��.�(�����(,1!V+(�����+(�����!XX�,Vab��C���:�+
6���Bq=�@}��p����c�q�q�p�����0(������!�B  $���(����X����J�>(�����i�f3 ��ht���`a�m�@�I e+��B�`�m��YE�
7t��
48�aw)����|m�Wwwp��YE0�M4�M8��`G�02�(,04BL��	AEeiC�(��1���Q\; `��8��a���A��M5�$3]��$gi��N�#���48 ���i��i�������>2�H�m�(�0���H�330�;L���(��(����� �)�
�\_�����q����m����
Aa���z0���QE�2@|m�PX�����`���u���B�gi�����B���
C�B�ghHP���i����i���� �1�>	���
8m��b�`g�� ���E��h1�ePX��4�M7@
���YE�B�n�n�w�pq�c��.���@�c8���������� ��QE:(��+ww@30,B�(�$�p���,��0��+(���`f`x����!
�����{���~���#|�B�!i��n$�I0�;L���`@������@6�l�I$(��(��X�q���n����(,A����B�e,�5*(�(���!XP��1�����(.�(��(��(��

;����A�>���;���3
;�!����4VQAa��eQAb�@8d F1��
����(��V0�C���#I$e�P;M��(�`��
�i�PX��w���[WY�����QwG�q\��X��j�(IPYj�wEt|||||B������Yt*��32wg�tQwEe�wAut|Qb�U�]YwAe���U��wS��[[[�3EPX�,B��(���.��2�������V^+�WAv+V��W@%v�b���yY�`$�@#�e���VVVPVVVQ�����%awax��U��E]�]�X���.�������Z��(����#�����}�X�$�t��H.����fb����J��BV�.�W@#+�>�%W��UI$P#2�P
�*��,2�b�*T��3X��������X�}*]���I$�C+++(�+��X�2�b�%v����%j�3/+����������+J�3/3+J�3.�.�3333T�PVVe�	]����������?������oX�������v�����v�]�v�]�v�����n���Lq�����������U����2r���\�W.\��Ng.\����;m�+���~a1*�g�9@~4�t*���m-��{:��Nu�6�\%�����[{�L��:���l�����1������-v�bs��������>����QsdH��-��_oK7��}>>�?�>���d�1�t�4�1�V1�clc�;v���|���m�.\��M4��\�{eU]��U��Y��������������Af�W�Wf��J�]!SR���z���5EV�3f)�-��D��GYo2nqD�[��wU�������{g
0�{4W1�Y��4��]�NU����.�2c�:cc�+�1�1�c�v�r��M4�\�r�M=���Ni��i��i����_�������������o��tn%�!�-���1-��l��<��k����W7
���D2��o8�;7���+�������^wd����-��|v����L��1�����1��1�m�c�n���M4�M4��.Zi��i�.\��M4��9�'���'��u�:
����O^��t���f%Gg{k)����r�-���G��S���o�]Y������������7����me�2j{������1�K]
����WT(����<���}���R��c1�1�c�c��1���i��r��M4�M4�Nyr��������������W��E��>��OUbZ���J]��^���yc��{%<{GvV�T�j�]j��}:���^I�i�V�og�]����F��3�V�����ks6����O������{�/OJ��1���1X�1���c����i��i��i�M4�M4�M4�M4����g�������s��5<�jS��*]�h\Y����)&`u�=�u{�=���,W��R��3w���3:��KsM���'|�lI�hZs������4;C��W���F�8R�<}��|v���s&Lc�LcLc�c�6�1�c��;i��i��i��i��i��i�.\��ND�����}|�{�������%>�2����[,�o���\�������j+l���N�-0�G�{�C�*������i�4������p�"��0T����9�T�]w%mU���,�2c�:cc�+�1�1�c�v�M4�O9r���i��i��i���M4�Y$��7m{�����b������)=��[	Y�u�����u���S&ul��5u^�u�m"�n��JM�)����t�����F�f
��9-�����]��k���N�����.�L��1�����1��1�m�c�n���M4�M4�M4�M4�M4�M4�^��W����Y�(���Y�F��G[�	Wri����Y�KN�q�o^fVt����u��\}�U���nf�k:�r�2QN��-�7{[�������>�;�_5��^�����n�9d���1���1X�1���c����i����&�i��i��i��M4�M���~�����;�|I9,�� aC��A���Z��Ku[t�`�aj���������-<�M���Yl��H�=z@-�M��]�P&U������������6����Ja,�P_e:���Kg����bN�;i��i�@�1n�g9�|@u�u��:��,�hD�A��*��<y	x��7c��fu���,��fiRp�i7n����j���
�z�Io;y-��k�}�]�lxy�+�+J*��,����N�5�:�^L�tw;U5d��+r���]t����(i����l�/:t
��#o�kf��3kc�5,0g2+nQ��&��G��qW!�;x�r%�v�mn��#�)�����u(��.��%aT���rq��2���I�}�%o��=���]��GDS6��T�N��N�����qn
�8��:�wf')���-s*�B4�!Z��[�eas���x��f��p^f��On�Qiu�bKS-E�V�'>�T�Y�muj��	�l,���F������e���G����n�J�+:pu�F�������T��8���"#��,����G1]�����}@K�r�,������m�>;���f���}DDz�E������=:����I-�zk�E���q�Iu�8�n�5:���}���y���T�r�M^#3x����YO�J��UN����{��;�{ji��x19�2l�\/%F*��{�=T�������i�N�I���u���n��q�[V���;�u|����1�g�q�)������o�������//mk|��$��m�k4������~���%Z���W:��1[v��z�W-������:�����*����gu�[r���K�K�L���d�).��TO��v�����3�ij��#��>�ZF$�
���d�:���p���a�[�f{A$<~���NRV�=��P7'�z�t�sF�gE08��V�w[8�.�Vk����]�����i�vR���J�<z]o��Y��]��|�,��x���$t	/f��z�_9�9��p�� �I��nH8H�H8�2H8�<�$y$$���p���]�����:��������S�P�ou��b������lP�/5��u.���<!��1���R��|�loQ��4.�C����&�m���$QN�YW���[����W�����[��;.������� ^��7�i'S���P��;���8*���}9f���*+A#���]	�%.ds)�I�fU����1���w?:���T0j��q�k�������S����W�����>��*>su���A\l��������-�(zH�{��3�;3��U��7�{���=��U���6�I\�n	��e����6LX�%��C��Bz�S�i���F�!��mG�q��D��F�v��{���%���i���R�wzpT��=�p]=�p��Y������uwG���%g�2,�0��������|�B��_p<����T����|�`eL�m�uyN����Y��f��6�7,}g�����S�����a���5���>oo����pE3�z������D�-�j���w���<W�jBN��K}��2.��{Z}g�l�.�z��[J��ok��w2V�V^8��qn���u���a���D	*q��Ew6�������7Mze�R��lg�������h�^�uB8��b���t(u�J�Y��J�o%��F�r%��������n']�$;��[S��lVg2�6�"����+��@�e`��w������]�����%=]��y[�������[/���+B���2Cb���O��d?9)5��w�on���bK�Xd�R���{���$_lt4,���J����bT�
�I��mMQ��s��,��(��=C.��Y���S=����'�3�u����;Sa72�L�*��&��j��GY�H����nb��\�M�c+�^����Qm�;z��#60�p4��J[s���CL���
V�\�V��ET����-^Z��)��+��}���O
����v���[=�w@[.����u�c�C���n�Y�\��wO�����[��Az��{Q��M`�w�L�1����B����g�H���
��e(%����K�EL��lqT��w-�X��������kU
��]�E���"�<����&mcx9�J�2�0��*Wn��3y�{��W���������
?Q=k��^sO��n:�[@���AR�m�[��6��J0�:n|�*����v>S�(/��v���z�������v5�;V����=���Ar�������>o���|nk'���<�o�Q���}z��}���Chi�
o�*�+����@8�:	�F1�Z�3lclcly�6�������V���-u��j��6�6�6������c]!�R
��w��]����N��[��Ao����C1�]X��k�V�1�[}[��U!G����SZk�0j��;h�����-W4�j��iEt�%��!�B�e�<BP��m�M��e�m�]r1���-�1�-s��c�;]<�K���Z�7���{6���K�e��6�-pb-���-�M�W&�#�k���e�Z�3!n��!�@�UB��T-!@�er
����Lk�{����x
��HBT(*�1��S���j��5UB��T-!KH[B��T(*�eP�-UU!ER-U`��'3����<��y������t�������1���1X�1���c��c�?�U\�R8UW0Q8UW0f�&�m�0P�U\�C�UsC�UsH�U\�H�U\�W	+��"��~S�+����u��N������w'����������T4�n�Mx�lv�~k��N
wVf�oI���n��{�s�nT�Su;%�`����YGBM��D��(��xG9,�Y��x�{}���������n�;cLc�c�6�1�c�1�`����V��D�U\�a8UW0~�"i��s��4�m��?n#q6�n[�&��8q8�>Bp���`��*��*'
��H�>���I�H?S��?_�'?����o�����:���Q�F�r�C�I#���y`��:J��k��s�_�Hpz2��)as{[�>���x��3����R�]�X��c�J���i^�g'	e�n�&w|�'���:x�������1�c1�1�c�c��1��1��+J�I%�N�*�"Y$��V�J�V�J�V�M���-���H�*�"T�V�Z�(V�Z�=�D��$�����y������w���k����j�K%u��#�&�Q�2LT[�,��ok�FZ���5E+��<x�1���d���t��rb�������Fz.4���&�	P�u���8��������}��z{��/'�&1�c�1�1�b��cc�1��1��"�����q$��|D������'V�Z�*%iU��V�Z�*EiU����������+J�H�
��R'?�I�H>{������>��������9�AvIv�����w@�3)�}�t��B�My�`�\����o�C���V������d���2�������P���M��a��E�2r�P5����Y|�������:t�?g/g�&1�c�1�1�b��cc�1��1��J��R%�M�m�m�"Q+J�H��ir�mH�
��R%
��R%��*�"T+J�H����I��8I�����������v�+����6�j��D���_f��{��QO��Z!�7��[u0h����z���6l\q!R���Z��oP��t9�>qt��p��������8��'2���O��]>:x��9{=�1�c1�1�c�c��1��1�A��V���V��������mA����-�����D�*�$�*�9�Y$�J�AbJ��P'���I!��=�������V]�?�����
9�mo��L�o���l�f���;yK��f�D�1=�'�8��s`��kk�B�D�Z��'��f��h�B�4��w^���B~�9v����y=�1�c1�1�c�c��1��1�G<8���$��V��I+J�9�"q8�I4��C�����Z��ZUj
%iU�*EiU���$m#m6�R/'V�Z�s����{����o�w���?m�����Y((�M����k$��@K+��^���������%�we��p�C������V�����z����xv��M=[3Z��+2x&�I��V���iQ�D��c����|��x��\�����1�����1��1�m�c�o���D�*���*�}q#pm��i'����M��M�������M�m��|�GF�M��mAP�*�B�����B>����;�w����������E�����u=�+q��OVx7Q�w�Gnwv�����N�ZS.��^��R<z@\����q�s5����	�N*����8������Q��������$�{�yF��B]{�����zz{�}�����fLc�LcLc�c�6�1�c��cPzIZUj
�V�Z������B���I%iU�*�V��$�*���*�&�6�������?���������]������/3�M��v��:1���N��R����m�S���G[x�}�1
XM������ShQZ�:s�,��-��i6�8��5>�w�E���+��t�$gM�n�h�"�������|~N���\�����1�����1��1�m�c�o������������J��PT��������J��Psb8iU�9��J�G�
�?o���U��?�_`�
��r����%�<�[i��� tBM��%�T�u�F�-Nr��+v.�8��3@��[�^�|�y<����2n�|���A�=��\��d
���l]7�*K���m�����ot�2{z^]�WV[�IYX����b��5}�$��v������#�C��0�A�{�\��5�(*���^�iZ�U|�
TE*�&��z������i��e����(����v��
��EJ9K�Cc���;�.U0n�8��1j@�9H�q��iIXP�k�����B�t�����W7I�t��4c�"�M��X���|h�.O3�|�JZfv�V�y��iz��G�{��H/a�#�E+�om��|��DV�_�������,��K*r
�������#�=d�����a��%�����^"�c��������0�
�T��b����vo"0�%���;FS8��W<����V?v[���"�d<=�^���6���qS�n���*�g����u���E�i#'��qE�rk[��w^-��j�l.��&����q��]���Oi�A<Ni��������nv�]��\[���5g;�yM�Hv*�N����`�oi�"2Py|������Z��Ss���`��T�����c7����u>��eL���k�%�G��W�1�s99|�\��+�0�$N���x����vQ�����p����u����������;��,>�,���kS�x�`�u���8l�^�{�������
����O����f_K]�����n\����Z���������Y��1�C�ul��&��:�e�p��N}��u3���g
����3����}")������	��YgO����u�h�gJ?+���/�<���Zeb'��b���=�Y�7��o�Iv���|��wY��w%*J,h%W��YP�["uwwFg���i��U����jJ��x�P��uuX��.��r�[H<k6J��54	,��;7Y#���D�q��������k�v>	e��U����Bb��_aq�s7�������:������pG���"q!I"Y �H<�$������U}��T�W�u���0=��#��g����;������'����W�Mn���I:�������N�B��T�3@k/�t�|��Pt]����Ee�3]��'[��ub�t�OY��2�)[M����R�}�nmX���_��<��Q��2��}MV=��\3�e�:����?1yY/�W���
qnF�)��>l�g�S���\�%�.GS������RuM,��y�
�k&�O�n�`��K��l4e[�2�������+���V|��1��U�����1���X�5/jT��[5���P��)����%E)u���5��;6n����yq.�Sp�g��v����M1N5�^'��h���}�����.�D:B;(j/�0�=���yWV7��a�r=Gj�ux)�L���tV�'�w~�|�Vy���n!@��X:�������kB��-�����:�����:��k���D&;�ZP3�I�.�Ow4�}*�R�W��/�kQ���]���u;�%�������p� n������
��B�^�F�Y,2��t4��lu�f��-8��m�u&���'�I�M�<:�a{s�ti����E�����s�^K�>z2z�*�&�������/��k���B��rT7�[n��4������{�����-�b	���wa+}���e{�;�w~�@�}�=��n�+���Z
���{/_�z�h��3��!�N����������:����M����R�{t_�Ko�����B������ogg�^X�w��Y��������������W��z��]=�e>("6}��M�R.XV|�z�dR��l��P�V�������=~�����uf{����uk$��C�6V�n]�#4�T�����o���l��)����$�F�ew{�����e���,G���G��m�{��+��W�R��K�����u�x��d����M�7����ng}�������zh���m�2����rra�U��{����]<��K��^��is�efJ1��<=�����8���}�������[d
��������Hm:����VQ���S�{;�i�yI|}V>:���a�g>�;mn�C,AG	0������^�������Y;��[�G�o�U���\{K�k�@F�\���*M�3����-ciuD�[�vAo'S�0+XS�a�6Ji��r��c��RQ�#+,^��6Q�'�\��������b����x��_���]�v����u8�\K���Ng3���9�7��5��]�M�d4Z�3lclcly���������YZ�b�:�|k�Icb�c[[b�c�1���-�n�-ni4y�f�����ym�O'�;%c���s��:��c����U!G����S[N[T���l���ZB+�@�\���2�5!�D�*��"�B1���	B�U��6�mmm�e�m�RH��w��
��+�q��FT�R�5��O'��5����
�{=����h��P0m����\�c�u�b�kU�������k����[��B+��T)�UB�TW `��!������{���@���!B���S��1����+���S���!	ib�S��*�eP�-UU!ER-V$�HI"�J�I"H����g����{�}O&Lc�LcLc�1�v�c�;x�4�pG�V�Z��iU����'>$|i���,�iU�(��V�|�$�I���s�I54��K4��B�*�_Q������y��?<�����������d8Z$U��I	;�
<��H���/$�v;�d����4f���3���s�����2f������k�o\i7�d�+�<�h���w��g�'��������{2c�:cc�1�c�8c�1���jd�4���4��,��PY4��D�J�AbK4��4������V��$�J�A�O��I��w��=�����fw"�^���K�����zk��]����P�g�[��c��A�7�)���T�y[R���OI��+��~1fS�E�sE�y�K9�����^��||�]�v���{2c�:c�1�c�n���c�s�1�=��J�A��,�\$��:�#��.���f�Z�{#s��j
�f�Z��Y�V��iU�,E�Uj
k��D�� ����x���f�����\s����1~^�#�ST�����N\� $^����/bM%{�v��������o9c�en���f�p�S�#{6�vnMk<�se�����_�_~��?����^�����1���1�c���1���cPz�f�Z��f�Z��Y�V���iU�)%�UjY�V��Y�V��$�J�A�i$�����r%{��U�z�;�����V���������new���jk��v�^�s}�����O	F07�q��X�\�;�m��])�f���-�n]3,N�a�nm4[�|�������5��~<r�|t��<����1�����1�c���1�w;x�w��#sn[qH��WR,�U�w$nm[q���m�"��\Ad�+�qH��W|
���-������A�~~/����[��/M��k/��^9&�r��r��L�����T+e��fq.����J�R������/S��ZM������d�g05S����B�x1nZ��!�������^������������}=�1�c1�1�c�1�1�c�v�� �"��\AR,�U�I��F�76��TK+�qD��WXK+�q$���m�H��WT,�U�K>���UW������_A��A��J�da'������*j�D����#1����Q�q6�����.qV��Q�U�.�]���G�[�uq`<�������s4yD�F�7�i��f���j�6�b�����D��]:v�����{2c�:cc�1�c�8c�1���A�W*�!er� �Y\��,�er� �%�����Y\��*%�����%���I��M���m�RA�H/]�������^h�U]�mk����������Y}Mz��hb�.�oqW:��#��L;`��h�3s*9}\_����N�Z�~� �C7]-��_%7���']��hs���]:����#�����}{�fLc�LcLc�1�v�c�;��c�=��8�M��n ����\Ab,�U��p7$nm�n �%�����Y\��*E�����er� �W*���$w���|�����5���������i�]I2����#�M�>��
�1���*��eOr<���[\�XY}
��!�Q����*��igp����T���!WZ��Z������u��b$u���g��#���x��G����1���1�c���1��o�a,�U���\ARK+�q�,�U���\Ab,�U���I�%�������\/qY\���|H���A���~������y�`Mh�ls�g,_b��+�����C0X�6�-��I�:���uy��[�`h\0��k�u�������m�S>�RT��%p/�	]1L�2/n7
pxq
Dfegs���$Y}O�n|�{�{��w��O�U���{OfLc�LcLc�1�v�c�;��c�=�Ier�$��p�er� ��W*�
�er� �%�����%�����+�q�K+�q�K+�q�����~8�k���ny�.�5����Wm�=�����g�Q��uGBl%	H��3�j;�n�+R�
�5�&�L�:s'�h�g	s�������
C2��
0�O�kJ�rt�$���K�-"��on�/1�*C�v���#eS��� ������\��<�������v@�e��o�n�AfHcc{��l+7�������}{�Ea��K��B���C����o2�cp"�������"h)Y;P�����5e��3r�=���6G����p|�������}���Z����/��n�����A=�5L-S�]���n�k[����B���1q�/sy�@��u���m72��>��2�Ai]s�t�6��7vy%M�8���<�j`�q�#����j�\�\�e�$�X�{hM�)G{��]"���u�3
��VL���Y��Nj�k��#�w]�
9BB���g/�b��fU�U�U�Gr��$z)�%����j�xK��{=������N��6(GNFr��Y �ke���~ _V�����Ko��������kt����������N��h��
,�\v���he����nL�D`j�i8a����E��w�
U�OI]��::\TNk��qK�E�+�z���"f���.q���j��8��]fg	���+�:��!��X�l����|�+����B��^#���RX��\8jQ��m�	�'c�%��Fv���"�(�i;�C����V�"�@������Mq��|T�����t��uY�C�s�{V�b�^~��T���}+yo�L[q�Y����Q?T�b�tVi���;�m<�-K��6��V����9��z���U��)���j�&5���$�8����1�v�r�;�i9z/�`��@}�����&L{�Q���V��6%K�9l����u�����-�-���Y���p��at��9������c�Xc���w���EM�0�GZ\�]h��IY06�j�-�.=��<����`I�����C�Z�R�s����t��tq�]jR����8����m�k�I��9G�B=:���H? ��p�q'7!8'$��y$$$I�A��Y�����\��>���N���KY���b��O���&d�Y3m�����u�����d�?���9!�R�Uu>��y��[�{[��J����<�wS���bW��5��q��0��w���2�Q�i�C��������ie���k��������%�����^�og^���^���n�'����f�ewj����{�dXE��v��+m��S��k����*�����}�b�s���K��-��q�%l��{p��Z���R�Wy��f�[�?=�����F�@��N�Q�Z�f�f�<r�~<�^��o4�;��������7:�{{x�~�9g��;��n�<���8G\V�] �[�Z�
]vV��Y���1=�w���k�!~F���9�kAK��8B��Wo��c��[��od�~G���k�R��|P���(:�������U��n�����o��#Xtk�vp�]�-�zL-�x�v��:����eh����������a����\��uM��b:%a���o����HqV,�5���	�Y���^��H��
]������d��(��Or�������[x��`Z���S��Rv�[	��SWF�{I�v�K��@.��|������	���O�������;��2hD���i�������Bw��!��������
��`<������/)V�����o��������W:!v���Z
��g�g����H�����i���������-���[��$^��$���c�bWq���{�	���V�5a�����{-��S�vW��'��(��G��o*<9�5Z(q��z�,+�VQug;���f��]��m��f��"��`�aN>�+�g�1�y�xB��I:�/x�G��?0>����G����f��J�T�B�v�N����W�z\�n����[�C����o�-���V�������&�GPp��>�Evs��v�k����������P��x#%���Ko�
+��7-�|F`�&{�v��f5������-<j�]E��o��{�+���x�]+���U���K+/��j��{�����^q�������R�{�����.a��b�_<q����s�k���H���O�����^�}r�����;����	�V��vJ��v'+�����K�������o1������%s���q��k�����pOM���g=����*����9�m<[���6�+����s������b��W������{���+@�E<�[�J������A�q��k������[�m�m�m�1��-�<���x���K���]�K����K�y�tt�lst�ksI��c6��m�����'�����]V��k�X�1�[_���*��#�[v�)��-�`�kvv�T�!� Z�i�r\����KHBT�!�^x��M���V6���6��E��%�mmm�e�m�\�
�1�k���O%�k�-s���{=�et�%��`2�kc�1�Z��&���R���K�2��r���ER�W&1��S���"��LcUR�U
c_g��{�_<
�x�!�
��4���>|
c_�>$ Z��
�B��T-HKH[B��TT(*��j�����j�S"$�R�J��$RG�g����{=���}_VLc�LcLc�1�v�c�;��c�=W*�
,�U�K+�q���WT�+�q���WT�+�pE���K+�q�Ier� ��D��$C>�������o��w����~�.�>��Q�gV��W�;i����H�k�8	]������GyJe��@��������Y	}�����������	���\K���� (�5q��2�sk����7��D���t�������d�1�t�4�1�c�lp�1�c���8��,�U�'1�J&�r� ��W*�
�er� �%�����Y\��(�W*�$Y\��,%����������$����>���~��)e3u���6/n�A�7z�c\�DzvI��"�?w
?���N�r�)�����������xXipq_>~���93l���	�i9h�j�54�{�A���:����T��u�D�1]6���dy=�1�c1�1�c�1�1�c�v����Y\��,,�U�m�V�Ad���\Ad���\Ad�#�\��*Ier� �Y\��,E��������!�I"k}�~��,���?,:_����y����)�u��o���eM�H�U�ru��)m�zlQmef�cj�����wgSav�;��SP�B�s�wD�^���������3)-���-L���>|�G�c�t�2=����1�����1�c��c�;�<c�=���WY+�q
��RI�G3�*�	er� �%�����%�����Y\��)%������$�H��u���s���N���O�<�y�iY�4_��}�#"��hSHD�&C9Z��U�����r�N��2�����|�+�=j�V
���i��7J��-7u&����pA_';��[���s�w���}b�;c�����d�1�t�4�1�c�lp�1�c���8��,�U�I��F�76��T�+�p���&�76���$��nm�n ��W*�!er� �Y\��*$��W}�U�UUz�~a��������p�������x�RK�O@��e����=kBZ����������Wub��X�q�og�n��R�]S��%T�2��7�&a9�(��C�{�����=��}��~G����1���1�c���1��o�P��W�#pnm�n ��W*�
Ier� ���\AE�����%�����W*�
W*���U}\C����$��~����Wu�)��4�L�sT��|q5Q������&��WHd#�_8�H�U��M������#ZX5vr"v�B*Y*��V�������tC�VNWKrV���U{��>~�_�^�����1���1�c���1��n�$��,��$�YURId�YURIQ%�U$��YURIB���JUT�T�*�I,�eUI'����������?�(~m�����RY{����^*uN�����*��7�PSb�QWW[X�.�+�hQ(mEo�F�]jN	%z�\[�^V,�We��/U����*[�ScJl�z�I6
W���/�W�����:}{�fLc�LcLc�1�v�c�;��x�OR,��$�YUQ/8�����x�I>O�����YURIbK����$�I,��$��I�����"K*�I>"C��g�8��5�s�m�SS�?Wir{B9�Wd������[�o>ux���v�������X����ty��@�.���qO
�T�\�����b�d��/{u�/)X9[�9Y��]���;��y���s��~;x�o���'�&1�c�1�1�c�;c�1�c���I'�d����I7�$��m�>N#i$��j�J�eUI%I,��$��UT�RK*�I*E�U$�H����]I�$��!�������~c�\��#�	����e����0
�U*M���]�wKE�T�jD��LV�`@@�Y�x��+���n�t9g`����A����0h��q�0�u�6�i}�����4�V��UW��><c�����d�1�t�4�1�c�lp�1�c����$�"���JUT�Y$�UT�Y*�I,$�����K*�I*���J$���x�$�YURU+���[�w������O��s���Zw��n�G-j��d�����u��,PVab�����q����^�t�8�����nT$��oeJK.���;���y���g�b��}:n
��[��e���{Nm�Z!���n������]����a���"�Tt�O��8�8'�d!���H
���Y#j�gA��u�E3�h`�:,��'�s����Ib�]
9�H���&���XV�4�em=�I�
���D�����2��i���Cqj{����[/��Nx�p�b�H4�nZ\p�;:��N�7��f�������*v���w�6V���]��kx�;�F�@��p��pa�z�s���'Y��.M9����n�4�qW��G����]�����/nJ
M�X��vR�X��}��At8�
l���<�Y�NiF��m��u:�h���Y���nX��Ah%������0������7+�R��fD�s�����7�=�P�9y�8R���B
Q�&����X8����
_B��� 4�T�wFt��;Z0
�xnG�A�m�&r/�-s�6��w�J�������6oK�j�%�w!�Q6���6�G��R���$�p�ZS:�]���K������h$2j���D�+�,�+7��U��d���h�f��g"N�I����2u���jnS��WT��50�n*g���a!Y�*�����p����e9��um��Q���V�l�,��f�/h�q�����Q)��,�e���f�|-����������%��;j��v+���C��n�)gv�2'N=,��x���]X����jp�������1��p�X��:P.��]����m�.����oI�r=Q�f(����lT�f�}m������v�t�v��Jq��z�d��]��Z=�*z��9�Ky6���e+��{��T�*V��a���=ps4�����,!��n3��{���^�$�f4���AM�z�WH�
B��x[����;�X�7���t`��z�+�����@�v��]��ui6ufg��U��<H^	c�0�����;���u��$�� �CC�8BN����y$�rA�C���:#�o�Y�]����x
~��]�#���y����8�� �W��M���c��������$.j$U�>%o��Q��B����/���'lb����3I�j�(v�880����l���\�a���M�.���l�;]�|T�b(�*]��8������sr�|5�S�G9>��..o=��{�
��o�Z%��Z����,|�&�!w��qjPJ=�
eb��a��I���+s��iL��]��Vhw[�-n�y����7o:��xz:m�8��C���n�y��������v�|��w�=���<���,�6iP[m+8��w�CW����h����hK����q��5
x�(��;P����q� �\��@��t��"�����]�g^u���K�;w������	t������u��E���2Z�����������t� n��X��L�ko��[_m���B����Gp�V���Q�����z��d[�����xmv��=9-�^:d�R��h�Y���r�[>�l�*}����b>>�a��h��������^���o�z'��7�/����8z�2���bt�F�[�Y�Lm3���+�+�|�J����Q�R�d���H�;j���&��>�R��m�A ��8w�K��������_���|�j%G��n�9)�/3
�Oi�:��i�������q�gH�w���3H`+I<#[5�u�^��K7�2��WK�%`�����f]�(�/��c�����g��
����Q��m��N5�@��2n[^��|�W���o���=�n{�^�s�*��j��=6gOJs(�����u��J������~�$�N����c�{aX�:�"����6��M1�ieXc+�zf�(C�pe��u�~��QX�v�]bG�L�q32���J7�J����ox�|��rU�&�9��I���9]u�G_�x���3���oi 1
y=Ap�������]��l�>����h��/�����<v��`5qS�q�������VE�P>�0���:U����tPt���F��u����3���=��������w����u�D���ZU�BN����z���������*��Q�������$���*P<�������lVZ���:!�qu�Fm����vWVM�����N�Yu��_k6]�
H{]_K���i^��b]cq����"�+���e���7������RI���<z���o��V��4���[�J�}����P�I9���fCE��-�m�m�<�X�X���<��V�X���[��1�1�1���-�<���b�������G������=�ym�O'�;%c���s��:��b���]�f��!���KIj��
V�gmHB\����-W ��!����T�!�!�Z��%
mV�8�����1���-��,ckklclclZ��X�1�]�]<�K���Z�_{���m��D�*���m�<��E�����I�����ykt�����\�b�-�T�!��j����i�+��T�UB������������)B*�eP�5U
cUR-UU eP�5UB���P�5UUUB�PR-U!�P�5U
�I"H����g����{�}^���S����1�p�1�c�8c�1�&1�+���,��U�T����U�U
�������U�T�����%Y��H��I=�|�������w:5����&�������0H]o��
��|��� ��@n���gQ�������k��������q��2	
=����[���%�.�
3�gjUw��
���9��X���v��{���������{2c�1�c�1�c�1��1�1�D�eW��I���X�U�VB���eT��eU�*���VUT�����$>������Vy����'?��'YUn���)�N4�}={���E-j�h��UM���b�������l�p�h�G���Go]-�k5��Q�$H`<�
�fm���d���b��<N�o9�$}m��N�>��g�&1�c�8c�1�c1�c���B���U�U����*�%YUdJ����eUB���$�*��>�{7����8����;�5o7�e�mh��j���I����hlv32z������������}DY$��72,z	����HM�%�u��5�����tn�L������/�W�U����������d�1�c�c�1�c�1�c2c�YUP�*�eU�*��$U�V
��Q%YU`�*�$�*��W�����������O��������{?x�3;��T��z���*$�\Mz15��4��5t�kJ��.�Q��+��{N���N��N��������V[B���+����^��.�y���������}��^�����1�c1�c�1��1�x��z%YVK	VUQVUT����U�U"���U�VB����&��m��%W��U^����G����5���v�����+9������w"�������������+2��H��i$t�h������.����J���]q���������r�)�f�.�����5���-o����|$z��t��}yOfLc�1�p�1�c�8c�1�&1��eU
���J���*��I*��$U�U���U�T*��~��A�������������]����=w���&�
o�]�N-�$lo"
��[|��v�5��^B]�>8�[]
�W�r���{9�'�u�<7���\Q�5��h� ��������uu9��]w����q������:||~�����d�1�c�c�1�c�1�c2c�VUQ*���VUu���6�����6��U�U"�������$�*�@�I}����U<�t�����K8�oK�Sz���T��j��Xu<�f��������N��7/��������'{�,�F��:K�.�u���]p�{��]
���@�k�K�N��W�^���r�������{2c�1�c�1�c�1��1�1�d*��!VUT����VUY"����m����&��mQ*��!VU}"d��8�u��u��[����u������y{�0Iu���b�Y�<V�gVI���F�,��u/T�EZ���)<,��k7du.�������n�0�����t�f��NaY����e��k�5;��Nx����}���#��6���#����c�1��1�c�c�<d�=���nH�sm�EYUQ*��**�UIVURU�T����nD�sm��C��k���k���0���Y����&���/q�����jF�'���K���������Q��*�u�ue�T5������z%Sw�R�pPH�������U:��Hw���'N��V����,����_}�V1�O��#����c�1��1�c�c�<d�=$�eU�%YUR%YUI%UU�IUU�pm��j,�iUR*��W�������:������,�y����m�a4����u#z>�p��P����!�'^�YfoPH���+A�0N=�tqR��;n���Z����Y��M^�i�G8�J�9������=/������5����aE�L�>�+<�k�v��h��p\bKJ��DX_+�b�b�v����GU����k^[O�f��t:������QR�q{��K8��(�S=��$�����J����V���n��f���M��������o�g�5'�����Z�V�1��p!R���������	��hg�j�o@���XR{PWm7����3t�h��s�)��R�e��k8������q&K�[VwO��o.�o=�d���nHq�{��<tvWB���q���a��X�1��!M�x�Q;���\���b�K�7���Q��.'�i_;K�������Pf�j��n������ma��U�"�q�����ocz���N�y�G4��QZ��	��&���A���o�|�P��YoV�%@�QokqV�4y�������{�������
L��	�^���Q�J�H���j����sC�����"�I�l�;*���y����JpE1���'V,vvmKw�7��^�\�4���8a����BYDo)��2��&�(Rm������S�Z�������L�J���-�0����f����zP��/^L��a�yv+7��/2�]6�;�e=�Wr���z]\[&�K
���wJ��jS3N��5fw����@�j�Z�e�����lS%gl�ia�������t��k!�T��B�T�XRy��.,�&n��I!�. ���G%{��4�r�K{�w/:9��-M,F
s[������hY}79'�#f� mS6�	y�[�fZ\��U#7�d�FS��%L�:�������ys_V�qr�I���-��O�[L%j/#�#�#�("��f��	����
hqc��:�|�y�q���J��J�\
#dZ/6U��+h.x�h9���'��	�����7FU�ifi�52�u�^�����H5$��I8$�$�p�>IRA��y$$��{��I���w�[���9�>�"���&oF��Sd������v�����7]�?<k�)�u^l�u>�o��f�����B��&����w�_��.�>�UOg���N�O��id7*���9�M=���0`����m�N�b�<�*����pI�<McJY��W�vt\E����[����&�}�s^t~�n{��v������y�c�k��_x^���v�!;�i���n��H
��H��������Ruw����Y�jbes�	���8O2�����aX���1��_s�Yy���^��X���9��v9�Z���+�7�@M�4�n���V����������]rP����{|������M�P����V|e�|���p�c��������<T�����i���Z�U���*�~�!����m�50�!�D7�:�+�����3�l���o�<����U5��W��+��g}M�L�u����&H�:�Bc�$��VVbW���`M'y�y<m6.���|h
���z�O��I�(������%��-���B���m�f���86SY���S�"��^�]�T]�x/��VP�������9P�uM���Z�h����Z���'q��P<������/)��q/4r�5����k���:���mu������8�
|�/���K�I>�H���@����1^��^na�a��],�$9��-[�^�z��a	F��@j�;vS�}=�E�Oa�y��]��}���%�>����S[���Q����x��=���)V��rdA���Vd�r���4�b��4�Dd;Xv�lW������������z1���?,�O[�,��[���[���W�
��u�u�g]�F��xj���&��E5����X�N�Q����}�������:7
usw��_��;:	V���g6>����e�����y���zr��<�<�s�����U�
<����z��{�~Xwd����@�(��c#W>���]{��W48��
I�ma���n�3zn����2u�Y?h���>�����/��5����J�����S*Y[���.�}������qf��}]�S�H�h��8�n�4�N��y�����6\��M�r3����+ib��m���A*��r�B����`������h�B��wj����W��{}==��OO{k@�+/o�*�����������&�c2-�����1�<��b�c�^������b�:�-n�<��m�mk��e�<��:X�9�h�����-�o{��������x����X���\��1�j��v�����#�[v�--%�j�5Z���U!EsH��@�\�W4�"�f��R�W4�#�1���.���qtckklck�[]�X����������l��1vi4�y/��9k�}�g��uWMX�-����1�Z��&���R�.�K,v��\�b�-�T�!��j����i�+��T�UB��������|��m��HBT(*�1��S���j���*�1��Z����*�1����Z��*��j���1�$HJ��$RG�g����{=���}_T��c�1��1�c�c�<c�J��%UU���UUdJ�����m��UU
��!UU�O� �I���w���u���*����}�x��,X�y�tV4���Q���\�'�!��yp�w@Iw<�K�������G�R(�����0�����e:�����q-�x��G*�\pX���.��*��V�y�w�\u���\�$�v��:}~�OfLc�1�p�1�c�8c�1��=
��EUUI%UUH���I*���#m���UUD�����6�m�]HC�$~�������e3��4W�E�����v�p�V�)n�]���y���x[�a���Va@k����y�*���}�jS't��v���;j���]XU��^eN�G5��&�8t���<���j��|���S�����I���m��~�#����c�1��1�c�c�<c�"��R���U�IUUH������m��Ur�$UUT���UW�H~��{�����A�M����,*���Yt��t�e�	���3Px��&�x���I�F���:�pl|�[Eea4����*���u����Ybx�3-�!sy���W��jE.���;��th�5�]W1s�WS�|�!=V�������{2c�1�c�1�c�1��1��=�*��UVH���UV����M��j�UUD���%UW|��#��s������_[ |����QW����*�8������5�^Uk��PI�*S(�O5�.{H����>�dl(�fVT]1VR�[ie���hS�Y����Z�2�b�o�V
�V�<��DPz��^���N���r��2��L/m�`���{������=��=�zG����1�c1�c�1��1�x�1�UT����UUX���UT*��$���$���$���I$�~�������9��QF�M���vg�e�]S����n-�?�s�V��UK"�uX��{e���l�@-�����yA��d#�]�JT��K%����q��Z����r��Eg���fa����/��v��<�g�&1�c�8c�1�c1�c��c��UUR%UW�rI6�m��J��%UW{��m��UUdL�$�����7$�m����� ��2u��o��s����T��~*]v�7)��a��M�j��z���T�`�&�j|���er�m�N����]���.�R����GfQrE^l�D�U���;������+���}�
�>?^G����1�c1�c�1��1�x�1�UV���UUX����UUQ*��UVD�UVD�U}���{��U�y=����iF~k)m4?pN����
3-p�
	�VR�����+.^C���5�����Vu��
��kQ'���V����&�cV���V��Fn�����v�{���O_����c����c�1��1�c�c�<c������UUdM��m���%iUdIUURIUU�m$�m��D�U_'��H=��������:���_8����of��kQ+6���9YGn�c���.LS�{�w}���v��o98����YE���]��;����{�v�yB����3�M�=���~��������=|||m������d�1�c�c�1�c�1�c1�{UU����UUR*������m�����k	UUd���IUU��!�H?7w�7;�����������4�+%�t4lt������m]����z*��ea�Y;�2�[��KK��w<���^����s8w3����v5do^���L�N�v�MZ��pR�e�w�u�1��������}��}{�fLc�1�p�1�c�8c�1����������M��j*��*�����	UURIUUbIUU��_�_�U/~~�w���p� #�yv�n����p�.�������9�U��..�y#z�Z���j�=�:�.Y�)��J�g�n�k]|�`��\�N�����u���c�rkjg����f<"os#&�T
��>�#i�D�wq]�k"Ts���Pl��i[�:.���bH��#i��:�>\
u�Z[YVl�D���mnX��/.��Y)D].��1ZO��u�_W5E�X9Rb���r�8R��t���Y�^��uw�����,f����4�J�0`��� $ 1H�*��R#���Ced����e�����zq*f�Z�S{���og(�.�,i���}h���:�������o&R, @���}w����H���q�o,�qWQ�����M�C;�gv'��L(�������3J�0��hM@W�V9)A+z���KiW,w�����ap����Q)��F\�^a�5�����g#�9�<�CU4��q�M��w3`vK���R�I�l�8��R��������&����y��,e+0���y��X���zzI���ZF�R���u��
�7���x���EWt����p��M�I�`b�u�x�2C�g3��W]�,�Pr�I1M�������Y�k%�w���<�n�w�]|����[���_*/���<��U�o�W��?���q;�TP�=�Y��(�`�F^�t��q�s���wrCE�)����vr2Wk�����zLG�L��	*������9s%��q�ul��}<f/?>~�nOy&	�0���"�\��.���J�n�^"��o��4�)�Y��-������\�c.��+S��!A�,�y�5_������/������^Wk�����a�����XK���G,���=SbZ�6qI4ge!k��]���9vA�&��!�o'���>|�<�|][N��\f�!u��2��Hs�KE6_s��
��&�����7Z^
�0d[�J:g�6�0�Wtd�����"�u��tjO.md7�H�����+���B�3��;����pux�
���*���z�3L<9m�n��7"��3[�qRj�uT7$IrA�I��p�q8���y$$I��o���S�x��?\�s!s�@�������)��-!j�^�4��W���_&L{�so���h��ur�]���r����>7���6p�'�+o�8wj.���������{���^������e��*�������y�������A�O`^�R�����y]#����y�M-��������5�<�n�������4���yr�]�=��WT���u��S-��zg*s��S���Z�':]@���wd{wx,��vU��s�g���tc��d1N��t��k���� B��W}-e��r����e}��S�>ls���2�����{xFr���* 0��u��+h����8���������{N�8�me��YO�H8~�����l��{��T�M����ksz������$Pj�h������\:QC<���k���{�C2���0�^L�^$����m[���*��I{-�~$ig�6����o�-}�t^���������.R��U���,���o����-��)U&����3�W�s�Z}\����4}���Ff�����!Q��u6�e�r��T�%�������I�#�X�Y�v�}X�3�m���B�G�@�}������V/r���g��8�{{�C��	GVX[j����)���P�B����Rf��kw�*���7Q���s�����������{����=V6=�������u����_m�L�m�v��Y��e��V�����4�_]ar���n\�o���5,���|\�������r�{k^�0<�Yi����Hkq���Y�������0�gG��]Y�r��;\�8������:c�
M�������_{7c��d���`p���Ru��5���>�m�/�"�A���Q�BK�X���5�n��S����OS��l�������#h�Ic5I�.�[:������r���[3p���
�zWY�?,PM�Y2�����`�)�4��>���:�e�(����_�l��&�6,fH�{8g|�[��E
���8�������Qe�����2}���W�^��U{���2/�����IS{���U]e��q)�m.C�I]D�RS������t�gH-�Yw�vf3e�Lyb�76�<��Y�.�@v��Z�����v�C{�����z��w��P�F�9����{�_��/O_�������+}��)R�_{�����C���RX�3!���Ykc�<��b�cm��=m���-s�lt���y�6�����6�5������E��&�1m�{����-�yo�;%b���uZ�V1�c�����T�!b��!ii-[T�����ER�W4�j��U�esHB+�i4U!EsHB<�i
cm��F6���6�����%�mmm�m�m�]v�1�`f�O'���������{=�U��%��`2�k�1k�lu��j�����y�����z� ���H�B���5U
cUP��U���j�B��Lk�����Z�x@6�x�!�����Lj�B��
�l�
�B������T)�U@@B��TT�UH�T)�UB�g333�y�<�����N�:t���d�c�6�8c�1�v�1�1�x�:{!UU�ZUj�V�VH���%UU����UUY
���UU��$�� ����:��Ae?�[�K�=��+Pkt������'4�LQnm��}7j�����R]Y���|*�7n��.�$�]�N{;���]�&����GE$M�z	����}���
�Ei����{������������fLV1�clc�1�c�lcc��c��%UUI*�����IUUdJ��%UU����UVH����I������_�q�����]�?������Y��F�mgP�U��i�'f���Y��/��|�%Z�gP��N����,>�������<TVoF��4�_��r��G(��mj�;�����OJ���W���������g�&+�1�1��1�c�1�1�c�1�S�J���UUX�����UT����UU"��R�����U_��$� �����?�8�W�]q�����q{��}'oL*����u�YW*U�4vh	����
�����sm�8��{l�G3�vL����V�v���y,���R�c����&��#v�!�s[��_�}_������������c���c�1����1����UUQUUaUU���m���%iUaUUP���UV�������As�<�����{��9����������by���]e�q�����M&JJP�}M<�&�����^�r���v7[nK����X�wGTR�����mk�'��k�T���o(�fpw�R����S\j�	���o���g�&+�1�1��1�c�1�1�c�1��*��UUP����6�m��UVD����UTJ��	UU��H��H>�������b	o�����������6��}�S�z�,�s��o&��]��G����^vu�B���3&M�t��qJk/[ut���[}��X�i7�)�f�Y���!Z���_]:E��<�o:�o�=c�;c�������c���c�1����1���IUUd�������UUYUUYUUH�UVD�UU
����A��������]k^|����O��U�������j��e�����fv`�ZU�Z)�����b�R��K�g"��)8`���P��)#���[�Vi�uw��z�_*Zr������'�&+�1�1��1�c�1�1�c�1��*���UU
���UU����I*��J��*��$���$�A���5��8��������������\9r>)AWF���*mJ�F��e[�n��}G*\s��R�q
��U�	K�.3Rt�=$������Ot�;/�����V��5���Wnu����su��[�;�|�$��N��?X�{2b��cc1�c�;c��<c=D�UVB������mQ%UUI%UV������I6�m�I*���J��~�W��U^������������$��Kv�0h�xY����f������IE��u�c��m�o���!T��t����{���������?��1��������&i�+7V3s�GNgr��5���{�>q�G���|c�������c���c�1����1���UUY$�U\*EW*��/I��md���J��EUU�*����m���$�f�3��{c�}w�?wKk2[:l�+��O+�M$���qe���q��s�U�ySx��h������������k�vu3��71^a�yV���}���;d��tR�������ek�V/��Ab����t�n���^�fLV1�clc�1�c�lcc��c���m��UUX���srI��md�UUnnI&�m��%UU�%U?:�U????m*>5>N��������n�)Z���h��t}���V0��a�N��g���Y�B��#�v:��$NbQe�j�s.f�q'��
j]��:cf���h���9l�5\=i��8Zd@���������+8�C*�KQJ��]pZ9%����f_7Um:��{��k�"�By�fou�����E�*���]']������z��=�tp�6k0�Q$�7��%�������>�d����wm�c�hB������@����i�H���'S��t�f����G�,���7+�k�2k��!t�e����k;���woh�ZZ9N�9
On��Y��U������)Kw�����)rmt6:'4h��tZ�!�}���z�\&��Ib�z�����}{ �I�4�6������r�*�W��u'��+d��������zfc�����54]vj8t�vq�����������Ibb�Oa;dr8��;�PXb�b��\��T��o`VB��]2�K�g]iM:��WwoTv�f�v���!���a;��%�&��Ggg�rF`����WBW�J�e%FJ���L��d-J����� ��5ab�!�!���8�npf���0��C��]L��PT��+�k'�{�s;�b��eG�3�Yo���8�S��w-�n��M��8�H��6m�D[����XnQ��V}�GV8@A�q_6�=fM��q���Q6
�pT� ��9�u�&�4nr��zY0��mn�3Ig%�����3��������OE��@8�z�}9�[�=x+8�w�A���xV�s;V�
I,�<Xm�>�.�uMjd5��;z�:�K�G$�z��9�],.�I�5����G���L���8�e��upeL��#��^V���o2������pTm�ir�9SVr�P���}�z�����:U�c"}�E�o	���{�n�����)���������K���f���vV���)u���hu�oq ����uJL������}t��$�X����*�����+4jN�h�(�c8m�7:�v�;[}L�}1��hFin�Lk�Y..[c���L���I��"#� �!��8���I8G	rA�A�����Y�f��"��]c����sIOi"����{%�h1v�g&s�#q�s���_s"}5��s��xe�k�����G3���L��,�3g�}�
��c+��J���[�X��8.k�a�o�������_�w�_+L�>���-�\�o��7��>o(����:2��W���K|X�����������fL* Uf�5f��N���(�\��@����:a�K���4�X�;6{������%Bs���h�7�toG�x�:���a��X�E���>���=��Yz��s1����1�y��u����>q-��k�i6�������������S��iQ�f�Q��XO.�F��-�~����k��_l{XJ��XI��}���N�+��Z���yj}���5v�Y���6l|Eq�����>���WE�g�=��1y�F����w�loe����}��w�(yk��><�x�4��z6�C���]N��E-�V���0�k^qZj�@e�q���K]Z6�����T��Mf���v����>�=�fzx��n����Uz��g_]�N�8+C;A��7sx������~�"���33��'����{�|����]��4t5��5*�9L�<]u�-��\I��Ty���n��h�p��;a��,e�X�	�j�OzJx�+�7�>���+�Q���tu)��E:�vnC��eNj����T0�������<���O��__7�.a�/�/!�S��P�����,���.��m��6y��jxY�D�{��U�n�5���^���b����	x;w������w��kC����s�3y]�n���Om_{�}����j�Q���m�
��ZD���\������}^������s!u�����D�X��?O��F����/��w)�n���������w4e!�T�
W���'X�"���k������D)e�>�������\��Ep��;a���T�_h��a�_
~����x��L����K��\�cE���>���~�����Nh��B��{t�J.��8������&i���F�k�Uxbz62��V$��h����ia���|�����z�����{���������
����p�����-;a�P��&w^���X�d�^�&�1]��n��t���������5���=�P�Gw3]5�0u���z���^��+k���N��`������,���������������������*U���==*�8��!" �R�-�����<��-�-�1��������b�8���My��ck],[,clc],[+-Z��h�����{��������U��Z�U�uc�-u����HB�[@ZZKV�1H��5�T�!� Z�i�r
�iEt�&��i�iG�c- PV-�]��X��kV�d�1���1���-u�<�1�c���O%�Y�-s�/���{��c����`2�c�1j"��[b�Z��R�rK,v��\�W&5"����T)�UB�T(+��T�UB��������|��m��HBTT)�UB��T�U@H�T(*��i�!���Lj���@���
� Z�@6��Lj����ny�^>>>>>><x�y2b��cc1�c�;c��<c=$�UU$�UU
���*��$�����������UU����I�A�����������~q������	�$M�Z��C^S+]���Vs��-�[����Y��bo!l_r����m?H��]�k�nR���_m�V�����)��>W#kuq��t_4ou���[]U�������w�X�{2b��cc1�c�;c��<c=����UT�UUX���UV"���UUY$�UT����%W�����)d����n~�i;:^�]ZT�kT�u���l&s)�=x��b���P(23{]^$�����J�uxn���u�s��dx^���<J)�[����t�,�OU3�[�oxg�K���<����?^<����c���c�1���4�1��OB���UUdJ��	UUQ%UV��$�r��h���k$���H���>�C��|�����u}�}���N��Sn�W;��n��d��?�eJ)'���n�6;�s�z����3
7l��z�e���r{u�s�o+]������l�T���u�������?�t����'�&+�1�1��1�c�1�1�c�1���UUdUZ�H�*�
��'%UW��6�m�I*��I����m��6�m��Bd��<�/�����JO�)M�}6�}�C���c��IvD9�����-��S1�Z�|oZ������t��{r���J������y��d���d��{+`���/������|�t�}z�{2b��cc1�c�;c��<c=�%UU�%UU$�UVD�UT%UU�UY����mb%UUUU}�H}���u����wy�||�����k+�� [B����Gr��������8y����'�����-��gq���]C��U'�tf���r�u�z��>s����_5_$�O]�:|c���g�&+�1�1��1�c�1�1�c�1��I*��I%UUJ���$&�m�DUUy��$��������*���*�����������~�~�����W�f�������A����u�R�W��s���l��o������g��[����-���n���u�&V-����5���v���|���":���29�����_������~>�y=�1X�1����1�c��i�c1���J�����m��
��Y	ZUR%UU
��"J��T�V�VH�U^N��H}��y��������k�q�z�k�2��j�c����8U�;x����A�n�9}2��y�;�Z�N�o$����h5i�m�W*�����,�1��{�@��n���&�z�W�W��U��O���g�&+�1�1��1�c�1�1�c�1��IUUa%UU����UV���UU��&�;�I����b*���$�I�� ����y���������5N�G7���*K�t:�Y:� �9"�h��1�Ry\r��o�+����_&�y�����\��&]�%c���������gQ$����-�����:���u;���^���z���������d�c�6�8c�1�v�1�1�x�:z��"����UVI*��IUUQUUIUURIUUd�UUP�����A����?5 �U�������]\@H���[|�e���r��]�*E+s��V,����wl���\+����M�5�������-mK	��v
�}�7�#������5[�+:�������9�}���:���lt�O�X�{2b��cc1�c�;c��<c=���&�6�m�EUU�����UVI*��%UU�����UU=��5�y�>k�u��o����
r�mm#�$�R�\��w�����U:�t�hIo��d]{y2$G����������+��,��GmX��]�8Sg�o\MZ�e,����RI:�{�+�b�<������
�3�m4-�k��������Ssa;@��\����������u��P�)oa/�~�H�]:s����mv�u�[���.��Sz3����������rB;j�\��3�.�s�sl���l�|-���%q�b���7��z����Kx�]Mc����6����xOF�Y��\q��J�i����Q$�I�uN|�If��{T�6�K��i���l�"�Y����i�V��#�q�;:T{�����nNQ��hz��&���]ko�QJ\��I}��p�z�����/�8Xz�@yN��(�pj1�_%�h��)V���avD��%�����`n�h�����`�`���]����I���VX��f0^DFfU�����wYA�9FrN
4����������v�]�����N��oz��}�du�m���d^�����6��Wh�����y���b8��vy��R�U����0T��li6Q���,Ve�]���Z��o%u��U�'u����F�v�9]t����cy�n1}���� F����$��O��=��7����W�-JK���9�r�[�8X��:�fl��+��=>+�<ocF�f��8f�0M�����+&�AVC�1=��'*���l������Y����
X�{)���X/�m*������-�/w�s��W�y�H���T$w<h�J^����a�������)AN*�����i����epn�=����4{ ����{(�Fl��2Q����h����m���T����h��Q<9Jd�4�5��Lc���b9�m�IaP�Ou�&��$�qnN��IyY�nm[*?�5���g�a��(Nr����s7 J|�\|�fL����I'/��)[�a�*wIE���>^d8�V�gR� ��zI����Y ��u$IRA��t'	8H�8��$�3����7�9H�J�9��o������)�����P&:Kz���>f��>���u�]����u��e��2���C�B��3��*��g�&�-��Z�g��u��]f����]�����m�����T������z�d�]w��3�+L4�f�!�;g��	Y�Q��Vr�sb��sx���g4�f���_vH�S�q/�f,k��Q/����9=�z���u�K�t���w�����f��db�y5yG�K�)���i�Oo�����*�K��\�0���\��������m����������Fv���������I
�������D|0������V�/�m�s�[�n����n�B@��b]m
D�-�V���+;�DB��<��1F�8oG����W�Gt����������r��:4���x���J�Tk8��^j�hWrj�1�����r�l�����=�[;�r1�����������kg.�H	&�9��Rz�������I��1I�u������1P���7�D;/��-�Y��-{i!�F�������nQt�F���@*��c��7 ��(��R�'Xa�$M�]g��f���1p^d��z=���+�g?bV
��Qv��Q�<#������!�wS@��=_2����^WU�(����������S@��g���te����5vd������\#w����5��86*kp��_�2.����P���KU�����ZC�;�~��j�ol����J��<d���!an(`T�g1�r@��	�K�3]���qq�{���y]���W`m!����v��Y���v<����u�^Z"Q+�c�u�{�NH(rU���m�i��/p���\����=�{=;}����OB��]%}��8pn�xyc��2@���YR��������S��Fa��`2;�.kD�;
y�m��y�L�u�=fS�����[�������S�ww~�d�z�F��h���a���h[���w�x%�����:i�&f�lGL���R��aU���.T���u+����]2u��Y����k'mH�W�g����e���Ed�|?P���3�����;���.W�w�����{����������������Xv�t��������I�������$�oe�5�wN�����'W�l���7��/�nG.����$9k�������2�q�r����e�J�cR��7��v���U���������{����V�w4ZBW��<�~K�Y���-�c2-�����<��-�-�1��������b�8���My��ck],[,clc],Z�3-Z�4y�-�o{��{-c<��<vJ���\����c���][b�B1�hKIj��)������"��U� Z��UsHB+�i�UHEt�G�y���@
X�!tclc-cj��[]�X��������]��c�9�i��[�y�\���{=U����P0�2����lt��T�m����9	��WX���`��i�i�rc��1����erc���j�S�=�{=���
��)��*�1��S���j���*�5"��Bh����`2�����*��j��*�1��ZB*��_;m����������^<c��1���b��i�c1����UV%UUUVEUU�UURUUTJ��UUXUU|��{��{���{�������?oV�V�;Oi����R�����6��H���c2w=�V�j��U�]�:u��WM�d�]m������T#T�(����:��z�q�����~q�H��n���������^<c��1���b��i�c1��=6�m�UUd����%UU*������jJ���$�m��EUW||��� �W��������������o.������8YaF�g4`������n�Wj��w�J�;�S�w�K���}��GF�:��{W��%���������������������������^<c��1���b��i�c1���UUX��m����#m����$�m��*��UUX�UR����%UW���{����~����J~%i������@�bj��Wu��Ok&t���$�5\@n��i�����|{�@=j��K�'�'mr���m����k�Wl:�U�\X����JS�i�������}>��_G���g��x��clc�6�1��1�1�x�:}�D�m��%UUI*��*�����*���UVEUWRl�m������U�{�3E~��_^g����.��������lI�(�7����]��wC5T�{��Y�H��;6=��u����-v�j���+L�:����������}&��;~1��z�{<�+��cc�1�1�V1�1�c�1���UU%UU�UUT�UVD������%UW�O�'�����*���C��j|�������o�8����u���MVna��n�*d��2��l�X�n]���[��+�!�w�M�7�7�k���0x��k{U%�I�3�S�7�I&�Wo]�^<��'������1�m�c�cLc��t�UVEUUUTUUTUUd��m�����*��*����A�������������]o�'U���'�R������]��Uk�mU�X�%5B��\���
���ox��@ne�v\��J^!T�-����f��7�����['n�:z������y<W��6�1�clc�cc��c��UUbUUX�U\Y\���UVUUUVUV%UW��}�~fu�<_m���m������*�����(���S��t���z#�������C6U��u:����"x=
+~���m������-c�-J��!��E������6+
��:�(��]=c���'����x�1�1�cc�c��<c=�UURUUY%UV�m���UUR���*��J���UW���{������?G��7��c�����������;����.����v�)�����y�N��9<�=vZ�5�#��z��������<+:9�T������6�^7��k��]�z����+n�z��}c���x�1�m�c���1X�4�1��N=�J�U�����j�UU�M�m���������%UU�UUd�UY�}Ad�[�������a�h-�����iv�,�J�:����M���3I��eu*TJ�L�5n����%CC+��3:�M��c��qZ���#�)���#�f��=�l��|v���O���g����x�1�1�cc�c��<c=IUUbUUT�UUU_f���m����n[RJ��*������9B~@P4�8�~W�9Ps{4dL���"�e
��8��
�m^��X�OgE���C�����%����|�ZX�AZr�J��H/b����8����VU�RCR�oQ�k������=�)������='��{����<�%�[u�����������IZ��m����[}Oz�;���>��^������9[��L�h�*�%���k�6ADu�n��CYb�6-���]�`���8�T~�6��D���Zf��H���7��u����������W����v7�vl���or�1�*%)n�{���D��w�u����w����S���**�N���k�;k��Z�%��+7b�`j��v�|��R�7]����Sw���*#�9r�|�/]��.�|��9���L�������F1u����:N���v�F��]P��$z/(�����4�]F�[R���S�F�:8�q�-����E������v���]Y�q��.�ayu
c�;Y��r����D��>���y�wt����S�I�������K2aT�y�^�2�����"��v4��Xe%MM(3s4K �u�<�����KCVgP��v[��1N���^:
���pY^�o�����=���W�k�y;u{uMQ��r�1��^`�5��(%=���XP�z��[8Ek	�!���ii	fkU�L�u��RV���8/�F�w�\�M��A��	�j`�(R��K���p������6�N���[�����xJ�����ty#-zM ����S����i���N�����c�Qu����k�"^�/:9x\�%���xx]�\�K����WU��:��H5������0��dfmp\O�'���)���T���q��QR@CkLGQ�Y:���F@8��[�f�oR�(!+�������:��L9th@1�.�i�g�n�����\���,���i u��h��u,��p�=��>C�@V�m�L���2e�
a&�����������E��)�X�u����Ke�Yo*�ih2��7&^5\�e���@��t6�45����������2�&�%�q��s�Gkr4_����*���*��w$IRA�}N!D�I�-�SR��������
��>�y�6����7��]�6��������kH����~��Z��������b�{w�o�`��P���K��>�IBxn�W|o4j�i>��+8�&�703����vE��0��_[Hq���W}G��>����5���v�}C�n2*N�<��Oq��:'j�+�\n����l���������6n�'c��a25�F1�9_v7�hP�q����'!@.�M��F�Ox�I�=�/@w����j����<�e��U�.��t��k�[N��s	i��b����N��9��M��e���~��K<��Xl���V,6r�����Z�%��c�������������B�o.��=&�����n5��u1�*�|31��?}��X�o{�#z��fS4�a:���={���z��m�q"��D{�d���t+�+������������!��SOo��u{v�<�O�]gi.��a��V3���LR1
�ja!�wc2�R�����%t�=��e7;��7�7��)g��V��^v-��G��r���H����U���t���c�N�U1i7��X\���V��������������	�)Xm�
U�{�^9]<+���W���o6'�:{�����#������]����wP3�.��6�9�F���u�����s.=�x(`����+�<�~�H���IX6��PD���[�T���A�.���=J�i���/[��2�Sv{w{sV.��x
$�{����}��]M�|n�wZ�C3�V�&���'����/��u������9@S4ue+y��k���\�'w, ��5tn�bWL�r�6������.O
�+�9�F~W�7XR�����/�b�U5�=����oC�Q����J_��k���	�����c��0\G�;�n�Os��R������=�����������}Pb��d`mH���Z��HV�/���ul��o-5�]k5�e��Vv��v�{�,��^+3����!_��&��+g�Cwq�[�'�oLy]�����273f��M��������� ��Et�����!:n�N��g_�>�����!�!��v���n��IQ��<�W��7�����R�~��y���J�;]�|���*���UW����$L%��!�dwT�S�j|�3�M�}��������7{2�`��������F�V�������:����V;l`:�
�����SzR7��;�4�Z<��o!F����{��~��{������[���T��s�1��}�-v�mc��l�������yl�l�����2�ltt�k�`�c��<���Z�b�cb���b���j����1m�{����k�����U��Z�U��c�-u����HB�[@�jKV�1H��6�T�!� Z�hSUv�b��B]3Mj�ZB+��<��e�
j���ckWmj����mmm�1v��u�<�1�c���O%�w���Og���[,U�c-yk�)�J�H�\���c���eu�Z��*��"��U��j���� Z�
���j�B��Lk�����Z�x��B��
�Lj����l��@6��MH�B���*�1����@���
� Z�@6��Lj�B��l����;�>><x�y<�+��cc�1�1�V1�1�c�1�������*��*��J��$�UT�UU%UU�����D}�_}����������4u[T�*�C�ZB7Z�Yt�7��U��msk�x���n)�j��Z:�"�e�e�:���6nZ�V�.0��v����w��������qm�:�g3�Z{����W�������}�������^<c��1���b��i�c1���UUTUUu6M��k$UU{6�m���*���UU��J�UaUU������y��lI��v3���_���������n:2�����
����M���yu.4����tb�ei����:��
@b�O��K��a��
"����'������q����|�O����������x�1�m�c���1X�4�1��O���m������m��T�UT���*��UUX����M��o{}�w�|u����K���A~
����L��OW��|���yV�[��'�ev;H��t����}]$���X�Y|n�k+�X���<	
5��m���}��-������H;������t�������^<c��1���b��i�c1�����
��UUY*��UUT���UUJ�����m��d�{�6~�����F���S;�s����,��EdI�ir��z���vb]��}����7��lB�.ww��X�m�x�*�=�q��
��9����+�n��?^���+��cc�1�1�V1�1�c�1��UUX�����UU|�U\�r���.\�r���._d�d�\�{�������t]V��#+��f�)���mZ�6��V�M�nn�����st��gWuK���w��c��|����@sK����,�k�������t���]s���=c��������x�1�1�cc�c��<c9r���UW.\�r���.\�r�������U\�r��>�C��s7��^��s�����}�lZ8yU�����h�T��F��8��:&����Vvs������:u����u|h�\�c�BUy�v��R���wen3Y������g����o�}�������x��clc�6�1��1�1�x�:r���.\�r���.\�r���.\�r������\�r�>���{����}��#�9~�c��+��Mst��5���;K�7]�4����sc�;2m;���r�+7�������R�:�5z�6�j������Y��V�������
�������WIU�/���������'���1���c��+���1����.\�r�UU\�r���.\�r�eUW.\�r�����>�K�]~k�y�����z�����:��5�S�j������k����$Wjzf)��C{sg��K����pto�V������b��v���*f����;\N��c���4�B��r,�
�GW�����_����y<�<W��6�1�clc�cc��c�.\�}�����.\�r���.\�r���2r���������I>��??:����c�+�j;;�anMv�#vV�7���0�������c1$��pI%[����{q�i��Sd��f��Rq��U`#oS�l����1��{U���>e�&v�����m]�t�}x�{<x�1�m�c���1X�4�1��N\�r���-�Ur���.\�m*��r����IUU���������(�sS��~}����������������6��O~�O������?�[������������g�n{iq�I?�nG���I�?���RK#�)$�y#�?�w�.v���I'��R6�����G�G�3�I��W��$��6��1����?����$����I:�_��s�P�BX�x����������m����#��C�#��#�J��1�	��/�m��8���w2~���������A �q$�8�$D���<���BX�N��������F�I �������O�7$�N_�G�Iu6������8}I����?fH���H�N8� G�H$�Mp�8i����^�?�$�O��>+�$�$ ���D�"J�G��$��X�$�.����8p��������I ��'��M9m�����T}��d� ������i����?��'�A�P�?�I'�|,�������~�������=I�/����F��$�Bm�� ��������D��S�>�����r���G��Y'��BA	���hO�;��d�A	]G���\s��4��P�w����2q�f�����	$��p���r����
��}��>RI?f��$�Bc� ��:r�$�\#�'#����GR$����w/�nk�I'��'�I���I�����+�'�}�L����i$���p|j&���r�9z~�$�Bi���������KQ4�����j�I?�I?����I$��\D�����4NbM?s�>�?����'�������?k�����o���~U��~��B|��G�����w��|�I$��Og�\r���I84���.$���H!+�Br�%i�������h��$�Br�$����l���$�$�?���'��\��r���I8G�\I��>cnH��I&���8p��*?����wq�Q�{��8�#�$�B~���_����?p���o��I'�����$�G�����c���GM���q�X��j$��z�_��������)�+�	��v�X��b��L��$2Q�a"�3�a�������������@����|�("{�/fM-�f��������
i,
�Y�jV�
4-�M4CfYD)JV�����QH(h�e��EB��%�m��R�U25f��6�mZ[L�+6 ���[SRU�J���UJOzuJPPP�8��{6�D�k���@�F��jdCX�J��2EP��TS-*�������X61*��M�I�2�5Ei���(����*jVa��)���m�������*�"V�R"�m�U�V���e��F'H�6�m`��K�8Ulcd����h��o�
��������r�����������#c{� 5Y�f�3o�v6���Z�U*65�vw���Op7U�;��p;�p�p�i����te��-�Y���W�.t��5�R�T�m�_�`1����a�5`3V����R�m5Zd��n����@�m�Z�Uz:�����Mwgp�
��������e�Z�*���4��[�f��%��Qm���A@�Aa�X&�](vm���JK6��OT�l�Y[`�h��-�`��
��8Aq�8�1�A�
�a��Z�J�6h���z�[Lm5��f���0�`��=�;�A���v���2Q��s��Ym�JUT�!��z���X�!u��Yj��M�������-RKfIFmfy��!
�=�8AB
��c�R��d5�B|nH�eTD�3+*:�0wX"��c	�0�30�"���j�h��R$�!��M4�M��FL�!�#@�{�RU*����4`������ ���T)Q@�S��@@��������������UM�����HF�L�=##��h��P�!��$��Da4��22m# �24�i?�������O�e?�4�h�Obx"���~��?nq����;Hv����L	��?���&{2`�����_o��ij��������d�H�j��]5�\Ko�������q�)��?�~���VF��'������c0�G�U��UO>�AD�����gPAQC�Gbah�P?�?���O�a"~����a:O������?P��D?h��#�x��QM ��=���e?�8���L���N�����0a1�g��^a4P3^.����3A��nHF4�����L��HLHI��@H$H2I����f�d3�2)"H�&r��&a��������0���!@@�dHg�Z]&fH�($JC���2$L�� ��$���2���� @�!`���a�&��dL$Ba
!fL�)Ba$�H�/:���� ���&�$�  �"H����bH�$� �d@I�fF$�H&&RL@Ha2N����Db#��1���&@�D&$	H@�NtDI$DB�&�	" ��H���������222L���0��a�!"fC!$I$ID�$HI$H�I$�#�pru�$�H	&	D
�$��"H��12�A2�RBbH	 �H�L!	$�!HI���$D�! #&�F 4������" ��`���H�&fHS�&C�Dc	$�$3�1@D��$	  �"b"���$A����H��A$@@Ad�`���`LI$$�	�$�I�	�"H���!$D�I$���3!2S !32#$��L�d�BH� �� �"�  H�A@@`	
	A����t�a�f3����21@$�H�"$�"H�DF0`�dL�bC$A��@�Jd$I	��1�PDL12�(��"0DD`��� B��dLAc`$I#! �������$R`��D��HD�$!�d	$���&H�d!��&RI�"`J$0E�1�IE3IF;�$L	����B�`����LD0`�F1��R@I���I H@I�$% �3 H&a D�H�Ba"2a1c!"��I�����@�B2A ��B(��Q	���$��B��$2H��D@D�$%	$�����0Fb"1�2Y4�BbLc� ��$D�D�&D�L���%22@D�	$�"L��$H@�LC$DI�4F2I�1a2bI �b2b
b1(���0@A$F2I�d�)�"i)R		)�F��0�B@Ha�	3L�	�P�2��L&	2�"D�	�0�4BD$D�D�L��i��	�3C12�(����2d��1D`��E0a2	g;!�d$��I �123$JH��2
�.���Q��J$f�&P!A�@���ID�B`HD@L;�D�H��ID�A����H�$! �,�`�2a$L�I��$@�d�0�Ac!���$b�FLbc%&�1���!(R��0�/��<�a"�D$�$���?�����	�	&2FH��#3BE�����I� 2L�d#2�Ra2P��L�d�2�I1�$�e3&D""H�&2h���D����F$��L���d��$L)	)$HI����fe2�HH�	�$�L�&@��(�cDY��61b(���RRh�AI���Pd��� �������4Q����)(��"(��cd�	&$��FL��2L@�&A �F�$���TAb�(�H�F(��BD�I"#���H�����D0$$"�!$�Ba2��L�!$I!��bD�L#F�(�	I��1���2Rd��%�L�d��� RH)��
31�`	"C"AL(J0���0A���F1�I	���$�2I�&d��fIL�#%��
3FID�Bi3`��d�&��Tm�h�4F����k����m�E��&d d��N�lTV5�A�D�C	�d��Q��h#&"4&�(�(��("H�`4I2P%# )�!@��2Ba	2I�$� ��)�$�� BD�&B@D��$�J$JD���3$��!��I��1# �I$��%!��F0!`2u�S�51DN���&J"�%�E	�!&$d�HHIL���"bbD$fQ3I�L��"H��@D�f"A��I&�	&L$	&1BDD@	`�2c$��Bi""3(���dHd ���3$I�`�J@�2&X�,d�$�bBi�C�� `��I$�Da�#�� !0DPT�gup�.�b	(2IMd�4�F�Ie" ����$!���!3!!�$3	DAd���	0Q��F"�������.rMAd�IE���� fF2iD�X66MIi"���" �(H��
H�
�#��d��h�&4Q�(��(���%��Y��f@fbC%"�
&(J���	&fD2(��dL&A$
$!�2� M3!$�&d�FD�%P���F���h�b4��M`�)1�D2QLD@	(#2�2�D�d�fR@��I!���I�$� $��JL�D3
K�RX0D�wDA0c2&H �3!%!� �"	$��$�DI;��$"HNn�eK��ZH#(���W2h�D��$�	$�2d� ���2E�BjH�H��$L����"��I&$$	&"2`I$I0R&D�I4&��1I$L�Hd�PZ�fa"dJ"J"$I���2	�1&��2A��HI��1T#"D!D�"�2h�D�a I	�$$��Fd	22#	!$JD�&C%D	� 2a1$��L���30I�L�d� &	#H�����I�"#Im ��"$i4h,��L�S&!�FL�IH1�#�#��A�`$�$��Jd0�2	B�J@"H�"$�D��d BbH��RI�w�JI JP���"H"Hw]3�@�20�L��$$BBI���D�v"B@�����tL"dK��$&I$��!�BRA��)�I$��@��H��"LP@`���BR� ��r0��d�1��"!�MPL�fd�� d�$�D��
D��" JI)���������IJA"Q�`�d�DQ�DF1�1�0L�bH�$�c12a �1B00�2JH !I2d�$&	�A#)���� BB2B"#cE��+���s7�X�cF�L	�2��DDb
&$��&$�LC��f&&L!"R"��F4F)(�(�"��$L3��m�
$�,X(�1`��M&LD1���)"J��d���4E@Fe�������"Dd��e�H�,lS2E!2�&CHd�����I�$��#)����DY �b����I0!��0���@X�b�,&
��D��C �I0��L��$�e�Dc�	���$I
SL	��F&��B4d�H$3%Q�2bgu�:d!4���$b���cD��"#A��LS�V$�X�A�A� �2&MF,�%������ h�����H�$�6M$�Jd�$����X�����,h"��H,�E��
���&D��$� !@����$��$i����0�@Ha0dIIIb��mIcQ�c���5�����|S�H�H�$0��/^�y�(�llF���FD�1 ����QcT�d�QQ�"0DA�L����5�I�H�"���+&���H2A$����kF�iRD�-F��	���D���5k�����Ej���R�f� 6�meR�Kbj��`����6��$�2HL&$��L�(B�00&$2N���V��������������M��z|O����I���A� ��<	�
�8�H?���I�;�~&0�~������?����x���<�>>�?�R'�0��\�����6���j1��5��lcX��*�kc�5F5�j���5��Qb5��c��5�����W1��kc�5F5�kc�5F5�Z��(�,Z�E�����j5����F����j5�F�QQ���W5�\��F�Q��j5�F�Q��j5�\��F�W5sQ��j5�F�Q��j5sW5�\��F�Q��j5�F�Q��j5�Q���\�j5sW9���F�j��Qlj5�F�Q��Q�����j��j5�F�Q��j5�F�Q��j����F�j��Q��j5�F�Q��j����F�j��Q��j5�F�Q��j5�F�Q��j5�F�j��Q���E��X���j5��4[��F�W5sQ�c����[�F�QE����c�Q��j5j-�**����F�j��r�5��j5�A�1�(�-�F�W5sQ�6�n���m�F�Q�5F5�cQ��j5��-�j�F�Q��j5�F�j��Q�����j��j5�F�Q��j
�Qh�j5����E������sQ��j5�A��6��Q��j5�I�k�5sW5�\������j5�F�Q��j4k�F�Q�����TW5�F�����j5�F��E���j5�F�Q�b��Q�����j��j5�j��Q��������F�lj5�Ilm��Q��j5x��F�b-r����5�F�Q��cX�QTj5�F�Q���j4[����F�j���kE�Q��j5�F�b����j5����X����5sF��j5�m�F���Q��j5�6��cQ��j5�F�W5sQ���5��b���5�F�Q��j"��5�F�j��Q��Z���-sQ��j5�F��-�F�Q��j5b�F��j��j5����F����F���j5(�-��F�W5sQ�������5sQ��j5�F���Q��j5�F��5m�F�W5sQ���\��\�j5sW5��X��Q��j5�F��j5�Q���������\�6��j5�F�RZ�TZ5�F�Q��j66�F�W�\�j5sW5�Ur���j5�F�Qb��Q��j5x��F�W.Z-�\��F�Q��j5PZ�F�Q��j5�I�-�F�Q��j5�\��F�W5sQ��[sQ��j5�F�Q�-F�Q��j��j5������\�j5�F�QE�Z�F�Q��j5�F�cQ���\�j5sW-�\��Tj5�F�Q���b��j5����F�nV6-����F�Q��j*"��j5�F�Q����Z#h�5�F�Q��j��j5����F�j��Q��j5�F�Rj�F�Q���\�j5r�b���\�j5�F�Q����j5�F�Q��jcQ���\�j5sW.U�F��j5�F�Q��j(�5�F�W5sQ�����Z����F�Q��j5�F�Q��j5�F5�Eaa���}����c:���O�?Pp�L'�����?I�4��T�e?b��QO��~�������?bw����~������������'V���=i��������u�5=P�u��r�����&Ma7���N���L�.�PXo����f��GZ�%�q�eK1����f�i���ja�'���J�@�a�B�VX�S���U�������0��
��������K/��
���8�Yf��u�J9YB�&V<�CK
���gy9;]�t��GCwKD�������d��]����r�c.��}/����d��6LR�����5_5D[�����hm�<`��r�h
�����M��7Ob���4o
�i��V������\��
���(M�p������oCt�hv���p|�1��y���T���WM����ia��b[V��y[�[�>�n;[����=��NE���x��b�^����W�E#��)�V�������A�E���]�u���X���'�2}���k����;9�V��$c��A��	�[	�3�M%M���M!�|�i�F2K�����M�6��*�H2��e7�����(9V�C�Xe@���A<5�����o
�z��������x��W��.��dG3u<.D�p�C��Ln��C����1/��\w���I�E|F2��� ��<�m;p	�D<��������4z�������Q����_[��N6b�Z��l��Y]LYGE��MeN���2�@�-e3GS��������v�t�2���[�z�^WH6@Wnv�:S��]���dYfz��"����-�g���X�/AC�2����SQ�}Se�5,l�7��r�k�;��y��Y�53��u�sR��CC;2�<#��n�v���!�9��,NLo�pL{�LrBvI*_a��]N�5��f�;O���jd%�d*+nmQ<Wb
����t����4����6wxC}��o���5��[��:��SyCnIj�o)���#Xtq�w��3y<�����[��G��Y�]��vI �\j��%Vj�n9�Dz�������	�c�#d]�/C��5�^5�����]���"�AX�\��mhB�_	f��{E��sb:	��#@������c��{k�!��y��Ls��m��/~��P�5(�sM�v�.����db���E��>�Z���b���p��q�l��	F�2A����v~��B�M��M=���nX�!w77k��w��X2!*��W:M�w���K���o>/v��I�������c\-���yd[5�M��5��/i�����ww�T
�	�TyoWn�8�V���B�4�b�y\��.���6
ko�������_$��E
���tu/^�]sh�%D2�=�v�=����[���YZ���F�	����y����gk��/���k�kNR��-h����
�����5�s�}6w_]�r��T�L��o�/X��d�YFwN�_52�a�!n���S�'o;z������v�wk�^Q������Onw�_}��cku�+�kf�������Gz�w���F�"i�5����� v�c�
���#�'�f>��q���%�Uf^��+�U�JX�z�&��P�HpQ,�	�o@]����c��v%�c�ofjpV��T5�^��Rv�A02����i[��y�TK�ly�V-�6�K�������-����j����x�*�rI���>�W��������Eu8�����5�[�rH��gZ���XV��\��U����3-�#��K�-���1��N������=�'s
f1Mk��&�mnj��.���<���e�M��c1��a}�����e76���Y��m������po_M:���.��F�A{���y����
7�"��h����t
����M��X�{��u��V��CF��c4�X�wZ�a����6����u�.e�f�J���nK����L��������7:{���q��(zy��s�����w]���E>�|"�kp���V��Q��a���&�o'���v6��N3.9�./�9���7�����F�kw��u9����u4����;}�9��������VybG��������3�Dq�N�����B�$/D5K�f����!��=��A:�[�,k���$��v[%�����YX;pEy�n	�+_8��SA�w�x���{�-���r���mp��]�f��P�j�+����Z{��8�S�����kxJO��3�v]Z ^�4vi�Yj�z;X�D1�t�r��~f�^���u�c�^�*p�k�w7|$�fl�"[<{u��Z����u
��z��6��%q��_��`e�YY���lI������v?�:Fc�;��kU�BC��}�3�6�����h!G	���s��y.�4����t������j]=���|�Pz�K��eT��^�7�ba����</;�V����H�w�b�&
i6�y�(��'4_�����vyy��g�[������	�w�K��e;�kmd��
������e'�=���^z�����fF��X�okok{�_Rp$5V-�2K���o1Y����`���VM���)�Z&�����iM��UZf&;\�u������A������������u����=�P�����"���b�6s��Z���aQ��4V$i7G�B���	����g@�\�����2�3���^sY�����r���'�'�M��}.wN�s�e��n5xL�-#���H�(kv��Pp��>������E���X�]�Z�.�J�d�	[�����2we��;���=��+��6M�u�da�^^��oO"������5�onW��rr<�0�X���"���8$iW:rm^�ra����f����������2vf}���ne�!�����_F�qrS������������s��U��-k^��j��>O#�Q�=u���ep�����:��?dCm���4��9�X��\{5_f�u�6Q}�2[�,d\���<1r������$AF��5�������'pe�o�����PB�%$jOY���x��rm\u�
e����>�0t������}�:�?-"��g���L@w*�N�lv�-�����jM<2��]���wn��^��3}�oj�~v�����5|�UfA������-�X��������t���_�j���4G�j)=Y�NIUy�r��Lg�&�w�lN#���q�.������r�G���w*8��ey�=����wU��r�{��MM'��Y�S]�MTV���u	29�����0�PMv��sitgJ�6
T���{{�>����x �����[�\��Ph�s�Qy5m<8�8���w�s��V�k�C��E_6�nG7]�����=�4�R}[1�lv��0�X���	d����'S�MF�|
��a����dI�{P������{�>Pi�nt��I�L��G:�j���q+Uu�5�\�p2uG$��[�y+{w�����c�G���U����_���������K�o'9�zdiZ+��Y!��0;{��,]rm�:J�I����&
�c��21z�,��FLOZ��g�S>�����O��79�j�)�&����<�3�{}����g}�o�g/�)�"���mO�����[Gk=��;{�q�]W�A9|�^�w����.{L�;��O������ n�"VH����Uo7I�
�uH\�W&,N���[/�����u)d`�'{3{�pG�a��8v����+�v���;�|�d��#�3���\���n��3��rn���wxfBP��Id����$���8x���oo�*�&�m�U���\�F������% M�����^�9����k���o�,L��.YU@�����p�/`k�w��-��%�fkU��fa[n���t�h�S��,S1�,a\�N��'�L�\������Nu������R|���X<���5��d1q`$r{M�y4�S8�n�����+�VH]|�n�V}��^�U���j\y�k���B9e�1^�w�^��r�L���@=�r�R{nI�<�y1Z�%�-�N��v����9f��N�y)H���Nh�vV���{[������7:S
>����[���p0H8I�`y�h�2v�u�0��X�K{.���_���xei����\b��Lm}����2�")`��f�)�*b��ES��
\��`���G�'���N��o3�G�-;��r����K�6.�I�_o[hk�9MA&�s���D��fE�O%M@Z:��0�d����d/�F5W6���.��5k��%s�(����dc��L�����s�,�e��k�� �U��}��*�T���o��T�����)�r�]����jss���M&�3Uxi��C����L���-�[\}���~�s73�|�������}�u����vq���4��u����������n���v��o2���v�����:�W���#��[���qss���n:VV�y��d"5
�(n3J�,�C�{�*��T��w�8���7_���6�nFE���i�����$�)�M������=$ T��g�wp}��mf�k�U������}u��-���\��wH�4y�7��g\�x���kt����{�qt��wWm���L��G����)�����@����Tz�=�N���������6�a;�m��yfqj<����7���������[�P��u���z����_]J��K���y��+���F�_6�R����J�j�kF�_T��o�%�Y�h�i�D���`j���t������b���J������������d�P���<����n����y��WH��u���z{;~��������A��������  k�&{�M����������_f�2��Ys����O]�N�$���6���8z��F�k1�����.m'�agK�l���j�Z&l��K3�����	���"������f�������Cz����m�f�y�U��6���r�J�������2�����re��z�6��f�rc�pmsX���gku��\r��$����Pb�t���z0e�t����z�pG\:6��3`�"o�A���$�-����V�9��Z;H��Y�����\����D��_Gb�L�N�+<���O���ZY�a�����-��'	�(�)�N��2
=����-���g�;i���+f7���E��k��w�s%�S��w��
��q��|n_&G	���rb���/E�M�XC&=�����Wm�k�v�;*&�e�}�uZ�5_������N��t���YN��o�%n@{c�UQ�������V7Zp���-1���]���������_t���hR�yG;mT���W����5�lX��U3��B��p�(���;B�w�=�Qc0:��K�Ag.������u���=ar7l1IC�n�lU��1V����g[%��,f<g-V�-����t�neoC�����}����Q�\��,6�+��\����P#fuVi:���j����=E5R.���^.�������4Xb_N����xKn�i���j�c�*v
�a>���/4U�6�Kl���>�|B�������,��XD���&����Uy�Z�rO�^��[.�#�e��J�z��tor����E�N��g=��m
�&�����}S�S�X����}Q�v����;9�s6��{]�v2os����}+���{QKR����\�Q��.1S$)����#K)yK�����/��.';�����������RZ�{��W���Y=�Z&��$y�U��)@��1��#�Zm������+�����a[�j1�4����@
*����k���sql�7��#��H�;����k�Z���%akk�t�����\/�oH��|��Q��{���)G���A�<��l���G�`����!���7~ q��` !�S�J�
�EvVR��qS��,{A�#r�[��J ��f�6��!j�
��aq�A���:�������R*��}Y�7���[yVL��Y'��E��mq�w�pd��������zV�};	���7y������`[��j��E�������V:���R�6m^!u�h7w�S9p0��*�z5�8a�9���)N@�f��jW���5Bl]�����;��.ND��3�7@�[:���8�,���90��,�/&�VD�j�����q�+e<N��.�D��<�^H���������]��w�����M_wc�1��n�_[�U���0�K1�B��Ms��%��\���LpK��9yu������xw��*Kw��:��uQD{n#�n.��e8�79uoc:��R������W�gWx��<��^C�R���a����9��V7��(������Z{!C���HV"�"�BfY�W�St��{8�E���7��{����\wc;����z����;�Y�����iW�U�w�!w��N��[R>�� FpuW��gM<������m7��Qa�|�npklL)���BQ�I��o�aX���o�
��q��s(���t����s��d�"��YW�����-���`���:�����**��{�f�4�q�����o������6�������%�V�T��W[��lc���C-:%VN:�f���4��n���#>�9�+]�:�]�"[}�*��ujZ�������EJ.1M�Z���������0���.�7y[��g�������+��rn��	clX���7nZ�]�t8����+!�cM������v���
��D�YHK�+����a�gU��]R����b$���y9������8�U��b���[�nVg!���,P�Y�H��C��_8:��e���5C���cW�y����jJ�CJ����e
�����gn��ui��S����w+���3Ao���'\6����l�s�8�\�O�`��g=�X�pb�Kv�f�3��Zv�p#�$D��j���4�f���%�m�q
h+�����kP&u�t)�(),��0R�����Vs�SX'|��!5����w��l���;\�'��q�]�������rHo_=wsp�����V����Lrss������n��w����{W��9��L����;.�����3*�����Mm#�{��_;<��O�_}�mf����T�q��N�'�}�*�Kw�vc�������Vr�����s����=�a����14�b�
��b:x���;{%cD��Xe��uv��;!��61]CJ��4��)�M�Y�WR��z���]F-7�O|;�q���mV�u�"[f�l�<��3<��I�d`��#�v��u�OB]�`�@�X��G��P��7���>vq%��f�����8:���
���)l���P�
��POv���e�,�������FiF�e�t�a(���
(APp6����nCzhiV�8�WdX�������2.�r���g����)��G�n,��(�d�#{\��39^��v��/=���2)1{��]-bKU�m�DPv&����nD=P�{k������<�y����n9��x=�K����Yfky��Uu�S�<)Z����+l
�<%KVB�p���v��EVh�9�l��k4�d�,WT�n�<
�:��h�
b�����u�t���;���T0Dvi;���cb�S:��]���J�v����Ri�����������N�*�-���c���P�����-��s��	�{��q��SG�-��g���W
�W4U�e����.b���y�����o=�F����F���h6M�`�Db���V��������gx2��fDz�QX��������H�7�:��o�O�.��9�{__@��LY��<f�7�)p��k��S��,
Z#$9����L�7-T�W&p���Go7������Y���P��J#���5YR%��/�1|�w�������E��W	t�(,&�I���1�L�5��)�]���Iqz0��c����'[�����G��#Z�79j3�A����_������@�f�r�8j����7s0�P"DRm[c��
�{�����^Ug����#+`n;����]#���{�gn��")b����Y�M����l{}����{��[1��<_fe���\���]�[O��l8P������
b�z���<��NG� ���-���Z{�,����������J��D��Nr�]����-d��Z��1nu�u\�G��YqT�}!;9Ls,`�}3b�ve�k8_f�5��ug�q�_V�������s��bk��������.��kB�[�j�,����J�(tk����(�W��Ar�o�:�.���rX�j��t2Xu^P3�P�H��{�����<�<��Y��{"&j
��6�5��l�n�z�b���x�wc�C��&�f�u��4��
�����N�\$��>9�`Q���L�����>�%�t��X��E�+^��g{�y���#*/��*2�"�29k���=��h�]���4i�B�2K�����#U*����L��4�U-��;�
7IGM��&�����]d�j��A���M�0m��Y�"��X��7�Q�N������� �.RLy,�[ze��-���7�&N;\��]��Q��1�C��cU������"Ki�@�N��s�*��z3q3�Z��wPF�6�H��#S�P�D��ko��
M"��GKW\�,�KW!)�U��5v�v����4M
�Y��������|W�&�b���H-F��`.��O���Mh�r��`Y��
���3.��D�/&3��^���|��V�l'��yV�I� *45�{�WX��
�-��\6}���F
���n+M�U���!���]�C�v%��)���B"���p�upr��r���{4�C�!�Un�nC2������[R+B�3:
�������W^g]�e������1~w���_k������aQU��Ga���Nn���ww���_c/���\d�����_y5����m:Y�b�E��l�BZ������cV�kX��KLQ����]
�*��������[�?`�����9�:WZ���M�P�����w�g!�'+@zF������{�����b�n��/������y�nX*D4�sl��y\��c���MKK���P����7�N����f����f�t��0��t��������*�i��kW���(^�$��b\%�%�F��:�^��;��QS�2B1�6s^��Ss8���'zs�kXq�VS���/.������[�@8��U����]V�24P�\����v�4k�m�o���28�e�9��Q�����
8��9�$�����Zf�n�r�gh[Ww��jf����A9������c5�(�-CoG)R�";72<
��e����uf�%����
���mh0���/W:+`qX��e-l�
m���mm]�\�2N��D�;^�@�Xkn�c9ke�pK�*��C������d���X������O�
�e\�~��.��^D	 Io�YUxTZ@���H���+�a|Vf�[��������e]\�_s219L����3�W;�L��G;wfC��B	����}��>_7�����-�������2u��#o���*@�^�JWh�����/Y]�7H�A��
m�(��W�d��	j]'5lu���u���f��o������k����uA����:]mfr��tA���
V&;�J��]8�N�"��'+�Yl�2�SGXu��V-��d��3�`sm����9kl"-bfKOg��	
V�����y�B��B���AxOrL�����k:���$���a�s�Y.E�X�k����P��y:��:�B��h���(�V&�t?���������=2�w��k�5�����]X�d��^w���/Q��Q���J�|��/]u��H���{���v��j���zb�J�&��1�O��q<�.�����35�><��p��hj�v*��3��y�:�U��\� ��(Srnv:#�e�.X�{���*��#�Xs���g ����������T3o���r��S�\��V�0orr�Gb�����T�\u��b����^��r��nn�r����]v76���sr��:���`�xs!*�-F7���V�nS<���
I�Qv�nVBxU�������]�y�*�%T��"����n���EM
����K�WY��i��)�%3�uy��F��=soO.�������Y
��}s�3���o��3���Ma���yP���U�c�u����ku�w�l��#XN���Xf�"q����s����m��4\H�R����W�7^�Gd�������f	0��V�&�7]c�2AT)���z�oR���
� T����u�T]V#w�Y����;���j>�O|�[������tR���Z@�x���
%�l��a���vh���;p�Fr���5���M;��\��fU�x��:�P�p���"�����~��-��Ax^`�b��Ij��z��cO(Z�}�#[���T�K]����G~�:v������Ba�u�\?���x�������_���o���Z�����$�Z��ZT�Jj�m�J����*�R�Y��J���������Zm�ZU*������J��f�Z��V�*��U�J�*UiR�J�ZT�J�����-��T�l�V�R���[eJ���m�*�*U�T���kI��R���[eJ���m�*�*U�T�l�V�R���V�������R���[eJ���m�*�*U�T�l�V�R���V�*��ZT�l�V�R���[eJ���m�*�*U�T�l�U�J��V�*�*U�T�l�V�R���[eJ���m�*�*UiR�)U�J���m�*�*U�T�l�V�R���[eJ���ZT�JUiR���[eJ���m�*�*U�T�l�V�R���V���[_���Ej~�?�?X~�i?�0'�L&81����o���� �O��$����d��� �_������B��l�BB)��h����@|�P�U���"#��w���� H��CD&�|�m��1�#����b1��c���1����m�E$�9%t�@Q�}�F"2F������DF ������������:�w^�h�0� ���DDA��(�������?7L��ko�� ��}DE��`��0b�������w�w������b" ������D�0��������w��r""#��V�}n�z���s����^^�w�^V��1���b#U��z�������x�����j���p�@I�� @=���<���><\���A" �DA��0D���������$����y������N����DA��n@A}AQ"���y���U��� A��_@~�Up�DDDF>����1���O�1�(�������(1��A�}�t�{'�	�1��Q��/��1��b1=b1��""5|r"}0DF���"+n��z��H '��C�"AAA��Ww�s�j�"+f�Z����/=x�ww�<�r�	���&I �$�����������yy�y|��I$�
a����`H 0D�x�{���(|(
6I$�$���V��Q�R5��������@ �"!A}�������9wu��G{�{����;��>w�>^6������F�""#����o_9��ww�x���G��ww}b0DAAD���Q��"#�=~w��]�������^|�"��������"��DIA���_�I ��;���d�y$I~IA��A�8��w�w�;���	  #G����D � ���D�u����s����z� @K��S�y��$��@$��I	3�]�wts������;�w]�"�:=w]>�ww���wx�]� ��	 ����B��_9����<~?=y�y�o����F(��������Gw�;����(���b��Cj��}��{��;�����[y��@m_k���[����������]���?;���zs�;��=ys��?j��"" " � ���Db#.c���;����������y�<;���l�5�� ��s�����s��.r���I�������'9s���z���""" �<�����ws���s���s�"�Dc�G����N������y � �~ws��u���H1�A��DD�����.�$�w;���^��������$����I�A}����~w$�@Ogw�.��wv�}�s�wn���r������b1��F1����8HH�e�	'��;����wN��=�y�����������]�s���s����s��:I"H�I$���z�b&�O����������w.�;���h "jE����9���m
��b���u���;�r��[zH��u���r�A��B���D��� pUW���;����o{@�{�&�zm���'o@z�~�z�AU��[�������������A[�^��Nw�������A�mW�x}���=��r�����<��<w����<���m^���A-�<��G��w�z������8x�w�wZ��#��=8r����=��������������� �Vm-gws�9����w����cmo��<��/]������_u����w�y����w;�q�FV��� �%Ow�����wN��y@H�����;���ww=�^�	�*�<�����w=okm{1�{���8s��m^��" ���$�{�����[_"��_���^�=<��"P#vjH����D�Cj���(("""��\.vBQ$�d�	&�
�����y�����<��������p��w�|��]w\;��������;��N��<�����Z� �mx���YI��%�	UV�@|�"�������w�������
����!���������{���	�����:��]��em��={{Ay��F#
�@Ef��(�TAISe������8�����
� W^#�������^�k�@$������:s�����;�-\��I';�<�z���V�$�M9s@��V�U:v�z'DF""��	VtD]W�0D�Mn��Z�@DD*�� Z�@�[v��������{����y��9�����������m{(DaH�m��Z�5�������	Ek�K\j�6�����"#�0c�����S����)QO�?�@E;>�������A���aE�&?Gsa��	�T���$�h9�?����������?������r�?�������2�d�0����l:i����p�:F�R�2���"'+hs��(�[���|I��d]�+�'$l�Tw�
l�l�z����|pe��$K�L�SQ��xa}�V�\��x����/��fC5.�s��������N�A���wXAnm��`����S����rK;��.��A����S]�����w�sb���&>TE����n+���.��uD�<MU��\Yz;C]f���T2��O�qi�c@��Z9����T���=�������������W9v����6��Z�PW��g!���=�U��W��.0e��d�b	���Ra��2|����[��&:NB����:��J3M���.::��S�Z����)i��7aQ#$;��:����jQ��F�<t������a�f�5��sF���es��S�N�Oi���W%;��`��zBE�F�$Lb�,�Fn��tl��s����.E��,��5t���0�4�W�T�7P����������������{+��^��\B�e./*��*^"wx�T�����+CD����+'gIY�0���-jl�
����LJ�pOU�w���,�2��P	�����rb��,�����B�)o<�M'��8���"Wh�����-�����cq�5�KE��u��rt|r����G"-�.Ew���Q�8���Kh�l�]b��{��z�;pc��.��J8�u�����wl�k&�����v��V!5\�f�Je|�
����S������0�k3��\o&����P��A0h�`Q��*5G�����J4�sF�a�QN���WZ��XCTB�A�]h������h<����^���h���<�������H-��X���=�)S+2N�2�#���a��{��^nw��������*�z�S�w<9�.	��)�����1EG�7���4[�����m��,t6&Rg��<u
�,Jx4��������J8�yv��w��&)���Y&V����I���y7N������3���O�o.�#k���X���`��lE�G��"y%Ji�aVm�u�����Gs���;�O?+��son:�h"����5���Iw]w2u�BuvqO"V'^��l��#	x��(L�u��f�#S:N4xR��OeL�p�1�"�����^��L��B�I��-���At��
;;���A?���xE�����y��m���=��>70�����1�R�	���Go�s���e�:���oN�������T��K3N��z�N�V�g�u
�M"$���w��Pv{tK������]�S�krIk�A��x�,��Q�����z�o
���R�g�V7�YAG��j������*��c���_N�����.����I.��X{�	�nY�����3���\wV�"V�����q���q��]["r�Ut�B9
�2�l�o��,����uA�r�T�K�5U��5��I����fk����hqw;z�6��`	�*��	��Ym[@H�t�B,���a����W},YI��������m��{1���������
`j�*���,}�����V�{�y)��=|)�S5�6N{�.1y��R��O��Y���|�w-�i%��U%��Fk��3h]���cWj������+���}���A���w(.�EF#D��{BSjN����H��9n�e�$,�xoqu�t�mfk�n�N���{���r's=��2/q
uP�N��7\�'�v�����Y{���W
2=�&�"LWv�/��^����r��r�x�����p8Oi�Ql�8"5-����������F7�RK:2��8�E��t�G)�>I�u.�\\�c�l:��f`U���n�7CY<�����|�A%�i�]��������{��W�v��u~�����=Nv^7�c�zf����A��Ab5�<��l�Z'���O#��_}�����t��	�32�;�Y��-�t���t{B��4����$���v���,��R:e��/������T�����L�����x+h]����
��]�����2���.M�����-}.� ��9N0�r��A��Wv�7�M��D
Z%(@�'<C��6`�A�"Ju�%�'2&vLv)u��&�����������6���-q�[=I������8yv^�oYx�����j�^�AZ7���Q�[u�*�^B�=^9y2d�g e�[���e����\����\�T�C"4V�(��W����'*�������n��_[�nY=2�-I��`��S��u9�nf����Fj��G5��#p�tn����6�Vh���K��B�]�
��9Le�ky%5��V���upUw��h�L!��YJ���48��)cu����:9���m�f���YN�e�������/4��pU`�2+B�;OO�)���9��;A\,*��$�*��1a���JUStKp���;��]y�&h���1P�Y��%���E����eT�a&rS��p���aKNBm�Y�S��sK�s{��U0���	K��s�2�E����*���<���Ga��B;:�t�
M�El����Yq�����ps�]��(vd���.`��0��`{W�����
�����{\
���O{2u2
e��u3����*��|���	������w�u*kz�l���8�'^����y5w������6Z����?^���oG�;d��������(Nw��'�������n���&���"�������2�ua:
qI�s�x:��kX�P��;+K�M(5��C���h\�N�c]�rV���Wg.����B5�b+��]Y���Id<��\�qV��+;B����6]u[GL��%jA�
�`i�Y��N�T��\�Z��P�7M0EN��~����8��]g�������W:a��:�u�o�9fo_	;n��R�%��|U��r��������T� f��A.���s��*m3&a�+5�c������2�H��DW>����sk/X�Y���m��Z
�9��/�7S>�_d�fnGx���x�O4��i�����@��rV0��/1_iq��S�L�jq*�����S&
���#yhoj��Z}p��l���k�[���q�B:V�JF����������-U�O����
D���3�8�DB���������
-���}t
:�u�U�[��o����P���d���M9U3-FkM����WF��xy6� ���[�V��T�b����v�&&2����|A���l��ss&�C�(2�p�2`��fn��a���C�P8>��8�������
�|��7�����j����gf0�h%����K��E�=��;G*�X������y;M�O+kJ]���n#w��L����
�����"���n�����w�m�a���ZKgn!W���U��]���LY��=9�m�G�I�L��Zx��`eW��I4Sk�������5�=�R\78���P��fb�`�@����aw���n�B�������Wf��
���`:Y7iiz)�1�A�������+8�8���i���W�CHf��UZM����>�����R��A�e�i]n�w�k��%`p5��:�,��|�}��E���c����X'����^dp�d�y>q�E�����.U������s}�8�ty>�C����9�e�����v�J�t��u�:���t4��cV���F�D�fj��#
(���k��a��������}�����]�1���m�M;���y����e3X�{q�Fv^�	��']��m�������A���^�I#OR=*�n�[b�m�!SF@��"'\4.u�\��S��W�X�V�=�����h������A��x�\�@������JS�e.�g���d+�h�%�V�V�)
���o4��u�a����<�����klaaV���w�������/:��\E�r/�.�z�c��YY8k���VoL�,�9�[{���]����e�2��\=��;��s�7}8s7�������k��	G�mw	r����ET�sp��9q���?n�"" �&����	�9u}JU�g�d��)X}\cy����7;=yWL]��"_dv@�<������&�gVK�����"wU�UpR
��+�)�6�Yzz�Y����� �C���N)��V���J���k������K_7������0���

��[��.����jT��g7�]��_"���K���fo;���Fkcw=q�g6�s���������k���;��H���Ms��Hq�G����'����W��V���������r7b�28d� �7�R�sI����i�������o�h��j�h�O9��z���U��������Ai6���$.��Z"_1; ��a1�������8��$���7X+��� x
�w��l�������bo����&�'�
��v�2��c��y�k�Y��9�2;xw�ak������v�h��7�^�hen�f3.����j�\�����5��N�z��%��g��j�x�mL�����N�M�Q�;%�����F��D��S^�����4������3�1�-�wE���{r���k!�t�jo`�nP�.V���d1���h������R�����go����r���)lB�����dQ�������m��o��YqUOUg����n�����l�Rn��5QE6XM���&!Lc�������x�wL��c34����A�R+���eJ:lS���$cK�hm.j��n�\s�����_e#s`�C{��m�
Lwus���9.h0�I�Q�I7���RP����a�Ok6bj�.I(�p4��.^Z
�-��v��c����-�y_
��7���������Y��\=6�o>L�t�r��q����,wTc������S�{.����N.���4��O]�n�b����s��s�����d��U���V�|���q��0��t]����$2���s�[�����`����M�7=\��r����n�,�6X���S��z[1�L�i]�rh���	/V�W)�����
��u��{��(99�coc���4C1�F�n���;��������'*�o�a�����j������*�}:�	W���e��%��c��N�WN�������=��eG�^��7�Oy����k�p��w��T�{W������2V������ahgV�(�j�������-���t���n���m�������#Y�+�E=�����G$o�;u��HT��.]&*��=]�)�r�^�`��n������P���IM���uxs�kojY{���;�-��!���1XF������N����B�	����a��u5D���3�,�v,f����&�X�(�C�b�N`cm��s9�������iMe�s����&e��]�������G��
���7 \���.�Y����;��7'G��ibC���	ux�����%M��r�u����0����o��3�C����B�kL���������;��e������]�w9����1���7�eJxu�g���,<�y�����]���v�gy��������e+o��{���Kk*.v;�0�u��H0�+nC��77p�S�';6�H�.��M *b�K����	�z�;W�����T�g4�[�5���;q��������:�e����"*nWk�7��sN�qG	�����#���jCx�	�S�H�
��do���Fq��\/9����������N���r������]:dsn�+a}��yV��0!p������0���y�m�}�&�����E����vt��]�g*�w� ���j�_��6F������G&^��K���A����1z�+������,����aNfJ*V�d�ll�0�|jR�rl�q���S���,W�F��������������!wN����y��a���;NXZ�U!������0�*M���`:�nm,���w����Rs���������oW;�E�n{x���;���[�������+��
��j���������j���Jq��i=���=/V��,�*�������]��rDxa�-*�<�]j��mN�u�k�t��N�:����r7��V����77.����b���X��r������n��3�;P��Z����Y�����l%�����2���_4�U��zi\^[����$�,�72��.`mwP��F�`5q)���TY�
IY}%��AH�v���S������3i�9�e�]�R������Q�nV�!�����4���E������;�fL6�R;����.#T�1W,��EGzu�#&-��]��^�����v�p���BGDNq
�y[�T�������-�I�Coi=`����m���boK���w���0����4��d��`�����C�n�"z*�p�{����(-x��I���[���SXn�`��|O��N������_V�A!;r�6������c+������2.����c���Vv�������;�Wi�������-\:�����C�~��{9,g���Memy������v*��9L.r\�T����R�8v\"������;�����:��i�4��Go�8:K���m�2dn�B;�^v7%������a�+�&4!�u���M��,f�|%�Am�H�W-�(��Wp��.S���>|4�"��c|5�<Jr+;��S��
��A�����H��K�A�tm�u��Ln�C/�k�wx�6�r�rer��A�GnP������$=_/nA��><�M�����VLm�t�5j@���W�c���YDfilY���c�o�Q��C8�kiu���n��������xw��|:K-��s����H��XYw�F��Ni.���AU����bvl{�$T��T�]�B�mwR��H�PY`�wO-����
�v�Gu� ��|��+���#�X����'Nv_7O>Cn��z=7�3�w}z��d�r����������S�k���"��y�Q����.�h�a���V%Y�������Lr�y���]��g��v�+}-��3=�;��.��!�M���/��ul]�gNo+H�ff�;LT�g�*�F*�&�s����3���BK,B��`�3kn��N]
yf*��cYbkk�*���@���P���tAnb�Gw!�D�i�U�F�e���jVM;�F��D+�K�1��������1`�y��<�
�C��
��b5-/%�v�E�1&�_#��j�y����+�����w���c������O9������w/�U�����9�:u��!B
���d���f���+�+��^�7�6����MHm�"������`�������=Gm_.���{�6U�WZ��8]�(�x�ck�L�[�S*���y5�+G*���:)����^���$��8Vt�6��)<��G|{y�rk�����3�^��z��i��o3{�(�zR�&�S�Y+r`��R����\MP���^�]��v),3!��f�e�J�S/����L��c��d��YW_-��(�v^��R#�T4�r��B����]h�r�b�����R�����t����&	�u�k���\�G�����l��=��^ne���e5Vw�����Z������9d��)�\��%��D��O,e����+���W%,�U����������3#"�H��UH�i={|�X����Y�le������7�����QR�h����wc��T��{�]��6�����V�����4����ssobu��]��V�c��I!����K{:Z�������1�����������@�a�:��e�|����;K���	y4�x�XF������v��W����"������_	s���vn,��K���T��	������S����\uj��8>n�e0?6y�Ns/��^�;\�r!���&��y�ml�b����kQ�Ye�:�5��&��"$�e%par��t�Z�d���T�����z�K[xkln���H�v�v��
���[���on^���������rUw}���o8��wgs�Ky2t�3}Y��o��E��%I�}���l�c���ay��}�;w�{��m�cV�p7iQ?e��
�&J��e��yO�f�ov�3X�j�����f%zE��
�7/5N<�:��J��jc�\��;��p�����h���eM�U������;
�-��:D�5r����P���9�m����v��sL{�K�^����5w*\$�w�K�y��d����&,E�07����1������|�v��#��5����c��]7b����r�HN-��v����%��sn�wT�0���k��F	�s=D���!Z�[u�������lq��W`d��s����S�'fN�����`B�����3Z��p�<�@�vgbrr�4�B�g-1��[}�p]����@�8��-,u�NV��=y�����/�v��-z�J���gCDN���fm��vk�"�u������'(�@�������}�^aY����&D�=��J��>�2���;��g�\b5-��Xgu�������P���9�o�!Kz�7
��I��s����HcS.mJ��F���j�<�k0{�{rw�s��1�7�]�sS��R�M��Kd���3�/.�w^��z�'
;�28��|�t3{rX�s�2+l<d�_N��[�����4��O@L3����WK�9)e)�����Y]�7�*�Mm���k�z������0��|���}+jm�������}����)D��t�m]m-�Z���<�Q�[���+����NX#Zkm�]�}	F*������b������U�2"��2;y��w�y��6u��Xv�����)s�`u�=�*rW8����:����54���O�u�r����U[�qY��B��v���X�W��U5�$}���N���P]���*v��&��6
�������z0��9�2\\����
1�V��Yf����c�n�7N&�v��m��v�i��!��}��22���s��i��r���R�6U��������[eV%b���Ty�7;oe)Yy`����d{SW0����y��=���2;/o�9V�+'5�"b�V����Q��!b%����N�����R�������yf�x��sm��������RU��P����F�Y�x�Z������8�gh���Tv��^4�[yOw�r��*p"���]]��xz-��J4t���	
��u,c����cyO����m�-�_��z{O�go�[�Wf'��[���vv�2u�*�)pu�����i	�������5�������@y�	�.����5��/��8��n�:8�V���4e� ��B^�j^=�/vq9|-N��{.������&���Ds�QB��9})��\L[�n(�v��68e5�z������������h�����-&����R!m�>0�K����w9U�����}G3gA��u�W3cZ�
�����uvM�B��y5�����T��f�@M�xN�F�]���������i���U[�7�i+�>���`����(�r�92��pM[�(4~��,V�QaU���*��y�q��i����L��DG������m��9�����y��&�c� �����_V���5��pU�;5���6������4N����{j"�����z����]Sk�
[!�l;�	�����L-���-��p���)�FY�W��jn��I��	,uJ�����fq]39�r���v�,Y����/�Y�=����������Hc5���9Hv��).B���k�jEY��SnR���;�3���^-���.����&��-��Y��������kNki��Vp�r�x8�'b������[W3w���������^���
���I�y�;ok�+����d�}���������\��dR&���/���l��9)]�30��\�@U`����3o ���R����h��*����&L0;�u�9-A���)��\����u�%n�]�!��#����)x.9!On�����QmP�A��]���^9���nZ��w�����mN�_'g����fm����p��� y����������"S,���!{N�5�VG�v&����vM�{q��v����P��&*���8
h�{��_��
u�=@�����'�������2��*7�k�\D��l��<g;N����=�PG*r��y��]W��f3�5��G"����1���<mNO#��r�3ev�hT�;tk9�V��w �[fj�	���41`vK����������L��oI��yI�FVU��z�;��mW��sy�o�N������y5�W��Ff����9Y�_�+[z���s����k���h��n���$�K(�W�u]
�T��^�c_Qe����A�:�Z5�G3���Wn��W��i�Qm���h�v��*
4w9���C�h�]L"�B8��i��+�!n�:�Nw/��v��Ro#��e�\�qS�)Kx�Ul.Y��$�����f`�(�[N���l�{�|�P������O�O�O��)��|O�O�|�6L*�(�D�}�?[��e0�0}�y�>�����H���X�B��]�+�L5�y�s��\s�t,n��'Zh-�L�{�Wc30�\B#l�\�`�j����&������)JzP��T�����XH��[�����B���f)km�]�&��t�L�&���T-��nb����@��{�Wn��m�[Va���;�2��������1��]L���]w;�r��L��N������������S���=����d�sl����t��w�������onF��pWe�n�����q�`��n�r��Nfu�nF���������mmCw��e����z��N�fs��=ow�EG{��2/��#1vq5+O#�[��1���#�It�����q�seu�.^����VLS������`N�v+��m@@��|�M]�
�4�qZC�\W�����}�Yy��N6��K=,�|8�K��o�7���������dZ�[��M:{���{�<e�{+���{�er�����j�v��sy������-�fu����|�TV�q
�u�7pE��w�V�J.����S[�U��:��ll�p��k3�|#�������(ruB4L�������.���T��L������Gc:��@zv���[GOda��d=X,�=4m{�_��0�Z��r�m�~�����9�PfH�����pr�4u���J%$����}���u�6������#���7w/��glq/��|H�Hv
}os���c����s=�GzNY&�v�m�C{o��3]��H�;6um�x#]W*!���r�m��8s�y|�H@��-e���\��GP�0����,�e03Q���Y�;��7{1={n;/r#��9l�vW���u]G�%��jC�}�>F�FvP����3�h��]|���z2��k�'�Y�^�m}.E� Bt2�&=k�Z�7����E�����T��Y��L������;L��s�p���T�x-N��{��,����m���N��BX�Yh�������nP<7�;�2�in���Y��7�9#1X�n�gY����RG��m���2���i[m������E�;�.��51��!�Q�W����JB��p�J�FQ)P\;7X�6���,>w��M�4�f����nS���O��Jd7J��k��V�v��$@�2A$�M���[�uk�u[@��z����-e��G����U�
����u��j�����5���m����Uk�
�-�5W��j��?��xY2��������fU�~���������A�^zt���?����_����9d���_�b�(z��A_��,�/����.�(m�P35:�~>�����W�w����[���\;c�����Z���4,\t�����QXh��
���)xi�&gO��������{:�xa�
��\�S��Pi�>�~�^������5�=�o��3��������q"6����x��h�S����s#���3�\V^����+������A;~���S�Y�F���#&�L}����/����L���nw;��}y�'msu���	���U�G�o��iaf�{:Z���w��2!�5��&_o���z�{Z�|�y�i���W��Z���|��o7qS�,�����MKn�3=[/7�@�r��J��twQj���e���CJ^���+~����c�%��j[��!>�����W�}�����o��^�fn�?M�;���<������LO�����/~��|�+�}����W?}w�Dd��v���kn<��>
t��{=+����!��a����9�>�)���mg0�A$�	zp���gZ*�P9����r��zi�d���^@���W��u�������!v�^��)����M|}��}vm����g��_-����3��v������}�����������m, ]���� ����5Su�����Mn;�:�:��+Oa�w
ou+���}�)�;Z�3���FG����d���\I�W�yLrU�.�t�����W�ex�&�Dl���;�juNL$���B�\�f��4-'���?b�wW��q�1����t�m�c~��>}?O~���.>v~��6�O{a0�6���w������#�����]�N�1��"`�V]�@�:������b���h[�����B�l�h�(��{�ee�v)*3��7�$�L��zpL!�����5g�U�}x\�b~*��l�/w����2��ix��+)k}�N����b��/�m��^��������M��7���~��6~�>��fe#[V��z��	gl�q��l�z��fY&+�&f�Ov�o�����o���fY�y�Q�*�������
�zU��(L�^����s�������Q�,po�[��V3H!��|{�� {|n����k8���N_
�&s�*)�����/[���=�o��Y�}�u�kZ�Gp�,+������[�����`[��LGmG�P^�ulr�	����wZ�R+I�,PI�����@1yOTU�;����C�g����������o���}<�����l������
�$�I��$��>��������������@=���f;<���s�DDA����3!32" &fDD��L��������"*���32w�z��L�����	���?����D@L���	����3""fd&f\q�����	��323'z�����t&fBff�|�_&fDDffL���	����3""fd&f{�����32" &fBfdD@L����L���c����TDU3""fd&fDD������	����y<��3""fd&fDD������	��q�q��A)���(���1�
�����0�e�jR��O\Q�������
����
�������32�@<�-�](��JR����2�I%*R���:JT��TJT�JQ��4������O\��$���c���H�n����JR��AP��B�wv
�1r�u��d�q�&e]p����8uB:P�!B	J��*RIKX��UUP8�� ���@��*R@��B����Z�Y�kw.��)R��LB:��8�B	L��pwwgz��u�q��n���z����pu	B:!%����4AT�e'�A)-uR�����
�K]�j���)R�t���k.�%K��R�[
e��zA%,kr@�
��q�,��t����c�h����JIH7fff`
����Il�7*\xD��_����xn���<
�`.a�:����BU)%*���1�(�������:��n�X�u�q�R��Z�1�����s032�� ��Z�=q��Y��e��hm�r�t��c0����IR�(G@I(�F�����c�P!*���UT�0O\p��ipuq�q�q�q���	��d*�����P�!�%T��;��1lc,71������p�q����=	��BTZ��r��8��z��8��8��8

��m�z��8u�]�����B	L�����!�@h���1�8���B:q�q�p	R��]@��B:w�����8��x��<��;�q��{333��1�T�wwvt��X����S0fff��8u��
�	Q�n75�i�t:�t�N��]���"p333�8��8��
�@���UK���G@.�]�A`
�����4���	U.�����
0e'�8!%����������9q�q���w�8��W�q���8��8��8���Y�3""�����3""fd&f{�Dp���L���-323""fdD@L���������9�U���x#���O'���L�c����y<�g�}�����|�]�}������wtD��L�Dw���������L����w�����������;���p���I$�kwuRH������H"�	������GBfbf`G#���O*��H"��D���D�wv�)#���������	��LtDDD�g��p&fffBfb"y��#�Gb:>���;;>���q�}��}�ww@L�L���t&f"g�3131���Z�$���H����	��"�;��}�v�o�}��n������}���}�����}�����|8w�}�����|��|��www}��}���V;��$�{���M��}�/���>����G�����d�����������������������Q����(��S�	�l����,a�F�0H��t4���N�h��N�:Mh������_�W�}���������S��i$Z^�QZS5����Ph����kk&�{�����^V�
iN����ncr'��\�;}���f�69q���U]���%�^��F�y��1�0`#G���E+Z���ek���k
�������|<|z��NL�re��t��#�N�A�N�L;��n�i��(+�]{�����zP��dm*��Y�������+s���{
����w{�3a)����s���b��j�+�C��n�"����3rBk@V��^��H���`,��c�:�����gGGg�
�kZ����Z���+Z��kZ��������L�}�L�re��.\�r���&\�
/{�����bw��q5�[������bo�0��;W�S8��PT���sv������#i���v��	sov����5T�e������s�Y��u;E
������{�Zn
�haGG��
�kZ����Z���+Z��kZ�������.L�y�N�h��&\�
t���N�B1���m���������!�i�{kQ}_j5����5�F�cr����+e�e�,hK$���;h��%�sot��������N��Ef��C��u�[�������Y�2Ab��8!�<�}>�V��ek���k
�������|<|y�N��r���NL�re��.\�r�x4���.���:��]���e�w���j��r �3'kS����If,��p��9�9q������e�7�����-J��s�6K���ie2�0,%K6NVSVl&(G!���O����k^��-kZ��k]��kZ�x��F�:��NL�re���r���&\�2���/$�vju�|�trL��)��,�G��`�Wj����A�oy��p���I�l]�n�
Mt����3rX6�or`z�F�����0:;::;<8h�kZ����r���aZ���Z������L��v��yy��v��n���]�u��]���f�����\q�#�Z*�al��X3���+T�D��T�X��\c&��	%�Y��T�b�����i�h7�aT���`J@���:t������+Z���{+\��kXV��v���k��������.L�re��.\�r���2e��.Z��
���|��)���RES���Y�N��	
��b4�f���U�����9M�1N���H
�w
�e����U��QAe��@E^]+�~�`�4 �O����kZ�V�kZ���kZ��kZ�����4���.L�re��.\�r����4���,�*�
����2O9��o9��&�j
�6�Q�Pu��Q���
����sh��`������P�p+4����$��k>���hQS�H��������EkZ���ek���k
�������|<|y�N��r��re��.\�r�r���#�r�?�U}��V
?���������%
�M���wg�������w�Kk(�f����&��WR���][�p����4jc�z5N��.���
�(���ws��O����W��z���p�������ZX/����Z���n�q�#s&.6������f������l*9����zj���;���yb�<�����������J�:�G��\��l���D6�
�����c	�D�Xo����	�$��
����2
�:��W�*��������!�+RU:���7�����
?���k78s�Z����X	G�+0�-7�Am��E-��17��F�v��C*H�����Q�2U����kB?�gz�,d���Z���'����*�����-NE��ua�W��7t!�t|��d�!�����_>y����;��������c�����0u�������f=��j��7�����������7��^R�3;qI��5K�jr���*[��7�����8��vd(w	2�'G+��k����
$�hrj�f�`#���c�����������F�<Wh��emN8���R���i��]b�������c���pZ�����u�����uEu���#Z���f�����mL\�=���.�o��.��9x�r=���Y�9�r�6��-����+Q�%R[w��=���cl<8��N��Z��-��iA��.��-oM���i�_ENc�/m�{�H�RZ.'�{j���%��6#��������f3)]���;�=
G{��8f^��	�9t"�
4<��W���]��!�-�u��*����u�wX/]T�V�X�v�D�:���)�t���p�������t{{*��L���v�
�����
�E$���CB���N���yc��{{��Z�:�QS��W�:��fh16���j���+=q^��*e����	��;���:��v���g�}YU�_2���U[}�������� ���D���F�X��S��
[����8�ot�*-���7�����a�"[FV�����N��j�����EogUu���!k�J#�G��l�����f;��\��v2����&f���;Y\T�x�M��.�P]��}�S@PcF"T��*��Z�Wf�_��W�U�k��W�u��*�����H �F"�"mW�~�$A����~���E���]��k�������<���+��u��Y%���Ui�j��Vn���~t�k���,���]�*&z�7{:f����W]��D���U�3DZW����X�_�Ak�s����%�����Pu�e��G�z_�th���Y�w�M��{3�q����%�[y��^�����:���:W�t[�o�����'R;k!��[�$��sVb�\�_0�h��8/+h�G����:����W�tl�[G�k��1��W{s'��[���w��fC��vqW^�'z���u������������2.��%�#�
L�^5�{Z]��-��S:��3����}��|�C��������J��;�mu��1�8{f��X�S�e	�����V7��u��i���j����>�ksE����8b/�[��S]��}+���}Hz�)*u������x��{���������D~��lfz�_{yY��_�9F����_8'�S����f������U�a�������{�����y����3�v�����ox/�L&l�����lJt����<��&�G,����]l���xg�$��za]Ln����_�������*��i� ��t����������`T!>���h�~������N'���K��e��
_e
���orP��h��������M�cf�s����=���~�x��	���Of����i[2/�����>2��]~���
�����XO�fJ��^Q���Z���<o7���w-yls�W����x����	s�P���gq�w�-�7���������_l��U��;���	���W+�n�h=��vb�6����!Z��Mn�8�^������(.�
�v3'����_�)�"�sC\�i���(��EG������Lm�3���&�o���K"�|X8
`�a�Y�����cz�:�W����Z��~l�L�u�BZ���P�^kay��]���!}���p�=+w���m��������;�=�@\���6�w.r������g8��~��E���_2Z���w{��M<R�
!qjg��X�M�OS�%�^��.il"�}����o�b���/d���z��C�v=���vOw��y�����!��\F�k�n����.R��R
������f����s��L�N�bk���[�g����K��8�w�'��K�j
�������5}�����l,��OK�3�{���x�(yu�g��=D�+��a���%����w������u��s�fO�Y���uP�1�f�a��-���hW�=1���_G�����)JS���JR��)JSe)A�A�^m�N�d��HI2{�UPUPUPn�n�}��U~�UPU]���|}�����^xc���1�LcT�1�F�YT;��LcT�1�F��Tk��@C���t�����j��v���;j��:��c*�;���7j�s��ws*�s��p����c��\���<
�0���}:��;j��5���
�����U�f���mPSn��j�*�*��:�wT8w���W�y�T8uP��@F��Tn��C�UTn��@C�UTTTh���:���������YdS��������{+\��kXV��v���k��k�OH��"���"��c�O[26��X
��6m��H�����n�&����t�Y@26��$@0�t
���?����v�����x�r��<�>T���9��g%}������|�z�.�"�Ww�i>���Dlg8gKp�W
�R�rHZ���(U�
��;6�J����h��5�����n����"I
���4l����N�>�<kZ������kZ���kZ��kZ��J�@�=*�#�iW�@��B1��`Cb�
�v�F:���W�n����;U�l�@C�@���i��=�Q����|M��?��_�/�����FW�n<��L3���w��Vw7����U��i��W3�Ol?�	WW���e���#�7��6�3w��nu\v"/o��U���A�C�u�)��-!@�pC�~;����|tS&�S�gcG5�kZ�V�kZ���kZ��kZ��0V�T�+�#��\��	�L
���"�0F9��!�1����Eb�#��\��V���"�}"+�W�}_����+_�H���2��b���_m�B�E������(�S5+�`�hP�3)���c=\�u���-%��o+y��g���T�]���g;�Q��eGraY~q��\����^+vs���4��
�
���6vR����h����k^��-kZ��k]��kZ��
�/��G������H`����`C�����;{r+pCc�	�p#�#����f
�r90��9�`�r+pCc�X��#����+�s��~�5�O�=�������MGf2?�NEj;[.�I����
K�d����u�����}���M"K�����rDF��,[��6t���"i��z��RZ?)|�7c����l�f��>���0X�����<kZ����r���aZ���Z���
`�r+�G0F9�`�r+��W��D2l��nE~�����n���\��V!�1����pl��n]�Gb�6`�� �z�0��A���~�y���r�]�������o�Y�����f���C7�l��������A|��J���'��v��ij�v+����{6��.��yI�cW���+��b�{���I�W*����S���N�q��]w���g��;>��;)��vp�z4q�Z���ek���k
�������xSk�_��rl��nEb�`�r+pCc�X+�#���
����n������`!�&�"�0F9��!�1���|�@�O�����}�'_���tC.��s�e�t�r��$�vG�1ZYR����q������:�L���������5��L�']��n�n%�6F��r��lZ��b��bY���X#��9�`O��|m�I?W�*�>T����������kZ����Z���+Z��kZ���L�GX���&�"�0F9}a�6`��#�1WL�Y�&~i&�v�V ���,�'X����n�����8�����8!�1��@��I����j���~����D].��W�<�����4	-���Bem[�\�����\��`�x����c����0Q���B�������d��.��[a�6�K�}(���.{��7d���f�N��^D���,?���`��xxvS�������{+\��kXV��v���k��+\��T��_XQ�
�6���+���\:zr�0���W$�4l����`�r;0�0��0m��X��#��\��W~�v��
�y}�����c�>>d��|�T&�t�$
8Q�Bs�*}WCI�'����(������#����R���z�2��,�dfh��#�6�����v�A��M��f����D2L�����u�|>����81 ���x���k�Z��kZ���k���k^�Z�W��`�r+pCc�X#�#��0F9��`�r+��V!�1��@0Cc�a��!�1����_����y}�c>�Mw�t�>{K.��w���jD���Ge"e�r�5�|�w��������M4��V���D3Iv����c����|���	�f��j�|�Y��q`��������������G5�kZ�V�kZ���kZ��kZ��0V���`��.0���V !�1��E��Eb�#��0F9��!�1��E��E~l&�v�Wx�`�����_���W|��5��7z)Y.��5+����U�Y����U����U���-v6�j�EK��O!bqI����*x�6=�U�Z��z~��\�HyCuq���s+� ������WO�F�s�����cf������<��E)���OPU������*�
u��(HQL��y�%*�<���Z���O�=�3l�����Qy
���z��f&�Yo7K��7�C�����fP�s����2J���_3��Kw��M���e�t���.�ku���.����m�����J8����;����m;[��������
+��;�iKYr�����C0��!��r1�Gq�|k��_k.�
x��������z.�+.<�{� ��r����iGpqA�9z��.oN��m�NP�2`����LX����S��9Ynu��k��S0���M�w�-������z�}]r1i������m��A�����0
T���*��e�����B��G��Zig6����i�����c{�7}�����kw��H&%���Ma�zkf���v�q9s�N�O|3�v�������{�2�^k�L�nb+\Yu�77�����v=��aa�o/+L��q�N���>���*.h{�ZW�Tx���n#�9��'o-;��{j���1�\1{��v� _��w��-��!iP;��hfG�����w�����@��n�;�z'oz�����8����5�����|rg��up�5j�le�'
m6�,���|�anV/���EJ�7�u9>�*}w�au��^�2�u\se��WI�f����L�6V��@j��%���l�����-�KX��������z���q���v�jt���{#Z����q5��L
��L��/��r�G\����j	�hAfF�fHk�R��><����_c�����N���#�:��JV[�wvqd����.�t�yga�u��>����	����������`����������9�=����l�j��d��/m���������u����1�F&���c�V��7�u���������A�e�4�@���9��6�/~���:����bR#���6���Z���5^����fG	��&H�T0��@M xaU�p�28�@����"�]���W|�*��B�+�*��}F�����H���i�
�:_����:�l�DT�4f���t��<j���]����w��t���o��K)Q�4�f���b�+PB�x�>��K�N��=������b����5���Q���I�G\�����Y��[��|�1r��V��@�����[K�#��kk���	��=+��]M+('�-�yG��=������j��+�n_r�#=��f^����lV�����B��2�	�f9cpc�:�*c��48�_�/�,�J�$�7�y������zW���\��7��7�z�a��
������N1����_Uq���+�������Gc�2�;�^Je�Z���L�)���x=�tn��x�Jo����5��lvcea���a�m;�G$��0z�;��yy������_Z��I����w��
&;{!;��<�k(��d�yH��/n�6f�\_J���H8��5�G�G���uX�&=����i�j�3���J��S��'����^g)G�N���oB�zk��U���]�^>�����r�P��Z��@�z�3��j4oQa����\����@��Rk�����*�!���Mn;�OD���\������,J�R{���FN�C����:�^���6����#�����:�[�����}��qzF!X{i�N����m5zW���$�y����b����kZ}�)�k�t|1���p{������9�pxe�o����N����8���X�
N�{ls�/�
L^�'��!��u��p��>�*D��������Y�����]���m5Tf�C��sr���^����n��`�������Sg1y�==a�{�3X;���Z�8(�Xf����%d,<�V_9Z��b��63�����������}C��<w]����=8wv����[t�.������}�fiq�dc����fr��q��~|w���AR^G|"'�z `�<6tj�>'�	�h������j�uu��}r_�L�Vt��M�[�1�G�$�Xa�3$y7/�Z�v>�Uv��5�Tg�Ng;���Fny�*���(S{��G\8�}8���#.������W��4����2�/�?b�����5~=�T���s����b����$��"���#7��o���]�#?x�&�\�M���e�F�q`������4[w8�0et�R����D�S��wZX��*���Zk/gn�,��xg�����������O��>
R��;iL��)JQ� � �� �	*��$���~~PW��PUPUPU��b�����+���*��*��*��}�+�c<���v��c*��2��k*�w2��c*��2��;j�s���wTn��F��T;��7M��
�\��:�p��u��`���0��5��������{>������a���1��5��<���c
�}�����s��p��\���a����mPP��n�n��v��eSn��j�*�*��:���T8w���W�y�T8uP��@F��Tn��C�UTn��@C�UTTTTT8uPQ����)���)N<kZ����r���kZ���kZ���L�\}����"�G0F9�8!�1��0Cc�_6��f
�r��+�\0m�����rt�������E`���r+�h"��S>S�}������5�o��y-�g��{���M�J[,S������c����e�s����d��o%��Ue�=�t�)g��Gl���f�X7��H�v�&��E��m��r���^e�2y��e�g��k�5�������d�N8|8x���k�Z��kZ����p���k��+\����Tq�(���"�@��D6`����n�����V���"�WpF9W�
�G�v�V`��"�~(+�/�}�������4�]����/�}�s�F�`�]e��TaR�6���������z���V%����N������6�WWj�I�M�U�)��XF`x�6��j\���n��r��{lg��j��d�>���8Xa)���q�Z���ekZ���|||+���k^�Z�W�!�8#���H��t&���.�"��\pm��X��8#��\��V"#�1��T0Gc�_���6���"�s�E~�S��m��
����m � M��w����.4f]���T��o��A:�Ky9�`h���-<9Q:N���N��R<�i
�.^$I�����v{(;����w�E�����!���4A�8|8x���k�Z��kZ����p���k��+\��U��Eb���r+0Gc�X��8#��L��&��
1��6��n
�r+�h�6���"�SpF9��S~��|�4��~O�~/~Y��\�� ��9�>w�WaOo���<P�G.��(Q���5�������Q���&� �=�f�s���IBJ-5���p����>����wA�:��n�;)������kZ����Z���kZ�W
kZ��+\����\�H�V
��rG�Wc�8���$p+L�H�V�#���A0F9#�X��1�
���n��p+�@}_}�U_}Se x�u���3��E���O�]r� �X��Y���`���E����b�3�43 �f�����6 !K;J��Cu���6���vmc�t�u�I��kz3�Xl��g���5�kZ�V�kZ���k�\5�kZ��rW��pF9#�X��1�
�\�H�V
��rG����b��$p+{L�v���]���rG�Wc�8��_�)���}���{���q���M~��(A��%��+,�����G�D���e%���w�����1��+�~T!X��p3z�y��rA�v^`�9����z2��Wvl���o0~���������������k^��-kZ���|+���k^�J�W�.�$p+�H�V
#����2m��n`��1�
�\�H�V*��rG�c�80��&�v���_�T~�>�j�_��O2.��A_����N�V?;td%�:"
]���/�NZK+avE�v���%u-y,��>
�0R���Z�l��*1�(�$�2�l�U�U�n�vm<#E���_��[_}�g��<:;)N5�kZ�V�kZ���k�\5�kZ��rW��pF9#�X��1�
�\�H�V��rG�m\�v���w�m\�v���X��1�
����n��p���6 `��&�
�}���U����{_���G��3+P}��t�&v�Cw�k�e�e�o[��@���{U����mfW��������J�(��z��U����#���1�Q����,X��k��!y�Kxd� �7��u:�<�9'�D4t|i���������kZ����Z���kZ�W
kZ��+\����Cc�8���$p+L�H�V"#���0F9#�X�`�rG����|6d��&�
��&��6�CxX>��Mo�^�w��c��_�J"������P���(����j�%�����Ah��b$�����A�c������4���7M��dX��.}��K��B���CZZ�n��[�g*99�Z+
�x:����
����k]��`���G�f
�8S�������k^��-kZ���|+���k^�J�W���1�
�Cc�8��#����c�8��#��$�0F9#�X�`�rG�@���`�1�
���afy��{12z��������� ���n��u#lv<�b�ks]��I�w�����s����Mg]�^���=]����2
���am��*���$���No��z����N_;2��gu���Eu�����q��Z5'U��C{��5������N"��	�Ac����i=�����"�C(j�����Yu������������{w��$�_�G�)\���3u��!�������>�p#�S&�fm���B
������h�a��muM\9'5i)��0��:��������g;~����^��C3;�����������t���/a�w�y�n���Sv����2�,�	�U�~�8�������������nr����::�E�����W���hH��������S�#����E
���d��va��'�[n�;���YK"����\7[�E��fm����Z�I��eb��"��-�+�fi��-(��=<DAn=��	u��W��������NFyZh,c����J�U�DA��D��	����|�g����#���{`����E���Z����<U�����k5{Ef	[z"�����ss
!��WY�9���+2��n�'o���#��}o+{�n�f�cn"����M�i�u�K[�V��T��v7D���T�����$���q��+���R��d�m�8n���;��"����|��(�Q�������j�[���@l�-��s����WY��z�q��:�;��9��D�����VC�i#��$oa[��bEF������n��m\�����I�H<)LQ�v����+m3Zq^H�v��ZB6��.��P;�{��
�t5�YT���My]���s3a�y�b��x���-;������	��vb�%���l�����������3�d����r{�����u}e���l��y
o'���w'v��2���3{n�o*/�F%��x�!7���{�����vnIW�����Q�������vk��Q���=$�B8v�7����y����k�0q��j�V�p����k�	�����X��x�����\8��)�i�\��S���y�b������]���I�������S�#6��A5�V�Z�[^m��.�M��U�!v���k���Z�`'��A�&B��U�@��4���_F����J�`X���|-�*����n���B�g�P�=q���8��Z�	����?,�y�G��!��OK~����^���>������V��g��}��;�E�Z��{'��]s;�gf>z7������cv�l�=�E����W#�����if�rf<�Y��������*��~���>��c��z�{��~�m�oCg��{��V��W9+����}�_�����8Vw����/���Q��^��>8��Cc�Mn��������6�=7����v*���������{_������h^yR�y_��,K`Ou��
{<g
��
�|��y�e�
����N�.�t;���#]��>��_�&\��:�L�6�Ykv3S!�<�Vnp��n'2����2���@�4[��>��������m�A��1}���I/�L����{og;T��������\��e���U�m1R�=��j�Y�[��}���s���k��9�����%��|��{��-���@��K�:�{��������*������nEjb�"�����K�9\��Jehb��U�UW<�����X�{D���{��q~����,����a
�����<�y&r����".lY�J��x���a9�.��J���Gt��M��{1���{��!^��s)���#��������P�f:6���j�l{�
���Ep���*Ong�5�����B;������1�?}����1�d�������H�r��~��&
��^�V^u�������)Dr����E��9�T�^�W���g}�����V��5Wu�H���h���������������F�w�p>�����,��k\�^Q��^�t����w�G��.��r����fw�K�����cy����������.z0�Wq`3Eizq+�b���p]�W���2��(��Q��	ji�T-�������������d1��O73��o�r���-m�����1�����>����\6�bk�8@���A��m�����9���@�*���]���	����~�+/�w����Ob~�h�l�������U[U����:�X���j}��TL��[�F�)����ZX�n��t��=���mO{����������J�y@g@�������%���rL��f�����G�WO�Q[X#�H�yd:���W�"�����\�:��x������n��aU��T�i�MH�S��fb�ZN�6�����^I1Z�������5�g"���Ve���`9��]��q3���.����6yN��+S��/+;���=]�l��Gj���Z���05u����t�z1�C����^�z8��E)JR���JR��)Jx�)JR�)e�Y[����y�����{�UPUPUP}�(>��*��H*��*��*��=��B���3�)�7j��2��c*�v��ws*��2��c*�s���;@*�*�q�F��Tn��F��Tn��@F��T8uP��@�T���La�Tk��C��Tk��C�U0�eS�U�o�y�U1�������F��T8uQ�v�U0�mP�6��ws7h7h�;j�w2��7j�q�@@C�UTh��;�}�+�<��*����{��������F��T8uP��F�TT8uPPPPPP��!$�L�D��=� � ���y�Z���ek���kZ���Z���
�%p��`��@��9#�X��1�
�&�c�8���$p+pF9#�_h96��������A����nM����$p���Hd_�=�z���Z���s�c9������n�.���?gal��v��������Z���W"4�6Q���������sh�v$�^	�F�b�������y����G�|��/��$����{YS7��<�pkY�eF�����������k^��-kZ���|+���k^�J�W���$p��Dc�8�8#���U���`!�1�
�c�8W�
���nM��&�re��ny�`
�rm��������U�^��_�wt?v�PP8e������@�
�J����`��^����H�=V�5����'{�y��Evk7;���J��P.�4j�)h�
��n����4�t���U�����e����������)��������k^��-kZ���|+���k^�J��8Q�.�$p=�h�
�rm��0F9#�X
`�rG����b��1�
�fM�rm����H�V"#�������_z��d�s�����������M�	X-��UrX;1p��Z�g���Eb���<���A������n�kL��GCs^��L|���J����yw��C��9��5���zm~��E�O���N���f
�8S�����kZ����Z���kZ�V��k^��\
�0F9#�X`�rG�`��1��C�9#�X"`�rG�fre�H�V#���@0F9#�X��1�
��}�E�y./�p�������9>h�����d��M������>�m�%*��'L5b����!ERC���"��C�C�����c�wVT�����V7�[�5L�#EW,UO�����x8Y}��0ph�CX��R���R���+��8|8x���k�Z��kZ����p���k���\
�pF9#�_�rm��nb#�1�
�c�8�&�$p+�H�V(8#���0F9#�X�`�rG�P��;�y����&�Q�Pf�c�?�^�W��wV�E!�T�u&���XS��s���3(U���7v�6�P�9X�j��[��^F��VP�C�n�/\�����
���u�Xtn:��AV-�/A{�b�:����(p�>�����{+\��kZ�������xV�+�_B��$p�c�8���$p��;0m��n`!�1�
�\�H�W�lW&��6��D���M����@���v���U������P� `C���/�s5iL����?f���&
3Z
c���e���)A�n�K"���D5+qlm� �B&�,i��$�z�6�
[���cr��+W����}G����='ge)����q�Z���ek���kZ���Z���
��= �#����: ��1��*`�c�#��&�:>lW&��tA�tACc)0�0!:W�C�����a$~�������1@�4���u��kAK�"���>$�����b�z�z�6�=�B��m$�d��3E���B�K����v)B��
���O<�'y������{N�xxp���q�Z���ek���kZ���Z���
��=
8#�A����B������@pF1����M==:"��1���`�c�k���n���@z���A\|�0|��K��G�������M7wDF[9�m����A��7
�B�L�)X4�YlJ��bJ�\��+b��[��V
�`%�j�g��:�b���*&������;�����0~�A><kZ����r���kZ���kZ���Z�@^��v�����6���(�#���0#�n��7�C&��tAc)�"l��n�@��@��Wcw�_�z���8_~�5�O'�mu}��
���2���
�*gwfA �X���iO��^���{�@�*��L�C��L7fvw_�,
]{:���Y�k1T������ �6|M�<)�������k^��-kZ���|+���k^�tzE��H�pF1�pF1�0F1�pF1��tE\�tDcc)�"fz\���b�I6P�F��}��*������k2�;f�[�	��}%bN�����KN���wV�n���=#���/����������7U�����;�����A��H�P�.#����e`������������C1^VqI���tL
j��.AdX����C�G[����fWw4]vU���a���nM8�:g�xl�<�r��3J�N�Q��Rf-G�4U��p�M�U�w	Y�KK�p����+�W���w;��=3q���������)�f���Gb���k
�]V�V�sx�y��v���e)m%����Z�]N%�����Yd��L��e�z����O|��:s��T���v�5������o5����6Kg@uG�r��4�W(���K]��hRi(X���me��2J9��s�bJ������&^%��
��&��;D��v+�ViM���E��P��P�nV�e�����8^J"�U%p�1�J��|8:����O6p��l���|u}l��aK��F����b��w,okNR*�c�\:��@iGOr�3�^����dC;suVt�+y��s�E�������E�*Y�����.X�v���/�J���aX����s�{!����PdP>��:�U6��a��O"\�G�������F���D"�8�|�D��(�c��E����ou(�kT��Z�H\������5G�����-n����"P���g�`�7IZUwl�T
�NM��������������b����s{+��U���4H�J7����{��4_T'S}y���y��f�f�R�^B�o��Z�m���E1uU��nR���^�������R�a�w�2Q��c�b��2���n������p���KCE�����f���g\�c��6�)��v\��(4��J:-�����M�cU�yfT���{��vm�QZ-I����p\�uN�]1%m��<��5���{;p�W��u�u��:�Y�]�|R�����K������I�QR��o��:]Va�k���w����J����[Wtb+����yV�U>���o��Z��{��T��~j���[�&(c&��@�
m��.�Z�k�u���u{����|?�3_�������[T���9���%����;7����w�8t�k��s��u{h�O2}���#���oE������w7w��rZ������^s���K�=������sg�o����V�0��V����G��D�
 �{^G\s��ev������:O�U���Dzk�|���9�����s��4��Jaf����)2N����R�R���P�g�P���o���H*��-~����!79{+/s��w���t�#L�]�E.�/=�LI\f�]{>����M��l������:f}����
�EP���9����"!n����\:�7�����.��t�t��.cd�����Y���b����N9������,Z��%�%=n�{��[��^��P-a��}�v�����(�$[[E�����C�6�/�^n:������\}��vFa�O��4�~�)���>�R\��Z����CC����^.��h��^���xPF����\�N_A��E�y������6�������sU�~.�;��vh{rV���#��[�v9�'3��[�.6���V�����������+co���_o+���������}.[��=���qrL��n��8���]s�Coz�z�c|��1������~��r�xfh��P2.����&*����u�c����Y9��:O��������5��"�������v������B�M�|q�j���=���q�#`���l���)W�I}SR�8�Z�]ZU�=�G��S���3a#Uz4�������{n�<��}f1��nn�����I� m�;�6�*�3ER�2T�F^{%�����%�c��x<H���2P��Buvw�m�=^�� �#[��a1�v��Z�E��xL����/d����k����K���^���:��:#=�(:,IU��fi<^)��>�+�M�t)[�w���?NS�����{;)�:��^�>-J���o������9,��U�)�#�����*��r�����<�2c��+dIc��.ga�o�2�s��}��w66�����s�dLW=�o��l-{i|k�=�^��v84��Y0X���w����!�Ks�����������
f��.��NV���T�9�*�I�������8�"��k���}�����w�&�t����������[�t��w:6����(Z8_t�RfRU��m�jt*@XQ����I��iVW	IJ2�Z5
C ��)�0��(�"�K��������;u�qX�����������q=��R��)JS
)JR��i���)N�)Kq�w�z��������TATATA�t�����
� �
��
��
���}
���<�0��c��1��5������c��1��5���\�������Q����;j��v���;j��:��c*�;���7j�s��ws*�s��p����7X��\���<
�0���}:��;j��5���
�\��:��ws7h7h�;j�w2��7j��@@C�UTh��;�}�+�<��*��:����Tk��C�UTn��@C�UUUUUU;��*������)M�)Jp�q�Z���kZ��kZ���p���k��x��*�p��"`�cF1�#�b��v��`!�0P�c+�1�}_�~��gY���7����M����>o��J���CX��5�VEN�+I�$�)�vV'��y*������]�����YF���f���[��l��{���1��$J2^�1�re�yT{vf��5�����!�ggg�G����kZ�kZ���+���k^�}"�1���6m��*B1����n���c�����l!�(�1��c�����`*������~W�h��&��?�&eIn�L�)����F��0S2������2��F�8�K`�K�f+��`l���l��5����r���E��z��
����z�e�Hh�5m��rh����
p�8x���kZ��+Z���i\5�kZ��k�P�cB1�!��Gf��b$#�F1�0�ca��c��������+��#�^g�f+�iPjY�n\t�Y�S��e[�I	f��uY7,�3o%���Q��O)�t-�j���9G7w�D�4��k^G��/I���XT*d����z,���S�4` ��31���]����4+����������|8x���kZ��+Z���i\5�kZ��k��`#�F1���v��0�ca�"B1�Q�c��9J'H������`��?���'%�W/Y!yx�+����*���e�jk��aD���F�2���`��`�##LA*v�T[�m���$�h�q��xnV��.�

�e�CVj�2�������e��m)������^��P&�}�~|�T�:)J{><kZ���k\�kZ������xV���0�b,#�XF1���cF1���cF1�#���/�:��z���o�����y'�me�Vf��W)�]��T,��R�4an���p�*���[��������z�(Un�kA�����nb���NP5A�y������������U�8�XA��,kX,��j-�Xj���2�)�EM�����%�0:�pP����*�=4��������������kZ�kZ���+���k^�}�ca� �1��c��0�c+�1F�`�#�W�Nu�d�2{7�Zn�(+g�F����n�(��P��*X�{��#�<J�����
�ITt�Y)�:�j�%�N<x���d���F�����d�Q��������4Rg>.��z��i�������Z��mw���c��z|6th������������kZ���Z���kJ��kZ��k_J0�ca��ca�(�1�A�c�1�`#��������h�������Z�f=��G�����\7�]�v�t�7�lj�3ilJ9.�����[4��Gc��S����jBmSl}�V��@�)��`R(]��"�pn���D��h�{7���F}�CX�`H:�D��>��B~��x<kZ���k\�kZ������xV����=���n��A��n����n��0F1��
�v��!�1��vm����k����������O���Tu Sn����6o�nD�z����d�)��d�V��rG[��J�-	�X0�w�F�wq�9;wN�usj3��Tf�v2T����7Y?,���&��h��V�R?l����J{><kZ���k\�kZ������xV���e�`#�F1��c�c,#�F1��c!�>�N��y��fox�*�i~���F,R�P���i'�Az,cwF���Kl'������r���C����n��{��G�����/��^���k3GmXw.��������|����l����
S���q�Z���kZ��kZ���p���k����a�+�=mf��r�Fc��0B�r@He�b��c!�!��X���?���HXn�[h/�/.�]�G������TS�;�����|<o$����C��6S�]�,��(c
����a�y��	*';r���y��+tt2v0^�����t9�>[����n��:V���@��f�#�C&���n���2_�w����-n68������
�B��7���iT&�V�q�}>T�:K�6rXtm��r�6J���Y{���c3�����9DMN+��yqURl����/�,;�����8U�u}������0S����]�<`�tQ0��Q�I�TK����� w+w{�c�����~�I�������.���A��x��m�]�6�<��9��
��;��67���:Z�]��������W���Mk���U�|F��V�MO_v���(����4�v��\�Z����@���m���
�A#�����U��f�b��)�u�>x{Cr�M"�V-�l�!��}fJW'A���jq\������4�2����q���v�
��M���g��k��X��R[��$�������E�ZN��9WPCU
�����'/�
��{�������s�_5�Rm�:����:�,z�-{80���=�Qq;~�b9�~��6T��]�?h��L\��v�Q�J��/+j�����BS��av�z��t������EC�s�u.�w9iyL�;;�������KBl%u��R��O#�#ys4�eQ���,2B�vRU��#�x5U*\���S�����Y���E����:�j�����:�5j�m�N&>�'��]]�����u2�/@��1��+"U�m�JsE%��r�-�mJs+����fv=$	��������K@y3U;|�l����D���'v$�e����d,�eM�#�!4�m���Q�|7V����/Bt�v��;Ob�����\���/�=yL�����s�d�q��&v+�~~��oY�_�����;������7�7]g�}=��u�u��]�gm(Lx���x�qP�7G	���qI�6	�[Z�_v��*��u�
>�@��f���u�1�>A�&�t�~�����_�������oT�W�Z�����M���+����>����yU�W��2�����m��M����W�������
�����/�4|2S4�5�[�(��X��x�S���o�kD��_u�H�J����>�c�����=B����G����N0��=�����,�5y9k��;���^�7��^��������Z]f��m!�Ez����'g�/�W�]�;�s��t�o%O ��b}��Y�e���5��k��/�����L`��6�|��`�Z��v_s;�7�M��]f�0&�|�A4,����9�i���[>4�P��8�A�A;Vv�n��\ �]c��F���@���{�g_��=Or���������+vw���^{�����DK���x���i����S����^<mX�P��K�+�������m�x�]R]��z3vr��g8�g���:WI�,����c�C����V�i�o�������/��*��Fd����K�e�E;���4P���^�3!���Q��.(\^�V:�����*%���eI�9�K>������1��5��RL����{<*]
��.�g�~�Gl1�\���BJY��H]�[l��3.��OV�E�����^�<=rWgI�
Tb�k��oo'���Gw��=[�~����_g�w;Qu��'r��*�����Bxe��+��Y�~`]x���F6Ji�����K�8=���z�9.�2gZ�9b>^�%������xzcP<u�����d��%�jz�����_����{w�{VJ�����o�z���W�`�l���#n��=�{3e#.Y�
�1a
O-�����e�y������������-T���fo�[V�{heM�f������4��c��@y�H{�u�^C��+F��9���%�|cz����,-�Q��I���r�]ced>T�3�>n��W?��%�#�*�P���f�2��������L�y��Q�q�x�ys�i��:m���5����N�|�����DZr�����wc5�����}W�
�'�S����4K�����UXQ~I&,��W�z#���0��u����Xw�W;����n����A�v�K�^��-�JD����(��p�%��u:����������������{��`�G�
>G�wv����(5��{����>�F����(�f�jW^\4A�wr^?'[��5���������\e���Y���{7���z�N��]Q��6V	(+4FVs)�k]0�[�> �A�Z��1����d�%Y�5dHf6n�������kF����a������%4A��V��0��b��2|w���+����������>OG���)JR��JR��(�AB �< � ����I�l�����}
��
��
�����PUPUPUPUP{���y��g�Sn�1�eS�U�eP��U1��S�U�mQ�v�UU�j��v���Tk��F��TTk��C�UTn��L�T��F��T;��F��T8uQ��U�eQ�v���Sn����Tk��C�U�mPQ�v�TT;����k��C��Tn��F���
�����:���T8w���W�y�UTh���4wU�mP��C�U�`PP��@@@@@F���
�Gw���)���)N<kZ���k\�kZ������xV��,#�F1��1��`�c�c��c�`�c��}��Z���z
c�u�;��c��I���?�����z�S����f�r�K�nU<��)*�
BvlP�^��3u�&_3O��'��yo@z�
R�	�4)}���w�P^��n��'o����o[���Y�w����4l�������q�Z���kZ��kZ���p���k����HF1���ca���l��lP�c��1B�H�1R�}s��T�~��
;�)�V��bK_���V����y����M���������f_o
�\s6��oa��f,m������(��g!L��s3{1���g6�w�UVd������v��q�>��c1�������kZ���k\�kZ������xV����0XF1��0a�#�!�(B1��c��?B�@I����k��������^+��)�X0��f��,�*��n�b�Z��/1��2]��x�!�^���JeGevU�n�V4kzq�[�6�V�/:����p���4l���=�5�kZ���
���kZW
kZ��+Z��c���n���`��c�c#�a��B�~"���u�wgZ��j�-91�����3Ru4Z���y�����w7&������_t]�^�r+��*�5���v��n��q���-���"yt��f������x����u4���r�Vfe;t�_:���hA4 �~��x<kZ���k\�kZ������xV��#�����v���v���0�,cF1���c�b�6��!�)�;E�UUT�r~P��S��E�����5�������w*Lo�N=t�6K��MP��`�ky�,�)�P�9������+������C_t�P������}�s^|�"����lW6����~�!�1�
S��8x���kZ��+Z���i\5�kZ��k��~���n��XF1���c!�(B1�D�c��
�v����g�_}U���UUU[������0���X�z0��t��9j6e�#p�U��%�[`�OeU�����U����Tn�����b��.���5��^vnM��w_������{����������+i�:)��O�������kZ���Z���kJ��kZ��k\�Vc���n��a��0HF1��c!�
B1��c�=��;���=�����c��u����z���,]���f��8������1���V;�����_1;"��.�N���O
��$�.�2�����>]���wH��d���,�(EAc��.D~�)���6vxR�����kZ���k���kZ���Z���
���!��$�c��
�v���ca� �1��c���"�@u&}c�x�1E�:~�������5�n�/V�h(n��3l���A�"�K�^,r�W+6l.�sS\`b�M:Lm���v�twE���ch������pc�b��|8x���kZ��+Z���i\5�kZ��k�R�`$#�a�"B1��c��1�`�#�!���_UUUU�����E2�
�-Z��1A_��fGH������9�9a�nA�P��mXE�l4Tn�����
���3�6!
U`c��dMCj���TO����_ ���<?c��q�kZ���pV��kZ��kZ���Z��0�c�c��0F�|6�n���`$#�cb6��!�=c�0c�1�R��s���7VI��n���1Y/8]�V4��x�Oa8z�5d��p�|�1��gi|lN��4���c%a+�+����Y=�4�?l���a4Z�O�u�{�7��I��������ojy��rQ����*����Q]'&�v#��u���]C	X*f�#V���6�S���$��UG���lpy�
s*����e����m�]�SB����v�W�$�{n��Ky�n����t�O+6�f��B��R�P��$���E��#�=���N�L#r���0��XV^��3ln@b�e���[������;�[�l�����������m���w�w������j)j�����E���Z"���������u�+y�����(5����'�B8M�}5����]J.��n.���a�2r���M�f����
���6^���uQV���{�W�����_s�C�9Y�I�
y%^WZ��J�u�F�"����TN3��S���Q��D��������o}xa�.v���
�+k����~+�V�j�t8�C=��t����X]�[8�oY�������1S.x��{q��+�M�yj�N�o6��-�g��k%�7�3�=[���u�1������cQ���e�Q���v��n(��	��-���'���hf�4�>vKjp��w�G�n���eQ��AsL�����h���Q3��hS�s���X9�}lrm���.�����w����:�Z���l��HdM�Gu$r]8$�S{�����[�3]�/��<����7��N��]��D�����:�-N��Mm�6D��@��*^^�
�iK�.�-%�����yE38�\{�<_�>M�b29u�Cy��V���rw������-�������n!9,9�k:])�|����&���x����6�|�������e�X����1��� J��n�$��y�-S^+��&�llT��n�qq�&�
�dYP��c���#���Nc�\����Y��!j���(�����:k�r�������tn���v^�ja�gRam<�������vW}�B}������������K+w7�����&L��	�	����z���!��	�G�
8�N��@	��;����W�}�kepK�����h2	��w�;��W�3�kY7�����RM���|�t���ROt
c��C1���S���K���A��*�^�����7��<~�A�Bt��q�t
uzX�K}�M����oK.?������g<=�>���kZM��/����_��+����Q��o&����9u�q�;.���s�����K�����w�����s�^�e'�7�n��q���A%^nU�1��n��f��e�5|U��{-�()4��=SS�wv�����j�vb���W�7��b�c;�|���I^��<�r9�Va���f�HCj���_�45��{ 5��^:B9�<5��'��1�i�gk�
f
^�{E��9�����8��B��U�,�|
�6��D��o���~~�m�5�]�dm�^V`�����|��W�j�o�x����}���~����x}
z�vO*�,E��6���D{�Ae9��o\(���k�7�{)1������T��9W�I�y���}���w����W�������/_fw���s+���������Z�*�3���x<1hbw*����k-\�	�����WV��u����X&-ve�U��&�g��.�}���M����Y��#�]�Z���E_{��t�>�k�g[y��{���}�/������>����*��:�>r��]xMsva���J�t�'�(4k�>
�vc�D�b�Z�m���8��a��4�*W��2��nt��7D"���>��he�J������_o�X@�6�Tum�k��[������������2.]����Ng��A^������*�������,-��������/-����f"X��5�����y���^��,�Q�A����g>g���{��G�}�}
���o?^�P�����IZ
U�4���X�������Y�2�k�lOl�����(SzI'�s��SU4�NG���Q}���O�z���B<��A���p��W��N=�4e�zZ3T��k������K�-�<�MJ�e��4�l��G��^��B���0�a��g����>�H��~����!O|/{�x�������~�1K��Ic�IC�h/��3tvisM��j+�����c�2W���6�c������@�<(�w��g�l*���]�9��ne����6�M[Ks#i
0M��,����v���v6��
�H��n�������"k�5e�6E2!bJ�:�������~��=�zx�GG���)JSe)���)JS���ZR�xAA%W�d���$��L��L�*��*��*���1ATATATATAT���^xc����F�T�1�F�YT;��La�T�1�F��Tk��@C���t��4wU�mQ�n�U�mP��C�U�eSwU1��Q�v��eQ�v��j�v���c*�s��<�*��w�}�p��\��:��;j�w2��;j������
�5������7M��GuPP��C�UTh��;�}�+�<��*��4wUU;��s��p������0��p��
�
�
�
�
�GuPP�����,e�Ye������k]��
���k_��+Z��k��F1��4���HF1��c!� B1��c��0XF1��}��
��D�����$����+9���:A�\�v�
�
�i�6h^|ja�2��e1@,�w�1�&�����uYVi��U����6�n�*#[�����y��s�}0�
)�J{>8��aZ���Z��kZ����k���xV����c#��vm���1F1��1��c�0�~�v������](�;����r�V|�[�>��r��m�V16���x�c���>���DF3�&Gl�.������u2�n���[��IU��1*w��eSY��������
�:<)�O������k]��
���k_��+Z��k��H���F1���v����c!�"B1��A��n���J�����&��v���_�W��)�U��&�})���f��Ub�!�/v�����X�!k����j���M6��q������7�@Fe�;cIXD�����V�����S61U�de^����Wi��H��r��?N�xh��g�>x���kZ��pV��kZ����Z��+^���6m��$@�X�B1��c	�0B�`#�HF1��1�>��{����=�&�s?e�wn���g������.��^��E�i0��#��]��*��V�,��j#��_���`yJ���M�l#��0����)0c�u������F�+�������?����ry��
{>8��aZ���Z��kZ����k���xV��zI�M�v�������oF�vm���&�6m��B1��c�#�F1��c���!��X3���s�!��e���~�@-��%��R�)�Wl�n�������0�A�n��:�M�[��LgA��#w5��� jb�j�ee�\���2�Ak&L5��H��N���������k
�����kZ����k\��k�����#�����l�`0�c!�
�1�R�`0�c�c�����@}_<�F�>���/L5��	_�lv��H���h&��gL���)�hV'2�a���Z��S4!�)�1
J�~n������"�U�U�w(7@f�a�N��*����ueo���4�<)�}8��aZ���Z��kZ����k���xV���$2�1�`#�a�B1��`��c��2�1F0> 5��UUU{.����Q�Q<�]��a%U�v���SKPT�]�O(���ZF�[��~�B������Wkv�+���d��
�V6V���1�b�O2U�J�x�sF�G�6���m�Q����J������|8q�Z���k���Z���k�Z�%kZ��{s�e�`��c�c�#�����n`�2�=7�N�����#�m�v��+�^M��L���F=���{�yGO�-1�45�tmjS��T��,����Di��q�V	��:,`x����-"�����e����PA��L����	p��GvM	W!xQ����[^;<<<)��p����kZ�mk���kZ����J���Z��F1�����v��B:c!��1��c��1XF1��c�Q~����1�{��X��xw����������������qv��vRG�f����w�{V�:�����j`�������z�5L��[$�U�q)r;5�o�j���\77Hq2*��z6l���O
{>8��aZ���Z��kZ����k���xV����c$#���cX6���c��vm��	�0F1�B1���?��������7�&�t��m-R�V�Z�u���-�
&e<���
�8��iJ���I���w0�wVu�k�o)V�o&��>�g�y�,�m�g
��V)����y��fl�i�����^)eu�yD����]�F�.�]�F;��"��o�0�7{����zy�����*��[��s9|���J{�Q�R����T���n�@�T�*�����t��.�6����O�5�m�Wm��]4; \����m�'mc�;��%����rI��geeI�{/�R��H��0�K�%��f����P��V{;l����v�4�kB���-��	W�������jj7��y����f��W�}�_Q���H�n���^�&i�T��$@�"�W^V�U����Y������t_F���k��c3����W���7�MrB������\�
++/�����V���������i4��S>xof�G���p�7��1��s\�r�h�u��RNX���6a�ISO����������,��B�1q:/�d�'U�Vgk��^�+�����%�[��-�[�+�iVD�����������:����v��t$������=,�y�]��v�"X��>i����B��o9��*���fX.����b���I���2�TZ��=���������Ju
��
U2�Y%���S8�����
�1u�U�ks����t���V���������W����q���9^�b��y��K�<�r�$�o����]:�$&F�^*Z���3���6��������>��\�uU����f��7���rJ�S+�*�����]�v�5�Jv�y2�H�U�`O���m�Up�
�R���S��V\��=�l��������SrTs���������iCc������\9��y�E�Guu�W�=������=w���U��d$��b�{Kf��w>�dz�A�����we8�iS��J�����% �;�#�*5����F����u�3�����$u����IMh�
�LaCF\
k� '`$p�+^��l�6��[��y]���Uz\ c�$�C�!��&��u�82��W��J�%��m�V^kjfu*��~yw}��LjW�y�.l������4�����?��Mu�{hY~�\;hu�^'z�����qk�^�)������{���g�R��O�r��������/KS��(��` |T�R�{����n�*=��+v��pa��,P�aG~7�yzA���jf�E����'M�hz�+pzb�:��C�}�3S�zQ���Uge��mImU��[�]�6��
Y��;���b��Fh����n��}R������/	��D��*�w�^��g�E��yV�5r���=[h\B��W#|�py�J�,��#S��a��*�e]����I����'���k-C|���G�=<4zU���y9�[RP��+;y'o�w�A�J�n��X��n0jR�O�X�������=���{U1��;t��g��y*CscF�VX��)dn�����y{}��~�gR�����>#�(��VN�B��k������;��Kq�g�����;�(���L�u���{���v���8�&n<%��O6�?;z#�;F�{<�v�B�o
Y�~�md�0���E���W�2�{I���^Y���&����[j�y�X��*��<E���~���=y���%�2`��#�$zX����U�������W�os�[<�����Y�9��:��C7ig��;i�O_.+���(~������
����e���E���yBe����E�������8���k3gl���u9�W��xe��+��!)�n���i*/������	�k��k9�R����������;�3_�0l����
�����$F{������w}������O�����/o���O^�F��<�o
�d[t�AU���Q](�n�M�E��9��w���J�{�yBkm�^ i��f%�fN�c*w
������#v1����jeu����0�p��)��+�7��������{��-�T��������o�Ot&�������~�q-Q�����������;���sq��x]g��L����7IZr��ueu���e��jKQ��i�bY�c���L��]��e�~��pR������`Y��Q{��q�v- �/M_�Dz���wBR�a������T���Rw(�I����B���n�;��fT���3B4��T�6h������`�H�!d��w�������y�iw�}���}��_G�����#JR��Ja�)H �A�A�( ���$��y����A^�ATATATwA�
��
��
��
��
���}
��1���c
��u��c��u��7X��0��c��\��5��
�
��mSn�;��s���7j�*�s��p�����
�2������v��;j�w2��;j�q�F�YTn��F����xL5����8uQ�v�Tk��C��Tk��C�UU�wh7h�;j�w2���j���:�p������C�{���y��PP��F���
�GuQ�v�T8uS
�UUTTT;��@@F���
�Y���q�)���<)��5�+Z��k\�kZ��5�rV��
����j==1�`$#�6��n��R�`0�c�c!�1B�v}�aA~�]�������1E/��*�c��2��vI
F5:T��L��
�����g`T�4k�7�h00��0Fm<���l]�y�vv����$�'���*�U�*����o4Pi���������
���>0���O
R�G�����k]��
���k_��+Z��k�MzWf]�X�#�!���1B�}f��`��c�c,#�UW�z�s���'Y����dR��]X�Eg�zr�!�u
5@�-��f1x��������m7�8�U�a�-����N��kr���,�
��`�D$l����Q���<QPW���a�1�::���Q��������|8q�Z���k���Z���k�Z�%kZ��{s�He�xlM�v���1�F�`�1�S����n��b6��!�+�;> ��
�����������!5n�o�D�
��J	�v2�w�V.��o��Bn��pQ��w�5���s�WE��o!�cR�������qa3,U�Iy6�3��6�?*mh�tu�P�C=��_n���8vxp�����k
�����kZ����k\��k�����#�F1�
�l��o��l��lP�c#�0�i�^�::zzv�]�v��_�{��sk@�u��:����i������e��n����-Q�[6�8.�:�6��[���d�_jaS[�z�6#y����8�e��TU`8���5��i��2h��c���7������[�����h!��������k]��
���k_��+Z��k��F1��c�c�#�HF1�B1��{���v��c�����������9W}B�(d!���',��$�%��C(>��Z�
���x���������O)��W-��&�]�s6����2���3imP�.����(�&���$<���@�rC�E:;<)��p����kZ�mk���kZ����J���Z��R�~lSf��b#�B:c!�*B1�@�c��c�c�{UG�}�����A�x���y��&8�bb�j ����f��.����2Gv
|�4�Lv	�M���X5,����^h�QLfL�[�-U�4@��RJ���k����������������k]��
���k_��+Z��k�}�n����;0����b�6��F1��l��lF1�,#�lD��n�#�=�*/�UeX��h����=����[Xd����o7kn����e�	�r/�x�&w;|�^mT_k7���9W8���q���n���M������D�jN�������U�g
�����'��������Dp���8q�Z���k���Z���k�Z�%kZ��{i���n��B1�!��b�6���v��n���`#�a��8�#�D\|����X~Y3����w�7���_>5��>b��a$��te����/s6���)qW3,/���e��:��V��(�IX�J� �ChS�h��P�V�= ��(N����X�����0F����x{�}>�+Z��k\�kZ��5�rV��
�����c�c�0F1��6m��!�8"�:c�c$#��� �:�F65x�E~py�zq��,�2��H�n�l�V�
�q@�5�5`E���!�8�EY����G7^�E�K5s�k1���'���^Cm����	vS����d4l��)��p����kZ�mk���kZ����J���Z��P�c�f��b��c�c�#���6���vmvm��������~����?b����P���Lq#|�����������;����w�Bw�O	��"�7��c�p9�b�
�������
���l!��7P+�.���p��E�V��Ho����yB=�}�[�6��U�g�g�WB+*�T��[��)���q�.�>��nU���������%����+�0j�k5�gX��������A�nwi�)�b��N�������vhbsVA!us�[��DFf����[���b��j�g.��<�{\�c���v������csau�\�R8��R�Y3i�����Y�#I�s���Mu8}[�������sm"P��`���Nj�O�U���x�k���
��B+:t�������fX�nan��4�V�v�>���-vd��Y<*�L�8 �	K��{�2(��{���E_R�`�������cw��%��/z��!���'F�#�����]wI���U�G3����=�
������������sw�����lu;����jo"��������<k{�����Bm���a�9����w9u���:(
da���$���.>�X\i`9���
i��F�*��;�OV����@����5~���s4�tx�����]������rI��1��f�E��!�]��e���u&�s�]�>���L��a�����.��|��w�lW}��{����y]�G�+�o��I���j� ��=�^��e�"��23��������fo����*J��{��Z�6Q2�^����X����|:1f2QP�����76.�7��g�55v��s#��0�a��y����h�������P�k��m���J���N�����`���.7� l��c9udX��8T�F]�+!�H�K����7��oY79�q�a���xE����y�3%�A���!mM+w�:���cY.������a����Vs���2����K�eP���y~��:�vv���=��^��\mn��os�V�� ����g�#���&�r�RS��"������hMvJ�����>�57K�yz�A���d�����m���M=��.=X�����pn���W������W�@����$��Nk���J�
TEll�����}9���z�'"^B���e�u��g<���� >�p`@�	�.���AZ�U���*����y��o��MjZ�Dj�*�_&�e�o�k�~W��5o�ml��U�����v��MS_j�W�Y�C���,UUW�P|����K2�Y>7����x8���}�����=��oy��VL`dB��U�]�f����2��.�33������[
�U2�=����&�c���U�)nU��G'X����� �n^����l�����O���'�iv����9�b~������|����������<�s�}Of0��av�-����y�p^��.��j��S�nQ�$^���%�xoU����O=�m�������������k6y�y��������k�q_fg���D��y9}�����~�}�T�_���-���h���N���%���74��,��~x*S��UpY��L"����P�/�2����}���<��m�����mk�^y����������Yw�;��x`������]{�����;�����P��j5�������Q��*v����S��r��� ��D]X�z�������y��9UY�J���Ct�'zZ������1M�<"�����V�J5R�m��7 %���<��H�s����e�N����e{, ���C^��d{�!�k��z#�6b��6>��]�)Q���-��5;����Mw�[��#�b]�7�����Lj+�nL��&UzOl��{����%�T]m���A��}	����)����+]0���uv/���i0�;}����u�����<���h���Z�y�����~�7]s���Y����������	��rf�fq�1��eP����W�R�a����:!S�V�%�������"������6��b{����]J�Q~C;����+�?\oP�I����(������/��Oz�]��?��$
��I����Q�'���w#��'�����p�x ���P
��:K�����f��:�'�*��+��.���9Y@<S��
K
�V����D�V�Y=��%���%���W���^�����<^�f��^`S��Y���j{��&7c���:����O����}�;��T/����{��>���{c��/���������L��c�Q�5�}�u�n��#]��T{�����G4c:Ky��\o��<��|�~�IK���������{���lsc7}�r1���3-%o����_b��|�������Y@�Ls���yB��.��J
�-��c�Ke�lG�i57Ue��VU�����#������=~p��������>�G����xp�)���)M��)
R�iJS�(��k��I�l�}�	&F�&I	&�*��*��>��ATATATATA�����c���1�F�T�1�F�Tn��La�T�1�F��Tk��@F��T��F���\��7M��
�\��:�p��u���a���\�����\�����eSn��o�y�U0�o�����F��T8uQ�v��eQ�v�T8uP�7v�v��v�ws*�k����TT8uP��C�U;����}
��<�
�����@F�����:�p�����:���ws*�*�*��@C�~~�,��,�������<x��5�v���k���cZ�%kZ��{}
B1�V�b0�c�cF���n�$#��l��l�cB1��_�=���}��QJ�RBhE��5f8V����,�m��k4�A%���I��00�bm����b��_��aj�8%��E%t�
���e��+(�v�����P�����������<a��k]��kZ��kX���Z��+^�@�1��c��1F1��1��b��c�c$#�����������\u�]{��6I���,��e���#EP��f)Z�l%�	:�.���FQ�Dk���2�yXB��-^]Er�#D�t-���Nh��hB������b���S}��T�S�����|8q���8��k���k]��k��+Z��k�����v����c�`�1�7��v��#�F1�l
�v���c���������~�?����(2iK���(��.a��d�����1��X������V���1��R
%4m����k.��Cr��th'�Xc�Zn�Xx��W5��-��D$�X������0`�����Og��<x����kZ���Z���k���xV����c#�!��0�ct���cF1��1��D~�������1�F�A�����s-*pf��n��.,����8pX&�FV��A{tp=7�n��,�wH�RE���;]��v��S��^fOz�R{������7h���o��?>�����?C�<q���8��k���k]��k��+Z��k��a�#��c�#�a�	�1HF1�B1�R����
�{�������~��.�1��*���N��.G�s��j�������L��B���##G��(kV���v��TN��[�kUwl��@�
+��4g���]hON��Gg�e=�x��<kZ��kZ�ekZ���J���Z���`#�a��=mM�v��B1�B�`�c�~
�{�}g���!
��sj�+*5��XZ�[��B(����Z"��A�������� �u,�]Z"-��WN3V�nS��������l�E�0�n�YWvl������H��g��e=�x��<kZ��kZ�ekZ���J���Z���`��`D!�$#��c����lF1��0HF1���}�UUUWM�Z��?�r���H�G*�+�2����l���t���A�j�����n���C#^h0Gti5J���.�I�eA[zd���lRX����������|8q���8��k���k]��k��+Z��k��a�$#�!�+�1HF1��
�v���1�B�`��c�'J��������{�]���R[d���� �xou�[��Y�j���*�k��l�)��J�BV��)�e�4�n5rCn�)��K�^��0ET���o=$��c��������x��<kZ��kZ�ekZ���J���Z���b�c�c$#�!���0!�$#�2�=g�����g�Y����f�H`�3
� %��^�[
eD$����b�/�R�f�>�eVj;�n8o1KJhcsla���#WO^��ZU�x���1��@���8q���8��k���k]��k��+Z��k��!�,#�F1��1��q�t�$#��c��c��=���������`h���
��)�g�q�w���*�J�GxJ��2�c�����n�[ECJ=����K�J�m�g��4���;��X���i0X������cM;�k��%�U�Z;���mi�]��cU�����K�;*n�vq]*A���u�����^���C$ub��$����������o������)N���v+`��7��%`]	�s����������'m��N��:w���y�����A7��\C�W������8AJ�Y��kF�Z��$��#v���wTr�e�z���t]
,E��so��+;�;7D8/:�6A�����bUy�p�*nd�mor�wX��8�;���}E���]�������n+��3����erUDWs*a{T���k��J�\���#d�S���$X�����6K��b3����5��N.�F�x�
@�8���a1f��:���.�F��Z
s��\%��S�SW�Vw8�:�\���X{b�3u_*Q��G�/�p��5���H��L��Z�����:$-&��q��W�Q%*�}�`(�=���3������w��GJ���z������w*
�����(�{�d��;�����D�@>�\e�����2�x�uvWt����)�!L0�4��U^�FsK8��'M���������*�/���:L?���+6.�gl�%�p��
����{h�|����2��+��W�q�����I����<�{tp��Lj���;Vd�Z76���)�]���C�^���������T~n���Us���~��W/x�����$��[�OI�Q��}��(��Z�.���l�b��8�����q�Y��lO�	y����h=����7��S83�u���e���eqr�j���w.����-u���kQz�[�W�Ym��X�'����4�jh���BAUJ\�f���{\y���WY�u�o��=f�Au@���f���E���goa�T�8U�[p���'1��r�"�n���(������n:�D7Y���Z�u�ZR��-t��)W��v�����rVO_uE�o.�N1�uF�1&�1��gn�
`����$������|#6��k��V�^� ������k��lZ��@F�`�uz���ik��J�R��`@����^�Y6�s[|�������U���%�������q�2�P4���u�����bs�h�d���Vf�;e!�������S��� �K��������t�JB;�����06���:������O�4���������u4()��xfWO�~�n�����U��5����{:��~�z�!������:d������F%�$�P��K����q<�����74����,�s�W�%D���1�������)}W����om���}W�r=��3�dsgs�G3��%*����vt{M
������c4����s���
F���G=]}���;�>��:������[�V!��*����&��v�guW	���ee�R��~^n
����l��z�
�}p�[����ef|��Gn�J����/x���$7�����l��V��k����>
D���%ON����q�6�~:�&�][T_z4���IH�&e�x\�����a-��������P5�l�f���$�����gT����m�)y�nvf��K @��M�c����{*��c=F"A
U���p��D���qg�gZ��6(�����x��)�z�U�{N+�MW�S-n��6���q���+�sf�=���T���I�V����@|�t�����7�����pZL���i+�8��>CWe��t��<�7+��������
go���F{M_9��l��~���Y�����5K{o��Cv5���������J������gW]�����o�<��$��N����Qh�����d�v����J���l��y80x����O�C�&����jsq������R��|���F�{���[�O&y���:��S�EG7��}�����4��}=�~�2269���^��&��M=w�x���������%h)������_��ek]c��:����bdD�M�c�����_+m���i�{����m��s�������hdu��j������~��c|�H�)���q9L]�}���������W�x}H��^0P��Pm��kw�Q-)6������6*���A���@�UUT����i����1L�;�%��L���F��;	x�C�$��Z�c^��c��_��-���JD*����{��:��
�
H�����?���������z=8G�
R�)JR��JR��_�A@��k��IZ�$��~�UPUPUP}�(*��*��*��*��*��}�+��3�)�c*��2��c*��2��c*��v��c*�s���;@*�*��L5�Th��5���t���5�������7X��
���5���t��4wU�j��2��7j�s��<�*�k��}�p��\��:��;j�w2���Th��:��7wh7h�;j�w2���j�s���p������4wU�����y@C�UTTh��a�������a��
�
��mPPP��UUU;��*���,�)JvR�8q���8��k���k]��k��+Z��k��F1�B1��b0�c����n��#�!�!�0HF1��T_�z�u��:��u��]k9�����;���r��]k�����Am"�L\�~��M���h�I^e}��{a����#s\�����(�����]�"4b���MK������g�e>x��<kZ��kZ�ekZ���J���Z���C,c�c�0!�!�0XF1��1�B�c�0�c��U~�\��~y�X���:�}o&���/��
k�C�M+�-�����Co�+n��f�,�2J����]��"k�L�����T.������P���tS������<x��5�v���k���cZ�%kZ��{}+�>���n��HF1�B1����n��!�#��c����v�EG���{���<��$���[{����Ja'h�&�*�F��H���!\g6���vv�����u�H������m���&�Y�e��m#��L��������*�Z�I,:�,� ���>8���x���Z�������k\��k�����6m��,#�a��0F1��f��`B1�"B:c�k�_�����X����_!l��q���"[o�����qN��m�[��G��vqS�'������s�E�93�^�{��g�lN�r���|v����������=��s���;)��p���q�Z�mkZ��+Z�5�rV��
������n���n�t���N�t���N�t���:4����?��~������7���V^W*�*��7���y���������+owW�����fx��f�v���;����J�iZsi���y�?��Z��SY?�z�_o/W�?�o�g/��7��|8q���8��k���k]��k��+Z��k��N�:4���N�:4���N�:4���r���N�t���U�}��UUU{ �����0Bp+�~�0Zy���0\�r�������C{������^�"�oH�65EdV�k�v�R����f��v�����H/OYv�>C(+|�V�����h����<x��5�v���k���cZ�%kZ��{ti��F�:a�1!��c�N�:4����ct���P_�I���>bbtS�k5x��,��66V�M6���
qZ�����qN�u�{�-N�,��TB8�V�d������Z��n���
��+����UR�ha
pb���<x��5�v���k���cZ�%kZ��{ti��F�:`xp������N�t���N�t���tt�����N���7�~��F��u1�k?11�nI�v� ����22�Ii�>�;0��x����!RH+U��f�Mn�����V���m����;H�eEHhO���Ggf����|>8���x���Z�������k\��k�����N�t���N�t���N�t���N�t���N���*?�����:?�����z�����'�Yb��*aV�@���M��OY4�^0����I1�H���76D`�����{��N�nw�&��;:;6S�����<x��5�v���k���cZ�%kZ��{ti��F�:
t���N�t���N��#��c��c�����������)�����	�����`��)����<����A��n9�k���������2�?��>�?�I����~k��O�jC���I�����z����)�����.�?�G�z�����)�i��=�Q���m?�)�����2H�'��`�	�����	�!�'�'�S���H���R'��B�QE�~Bx��'���'I��6��t����	���	���O��M��	�h�?����M��_����?#)�St����j�mF�j��j��kE�*�4�L�'�L��L&���t��<�� ���)��8L'�O��h(�������������i*e2�����?�M��d������`�
>�*p�c
")S	��a2)SI�2'i��QO����"aG�����O�I	QbvdS�)�\&)�"zO��� ��W��{L��a��4'�����DE2��S)�I�0'�UQE?A� �� /�t����������O���z~J�W����}�2�r�)��PE��2~��O��a_����S��{O��`�S������	���ES�O�~dC���:OH(�N��x�O�O�F��N&S�O�"?��VD��c'�tg:�0�y�O;(���L+�C)��a?$��C��?�N���I���v("�~����hN�I�X$L �L&�:@|�O��� �)�hO���M�0("�q:�+�
����i�����~��c'`�W�e���&�2���
� &������O��TQE0���b�>L
}��N�'Ba�E������E���_��O�6���rrpA�{O�*~H��������������6��R�,�xm�|?�B���N��@�A�_����M}4���.��U�QO�}���4�M*�	�>���`_�E��TSFpe&S�L���?�??B�)���_�M�<�W�?�<O����B|�h�Oh���������6c'�N�r�X�0�O�q ��'����c�2���$�=�
�@E>�6��?�?������~�S�?���.�?��r��<A���~k��/��;��v��M�[f�-_�SI�(:��ra0��H��������p_��PVI��X����6�?�?L  �����������\��u6�����}�`1���UR�)Q
�R%*IU)R"���RDR��D)%�
��� 4�R�D(	*JUD�Q)
((��
�������
�@%J$$���R�@�RD��P�>��*��J %��G��#@����n�� 
@� ������U@�U
 ��I
)(�IUJJ�	)(��HQ$�IJT*(I)HJ	*����P*��Q@��ETE
��J�U$�*��U�n�*�H��#.6�S!��Y���Y��(P��

��B��Ppp��*�;j$��|w����&�I*{��%�"R�N������i�|���)B�����T�T*@S�'Z�@�GJtl��|
JAJ=����R�HW�'U$:}�Kv���:��$P T���1R�oa���������=JQB*��]�N*��=�_J�r*���*�mJ�.����UKHJ��i���]��+�@�
)WrH�U"�T���pt
�@!x�(��w�
��l
O eT�'�4�A�����?FT�C �5S�R&�T���d��#L���@���2	=R��)S�
LL�F�a@��	�Q�
 �1S�����OH�@�z@zOy@"B	II�M6PhmO)�h
�
������?���_������/������]��$����$����7�G����V��*��oN��m��:�����4z��2�(��~q���;�{�������"wJ���� ����t���IF8i�2R��Z���T�u-�� ES2��(���U����R���������Q��Z��m����m���?_�Ww�����Uq�W�N�����(0��V
��~����/�����zJ���#�����������
��;Z��$��Te�_�b��+��*�^�hB�~7f�Y����;S�������5��}�u�x������Cd/���h��uGj>z�u��}v�]�����/:�8�uGTz���[Q����G�Q������Q�uU��R\��H�*�[�R�Q/��(�����?�G4bW���h��Q��������2�i~�����SyM�����5�s]�k���X�wVF���v�����F�������X���$���\�vLZ�v��.+���.��(���L��#%e�*R2U������2�;�����MDgN��i�$���%&Tf���Y�$�(�Di$IJ@	6�Q�n��m��S$���6��!:�%&�
�v%���Bb�1JF4�4�0�)M��L�"@1I!F�!������&#(�)3e Q!�H�4��d�E.��)	"DC!�1)�LD3	dL0�3C	$��IJh��1$M3f�D�$JD��]�1�������34h�&2�Y�B3HH��QH�%��)9�R�0S3!	D�I �c��"iJ2K��)��&b���)wrH�I�1$A)HBI#1$�d��$M1"I�i���0��);.�A��&2c2&�b��u�b���dSwt�"Y�(�#3I"��PLM�u��$��6i$".�nL�I�c	���J"XfH�S"���JRJ&$fH�S$���p���I���H��WM�I �$��R&d�d����"CI���P�������P��3�B1.���P�v��]��D�������		���h��E$������1��H�#,Su��&�f"fi&biH��U�����wku�]����VS9\���IK����Jb��Y�2(�����n��;��fIFcIgv���\b��2�:R��Q�Jf)�&��fS�0Q�dFSL�������"BF$���5��@�4���&�L�.��fCFJDLi�J&3M�3$eA#&f�!BfQHfws)$�)%��33)��u�0�)�3$��A��!4�T���f�4����"C&e�I1M1���u������)�&d&�II�)�d������i�	L�]��dC@I��&�X3)2II���$D��)�%$���2�S2�)2fL�X�R1$I�	 ��J��)�L��%2�������&3#2K"�L��1�$��I��,�������bH��L�)DdH�$�2��H��&�$]���n��)�����3Li
4�I�DE�\�B"`��)	��bJ�)���1�)��T�f��(�h�L�$2d�)%��%#%HI1#4J�"BRi2bY�$%%%E!�H����J"RA!%��iH�B�$��0�����I���)�M�&��H�Le$)2P&�I;��J�����S&�u\�2CI������wrd���%�I9��N���&et�D�����DQJEI�)+��I7-�L�����'wN��%��6;�"����1F������bIYM�d&d��V$A���1f%�IK"Z�������e��1f��A�L`)�	F�JQ�PS$��E&)12"d�Fd!	!$��~�\�����^kZ������vE3&Gv������Je7v�QE3)I�heL�����"���D�M3I���L�L��!B0 F#��������Mk��^�z����=���h�fl���'u�������f��6J36Fi"�MId�������R�cdH�CF�Ee,T�I�Li)#F���d�L�*f��h���4��M%���LY�k����fi-2��Y�5F�U4i,�JL�c3E2�llj4m$��e�b��h�j6-)��lU&1��%d�-Eb�������d�-�Zf��L��h��cmQ��Ki�]��*�l�����ES5&�TTkF��+&�S6M�Qd�KR[�YJ�N�WJ�b�*,����EQ3N���k���i��b��X���lE��d�2L��h��gv�S,i,h���ZM!�e$��fT�5,�RQ$i$$�C%�LQI�&���f�Ic&�(1�II&,�3Qf�IL��I��&�	6��#&0�(��2d��M��������A�Y6dRfQ���I��L�3E�P����JF��&���sIS]�J")3&I�L��I&��IIC�)d������Jl�(����13X�I3� �R�����3e1���LR���S$��)$��h��c�)i��Q	���d���WwI����M�%0��%���L�������M�I$�u:�5%2��L�,��q,J[���L��bb�X"MIru�(I$TF�B���X�Hi���H�M3)��6��DX��&#3S4h�l�RX�4df���m�X��E��$�,���4q!��P�LI$	�H�2e�P���$h�2�S5$H�%LB��)	$�e(��1��K�)��2k	F���F4lVf���dh��1�f&3�L�RbJ5�4�6aAE��|5�I���fL�&S64[���+$kDd�JJ�X�f���M��i6CFeR���f�Q�b�)K$��,lfQ���,i(��%L�(�).[�6f��2����,QDIZR�N��5b�5�$�����,�������k%���i��,Q�Jf4d�l��Q3E$��f�d4Z�����I���I,E&�1V6+��c,RY5Lj(��Q4�LI%d�`�Id�fQ��2SDm���I��;������LssfQe �v�;��� �
2l�RL�J,�4E4��a2RA�)4h���$M�)�D���IB�isEt�����
I�3
QcBHQ)4�%$�QA�HI2�"LID���
$�%�(�d���RRFI�1J ��34FL��c�����4ffL)��fJ(�aD�f	��4De��4��&e�F�f�E
��4D��
P���L��I&"2Ff���C%3Rc4���A��79"�)L�wL�)��\����;���%n����3"��
������$��v���d(��d�14c�P��!�d�D��&L�D�$aFTi)'v��2�M$)Q�Q�2�)3�3(#I�LJc$�2�l�a"��fS2�"��Qd!Md��E1b2���"�4H��D��%!�DA��Ld�4�e1��F5)Ba#E��%)��"V1��AF�F,[����Y-2���l��������F�����F�j(�f��a4F���"�X�h�-��X�h��m��������Ph �E��j�4F�F6����d�.�����c4����f%���(Ng]�#'\��$�v��stRi%
)r������$c,I;��&�*������5&�1����DPF*6�E��)4lj��������x��4V*-��5�h���b�m���H��h���m�Q����[}�oU������x�m�Qkckb��kF����jS�g��)\����)�K��1t�c!$���L�.�wwwY��r
b��M0d6b0&$(��h��j-�5�h�n[W-F�����E��[nkW5�$��H*�* T�k���\�1��y�|<��;�LSx�F����F]��Q�	���$2DL������u�43&L7wD4��M�n�2���))����j������^�j��[Q��W���sm��\�kh����[�k�)1JCw]"HH%$�JIe��&�J	���cRY"(D����!�bi)D$���32���G�W
�z4?�~Tj��O�d�/���u(�G�Q��1��1y�����������U(���>����>�U��:�z:��Q�}���q$c$������~�~�~�k����������z���~dO��}U�|�f�}Q�����6���o��V�&Z����Z����l�m�kRC%��,��Z��c�L1�QTY(�E�������F4c2�k&�4����imk`1F4ci(��������5��h0QDY�"�i(�1�[yB�+!�����K��m��,%��1�J#FJ��
1�kFaA(�B�
DY$M��j�$Q��T���QJ#5kc���D�F�E0F�1�[c+2�+3�3`��1�kF2F��HDkX�2h���[cJF��ZM	�Q��Q�c����4cTF�J�F���5m�QF��S����#F1�����cm���I"cF,bMDT��Q���m�b���6
1Db(�(1�[fE�`�,���1[ll�cA�#b�,F(�1�[Z2I$�
��F�F1��V��X+�H�IF4M������l���(�2Pl(*�1F�����b���4�#���6��H����A��"�
�1���d*K��,�h�L��0ZL%��c�Um�"���Tc��AcknF4�i(�Q��(�Q�j��A���������61�lX�X����������[4f�Rl�����#F��Dh�I�A���������F�Z1�I�Q����AIc�������%�������1�U���c$EII�,1b�*�e��%��F*D��a��U���G�5Q�Q�������u��Q�G�#(�sG��F��tmF�~����)�?o�~��u�����5�����g'�_���-�������r���o��.wu�������~*����������;w�w������
W�Z_1-,����Q�"��P7\;')��0�w�u�U84����qn��~�\
�	����o���[\���b�]l9��&5��JN�;#S��SY�0��rX![������%�������U�V��;��L���!��i�CuZaX��/Sw�4���T�G/w��Z�8�����uY��$+������)����~:<��T=�@������{n��N�$�r�\�]5e�v�����~g��C�cJ����,�����5g4�JR�;;5�l����Nn{���27'��X���'5�K�;U�����y��H��`W�qn����U�f���V�wbS���E������4M>��j����j�on���H�j�e%7��nk�0�}]lPF�h�Wb��fD^���=�7����+!�D����g�N�)�z,pub��t-X��*d�"TF�z��)
?*������}7���V!�����!��X'c�����`����?{��R�&gt;��=��6b$�}�q������.����v�l����{f�r
��K�� }^��yM�<���Ko.�v�����s�r�f5������c�>�����)5Q=V�6�a	[�;��<�U*��b��i:RR!e�;z��G:�t��D�� ����MZUM�����o���f�/FD;�j��~������;�p�l*\�������������S����f�n��|�Q�B�`CV��AC���7��M��,����wV�qc�I�o�_}��?X��.�.�3�Z�#o�����dK8���e����eb�i�Q���J�����>]��J�(�nVH���5`��\���9�r���9J�\����e����c;rV;���_DwT�����q�����r��oO������-�Po���Za��kp����+��B���7�YR��>�n>]�����5@�b���{����Op��x�,71������Xt��[rs�xU�m��;�xKyjA���W_el��e��S-���U��c�����������e��F�^����wX���)3���?q=�;���{��������[�^����S5�����hvY������_��f���2��I:�����;�K��u�����4�����M��(�N�MGts.]��)���e�u���H������u%��L'b\5���ZQ��������s}xHb���^���c�n��E^�J)z�5�4
y�T��W-���:�z"�E��,�t�lX�]����9����>����w��ri����y����*�L�v+2]�r�	����_`���m�S�����K/c.������3�4��F���1/dp��U��Fy�>��-�#�`�F�2d�r_�j�����V�$*ZD����������������^�����st��m?&����H��p��Mk-��E��:�a���~C�ov
wWZ����4���.�?��%Gw�f����!�8�/���J��o^�|�8�7����@�Sd���PQznW����
�����/u�)U���c\�M=�h3�
���2�����
�T���;b��I�l������|hF�l]�����c��}M�sJ3uH���aU����r��{�g@��c�)"��~����x�F�+wQ+����x^��F-�Q�w'EXyWU��������U�-=��,M��9\�H�����"v�B)7�QV�V.�un3���C$G��Z�l]�n�6k[����Bz���yl�4�^=��J��c�;���s5�[�4��$�W����]�U\�:���R�m��=V�}��7N���WC����o�����9}dO�e�zjB��}�OZ�����oR�
�P���4;F#���m�
�Ub������u����5W@X�G���jb�[�s9��yuz{*��SG���:�.����d�p��^5S�q�lE���J+��R��J�k.�[��@��Ku�aT����
�Dr�4/8�cDH���]��>�!F�W�%��r��d��y���G��/�kv����l��@�yn7����>�`��
��'f��9�lX��h�R�a��Bw}�j�P�����D��mB���gJ�����S'�R^���;�q4�.�R�A�+�&�����I�L*���w���)��$vw� u�:*x�=���5�e��Vk��-�R�Y���\���o�u
�Y|�6%�utyV��O%r����.�����D,SL��������C��x�����"���*R���ik�I<6�<���}b��R9�������Y�&�gX(o]��v�y+����;w_���W]�hS��~����Xj^9��	�f�l�����o��{�t=K����S���f�76�{]�b�'��n������ErUj�d��f���������HEu�m����3w�L�piC�Z^f�0F��d��#�i�&G}��S����s�x���Q���
�&\;�p�1����D������nH�N��]S��{�������6e��<�{�-��A6����2�p�s��K:��:�/��V���tM�NO���OF��C���u����j�8�{{��O_�<��P);�{�������<s�2�_9�r�m����<y�.f;��*%bc�}�kyL�����oQ�77
���G��Cw
�*��5��l�a�
>*n�W�e\���'������F��}���V+�`��fVlI�Ke,�[{�� �+�9Wj�6�,�V�+{�����h�
��J2S������:���-���8�~ow��!uz���3I0�)Kl����T���aTC�H��4��ds�fS|�)���]��vnm����G�����a�!�V�{�1��*iX���T���z�x�����/%��#2�5��fc�h�C��a�>������w�#T&r���Uki��s/�'�P��g^OF�[�owm��,�����.ms��s"� �Ob���5`�^����G���7[/����&r'��h�B��lt��,��Qu����^���-��v�hnf�������|1�z����ppI����]UKe�Wd����*j�+,S
f;���U��}�AT�W�=�9N[6bq�������FT���~�u(��Cs�;�������`����^���;Fe�{��j��;)�5�Uc����p�<����\��k���o�s(>T��x�����7����L<����z9�������i�� �]%��_f�����n�������d;CH�jP�T��L�����p��b�1�`#'5��WB���j����������yen��_(����\��]`��Z������S1�w�u����0�n@���2V�ael��s���wZfq=e�U1��G���G^5����XM���{Z�5��7������R���yc�������1�}����]q.�F�(�g�E����T�d��	������;V�mi��
������wy�.��m�,�U5Ow�w-r��/n����~�S����f{�cg��o���"��l�/	|��g6���m���Y%��o���,w�N=I��zhH��5;��VA��|0a������f����4�����/��Bk�4���h�N��!�[�Gf���I��Z����C��yz���N�1V�T�UW�����mayR�*KZ>��}�mg�c3:94����q������'n������FQ�wm~���K���Z������
�����B��PN�����=E
l��f�����m8���x<��|7���E�pBE��l�q>���a�����3�7�%; �_h����/o�����C���������q����'w
��Y]~Zc��5���1�����9`���n��
�1�,<c����H���o�`>Z�����A|8����pIpe*�����F���8K��
p=���BX�V���;UNu�uU�Oo%������F���M��IR�{+y/�a.�q
���>�
���^��q��r�
����>wp����l���6wps:�n���e�)�.�Ov�OgrBw[�n��A��0HD���]�W�mf�X�r%���h��8?^�<�e��381��U�,_���L��z	�(
��� v���������y���
�xy��p�2�Kt<:t�t_�xA`?x0�����r�U��c!u-�.��[�p;H�<`��xK����A���2:�6r90�5�	vh��	R��{o_V���0'@��k��h^�ja7�l��%�^M���<�����jy7�-?�����I-�W�z���:�~������D����V�����}�E��=Z��[J�f-�P��4�l�zm����	�L;l�Y[��>�I�n�s��*�,������H��Mf�S_"��va�V2S�������(�Y�\nW���T7�����E�
�q���"���$����~&�_,������%�^,����R����a(k��>[�Y���u>��9��\Y��n=�hS4������2�����W����$���nY3��
R]�x��u�;��>9�_on,��z=H��w5mj��*�vy��V%�W�a���6Ji���1u��;<�X�G��f��j!�j�	�]��p|���aCm���ox�����6�w�e�����[�#$4<]u�&k����]��c�	���Q�,��nc�;� ����O����o"����7����.���K�&y�?gtu������=�0�,��r�Y�3���e�]�rLVn��7L�A�X�7+�+V��j`n�jB�5��9���$��6��:����<���[��T�nk��>�!d��I�S%�yP+;Ud�1�Iv��l���f�������U�3q�I����0%��R�vlJtz���X�P�_�^�*��F��h6c�����B����
��q�s�{��� �F�T:���2���N�{]���x^	��ful��h�bu��Pe�7V"���5��]W*�Lv��6�����:��]KW���!�s��6��m�_$��vBo�F�'}{���s���rz���{'�����u_6��(F�7�Ov"�
��Q������\
�fAL�4��� ����&`�D?a�������;�{��������e�Ki}��+�t\�S+yj}�	��BSwD�������A�������o��a���W�{m:7���v{��1���mo��/_������
�{�j�y?>t����������/�6�$���V2��:���2��.l~�����9�[�Zu\���h�j�a������t���[���[T���wm�$�p=��p��Va�2nM}Oqu�W�s�L����k31]IN�$�� *s���l��C�����'W�C1n��Q��:����^W�rW�N����b|3)uu=����E�{��<��Q�����J���<\���B��d���.������&����L6�u�o���Nb������j�k9��l���x�������b�t���u�#��E�s�=����
��k����\�C�j��{���-��2S�A����zg�p�;���$[�U�����|�p�t��M����{6�
�N��e��V�:�����B�.�UwB���*�c[{g�<c�-���by�iY���=��3���#q�����z�6�"b���iH��}���P6K��S'N��"Q��\cd�|9�b�K������v��=���{hY�+#����k��l�:�m|��V^��=�����w�}���}������:C��d�^�L�gA9_9�Ur������6�;����Z�[a{���z���:�^�g����x�����K�B��`�8H�������{{�L�����>�����9��a(�]�.��P]&�/V��	�����.�W��}KJ,����G����U!�uUZ��!^]I�[�.��0iy{�9�{�#��On�]WLe�KpqU6�>��V��z��1VP9V���z=GP���Ab��)�����V/o.������������h�x�n����}�kb��4#��'�������������cC��h������ k~h�%���Xa��)���(.a/"gy�z�����J�3����ULc�s��y�t,�;����V[��!;Gs:�����X:n�c�;�v&�#;��f�����~���*W�����t���T8sY�75d����(������5-jL]�]4����c{s�P1$��i������=��+h��Pv)v1N����\��!���:�;�-Vq��Ue1KZ��V���*�����!\�����g�5uI��5s�#F�����%�Z]||7J�sXu��C|3<�~�|�i������k������aV�1���F��������rt�L��_Tq�l��UE���Q�s�B$��Q���^Cn�CwN�]d��p���h��v\�x�a���^��k���{��Y��\ZM�
�j
w�}�X���QA�b	fK�����C���h\;��.�c�4�w�e�j����FN�.����:H��|��pj1�lSx�g7�j�����.���,�sC��oO_w��|\���9�A���u��l�t_�N���1t.�����l�l5��d&����[s��5�#�t��aD�r~�8zic��)��N{�w���$��R�N���y�62S��J7'����0���"�r��pf!��/*Wu�����1�MY��k��
�z�\��K�]�!�X��T��nf�Zy��{�c�3�cV}{+��������~o�]�k��On�LJ
\8���1�QVu�I����>����*A[pL����P�����T���)MJ�x�(�������,iF��|��BA���!�L�Q�F�	
��R�����\6�9*��2'�{�p�, �����0�(4:\0��h�bLd�x9�<�Z��o=�L����F�����!��jo^r&iS�����O�Pj����]�H[8��&��Pc�MmWYO�]C�7:�
�$�T+�u���������*��]V���;�(�k�;MP4�=�����������b3��B0zU����������f��d��3�n;u�
YcwC�(E��J�K �b]�{���s��|C���O-���h��WZ4c��[���������

a�����kDw��>�x����w�����w����������y}����a��|���e�R���b���z�V`�����T��Ju,�F��B�w������iW5f^y*���J����R���%���0�������_:qSB�y�q�$�xbY��?v��_A�L�/��9�xkd�X�]3���4[�7V��.g5p����b���Z��[�~4R�~�����H�����*��(FU���w{�������8w���s��.�kKZ�y�G,��� u��������^����A�KH����@G/�@G6�m��q�k���D"�'>gq�}���n�����r��[�"���)AA���T���"������<Y#G~��n��^�,4������1�a�L
c��j)���,���^���\r���V����\s�O3n]�L��y��0.R�W��Q��G_sK5��>�������,0�Y��z�����m�W�[�&;��{�)��u#��%>��S��n�b�g��o+���ua�$ty)7�I���U�,���2��=�G5�=�[�=@����!�c�Yu��.5:+���r�`&ob�),��k��]�Q9��m*��N
�k,dK�z�}�Y�Or����jh3�7#}�X-�z���/S��*q�%��~^������r#1v3FO{k+
Z��1��]�S��Ce�*�
v��5p��|s���h��f���V��)K�U6[KF��;���g�d�� ��������s0��Ov��1�x��\xJ�'z�����w,=�9'�F�j�3�j_{-����zu�Q^e&�'l<���b�w(�_;&nf�J����I�����#��Y+t����w8s��������v�7JK1Q��,�9�)V��,\=�����,����x��0`�%r��s�+�{hM#���-�gx�U�X��!�=�x�%U�n.;s�z�����+�����Y��9a�v���X�{�N����G������{��\����;T����p�W�I�3r����tL��kh�>���.���lVv��F�N}��7��q�)S��95������R����Y��9f�e����`O\�8���gP<��`�����yr�h�$�F��~�o�!��7�w�����8,2P��������M�]���MRw���W|O.��������5�3�����:7�m��BS��_�,�*U����q�G�v{��buF������-wgx��gS��:��P����������Y�P�Z�*�
���Z�t5�:U��X��C1�K��o�ub����}w�r.���9�u�+��R���#�l���2�V�_VeN�wz{,y���{%���m[F�+�=#�$��N������Ol��]�}�vv*��U�yd��$�G�xX�w������������I��##X�O��}�{}����/.�l��hM�����E��M��-:�R&�������}"B���bM���j�G��Wpj��A>��W�������&{TdW���(c���H8���!��EIv�E��!
'n�j��VoR����c9p�n�@���JD����S�"y:���Bg����e����x���qe5	5+��)m�K����!��lE�u`���T�Z����uC�������b��[�������()}���:�z��n4�����!����IR�c����r_�6����1e;�E��e�Y����`��Y����e�\z�$"����vB*X�22���&T|�h���sz�D��&J��j�C�c�<G���f��e�T�B���[�b���G ����7�@u�sV�V��l���&�}�7������.v3�{,���d9hl�5{�B��)L7�<MP���*���Q��-���;y�Ov���\�{��J����\������m��.tz��X�&�CD���,*�Xe.����+��e����;���^��F�Q�<�w���b���������j
q�*�j^s
!V;��D�%*����;un���#�
�i�\PNEO(��V�����d���+u�^���[DZ�]5wb����2�����\'�UK����L����<����3Z�z������*���U��t��������W��7��ob�!R�UL^&������]>����������zk���x�a�.�*D�����<)<�rD;|[�Av�V���:��������_�k����������s}��h�`��1�����uG1���"'EL�x�T���f}��=n�x�Q��J�p����j��:!�<C�=��A��g��3��;�*��OgJ�:E��ei�]��W�n�.!����������nn)ZV
}yOj�9�{���v�K�p���� ��V3Gr+1�D������=���_o���!���~��x���Z��7aP�c-�)61C�&�G+�7������:oSy�	�u7.������NSeb|��^�P�E���}Y�'�Y}��%��_�1���}��i>Q8��B����/���[���^Fr�w[T�2������t��d���w�Rb�����9���69���L���O�L����S���56�ot�P�Z�:un������B65+��3��e���T���|i��!9u��3������uA6[W[
�0�8
9�kc������:*��}��H	������%���rl�C+����b�
���3`� *�>t��L�����eR']���������$q�A�m�xhvOK���a3����J=�btu��i����S2\�[���6���6��A��Z�]��m����V���-Wd��!+j����W^G V�����(���>�u�G�>g����}�t�������n������=�.���&e��V���{�m�U�s4��Va��� T�PnVf��vkS\6���s���4B�4)����%H�:�^-5x(J�sy�j�����Uk^;���_�dqCj���G�}�~�~�}�T��F���?�R^h� �}�����EQ�Q�omc,�&I2Q2v��uV��/�T~�O���K��d���n�����1��"�BU�Zs{k��k���/[��������:j{�����U�?�<�jy��	��L���]�5���N�1�/��N7n|t�mt�������cw�/|��n��F�m~����w���9|��������<,��oKs�[��!��������x������s���� wG%q<�n����24'���"w3����<�z�O���������y���;�xx��w[���w1����;�����wB��2(X��d@�z��������|��k\�������c�|]n�e���	��e��f���^��d8V|��ww^y���|�|�7�y���'3��@���z�c!���T?A��4��	��1����a��D832}k���q�����ivI� 3�3X��O��^i����:s��x�����_|�Lw��y�k�;���<�9���yz�����S��u�����y,�����y���x;��uc}�����^y����;>�^���=���������g����<�9�V����x/n��]����<����Q���_Gk�Y�+;
�Be\����|�2�2 ����
H� ��������It��&`��A���d{\:F�����7a�s�m���!~��
��[���s
���{w�z�S��cs��v�D�uL�'sj�.�TB6�7�;�b����$�:5j�k&��Uu�����py�?w��|#��{	F4M�1o��4�8���7�����"��d�D����������R=���y��U/��<|����y���9��&�.�,�+�<�;	�����5�Y�|��nL��	��!��b������7��������;�^x�y��`�q����]�\�{��=��xw[����oh�{��Q��7W{'W${\��6fC"��[�T�#� �����(���
�T���}�9�j��08p0������1Ll�70�p��x������D#`O&	&�.v��.>Go����ul8$q��E��h�q��&X��;� ��cnLa����'��f����y��Ty��v�����y�<�;��wx�7|�:�=��xjv�������B(/���m�B�
�����hGF���%3j�Qh���g���P��q*]R�F��H�$��M����w�x��~�����<��:���L67pg]HR���N��������K<�:d[K��X���S�������B+V��^�R���-���w{yLNZ��{��	���&�4�OKC0��1�����\X�6�5����?5�z������9??a��-#*���u=}�p�X���;��x����Zv����$��F�n���#?L�WN�E��-����ac=�Bl6]������G#��S�ix�k[g�����7u���i3pV�������-)��Y�cq	�s���0��Y�>y�;�^����}z������y���|w|{��mZ��20���������D9 ������������h4��a'p
�3����.;�t�7���q�Lk*���������qZ���w�z���y����:�:���l����{��W������o�����������n�n^\VE4�3�+���2n3��n�H0>a����r>�zt�����.k�N��i��!9�\����=~��}{��7��65Qv����
ow�?^�*���J}�f�p������*��K����pnq5Q�!	������ ���q���RBee5	���"j
��� ��K��8k�.U'���6sv���7�_I���G��7~�5\c,V-���Q���o� ��^�iZ��9a��{FL5I�l��h.[������y�Z�d��hF��B7�3��\k��=�����y��Z�,8�8��#��87�8�'����<�����?e��C4�U��������M��>.��G���$�������q�KZ�zt��1����*�������o������Kj����<��^��!1����tZ����4G����,�i����t���XFdc���33���'>�uP��6n���>Y����s������s�]c��&�U f#�8����"3P{31-	���kH$��*p�����w0	�a9���.������.t����������<�m�<%1���Mbe�Y�o����ULG��~U�����2.k2f���<�� �x���c�#~;O��Yn��������AV�]�u�!���n���W���)�����������hb��,��e��2��E�Y�@�e�Z��)�2���%���2H�%�!�L ���.pn��T���zh��:�����1L3�uU���W��z�==�Z�r��c�a���;�p.��>����`�\(�e��k��r��3�'\�+KN���%�6���qd�$XT���&`jx��TL1,��o!6���`��Z��X�'�6	fZn�<�'Y����e���\�����=xk�]���)�o&�����
4�32�����M��{p�>����}-����oT�����o������C�<]w��8���\���|��^u�y<5���I+S^X���cp�{0=xwp/ ��H��n��o��Q�x����V����3���)M���hF�����3d�%�mU�>��h�Wg\�g��{/m5��Q}`Evs�s9&�bk��������d��5��W�p��&�����;_Y��������o��[m�F����TSTR��C���`z"n������0����U�� �Jk��9B2iv�&f�
����k,��XTs��vf`���16�a���j;�2����/j����b_4��v~.�]�p��:A�n����;���������v��t���r���nzG��^��<�o7[�����Om�^�5b'u��MS��KA�7*0ui2{�v<gl��L��j�7�h����`�K0�e}w�6R�� �Jq����<2s�����{��������nKB�zZV����'5�0;�//]HKu���w��N������(���}WM�X��a���$:���_FG���������, ��G��s�vG� �,�����2,�$������/||-�w�>��/;�����|��F�T�@�>���7�S�\�q��f>KH�{}<�5+�-��f�������y�Dl{x%��=m�tM+p��FD�2i_c��(%�12,��!�u]�����{p��t����g�-��.�����-���aE����wE���W�x<��r�V[�J�������'*�}�q��������F���{r��`���;�������nD3v��&���zaO��T5I���,����"#����g5�,��v-~�2���7�o��g�vl6NT%Vy����"C��Q8�Y��q����������N:G[�=���|F\��Z�n���c����!����<��n�u��Nw�n���g�w_�5�'r�o�������
9�-g���%��q��B'��k�{���}��|��3Z��L'����{��oNY�17����pa+ y�����o�������7� kn�7���V�R���{������g3(���7����=��hN��o!�ut�K���w����e�����	��F���n6�q*�/�=V�y�#�:\�
�F�l��M�A��*8����wR�M��d�����j~�����{�
�y�%���H��n���f�w����,l�QD���@�T��anGdu�.N�2d�����}5�qd����-�,�d�|����n��n��A+�fnf���f�L��h�Dp1�����bO4�"ZT�,���B��7��������z�L������h���=��l�?.��Ok�z�V��c71����Im-x|�V��p��)��I��f%��s����c���VG3&-B?f�:���icGZMP�g�P��v=YZ�dj��g���O^���F-	j�X3$AvZ�}��$��4;������~��!;��1��.9�o�R]��OM���dW����O��n����<���
����@�gX�������]�N�-��7�|������e%��w����>?���||���>y��w��v����<����X������g��/Lr5W�_�|zF��~a���ro������F��������q��w����oK����:��������{�x������{����{��c����W�{���\*����{���|���UU����g�<��J�1V�rN��1�Gg����o:�`����Y2�(�2��_�������VER�������J/�W�������?����Q���F(~bU(���m��kK�6%4l���VQ���[�����>�ImC���{������}��?'�������_�_�����B�����_W���~o����?����?}��}7��M�l��|(���R���j��@m)���'�@��a��b���������}����I/����o��Y�8v�
����f���&^�}��1�ol���p�tx�@�^������J����6C��'�j����i��6���
�z�E�[+���A�>�D�z���oJ�"j>�=�(n�wXU�$�Sb���3&�oX�����*)��Vw����8��W�Q9N��q�zv,b��w\}m�e�=p�DH0p}�@����}h�����j-�P�9^#��6��8��Ea<�q>�p��SA��e��y��t-,��������^|(�l������g&_.^�K�x�[�����C����;�eGIP�X��uo��6�����^86#�`>����
��Z�d�;�� ��T�����Q5���p{W�� �g]u��LB����8�w8x�X��y�5H��*~q�xp�
(������L�J����q���q$�r���[�.�w�B������yYJ/r���{]zS�9�*����8���h{���n^f^���Ur�2*�,.�J6��4l}�+�BoF��w���s�r��6�[�������n�������������
��5�32zq24X�nm[����	������]<
X�
��l|��S��|�|B$����|;g:���.9�R�����
������������<r�d���e4��8�h"0m�W95X+k����ae��	��y��G��������>]tSX��GS�t��������<�Pe����'������+���7T����f�=G��Y��E�p�����'
�G�{���$���-!wh����O"v\�N��b���{4t��q������_��R�#�fg�]��!��+�^����"6��*�,74��:�"�#�^aV������(rJ��02o�cC�:4��:>�.�

g�4��G9
�"�"�6A��\F�U���8h�>��#b�z
�%����
^��Md�=xe9�"u�2�Kl��[b�y8r��V�)q�����|93�
���8���6��,S���x?f��/�	�5*� #����
���c_�����;w�#i���%��XZ*���mQ�N�������M���������W�a.9yK)e#)��"�z�j���s ��s�	z�zbw�Gw.i�iN&I�����"u��d>d��:��mNgazt�W���wgMR����lV�v^�T(A��k[*�t1��I��{���F?w_�����}Q?D�{���d1����v�*���+n���n��O��hK�W}&�dy4�8�&����ZWs:<���60�T����%Jrg+�&U��}�����'
I�/�d�].`����w�s"�E�<��ifS�i�3b���T������� �A��5f�ea�[����On��=`�!s-�A��}C+oB����cF�m�/8��u��t��Il�����������m���m���}��z+�3���Yi=9��L���'#�� �'�����~����0�.�/��vb��I������S��wDdz������������L�j���q~O�YS]q=��/���-��g8{&Sm3y���H��	EpE�o�o��!}��Q����VVD�����8E��n����g)��!�K�CO���lJ���O�����xO:�@��k��)hY�-{i�Yh���EWV��ay��G�KL�7���xe�p	!������l��(Q�������]�������@�%j�]79�#������Q3��h{~����5
T*��m%����K��^Ob�ygW/5���R�u
����
� 0��md�;��no��n���t�!)�^�YA����[�A�|j�Kyx���(,0X7�v�6�L�9R;�g]�������v���6�7����\���>��`�5�A�>rv�}=�5�}���z�Y�������X{U]�R�����;D9[R�<���x��37t�w^��'�_OZ�w����������}��A��Y�qv�hN�2!����9��8'e"�]��eX�ykD����#Uwaw���������m�`���Y&Z�ld��y�{�(B�y�
��e�������4V/��9Z���Mr�g��M��hx@�#f(��?U�$�[�d�V>Ckn��f�b���Ex��5��=�,�T��[��l@�Z1 u��Q�<���1���d���9�<el���|J�u5w�������[��������cP����\a�Y7k��	t	<[��}c/fU�Z:�:)-D��������`�G9��xtH�~�,��zJ�&�>
X{�NT�{���pY��/���u��B��s�=��=a��!���{�L�^����e�X�x����sX�/�1m�u��3�<y�#sepo��
����w��4����S�Kn����j�V���8�����7���^����F�vq��s"��;'@,d��5e�������Y�-�\<"�Q�G1V�xw���L���g�_cW\/(i2d��v/D=�NR�85
;�-������f|����s�O�i������_�a]���Fta�b�{8���f������xI5����wD�9��')��������WT�#HRI.�����DNn����,,wr������V�i�|�Yx���#C����TK�-��@Z���8m W� @����o���7�:�v����KN;oq4�b�����wn���V��������n��Sw(b���BY$�
yGbqt��'���{jp�5F��$���������o�'Wy��v}R��C���"�]��-U�v����UEA��������znQ�3ny�_�����e�����5���& ��:�����z���^#c�"JUY�{�sP8�9Z8���nS�^��?$�<�&�s��w3r���S{��QR����W�UP:��������������EDi�3o���z5%�`L�+y�����
c8Kl�/���;�1M*/X����
D��Wy��=F�*�y��o������n�w"(�j|/U�+�:���s9h)7�^Gu=Q
�Iu
��G�<��_�_u�8q}8d�[�u�������������W�,�]S*�hN�,�M<�5p���7A��C����
�(����F��B�eS���y��R	�D"���vp���hg��-�2��L�h��]�j{V�$f�\`��A��2�uE������IUq�/(c �Vbc{]���{Z�+�
_#���07�5��A�w��H�<H��gB���cho����HM�|��_^��{FO`�����oo)rM���)1>�I�:��t�m$��'U�'�;
�l49z�a��E��L3`�')!\��5��^�fy�azf*���W�RWJ���@|b�����{���d����q����hq=*>��.�gz�����<D�uQ�R'��4nV�^������������������}���R���X;�c�s�����Kw���]��}<C%�+��/R���1��"�r� S�r�� ��v����l>�E���6��,_�gi�]\7���4�9i��\_�LH4E�v����{��3�?Poq�Z��������x��l��Z��$�nLba��C��R�x���-�:%�G�!aa�1�|u���z�����/�Neu������7���g�7������7p"�f_I�6��k�P���4��$���1z�9T�7��h�RIv����*�sUl(����5����@��q�������8�x��`+��2g����O�I��2�e2G���\}�b�g
h��l�g.!��'��t@�p=�T<Y_I��y��{������G�/�~�F)G�|��F	��p�Ll[M��w��Q�l��TJ���?�+�`��������Z�e�x��D��8�9��|>�|�4x7�'8]�.\
JF�Z;����C�� %������'�W��3�%����{[f��5R�7�7F����0��v�
�h������k7R�����Q�;�{7M����,������A�Ow��Gp�;��y���s/�����:�hy�
����x�}��wKk����5�f�l�Mm4]F�pUZ����c,0d�ICE�nm�y���bx�b1�@�K�m9�@�.��,����m��ZK�h�����S�K����a �<1�t���5� _���}^�+X��T5�LV{(v�J��;�w�ZB��K����D��5�9����������������o
Y�oW����r�9�����\��H��:��^>T��z���]'[�c�XKa��w�5x��#Y��u�	���G��� �� �a3���-
�_��c�g��������)�U�N��WKT3}`�6`2^=���s���6y\���
�O��(O������U�i������G������`L: l0����J�6�!}�9��:D����3����7~CwM��&��s�,�%h��V��X8�r�J��L"f�Q�V��D�5z[��>q�����y�>���!sp�z�K^l�xgP�s�"�!�m3$�
;CMOU�`�Tp86�����{,2d�x���w�6�5\��w-K�*Fo;���p#��GV*�HF���:_p=l0���^]�z{G\��{��K�F�)�z_�a��O����=�V�������J��lZ\����a�]���)��FX��Q��s������o�`��OG]l���X�+A�k�+�����<PA�V���������6��HN��e
�(t��[u)^`WU����Y*-)�{hCs��7�8Te�]�#w�n�z�cnwW�p4��Y�-��Q������
����V�	h!�� d��l@�fo]�d�e��su�dH������\��(V�����R���!�Mb�q<3�/��G��=��d��F�e���:�0d���'@a����R��J�e���ceP4�^���G6�c�eQJ��s8�
��������x�B2���}���i Hb�9��\ry���-���5����c*F+:�����s:{���/���WIs1+��m���v�NN��<�-af+ai�n��n���2�-~"xwi�l,+
�c�.�����ssF];5�5k�*f���9�������C�=�p."<�c��xu}6�h��Q�M�qi�����0�US���� ql�[��z64w�z1/3�+QSv��n�����E
���BP~�/��,QO��wG:�K���(Up��*�Y[�x��gK�u�GI�c��so�	4/�
a#���jtfg��PmV��$���XI�Y�s��t��m1�����I���QUPR�������v�;������H�C/�OF9�0r@q%����b03���z��7E�##��0~��r������v��g_%�ZM;K�������/l�z�i1O�a���G�O���j�U�`��i_=g�vx�+��pn�q��T6����	�!U�C^��/Z)0r�EPQm{af�S���<��`���.ms��om>6���dS�r��f�x;��,��/��9@�q�{{~��o�;[��y���}���%-�e"O�����Ou�3�f�������t�zy
�,��o]r��}�>�N�����:@�[~���:x��
��76
[{Y��w��0N9�x
��m�m_�
�E�*�\Q7�ObtGp���\4]�[j���1/�\R�N{4�5����b�Luj��T�5�4���WwvL���n����/}�>3 �v���4*i��mKG�np�g��4
����M0��������#,w���/��"Y��G������b���9<9JE�B������5/��^��FcrE����]q�&��-�u$i<<���R��u�x}M����1`�Bg�^�:'���;���M�t����H��G5+����;�����dq��������Z���Zs��Wh�����A����A����D��a��6�<]\��z�����O7��;�O{�����~c�sKy�.��r��=��3�,F���@���~���o�b��Fne��:�����\:NM���eC_��|r�"���a���d�
���Es<-,<p��ce�n��e[���W[�5"As�g=�V���;��GA�P->�����G)J����*{EF���E�N�>������}�����c����������`p��0I�E�:h^kp4��@��d��\������^
3��y�	*D��{s.�����w��C�{P�xi�
����u8�W�B������1�$��'�Xa�TQ�K,:��;�m����p�YOu�}%�uU�p���:�K��5A��&�5�l���,���Gb����-Cn�bw@f�ie�e�;Xd���y	s}�o��`��C��^v��nd��WL���El�e�����)������������6���T���mtr�3�;;R��zn��~�G��<G�EI��\��)Z�8Ye���h�W��������������c����^��h��.��+�a<'%	��UU�]zuh�GXW��1�[���qX�������_<��Q�����Q�{���`�;�F,KG^�F5)����K��E���9��e�N��_p\6eg?z��onL2a�[Or��75������&�-�3~���8i���<^P�2@��Bs�����"���'@��4��/���^~���F�#1��[A�B�n<�����D������RR���(ul��g*�Y�7�[��������G�]*��>�'�r�N��8W�| �|~)
{�_���oe�;,:w�Go���xsT���Q��
=�|����`.�s����������g���#g��H��VH,R4R��� �7�$O-��tNG�z��CQ*�����x���Cr���g
��s�{�=���8�������y�:#]��L��e�.�_�+�l�������vx�"8.�2�'O����!���]��b���n�QdU�g���[nt���-`>�LA�=Wz���u]�^��������|Cx��8LW�$U�*������9WF�%f�����&��%���-��.a����!M�Y[Z�^���EG�d��
�X��~���L�����K�����SK��wkV� ��Uv�l&�O+uci��@�;F����`���ZuuP�}�r�
�4f����)]��^�#�v��eg0�i�2m���f�gqah��9m���p�5����5`<����=��/��g�8,#<
��.B�.�����#��.";��E�p@�����:>c��ZO��Zr��kN.96��(K�������h��N!CsVx<F1�_z_&B����h��;�����2�%���u*#t@GG��%�����;�9�����^�x6�=���;���*��]oS����.!rT��d����4h�.�`$d�9������\�������>C�i}uJ77/:�inNM7�]����<i��YS�]�pd��.k�:_U��bG������y:!NP�v��&�h����o��#
0�PD��e���B�H/��c}���T�p2�����D�v��,Q�yB>��
5��g�tWK��rwXz�7LrvW:R�����; =J�%kBmS[��i��{s8���+��~	\�	;;��m�:)vHrA�vY���v���3:&�Y��`B/�#�����m�D���Qf�;��
����axQ��Y���3�����."^Y7h���
��f�'���D�����J.��Y��$�h_0���*������K���q�>����#������t�s��������Lh����^d�x��������g�*h_��	.�-���e�T����l��\�fc4��u���������l���N�����u�t�<���[������"�Y���m>������GR<��=��z�F��|��������w.�V��^�s����-
�jS����S3Z*�wj;w�h�K�_�����x�5Dv��2j1�Cv�����!6$����,����C��V3�i�s��/���|s7{Iw)y?J���l�[������3W���(=����^���+��m�u�dk�qv�R`io90�o�J�N��5������\8
*��#���w�PK��Ky0�Y�J6m]l4XO�;�F��]�c��hf�����1���{:���c��q��d���m�� �4L���t��b���>��R������Gu)��F��b�*�6���O�b�	�{N�Jvt��
�G��I�KG'���.�^V�'�{��/�f��gE��y��Ai��D����2.��o�:@�a�}�\����d_��/dV��� ��H���7��F�*��h���e(S�.|\��PmX�>*�������a]��T*<.�}�P}H�_���E����b��7d��r��;��2���a`���vgQ��O��x�o1C��W���St�b:��Q%|�+;��[�o*��sgW
i:�����:����� ���8�'���ope~��=F1��G}w��`����B�Y5�HY}�w�W�s��S5@w��s7�cYC�.���
���6J�
���:hv�w�
"�;�����3�I��u�Q�6����V�&����],��,H8����{E,�]���F&S5Uv�s/�{6��%��Ke��g,������t+W_(��K��/��{�*�;F���z�[m
\:�C;ixm>���n��xG��������x��^g����$2�����a��"��`2Q������*G���/y#8K-�=��)�t���/9"�}��
C�B{o������1�z��U��7l)f��9(�o]�fe�����
���������w�
0j1�LHm5��*�`�a�
�c��oQ�D�;L����Y�;0�����NJ���?�In`:9zj��d�s��
9<B��o,U���-�PF�]Gr��zId
�Ce�d�
c!/����{wF��|����J��b�,si���1+q���V}�������P��CGZ4���@�r�=��v����h�V�:I���������z �0$�1��5=��Gv������Ir`�x�/1s���//O,/�Z��An4l��b�t}PA��Mun�<7a�4�	{����n�����Wp��Ts�n��u���Jk�N�u)��AF]-���^�t~v84��P���1����Y&���5=kGk+���A�����
�9��a��b*|��Q���(TJ��o��8P�aN��#�����J��;�GI���N����yAW�h+d�F,��f�
��7jK��q�=s�`��v�
��bDTDE}�
R�YN���=l������L��A�;�����28ZAf��><#���%�� �L5y��(Uw��m!���t�������9h�����N��M>E�0;���6��&���8?7K8��/�G�#�Jh��g$�y�g[6y	]�c��1�h�W�qS�{[{�r=�w7��<���E0�E���*M�-`��5Q�����ywpR��NvQ����d��/(�g}G:M�	������\s�%�o-�uU6A}3R�sf�F�.TJ�;~#�	w�4_������8P�|0��������K%����}jy�C���U�5Z�d�x0F�o��0o���6�^���W����|������q�����������2+"���3m��S��������PZ;����x��{��w��sg���v)�������;�;wyyY�UxefK����_����l����k���r���`��S���YWz+
(
���/����`�5
s�A�����,�=of���F��Y�#�v����|���V��uoS�/nc�8�a�<�R9�^L�c��oKk6�Kdo���W��w6\L��������I��T�8�m����W�A�F2!C��`Fd��CgrCwj.tA�m"���'AO4�|q5R�����?�����W��{���4[�����;��[^�m�aY�����{T�={��B[�Y/n�������9E}o#IU,n����������-3{x�u��;���R��W��+Bt����nM�Y����n��7u��?@�7<5�t�7;t����D�
t-���F����W��5J:Z/l������WRc|����t���R��C�L��t[U�v�=Vg,9��\����T��z^:�%�(��[���~�u@�����|�E�������:��`� ��Il����\,+�o�g���8x] �V)U+VLtJ����fTb�o/P������H�! ���<_>tMy���"����>����	���Y�Oz��X->aL{��B��Ow��2��57���F�.�+�Yp�2p}������J�������q�O7��{Q�Z�#��US��e�Y���(�����7�4���������d�w!�f��u�w3�7�7e�O`:P����:)����j���c�wA\���&���+�Otc�8VQ���q��^e�w�,�k��G�X�����%�P>1`��)������v�v]�Z/����WyB��������t����	`���X���HEw�e�����Ac�gZ�Z��Kh��5���H���8��c�K�+���u�v��d�1	p@j�:�
R��w�L��Wt����+��T�5eY��2O
����,�n�Gf��ju�B�}z{�c�!�&��i�;f;lAi!�e���'���U��N�l������}���w8�!^���z([��&}:����������t��V�g[�/%RIJ��*��c�I�P���������Y���V�^���_�%�W����}������_����Ek|����YU1Z�kS[z����^��1m��Uo��8�I5�Dm���P�fJR!bX���;����s���"��l��h�&����������l�
�6os8���|y����==�����>��t||��
�
�=�O�i�08Q#����2��>xl�����e����=6k��wd�_-��"?,0jo��h��|�����	�>�!�;�*��`�X��s��kbS	����2���G�}�z����G��~@{0e���n`����
b��`��s������U���~��cl`��t�~"3�X5��A���H���-����F������$�����~�]�������C�������h�o�~z�)�|��7��>�s�����p�\��_0���vO�Kdg�o��,{�����~?@������Gw1�L���8s��S��N�������y��o����z������v���VC�
��8�<

�p���
 �Nx��%�T	lN���3��?��}T�p�A�4
���Cz�ih�W�����B���X���iRx��!�0D!6�Fx]����@����"(w��P��k!L
g�
p�3(ku`����`��5�p_�<��a�5z%�+��K���5�/�c0��>�c����c ���������op�����<��|�QF�.��Dl��h��!�8����j����@�����k~7i�09Af'P8����g���?�M@���6yy	�Y�h��l�f�j���u�f�(���~��%�ce~��Rw��2�����
�9I�/N�[f�%��]�����`�xHzoeP���z�s���m�����ETWBc�,0bg�z�5Pt|bM�!�j@�Eu�C� u
�=K�_�f�``���/��2B�
m����sF3l���Z��V��
W�U�������<�������l�/���G�X��1e{b�W!�0]I$�}����ko�yy�[V����R�����v*)�[��y�0��������/��C���6�>�{��Q����J��f34sw]	1����������o���\we�7����(@�B�������UQ#! B �s�s�2+������A�s\�#\��1���yyy<�y�9UUU��������`���8����vF�elZ�[�4�U_}������s��2 gp8�Q��"+��}UUUr8��ail�c��8��q�����r�@�_}������")�q��[������#��}�S�������0�(�x�`��!�;�t�������d���Z��
��h1�ge	���;��w�[����>q��.A0��9W9�(�������c7���%�F��ku�kT��P�5�j������0AQQ*�\ger9�UUU���*��:&-E,<c�Fm+�����������W��p�g�eH�H����Z�����j�cU1UUU�7��g�e�<���<p�#�������s�\�%c�dx:�4��p8�c� �+�M�����o�c���0;/xs9��2����\�,�6YF�0e%���1�@�5�U���j�~����
@b��P�-�����@�Nfi��Ym����y*r^@H���g�<��A\.�9�L���UW����I�\5#�U
�%�V�K�����������8����:�w\�����t�;��92�_���0M6iF1�DB��Sii+@��A� ���UUU}��\��t�i��M�l�8���3�fV�U%PUo��W���xp3����3�r.2���������9Hk3qF��0��4�a���L��������������.\�gs����9G*�+�W����� ���'i�.�,.��4\kQ5EUVV���������� ����ah�ui�C���PUUZ���L�U��q� �-F�{��U4ID�"c(������Pr�s�UUU�����rDpZ�����M�\�kT�E�j)�������y�a0����Q2r�r��EU_��������8p����7%l��bi��5*�U}��U\�5�\I�\���:	���L���sb��TUZ���U��( �&pg(8Q��9UUUUW��������\Q�38�r����C����kZ�UUUU}���	�����&T������(��UU]��}Uj����7(��9�Z-Kf)��2j����j~���j�Z9�$�b3����Q�B�Y�4�SP���U5?|s��<���n*��E���r�(�DPx��TQ_�����HY��Ia�Qil
��EU(,�t������������$u��w:�����]E��
�dQW&W�����B�B��K4�Y���]b���$����DN5R�}�����$�j�qXU�Y�"��T���L�H�L�j����QE��Q�pa<3��EUEUUU~����L���q#�p�m\�.-LM�kUT��U}��@p��N8p�()��g9��UU~���b�L�:���7(��"��fKT��E!SSUD�U��}h���Mhy\5���3V�D���JPUT��Q2Uy��m��y����9����}����N\�G(aQUTTr��UUUW�}���`�b��q�����kV(R�-3��������K���;��W]:�w9A�2�+��}r
bdg8�:m���j��fMD��j	 �)����o���X�S-�,N,4���*��#5Kj���:�T�D���)�*�q�<x��\����\dUTQP����e�+y!����T7SN5�SS�j��d�U_}��Ev8����E������*�\e0�U_�����5�-���F���j���&��(��D�UU��}UDDb�Z���9��-j1�P���J�T��*9��8��s;����Ax��T��UE9s�r���U�}����LX�e�`Z��L:���V�#UMKUT}���x<q�"qTs�s����s�UUU�������7������-Si�
�+kZ�Z�������||��(\\nZ�XqLZ���1KUL�5UU1kZ����|��gg"��QG�A\���U�r����?uLjWX������Z'��S�T&�T��tSU�>�����*g�����S<S.2�+��>p|��PR��"�Aj.\`�UV��OT��t�4�}���2V]j��[��.�TM4L���S�Y���j��~���F1��3x����(�1Q�<�����2�9PxqEQU\�eUUU�~��:aa[:��kT���R��F��NmY�j������8�������r���s��8T�����}kZ���[[W%��4��kZ���i�Z��EV������j�E�5[2�U%Y�55UT��JHl�B�����QE!�289G#��9�A*(*�9_����������"m&��SN"q������l9*��}��
(g(E�W.�r���U�r���}�K1EMfd�kEe�����X�RQ%UkZ�MUW�}�LZB���`���7*r�T�����5UU�kT�-U����)F�y����y������UU}����r�)�����s�"��9UUW}��T������R����.I�ykl�V��UUUUU��)�8����*�������
�s�W����}�NCg\`���X-
�� `q�V��kU\��J������X��-8��t�I�%�:�u��d��*�i�J�����EAC9TA���s�s�D@U_�
SY�Kf�,,+U4P1!�e*b�P�L�UU_o��=����s�t���]��r`vQUU_�7��m%�f�`�Z�����KE�5��2Z��UUW�����k9�Vl�%im+�Z������KT��UUy�9���z;��(����8G�#�p�����#�p����Q����(��(��(�R_���tmQ�.��:�z�Qv������%`�?�-��G8
}l��B%�V�~[�a@��h�4/x��� ����A��)h��P�((-"/od0Th���^'	�K5�T)+�Kp�!��U��+=��}���E���.��!f��K��'�f���"�_@����F������.LP�R�b.�b���{��]�A�o��7RV�iljM�=l�}�V�x��Y���p�A���AB@���+e^��-��@�,�HT=A�Nk9.�/)"�C8�GN��z�_��[���z�����������}��������������o�!9
�Z&���WI�sGC%��6�BU-�x^>{�/�\t��
T�z�Y�W;�=���
����>f��������43Ds���[�:J�0����p\�.{�9�y/���]����L\�Wl��.��P�)6�i�&�a�g�#���gjZ�����:���n���LZ��g��]4N�<����p��T�x�j���rW������������W.�UU��Jub�w]���C~V�����X��S)���yW���Y��f�z�;n��:�+�]ry�������~���U58 v5=��v���jJ�NoI������d�M@�����1��3x�]MH��Q������y��7���z��K�s}�:�u�a��}Q'������*��9s���8D���_J�����`�����Y��xe��5�����m8<F��~��B�v�2��R]���/k���)���0���%wR��yo��lD����e�y]S:n�����S���M
����:�|:�"b�8������������R[��b�(�laq��
v��2���y�y�*����f���3��z�%������*u��������������ES{sj��-/���c������Q�2o�!����{����C������+�>��8����f�b���5�D��)q��R�T�3&�'�}����f���]sn��$�����N�]�n�{q>�at�����6�/�����0%�S������]4����5V}��^�8����UVNYU�.[ �1�}%���F���v�����C"g��c����`�l�v\�7��������������+(+�Nh��D�^^�5�(L�8����/����\��Z��R��up�+c2�h3�_f`����Utr_r���oOL�R���!�=��K�:,��,�]�AJ��=�hV��t���4/o&^�T���1���,�!Qz��O����h��W��]�U�o��G���X�xq.C�7������Tm�]�������?=��<!�-m�"-���m[��{|6��+m����������V������*��CE�"p"x������2";8wOO�U�	0�)����&�s�Bs��hW��oR&���~p��p��s���)��
�=,�����pA!�~�(�s�{��h0F9;R:�g;�0J$`�Aq��b��B?o� �|c��u{�^�Ytcmw��+����p���A���E[m�Y�xJi�k�F��Q����������������z[Ov�GN������]9����RUk:=�CC���=�
�t~���J��p�?�caw��4��3]����0����W�_��{��]��%(��o������n���I�����@ ���6��b�t/���En�k� +�X�wb?E����>X�� �/�W�����h�n���0�A�0�5�B�+�S�Q>�B �����;��mCo���_h�0s
��w	�Z6�]>C�7���.}�>� u���G��um,[�F}�/���nD+�����Z����UcZ��#���
w�\������!��=~z-��|X7������>������f<���@A;�`�>��/�8D�m��kX���j�R3&��64����t��p��k���I@g]ze�p���&}
��E�
ss���o���6��H�Z)��sx�����������h��F�]�>���50~!*��$&��}[��W�.�
��h|$�~h/������QAr}�}����M���`�7��@$��H��m�V���0���
�hq�����}�w~�4zx?��A���D}���B�.��	�BH7�����9p����>��
��9���v�&�'wh����h�'�X�E�_lY�I���`���
,�*�����'/�'xV�4oue�Y�C}3��^T��2�v �Tq*��Y�Y�Y����IX�����k��o����tuG�:��>���F��iF��y�H�6F��iF���#Tj�Q�;��5F���TsF��j����uX��#���Wdm��3�dx�l�b9�+�Q��^}qz�����o�W�(�ljJLH���6������l�Y���Y���#�:�ts`��}��G?-�z����q���CA��J����HH�)Vc0��3+�5F��-"��"�E�E�",",(�c�d�1���u�o����Th�y%W�������l����;�����ql�X�b5b=������}9�}QOuG%_["W��T�G4yGl�;�����v�G�W�7��H���g�dl�i�<Z��*�A�<��=��#�}���o���[l��|������y��z����Q�\�R����L�w������Zp�"�DXD\/�-D;�6F8�G�y�G��3�UGjWXd�fK���Gi�d_�s�sH���[�����h�~Rh��&��.rR-DZ�|�w�=�����8��=Q�<�����ml�V�#:����[�XDZ�<��#�t�!�<Q�x�de����V�#�ExB�f��/J�\�E���[��������Mk��^:��3���oa����v���C�[l����k���`�����bE�{������J�C{��y�e��c������������~N��'��\��=�99�l}�f)zlds�9���y8�__9�l>y���mV��A��P��/��5��d5�������Etr����z.���%]��X1��U��r�s��i���SEY4���z#<nUf��`��8u�\kF��|��y�a'�^�{�=��7����}������z*�s�l��[�����w�+��l�nyWs��8����a5��_z�Y��:pRy���up���3KV���VgQ��q��WR�}=B�{)P��*��C�_{���v��M���1��mC���R�����\`�-=X���9����\��'np�A���w\�(U�u���9B���[���f�z,E�.�p���w2&��{0�����������!B��Hxc{�<"$`��0��	���>�r�Nn�i�X���r��;v�-4!|cb�V��r���;��w�dl�ws4��a�(:���zK��U��1v��s�lt�I�7
��]������{9_M�����:a�����9K
v�/�)�3��W��a�y���)��4�r�xOFOH���������������PT�#�����G��]�H����B����&6)�`%�K�����U
4���y�t�E+�������R����F����yA�Z�7�Y�1�~xo��fI1-��������\B�"����NQE��:������]A5y, F��'���T�������'�=���M�}�Yf�t�H	���ih:�k�N$\9�Z���v�g�q����O{*��s�����a����#�����W;;�5���P|���C��S���r^	�X����
�b�K��7.��HP�2�S{��k��+S��[���n���1Z+4o�M9��^����|8�c,>|�z���f��������&��^w��x.3��i���6Z��K������1�k��6�5��o��1n1I$	$A�D@�@���}������h����KZ���_S
�!�]-��������v��\zp}}���5!(�
�����(4%�)
\93��E'���+�pP(v��lo����E�0n�����!t�����`6��wr�W���n������l6���Lk��M��5b_h�6w��
K�7�� P���������a����ja���������C�Fg�q����%"���P>����4P+�X:�|���N8.��i=������;q�!�7�]�o6q�1���Y��Y����s�}N-~���L�?`K�\-�%�{�d4h�|;��/y����=w-�w���{�s��{���0IJ�?�����b'��%K�
�8p�C�O�01�X��~�F��z�~��:p��t
#��#��4o�;t����r�f���\�5��l��q�K��;�1s��PD��]��hw�`��JE�=���rFAc����Z���P�;
���<�~a���X�����8�k����(���7F�v^���g��s4�� d3�v��a3B/�Q��&G��7�6d3:��!�����%���m>��c��C�V��p�������X*�Xw�4�/C�JJ
RA�p�T[�^�v���}�|�~�!}��}�~���'��X�; ��h���W������7z���@���9��:p����y8c((��!
Y��#��A�?����f��
�>�Z���k���|l4n��`9�r,���(
��b���t����7�P��|��:!;���M�z��(�����$|�!���~H&����N��m7�t���c����������OA�����ic��h]~�,�~/�N��L|�yi�6��":0�`�A`�����w>#F;�1��|��s@V���Qz��G�D"ai� 
1���t
	�*�����\@�Qo�|���E	q�?)��V�'UF+�9��13(��%}�}h��(�GTqG�}�G�}�iF��ih�4���iF��i�Tj�(�F���Tj�Q�9�H�#)]��/��C��u��Z.��u	H�
���o^��.�esh�������%�+2�g]��T{G4l�>�#�F�l�w���#{$qol%�����#������L��U�e�k�W�Q�;��6����tw��8���^�H�d��[#���T=R9��E�`�Z��EX�j�U�ko���=Q�8����Y�tj�qb<��E��/�xD_�=��[9�@W������Y���l,��%e�6��������|�o�����j"���`��m"�����<���Q����I^����yGTuF#�#���n�8��f#���xj�E���n�p��H�UOy2Uf^������G��#�Kdx�z��l����H��^�G9� ��}*���f,�Y�f\#�x�Tb:��F{����������F���F�����{�z�����{F��FH�ql����YuM�@Z��h@_�;k���Ot�J������=����:G�=Q�y���][�T@�]_����"�G���9B�~��Oa��� �����:�&���������J��a4N��GQ)�Vo2����������1�Y����3sfb�y*n%K6��w��a7���T���[j��a�f�0�AI�\���d]��.���w!u"��B��l7U����S�5������/����S������n�����7!����w�E��>��jy�w�����\����7��8����^
�}�n���V��������o�o���~9~�������;����d����n!���2�muGz�C6,�
M�tm�f��
�����g<^K���*�|�'cRjC��<w�-=�gz ��*���/BE�_m��[��FK�)��*�f[�{R��Rm�cxe������N��#<�oPYy��<.���$
���|����A/�G}���C���P(��e�w���s]������I!�������P:�77���w�>?:��Xe�o�=�]��������=��VM
��J��3���id$O6��+�nA�����k�y��������u��z����3�#�J��U=���]�y-J�*�h���A���w�G�h;��x]����

���G�b�*0en�=e���QV�%������^fk��P{���U�1t�m��pm�w��|)���.�vz��=��7�T<2��~����_7���W#�Z~��uf��>�a�����K�<�[U�v*�1D`�{F�gy� �:��p�0PSCB����e�<����.��9���������}r_�YY�e+���:��AZk&����Z�Eb�CWQ��+�^7+���Z1�����fJI�m�C�n������5����{E���`z����@Zu��\���L��e���J�kg��IU�Y|4s�^}�����(��I2=&^�w�,6k��'m����R����=� �#e�A���=0y{�C`�*eqBp����*T�ul�W�!��k�lE,*��.�����g}�9��O9�^����d$$��^���	�����j�SZ��V$��i���j�eU�P$h�J��V����d��<�����~oS
����,/W��(!����4^��9�����Q4K� ���F� ��?
	��`�-�`�A��������������]\�������ap�=����S����D����b�(=s��w�x�w���g���~���<u�(:����m
|�-�G���'W�cVU��/��h��Y�h4�B�%�-@�����3�W	�^Zk4o���1�}�ZbaE���;����I�?���#�`L��B�@��b���X�a������(2�=�0�g���J  �4`����A?2-��D���������J�H��i�
�CSC���h���]`a��mQ��`m�����F��m������=��[�����3�3n���s�d��K�$]�������6xF�5�8j���Ro��2�E���������l�F��<�- ��g}������<�y�q��;I��X-��������MA���	����]�g�����G}"���������:�n�������4_�}��??+����X:������^9kuc�~�>������WtN��gY" ������~K����p��� 8h����{Y_;H�8B� ]h��#���_�R��R�u
u�l���A�[��?5��~��Wo����6B�6oA���������_����
�v�� �����������P��r�&`}�(��i��jc@��41�� B
�z�|t:G��n1��#����w��D��������	e��\��Z7V��`r��!5%��a��3s}�x��a�{��7B=����xn��W�X��>��y����=�m�c��s��b��-�-��~����`����> 1�P��5hdS�����@�X\�2'�49iB|L
��=Z������������(
f��3��`��B��`�-���f�3g8�����F�Vw�`�}%>�n$�R5D�dY���Y�Y�fJ�����G4{����=����4�#H�4�#�F��4�#H�4�#Tj�Q��(��Tj�Q�8G��Q�o|����P.���`X-,��K�j5�x���y|�{�|�eJ�	Y�^���G , ,���m��(��j����F
OG9R���\�QxG(�Q�v�y�D|����[l�y����>BN
��~��I$���Q�����uv����s�eF�G���y���U�:�L����Q�Q���TmeYQ�V�ue�����uH��^�����/�X��@]]�6P.�YIy�mFw��/9�R��H�P�����M^��qG�K��*�Z�_D~@_pP�V�"=R:�������<#����7������=^����jKg��UW��+�#�K����R���Q�Q�Toe"^2P/k�����4�/�E���WUVUM�U�;#��g��`��,P��/��2
�?���4}o��9�����_���BxX!����y;A����*��d��h�8�
����Zqv�;oD.� q��a�����N���������g0���v`��,41,H9�eq��Cw��{��X=��
�+�5[g���_�Rc�k����^%�[�Q`�v��f�?Y�;�]���}�����9�/��g\���h?���Y��shS2�������R�{�>�j����G4��+���]�����������nf�y��}C�4���^��%dj*@r���umK'�`��RLk�^y���D6���N�j������Nz���H�1�������VT~LT���cY�CH�9�S��r������L��l=�jgvBd����f<y~L�n��NE�C`i�yl���rvK����.�5
����x���Cp4+F��'AA�k[[���u��� ���,y��=���x=��+f��Nk��]��)V�
�eVV���Y0�V:�zUX���VV��I`��|�1Dr�Re�&�(�l[Y�N��u�C������������<(�3����>X�Bc��17�e����nz���E%�]�IN=�=��=���YWf�S6��\�s��(t���p��/-�/+*��g�h��n"��s�d���qDJ���n�}����z`���=���d�N�M���O\�L���������r��|�)�m��\++�������������m���=y�l6& S�o�"�V��jh\���c�����F����h�mP�
h�,QX3yr��8a�!b4�Qs�dY��El�\����k;8z��-���9ZC���fx�;w��v/"FABc��f��}G�np�����F�"���MC|U�"%E�y�q4���]�sv��o�%�[�f��iE���L==|F����c}Bori�s�Aj�;��%�u��fX#�IW0XA���U7��t���)n;�p����������PP�]�[�w��������1$u��zn�����ju�68������-�1����{�o���n������{Uk���Q���
AA�B
v���[m���5��_T@������l�k���$$:�����oG�����95P���4�M�58���kvT����C���H �(o.��-p��:��sB�B��A3PDF�C,��&00�V���@X�~�<.�����]p��QgBbS���@	�a�4]�5��368��A��E��t�E��������5�N���k�w�7�^�u
^(�-�� �"|m[�{0�����{�{�w�gK5l�k�8�����>�fd�~��z�_jbf\��
c�(�J�0�MUe�0����x�����s~S��;��:��/�vN
��p�e�2HL������	N�4[��s0�l����z/�x��v�E�*i�@C�X�*�����d�8t���������[��������]bHD�v�P�����q�(B��[�|��r�O�)_��`b����%(���?�i<���
���^�[u0}HZ��e�D���y���0Y����P���h�7�E�@�b��`�A�D���z�B���������ck����my��$�rh��5��^��1�t��\���id�"_�hDo�w� �
�w�9F�`���7�D.�0M�UM�9��M9���a������o��,�yZgxl�	+R�
�+kV��t���|3�}�?~��v7����o9�//%���Q���s��8�aY���Z�J=&�C	�@E&o��q/���4��@5��	�b^��$����L��D8��sl�c�B7�.�Cxa��de@������+���h�=>�������3��LH:} $�3������zn��u���]�e���{����f�A��W����:��"����{���*$��B��@B	��?2
�u+�l,��]�������T1�~(�����G��&|����I�aSC3z6K��3*�����N��@�;�
���H�4L|4@�_�D �e�����0�<�!�l��O�D���W7&�h�#�^������'���)R��~��3������

�
JR��@v�t�G���~��o�,���<�Fh������T�|�y�^��6���+|R��Q�Q��tsG�>Q�{G*>#��#H�4�#H�4�#H�4�#H�4�Q�5F��F���Tj�Q�F��=J�FTR�������q�>��.	JG1Uy��uF���Ty��i����w�"��B���Q���{�^�����v�k^<�=R=(���)���/tn��s���w���,���I���U�*��G�=��������������G!S�9G�sG�W:��o>-�]���z����/� se*�G�����V�ou���R:�|�S0��������{k���y�^����|��#�#���D�*���{��r�h�/�9��������T�D�eFeUsF���h���x�>z���4����+,��^����%���z�O�17�c�����>���������o>����Cv�$�rG.���v������w�-���S����e�rd+�~������_=8h^��`��Q���nxB��+��c��P��a�|��s�v��:���=&V�L^���r�eN�++�z�o_F��1o���_�_���G���~j>�����9��A�����H��kz���m]Zq���^��igm���jf���Rtr�gf*���,|�s��I���2��>l������m��um�]:���k6�A���H}z���vN�����cY����^����������l��;�u���
�yy������|���a���Z,P������L�m��2zR����2�����r1�)�wb�0@�c.Fa�_��b��t��A8b��|��#�4�hg�Y�(���4��dP4�q|4wH���n��l��#��[����Y���5P��� �����<s1��f������>�9R7u{��|3��������{::���=�]���o�}�c�=���\�fKR��B���t+y�{�n'���g��s.���O11�$�GK�6tA����x��Pr�}2�rx1�����E�/��]t����r��A��A���V*�F�m�	]��z�����I�;z>Z�{&=�����d���:�E��GI�)�Pu��\�(�[��n���v'T����V�� �������� �x#���zp�~��OM�����4�Y�g?���OR}��������3�A4	�v�)�`���{��y�fL�
^t��C�������s�l�
�[��$u���T��-�
9�GU�OWk[��a�N,��(���6&K�����
���V;���*�a����x(4A�I	�>�>Y���ZO�y�S{���)��j%oj�j��wvR����d����3N,���V��A#�������:�xN{������@U��g~�����av�u�f���n��t�9F
�!������������]�����������,�|����4�g�1�o$WycH�������Cx?n���x
�E�Z���5��[+��m��F�z�Qm����o-^��m����Z�����[Y����L$V�"7[M�}��
����i�v1(�����p���^�o��z�T����XT�A����������j8Q�Y"S$����4kL]��(2��:1����XaN�R�aI�2��7�4w�����l�c�au"��&7�kS|����0��Z����Q;�#b`���($�� u��C�C��0`{��@%�W�!�r0��H�#��q����S�_����4v��4�:Cslu�v��z3L�au�IC�?�w��"�W�����m^i�7�en�oa�1����;��&n��n@���O�����$�
�E�Z}-zB��^}xp��w��`�=<�<�=���������<9��\�����0�����[�)�� ~�@�(���@�����M�R(�o���4��h$ �J7��do�S���q��K�F�M8���W\����L}�1^�<�h��>
X�.��rL����,�����Fg������R���|j�o����F��t@$1��ICY.���H�=hOP4}��P]�~/�(���(a�����P48v���!����������Y�w�����e�!���e�i��B��hJ0����h�2)���F���%��! �?�D�>���w2`�_�eB�04;	��#��k��6CXg	��uV&��p D=� ��N��]�@�3�h
d����l�F_�c� �B��fh0�@����� �P?wp�q[�!��-	h��T\h�E8����~�A��"w.Y���n�z�%T���/��������<������X�y�;�+`"�� �����������}F�@�`�?@C�hd����@?�]���F���B����������
�����>����������*����d��A 6$_�yo���z5h��'�b���������?K�pg�w��p�No��1>��������'��
	��~���"-�}C��]� C=�+�W���$��0P�m���?@D��2l�)�k]������	����9�5���Gk�w�=�8��P���������GTz��;Q�����T{G�iF��iF��iFQ�iF��5F���Te�Tj�Q�4��_|�z!*��}�0���k��qG�G�WG��f%�H���|E���!�(��j����,������G�|�e�Y�Y�L��_(��(�G3��������~����YfTVb��4zE�/}P���������b?	�W���{��<�Ty{�M_���L��k����A�_����5��Q�Q��Z{B��v����R=R:G�UY��oTzG(��V�w�m{���z��7�|��H�����/tu����>Q��^�����|��J�t�Q^l�z��7G��y�[j�������|��t�d�|�K���>Q�{���|�������ys����������<���������^�d�y���������S[��w��}���r��+� ������������aYF�m��)�s���������.+�~lGU��s45�g������gU�t���}�W����������5�����oa�U�]�rJ�V��y��=J ��(��A����M��-�xB�����"�n�OI���m�uz�.�4���{�,5�����A8�P�qU��W�v��\�5�#�d)vc#����w���=����
�9D\8J�mo^T������+bBD�P�������%p4�LA
�3����br.]dF��3�x�X����6a���&d���D�\��7w�<�nl�+1�[����e�c��QA�(���������yc3,�&Gf����O��h���|%}w7/o �h��}��^���b
b��2�X�B�en�< ����9|���n�]V��� ��|w�A/��1Zc}�\�o0e{��0��Q���c�v���=�6|�	e�t��& Y���Tcrlp��m���[�m9vE?t���u}�w�]W�Y�n�������oi�����D�����r��b�Qf�e���eM���L��q����2�����DT���Y������w��je�[U�Ns��[�����w����NKgg!����m9�VG��<-�������`��mJM�����V�Ssx#:
���7Bm
������n��2���G]�����]����U�v�D�
9��F�{8��_P7zHt}w�)���j$�$�Hd70�H`�9�&�6���X<�w
��Aww���5�����-',E�3m%B�SU�ca1
���$���j$q�=��t�T�����Z��<�R������.�W8C5�k�Ac=�ew�e�|on;�A^� ��}0<����f�w���o�9�e�5�c�`���`�Z/l�����sO�Z{�+.Z7�����}�����-�����;�9*R2�Nh�^�������uP�GP���������a ��d��6�X�fX�Go>t�[Xk^����������//d��	���y�rjz	e�y�\�ky�y!\���-��X�F@�Z�F(�_��e|��������V�2Qk��ky{�������I���SU��b$�5�AuZ�����A`�V"��MkN�{���*�h8q��/��y��niu���y�;>�Q��S}�+Z�d�i���y��pn\4,0u��h9X�'�'i\p
�`��)@�F�`�#r���B��o��B^�� �s�|5��
:Yx���
��c����$��<�zw������O���6s�]��s[�6�l�e�4]���4Y�}��.���a���.�t�e�fh�oe�~������
��K_
v��&LA�7��YE�}��d
�w}�6�CDx�)��*��v������>�[�}~x��y�f��1��_�;>�
��0r3&j]����S����2%��� ��C������0�&�;�����A�0L�Z�W�n5���������K��cb_k�@k�=�0�m��:A���������.��l�����p�"mH�q������ ����F`?V�E�X	&��O�b�����0e�0����T>B��PcO7~�CJ�U��xw}n������l�4q���gx�h�+��0�H z~�!��������64;�D��h��Gw�%���4X7����@{`��c��e��>�~\~CM��f_�0�0?�p`���P]yga3C��"`�A<1�(�d_m��H$"��Z,f}�1���2
�
����d�fg!������7>�����`���J[�w>��h�`��<P��4A�jF3����Y��%84
gq�1�!�)����/�_��!j+BSo���
�3%>��G@���g�$��E�����w���>��jp���x�����f�\��OK��h4h��6a�����6Yv�g5�h�_�Ap���w��W�=�2��Fw�3�Q���+V����G�9��(�G(�#�>#�4�#�F��iGtiFQ�iF��5F��Q�5F���Q�5F���#H�F_<��Y�M��D|�|@�/�]"����;��[����w���H��J���=��W>��[N|�e��+�I�#��x��.�h�����<����&�'��D�H�Jqy�TzG�������p�����W=}���T�I��G���U��7G�|��V��{7g�����/�E��D4z�_x\��cg�{��e�I:�/�GH����#Tmu���]�����z6�n�j���<��x���]Z��^}v=R=R:�S��}��~�����D5��~KU����o�$:�������;�f�=ot�D8A�^�	��u�-����=x�����K8H�8�Rn�l����=� ������j�l��uCju��T�S�%tXL���7�
�p�t��+
����y`���d���p^�23yk&��WX������3F
��h��eHy�oyr-R��MT��o-�}��,�=�z
�Y�cH���b��%��3r�6�yo;�G�:��T��V���@����6��f�-�Cy�$
��:!����iU>$p�SG���'�b���'��'x�=T�{�^��*�5��t0���I�@I������EQ��������;l�a8��1g��=d-��s-�&���k���bq���O*"�i@������9�||9Y3�����E��B�P�����n�j��1��rB(+Y�erm�lk�-�_��@��(0j���9K���s�]����������/v�i��A\��5�����^��oA����n�����;�9+\t��izyr�u�81�Q�r������f��bf<��:�9�G�=��������`���������F��e�A��<q'��2
��Hz���Su���o��t���4|Z3�:�[��~���$��0�f��X�}��
n�������\G
�9|���Z;�vD4=R�)j�eV�����P������;�1C�{�p��E���������0������M��u���m�R
[���-\�'����Hk�90�Z1v)"�(��4I�5��qE�}���w iG�����x+!l�@H�Q0x�?�?9@��[���^:����|��E[��r�Y&�s������L�4mnn�-^~o2�!�����{�!o�hc9�*�m�`�7�*����!8km�c������L��[�f���w��b�IM��i.:�`3���q)���.	&��{������-��������h�7k%��=���D�G��v����Y����!�*��.e1��:,e#���v;�$:�K �-YQ]��1�;�9�a�����LFH�=���{�fv��/�^k���l�3�h�sxT��BB@���Z�Z�+}W�Z�E��j�����1[J����k{Xe�cU^�_������*��Pmm�"�X����"�,*R�|�����/Yd�Y����3
��n|��Y�h���$m�h���#�C��[�w��F���>4�t'~0�)C�Pt�Q�-&}Pl������e���0!��0����>�����{��h���t!����q
�������h"��/�[3@����@a���A$�`�����U�|�=���B.�w�O�h�4�@�	�KM�L�wF�C0R�x�M��iH"�)�~�<�cJX(t���Q�f\,H7��
�4"!}���������xb�`}>�'��C7 Y������|����2���g>_7`��Z(P������t\�������_L/�'�L�1��z[����L���-�-%�p/�J�v���7��\�1�*�4-���>�����O�Y�Q�63����] ��0h�b�D����4e(�m����Li�?�g����|�)�Q�`"D��K>A������J���O��Z��`�.����[�7��( ���F
+�0$�M����o3�7s����y_y��[w����xd7��|0�(1H8W_��`eh�
;��s �9d�#��
�I���7D[��g�����0�����(j��]'�+s����A6�������8��X�b������4�yhpMb������tuBu]qc�>�j���%��!f�f���������}�0g(�����+�M%���J���7@[����!&]+7B��)����?���pMH��������r
�x�n
I�L�1$�SXD����eg�/���v@�\��{�P��@>�J�3=��T�2�l*�|��8�z8��=��4�h��#H�F��iF��F��iF��j�Q�5Gj�Q�6�Tj�Q�9�H�<��'Z�*�o
�������W|���7F��Z����]��^=�RuTt�]Q�8Gm���h@��az5z���6����� ��H�Q��k���+��P�|��;��O@E��S�o�-����^F{���tl����B	���Q�^�����c�S�����l�h��;"���j��=�<�������MY.a����P}�a���(�����7�~d���U{�=��N���;#�|�g>=��F��uj�_b�Tl�(��W�������J���:P��#�uG7���������6_����w(��g�j���o���xy;�5nS��_p�)n���&�b�>
|NPL�w������<{���n�����2��Y8�$����]��\jZ����+Ff�(Eb�(t��3pYm����7z����1�2��x�{^L����wvK��s�������1�{��Y<��8��l������-@��u�t����7��t�a�[�"��K�M$���I���f!3�)��D���:��,g@C��X�(�Q������u�u0!�*G8j�^���&�.j���BBy{��c�A�f�ndC7yp���m�|(�K���='Te�(�yKV���h
F�$#]��5��_{}�G=���A������� �g���������T��OZ<�%[r��<��^���y�/���p�lgh��3h����Y�m{�S�������B
��K2�snH�n1�n���}�������K%��:-�t{ngp���F��%����v�UBk���Z�<�6+6g��1��<��2��R���-��6]��7a���t��z����eY5��
���Ws��Ct��<-�����X��xkk�gB5�N����r�O������W��ov%��7b����e
���E*^d�s�h�:����:���h�
=z�]C�d�kbI�Lj�s������i��b���n�`�&k�vI��Y=\��u�}pr�z���������gN#�����|P�y�����ad��.��,�C����5|��,�&LR�`Rj����w�u.�f�rB��#�������Y&
4���s�{D��F����0E�9~�l��J3��u�X��	8�h��n4)���i��$_	�F�+#����w0#\.��"����S"
��5��x�8Q��k���e�@��������,�h�����0�B�{�-D�ssq��� ������^.�x��n�i[=U��+`����X��ss7,���.T�]��Uu2��0�����=W��]���lkh��������xME�B��}�;��'}C9���t)�{e��f��+�U{Q�s$>;�����*�-���6��^0H �>D�j(���m_u�q6��D�����z����T`�m�V�Z��cJ��-���}kV�c
���QEZ��Y'�������^�C�>a	���tPWe�_�)�iU69�w�{4[m�;�N���M���SA]`_ �|���a3D����o�d� :@�8Q-���F���R��%�D�'p%�([��DZt	�&�h6���2��(`���s�Ev���s�	|��#(�����n���T.�d�m��AhXG�/gr���h���&6�������'rt�����"�����
\��asq|���`��Fk��f����t���&6xy�:+�~v�~�@���'����A�
���>`j��
�w/���e�����P�gs�.}�auF�5��l0h�-��L�����1g|�p�yA�a�����Yx.��~_]h?����$()uj�ks�G����$
�8�h���Rw�}LA������L�A\���g���P����3+
��~�ED��Y�|.��1i�~V��< �%7�'��t?>�~���
�8�N��P���8�hH0n}>�
+d%*b�_�2����������v������.w�Y'DP���P���4�}�j`�8��
UZ	�Z���y���/�L��	E��Z����2��f����I �����e���p
>c��
�c����	��j�}��4]/�'7�7��\���;~=l��E��u���3�1_n�!I��3�W�_�C�6|[i��	"��
��F��B!��^�k�$k�z���3�,Rj���_;��S��Z���2����@Z7��Xd���|����ph��m����~[m��'[5�~���M"��+�z:��=����>����>#��Q�;Q�9F��i��iF��i���Tj��j�Q�6�Tj�Q�9�H�<��:���7q���U���F��=�n.�Z�v�v[�
UU{������_@���d�A�O�f����r��Tr��8G�j�7�:�������j�h�eY��#�sF����-ok�;����J����uG�_x�
����{1�5Z�����[�����;#���|�s��6�[�:�4��w�H��������V��>��b��_h>�v���:�������%8�8W	t��^�ts������������w���-��2��� ���>���{��@���Gr�e(����=�%u�y�����xU�j��-��������Vu9����-��q��zi�WR�����e���:�,�lC��}����j��,	����&�?yOgz ���}Vmz7�R�N���}s1c� Z����Ky#�w�[��.�}���wj�-c���d�� �g,��d�o�����Z�y�������"��56�]�C�[�0Q,�����Bw���4�`�<2���u�8z���4=4�q���;r/r]�������,>���6+�K�U%q���u�5��64m�l����kQ�����+]\�4�7S"����)�����x��;�
O�Q�r`�/NN��a�Kw�\������W����g��c^�<7����O���k��7������X���3r%�S�R��V.|�^+�1���Z�\�&<r�g��`�6:�l����l?3�������:��C�����;{�Z��������I������L
]���q�*��K�0A�2(��/)���!��4����vi����~�E�������2���Utq�j�-UEv��!7�sju���l��vST�!O(�,�A�����p���wNJ�4._H���]�E��L�����v��������9U-��.}��,]���/f���U��@f��$���a����'���=������c����;��D"���&���T��5I��k�m��Ry8�$���&���#+�������G{n��M�m��&|�=��Bw����_�<�pZrl/�m}1y,��v���t�z��F����$s����*��cA����S���&��_�����~���t���#{����G���=VD�3���L[o�4�s���Q�	��~4m:U�T�PoA&/��R��A
�!l����K��pWS�8?6\������g�5���A!��C���A9�f3���P<���6�f�{���}�k�Db�����m}(�j���Yj�j$6�-��[z����f15F��|��0U[��U�1�����{^S������&����|/�=c7����A���o��C�*������:8d�1��� �F��"hz�#5�$�o�l��b$��X�����`i�/�Ox�����06*�_��-�>���� ��q|��81�u<m ��`[ �Dd02Ylf������T���e�e�3�cC�A����7� ��V��F7��6�����%�a�����Dc~0�����_�d�N��>���	��	
}�t�(@wN�j�=��)plg�o ��6��<��l�?1�����DO�Z2�E�+y/�p��{P"5�'�5����b�h`�����7��m_c`��4��	���Xc>Z�
C!, �	�K���f<qw@O1>� ��$H��=`J�>�
!�^	>�$4�w�^�.$�j�S����O��
U��&~K�t��$Rk_!B��R]$A�`�_���D���`R
�@��p��h`9�(�{�~Ks�~�M�v��[	�	7u
�0"�3�3m��"�����b��f207A���g��uC�0�RQ��sd��*i�AAM����&�5%����F���	�\4o���������hn(N ����-��CX`$�Pd��h@%���9C���nh@g��?]����m�SV��h��`��SB���M������m�0A���S �O���7�V���p �h@�k����A}E��� ����#��`�$�&���(,W���5���3��8�,����F�B�B���.l�/�D�|ef<�_���(�\��/�^����9G(��H��Q�;Q�9F��i��iF��i���Tj��j�Q�6�Tj�Q�9F��<���G�|5����k�"�_�H�"��5g7k6�m�[w������t�����[���{���]��UU�G(�h�L��<�<�o���W�����<��9�n���������D�Q��r�G4sG�r������aj�-�����<q^,V��[���UxF#�8�g�����-��ue��s��!�Q�4��_@�����|h�+���(/�^"�_v�~����AA�5��@������u�Y�7�y�����\���>��?����@/�@��G�Q�L��[3m�f��3O�"����.���^Uy���*�����"L��RW%��j)f,�U�����C�����=J�!�~����z<�+3)b��2`��%`�G�+����5�l���RW���x�:P�9I]��?�{�����������Q�C���C?e��;Q��3��%t>����?����b�����Q���J��z,��G���Q������z*�j8E?�?�%R���<I/4
;Q�C�[����G�Q����?������eQ����U��*?����(��v�
;Q���Q��?�G�Q��������)���}��6���*<QW�2�DbV�R����V�nF�mF���Q���G�FQ�Q�x��Q�Z;QV�dU(��YFQ�(�G���U(��������a�]��h����Q�h�=�_��������EJ,��XB�+	T�+%T6����Z�(����6P���Ty���T����G�;Q�+��z>�?��%T����5$�mF��G�VQ�mG�;Q��K��v��R_�y�j7��h�}�z������J�����|�e+j2��mQ�r%"���~�S(��T��������Q�Z0��Z>�>"���G�IuI~�?:6�TmG�*�]���J.�z�a���G���R_���5G��W�=��������j��?�%�}�tE�Q���)?uTx���Qv��FQ�Q���Q�����h��+����+�eY�Y�f3&/��Y6��s��;�+��sr��a%B���W@,D?�FR_�Q�*j�����%�G#j��Q�]�T�Q����������Q[�y�z2��Tv�(�*0d2���G�J�U_m�y�%�7������Gr�*J.h�R_�.�N(�R_��4~����������Ub����+�QN���6�_�G�F"�Q���0e%��������QmG������$sG~Q.��M���~Ty+�;Q��	_�I}�����xJ��FT��FQ���ySz�����U�^����������?�/������J������=�����#���\s ;�����Kv
�������2������
;.hKt�<��HJn�2������,� �$	�B!	7G$8�B�@'�Vk�|H82�<�.��t�h�H����=;����4�����:�����^���AA;� �egg��E���E���zz�����U�\�w/ �n���oL�����'��5����Lf����R��)C}���Uy�k�B� ��Q>�?X,z2���RYEYF�}(�7�$��*�]���E���������G�/��}��*�[��~Tn?�^Qe.*K�Iy���qG�G�2��F��7�q�����������������2��}*<�[Q�%���2���G4vP��������`���~�9U^Ib��2*�_eGz?�����Q���E_�_m%\Q���E����T}�K���Q���j5GU�Q�G����@��K����RI'��/��`"P�)�
��QmE[������e�}�v��J���(�?�1AY&SY4��]�w�����R�������������bf>�m.�}���st����AT(th
�=�
�l�cKe�D����[MSE����	j�z:P��2�W[k
U[-+6�Kf����T�UUZ�
6�Z[	M����cjl���@h��b�Zc��-�fs��m����Z���[wqWRf���m����w������N|��u�dP��m�}�������kh�D���lp�)���
G������S���n��ru���
v5�j]���7w:��U>����av1Pk����W�<����Y�Z�:��U���[N�Mj��2d��r�����;�p����][R��]�������,�w41�Uu��bj�t������,��Vk]��V���wc�����]����]F�l[W\�M�]�Plk7m]U��r�u:g����K���I3m���SZn�S����wwH��"���v��H]��m���r��kE;evZ���m����5�j���������KCa�V�����L��3TV����Z�wh�pv�]7%��VX����@<z�%�Y"f+l��*��MbY�QF���W�>k1T�j�t������z��z�=�q^��[��9�\��M���������{����Y�%f5�m��L���P(��*��]
((�
t:(:���v[�%V�0r.�de�
�P[7�	Q��*Ke�[���P6&�B���m�j�^@�@��U�����b`Z���Q��N��e��]� t��������[f����J�f�Z�T�2
�&�>�@�h����vn7��������=�K��m�u�v����iWg�G��]��z���m��I2�4����R��}P3O���[��P���� Eve���-�������S��m6�bB�,{��f��P��-em��U�U��m'�:�G����3�5��x���Tu�����v��"������z���uX/|��wn�6fe%M��DJ���
���we��',U�����\����]�g������K:�OO�mZf�m��Y�(��3iDJ�e-mU�c���
����{ot�Fy�qr;�w+�^�����g8�c�U��}5�JimUT�U+U����l�R�k[f�=
*���]��������]��al�[���{\������M �&��[M��V ����P�R��
��t�C��/i��L�v{�_>|������������n��:� "@i�IR!S����EF�Q���A��j��&�UD
���h�
�@��M@��)%E$h������L=���"H�h��	���D�h�'�)��Fj=�O"xS����B���Q�?��Q��$D'��p�xb�� �0U8(�D/��B��7�5?�����.�������r-V��S>�3���C7K�m-�]c&�7W1�]����#���������Q��b�r�
8"y~��'�n�9D�����*���:�&^���cFl��uLyqjh��KW4V�^��"Ix�
�S�0�:9PL����dN��vrX���$�K��06_!BI������H(�
1R��^�A(*�,����"$T��
�U�����F���'����*�b�O�������3�����gwy�[�%���J��4D������ Nm���&F�=H|�p��[����f���vCur��
c�',�sy��a{`8���\:�����;�^5�Sz�`�$���8k6=y6sgJ��� ��%�D1Fc��
�DdW�9���� �!�"H#�����A�y�]@s3��a8@�4����S�[t��F	E	Wwip�#�a�&|9�,OT�P����9q�����9��q�����v�z�pY�2k����\
���AE�y��wNo2o�"0��0F�SH������%�^��bV�y�u�.n�BfP����$�8a���&yN���g���:�C�h��1��iyqfWBKk��Dr��on+��_�{tQ*T�;4�V�B�n��\�kT3��u�����:���5z�q�GB��%�4���{���x��
Z�EA��-�8R����O��L�@�-?x�������-��,�V�S����J]}F���X��F���:�!�;]���x����0��0����[$�qpH���q���b�\kJEe�h[��dG�p��f
:nry�	t��w7 �4��C0{��D�*=� ap�QK���f!qC��S����P�3R�:��S��p
����"�`��dD�	��q1�G�LC1\E�T=ps�����t����\���}0ALL@J�:��5�BE����Y0D�3�0.������}�qCQC�K�f!q{��A���	�55;;5sp/4�!��"9��Hj b�c�����$�j �M�3q*.�2l���
A�SQ���q7p1*."z=��.��0�@}�W0B����-@$M@��9����8�
n�	q^��Q�`���?�~�@���H(���~U�����R��s�v���-�G���^��f8�� (��ym�'���K��;�sX��z		$ ��H$�B	$�E>��'�*�-����O�P�'?wTT�@PV��/���T����?\��?��8�M���O�B��(�UCg��_���.yW=�"��k�C����;S��:�%>y%1B�uR�N� i�'!�X
X�A��!*�!S���L���r��L�f/S��e����bq�|n�C�b���|��3���]��HIT#�WQj���@���R�h��J�Z�N�!V�x��i���)���M��W��<G�;}���$�p��*!��j�C>�YB��1���}��<w=����q����\��_pwx��\�
����j�2N(�t�������1��h�X��:��n�^HaS5�o�I��SVE_�J5���c�o���Gm�����R�S
��*a�O�5�!��Up�6�w8����}I��a����}�������I&A��K�.sf\����B($6�������K�����n�'�}�f-�g<��������e@�D���7}����c�bS3�
Z� ��m�|�6B��Xk�0/��$V0���5�iY�'1��j�kKx[�e�F���a�M��C�`o�oFz;��o�9��dgU)���Ed��U����0���[��PrrX���T|��#+���`"�p*���5�>�����sb���(��8C��j���L��T
U�������t)b�T�0�n=8��'�kGg���tk��y"�H�NMy�j'�+$z�N�Y��px����k���x^/^
=7I��C�-;���x��
�[mYv�m=�7����.�V����o������������*���2	�!AcL$�iW�X�"R�%7q��4�}r
 X���

��l#��+���'�mH7Ks�;Uc)X$q$������Z�T�xD4?&!Q��z���4� ��WFX�����HN:��������6�l�V�%#���5���ZPv[MR �c���(V�%\�$�J�@�d#hh�@?Q�
,��L$^�oj}��k���j�M��i��-���^��� a:�)����jtZi��t��l&L"	s��/���x���F
��WI��N�)�3PK�QD��D�Z����S�l�F��7d�U*\$F-�)���U�������+0R4��5=�%am6b+��,�F�7�a �ub8E�b�o*�/�vF�)R�Hl��h�6SKR���#�M��jS+QC�vAe
�E4|pNX�u�
K��$a�2ln�$�j`n���N���J���.Z���Yk���Z��V4|�����3�YH����(l�~o[Z���r"���t	�q���I1)m26!�E38�`�1���J���a������7�����s���0T�n�$_��AT�Q�V��]J�1a���/q��h����tm���e�C*��\g��u��G'<�n�vJ�ES&s-�Ig�K��TJ���������R D������se�1���x�V��Z!��R��Q��_�(��KI��i�T�
����0��IS����l�*PQ���bFF*����!n
����[9 �T%��P�V@d)��u6D-pD�2�o���DRk,�x`o�F:\U��`� `D@��u��J�D>��������(i�Z�*�7��G�
��pj���v3�����V�`�
�B��E���eY�k�A�[�E0�I�K�)H�]r	��0�@)2�B�U"&@������y6l��23r#0EeF �Y!�6���Eq������*1F�W�f3Xp>�r:�	9��(��B<m��L�`L�Y��	QA>���E"�&���hf|[(d�[)�&�2i��#&u����&'W�T�W�Z�cb��v�_���>2�y:���,3!��#j4[���n��jGw5�{M���hy8�����������p����N��Z��{��f02YS���;�w����������.PYH�3r�d���������:L����ab�m��'��di#wf�����7���G&�1�kp)%�)Sc������B ��3��vB�^���lUJ��]��7����n���������K�Td�PB]S��:.�������H�de�2'�a�A3�k��42[I<�0��b/$�1�F�B��s��1�0�LC�b
������eS!�
)��P�5p�Di6��j������Q�� @����;.�n�:��B�3��7��ki�j�#���W�i�#��Z�������
�9k����'d/.������L�����<1�|�7q�yJs �ln�ud���1"{�5���CcvEF����*l�Va���/\�6���p�$
���������33~�Q�u#�)�	�8�l4�1�*����o���^��h�{��v7��G��f��n����f�Q��/����$�F=�"�K����`��lRl�uw{���-���UezZ��f����9�5��D����W����x��D+�m�=p�����`��Cbo�@����M�iD\N���"N���Mv8�\�z�������{�c
[[�\����nM#T���'���*�O3r�e
�p,^I��.QG{<
���������X�t�W�`Ux!��^j�
��1Nw6�d�1�b�c^4��/_RaP�lWc��x�����+���,���H7�t`�R�6�����k�P���R��\z����|-����%M(����
�
���]H�7��v���`��=YF{Z-W���������{y\a"wy�����Q,Ml��
i&(q�x�A�Q�O�>����z��3G��<�vb��a��)]/$w*���M����k��q5�<�t�n�_f=�`?dVA'Wv�$��:������Nbm����ar�Ox�3;���wnjKU����]yt��8|�8���Kj�Gj�����s��7zD�gN�aZ�t���Q��$��
M�\����*;W���3�Q��1�2om���t
��<�2#�����)��M����S����*�ne�e5��U,E������4�V[�������m%�����CY��=��,�E���(����:3�9I�'�1�06{=����2C4��/;��]������������}���S��E�����J�q���;t�a�+P�9�����}�9��2��F�f��
R�	�V-��$p�0���3$N��C��X�P����������K���b}����A!��x*H�ws*����#�����]>��4`�nj3
r��O�j6Z��f���]�Zq��L�j�Ay��r�*�����q-a��e���g&�
M7��qbBP�����)��l��b����V��\�W�a�������2��r��)��+��!�9����lk���+���M9�]���Lv��P����cvp���9������T���W�.n��/����gU5`����=�
�X]��gM&L�T���{z�;�3x�,u)�}v��4�p�7=����J-G��|sc;]���fL6HiU�&��{GnY=�u����B���mn	��{����W����%�P2}�J��tzj���� l�qE����7o��'�T��tf�Z��fN��<�=0�	�_�����
����g��Z�����e����&*l�����y�����q�w�F�����g${n�n����v�(]^����U��$h�I��}�&��zA�q����]��7z��T�����'x?_�I���wy��1I��
��	8S�f�*`��NU�~pj�g���VT%��k,c��2�mY0��.�
��������
���w�gl�p�9���_��#{x�U�h��N�N�<B�mk$�;F>p�'�V�������q���c[L��o<M���"D-K+9���m
�c��A��#�������A�^����q!��%�[�6�U���ge=~<���{J��v
��[����<�/kF��\"��s�������h&TJ�i��:�d#���L���i��zYJ�Z����4��X3Of�(���W���e-��,���Se��w��I�C���AI���,��L��TT��A����|D�������II���T�'0-7��
wE�}�VOl9����	+�ev���{���<�@�-�M.>����A|��xt��`�0�:������Q�h�FP�t��M�Cc���W[��A%��v�N��j���=�,���
�[�V���`;�
Z8�<�<y�fei�s1�$V����Y���PX�����.}w��(rnrt�����d	5�
���6U��
�����f"t��P��4��rx����U�����%�*Ny�Y��%M&`z��.��!���k�ROm���];e��N���	(R���u{{����t����n�*�T��0j�g3^�.{��[5W���M��Uu���V��o��r��q�y��8���(�����#'W��c��$5������Z����`���K���Awc�3<���F��%	k�F�o$��f3a*
���\m�����
8�b�,�9�.S��l���f3�swm�r&��r�T�0������5�hs�m�E�v�S�6Q��U#����+��N�}��J��s*�b��2�?u������9{���P^��xgq0c���Ya&������_)eFHO�lk���,�MK'���41 ��#���9�UY�m���bg���$�o��]�r�u��<���qL;xp�K�����N�
�-����097NCp��2/����:��A�0c����
��b�9H��d�f���9k<W��tI\�t���f���-�(90���F��)���f�`�%�i�El��/��A���F�f=C��R2�kFWURQm0�"EQe����M�������d&^�m��$��T��8���#�{)�M�l������1�t]�L���8�8ecC"s�7�Bwx��1P�9�|X��
'	S��rb�5� �a�{&e�H4�<�xJc1#��R�FU��I��G�,��b�98x��1TV��Lq��v��Gd�������E����{r�%c��������(wa���jfW��A���y����M$�����75�54c6��]Z0��F�4����IA����>��k<f���G*�M=4��p�F��+�|�s.7�Q�1*}`�\��)�{4�#9��#�����qi���$pA��j�N���rNP���"j�����:��s�
�g�qM������UV�r���Y�A,���4�SF������.Ou,���m%��^������S�����@{�6�Z"�:J��v�)6WT�P�1����oa\��;�/x�;���)����K���kRu(Z:����Lx�'a����l�a��RU8�?d�����5ig��5
�����Up�9~Q�XX�N7�O\a��i��sz�1�����]�g+����T��U@_�
��g�����$�3������R��S^��Qrky�8�g�.KZ�'���J���n��:��P��TyVhg����yD��D+�*���`]|��Wm��'c����n���}m���Ed����f���
W���V���:==�f�9������%f!���X�:]�f��qG�5��-���{U������p*�gV>�eK���#�/��r�<�7��Yv1����S+o���������te\��8��I���^�p�r��C�7s����eS��p=KT���!`������ksN��oz�kO%n�����kJ�Be$�v�t��&����tMV�/z�zL���[��������S���M�"D(�c��:���lF{%�-�p>y������%g]������}/�3d���9vv�x{��^��\fU��d[|�,%��1���Q��%/��k�'>�|-��~w���<z��G��=�������b�d��u5�@��nM8��.���5l�IK-c[�5�_x�k5rdgv��Vwmi���S��|�,�����m���y�-��&������4w��K�F�BF�q��:��nb��i�I,M�Yw��+]��M�����NZ�E2q2���*��"M�K��h�5(v�`$�1��<��n�"�IdE�0]��X�E����i`}���M[����w6Wb���������0�T�#k���W]�:������{��v�.R
��as�3E<��W���;w/���d�^�r�]73.�W�S�;�X����q
�����u�uB]�$=�Zh�W��@������M��:f����1�z�}�]�L��mo"����{��
�c9z�u�J4�Z9���3�o�s�Y�]�L��Cy6_wq�O����������l�Gq��G�b�AB��!���.{��0��<���-�E��g)�Ti���'r��I���)�sH�����&j�$|V��3�j8U�"(l������L�4�p�����-��|����������J����<3������Ek����g��t<���7��/���T�l^�������h��24��)�}�m���v�S� <!�zA�L
d}&y�bC�����x-��]��4t�{����|Kzs�yl��2�Q��m������4�����^�IW��[ZW�3_a�{��&�����'];���3p{#�)��M�|��F���c'x_k�{��W���J5���B:��.��z��������Ls��+���]�6$�	 �}����HY��s���:���*"���n�u�t��N�����t�&t�c����x�W���KOo���E���1�CP���N�~��'��<�nG��\��p�s7�E��P�H@|��g�	�����t_7�c� ���S�MGgL������N�3���Up�-Rn����2�VE1�e'N?.�o���)
^�����t��_G������EF�Q��'�=�o�v��9+ZO�';n�:+����u�A�1��M"93��M����*��|I�������o��2��-�r�{\�#�~����iRB�3hU�6��74�Z����j�q�8�����������4w����H(rgv�~��L����L�N�&J������9�Z,���1U#�Z���Cb�uN��l�g�}c��J&���{���P�<���i�H�TQ8/y�u�{�����
ndj-Je���	��ng��q�E�A��Ys���x�}u�whA[9��=��8nfcTL�0�9g��,������Du���sk��*w�c�G���4z���'A���"IO7
��&c]M��ve�^���:+!���t��-
��z�{s�$"��s�Y�;tX:����s��N�C�n�y`����T��Y�Kt�7K*��{����T\�*,N���h�R�������&\�7j��0i����
�� �?)���H#�-j0]�\�����N�T������
84,��7�'�xW���K�o����~��M������ ��01_u����6"b�#�
�l�W�������o����b�.Er��q%�0������z�>�	�|0���I���]��}�8��{�Q�>���<7�5���m$��fj�V�5�����3��:;s��<P[(:�ufV`�i�jG����;�Us�J��%�h��:Q,��Om7��+R���S���[���k}�����
��0�Y�Z��'G���`�y���6�Z��"s��<}�2��Z�L���.j[�5gU<w���ww>�e��[j^ucs[T�7��V��� ab,z�%�:���y&��O(FnqB!���5���
�A�Q��j�^g����9�'yu,��3L�2�$1j��G�e5�IP���1���/���Z
�i.�j�jH�4��]�fz�	���6�U2�u��fD�n��JA�$Kq�&��((D��#)Gy��=,��+e����u��@�G�������d�+��e�/w�J�nS�,>�v���������N1YG,3,���o^_#tYXB�B��d�j+�,h���|�O�~)��h�C�S�%+M�X �Y�r\�����r��:����N��J9�w6J�����m�;�'\�����2����	Cy��i�e��r���5�kb�F���6/&=��X��}Lq��9%�)j�����p�e� N�~>p�nRirhYc�Y�5
_�����44����d�d,Ah?IK5�hp3�����p&��,e�Lbi*|�mU])�B���a?@��D���hK2�d��l�����Q�;d�lgq�h��3\��,L�,����P����1P�T+L�|�D��������bK��$�~��EM7�Z#��j�)d�,H�[Eg�7F�46��$��F
�����*�h8"6E���
��&�����	���dvC���$[�V�,�KT������/���0���q���TH������*���\ad$�)8�Yu�"�P�HZ�I)����!�������~rC�N�b��e���[mP�O�1F`����U�2]��H��Baf��nl8�J�zdN��i�b_�e��"
�T�H�
D(�R$X��A�H|E��|y���z\����nn5�a���y�X�&��Zb�G��|��yV�#f�K5-zjsL�O��������#w�������f����)�O Y��Ov6�=��L���� �v98uD�c�(u�ef���*����yi7,^)�^�$��x{��?m�;y&u��c�-������C.a����U]4���s-�\uJ�lz�K������OC2��u�
��
w=����VT��s|��T��<���3���.�qi�����X#r���on����}N��W��`�n��=>�T���V���S���z1�f����]�Gaj��������$����]���j���v�/M.��y��z�.��c��J���[�[Y����B�ov��_z�n����v���c�X�O�������k�>PG=�
�l(;TJaa�'j��"�o+)��I�t�r\n�.�bm����]���s������7��������+c~<n-��W94�Z���y��[q����j�f���EH8�����V���^��q���������t���-O3$<�$),NF�MS��4]���:�-�
"���\a�i�A�����'��E�d5B����D�2(�V���o�!�Dl��p�����X��k)��E��V@���������B-����6��z�'*Zq��P�3
��+�&��x�
��K�R~���#*F%\���ap�@�l����*��$����UQ��qb{�[�|����EO2�P����.�/&�z�QCX*1U58hCb��)���2G].b���7��(�x��.�����(�e*���A^�*��A�b((��|]J9
���W������o��]�����W�uM\���^U�t�v��alwO����cZoZ[z�)<�~X�G����������#{,
.r�&;���{���������_i�SK6SR�������^:�uXZ\.9��uy��N��stZf����9��q������������4�a��wu���b��^�f�
��P,>1����A��jt���+�28N���Q�\�N����jDIh���@��nuof�@�6��|)�s��kp��a�M������c��^�Qg�?����_��VP��Y;g6��\���JJN��0,�c[�r����j�Q`{V!]��3Y��'&�\��Ya�aVr*����kh��,�u����2cK�'��1�M��$�9-�m�b���pr��Ap��u�b�oq�=���H��=5���O4������&����n����,���"y
��������a��9m�]�����;E��Y9W#-�z�+b��:�s��]���o!��3�3���dcY]�5�#���,Q�]�0�C6Kw�g������3�����wO[Z��d@�P&EB����E�
y��w23U�SB0D�D3B%����\��P��KF�5�L5ie���4h�+f[R4�����&�[�i������d�B#��[$-��(P��c�6@�PM�������(����Mn3�J�<�T:�-�	�0KQ�&��E���3_uM\���W��rO����BY5ScPB(��j���X�2�1���{P��39��|�)�4S9��ehQ+�����(�"j�^W#t��)\��B$��5���yL������{��h��(
C#L��m����*a2
pO�$�����#H�E]'R|���}v�iF l��H�|U	����Vmq`$�'�[U(Cl(��B�*�I������������x{ ����CNV/��n��[�VQ�@���R���6�
���%�~"4N�	I��%��Xr��4Jkw�jy9m�2o��z�"X��L5KB��u��V�f��Knaq��s��qP��d���K)t3Z�4c �	VJ���$��B��`B�g�;K�I�:
%N��+	A�M�{;�������T��>�����_�&��lL_(�"�R4%�K(`��7����b���r5 �����AB(���M�/��Bi���`��T�Y(`5����
��A��Q�C
a���PGXb+�&2�Q4X��cq22��n�bB�)��M}]�8�����z:#U��S)�5�%K�M�f*KrI��L�Jl���[��-
dm�$V�%1	�J1B��B"T%JJK�[�����

���>~���b�A=���w�>t���KT����W��\�*�I�W�b ����UpIb�
J�~m��5�a��)d	k��>�}mD�6�\�so���4�C��U�~�v�QUZ:dnZ!i�6g]��@��
I�Y�����-@�FC�H��;]����������_��i�=]�����
�IVP.B��j@�c�m��+��A	��r�B����]p��F�M��vk��
�����6�GD��)s�V�SA_���S�
��F�r8�%
�M�y.Y���HA-6�
/�	M��cIR[���[�v�d)m���xm�2�C���}�>�T,��� �(���_��L�����z����TK���v��Z��{�[�7����k���m�����gR��(�k�G�|BLX�� ���*���g�D�d*�=������+��#�g)u���en���:ZI����LU�K�"n�2���tD
`����Lj���]f��V����ja�|L��3m�z�c7�)Y`�a���Uhl��E������#�0c�v��3�f����^�n�uvf��X~���9l'���� 0&���h��,���[Y����Eu+!yi��[���
���U�-\Z��](�I��) �������^������9`G^v������jZW�S���}Z>�B�*?&Z0��S��N{�cD�[�f�x4�Z,=���~���[[��&��=����9L��B�y�,�]!N
ly-\->OkGZ`��R:��Z�x����������nnq�2�F�]������
3*��H����;v�Dg=����2���+V��������p�E6Z��Ba����Z
v�0���l����ei^X���,�zo����v�#����C*�IO19���t��3��m*�&��2kn;v
A���N����H�E���Y�3gm7v^SB�C����+Y�|��0i�gu`0���*��.�,��5q���
���{�{�b����P~@�j+�2���'�2D��U�~>�?������UJ|��T\�ul�x�gu��@��f���iU�������l3���������"9��GE����i+1 �Y"���iC��
�T�E�S��{6������W0�d�5@gR����@��V��)��l�{_U���Z#�%"I`�L�V$���r���[�~�~������gF���n��mMm���n�u���}�o@��ym�_A#�zM�,��H�	]�7-�h��T����X�,Tfu���8�����a�
�o����vm}qOu�9o��H��%OF��L����a}w^v7�`5V��<�����{��>$k��s���=�&�*�7��h��k��A*>W/A�c%c��J����A=ZS�3^��.k���9{�{�l�WNX!�R�(�K[L6�j�lc����U��o'��^Z"(���okH��z��3�i��kQ�|��7�.��4Vc�u����>��91K{�q��Z�H�u]v����
v�q����-���]���c8&����Qh��'��{s����gc���u,Q����?'�|�����lg��t=x`�iq�3V�0�-�5$��SN����]�C����\��m��\/����6G�y���h��F�	���|4��[����Um�)"��S�l�Y��[���%����S�2iu���MG��nq�C/:{�X��d��%y�)�$��h�����u�����]�,�H�Y�����v�Y6�8$.�o����]>�o�{���Pb��Z4yTD@3V��#���tH#�����D��BfC��]m������J����"��!*{���5��\������s6}J�>��N��I�U\P�B%��'��z���X��_h�23�50uNu��UEG���XA��3�*���DC#����?%I>��v<��U�a#Q<����fq��3�"%�3y������E��_������=7 ��&������*�������������8��g��k��;w�eM�����O������m5-TS�i�����kPI�O���}����q�qC����t.j��c���(�s�%0_C��u����62��}U]:�
>���:��V��������s6��<�����ru������Y���&���g�����V��Ulg,F�}�>mzb�f��� �d��Hi8zS������Y����[�����0����Q�;,�*����N���`������I�o��C���yG���l���$o�oL��1���}V���/"
�g��}�&s��3�����b>��X
�]�=�[��]�\A2��CVvz�W=�;�A�[e�����]tH��q�w�����+{�'
S7T=�X�}��^� �������O	���xU����8��[k�x�e&���0�:�UM����pMB^.���<}�{m��9�t��4�� �M��ej�/���%L����{W*���'��������f����B�w���Td��I</��~���g��V���|���6]k�(>J�����1.7g�7�+�G��{.�}p�&9��P�m�P�A��Sg��W�0P�g4s�Z�i�o{-<��N�rl��=�x}�9���*���t�V3<��OY7�+��}�@�E�~U��v���������K�<
^Y2���V�;�!�ub�J�rR�W��2e/I��p��'9���Q���x�Z6��n�k�o�s�b����r�C*���������Y��z�����g��O"A��w{�w���UAf1~u�o�c[��}5��������B4@���+0)�XK���q���{[�z��B������u_Z�'|��^����z��M�����l����J��	:9���D^;�������j��h���b �����R5��f'r�T�}���^p5���i�L��#v_ed��%�w��4��w���UmJ1)9@�/������/eu��>���W��3$}�<��'-�
"���k1�T�	�~���CyyRMc${���\����`�{s���F���us�E��z�U@�-"�G�L+'��
������UiM�����i�p��F���\(�U@[��
S�����31�1W"��������7�n��*����.��/�������=�to��������B�},�����N��Vx����<UV�[�Pv�C3�����n�����&y2~�-`Uzkk���V���3q
Y��N����3�0��%���
V����u�8����{���M�J$J�g�����X�{uWY<��v(� �����g$�d�Zu���P����U'nZ70hw����j3�_=��	�VK�d?���.829�V,q�p���u���
�*�R��1-���������D�6nl����������urWDI|��=/�o;��T�e�%	��E��K�:v��Aw$T�3����dL�,�d�[O%�������+J�@5_+?&!�N�>���>.��Yz)�[e.�16p��m����)���/�]
��!����
Z�^�p~��_C��]M��x/�l�_����<8�4G��k&�;���.�M
��>�����4���	=,QsdD�>�q:�r7�p��\G'�,2Kd�/��CQ�n^
F�[��>���u�*�$TC17����$={�D���C���k����h>|!�!�4�	�H	bA�&��
��l]*U�B��R��!VJ(��zk�i��������y�4�p��.BZ+���%�������G
�U��m�&D�%����
.�+����3
����RE.!e���bU@�a�ODa�%�c� �$ 2�	P��E��m�$W�"R�t �E���M��.|����(��'[���<!�� a�a�R�%�����e\�dV��C8-5"��c7�S��L�M��@s|��
��p�
�\&�7����-��$�DZ�IK/���3��!���P}����H�����h�Q*)��bnA9�
�	�����������&+�qQ�b��Q�����P��/4��=�g�p��[�� ��J���7�^����%���J�t���3��)!���%D%�]"�WE�hr�X�� OeE������c����1�n�!qs9�Z��	/s4V���=C��Or��Gz���U��������+fN
(P
��dC���{��X���9s�����(��TG�1D��[�k�
��T��n9�nf���/���*&$�Tj<��P�31������p��]q�!���ZG��z��ggepQt��M���-��Q	���v�����u�����"T_Ds�	R�������k���im����G��$!F�,�bV���8i�������|O�����=��e73��=�����Dn
�q���$�1=�9�P�iP�@1��q@K�*��b& �0S�������"��s1Cz���vr	��`�\U�5�RE9�=�)1^D�E�\S��D5�r���r���;����"���Qp�Asp��qy�2�p����=���p�w��S�
�&�((K�S�����b���-��A���S��A=P����o�Pq�J��*��v�b����#���=A��	Q}���OAI�;2����8���7.k4b#��<�{$	�����/�jb�(\y��51NDs���MD�����r \B��	���\EME�b�D��Q�]���zC��d9���<���T$���U9]@13A
E@�;���*\D�A��*=�#�P���"��"�nr	� �����)�!"
�jz"��\��
��@	*>��"�� /��p�%5�D$��\��Q�rr�$��#���z `�(T5=j*���)";�����va�����v�Au	�G��b5	�d�@�9]�����(�P/��a��T����CPwK�������Y7w3^��>����=#TC,T���(4Z�����/A��q��`(��HX[ Df�e�6�Kr�
�g����aw���5�B�SV�����3�Z�4vi�o��"U���}[�G����6G���G��>���+h3���Z}4��Uu����A&�r:�&!�v�
}�<�`x�l����+nc�M��sXf�AWM�wpF�����<!����n�j����}�7):?b+�^��j.�����fw��}���g�8���}l��#Y����_�:m�s����Ccp�p�+���MVw�K�'"���������@�O��������/�/��/���n��y��� �����	Id�@DAEII	~���~������?{���r�XN�V������0��E7�Y�Y��������M9�����8�;w5On.��A�uk�{-%�e�����8F�O�^��/0�l�jpIB:�/f���';k��Q��\��n.R�=����������N��^�jv���7����jU��������qt��]gkl����Wh�v�!k����M4����#�[-K�e-���b��2�9OX���/h���~7V0����������e5Z��>����zX�:,���74��/ D��r��^�ubv����>3'>=���Y�B��u��h�b�g�����Z�U��j]�9�����-�nRj�s#��?=��,�<�u+�
L�ow�;v.�]���s�=<v�_C������Z�T:3x��7B�I�.��������i�W��VL;��\[��{Y����gWq�/I�an�MQ���������������1��r������/;M���F��&7Wc��oooh����;:k�������9�����bY�c(����a�}O��vz=���o����@��-e�~:z���#�Sv(�KH����Q�Y��L}��Q�q^3�f�<��Ek�'pw���D�r� �"wyo^��1��y�W9��{��<����
BM�Q���7y��'���jZ�� `K!m��s74�an9�^���Oh��!��A�6G���2\wX�(AhPhoumY4]�<�����9���;��C�t����.�\�wa��3sX�����q4�����)a8��o%p�3y�j�4'v(=����fa����������U�wD��Cd���������F��Oa����H��NU:�KPV
m��W��d�+�I��}�*�a'��2/V�XF.|ns�\�p�Fm<��*��/M��W����������;n�<�����{*���z��V'v��T��\��$������N�X=/�k;c����� TC��-��ra`����h�UCof����R��a�M<�k�
���L�a�{O�%�p��4��r�S���V�.��{6�Ah�C���������=gy`���j�bY�����4�Z*)`!����T,�u���U�<6��jV)}�B�������0t��H����$�����j�U�	����;^1���v9��E{��a�g�7�+��s�V7O_D���su�u��^`�h��Y��wr�Q5�B�9����
�r��#���;T<��]�w��3�;^:`OA�(�D�_E��P�������P9��������������z���s�
��Z�,]D;�T��V��bsvZ���U	t���{���X�&	z���S��a�EA7�B�wb��2�����N�y
��� {Z�������
����}�8@�A;��s�`A��M�S���!���
�	��[��NX�������7���3��dMD;�{
b�)UBn/bp�{y�&7��^����@���<���dPddDdd@�����������
�����X�6��3h�Y��������=�7�v��	��`7��X!�o8��{.b���_L�)�8����n���}�s��mN����9�`�f�B��K�(�}�����G`�����igv{����Ys>�"��;�]o������w��)��l�)����zC�G0K����;��(N�������! ��a9�N�#�������M���./���7�j����n�����7���7��Z����d��+{��c�\�>����K'�w0��;4����;S(C��|��e���`w��k������kx����]���x�U����2�<'g��pC�q����c�����q��as�=�!����D��0z���f;,�xoz�G���������Z�R@�w�yC}�7�c
q~G]���%�v����������v�1i���A�1�dM����n���h�f����;�W��)���HWq`�B� �1@��c��'����F@�bk
M��i�������r�����	v�P�s9���k ����.���/�9�i]�yXS��Wl�J:J1�{�c9�D�JS��d����-A�+��,\x���;���{T�v {��t���s�kUY[�o�/����.��Ml���|�@$�\�A�LOf���n8����\w��s��q=V'=H�k�����kv�yv�=��a
��E'qZ�R�B_3`f��������0\^e��{����2����7�z�y^V����s������9�����Z!d�����f���S:���Wezt�@���8�(�b���cW,zr��s������{�S����x�5���o����B��,��@W��E���@�-������~�Gk�\���	�����ML�w�������p��k���[��*h�</��%� K�7Y���+>��>����S���S��5��@�]'cx��2�}��Pz��vay����o�����'��`7�Q&�Z�!0.�����(��fV y�|�@�,I@i��<()`{�}�Y`���U�>8�G��D4��*�A=���������b��R@`��sJ"�k4�~��W9�k/n��������/���?�} �����!�� *1������Y�U�Pu�Jkk|��z�z>��`7����e�C;9%��B��������5}aO���4���f/�__���/�_�9����:��>1�7A���{�No�?�}�>��*���4�/��L{����NP7^��%�@�NF��7�}�A9��
���D�����{E�A���,��F��L3�k��b��(}��=�B]�G�P~�&��AxcC�x�:S��2y� �l�
�l(���n����F��#H�@g����Z{dj�@���(���R�j:��*�^��f;�)�_�+���~+��5����Pr��������������p��?�u[�`z��2��b?{~("�J�|������p���ex���kjn�i�Y�7yM@���*�h&��,�D��FQ'��������Qgv����=���O�N������U�^�R�C��"���]^����C}��]��������{����Z�@_P���z����9"���,�k����4��B1�v]f�@��5-Y�Q!�w��.	��F����g/xI�-���7��'����������L�#G��k�f���x8������/��?P@	�Z�QI��$YN��G�����C�h��B���i?zbL[���,v��-�,���!���z -���x<���9��V=j	K]���&>���I��8V���}6��`}n��������w��
����x�!�k�}�r����)�����P�\����=�\�x�A�\�:�8'�|�Pz���r}�� i�n34���7n�@p����)z�=�yeU��P��/
������g'���m>z�e�ZNJDA�b�7��so�^�o^��IH��Gz�pr���I�5�@�Q$	A��5�����/�P����r�HW�+� H! @�@%^:#���\����Vj9�2#��(�����CP$D$����HH������H�Y~o~j�x��!]��T�T�jK�7���D�$IA��$Of��5V������h�@$I�)sT2;�"[s	!s������]!��;��\^	@@�#��S��^�1u���,^����@ H!@�/1�k]�r�'�r�����|���������"�������5�:��A~���_)0��@�B��K��o�0����8K�q~�q%�q'@D@B�S?*�;��4W�$9U�{j~��K�>FA	�$I0���=X��W��O�$��2 ���� "� �q��!!!#"HH����%
#}�~O�!O��J���P3�5_�0U����D�d	@�$u�~����++>Y��}3C�{�)�Q{&�����p/����K�}YcR����~iu���#���+�U��a�x��TsZ���x�X�j�j�}|�9���;���.C��OL��@?�R�x|��#}���k��{����	�Z�����h*!���Q��|���@��+XC'j�V��Zp�2V�{s���m�����_3�O���jA(�I2
��H� 2"�*
��K�)eg���:��7D�K��X/{���^,9��x����(hb�>�u���C�����{��g��V�2'O�e��F
I+_[�y��k�Qm�������L��_t5)��'5FV�|>��u��T;y;����k���=���A1kd�w��D������7��tN9U��)yC����_��T��)��QG���>J�h��W5.��������y����mV��]�b��N������y]j����dT^�9��sU����8��7X%�['��:F�V�����R};o����+�eY}���T*�1]�oQx&��"k�^�V���D��5E��{�Qx'������.@�$��	�����U��%^�d���m�_9�l������/�IEA�P>�%DE�	D�T��� =>�x+����9����z���1wK��B�����C��+J�	���w�����H��A�6�����z����������k�>e+C����Ci���������E��8_��������8����}��������G��� �����
��\��O��I�0f�Y@{�u�y����4�������n���G+�V��\r���{����=@g�3�W����2r��9�f�>;�Y8�~�u��o�[m;���Aw[+j�gy\{�j�j��6a������`v�t���9M���6ru3>�sg|�����w�qa���bc?��%����\�B�D/�P���S�*���hDl6wS��j�?���9���|n���1���j��Q�	���{_oa�����LQ����>���d�\<<u����c����W�|�=��g�w��Y�r���7@���>Ow&���*�	^�G��w�-<�p�����:a������F�d��
���������~��<I�o����^�~�:Zc�|��}�1������{4���[�7�x{����g�~y�j������4��l�����TdF#4]6���W����$l�9�bq����g����I��v�O�A� ��H�,��"+"��-��>�3�J���9������2V�h������ZR y�n����'I���]M���e{2��~�������Ur�<��B��]kB�z�SC
�}�5�_�e���\�����8$��?IC�����
(�s��Z����&��g��}dkecVa]�����#������M��fSC3��T9#`O�����oK~����L�������U�UsId/�����q}�f�n%������}'%�j����|;���������/8Mt$h���}�V�R�A�q�������1����W
����1�2��W��{y��DDA-�L��$A#/u���\���0�
�����S~t��ae�������.�7N.��`���&&��5����E
��t_��������|��R�Nu��|���U�NG��S����WG��/�� ���Z��/z�2����d���
W�P'|��{���~b�O�g����B����\��������,I[�3��xK�nX
���,U�-����>"03������`�w3w1]��1'�*|�H,�##!"�@��I�W
NnB���*�:�9YY�>+�tG4�����{����,J�=��|3z�����}�~��r���Y;6���&�g��mg���c����b"v��&ORt�����J��=���z_z�������D�y��fxM�����2N`
���M��|~�C������>�B&� &p��o�<;�\V��0j8��}����{��!����gz�3���gX��9�q�������s:�����H/��D.��r�u��tk��>�;� ������!����X�	�R���3��i	�Z����K�Ls\]������H���v^�F����	 H�$
�������=��5Hv	��C���� ��J_�jy�
���&��D1�K��n*�5�@�o8���A%w�TdC��w����T
gv%](cT����Cx�70	���
�d1@����C��A5�P�V�@K�s�cb!��X��$��C�R��F�B�����	�r��]�:(�?��dBD$FuT��*�.T������~��` L���PE����?���0���5��$�������D$BD$BD$BD$BD?_�or��'�f���r�H*�/�������~�~��/������?(c�_������/�c��hA��8w;��N�:t���^��dz����R�y;��#��$�:G����6�&f��������!=!-�[�$�zCu��[�fs}���5�Mv��� ���������g��T�����P���U�(����p?�������?h~��C�C���t:�C���t:�C����T��E�����h�����A�W���U_��Q���*�/�T�[���i�������?�D�$$$?������w��������������?���������������pC� ��� \�������p@. EGQ*
�2 ����w
��9���e��U,���:lQ�]\Sqbg)��-{2��8F�L��y��eB���S�k�B����4,[T��������,"�K�	b��&B��58�W���� #�eNm��;{���������h�72a^K����T{��maI�N��b��b������(����s��t�#�W���g�����@��i�����������f,�#����z�������1���E�J#���
�L�y�����L����y�>�����a��m�9#;G{�����|O�z5�
�������*�[��:C Q��t<:!�Y�-6��cN�6����\s����8��@����oK�A��|���2�}O���xAqBeN3�9��������h��7�i�|���7n����'Eo5ggo*Krnlr���R�s�c�\J��!P�C;�w��
i�	L7�zV��/K�BG�;�
7�Z���!e�"�v5
v�&Nq���3r�{l3�h����o����O/!�Cq^`�AXcm�\����-�G�P�Q�C9���3&�"���m���^������tFL�u�Y����+L�x���a&�i�"�3P��t
Tb��^�e]yY*9�$��@X�7�1�q������Ko�����M9�V�-�������K�6��2�{+h[�Jg�zEl�:<��Y.��g�[�qc�(!f����	��3��j6�R�1t)Uw`��;�4)T=���g��r����}NR�.v����E�m�����Z�����T%z�
��Q��?&R�H� � +A��C�|M�'�N���3&V*U�}��3�d�����W��k���K���Xm�z�\r��e�%y�f7���_("�.�)��#��](����H{�<Z�!���@���0W�����G|�j+�f��&C9Y�������s�W)l$��]�c���tY�TX��I!V�k�>.<j��e6�
�4�q�gv���Q���@i���j�=	|��W��!&�*��z\��S67�]�y+f��F�'����v���E3�kz%��AGwp��y�C�eS��r8c��m|���G=^I=����������$;�\��H�k\���N�+sU9��G����W��O:�B7Jqi��_S����;���v���\��lP�����-��z�q�JY�8�Oy�Z���t�.��,c��K�MK{��8�� K�F�#C����mp�w�7��RT�,[V�������j���j�z�w#��K8D\�62�p���I��Iu����O�����
��sD�����w�X
>�k[����`��_t��jr�%w �	&a?
/������6h����F��=��;������C���Pg*��+���5`��9����x\���DL�<O3
{�p�8��x^x,��N�=E��"���m�w�T���+z
������X��$Uf�AQB��%��]�('<�NT�����oY�����i]��a������x�r����lEa=/���h�
�3��!��~
+��������
�I�"l����	�u�74��D-K����2!���=�{y��hLQ�/m-�"me\�z�m�C�N�����r�t^�����$��^��
+ ���|��r�e}z��M�x���;�����g�	����D!��8��
�m
�b@��h��������>�*�AI�G��x�oG��� k�]*��5�T���tn��'/��p���cxu�|��Dz��`�qM��eD�+���P�0,�
��~�F��n�$�����S\���wZ.�G["�^�k!��*�mM���m��f�����IXm�E��@�������Q��"���V�2jt��6�k�3v8��P��9��1wy�ss�Kk���5���7������5O�!:���k��T�c�~�n�O�K�Y���K/N�(�
�G�3V���>vz��<S[8�0u�,Z�SE����Z�����Q���e'����[������W4�q��(�i�q������$WY�nm�M4�Y�s����-��W5"8��� ��8���]ym��Zz7p���<����S:,����9���@�v�-�c�m�}K�o��P%p�-�n��}�����M:������=��VmZLe���/@Z��1�X�]3���Y�gK��Y��������Q���j��[��������+:���Y]�Uu��M<2�U��U6.�}�D�������e�>:��z�����j8��,m8�;�N7��:���jVv�-�U������Tl�i�N:�|@
4�,��s�[Kr�
��v��2�=�2�a��aa��!�E��j��N:�Wv�
.Na�<����m]��w���(�dj�W�&��w{�k9*��H\t�5X�N�����Aq`����������A����3"! 	 ���
����d]&��\�a&��v�n�E;��@U^���m�� �KB���]<��k<�B�������������1`)��E������(��|�A����^<k	<���Hgj�������a��}�u�c�o�Z���Y��������V����I�a���mJ�mV���S��Y�W2�6�gz��4��EJ:��3���S5�����;T���]8�m�SU��L��a��	�R�QG�N��Z�f�>���Y�H�q��wo1�������sq+	�kY������(���O#�������������z����o�6�k��~��7O�L���!��Q��c��^�9�`@��1�(9��NYA����6={�_`�)^�''6�V�b��<�8_�:T�R��%�j�z�Z�[�6�S���k�������;b�������b=y;d�>�����`��S_%�={W�Y��i�9�o:�x���}k�:xA>�v�M`��h����|2���Vs���r\����������
�o���Cp�s2�W������<2 ���fb+:T����Rhr�E{{�{.��ZNSFLky\n��p���ff��}�/:a�N�����|	�������6��/�3�pT(�\un�Y��{p�������~�XB8_5��'J
yu�������^9����D��H��!�y��8��^6+�x^n���1�-XsP<Y����6���oz��Bvj��UI�F��K���wB��9�� d��v_�;���p��M*(��X��B��wsZkWs�w��7.�&<|�3�����>���V��i(��5���4�,.FK$}�b����Z����X��c�Lc#�*������,���[Vx�&�dP�WEG��9f�nz����C�i\��p@����������8����C��B�y�Ud��w%3�o���6��,�_�������^l��n�ci���[�)K�F$�>�> ���P���c1����(r�x{lZ1��;��!(4^���xn+�a�[�{`����gQ��!&8�5��2�t1�o�ut"�V���<Z�a@��)�#�o����
�A�������}��� �W�M��"zU��q��mA������6&%PUHm��;����[�G�����kvw,�R���X�h����]���������uc�H�24���	o�Y��f��a��N��S���k��&w)
��ZpZj��{�����i��{���}�+�RDU�v�X�����F�N�r�asM��^4��]����i�ep�Z����5u����a��l7W3��~C�x���2�cT��')Fb�1��d[���bZ�}v����2����{W,n-��2�mV���m�{�v)b������[����j:�����7yu��J��9�6����[])��4� �
{���Q���#O������9�(NY�R��E�W�_.�,�$.L����(S��^��u.��
�H!j(����*|�M�c'Z�W	���2�FcZrd����'���<0A�]��_t��v��j�"�z�y����\x�
������Y�����	������
�T�����0.�L|F�mG���T��hWK�n��(-HSei�,��t�Tutm���'�EK�y�X<���TloP��
�~�]����bTkk/:37���,`#h�Thw��e�������6N�}�j��hwZ�C3Y���B���0�9Wsz�N�+���|�'��l���UD7PUt���fl������p����m
���V�PEY�D��MTi{�b������|1���n��(������&� h9V����%�����Z��z�
]��[��{Z���v�BN�aH�Xl��+1�����l6z�kn�R��|@��to�� [P�����X���^����_y���fs+�uq#V���
E����Q��;5Q]���G{&q���j[?.F�n����+-�w�A�|���a��2�5�����Fv5D�������]r���Nx�f9��c�}:�M��wkt�m�886�^+�N���9��N�w��~{@�"W�+�	���#��<��R�����0/K������������CD1�uT
@
2�-N_8L��]�)���e���"hm��)�@�<�X���z�z�
�����F��h��m�����B��Z������~'��/(��S���m
�{����������\�&lX��%�)�3j��t���}'N�uu��Q���J�M��Y{����R�T���P<���-f������5/3�C�@���)�#�f
��z�C�)�q�w�X�W�kW�n��j�����j�^~>K�w4gn&����rQ���.Z��,�}�3~#�{�zO�S^�N��#�����>v��]#Q��m���c���;�:�*h8�s����|�],���[�oV�
�J^��r5h����@W���A6\!�<��H �L![������l�?2�������tb�uG�B�;|�Bu�Z�r�Z�e�w�������VxD�������FoY�[`�;�rw$8-A�9���}�_:"%Qr����sgN��3
����UE���W��;����W��41g��vo��k����z��1��Qd	�����X��R�������Uf����}�Vf�>���N�j�%'�?�$hh�=Z2_Tv�b�{��-��r��T �&eWU
P=���U�������{m��s�}Q�X4n������'it�N�u��7��#�{�e�;�����6�M�b�vpQ�{*�H�E�Z��j-����R�Y�(B�4��;R�4����/P���EAs��=���
�28�@�O�b������Pb��|������\�OV����"aZ��ov���(K�H+�Z��.��=|��3����tM��2��A��T����gqIv:��m�3c+}��,��f��|V�4��(z�-����d[���������7�;�}��!���
�����2��<*
��J����,T�c����8���`�z���<p��;�w��.����<�W�Xz^|��9���Z{\	��(,�	� �7%���#��4��]\�gyj��_��]$j0�~���4��x�;Im�ltsQ��=���(6?�s��3��)�������B�M����v�v�VO5)�8
��;S���w�5�����y�}�_��r����Vs�*`Cu�(*�����Yxc�x��+��!+�*9��L��x��Y�*Z���{�r���m�x,�������g)�{z�EM�����W�����@7P�����gI�=�j����-������b��}��=��z������q��[6��w�'��E�&.��*�T�(��	R�[��o_qz�u�De#��jg��� X6yi�^$ H���6������>V�t��+����@�|�Y�r�We���k�=�������+guR����CJ�Vj<��G�+��=7�e��k���A��c�]��N�D�I:rv���^=�1W}�'b-��(=�U�8B6
ko�.�����9-���H��d9;���;]��������L=������Q�n]�d���*��N�:�z���Y:f������w1'��V�*D��R�jy��7�
Bq���������O�"O�"�j�5�x�SM����~��{���U�3v�/��Tw�q�!d��z)��^f6��^���8!����v&m�YO�C�+-�*�k��i����X���4�v3g����z���/n��^-]�����!���8D+��|���<q��;����r���"
���.��":xk|4�U^����l�]�rY��$uT2���;�"M>�mJ2��g�)<��5��B���93�#?H3��Hn���&��t�*^��HzY65FX5�[���u�[hl����oeyT�]��������C��[IT�a��'[o��X��y�����d����l2^NT]a�n��t���7���a3�{��i�D��@D@$�i�Dd�K�'o��rf�����C�Seoho�V+������:��������6�u���o�V2:�v
������XF���P1N�_d�����v��@�6��1��[�>��g��s>����]������P���Cwp�o��`��=����M����R�t�}F��6p��!O�i��z����7�E�!�������h:�L`���C���R����C:�{�U�����oy�}3P��S"�
@ K8"�Si,!��j���a�T�)��;��MW�>Kxh����\\��\2�+[�h��h3b�?.�BX��Y�b?!��Z�F]D���l `3UM�	C����xDF��Y�\XGW��]Y����HZ;@��T�u%D�����|����6.����l[8$1����d�(���{sgq���Sb���������9������;�	ws\�������c�
��l��>��f+���+4���]��EA����T�-��d�C!���&��������
�X�fak$u�E���_����(H�u.��|6�=�DK�73zvG���6K���4�O�\�G^h����{J�r����'������9y����
���,������{^�����v��M�������'\��5+O�R��9�zk$���o������
��i��	�����l��d�N��"�u���dXhX��-���=�\��a�G��GM\)��6�e���t6|0���
���r3DZ���VPuM����I]�x��n�G�b=��Gu��Y+sW|��t�B���/L�.?VW�W�a���O;���m������
{`��;6w��1g8�$O�z����
.�5/�6�&1~Mo�=��;�3�Yq�E��2g�:��w/U�����6��uy{���3"���9"������,��A�L��t�8m�����l��M`�{������4�72�Qu@�l��Q�����'�o����Z��Sb]Q����������G>��r�{��6a���%r�';H�`��V���nf�j���t��dk)�%�����m�~g��{EO�U�E����e3U��RS`��0�v
�K����hH��JkiiA�nU�Wgk������^���{��3]����M��m�������&!�f����GV�m�l�p��,M�����Jp��L�O�v�i���B�����Zr�\�5�n��RW��� ��u�@G�@�����@�=&�cEW�Pggny�C9=������z	�����Mh�U����h�q��%4X���O��
b����v���y���;��pe��L����7�C&��kn�BoY5Qf%�'�t�A��$z�l$ C����7$����k��9Kzo3X��m����#��%���r��Jg��:��Sc�/8�����Q�:��;�-�.YG%������E��O��Q���Jz[�e`���5�3����/2����I�f�[�a<�f�DYL*���w�������.TI�E����Z���e��Zy
>�;�����)gL{�wG��"������rh�xM�UFX��w���F�P��R>'�/X�(��! �fs��l�>R�T��������z���t��nK�����y|n�m�{29�:����BH���a���M�A����3a�=�7�����yyu����c��v��I�����i�<O�#Z� Aof�_��Iv����+q���a���r��*� �Q8X����z{%�{���,��<7S6]�8��#^����A�����.M���2�Z�W8n�'�5.��E�����v7�{:����)1vey��xD�������e���on3@�n�mZ�����.�����g�e�U����xZ[������v=1
������B0[n.����
U)�D���0��M��c������(L��������e/�w3�y�8�GS�7H�fO%����n�5|��`��:�@��<%�K������V<�hk��{$������x�1Z,����Z8�-uV���!���v���:{���__8M��Z��\j<��)��jy���*xk/���q�;���#M�����L����$w(�������o��Ah���d����a���.M��>W(�G@��a"$�S��( ��v����!]�wIFA��{�n>o���*\��,{w.�A�E��U|��ak��L���u�3'<�u����]��.�_v�
��]��\����"�]!R{�B�(����-P��@H@�^s�3V6i�o�N����z���������:�r���M����Km;[����pN�t�f����e��3���������p����9�b�4l����s���0��w.�qsh����Ay��L�7���`n��������7��p1c�_K�uM"�W�Ldgv�����q��Pd������Er}s;�����I�^�����%��2Oz�$-X�W�QKO���$�N��i#Vz��E_>h�'�R���
(���Z���Rd�F1Vwr�1�{�RN�ma��7�!�uJ�7+���<���z����}z�'b���I����[�|��^;��U���Pi�5�>>'�����r^��c1L�WY5��cA�L.��x"�+���Q�x5M��M���������u�e �]*=1�^��;+���{mq�=����[3��E��KT*���XGUN��om��
R�\nM^TnZs��ys>��F�iQo\�n���L���V��o��{+g���l$������Qm!z*j��P�.�DU�)�5�������9�������Y���*�-1�c����R�i���e�v��9EZ�ELUl�7N���7�q4I�R�s"������N�<0�4wo�g�`v�+�������z��mb�v�r �n�)��n�[D=����Fz(��:�(rt��]���s�z��VGQ��Z�6M/��4�g�jcds]��g����
���DL��F
������yk�A�{�L��L���w+7�]�]�j��V�h� ��z�T�k�k����^;�jn��o�*WC'h�+���=Ba���eo��aM5�����1���;�����-md������MEn�>#����s�HP�l����&yu��M�%D
Zh\��A �vJH��+��}|�k]]�M
�w��JX y�2)s��h����ie�����7�u��dN��b�������7�
}z��s{^��}/r�Cv��x��DM��Kn��}`���*����9�~9(T�;���u�P��sU���0vQiEZ����P�����K�����W�����=i��%�y�k3n�35�4�;Gn�f��io�E�3F��0�zN��/]���	�%��Q�����P�C=B�!!���9�1aj�'�os�:���'��3i��K���D�I����<����N��^����Wk��!���M�K���L<Z��[�X�R*�NQW�fKu|TVgNZ�B��{rP��AP&��n�{p������X���#���2�8��C�����Oy�:!�F��u��%��P���j�H�a�:'�x,�X���h^�G���Mle+�7�������}�3r���2�Y���$��-��NG7/������8�*O����*��]=����;��|�e����mn�<K2��r�7d&q?5����=�,~�j�o��7�r]��vWq��jOwN�1=���G�ac��BGWh�\���j���5�����]��$�6����9mouU<��dX��*^�{��wQ���c�XD����*�Mq*u�4�:�w{.9C6�Z��������b�S8f�LN��-������������X(�������ok%[/
�Oe�ew����!���t��{8�����{[���.:nDA����Sq����zS��wyn�8���*���wd�j�:92
��������F.����5�u��os�d>*�������b���?���)R#W�Z)�H=r+�mm.�N�K�Gz��r������Ih
i�'�;���)mA���U��D]m����lM�=�F�����T�J'�f����q��S_�l�y�T[�i�o���7��f��������	$��O���A-�@����x��3�gT��E::�X�RW����3��qyU�8^G���Gn�sU��e�z\k�&&y��j����t��C	��#sI�l�]�P���P�!��u����h{���E�i�q����[�/@��Y-4\E�F��w]j�����g&LX�]���K67\}D�����4t��V��,�~��]FU}�{{����o;h��n�7q&�0�q����>Cr���x�O���|}Z)hA�u����&�����fP�4����	�2vc!5�����X`';j=����)c������f�+�L����|;���6jv�l��NSw+��������I���S��h��r�X����AW�i:��v�x�It��F�M>]�h��)��Gh=m��3��Y�cy���i���G�D�nl��{�Z��99�<����>�9)������u�,^Zh�|���k�B�f�g����CB������n��Ez��q�w��[U�S�}�1@�R�R^������"����
��Z�M:��p�V�M�b������Lz����$�O,�S�*��N�����u1����&q��!�IB�w�����}�V���b�L��d��=�����xy���&��U�����]�k��,��9�����3��Q��LZ�x�
G��%�u�sQ�N6qUK����}���(c��4Y�����fgOBf?t��=���fm��k{3&gp'�����f��&w�p�������!���@���Vu�X����J9�w���fs���Hn��27���l�KU>&$!���������I&�T5d]8�������O5f�c�Di�Il��c������B�NG$vt�t7�X��wm�]��7�v�9������sz�y:�ck�T�E}y+]�ov��kL\i
�����8o��6)���O H�8v��,�8V�/��"��e0����mD	��_���h���X!G�e|���<��X4��#:C�}b�]����i}����'������M�9{'��#�q��f����5���AA}wE��M�|eCwy�$����5�K08���~Ra��:��Qe�G�������OfH���hb�R�Tb�",9=�:��y��kp��Fx\x�go��� ����4�J�$����J�����a�L��Xw�Dw���+mK����(uo1l��I��E����3+�;<�������k�$�7���v��DN��Y�E��������Y�Q�q�����3����.��1
�}��Y:�1"$w�U���s��~J�Y�I{���+�h��	f�>��~�������t����J�����fG�������D���Y��|C2k����VP�H=�L�z9���f��n���������k�#d�������#��P���_�Fbj.5.
gx�M����Qw��-���;��7�r�N�4�����bjBK��
��y���v�����,�;F;�����w��Z�7�BD����EVqp5FI��������A�4�t�����b�`�O�xuu�E,�$Wi�mbtN[>�	z�r5�.gY�O-�
R+��q��&������c�%Z%�O2�C�����s�y�n�s����yB���e�Jb��m��T1����C��V������	]�I�8�����a�5[e�A >9�w��1��A�n�������yxH���P_R�T��)�
Cr&�B���5Y�!���n�e���|yLt������b��$���Kea�'��+�KW���,���knn����Z�{��p��(W�������2Rl�������}�0_����yf��O\?2�[+�{Z�q��_$)����+���y�1�>���������3|X]���q���Q�v���H��R�������O<�9�:�����v�VLs�?�����G�B���w��en�����~r$�r��#SK
���}c��Gd���m�;I�r�\+D�G�lpq�5+'��[��9���{9��!���A;���w:n��zW�i��l��oe���vS��f�|{�+\��~���M�&'����$?o�ex����/5�R������w�w\���A����L8'�>���	�gMk�
.n�z�����nS�������];��+�
�5+}=y�����^����^&�vLm�#+������c��> 5�|�	x�B$����9�E�enf;��������s���4�����,�l;��sc��E<q����MaXn_����N>�&>w�Ys��T�����F��w:�
������S�|j�%�2���q-p��;�������-���M�cG`�M"�������Y�1-{����*��7h^	TO`�Ph���Rt������\�H\����ra���1,gU��^R[����nj�3�B���zP�d�R�H#o�����m�[�%�����;,�Z��w�Z��6��f��
9�
��"��r�Ul3��/5����E��;k��-w�K��q��"Ct[�z
�
���P/�r�Y%us�D��Y��Dt:�7�X�t��c�e�Q:��.
�Yc_wN�k+0����Q��r���y���Qr,1���:���Nv�gc��?bpZ^��q�77)�q��X�q��T�BV��������(�5�K��/����@ H�4`����M)yZ���n���<��wZ*\:)o*@��N��l��}����qJ7�:��)6�t8�6��A	/k��R���M-]0T�p�CB���x�nk��(x$
W����*aH�)!Z���2{koH����T������:����D^���F�S��r�X�*T�9�,}9��O�(���������+�9&��eY,�����8���
��%�����[�z���n���\���-�fE[i�R���76�,~������/���
���6y�g�oW������zS�����q+����N�}�[�s�"�X:�s�lc��7\(C������R�|�J�eA9������v9��e�o�h{���Q@"B�������H����������l��	�t�����������2��������������l+]��|�M�]���;y���M�g��-��CE$�6�@H�v��`�P��[���������:�y,�'��y������a:�]�sv�Y���7�$J��=���=�vL-��%	����O���y�G�3�uX����9�����Zd�yM��3\	Q�/w����q�+���k�^I�rWm��NC�V�z��\����J���$�g�m6������b��r��P}$M��(���� ���7��[���A��bKl8�h*_|:����J���@���c����f�l�H��S���Nfc�Nm������hW���S4�__t6%f������������j�����{������y�����X��B�l������v�m���++f���MV�i������Y�s���)c�i�3Mm`�V��B,�]qb���B���{���N�K�q���n������]|���D"�v�����R��BBx��F�x�$��we�}#$7���3OXLo�)������^V�c%>����bU�����������g��[����%��q�7N>���2���f�_���x�CF���V�:�g?6R�A����,���^�)6��,�Z.�mqM����y�7"WY��eq^�:��o����!�9O���a�8j����:�
{K/�� ��w�<u�f�8���D����G�n���Xs���:&�Mz+B����M�1��\��������E����������O�
���L{�ax��O^g�Y;�z���e���ej��5��+1���)�Sk7��[��������!�	$�
10!��f<Vv�L_��;[5g� �-��a�k*�T"��(����a���p���A���_ve�RF����|����I�1c;��^����7���2����f�e
�X}�	'�����Wl�R�w���}
m.y��}�*�
c&*ce�n���y���wp��!��{��rE[��j�'��Fn2���.��n����+#�I�}=�����ynP��nN%uK��w#{AlnmuX'b�;���V�yC	a|���x����n�\i�\��R�)�u�;�+��3���������������`\�����7��b�EjtEdj%,i�7���\0q	" ����j��:�=�����#�s�af����q��%�n>��<%!���l�o{j��P[[JY�9�e*I%�u�0e�Cn]�/s1�.�R3H�{C��,�l��{�(��[w��(�^����O4��j,������%�k�'����K����f�����7	^�l�7e8�Q��k�d��.�:��wSw���px2�&U����~��.=�J�#Fk����D�@�����3
�4@���C�����9-OB���\���o�y�V���U/C�\������n{�d�gW�9hD�����wUT�u}G9�l�K�n����
���C*��}��]�����,Wt�.��z������H#�q "�@}�\l'y�j8�*sy6��/R�����kR�{Uz����@�_�3�t������������K��(��Q[�������[8����z�9�I��8�l�F#g5�f��N�������}��90�3�#S1�ni�v�
�.���x��_�1>Y%j����<[��*����Km����'[X�
���������ML����P2�7�l��Z:�h�|53
�`D�p�$\��uZ���l���\"�J�\�Y�zc��M:��;@g�|��=�:1Y�����&�OR��Sy]��u�����M���w��lC.7'U�k^���������
n���9���w�J�W2"v2��M �	�`���$�V}]]9�����p�)��_��Vl�V76���!%V)G^K�S�0��{��]�R���q�'9�
^�wZ�z���D��T���EJttF��������UN�_r|5_��M3�����U���h�u�N�{^��nA����|IU�C{�7wG/�����8�Y�;��MS"���$���X7`����s����_G��rB���ly���J "}���b�������r�>�#�\3�4���.��8����={��Y7����q5�n������{=�$�����#\'h�k��=+���"<�r����7���-w)w�5)R���i�w%���q��t7���R{Pg��W6�El^�;�[|�����E������4-��l��������H�hNr_p��:�B��ELk���9�{�-���+K1
�a;��p��iDxf�!L���\ec�/6Y2�W��_te�y���b��{��t[��O��(�����1�D�g3\�*��7�A<&���T'x��;���wv�z^��V�Jg,R�F
�A�����13U�m):�<���i�BY.�gV��y�\�H7����Y(w!%�C,f���i�gw*�N��dAQ9�9p����f��3�U�{�����1,SE���(���|�+h�m���z������I�g���OZc������5���h�M�W.Ht�vT�SF#X�}|�U���x�+�'���a�s�Q{&��������'F_�]+1�+S��V0�s�f%fc.�g��iU�A�n�/Q{Y�%�H���G����y��f�(�K�x���'���_Y�U@5U7��J�\�Okvk��v�j[M��y~�mg�����������zP����,g�,�������9kpJ�)�/���p��QE�1���z���W6t��R��-K�]d�#zs�=��UI9��vFw+}f����n#��K�����y�}�m5���{j���
vC�\�+�s��j�/~�xu�I�hl�#kofz_q��c��C�{�d���%�����[�0���Gwy��#���ul�v����H����0Lch�uu����ixu������`�W�wdK����..YV^�����Sw����i9��	F	^�iU���k*�U*����x����Y(����pQ:�V��6�e>@�9"��O���"x��R��fP��rMZg3�2X �u����xo\�t`����#9C�������#����O]��mY�6Z�����������2������!���o� ���5��n�vH/sC����P��L.���z�!Bx. yu���k��%.F�wpz��TAa�T�����6��v��4u����'�nD^5�73�?n�g0���r$�tE2PC+��8/������2��&��[�%@���>[��GYT����E�cE��h�_^��S�w/=�\/J������}����!��mCg���[�����#�� �Ea~������k���3n��w�XK���w�??kGt��;��iejUU���(���M����-r����z�'����;�����5Z^7q�C)�57{2��n-�;�1�C%�UDE�����]=�3-�m�o��S�vF��W�\q]�}+q�n��c�������yY�����%8[9,�k�@�$�w���6��I��G�-����~��������3�������|Glj�4��v3���{f����������'�
�������nwqOs�FZ�hu���D�������\��x�f���1qs�� Q)��:���ym��H\5&g�g����5{&�n��=���{W��\�8a���}[#|���o6
k�BL#��7���j�9#�M����YyD����!@��.�����1m����j'U�o��w�5���=[�T]\����t��m���U�uI�g]P�iS��6�(�`YT��F5�G���������gpL�S�e
�j��s>�(/��x�{{�������KR�Y3���\=Kp�l���b������D�U������V�+/-��n)2�s��El��8�lL�/�v�]y��������.�V�������]��5�|�{��'X3Nb����<kT�����~YU�B�HD���K�_���E�oM�)����������0�Z=��>4`��r��h[-������;>��'7a���=�h�	���K;a�����W|�eA�#�p�%�/���)���L���b��h0��
�M�����k(����L�Q�y+��,�b�2T��eh�;�-��Tgr����hB�7.��f��E��m����m������S�\������f�o/Dxe���K����3H&u�a�I������y�I��y�+�����
�WhV�3�2�'*V_E�3Aj�I�����<k:���'-��{��$l�����{��aM��U2��0�\�����,,����B���3L�q
�!��U�80oVSN����%}�l;�P�����OaX�jv��#`������d��m���|�n����9y�Px�6��b�R�w�%w�\�#1�>U)����M�]������:J���e�R��GZ��%�!� \o�dr�|�8��j�v��!\�����}�-W��y�����w2�rKL��6�7f�1��d�=�^Wf���@�N�WvJqj�����9�3}��1k���~HD��7� Y%<��O�/kN�m��2l���T�Yz����o.�*u"�pwht
�(k�C��9�������������
i������6M��,:O�t��D�����lu:���|�;�����]G.SWa{q�h�Wtt���af����>�JO�iPX�^mY��o��M_>�l0`������.�-�������9S��L;���������N_L���U��,��t�{k;���q(�O�H�F�:t��!oH���x}�vS���4������&�����q2<��[;��RE�2
�q�������(��z_ge��O������g'�{=C��B����"��j������*�!�6�c��S�'m��4D���Zx��2��7^���i�s)YU�.Un����.��Pn^u)ej�wv��+s�Wp�wDV[}��f�"a�p�V8�
�q��>~��q@�/� ��@�� #��[�]��1������[�U���I��=9{�Xe�p���[�clS���&1;�"��n����s�M� ���������x�����if}G�`���|r������xt���h�q^�l�E�^oCA�W��}z%�s����c��~.��IG�`~|&J�ym���N�rD��8s����v'N%#m��)9$%H�EI������?{�Z�(��*�/�����*�/��T������|(�taG�����4/����U�����n��P�'�V�LB�We�n�L@S�Z����@�
������&���`9�D��:��Qy�5
���V����@����U��"��DAG5Gy@E�UM�sA]�n& �@�)��(�5]�9����g���������92g�7�JYX����}5vTi������.�%���t�EZ6u����eY����_���[b�z<{]�
y�O|�����j� �iX��7kqU/���2rHm%XT������&]��L�Hb�6����%��K���.B!V���7bWB�� g`�����#��s����m[F=4�X�7ok{���tf���R;i&�E�2�"�yGXT�i����vq�w��wm��B��c����������U��=6sV�]q�{��H{�t���=R�;V�|
UM����TVa��ydNG^\y�3/Ue��XZ��XT���vVM�kv�r)���"�WJ�R[�6�������+�����/����|<Op�������e���=���QG�n/w]�����c�-�9�,����a�/G�%e�n������)�M^�A�����c�9��j�5�+�3�����ulN�;av"�cO��������j�"63���7�:/{�WfL�GRo<xo7�:���r�-]�f����K��s���h��d��:�S2>y{)���������r��C���`��{V���;���B�@�Z=|!:�����h��������/j��z..����/s�����C���*��n2��D@g�"�A8�+�5���I�o�]"�;R�e�����Z(��#|�y�����������T�5����3gdkH�@�"e'n����F��si������n�6�Kk������63��=�h��\�:q)���i���#��c�o���V��%p�K���rt6�(�p��O���'�*���!q��^��\��A�P�NL\s'�)w&����/l�X
Hg�pW�N��%vm����^.��d)����Q����G#�*;S�;	��[��~wz��JFIfc|�Q]����K��&�����UGQ�����i�����
�pyeba���QL�X���e��\��V=��\��M��5r�+&�)���?)���Xx�)�#px�����B(ggJ�#�m�{U���
q�������)���h���r��������f[j�-T:&�o�������FNY���O����g-��W9�����S=��U����9h�����\�������jg�����u
����c���p�m�\BT3�t,G�b����zu�a��*�dp��ui���zu�0�7��8\�j�/yZ5=��{����N���5��}I�ga������<�z��}v�dB>������{��2�sH�<w�t�� ��.����K>�1,�)��3]���<���O�oSO$�9�<��A�+Jv@��:�C��U4Q��M�47��oYj����Q��1��.we�9t��g�3����^���������]]z�����t�(u�:]�����q���;��~��G�Yy6����[f�
�9+4�y��������o�t���<�������������vr��o;��A�������RM��]���e#�RF��d�7���zy��i&x�u�mV��rE�]��[=�yk�(��<%���
�K��Vt=�w����?(��
$-�b��zn��s��^z����m�w37i�����2qrL����X�������n���3O&�9/0]���_`)YHI�Ua������=�]zw�[GZ)���{��y�3�7��rK�S6[yK�_�3;��?\"�K�;�18iF.�^�-��� [���]"�^�.�w��*��������vf����&���ER�������_�!(��$��tG8����K{}�����[���I�k3h�����ShPf-������{H��h�9����I��i��*eC%S�s�����++�Mh����Y:������������W;R�M�3�;V��������.��P�9>����^��m"������`��b�����j��0������Sw���ZH�/v���x���2y4���C�B����;Tk
C6����1keME����gf`G:�����V�L)q����u9%UL���Ga���~����BJI����^��1�7|�8���L��$Y����*�2�O�%;�U��N�o6�f)Ok$���-]0Gj�b�-1���P��Pr��{�*��|����Q��n�[���a�N;�z������wXO=�������_d�We�V<B2Z��x��oL9�z��]Y���,L�w]����o����a8]�G�d'�V��j#��(4l.<��=��2�L�ifw�E����!�Qx���y��Hy!g(�V�\�-������qiFq�;HMB���s��_�-���A����~��f�r���(G73W_Z�\��zu]
��p��)�-�n�l���Qu����5�:�����	�.a\9z����1�������p�S�L!�Zk�Z��E���hF;6�0sv����|-�x6��u��K��>	\��A��T��Q���x�<��������: e�k�@8����� �B(M D�!� �P�M�k���P�����@�H`���	~�dC�f\II7�,�^�"�
r4�E���������L�D�j+' �o������w��	����Cw2��~����p�]���� #��\��D<q�_�xzzd�����t�Y1���"$��b�AE Qb�Xe���������[#{_W���W�E���@��)���c6�D%{YX�%��]R%�zB��F>0
@(#9�����I�t�eXv���y�%u���j(�kUk;�;7�@KMw���L!-Uq�[�{n��z)��\rg����(�-�#��G�${�n��S��R�����=�X��*���D"��t�L��8&
F/[�C�����l��1
��C �5��+�����:��`���d���>"�/y��v%`�8'!�u%�Y�^e� ��J=�|<Y�0�������9uM������hk�X�BOZ���|3]>�W�����k�7���W;!�{\�p���Uy�YzS��E@1�9u9X%������7CS���20>�aj��XZ�`��������.��JQ2hz�L_�%Y���Z�j7]1���7Y~�Lz�x.z^�������U�;���d�/�mTk��=
�R����:>�XUC#�m�{]�^���"�t-r'��d~P���TS��w�N{� @����jk~J#������r�X��������WS�;�4F�'�QM�+���C
�����H������K���,ICDz@�?�J��E|����uZN)U���0$��Q}��m���e�n$��
U[H���Z�e]���X�
����R�J0�{M�s�,��H��M��6���|��>|�i���l��y��s�O��X���oC��%Z|���V��|��7U+���hh��� H}!�e�w�^,�0�������>M�hk��.���9J�y���j��h��J
�T$��^�c��H���9f�b����I[qO��B ��^]���
���H�����N�`� ����h,��y^H�X7�8tJ�{63ZiY�DHu����8n��^��A�+n��u�����H����Z.�m�F��^�=^�
x4�"[h�4M*�u�sm��x�!mBLB\���V@ZZxp�`.C2�v1���&"�j/g�d�V^r9��l��Tp�5����c)pl���	'�BsX�C=����������$�&H�Mf�v����������-S��`A.��7���U
�4;d!�*����f�5������ j�s�W��a=Q��
Y�V�],P���!����e1%|�el\bK��!�]�q�:@
X�kTM��-p>��G��L��U�\YI �T"�� `c�; ��"Hhv��0V���N� ���U2��<^d`����8��C
���P������^�w#X)�>�M@���m��
2!^�l���D+�j���Q%���:w
��������g�0g]��@�~��dC+*,Du�����yzt�j� ��6�76���e�Z=���Tf@���^�����+���v�xd��������}�{I(!�g@��Od�6,U�,i�8�%�q|����x�w�Bj�1�� .\#�Z���%��*�A!O
!
x�����hM����r� Gs<:j�;j�W=�>��f 	�VWGg�K�8l	����Q����m���@9����MHwz}x��[Q[;���|��,p	L���"��U���Fa-9,�����O9z�a�[\����l���i�"�B��C�3_����@).i�Um�\Ve��p����e��	��'z����5~�H T<dR�1��g��(��2�E��2@$q���o
�'O�'�����
q8��������d��s'C������U�f��?y����������������Cc���,�r��T�����+�TniV��=�S��� ��������e<�w0��`mX�k�8�TS���&����ZY�>|����W�g������M�*����
G��}a�����Yl����m��U!R<��e�}�$�7�G��|�|��?uE�BV�/fVE���v�u�������|�XpU���=�'!�i��A�����bX����\�����"������%\�2MOj+����38=��2�4%D���|�p-���v���W�k[��x�{U�;������]�� B��8�$$I$�u�Gv[FT��.�P�/WXB��b��>��lZ�Hm)����h�"�%1��*g���(�f{ZX%BY�4XKH�����B�*����0mya�����jt@���n�V��g9���*�:���	�t�q��Q���Un�q:MT�����M����6�a���?���������������
�n��,���?��������~I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�I$�9�s��9�����{�����?�hx�*-�������D0@�'�nb�9�Eo�:>��Iq(�N�A�Gb���>5��1��<Ds\.��1d�h %/��
�|@�Bt�@�Wuv�������56��&�
X��<kL���S�������"
���|��������Y��?G�p�^�@^�d�Q�Mh�P��H&0�!�=����Hd^�f��e�DB1/i����e�*]9���Z%q�jxE�'����[�A8��d�5���%�B\�t\����%�^��Z#9�t�p$��J��%�v27��{-BC��1"#{#]����a�q�F���&I����LD���k�7�����iD���w|���.�VO�GH�C#������,�=�M�R���\�JE�8)4\�}�X.n�u�4�N�kA,J������^����7&����a�<�K���#��0G�3�==��A�e
BIQ@j!5K���1���-QY����Gp�
J�)�A9+�m��ZmR�
,��R<7S�IH��Y��ttEC^��S�����J�������<C��Dy
����m�Cb�*J�?
9���@� �M���F%���2!�3��q��C
������d{�X9�[�E#Hd�)6��)�jH�4�B��K0��n��L^3���&'' ��Nt�m���D���Q"�������!tS�w����aps�3M�������=�	"�(2�ws:�����K�����C�!g�5��*]��`^����S�^�wE{�8���US�������eY�t�W� {��������{X�5���/�k:,qMLh�Z4�!)	z�T�J="�
��;x�H��QH��QBZ)�L��8� t��K����"��'�3������u��R[���9`\��@Tl
"��a���&�:+���::o�d�ex�����zh�1��~0%��C��s�Cqbp3���jv/c!���MB�5��nL�0@���&�E���	<�������nbx�eg:�P���;bg4=�MpJ�t\��
i���
���eG�����W�R�s���;A:6oC� {`�wn���w�������{=]��]q��������L����j�|���W�������G}O����I^��[n:%8�#HR���.��!X��q�uRi}�J:*�5:4��v�d���}�	F�Lx�t��B@����S�sub����FC8Ft��!��gi1!�w+���_0�o�5�^{]����js<�����i�&3����>�w����=�	r��B��� �����<
*���
�9l
i�����\�1�0B�UJ�3�[�3�������������Y�SK��I�;N0�u.�O��>���s�1xB:��e�0����H\��Y��G�_j�H��n��P����$P�H���J��9>U�ju�F��� �����+�8<�L����+���v�+��+��)Rh����,�UY�/��;U�`�j<��wY]�Irjr:�T��z��"b&`���Q�#aKg�ib]"0&�1��������r��

dr�d	���C��T517/X��LU��g-�_?�P���:@���%Y�dgQ�E��i����_`�U��e��Xr���B�����nD�n�E���m�V����):��q����h�dF��fq��4Q��
\��Iv�`T��K�Q7�b&'a� _<Y��!Sn�a������K&�q�p�B�kY.��u���\���-���E��4�c���4��sc��.m���9v����v7���m#�Tt�]i�k������
��^�sggci��6���<������W�1�H�$N}���\�&�f��({��Gb����Xg8F#�e�
����a�v����=���n�;������;���p1�Xn
��(�Y	��q���5�cX�=��T��D�)z�$��\�bw9����"	�sx��	]���<�M�9����`��Gh�l�T���s����?*"��B2$����J�Sz�
��4�I&����&6�r�m�r��
��l
Yw�
�AH�����:����9fxMI���)����.�7�<�Yb<��^<S.�������K-�����gT����=�K���u!�_P�t^/�����e�l�:�uqV����jK\R��L���e�����9�.��cX&�1M�]�6�\]o���y:�S������������e�*��&q����I�X)'�"��/�z�_������l�r���L]�4`����]�����l����8*���*�����W���W1�?_�f���_�0A��8����r�,���'�ISi�r��GWY��p�w,CI��]���������>���F�� ���������g�L�(�6��hhn�}�����0n=-!(d��J��Q�,����vL�X�gL�qq����]�u������i�u�4�ZX��y��Y�L�\�z��v���{N�(f��w#y����+;�������y�2��������{W	�;(�������%2*���v:�#��!l��N�T�ubT�V�|���z6�\
uu�6q{]h����Vk[����7$���R5uy�g	��Z8oj���6�iC���r�2�r��7���oH�n'��s�8��m�y�:���&�m��������
{��������O���t�q'v��T�x�U)B�
F�1��r��{$*d}�;�Q��>Rl��u'�Wq{�=�/a��<52��[�R�:U���G���e��	�wc�^�q���B��w#C+2�{�������������	L�����mEk2��MuP�����Vt�3�[�[���e<�uw�=�u��<`�No����w4��;5�%�==�Q��tG��gL��k~;{D���H��}�N����R��	����}�\$p�u9��K
�b��e8�:W4�9c��{-�0��]v�����5���^��)L�e�FX����������k��K����=x�k�}�U�K�!��7	��^�,��r�����R�y{��|3��^�{�����f��c{�;P]���9�U�bb�������{�}������z����d�o���/��~��~l��N}[�����=$9��g���X���ZI�k���-�-V����#r�o�n��$��|�pr�]����
(q&y�CH���:5�g����t���C/�jW�����M�db}C�3K6|>����p��C��	���v]}t��3oR�A�����^;��&��R��}���U1���5%8@F��\�l#���[��z���o����o��z�����:�w���?����g7�*���h�����W��������0jKI;�)T��_���ny��}!O{�Y�ub1��u�l�%;R��������������M�>��rxw���\5j��z�o�H�8��KV�Sy�t,�@������Vtb,�E��nP��a�?aZ��fz�*�.�E�|Ts+�6*���0,L�B�<��OOBCA5L�m��R��y����`(W
�s�L1a�X#y�)�<�/������[�*�7��v4&`ai��e���C��GDFM�i���E���t�7b���+���r���c���!X��O:7������]=!����H�
�M���&�(=��c�&��j����X*��-�/O���9��5|Z���� 3-�����N[� `����d����*���8tH��l���Ugq�\0��H%;H���}��.��Fa,&6�R�L���LjZc�;:�np�b;f�9��������;��C�T��E�����T���-�T��ve��;�ke��h�r����2cU%`��w\B�.k���KQ���>mw��$d��/������7m�\�u�i�����D��O���#�L��u�o�C�����d���t�L^���h�
�1y���(�2����SY�i����8�� qa�����Ao�0��?UB���\Q�U�.��Q�2U�Ly�0��{O�AoS�yecT����R5���|n�}sAp����O���#�P�;j��Zm����Z��[X�q�G?[����,d]Z6T���n"e�� ��-���������Z��A�����Y�F��~Z��}�*���kA�L�W�<t�&��[�BIq;�a<��i��������Va�6%�>zb84O�����F�aYw���x��������P�!_��<�B�'w��K^��)�d�ew�0�V0�Q�o �W�<,Q��1x<�+��;��^�4wtY9��u��)�`��
����[;�CY�*<{�^�V���?Da^Xw�������0��v��QO��Gy��yg�W�����u�]CE�Ot�(|Y��y�%��r�����&��6|�)����:��u��+��h��+��!DU�)�����a �!]�2�MG<�c��v�����E-2��:�����~<E���������n��g�s��e�L/?	k�i���X��9/�J��A,���^,z��th���w/�4��#��`��`�i��U�>����+��M������tl���I6��'�@�{1���:���tg-�vU �e����:����T
���6)c�(TP��6��v���w�#���W��`�_9�I�w
��z��k��]�-��
%��AW{�L��T�Z�H4�o�Ob�:��m0
)2���p��P�}����9
,����)�c�����������J����������dB�:�������/�!���{��@�15�\��M�������3N����NT��%��32������ i&��Q���� ��H#������!��x�����`��q
������������k����
����w����.���`
U9-�i�U=�����y�	������j�]��
N�<�������������b|R�9��2)�����i�S��O�|m��$�^z��L�4J�R��;k���QF)��gWF�����?����W�����G�F�� H��D
��3�A����o�h=����|b��6���_�|(g~�b-�(��<�P����5sZ��G��9�����&�R��0�]S�����,�cxb�k�G���hH�K��F���������>KUI�A�;>n��4���>��A�a��h�f��Q��W�����Wd��Q�����
(�k�fj�S��������s?G��1W�9X�8�s�����15�L����9�	���x�����)q�}Qo�{x�7W,5���&��PF����*(�M�s����h@��c>���d��Mw���{�S� P��W�����GQV��.gt`��$��_(u�5���]�9����
�A�g�
����}�����W����lfM������
f�\�<���AA9�?�}��8�`Va`����$�B� H����P�� ?b}�\���{����v�� H'�PY	e�C0�Q�����PBr	Pd�	$$a?\C�8�!���PB��*
A~�rA$SdV�� 2��TP3]	�%1$�9�x!0	I$B�n�."!���*�����giO�(f+�R���p����d�TAj}E�;���G����2I*@%PH�v*�n�D�G�U��9���Ng�u*�����}=tl���@�.���3a��1!T����>@O��`!"$�pxK�>UD�U"�9T�B�#��V��(�qK�H�BQ�0�H�p���4�v5��V� �/� x���*�����+��3�~������f��7��R��7�����I�`-7>�H�htw���T�D���U�������]��J�>d��y�>�Vo;���i�v��(�A9��f>�PkY��;1���KRD���|��X]�����g���(}�X��[ ����l�1X1]�1��MME����Hh�"l�A��79w�.q�C��� �
D�M���u�`I>b��|����IW�:gZ���\wZTx.�� ��q�U����H"��(w	t\w�B8@�Q�}�\��*��$!T�(�'��b & 2
�%�j!"�K&*b>�"���B�����c� �qq��B@��S�����|l@(9s,n���#�� ��9�u]��"r����I�I ���$%F�		�hd"��(�(�z#���R�����!#��TN7��Kp%*A�@���d* }E������}u,<�*[n���(BH#� Q��d$d�	�zT30I9�P>��!&b�dE��
C��	:B��}����nH���Q$��' ����O�C��&��X���X�|�@vQ�CR<����C�PC7N������@�Q%^+�L��H���K�������V������b
T�$���`d��.c~��:�K����L��>��������p5�B�����-IX����F��d�A��������w)w�����Z��8q�����t��.�r��*&R��c"kD��-$3^��
2��@a~WtE�POQ�M����LF�P{��W�B�\�k����3������!�E����"� �E	����������$wE�'��
��Yp����) �!zipZ%`t`������! Q!��j)��T�$��f}������pMJO�Q3���	&�Qd�IC��
�E!@�s�JQ
�A
!)"�QW1����F$���Lr�@�z����HDF�A�j.��q@I!	�Pq�BD	?(>��� 8�B#SEn��(H#"� ��FI�@T�MYR2	�(�"TWP���UUE�Fv���z���_��B����������XH�r_�~�&wc�}[fu��}N�����|��7�&�0���\Y�Xr>�F�a8J[��JBU-%�^�{��Ku5��������(�iC��T@fT�����R[>�O3�(Q�[�M�I�Bb-�\�n)�X�g�9p�P�^������i%s��$���D�j9���5y]HTF|���7k�����-���g����?���H��P$�����V��/�p�2b,��� �bE<^D?��R�@�~����6A�j$����.xT�1Ht�TP$P�@<
@.+s������F]�'�iV����>B�&(��T�B�B,�\PB�"��
��#D�!j���p�qg�����B�TA�BDn���W�L��6b�URB�hB@�F�n'��j��LLB����h����$����y�]�R�)!BIN�$�%W�$��
H�,��!�����tn<�D��R�z��p���$��$@��u���D �x$�W���2��N�^K)���8G���Gm�������LV����H`�=�e�p�=��Pq/�j2�.%�2��dw����K{s��.����Qq�U\�����~(0/������(������A��{���OHvJ��
V]zD�U����.��J��
�vMf���=�(/h#�-Lz%k���5�'q�KI�Kbh�����#J��!"�d���:�
l	�\�
�r_�H���tQ�$�@�h��5�T���o����r��(�rK�!"�OQP�a$����x��l�$���BC��
95��'�����_VD�	����dB�{��q!
LB�J����y��TBL���]�r�H!pJP��8b�d������/����O^H]��|���T��<�q��P���L�
��hB�& �!1#�DE5��T�����.:��h*��/Q�j����Q�O~~L������e��B�|0�~z�C��?��.��A��5�S���>�%�s������������i4:E�y�������fB�y$IA�z�M�/��?c���QS��A�v�#�'L�U�teQ�<�Z�V�i��$W�?�>!B�>C*x�	�����Qc���G��@A>#@BB@� #��u�I�(���%@)�� �����F7�4"�&�I��$�����
� �3@�(	E4��C���H�j�,$�(��(�cIMNs|�`F�V@�/�S!	��$��1���j�}����@���!*
[_rf	�Q(I�	�p�4�v�������,��BI���>gY��Bz��6�
�9DU����P��xC��l%Y����
"L�d*6�%1x5&���:�_�v)(����ZU���Z�����w1$D���m����cj3��o��trb�������;�cd��0Y��L>uk:�q�|l����{��}o���������7m8D
(M�L�������������]i�$!�Ne��^c�\+DQ�bB3�K�i�e&��i�(��$-�=mL����J[@�(=q�j�����I�y�q�R�$��e,-�eyMW
���H��H���r�5YwP�c�SH�<j�t��x�'s�����PH��V2v7bb?�Qq�>�!�"#���w����k7u�W��*�?�E�pi��S�5���
�Rt�n�[��%y�mQ����Dx+����80�����o��Ablz?F'1��4!�ZcE'a"e���nwDt�������������B�����'�~�Y���vn�sp����v�%0�2
�(���y
�Q��UF��J`�xz/��W
�����M����;JIAbe�i�	�D����4�l��i�!.!C���oR�N�n�H�"��@�+�@���eDB�5�R�bq����me?9)v�A���dJ���i������]p�|�������v�	SS�P�CBA��
�G�/���k��&��I�� }c>�`���Q_~����.st8��!�>�a���S��#x(�vvZ��2��^�����d�Dt��q�;
��.%��R�R��	�,>���^��y�v�<
+����j�=
�d��WQ���:|S�+>|=����c��Ss;��nD������� ����>���a~��xZ;�!C�R�������tL��Z,pq���CD���BB�LiH"D�<&�~:��r�R���&.K-� x�JR��������X&��
���=d[F�d2=DY���b!T���	����� �z�+$M���@B�N��O��<(������ �q�b��{n�!@B���I�	$�U~|����}�B�����G�]x�����t�^��LR�R����ZJH�����^�"~#���_r�G�$�����R!��Vr\����{�WJr��v����W�l���|y���n����\�%ib�d�$��4y+��6�"��i5�����m�x89��$��lN�0�}��.e��@/�	��k�MzC���68<��o8�@B�B�������jjDP��=%�4���[BM�#�#NM/����P�[h��u��n:��Z4�"	����!"���sI����T�r����y�.W����%B�u\4m�+0���P�ycm�%�Y��
�fL.����d��N1U�� �AY��UEW���J��9l�5������������r={���@�2_v.�0J��e�����v)K�R|xN��G���#N/o�3�.�
�Y�8k���M��J�����-<����)5�[��wHL�c!�����+�8������c����qb�w_^�S���\�4�s�3�:t�w���l�2[;l�������;V���#5����-Q�+d�y<�[�J�:�h��T��:{���p�������d��n&L�9+�%�rW���S�CfA8�>��T�� x \�������(�7P��e�8�ob��b;>�����W��P�GQ�[YbM��H���5�wUn-�:X�gF���2����b�����52vi������oN���(�������zC1f�!G�4�z
v�2��q�{�6��q�r���z�N���L��mk�������),�j@��y�}�s��8
��yo�g�wv'��
�����{
����]W1�����c��p���B$�7�X�e�������m��C����h�w��AcA5'Z��/eU�������j�S4�[9�d���;�T6��+o+�N@����-!l��x���E����%�=��/��W��e(�O���cnE7�{�)�.xxH���9>��H�|���(�	��Jwy!����M�]3�����<��D��s���C�]�ms�Jk�U�
�����������:����1M�/X7R[��� ��F:����7�e�u�:��G=m�pT5�S�e���71Z�USr��hM��kuL�����;N>���w��:��}��&�[89�6��t�����&�Ds�On���b���WW�Q�9�M�u���0��V���v��+��t��|����;C�.���0-���6����oDC#�:�H���� ��u�K���3�����Y���k�<\}�/I���u>cc�D���i��-�O�p2���M�6��������[�+�rl�������w;S:���e�
��(x����:�#E��g\���NL���Ng����476n�'�A�r��%;�Eq�=���]�H.������[��eInj�CD��������*�yv���+�S��w(l�'Kh(.m���L6�V��I��������R��j)�,^��b+�Z�M��K�#��{��/x��5mWV��
��c��Mr��=<F�����Ud�y���� �	�J�\�[�T����3L�xb�=+66��������f����)���/v;���R�����v��1�fK���x�F�[}ot���=��������?f���Y�]����6�\�j�u��������*4�uUq���:l�\7V�����'4f7����i�����#����c���#T���6:[������Z0Es���eV�d&��W��A�Oz�AG,��b����*'�U�*�P1Z�|��Y����Q�W^����J	�����{ G���/D�i�gh�{7L���/8�j��p�_*I������E�	�%������V���m�i
����Km	������5��1E����w}}}�u
}\x�{�m���-��*�����
�l���p�Xe&��\Z7/����B}�o�'��,��vt�gv�(�\{�d�/r����M�];������^����/��3LE�(���=��:�w�������;]Ut��z����������
oT��]l9X�4���3�	{�=��nm&��&�4Mg6���nH�i\tM��um���:�}z�������1���K�E��|�[��Z�(� -j���=�r����~���W�(��r��Hh��\����n��$���n�P�����s��\����MI�X�+Bklj%����*��������Wc�z�k�S��kF����k���D���2L�6,}svr������40b	�[������1�v���"$xK��H�wq2��;�m"`����;q&�����.���
����
i)r�=��^�p�i���Wp�n�k�n�l���/"��7e�z\v�h��}�j�Q�9�f�8(����q��f��*�+/R�f'Q�K��3��s��W����u�����v�F\e<v���V4,]j���R\�,�����{$+��]�n���]�X2��!��+d�3{�L7nt}Y|��RX�\���3�N;�50���ER�nd���������t�-M�1��67��*v�����F���A+6��Oehyn���F9�0ke��w\;����<�6����� 5?��iu��0�)��8��P��D���E����?P1�]�`�I��������R�@���kgYu�S�Dl��@$_��|�2Bi��U���;,zF����bQ�w/�� %k�O�����"O7��.��,7J��
��c��y���;c��i���r��h�%>����g��f�������G�d��y�-��i�����,�U�7��CrS��������\�<�]Vc�@�a���yE������D�����3�@/�g����4��>Oy����P�1L7����:����|�}/��)a 1M*��e"UM�������K(�����"�P�l�m�Z��`��5<�
�RN����D?9��_��������9�������^��������G�|��*UV�={�[�K1���Zg77��0p(Hs��j������u������U}�Z�}oVq0�$���'�_�:�������.�Z����>�j�^<����%W���� �_�`��6U�zU��"7m����R1L�>����@���0��^�}��Qb�Z>���������;�>��e�g[�nqK�!M�3^zB��=�����G0��iX��}� ?��`�Oa��4���P?�Y
�1U��.�V>��,��.���y?>{�;������*yU�g�d�(�{f�S|��m�R�0�*�{mtZ�*K����G��� ������T+zI��`b<���@��7�y��T�������T���������%>��,��2��< <�V
�N�e#���4m�
�dM�lL^5y�s�iM=�!E->L��VM��g,-Pyn����Q7�3�b�K���8�|��Kr?/�UWf���F��!���~��s��!#qS���_sA|��/�������F���		�4>�B�o���6��0��D����x(~�5u9��^�����&��[vp���2=�Tn��]�������x6��B��Q�����NUD���E�x�
C��]��>���y���F�2�fo0L���lvUu�����b�a��2|�%�$����tj�X�]�T��1BR��	�~`��f�U�W�|4���;�{��f�HrM��%MJ�w�[xJ-f{���e��P���HQ��`:V�/��~�n��h��m�D�:��+�Kl_��P���]V�}�������-�C�ob��q��"G�\Q���zw.�*,S�y��>+�B�����B�?���Qf���N��PJx��i,�
���PF)���J��,��e�~�,$�b��]�C��Vi�N�������g���oX��Cy���G�z)�L}����L3��������h�����^��z�k�|`�}?5U�m�d�Df����<Z'��>�����$����G�(����eB|M��u������d�}����$�_��f�B�+�:�S��;��c��5������m���f�TG�K��Re���~��^���sBL�E��MO��j���L��Z�+���2m�How���n%T�����	 ���a�V�W�:fE�������>u:Y�!�;��S^��ix�������3},{g�;*���$������b��*�'E�mB8qPS��9![3wD9nYc��\h���V��n�vP����������`���xux(� KW�E��O��d�D��\{�x������j����,�Z��>�:
1.e���]i������c����'� c��l�;7������Pg@
����!O���c���O���~���i��)/��^��>���K��W�NO��w�N��ut��W�n�����sm��d������p�9����::�S��>����m]��&���C4�K��;�/oEM�A���}����f��9c@�p(>��\Z V*xJ���[k���{��1s���-'Jq�4},��
@��|@_
�����`c��L�_bY�O@-�\(���*���YDF���-AC\!}L����&���
���x�<E�����APQ
�L���N�3?���H6�Z����69X����P20�w���pn�A6D�-��;x�k|�B�^�C�<����^G3��%k�:�?���X��
�����t�x
�
�9��$a�c�������"�kF��]�Xa{�����������(=?8W�x���$C?o�
�����du�����)G�D0G��/	�����S�U\��M�$i�;&�����}���/���w���S��\�m�����o��u���w�����u��w?Lh��yQ����:�A���H�+����%���x�q$O�0���;������sN�)P�*C*)@v�H��)1P�0������
-)��*��_��;��`���%��
R��"OH��9mP��nR|<��"����)0��]����h�7z*DT��fX��&d ���>���������Q5��/�Z����2��Z��H �y2�����B)�~��$6�D$�����~��}��j���j]9G���+��@�!��g�����%��o��]����7�����B,�7���o�@��A/-l��fb���i���+�Jb������4���Yb6�����2�
kt�/���[������Pg
��P��k(�AE�F&��i�izH��)	rr��-�TRU���/���b ��S�-B�
rO�^�������x��X�L�xP��4*��	>7}%�����b�H&Rj %0MS�'�rX#���T���B�}��;JO[�n����l�@���\�BN�= ��6����K)�z����	G� ����
��x�U�5��'�}��f��\Tc�1u��U��v�h�s���w�i�
.:u/4�z���+W��*M���Zw�x��\;wn�M�F��XT��c���$T����I���H8��Z<�USD�l�&��|�B@@��t���T:1-D�^�F�W�R�������EO�re�"[B��EB,k:@�`�x��8������dpbK�%�%��P��'�4��	�Wo�h�@�w��p}�,��T�U._<��Rs}:j79�6.���Z���qjp9f�N8?��	b������� ����J���].��B�����YHEG$v]���+U�e����V�r�^����O��"�:�fD;�.&�=�F���d��������22\KU�E�A��Q��>A%72�����L_�EY��@;;^-��
�e��:�Lp���r)�pke�n#�d
�2��VJp$`��L���LDx�"���@-i� �����x.�V��=�x*��?a�)�����dO�T�`��%(4W��,�Ds^z���Pg#Hy�NS�3����u�6�;����<_,-.�M��Vn�z��0�����>��B?UXi7����B	�#�Vm��lr��8�x��
����vqcFs��SD0�����%��~�����n~#9x��tza�����&hs[.�S���M ��^�*c��S�;�=�J^�U�?1p�B��G�!���
{�"��m�AX�a1)1��$
G���y$�g����da�M�.&�]�h������v������C[�'���i�yr��B�I_�M��b��_��v���&$�,/_At��vH���t����V���r��v���h�C�+|����Q��Y���x����<L��8*��A�J1�r�E�
/�HB���[}`a5����a�Pu�-����>T�����.T2{��q���a8�.:��W����	Io������G��,6�����%�
�g�K��4��"UJR�D@�S���<_d�#�X�<o���D���!�
�h�q�.u�
h���QV%��"[D+lBb_����l��^L�����O���&&+_&���I����)n�$���}�Q��c�:\�W���y����q^�R%{C����Z����)��t���C�+>U�L�;0���E�����|Bxy06�����g��fd�����Y�bkZ�)x,�O��|| �e���(YP����"�:���^���NRt���x�C���"\!4��\H��2$H>q��\nL������K%��������0j6��r�,������hAjH���	�[b��W*g�Z|���v� L���Q	#����aRC�
�!.�{���"������}���"P���>�[�z��C=^T��qum���5����1��?������aW+��[����J��9*��1i�<��]]u^-.��?	\�W���6��!��i!�[����T��c�?s^�'��R�:a9m'�����<���=����p��T��dc�j[�o���'��E58�����_���	
��]J�&��@��_��_i$�6�>�����*$��8&) 15�����h���Tg\Y�< "I,t�%�����1ShEy?�@U@D��w����l��63�(����2P)���u�Uo��|i��nB�s�B����G���a�t�7F��h#X�|���\U���%M����n0��>�(}�5��zE
>�=��TU:!�i��m)�����`�M�AQ
�<����	f��q���XE�����6'�T���O����!4|��f;�P!a
������w���#�0�r��2k�@�^J�yL!
���2���@Y?�4x/>qD{NM�x:h������v�)z��DY�f>�S����j����>.�t��Q
!����^���}��S���,����Oj?�C���5��'{���oT�K(��]�}K�|it�<sm_�l+��l?�c�������?�� �l8#^q$���!����U��6]U��1BA����R�@�*�5��:c���r.��������L�������^�0�1j�(�w@�,��UN�������QdaA^��&T>�g �L!H'�QH��/�O��"qK��]pph4)<i��J��z4%���T.���)�H�5AY(qr�����C���pR�r�8��+8�
�&)�����G��u���~���d��M���9��LM��{Q��cw&�0���rS���]S�19�C���3+{��r9��N�W:��������_xQ<"�eO���	*����aF',�.5�������|���������L�h���x\�j�np�|�.�{z�����[���y&���Cp��1U[5Q�e}x�nM��6����f�)��Q�=~s�Ln���(u1w���r��K�t��gM����2t����cN�����P0����Y������}��� 1<�c���g]e��b���J��� ����bj��]Ir���fvf���x�������J�����v��5���F�zy���}j�B=���n����M��z�Q�����\��W�<u&��Z,�0�Z2v������i����
��Q�� ��������k�c����Y��/J�+	Oi]i�OW3KB�X���:5������f���,%���%������'��l{�D=�f*"{��q	Er�nM���M����T��
K��	���N�h��K������p3c5�y�N�����JW.�l34"!V�6���c�T���!�orp�Q�0f�n�x��;�������8���:e����Q����{���-8����c����=������W����:�+.0;��Y�*��Wm	��d7�Q��U��x��E���-%f�3��$�sD��P0��	9gw�4�_�v#�2��osl�"�-$x�lm�|q%���z���������oN�&^m����gh�����!�������c�,�H��Cb�Z0T���{�
����GG���w�s;1�.;�.���}T�l��>M�m�S����I�W�+��b�����J����l��6�a�=���t/���W8���R�y�41K}��U�V,[ceN�Y�q7�������C<�u��N3����������[V����s��]��:�8K�R������������kK��W].sz4�]k�C�7T���S�)X�[�;�Rv�n���xC�|x���y;�t���s�\F\�k>��+7�R�H��i�O1���i���PF�B�e���5x6��k`/�il�zi.��-a��'|���xN�W��v$i�5{z�5v3k��w�����]�5��T�;���VJ\f��R�s
�%aZ[���^����#�Mn�9;��F���r�,#z�D��U��������G��r�A��4�9G���
���3������'ZF�-v�O7����Z�r�f�*���9bj�L�G���]^��
�NH8���G��b{�nD���*9��&���]s��]�k����c��j�n��-�����x�-���Q�\mv����Q��Ps���W������i�A�-.gb�K�Vc������J����	u*�Z��������W�Z�I���oj��P���j�Le�)y�HZ��3m�xeSM��B�~���l��8o\�o�����W-���[���u�
GUq�kf�(��.L����,�j�6����X����-w
��ZJh%9L;SX�5�B�|wp��
��;h���I���Nl2�W:r�9��O�d�N�r�k�����S<E�.5��vG��;��lt���rG@n�kn��d��S�������Q2�fq��n���t5��'��l�
��J��]��[��9����=�����j�e��M���/�:�����U�-�m*���V:����Y4t�J[I5�nr�h��|��G&�u���^����&���m@o4�N�(��v��#U��Uq��)M�Jm�}��i������]HW]�����d1N<�R� �*�d�h��p�2+6161��	���?E(���u����CFw���������H�5K$�wh0��K_�����`���7����y��Q���5�����l��fQ[��~Eu������H8;���_N~����5����[��6-��K��\e�',V����J�Y�����5�j����.�`��on����I�0J�)���g ���,Th��F������k+�`V�eQ9��b������T$��(,��Z��:y���UD�*�G�p�:���1��|
���R�9��_.���-��:R��w�8$s`�����mp����9�F������I:�i.��+2��}$��mo"�V%����f9�.��S3t����0�a�;t��3�B�!>�c�+�Q6���z���m[���]���[�]����[�V���;�m�Fr����c�{�9��<=���13�eU����H&]!w�����K����Y������ ���KM��_.��*�K�Rft��rz�ZF�[�4-��fj�&��%���'R��Z���R���R���A�Q�=�*��Yl�_��)�8|����=���Z���e*���b��(UR���Q�r������D
�������'�nWC
`����
'�/6#����������0�T;i�������5h�z��(sy#�x���4���?{����M�c��y�,L�r�J���N�J��=����Mz ����\�T;��"w�/�e�����������}[��V�8��l+�����{�7/���w�1�����tZr��~��mg���Q%�Z>�r&��6�]�d��������1#��Jz��3��
3.����u���V�Z��=Z
yE���spk}P*��<��qi�Mi�����@��[���20��CF+�����.����<c��F�Q�6�+��Z�I�b����
�}�d��A3z��Tz\u���%)��h��.�0<c�����\
}]XiQQ�(�W����l\n�g�K�#J��@� �U�w[��jA����R�i�.���X�=�^t|���������&��N`��`����b����'��	[�KK�1���3��Y�� �P�R/Q��]�J�@��H���oy�K��3�g���������ON.����/�����a�cV�O���
���uf'��>�D����������t� :���I��U[��k���VJ���$���met5���vy���,w����s���q-�V�&�]*��NN��!M_G�����O�i�!$��[,�6� �$��,N��y�O^]�H�km!C��ZG�U��c��T�#7Cz�x*x�]
�G�xE����Dy�m�|��%�mfg)��Lpe��S�������x�����jlFB��J��A�W��"=d���]q�d(��&�5RJ1�BF�����U��C�|��#����Y#�D+��[e��,��nZ�����-�.��^���e��l3��o
��MScM}����<[��YVU���^�v�|�q����<e�#��`�(��'�}|�W�����p�8N���Q�z�,�1KD������"7>qqm��C�]�����<AD�l������?(��#�&)��.41��H�8k����W��!~f�w+���\�U��6���l6F����:�g6v��}�@����r���.�4U��]���2x��n�b6
�B���a����������~O�b��=�0mL��z�;[W�8<��m]�[rv+����w��i�"?�W������i�J�!&������A��t��r������l����y]�D����i��������A�i��K<#9e�� �?�$��f}u��x���4�}�w�<�����`Y�L��\#(�-N�Q�{2�bpa	����w���t��~��~�9ONq��r{1n-Y_8�@�5L�],����p���,9������k2A�F�����PNtc���Z��o�3'a5�)���R!�fi&��)�V`e����_������� ������C
#|#��~io�Z�0��-����2+���f|=0�-'������d�Jy�������}_�����B��ap/���3*�����dD���6��K5���b����X����Q�����+��g���<��4L}*�ZK�}�f�w���'2#�-_}�*��~�dF2�P���o�g�bV��|�em���X��
�CrM7����^.G|��VC��-n��J�@Z?q���l����Wm��s~�(����t�s�YY3(���Q���>�,/�u*�p�<��C��<m�f���	L�����Ve����ASt��Q�r����<��3e�|�q�!�]B����wEx3�� 2�I�]F��<j��.�����A����n������N������.E���4,���Z��T�vn��F�=Ez��:�Vl1������M�p>�
�#/�X�XT�eV�����^�
Y�D���0x�[�/E��|��
��E|����B�P�;������?����Mu	0��~����?��~?*�_
�%CLk�p�jx%����e�N+i�X1C���C��A����������X����Q
�Jb��O�M��z����H�
�Ol���qY�}!�^��j���3��@����Q�1�x�z�j3���as@:�A7�iq��+�4������-����^���%���>�P�(��[�Y�?��B9zTB�o��%	�9��qK@��s^9�)���U�,�e�-���D�|��A$�����T@���D��8�������1w_BOE��P>@h�7������PEBH��k��_��X�9�y��&qAZ�>nw�%\�P�9�&e��HG[��}W����f�Il����T��(�F��L��8��!��������r��u���"�B����6�HP��.��C��8�mih#Ku/��a����;�����SL~'vT���b\����� #�H%C:(��q��#���"�
L��J�k�[���8&+|���1�N��%>O
�|�!(��h��t�D�i��}�R����^=�T��#��E�(��^}��_�����?�|���/qOn��#�%^����.X�Z/��fo�������L�BH�~
C�4
l�c����S�
4��d��	f��Q�C�}U�T0R�MN����;|��o9������d	�5�*
��S��t�0[+��[�'�N*�[����n��,����v��E��+v�\��R��(�������nH.�!����Q�z*Ti�}~0g��{a_(�$���-�k��q�[A�\��!Q~���tI�����P�d'v�T�/����j��^Rjv�`���������t��Z��>�p�������}�K��S}�b}D9��y,��YlHh�a����@����m��A��
E�n�yT��,x�%]+9��7���I�D���]���1�K�VO.a�[a�vP<Zx73��a�fK��r������o�YA�Bn��?��}��+�	,t��������s����/@I��T�
M&/��<!���~	w_����f������&KR~�s���j��0F7���$l�`6dk�}tnI�E����4�,5�8���v�
�!YbV%����:��{3��|���$��K��P�$�p��.A�;E�������ME��

l��"��cF�%k�(�������Mw�-}s���I��������"�P��i����v>��A���������O�����n�a>1U[<�Y�.7\���?f��@�_0����R`�D4y}��ic]��~q"��~TE���d2����l�g�6�A'��k�-'r~��j��y^�P����%��~�z�X�.��==";�~��jlG��)�\�4?����A��M��v�H�I��Z
�-��j=<�~��1�\�@� �7��.|u\����i��T�O�(G�*= }?9h[���f��D�����f���<�$��#�B��8s�����j	�F�Xa���B��r�mE������FT{j����f�0������l�eh%J�������,(bU���J�kr}�y��D�[��8�fU��w�'�A�w�x���]��VLoDU9�N�_��
G�r�F��k�r���WVL+
psr���*���^�`���������sT�-�$M}���)Z:p�Z!�L�y|�,b>lW�u����_��
z~$.n�|+�p<I����8/���%~u���e*��4�%������=nEr�:v-���y9&4n���������J�8����!�t�r����A�.��RQ�C����"p��|}�#�y�{-]�6U��1+���P�����H�:�&G������(�C��������:�%���;EB�NN	�E�~]1i$�L��h:���_��KzrA����x;�2�sV�B��dk9���������l��1W|�o��q�_@H
 s����{NK,h����v��_���(�s��H[�V���HS���T,}��T�7�%�B�a�_���UT���e��NEb�q�dJ���?97eKB;�=4GX��VEc1�y��b^�L8��W��1e��(^����h��J���9(5�~���)h���E�^{u�:�<���Jf� 1���M�V�M���3�H(��uK\� I�>�l�&��/�t�L��%�_��x�|������)���Lz�gi���>�P?c�9I8����jP��V�c�$����\����96+!+�]�]��oD��2P�,F*��;Cwo��$�~&�������#��rY�Z�OK��@d.n�C�)�_����0�:1���W�{jF����O����2��Lm46�\����
9�eGIr����F�$'�,������Is}����{����U>���'n��PqT���a�1�O�@�)��A�����r�+`_�qG��L��P:{�������>�n(�J��|&q�����Z��L���s����K��=�a�g�'iC������E��I
����/L!��2��^

I�:r����a��@.'s�Cm�9��R�"����@�R�1�
F���**�F��� I�O(��1�wz�~D�'"8���@t^��u�"
(�v����f�����)��TF�):�+8.�&*`&|��HLb��gA<�����C��%��pb�wi9u�;���,��#�0�������/��B��S�;h��{	
c�����W?�g8'�[��
����-z�&2>�yJy[}_�GR�v��~�E��K��~���1���?��II�W�3�MG���!�~t��+w�\�>�;����:��qb���F�����r��#�j�a��*�	�����������J�+�R)��.�(�@�Y3����s�*��i������S�u�]��6~\s=p��G�:������d����WO*9Y�m�*o7}�����z���6����|�5�.>���f����q	>Y���>�q���3��Ltbi�;�%<�{�;�i%�r���]i��N,.v����v���$�y��w#�U�T�jc
�vo����bEV��h�������.�V�cw[P��w����n���<A> �_]���C�n�D�2��@�[�76�<�������.�e[�[-[J;��f��h�]k���^�Y�U��C~"a�w�B��-Y�!��L��bt�q����A�3k��O*�f���y�7}�������k�����IQ��0;r��������J�������:��\{j|:������������)�
*[�:�����8�%�q���;f�z���G�,-Z6��P��}S�
o���jjO��Z��WX�{ ����}�g����9���z�7���CD��N�o���J�u�gJ�Y�l�Ly:��w[��F���[}�>���9��Z��,�'�[J��p�����flkA@����K!S�7"�,����s �wu�k��G������e"�\i��G\�������,�&�xn�Vx^ko�K��y�q���,�@�F�����2���T�����I��=���D��7�����P��of��=6/QJ����(�������M�`R^�x����ej{�M�w��T�r�Z������[�^w�4���ne���j~�vM����r���|s�{������1��������������4����^^��N�Ppx�����l]c�96f����]v� V�J����#���1����n>Y��8�M�����/
Fd��#Y5�g�I�(��}���������P�)-[�18��l�q\q
��,��X�]�7jY����XG�<�en�B�[�2k��
��l�z��?v��n�\�b��6�G�EY*����D��3����tC��la�K����������U�5t^+lJ4�e�^��$�]��].xUN��p
��vu&�.����g�G�k�H�f��
��,�"��I����<�������]'�9���u��`���������~�!��&{�u2[g��y[�t����w���CU�5�W ����N��_Pu�wWB��:n�=�4P�,c�9��1�3:�u������`��xcKZLZ|����a���u���	��\G�D�cU��-�W,���/��J�/P�v�]�$��r�8��y�{���=������H�V���\��k�;KN�?�
F!���[���;R��YT!~��<���o�;Q��E�����2�P�_N��Z)�����������)��nIB��_W���k)(.�+�S#dD�1�H��8'��o�.��v������[�!U�vl`���z���>v���<�F��)��\�}�\�(�������a��_o�	x��c7�w�\p�$k[�.��z��B��j���o1�����z1��*njE+�k��&��-�JvH��f����0t(�`U�_�\9o����������C\YF����V��T��
�FG�+d��I}������GF��O��D�7����t��S3&b��=_���|��5���{E\#������>�/8}���b�-X*��A�����Q_��z��la�i����DP���/`���=�
�������B>���,m{,
�<
h��
����R���Si8���E��*G��F
����5�����/���}��9��l�E���j�X.D�vc� y~�~���s���+��b��$
�7]?/���r g�i�-��������{��{����P�������/=����nq�K������a�S|��,�*�-�>��-������J7��QX�Z=���0��
����Z����hi�RivV!Y�I��h�;W��<x����"��*�:��l�~��w������;��>��^>�i|�D](�����-�w�6�N;���v�;���V�"������=�W�0D�|�G�]\�>��v�A@)���9#Ou
������F����U�dQ���S��4�|���<>uD�0>��]�mfkb�����9(���Az�k.KR���:�o��F
cI�J���O�~���=�Wm�������y�}2(]�`�}�%���s��x3oV���N����qvn�h�t����-�;d$���0��l��'u����H�,��p�>�P���A��&BN<�+}6��e)����0/����c��>��.�i���W�X�f�z���;�@���H��S�B`��e�@��5�1�a���~zDK�v�pGx-�����w�_4�x�R����r�7
������3-�j�<z�I�$� ��Z.��!�������c���[Qc]���iZ}m#M��g>���h|�$���[o����<;��LV�U�O��f���>����d�� A'W>oo��u�o����X�;��~��|���D|�o���}S?E0Q�W�;���g���
�\�����o���:io5~&h$�:v`�l�b��	as_���o?���d�}Mxsn�~��Yy��u�����9����A�����l�n1��������-}�T�#��}�1�E�*��d�GC|�HSuq��$/N���g�i_�6�2(�	U�����.�lc���i����7�1�g.��`]Z4����6�u�~i�p�^��(6|��#���I��q�)�Y�>\c��jMKih�����;���X'k��i��w�D��<�������d�~���:N��mtZv#<�,�<�ec��T������n=D;��b]����|
t��� wC�?�qQ�tT7�}jgk�y)#�����}^��s"n����)|����	����4�]��|:e����@���������3"U��L��L}�>aN�jO����
�C�b��n|�n���>�1c��M\�*|��e�!�
��c��a�E�/�u�y��=F	_0t��A�,�P�w-N���A]XM�#
��2��jn�������l�3k=�4����!��}{9z*��^KK�-�v|����UdE\��>h�V2+����b)|�!�XW�eB7���d?�'��_20���S����9�$�F^�Z�+��4�Wkl�2���
M����D4��DB��S�,�dz��~��vgXv��O��W��]���g��T_	x����l1��	�^�4�#�D��T��A^�{_�0���~����EaB ���I
���������
���VX����5Tr��H@�
+C����0KK'�T.	X���E/�Z�"���p�A��9�E@�j�������X�����*�z��P��H����E����H�%�=�2
��I^���+�k�)0��=o2x3��Bb��>@B=hY�
��M|��J�!�=��}��:�3��{'��DN)�m�� �
,H�*�5��b-��R�\�M��
?���!]F,���,�6�#�����I���,,M�E�^t�=�ERDq��~�v��U!��	%����$��V��
$��
���$��!*��+���z/���V��'��	i�m�Q����
����q6$+���~"���q_��z�j$��T��b(^
��Ms�A�`�UO���^��did3���=�t(�p��c
�%��l~hCakC� ��Od#�"I���4�#�0Q��$�h����-����������(.�����G��t�/N�w=.�R�n'����*0`�
���!NO��nv��ajP����<��%T��]�X7L�	7��f�ow����"�_x�P�+���dD�L������p ���8��?HZe��a��/�I
����zg����O����C.1�6!&��}�L���wx����,��7���O����R�A�|i�If+N�8���U+i8�[RD�ZF
���xC"��E���*`��N��%g�*+�D�Q�N���lM�_����[��G�'���������q������8�����������SUC��E�+V�R�=��[�=�t��`�:��>J��Oi�~�J�&]q����+s�P�$�mv}���	T���zT�|{mI*���W��m�>�e�"}��S�,^��iv���Q����-��m�\r�P�p��8C���v�B�j���LE	h����=�F[���x.K��d`��iV�������8��{:QOZ�]R6������M��uu�C���^B���Y�,���*;6���TC 7���
H�>^<���8��8��S��K����AQ!I�����6P��SY��jD�!4J������";���SQ��Z����7z�)�������S�����H�7���O�������M
1V
3rY�8��~' ~]��fn|�������e��:����X/�	����5��*���+�V�Vu��*!`�������#$l��Y�t��i1P�
�_��P������>��H� �r��O�	�"$d&G�{���L����%b�V]�^n�M��(9�KNcT$����]���k��q�G��]��Z�q��K����,�Ub���#��^�a�)8�(��
�

?��|��5_������5E�V���W�X��5��h��"A(@��i�hz���_�t�X2��?��^��"/���Y�*�5����S�g�� 6�
Q�-o�4^J�%��m%�4�(K�U��}��=�v=�YN'�D�� *Z�S���%�x�i��0�q���)��)%���gU��wq�qE�����C*���H8���O��^�?@(��P�i�>h����0cC���T���@n��35��q7�V��n��`Wyw��yg���IeUO�2���������~b�>,\'��T��-�Am�j���W��l�Q$4E��.��9���u�@ed{"�p���^C#���42`���!���5�1y��%��	�Hm6�
4������x�oRJ�����O}��������|����C��3���O�����w�U�z�%;�Id���`���C��+\�y��Rs��Vp��w�f(9t8&��t�u39,(��b�x%X��>��B�i���T����@����,a��^���Ws�����~)�&�U�����G��y����H�j���� ���� g��Q��*��������6-S�F?�c	m�/((9�������
�	��(��	?u� ��x�SR��5"K~xB���j��Y'�~pW��=����{5� 3��>�)&��J�4��~>;>L���W��y���5�DP��%�t���AL���\�$���	�r���bv���c��v�B)���i�
4Kw����J�pl�&!�����>(�6u�����\x2���^�Q��F������\n=�g�Z�=�����,A�HWJr�~�$X�w�����v��SO�.MO��C�zW���0���������9�1Z������N�A����%
"'��o=s+G7+����cNS��e�ig�4-�)B�S�4���@�2apr��YK*[L����W�?��������L�!�ab���0��)��|/���B������?;R���+�H�G
��;;�QX�#-�X�d������h����%*��*������p�d����b�$�-�}C,<����WkKjQ���������b�ih�>��#$���3��Kr����*6��F?#B"<�)Q#�J���!�����u^ga�n�f>0�������i��q*�����9�qB&'�L���^0p�9�$mgi�C8�&*i��"�5�/mm����$�������R"���`]�<�~�-P�	_v}���R�U����u(�����u��1�oU��7D�2��"~Z�:cL�*�E""�|�X���������@{�D;C�w8
-������������� x�s�B��8����/whDFtQ��hc��
�<,�E4m
h����qC��8�~)2����z�����`B<)e����Nj��M��,�w/hT��������T��U:73{�a���Ew������W������������[�����iY�B)�wb2�������D���s0�����GK�����d=���������%�X�q�������*T��a��O&�>��\9Y��cz�Svo�m�����������R�s����-��r[g(�R������L����_G7�T�������x�G\�����NAx���9G�����yS/��8nZ.B�-�so0r����Q�i�|7v>��{-��b\X:� �Q�/�J�Xuly8-F���������H����qR�W�{,���J��Vh��7w�F�L9���y�������������T����^��U��������������)���h�Z=5�NG4����Ulx��
@��7`���l��vr�fu"��V��"d�=\xT���k�������M�z�r�UZ7(�&�T�}+"�}����n����"�S�F�1j�
vKt�s�K��2xvV�2��P��m�5�(����5k,��[���<��:p�����w3��vdP4��E�z��0����[	�]i�FKy�+Vgh�I�&�Nxq���������{p,{�>/�F�}���a�Y��K1a����20�}q(�����7m��k�s;5��Hu.����C�#���7v/L���X�"��"v�i�|��=���;N�K|k��������cd���8�.��5���)����wj��S�=����[%r�����=�y��?�
�T���^:��ay-H���WD�,�����8�=�v��v5�����)��s��[�����_`��-�zu���^�s^��A�����5����/�#��:z�����"Z����$rl�5���p$�\��ta�B
�ua�:��ut�����.y���mc�f6�����ufrX�,����d���X����L5wUR]��W)]���E^��Wx7]-��'l�3�n�������]7�ok����[�s�] ����0T������o_*��U��Q[���[�9��nER�]I����,�2N��r%��Gm���5�Y����^\�x��D �q���3t5lT�Mw��3#����{=zB�V���M���[[q�j������,:�q������P*���k3w=��r_e�2��$�z�&�,�/K����-o(���omq��C�.������6R��z��PM�
�F>����8t:�SH�[4R�:,�sn_��Clov<��tm��`�A�vMT��]L��I���2�g!�7�[��x����S�*�a��~��o3��������}�4�{�"���P�������''u��a��#|�y,��I�!����	�U�����l����r�L�>����x��^~��Z�����c���"2�L��]+`�
�.��2VlR����b��Jw���-�%k�� ��X����}�}P���{��'�����n��P�W	jmAX�Q �z	����\/����,�]-�W:�������k�q���B���lRq��a^Q�.���{���I�-���=�����Y��}�&|� �������x���������&�V_Dc�s��@�����w�j��cq��;��rN�[
�B}_���7!�JW�j��I�.s����
���pu��K�;+�Q�)tD��x]���{\�/4&�>�����)_2���:�w�R8]����k�f��;��������&��w��3a��I��������.4�z�<b�m($"�\���Viv�C�����2Od�Bm�&�����N��[�-��X����A�uau{r��~�%o=��i�2�g���Z����.>�u�;���V��b�4%�j�x>=�Z�1
��2*�q�������`
w��\�����j�)S��;i������������M��E��e��U���R}=���=Q�{RU��V}���n
�|��rB��x��K��:�}z^���y+o�yU����U:�"U<�V
#�������1�����)I�Z�e���Nvv'&�Q�m�� ��(d�xZ�������\���c+H::D�V�p��4s�G��Fv����7ln�wR������v#M�9���S��$r}��������	��.�-����b�A��F@s��^>�0M����i�Y��;���g!��.�:j�[�B!�{�A�:��G�g�����%[V���f����7�b�F4	n���o��%�s���l��6���K�:�:����(�
Wt�.h3H;�5�C�sv�uu��������O�j����	�����o.	�#���(zI(�+��Q��J0"��,����oj��X�c0����?�C���xz�r����x�����2�z|��.�jJ�m6�����,��"&��`]�6��_D�^��I#���,@+��/���O�+�!�6�\���^���������*9p}~�L��R���U���o��*QYm�|�]mC0���zn0b��
]]�A��,7q�T�UiZ^��i�&9��-��8T9���Q��B���3Ix*U<c(��l��_�����o�.���{�_�_�1C8oEgF�����o��{_��y4���.<Y��|,�O��WU�M�X��\`������_]R��!��r�����|�46����=����Z������s���{�G�������Z��A��P�����\Ncj�S�/�>�����V���!��7�c��c�2�.��dQ���L�"�_��Z����d�uvM�>��p���Y`����
�/s��.�v4d�h�3���+�3vl�l�)�P�9a�u���:S�dta�]}��s
�����Z������)��{�jGxN(]1k��*p���!����VW��yy���
!�����
����F�K���?j���_;o��}��N�>Y�_�D�.}��z��So��^rNs��%���u��Zc�Y�����(������k�7������
Y��+ \�����I��g�����D{��!V0X����m�+�����])es��1���m����L��F�w�y��>�
w�_	a��0f�rcTV���[d�
�
>����T��.�P���_1�9Hc&Xx��������T.��8���yW�
|#�_�J�EN]���i>����U
��#�u�K?0RAl�S/�7|k��*�'@���c\B����&����8C�}�
�+�wj�@��`?%z�5t���U�����>�����ecq�qy�=c���|�<�^[�^Z�}��) @����g�x��{$�����>��`�R���Z����3miT�V��=�O�������k7��Uv������h���"m�^~��+I��VX(�w���4b���
���w������%6�����S������
�hQ��u�8�����0.[��I�.�U�c���A�M]O4�qSQ���[������m���3��;�������
�n
�Q[w�LZt��O�`���OG��e5wR���b�'f�V���Z`R��4���#n�_�]�W��|�^�	�F�,�tZ��+2��+dJ�o�<,1����Nc�a���iG�����.3�~	a|*z�Q��}������wjs����

��|U�@>���������"���\�����k�\�=��^b�g�<�FT]�3��_���f,������7�<.fm}��,d�n�"��|�����S�N�Qw��{�5�X�`>���BUx�]nk����)���������~��s1�~Q���#*=z9���YO�qxo=a���
e`�S���z)���<Wf����������mEv&&��"xbcZ���<D{0)OU3L@^����v��I��qE�
���0���������U����e8��:�����~@G������!������B���):]��L�X\�",F`�9U��H�[��;�l���iR��O�V-U�1�)�����[T�,��!�{�vD��18>�_��TG���'mf
[i���.��j06��K5�\���I�����.
;�����P����>���E�fB����1=~�}��}�M����H`z9��0�pRX������o�d���l��C��}
��������N`]_���|������
k-6��rjwG���>s�|����X����(���Y�VyIkx��Cm$�j)B��Z��+o�A�N�!�u|����g���:}z�����.���T|<�f������8II�*������=����-� Y��^CHqm(�/��?tSO3��r�;R�X>�0�}�.d
(���|0$����l��/
�<T���*1,���������~���UP��dq�C	u��Qa<���oU����(�N%�b�.!5r<�b�����^�=|�]�!*2��nB��#�8���"���n)��|yP1/��w�1��D��"ev0Y�}��!����\u?���QD|����������XI35i��)54�Zh�U�Qg�kaB��s����"E����������d�����n����Q���:�HZ_D;�"���Lsu�- N���+�T�ZU��Q�7�AC���,�P�n���a��1���k��������j���J��Dps���2�9��T�T"�qwHX=�A�|�����,T��������W��%������*�b����}�UG���ug`�������b��;b��0�v
�L��_�����o���E�����
�=G������z�[���;�i����Un9�qy*��O*g=s�����%+%|}u(�O>vNOU$=uI�����5�u�yh���M�[���R8C���xh�R���,�!���G�!�h~ap��H������B`����u���\G���c��
�_P�E�B�?C/X�GdS������_$9V�1�r������z�`��1@�����f)��b�O����%��JSq�mL���UN�aJ���q���?�m�L��&q�2!5�P�F��ym��A�����P�9jyt���r) Fg6���Vj6a�V�H�P���E5V�<���ewm����rF���Z�:��9��_�|��0����yS,&-���)JD�y�h��8ri��P��#E.4�}�d�	�(�R�~����0����A`�~(���!���
�o^X� �8e�7��$�V	�	X����U��U����zFI~aE5�*$��U��/��C��>�@�_m3v���+��*��@������xC�p;�-`�a	�6��l��$������U���Y�TS��|U 3��pS���e
#�b�'����l�Y�i�>��l��Q�+�������������q8@pA�k<��\�@�m�����=y�u,(�Jkq�Z%�LBeo]U��hj�2���[��700I@�a_�CO�B{9���%�%(^��qq��R0^�O`!�@x���Vg�U�oz,���7m����r��������4�af�_�h��0$����:�Wi����4����&��7
U[Q��O=�>������HK�����D�b;,��9��X��*
��J�*,����jbm����	w�7���B�d�D���Oy�Q�#�����,?��&������b�A/B�l[a�w��t���Ak}��>*�����I$"�GE@?�`�x��R��A/����btz���YbMU��S �|Q�o-$�$�}���*�a2t���~_���a#��~S><��+�+���~vIk���~~����6�%�<�^^&��mF��c��T�\�luO�C�Z��n'�E���Z���t�1k�>,���q�Z�D#���q������)���6���O�?���������
"��"u��~�%{��{	��F��!%<}hQHC���X�F_j�u4������FC���@�'�������%��g��`J�PCNs����|������i��|}t����c�I��N;���+��[	��,�S�;U�R�g���{�����Ri����[^�g��G��^�;�2I����v�+^"��g{]�(X�h��*��z�wrbuQf6�	%F���UD��`)���-%�VC��Te��<}��4s�	�@���=h*��=���t����Le�
+u�B���/nk[���cK%ZE���y�3C���^���M���������{��:���*�(/�v��@�ijWa:�gk!x�%�3���/�����I��S�E���s�j�e��~��������?�`������/�)�X����b
 ���E�\�W�rqZ80Dv_C�x�'03��u%7�������g?�`�a^������cz}��@���3��8�Rq�Q�%E������1�����W�����F�nid
nV���wrx�mf{j��r�X����O�r�-�>7<e�dF��JI��m[t�?Q���D�H�!��H���/(�����3z���X(����@��Z�^M�s��D�w'�������K���*s$���b�dK�(�C���nyo�I�+�V{��QS
2�q���	�����*N}����p~�<H����K_��F:�%_T9���4��y����0�,��������5W]�~�C�1�� $��f���h�R*��.���Y�����U�LLA���JE��S�������(T%�P�p�������,\���4��n�7I��k��0����\@B��/q�Qd���L�&fHJ*h^�_fF@'���}9�l�<y�-S�JAo{�� ���QC^[���4m����--�;!
�qTO*�YFRY��N��x�9\X��g��x;�N{�����
�X�c���_����x�;�e�����8_ qa�n�!�r��d��=0swV�9+��`R��;�r�����v!�v��X"�`��8Jq���R��h���Z��������,��dq2�r'����Y0������	�$�cM�����7�k%P�t�������i�wA]3�>��RO��T v�t���ou�T���
��:��U � �@ LP
���\��[�;]t�^��w/	P�)�z�e��%��(-��i���%C-�3��ITw
,��-�D��I���d�
������X�����j�������d}~Nq�E^�5��>�/��~z7��pdV.ZF=[��3���*x3�]��N������L�C�����#K���TTY�����n��3f�$���2�*�5g�'���C�#O�kz�����/<o�wQ�o�������+u%u>��f�ou<gES�X��CN+�w����.����$o��Cs�����{��bu3Q����	�W������4�j���1s�E��\������xt��(�
Aet@�=��X]�(�Y�-�z[{T�WW-���Or�F�d
������lWUK]��&
���\���O���/�ME�b��2�Z��/U�Y}�U/`���9��{m�);{%��Kd���e��3�d��iTt�%��Q5%�/G������}|r�;�a�,�F���{�V`���q,^�s2<�"�A���o'|;&?p�2�����ged\G����vo!JYzyY���g[9
��gf����K����k�����1�oY57cyu[���:�N���X��/R�9S��-�IpX%n�t��!�����n�x�e��o���?ao1�
rF��z������		Hom�J�}�D���x��u�gw�cC�iYc��t��<�Y�"�5�j��i}��o`Y���=v���������e�9������u�}w��`�ZRl���s7w�N���8\=�=�h�����S���X�
B�3m���������E�`-\2��{�"]6*8uh���������`�U�/.�4��EEW��<A'������a�2xV.{R*������a�^�1�u�e��uM�����<zNv!�j������*��m��eo�K����]fq��V���Z�X|v1n������k�c��7����*����#Oq���b����n�ou��Y]�T�]���t���Wqf��j�0\f
�V��/���\�p0	Ad%��F7�z�����w-1h��U�o]-
������"���X�>����H~�7Z������%��y�(�4<�G1g|��>����x�E��v���
h�&s3�����Z���]D.Ks�;D�t�~<��L	�3���>�
��}XFC-�����Rk�H����������Z��b<2�>]��FK�������e��y~7U,="]l�r�D�+0~�T���n�y������
�$D{TQ4E���y�n���L[|�}�e����(SZ���?d����e����>D��I����
�t����A��f�B
��0N��aa��"����r!ZQ�����D(�����F�����wgY8G�=k�D�3po�KNg��PE�����C�E���Cc����D���iy�����}�������l�\���������J��U��s�����_
�S�"eB�|g�����Mu��}SU��7�"c�a�`>�3���K�����|�?b����\�����9��.�m��r�|��bK�K�^�$.�_�7 �v3���W��P�|�w����d�h���%�ZW�����)�#B0�UCV��P�'��^_�<�5x�'�����������E����m�����t����k��F�-y7���=���/���9��_���y������aDB�~D��V�i�\q�JDU��Z
L���������g�nv�&�����Z���]Q:d,���������T�h_Aq�+��#	`�F�j���k�X�	~�;��xy�����g�^|������
�}`&�?Kr������5��4��7��N������R�C�4}��|=�����x.�@>h���b���k
|F%���F\�o�r}Z�7�_#�
4 e��j�9�5�}sL�����nfW��@:���xA�{y��<��m��Q`h����D\���*3��o����ct��k�z|���j�Dp��^�R�� �����q�����a�Z����d�G��E�����:���5�"+�����Y�������x��������k�i���@>�_{� g�b��
��|:J�<�.��N����g�3��J�yF�����& �R��W��C���o|B�h�Pu��MH-U�����C|�[/�#�8���[��@yVn%tvg���1I�nW��y����(U�&t�}�\��=j.TR�����De��d�-r�R+NA6��%/V+��&�w�\X������Tf��1�'|�z'X����ianu��D-��N(p��K�������]��"���y�?��D�)i~Y��Z������ 	~�\��y���JQG���o�lS/��.�����q/�@Ib�J�����=�����D}��`��x�I��l�����O�$R�+��n|����^�*;]���?*����e��h#�Q�'S����~���x��}@;��NY\��
����n�u�����y�������g����Qb��4���tb�6^�Z���������k��D-^�������9-�����Ky78F�#�W������qb��F�D���Q�.�3s/��j������G�8DZ,/���8+��A����i�X���O}3X�����������3�=��������qmt"	���������{�������1�k���SQ�mv�qI���b�
7J��K���
g��"�+�h���m`�qP��)#������5���|�7��H�RN~DD@'��WC[����&?�������8���������3J,#��=����g�y�<��CNmR��;�4����jx1?3n����C_�y��3�>���Xjk�	�X�P�����W��L�}�^<5/���A����e�WW?�Z(�<�hW���F���:�f��]:X�T=�v�w<]B�����uuH�14�T�\���u~5��1�<'o�t�[SY�� #)R�`
����)m����#j��|=�"I��MR�t��@�Q�W�$�U��Ym�����Q��&���X��c�*)�e6�x+��R�!��40kL��r]�h��9�D5��}t����W��t�����X`�2�P�YO���5����]���3�j}��+�O>_������/MA&'����2D��g�A����m�Z�2�shY�[X?P�d��4n�T��G�,u����No�o'��A�6���T�	��7>]����5l�U��`�J�"��^}�����T�]���r�D
�����X8�K�:�8����]V�������N�:ED;k_�dT	1�0�86>�j�^��N��G�Z��G��$,7����s2��u��G�=B@�FcNKq���z�6��E��3����HE��G���&k���r�/���$��N{3�B����)�?��:0+j����@L�M���
���8�p"H[���`
s�(� �G>�<+�$+�s|�a�"���Mg����+U
��w{f������D�ZU
K�~Q���W_�y�3/�I������~���a?�/m��4R���_	�-V��H���{��dFOB�8�/x����a�x�����4�d�1u��R�{W&35?S�����a��i�U�w�gX���o3�HL��KUDpB����Orz�s������as�i~�>X��ov�GQ"Ame�D����x+��UNU���!�{����HC#�++ytji��-��0�bx�10�$6V�M�O�@�}����O�|a��p��R��A�^���n��*ha�]����8������g���n��<�\�_��
����?���J���/T��H��( 0���}�*�Rx�8�%�=3-y������r��7S;-{/�k�p"<F�1��k���Q��}#���
8(?w�����	�����Fu
!	G�D�4@���O��+~����+X%�\�����~��3��'��x(�����5�4�t��6G�:�'�E5��Z��g��\}�>`4���0D@���#��GR�2�4`^4��QP����5b*,�Hc�b�T��8(vm�*��2P��_.��u��{���C=��+��!>�[��8�L�y�w�0?	��
U40�Vp��qz	������+�9$����}�����hI�*Nuq5HM$ |k����R`b��fk�����QE��
o�;���%��*���(�N�������$��;�F(%����.�x� R��^���c+�x�!�)1h���fy���S+�mF^��U��\>���t_��./�%�
�k���S��`������Q@�l��8n.��\~��EY�_B���U�3�����^�
�n����u�N�Y~��U���o<�*��{XG��B������4���S��.�]<�^�U�Z=D D�,�A�e�>��D��%��)�����~"�[�`�,tw[�g[+?���
e	@����+�{�1�Wx�.$�,���OA���`S�^��a`�D���������������XgshYkl+�+�00}nU������/����p-	|��+N;����<W���C�,��iq����s���'*�������(��/�$A�;��M	�/q�����������������LA�@��a3�B!@��`�Z�$�B�V"$z��]��
	
�+
G��8�\g�O*� J��,��7�W~{��6���EP��Kw&�+�3�Xs����RM�
������r�*>��n0������
�^�y�&cV(��]i�Q�VZ��r�}�[/3�C����&��>�U���/�U�L��,`�����s����(Q��cE"�on���h�i.�f������z�bq��W/�������$�IA����j:!>�-T�����8.!Q	{ie���M�!a3���F	oV_f�F�,Qy��Qz�J���h�V��1����&@o��y�����r�T������]�d^�]�����������k���Y�X��l���s�{�1�tQ�_�_/��o;|���KdP���9+7nzh99k1O��}>�*�:�t]������aA��{N*oa�u�D&#S�;��%��%��_��i
'�x������	��y�
+|j�	Q�����IX�c�8��P��B\����VO�J�5D���?	�P�Q �8{�����>���m��$Y���1��N��d�w�e�D��,
��o����obuM���f���:C�J5����1�:���[�t����boz���}��
��gN���
��
^"�h�����)���u�����O����Z��nR4�u����^ ��K�N�^��T�;6{�JA|P�������^���Yp�6������4�g_���cP��u���c*�E���1
*\��P�s+����X����B�j��lX���1N��-�j�|T��4�j�}�����\�s�:j��5f:UL�5�Hy�Td���B	eW���f�ot�������;;��d�N��K����l�
M�v��T�DY�=���<�����U��
�vs��h�9k�r,[q[9;8�����^"J\�����Me��_��VwNh��k^&w[����]����t�wI��;j�L���l��5��/1�")]�-��\���r\�����8�7��s�4�>b*�kh�6Uw���z�2J�r'sT�7�v�g��k�f�y]��������r^�5�A�+���/
��S6lW�w����;=B�}�'��zl�Q[:�R�U�����.=���$�4�n&�W;�\�zu�i�6.N=���3��=]����y#���N����8E���V���Q�5�W�nOTb_Mub�{1+
)�`���!,LI�T�/L���XD���i�+t��W�e�����,�%����VR+���Y��V�6��*�[/LS9Q�[�r�t��u��~,�6����.w�:LH��>V���e�]Vu<�n�����`u-�3�s[y�k�����H	��S+���//<����k���4��"��!�����?Q�F�axuY�\�OT�s��gt3uW�&H�mc��{&�K��Z�������^I��Ch��a%fE���g
z�����s<<,�{��4z��p�\��<��V8<����r-_I3�(�7������b�7���U�gh�Z�3�zC�:}�6�������{	������O'5s�2#7o8mQ��s��s��u������G{�~�%��#��0T�3������PX_n��Q�z/a�V�
7�8��D����:�t�nP;X�m��D��&v5B��4b�u���ov�������3+��l���B�koI������cfu*����f��-
��H�Joe����d���4�:�![��j�q��f��g�yQP^X�tn����.�.���'�_g�i�S������O^Qg��� ��}nwD�:��$�6)w�|����wq��Z��f-��}���k7<��>�w�]���u�������������)>9'3���#KY�u�����4:��E�6U'��pB�d~����:4�sS]����z��s���L��[����J&�����7lKdu)p��'��]�#�$^(�W3HO���I�#2�
�*��P��/f���]Q�-u�n�n�<c5��U4!E-R!�$���a��y��I�����T�L�W��c{���Nd;�`>{s�><�A�g7�u������|��Il])��V�������h���P�w�xglqd�i���3�}M�n=A�\��a�l7��Y��I���d�.����.�X���e��9���I�LoB��:j���5�
f���V4��^����h��&w��hW�Y#�W.p�����YZu��Z�]�����]��F��7�J�QT^� �A[�J�[��!M�_�zS������*V��E�����+!��u2�c�)q}J�7�n�u�H����VTh������S^�u�f�u�p���ceGl������u�7���Iu(s��2e^n��	�Y�r���V�O�\&�vq���wd��v��Zn�k>��f�G���X:m�k�����Vk]��6j���<}S�`���GQl��x���F��P�f?b����N�%a��}f8-O<���hh,�a��Cd��y�C��+8M[��{T��G��1��\�C�FU��n�������ke�$����Q9S�LL�e����������^�N��V���q=1���G��1\A��U��_����4r��^Ii�]�I�]��$���V�xE�t�>����VX���5t\�h�:#���N����x����B�-#��c��9�*��K��c��+nam�����.;`�<P�:���o��H��p$����AruX|��x��u�����zl�c�F�/����>��YGoc�n�]���u�{���Y����$7�<)��������c���E��h�3�<= ;�^��l�xSv	Hf��P�-�m�"(���YlN��k���:��s�md���p���\�1�����v�I��IG������wX�l=�����v{����joOa�Y���:9'���>��������/��}2OF����-
�����OgI�q�����4@�X{����O��]��N,P���=�V-X��R�_��#���s6&8i4T�46&���yC� @�_^�����?�7l�Zz��">X��Mae�i�$�+|��3�X6��a�NMi��u���s����5�=<~�&��F�������
*G" �h"���g6�P���o��q9
S
��/����*���H�C��;�w�3�O�������������k��US������i�_���s@[�/|�0����A_�{l��@U�p�=���p���|1��@��v�U�V�]���l����������qf5VpJ�x"	�a���9��u��*��]������r�2��>+>@S����jjS .�>����qIc�,���4
�vD�D���2Z.^f*�0��8A�y���(1�o�<4��}�}mc�~�/�M��)n���7���{];/��/jB�6���>@�����#Kx@�>���U_��:��m��'��	9�����t ���H�D��	�{���}j;�����*��KN�Sp����S��q����qZ�\5��5h|.��;����
���0��NjnM����t,GT����Q��\�T�R1�������[�$F����{<��E����ibE�����8_��X5N�=2���/w"�s�u9��L�3+��+��1������xh[�@��\^�� ��D��<�^[O��4����	�{"J0Q���et�O���T���=�Dh8��S��������"z���o�KV�S.�I���_K��}��V����+h�!�yv�E����q�j����171��� }#.Z�x��IoI8�����i��"
��
�V�-���b��}&��/������/���}��� 5��>�+���x�e�w1>�D�Z�W��\�w���������xM�U�z�@��xz#U����:��=p��h*�d;�#U� �D�p�Z�R��������z6�0������C��~D��\�,�r������3���(�/S]c��n g�������B�~}.��^����<�9��2�@�����MD� �!��m����G>����4 �>CD}���
��mc;"�^�W�-]J���P������k�!~�e����}��S���U`3������t@��W����aw���5/�����
��iP���]BhZ��t���Ok���i
?p@b����b_[BL
��[)P��A�j�W�i3�l��<#4+���}�";P�g�����-�>&�����E��y_2�����N���B�y����E����_�F�L�~�4+�u1#��\��v5����
��<\u=�YH�`�����U��_Z��[2��#U��pp������*�4@F	v��m��.o.��qm�
��[�wl^�R��sG=�R����`MUIc�<�px���A�z�~��T;�g������;������"�)�����^^*K�g�L�8S
B�����'�J2i�.����q��o���V���]5$�y
 ���G��
��-�����@�]qp|}�}�y�>To��'���G:�5��-4K�&���Vb����P�Dp��z����Vm���L���n#���g�/�����cB�`yYgq�01w�4�������4��������*&d@����|,Y����N��w�R�� l�v����0X�����:iW������}x-��"z��e�Y�%��$���
s��j�~�y���>"$��q�&i��C��k�}���Xya�^{�W��2��vifo���8����Q^y|���,�I�@@���I���q�k��x���� *�Z��r,��<�b�[`������kl���q�<C��aG��1�sC�q�yV��� "O�^��3GPw����V
QN�C^��j������k�������`���iu����+���|��z��-]���)Dr��1�`�k��h�������1�B��C�Hb&���@j������/���9m��^)��r���<�A����#*h�r�V�$����k��9|�u���=
Q
�X��� ��w�n[�m�JWJ�. B^nM,^��k�L�kdn��tZB�����/�J�OgjM6��KHXC��u-�����$n>SqP@��z���_�GS|�������'c����nF�Z�?U�yg���{��YE��������c��f��NT��>�\���FeEE0�w{�x�����)_(�/��?YL���-_��Hq�x��<����;b�B�D�%�M;�\2B�(��,��:�`"��,g���Z�����E/'���I9�dQB�b�����))�	���<��c}��Zp�- �J��' $�?y#���|F�m�)��0�H������
w5�:X8Qg���r�s���ji �;�t� ����R���g�bFTS�*�$u5;+�K�D����r�X��E�Uh�G�.���#���W.�v�P�Om����OX�����T���}��"�Z����\|��0�t�=�K���'��-�R���T5�v���p������Z�5�V�
yd��;�����(���� �����*��B��}|������
���r���b�RtF�EC����)#v��Y��!�:��<>����B&�;��V#e4��]y2F��:�y`#m�5��p����2�S|��g<������B^����mL��P�d7���C��E�vP/D�%�^���(^_��N:�"zB^�+jw(U�i"	$����%��Pf� ��Q�c�n��8���)�1�3
�\�>#>R���2|��=�YP�+Y�v�Z�
�)�\/xY���k��]�!�6�p��7�IsX]���,�m�����j�/.��u�F)�)SH�U02��F�v�W��Q��#�bE�{y1�����/�6)���@�Z_-������r����@(@�v��& �@2#'eH]HD{
C�����D�� M��
A�(%Q�@��%B��d�B'��e��$�HW��q�U��$0`���b�@�H<e��
-�E����F����&{��#�x�=%�����H�����f�K���^]�s���[�6��>@~��yb|i�0�X�_J�^S�6���f��W�����x��
��p���O����EbWw �P��J�mLL�p���S$���w�6�����%�� ������������B!+#��=^J���y��������m��~Y�+��C1_�?������{<�0��N�[��n�����-��,��?v�?u���Q���,��D@S�CZ�k�=�������ne�����S�����)%{q���`5����0�����%����z���6}����^����:��U�Hj�]S3��U, ��B~y:��R��to�?��w&)��!;OE�[�8������k^Vz�4�3}�����yx�U�jP�L��z��&���F�#�g&8s��~�:����z>�Q3#�V��l����y�S^�j�V����Vr�`�$�ZS�F6���?���_m�f���H�T�*/(;��
���;s��w���&��=5���s�w�0:�~��-�3���K>�*�i�I�?�IEd�
���)!o�{RP����T-��s���KU�+���7x����+^
�\k~���3��G}���d�LN=���}C��aR�KnWNk}�w����'y���#��|X��@�;�`A�g;
j�!e� �_9��tV�
i��|��x�
{DvC����	.SL*����BT����^���������;�6`���i��G:��z����B����"Z��}���DW����0�����VS+��*�*�y��������X!tO�����Zl�����E����b^����X�-:���\�����(��@���9�����95�d�I�	E?R����W�6z���m7�J������E�I��bs|W�u���O������+#��j��d�9�{UK����
��)���8�G�[�l���XO�1*�.��rGX��\�`����,AP�P4����;-�dzy�+�`����i��2��P���'���>�0���������f����I� 	i��-�E���k�i�
�D�0t���.���1�7�����.k*���=xY��g��sJ*�(W�*V����'��f���h�wKR�W�i2e5���RB�n�_��h��g��c^�QT����0�k������p]p���2��t\"K�������|�
����f��a�q^
kf�Pj�s�;F�i��3r'H���-�u�����T)�E��ep����h'�9q8���lz��Y�8�0���vH�m��c%ion�ejR0�z�a�F��a����i��<�G�S	u<�I����VP��y�t�D��1�!a���io�#��B_d���������nh<��j��-�IJ�
Tv��3]��J���gwr=�tzmJK��U�U�x���c�P��x>��9Mxv>�zK��e&
�|#�9@���^�K �
��#��[u ���R���9�Gg�[�o%�ZZ�L��^��m\���d����A�FP�;{,�M�[�T���p���Uh����6�X�v�2g6��xZ�ep�� �����c��v
J�w]w5��2��LN�9�w�n��K��:W�����{����N�Q�}$/��������'��soFV\���ff{L�9����1i�C��tI��=3/��l����=IJ!���4r���e�u���^�����u�p�V��%��6�'1H�+��{{	=����8~De��/x^�.]lq��SPD��%�efsb�:�{�o��&����o�W6��<�����	b�; ��WM�|��4�N���xd[��-�"�K,5KXF����0�H��&-Oy�'>�i�;�T�WF�
�������nX�JA����/�F�u���IY���+v���M��:5y���~���\FB��Q��rwgU�,�����H�v��j!AL��]����A�����L�M���N��T]���d�56n�����wR��O�Z�j��oF�c��^8T}���i�w����8+��Z���ngV/L~��r@��f�M�_��Hc�ig��a�:��c�S��� ��
v����S��Q3��5lGg
��%�[H(��)C�n_���4�A�AZ;D:���3r�����ywn�����#�3e���������K� s�����O\���Q�k�}7����N���|����<13]��VT�n����}w��Z9sF�d����VG���]|3|�����Y+]d��m�wR����KaxObQ���u��,�� �f��T���)R�n^�f�l���Sj�Vd��V��:�������CGOKzuNeM�T����z��������DgQ���AwSR����s6��hNG;��kf�������~9����?:��63��5:o��3/��6<2��^���dX�E�R�Lx�Y�d]5V��k2����n���
����]����9��I������e�c�X��M�e�N��[d���_�{�Bg������uw6�^Y�}]�V�+���������
��=���o���r
|9>J��>�z����c��O�����G.�"���R���� ����[�Oq&y����Y6�U�����+ff5���m���������]��-3�S�����w{��1�u�;s��fw��yv�Y�+a?G�Q|Y���d�S�drp`��G�gom�J`��6�����=������e���KuW
����l����.s���_$Ql:���,91��i���}y���k������n<�>/CN�����
�l���DU"ju	�}Q����og����m�7	:�1����3���9��su��>�5��|�9f���f������Uw7n&.��ow6QGpo$I��W��bU�_	�+hf����Y��Z6z�_P[1��g���.�G��v.' ��[��������6�0R�E��y�4��vs;TF��t"��~D�m���VU�&�!CP"$f^��H�c�����3V�x�2�s���VU<�r����������v�n���W8�E4�__���3�i�S�v<��*TJ
�/��&����Y���4�*5c��>�!�������g!�����=c�{��-���
*��R�a����,�kdw|�����L���/�.�����$V'�5����o���6
9&���-E
y])Z�+)5lhW��H���yj������#�O�os}�r��=�+*RqM.�y��P�v �"�;�������d31����]�����xf_t;��j�c��OM�{����7�fTU����/K^�����k{^���6�����v��:B�t�zT�u]����ZF�����]�|������.��ur���=4+8��w*��v��QS�({����A���f.4<���%��o�`����|����u�Z>�����wp��
}n���UI�>Ff�C[��6C��U|���r��dG?.�+^E�h�Y��^��	U'�=T���q�����s�AM��������z9=���f�s�&�����3�##c�x���Tv������+������M9����-��Y5E������%e��+1�k`�OkWk-��$�J�&��u�����$����C�;��x�5���jOO8n�a���J�b��(�K��#��L���^)8���{�o��z
��c���
9��Z��M�lw�1�R���l}1�����2~a*���-��U��(�A7��j��H��`��n���>���a���A�6=���tD�Z02�F[ix����w�����3��?�k#EE
F���U��WyHs����~����\�E�]_o$E3_�*�J+?��_�����������_����}���.Q���������S��c�%���{����}��~���u]�Tv�[��2�^��&�C����[�|1�~ OP ����t�._wz�dd�e���{V^������p�v�"�/r�
�)�d���,8��I��
;L2��;;?b���<vD��O2�h�|�dX�G��������#�Lo�,��^�1
����{���P��f^u7�17u'zv��L�i����/c7���B����g`���4��tan%,7q���D����CS+6Y�,h��J�U���������mQ��LcN�9����EU�7���6�-��[6/��wz���}o*��Z�S}l0#��\L����k�����b���tby��������zV�9�������W������g���p��]��
G���N�r�>� ���"��uy\z3�&��6oDB����_�^������S�^5��a�����O6N0#��Fv$��W��Y'�j��+[00�2ZP�f�/���_U�w��F;���d4��X'e�k��4�J�}�E����P�������}J7,�y��2dV�p����A.�����b���G��>ij�WI8��9L��������iO��G���R����c"���-�]a�{�(jn���D9�T�L����}�=�H��.���d��k��0
F��.��F3�Fe�<�Kie�Z�mmqp/��-������������-�#"����S��+Y=L7������i����,B��{1^��5�����(��i��\U���� �F>��kS8����8bku�����P�z�:��������0��Sa��_�h0&,}����7����}I*��?`�&�y���rE�M4KzP�B����no;w���S�Z�R�����]����T�]���qP�#AP�r�L��S<x*����A�
^5�/��j��F����C���B�����m<�
&1y'����Z�N�#3��,���%�]e���*�j�=.�������v��������&��;C���c�I�n(1z&m6# ��'��oT�.���W�g$��zgh%@�5����;����ce����C�������4b�0�7��j�m0�����<����BH�W�/.�~�����>�L��lA���w�#QY������=OYY�~�.p-�������!���G�0�C<+0��*��_��X�������hmx����5��
(8�}�Lg��}8�X���
�-^h�~T�����
�D7��GUg��A��Y=2����b����w����]S�\2����P��R^Xwz]�h[}mRp�tZ��dI�B���>q��w���r�@M�}�."��/�~��DS�,�lU[��];p���1�r�H=s��_f;O[��^R�Yma�����;�>��A(�d�>{U}:GOv�Ft��_�(Io7�L����{2u���2e�,-Y&�C��1S[�)�R��j�b� iBw����^���>�WV�D8�^�����"�d��kP���F��;a�QB|l������@H���������A�K����g��^����O�����O2������S]�����'����m<��

����X�2�X!���exG=�1Y�����m/|iQ*���Y������?�����g�V��������T�}�D���,�*"�<��%�k��B,���I�C>�s>d���0������x!�� ?�N!��u
��l��
Y���(�a������_J��>�z��oD��#�|?�OL�&?�m3�e#��V�i�*��p=��i�U��[�D>��gVI�O��L�$��R�uA�kB��VxB��������$����w"�`��O��q+���k��2+=�=itPk7��v�1U5'����k�U>��_�_��)��izi65��\;K�����*�U��Hn$K �C�o�^1�>B��G��xkD�k�aG�[�3Rfo�"(�|o�4��@�+_y�.�![!��l<v��B�4Qsv@����A�0 �Cd�l����\���q������9���pX@Qc����8����u��E!�
Z���i���wt���}^��T�(��g���{ih>� `�R�+�^�/n0{�p$��� ������T��J��mC$�����)��VF��E�(���[�]��N D�%���H��,�=h�c�#��xb&�bN!(I~�kM]o��p���d�D��`��	�a�����o�6>���1��e�T0������D��|h������k��9e�*����)3�q���?	���S�����Q�]�����T�)y�V�����#Q]-V�A|�A��	4���������R-���}t�����yR4j`���_�H~�@�ha��j������]��2�ux��U�_�������.��k�Ld����G<��Sx�'��/������5���� *��}UQG����U�5o����W?!��S0��\��-������E"a��h���T��v���K�Z���w3��ZRD��v�E2�9{����g���(b�]v���x9���������T�����������H"����I��<�S�	E�QG������`�.1q�j�g|�mIP�LH8j���$YHu&��$|,��<2��H����FgoW����+
��+'�r�}��
,������l%��(�^���o�����7�j}�^_�;��
`�)���P�X��p3�u���J��\l��t /���D�(������P��Lu������Y�{{���&����O�k���F��e���%�j�yV=5�uOd�r2��|(���Q>��gv(8G;��^J����BUC�5���1������w��!��`��+��~A��������R�~�Th~�s<�����*=#�x��2��d����<��`lG���(����1�w]u���n7����"U�t;�/GzpL��/-�Q��g��L��*���cbx���b��������G��Y��P���a9���_��s������^b�J��
<!����
���u��~Cqya)��O��j�*��uu4���vT��B�J�@o�,�|,���W�|�y�"~
�J��;���� ��0��[�z������?�\��j_�?�E,�yb`�>����h���x����C�b�R���/��b�8i�vYB���X(��������v���?�M�����|�z��"u�m/x����G���2awM�LN���2�.����r����8�i;��"'��	��[Q�FLbRf��\��\�8.kT-r�)F�K�
��hV{��o��X0"��$�K�_�JU�{���W����6�u?�73��g����rw�PG����i����u(9���?���R����`���C��,�mM�F��-~��/�n�T���6��<D��Y�����9v������G��e�R�#
m3Q�CV�r�G	������
k�%4ZR�U���/����wH�-	P�<.��:B�wH��n�Y
Hbt8�����F�_�c�1\q�R6h�Z�h������0Jf/vM��t#K���5��hKY�t��
`�C�B��<��*�^�;��9�ji]r����jBT���R��S�:fGd���{K}b_��w	��#�Zu��������J��6�6�I���d!�xm�=���z��y}}�I\K�s�n�cEn�(�6���T�� �W��]&����|���=�G9��v�IWF�����7e�!�f��'��5��G%l���*-�;h��};4Ag�i�#*70��N�ta�&7��!@�n��(wWW;`�E���V�9��/Wyt��H��&B�UI�'����7�2;	3}��No�LS9�&Z�Q�1�8�K�s`|q���$�9�[����U��A�O���p]��x��Gk3:mu�aS������7a���)cD�E�`�v:����CE��=6�%����E{��b��r	U�8Aj�tNL:��J��U���&Z� ��l`����^{9�g��*WU�V�]Y^�[l��z^z2�.����*Y���P�WkT�v��Zq�ovm��S�b�V�6��������g���������n��yL�zW�@������l��]����
�:GM�[��"M,�'�}����|�U���]�_ ����W4��>�����e��k��q��"^�l�2�Z�kI�L�K�Og����]q������^��X!Q��/On�<�i6���I7�a�<5��{,xp?m:�4�2�q�*,8	tJ����������\a���.]oK����q�L�I_k������.����$�9�Z�{��,OxbZ��d\�SF�aU+/:7dc��vWQb��u��,����l��;�h9����y8J���e��;��z�b��	�X��uM0%������w�����r����'{�uu���wn�|&�'
���V��m!���U������;L�u9u���q��W�Cw-mR|��C�.�A��9�#���}:����,0e�cjm����Py�X'���]��tt>�[;}Wf�,9���.{�������sx>�R��yy������v:�C��kr��p*��y���9�a��f�po����I����)O��l,�u5[�]t���G77#<�W��'KM�����Z{����

c��N�O4����h���$fu�_(��,Y����Z��:���vb����7g!���x�<p[�1�s��H���F]zG��z����<BjIT
{����o\.f�������kQ>����������-��r�e����u{�`P�{���3�S2�W��X!^r���v�"�T�X5
������B�M���bnU�"�B�������HZZ��-J�P{?U��E��
&�%9o�O�+���z5CT2��-\����CO	�w�����(���h����5����(��k9���`33X���^�t<�k��QF.c"7%Eg[V9�{��v'��)����u?
�2��1��
�����+��^�/W�s~[W��_o}4]��%+;E(������k�Q�	!����hJfT6%�|6��'���.c��^���8���_'�ZU
v��@�j�a_]b����i�b�N]E�0@��x���3U���[&Qn�5Y�C��
���-7l��3u���V��T{+�gF�n��������l/������-8S���L�����m����b"(B��r��C�m5vB�T��nf&������|����_H���Q��;e��U����Eg	�U��9v�l�t�*�08�b�U��&�?1Pn�c��xw�mr���CF�qj�,��C�+�C���H"pV��D�\�^iRk�qdS�d�.nYa�4�U�F��z����/��fR�=H����6�aC�C�t�h�eX�����z-�f�!���{��:)x9~E�����A�+�4������h	��9"^�n��5d&/
�T��*�;\,e������R�h��6����8pF�b�Q������B�b�"���
��g���\��OV��<�P-��3'����;���d������<|�4k����u)����Xp���;���T���@�����E�m}LD��� ��������sz�fP&��G�@�PF=���m��wM��	�����zE{T���7�t�c�����Z{�����W�����d
�Z{yc[�5.�����*�yZP!o��Uv���
�2���o�������/UL3(q�()���8�2�iQ�4e��AW���$���/��
'k�l~�6F���C@��b��!�(��~��727�+�KC�Pj�4���(X��a:��5��"�xT���	�b��_@p�FH-�?}[�3Vg��>#>Qg���u�ey�d���d��o3/�g]?CV)J��U>��x��f\�b�������KJ<N��[l�{!�e�|y����	*���c�m.�dl�,���������,03�3���c7tL�tl�p���e�������!��STV[m�1������p��\�+�
��L`�ie���Y
hWeV�"�-d_�9���e3����A��)�`�����A�{fr���Ha���`��c|���m&���yNyR<Z*r6
�}F"����	�n8�J��Ub+;pJ�����69���f
%�m�6�L[�#�
|{����V�����=��^��6���5c`��f6NZ4C�@}���5��y�5:����G[��I�R���Y��U��l��l��T��������S��{xZj[����G���oD�������54�?lE���7S�8l�axs)<�����<�r���bae]�Q���<aUN����x}/��8��gGf���1�P%�A����mE�������9�ktQ`���M��%A����F�W����������h���{c�������R���#H^C�D��5Z�U�c�.\;���_z���te�cM��Sl(��!�m�������NV����jw^@���hq�q�$v�����""'���������s��c2?�$e#���O���w�����X��/eB�����9�C�`;F��&48���R_7�t�-�kT��Kd�����ori���r���������l!YCT8���,?���
�rwww2�E�Q`�ek���GJ�8f�\�4���s���C��>�04B����Q�p��5��?��L�����36�B�6��D��Q3?�������D�������n>���]���w�d^o�����o�'I���&'.N�\Dm0��U�hwn������V;�S���M}�]$�V�����O�?T�4�+�����~����b��]��yVh�M�k�8'-�6��|�y@as��!	��]����Vf]KJ�J�om\��jM�?""H@|���8�!��]�����a?|�g��D�W4�	�q,8���l��cy��y�r�WK��4�a.��������3�FvI����[�,�����jx K�9P�Y�RqV^h��������y��[��F�����Y��c��EI�����6�R��1�vS����Q��,
%�F�
~�(�A��"Vl��.�9��i�����A?������!wAr��(X�g�B���.��
q+�C�R>C�l�l��j��>������_�@~�x��M���5�s���'�N���*|,���5�}FQ�	�]t-�������J"3<�Ycn0����c/������#O���@a�Q�	�D_h���E��%kI���kX�������3�����SbU����dqY�y��!��*�{����oC�
uA����|$u�@����m����o+�4L��m7�k�3�����v%����X�=*vFO���e��(V���;?d��X�u��2�g�>+	_v;T'6��98G��F\�=��k��kVy-p��t�)A%[�y��R�$<�)/�������G��A�z�$��xq�����)B)��N��Y��0�g�����~,�MmH�����0��}]2����8m�%s�Y���oV:�5Xv����KE-?dTt�@P4���L
��L���n���YeK����Q��Y�\h}������Z�\�������������0�u��ND������T�|R�������0z�������-�AR��1�1��%�����<US�w��j@K���$�2�����u�����z�����f�q������m���1�i��K��Dj���G�z�C[MY6#Z��0��_�r������'H�1M�����c���c@�|��t������v�Z�N3B/���*!�v}g86����bA�;��VB9��^a<*[�������$!!��T-����a�^�$����\��;����P�\g��u7��J!z(o&�^������&�����v4D*�F�m+x����j����M"�DD8�
����1aC����,E����]La<�hY��n�u�!2`�r�m�X��tH�5���u�;^�R���t,|��L�"B��U�t����@\p�&�]��LDh��,��(����-/��0�w���4�l�������5��Q�.�e�X6��9�m�t\��������s�=�^�_�`���.���|����.��>r��+�T`T�m8C�K��l�Y�N�>�.�~�w�
�js����jy=Z��J�!m����jP�P�A��m��V�n2i��:������{��8�����S��1H��RD) ��L��{Md�����sfRn�^qV"���9�5D�q(S9/����[H��P�Cr�!�4xeY��\������cM�b]������p���c|�r�`k�o��RAU��m�^�[��6/��_6���������7(m��15���w��9������K��yR5{��UZ/���V��mq/�^�u��A
���D�5�P.%z������t�����������${d�G����!���j����'������(T���,0���u��C'��N�����J����S\e�\j�SJ�������|CB�����'���=�����DeC���W	>kxw=�L�f?�P�o��?���J�������'���@H����P�>��$(J�?������������?��U@_��T����(��{���(���(���T�*�/��������
?�(� ����3� R��"��+�E��	���+�Q�ST
8�G��P*�/�T���UX��Y��?����?�����h
�J@���Q�T�U��:�������_��~����E�(��E�D?o�k�r�S�
�� '��8���_�(�@>�Wr����G�`E�'��1Eo�mJ�8����#��Q�E���X����`���Ur�����C�?T,Q�
?�QE?� U@_�S_��@���UX����	�����E����G�~���G���������o�
=r��*�/�=A_�~
?����/��_j��u��T����	�Q���P@IC��6���%��������1I�HP���"��� ���D_dN
9�Q�����C�(��!��D C��P_�����-|~��AYz�P�@U@_�P@������"��U@_
7��O�Q�Q�������?B���*�.�T���
�������G����������5?�����(���l�P��i�����
9?^�U@_�[�����Q����AG��Ax�?�
��b��W����
?��F�b�P����T�I$�I �
)J�T����� "�?�*�/��b��H�� ���8O���h"�?_��L��E��?�*�/Gb�������?�$�����c�0�	�_�*�.�8��*�/�*�-���T��Ur*�.DTDH(�.O�Q���8�����/D?�����)��1*y��[�����B)s���{!w���@0���;��m��oz��$�)B��)*������j���f����0B��va��f�'p���J���
j&����Y`SmU)-�[Snm����UU�����>�����zz���9��e���k����oL�}S��v7���������f�i�KcZ6,�km5UkV���fflV,�i���j���5Sof�U�3kl6���5c[f��Q+2$[Je��cj����T��H��6!k%5�����m4����e���P�J{8�j��3`��O��K�����}��v����t]����������O�n��)t������Yi�����-�cM��em�����|��N�����n9���Y��=�ko��he���AV�Z�6��
��f��w��{�r�YU��&�G�����3���"���g�������VG[ww���ck!��V�5�K|^��q��mwM8��kW9�wwyO�J�U)|>�[_.���{x���v{2�����emB�e�����|k/�;cl=������_^�X���Z[I�elW����vN���w[���y���t��U6�g�t5�[c[c�Y��|��n�m;��{z��P5=
THH�a���1)T�F��LL���L�FM5<�J���jx@���
= �"���M1M4d���� Q"�Q����� z$�Sh�OD�&���x�I�����20-�h��@��`��) ��U�.� b �`!�=	$�?���&g�e?�\���L��Z��E���w���y�;F����
s�����X��D�m$�IIII&�J$��A������s7��J_�������M�VnL�,���2�\�Ix�D@�
P���l�E�H��&S5<�
JN���@�����B�H�����#�BH�HBM
	$�bE	 bI06�M$$
�&��BI$� @0I�$
 �CBK�� i�� ���]�.���nJ���e������!����$���������)�h�����_]j'C�9���-�YdE�e�����"`6�S�T��k!�4�u�$Q�	� ��r�O9�����-4������q��-���H�oD��#�z������0C��y�#�x�h��|��1��H�"�apR�����ih�@ZCL6�u�����a��������&�w$�	W#�����T�����v"K[(�cD0���$Ti�<F�)D���!#�I�P0,��-c�����-E�|	�YJ��u������d��<��`2cK�����0�:��L�!w�)pF�C�)��LGYL���Or�e���z@��mi�1�L��I�Y��+�BT����{"M�����x�T�McE�F��	[����5���V��n0�E�cmF�L�`F
���Fi�����4�`c�F�b����SM��� ��"�(bV��y��T�Q-3��Q�b4�
��A�?������Y���#���Jn]a�yq86J�TI�YQG.�Yl>������B�:@!
B?b0�I hB4��BH@~O����Y�Y�Hl�B�mi�c4�&��ATd�Na��Q�ZU(����FJ&L�JI�*4�0)�FI���fU$2����4�j(�"�	�yJ��L��Ths�o�NN��n�������ju'5R#L���	�wa0��W,��,�s
�!�X��
�M��@�HNG�`�L�2mJ����T2� Ce���<QvZkc0Gr�P��������}�fN8��D��KA������t&Ea�R��/����y�2�.�
�sA�J�"�S.�[p8�wq�Q�7g$�V����Ae�*��z�h���V�Q�M���F����Fir��,�o\�
�������5�!2�RR���q������B��TN�I4e����m�O`���dFP�fe�f�
����0S~�GM�!Iz8i]JP%�,�6���$�)V�%���M3�UYb�J@����4�,��2�L�,H�1]�� ���t �Q�E
�*�Vp�x(b�����>& ����5/)�	���7-�E�C�����W6����m�VbP�;�Y0�2#�3Br����Qf*�RPl�y�$���{[N���P/�4��$HEvP%BY��*"9R5-��,(���������U=�&����B�G�s����f@]��W�1�K�����%���L�RC�-��aV;v�F������\�����Cq[
M�I8�F��i6�"��y�VJ��&|���E9u�)[�d����3je���aB&�iqB�h�	�Hj��U
Q��*������M*�lj�>���7�S�����nD��	H6Sp���@��f��V�Q^4�0�6�'�N��>��;�D�Wqu��/�y���5i��l��Zx��mf�2Q����\ ���Q���+�=�oqUnU�c�@�L�9o�>�):�R%�|�-���I+YHa��1�9v;��uS/��j �"tr�
f�d�f���t�o�;�G$�l6�`�D�6����i�����������A��1�������W��8�Q���lS��tj�6�6$�QG�����M"�l�S:�(Q�N���W�+����8�	CuD������o�(���^i��2b������j�Z��s]���R���3R�������k�Z�jO�;w���[9
�z�0N�G����J�NR�"�*����5���b�`f,�p��N���K����\��7nM�	.t��0M��.U'�R���{�7�v��,4��(^#R��������,�4c������24T6r��#[��RC�D����`S4#[�*�"p��1:�db�K�$N��*4��)v".������X��NXn��y�-+2��p��.��R��'��
�Gh�x����fm��[��fr\�K77��}
v)��\p�u<^�|����9��*��s-
.���.�-Z�����*R�����&(��{���9�-��T�;�����r�.s�}���Y�]���*����kV�s(e��Rh��a���aQ	�[�TZ�:9��k+	�.�����6��g	0���IFW�/	�v���cq4�8*nf��}������D���n�.sC���D����a�����m����j�r_�;���I�$��+
&�������)���}����C�t��}�xou��D��$3SQbM���,�iUj�x�����;�H���
r��B�Tf]�0����6������.��w4S�];U(�����������Nh�n����X��p�w��Y�*0=�k<V��i0S�H�T 8�B�r�2��A�+(Z�5(�T��k�s�O�{6�3J�d������x�T����k%��5X�f���W(\+�&/v���v��AtsV��v&�V��*�k�E���}\Z�on�����q;����[��y;���+Q�uy=������R-�t*%�o����*������)���\n�H4X�m�e�Gq��o1���t���y.�Y]Z�.��&�:�x��������E]�j4���We@�r@�4�)uJ��A|�����-�q����.���h��Q,b[����$S�
��J��
��u��r��o����M1J(�����0'�c��L�S��{{���H!z������$HY8q�R�R��Nt��PJ@�#q*	���_Zuy�N�y�o:����Z��1#����jlr�����B�+0fpY..�e�J�M��	�O55
e�m�!�Y6����T((����e�� @Yl�St
H� ���y8�.2�N9T����ee}f�!#�.�EY4��"
Qz�r��VKc9�{(����@�pu�xB{u�'�Z�#��,.;���r�>�[�A
��Nm�I�P��*�n�!�i��@��::s����-T�<���vm�p����r��C;aC.<���pr�cTB���-v��wc������_+�-�n��-=^�1V���c�N����`����.]��(Lj&^�����YYYJ��t ��YgZ�r�5v�E�`�H`�!�4[!�r�<�W��B��_�H!}���{�J���?U�����]�'y[�t�
�M
�������:7�����W���T��t����<Z�����[vC|�74WV��`Q��i��f����/���Po@���(�W�im���6�I\/��t>��g'9�-�0��4����C�09.��wM*z����0yq��X�5Z��a�d�f�����eeh��q�u6�]<��D����[�Ee9���:�E"3hq��umh4�������!���fJ��P��xFl���WA�9:n����3�7��[�����Tn������I������("J���v���H�pO(�Pq&n�F�q���k�u��x���8-������
�
���q����;t��U�����NFKIx��8���#���V����b����:�v�A=�r��7i���V�tK����wE��@�[�w�����8�8��-��s���p�K���V�i^��c�
��cm��;*��v:u�����i�]`���+���YV���W\��KU}<�T�UT�,�u�5�,vZO��E��ep})q��6�����gN�B�� ����j���N����G"�qr9*�.\�k���wH�*�n��sp�F�%H��2������s(�@��cf���v�9�&�3��YV�<�f��{�Lw^J�w�p�8�B�]gZ��
���S�m����V�n�b��yj�)��zi�/y�2A��JCQ<Y�[Y���V�_
4��|�,�����;�Wj7�����=Z�I���o{v*�Lf�m<��dWS'6%GG,���kb�u����5T	�h�R5r�t
���ZV��������r������.�'B����JYy�	�u�7�����Q����PV�,�
��8P��R��q���������������:$g�.~���#���p$��"�G���h��� Pi{�^$n��C�Yl�f���*TK{�gR�����jk���*�:��6�=&^�l�I��TV��&�)���/m\�O"wmmg�Wg>�"������[�O����:������t[��������������������)��@��yw�%�m	U�_o?j�j����X�PkwN���7&ui�u[J���$�!������16�u/.��,Ui�Ev�.���T\7�{.�K|����#CUG�bGV�&�`iRQ���re�e��&
<��������vb�ai�>Tx�{n]�az�@�������e�O��t5`����2'N�\�<��:�nb��S.u�*��[C"�K=|5nC��nS�Wm�`�TtyX��������pc��V���������r�)]�H:LV��n4���nS=�]�$e3*UH�\j.t�����{��2�!����h��l*!@��p"R����x��;���)	fR�R���)��X��LL�!�M�J�u��A7�X
�BT��t��pX�Z�+�Vh�L�T�JmI(�A��eG1�	T���\�����d��r�C��������+A1B�v�������I����v�59FUTsa4�c�	8���|�#xU8�PS���E��N�on��Zvht�[���X�y�U�,PY���.����:���27��,����Ey�nyTX����y`��X���e�w�]�����=�5�)���{noR���1�-]��i�X&w�����F*���]IL�K�}(P�[��N����`}�GW=T����_lkN�)b����)�J.����Z�%�&���%USq�2����L��q�} R
�-�3�'�h8���N�TT0�U"G����oj���m���WN�Jf�������n��6i���,�\��
�<��:�8Z�l��Crm+2��r1�%"�8H��y3�a����\R��;s����l�
B��1�+z^k�t���]�����|�[���i`�ccz��k���*��VB�2����Y2��X9K"N�&D����BP��k	��]�ch�gm����g�/�s���tF�����=���{��A
]����H��`�v��V<�b�x��KEc���S�7)�3��f�}e�u#X	�L����TO�����[�}b��FQ�Oj^�c8�4f����-Y��7\����LI�^��Z+TS��&�0o]��b����s76=6a�B8p����=�6�R�f�i�`���	?#�o��a��F
K*�>����[��N(�U(��m�Q�F��
�����D�G
aQ1")�F��hg\���#5mU�i�!������$��
�4C��>�&- pc�Y�p����!(n�*����N7(�:��"M�����ui�-�eW��5�N[���C:�w
�M��0�r����#$�I���tm�w��>��A2R9�R#h�0-U�X�y�M.��f�C&�JN�eM)a`!���7<�"����^T`q/4Q���f9��	%ATD���0�$�2$g����`y�M�
��T�������S����d7"(
3%���`g�2,��l�T#�������7T�4�ayj�topO�21#"��?,!�Q��	�r	 7���c7|bo��z"C"(�z
��M%9M�:ur���1WL���H�T�Z�h�Rf!�(R)��R�p�������3��my��)�n�!f+����H�@�`o&�2��x��L$�U�\M8I�C5�a��k{1&:J���k��T��!:(��|BS����Q�3O]7�Y�0i
�u�6Yb�.�.W{o#�en_H�o��AHq�Q/ �^��Ar�z��n�^������x���'fj�+2���|�=!$N��Q�T�H�U����R�U�l��eO3CZB�b����p ��8�mP���2��F���HX5�2�=����Y�Nv�u�7��;I�L]J��NL���6wz[��X�u�<)�����T��&���v����;�.����r���p��*���7W&4��pFc5�n���cH[��v�J���B�H!��B��$���u����?Xd:�����}���n��{��6s�%*]]��\��"�4���G�E{�w����:-��wu���r���L���*gy
h���w'����6B����G
�K.IOo�h#�a�2��W�]�M�C�`�E_�(N�I�L4�	k���J��vll\O3�>o��j$���4�������[��u�/z3����5o*S)�u3�.�U������>b=��2���7m�!�}}r�W�ln�CUN��r������G!�h�k��!���b[�k9iP�V5�b�������1{�.��)��:}�W��S�n�|��V
V�{�����o�J��BC�F]=��_�U����YW�\H���.�M#��{�!�}�}���U�^���R�q��!���>����A=/��r�f"��l��l������E��B������D�f�N��J�5m����� ��o�g>��/�E(V����=�z���|�=FY���cU}��6}>�&~�n}�k��O�U";�� jX�^�������Z�~�r������XFo�y����z���������B����t�sb.�������hM��xxi��J�xq�S
T9�E��������
��������'U�����;���,��?�r����N�;������"g�*�"e=�J�O��f57j-�L3�L�22~�cQ��u�gJ����r� ���%�h�(���92�J�Q�W�1k�C)�$�W�ulN)Q�`�}o�r���������f�b0s�8_�S���
M����**5�sPn�s������E�K�;��'O�:;�YC��i�9��u��/z^�BvbP^6��������r�������V>�NNY��i���(���^L�w�]�U[���u�������}~�6�������I��H�+���]�+�A��P�7Ed��b�~E�:�R��=]_mz�l��
�"]�i7���V��7�ux���Dh�.A|z5�]mo����y�UMw�
����&�cv�+[i�9g;^����v|�_]�J��4����g3`�0L��_<�������Wou�&>&{����}�^���*��L�9�{U%:��]�8���m�2G�����a5C
�g02��`���V�i$h�>�qWE��%m���}�b��Q�?��>"��7{�R���S���_}j���x3OE_v��u�3kc�����V8�
���89WjB�Oc��
�<m:FV�W"Z��N�h"wD�	$�F�-���n��e����������l����*��2��3z���=.�9�r����;�j�*��[����l����{N�~�T�P6B�p�1c�k�$�h-���3����e��sl�#@�����+��wW��5�JB+������pW�n�����B���;~���#A;��u�{�=���-57�o�/17��b������o'���������h�!wH�f5�z�?5]�GGwp���m���-���V���5�����n+�n�b)��`���^q�l�i�q��u��7��y��vn�MH����h�
������h��v�p^�T��5�C�X����Jij����#E�j2��1�/s{f@ �)��d�x�@��+����Rk���T�m�����X�8���BH\bb=�m1�3�0�2$im�L]v��ii�]za������H�a��j�1�X��0Y�#-�ZG���cV��B6��)�T1�q��#�M�4���MG�&���bIq�y�4���F��mb�V��I�b������A����-�`S~�m��![;�F�Ai�q���d8�����m�6��5�A���I A�m�j��&�u��"v�c��:�
���F���3�.�i�My�
��y����V��
4!�#��!��H`�G5)�4���h\b��i9� ����3�!��	�
0���@y���6���l�BF�H�%�^��m�hDi�-�4��#Mm�b�E5�#m�`���i�m�	!���<��iF�i[�ie�cG_��g^�YQc���V��r��V3%��EY8�iF/v$#�����)����4
vk�������$"��G�L-
���H&�o������VZ����*�|o���2�sh_�S��'�������f!w��J_��>�x���F��7����������.-��A�J�K���1>��2rt���([`y� H_�$��B��$�II$������g��>����9�~N5fr��P#
��us����&Smd��+{��
���m�1V��]���v��K��1S=��v1��s&c���-��Z�+�u�#��+
q�D;���P�M���5�u]m�'��S�3�^����m�� m�v5#g2Y�
t��u�k�:�r��e����:�g���7O���h<�#{��+l���<��}�T��P���c�,�����Z1���<��f���d��T� 1QC����&
yc���+��Z%�Ky�:+lS}e'�5�0�����
Yu
0��7�q������8���y��`�3�NX���-6�����v��Y��������R�+�������4-�b����VN���p Ud[,s��n�mWL��t���h��oGE���t����a��f^��(�jJ(�%JQ�3*�������b�{Sh`J�o�p���,m���a|Hz1�#�4^S��Z.ekJ�J������w�s�+p���/��=�q��r,h:���������������M����D�F�E09��4�H�Iw"@u���GX����[�H��� r
\^����B�D�h5�kQ����"H��(F�Op@[Jj ��gq�wp#C��"y�������K2�b�r�1%�AkQ_���K���{pH@\�3o���,��[h�bW^�vU ��!�%s��w}�H���F��h��!//����pw���G���i-�����=6���������9!�e�s!��,��!����@��i�D�'.��Fv ��l��F!_6��wJs
Y7Zj����
�~�kr��^����F�����	 �7ll���`���Y@�v#[���;sj%U���$c6�"�U�<���s�c�D�R;[�1#�X�[u�-�c���h�U%�����i�����Q��o�%�@��H1��D=��w"�ik[�cB<�C8\������^��F4%�#�v����h=��#9�����D�P`cA�$W`� �4z@[��'n�$KUt�u����lA��'`��z��&��T���.�.���:���o.�M[���b��km l-����^���r��Zi'�*��ii�[�X6���m��cf0[gj!�y��j��Zl�7��Gj��H�"��	�h<�"#T�"w��2:D-n��
H����O����DQ�ERGO&��V��k����X��3����{�������E	�
6�����'�K-\'��%��8n9�^h=��r���Z���s�%��,f�`��t���K���%������o��y�W�/d�rc����]�]��+�9�z��2��5����M�."���x}e�N�nw��I;���6�5��NH��s���{9"=�c�=%������H��oMm�8���g"�G�(��E��<m����@����  17
`k����2���zsqF��/n��z��k�mso�tb1��d��x�z���������)����A3���Z�	���%Ev���o�����`oQ_�K���k3��
��Q�����5;��1����v��^8E=�:�7B�Er �e/r*`�se�dS=K�:�U���7����syG��`�h���e��7SL4�\��S�����]"���AP=p���rn�*�$W����@����Z�|�c�,�g^�6��J�z��f��`�CY!�k���w=�)����9=�8������T��OdC��l������~�C�>C���>M�e�����a�M6�[�z��B����D�u���]�#��]�J#�+��t.�����J1���X��"�����1?����~�]�P7L����$N�������i���SW���Uths�N��s�x�W�T���������9�;|��+�B;5����o�7�W5YOX�O�B~��T���G�jfl����-l�����'��\��mLp�B�xR��6��n��r�g&����#�K�'UCW�����|�"��!o��[�_|>u|d��%*Tw��5�xy�7��^|�1����n}�d�n��������{����hp�����c�}wO����q��k�����/]3!?\�B���$UT�v�����zs��&��c�$�>���������y�x�2�O_���r����d��o�i�bB�h����\�W�<)��s��v�/�NV%��M)��9� {���SZ'�s3Q�k���v��t6��>Y��$����1������L�<�^��v
���dd<��Ag�5�`{����5�,��8����
����qge�_l�e�PC��=��|�/oJ��/�����];��4�>�z<�2�_Y�VK+>�#�����/��~�cU�C��-�B������|:}{�eM�!L�<���3�<P���8�����R��������b��H���.�������%���O���p���?��o���{�{�n}�|^E��P�i��'w��v?�*����Z��j�������tU�h\z�H
��Mq�b�-�N(��V~�.�+�hr���us?�:f��K�j������/�X,=Ms��+�~����Q���ag���	L�����U�b�>�=���',I��*|�	������}�.A(���]���e����)����{��r?Zs�����h\
���y�����P�����q����F��l&��M��>�������_gX:�$��5�v�H�]��);H���p���@UF�W��������Z��	t�j�q� -�}3`�x>]�!b@pg�]k�sS��n�K[�+*K����R?�o�ZwGy�B�����Yl�`��g9����+�c5�z���F���=�m�������~dt��AcH��z���)p����/H����\am6_��\��\h�.ot$���A��w��0��h���mj����"^h9�
�dBF���F�����I�/4-�ld0
�h�j�X�6�	u�y�M$c�MP4�1 i/H
TK�:�K�$�M��4�B�H!i �@��6&�
��lM�� �I�&�Bi�/�i�&#���D����$��I��� ����B��������������������~e_�'�b���_��������(Q�!(P���?�%�Y���������zq=n�M��V�q������y���4[���k��G��A�q����.�;#���Y��t�������Kwc�_w���s�o��\�qc�O"+��x���F���n�Z}�E��GYb�r�W�6���D�v4�����������V��(A���j4�98�>��]#��q�ld4.����R�!�4e�Y�;<|,���QB�����{����i��0:W9��SL�	E�*�S���Y��x+�%8�aLSN��`�V�		��t��|Q	��pf����_Sw�M�����������Y��@@�L��/s5��z��Z�;���X\��VT�6�^3J3�����9Z`�#�|�7���N�Ec��!��U}��4��O
�<]��iZ���H���g�dB9�X�0'wbV�wrI��*7�YK�
��n�n7,���1��I6wq�C7���
� �c]�R p���*�rL��7Q;�=����i�c�^�w������Pd6��1�����}��f�6ct,�oU>$������z)z���9+6J�����o� ������A���j�t�;�4�9���D^��6
=6�={Uz�]F���=i�%ekda�9b7����2�jU���znL�=��i��������0��m���^��}�wp������:��f]H]<t1�Vs���Bfq����E<�LN��/o��6�"�m����y^�����Y�&��_/\�����=�w`A�e\�����)�u�ek�bx���-e6|xd5���F��!�>�A�v��p-��d�9w9Z����`�����i������,���
+����>��s�*��l�!3X��uc�\�]�g:��6a[e#��'�9[������r���.iIx�Y�u�nv('�.7V=<�M��^�("y]�3��T���-�N���ub4F�%��tU/�gP�3�����l�S���b�S��?v�Db���n]�+q�����"Dn,�w4.�����e<�����)y�@OvD����v��	�
��\���Z���P���V���n�__u�:kVU��j�8�p��ldcm����!W�Vj2]nvOMW&��n��U�-�ypj����bJ����3������o���k����N�%	��,�j�YG����W��W�u}���Qr�o\��M���V���>�a���|y�:�������:�9:3 S���C�w/�d8����A�DU��h��[�;M9!�nG����%�t+���u��
�J������/JZ.P�&���FTZE��	t��u���#�T��!�/�����<�o��;;��W�GG�WU�SE�W�5ij���2]P���%*(�|H����F�����6$������E�/{H{t%�a[�%r��p�q������G�Ny��a�����j�����*�cb+�O���7G2�����jGo���O�	����E�+x=���u^�UGg��F����=h�j��5:���;M�;�u��\��5�x�4����}�m�]��#�.�k�J���"���qKn]hvm�V4�Si-�Y
��M���6����uc/�T�.������qZ}���d��dR�
�^�G&wh�����Idz{�A3I����}T
����]0�V5G<�ga����Yo_+�J��I��Wr,��c������6{8�XP����:��\,62oG������N��ta�=qv��q���6dp%04f)��=z��kdR�
�^v��,k2W_a3q���}��Py}��K����<s2��
���c�3On�]9�J;l����H�O{�-��R$��������vm�<������/G$��t)m���.&U,����u������>��o�]����M���CT����n	=���w�`��&�h���7\���&������y9�|}F�#��l��0�rgy���\�8�~x��o9�������M6�Ue�auf�z��in�x
:�oH�������>��yYq>�������,�|r������b�]a
��2W62x�D.��k�g�t�	��B������$fe(�B��98���F��yQ��e���\��	:�6�����Rn�gP$��Y� �A�g.o�)�OS�X��%�����������bb�sE���H���z�`Iq���{)��1E�5
��N�9j�7���	�,p���>6 ���"T��x��V3R0��^�5�����f��3�;���[���]�~��^�un�;���H;Y�R���tT%�����+l���P�����g!����nCV�o+�k�����W�
��U����H�.�`vu�x6u+�]���1�\��)�"��X�V*���P`�l�a���RM�����Ihu~> ��*U���W6mVy��k[Wt�~T%N���w�Txx,�z�7C.K��Z���N�'�v�)���
&�[���S7�P�:m����b�n��S�E;�������Z������>��E�]LwV0��J
�n����9����e��0�i�F�'r��3F��.�������{���������M��[�-d�=����X�HA���Y�Bp��N1nU����2��$�*�U�ydA�k���9m���
WV��!V�=�������t�9 ��*!r
$�2Y
	�����F� sw8wH��O0a�	����������j��<���,��Y��F�Br��wGm\�_D�k�{q��&�J�w�!L����mm$����Q�����"z�Y���f���fH�D�CB�U�A���T(���k����3�^�O1����k]����b�������.�sRq|}�iLN��kU��u�{��f�����=e�3J���s&�=Qu�����>���ori��V+�Iv�U$�aT�����z�Z���
�8�3���h��"�������n��� g�@�����9�q@��'�9uN�8�Y4��f]^��r�l��.���)�C�Kyf9���hm*����TP������3����Yx�~���wm\��������l8(�i4H������.��4t�Z.�������ah�4����|q�a��a�dv�(��1����
�2�L]����*+��2�
s��|oi��j������^�G.�R��W��R�U�������0�*4z\�����b���E
�h,��������mp�U�b�*c;�����f-����p&X��H ������/[�ogy�v^t;����B:��\�����(�+S)��-2��K�d�����o��=Fl�m��e'��h!&T�w��4(���#�h�v�&222��F'wt���h�)&T�m�C�5����-(������k�1�;�Q��%W���&���T{�{��������eHSw�-�r���!��#��6r��k�4�5a������t��iQ���o:��a�Z��w[�;��y_����s�W�)*CW��Go�U�o�������|Ks2lp���1v�[����M�����F�u����
�J4�l���Mgrv��f�k�� �[���8��QYh�������;��2��-�����w��K���NEi��.��e��
%��a����&����t:���jn+���$�P@h�VliP��M�����uC��:��:��v�3!^�
�a[�
�Cl������;��-	|H$���br������Iyx�F����|D�Ru�H��C��6a!c���:��u%t����
��#h\��Oi�I<�H{�-������oC��XTt&'�ef8�g8���
��.�nJ�:
�" GV�a������Wr����C���E*�/�F����dY�@n��BA���O!kV���G��bh!�Z{DO�
GVC<!�eZ�,���s���8U0������Rf@��L��������W�������s��P���9��uRT�zGs��������!����/Ul���� ��`�"3���]s��,��]�yv�vM�����\=������y;_r�x������{dy�R�!�C�L�s<M�;{qS7Jj
��O���
������hi����\���I�3���Z_8)C�^�Y{�����T���;���H>����Nfv�N*�H9Og�c�!���0rj����7w�i�%�]��N�
������a	�z��"�����n<[������5hSy^�uS��=R��F��a�n�DX&����S[X�\��y��d������e��\�V������]+�g]����������]�=������-L#<�R����e0�r����z�:��s���o(�hIe��La�X`ckT���gs����daXF8�������B�R�-��7�%�a�6�w��Ot����
�w��l����)��Y���u;N�
0�q�J�����B�)7��V8�44�  H����+5����q."�K�\X:�M��K�v]�}�������B\g{������"f����}%q�����P��csh����;u��V=�}�R�	;Sq�������B�"�������s{3���z���1�k
�����L�U��P"e�<�Z$���5����{s����[���8��HJ �k�e&�]�1(���I@�<�^8���x1_8�.@K����t3���6"�he�r���[�WnA�m���zeU"k-�����u�nv���D,k��S�Pd��y�&��2��{��
GDu{�����I����:�{���q�����9^��'���5�]C�.���4w����+:tL�%6@��%�Z]eM)kjt���Di.@gH��d��F:�0������(�</J����p}��������h&&�,�������+�xV�-�q�y��4�l�X8�(�T�j���0�M<�7IrV�lJ�H��HSh=��>�2or���S���7g�k��x��7�s$��\=�������+��n#���\���2��o[S���w��D�0�,�-���u3��_=�dRmZ��$N��Q��hm/�M����x������j�P��d������Y�;X] f���`�����3 T*b����g�u����<�^�����r��rU�r��/s]W+y8I�1^K}9�X��l����q�;3������\�8�a�wc�k��cr"�����Eot�����f�8�H���On�-r���C�Vfa}Fq���Ni�����.�������B ;L�8�)�C7U�����6wu�.����������BR�Gx=M������KH=9��$[s�Q����"�T��rJ���������s`��S����S�N��	j���*�x5h�#�N���������<vFYw����
�8���J��-[�����c�AdY�F����8���c�p������2Gt;[�,I��h����7I�].�&l�:�}����z%���g�@V����Y*v"���C��M������'��F��A���%��q[b�]r�d���< 
����������38�w�����T$�]/U��44a��������Bo�"��1�TYh��`����v�kU=��l��sA�2*���[�j�t���A�gd�S��M��$���\�FY��j�m��=���:����Z����%�k�������}��v��S��+N���Y44��8;V��I�
�M,��}7��W�g9��>�1.xkaG�}j�5[3c����e��0Q����CB��T>��%���7et�0ot��Y:Xy�)i��.��v!��6��"�t�V�Y:�,�B�#[gs������	4�1��l�2TG�a
�������^���+0�LKq�P���[�5���_de�9c�z�Bo����K�i0^ 2����#6���[�����g$���'�p����v�=Qw��'m����_`��~o����D|�c]x/o��Gh�i�	tt����:�c��R#��HWd�}����%8%�\@w��e]>����)j����n���8%Yv��'�e\t�wL�Y�-q����b[5������fN�%�����G�L�������;�#`��w��
9�c��]n��O���4(�o&�6l���'rL]������F��4��P���%uq��<�l���A�.��
��9��B��T�.�����2�N[�����:^�=��U+\L��0KU+��d�s�jHR������_
V�$��T�s~�����k\�T7��vM�6�nR]�������XKXU��oR�q�]U�l�@�Ow�]�y�y5��V3 �m��09=����v��r�XO3C��*w 82R�},��t���,N�j�)Lm��k��vM
��fy�[5������Xo�.��������;�A�"��&c���U�Ksgt��*eaG�qQER����oi�.����Oi�����+���C�^�Mk�%�Kc����q6��la|��Zr�Y$��`�*�EK��o;s�^���
������>��U7�U.��d������b�uPbPb� �X���5Ouk��M��U�hj%��_��{c��Y6B#c����9�9���;f]"0X����#v�[����$I��n>a]�����������q����/���i��
$�k�
+OG�7:���*Cc�H�#���F����u7�P[xV����"J�Pkr��y/�#N^�]�k}.yU��j����R�n�i������0���s\�^�/=��tTZ��=���e��D*�#�0��\�6����������R���tK�Dga�Ex�7D����2%�[W�
n��OBV���ky���������r����&��Q�v����'�]Z�X�z,������&�k����/�V�}�_������#-l�����F��1���0a�8�����B��|�Q�%y\���!������qo��C�t%[���d���r�/o#}�M/-�8�t%��Yh HE
0��dU�vU�����&�:w��tR����g���R���S����7%����GnV����h�5]��2e�7j:�7�GXdO�����M��H9iC>^�YD�t�X�m�|�����k�57S�V8F�!�|
=������o�*��F����!��E������r�3���PZ����"���|�fl����c�Z���p������F��X����2m`N��]=�a������+VAW-���KN�.��Z���kynL��g��QGgyr�Q�"7��/jczy�����1p�-���K]#X�6�o=>���Sp9���mfV!w�a����E�Se)�}:>���KB��{k�5Y��i��X���i���-#L[���I^�2��6i��%�X�V���n�����lJBo%+k�s�v�W��k������3�7�*l�D�	v��X��or����A1��=Ee�q�����G�
�v��De���a��D
����Je �U�2<D�N����8Q�d���d���6�����'T��wCM{�$�.�
S,]k���t
(2!�s9���s����e���
�d�*��)�\�B��v��%�
�-���L���3s���=�ffe��f7Ldp�`�J������F�,����	7]�3�5`�>���w}O����v�M�r�:����F��K�H_u7Q�w����O�#�S��Vf�4��u|�o���Y�����K03�r��=C=j�X29������n�w[�����Z3;�a��R���{���k�M���x�n;��t�n#���8��}�R�a"��.o#.�7=���3�������Fup�m���h��9w�>���GaKd��%r��6�$K�	e��f�"��o���cyu�j��������*x���qv�C,����5�kqIN�uO3�����\cC�`�5�f�
U����]�����GwY����O\������n�Vf�x�3�|����V�6���w8�����v7��$���;�]U����M$oU��������n�����qL��ok��%�� �,|J����������i�D��������UUa5y^5(��{��L�8����2��L��N����F������F���n/g��K�9[o\���d��0��6@����$��A]g5��"�i������&��`����KU������|�*��V�N�o���t���|�3���osU�3�iP�eY��]��l~�$��>����C�*����4F��x�4lZ���]�*T0��:��w��H�+#��x�+}o�l�%W��ur]:�z
.��v�����d�7����"�����)]{�S�R�8��7�rY���kh�isi�hWEk7HN�pq~�8V=x
�3�
p����N�8��h
$���]b8;�=�����q�hV��������P�&a~}���Po'k���:�
�'	8�]e�x<������j�D�R�[�
�v9lM�e�YtfbC�g�vr�3�y�8��2�����f���>�0�\����#�Z�gN\F�Rd]�g����)�wr9�t��t��l��#��g�u����A�����&��Y�r�\��u���r���l�Jl�����z��N>�ee��Q�X��t��~�B�B���1Q�����%�[K���q3	���xX��x������FEe��f{�����������rw�GQ
5�U��;!����lx�)xz���fIz[��h��!�����k�G���r���Q�HWU�u��wL��["����#�L����E��MvpQa�yv�B��;��Vhk+�!�U1j��,�^]�c�l����%��&"CY���(�f^�-r�x_*�-R��iqz�mn�yD���;�B�[y�1�g
���Zr����7.����,a��R��Z�pp�T
>�e�kh�j���������)���g�"���_�G�QR�Q�1Y{������V6O��A��Sj�6����2"G
����B���Y�P�f$H�^�D�{6m�\-������=���+���|�Wwr���\�9 E��NC�7 MHN@��~���>���	/����R_����H!��Bi�(�B�H8���A�����~g��I�Z���A���@��'F4,`�F6���h�#M #H��-5��klQ��H��P\e1[B`�]b1��@���BE�	�`���%l.�L����ct�2_r�o����x��nL���!b�0y.��S[��V��pn��<����Gb�n��q��tf�����Y:�o��1m����Q)�h��4�<�����]��^��j���e����5oyrr����}/I��E�m��h=����X�	�nT��WbX���5c������T����b�%�&jv:f%#�}�+9���}{y��\��q����6
��1���u����.�U��)����\-�&�����:�z��\�x@��Ybn�#[#p��Tx�p���djZh��
�2Z`	jN9{'3(��",�}t�Z����z$�����Z��y5���6x(f*�I�b���������<)h��1�1e�.�j�={Xr�L�i�P�D@$f�&X#NF�F��nGZ���d��4�c���v��]T������j�$B�B���D�����Zm!6�6i"�c���� �m1�[�0��fv,�X.3�o��u�-QoMsY)���2CW�e���ls& ��6wM�v����Vu���5�\&W:��s|+3}O�5nVgYn��������X���=���h�n���SZ�lLL=��o[)�p�h�+�hijP���xv��et�� l��y��8��y�E������co���8(��[�$�|%P�z��TTw�k_o'}�g;����gt��L��������
C��L#�=9��3���G2Y��w0����iJ6�q;����^�j{#��i���L��,�K���l����A/����y���������e�J.y������"��d�[�]x��<��*	r���l�Jy���WW0�2���J��GPu�TYnv�#�|�t*�,u��p �����h7��k��'{e��>uWO�=��������L{����o�\�]SU���MRY#��Y�]�^�4<ptc^o\�;=�S���hn�%l���k^v�2����9sB]��'R���axi����������.�C��k$��n�����z���4fK���2l{M�������!���C�-�V������E�L�czu�J5sn���q�3S���q�BD;���f*��`���'��:U�c���L�j���	������
�N���>�!�g�����8M�f����~��������W�Llz����H�6"B �!
��
R�� 8��s�z��H��m|�4�1#�����x�K���|�E�i����z�i���qk����NJ�(��(�N��=�x*��@�f��JD5�V};[�������M>c���yoe9�R�hre�(a���$!I9�R]S������zg�_i#�0����"&A����Gx{��#-��y���j��m�+���
�e;�0K%�F�EW� �"�'����7��#��R�Gc�Zg�yJ$xr1fGb��C�����K4�����O8���^�Q�9S���x�����7���@T��8D(���2��
�j�� v�J�����f%���X4�s���G��#���Q�t�C0��Nl���*�z��C�6��E��U��$�����L\�D���WOv����{�>z^�835mL����L���(����_�jf�(�����L��B�d������x<��} T�nN6����g�
�*�u��x��~p���9.���Z�3��~��|��_-�7�;"xY�{����B/jgq�`l��st���U��DZ���fp��FnV�&�C^uc!r_y�Uv�4f���N�����P��
�rW�_��F��m�6�b����#?�d�5�=^���y�}������y�������Y��m1���M-�_�7��5t�6az��*����)r*�3���<�����
5C^�����*�����;�y<���R��I���������AP�M��f��8�o�d�*��Q>�����AY���>����p)v`�z��A�fn��xfp��Cn���<R�5��0��<o(I� �d��������x�M��IY���T���|��R9sM��M
{~a�!�Y&^�j�st������E0#�*�[��q�O���r9����x�F�v��6�l��$i�SU��4�b��������U.�����im�t��N�b���yD��x��z��#�����F��k�}����
Qo�?�5�[�O�R��/:;m���78��K<Y��DX��.��	�t�
	Q��x�`���,�M*rrc��	�Q�)3��F�W
X����m���(/�[.�.F7��	�����7d�T�*[,��]�G���I�W��H���qd��3[}��Ux�^�����������<M6�cllclm��>$�L6b��b$1.h*��� C\"\�����.iB�.b@��4������T��u���m	T�D��!�$���������s
�H$-�������������$����|��mB?�I��A�i ��3�j��P���5��F��Ckeq�� p�b����J�0�Q����F�&R�CM{{��$�F��e$$��@7LV��>�	UX���V !O���������n���2DM!a�~�(X����"p�
Q�%4bii��4�hAZ�Q�*��A����}��D���8|!�)�=�R��&D ������=b@���ZC�����`��s�����r����Q������Y�Ac4��:�A[fI�OM4|K� ����'6��s�io
C���>Gy��+�L�|}N�`�C�(�!�a�
e1W"������&\��eQwj������ ���R��=��L�	���"�����u��t��f7���`;��XD!�h�F�-W�(�*�B��6�8%=|D��Q	a��&N�C��F�@r
#��Y�> B3"m[��o�|��W��������T�����D��J�I��6����x-[F�(Z,�
$��8��Cq�2�l�=��^Y~v�N�m��~a�g���V�*j��-��>0w�6��W�?�X��^���w<�8�����	��y���4R��6E	t����$��Q�� JX��\�Za�Jhf�=pg�6$ �c��\�<�^Z4P#�XS�Y1��9���^��%��.��F���-~)-
��)Z�'$��58J��!D���z�4�=�AF�e�m��"���<�i��
�T
�������kl68��U�n��n��,���R��g}�%Z�R'E�T�O%+��R[� [
j,$:z����W��.���F�$-�|a����Y���)naex��-�������(�
����j���������2�"jE��0�E����ZDB�������F�f�1c���6���gG��a�@�f�e��o���2��yB)[-�D�@�7z�u���r�eo��S�m�fi� �����.�x)+Bm;�)C���"�>-A���A6����Jp�$�\�D��8�1f����E��R�����V��,3z�KkfQsGg����=b������&);}���z�
z�X��O	�����j�C�<	xL�s�x��.����3.���4�{��.�������M�DV�;�����D���&��=���	����[��K�"�>�����m#�59�:�=!MgTS��
��3lW!u��H��^z��gPb9�Y�f@�.�V��d��*���%�s�e��]�;p.R$��l�*���]��A��eRM�U�IOY��B��w1o�wc_(��wr���=aN��a��b�����
�c�e�{+�������)]�����G"A�9�o�:��J�MY�=��]�D��s�f��_:cK&��cyj�OW�KmW�o9A�eY.�Y6HM�!3l�:@zY��jRU���
���j�0^���;2�1m��I����������o+]�y�}r�rvk���M#�Z�o��
�W�W���"��)'����7YU"3TT�-]��k#J�����%�/�uV-�D�(3
�M������1���q��@�#q��
$^���F2��;nHs{Z����hD��)�u����x�	r�������R�d�����W�BkNn��X{��M��R"Kl�!��&"r
����T�np��;�]/M$��0
����T�qU1p�2
��J������p��#�W�z�����{��{����h!S�Rv�Q����^vJ!:�(#�������N�EQ����
<�`��;�	r��wd���N�Z�VhM�"H!^��n�����K`C��s�l/;\��#C@53�3I��
����ld�L&,mU���e��ou.qc�Y	� t+h��9��7$*����b��o����
��-�6�@-s5!S�
E	
|�EP�f�U��������|�TvGO����(�$q<U������.��BQU������#��r����v�3�=�������[M���t��d��~[E��l.V6��KG�[S1^�'����+�5�!*�5����n���y���O���	-Z�j����5����&V��vV!����L<. 3nl6��k�n��q�&��L"�������G�ay�R����7)����4�v������D�jf)�`��IT�J�:A���5/hD���y	+�)%�7l�4��������;��}�7������	2��W���}l^��q�����s�f�
�\��������i4b# ��A�6\��]5��\h��Mb���N������b��*\S�	��An��[������bk���]�|z�g�&sL�y�xmf/�@��2!��F��k�"BN/��Y��y���TT3���L���9���lt4F!�������y90�J�)	rc�n�(��er��d`"��O�Y:�eW��s���1��B1$|f��|�TE�=[^�=�a�[6|��0��*N
:]�P�!���������JW[Q������X�
>Z��dF��8�D]*�����S��k�*L?�����QuO��I��������	��JKhw#wI%������g������t8�5�V^}��kR�U4��=\���Te�SU5�7�n|��������tVP�V
�3�OeK�RY�yn��|�s�{�	D#�[U��Lg���k5B����3q�M�?� $�� �M�������1�lC�@6��i��!M.��F,eT_Z~�?cF�H���o���li�b#b��~�^� l���F��!
��!�~��[?�����������&��5LV��m m6�1� ���@�C�#�i�`��I6c3�����>0��i������F�;t�&ihM�+ph��o�1���d)��
4�.�K�a�.� �~�1�|�����~�3��6���dj���Am����U�.�J���/�H��z�$�5S0���q����b#������S*m��Kw
7����w>������K�>3m`��M��0��(�V�9������e�n��|kcE�A�!Fdm�� �hmdf�+��|}e1&����l�F6j 8����N4�3�F0�d�`��hcc��>�,h��A�P��HM���,�*h��m	��25�"61�
�m*�4
���������?lJ��wU����y�����d���m�kL[�i�l������!�0�w���+tm�l�e/�N���/�L-�����/��^R���z��i~H �P=�]���|��*C�6�����m�OVjN�������"�p`"�T��|�)��K���M�br��E�F,�l6��H���T�K�u�������J��s#kR	6ll�H��E�����H�66�bHl��m�b#B�G��4���i#L��0
������>�����P��h��O�?���(��Z�Z��@�+V��2�\c����	/b���^�'�_���|��C���qT�7�L6Q���(�,ssI�
q����4����=�@UB�J� �e\��6�z{�����������?
8A�D.$��6	xiJ��l">4�3lKBL���#��
�1��H��$F~1eEN>�ct�� �dQ�$�y���4�����Q��T�M2�H#�dIpe16!?N2�&�l
.USCx�m>�����@}��==k+�iI���+9��`K�}a���.S����5){�Nw�P���A�F�6�eP5MGm�H� x���������, Z�0�9��U�lb�po���f0��C*[�����lI��@��kEAq�������6���l���~�i�� O�4[-��ls��bcm%�c��bTDZ`�U�|�B��0�(���SM��C1�S���>E�$�eP����K���q����O�C$��U���b�n�r�mk_*��'�P��rB�i���E�?)8j��'�Zjd���04��t'�����!;D��]u��M��K!@[^K&��3�����N�`��|�����D/G;8x\I ����%
4H�����Q�j}�H1�\���gZ���1+�<��K��M��U�O�eE$���zMv����5��@��x�x�|��|9�Sk$1��U��KQ��;�v�^��w3�P��X�Am3��
 Q�������� �1��(c�?n*������6d�!����v�D�
�;	�gMy+s(u�d�d��L����_��5L&O�4 h@��>��|�_�^v~�}���W�����n�j "�M��C��m.*-%y~i�QJ���"�[q���:�nW	�������g4O�k��wm4��	 (����i�7��m��'�?A�s���l��gO���8-&&�2���I y"l�`��$�.���OY��ccO� 3��~����MS��$�Jd���O����U��I�^��"T�4�3�o�����������WG�ywW���c�Z��C?)������I�������K���<9Y,��RD4G�L�p�]jh�>���Wj�r�!MJ���B��>��n,�ZX?:��3|���a"_bBO����k�u��>��T8�6�hj���e��K�3�.x�
L�*Z,4C��9w�<3Z
���&\�A{�)��x��������$x�@%�tQ�v����@h^
��u� ��J�H]���R�0���s�U���)6����=�d8�y�������*_A�,��<�jj�����vy���W���&�4q/p�ZCN7:�GhfGn�'(���l��[�q6��ok�1����Y]I����B�{�Tz
}KDq��f6�X�u���������t;)�������]�N�����7�t�\Ee%M�'h�XV�9��X��9�c���	>���d�e��4j�(]r��oM�����V3x�VT:8�^�&���H��J���zU7�y4��2����m/f��Dkz�++M���lcX2�
�B�c�z�
��5�vf\F���y���cj!����h�/ss�q���!��>�M�M<���I����(�O6(���=��k�(��FRb��U�X+u�'�$��c����!���k����2�M�n %���!����-�N�sV_P�0p��&M�/	�r��6T<��'Om�����O7
Z�G���<��\�)U]�K�6�Z{�"tk��}9p��F��6�rq���tv�����8c��(�^��x�����6*����1�=�������t4���V����i9e+8�s�[�^Y�2���qr���`����2�D���
��cL���L6���jS����z�;.���d�iv
�S.�4N�5��;d��z�>��7c��*���4.���Ld�q��s(9G�D�^;�.��_ri+VwU��v��u�Br��\�	r�L��q������G����o���
e\�$�c��c����Mpq��m��f�"��Qa,s��c*���|��eJR��eM�
u�������:�v��k��O��R�����MV����Z�n?Q��&������U�����U�&�rf�'>�Z4wb���o7�����%�T�,�//a�&c��P[��,�[[�����%YT�R�nU��#v��t[�R���=]n.�������tl��-�M3���
a��:���\W+�f��!�KK����Za��v/I/dY����)w��a�,Q<�_L�Q�����;��
R|2�H\�D[�;�c2�3�������.�����Om�zl8G�+�����b7��^�,v����m��%�U+�dk�n_��hyY[��S������/(����V�W9�6R=�m�zL�nXS������E6�k�S���T�o��M���������]�,P��O$ �T�������@W��6c����;��k��Q����u3^�������w�(lG�U�%�$�������!��u��c~��e��|��s�(k���TxeF��S+H7�������w���0i����=~���KB�`��`�}7/�����,
*i+Y�����7���u`�dJ���ev5.���E��W���:�(��w���D}\d?g��4_�C+]\�)��t~��XG��y���(��
)E����K�B�d7�[C]���N�Y4������Wp�y|����v�����>�Qw�����3���������r�;������?M����#����-��d�)��m�6|��!m�k}�N�]W���^��fy��M��f���
���
L����nG)j��cz�|��M��|�}?S`>ob�l��@du���b] ��n1��<��$K�l3���v��
�*������u0�I�����1E	��AK*�����3>�C��QX@��#R�~�Tb�����Z�'�D��P�2vh�BM�D2���-���"���e+��3��a�ZD��)����_O}>O����������*y���Z	�%��e|<�Y����������;1��5����-k�����(@�6mn�,'�di���C�n���|�iH��3G�(���p�B.�������'�o�"��5�a�\��Zy�Y=���f�����s����������?G�w��� �H�h��_����uM��y�����&��lB���G���)M
��}�C�C)�^+(O+��bD���m�S&�\��gN���C<�����������Az)�aHDm:��.[��]>7���#�d�U���!%
	.f�[!XE�����m��(T"�arZ���YO(Cb�G����
���r���8�t@��E����S�X05�U�nN��Z5�y���������5wQl4��������x���E��wg.Y��'��
WH#[e�Ce���k��C������
8���(Ky�i�����!��2����K_�������=�u�'6���]��f����p����Sz��!l��e6��Q����"&,$a-0������W�*#��k����%�h���I���*i�gN�C`�5�������$��i~iB/���*�S���B�_"Dk3�j'�)����xv��r�[�V��A�@�l2*����Yu}�>�eB��bT{��g��T�H��$#c�*R����0�?Z�hV4��K�Y�X����vF[����J�~[����8��]-O�Y�T���LF���I���W��Q1�A����2)�V�XdDB6���	D��*�y�����J�N���O��uU���w�F���byyT�l���v�I_,��|j�d^��� 1���m� ���*�"g���}V�B�z����������_���a|�LR-�,����mW�J���9��_fU���V��i�{c�ki�uP������
���6�iMI�]
1 ^� "?���~��P��hB����������\����=
\^�`�Q6����p����5����$~f��En|.fg2]��_�'��|��Ua��q_���������7g���(����	�0��ZS;m��=�F�t�1H�.&�?�{�<��?��]�y�lT1O��B��������
�n�:f8h�	���bo��eJ�/����C2�q��Z'��Uy���e������j�^��7�y��5�3���!d��#�%�X���]Ho�2aZ����-����7D�fY�w�F.i��c�B���`�mR������x�xH�
����$�5R�BpG��+��< ��S�b�h��c�f�AE�f�s)����f8�f��'� c�[kQQXg�/BJf	V���q.bU(�FS��!
B	�6s���<�����S��a��O�$���������&����,�">���"@z��v��h�B:�P|%@QF�Rb�VZ�kC��kD po�<j4�"#R��[6*����b�������34vN ���������_{~Q���u(6�*�������G2��&�- 'J��$E$8GB����G������I�FAKZR�B�VK�B {�;��U�&p�d��H8&q�g �%��Xo��n���{����f�8� ��2u#c�S�%/���[b�jL
�
��j_n i�4���x����j�{}�v���1�~���_c��/�����XE�3�����"�Q/�oP�[eIf�����'2L�f���Lc�w��X@4g�DX�Uwm(��K����hZ���bW]G��/�iJp��6u��5�w���\������7mL�b��#wc�KW���>�^���]�i���������S�NP�b�-3����G��2�6=��9!d�}�lc�2����(:������]�c���
A5�y2�-�R
��Mq��e�7�������38����r��I�M4Qv:I[����xVXT����f6���UXmSE�OpB�qE��w�s�/�W������W�v�l�3��r�8W2���4���=@����rL��zS��v�J���S���`��xp���wJ
��@E�q���&�]��p���B��a]UjW65h��3-�S��p���It�����M��q�m�����7�-v���3����������8H��R��T��ug3��/���w6Iw��r�{�E�a��3f���Q��\�t��:XrU�yV���b�����[��^L]�y��]1l<H�hC��-���������5Y����>����
+.c�����P!B4��NftY>�n��o�mu��5o��(J�u�Fsy������=�����nVh���=zOlc�,n��-	"{1�T)�,����P��g�S��5*V�-E*���;�q���x���*�NT���d�I����kiLnu�m�4�tJ���%��b`��c`�r���Z�[�VMsN�:��[��(�|�U��i}&c�����;*@�b��^>�u��b�X��6)]Ne����q3���4x�1]m�G��tb����V�t��+6�A�e�n�����'^;�����P�z7�{�:��v��j��v��U�^��� �����-��s�B�����:
���iN{3z��;���m_Vw[�"yB�*'���b�.���QH���2���h�Op�b���T�o�J�49,�k��H����-���)%W�,�HY��V�����o���k�kF���M���[}�Pn;r�Nr���Z�����2���m���}��&����NJ��8x��r�9�Kl9������1as�K��e�v��Y��W�\����B:,��'1aaF�V��k�N��b�X���:��N�f9�8���c<O:�w0��i�Z�=���uN����Co{(��'&N�Vv����4)v�hdR�m�Y���x6���wGk�1�#���9�4�+i,���e���bg�\]����a>��Fw	7��=Rh�\���;o*�b\���@���Z5up�Z��b6J=k����Q�R>�����DI�3�4����W �o�A�V>��i��^@&G���)��3�A��=��
�A��
��22Xg�(���JzN:" �]r1��F���iu49��8���������|)/BM�H��Z���������g-���@��}��������:e���z�*��)�@�9��U���d��Q ���I��/�+dL�K�:jj��!tG@���j��e���XE+��p�M�b�a��	l2�M����fe��a~�����i�t�+tfL{^�J��n
����P#L��c���*%�^�M��;�B#�q��'��\j�]�3���������?}(�z����j��d��Y����r���E��+�+���	��t��h�Du3=���e����A#e�C��tD����/�P�����k�pt�Z���]V�����4��?'bD�"����q���:Ui�X��Bn.n	_���KjCB/YNk��*����2'��4T[e��f,P��H�7�|���j�q����q�VX����i?o
S�����>����NLZ� ���&=�F��p�,sS[��j�����y\�r��:�BX/\HLk�|����/
(��v2�t����x����V��;rmP>�����
�7�J����m�h�d�����xRIJ��R����Dk��|0^xF������z$f�����a��_��K�*L�*p���c����%��J��E���>�����,b|��]*1L���!cYe�1�f�6>$����k�;������j��DS3"��;�wIQ���o�tK���>Z�����ju5���Z�F�e����_G�,i��E�����M����V�t�SB�������5|�`�-��Aa�/S@�x����@&�#�'!w����R�K�c��_:g���_������o�6|3�D�c(h����ZR�i����Z}��t�}&%3���OW�>����X ��%]vP������V�#�h�4�H����k��H�]j��������������_]1�����n����	&���E�61��4W�#�N8�������B�_w
��|g�����������t�>)iv�����ZxI�Ob��%/�5�f��C;v�E 3��/��z�#�\�����tu�(�y,�����Y�Y�z������:\a��Tx�G�!���gdz���h����VWtP��_X�%��?�d��c��^�?�1j^z�������hK%��kA�����d�'-k�z;��������S3M��k%O��Ob�y3�R����
-���<�u��fHz!���z�f�5\p���YU�O���~	�$������Vs����DV���ZW�����c��_��<�����"iY|���Q��S��B>����L G�D6A�����0m�1JV�N��^V4n�vF��e�wTq�x�� wQ���<�Yl3����F�v)qn��HCnJ�b$IF?|e�������k��l� �A�������/8���h�!�j&F
�����>
�����FJ~#�z������R��a��C�s�����s�v��
�N��C��;��D�p}f7i�D1@O� 3*!$6&��g�u]Q-A7B�k'�	��cV���0�EZ�
��D���.>_���)���tG�/a���Y�L��}����>,�\� I%��,��k��|&������)�������^��������o{I�5j?��t��G�}�O�\��X'h���6��+\!�9/��Ep~Rk�5@��|��5�f��`����yWP��/��E�q��������U�����|��[���qw2��*,A��c���D��}%H�G.��-�HL��;���P�fE��`!p���Q%S�x:"���AaHCv��H@��K3$��:�u�U����&�u�	/��d�t�����qC�KF�����d���*�R���4tRF����%h�n�������3S������C*UX�!>|����4'�QC�3��V��g������S{��w��,_r\�;o��_��M?�6�A��#�_�?;w<g�wur�� ���r�Vk����b�j��b8����Za���i����,������dM�����ko�Yw)9�/�`|�e-��
���:T�*2���4c����P��a�,{�j�R��{���9�������[�!��s�Gm���r���P�ra�;X"Z%���z5��
��N��	{���wk����K��j��]�7��)^4:��o#W�&5*s-�X
�s>�f:)���������V�b<n����Y�1y��yV�=��AL~06��i�]^��KKQ��FfJs�` ��D�M`2�X��VF��
wH��������q�o;$xm-�����w*�AC�G����.9��..�����=E�OV���vl��������k��,DPdT�\l���*����Z����(�Z��:�zA-�05��7
���
��3W�Y	],��d"W9e������|e��R��R]�WE�>�6�t�w�%EF�U��J���4�.J���j2f=�6K����h8�ziu}��gb��V��z�k�p+Z��P����1�R<x;��
���n���A�n��)�T}<x�'l�8�'�rY-�7t�*�E)<��k.EA�������$m�����]z�pK����.��rW^c�����Y����H�#'��K�������x�\a�}������CoMu��|���Y����u��M���/s$&��/]�a��vS�HT���E����;7x$���i>
b��������~��~�����������9�%�����0`���F��=o�pi����f����01�#�y\O�X}�d@��E�*�fg����~�bq�J�n�NtP��w��XcZ��M���Aa?CCg��\�Z��>[����P�/_B��/t��W����3f��>��I��P��N������,G���I��pvHq����e�[�M������)E-3?�~�q�|��k����!�W�Bw����B�����#�e�>�P"$@����
;������?�X�R>f�����j}D$�[M�t�|I�|F��K�3�>��x�zw�Q3��p��t��/l�.�E�p��L7���f��������*��O�sP��/�cr ]�3�!�7�|>����,>�������4�%���`,��A�Ji �J=>
9����t��lw���^���\`����������f��,|����������F�RV����I��w&�^��6�_���$�7Q����<�����UL
k��Ju;=y��|'���O�.�{���7�#�����TX��Lh
�O|���sT�r6E���lJ�tY�y�Q�F<��i���������v�uVx>��]�Yc[L�cB6�!�������;��������m����$��u���Z�xa�m�l��8��p��#[n��C#�e��+1�D,�=�y�j�0���j�+��������_�Xm����h�����$�^�m{(�a�lox�����#3�9�B�����j��9�S$
]g��!]�t�!����\�0N�����~O�C��*����!%4X�h,�?�+���2q��tZj��~�gD���hRS)�3c@h��(�#�D�Sv
��=�z�[D!��0pa53�P�;�� �"[qi�2nCd�,��m�������i��~���������_=��bT$�K�;�DDy{~�����&V���$����o�J��+�l��h��Y�.>Lz��p8�5��UC7:��G{/��-�4N�~n�D�����I�7�IEx4(�����+b��v�g������Sn�m�����A���i�gY5�1�Q���@�|�������| ��RRm[��-�T����{,	���9[/n<!��Z�
�������c�p�O�H���t�n��V_�b��J����V#��!���+HQ�F���7����.�����iy
�B_�;���bh��%"�1���o�M&.^��g~"t��#���#���L���V!�����I"�0d��B�M-G<���8���ht�lJ�Dn���e.�H.X~��/Z�3DG���CC49�H�r\���v�;eQ���#	}�P����������g�x*��:JK������1��7VZ��W$!,��}$X�b�9s.S�$;H��_�6�a��*��R�2��vh���#
B�U/4�Kk�+��mF��V��R����N_�����e@�I�����!%�� ���\?"*S\@��S�5jj����	�_�";��Go����y������[��/d�syIlW��>���]����g2U�@�����������g}kTq�/q;�F��xj�
�	��E�q�5����QR,E3
2f�@�uQ���|$�>o����u�����dAY����= nQ
���P-���A�,�C����_�����q�@`�����_N�<�bm\���$zy��m�s"�0�nZ]{�pU��$$0F���62��Tj6��nY�c�d����@�A��
W�_1^�2�DOd���k#���������r��y4lY��,cB�p!����������B�EZ��w�/��*�_�O�i��p!�?X� i�$J�[d&i��P5nRf���?���>���g�l�O��!���Q�������o�q
#�W������v������C�"��bcd~	�r^��a���~_��|_�a����!D�g�?���A.$L���������!���Ei���Z���l��$b)��+S�4e��(eHi�*p�4H[����q���?I�$���>u�-��iQ>��������s6���P��x�Ml��X�F�����������e�k�&C�[����hkb�:a�������PG HU8��R�N\�k���{��#X�}�����ve��I�_���=����~��������F�_j�Yv`Av��I"�O��_����,Y��F�����5"}$x�y\�X5T���5��y)���C�Z��f�����M���>�����"���������E�#��C,4h-�����3U�#r��gxT�8�GN7��c���-�v��L�c�
c�Y��;���Y�:�������9������0�eS[��4Y�q�/&��D/H�a2�[�����9�X8�,3��3J�-\w���n�3\���L���{������6!j�{
�C����Xx�
�;t��T���;�������e���s���;O%�a��;a������:�{�u�F�_#�,8�`(onGey�KTr�)G.^������F����a�D=��*eM��32�>M=7���918�Y}�w�t#a�j��V�
��Hh��%�<�����5Z�&H^U]
�����@��{���<�+��g�>7]��m�"��2��eq���uf�b�O����K2�d��=����h��/����Pm��0��{��i����8���M��~mT�Nr�Q3ql�E:<�e������Z[s���.$��M(�CE_C:�f0�����i���@��KG�Kg��
���\�0�P�0Q���i^��,�c���&g��%a�)�����93��Lw���Q�2M3�L���ol�����|�\8�����9�tp�M��+�'�Y��������y��h��O���Vg2_Et"A���!\n�f���:GO_g��D�N���U{��:�x��F��C���d�747Q��)
���g}��p+�,\�v�z+��ju���c�p��R|2��y�U����#����*�:���.��a����Lm�&����W��eHZ�9�qQ���������+{�4�|�zv�2!\,��];�+l�M��#��U�$�������z�����2���''t<�-��-pcC,;�:*Z���-��G��w%��7��LA�=�B�GY��]������=�����q����ZWw%��X�����}�]��U�������S����5�Q��f��V�y�9�z��Syrj(]�� z�<���P���7�kj�&!�PlQ���Yv������`#�����j�P1�-f�%V�G8r���cY��w=��{����m���1M�"���Fq��UKt��������ao�YIw3iO7���M�G���/.i#r�k�e�+jbl�sX����G!f��?���j���������Q�]�%��M���O�Y	�|�p��+� �����(�"�3.�'�!�!�������hY��r9�yp�����[(�����8��v�hJ��HS�>����>�������RKO��T���j���d�J@��L!�;�Sl���n`�pP��e���]�:�����
����my*!���RE%+H���v������s����6��J-����X}@���U������UIw!
|��UO��$��N��oeB��B�K���f�%���`�9�~�Y@~���0���+��\n��d*T��^t���F��Q��P���l~�#04\����9��%G;Q����B^��ZR_��^�a8�>�{s����,����9���]}����;g<��:oE�\Po?]*�w�M�������b�6��2�Mt0�[7�6��^�s�b��Wt}{!������:��b���gDA�#�����"[�(6R�%�,j���+�X��`�����*;8�7�H�
|�n%��;�\�z��J=7� ����J���\{�o�<ccc�^����e�tN_�����&F�-�x�
������-�������8�p��*�y�����8<�Q�����-c�r��&��_�w�l�sn��I��}��t��7(���
M�O��I�|�������u���Y&}�9.nVu�+�`P��
���>��j���W8��i�����F>�s���q>��������42����Xy{�7Y��y5�/���+�G����wv���6��hq���&��o-��S]�>F>dr��Z��
}
\��,P0�����y ��W��&��D��w�� ���D�^�a���E ��Wdr]P,F�]:������QW;�C����s#�����{����N*w��~�|���I.8�7�����c��}��|�D|K�!>_���!g\w��>bm�@A>]��UN�������D�t,K%�;��hp���!�!�h��t�^�(v���j�!_>���������	����}\R�J��
���J�l;V���4�r�1*>���0%q�b1d������1hu�""dZ��|�3�CG���E8*���x��_�����3�Vh�e<e��V�	��k���Uo���B����� B�F�����Ri�9`������Nf��:GC6+C��C�[�,�����AaU�l�I�:�@N������P04ca]O;!��4�(�od[��y��X�
C�������r���1�g�O&T6�7|��&!�&C�+�3t��Q��}z���X��-O��N��T;�� ��k��"��g{<b��b{����,�:�=U�r�.6����:�n�^_H�Q�����|��?G�PX���}���oz���5����Wi@q�*'��\�1�1���j��#�D�MZ�9�#����a��((���*K�i�b~�bB����0�/R��@���!��W_{$g�b��~f�oW
a��.,��uv�s���.f�JZ��U�\8(P��(SBY��a����*����
�����M�oQ�$@��r��]���PB"�
����6�@r�:�|��f��,�$�L�j�� �59�R*��(���5?7X��������f��Ge��~G2��t�8$\�u~�Q���nZ�����;^�����������9x��>;H.^~�Es�b1����1+����U���@��������O���[��������(�M��O�y���v^M*����d�w�=��|�T����|E|����K��H�9l�Z�0���s�XEB����9�o����#���-W�a��,��2f���5��feJ�d�2��'���TBcoC���Pg��.j�_���.�SP�.I3�y�)��$)�v��%w.G
�kdS#	%���2H���hS��� .C'��rng�7��|.�>�4~HW��L,��Dd���uv���{� 9���}9T�#�	�����'�(c?S�c���T�6��t�kY2gd���^���.>����h��/��5�REf���O��D�/�W�0������ �#R�[�� �	Z�)��k���`��v�vrKM��	i�b�k[��*X���TlX.�X-I���B�y?�?�P�����7���\��:�,m;�;�8y�54X��TlC���uAxe�tv����5\m��.���2�!W�s����;$es��*���7ZyEA������`����0�E������f�N��FkC�Z�2��e?6P�����&s��S����Au
oo�"�����5$����{����|�����)�+"�t�m�y��0C'���jv4���zO>z�
�x����{z����6n�!�*��+x2�.[[o�y�o�������K��	x3�Z1I9u�Q��[��;��T����m2"1�sb���n����Yp��59�l���	�N6R�l����i-�Gs�Nb*j�+��r���IA���k��)x��F�#w}�%�� F���9W=�TyD�2!�Zg2�&�c��6=n��Hlfma%�/Z�c��8�F��kq���@�E�&�N�Cx3�!�����zq-���M��4���\2&C���gl5��B�����k��#,gp�;���B���������b�c��F���i��y{���'v��79@�Z-Df�CK�r�
B�
�����	]�[�Y�}�H1�r�p�4w;�F��LMb��;�6���y}.��<�8m�k���t��#1r��c�o�_A�`"f���]Yf�&�������xeY�N�1�r��������rx��+R�����J����1S4'&#����n)�$�H���]-�[��j���y>�
�A��#�I��.1(>];c7��fP����a��1�}�����O�"Vh��%�JcU��1=C)\S�b�3?�����S2�-���5q�T+��(Q??0���<Pg����F��y��a����l��asb�a �9~"��������5_�q���m����{�5��V��T�r��EY��Qk�� 1�|���2,��[	�y�aBRJ�S�"U��;���P�[�Z=WL��gD$%w:
����k��*�q"���n<���o���ZM>J���������,� �8LP:�y/�J��D��]�����)���V��A����PH4�<�y��U�>'��Y$�����!j�G�]>#bE�{H�������c���[��w���]��������m2O�~v�2jV*��U���q�R��z/g+��vh��z��g��y����%�Axd�:��	u�]��-`
�n�k�C��,(�ch�.�O�����O���S�u1_�3�^�\V���!jJ=���F�PP�~�[g�ZQn�x\�q[>{v�z��Sg���r;���������Xv�#P����7>{�����b��b��Q�n4��/�v��FuN�2`��FgD�� f��L����);��m��p|���PCX���pu�\
��,"C��kM��P���R��������y��qa��n�,R�h�����1�H�l�m2�.3�U�v�61��^e�b�Z�B��������V
�����f�&���t1u���-Q�Yi"|9�gF����D�������������}��w�����^$g����%���B�"�
n��%w��w<�����w�-F�nT�yQcJ;5A�[;6�����Q-�7��]#~ns1.�+V�V���yAX����a�z]�}���th�?m�vxuL��������0������
���@��d�{��3��46��@}_������O��������g<glN�F��2�'�Yd��;g�4aO.TD>]oX{Xu�c��^](buC%nS�OG��UG6��prp����l��'+T��N��>�	%�}��.��������t_]��!T	����"��-�W��a����y��,�i���x��#�������=h�����D�������F�1K�����4R+�K��Z�m��5����|��k�(5����	|��~�����n/��,�|W��y7\?gV��|�m�C�i�&h �da��~���n�-d���)>X��o��5�r�y�reF�������'�5c�R�F!a#0�����������7*0L�����~0��qQ�]Z�"��g�g�'���|/�F���+R�u��Q�Y��iQkD)�|~�����3�������Q�B�������P�Q�h�>^�}*��n��Z��P��$����.���& �E'�H��=������g�8���$���s���BWZ~�������_��,\o��u�.��,��g
�O*�#H��	HV~pRU�?�X�!���x�~���?}�
z�+�"CG�J� >��ovz�]!��|�������lt{E�a���
���*6��������K����
��>���X+���U�.����+�S(�%�
�j�X�81�d���MW�Mn#����"E��F#B�'W���m1����x�.\�tP*��T=~ H��|���~��p�������X�aV����'Z��*5f�ei%��L�&�A�	T�vQ�L���}�P~��i�.v�7*��7��3�6h�m����7��F��B��1����M�$�UyST�2�/(�������2F�$�J.:,6��(���e��!I�;���I+i4:�2!�SM1���G�P<h�J�q��4����dWkw���'m��~���cW����u�k��B.�I����G�r/�{��f#���;����B�������a��������T@��2�C����Gb�|�f� ����R��\���}���r�q�0�K�9�n��dc���.�J�������d�s
j�F�s�e���.m��&8��#��=yW�:���p�u���"�>���]MI���AB���e�_v�"���d��*N!1wU��E��}��"6������'+�a��y+o����]g��6���_^�9 �#��|���V�F	��G'���5�vxZ��w�{�Ro�KP>�������p�J���b��6��.`G��M�%�%�L/8��y�����5�_a���������c%M�)M���OaU}�k-#-B������'�]a\lHrL$ky!�����)�8j��>���	�*hi��u\��EM�=x������i������3-\�W
�7���#[�lV���{`�~$a��5�S����f�m-*�V��k+-����h�Yq�Z;6��[�]X�mr����8���x��n�D�
��`Xq������N����^X�.�\��*4Ve������������>��-Gs;���L�BY�]��F��;t���m���J6�����7v�%lD���DrPC��G�������������,�BU��������*lC3T��2�j�%�6l���h�f���!u�S�����j�e��|�p�xs������T:�=�-c��	�k�'��/:����N��s�"wld���R����U�m�w&c���M>2�d�1��f�bn��*��w�"��r����r!WaE����	����^;=�V^�$���M>D�n�j{�\�kp����o[-�6��wD���7�t������;v��5���KJ���%�F
-�}N���C5�-����,kN��b'H��1�'bv���'b|�\}�J$�8/wC7a[���Q��9]L��"����f�,Wc����!Y��%W]W��f��z������y��D�\�]���3����ig7�c,���f���{�[���Q�B�[o�&���,��>������l��Z���ds9g9���}��VO[�dLZ�`�n��L���Z9�"���3A�p�������l���[��z
��j��:�&)�=��K����rx��6ht�jH�1�zt�kb��Yk�*7��N���i�Fg��N��0��\[��I]
�	���z�H'�]������E�����z�+��V0u�3!�������#I�	�����V���a(%�E5�m��?T�*,��p}��-L9�&4�<}c�����!H��~��cw��|��Y�{�}g,���Grq�\Kd�
�Za"���L���T�W�[(�
�R�)�&B������F�S*+,x�
5Wy�~��Z$,�t^�q"�4oXz��|�5?4���6\��������_3t�n{�Y����������+p���~Vj3y�s�e�����5��;���0z��<���X���k���S4���k���~��^���c�1~��^�p�U�%_�6�A��������W������Z���%���
-��6���l�t��|�t��*��/�F���@�^���5k
�)����
���j�@�^���44��b��	,2�2F��������$x%��?c�^��>�	N4y��
8���s+�����`�	�uy����C^^�Pm�UN%���FM��7�p�������DV|7<
�����J��y>
R�D�F��������)O�|4/Qd���=p)�
e���]�����#�.�����<�c��U8�c�^G�'B�\DJ�F�Q���~zSj�������ATx(��������q��	E$�I�C���1�����2[�l<�Nx6����i��A���F$�C]g�U�o|pD��,�N�	ggKQ�
]�{���h���cc��-N��e���vR���	�+����OxsGg
PsJ,��g���U�J�*�q�hzbO�"�Rm9�Kq)[)xgW=���6��������lt&��,_��&�c����5�l~��
�DO��i�������~�D�js�Ts��`E[���|�����FdE*rD:��������:��&l]E�����&�FcT����)^<`8������7�b'��9�drsR��`�y��B�@�Y\j`��?vk�5v�C'M��/��_�fBm�!����x:\G�����5]~��	�����	DwQ��F��������c��>�f���7�8����H@�	iK�moG���!�J���#m��Ge<;��'�lS�z���Y1��jq��?�}��].x}�M�c�&*���v�]g'��c�u�����T������0�e)aL��#���:��X��@����xI�mEd��|S���u�Kk���D�%�B��G� $�B�a���B�%G�e�l��>3�I�������	&�Pe����>cR��!BI/3�?}k��r�uIr]��-e��z��+���#���*�(�����X-���><PV����B�~)=����4����.�-,�A�<5���F��!�M�1$�^��]�_�s��x�2}����+s�
�m ��B�r�7B�"|�S�3>s���a��%#^��G��z��������q�����u!�,�d:`_�{8{Y����+��;�4 f���ot��A2z�A�C�Z�(�9 Ni!�w�}��k�Y/R�3_�
qtx��<��n���S����-��W��y��?���i��
�<��5/��W��*���d�nH�(��qw/�FpA
�����Qu��>{z5��Od��)�blk��U��w
h��q�I*�~Y���s)�*�9�9-�{�y��3��3���8Y����=��Ky�I��������G�����z7>^�1�ks�zm����=7B�cy�G>��,2������o��=����}��\��$�jg��������v���KI�~�����ps+���3�tu�������Iyo���chS�Km���2_��pQ�Y*�����d!�!�SDwuk�1����
�	fW�Y�J�|�uY������nk��qFe�P�B���~���F��c�����!���ozue�q<�*��s�/F�Y�j�W*�wH�}�Y���1������	�(�����oH�M�g����������{�a���N���!%���	�8�:���%�C��dF��]S��ah��$�N��x;!m�v��y����3��G���4$q9����.�A��mG���}��5�����B44��L������u�+#,��kf��n� �p�����4���?��EF��k�v�����IC�������T�MBhSkyzF8|8�C�c������"C5GL���4a*�sv%��;��2ts�s�z6��DJ��,[2�C��{��0���yR��K"q�����S[8���3dEG��K�2�=�������R�DZ��H��,�.��-�VN"�V���x�!��u\��E���Uu�Tv?s��@�KR�xlCB�{h<��B:G�D�U�1��=�����W���7of+�z5U�:�o��a�uK��z�L�4��sp��	�G�r����I1BE��iP��L���s�6{���B��c��I���sJ�<
��m���o��u�v!(��N8����uY�x�M���i)�x<�Y=�_QN�x�m�V����<l`V�R].�������v���E;���5Y|9L\���p^T:_���#wY�(n�r�f9
��sP�y�M��u$�����O<w|
�����a�5�C���U���2R;~���D|�r
��yGV�z���;v��;�p�&I���<��*Y��iC���quQ>�qL/,��������j.�f���;0@BU'��\����|���WJ�C�-��s��*t� 5\^[D�=���p�b��j�e����W4�����O$%
�:��596g�
7UN�������M��h�|3#�b���8����fhd�8!uO79��u#�f����\���j��=�[{AT��Oi��9��ue?Ye��n���\�N����5$%��;f*�k����!�V[<o�}����Q��`f�����F�1C8]�t�ZAX��a0����n�7��!��-Ry��F�\t9�v���+zv�J�oVa*����[q�a��i��>6����x_m%)2����[C#mywY�@�r�C�qQ�I�M9U��>��r�q.yb�KDPc�����N�gd�'����\����QY�qy���P���3V�f��)��&��mdE��U�A����t$������E�6����:��'9"�z�:Ir�A$�i��Y:a�"��w�S������HR�-wi2���j:]uJ��)T��g��
Ud�=��]�u���P�M��M�y0U��:A�R���E���e>
�A��qut����mi~��&��o��.!&#�:H�<����}Tm�%����z�����W����DK��W��xt���>5�I�o�vEV�s2�-*'��(��+�YZw~�[��0�}����V|�jn���q"iE�{:�2�b����5dk����(��+��/)/����u�����ZN������8��A���42����RL@h�#Wbq�W.#����llr]3U
X*]Mk�����lP�4�]��!;(+������#����/}��O��B���EJ�(��&0�����_y�����@�B��b���K���t>�H2����O��L8M
�5oRQ���/�l�w[�i�C+JR"!�]d��
���&��	T��-��TLj�6"v�k���ru������-74K&�������	��b�V.&�e��,.�U�U�������^����J��$a�^���0#���>����7��fa�)37f��3��g���������a�#c�xcZ��C��l�)������H{Jk��mS��O\Hz�������Ht-g�3(MZt�8J�^�k�vR�4D4�$]��/\�?^)1����5'.|����rq6k���&�d�5��f�	��XR����u=���q	]��q�{��N�"�%���!���j���J�Pu�t����W~��A��M\^���x���iO�^c1�NFy�H�-��yd�����GG �.��{�U6�r���B^���'��M��4"[�[<�Z�
��N�e�A�]{z6/�������r���i�/����>*����q�mXFX��t�l��
����NF���K�g��8���+��39��[H\�����^w*�6�}td�4����VB]�������*�=�B_�{a�G��+u����q���|�Lh��$�B�(WG��J"H'Vl7��������0��U���,{"��T��[#���������[0E�.���g��~���I&�R���Z���S~h���3�����~$��
���_�{�*'�k�G��V�y.\��'6+�x�����{%���7�,�G��r����`�VW�[@�mO�*BI���l>����d���Tl����s*|��5C��O,�ID�^���p�^i��4����y!�����x�-QId!_&�b��o;t�*$�
�]Ec��R��Z��n�i{�o�Q�����HY)�������W��Dx0^����nl&��n��G�����e���C1����"'��z#���D�,��jrW�<��LSqB4���bW��5��u�4�r�.t�B�Sd*�J�\��2�)�`�\L����1�2���
�Nj������St���'^5������f�?���!!�@$2J��'w����Q�D��dY"�90���[|�W�?2(��}�� ���?9�����]�c'X*`��W&0(��B�p�g3����!����(B���M�]����-3��(����@��%ut�$S�YMa�R�����RlK�|���X���e�����������@�AIXQ������!�K+�>�Oi8��2y�e�V��|@�0�nH����<��Y8��+�_��t��G+�KL+�%E-��j������������Mq�i�g����^����I�\���\��'�����[�n����#<4�����
���@��~�%���L
���y�kY-�����A�����w����U�����*�����/2,>�8�p,(�s���_�0V�QE1MA�D��H&���+a��
��S��o�s�I�B�*���K�qHk�>�d��a���v��]�7���_L�.�;�d�+���/�����%�6,�P����J��4�T����R�m�bu8]s��i�����<f0�I%�~���r���u�N&R���`e.�%��t�����Z��>��1������q4�}���=M@�DN�D>c�*��J����W�wv�����p�$}�}�A�S��G�'��I,t/��
s�Ev*N�v!3Y��Xu������fRq���V!���t�����hu���2�EM��]�H�q�,�t�P>�e�t�Al�Q�����XKKz�V�^�N��fr��J��;2�K`'s�=C�i.�H(�:��v9�W����Qn�/jY���&6���=������V��&M����
0��<�[{ 0?={�	/�Z���D	�������o0]e*����{��.�+T�!.J��d=u���wi"�Q���n|sr��c�2���]���mQm��	�j ���|����b�R�I��z���R��f��C�H7����o�sR������rk�������
�]����U������C|:*G��$����{Q��PeUu2���
���=���=�f=<��26E��\}u:�A[%��9��6���7[��IR[�Gk��>��3f]0�	
#JW^����]j����.������:��
�WwI�nZ4u��:)�2���T!��1v����!�Y�*��j�E�Uyk�bV�C)|����Mv*X-���Po+���=��2�DGv��#q�.t����U��
�G��(��*V��=�D��b�+�sx��+j�����1��M�^
EX���F�T�_J���S�>n�V�<����I"�-!�VC�$���j�q�V8��#�|[����R����R &����fn_j�-��\����"4\E���RFnNH@�1
�j��;�C���B���M�D�^*d��d�>JK<K��Qu��Jf,�@��������M�F��F�
�����g������2Q]�k�x��t��A��$���
<
�-�!�&+��(�hm2�js�*��^��.
V�I�2�MX*���m���k�� �
Kc�s�_��(Zb�[;>�z�J��0gDC���J[�p�efb�NL5�|�j�W|�&s�����.�P��������)v����� ��0�����.5UClK�=eP�D���\���/��y��b�	�hN��4������
�f}W��l����_��������:@;�a]�gP$S��4S��?��)T���c#�+��!1D�O�{�_���-!y��h��~ ���D��D���o?.��R��2'�+X���FF�������v�������9��H�C*�|�JL��{-M���d)��[@��6LH����m��U&*�(A!�F\%.\T�"��wp�I�j'e��q�T$��������L���6�nUn1�X�7w><��'?�8l�z���c@ttF,kR�>Xs�W(_�3�br��F�C����{-����1���3,.]Rj0]������hJc$GC�}�~�e`��hSM��t�9��'�������M����[����5�����,2\]�q����y�ZDk�>s C�F8�K�$xWT�������O�<�6]|�M�����4��0��*��U�6��V&�g��n�Y�A��+�����
�ew��e����
�j~��{�|�G�$6�l��N��O>vh�Zq�����G��f���wf����7o%��N[��c"?��>����zq�R��9
0�������`�������|���0�������s�:U�o�\�����~�vY��7��I�, ����i�\b�Y6Cb�j��Yq��]0�V�
�����Q����.��?FU��������U-FJt,��MR��D>3o���DG��p�>�>�8��r]��K�[��$
Q2��B"*�)����n����Hc^��%{��{�M���a�}�{����5�g&�H�P�?	��#��J�g
�Zf��_wja�i$�w���_���!�Q�-9���~������9�E�>�2����A86=-��>]�<>���R��S�X��z���B|O��M��h�����������������=HbkQd#g
�kS��hZ;]�����>���$�d�w�0�2q�F��#Vg�o�o2��r�]�g��~/���x�(^[q$y�b�w�	ho�UC#��Z���p���]�V���
����?���(��4������l���>T�}���p-E&Hf�H-
�m'�!8De�P��TO����h���VAYC���keL"�(b`	/��9UI�'�b�=(��iQc#DN�(�Qa%4����|��u�����D=qN��������FT��ym%D3������t����I�/H8e����G��p�����H��j$]�=�
��d�%�,�0x{��W��4Q��1V[h�1��Ub��*��kO;�+�v�����< �S�e�-y��E4�������j�d0��~���i����)��iSDx��A���i�K����w(�|^<�����H���	����,���e^G��%�u.$���|�g!�A��[T�4�a��s���DZgqW�\��4�Xy-ct�i�������.�9� *��m�������F�.�o�c8�����~��GY�e��(Knu��Z�X�et��������K�1 ����1��B��}$�����B�u$�I�� �A��A��-$��$���H?���H?��B�X��$@��A�I�I�"H�B�e ��M ��I��_�I����/�� �
@!	���) ��$�H?�H!qK�4�RH6��I�I�-�����	�,�B�H��I�A�	 ���~�!$��$I�_�$�����|H!�$�bH4�$�A�	 �H?�I$�	 �i �H?�D���bi1��� BI �B@!�� �"@!��_��/� �H4�B���B_�H!xII��$���A�$�B�RA���I �H?�$��/�	�/�$��$���$H%����`$�P�G�I�$�$�$AA���h��H!pI��A��m��m��m�?�`��1���#]:o��B��B��@!��_��B���B�BI b$/�H?�$�
��,I$��E��N$
��
vacuum_bench_report.shapplication/x-sh; name=vacuum_bench_report.shDownload
vacuumbench.shapplication/x-sh; name=vacuumbench.shDownload
#133Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#132)
6 attachment(s)
Fwd: Vacuum: allow usage of more than 1GB of work mem

Resending without the .tar.bz2 that get blocked

Sorry for the delay, I had extended vacations that kept me away from
my test rigs, and afterward testing too, liteally, a few weeks.

I built a more thoroguh test script that produced some interesting
results. Will attach the results.

For now, to the review comments:

On Thu, Apr 27, 2017 at 4:25 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:

I've read this patch again and here are some review comments.

+ * Lookup in that structure proceeds sequentially in the list of segments,
+ * and with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity (2 log N to be
+ * precise).

IIUC we now do binary search even over the list of segments.

Right

-----

We often fetch a particular dead tuple segment. How about providing a
macro for easier understanding?
For example,

#define GetDeadTuplsSegment(lvrelstats, seg) \
(&(lvrelstats)->dead_tuples.dt_segments[(seg)])

-----

+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return;
+
+       /* If uninitialized, we have no tuples to delete from the indexes */
+       if (vacrelstats->dead_tuples.num_segs == 0)
+       {
+               return;
+       }
+       if (vacrelstats->dead_tuples.num_segs == 0)
+               return false;
+

Ok

As I listed, there is code to check if dead tuple is initialized
already in some places where doing actual vacuum.
I guess that it should not happen that we attempt to vacuum a
table/index page while not having any dead tuple. Is it better to have
Assert or ereport instead?

I'm not sure. Having a non-empty dead tuples array is not necessary to
be able to honor the contract in the docstring. Most of those functions
clean up the heap/index of dead tuples given the array of dead tuples,
which is a no-op for an empty array.

The code that calls those functions doesn't bother calling if the array
is known empty, true, but there's no compelling reason to enforce that at the
interface. Doing so could cause subtle bugs rather than catch them
(in the form of unexpected assertion failures, if some caller forgot to
check the dead tuples array for emptiness).

If you're worried about the possibility that some bugs fails to record
dead tuples in the array, and thus makes VACUUM silently ineffective,
I instead added a test for that case. This should be a better approach,
since it's more likely to catch unexpected failure modes than an assert.

@@ -1915,2 +2002,2 @@ count_nondeletable_pages(Relation onerel,
LVRelStats *vacrelstats)
-                       BlockNumber     prefetchStart;
-                       BlockNumber     pblkno;
+                       BlockNumber prefetchStart;
+                       BlockNumber pblkno;

I think that it's a unnecessary change.

Yep. But funnily that's how it's now in master.

-----

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *)
&(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));
+

I think that we can change the above to;

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *) &(seg->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));

We set "seg = vacrelstats->dead_tuples.dt_segments" just before this.

Right

Attached is a current version of both patches, rebased since we're at it.

I'm also attaching the output from the latest benchmark runs, in raw
(tar.bz2) and digested (bench_report) forms, the script used to run
them (vacuumbench.sh) and to produce the reports
(vacuum_bench_report.sh).

Those are before the changes in the review. While I don't expect any
change, I'll re-run some of them just in case, and try to investigate
the slowdown. But that will take forever. Each run takes about a week
on my test rig, and I don't have enough hardware to parallelize the
tests. I will run a test on a snapshot of a particularly troublesome
production database we have, that should be interesting.

The benchmarks show a consistent improvement at scale 400, which may
be related to the search implementation being better somehow, and a
slowdown at scale 4000 in some variants. I believe this is due to
those variants having highly clustered indexes. While the "shuf"
(shuffled) variantes were intended to be the opposite of that, I
suspect I somehow failed to get the desired outcome, so I'll be
double-checking that.

In any case the slowdown is only materialized when vacuuming with a
large mwm setting, which is something that shouldn't happen
unintentionally.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v11.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v11.patchDownload
From 1886860a97245219b328b50b9aca9f65c1da30d7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 409 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  26 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 380 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 30a0050..69fc00d 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,34 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	unsigned short padding;		/* Align dt_tids to 32-bits,
+								 * sizeof(ItemPointerData) is aligned to
+								 * short, so add a padding short, to make the
+								 * size of DeadTuplesSegment a multiple of
+								 * 32-bits and align integer components for
+								 * better performance during lookups into the
+								 * multiarray */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +172,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +210,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +218,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -510,7 +565,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -689,8 +744,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -741,7 +796,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -924,7 +979,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1136,10 +1191,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1147,7 +1208,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1250,7 +1311,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1281,7 +1342,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1378,43 +1439,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1426,7 +1500,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1436,34 +1510,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1597,6 +1673,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1607,6 +1685,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1614,7 +1706,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1991,7 +2083,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2005,10 +2096,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2018,46 +2110,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2085,6 +2296,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 6f68663..c4ebec5 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,6 +81,32 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
 -- partitioned table
 CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7c5fb04..85f4f9b 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,6 +63,25 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
 
 -- partitioned table
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v4.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v4.patchDownload
From 64e3c9451ec56db075d64b82ece8afaa2731cdc8 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 69fc00d..6f6c461 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -219,6 +219,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1380,6 +1381,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2207,6 +2211,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

vacuum_bench_report_unpatched.logtext/x-log; charset=US-ASCII; name=vacuum_bench_report_unpatched.logDownload
vacuum_bench_report_v11.logtext/x-log; charset=US-ASCII; name=vacuum_bench_report_v11.logDownload
vacuum_bench_report.shapplication/x-sh; name=vacuum_bench_report.shDownload
vacuumbench.shapplication/x-sh; name=vacuumbench.shDownload
#134Alexey Chernyshov
a.chernyshov@postgrespro.ru
In reply to: Claudio Freire (#133)
Re: Fwd: Vacuum: allow usage of more than 1GB of work mem

Thank you for the patch and benchmark results, I have a couple remarks.
Firstly, padding in DeadTuplesSegment

typedef struct DeadTuplesSegment

{

ItemPointerData last_dead_tuple; /* Copy of the last dead tuple
(unset

* until the segment is fully

* populated). Keep it first to
simplify

* binary searches */

unsigned short padding; /* Align dt_tids to 32-bits,

* sizeof(ItemPointerData) is aligned to

* short, so add a padding short, to
make the

* size of DeadTuplesSegment a multiple of

* 32-bits and align integer components
for

* better performance during lookups
into the

* multiarray */

int num_dead_tuples; /* # of entries in the segment */

int max_dead_tuples; /* # of entries allocated in the
segment */

ItemPointer dt_tids; /* Array of dead tuples */

} DeadTuplesSegment;

In the comments to ItemPointerData is written that it is 6 bytes long,
but can be padded to 8 bytes by some compilers, so if we add padding in
a current way, there is no guaranty that it will be done as it is
expected. The other way to do it with pg_attribute_alligned. But in my
opinion, there is no need to do it manually, because the compiler will
do this optimization itself.

On 11.07.2017 19:51, Claudio Freire wrote:

-----

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *)
&(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));
+

I think that we can change the above to;

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *) &(seg->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));

We set "seg = vacrelstats->dead_tuples.dt_segments" just before this.

Right

In my mind, if you change vacrelstats->dead_tuples.last_seg + 1 with
GetNumDeadTuplesSegments(vacrelstats), it would be more meaningful.
Besides, you can change the vac_itemptr_binsrch within the segment with
stdlib bsearch, like:

res = (ItemPointer) bsearch((void *) itemptr,

(void *) seg->dt_tids,

seg->num_dead_tuples,

sizeof(ItemPointerData),

vac_cmp_itemptr);

return (res != NULL);

Those are before the changes in the review. While I don't expect any
change, I'll re-run some of them just in case, and try to investigate
the slowdown. But that will take forever. Each run takes about a week
on my test rig, and I don't have enough hardware to parallelize the
tests. I will run a test on a snapshot of a particularly troublesome
production database we have, that should be interesting.

Very interesting, waiting for the results.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#135Claudio Freire
klaussfreire@gmail.com
In reply to: Alexey Chernyshov (#134)
Re: Fwd: Vacuum: allow usage of more than 1GB of work mem

On Wed, Jul 12, 2017 at 11:48 AM, Alexey Chernyshov
<a.chernyshov@postgrespro.ru> wrote:

Thank you for the patch and benchmark results, I have a couple remarks.
Firstly, padding in DeadTuplesSegment

typedef struct DeadTuplesSegment

{

ItemPointerData last_dead_tuple; /* Copy of the last dead tuple
(unset

* until the segment is fully

* populated). Keep it first to
simplify

* binary searches */

unsigned short padding; /* Align dt_tids to 32-bits,

* sizeof(ItemPointerData) is aligned to

* short, so add a padding short, to make
the

* size of DeadTuplesSegment a multiple of

* 32-bits and align integer components for

* better performance during lookups into
the

* multiarray */

int num_dead_tuples; /* # of entries in the segment */

int max_dead_tuples; /* # of entries allocated in the
segment */

ItemPointer dt_tids; /* Array of dead tuples */

} DeadTuplesSegment;

In the comments to ItemPointerData is written that it is 6 bytes long, but
can be padded to 8 bytes by some compilers, so if we add padding in a
current way, there is no guaranty that it will be done as it is expected.
The other way to do it with pg_attribute_alligned. But in my opinion, there
is no need to do it manually, because the compiler will do this optimization
itself.

I'll look into it. But my experience is that compilers won't align
struct size like this, only attributes, and this attribute is composed
of 16-bit attributes so it doesn't get aligned by default.

On 11.07.2017 19:51, Claudio Freire wrote:

-----

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *)
&(vacrelstats->dead_tuples.dt_segments->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));
+

I think that we can change the above to;

+       /* Search for the segment likely to contain the item pointer */
+       iseg = vac_itemptr_binsrch(
+               (void *) itemptr,
+               (void *) &(seg->last_dead_tuple),
+               vacrelstats->dead_tuples.last_seg + 1,
+               sizeof(DeadTuplesSegment));

We set "seg = vacrelstats->dead_tuples.dt_segments" just before this.

Right

In my mind, if you change vacrelstats->dead_tuples.last_seg + 1 with
GetNumDeadTuplesSegments(vacrelstats), it would be more meaningful.

It's not the same thing. The first run it might, but after a reset of
the multiarray, num segments is the allocated size, while last_seg is
the last one filled with data.

Besides, you can change the vac_itemptr_binsrch within the segment with
stdlib bsearch, like:

res = (ItemPointer) bsearch((void *) itemptr,

(void *) seg->dt_tids,

seg->num_dead_tuples,

sizeof(ItemPointerData),

vac_cmp_itemptr);

return (res != NULL);

The stdlib's bsearch is quite slower. The custom bsearch inlines the
comparison making it able to factor out of the loop quite a bit of
logic, and in general generate far more specialized assembly.

For the compiler to optimize the stdlib's bsearch call, whole-program
optimization should be enabled, something that is unlikely. Even then,
it may not be able to, due to aliasing rules.

This is what I came up to make the new approach's performance on par
or better than the old one, in CPU cycles. In fact, benchmarks show
that time spent on the CPU is lower now, in large part, due to this.

It's not like it's the first custom binary search in postgres, also.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#136Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#135)
Re: Fwd: Vacuum: allow usage of more than 1GB of work mem

On Wed, Jul 12, 2017 at 1:08 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Jul 12, 2017 at 11:48 AM, Alexey Chernyshov
<a.chernyshov@postgrespro.ru> wrote:

Thank you for the patch and benchmark results, I have a couple remarks.
Firstly, padding in DeadTuplesSegment

typedef struct DeadTuplesSegment

{

ItemPointerData last_dead_tuple; /* Copy of the last dead tuple
(unset

* until the segment is fully

* populated). Keep it first to
simplify

* binary searches */

unsigned short padding; /* Align dt_tids to 32-bits,

* sizeof(ItemPointerData) is aligned to

* short, so add a padding short, to make
the

* size of DeadTuplesSegment a multiple of

* 32-bits and align integer components for

* better performance during lookups into
the

* multiarray */

int num_dead_tuples; /* # of entries in the segment */

int max_dead_tuples; /* # of entries allocated in the
segment */

ItemPointer dt_tids; /* Array of dead tuples */

} DeadTuplesSegment;

In the comments to ItemPointerData is written that it is 6 bytes long, but
can be padded to 8 bytes by some compilers, so if we add padding in a
current way, there is no guaranty that it will be done as it is expected.
The other way to do it with pg_attribute_alligned. But in my opinion, there
is no need to do it manually, because the compiler will do this optimization
itself.

I'll look into it. But my experience is that compilers won't align
struct size like this, only attributes, and this attribute is composed
of 16-bit attributes so it doesn't get aligned by default.

Doing sizeof(DeadTuplesSegment) suggests you were indeed right, at
least in GCC. I'll remove the padding.

Seems I just got the wrong impression at some point.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#137Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#136)
2 attachment(s)
Re: Fwd: Vacuum: allow usage of more than 1GB of work mem

On Wed, Jul 12, 2017 at 1:29 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Jul 12, 2017 at 1:08 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Jul 12, 2017 at 11:48 AM, Alexey Chernyshov
<a.chernyshov@postgrespro.ru> wrote:

Thank you for the patch and benchmark results, I have a couple remarks.
Firstly, padding in DeadTuplesSegment

typedef struct DeadTuplesSegment

{

ItemPointerData last_dead_tuple; /* Copy of the last dead tuple
(unset

* until the segment is fully

* populated). Keep it first to
simplify

* binary searches */

unsigned short padding; /* Align dt_tids to 32-bits,

* sizeof(ItemPointerData) is aligned to

* short, so add a padding short, to make
the

* size of DeadTuplesSegment a multiple of

* 32-bits and align integer components for

* better performance during lookups into
the

* multiarray */

int num_dead_tuples; /* # of entries in the segment */

int max_dead_tuples; /* # of entries allocated in the
segment */

ItemPointer dt_tids; /* Array of dead tuples */

} DeadTuplesSegment;

In the comments to ItemPointerData is written that it is 6 bytes long, but
can be padded to 8 bytes by some compilers, so if we add padding in a
current way, there is no guaranty that it will be done as it is expected.
The other way to do it with pg_attribute_alligned. But in my opinion, there
is no need to do it manually, because the compiler will do this optimization
itself.

I'll look into it. But my experience is that compilers won't align
struct size like this, only attributes, and this attribute is composed
of 16-bit attributes so it doesn't get aligned by default.

Doing sizeof(DeadTuplesSegment) suggests you were indeed right, at
least in GCC. I'll remove the padding.

Seems I just got the wrong impression at some point.

Updated versions of the patches attached.

A few runs of the benchmark show no significant difference, as it
should (being all cosmetic changes).

The bigger benchmark will take longer.

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v12.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v12.patchDownload
From b2bf9a671c2c4d517d59628f12a7f564ccf152f6 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  26 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 373 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 30a0050..287accd 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -510,7 +558,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -689,8 +737,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -741,7 +789,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -924,7 +972,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1136,10 +1184,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1147,7 +1201,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1250,7 +1304,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1281,7 +1335,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1378,43 +1432,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1426,7 +1493,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1436,34 +1503,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1597,6 +1666,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1607,6 +1678,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1614,7 +1699,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1991,7 +2076,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2005,10 +2089,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2018,46 +2103,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2085,6 +2289,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 6f68663..c4ebec5 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,6 +81,32 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
 -- partitioned table
 CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 7c5fb04..85f4f9b 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,6 +63,25 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
 
 -- partitioned table
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v5.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v5.patchDownload
From 227cdaa3910fac015a3d395a01c2eeb13e346072 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 287accd..1d2b18f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1373,6 +1374,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2200,6 +2204,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#138Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#118)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 7, 2017 at 10:51 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Indeed they do, and that's what motivated this patch. But I'd need
TB-sized tables to set up something like that. I don't have the
hardware or time available to do that (vacuum on bloated TB-sized
tables can take days in my experience). Scale 4000 is as big as I can
get without running out of space for the tests in my test hardware.

If anybody else has the ability, I'd be thankful if they did test it
under those conditions, but I cannot. I think Anastasia's test is
closer to such a test, that's probably why it shows a bigger
improvement in total elapsed time.

Our production database could possibly be used, but it can take about
a week to clone it, upgrade it (it's 9.5 currently), and run the
relevant vacuum.

It looks like I won't be able to do that test with a production
snapshot anytime soon.

Getting approval for the budget required to do that looks like it's
going to take far longer than I thought.

Regardless of that, I think the patch can move forward. I'm still
planning to do the test at some point, but this patch shouldn't block
on it.

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#139Daniel Gustafsson
daniel@yesql.se
In reply to: Claudio Freire (#138)
Re: Vacuum: allow usage of more than 1GB of work mem

On 18 Aug 2017, at 13:39, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 7, 2017 at 10:51 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Indeed they do, and that's what motivated this patch. But I'd need
TB-sized tables to set up something like that. I don't have the
hardware or time available to do that (vacuum on bloated TB-sized
tables can take days in my experience). Scale 4000 is as big as I can
get without running out of space for the tests in my test hardware.

If anybody else has the ability, I'd be thankful if they did test it
under those conditions, but I cannot. I think Anastasia's test is
closer to such a test, that's probably why it shows a bigger
improvement in total elapsed time.

Our production database could possibly be used, but it can take about
a week to clone it, upgrade it (it's 9.5 currently), and run the
relevant vacuum.

It looks like I won't be able to do that test with a production
snapshot anytime soon.

Getting approval for the budget required to do that looks like it's
going to take far longer than I thought.

Regardless of that, I think the patch can move forward. I'm still
planning to do the test at some point, but this patch shouldn't block
on it.

This patch has been marked Ready for committer after review, but wasn’t
committed in the current commitfest so it will be moved to the next. Since it
no longer applies cleanly, it’s being reset to Waiting for author though.

cheers ./daniel

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#140Claudio Freire
klaussfreire@gmail.com
In reply to: Daniel Gustafsson (#139)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Sun, Oct 1, 2017 at 8:36 PM, Daniel Gustafsson <daniel@yesql.se> wrote:

On 18 Aug 2017, at 13:39, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 7, 2017 at 10:51 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Indeed they do, and that's what motivated this patch. But I'd need
TB-sized tables to set up something like that. I don't have the
hardware or time available to do that (vacuum on bloated TB-sized
tables can take days in my experience). Scale 4000 is as big as I can
get without running out of space for the tests in my test hardware.

If anybody else has the ability, I'd be thankful if they did test it
under those conditions, but I cannot. I think Anastasia's test is
closer to such a test, that's probably why it shows a bigger
improvement in total elapsed time.

Our production database could possibly be used, but it can take about
a week to clone it, upgrade it (it's 9.5 currently), and run the
relevant vacuum.

It looks like I won't be able to do that test with a production
snapshot anytime soon.

Getting approval for the budget required to do that looks like it's
going to take far longer than I thought.

Regardless of that, I think the patch can move forward. I'm still
planning to do the test at some point, but this patch shouldn't block
on it.

This patch has been marked Ready for committer after review, but wasn’t
committed in the current commitfest so it will be moved to the next. Since it
no longer applies cleanly, it’s being reset to Waiting for author though.

cheers ./daniel

Rebased version of the patches attached

Attachments:

0002-Vacuum-allow-using-more-than-1GB-work-mem-v13.patchtext/x-patch; charset=US-ASCII; name=0002-Vacuum-allow-using-more-than-1GB-work-mem-v13.patchDownload
From 8d4ea3bc7b67bc535ac26109a65932044e4a0ab7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 2 Oct 2017 10:56:40 -0300
Subject: [PATCH 1/2] [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 404 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  26 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 375 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 30b1c08c6c..ae1e9afbf3 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -510,7 +558,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -688,8 +736,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -740,7 +788,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -923,7 +971,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1135,10 +1183,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1146,7 +1200,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1249,7 +1303,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1280,7 +1334,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1377,43 +1431,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1425,7 +1492,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1435,34 +1502,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1596,6 +1665,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1606,6 +1677,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1613,7 +1698,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1990,7 +2075,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2004,10 +2088,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2017,46 +2102,167 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+	DeadTuplesSegment *seg;
+
 	/*
 	 * The array must never overflow, since we rely on all deletable tuples
 	 * being removed; inability to remove a tuple might cause an old XID to
 	 * persist beyond the freeze limit, which could be disastrous later on.
 	 */
-	if (vacrelstats->num_dead_tuples >= vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries >= vacrelstats->dead_tuples.max_entries)
 		elog(ERROR, "dead tuple array overflow");
 
-	vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-	vacrelstats->num_dead_tuples++;
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
+	seg = DeadTuplesCurrentSegment(vacrelstats);
+
+	if (seg->num_dead_tuples >= seg->max_dead_tuples)
+	{
+		DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+		/*
+		 * The segment is overflowing, so we must allocate a new segment.
+		 * We could have a preallocated segment descriptor already, in
+		 * which case we just reinitialize it, or we may need to repalloc
+		 * the vacrelstats->dead_tuples array. In that case, seg will no
+		 * longer be valid, so we must be careful about that.
+		 */
+		Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+		if (dt->last_seg + 1 >= dt->num_segs)
+		{
+			int			new_num_segs = dt->num_segs * 2;
+			int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+			dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+			while (dt->num_segs < new_num_segs)
+			{
+				/* Initialize as "unallocated" */
+				DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+				nseg->num_dead_tuples = 0;
+				nseg->max_dead_tuples = 0;
+				nseg->dt_tids = NULL;
+				dt->num_segs++;
+			}
+		}
+		dt->last_seg++;
+		seg = DeadTuplesCurrentSegment(vacrelstats);
+		if (seg->dt_tids == NULL)
+		{
+			/*
+			 * If unallocated, allocate up to twice the amount of the
+			 * previous segment
+			 */
+			DeadTuplesSegment *pseg = seg - 1;
+			int			numtuples = dt->max_entries - dt->num_entries;
+
+			numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+			numtuples = Min(numtuples, INT_MAX / 2);
+			numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+			numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+			seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+			seg->max_dead_tuples = numtuples;
+		}
+		seg->num_dead_tuples = 0;
+	}
+	seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+	vacrelstats->dead_tuples.num_entries++;
+	seg->num_dead_tuples++;
+
 	pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-								 vacrelstats->num_dead_tuples);
+								 vacrelstats->dead_tuples.num_entries);
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
+ *
+ *		All item pointers in the array are assumed to be valid
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
+
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
+
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
 
-	return (res != NULL);
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2084,6 +2290,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index ced53ca9aa..37c8c2092f 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -81,6 +81,32 @@ SQL function "wrap_do_analyze" statement 1
 VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 DROP TABLE vaccluster;
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vactst;
 -- partitioned table
 CREATE TABLE vacparted (a int, b char) PARTITION BY LIST (a);
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 96a848ca95..7c1d283f42 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -63,6 +63,25 @@ VACUUM FULL vactst;
 VACUUM (DISABLE_PAGE_SKIPPING) vaccluster;
 
 DROP TABLE vaccluster;
+
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vactst;
 
 -- partitioned table
-- 
2.12.0

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v6.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v6.patchDownload
From c6461d06ae6524532e81ecc91b935e1294e9e5a1 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index ae1e9afbf3..36dc63ef8d 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1372,6 +1373,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2201,6 +2205,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
2.12.0

#141Michael Paquier
michael.paquier@gmail.com
In reply to: Claudio Freire (#140)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Mon, Oct 2, 2017 at 11:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Rebased version of the patches attached

The status of the patch is misleading:
https://commitfest.postgresql.org/15/844/. This was marked as waiting
on author but a new version has been published. Let's be careful.

The last patches I am aware of, aka those from
/messages/by-id/CAGTBQpZHTf2JtShC=ijc9wzEipo3XOKWQhx+8WiP7ZjPC3FBEg@mail.gmail.com,
do not apply. I am moving the patch to the next commit fest with a
waiting on author status, as this should be reviewed, but those need a
rebase.
--
Michael

#142Claudio Freire
klaussfreire@gmail.com
In reply to: Michael Paquier (#141)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Tue, Nov 28, 2017 at 10:37 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:

On Mon, Oct 2, 2017 at 11:02 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Rebased version of the patches attached

The status of the patch is misleading:
https://commitfest.postgresql.org/15/844/. This was marked as waiting
on author but a new version has been published. Let's be careful.

The last patches I am aware of, aka those from
/messages/by-id/CAGTBQpZHTf2JtShC=ijc9wzEipo3XOKWQhx+8WiP7ZjPC3FBEg@mail.gmail.com,
do not apply. I am moving the patch to the next commit fest with a
waiting on author status, as this should be reviewed, but those need a
rebase.

They did apply at the time, but I think major work on vacuum was
pushed since then, and also I was traveling so out of reach.

It may take some time to rebase them again. Should I move to needs
review myself after that?

#143Michael Paquier
michael.paquier@gmail.com
In reply to: Claudio Freire (#142)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Mon, Dec 4, 2017 at 2:38 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

They did apply at the time, but I think major work on vacuum was
pushed since then, and also I was traveling so out of reach.

It may take some time to rebase them again. Should I move to needs
review myself after that?

Sure, if you can get into this state, please feel free to update the
status of the patch yourself.
--
Michael

#144Stephen Frost
sfrost@snowman.net
In reply to: Michael Paquier (#143)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Greetings,

* Michael Paquier (michael.paquier@gmail.com) wrote:

On Mon, Dec 4, 2017 at 2:38 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

They did apply at the time, but I think major work on vacuum was
pushed since then, and also I was traveling so out of reach.

It may take some time to rebase them again. Should I move to needs
review myself after that?

Sure, if you can get into this state, please feel free to update the
status of the patch yourself.

We're now over a month since this status update- Claudio, for this to
have a chance during this commitfest to be included (which, personally,
I think would be great as it solves a pretty serious issue..), we really
need to have it be rebased and updated. Once that's done, as Michael
says, please change the patch status back to 'Needs Review'.

Thanks!

Stephen

#145Claudio Freire
klaussfreire@gmail.com
In reply to: Stephen Frost (#144)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Sat, Jan 6, 2018 at 7:35 PM, Stephen Frost <sfrost@snowman.net> wrote:

Greetings,

* Michael Paquier (michael.paquier@gmail.com) wrote:

On Mon, Dec 4, 2017 at 2:38 PM, Claudio Freire <klaussfreire@gmail.com>

wrote:

They did apply at the time, but I think major work on vacuum was
pushed since then, and also I was traveling so out of reach.

It may take some time to rebase them again. Should I move to needs
review myself after that?

Sure, if you can get into this state, please feel free to update the
status of the patch yourself.

We're now over a month since this status update- Claudio, for this to
have a chance during this commitfest to be included (which, personally,
I think would be great as it solves a pretty serious issue..), we really
need to have it be rebased and updated. Once that's done, as Michael
says, please change the patch status back to 'Needs Review'.

Sorry, had tons of other stuff that took priority.

I'll get to rebase this patch now.

#146Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#145)
2 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Wed, Jan 17, 2018 at 5:02 PM, Claudio Freire <klaussfreire@gmail.com>
wrote:

On Sat, Jan 6, 2018 at 7:35 PM, Stephen Frost <sfrost@snowman.net> wrote:

Greetings,

* Michael Paquier (michael.paquier@gmail.com) wrote:

On Mon, Dec 4, 2017 at 2:38 PM, Claudio Freire <klaussfreire@gmail.com>

wrote:

They did apply at the time, but I think major work on vacuum was
pushed since then, and also I was traveling so out of reach.

It may take some time to rebase them again. Should I move to needs
review myself after that?

Sure, if you can get into this state, please feel free to update the
status of the patch yourself.

We're now over a month since this status update- Claudio, for this to
have a chance during this commitfest to be included (which, personally,
I think would be great as it solves a pretty serious issue..), we really
need to have it be rebased and updated. Once that's done, as Michael
says, please change the patch status back to 'Needs Review'.

Sorry, had tons of other stuff that took priority.

I'll get to rebase this patch now.

Huh. That was simpler than I thought.

Attached rebased versions.

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v14.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v14.patchDownload
From df993486d3847c59605c8e35ae8b27183a3c9ae7 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  27 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 374 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index cf7f5e1..1e82d26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index c440c7e..57550d9 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -112,6 +112,33 @@ ANALYZE vactst, does_not_exist, vacparted;
 ERROR:  relation "does_not_exist" does not exist
 ANALYZE vactst (i), vacparted (does_not_exist);
 ERROR:  column "does_not_exist" of relation "vacparted" does not exist
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 92eaca2..b9817c4 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -89,6 +89,25 @@ ANALYZE vacparted (b), vactst;
 ANALYZE vactst, does_not_exist, vacparted;
 ANALYZE vactst (i), vacparted (does_not_exist);
 
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v7.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v7.patchDownload
From cab9d334ebc26bc5543e6f48112437188c2d73be Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 1e82d26..2c7850f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1394,6 +1395,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2221,6 +2225,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#147Aleksander Alekseev
a.alekseev@postgrespro.ru
In reply to: Claudio Freire (#146)
Re: Vacuum: allow usage of more than 1GB of work mem

The following review has been posted through the commitfest application:
make installcheck-world: tested, passed
Implements feature: tested, passed
Spec compliant: tested, passed
Documentation: tested, passed

I can confirm that these patches don't break anything; the code is well
documented, has some tests and doesn't do anything obviously wrong. However
I would recommend someone who is more familiar with the VACUUM mechanism than I
do to recheck these patches.

The new status of this patch is: Ready for Committer

#148Thomas Munro
thomas.munro@enterprisedb.com
In reply to: Claudio Freire (#146)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 18, 2018 at 9:17 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

Huh. That was simpler than I thought.

Attached rebased versions.

Hi Claudio,

FYI the regression test seems to have some run-to-run variation.
Though it usually succeeds, recently I have seen a couple of failures
like this:

========= Contents of ./src/test/regress/regression.diffs
*** /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/expected/vacuum.out
2018-01-24 01:41:28.200454371 +0000
--- /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/results/vacuum.out
2018-01-24 01:51:07.970049937 +0000
***************
*** 128,134 ****
  SELECT pg_relation_size('vactst', 'main');
   pg_relation_size
  ------------------
!                 0
  (1 row)
  SELECT count(*) FROM vactst;
--- 128,134 ----
  SELECT pg_relation_size('vactst', 'main');
   pg_relation_size
  ------------------
!              8192
  (1 row)

SELECT count(*) FROM vactst;
======================================================================

--
Thomas Munro
http://www.enterprisedb.com

#149Claudio Freire
klaussfreire@gmail.com
In reply to: Thomas Munro (#148)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 25, 2018 at 4:11 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

On Thu, Jan 18, 2018 at 9:17 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

Huh. That was simpler than I thought.

Attached rebased versions.

Hi Claudio,

FYI the regression test seems to have some run-to-run variation.
Though it usually succeeds, recently I have seen a couple of failures
like this:

========= Contents of ./src/test/regress/regression.diffs
*** /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/expected/vacuum.out
2018-01-24 01:41:28.200454371 +0000
--- /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/results/vacuum.out
2018-01-24 01:51:07.970049937 +0000
***************
*** 128,134 ****
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
!                 0
(1 row)
SELECT count(*) FROM vactst;
--- 128,134 ----
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
!              8192
(1 row)

SELECT count(*) FROM vactst;
======================================================================

--
Thomas Munro
http://www.enterprisedb.com

I'll look into it

However, shouldn't an empty relation have an initial page anyway? In
that case shouldn't the correct value be 8192?

#150Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#149)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

On Thu, Jan 25, 2018 at 4:11 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

*** 128,134 ****
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
! 0
(1 row)

SELECT count(*) FROM vactst;
--- 128,134 ----
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
!              8192
(1 row)

However, shouldn't an empty relation have an initial page anyway? In
that case shouldn't the correct value be 8192?

No, it's legal for an empty table to have size 0 on disk.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#151Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#149)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 25, 2018 at 10:56 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Thu, Jan 25, 2018 at 4:11 AM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

On Thu, Jan 18, 2018 at 9:17 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

Huh. That was simpler than I thought.

Attached rebased versions.

Hi Claudio,

FYI the regression test seems to have some run-to-run variation.
Though it usually succeeds, recently I have seen a couple of failures
like this:

========= Contents of ./src/test/regress/regression.diffs
*** /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/expected/vacuum.out
2018-01-24 01:41:28.200454371 +0000
--- /home/travis/build/postgresql-cfbot/postgresql/src/test/regress/results/vacuum.out
2018-01-24 01:51:07.970049937 +0000
***************
*** 128,134 ****
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
!                 0
(1 row)
SELECT count(*) FROM vactst;
--- 128,134 ----
SELECT pg_relation_size('vactst', 'main');
pg_relation_size
------------------
!              8192
(1 row)

SELECT count(*) FROM vactst;
======================================================================

--
Thomas Munro
http://www.enterprisedb.com

I'll look into it

I had the tests running in a loop all day long, and I cannot reproduce
that variance.

Can you share your steps to reproduce it, including configure flags?

#152Thomas Munro
thomas.munro@enterprisedb.com
In reply to: Claudio Freire (#151)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Fri, Jan 26, 2018 at 9:38 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

I had the tests running in a loop all day long, and I cannot reproduce
that variance.

Can you share your steps to reproduce it, including configure flags?

Here are two build logs where it failed:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/332968819
https://travis-ci.org/postgresql-cfbot/postgresql/builds/332592511

Here's one where it succeeded:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/333139855

The full build script used is:

./configure --enable-debug --enable-cassert --enable-coverage
--enable-tap-tests --with-tcl --with-python --with-perl --with-ldap
--with-icu && make -j4 all contrib docs && make -Otarget -j3
check-world

This is a virtualised 4 core system. I wonder if "make -Otarget -j3
check-world" creates enough load on it to produce some weird timing
effect that you don't see on your development system.

--
Thomas Munro
http://www.enterprisedb.com

#153Claudio Freire
klaussfreire@gmail.com
In reply to: Thomas Munro (#152)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Jan 25, 2018 at 6:21 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

On Fri, Jan 26, 2018 at 9:38 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

I had the tests running in a loop all day long, and I cannot reproduce
that variance.

Can you share your steps to reproduce it, including configure flags?

Here are two build logs where it failed:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/332968819
https://travis-ci.org/postgresql-cfbot/postgresql/builds/332592511

Here's one where it succeeded:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/333139855

The full build script used is:

./configure --enable-debug --enable-cassert --enable-coverage
--enable-tap-tests --with-tcl --with-python --with-perl --with-ldap
--with-icu && make -j4 all contrib docs && make -Otarget -j3
check-world

This is a virtualised 4 core system. I wonder if "make -Otarget -j3
check-world" creates enough load on it to produce some weird timing
effect that you don't see on your development system.

I can't reproduce it, not even with the same build script.

It's starting to look like a timing effect indeed.

I get a similar effect if there's an active snapshot in another
session while vacuum runs. I don't know how the test suite ends up in
that situation, but it seems to be the case.

How do you suggest we go about fixing this? The test in question is
important, I've caught actual bugs in the implementation with it,
because it checks that vacuum effectively frees up space.

I'm thinking this vacuum test could be put on its own parallel group
perhaps? Since I can't reproduce it, I can't know whether that will
fix it, but it seems sensible.

#154Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
In reply to: Claudio Freire (#153)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Hello,

At Fri, 2 Feb 2018 19:52:02 -0300, Claudio Freire <klaussfreire@gmail.com> wrote in <CAGTBQpaiNQSNJC8y4w82UBTaPsvSqRRg++yEi5wre1MFE2iD8Q@mail.gmail.com>

On Thu, Jan 25, 2018 at 6:21 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

On Fri, Jan 26, 2018 at 9:38 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

I had the tests running in a loop all day long, and I cannot reproduce
that variance.

Can you share your steps to reproduce it, including configure flags?

Here are two build logs where it failed:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/332968819
https://travis-ci.org/postgresql-cfbot/postgresql/builds/332592511

Here's one where it succeeded:

https://travis-ci.org/postgresql-cfbot/postgresql/builds/333139855

The full build script used is:

./configure --enable-debug --enable-cassert --enable-coverage
--enable-tap-tests --with-tcl --with-python --with-perl --with-ldap
--with-icu && make -j4 all contrib docs && make -Otarget -j3
check-world

This is a virtualised 4 core system. I wonder if "make -Otarget -j3
check-world" creates enough load on it to produce some weird timing
effect that you don't see on your development system.

I can't reproduce it, not even with the same build script.

I had the same error by "make -j3 check-world" but only twice
from many trials.

It's starting to look like a timing effect indeed.

It seems to be truncation skip, maybe caused by concurrent
autovacuum. See lazy_truncate_heap() for details. Updates of
pg_stat_*_tables can be delayed so looking it also can fail. Even
though I haven't looked the patch closer, the "SELECT
pg_relation_size()" doesn't seem to give something meaningful
anyway.

I get a similar effect if there's an active snapshot in another
session while vacuum runs. I don't know how the test suite ends up in
that situation, but it seems to be the case.

How do you suggest we go about fixing this? The test in question is
important, I've caught actual bugs in the implementation with it,
because it checks that vacuum effectively frees up space.

I'm thinking this vacuum test could be put on its own parallel group
perhaps? Since I can't reproduce it, I can't know whether that will
fix it, but it seems sensible.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

#155Claudio Freire
klaussfreire@gmail.com
In reply to: Kyotaro HORIGUCHI (#154)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Tue, Feb 6, 2018 at 4:35 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

It's starting to look like a timing effect indeed.

It seems to be truncation skip, maybe caused by concurrent
autovacuum.

Good point, I'll also disable autovacuum on vactst.

See lazy_truncate_heap() for details. Updates of
pg_stat_*_tables can be delayed so looking it also can fail. Even
though I haven't looked the patch closer, the "SELECT
pg_relation_size()" doesn't seem to give something meaningful
anyway.

Maybe then "explain (analyze, buffers, costs off, timing off, summary
off) select * from vactst" then.

The point is to check that the relation's heap has 0 pages.

#156Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#155)
2 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Tue, Feb 6, 2018 at 10:18 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Feb 6, 2018 at 4:35 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

It's starting to look like a timing effect indeed.

It seems to be truncation skip, maybe caused by concurrent
autovacuum.

Good point, I'll also disable autovacuum on vactst.

See lazy_truncate_heap() for details. Updates of
pg_stat_*_tables can be delayed so looking it also can fail. Even
though I haven't looked the patch closer, the "SELECT
pg_relation_size()" doesn't seem to give something meaningful
anyway.

Maybe then "explain (analyze, buffers, costs off, timing off, summary
off) select * from vactst" then.

The point is to check that the relation's heap has 0 pages.

Attached rebased patches with those changes mentioned above, namely:

- vacuum test now creates vactst with autovacuum disabled for it
- vacuum test on its own parallel group
- use explain analyze instead of pg_relation_size to check the
relation is properly truncated

Attachments:

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v8.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v8.patchDownload
From 35ce2e22760e83c45ec776dab60ab59d8da801a3 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c    | 25 +++++++++++++++++++++++++
 src/test/regress/expected/vacuum.out | 10 +++++-----
 src/test/regress/parallel_schedule   |  7 ++++++-
 src/test/regress/sql/vacuum.sql      |  4 ++--
 4 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 1e82d26..2c7850f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1394,6 +1395,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2221,6 +2225,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index 57550d9..828960d 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,7 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -125,10 +125,10 @@ INSERT INTO vactst SELECT * from generate_series(1,40);
 CREATE INDEX ix_vactst ON vactst (i);
 DELETE FROM vactst;
 VACUUM vactst;
-SELECT pg_relation_size('vactst', 'main');
- pg_relation_size 
-------------------
-                0
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
+                 QUERY PLAN                 
+--------------------------------------------
+ Seq Scan on vactst (actual rows=0 loops=1)
 (1 row)
 
 SELECT count(*) FROM vactst;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index ad9434f..1cb5626 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -60,7 +60,12 @@ test: create_index create_view
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_aggregate create_function_3 create_cast constraints triggers inherit create_table_like typed_table vacuum drop_if_exists updatable_views rolenames roleattributes create_am hash_func
+test: create_aggregate create_function_3 create_cast constraints triggers inherit create_table_like typed_table drop_if_exists updatable_views rolenames roleattributes create_am hash_func
+
+# ----------
+# Vacuum tests aren't reproducible with concurrent snapshots
+# ----------
+test: vacuum
 
 # ----------
 # sanity_check does a vacuum, affecting the sort order of SELECT *
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index b9817c4..d36bf8b 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,7 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -103,7 +103,7 @@ INSERT INTO vactst SELECT * from generate_series(1,40);
 CREATE INDEX ix_vactst ON vactst (i);
 DELETE FROM vactst;
 VACUUM vactst;
-SELECT pg_relation_size('vactst', 'main');
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
 SELECT count(*) FROM vactst;
 DROP INDEX ix_vactst;
 TRUNCATE TABLE vactst;
-- 
1.8.4.5

0001-Vacuum-allow-using-more-than-1GB-work-mem-v15.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v15.patchDownload
From c5734266f61596f5ec8cf34d7920e2f94fb4d0b8 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  27 +++
 src/test/regress/sql/vacuum.sql      |  19 ++
 3 files changed, 374 insertions(+), 74 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index cf7f5e1..1e82d26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index c440c7e..57550d9 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -112,6 +112,33 @@ ANALYZE vactst, does_not_exist, vacparted;
 ERROR:  relation "does_not_exist" does not exist
 ANALYZE vactst (i), vacparted (does_not_exist);
 ERROR:  column "does_not_exist" of relation "vacparted" does not exist
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+ pg_relation_size 
+------------------
+                0
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 92eaca2..b9817c4 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -89,6 +89,25 @@ ANALYZE vacparted (b), vactst;
 ANALYZE vactst, does_not_exist, vacparted;
 ANALYZE vactst (i), vacparted (does_not_exist);
 
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+SELECT pg_relation_size('vactst', 'main');
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
-- 
1.8.4.5

#157Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
In reply to: Claudio Freire (#156)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Hello,

At Tue, 6 Feb 2018 10:41:22 -0300, Claudio Freire <klaussfreire@gmail.com> wrote in <CAGTBQpaufC0o8OikWd8=5biXcbYjT51mPLfmy22NUjX6kUED0A@mail.gmail.com>

On Tue, Feb 6, 2018 at 10:18 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Feb 6, 2018 at 4:35 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

It's starting to look like a timing effect indeed.

It seems to be truncation skip, maybe caused by concurrent
autovacuum.

Good point, I'll also disable autovacuum on vactst.

See lazy_truncate_heap() for details. Updates of
pg_stat_*_tables can be delayed so looking it also can fail. Even
though I haven't looked the patch closer, the "SELECT
pg_relation_size()" doesn't seem to give something meaningful
anyway.

Maybe then "explain (analyze, buffers, costs off, timing off, summary
off) select * from vactst" then.

Ah, sorry. I meant by the above that it gives unstable result
with autovacuum. So pg_relation_size() is usable after you turned
of autovacuum on the table.

The point is to check that the relation's heap has 0 pages.

Attached rebased patches with those changes mentioned above, namely:

- vacuum test now creates vactst with autovacuum disabled for it
- vacuum test on its own parallel group
- use explain analyze instead of pg_relation_size to check the
relation is properly truncated

The problematic test was in the 0001..v14 patch. The new
0001..v15 is identical to v14 and instead 0003-v8 has additional
part that edits the test and expects added by 0001 into the shape
as above. It seems that you merged the fixup onto the wrong
commit.

And may we assume it correct that 0002 is missing in this
patchset?

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

#158Claudio Freire
klaussfreire@gmail.com
In reply to: Kyotaro HORIGUCHI (#157)
2 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 7, 2018 at 12:50 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

Hello,

At Tue, 6 Feb 2018 10:41:22 -0300, Claudio Freire <klaussfreire@gmail.com> wrote in <CAGTBQpaufC0o8OikWd8=5biXcbYjT51mPLfmy22NUjX6kUED0A@mail.gmail.com>

On Tue, Feb 6, 2018 at 10:18 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Feb 6, 2018 at 4:35 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

It's starting to look like a timing effect indeed.

It seems to be truncation skip, maybe caused by concurrent
autovacuum.

Good point, I'll also disable autovacuum on vactst.

See lazy_truncate_heap() for details. Updates of
pg_stat_*_tables can be delayed so looking it also can fail. Even
though I haven't looked the patch closer, the "SELECT
pg_relation_size()" doesn't seem to give something meaningful
anyway.

Maybe then "explain (analyze, buffers, costs off, timing off, summary
off) select * from vactst" then.

Ah, sorry. I meant by the above that it gives unstable result
with autovacuum. So pg_relation_size() is usable after you turned
of autovacuum on the table.

You did mention stats could be delayed

The point is to check that the relation's heap has 0 pages.

Attached rebased patches with those changes mentioned above, namely:

- vacuum test now creates vactst with autovacuum disabled for it
- vacuum test on its own parallel group
- use explain analyze instead of pg_relation_size to check the
relation is properly truncated

The problematic test was in the 0001..v14 patch. The new
0001..v15 is identical to v14 and instead 0003-v8 has additional
part that edits the test and expects added by 0001 into the shape
as above. It seems that you merged the fixup onto the wrong
commit.

And may we assume it correct that 0002 is missing in this
patchset?

Sounds like I botched the rebase. Sorry about that.

Attached are corrected versions (1-v16 and 3-v9)

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v16.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v16.patchDownload
From f385a63345b1917625a1696d7b5004f239976320 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  29 ++-
 src/test/regress/parallel_schedule   |   7 +-
 src/test/regress/sql/vacuum.sql      |  21 +-
 4 files changed, 382 insertions(+), 77 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index cf7f5e1..1e82d26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index c440c7e..828960d 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,7 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -112,6 +112,33 @@ ANALYZE vactst, does_not_exist, vacparted;
 ERROR:  relation "does_not_exist" does not exist
 ANALYZE vactst (i), vacparted (does_not_exist);
 ERROR:  column "does_not_exist" of relation "vacparted" does not exist
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
+                 QUERY PLAN                 
+--------------------------------------------
+ Seq Scan on vactst (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index ad9434f..1cb5626 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -60,7 +60,12 @@ test: create_index create_view
 # ----------
 # Another group of parallel tests
 # ----------
-test: create_aggregate create_function_3 create_cast constraints triggers inherit create_table_like typed_table vacuum drop_if_exists updatable_views rolenames roleattributes create_am hash_func
+test: create_aggregate create_function_3 create_cast constraints triggers inherit create_table_like typed_table drop_if_exists updatable_views rolenames roleattributes create_am hash_func
+
+# ----------
+# Vacuum tests aren't reproducible with concurrent snapshots
+# ----------
+test: vacuum
 
 # ----------
 # sanity_check does a vacuum, affecting the sort order of SELECT *
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 92eaca2..d36bf8b 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,7 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -89,6 +89,25 @@ ANALYZE vacparted (b), vactst;
 ANALYZE vactst, does_not_exist, vacparted;
 ANALYZE vactst (i), vacparted (does_not_exist);
 
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+VACUUM vactst;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v9.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v9.patchDownload
From 067aee21d36e7dc591704e74094e99a3a569b33f Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 1e82d26..2c7850f 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1394,6 +1395,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2221,6 +2225,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#159Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#156)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

- vacuum test on its own parallel group

Hmm, this solution is not very friendly to the goal of reducing test
runtime, particularly since the new test creates a nontrivial-sized
table. Maybe we can find a better alternative. Can we use some wait
logic instead? Maybe something like grab a snapshot of running VXIDs
and loop waiting until they're all gone before doing the vacuum?

Also, I don't understand why pg_relation_size() is not a better solution
to determining the table size compared to explain.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#160Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#159)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 7, 2018 at 7:57 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

- vacuum test on its own parallel group

Hmm, this solution is not very friendly to the goal of reducing test
runtime, particularly since the new test creates a nontrivial-sized
table. Maybe we can find a better alternative. Can we use some wait
logic instead? Maybe something like grab a snapshot of running VXIDs
and loop waiting until they're all gone before doing the vacuum?

I'm not sure there's any alternative. I did some tests and any active
snapshot on any other table, not necessarily on the one being
vacuumed, distorted the test. And it makes sense, since that snapshot
makes those deleted tuples unvacuumable.

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I'm guessing all tests write something to the database, so all tests
will create a snapshot. Maybe if there were read-only tests, those
might be safe to include in vacuum's parallel group, but otherwise I
don't see any alternative.

Also, I don't understand why pg_relation_size() is not a better solution
to determining the table size compared to explain.

I was told pg_relation_size can return stale information. I didn't
check, I took that at face value.

#161Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#160)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

On Wed, Feb 7, 2018 at 7:57 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

Hmm, this solution is not very friendly to the goal of reducing test
runtime, particularly since the new test creates a nontrivial-sized
table. Maybe we can find a better alternative. Can we use some wait
logic instead? Maybe something like grab a snapshot of running VXIDs
and loop waiting until they're all gone before doing the vacuum?

I'm not sure there's any alternative. I did some tests and any active
snapshot on any other table, not necessarily on the one being
vacuumed, distorted the test. And it makes sense, since that snapshot
makes those deleted tuples unvacuumable.

Sure.

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I don't think it's the same. We don't need to wait until all the
concurrent tests are done -- we only need to wait until the transactions
that were current when the delete finished are done, which is very
different since each test runs tons of small transactions rather than
one single big transaction.

Also, I don't understand why pg_relation_size() is not a better solution
to determining the table size compared to explain.

I was told pg_relation_size can return stale information. I didn't
check, I took that at face value.

Hmm, it uses stat() on the table files. I think those files would be
truncated at the time the transaction commits, so they shouldn't be
stale. (I don't think the system waits for a checkpoint to flush a
truncation.) Maybe relying on that is not reliable or future-proof
enough. Anyway this is a minor point -- the one above worries me most.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#162Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#161)
1 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 7, 2018 at 8:52 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I don't think it's the same. We don't need to wait until all the
concurrent tests are done -- we only need to wait until the transactions
that were current when the delete finished are done, which is very
different since each test runs tons of small transactions rather than
one single big transaction.

Um... maybe "lock pg_class" ?

That should conflict with basically any other running transaction and
have pretty much that effect.

Attached is a version of patch 1 with that approach.

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v17.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v17.patchDownload
From 3f1eb8829f9b396d1e5aef33114df44b04631455 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  31 ++-
 src/test/regress/sql/vacuum.sql      |  23 +-
 3 files changed, 380 insertions(+), 76 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index cf7f5e1..1e82d26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index c440c7e..04829c7 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,7 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -112,6 +112,35 @@ ANALYZE vactst, does_not_exist, vacparted;
 ERROR:  relation "does_not_exist" does not exist
 ANALYZE vactst (i), vacparted (does_not_exist);
 ERROR:  column "does_not_exist" of relation "vacparted" does not exist
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+BEGIN; LOCK pg_class; COMMIT; -- wait for all snapshots prior to DELETE
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+BEGIN; LOCK pg_class; COMMIT; -- wait for all snapshots prior to DELETE
+VACUUM vactst;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
+                 QUERY PLAN                 
+--------------------------------------------
+ Seq Scan on vactst (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 92eaca2..95edd27 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,7 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -89,6 +89,27 @@ ANALYZE vacparted (b), vactst;
 ANALYZE vactst, does_not_exist, vacparted;
 ANALYZE vactst (i), vacparted (does_not_exist);
 
+-- large mwm vacuum runs
+INSERT INTO vactst SELECT * from generate_series(1,400000);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst WHERE i in (SELECT i FROM vactst ORDER BY random() LIMIT 300000);
+SET maintenance_work_mem = 1024;
+BEGIN; LOCK pg_class; COMMIT; -- wait for all snapshots prior to DELETE
+VACUUM vactst;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
+INSERT INTO vactst SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst ON vactst (i);
+DELETE FROM vactst;
+BEGIN; LOCK pg_class; COMMIT; -- wait for all snapshots prior to DELETE
+VACUUM vactst;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst;
+SELECT count(*) FROM vactst;
+DROP INDEX ix_vactst;
+TRUNCATE TABLE vactst;
+
 DROP TABLE vaccluster;
 DROP TABLE vactst;
 DROP TABLE vacparted;
-- 
1.8.4.5

#163Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#162)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

On Wed, Feb 7, 2018 at 8:52 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I don't think it's the same. We don't need to wait until all the
concurrent tests are done -- we only need to wait until the transactions
that were current when the delete finished are done, which is very
different since each test runs tons of small transactions rather than
one single big transaction.

Um... maybe "lock pg_class" ?

I was thinking in first doing
SELECT array_agg(DISTINCT virtualtransaction) vxids
FROM pg_locks \gset

and then in a DO block loop until

SELECT DISTINCT virtualtransaction
FROM pg_locks
INTERSECT
SELECT (unnest(:'vxids'::text[]));

returns empty; something along those lines.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#164Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#163)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Wed, Feb 7, 2018 at 11:29 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

On Wed, Feb 7, 2018 at 8:52 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I don't think it's the same. We don't need to wait until all the
concurrent tests are done -- we only need to wait until the transactions
that were current when the delete finished are done, which is very
different since each test runs tons of small transactions rather than
one single big transaction.

Um... maybe "lock pg_class" ?

I was thinking in first doing
SELECT array_agg(DISTINCT virtualtransaction) vxids
FROM pg_locks \gset

and then in a DO block loop until

SELECT DISTINCT virtualtransaction
FROM pg_locks
INTERSECT
SELECT (unnest(:'vxids'::text[]));

returns empty; something along those lines.

Isn't it the same though?

I can't think how a transaction wouldn't be holding at least an access
share on pg_class.

#165Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#164)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Feb 8, 2018 at 12:13 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Wed, Feb 7, 2018 at 11:29 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

On Wed, Feb 7, 2018 at 8:52 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Waiting as you say would be akin to what the patch does by putting
vacuum on its own parallel group.

I don't think it's the same. We don't need to wait until all the
concurrent tests are done -- we only need to wait until the transactions
that were current when the delete finished are done, which is very
different since each test runs tons of small transactions rather than
one single big transaction.

Um... maybe "lock pg_class" ?

I was thinking in first doing
SELECT array_agg(DISTINCT virtualtransaction) vxids
FROM pg_locks \gset

and then in a DO block loop until

SELECT DISTINCT virtualtransaction
FROM pg_locks
INTERSECT
SELECT (unnest(:'vxids'::text[]));

returns empty; something along those lines.

Isn't it the same though?

I can't think how a transaction wouldn't be holding at least an access
share on pg_class.

Never mind, I just saw the error of my ways.

I don't like looping, though, seems overly cumbersome. What's worse?
maintaining that fragile weird loop that might break (by causing
unexpected output), or a slight slowdown of the test suite? I don't
know how long it might take on slow machines, but in my machine, which
isn't a great machine, while the vacuum test isn't fast indeed, it's
just a tiny fraction of what a simple "make check" takes. So it's not
a huge slowdown in any case.

I'll give it some thought, maybe there's a simpler way.

#166Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
In reply to: Kyotaro HORIGUCHI (#157)
1 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Hello, I looked this a bit closer.

In upthread[1]/messages/by-id/CAGTBQpbZX5S4QrnB6YP-2Nk+A9bxbaVktzKwsGvMeov3MTgdiQ@mail.gmail.com Robert mentioned the exponentially increasing size
of additional segments.

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

It seems that you are getting him wrong. (Anyway I'm not sure
what you meant by the above. not-yet-allocated memory won't be a
waste.) The conclusive number of dead tuples in a heap scan is
undeteminable until the scan ends. If we had a new dead tuple
required a, say 512MB new segment and the scan ends just after,
the wastage will be almost the whole of the segment.

On the other hand, I don't think the exponential strategy make
things considerably better. bsearch iterations in
lazy_tid_reaped() are distributed between segment search and tid
search. Intuitively more or less the increased segment size just
moves some iterations of the former to the latter.

I made a calculation[2]See attached perl script. I hope it is correct.. With maintemance_work_mem of 4096MB, the
number of segments is 6 and expected number of bsearch iteration
is about 20.8 for the exponential strategy. With 64MB fixed size
segments, we will have 64 segments (that is not so many) and the
expected iteration is 20.4. (I suppose the increase comes from
the imbalanced size among segments.) Addition to that, as Robert
mentioned, the possible maximum memory wastage of the exponential
strategy is about 2GB and 64MB in fixed size strategy.

Seeing these numbers, I don't tend to take the exponential
strategy.

[1]: /messages/by-id/CAGTBQpbZX5S4QrnB6YP-2Nk+A9bxbaVktzKwsGvMeov3MTgdiQ@mail.gmail.com

[2]: See attached perl script. I hope it is correct.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

Attachments:

calciter.pltext/plain; charset=us-asciiDownload
#167Claudio Freire
klaussfreire@gmail.com
In reply to: Kyotaro HORIGUCHI (#166)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Feb 8, 2018 at 2:44 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

Hello, I looked this a bit closer.

In upthread[1] Robert mentioned the exponentially increasing size
of additional segments.

Hmm, I had imagined making all of the segments the same size rather
than having the size grow exponentially. The whole point of this is
to save memory, and even in the worst case you don't end up with that
many segments as long as you pick a reasonable base size (e.g. 64MB).

Wastage is bound by a fraction of the total required RAM, that is,
it's proportional to the amount of required RAM, not the amount
allocated. So it should still be fine, and the exponential strategy
should improve lookup performance considerably.

It seems that you are getting him wrong. (Anyway I'm not sure
what you meant by the above. not-yet-allocated memory won't be a
waste.) The conclusive number of dead tuples in a heap scan is
undeteminable until the scan ends. If we had a new dead tuple
required a, say 512MB new segment and the scan ends just after,
the wastage will be almost the whole of the segment.

And the segment size is bound by a fraction of total needed memory.

When I said "allocated", I meant m_w_m. Wastage is not proportional to m_w_m.

On the other hand, I don't think the exponential strategy make
things considerably better. bsearch iterations in
lazy_tid_reaped() are distributed between segment search and tid
search. Intuitively more or less the increased segment size just
moves some iterations of the former to the latter.

I made a calculation[2]. With maintemance_work_mem of 4096MB, the
number of segments is 6 and expected number of bsearch iteration
is about 20.8 for the exponential strategy. With 64MB fixed size
segments, we will have 64 segments (that is not so many) and the
expected iteration is 20.4. (I suppose the increase comes from
the imbalanced size among segments.) Addition to that, as Robert
mentioned, the possible maximum memory wastage of the exponential
strategy is about 2GB and 64MB in fixed size strategy.

That calculation has a slight bug in that it should be log2, and that
segment size is limited to 1GB at the top end.

But in any case, the biggest issue is that it's ignoring the effect of
cache locality. The way in which the exponential strategy helps, is by
keeping the segment list small and comfortably fitting in fast cache
memory, while also keeping wastage at a minimum for small lists. 64MB
segments with 4G mwm would be about 2kb of segment list. It fits in
L1, if there's nothing else contending for it, but it's already
starting to get big, and it would be expected settings larger than 4G
mwm could be used.

I guess I could tune the starting/ending sizes a bit.

Say, with an upper limit of 256M (instead of 1G), and after fixing the
other issues, we get:

exponential sized strategy
...
#18 : segsize=64MB total=4096MB, (tuples = 715827882, min
tsize=18.8GB), iterseg(18)=4.169925, iteritem(11184810) = 23.415037,
expected iter=29.491213

fixed sized strategy
...
#64 : segsize=64MB total=4096MB, (tuples = 715827882, min
tsize=18.2GB), interseg(64)=6.000000, iteritem(11184810) = 23.415037,
expected iter=29.415037

Almost identical, and we get all the benefits of cache locality with
the exponential strategy. The fixed strategy might fit in the L1, but
it's less likely the bigger the mwm is.

The scaling factor could also be tuned I guess, but I'm wary of using
anything other than a doubling strategy, since it might cause memory
fragmentation.

#168Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#165)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

I don't like looping, though, seems overly cumbersome. What's worse?
maintaining that fragile weird loop that might break (by causing
unexpected output), or a slight slowdown of the test suite?

I don't know how long it might take on slow machines, but in my
machine, which isn't a great machine, while the vacuum test isn't fast
indeed, it's just a tiny fraction of what a simple "make check" takes.
So it's not a huge slowdown in any case.

Well, what about a machine running tests under valgrind, or the weird
cache-clobbering infuriatingly slow code? Or buildfarm members running
on really slow hardware? These days, a few people have spent a lot of
time trying to reduce the total test time, and it'd be bad to lose back
the improvements for no good reason.

I grant you that the looping I proposed is more complicated, but I don't
see any reason why it would break.

Another argument against the LOCK pg_class idea is that it causes an
unnecessary contention point across the whole parallel test group --
with possible weird side effects. How about a deadlock?

Other than the wait loop I proposed, I think we can make a couple of
very simple improvements to this test case to avoid a slowdown:

1. the DELETE takes about 1/4th of the time and removes about the same
number of rows as the one using the IN clause:
delete from vactst where random() < 3.0 / 4;

2. Use a new temp table rather than vactst. Everything is then faster.

3. Figure out the minimum size for the table that triggers the behavior
you want. Right now you use 400k tuples -- maybe 100k are sufficient?
Don't know.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#169Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#168)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Thu, Feb 8, 2018 at 8:39 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

I don't like looping, though, seems overly cumbersome. What's worse?
maintaining that fragile weird loop that might break (by causing
unexpected output), or a slight slowdown of the test suite?

I don't know how long it might take on slow machines, but in my
machine, which isn't a great machine, while the vacuum test isn't fast
indeed, it's just a tiny fraction of what a simple "make check" takes.
So it's not a huge slowdown in any case.

Well, what about a machine running tests under valgrind, or the weird
cache-clobbering infuriatingly slow code? Or buildfarm members running
on really slow hardware? These days, a few people have spent a lot of
time trying to reduce the total test time, and it'd be bad to lose back
the improvements for no good reason.

It's not for no good reason. The old tests were woefully inadequate.

During the process of developing the patch, I got seriously broken
code that passed the tests nonetheless. The test as it was was very
ineffective at actually detecting issues.

This new test may be slow, but it's effective. That's a very good
reason to make it slower, if you ask me.

I grant you that the looping I proposed is more complicated, but I don't
see any reason why it would break.

Another argument against the LOCK pg_class idea is that it causes an
unnecessary contention point across the whole parallel test group --
with possible weird side effects. How about a deadlock?

The real issue with lock pg_class is that locks on pg_class are
short-lived, so I'm not waiting for whole transactions.

Other than the wait loop I proposed, I think we can make a couple of
very simple improvements to this test case to avoid a slowdown:

1. the DELETE takes about 1/4th of the time and removes about the same
number of rows as the one using the IN clause:
delete from vactst where random() < 3.0 / 4;

I did try this at first, but it causes random output, so the test
breaks randomly.

2. Use a new temp table rather than vactst. Everything is then faster.

I might try that.

3. Figure out the minimum size for the table that triggers the behavior
you want. Right now you use 400k tuples -- maybe 100k are sufficient?
Don't know.

For that test, I need enough *dead* tuples to cause several passes.
Even small mwm settings require tons of tuples for this. In fact, I'm
thinking that number might be too low for its purpose, even. I'll
re-check, but I doubt it's too high. If anything, it's too low.

#170Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#169)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

On Thu, Feb 8, 2018 at 8:39 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

During the process of developing the patch, I got seriously broken
code that passed the tests nonetheless. The test as it was was very
ineffective at actually detecting issues.

This new test may be slow, but it's effective. That's a very good
reason to make it slower, if you ask me.

OK, I don't disagree with improving the test, but if we can make it fast
*and* effective, that's better than slow and effective.

Another argument against the LOCK pg_class idea is that it causes an
unnecessary contention point across the whole parallel test group --
with possible weird side effects. How about a deadlock?

The real issue with lock pg_class is that locks on pg_class are
short-lived, so I'm not waiting for whole transactions.

Doh.

Other than the wait loop I proposed, I think we can make a couple of
very simple improvements to this test case to avoid a slowdown:

1. the DELETE takes about 1/4th of the time and removes about the same
number of rows as the one using the IN clause:
delete from vactst where random() < 3.0 / 4;

I did try this at first, but it causes random output, so the test
breaks randomly.

OK. Still, your query seqscans the table twice. Maybe it's possible to
use a CTID scan to avoid that, but I'm not sure how.

3. Figure out the minimum size for the table that triggers the behavior
you want. Right now you use 400k tuples -- maybe 100k are sufficient?
Don't know.

For that test, I need enough *dead* tuples to cause several passes.
Even small mwm settings require tons of tuples for this. In fact, I'm
thinking that number might be too low for its purpose, even. I'll
re-check, but I doubt it's too high. If anything, it's too low.

OK.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#171Claudio Freire
klaussfreire@gmail.com
In reply to: Alvaro Herrera (#170)
1 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Fri, Feb 9, 2018 at 10:32 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Claudio Freire wrote:

On Thu, Feb 8, 2018 at 8:39 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

During the process of developing the patch, I got seriously broken
code that passed the tests nonetheless. The test as it was was very
ineffective at actually detecting issues.

This new test may be slow, but it's effective. That's a very good
reason to make it slower, if you ask me.

OK, I don't disagree with improving the test, but if we can make it fast
*and* effective, that's better than slow and effective.

I'd love to have a test that uses multiple segments of dead tuples,
but for that, it needs to use more than 64MB of mwm. That amounts to,
basically, ~12M rows.

Is there a "slow test suite" where such a test could be added that
won't bother regular "make check"?

That, or we turn the initial segment size into a GUC, but I don't
think it's a useful GUC outside of the test suite.

3. Figure out the minimum size for the table that triggers the behavior
you want. Right now you use 400k tuples -- maybe 100k are sufficient?
Don't know.

For that test, I need enough *dead* tuples to cause several passes.
Even small mwm settings require tons of tuples for this. In fact, I'm
thinking that number might be too low for its purpose, even. I'll
re-check, but I doubt it's too high. If anything, it's too low.

OK.

Turns out that it was a tad oversized. 300k tuples seems enough.

Attached is a new patch version that:

- Uses an unlogged table to make the large mwm test faster
- Uses a wait_barrier helper that waits for concurrent transactions
to finish before vacuuming tables, to make sure deleted tuples
actually are vacuumable
- Tweaks the size of the large mwm test to be as small as possible
- Optimizes the delete to avoid expensive operations yet attain
the same end result

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v18.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v18.patchDownload
From 20ca670215a7bf63f1bc2290efd5a89bcafabb20 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  72 ++++++-
 src/test/regress/sql/vacuum.sql      |  40 +++-
 3 files changed, 438 insertions(+), 76 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index cf7f5e1..1e82d26 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index c440c7e..29a5242 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,17 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -22,6 +32,12 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -49,8 +65,20 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -112,6 +140,48 @@ ANALYZE vactst, does_not_exist, vacparted;
 ERROR:  relation "does_not_exist" does not exist
 ANALYZE vactst (i), vacparted (does_not_exist);
 ERROR:  column "does_not_exist" of relation "vacparted" does not exist
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+                 QUERY PLAN                  
+---------------------------------------------
+ Seq Scan on vactst2 (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst2;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 92eaca2..4470967 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,18 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -18,6 +29,7 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 VACUUM FULL vactst;
 UPDATE vactst SET i = i + 1;
@@ -35,8 +47,10 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 
 VACUUM (FULL, FREEZE) vactst;
@@ -89,6 +103,30 @@ ANALYZE vacparted (b), vactst;
 ANALYZE vactst, does_not_exist, vacparted;
 ANALYZE vactst (i), vacparted (does_not_exist);
 
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+SELECT count(*) FROM vactst2;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
-- 
1.8.4.5

#172Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#138)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Fri, Aug 18, 2017 at 8:39 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 7, 2017 at 10:51 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Indeed they do, and that's what motivated this patch. But I'd need
TB-sized tables to set up something like that. I don't have the
hardware or time available to do that (vacuum on bloated TB-sized
tables can take days in my experience). Scale 4000 is as big as I can
get without running out of space for the tests in my test hardware.

If anybody else has the ability, I'd be thankful if they did test it
under those conditions, but I cannot. I think Anastasia's test is
closer to such a test, that's probably why it shows a bigger
improvement in total elapsed time.

Our production database could possibly be used, but it can take about
a week to clone it, upgrade it (it's 9.5 currently), and run the
relevant vacuum.

It looks like I won't be able to do that test with a production
snapshot anytime soon.

Getting approval for the budget required to do that looks like it's
going to take far longer than I thought.

I finally had a chance to test the patch in a production snapshot.

Actually, I tried to take out 2 birds with one stone, and I'm also
testing the FSM vacuum patch. It shouldn't significantly alter the
numbers anyway.

So, while the whole-db throttled vacuum (as is run in production) is
still ongoing, an interesting case already popped up.

TL;DR, without the patch, this particular table took 16 1/2 hours more
or less, to vacuum 313M dead tuples. With the patch, it took 6:10h to
vacuum 323M dead tuples. That's quite a speedup. It even used
significantly less CPU time as well.

Since vacuum here is throttled (with cost-based delays), this also
means it generated less I/O.

We have more extreme cases sometimes, so if I see something
interesting in what remains of the test, I'll post those results as
well.

The raw data:

Patched

INFO: vacuuming "public.aggregated_tracks_hourly_full"
INFO: scanned index "aggregated_tracks_hourly_full_pkey_null" to
remove 323778164 row versions
DETAIL: CPU: user: 111.57 s, system: 31.28 s, elapsed: 2693.67 s
INFO: scanned index "ix_aggregated_tracks_hourly_full_action_null" to
remove 323778164 row versions
DETAIL: CPU: user: 281.89 s, system: 36.32 s, elapsed: 2915.94 s
INFO: scanned index "ix_aggregated_tracks_hourly_full_nunq" to remove
323778164 row versions
DETAIL: CPU: user: 313.35 s, system: 79.22 s, elapsed: 6400.87 s
INFO: "aggregated_tracks_hourly_full": removed 323778164 row versions
in 7070739 pages
DETAIL: CPU: user: 583.48 s, system: 69.77 s, elapsed: 8048.00 s
INFO: index "aggregated_tracks_hourly_full_pkey_null" now contains
720807609 row versions in 10529903 pages
DETAIL: 43184641 index row versions were removed.
5288916 index pages have been deleted, 4696227 are currently reusable.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.03 s.
INFO: index "ix_aggregated_tracks_hourly_full_action_null" now
contains 720807609 row versions in 7635161 pages
DETAIL: 202678522 index row versions were removed.
4432789 index pages have been deleted, 3727966 are currently reusable.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.01 s.
INFO: index "ix_aggregated_tracks_hourly_full_nunq" now contains
720807609 row versions in 15526885 pages
DETAIL: 202678522 index row versions were removed.
9052488 index pages have been deleted, 7390279 are currently reusable.
CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.02 s.
INFO: "aggregated_tracks_hourly_full": found 41131260 removable,
209520861 nonremovable row versions in 7549244 out of 22391603 pages
DETAIL: 0 dead row versions cannot be removed yet, oldest xmin: 245834316
There were 260553451 unused item pointers.
Skipped 0 pages due to buffer pins, 0 frozen pages.
0 pages are entirely empty.
CPU: user: 1329.64 s, system: 244.22 s, elapsed: 22222.14 s.

Vanilla 9.5 (ie: what's in production right now, should be similar to master):

INFO: vacuuming "public.aggregated_tracks_hourly_full"
INFO: scanned index "aggregated_tracks_hourly_full_pkey_null" to
remove 178956729 row versions
DETAIL: CPU 65.51s/253.67u sec elapsed 3490.13 sec.
INFO: scanned index "ix_aggregated_tracks_hourly_full_action_null" to
remove 178956729 row versions
DETAIL: CPU 63.26s/238.08u sec elapsed 3483.32 sec.
INFO: scanned index "ix_aggregated_tracks_hourly_full_nunq" to remove
178956729 row versions
DETAIL: CPU 340.15s/445.52u sec elapsed 15898.48 sec.
INFO: "aggregated_tracks_hourly_full": removed 178956729 row versions
in 3121122 pages
DETAIL: CPU 168.24s/159.20u sec elapsed 5678.51 sec.
INFO: scanned index "aggregated_tracks_hourly_full_pkey_null" to
remove 134424729 row versions
DETAIL: CPU 50.66s/265.19u sec elapsed 3977.15 sec.
INFO: scanned index "ix_aggregated_tracks_hourly_full_action_null" to
remove 134424729 row versions
DETAIL: CPU 99.68s/326.44u sec elapsed 6580.22 sec.
INFO: scanned index "ix_aggregated_tracks_hourly_full_nunq" to remove
134424729 row versions
DETAIL: CPU 146.96s/358.86u sec elapsed 10464.69 sec.
INFO: "aggregated_tracks_hourly_full": removed 134424729 row versions
in 2072649 pages
DETAIL: CPU 109.07s/37.12u sec elapsed 3601.39 sec.
INFO: index "aggregated_tracks_hourly_full_pkey_null" now contains
870543969 row versions in 10529903 pages
DETAIL: 134424771 index row versions were removed.
4358027 index pages have been deleted, 3662385 are currently reusable.
CPU 0.02s/0.00u sec elapsed 2.42 sec.
INFO: index "ix_aggregated_tracks_hourly_full_action_null" now
contains 870543969 row versions in 7635161 pages
DETAIL: 134424771 index row versions were removed.
3908583 index pages have been deleted, 3445049 are currently reusable.
CPU 0.02s/0.00u sec elapsed 0.08 sec.
INFO: index "ix_aggregated_tracks_hourly_full_nunq" now contains
870543969 row versions in 15526885 pages
DETAIL: 218955943 index row versions were removed.
7710441 index pages have been deleted, 5928522 are currently reusable.
CPU 0.02s/0.01u sec elapsed 0.19 sec.
INFO: "aggregated_tracks_hourly_full": found 134159696 removable,
90271560 nonremovable row versions in 6113375 out of 22391603 pages
DETAIL: 287 dead row versions cannot be removed yet.
There were 126680434 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 1191.42s/2223.19u sec elapsed 59885.50 sec.

#173Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#171)
2 attachment(s)
Re: [HACKERS] Vacuum: allow usage of more than 1GB of work mem

On Fri, Feb 9, 2018 at 1:05 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

Turns out that it was a tad oversized. 300k tuples seems enough.

Attached is a new patch version that:

- Uses an unlogged table to make the large mwm test faster
- Uses a wait_barrier helper that waits for concurrent transactions
to finish before vacuuming tables, to make sure deleted tuples
actually are vacuumable
- Tweaks the size of the large mwm test to be as small as possible
- Optimizes the delete to avoid expensive operations yet attain
the same end result

Attached rebased versions of the patches (they weren't applying to
current master)

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v19.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v19.patchDownload
From d8241ba70bc70c5dd989d2dccdee03a71151c814 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  72 ++++++-
 src/test/regress/sql/vacuum.sql      |  40 +++-
 3 files changed, 438 insertions(+), 76 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 9ac84e8..793ce74 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -92,6 +105,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -103,6 +124,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -123,14 +165,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -155,7 +203,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -163,8 +211,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -523,7 +571,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -701,8 +749,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -753,7 +801,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/* Report that we are once again scanning the heap */
@@ -936,7 +984,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1157,10 +1205,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1168,7 +1222,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 		}
 
@@ -1271,7 +1325,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1302,7 +1356,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1399,43 +1453,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1447,7 +1514,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1457,34 +1524,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1618,6 +1687,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1628,6 +1699,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_rel_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1635,7 +1720,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2012,7 +2097,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2026,10 +2110,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2039,46 +2124,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2106,6 +2310,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index d66e2aa..d60523b 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,17 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -22,6 +32,12 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -49,8 +65,20 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -119,6 +147,48 @@ ANALYZE (nonexistant-arg) does_not_exist;
 ERROR:  syntax error at or near "nonexistant"
 LINE 1: ANALYZE (nonexistant-arg) does_not_exist;
                  ^
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+                 QUERY PLAN                  
+---------------------------------------------
+ Seq Scan on vactst2 (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst2;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 275ce2e..87ea900 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,18 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -18,6 +29,7 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 VACUUM FULL vactst;
 UPDATE vactst SET i = i + 1;
@@ -35,8 +47,10 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 
 VACUUM (FULL, FREEZE) vactst;
@@ -93,6 +107,30 @@ ANALYZE vactst (i), vacparted (does_not_exist);
 ANALYZE (VERBOSE) does_not_exist;
 ANALYZE (nonexistant-arg) does_not_exist;
 
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+SELECT count(*) FROM vactst2;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v10.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v10.patchDownload
From 458759646a891afcd4f591036235bba4785a4863 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 793ce74..814719a 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -212,6 +212,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1394,6 +1395,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2221,6 +2225,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#174Aleksander Alekseev
a.alekseev@postgrespro.ru
In reply to: Claudio Freire (#173)
Re: Vacuum: allow usage of more than 1GB of work mem

Hello everyone,

I would like to let you know that unfortunately these patches don't apply anymore. Also personally I'm a bit confused by the last message that has 0001- and 0003- patches attached but not the 0002- one.

#175Claudio Freire
klaussfreire@gmail.com
In reply to: Aleksander Alekseev (#174)
Re: Vacuum: allow usage of more than 1GB of work mem

I didn't receive your comment, I just saw it. Nevertheless, I rebased the patches a while ago just because I noticed they didn't apply anymore in cputube, and they still seem to apply.

Patch number 2 was committed a long while ago, that's why it's missing. It was a simple patch, it landed rewritten as commit 7e26e02eec90370dd222f35f00042f8188488ac4

#176Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#175)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 3, 2018 at 11:06 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

I didn't receive your comment, I just saw it. Nevertheless, I rebased the patches a while ago just because I noticed they didn't apply anymore in cputube, and they still seem to apply.

Sorry, that is false.

They appear green in cputube, so I was confident they did apply, but I
just double-checked on a recent pull and they don't. I'll rebase them
shortly.

#177Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#176)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Tue, Apr 3, 2018 at 11:09 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Tue, Apr 3, 2018 at 11:06 AM, Claudio Freire <klaussfreire@gmail.com> wrote:

I didn't receive your comment, I just saw it. Nevertheless, I rebased the patches a while ago just because I noticed they didn't apply anymore in cputube, and they still seem to apply.

Sorry, that is false.

They appear green in cputube, so I was confident they did apply, but I
just double-checked on a recent pull and they don't. I'll rebase them
shortly.

Ok, rebased patches attached

Attachments:

0001-Vacuum-allow-using-more-than-1GB-work-mem-v20.patchtext/x-patch; charset=US-ASCII; name=0001-Vacuum-allow-using-more-than-1GB-work-mem-v20.patchDownload
From 712aff9a856c2bae1d87555057e6546d029ecc47 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Mon, 12 Sep 2016 23:36:42 -0300
Subject: [PATCH 1/2] Vacuum: allow using more than 1GB work mem

Turn the dead_tuples array into a structure composed of several
exponentially bigger arrays, to enable usage of more than 1GB
of work mem during vacuum and thus reduce the number of full
index scans necessary to remove all dead tids when the memory is
available.

Improve test ability to spot vacuum errors
---
 src/backend/commands/vacuumlazy.c    | 402 ++++++++++++++++++++++++++++-------
 src/test/regress/expected/vacuum.out |  72 ++++++-
 src/test/regress/sql/vacuum.sql      |  40 +++-
 3 files changed, 438 insertions(+), 76 deletions(-)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index d2a0066..2f82dc6 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -11,11 +11,24 @@
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
+ * initially allocate an array of TIDs of 128MB, or an upper limit that
  * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
+ * uselessly for vacuuming small tables). Additional arrays of increasingly
+ * large sizes are allocated as they become necessary.
+ *
+ * The TID array is thus represented as a list of multiple segments of
+ * varying size, beginning with the initial size of up to 128MB, and growing
+ * exponentially until the whole budget of (autovacuum_)maintenance_work_mem
+ * is used up.
+ *
+ * Lookup in that structure happens with a binary search of segments, and then
+ * with a binary search within each segment. Since segment's size grows
+ * exponentially, this retains O(log N) lookup complexity.
+ *
+ * If the multiarray's total size threatens to grow beyond maintenance_work_mem,
  * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * compaction, then resume the heap scan with an array of logically empty but
+ * already preallocated TID segments to be refilled with more dead tuple TIDs.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
@@ -101,6 +114,14 @@
 #define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
 
 /*
+ * Minimum (starting) size of the dead_tuples array segments. Will allocate
+ * space for 128MB worth of tid pointers in the first segment, further segments
+ * will grow in size exponentially. Don't make it too small or the segment list
+ * will grow bigger than the sweetspot for search efficiency on big vacuums.
+ */
+#define LAZY_INIT_TUPLES		Max(MaxHeapTuplesPerPage, (128<<20) / sizeof(ItemPointerData))
+
+/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -112,6 +133,27 @@
  */
 #define PREFETCH_SIZE			((BlockNumber) 32)
 
+typedef struct DeadTuplesSegment
+{
+	ItemPointerData last_dead_tuple;	/* Copy of the last dead tuple (unset
+										 * until the segment is fully
+										 * populated). Keep it first to simplify
+										 * binary searches */
+	int			num_dead_tuples;	/* # of entries in the segment */
+	int			max_dead_tuples;	/* # of entries allocated in the segment */
+	ItemPointer dt_tids;		/* Array of dead tuples */
+}	DeadTuplesSegment;
+
+typedef struct DeadTuplesMultiArray
+{
+	int			num_entries;	/* current # of entries */
+	int			max_entries;	/* total # of slots that can be allocated in
+								 * array */
+	int			num_segs;		/* number of dead tuple segments allocated */
+	int			last_seg;		/* last dead tuple segment with data (or 0) */
+	DeadTuplesSegment *dt_segments;		/* array of num_segs segments */
+}	DeadTuplesMultiArray;
+
 typedef struct LVRelStats
 {
 	/* hasindex = true means two-pass strategy; false means one-pass */
@@ -132,14 +174,20 @@ typedef struct LVRelStats
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
 	/* List of TIDs of tuples we intend to delete */
 	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	DeadTuplesMultiArray dead_tuples;
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
 } LVRelStats;
 
+#define GetNumDeadTuplesSegments(lvrelstats) \
+	((lvrelstats)->dead_tuples.num_segs)
+
+#define GetDeadTuplesSegment(lvrelstats, seg) \
+	(&((lvrelstats)->dead_tuples.dt_segments[seg]))
+
+#define DeadTuplesCurrentSegment(lvrelstats) \
+	GetDeadTuplesSegment(lvrelstats, (lvrelstats)->dead_tuples.last_seg)
 
 /* A few variables that don't seem worth passing around as parameters */
 static int	elevel = -1;
@@ -164,7 +212,7 @@ static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
 static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
@@ -172,8 +220,8 @@ static BlockNumber count_nondeletable_pages(Relation onerel,
 static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -527,7 +575,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	initprog_val[2] = vacrelstats->dead_tuples.max_entries;
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -705,8 +753,8 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if ((vacrelstats->dead_tuples.max_entries - vacrelstats->dead_tuples.num_entries) < MaxHeapTuplesPerPage &&
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -757,7 +805,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/*
@@ -947,7 +995,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = vacrelstats->dead_tuples.num_entries;
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1202,10 +1250,16 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			vacrelstats->dead_tuples.num_entries > 0)
 		{
+			/* Should never need more than one segment per page */
+			Assert(vacrelstats->dead_tuples.last_seg == 0);
+
+			/* Should have been initialized */
+			Assert(GetNumDeadTuplesSegments(vacrelstats) > 0);
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, DeadTuplesCurrentSegment(vacrelstats), &vmbuffer);
 			has_dead_tuples = false;
 
 			/*
@@ -1213,7 +1267,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 
 			/*
@@ -1329,7 +1383,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (vacrelstats->dead_tuples.num_entries == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1363,7 +1417,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (vacrelstats->dead_tuples.num_entries > 0)
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1467,43 +1521,56 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
+	int			segindex;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
 
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return;
+
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	segindex = 0;
+	tottuples = 0;
+	for (segindex = 0; segindex <= vacrelstats->dead_tuples.last_seg; segindex++)
 	{
-		BlockNumber tblk;
-		Buffer		buf;
-		Page		page;
-		Size		freespace;
+		DeadTuplesSegment *seg = GetDeadTuplesSegment(vacrelstats, segindex);
+		int			num_dead_tuples = seg->num_dead_tuples;
+		int			tupindex = 0;
 
-		vacuum_delay_point();
-
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
-								 vac_strategy);
-		if (!ConditionalLockBufferForCleanup(buf))
+		while (tupindex < num_dead_tuples)
 		{
-			ReleaseBuffer(buf);
-			++tupindex;
-			continue;
-		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+			BlockNumber tblk;
+			Buffer		buf;
+			Page		page;
+			Size		freespace;
 
-		/* Now that we've compacted the page, record its available space */
-		page = BufferGetPage(buf);
-		freespace = PageGetHeapFreeSpace(page);
+			vacuum_delay_point();
 
-		UnlockReleaseBuffer(buf);
-		RecordPageWithFreeSpace(onerel, tblk, freespace);
-		npages++;
+			tblk = ItemPointerGetBlockNumber(&seg->dt_tids[tupindex]);
+			buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
+									 vac_strategy);
+			if (!ConditionalLockBufferForCleanup(buf))
+			{
+				ReleaseBuffer(buf);
+				++tupindex;
+				continue;
+			}
+			tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
+										seg, &vmbuffer);
+
+			/* Now that we've compacted the page, record its available space */
+			page = BufferGetPage(buf);
+			freespace = PageGetHeapFreeSpace(page);
+
+			UnlockReleaseBuffer(buf);
+			RecordPageWithFreeSpace(onerel, tblk, freespace);
+			npages++;
+		}
+		tottuples += tupindex;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1515,7 +1582,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1525,34 +1592,36 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
 static int
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 int tupindex, LVRelStats *vacrelstats, DeadTuplesSegment * seg, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
 	OffsetNumber unused[MaxOffsetNumber];
 	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	ItemPointer dead_tuples = seg->dt_tids;
+	int			num_dead_tuples = seg->num_dead_tuples;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (; tupindex < num_dead_tuples; tupindex++)
 	{
 		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
+		tblk = ItemPointerGetBlockNumber(&dead_tuples[tupindex]);
 		if (tblk != blkno)
 			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = ItemPointerGetOffsetNumber(&dead_tuples[tupindex]);
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
 		unused[uncnt++] = toff;
@@ -1686,6 +1755,8 @@ lazy_vacuum_index(Relation indrel,
 {
 	IndexVacuumInfo ivinfo;
 	PGRUsage	ru0;
+	DeadTuplesSegment *seg;
+	int			n;
 
 	pg_rusage_init(&ru0);
 
@@ -1697,6 +1768,20 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_live_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		return;
+	}
+
+	/* Finalize all segments by setting their upper bound dead tuple */
+	for (n = 0; n <= vacrelstats->dead_tuples.last_seg; n++)
+	{
+		seg = GetDeadTuplesSegment(vacrelstats, n);
+		if (seg->num_dead_tuples > 0)
+			seg->last_dead_tuple = seg->dt_tids[seg->num_dead_tuples - 1];
+	}
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
@@ -1704,7 +1789,7 @@ lazy_vacuum_index(Relation indrel,
 	ereport(elevel,
 			(errmsg("scanned index \"%s\" to remove %d row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					vacrelstats->dead_tuples.num_entries),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2087,7 +2172,6 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 	{
 		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
 		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
 
 		/* curious coding here to ensure the multiplication can't overflow */
 		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
@@ -2101,10 +2185,11 @@ lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
 		maxtuples = MaxHeapTuplesPerPage;
 	}
 
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.max_entries = (int) maxtuples;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
 }
 
 /*
@@ -2114,46 +2199,165 @@ static void
 lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr)
 {
+	int			mintuples;
+
+	/* Initialize multiarray if needed */
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+	{
+		mintuples = Min(LAZY_INIT_TUPLES, vacrelstats->dead_tuples.max_entries);
+
+		vacrelstats->dead_tuples.num_segs = 1;
+		vacrelstats->dead_tuples.dt_segments = (DeadTuplesSegment *)
+			palloc(sizeof(DeadTuplesSegment));
+		vacrelstats->dead_tuples.dt_segments[0].dt_tids = (ItemPointer)
+			palloc(mintuples * sizeof(ItemPointerData));
+		vacrelstats->dead_tuples.dt_segments[0].max_dead_tuples = mintuples;
+		vacrelstats->dead_tuples.dt_segments[0].num_dead_tuples = 0;
+	}
+
 	/*
 	 * The array shouldn't overflow under normal behavior, but perhaps it
 	 * could if we are given a really small maintenance_work_mem. In that
 	 * case, just forget the last few tuples (we'll get 'em next time).
 	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
+	if (vacrelstats->dead_tuples.num_entries < vacrelstats->dead_tuples.max_entries)
 	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
+		DeadTuplesSegment *seg = DeadTuplesCurrentSegment(vacrelstats);
+
+		if (seg->num_dead_tuples >= seg->max_dead_tuples)
+		{
+			DeadTuplesMultiArray *dt = &vacrelstats->dead_tuples;
+
+			/*
+			 * The segment is overflowing, so we must allocate a new segment.
+			 * We could have a preallocated segment descriptor already, in
+			 * which case we just reinitialize it, or we may need to repalloc
+			 * the vacrelstats->dead_tuples array. In that case, seg will no
+			 * longer be valid, so we must be careful about that.
+			 */
+			Assert(seg->num_dead_tuples == seg->max_dead_tuples);
+			if (dt->last_seg + 1 >= dt->num_segs)
+			{
+				int			new_num_segs = dt->num_segs * 2;
+				int			new_segs_size = new_num_segs * sizeof(DeadTuplesSegment);
+
+				dt->dt_segments = (DeadTuplesSegment *) repalloc((void *) dt->dt_segments, new_segs_size);
+				while (dt->num_segs < new_num_segs)
+				{
+					/* Initialize as "unallocated" */
+					DeadTuplesSegment *nseg = &(dt->dt_segments[dt->num_segs]);
+
+					nseg->num_dead_tuples = 0;
+					nseg->max_dead_tuples = 0;
+					nseg->dt_tids = NULL;
+					dt->num_segs++;
+				}
+			}
+			dt->last_seg++;
+			seg = DeadTuplesCurrentSegment(vacrelstats);
+			if (seg->dt_tids == NULL)
+			{
+				/*
+				 * If unallocated, allocate up to twice the amount of the
+				 * previous segment
+				 */
+				DeadTuplesSegment *pseg = seg - 1;
+				int			numtuples = dt->max_entries - dt->num_entries;
+
+				numtuples = Max(numtuples, MaxHeapTuplesPerPage);
+				numtuples = Min(numtuples, INT_MAX / 2);
+				numtuples = Min(numtuples, 2 * pseg->max_dead_tuples);
+				numtuples = Min(numtuples, MaxAllocSize / sizeof(ItemPointerData));
+				seg->dt_tids = (ItemPointer) palloc(sizeof(ItemPointerData) * numtuples);
+				seg->max_dead_tuples = numtuples;
+			}
+			seg->num_dead_tuples = 0;
+		}
+		seg->dt_tids[seg->num_dead_tuples] = *itemptr;
+		vacrelstats->dead_tuples.num_entries++;
+		seg->num_dead_tuples++;
 		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
+									 vacrelstats->dead_tuples.num_entries);
 	}
 }
 
 /*
- *	lazy_tid_reaped() -- is a particular tid deletable?
+ * lazy_clear_dead_tuples - reset all dead tuples segments
+ */
+static void
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		GetDeadTuplesSegment(vacrelstats, nseg)->num_dead_tuples = 0;
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+}
+
+/*
+ *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
- *		This has the right signature to be an IndexBulkDeleteCallback.
+ *		Returns the offset of the first item pointer greater than or
+ *		equal to refvalue, or arr_elems if there is no such item pointer
  *
- *		Assumes dead_tuples array is in sorted order.
+ *		All item pointers in the array are assumed to be valid
+ *
+ *		Within, vac_cmp_itemptr has been inlined to remove redundant
+ *		validity checking (the dead tuples array contains only valid
+ *		item pointers) and ItemPointerGetX invocations (the refvalue
+ *		never changes). This makes the code easier to optimize for
+ *		the compiler, and should improve performance
  */
-static bool
-lazy_tid_reaped(ItemPointer itemptr, void *state)
+static inline size_t vac_itemptr_binsrch(ItemPointer refvalue, void *arr,
+										 size_t arr_elems, size_t arr_stride)
 {
-	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
 
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
+	if (arr_elems == 0 || !ItemPointerIsValid(refvalue))
+		return arr_elems;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = (ItemPointer)((char*) arr + mid * arr_stride);
 
-	return (res != NULL);
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left;
 }
 
 /*
- * Comparator routines for use with qsort() and bsearch().
+ * Comparator routine for use within lazy_tid_reaped
  */
-static int
+static inline int
 vac_cmp_itemptr(const void *left, const void *right)
 {
 	BlockNumber lblk,
@@ -2181,6 +2385,56 @@ vac_cmp_itemptr(const void *left, const void *right)
 }
 
 /*
+ *	lazy_tid_reaped() -- is a particular tid deletable?
+ *
+ *		This has the right signature to be an IndexBulkDeleteCallback.
+ *
+ *		Assumes the dead_tuples multiarray is in sorted order, both
+ *		the segment list and each segment itself, and that all segments'
+ *		last_dead_tuple fields up to date
+ */
+static bool
+lazy_tid_reaped(ItemPointer itemptr, void *state)
+{
+	LVRelStats *vacrelstats = (LVRelStats *) state;
+	DeadTuplesSegment *seg;
+	size_t		iseg, itup;
+
+	if (GetNumDeadTuplesSegments(vacrelstats) == 0)
+		return false;
+
+	/* Quickly rule out by lower bound (should happen a lot) */
+	seg = vacrelstats->dead_tuples.dt_segments;
+	if (0 > vac_cmp_itemptr((void *) itemptr, (void *) seg->dt_tids))
+		return false;
+
+	/* Search for the segment likely to contain the item pointer */
+	iseg = vac_itemptr_binsrch(
+		(void *) itemptr,
+		(void *) &(seg->last_dead_tuple),
+		vacrelstats->dead_tuples.last_seg + 1,
+		sizeof(DeadTuplesSegment));
+
+	if (iseg > vacrelstats->dead_tuples.last_seg)
+		return false;
+
+	seg = GetDeadTuplesSegment(vacrelstats, iseg);
+	if (seg->num_dead_tuples == 0)
+		return false;
+
+	/* Search within the segment for the right item pointer */
+	itup = vac_itemptr_binsrch((void *) itemptr,
+							   (void *) seg->dt_tids,
+							   seg->num_dead_tuples,
+							   sizeof(ItemPointerData));
+	if (itup >= seg->num_dead_tuples)
+		return false;
+	else
+		return 0 == vac_cmp_itemptr((void *) itemptr,
+									(void *) (&seg->dt_tids[itup]));
+}
+
+/*
  * Check if every tuple in the given page is visible to all current and future
  * transactions. Also return the visibility_cutoff_xid which is the highest
  * xmin amongst the visible tuples.  Set *all_frozen to true if every tuple
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index d66e2aa..d60523b 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,17 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -22,6 +32,12 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -49,8 +65,20 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -119,6 +147,48 @@ ANALYZE (nonexistant-arg) does_not_exist;
 ERROR:  syntax error at or near "nonexistant"
 LINE 1: ANALYZE (nonexistant-arg) does_not_exist;
                  ^
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+                 QUERY PLAN                  
+---------------------------------------------
+ Seq Scan on vactst2 (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst2;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 275ce2e..87ea900 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,18 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -18,6 +29,7 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 VACUUM FULL vactst;
 UPDATE vactst SET i = i + 1;
@@ -35,8 +47,10 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 
 VACUUM (FULL, FREEZE) vactst;
@@ -93,6 +107,30 @@ ANALYZE vactst (i), vacparted (does_not_exist);
 ANALYZE (VERBOSE) does_not_exist;
 ANALYZE (nonexistant-arg) does_not_exist;
 
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+SELECT count(*) FROM vactst2;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
-- 
1.8.4.5

0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v11.patchtext/x-patch; charset=US-ASCII; name=0003-Vacuum-free-dead-tuples-array-as-early-as-possible-v11.patchDownload
From dd8cf01c9286526a1ac50dcc99d1e353dc5e9488 Mon Sep 17 00:00:00 2001
From: Claudio Freire <klaussfreire@gmail.com>
Date: Tue, 28 Mar 2017 22:40:39 -0300
Subject: [PATCH 2/2] Vacuum: free dead tuples array as early as possible

Allow other parts of the system to benefit from the possibly
large amount of memory reserved for dead tuples after they're
no longer necessary.

While the memory would be freed when the command finishes, it
can sometimes be some considerable time between the time vacuum
is done with the array until the command finishes - mostly due
to truncate taking a long time.
---
 src/backend/commands/vacuumlazy.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index 2f82dc6..cb9c2aa 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -221,6 +221,7 @@ static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
 static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
+static void lazy_free_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
@@ -1462,6 +1463,9 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	pgstat_progress_update_param(PROGRESS_VACUUM_PHASE,
 								 PROGRESS_VACUUM_PHASE_INDEX_CLEANUP);
 
+	/* dead tuples no longer needed past this point */
+	lazy_free_dead_tuples(vacrelstats);
+
 	/* Do post-vacuum cleanup and statistics update for each index */
 	for (i = 0; i < nindexes; i++)
 		lazy_cleanup_index(Irel[i], indstats[i], vacrelstats);
@@ -2296,6 +2300,27 @@ lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 }
 
 /*
+ * lazy_free_dead_tuples - reset all dead tuples segments
+ * and free all allocated memory
+ */
+static void
+lazy_free_dead_tuples(LVRelStats *vacrelstats)
+{
+	int			nseg;
+
+	for (nseg = 0; nseg < GetNumDeadTuplesSegments(vacrelstats); nseg++)
+		if (GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids != NULL)
+			pfree(GetDeadTuplesSegment(vacrelstats, nseg)->dt_tids);
+	if (vacrelstats->dead_tuples.dt_segments != NULL)
+		if (vacrelstats->dead_tuples.dt_segments != NULL)
+			pfree(vacrelstats->dead_tuples.dt_segments);
+	vacrelstats->dead_tuples.last_seg = 0;
+	vacrelstats->dead_tuples.num_segs = 0;
+	vacrelstats->dead_tuples.num_entries = 0;
+	vacrelstats->dead_tuples.dt_segments = NULL;
+}
+
+/*
  *	vac_itemptr_binsrch() -- search a sorted array of item pointers
  *
  *		Returns the offset of the first item pointer greater than or
-- 
1.8.4.5

#178Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Claudio Freire (#177)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On 03/04/18 17:20, Claudio Freire wrote:

Ok, rebased patches attached

Thanks! I took a look at this.

First, now that the data structure is more complicated, I think it's
time to abstract it, and move it out of vacuumlazy.c. The Tid Map needs
to support the following operations:

* Add TIDs, in order (in 1st phase of vacuum)
* Random lookup, by TID (when scanning indexes)
* Iterate through all TIDs, in order (2nd pass over heap)

Let's add a new source file to hold the code for the tid map data
structure, with functions corresponding those operations.

I took a stab at doing that, and I think it makes vacuumlazy.c nicer.

Secondly, I'm not a big fan of the chosen data structure. I think the
only reason that the segmented "multi-array" was chosen is that each
"segment" works is similar to the simple array that we used to have.
After putting it behind the abstraction, it seems rather ad hoc. There
are many standard textbook data structures that we could use instead,
and would be easier to understand and reason about, I think.

So, I came up with the attached patch. I used a B-tree as the data
structure. Not sure it's the best one, I'm all ears for suggestions and
bikeshedding on alternatives, but I'm pretty happy with that. I would
expect it to be pretty close to the simple array with binary search in
performance characteristics. It'd be pretty straightforward to optimize
further, and e.g. use a bitmap of OffsetNumbers or some other more dense
data structure in the B-tree leaf pages, but I resisted doing that as
part of this patch.

I haven't done any performance testing of this (and not much testing in
general), but at least the abstraction seems better this way.
Performance testing would be good, too. In particular, I'd like to know
how this might affect the performance of lazy_tid_reaped(). That's a hot
spot when vacuuming indexes, so we don't want to add any cycles there.
Was there any ready-made test kits on that in this thread? I didn't see
any at a quick glance, but it's a long thread..

- Heikki

Attachments:

vacuum-tidmap-1.patchtext/x-patch; name=vacuum-tidmap-1.patchDownload
diff --git a/src/backend/commands/Makefile b/src/backend/commands/Makefile
index 4a6c99e090..634059b8ff 100644
--- a/src/backend/commands/Makefile
+++ b/src/backend/commands/Makefile
@@ -20,6 +20,6 @@ OBJS = amcmds.o aggregatecmds.o alter.o analyze.o async.o cluster.o comment.o \
 	policy.o portalcmds.o prepare.o proclang.o publicationcmds.o \
 	schemacmds.o seclabel.o sequence.o statscmds.o subscriptioncmds.o \
 	tablecmds.o tablespace.o trigger.o tsearchcmds.o typecmds.o user.o \
-	vacuum.o vacuumlazy.o variable.o view.o
+	vacuum.o vacuumlazy.o vacuumtidmap.o variable.o view.o
 
 include $(top_srcdir)/src/backend/common.mk
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index d2a006671a..0cc6b98831 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -4,23 +4,21 @@
  *	  Concurrent ("lazy") vacuuming.
  *
  *
- * The major space usage for LAZY VACUUM is storage for the array of dead tuple
- * TIDs.  We want to ensure we can vacuum even the very largest relations with
- * finite memory space usage.  To do that, we set upper bounds on the number of
- * tuples we will keep track of at once.
+ * The major space usage for LAZY VACUUM is storage of dead tuple TIDs.
+ * We want to ensure we can vacuum even the very largest relations with
+ * finite memory space usage.  To do that, we set upper bounds on the amount
+ * of memory used to track the TIDs at any one time.
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
- * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * use a specialized data structure to hold the TIDs, which keeps track of
+ * the memory used.  If the memory limit is about to be exceeded, we suspend
+ * the heap scan phase and perform a pass of index cleanup and page
+ * compaction, then resume the heap scan with an empty tid map.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
- * of index scans performed.  So we don't use maintenance_work_mem memory for
- * the TID array, just enough to hold as many heap tuples as fit on one page.
+ * of index scans performed.
  *
  *
  * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
@@ -94,13 +92,6 @@
 	((BlockNumber) (((uint64) 8 * 1024 * 1024 * 1024) / BLCKSZ))
 
 /*
- * Guesstimation of number of dead tuples per page.  This is used to
- * provide an upper limit to memory allocated when vacuuming small
- * tables.
- */
-#define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
-
-/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -130,11 +121,7 @@ typedef struct LVRelStats
 	BlockNumber pages_removed;
 	double		tuples_deleted;
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
-	/* List of TIDs of tuples we intend to delete */
-	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	VacuumTidMap *dead_tuples; /* list of TIDs of tuples we intend to delete */
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
@@ -163,17 +150,17 @@ static void lazy_vacuum_index(Relation indrel,
 static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
-static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+static void lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
+				 OffsetNumber *dead_offsets, int num_dead_tuples,
+				 LVRelStats *vacrelstats, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
-static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -492,6 +479,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		PROGRESS_VACUUM_MAX_DEAD_TUPLES
 	};
 	int64		initprog_val[3];
+	int			vac_work_mem;
 
 	pg_rusage_init(&ru0);
 
@@ -521,13 +509,22 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	vacrelstats->nonempty_pages = 0;
 	vacrelstats->latestRemovedXid = InvalidTransactionId;
 
-	lazy_space_alloc(vacrelstats, nblocks);
+	vac_work_mem = IsAutoVacuumWorkerProcess() &&
+		autovacuum_work_mem != -1 ?
+		autovacuum_work_mem : maintenance_work_mem;
+
+	vacrelstats->dead_tuples = CreateVacuumTidMap(vac_work_mem);
+
 	frozen = palloc(sizeof(xl_heap_freeze_tuple) * MaxHeapTuplesPerPage);
 
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	/*
+	 * XXX: The max number of tuples is just a rough estimate. It doesn't
+	 * take into account the memory needed by internal nodes in the TID map.
+	 */
+	initprog_val[2] = vac_work_mem / sizeof(ItemPointerData);
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -611,7 +608,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 					maxoff;
 		bool		tupgone,
 					hastup;
-		int			prev_dead_count;
+		uint16		prev_dead_count;
 		int			nfrozen;
 		Size		freespace;
 		bool		all_visible_according_to_vm = false;
@@ -705,8 +702,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if (VacuumTidMapIsFull(vacrelstats->dead_tuples))
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -757,7 +753,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/*
@@ -947,7 +943,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = VacuumTidMapGetNumTuples(vacrelstats->dead_tuples);
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1202,10 +1198,24 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			!VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
 		{
+			BlockNumber tblkno;
+			int			ntuples;
+			OffsetNumber *dead_offsets;
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			VacuumTidMapBeginIterate(vacrelstats->dead_tuples);
+			if (!VacuumTidMapNext(vacrelstats->dead_tuples, &tblkno, &ntuples, &dead_offsets))
+				elog(ERROR, "vacuum tid map was empty");
+			if (tblkno != blkno)
+				elog(ERROR, "vacuum tid map contained wrong block");
+
+			lazy_vacuum_page(onerel, blkno, buf, dead_offsets, ntuples, vacrelstats, &vmbuffer);
+
+			if (VacuumTidMapNext(vacrelstats->dead_tuples, &tblkno, &ntuples, &dead_offsets))
+				elog(ERROR, "unexpected entries in vacuum tid map");
+
 			has_dead_tuples = false;
 
 			/*
@@ -1213,7 +1223,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 
 			/*
@@ -1329,7 +1339,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (VacuumTidMapGetNumTuples(vacrelstats->dead_tuples) == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1363,7 +1373,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (!VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1467,25 +1477,32 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
+	int			num_dead_tuples;
+	BlockNumber tblk;
+	OffsetNumber *dead_offsets;
+
+	if (VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
+		return;
 
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	tottuples = 0;
+
+	VacuumTidMapBeginIterate(vacrelstats->dead_tuples);
+	while (VacuumTidMapNext(vacrelstats->dead_tuples, &tblk, &num_dead_tuples, &dead_offsets))
 	{
-		BlockNumber tblk;
+		int			tupindex = 0;
 		Buffer		buf;
 		Page		page;
 		Size		freespace;
 
 		vacuum_delay_point();
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
 								 vac_strategy);
 		if (!ConditionalLockBufferForCleanup(buf))
@@ -1494,8 +1511,9 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 			++tupindex;
 			continue;
 		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+		lazy_vacuum_page(onerel, tblk, buf,
+						 dead_offsets, num_dead_tuples,
+						 vacrelstats, &vmbuffer);
 
 		/* Now that we've compacted the page, record its available space */
 		page = BufferGetPage(buf);
@@ -1504,6 +1522,8 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 		UnlockReleaseBuffer(buf);
 		RecordPageWithFreeSpace(onerel, tblk, freespace);
 		npages++;
+
+		tottuples += num_dead_tuples;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1515,7 +1535,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1525,37 +1545,32 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
-static int
+static void
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 OffsetNumber *dead_offsets, int num_dead_tuples,
+				 LVRelStats *vacrelstats, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
-	OffsetNumber unused[MaxOffsetNumber];
-	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	int			tupindex;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (tupindex = 0; tupindex < num_dead_tuples; tupindex++)
 	{
-		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		if (tblk != blkno)
-			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = dead_offsets[tupindex];
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
-		unused[uncnt++] = toff;
 	}
 
 	PageRepairFragmentation(page);
@@ -1572,7 +1587,7 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
 
 		recptr = log_heap_clean(onerel, buffer,
 								NULL, 0, NULL, 0,
-								unused, uncnt,
+								dead_offsets, num_dead_tuples,
 								vacrelstats->latestRemovedXid);
 		PageSetLSN(page, recptr);
 	}
@@ -1616,8 +1631,6 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
 			visibilitymap_set(onerel, blkno, buffer, InvalidXLogRecPtr,
 							  *vmbuffer, visibility_cutoff_xid, flags);
 	}
-
-	return tupindex;
 }
 
 /*
@@ -1697,14 +1710,18 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_live_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
+		return;
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
 
 	ereport(elevel,
-			(errmsg("scanned index \"%s\" to remove %d row versions",
+			(errmsg("scanned index \"%s\" to remove " UINT64_FORMAT " row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					VacuumTidMapGetNumTuples(vacrelstats->dead_tuples)),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2071,113 +2088,37 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 }
 
 /*
- * lazy_space_alloc - space allocation decisions for lazy vacuum
- *
- * See the comments at the head of this file for rationale.
+ * lazy_record_dead_tuple - remember one deletable tuple
  */
 static void
-lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
+lazy_record_dead_tuple(LVRelStats *vacrelstats,
+					   ItemPointer itemptr)
 {
-	long		maxtuples;
-	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
-	autovacuum_work_mem != -1 ?
-	autovacuum_work_mem : maintenance_work_mem;
-
-	if (vacrelstats->hasindex)
-	{
-		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
-		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
-
-		/* curious coding here to ensure the multiplication can't overflow */
-		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
-			maxtuples = relblocks * LAZY_ALLOC_TUPLES;
-
-		/* stay sane if small maintenance_work_mem */
-		maxtuples = Max(maxtuples, MaxHeapTuplesPerPage);
-	}
-	else
-	{
-		maxtuples = MaxHeapTuplesPerPage;
-	}
-
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	VacuumTidMapRecordTid(vacrelstats->dead_tuples, itemptr);
+	pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
+								 VacuumTidMapGetNumTuples(vacrelstats->dead_tuples));
 }
 
 /*
- * lazy_record_dead_tuple - remember one deletable tuple
+ * lazy_clear_dead_tuples - reset the dead tuples map
  */
 static void
-lazy_record_dead_tuple(LVRelStats *vacrelstats,
-					   ItemPointer itemptr)
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 {
-	/*
-	 * The array shouldn't overflow under normal behavior, but perhaps it
-	 * could if we are given a really small maintenance_work_mem. In that
-	 * case, just forget the last few tuples (we'll get 'em next time).
-	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
-	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
-		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
-	}
+	VacuumTidMapReset(vacrelstats->dead_tuples);
 }
 
 /*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
- *
- *		Assumes dead_tuples array is in sorted order.
  */
 static bool
 lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
-
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
-
-	return (res != NULL);
-}
-
-/*
- * Comparator routines for use with qsort() and bsearch().
- */
-static int
-vac_cmp_itemptr(const void *left, const void *right)
-{
-	BlockNumber lblk,
-				rblk;
-	OffsetNumber loff,
-				roff;
-
-	lblk = ItemPointerGetBlockNumber((ItemPointer) left);
-	rblk = ItemPointerGetBlockNumber((ItemPointer) right);
-
-	if (lblk < rblk)
-		return -1;
-	if (lblk > rblk)
-		return 1;
-
-	loff = ItemPointerGetOffsetNumber((ItemPointer) left);
-	roff = ItemPointerGetOffsetNumber((ItemPointer) right);
-
-	if (loff < roff)
-		return -1;
-	if (loff > roff)
-		return 1;
 
-	return 0;
+	return VacuumTidMapContainsTid(vacrelstats->dead_tuples, itemptr);
 }
 
 /*
diff --git a/src/backend/commands/vacuumtidmap.c b/src/backend/commands/vacuumtidmap.c
new file mode 100644
index 0000000000..bb30a0a205
--- /dev/null
+++ b/src/backend/commands/vacuumtidmap.c
@@ -0,0 +1,519 @@
+/*-------------------------------------------------------------------------
+ *
+ * vacuumtidmap.c
+ *	  Data structure to hold TIDs of dead tuples during vacuum.
+ *
+ * Vacuum Tid Map is used to hold the TIDs of dead tuples during VACUUM.
+ * The data structure is a fairly straightforward B-tree, but tailored for
+ * storing TIDs.
+ *
+ * Operations we need to support:
+ *
+ * - Adding new TIDs. TIDs are only added in increasing TID order. Thanks
+ *   to that, we can fill each internal node fully, and never need to split
+ *   existing nodes.
+ *
+ * - Random lookups by TID. This is done heavily while scanning indexes.
+ *
+ * - Scan all TIDs in order. (In the 2nd phase of vacuum) To make that
+ *   simpler, we store a 'next' pointer on each leaf node.
+ *
+ *
+ * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ *	  src/backend/commands/vacuumtidmap.c
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include "access/htup_details.h"
+#include "commands/vacuum.h"
+#include "utils/memutils.h"
+
+/*
+ * Node structures, for the in-memory B-tree.
+ *
+ * Each leaf node stores a number of TIDs, in a sorted array. There is also
+ * a pointer to the next leaf node, so that the leaf nodes can be easily
+ * walked from beginning to end.
+ *
+ * An internal node holds a number of downlink pointers, to leaf nodes, or
+ * nodes to internal nodes on lower level. For each downlink, the block number
+ * of the first ItemPointer of the corresponding lower level node is stored.
+ * Storing just the block number, and not the full ItemPointer, saves a little
+ * space, as well as some code in the search code. This relies on the
+ * assumption that MAX_LEAF_NODE_ITEMS > MaxHeapNodesPerTuple; otherwise there
+ * might be two leaf nodes with the same block number, and we would not know
+ * which one to descend down to, when searching.
+
+ * Note that because these form just an in-memory data structure, there is no
+ * need for the nodes to be of the same size.
+ */
+
+#define MAX_LEAF_NODE_ITEMS			(16*1024)
+#define MAX_INTERNAL_NODE_ITEMS		128
+
+/* common structure of both leaf and internal nodes. */
+typedef struct
+{
+	int			level;
+} VacuumTidMapNode;
+
+typedef struct VacuumTidMapLeafNode VacuumTidMapLeafNode;
+
+struct VacuumTidMapLeafNode
+{
+	int			level;		/* always 0 on leaf nodes. */
+	VacuumTidMapLeafNode *next;
+	int			num_items;
+	ItemPointerData itemptrs[MAX_LEAF_NODE_ITEMS];
+};
+
+typedef struct
+{
+	int			level;		/* always >= 1 on internal nodes */
+	int			num_items;
+	BlockNumber blknos[MAX_INTERNAL_NODE_ITEMS];
+	VacuumTidMapNode *downlinks[MAX_INTERNAL_NODE_ITEMS];
+} VacuumTidMapInternalNode;
+
+/* Maximum height of the tree. 10 should be plenty.. */
+#define MAX_LEVELS		10
+
+struct VacuumTidMap
+{
+	int			num_levels;
+	uint64		num_entries;    /* total # of tids in the tree */
+
+	/* Memory context, to hold all extra nodes */
+	MemoryContext context;
+
+	/* Memory tracking */
+	uint64		mem_max;
+	uint64		mem_used;
+
+	/*
+	 * 'root' points to the root of the tree (or the only leaf node, if
+	 * num_levels == 1). 'first_leaf' points to the leftmost leaf page.
+	 */
+	VacuumTidMapNode *root;
+	VacuumTidMapLeafNode *first_leaf;
+
+	/*
+	 * Pointer to the rightmost leaf page, and its parent, grandparent etc.
+	 * all the way up to the root.
+	 */
+	VacuumTidMapLeafNode *last_leaf;
+	VacuumTidMapInternalNode *last_parents[MAX_LEVELS];
+
+	/* Iterator support */
+	OffsetNumber *iter_offsets;
+	VacuumTidMapLeafNode *iter_node;
+	int			iter_itemno;
+};
+
+static inline bool vac_itemptr_binsrch(ItemPointer refvalue, ItemPointer arr, int arr_elems);
+static void update_upper(VacuumTidMap *dt, int level, void *new_node, BlockNumber new_node_blkno);
+
+/*
+ * Create a new, initially empty, tidmap.
+ *
+ * 'vac_work_mem' is the max amount of memory to be used. The tidmap doesn't
+ * actually limit the amount of memory used in any way, but it affects when
+ * VacuumTidMapIsFull() says that the tidmap is full.
+ */
+VacuumTidMap *
+CreateVacuumTidMap(int vac_work_mem)
+{
+	VacuumTidMap *dt;
+
+	/*
+	 * Allocate the tid map struct, and the first leaf node in the current
+	 * memory context. Any additional nodes are allocated in a separate
+	 * context, so that they can be freed easily in VacuumTidMapReset().
+	 */
+	dt = (VacuumTidMap *) palloc(sizeof(VacuumTidMap));
+
+	dt->context = AllocSetContextCreate(CurrentMemoryContext,
+										"Vacuum TID map",
+										ALLOCSET_DEFAULT_SIZES);
+	dt->num_entries = 0;
+
+	dt->first_leaf = (VacuumTidMapLeafNode *)
+		palloc(sizeof(VacuumTidMapLeafNode));
+	dt->first_leaf->level = 0;
+	dt->first_leaf->next = NULL;
+	dt->first_leaf->num_items = 0;
+
+	dt->last_leaf = dt->first_leaf;
+	dt->root = (VacuumTidMapNode *) dt->first_leaf;
+	dt->num_levels = 1;
+
+	dt->mem_max = ((uint64) vac_work_mem) * 1024;
+	dt->mem_used = sizeof(VacuumTidMap) + sizeof(VacuumTidMapLeafNode);
+
+	dt->iter_offsets = NULL;	/* no iteration in progress */
+
+	return dt;
+}
+
+/*
+ * Clear all items from the tid map.
+ */
+void
+VacuumTidMapReset(VacuumTidMap *dt)
+{
+	dt->num_entries = 0;
+
+	dt->first_leaf->next = NULL;
+	dt->first_leaf->num_items = 0;
+	dt->last_leaf = dt->first_leaf;
+	dt->root = (VacuumTidMapNode *) dt->first_leaf;
+	dt->num_levels = 1;
+	MemoryContextReset(dt->context);
+
+	dt->mem_used = sizeof(VacuumTidMap) + sizeof(VacuumTidMapLeafNode);
+	dt->iter_offsets = NULL;
+}
+
+bool
+VacuumTidMapIsEmpty(VacuumTidMap *dt)
+{
+	return (dt->num_entries == 0);
+}
+
+/*
+ * Returns 'true', if inserting another heap page's worth of dead tuples would
+ * overrun the allocated memory.
+ */
+bool
+VacuumTidMapIsFull(VacuumTidMap *dt)
+{
+	/* Can we fit a whole heap page's worth of items on this leaf node? */
+	if (MAX_LEAF_NODE_ITEMS - dt->last_leaf->num_items >= MaxHeapTuplesPerPage)
+		return false;
+
+	/*
+	 * Do we have space to allocate another leaf node?
+	 *
+	 * XXX: This doesn't take into account the possibility that allocating a
+	 * new leaf page also requires allocating new internal pages, possibly all
+	 * the way up to the root. So we might still overshoot if that happens.
+	 */
+	if (dt->mem_max - dt->mem_used > sizeof(VacuumTidMapLeafNode))
+		return false;
+
+	return true;
+}
+
+uint64
+VacuumTidMapGetNumTuples(VacuumTidMap *dt)
+{
+	return dt->num_entries;
+}
+
+/*
+ * Begin in-order scan through all the TIDs.
+ */
+void
+VacuumTidMapBeginIterate(VacuumTidMap *dt)
+{
+	if (dt->iter_offsets)
+		elog(ERROR, "iteration on vacuum tid map is already in progress");
+
+	dt->iter_offsets = MemoryContextAlloc(dt->context,
+										  MaxHeapTuplesPerPage * sizeof(OffsetNumber));
+	dt->iter_node = dt->first_leaf;
+	dt->iter_itemno = 0;
+}
+
+/*
+ * Returns next batch of tuples.
+ *
+ * VacuumTidMapBeginIterate() must be called first. VacuumTidMapNext() returns
+ * TIDs one block number at a time, such that each call returns all the TIDs
+ * with the same block number.
+ *
+ * If there are any more entries, returns true, and 'blkno', 'ntuples' and
+ * 'offsets' are filled with the next batch of TIDs.
+ */
+bool
+VacuumTidMapNext(VacuumTidMap *dt, BlockNumber *blkno, int *ntuples, OffsetNumber **offsets)
+{
+	int			curr_itemno;
+	BlockNumber currblk;
+	VacuumTidMapLeafNode *curr_node;
+	int			num_offsets;
+
+	if (!dt->iter_offsets)
+		elog(ERROR, "vacuum tid map iteration is not in progress");
+
+	if (!dt->iter_node)
+	{
+		/* No more TIDs. End the iterator, and return false */
+		pfree(dt->iter_offsets);
+		dt->iter_offsets = NULL;
+		return false;
+	}
+
+	Assert(dt->iter_node->level == 0);
+	Assert(dt->iter_node->num_items > 0);
+
+	/*
+	 * There are more TIDs to return.
+	 *
+	 * Grab the block number from the next TID, and scan forward, collecting
+	 * the offset numbers of all TIDs on the same block.
+	 */
+	curr_node = dt->iter_node;
+	curr_itemno = dt->iter_itemno;
+
+	currblk = ItemPointerGetBlockNumber(&curr_node->itemptrs[curr_itemno]);
+	dt->iter_offsets[0] = ItemPointerGetOffsetNumber(&curr_node->itemptrs[curr_itemno]);
+	num_offsets = 1;
+	curr_itemno++;
+
+	for (;;)
+	{
+		if (curr_itemno >= curr_node->num_items)
+		{
+			/* We have reached end of this node. Step to the next one. */
+			curr_node = curr_node->next;
+			curr_itemno = 0;
+
+			if (!curr_node)
+			{
+				/* Reached the very end. */
+				break;
+			}
+		}
+
+		if (ItemPointerGetBlockNumber(&curr_node->itemptrs[curr_itemno]) != currblk)
+			break;
+
+		dt->iter_offsets[num_offsets] =
+			ItemPointerGetOffsetNumber(&curr_node->itemptrs[curr_itemno]);
+		num_offsets++;
+		curr_itemno++;
+	}
+
+	/* Remember where we stopped, for the next call */
+	dt->iter_node = curr_node;
+	dt->iter_itemno = curr_itemno;
+
+	*blkno = currblk;
+	*ntuples = num_offsets;
+	*offsets = dt->iter_offsets;
+	return true;
+}
+
+/*
+ * Record a TID in the map.
+ *
+ * Tids must be record in order.
+ */
+void
+VacuumTidMapRecordTid(VacuumTidMap *dt, ItemPointer itemptr)
+{
+	VacuumTidMapLeafNode *last_leaf;
+
+	/* The new TID should be larger than the last one recorded */
+	Assert(ItemPointerIsValid(itemptr));
+	Assert(dt->num_entries == 0 ||
+		   ItemPointerCompare(itemptr, &dt->last_leaf->itemptrs[dt->last_leaf->num_items - 1]) > 0);
+
+	/* Allocate a new leaf node if needed */
+	if (dt->last_leaf->num_items == MAX_LEAF_NODE_ITEMS)
+	{
+		VacuumTidMapLeafNode *new_node;
+
+		dt->mem_used += sizeof(VacuumTidMapLeafNode);
+		new_node = (VacuumTidMapLeafNode *)
+			MemoryContextAlloc(dt->context, sizeof(VacuumTidMapLeafNode));
+		new_node->level = 0;
+		new_node->next = NULL;
+		new_node->num_items = 0;
+
+		dt->last_leaf->next = new_node;
+		dt->last_leaf = new_node;
+
+		update_upper(dt, 1, new_node, ItemPointerGetBlockNumber(itemptr));
+	}
+	last_leaf = dt->last_leaf;
+
+	last_leaf->itemptrs[last_leaf->num_items] = *itemptr;
+	last_leaf->num_items++;
+
+	dt->num_entries++;
+}
+
+/*
+ * Insert the downlink into parent node, after creating a new node.
+ *
+ * Recurses if the parent node is full, too.
+ */
+static void
+update_upper(VacuumTidMap *dt, int level, void *new_node,
+			 BlockNumber new_node_blkno)
+{
+	VacuumTidMapInternalNode *parent;
+
+	/* Append to the parent. */
+	if (level >= dt->num_levels)
+	{
+		/* Create new root node. */
+		VacuumTidMapInternalNode *old_root;
+
+		/* MAX_LEVELS should be more than enough, so this shouldn't happen */
+		if (dt->num_levels == MAX_LEVELS)
+			elog(ERROR, "could not expand vacuum tid map, maximum number of levels reached");
+
+		old_root = (VacuumTidMapInternalNode *) dt->root;
+
+		dt->mem_used += sizeof(VacuumTidMapInternalNode);
+		parent = (VacuumTidMapInternalNode *)
+			MemoryContextAlloc(dt->context, sizeof(VacuumTidMapInternalNode));
+		parent->level = level;
+		parent->blknos[0] = old_root->blknos[0];
+		parent->downlinks[0] = (VacuumTidMapNode *) old_root;
+		parent->num_items = 1;
+
+		dt->last_parents[level] = parent;
+		dt->root = (VacuumTidMapNode *) parent;
+		dt->num_levels++;
+	}
+
+	parent = dt->last_parents[level];
+
+	if (parent->num_items < MAX_INTERNAL_NODE_ITEMS)
+	{
+		parent->blknos[parent->num_items] = new_node_blkno;
+		parent->downlinks[parent->num_items] = new_node;
+		parent->num_items++;
+	}
+	else
+	{
+		/* Doesn't fit on the parent. Allocate new parent. */
+		dt->mem_used += sizeof(VacuumTidMapInternalNode);
+		parent = (VacuumTidMapInternalNode *) MemoryContextAlloc(dt->context,
+																 sizeof(VacuumTidMapInternalNode));
+		parent->level = level;
+		parent->blknos[0] = new_node_blkno;
+		parent->downlinks[0] = new_node;
+		parent->num_items = 1;
+
+		dt->last_parents[level] = parent;
+
+		/* Link this new parent to its parent */
+		update_upper(dt, level + 1, parent, new_node_blkno);
+	}
+}
+
+/*
+ * Does the tid map contain the given TID?
+ */
+bool
+VacuumTidMapContainsTid(VacuumTidMap *dt, ItemPointer itemptr)
+{
+	VacuumTidMapLeafNode *leaf_node;
+	VacuumTidMapInternalNode *node;
+	int			level = dt->num_levels - 1;
+
+	if (dt->num_entries == 0 || !ItemPointerIsValid(itemptr))
+		return false;
+
+	/* Descend to find the right leaf node. */
+	node = (VacuumTidMapInternalNode *) dt->root;
+	while (level > 0)
+	{
+		/* binary search in the internal node. */
+		BlockNumber refblk = ItemPointerGetBlockNumber(itemptr);
+		BlockNumber *blknos = node->blknos;
+		BlockNumber left = 0;
+		BlockNumber right = node->num_items - 1;
+		int			mid;
+
+		Assert(node->level == level);
+
+		while (right > left)
+		{
+			BlockNumber blk;
+
+			mid = left + ((right - left) / 2);
+			blk = blknos[mid];
+
+			if (refblk < blk)
+				right = mid;
+			else if (refblk == blk)
+			{
+				left = mid;
+				break;
+			}
+			else
+				left = mid + 1;
+		}
+
+		node = (VacuumTidMapInternalNode *) node->downlinks[left];
+		level--;
+	}
+
+	leaf_node = (VacuumTidMapLeafNode *) node;
+	Assert(leaf_node->level == 0);
+
+	/* Binary search in the leaf node */
+	return vac_itemptr_binsrch(itemptr, leaf_node->itemptrs, leaf_node->num_items);
+}
+
+
+/*
+ * vac_itemptr_binsrch() -- search a sorted array of item pointers
+ *
+ * Returns true if the item is found.
+ *
+ * All item pointers in the array are assumed to be valid
+ */
+static inline bool
+vac_itemptr_binsrch(ItemPointer refvalue, ItemPointer arr, int arr_elems)
+{
+	BlockNumber refblk,	blk;
+	OffsetNumber refoff, off;
+	ItemPointer value;
+	size_t left, right, mid;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(refvalue);
+	refoff = ItemPointerGetOffsetNumberNoCheck(refvalue);
+
+	left = 0;
+	right = arr_elems - 1;
+	while (right > left)
+	{
+		mid = left + ((right - left) / 2);
+		value = &arr[mid];
+
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return true;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return (left < arr_elems);
+}
diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
index 85d472f0a5..f327f5a7a8 100644
--- a/src/include/commands/vacuum.h
+++ b/src/include/commands/vacuum.h
@@ -155,6 +155,25 @@ extern int	vacuum_multixact_freeze_min_age;
 extern int	vacuum_multixact_freeze_table_age;
 
 
+/*
+ * prototypes for Vacuum Tid Map code, in vacuumtidmap.c
+ */
+typedef struct VacuumTidMap VacuumTidMap;
+
+extern VacuumTidMap *CreateVacuumTidMap(int vac_work_mem);
+extern void VacuumTidMapReset(VacuumTidMap *dt);
+
+extern void VacuumTidMapRecordTid(VacuumTidMap *dt, ItemPointer itemptr);
+
+extern bool VacuumTidMapIsFull(VacuumTidMap *dt);
+extern bool VacuumTidMapIsEmpty(VacuumTidMap *dt);
+extern uint64 VacuumTidMapGetNumTuples(VacuumTidMap *dt);
+
+extern bool VacuumTidMapContainsTid(VacuumTidMap *dt, ItemPointer itemptr);
+extern void VacuumTidMapBeginIterate(VacuumTidMap *dt);
+extern bool VacuumTidMapNext(VacuumTidMap *dt,
+				 BlockNumber *blkno, int *ntuples, OffsetNumber **offsets);
+
 /* in commands/vacuum.c */
 extern void ExecVacuum(VacuumStmt *vacstmt, bool isTopLevel);
 extern void vacuum(int options, List *relations, VacuumParams *params,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index d66e2aa3b7..d60523ba99 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,17 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -22,6 +32,12 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -49,8 +65,20 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -119,6 +147,48 @@ ANALYZE (nonexistant-arg) does_not_exist;
 ERROR:  syntax error at or near "nonexistant"
 LINE 1: ANALYZE (nonexistant-arg) does_not_exist;
                  ^
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+                 QUERY PLAN                  
+---------------------------------------------
+ Seq Scan on vactst2 (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst2;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 275ce2e270..87ea900686 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,18 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -18,6 +29,7 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 VACUUM FULL vactst;
 UPDATE vactst SET i = i + 1;
@@ -35,8 +47,10 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 
 VACUUM (FULL, FREEZE) vactst;
@@ -93,6 +107,30 @@ ANALYZE vactst (i), vacparted (does_not_exist);
 ANALYZE (VERBOSE) does_not_exist;
 ANALYZE (nonexistant-arg) does_not_exist;
 
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+SELECT count(*) FROM vactst2;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
#179Claudio Freire
klaussfreire@gmail.com
In reply to: Heikki Linnakangas (#178)
1 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Apr 5, 2018 at 5:02 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 03/04/18 17:20, Claudio Freire wrote:

Ok, rebased patches attached

Thanks! I took a look at this.

First, now that the data structure is more complicated, I think it's time to
abstract it, and move it out of vacuumlazy.c. The Tid Map needs to support
the following operations:

* Add TIDs, in order (in 1st phase of vacuum)
* Random lookup, by TID (when scanning indexes)
* Iterate through all TIDs, in order (2nd pass over heap)

Let's add a new source file to hold the code for the tid map data structure,
with functions corresponding those operations.

I took a stab at doing that, and I think it makes vacuumlazy.c nicer.

About the refactoring to split this into their own set of files and
abstract away the underlying structure, I can totally get behind that.

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction. It also
copies stuff a lot, so it's quite heavyweight. I'd suggest trying to
go for a lighter weight interface with less overhead that is more
general at the same time.

If it was C++, I'd say build an iterator class.

C would do it probably with macros, so you can have a macro to get to
the current element, another to advance to the next element, and
another to check whether you've reached the end.

I can do that if we agree on the points below:

Secondly, I'm not a big fan of the chosen data structure. I think the only
reason that the segmented "multi-array" was chosen is that each "segment"
works is similar to the simple array that we used to have. After putting it
behind the abstraction, it seems rather ad hoc. There are many standard
textbook data structures that we could use instead, and would be easier to
understand and reason about, I think.

So, I came up with the attached patch. I used a B-tree as the data
structure. Not sure it's the best one, I'm all ears for suggestions and
bikeshedding on alternatives, but I'm pretty happy with that. I would expect
it to be pretty close to the simple array with binary search in performance
characteristics. It'd be pretty straightforward to optimize further, and
e.g. use a bitmap of OffsetNumbers or some other more dense data structure
in the B-tree leaf pages, but I resisted doing that as part of this patch.

About the B-tree, however, I don't think a B-tree is a good idea.

Trees' main benefit is that they can be inserted to efficiently. When
all your data is loaded sequentially, in-order, in-memory and
immutable; the tree is pointless, more costly to build, and harder to
maintain - in terms of code complexity.

In this use case, the only benefit of B-trees would be that they're
optimized for disk access. If we planned to store this on-disk,
perhaps I'd grant you that. But we don't plan to do that, and it's not
even clear doing it would be efficient enough for the intended use.

On the other side, using B-trees incurs memory overhead due to the
need for internal nodes, can fragment memory because internal nodes
aren't the same size as leaf nodes, is easier to get wrong and
introduce bugs... I don't see a gain. If you propose its use, at least
benchmark it to show some gain.

So I don't think B-tree is a good idea, the sorted array already is
good enough, and if not, it's at least close to the earlier
implementation and less likely to introduce bugs.

Furthermore, among the 200-ish messages this thread has accumulated,
better ideas have been proposed, better because they do use less
memory and are faster (like using bitmaps when possible), but if we
can't push a simple refactoring first, there's no chance a bigger
rewrite will fare better. Remember, in this use case, using less
memory far outweights any other consideration. Less memory directly
translates to less iterations over the indexes, because more can be
crammed into m_w_m, which is a huge time saving. Far more than any
micro-optimization.

About 2 years ago, I chose to try to push this simple algorithm first,
then try to improve on it with better data structures. Nobody
complained at the time (I think, IIRC), and I don't think it fair to
go and revisit that now. It just delays getting a solution for this
issue for the persuit of "the perfect implementaiton" that might never
arrive. Or even if it doesn, there's nothing stopping us from pushing
another patch in the future with that better implementation if we
wish. Lets get something simple and proven first.

I haven't done any performance testing of this (and not much testing in
general), but at least the abstraction seems better this way. Performance
testing would be good, too. In particular, I'd like to know how this might
affect the performance of lazy_tid_reaped(). That's a hot spot when
vacuuming indexes, so we don't want to add any cycles there. Was there any
ready-made test kits on that in this thread? I didn't see any at a quick
glance, but it's a long thread..

If you dig old messages in the thread, I had attached the scripts I
used for benchmarking this.

I'm attaching again one version of them (I've been modifying it to
suit my purposes at each review round), you'll probably want to tweak
it to build test cases good for your purpose here.

Attachments:

vacuumbench.shapplication/x-shellscript; name=vacuumbench.shDownload
#180Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Claudio Freire (#179)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

It also copies stuff a lot, so it's quite heavyweight. I'd suggest
trying to go for a lighter weight interface with less overhead that
is more general at the same time.

Note that there was similar copying, to construct an array of
OffsetNumbers, happening in lazy_vacuum_page() before this patch. So the
net amount of copying is the same.

I'm envisioning that this data structure will sooner or later be
optimized further, so that when you have a lot of TIDs pointing to the
same block, we would pack them more tightly, storing the block number
just once, with an array of offset numbers. This interface that returns
an array of offset numbers matches that future well, as the iterator
could just return a pointer to the array of offset numbers, with no
copying. (If we end up doing something even more dense, like a bitmap,
then it doesn't help, but that's ok too.)

About the B-tree, however, I don't think a B-tree is a good idea.

Trees' main benefit is that they can be inserted to efficiently. When
all your data is loaded sequentially, in-order, in-memory and
immutable; the tree is pointless, more costly to build, and harder to
maintain - in terms of code complexity.

In this use case, the only benefit of B-trees would be that they're
optimized for disk access.

Those are not the reasons for which I'd prefer a B-tree. A B-tree has
good cache locality, and when you don't need to worry about random
insertions, page splits, deletions etc., it's also very simple to
implement. This patch is not much longer than the segmented multi-array.

On the other side, using B-trees incurs memory overhead due to the
need for internal nodes, can fragment memory because internal nodes
aren't the same size as leaf nodes, is easier to get wrong and
introduce bugs... I don't see a gain.

The memory overhead incurred by the internal nodes is quite minimal, and
can be adjusted by changing the node sizes. After some experimentation,
I settled on 2048 items per leaf node, and 64 items per internal node.
With those values, the overhead caused by the internal nodes is minimal,
below 0.5%. That seems fine, but we could increase the node sizes to
bring it further down, if we'd prefer that tradeoff.

I don't understand what memory fragmentation problems you're worried
about. The tree grows one node at a time, as new TIDs are added, until
it's all released at the end. I don't see how the size of internal vs
leaf nodes matters.

If you propose its use, at least benchmark it to show some gain.

Sure. I used the attached script to test this. It's inspired by the test
script you posted. It creates a pgbench database with scale factor 100,
deletes 80% of the rows, and runs vacuum. To stress lazy_tid_reaped()
more heavily, the test script creates a number of extra indexes. Half of
them are on the primary key, just to get more repetitions without having
to re-initialize in between, and the rest are like this:

create index random_1 on pgbench_accounts((hashint4(aid)))

to stress lazy_vacuum_tid_reaped() with a random access pattern, rather
than the sequential one that you get with the primary key index.

I ran the test script on my laptop, with unpatched master, with your
latest multi-array patch, and with the attached version of the b-tree
patch. The results are quite noisy, unfortunately, so I wouldn't draw
very strong conclusions from it, but it seems that the performance of
all three versions is roughly the same. I looked in particular at the
CPU time spent in the index vacuums, as reported by VACUUM VERBOSE.

Furthermore, among the 200-ish messages this thread has accumulated,
better ideas have been proposed, better because they do use less
memory and are faster (like using bitmaps when possible), but if we
can't push a simple refactoring first, there's no chance a bigger
rewrite will fare better. Remember, in this use case, using less
memory far outweights any other consideration. Less memory directly
translates to less iterations over the indexes, because more can be
crammed into m_w_m, which is a huge time saving. Far more than any
micro-optimization.

About 2 years ago, I chose to try to push this simple algorithm first,
then try to improve on it with better data structures. Nobody
complained at the time (I think, IIRC), and I don't think it fair to
go and revisit that now. It just delays getting a solution for this
issue for the persuit of "the perfect implementaiton" that might never
arrive. Or even if it doesn, there's nothing stopping us from pushing
another patch in the future with that better implementation if we
wish. Lets get something simple and proven first.

True all that. My point is that the multi-segmented array isn't all that
simple and proven, compared to an also straightforward B-tree. It's
pretty similar to a B-tree, actually, except that it has exactly two
levels, and the node (= segment) sizes grow exponentially. I'd rather go
with a true B-tree, than something homegrown that resembles a B-tree,
but not quite.

I'm attaching again one version of them (I've been modifying it to
suit my purposes at each review round), you'll probably want to tweak
it to build test cases good for your purpose here.

Thanks!

Attached is a new version of my b-tree version. Compared to yesterday's
version, I fixed a bunch of bugs that turned up in testing.

Looking at the changes to the regression test in this, I don't quite
understand what it's all about. What are the "wait_barriers" for? If I
understand correctly, they're added so that the VACUUMs can remove the
tuples that are deleted in the test. But why are they needed now? Was
that an orthogonal change we should've done anyway?

Rather than add those wait_barriers, should we stop running the 'vacuum'
test in parallel with the other tests? Or maybe it's a good thing to run
it in parallel, to test some other things?

What are the new tests supposed to cover? The test comment says "large
mwm vacuum runs", and it sets maintenance_work_mem to 1 MB, which isn't
very large

- Heikki

Attachments:

vacuum-tidmap-2.patchtext/x-patch; name=vacuum-tidmap-2.patchDownload
diff --git a/src/backend/commands/Makefile b/src/backend/commands/Makefile
index 4a6c99e090..634059b8ff 100644
--- a/src/backend/commands/Makefile
+++ b/src/backend/commands/Makefile
@@ -20,6 +20,6 @@ OBJS = amcmds.o aggregatecmds.o alter.o analyze.o async.o cluster.o comment.o \
 	policy.o portalcmds.o prepare.o proclang.o publicationcmds.o \
 	schemacmds.o seclabel.o sequence.o statscmds.o subscriptioncmds.o \
 	tablecmds.o tablespace.o trigger.o tsearchcmds.o typecmds.o user.o \
-	vacuum.o vacuumlazy.o variable.o view.o
+	vacuum.o vacuumlazy.o vacuumtidmap.o variable.o view.o
 
 include $(top_srcdir)/src/backend/common.mk
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c
index d2a006671a..580835d8c9 100644
--- a/src/backend/commands/vacuumlazy.c
+++ b/src/backend/commands/vacuumlazy.c
@@ -4,23 +4,21 @@
  *	  Concurrent ("lazy") vacuuming.
  *
  *
- * The major space usage for LAZY VACUUM is storage for the array of dead tuple
- * TIDs.  We want to ensure we can vacuum even the very largest relations with
- * finite memory space usage.  To do that, we set upper bounds on the number of
- * tuples we will keep track of at once.
+ * The major space usage for LAZY VACUUM is storage of dead tuple TIDs.
+ * We want to ensure we can vacuum even the very largest relations with
+ * finite memory space usage.  To do that, we set upper bounds on the amount
+ * of memory used to track the TIDs at any one time.
  *
  * We are willing to use at most maintenance_work_mem (or perhaps
  * autovacuum_work_mem) memory space to keep track of dead tuples.  We
- * initially allocate an array of TIDs of that size, with an upper limit that
- * depends on table size (this limit ensures we don't allocate a huge area
- * uselessly for vacuuming small tables).  If the array threatens to overflow,
- * we suspend the heap scan phase and perform a pass of index cleanup and page
- * compaction, then resume the heap scan with an empty TID array.
+ * use a specialized data structure to hold the TIDs, which keeps track of
+ * the memory used.  If the memory limit is about to be exceeded, we suspend
+ * the heap scan phase and perform a pass of index cleanup and page
+ * compaction, then resume the heap scan with an empty tid map.
  *
  * If we're processing a table with no indexes, we can just vacuum each page
  * as we go; there's no need to save up multiple tuples to minimize the number
- * of index scans performed.  So we don't use maintenance_work_mem memory for
- * the TID array, just enough to hold as many heap tuples as fit on one page.
+ * of index scans performed.
  *
  *
  * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
@@ -94,13 +92,6 @@
 	((BlockNumber) (((uint64) 8 * 1024 * 1024 * 1024) / BLCKSZ))
 
 /*
- * Guesstimation of number of dead tuples per page.  This is used to
- * provide an upper limit to memory allocated when vacuuming small
- * tables.
- */
-#define LAZY_ALLOC_TUPLES		MaxHeapTuplesPerPage
-
-/*
  * Before we consider skipping a page that's marked as clean in
  * visibility map, we must've seen at least this many clean pages.
  */
@@ -130,11 +121,7 @@ typedef struct LVRelStats
 	BlockNumber pages_removed;
 	double		tuples_deleted;
 	BlockNumber nonempty_pages; /* actually, last nonempty page + 1 */
-	/* List of TIDs of tuples we intend to delete */
-	/* NB: this list is ordered by TID address */
-	int			num_dead_tuples;	/* current # of entries */
-	int			max_dead_tuples;	/* # slots allocated in array */
-	ItemPointer dead_tuples;	/* array of ItemPointerData */
+	VacuumTidMap *dead_tuples;	/* list of TIDs of tuples we intend to delete */
 	int			num_index_scans;
 	TransactionId latestRemovedXid;
 	bool		lock_waiter_detected;
@@ -163,17 +150,17 @@ static void lazy_vacuum_index(Relation indrel,
 static void lazy_cleanup_index(Relation indrel,
 				   IndexBulkDeleteResult *stats,
 				   LVRelStats *vacrelstats);
-static int lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer);
+static void lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
+				 OffsetNumber *dead_offsets, int num_dead_tuples,
+				 LVRelStats *vacrelstats, Buffer *vmbuffer);
 static bool should_attempt_truncation(LVRelStats *vacrelstats);
 static void lazy_truncate_heap(Relation onerel, LVRelStats *vacrelstats);
 static BlockNumber count_nondeletable_pages(Relation onerel,
 						 LVRelStats *vacrelstats);
-static void lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks);
 static void lazy_record_dead_tuple(LVRelStats *vacrelstats,
 					   ItemPointer itemptr);
+static void lazy_clear_dead_tuples(LVRelStats *vacrelstats);
 static bool lazy_tid_reaped(ItemPointer itemptr, void *state);
-static int	vac_cmp_itemptr(const void *left, const void *right);
 static bool heap_page_is_all_visible(Relation rel, Buffer buf,
 						 TransactionId *visibility_cutoff_xid, bool *all_frozen);
 
@@ -492,6 +479,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		PROGRESS_VACUUM_MAX_DEAD_TUPLES
 	};
 	int64		initprog_val[3];
+	int			vac_work_mem;
 
 	pg_rusage_init(&ru0);
 
@@ -521,13 +509,23 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 	vacrelstats->nonempty_pages = 0;
 	vacrelstats->latestRemovedXid = InvalidTransactionId;
 
-	lazy_space_alloc(vacrelstats, nblocks);
+	vac_work_mem = IsAutoVacuumWorkerProcess() &&
+		autovacuum_work_mem != -1 ?
+		autovacuum_work_mem : maintenance_work_mem;
+
+	vacrelstats->dead_tuples = CreateVacuumTidMap(vac_work_mem);
+
 	frozen = palloc(sizeof(xl_heap_freeze_tuple) * MaxHeapTuplesPerPage);
 
 	/* Report that we're scanning the heap, advertising total # of blocks */
 	initprog_val[0] = PROGRESS_VACUUM_PHASE_SCAN_HEAP;
 	initprog_val[1] = nblocks;
-	initprog_val[2] = vacrelstats->max_dead_tuples;
+	/*
+	 * XXX: The reported max number of tuples is just a rough estimate. It
+	 * doesn't take into account the memory needed by internal nodes in the
+	 * TID map.
+	 */
+	initprog_val[2] = vac_work_mem / sizeof(ItemPointerData);
 	pgstat_progress_update_multi_param(3, initprog_index, initprog_val);
 
 	/*
@@ -611,7 +609,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 					maxoff;
 		bool		tupgone,
 					hastup;
-		int			prev_dead_count;
+		uint16		prev_dead_count;
 		int			nfrozen;
 		Size		freespace;
 		bool		all_visible_according_to_vm = false;
@@ -705,8 +703,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * If we are close to overrunning the available space for dead-tuple
 		 * TIDs, pause and do a cycle of vacuuming before we tackle this page.
 		 */
-		if ((vacrelstats->max_dead_tuples - vacrelstats->num_dead_tuples) < MaxHeapTuplesPerPage &&
-			vacrelstats->num_dead_tuples > 0)
+		if (VacuumTidMapIsFull(vacrelstats->dead_tuples))
 		{
 			const int	hvp_index[] = {
 				PROGRESS_VACUUM_PHASE,
@@ -757,7 +754,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacrelstats->num_index_scans++;
 
 			/*
@@ -947,7 +944,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		has_dead_tuples = false;
 		nfrozen = 0;
 		hastup = false;
-		prev_dead_count = vacrelstats->num_dead_tuples;
+		prev_dead_count = VacuumTidMapGetNumTuples(vacrelstats->dead_tuples);
 		maxoff = PageGetMaxOffsetNumber(page);
 
 		/*
@@ -1202,10 +1199,24 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * instead of doing a second scan.
 		 */
 		if (nindexes == 0 &&
-			vacrelstats->num_dead_tuples > 0)
+			!VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
 		{
+			BlockNumber tblkno;
+			int			ntuples;
+			OffsetNumber *dead_offsets;
+
 			/* Remove tuples from heap */
-			lazy_vacuum_page(onerel, blkno, buf, 0, vacrelstats, &vmbuffer);
+			VacuumTidMapBeginIterate(vacrelstats->dead_tuples);
+			if (!VacuumTidMapNext(vacrelstats->dead_tuples, &tblkno, &ntuples, &dead_offsets))
+				elog(ERROR, "vacuum tid map was empty");
+			if (tblkno != blkno)
+				elog(ERROR, "vacuum tid map contained wrong block");
+
+			lazy_vacuum_page(onerel, blkno, buf, dead_offsets, ntuples, vacrelstats, &vmbuffer);
+
+			if (VacuumTidMapNext(vacrelstats->dead_tuples, &tblkno, &ntuples, &dead_offsets))
+				elog(ERROR, "unexpected entries in vacuum tid map");
+
 			has_dead_tuples = false;
 
 			/*
@@ -1213,7 +1224,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 			 * not to reset latestRemovedXid since we want that value to be
 			 * valid.
 			 */
-			vacrelstats->num_dead_tuples = 0;
+			lazy_clear_dead_tuples(vacrelstats);
 			vacuumed_pages++;
 
 			/*
@@ -1329,7 +1340,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 		 * page, so remember its free space as-is.  (This path will always be
 		 * taken if there are no indexes.)
 		 */
-		if (vacrelstats->num_dead_tuples == prev_dead_count)
+		if (VacuumTidMapGetNumTuples(vacrelstats->dead_tuples) == prev_dead_count)
 			RecordPageWithFreeSpace(onerel, blkno, freespace);
 	}
 
@@ -1363,7 +1374,7 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 
 	/* If any tuples need to be deleted, perform final vacuum cycle */
 	/* XXX put a threshold on min number of tuples here? */
-	if (vacrelstats->num_dead_tuples > 0)
+	if (!VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
 	{
 		const int	hvp_index[] = {
 			PROGRESS_VACUUM_PHASE,
@@ -1467,25 +1478,32 @@ lazy_scan_heap(Relation onerel, int options, LVRelStats *vacrelstats,
 static void
 lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 {
-	int			tupindex;
+	int			tottuples;
 	int			npages;
 	PGRUsage	ru0;
 	Buffer		vmbuffer = InvalidBuffer;
+	int			num_dead_tuples;
+	BlockNumber tblk;
+	OffsetNumber *dead_offsets;
+
+	if (VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
+		return;
 
 	pg_rusage_init(&ru0);
 	npages = 0;
 
-	tupindex = 0;
-	while (tupindex < vacrelstats->num_dead_tuples)
+	tottuples = 0;
+
+	VacuumTidMapBeginIterate(vacrelstats->dead_tuples);
+	while (VacuumTidMapNext(vacrelstats->dead_tuples, &tblk, &num_dead_tuples, &dead_offsets))
 	{
-		BlockNumber tblk;
+		int			tupindex = 0;
 		Buffer		buf;
 		Page		page;
 		Size		freespace;
 
 		vacuum_delay_point();
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
 		buf = ReadBufferExtended(onerel, MAIN_FORKNUM, tblk, RBM_NORMAL,
 								 vac_strategy);
 		if (!ConditionalLockBufferForCleanup(buf))
@@ -1494,8 +1512,9 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 			++tupindex;
 			continue;
 		}
-		tupindex = lazy_vacuum_page(onerel, tblk, buf, tupindex, vacrelstats,
-									&vmbuffer);
+		lazy_vacuum_page(onerel, tblk, buf,
+						 dead_offsets, num_dead_tuples,
+						 vacrelstats, &vmbuffer);
 
 		/* Now that we've compacted the page, record its available space */
 		page = BufferGetPage(buf);
@@ -1504,6 +1523,8 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 		UnlockReleaseBuffer(buf);
 		RecordPageWithFreeSpace(onerel, tblk, freespace);
 		npages++;
+
+		tottuples += num_dead_tuples;
 	}
 
 	if (BufferIsValid(vmbuffer))
@@ -1515,7 +1536,7 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
 	ereport(elevel,
 			(errmsg("\"%s\": removed %d row versions in %d pages",
 					RelationGetRelationName(onerel),
-					tupindex, npages),
+					tottuples, npages),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -1525,37 +1546,32 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
  *
  * Caller must hold pin and buffer cleanup lock on the buffer.
  *
- * tupindex is the index in vacrelstats->dead_tuples of the first dead
+ * tupindex is the index in seg->dt_tids of the first dead
  * tuple for this page.  We assume the rest follow sequentially.
  * The return value is the first tupindex after the tuples of this page.
  */
-static int
+static void
 lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
-				 int tupindex, LVRelStats *vacrelstats, Buffer *vmbuffer)
+				 OffsetNumber *dead_offsets, int num_dead_tuples,
+				 LVRelStats *vacrelstats, Buffer *vmbuffer)
 {
 	Page		page = BufferGetPage(buffer);
-	OffsetNumber unused[MaxOffsetNumber];
-	int			uncnt = 0;
 	TransactionId visibility_cutoff_xid;
 	bool		all_frozen;
+	int			tupindex;
 
 	pgstat_progress_update_param(PROGRESS_VACUUM_HEAP_BLKS_VACUUMED, blkno);
 
 	START_CRIT_SECTION();
 
-	for (; tupindex < vacrelstats->num_dead_tuples; tupindex++)
+	for (tupindex = 0; tupindex < num_dead_tuples; tupindex++)
 	{
-		BlockNumber tblk;
 		OffsetNumber toff;
 		ItemId		itemid;
 
-		tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
-		if (tblk != blkno)
-			break;				/* past end of tuples for this block */
-		toff = ItemPointerGetOffsetNumber(&vacrelstats->dead_tuples[tupindex]);
+		toff = dead_offsets[tupindex];
 		itemid = PageGetItemId(page, toff);
 		ItemIdSetUnused(itemid);
-		unused[uncnt++] = toff;
 	}
 
 	PageRepairFragmentation(page);
@@ -1572,7 +1588,7 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
 
 		recptr = log_heap_clean(onerel, buffer,
 								NULL, 0, NULL, 0,
-								unused, uncnt,
+								dead_offsets, num_dead_tuples,
 								vacrelstats->latestRemovedXid);
 		PageSetLSN(page, recptr);
 	}
@@ -1616,8 +1632,6 @@ lazy_vacuum_page(Relation onerel, BlockNumber blkno, Buffer buffer,
 			visibilitymap_set(onerel, blkno, buffer, InvalidXLogRecPtr,
 							  *vmbuffer, visibility_cutoff_xid, flags);
 	}
-
-	return tupindex;
 }
 
 /*
@@ -1697,14 +1711,18 @@ lazy_vacuum_index(Relation indrel,
 	ivinfo.num_heap_tuples = vacrelstats->old_live_tuples;
 	ivinfo.strategy = vac_strategy;
 
+	/* If uninitialized, we have no tuples to delete from the indexes */
+	if (VacuumTidMapIsEmpty(vacrelstats->dead_tuples))
+		return;
+
 	/* Do bulk deletion */
 	*stats = index_bulk_delete(&ivinfo, *stats,
 							   lazy_tid_reaped, (void *) vacrelstats);
 
 	ereport(elevel,
-			(errmsg("scanned index \"%s\" to remove %d row versions",
+			(errmsg("scanned index \"%s\" to remove " UINT64_FORMAT " row versions",
 					RelationGetRelationName(indrel),
-					vacrelstats->num_dead_tuples),
+					VacuumTidMapGetNumTuples(vacrelstats->dead_tuples)),
 			 errdetail_internal("%s", pg_rusage_show(&ru0))));
 }
 
@@ -2071,113 +2089,37 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
 }
 
 /*
- * lazy_space_alloc - space allocation decisions for lazy vacuum
- *
- * See the comments at the head of this file for rationale.
+ * lazy_record_dead_tuple - remember one deletable tuple
  */
 static void
-lazy_space_alloc(LVRelStats *vacrelstats, BlockNumber relblocks)
+lazy_record_dead_tuple(LVRelStats *vacrelstats,
+					   ItemPointer itemptr)
 {
-	long		maxtuples;
-	int			vac_work_mem = IsAutoVacuumWorkerProcess() &&
-	autovacuum_work_mem != -1 ?
-	autovacuum_work_mem : maintenance_work_mem;
-
-	if (vacrelstats->hasindex)
-	{
-		maxtuples = (vac_work_mem * 1024L) / sizeof(ItemPointerData);
-		maxtuples = Min(maxtuples, INT_MAX);
-		maxtuples = Min(maxtuples, MaxAllocSize / sizeof(ItemPointerData));
-
-		/* curious coding here to ensure the multiplication can't overflow */
-		if ((BlockNumber) (maxtuples / LAZY_ALLOC_TUPLES) > relblocks)
-			maxtuples = relblocks * LAZY_ALLOC_TUPLES;
-
-		/* stay sane if small maintenance_work_mem */
-		maxtuples = Max(maxtuples, MaxHeapTuplesPerPage);
-	}
-	else
-	{
-		maxtuples = MaxHeapTuplesPerPage;
-	}
-
-	vacrelstats->num_dead_tuples = 0;
-	vacrelstats->max_dead_tuples = (int) maxtuples;
-	vacrelstats->dead_tuples = (ItemPointer)
-		palloc(maxtuples * sizeof(ItemPointerData));
+	VacuumTidMapRecordTid(vacrelstats->dead_tuples, itemptr);
+	pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
+								 VacuumTidMapGetNumTuples(vacrelstats->dead_tuples));
 }
 
 /*
- * lazy_record_dead_tuple - remember one deletable tuple
+ * lazy_clear_dead_tuples - reset the dead tuples map
  */
 static void
-lazy_record_dead_tuple(LVRelStats *vacrelstats,
-					   ItemPointer itemptr)
+lazy_clear_dead_tuples(LVRelStats *vacrelstats)
 {
-	/*
-	 * The array shouldn't overflow under normal behavior, but perhaps it
-	 * could if we are given a really small maintenance_work_mem. In that
-	 * case, just forget the last few tuples (we'll get 'em next time).
-	 */
-	if (vacrelstats->num_dead_tuples < vacrelstats->max_dead_tuples)
-	{
-		vacrelstats->dead_tuples[vacrelstats->num_dead_tuples] = *itemptr;
-		vacrelstats->num_dead_tuples++;
-		pgstat_progress_update_param(PROGRESS_VACUUM_NUM_DEAD_TUPLES,
-									 vacrelstats->num_dead_tuples);
-	}
+	VacuumTidMapReset(vacrelstats->dead_tuples);
 }
 
 /*
  *	lazy_tid_reaped() -- is a particular tid deletable?
  *
  *		This has the right signature to be an IndexBulkDeleteCallback.
- *
- *		Assumes dead_tuples array is in sorted order.
  */
 static bool
 lazy_tid_reaped(ItemPointer itemptr, void *state)
 {
 	LVRelStats *vacrelstats = (LVRelStats *) state;
-	ItemPointer res;
-
-	res = (ItemPointer) bsearch((void *) itemptr,
-								(void *) vacrelstats->dead_tuples,
-								vacrelstats->num_dead_tuples,
-								sizeof(ItemPointerData),
-								vac_cmp_itemptr);
-
-	return (res != NULL);
-}
-
-/*
- * Comparator routines for use with qsort() and bsearch().
- */
-static int
-vac_cmp_itemptr(const void *left, const void *right)
-{
-	BlockNumber lblk,
-				rblk;
-	OffsetNumber loff,
-				roff;
-
-	lblk = ItemPointerGetBlockNumber((ItemPointer) left);
-	rblk = ItemPointerGetBlockNumber((ItemPointer) right);
-
-	if (lblk < rblk)
-		return -1;
-	if (lblk > rblk)
-		return 1;
-
-	loff = ItemPointerGetOffsetNumber((ItemPointer) left);
-	roff = ItemPointerGetOffsetNumber((ItemPointer) right);
-
-	if (loff < roff)
-		return -1;
-	if (loff > roff)
-		return 1;
 
-	return 0;
+	return VacuumTidMapContainsTid(vacrelstats->dead_tuples, itemptr);
 }
 
 /*
diff --git a/src/backend/commands/vacuumtidmap.c b/src/backend/commands/vacuumtidmap.c
new file mode 100644
index 0000000000..182951f2e6
--- /dev/null
+++ b/src/backend/commands/vacuumtidmap.c
@@ -0,0 +1,520 @@
+/*-------------------------------------------------------------------------
+ *
+ * vacuumtidmap.c
+ *	  Data structure to hold TIDs of dead tuples during vacuum.
+ *
+ * Vacuum Tid Map is used to hold the TIDs of dead tuples during VACUUM.
+ * The data structure is a fairly straightforward B-tree, but tailored for
+ * storing TIDs.
+ *
+ * Operations we need to support:
+ *
+ * - Adding new TIDs. TIDs are only added in increasing TID order.  Thanks
+ *   to that, we can fill each internal node fully, and never need to split
+ *   existing nodes.
+ *
+ * - Random lookups by TID.  This is done heavily while scanning indexes.
+ *
+ * - Scan all TIDs in order.  In the 2nd phase of vacuum.  To make that
+ *   simpler, we store a 'next' pointer on each leaf node.
+ *
+ *
+ * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ *
+ * IDENTIFICATION
+ *	  src/backend/commands/vacuumtidmap.c
+ *
+ *-------------------------------------------------------------------------
+ */
+#include "postgres.h"
+
+#include "access/htup_details.h"
+#include "commands/vacuum.h"
+#include "utils/memutils.h"
+
+/*
+ * Node structures, for the in-memory B-tree.
+ *
+ * Each leaf node stores a number of TIDs, in a sorted array.  There is also
+ * a pointer to the next leaf node, so that the leaf nodes can be easily
+ * walked from beginning to end.
+ *
+ * An internal node holds a number of downlink pointers, to leaf nodes, or
+ * nodes to internal nodes on lower level.  For each downlink, the TID
+ * corresponding lower level node is stored.
+
+ * Note that because these form just an in-memory data structure, there is no
+ * need for the nodes to be of the same size.
+ */
+
+#define MAX_LEAF_NODE_ITEMS			2048
+#define MAX_INTERNAL_NODE_ITEMS		64
+
+/* common structure of both leaf and internal nodes. */
+typedef struct
+{
+	int			level;
+} VacuumTidMapNode;
+
+typedef struct VacuumTidMapLeafNode VacuumTidMapLeafNode;
+
+struct VacuumTidMapLeafNode
+{
+	int			level;			/* always 0 on leaf nodes. */
+	VacuumTidMapLeafNode *next;
+	int			num_items;
+	ItemPointerData itemptrs[MAX_LEAF_NODE_ITEMS];
+};
+
+typedef struct
+{
+	int			level;			/* always >= 1 on internal nodes */
+	int			num_items;
+	ItemPointerData itemptrs[MAX_INTERNAL_NODE_ITEMS];
+	VacuumTidMapNode *downlinks[MAX_INTERNAL_NODE_ITEMS];
+} VacuumTidMapInternalNode;
+
+/* Maximum height of the tree. 10 should be plenty. */
+#define MAX_LEVELS		10
+
+struct VacuumTidMap
+{
+	int			num_levels;
+	uint64		num_entries;	/* total # of tids in the tree */
+
+	/* Memory context, to hold all extra nodes */
+	MemoryContext context;
+
+	/* Memory tracking */
+	uint64		mem_max;
+	uint64		mem_used;
+
+	/*
+	 * 'root' points to the root of the tree (or the only leaf node, if
+	 * num_levels == 1).  'first_leaf' points to the leftmost leaf page.
+	 */
+	VacuumTidMapNode *root;
+	VacuumTidMapLeafNode *first_leaf;
+
+	/*
+	 * Pointer to the rightmost leaf page, and its parent, grandparent etc.
+	 * all the way up to the root.
+	 */
+	VacuumTidMapLeafNode *last_leaf;
+	VacuumTidMapInternalNode *last_parents[MAX_LEVELS];
+
+	/* Iterator support */
+	OffsetNumber *iter_offsets;
+	VacuumTidMapLeafNode *iter_node;
+	int			iter_itemno;
+};
+
+static inline int vac_itemptr_binsrch(BlockNumber refblk, OffsetNumber refoff, ItemPointer arr, int arr_elems);
+static void update_upper(VacuumTidMap * dt, int level, void *new_node, ItemPointer new_node_itemptr);
+
+/*
+ * Create a new, initially empty, tidmap.
+ *
+ * 'vac_work_mem' is the max amount of memory to be used.  The tidmap doesn't
+ * actually limit the amount of memory used in any way, but it affects when
+ * VacuumTidMapIsFull() says that the tidmap is full.
+ */
+VacuumTidMap *
+CreateVacuumTidMap(int vac_work_mem)
+{
+	VacuumTidMap *dt;
+
+	/*
+	 * Allocate the tid map struct, and the first leaf node in the current
+	 * memory context.  Any additional nodes are allocated in a separate
+	 * context, so that they can be freed easily in VacuumTidMapReset().
+	 */
+	dt = (VacuumTidMap *) palloc(sizeof(VacuumTidMap));
+
+	dt->context = AllocSetContextCreate(CurrentMemoryContext,
+										"Vacuum TID map",
+										ALLOCSET_DEFAULT_SIZES);
+	dt->num_entries = 0;
+
+	dt->first_leaf = (VacuumTidMapLeafNode *)
+		palloc(sizeof(VacuumTidMapLeafNode));
+	dt->first_leaf->level = 0;
+	dt->first_leaf->next = NULL;
+	dt->first_leaf->num_items = 0;
+
+	dt->last_leaf = dt->first_leaf;
+	dt->root = (VacuumTidMapNode *) dt->first_leaf;
+	dt->num_levels = 1;
+
+	dt->mem_max = ((uint64) vac_work_mem) * 1024;
+	dt->mem_used = sizeof(VacuumTidMap) + sizeof(VacuumTidMapLeafNode);
+
+	dt->iter_offsets = NULL;	/* no iteration in progress */
+
+	return dt;
+}
+
+/*
+ * Clear all items from the tid map.
+ */
+void
+VacuumTidMapReset(VacuumTidMap *dt)
+{
+	dt->num_entries = 0;
+
+	dt->first_leaf->next = NULL;
+	dt->first_leaf->num_items = 0;
+	dt->last_leaf = dt->first_leaf;
+	dt->root = (VacuumTidMapNode *) dt->first_leaf;
+	dt->num_levels = 1;
+	MemoryContextReset(dt->context);
+
+	dt->mem_used = sizeof(VacuumTidMap) + sizeof(VacuumTidMapLeafNode);
+	dt->iter_offsets = NULL;
+}
+
+bool
+VacuumTidMapIsEmpty(VacuumTidMap *dt)
+{
+	return (dt->num_entries == 0);
+}
+
+/*
+ * Returns 'true', if inserting another heap page's worth of dead tuples would
+ * overrun the allocated memory.
+ */
+bool
+VacuumTidMapIsFull(VacuumTidMap *dt)
+{
+	/* Can we fit a whole heap page's worth of items on this leaf node? */
+	if (MAX_LEAF_NODE_ITEMS - dt->last_leaf->num_items >= MaxHeapTuplesPerPage)
+		return false;
+
+	/*
+	 * Do we have space to allocate another leaf node?
+	 *
+	 * XXX: This doesn't take into account the possibility that allocating a
+	 * new leaf page also requires allocating new internal pages, possibly all
+	 * the way up to the root.  So we might still overshoot if that happens.
+	 */
+	if (dt->mem_max - dt->mem_used > sizeof(VacuumTidMapLeafNode))
+		return false;
+
+	return true;
+}
+
+uint64
+VacuumTidMapGetNumTuples(VacuumTidMap *dt)
+{
+	return dt->num_entries;
+}
+
+/*
+ * Begin in-order scan through all the TIDs.
+ */
+void
+VacuumTidMapBeginIterate(VacuumTidMap *dt)
+{
+	if (dt->iter_offsets)
+		elog(ERROR, "iteration on vacuum tid map is already in progress");
+
+	dt->iter_offsets = MemoryContextAlloc(dt->context,
+										  MaxHeapTuplesPerPage * sizeof(OffsetNumber));
+	dt->iter_node = dt->first_leaf;
+	dt->iter_itemno = 0;
+}
+
+/*
+ * Returns next batch of tuples.
+ *
+ * VacuumTidMapBeginIterate() must be called first.  VacuumTidMapNext() returns
+ * TIDs one block number at a time, such that each call returns all the TIDs
+ * with the same block number.
+ *
+ * If there are any more entries, returns true, and 'blkno', 'ntuples' and
+ * 'offsets' are filled with the next batch of TIDs.
+ */
+bool
+VacuumTidMapNext(VacuumTidMap *dt, BlockNumber *blkno, int *ntuples, OffsetNumber **offsets)
+{
+	int			curr_itemno;
+	BlockNumber currblk;
+	VacuumTidMapLeafNode *curr_node;
+	int			num_offsets;
+
+	if (!dt->iter_offsets)
+		elog(ERROR, "vacuum tid map iteration is not in progress");
+
+	if (!dt->iter_node)
+	{
+		/* No more TIDs.  End the iterator, and return false */
+		pfree(dt->iter_offsets);
+		dt->iter_offsets = NULL;
+		return false;
+	}
+
+	Assert(dt->iter_node->level == 0);
+	Assert(dt->iter_node->num_items > 0);
+
+	/*
+	 * There are more TIDs to return.
+	 *
+	 * Grab the block number from the next TID, and scan forward, collecting
+	 * the offset numbers of all TIDs on the same block.
+	 */
+	curr_node = dt->iter_node;
+	curr_itemno = dt->iter_itemno;
+
+	currblk = ItemPointerGetBlockNumber(&curr_node->itemptrs[curr_itemno]);
+	dt->iter_offsets[0] = ItemPointerGetOffsetNumber(&curr_node->itemptrs[curr_itemno]);
+	num_offsets = 1;
+	curr_itemno++;
+
+	for (;;)
+	{
+		if (curr_itemno >= curr_node->num_items)
+		{
+			/* We have reached end of this node.  Step to the next one. */
+			curr_node = curr_node->next;
+			curr_itemno = 0;
+
+			if (!curr_node)
+			{
+				/* Reached the very end. */
+				break;
+			}
+		}
+
+		if (ItemPointerGetBlockNumber(&curr_node->itemptrs[curr_itemno]) != currblk)
+			break;
+
+		dt->iter_offsets[num_offsets] =
+			ItemPointerGetOffsetNumber(&curr_node->itemptrs[curr_itemno]);
+		num_offsets++;
+		curr_itemno++;
+	}
+
+	/* Remember where we stopped, for the next call */
+	dt->iter_node = curr_node;
+	dt->iter_itemno = curr_itemno;
+
+	*blkno = currblk;
+	*ntuples = num_offsets;
+	*offsets = dt->iter_offsets;
+	return true;
+}
+
+/*
+ * Record a TID in the map.
+ *
+ * TIDs must be recorded in order.
+ */
+void
+VacuumTidMapRecordTid(VacuumTidMap *dt, ItemPointer itemptr)
+{
+	VacuumTidMapLeafNode *last_leaf;
+
+	/* The new TID should be larger than the last one recorded */
+	Assert(ItemPointerIsValid(itemptr));
+	Assert(dt->num_entries == 0 ||
+		   ItemPointerCompare(itemptr, &dt->last_leaf->itemptrs[dt->last_leaf->num_items - 1]) > 0);
+
+	/* Allocate a new leaf node if needed */
+	if (dt->last_leaf->num_items == MAX_LEAF_NODE_ITEMS)
+	{
+		VacuumTidMapLeafNode *new_node;
+
+		dt->mem_used += sizeof(VacuumTidMapLeafNode);
+		new_node = (VacuumTidMapLeafNode *)
+			MemoryContextAlloc(dt->context, sizeof(VacuumTidMapLeafNode));
+		new_node->level = 0;
+		new_node->next = NULL;
+		new_node->num_items = 0;
+
+		dt->last_leaf->next = new_node;
+		dt->last_leaf = new_node;
+
+		update_upper(dt, 1, new_node, itemptr);
+	}
+	last_leaf = dt->last_leaf;
+
+	last_leaf->itemptrs[last_leaf->num_items] = *itemptr;
+	last_leaf->num_items++;
+
+	dt->num_entries++;
+}
+
+/*
+ * Insert the downlink into parent node, after creating a new node.
+ *
+ * Recurses if the parent node is full, too.
+ */
+static void
+update_upper(VacuumTidMap *dt, int level, void *new_node,
+			 ItemPointer new_node_itemptr)
+{
+	VacuumTidMapInternalNode *parent;
+
+	/* Append to the parent. */
+	if (level >= dt->num_levels)
+	{
+		/* Create new root node. */
+		ItemPointerData old_root_itemptr;
+
+		/* MAX_LEVELS should be more than enough, so this shouldn't happen */
+		if (dt->num_levels == MAX_LEVELS)
+			elog(ERROR, "could not expand vacuum tid map, maximum number of levels reached");
+
+		if (dt->num_levels == 1)
+			old_root_itemptr = ((VacuumTidMapLeafNode *) dt->root)->itemptrs[0];
+		else
+			old_root_itemptr = ((VacuumTidMapInternalNode *) dt->root)->itemptrs[0];
+
+		dt->mem_used += sizeof(VacuumTidMapInternalNode);
+		parent = (VacuumTidMapInternalNode *)
+			MemoryContextAlloc(dt->context, sizeof(VacuumTidMapInternalNode));
+		parent->level = level;
+		parent->itemptrs[0] = old_root_itemptr;
+		parent->downlinks[0] = dt->root;
+		parent->num_items = 1;
+
+		dt->last_parents[level] = parent;
+		dt->root = (VacuumTidMapNode *) parent;
+		dt->num_levels++;
+	}
+
+	parent = dt->last_parents[level];
+
+	if (parent->num_items < MAX_INTERNAL_NODE_ITEMS)
+	{
+		parent->itemptrs[parent->num_items] = *new_node_itemptr;
+		parent->downlinks[parent->num_items] = new_node;
+		parent->num_items++;
+	}
+	else
+	{
+		/* Doesn't fit on the parent.  Allocate new parent. */
+		dt->mem_used += sizeof(VacuumTidMapInternalNode);
+		parent = (VacuumTidMapInternalNode *) MemoryContextAlloc(dt->context,
+																 sizeof(VacuumTidMapInternalNode));
+		parent->level = level;
+		parent->itemptrs[0] = *new_node_itemptr;
+		parent->downlinks[0] = new_node;
+		parent->num_items = 1;
+
+		dt->last_parents[level] = parent;
+
+		/* Link this new parent to its parent */
+		update_upper(dt, level + 1, parent, new_node_itemptr);
+	}
+}
+
+/*
+ * Does the tid map contain the given TID?
+ */
+bool
+VacuumTidMapContainsTid(VacuumTidMap *dt, ItemPointer itemptr)
+{
+	VacuumTidMapLeafNode *leaf_node;
+	VacuumTidMapInternalNode *node;
+	int			level = dt->num_levels - 1;
+	int			itemno;
+	BlockNumber refblk;
+	OffsetNumber refoff;
+
+	if (dt->num_entries == 0 || !ItemPointerIsValid(itemptr))
+		return false;
+
+	refblk = ItemPointerGetBlockNumberNoCheck(itemptr);
+	refoff = ItemPointerGetOffsetNumberNoCheck(itemptr);
+
+	/*
+	 * Start from the root, and walk down the B-tree to find the right leaf
+	 * node.
+	 */
+	node = (VacuumTidMapInternalNode *) dt->root;
+	while (level > 0)
+	{
+		itemno = vac_itemptr_binsrch(refblk, refoff, node->itemptrs, node->num_items);
+
+		if (itemno < 0)
+			return false;
+
+		node = (VacuumTidMapInternalNode *) node->downlinks[itemno];
+		level--;
+	}
+
+	leaf_node = (VacuumTidMapLeafNode *) node;
+	Assert(leaf_node->level == 0);
+
+	/* Binary search in the leaf node */
+	itemno = vac_itemptr_binsrch(refblk, refoff, leaf_node->itemptrs, leaf_node->num_items);
+
+	if (itemno < 0)
+		return false;
+	else
+	{
+		ItemPointer titem = &leaf_node->itemptrs[itemno];
+
+		return (refblk == ItemPointerGetBlockNumberNoCheck(titem) &&
+				refoff == ItemPointerGetOffsetNumberNoCheck(titem));
+	}
+}
+
+
+/*
+ * vac_itemptr_binsrch() -- search a sorted array of item pointers
+ *
+ * Returns the offset of the first item pointer less than or equal to
+ * 'refblk' and 'refoff', or -1 if there is no such item pointer.
+ *
+ * All item pointers in the array are assumed to be valid
+ */
+static inline int
+vac_itemptr_binsrch(BlockNumber refblk, OffsetNumber refoff,
+					ItemPointer arr, int arr_elems)
+{
+	BlockNumber blk;
+	OffsetNumber off;
+	ItemPointer value;
+	int			left,
+				right,
+				mid;
+
+	left = 0;
+	right = arr_elems;
+	while (right > left)
+	{
+		/*
+		 * We're dealing with indexes in the B-tree nodes, which are orders of
+		 * magnitude smaller than the max range of int, so we don't need to
+		 * worry about overflow here.
+		 */
+		mid = (left + right) / 2;
+		value = &arr[mid];
+
+		blk = ItemPointerGetBlockNumberNoCheck(value);
+		if (refblk < blk)
+		{
+			right = mid;
+		}
+		else if (refblk == blk)
+		{
+			off = ItemPointerGetOffsetNumberNoCheck(value);
+			if (refoff < off)
+				right = mid;
+			else if (refoff == off)
+				return mid;
+			else
+				left = mid + 1;
+		}
+		else
+		{
+			left = mid + 1;
+		}
+	}
+
+	return left - 1;
+}
diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h
index 85d472f0a5..f327f5a7a8 100644
--- a/src/include/commands/vacuum.h
+++ b/src/include/commands/vacuum.h
@@ -155,6 +155,25 @@ extern int	vacuum_multixact_freeze_min_age;
 extern int	vacuum_multixact_freeze_table_age;
 
 
+/*
+ * prototypes for Vacuum Tid Map code, in vacuumtidmap.c
+ */
+typedef struct VacuumTidMap VacuumTidMap;
+
+extern VacuumTidMap *CreateVacuumTidMap(int vac_work_mem);
+extern void VacuumTidMapReset(VacuumTidMap *dt);
+
+extern void VacuumTidMapRecordTid(VacuumTidMap *dt, ItemPointer itemptr);
+
+extern bool VacuumTidMapIsFull(VacuumTidMap *dt);
+extern bool VacuumTidMapIsEmpty(VacuumTidMap *dt);
+extern uint64 VacuumTidMapGetNumTuples(VacuumTidMap *dt);
+
+extern bool VacuumTidMapContainsTid(VacuumTidMap *dt, ItemPointer itemptr);
+extern void VacuumTidMapBeginIterate(VacuumTidMap *dt);
+extern bool VacuumTidMapNext(VacuumTidMap *dt,
+				 BlockNumber *blkno, int *ntuples, OffsetNumber **offsets);
+
 /* in commands/vacuum.c */
 extern void ExecVacuum(VacuumStmt *vacstmt, bool isTopLevel);
 extern void vacuum(int options, List *relations, VacuumParams *params,
diff --git a/src/test/regress/expected/vacuum.out b/src/test/regress/expected/vacuum.out
index d66e2aa3b7..d60523ba99 100644
--- a/src/test/regress/expected/vacuum.out
+++ b/src/test/regress/expected/vacuum.out
@@ -1,7 +1,17 @@
 --
 -- VACUUM
 --
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -22,6 +32,12 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -49,8 +65,20 @@ SELECT count(*) FROM vactst;
 (1 row)
 
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
 SELECT * FROM vactst;
  i 
 ---
@@ -119,6 +147,48 @@ ANALYZE (nonexistant-arg) does_not_exist;
 ERROR:  syntax error at or near "nonexistant"
 LINE 1: ANALYZE (nonexistant-arg) does_not_exist;
                  ^
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+ wait_barrier 
+--------------
+ 
+(1 row)
+
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+                 QUERY PLAN                  
+---------------------------------------------
+ Seq Scan on vactst2 (actual rows=0 loops=1)
+(1 row)
+
+SELECT count(*) FROM vactst2;
+ count 
+-------
+     0
+(1 row)
+
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
diff --git a/src/test/regress/sql/vacuum.sql b/src/test/regress/sql/vacuum.sql
index 275ce2e270..87ea900686 100644
--- a/src/test/regress/sql/vacuum.sql
+++ b/src/test/regress/sql/vacuum.sql
@@ -2,7 +2,18 @@
 -- VACUUM
 --
 
-CREATE TABLE vactst (i INT);
+CREATE FUNCTION wait_barrier() RETURNS void LANGUAGE plpgsql AS $$
+DECLARE vxids text[];
+BEGIN
+ -- wait for all transactions to commit to make deleted tuples vacuumable
+ SELECT array_agg(DISTINCT virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() INTO vxids;
+ WHILE (SELECT count(virtualtransaction) FROM pg_locks WHERE pid <> pg_backend_pid() AND virtualtransaction = ANY(vxids)) > 0 LOOP
+    PERFORM pg_sleep(0.1);
+ END LOOP;
+END
+$$;
+
+CREATE TABLE vactst (i INT) WITH (autovacuum_enabled = false);
 INSERT INTO vactst VALUES (1);
 INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst SELECT * FROM vactst;
@@ -18,6 +29,7 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 VACUUM FULL vactst;
 UPDATE vactst SET i = i + 1;
@@ -35,8 +47,10 @@ INSERT INTO vactst SELECT * FROM vactst;
 INSERT INTO vactst VALUES (0);
 SELECT count(*) FROM vactst;
 DELETE FROM vactst WHERE i != 0;
+SELECT wait_barrier();
 VACUUM (FULL) vactst;
 DELETE FROM vactst;
+SELECT wait_barrier();
 SELECT * FROM vactst;
 
 VACUUM (FULL, FREEZE) vactst;
@@ -93,6 +107,30 @@ ANALYZE vactst (i), vacparted (does_not_exist);
 ANALYZE (VERBOSE) does_not_exist;
 ANALYZE (nonexistant-arg) does_not_exist;
 
+-- large mwm vacuum runs
+CREATE UNLOGGED TABLE vactst2 (i INT) WITH (autovacuum_enabled = false);
+INSERT INTO vactst2 SELECT * from generate_series(1,300000);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2 WHERE i % 4 != 1;
+SET maintenance_work_mem = 1024;
+SELECT wait_barrier();
+VACUUM vactst2;
+SET maintenance_work_mem TO DEFAULT;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
+INSERT INTO vactst2 SELECT * from generate_series(1,40);
+CREATE INDEX ix_vactst2 ON vactst2 (i);
+DELETE FROM vactst2;
+SELECT wait_barrier();
+VACUUM vactst2;
+EXPLAIN (ANALYZE, BUFFERS, COSTS off, TIMING off, SUMMARY off) SELECT * FROM vactst2;
+SELECT count(*) FROM vactst2;
+DROP INDEX ix_vactst2;
+TRUNCATE TABLE vactst2;
+
 DROP TABLE vaccluster;
+DROP TABLE vactst2;
 DROP TABLE vactst;
 DROP TABLE vacparted;
+DROP FUNCTION wait_barrier();
vacuumbench.shapplication/x-shellscript; name=vacuumbench.shDownload
#181Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Heikki Linnakangas (#180)
2 attachment(s)
Re: Vacuum: allow usage of more than 1GB of work mem

On 06/04/18 16:39, Heikki Linnakangas wrote:

Sure. I used the attached script to test this.

Sorry, I attached the wrong script. Here is the correct one that I used.
Here are also the results I got from running it

- Heikki

Attachments:

vacuumbenchone.shapplication/x-shellscript; name=vacuumbenchone.shDownload
vacuumbenchone-results-on-heikkis-laptop.tar.gzapplication/gzip; name=vacuumbenchone-results-on-heikkis-laptop.tar.gzDownload
#182Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Heikki Linnakangas (#180)
Re: Vacuum: allow usage of more than 1GB of work mem

Heikki Linnakangas wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

FWIW I liked the idea of having this abstraction possibly do other
things -- for instance to vacuum brin indexes you'd like to mark index
tuples as "containing tuples that were removed" and eventually
re-summarize the range. With the current interface we cannot do that,
because vacuum expects brin vacuuming to ask for each heap tuple "is
this tid dead?" and of course we don't have a list of tids to ask for.
So if we can ask instead "how many dead tuples does this block contain?"
brin vacuuming will be much happier.

Looking at the changes to the regression test in this, I don't quite
understand what it's all about. What are the "wait_barriers" for? If I
understand correctly, they're added so that the VACUUMs can remove the
tuples that are deleted in the test. But why are they needed now? Was that
an orthogonal change we should've done anyway?

Rather than add those wait_barriers, should we stop running the 'vacuum'
test in parallel with the other tests? Or maybe it's a good thing to run it
in parallel, to test some other things?

20180207235226.zygu4r3yv3yfcnmc@alvherre.pgsql

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#183Claudio Freire
klaussfreire@gmail.com
In reply to: Heikki Linnakangas (#180)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 6, 2018 at 10:39 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

But you're also tying the caller to the format of the buffer holding
those TIDs, for instance. Why would you, when you can have an
interface that just iterates TIDs and let the caller store them
if/however they want?

I do believe a pure iterator interface is a better interface.

It also copies stuff a lot, so it's quite heavyweight. I'd suggest
trying to go for a lighter weight interface with less overhead that
is more general at the same time.

Note that there was similar copying, to construct an array of OffsetNumbers,
happening in lazy_vacuum_page() before this patch. So the net amount of
copying is the same.

I'm envisioning that this data structure will sooner or later be optimized
further, so that when you have a lot of TIDs pointing to the same block, we
would pack them more tightly, storing the block number just once, with an
array of offset numbers. This interface that returns an array of offset
numbers matches that future well, as the iterator could just return a
pointer to the array of offset numbers, with no copying. (If we end up doing
something even more dense, like a bitmap, then it doesn't help, but that's
ok too.)

But that's the thing. It's a specialized interface for a future we're
not certain. It's premature.

A generic interface does not preclude the possibility of implementing
those in the future, it allows you *not* to if there's no gain. Doing
it now, it forces you to.

About the B-tree, however, I don't think a B-tree is a good idea.

Trees' main benefit is that they can be inserted to efficiently. When
all your data is loaded sequentially, in-order, in-memory and
immutable; the tree is pointless, more costly to build, and harder to
maintain - in terms of code complexity.

In this use case, the only benefit of B-trees would be that they're
optimized for disk access.

Those are not the reasons for which I'd prefer a B-tree. A B-tree has good
cache locality, and when you don't need to worry about random insertions,
page splits, deletions etc., it's also very simple to implement. This patch
is not much longer than the segmented multi-array.

But it *is* complex and less tested. Testing it and making it mature
will take time. Why do that if doing bitmaps is a better path?

On the other side, using B-trees incurs memory overhead due to the
need for internal nodes, can fragment memory because internal nodes
aren't the same size as leaf nodes, is easier to get wrong and
introduce bugs... I don't see a gain.

The memory overhead incurred by the internal nodes is quite minimal, and can
be adjusted by changing the node sizes. After some experimentation, I
settled on 2048 items per leaf node, and 64 items per internal node. With
those values, the overhead caused by the internal nodes is minimal, below
0.5%. That seems fine, but we could increase the node sizes to bring it
further down, if we'd prefer that tradeoff.

I don't understand what memory fragmentation problems you're worried about.
The tree grows one node at a time, as new TIDs are added, until it's all
released at the end. I don't see how the size of internal vs leaf nodes
matters.

Large vacuums do several passes, so they'll create one tid map for
each pass. Each pass will allocate m_w_m-worth of pages, and then
deallocate them.

B-tree page allocations are smaller than malloc's mmap threshold, so
freeing them won't return memory to the operating system. Furthermore,
if other allocations get interleaved, objects could be left lying at
random points in the heap, preventing efficient reuse of the heap for
the next round. In essence, internal fragmentation. This may be
exacerbated by AllocSet's own fragmentation and double-accounting.
From what I can tell, inner nodes will use pools, and leaf nodes will
be allocated as dedicated chunks (mallocd).

Segments in my implementation are big, exactly because of that. The
aim is to have large buffers that malloc will mmap, so they get
returned to the os (unmapped) when freed quickly, and with little
overhead.

This fragmentation may cause actual pain in autovacuum, since
autovacuum workers are relatively long-lived.

If you propose its use, at least benchmark it to show some gain.

Sure. I used the attached script to test this. It's inspired by the test
script you posted. It creates a pgbench database with scale factor 100,
deletes 80% of the rows, and runs vacuum. To stress lazy_tid_reaped() more
heavily, the test script creates a number of extra indexes. Half of them are
on the primary key, just to get more repetitions without having to
re-initialize in between, and the rest are like this:

create index random_1 on pgbench_accounts((hashint4(aid)))

to stress lazy_vacuum_tid_reaped() with a random access pattern, rather than
the sequential one that you get with the primary key index.

I ran the test script on my laptop, with unpatched master, with your latest
multi-array patch, and with the attached version of the b-tree patch. The
results are quite noisy, unfortunately, so I wouldn't draw very strong
conclusions from it, but it seems that the performance of all three versions
is roughly the same. I looked in particular at the CPU time spent in the
index vacuums, as reported by VACUUM VERBOSE.

Scale factor 100 is hardly enough to stress large m_w_m vacuum. I
found scales of 1k-4k (or bigger) are best, with large m_w_m settings
(4G for example) to get to really see how the data structure performs.

Furthermore, among the 200-ish messages this thread has accumulated,
better ideas have been proposed, better because they do use less
memory and are faster (like using bitmaps when possible), but if we
can't push a simple refactoring first, there's no chance a bigger
rewrite will fare better. Remember, in this use case, using less
memory far outweights any other consideration. Less memory directly
translates to less iterations over the indexes, because more can be
crammed into m_w_m, which is a huge time saving. Far more than any
micro-optimization.

About 2 years ago, I chose to try to push this simple algorithm first,
then try to improve on it with better data structures. Nobody
complained at the time (I think, IIRC), and I don't think it fair to
go and revisit that now. It just delays getting a solution for this
issue for the persuit of "the perfect implementaiton" that might never
arrive. Or even if it doesn, there's nothing stopping us from pushing
another patch in the future with that better implementation if we
wish. Lets get something simple and proven first.

True all that. My point is that the multi-segmented array isn't all that
simple and proven, compared to an also straightforward B-tree. It's pretty
similar to a B-tree, actually, except that it has exactly two levels, and
the node (= segment) sizes grow exponentially. I'd rather go with a true
B-tree, than something homegrown that resembles a B-tree, but not quite.

I disagree.

Being similar to what vacuum is already doing, we can be confident the
approach is sound, at least as sound as current vacuum. It shares a
lot with the current implementation, which is known to be good.

The multi-segmented array itself has received a lot of testing during
the ~1.5y it has spent in the making, as well. I've been running
extensive benchmarking and tests each time I changed something, and
I've even ran deep tests on an actual production snapshot. A complete
db-wide vacuum of a heavily bloated ~12TB production database, showing
significant speedups not only because it does fewer index scans, but
also because it uses less CPU time to do so, with consistency checking
after the fact, to check for bugs. Of course I can't guarantee it's
bug-free, but it *is* decently tested.

I'm pretty sure the B-tree implementation hasn't reached that level of
testing yet. It might in the future, but it won't happen overnight.

Your B-tree patch is also homegrown. You're not reusing well tested
btree code, you're coding a B-tree from scratch, so it's as suspect as
any new code. I agree the multi-segment algorithm is quite similar to
a shallow b-tree, but I'm not convinced a b-tree is what we must
aspire to have. In fact, if you used large pages for the B-tree, you
don't need more than 2 levels (there's a 12GB limit ATM on the size of
the tid map), so the multi-segment approach and the b-tree approach
are essentially the same. Except the multi-segment code got more
testing.

In short, there are other more enticing alternatives to try out first.
I'm not enthused by the idea of having to bench and test yet another
sorted set implementation before moving forward.

On Fri, Apr 6, 2018 at 11:00 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

Heikki Linnakangas wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

FWIW I liked the idea of having this abstraction possibly do other
things -- for instance to vacuum brin indexes you'd like to mark index
tuples as "containing tuples that were removed" and eventually
re-summarize the range. With the current interface we cannot do that,
because vacuum expects brin vacuuming to ask for each heap tuple "is
this tid dead?" and of course we don't have a list of tids to ask for.
So if we can ask instead "how many dead tuples does this block contain?"
brin vacuuming will be much happier.

I don't think either patch gives you that.

The bulkdelete interface is part of the indexam and unlikely to change
in this patch.

#184Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Claudio Freire (#183)
Re: Vacuum: allow usage of more than 1GB of work mem

Claudio Freire wrote:

On Fri, Apr 6, 2018 at 11:00 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

FWIW I liked the idea of having this abstraction possibly do other
things -- for instance to vacuum brin indexes you'd like to mark index
tuples as "containing tuples that were removed" and eventually
re-summarize the range. With the current interface we cannot do that,
because vacuum expects brin vacuuming to ask for each heap tuple "is
this tid dead?" and of course we don't have a list of tids to ask for.
So if we can ask instead "how many dead tuples does this block contain?"
brin vacuuming will be much happier.

I don't think either patch gives you that.

The bulkdelete interface is part of the indexam and unlikely to change
in this patch.

I'm sure you're correct. I was just saying that with the abstract
interface it is easier to implement what I suggest as a follow-on patch.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#185Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#183)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 6, 2018 at 5:25 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 6, 2018 at 10:39 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

But you're also tying the caller to the format of the buffer holding
those TIDs, for instance. Why would you, when you can have an
interface that just iterates TIDs and let the caller store them
if/however they want?

I do believe a pure iterator interface is a better interface.

Between the b-tree or not discussion and the refactoring to separate
the code, I don't think we'll get this in the next 24hs.

So I guess we'll have ample time to poner on both issues during the
next commit fest.

#186Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Claudio Freire (#185)
Re: Vacuum: allow usage of more than 1GB of work mem

On 04/06/2018 08:00 PM, Claudio Freire wrote:

On Fri, Apr 6, 2018 at 5:25 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 6, 2018 at 10:39 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

But you're also tying the caller to the format of the buffer holding
those TIDs, for instance. Why would you, when you can have an
interface that just iterates TIDs and let the caller store them
if/however they want?

I do believe a pure iterator interface is a better interface.

Between the b-tree or not discussion and the refactoring to separate
the code, I don't think we'll get this in the next 24hs.

So I guess we'll have ample time to poner on both issues during the
next commit fest.

There doesn't seem to have been much pondering done since then, at least
publicly. Can we make some progress on this? It's been around for a long
time now.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#187Claudio Freire
klaussfreire@gmail.com
In reply to: Andrew Dunstan (#186)
Re: Vacuum: allow usage of more than 1GB of work mem

On Thu, Jul 12, 2018 at 10:44 AM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 04/06/2018 08:00 PM, Claudio Freire wrote:

On Fri, Apr 6, 2018 at 5:25 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 6, 2018 at 10:39 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

But you're also tying the caller to the format of the buffer holding
those TIDs, for instance. Why would you, when you can have an
interface that just iterates TIDs and let the caller store them
if/however they want?

I do believe a pure iterator interface is a better interface.

Between the b-tree or not discussion and the refactoring to separate
the code, I don't think we'll get this in the next 24hs.

So I guess we'll have ample time to poner on both issues during the
next commit fest.

There doesn't seem to have been much pondering done since then, at least
publicly. Can we make some progress on this? It's been around for a long
time now.

Yeah, life has kept me busy and I haven't had much time to make
progress here, but I was planning on doing the refactoring as we were
discussing soon. Can't give a time frame for that, but "soonish".

#188Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Claudio Freire (#187)
Re: Vacuum: allow usage of more than 1GB of work mem

On 07/12/2018 12:38 PM, Claudio Freire wrote:

On Thu, Jul 12, 2018 at 10:44 AM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 04/06/2018 08:00 PM, Claudio Freire wrote:

On Fri, Apr 6, 2018 at 5:25 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Apr 6, 2018 at 10:39 AM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

On 06/04/18 01:59, Claudio Freire wrote:

The iteration interface, however, seems quite specific for the use
case of vacuumlazy, so it's not really a good abstraction.

Can you elaborate? It does return the items one block at a time. Is that
what you mean by being specific for vacuumlazy? I guess that's a bit
special, but if you imagine some other users for this abstraction, it's
probably not that unusual. For example, if we started using it in bitmap
heap scans, a bitmap heap scan would also want to get the TIDs one block
number at a time.

But you're also tying the caller to the format of the buffer holding
those TIDs, for instance. Why would you, when you can have an
interface that just iterates TIDs and let the caller store them
if/however they want?

I do believe a pure iterator interface is a better interface.

Between the b-tree or not discussion and the refactoring to separate
the code, I don't think we'll get this in the next 24hs.

So I guess we'll have ample time to poner on both issues during the
next commit fest.

There doesn't seem to have been much pondering done since then, at least
publicly. Can we make some progress on this? It's been around for a long
time now.

Yeah, life has kept me busy and I haven't had much time to make
progress here, but I was planning on doing the refactoring as we were
discussing soon. Can't give a time frame for that, but "soonish".

I fully understand. I think this needs to go back to "Waiting on Author".

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#189Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Andrew Dunstan (#188)
Re: Vacuum: allow usage of more than 1GB of work mem

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on Author".

Why? Heikki's patch applies fine and passes the regression tests.

--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#190Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Alvaro Herrera (#189)
Re: Vacuum: allow usage of more than 1GB of work mem

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread). If we're going to go with Heikki's patch then do we need to
change the author, or add him as an author?

cheers

andew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#191Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Andrew Dunstan (#190)
Re: Vacuum: allow usage of more than 1GB of work mem

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give back
the memory to the OS. The default glibc malloc() implementation has a
threshold of 4 or 32 MB or something like that - allocations larger than
the threshold are mmap()'d, and can always be returned to the OS. I
think a simple solution to that is to allocate larger chunks, something
like 32-64 MB at a time, and carve out the allocations for the nodes
from those chunks. That's pretty straightforward, because we don't need
to worry about freeing the nodes in retail. Keep track of the current
half-filled chunk, and allocate a new one when it fills up.

He also wanted to refactor the iterator API, to return one ItemPointer
at a time. I don't think that's necessary, the current iterator API is
more convenient for the callers, but I don't feel strongly about that.

Anything else?

If we're going to go with Heikki's patch then do we need to
change the author, or add him as an author?

Let's list both of us. At least in the commit message, doesn't matter
much what the commitfest app says.

- Heikki

#192Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Heikki Linnakangas (#191)
Re: Vacuum: allow usage of more than 1GB of work mem

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why?  Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

He also wanted to refactor the iterator API, to return one ItemPointer
at a time. I don't think that's necessary, the current iterator API is
more convenient for the callers, but I don't feel strongly about that.

Anything else?

If we're going to go with Heikki's patch then do we need to
change the author, or add him as an author?

Let's list both of us. At least in the commit message, doesn't matter
much what the commitfest app says.

I added you as an author in the CF App

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#193Claudio Freire
klaussfreire@gmail.com
In reply to: Andrew Dunstan (#192)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]http://man7.org/linux/man-pages/man3/mallopt.3.html

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1]: http://man7.org/linux/man-pages/man3/mallopt.3.html

#194Claudio Freire
klaussfreire@gmail.com
In reply to: Claudio Freire (#193)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Jul 16, 2018 at 11:34 AM Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1] http://man7.org/linux/man-pages/man3/mallopt.3.html

Sorry, substitute M_MMAP_MAX with DEFAULT_MMAP_THRESHOLD_MAX, the
former is something else.

#195Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Claudio Freire (#194)
Re: Vacuum: allow usage of more than 1GB of work mem

On 16/07/18 18:35, Claudio Freire wrote:

On Mon, Jul 16, 2018 at 11:34 AM Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1] http://man7.org/linux/man-pages/man3/mallopt.3.html

Sorry, substitute M_MMAP_MAX with DEFAULT_MMAP_THRESHOLD_MAX, the
former is something else.

Yeah, we basically want to be well above whatever the threshold is. I
don't think we should try to check for any specific constant, just make
it large enough. Different libc implementations might have different
policies, too. There's little harm in overshooting, and making e.g. 64
MB allocations when 1 MB would've been enough to trigger the mmap()
behavior. It's going to be more granular than the current situation,
anyway, where we do a single massive allocation.

(A code comment to briefly mention the thresholds on common platforms
would be good, though).

- Heikki

#196Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Claudio Freire (#193)
Re: Vacuum: allow usage of more than 1GB of work mem

On 07/16/2018 10:34 AM, Claudio Freire wrote:

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1] http://man7.org/linux/man-pages/man3/mallopt.3.html

That page says:

       M_MMAP_MAX
              This parameter specifies the maximum number of allocation
              requests that may be simultaneously serviced using mmap(2).
              This parameter exists because some systems have a limited
              number of internal tables for use by mmap(2), and using more
              than a few of them may degrade performance.

              The default value is 65,536, a value which has no special
              significance and which serves only as a safeguard. Setting
              this parameter to 0 disables the use of mmap(2) for servicing
              large allocation requests.

I'm confused about the relevance.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#197Claudio Freire
klaussfreire@gmail.com
In reply to: Andrew Dunstan (#196)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Jul 16, 2018 at 3:30 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/16/2018 10:34 AM, Claudio Freire wrote:

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1] http://man7.org/linux/man-pages/man3/mallopt.3.html

That page says:

M_MMAP_MAX
This parameter specifies the maximum number of allocation
requests that may be simultaneously serviced using mmap(2).
This parameter exists because some systems have a limited
number of internal tables for use by mmap(2), and using more
than a few of them may degrade performance.

The default value is 65,536, a value which has no special
significance and which serves only as a safeguard. Setting
this parameter to 0 disables the use of mmap(2) for servicing
large allocation requests.

I'm confused about the relevance.

It isn't relevant. See my next message, it should have read
DEFAULT_MMAP_THRESHOLD_MAX.

#198Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Claudio Freire (#194)
Re: Vacuum: allow usage of more than 1GB of work mem

On 07/16/2018 11:35 AM, Claudio Freire wrote:

On Mon, Jul 16, 2018 at 11:34 AM Claudio Freire <klaussfreire@gmail.com> wrote:

On Fri, Jul 13, 2018 at 5:43 PM Andrew Dunstan
<andrew.dunstan@2ndquadrant.com> wrote:

On 07/13/2018 09:44 AM, Heikki Linnakangas wrote:

On 13/07/18 01:39, Andrew Dunstan wrote:

On 07/12/2018 06:34 PM, Alvaro Herrera wrote:

On 2018-Jul-12, Andrew Dunstan wrote:

I fully understand. I think this needs to go back to "Waiting on
Author".

Why? Heikki's patch applies fine and passes the regression tests.

Well, I understood Claudio was going to do some more work (see
upthread).

Claudio raised a good point, that doing small pallocs leads to
fragmentation, and in particular, it might mean that we can't give
back the memory to the OS. The default glibc malloc() implementation
has a threshold of 4 or 32 MB or something like that - allocations
larger than the threshold are mmap()'d, and can always be returned to
the OS. I think a simple solution to that is to allocate larger
chunks, something like 32-64 MB at a time, and carve out the
allocations for the nodes from those chunks. That's pretty
straightforward, because we don't need to worry about freeing the
nodes in retail. Keep track of the current half-filled chunk, and
allocate a new one when it fills up.

Google seems to suggest the default threshold is much lower, like 128K.
Still, making larger allocations seems sensible. Are you going to work
on that?

Below a few MB the threshold is dynamic, and if a block bigger than
128K but smaller than the higher threshold (32-64MB IIRC) is freed,
the dynamic threshold is set to the size of the freed block.

See M_MMAP_MAX and M_MMAP_THRESHOLD in the man page for mallopt[1]

So I'd suggest allocating blocks bigger than M_MMAP_MAX.

[1] http://man7.org/linux/man-pages/man3/mallopt.3.html

Sorry, substitute M_MMAP_MAX with DEFAULT_MMAP_THRESHOLD_MAX, the
former is something else.

Ah, ok. Thanks. ignore the email I just sent about that.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#199Robert Haas
robertmhaas@gmail.com
In reply to: Claudio Freire (#183)
Re: Vacuum: allow usage of more than 1GB of work mem

On Fri, Apr 6, 2018 at 4:25 PM, Claudio Freire <klaussfreire@gmail.com> wrote:

True all that. My point is that the multi-segmented array isn't all that
simple and proven, compared to an also straightforward B-tree. It's pretty
similar to a B-tree, actually, except that it has exactly two levels, and
the node (= segment) sizes grow exponentially. I'd rather go with a true
B-tree, than something homegrown that resembles a B-tree, but not quite.

I disagree.

Yeah, me too. I think a segmented array is a lot simpler than a
home-grown btree. I wrote a home-grown btree that ended up becoming
src/backend/utils/mmgr/freepage.c and it took me a long time to get
rid of all the bugs. Heikki is almost certainly better at coding up a
bug-free btree than I am, but a segmented array is a dead simple data
structure, or should be if done properly, and a btree is not.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#200Michael Paquier
michael@paquier.xyz
In reply to: Andrew Dunstan (#198)
Re: Vacuum: allow usage of more than 1GB of work mem

On Mon, Jul 16, 2018 at 02:33:17PM -0400, Andrew Dunstan wrote:

Ah, ok. Thanks. ignore the email I just sent about that.

So... This thread has basically died of inactivity, while there have
been a couple of interesting things discussed, like the version from
Heikki here:
/messages/by-id/cd8f7b62-17e1-4307-9f81-427922e5a1f6@iki.fi

I am marking the patches as returned with feedback for now.
--
Michael